GSoC/GCI Archive
Google Summer of Code 2015

PaGMO / PyKEP

License: GNU Library or "Lesser" General Public License version 2.0 (LGPLv2)

Web Page: https://github.com/esa/pagmo/wiki/GSoC-2015

Mailing List: https://lists.sourceforge.net/lists/listinfo/pagmo-devel

[IMAGE http://esa.github.io/pygmo/_images/logo.png]

PaGMO and its Pythonic alter ego PyGMO (the Python Parallel Global Multi-objective Optimizer) is a scientific library providing a large number of optimisation algorithms and problems under the same powerful parallelization abstraction built around the generalized island-model paradigm. What this means to the user is that the available algorithms are all automatically parallelized (asynchronously, coarse-grained approach) making an efficient use of the underlying multi-core architecture. PaGMO can be used to solve constrained, unconstrained, single and multiple objective, continuous mixed integer optimization problems, or to perform research on novel algorithms and paradigms, easily comparing them to state of the art implementations of the established ones.

PyKEP is a scientific library providing basic tools for astrodynamics research. Algoritmic efficiency is a main focus of the library, which is written in C++ and exposed to Python using the boost::python library. At the library core is the implementation of an efficient solver for the multiple revolutions Lambert’s problem, objects representing the Sims-Flanagan low-thrust model, efficient keplerian propagators, Taylor-integrators, a SGP4 propagator, TLE and SATCAT support and more. Although for convenience of our users PaGMO and PyKEP are maintained separately, both are crucial components for astrodynamics research, as PaGMO depends on PyKEP in order to approach optimization problems in astrodynamics. 

Efficient implementations of state-of-the-art bio-inspired algorithms are sided to state-of the art optimization algorithms (Simplex Methods, SQP methods ....) and can be easily mixed (also with user defined algorithms) to build a super-algorithm exploiting cooperation via the asynchronous, generalized island model.
Many complex-networks topologies (Hypercube, Ring, Barabasi-Albert, Watts-Strogatz, Erdos-Renyi, etc.) are built-in and may be used to define the migration pathways of good solutions among islands. Custom topologies are also possible. On the other hand, PyKEP allows for defining and simulating complex interplanetary trajectory optimization problem, which then can be natively solved by a multitude of optimization schemes using PaGMO.

PaGMO/PyKEP, although originated as one of the internal projects of the Advanced Concepts Team (ACT) of the European Space Agency (ESA), became an independent open-source project in 2008, and is currently spanning over the communities of researchers and high-performance computing developers from different academic and industry backgrounds.

Projects

  • Implementing BBOB testbed and adding new meta-heuristic algorithms Since performance evaluation metrics for numerical optimization algorithms are important component for parameter tuning, comparing algorithms as well as characterizing and explaining the properties and behaviour of algorithms by statistical runtime comparisons. The BBOB testbed would be implemented to achieve this. PaGMO currently lacks new meta-heuristic algorithms hence the next part is to extend PaGMO by adding new meta-heuristic algorithms which are promising.