A parallel global multiobjective framework for optimization: pagmo
Francesco Biscani, Dario Izzo · The Journal of Open Source Software · 2020
Mathematical optimization is pervasive in all quantitative sciences.The ability to find good parameters values in a generic numerical experiment while meeting complex constraints is of great importance and, as such, has always been an active research topic of mathematics, numerics and, more recently, artificial intelligence.Given the vast amount and diversity of optimization problems, as well as of solution approaches, and considering the need to be able to exploit modern computational architectures, the development of a tool able to help in such a pervasive task is not trivial.In this paper we introduce pagmo, a C++ scientific library for massively parallel optimization.pagmo is built around the idea of providing a unified interface to optimization algorithms and problems, and to make their deployment in massively parallel environments easy.Efficient implementantions of bio-inspired and evolutionary algorithms are sided to state-ofthe-art optimization algorithms (Simplex Methods, SQP methods, interior points methods, etc.) and can be used concurrently (also together with algorithms coded by the user) to build an optimization pipeline exploiting algorithmic cooperation via the asynchronous, generalized island model (Izzo, Ruciński, & Biscani, 2012).pagmo can be used to solve constrained, unconstrained, single objective, multiple objectives, continuous and integer optimization problems, stochastic and deterministic problems, as well as to perform research on novel algorithms and paradigms and easily compare them to stateof-the-art implementations of established ones.For users that are more comfortable with the Python language, the package pygmo provides a complete set of Python bindings for pagmo closely following the C++ API.