  Python has become the programming language of choice for research and
industry projects related to data science, machine learning, and deep learning.
Since optimization is an inherent part of these research fields, more
optimization related frameworks have arisen in the past few years. Only a few
of them support optimization of multiple conflicting objectives at a time, but
do not provide comprehensive tools for a complete multi-objective optimization
task. To address this issue, we have developed pymoo, a multi-objective
optimization framework in Python. We provide a guide to getting started with
our framework by demonstrating the implementation of an exemplary constrained
multi-objective optimization scenario. Moreover, we give a high-level overview
of the architecture of pymoo to show its capabilities followed by an
explanation of each module and its corresponding sub-modules. The
implementations in our framework are customizable and algorithms can be
modified/extended by supplying custom operators. Moreover, a variety of single,
multi and many-objective test problems are provided and gradients can be
retrieved by automatic differentiation out of the box. Also, pymoo addresses
practical needs, such as the parallelization of function evaluations, methods
to visualize low and high-dimensional spaces, and tools for multi-criteria
decision making. For more information about pymoo, readers are encouraged to
visit: https://pymoo.org
