Documentation / Paper / Installation / Usage / Citation / Contact
Our open-source framework pymoo offers state of the art single- and multi-objective algorithms and many more features related to multi-objective optimization such as visualization and decision making.
First, make sure you have a Python 3 environment installed. We recommend miniconda3 or anaconda3.
The official release is always available at PyPi:
pip install -U pymoo
For the current developer version:
git clone https://github.com/anyoptimization/pymoo
cd pymoo
pip install .
Since for speedup, some of the modules are also available compiled, you can double-check if the compilation worked. When executing the command, be sure not already being in the local pymoo directory because otherwise not the in site-packages installed version will be used.
python -c "from pymoo.util.function_loader import is_compiled;print('Compiled Extensions: ', is_compiled())"
We refer here to our documentation for all the details. However, for instance, executing NSGA2:
from pymoo.algorithms.moo.nsga2 import NSGA2
from pymoo.problems import get_problem
from pymoo.optimize import minimize
from pymoo.visualization.scatter import Scatter
problem = get_problem("zdt1")
algorithm = NSGA2(pop_size=100)
res = minimize(problem,
algorithm,
('n_gen', 200),
seed=1,
verbose=True)
plot = Scatter()
plot.add(problem.pareto_front(), plot_type="line", color="black", alpha=0.7)
plot.add(res.F, color="red")
plot.show()
A representative run of NSGA2 looks as follows:
If you have used our framework for research purposes, you can cite our publication by:
@ARTICLE{pymoo, author={J. {Blank} and K. {Deb}}, journal={IEEE Access}, title={pymoo: Multi-Objective Optimization in Python}, year={2020}, volume={8}, number={}, pages={89497-89509}, }
Feel free to contact me if you have any questions: