lorenzopalloni / goa

goa (Global Optimization Animations) helps visualize the execution of some global optimization algorithms on a given problem.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

goa (Global Optimization Animations)

goa helps visualise the execution of some global optimisation algorithms on a given problem.

goa has been developed to fulfill an assignment of Optimization Methods, a Computer Engineering course taught at the University of Florence.

As of now, goa provides implementations of the following algorithms:

  • Memetic Differential Evolution (MDE) [1]
  • Differential Evolution (DE) [2]
  • Coordinate Method with Simple Descent Direction (CM) [3]

Installation

To install goa, run this command in your terminal:

$ pip install goa

Usage

A command-line interface is available for quick (though limited) usage, just run this in your terminal:

$ python -m goa

For full-fledged usage, the following is an application of the Memetic Differential Evolution algorithm to the Ackley function that provide also a .gif of the algorithm exectution:

from goa import problems, algorithms

problem = problem.Ackley(bounds=(-2.5, 2.5))
algorithms.memetic_differential_evolution(
  problem=problem,
  local_search_algorithm=algorithms.coordinate_method,
  animation_filepath='MDE-animation.gif'
)

Dependencies

  • python = ">=3.8,<3.11"
  • matplotlib = "^3.4.3"
  • numpy = "^1.21.2"
  • imageio = "^2.9.0"
  • imageio-ffmpeg = "^0.4.5"

License

MIT

Credits

The implementation of this package has had self-educational purpose and it has borrowed heavily from yabox [4].

References

  1. Memetic differential evolution methods for clustering problems (Pierluigi Mansueto, Fabio Schoen)

  2. Differential Evolution – A Simple and Efficient Heuristic for global Optimization over Continuous Spaces (Rainer Storn, Kenneth Price)

  3. Metodi di ottimizzazione non vincolata (Luigi Grippo, Marco Sciandrone)

  4. Pablo R. Mier, Ezequiel Leonardo Castaño, & KOLANICH. (2020). pablormier/yabox: v1.1.0 (v1.1.0). Zenodo.

About

goa (Global Optimization Animations) helps visualize the execution of some global optimization algorithms on a given problem.

License:MIT License


Languages

Language:Python 100.0%