Pymoo: Multi-Objective Optimization in Python

Julian BlankKalyanmoy Deb

article2020IEEE Access2,019 citations

Presents pymoo, an open-source Python framework that provides modular algorithms, automatic differentiation, high-dimensional visualization, and decision-making methods for solving complex multi- and many-objective optimization problems.

Listen

Modern engineering, data analytics, and machine learning increasingly rely on Python to solve complex computational problems. However, many real-world challenges require balancing multiple conflicting goals at once, such as minimizing cost while maximizing safety and performance. While various optimization tools exist, existing Python environments have lacked a single, comprehensive system that covers the entire optimization lifecycle, from problem formulation and algorithm execution to advanced visualization and decision-making.

The article demonstrates the architecture, capabilities, and practical application of pymoo, an open-source Python framework designed specifically for multi-objective optimization. The framework provides an integrated, modular environment that enables practitioners to benchmark algorithms, handle complex operational constraints, and translate technical trade-offs into actionable choices.

To establish its credibility and utility, the article outlines the framework's core design across three main pillars: problem specification, optimization algorithms, and analytics. The authors demonstrate its performance using standard test problems as well as a constrained two-objective optimization scenario. The platform incorporates flexible computational workflows, supporting automatic gradient calculation, parallel processing across central processing units and graphics processing units, and distributed computing across clusters.

The key findings highlight that pymoo successfully unifies several critical aspects of multi-objective problem-solving. First, it offers a modular, plug-and-play structure that allows domain experts to customize key evolutionary mechanisms, such as initial sampling and search operators, to fit proprietary business logic. Second, it integrates high-performance execution options, enabling vectorized computations and multi-threaded processing to prevent computational bottlenecks when evaluating complex models. Third, it provides multi-dimensional visual analytics, such as radar charts, heat maps, and parallel coordinate plots, alongside multi-criteria decision-making tools. These analytical tools allow decision-makers to evaluate trade-offs and systematically identify single preferred solutions from a set of non-dominated alternatives.

These capabilities significantly lower implementation costs, reduce development time, and eliminate the risks associated with writing optimization routines from scratch. By integrating decision support directly into the software pipeline, the platform helps bridge the gap between technical data modeling and executive decision-making. Leadership teams can balance conflicting priorities with greater confidence, using mathematically sound metrics to assess solution quality and proximity to optimal performance.

Organizations developing complex simulation or machine-learning pipelines in Python should consider piloting pymoo to address multi-objective trade-offs. Teams are advised to leverage the framework's parallelization capabilities when working with resource-intensive models and to establish standardized decision-making rules early in the project lifecycle. Future planned enhancements include automated multi-algorithm benchmarking tools and broader integration of classical single-objective methods to support local searches. Overall, the framework provides a highly credible and robust toolkit for multi-objective optimization, though practitioners should remain aware of computational limits when calculating exact performance metrics in very high-dimensional problem spaces.

Cover for Pymoo: Multi-Objective Optimization in Python

Abstract

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: this https URL

Table of Contents

  • 1 Introduction
  • 2 Related Works
  • 3 Getting Started 11 1 All source codes in this paper are related to pymoo version 0.3.2. A getting started guide for upcoming versions can be found at pymoo.org.
  • 3.1 Installation
  • 3.2 Problem Definition
  • 3.3 Algorithm Initialization
  • 3.4 Optimization
  • 4 Architecture
  • 5 Problems
  • 5.1 Implementations
  • 5.2 Gradients
  • 5.3 Parallelization
  • 6 Optimization Module
  • 6.1 Algorithms
  • 6.2 Operators
  • 6.3 Termination Criterion
  • 6.4 Decomposition
  • 7 Analytics
  • 7.1 Performance Indicators
  • 7.2 Visualization
  • 7.3 Decision Making
  • 8 Concluding Remarks
  • References

Knowls

  1. Knowl 1 — Architecture of the Pymoo Optimization Framework

    model/method

    Pymoo is an open-source Python framework structured around three foundational modules designed for multi-objective and many-objective optimization:

    • Problems: Encapsulates single-, multi-, and many-objective problem definitions. It standardizes inputs and outputs, provides automatic differentiation for analytical or algorithmic gradient calculation using Autograd, and supports parallelization across multiple compute paradigms.
    • Optimization: Houses modular components for evolutionary and metaheuristic optimization algorithms. Algorithms are assembled in a plug-and-play architecture from interchangeable sub-modules, including initial population sampling (random, Latin-Hypercube), mating selection, crossover operators (single-point, two-point, uniform, half-uniform, simulated binary crossover), mutation operators (polynomial, bitflip), survival selection, constraint handling, reference direction generators (Das-Dennis and Riesz-Energy methods), decomposition strategies, and convergence-based termination criteria.
    • Analytics: Contains post-processing, visualization, and decision-support utilities. This includes low- and high-dimensional visualization tools, performance quality indicators (such as Generational Distance, Inverted Generational Distance, and Hypervolume), theoretical optimality metrics (Karush-Kuhn-Tucker Proximity Metric), and multi-criteria decision making (MCDM) tools for a posteriori solution selection.
  2. Knowl 2 — Standard Optimization Problem Formulation and Normalization in Pymoo

    definition

    In pymoo, optimization problems are internally defined and processed as pure minimization problems with inequality constraints in less-than-or-equal-to form and equality constraints in zero-sum form:

    minfm(x),m=1,,M,s.t.gj(x)0,j=1,,J,hk(x)=0,k=1,,K,xiLxixiU,i=1,,N,\begin{aligned} \min \quad & f_m(\mathbf{x}), \quad m = 1, \dots, M, \\ \text{s.t.} \quad & g_j(\mathbf{x}) \le 0, \quad j = 1, \dots, J, \\ & h_k(\mathbf{x}) = 0, \quad k = 1, \dots, K, \\ & x_i^L \le x_i \le x_i^U, \quad i = 1, \dots, N, \end{aligned}

    where x=(x1,,xN)T\mathbf{x} = (x_1, \dots, x_N)^T is the vector of NN decision variables bounded by lower limits xiLx_i^L and upper limits xiUx_i^U, MM is the number of objective functions, JJ is the number of inequality constraints, and KK is the number of equality constraints.

    To adhere to this standard form:

    1. Maximization Objectives: Any objective forig(x)f_{\text{orig}}(\mathbf{x}) that is to be maximized is converted into a minimization objective via forig(x)-f_{\text{orig}}(\mathbf{x}).
    2. Greater-Than-or-Equal Constraints: Any constraint formulated as gorig(x)0g_{\text{orig}}(\mathbf{x}) \ge 0 is converted into 0\le 0 format by multiplying by 1-1, yielding gorig(x)0-g_{\text{orig}}(\mathbf{x}) \le 0.
    3. Constraint Normalization: To prevent constraints with large numerical magnitudes from dominating the feasibility metric, inequality constraints are normalized by dividing the constraint expression by its constant resource term CjC_j:
    g~j(x)=gj(x)Cj0\tilde{g}_j(\mathbf{x}) = \frac{g_j(\mathbf{x})}{C_j} \le 0

    where CjC_j represents the absolute constant boundary value of constraint jj.

  3. Knowl 3 — Pseudo-Weight Vector Decision Making Method

    equation

    The pseudo-weight vector method is an a posteriori multi-criteria decision making technique used to select a single representative solution x\mathbf{x} from an obtained non-dominated Pareto set based on user-defined objective priorities. For an MM-objective problem, the pseudo-weight wiw_i corresponding to the ii-th objective function for a solution x\mathbf{x} is calculated as:

    wi=(fimaxfi(x))/(fimaxfimin)m=1M(fmmaxfm(x))/(fmmaxfmmin),i=1,,M,w_i = \frac{(f_i^{\max} - f_i(\mathbf{x})) / (f_i^{\max} - f_i^{\min})}{\sum_{m=1}^M (f_m^{\max} - f_m(\mathbf{x})) / (f_m^{\max} - f_m^{\min})}, \quad i = 1, \dots, M,

    where fmmaxf_m^{\max} and fmminf_m^{\min} denote the maximum and minimum values of the mm-th objective function across all solutions in the non-dominated set, respectively.

    The pseudo-weight vector w=(w1,w2,,wM)T\mathbf{w} = (w_1, w_2, \dots, w_M)^T satisfies i=1Mwi=1\sum_{i=1}^M w_i = 1 and quantifies the relative closeness of the solution to the best value of each objective. A solution is chosen by finding the point in the Pareto set whose pseudo-weight vector w\mathbf{w} has the minimum Euclidean distance to a target preference weight vector wtarget\mathbf{w}^{\text{target}}. For non-convex Pareto fronts, the pseudo-weight vector yields trade-off distributions that differ from those generated by the weighted-sum method.

  4. Knowl 4 — High Trade-Off (Knee Point) Selection Metric

    equation

    To identify high trade-off or "knee" solutions from a non-dominated set SS of an MM-objective minimization problem during post-processing, the pairwise trade-off metric T(xi,xj)T(\mathbf{x}_i, \mathbf{x}_j) between two distinct non-dominated solutions xi,xjS\mathbf{x}_i, \mathbf{x}_j \in S measures the ratio of aggregated sacrifice to aggregated gain:

    T(xi,xj)=m=1Mmax[0,fm(xj)fm(xi)]m=1Mmax[0,fm(xi)fm(xj)],T(\mathbf{x}_i, \mathbf{x}_j) = \frac{\sum_{m=1}^M \max[0, f_m(\mathbf{x}_j) - f_m(\mathbf{x}_i)]}{\sum_{m=1}^M \max[0, f_m(\mathbf{x}_i) - f_m(\mathbf{x}_j)]},

    where the numerator represents the total degradation (sacrifice) in objectives where xj\mathbf{x}_j is worse than xi\mathbf{x}_i, and the denominator represents the total improvement (gain) where xj\mathbf{x}_j is better than xi\mathbf{x}_i.

    For a candidate solution xi\mathbf{x}_i, the overall trade-off measure μ(xi,S)\mu(\mathbf{x}_i, S) evaluated over a neighborhood set of solutions SneighborSS_{\text{neighbor}} \subseteq S (such as the kk-nearest neighbors in the objective space) is defined as:

    μ(xi,S)=minxjSneighborT(xi,xj).\mu(\mathbf{x}_i, S) = \min_{\mathbf{x}_j \in S_{\text{neighbor}}} T(\mathbf{x}_i, \mathbf{x}_j).

    The solution with the maximum value of μ(xi,S)\mu(\mathbf{x}_i, S) across the Pareto set is selected as the preferred knee solution, representing the design point where any further gain in an objective requires the greatest minimum unit sacrifice across other objectives.

  5. Knowl 5 — Spatial Movement Convergence Termination Criterion

    model/method

    Pymoo provides a convergence-based termination criterion that monitors the stability of evolutionary algorithms in multi-objective and many-objective optimization without relying solely on fixed evaluation budgets.

    The procedure operates as follows:

    1. Distance Tracking: At each generation, the algorithm computes the movement of each solution relative to its nearest neighbor in both the decision variable space and the normalized objective space.
    2. Windowed Assessment: To ensure robustness against stochastic generational fluctuations, the maximum movement among all population members is recorded over a sliding window of the last kk generations.
    3. Objective Space Normalization: In the objective space, the extreme boundary points are dynamically tracked across generations. Normalization bounds are locked and applied once these boundary points stabilize.
    4. Stopping Condition: When the maximum movement across the population over the kk-generation window falls below a predefined tolerance threshold ϵ\epsilon, the algorithm terminates, indicating that population movement has plateaued.
  6. Knowl 6 — Multi-Objective Decomposition Methods in Pymoo

    model/method

    Pymoo implements several decomposition scalarization functions to transform an MM-objective optimization problem into parameterized single-objective subproblems using a reference direction vector w=(w1,,wM)T\mathbf{w} = (w_1, \dots, w_M)^T and an ideal objective vector z=(z1,,zM)T\mathbf{z}^* = (z_1^*, \dots, z_M^*)^T:

    • Weighted-Sum Method (p=1p=1 lpl_p-metric):
    minxm=1Mwmfm(x)\min_{\mathbf{x}} \sum_{m=1}^M w_m f_m(\mathbf{x})

    This linear scalarization can only find solutions located on convex regions of the Pareto front.

    • Tchebysheff Method (p=p=\infty lpl_p-metric):
    minxmaxm=1,,M{wmfm(x)zm}\min_{\mathbf{x}} \max_{m=1,\dots,M} \left\{ w_m |f_m(\mathbf{x}) - z_m^*| \right\}

    This method can identify solutions on both convex and non-convex regions of the Pareto front.

    • Achievement Scalarization Function (ASF) and Augmented ASF (AASF): Extends Tchebysheff scalarization with an augmentation term to avoid weakly Pareto-optimal solutions:
    minx(maxm=1,,M{fm(x)zmwm}+ρm=1Mfm(x)zmwm)\min_{\mathbf{x}} \left( \max_{m=1,\dots,M} \left\{ \frac{f_m(\mathbf{x}) - z_m^*}{w_m} \right\} + \rho \sum_{m=1}^M \frac{f_m(\mathbf{x}) - z_m^*}{w_m} \right)

    where ρ>0\rho > 0 is a small scalar parameter.

    • Penalty Boundary Intersection (PBI): Decomposes the objective vector into a projection distance d1d_1 along the reference line and a perpendicular distance d2d_2 from the reference line:
    minx(d1+θd2)=((f(x)z)Tww+θ(f(x)z)d1ww)\min_{\mathbf{x}} \left( d_1 + \theta d_2 \right) = \left( \frac{\|(\mathbf{f}(\mathbf{x}) - \mathbf{z}^*)^T \mathbf{w}\|}{\|\mathbf{w}\|} + \theta \left\| (\mathbf{f}(\mathbf{x}) - \mathbf{z}^*) - d_1 \frac{\mathbf{w}}{\|\mathbf{w}\|} \right\| \right)

    where θ\theta is a user-defined penalty parameter balancing convergence along the direction against diversity perpendicular to it.

  7. Knowl 7 — Performance Quality Indicators in Pymoo

    model/method

    Pymoo includes performance indicators to quantitatively evaluate the convergence, diversity, and optimality of a non-dominated solution set SS obtained by a multi-objective algorithm:

    • Generational Distance (GD): Measures convergence by calculating the average Euclidean distance from each solution in SS to its nearest point on the true Pareto front PFPF:
    GD(S,PF)=1S(sSminpPFsp2p)1/p\text{GD}(S, PF) = \frac{1}{|S|} \left( \sum_{\mathbf{s} \in S} \min_{\mathbf{p} \in PF} \|\mathbf{s} - \mathbf{p}\|_2^p \right)^{1/p}
    • Inverted Generational Distance (IGD): Measures both convergence and coverage by calculating the average Euclidean distance from each reference point on PFPF to its nearest solution in SS:
    IGD(S,PF)=1PF(pPFminsSps2p)1/p\text{IGD}(S, PF) = \frac{1}{|PF|} \left( \sum_{\mathbf{p} \in PF} \min_{\mathbf{s} \in S} \|\mathbf{p} - \mathbf{s}\|_2^p \right)^{1/p}

    (with p=1p=1 commonly used). IGD is not strictly Pareto compliant.

    • Modified Generational Distance Plus (GD+ / IGD+): Modifies the distance calculation to account for Pareto dominance relations, replacing Euclidean distance with a directional distance:
    d+(p,s)=m=1M(max[0,smpm])2d^+(\mathbf{p}, \mathbf{s}) = \sqrt{\sum_{m=1}^M \left(\max[0, s_m - p_m]\right)^2}

    This formulation ensures that IGD+ is weakly Pareto compliant.

    • Hypervolume (HV): Computes the multi-dimensional volume of the objective space dominated by SS and bounded by a predefined reference point zref\mathbf{z}^{\text{ref}}. Hypervolume is strictly Pareto compliant.

    • Karush-Kuhn-Tucker Proximity Metric (KKTPM): An analytical indicator for continuous problems that evaluates the theoretical proximity of a solution set to the true Pareto-optimal set using KKT optimality conditions, enabling performance assessment when the exact Pareto front is analytically unknown.

  8. Knowl 8 — High-Dimensional Objective Space Visualization Techniques in Pymoo

    model/method

    Pymoo provides a visualization suite built on top of Matplotlib tailored for multi-objective (M3M \le 3) and many-objective (M>3M > 3) optimization data:

    • Scatter Plots and Pairwise Scatter Matrix: Displays 2D and 3D objective trade-offs directly, or generates an M×MM \times M matrix of 2D projections for problems with more than three objectives.
    • Parallel Coordinate Plots (PCP): Maps MM objectives onto MM parallel vertical axes. Each solution is rendered as a continuous polyline intersecting each axis at its corresponding objective value, allowing pattern inspection across large solution sets.
    • Radviz Projection: Positions MM objective axes as anchors uniformly distributed along the circumference of a 2D unit circle. Solutions are represented as points whose coordinates result from a spring-force equilibrium determined by their normalized objective values.
    • Star Coordinate Plots: Similar to Radviz, projects high-dimensional points into a 2D radial coordinate system but allows points to extend beyond the circle based on axis transformations.
    • Heatmaps: Presents the population as a 2D grid where rows represent individual solutions and columns represent objective or decision variables, with numerical values mapped to color scales and sorted lexicographically.
    • Petal Diagrams: Displays an individual solution as a circular diagram where each objective is represented by a pie segment (petal) whose radius corresponds to the objective magnitude.
    • Spider-Web (Radar) Diagrams: Plots a single solution's objective vector on radial axes bounded between an inner polygon representing the ideal point and an outer polygon representing the nadir point.
  9. Knowl 9 — Parallel Evaluation Strategies in Pymoo

    model/method

    Pymoo supports three execution models to parallelize computationally expensive objective and constraint function evaluations across candidate solutions:

    1. Vectorized Evaluation: Evaluates an entire population of nn candidate solutions simultaneously by structuring the population as an n×Nn \times N matrix (where NN is the number of decision variables). Operations are executed via vectorized NumPy routines or GPU tensors via PyTorch.
    2. Threaded Loop-Wise Evaluation: Executes independent single-solution evaluations concurrently across CPU threads using Python's built-in thread pool infrastructure, controlled by specifying the thread count in the problem evaluation interface.
    3. Distributed Evaluation: Distributes individual or batch solution evaluations across multi-core processors or multi-node computing clusters using Dask. This supports distributed matrix operations and element-wise task scheduling on remote worker nodes.

Coverage note — Concrete definitions and formulas of external benchmark suites (e.g., ZDT, DTLZ, WFG) and standard evolutionary operators (e.g., one-point crossover, bitflip mutation) were omitted as knowls because they represent standard literature integrated into the library rather than original contributions of the paper.

References

  1. 1.G. Rossum, ‘‘Python reference manual,’’ CWI, Amsterdam, The Netherlands, Tech. Rep. 10.5555/869369, 1995. [Online]. Available: https://dl.acm.org/doi/book/10.5555/869369
  2. 2.M. Bücker, G. Corliss, P. Hovland, U. Naumann, and B. Norris, Automatic Differentiation: Applications, Theory, and Implementations (Lecture Notes in Computational Science and Engineering). Berlin, Germany: Springer-Verlag, 2006.
  3. 3.G. Brandl. (2019). Sphinx Documentation. [Online]. Available: https://www.sphinx-doc.org/
  4. 4.A. Pajankar, Python Unit Test Automation: Practical Techniques for Python Developers and Testers, 1st ed. Berkely, CA, USA: Apress, 2017.
  5. 5.J. J. Durillo and A. J. Nebro, ‘‘JMetal: A java framework for multi-objective optimization,’’ Adv. Eng. Softw., vol. 42, no. 10, pp. 760–771, Oct. 2011. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S0965997811001219
  6. 6.J. Gosling, B. Joy, G. L. Steele, G. Bracha, and A. Buckley, The Java Language Specification, Java SE 8 Edition, 1st ed. Reading, MA, USA: Addison-Wesley, 2014.
  7. 7.A. Benítez-Hidalgo, A. J. Nebro, J. García-Nieto, I. Oregi, and J. Del Ser, ‘‘JMetalPy: A Python framework for multi-objective optimization with metaheuristics,’’ Swarm Evol. Comput., vol. 51, Dec. 2019, Art. no. 100598. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S2210650219301397
  8. 8.D. Izzo, ‘‘PyGMO and PyKEP: Open source tools for massively parallel optimization in astrodynamics (the case of interplanetary trajectory optimization),’’ in 5th Int. Conf. Astrodyn. Tools Techn. (ICATT), 2012. [Online]. Available: http://www.esa.int/gsp/ACT/doc/MAD/pub/ACT-RPR-MAD-2012-(ICATT)PyKEP-PaGMO-SOCIS.pdf
  9. 9.D. Hadka. Platypus: Multiobjective Optimization in Python. Accessed: May 16, 2019. [Online]. Available: https://platypus.readthedocs.io
  10. 10.F.-A. Fortin, F.-M. De Rainville, M.-A. Gardner, M. Parizeau, and C. Gagné, ‘‘DEAP: Evolutionary algorithms made easy,’’ J. Mach. Learn. Res., vol. 13, pp. 2171–2175, Jul. 2012.
  11. 11.A. Garrett. Inspyred: Python Library for Bio-Inspired Computational Intelligence. Accessed: May 16, 2019. [Online]. Available: https://github.com/aarongarrett/inspyred
  12. 12.K. Deb, A. Pratap, S. Agarwal, and T. Meyarivan, ‘‘A fast and elitist multiobjective genetic algorithm: NSGA-II,’’ IEEE Trans. Evol. Comput., vol. 6, no. 2, pp. 182–197, Apr. 2002, doi: 10.1109/4235.996017.
  13. 13.Y. Tian, R. Cheng, X. Zhang, and Y. Jin, ‘‘PlatEMO: A MATLAB platform for evolutionary multi-objective optimization [Educational Forum],’’ IEEE Comput. Intell. Mag., vol. 12, no. 4, pp. 73–87, Nov. 2017.
  14. 14.D. Hadka. MOEA Framework: A Free and Open Source Java Framework for Multiobjective Optimization. Accessed: May 16, 2019. [Online]. Available: http://moeaframework.org
  15. 15.E. López-Camacho, M. J. García Godoy, A. J. Nebro, and J. F. Aldana-Montes, ‘‘JMetalCpp: Optimizing molecular docking problems with a C++ Metaheuristic framework,’’ Bioinformatics, vol. 30, no. 3, pp. 437–438, Feb. 2014, doi: 10.1093/bioinformatics/btt679.
  16. 16.F. Biscani, D. Izzo, and C. H. Yam, ‘‘A global optimisation toolbox for massively parallel engineering optimisation,’’ Apr. 2010, arXiv:1004.3824. [Online]. Available: http://arxiv.org/abs/1004.3824
  17. 17.PS Foundation. PyPI: The Python Package Index. Accessed: May 20, 2019. [Online]. Available: https://pypi.org
  18. 18.S. Behnel, R. Bradshaw, C. Citro, L. Dalcin, D. S. Seljebotn, and K. Smith, ‘‘Cython: The best of both worlds,’’ Comput. Sci. Eng., vol. 13, no. 2, pp. 31–39, Mar. 2011.
  19. 19.K. Deb, Multi-Objective Optimization Using Evolutionary Algorithms. New York, NY, USA: Wiley, 2001.
  20. 20.T. Oliphant, NumPy: A Guide to NumPy. USA: Trelgol Publishing, 2006. Accessed: May 16, 2019. [Online]. Available: https://web.mit.edu/dvp/Public/numpybook.pdf
  21. 21.K. Deb and R. Datta, ‘‘A bi-objective constrained optimization algorithm using a hybrid evolutionary and penalty function approach,’’ Eng. Optim., vol. 45, no. 5, pp. 503–527, May 2013.
  22. 22.D. Maclaurin, D. Duvenaud, and R. P. Adams, ‘‘Autograd: Effortless gradients in numpy,’’ in Proc. ICML AutoML Workshop, 2015. [Online]. Available: https://bib/maclaurin/maclaurinautograd/automl-short.pdf, https://indico.lal.in2p3.fr/event/2914/session/1/contribution/6/3/material/paper/0.pdf, and https://github.com/HIPS/autograd
  23. 23.K. Deb and M. Abouhawwash, ‘‘An optimality theory based proximity measure for set based multi-objective optimization,’’ IEEE Trans. Evol. Comput., vol. 20, no. 4, pp. 515–528, Sep. 2016.
  24. 24.D. H. Wolpert and W. G. Macready, ‘‘No free lunch theorems for optimization,’’ IEEE Trans. Evol. Comput., vol. 1, no. 1, pp. 67–82, Apr. 1997, doi: 10.1109/4235.585893.
  25. 25.A. Paszke, S. Gross, S. Chintala, G. Chanan, E. Yang, Z. DeVito, Z. Lin, A. Desmaison, L. Antiga, and A. Lerer, ‘‘Automatic differentiation in pytorch,’’ Tech. Rep., 2017. [Online]. Available: https://github.com/pytorch/pytorch/blob/master/CITATION
  26. 26.Dask Development Team. (2016). Dask: Library for Dynamic Task Scheduling. [Online]. Available: https://dask.org
  27. 27.S. Mishra, S. Mondal, and S. Saha, ‘‘Fast implementation of steady-state NSGA-II,’’ in Proc. IEEE Congr. Evol. Comput. (CEC), Jul. 2016, pp. 3777–3784.
  28. 28.I. Das and J. E. Dennis, ‘‘Normal-boundary intersection: A new method for generating the Pareto surface in nonlinear multicriteria optimization problems,’’ SIAM J. Optim., vol. 8, no. 3, pp. 631–657, Aug. 1998.
  29. 29.J. Blank, K. Deb, Y. Dhebar, S. Bandaru, and H. Seada, ‘‘Generating well-spaced points on a unit simplex for evolutionary many-objective optimization,’’ IEEE Trans. Evol. Comput., early access, May 6, 2020. [Online]. Available: https://ieeexplore.ieee.org/document/9086772, doi: 10.1109/TEVC.2020.2992387.
  30. 30.J. C. Bean, ‘‘Genetic algorithms and random keys for sequencing and optimization,’’ ORSA J. Comput., vol. 6, no. 2, pp. 154–160, May 1994, doi: 10.1287/ijoc.6.2.154.
  31. 31.K. Price, R. M. Storn, and J. A. Lampinen, Differential Evolution: A Practical Approach to Global Optimization (Natural Computing Series). Berlin, Germany: Springer-Verlag, 2005.
  32. 32.J. A. Nelder and R. Mead, ‘‘A simplex method for function minimization,’’ Comput. J., vol. 7, no. 4, pp. 308–313, Jan. 1965, doi: 10.1093/comjnl/7.4.308.
  33. 33.N. Hansen, The CMA Evolution Strategy: A Comparing Review. Berlin, Germany: Springer, 2006, pp. 75–102, doi: 10.1007/3-540-32494-1_4.
  34. 34.K. Deb and J. Sundar, ‘‘Reference point based multi-objective optimization using evolutionary algorithms,’’ in Proc. 8th Annu. Conf. Genetic Evol. Comput. (GECCO), New York, NY, USA, 2006, pp. 635–642, doi: 10.1145/1143997.1144112.
  35. 35.K. Deb and H. Jain, ‘‘An evolutionary many-objective optimization algorithm using reference-point-based nondominated sorting approach, part I: Solving problems with box constraints,’’ IEEE Trans. Evol. Comput., vol. 18, no. 4, pp. 577–601, Aug. 2014.
  36. 36.H. Jain and K. Deb, ‘‘An evolutionary many-objective optimization algorithm using reference-point based nondominated sorting approach, part II: Handling constraints and extending to an adaptive approach,’’ IEEE Trans. Evol. Comput., vol. 18, no. 4, pp. 602–622, Aug. 2014.
  37. 37.J. Blank, K. Deb, and P. C. Roy, ‘‘Investigating the normalization procedure of NSGA-III,’’ in Evolutionary Multi-Criterion Optimization, K. Deb, E. Goodman, C. A. Coello Coello, K. Klamroth, K. Miettinen, S. Mostaghim, and P. Reed, Eds. Cham, Switzerland: Springer, 2019, pp. 229–240.
  38. 38.H. Seada and K. Deb, ‘‘A unified evolutionary optimization procedure for single, multiple, and many objectives,’’ IEEE Trans. Evol. Comput., vol. 20, no. 3, pp. 358–369, Jun. 2016.
  39. 39.Y. Vesikar, K. Deb, and J. Blank, ‘‘Reference point based NSGA-III for preferred solutions,’’ in Proc. IEEE Symp. Ser. Comput. Intell. (SSCI), Nov. 2018, pp. 1587–1594.
  40. 40.Q. Zhang and H. Li, ‘‘A multi-objective evolutionary algorithm based on decomposition,’’ IEEE Trans. Evol. Comput., vol. 11, no. 6, pp. 712–731, Dec. 2007.
  41. 41.M. D. McKay, R. J. Beckman, and W. J. Conover, ‘‘A comparison of three methods for selecting values of input variables in the analysis of output from a computer code,’’ Technometrics, vol. 42, no. 1, pp. 55–61, Feb. 2000, doi: 10.2307/1271432.
  42. 42.K. Deb, K. Sindhya, and T. Okabe, ‘‘Self-adaptive simulated binary crossover for real-parameter optimization,’’ in Proc. 9th Annu. Conf. Genetic Evol. Comput. (GECCO), New York, NY, USA, 2007, pp. 1187–1194, doi: 10.1145/1276958.1277190.
  43. 43.K. Deb and D. Deb, ‘‘Analysing mutation schemes for real-parameter genetic algorithms,’’ Int. J. Artif. Intell. Soft Comput., vol. 4, no. 1, pp. 1–28, 2014.
  44. 44.D. E. Goldberg, Genetic Algorithms for Search, Optimization, and Machine Learning. Reading, MA, USA: Addison-Wesley, 1989.
  45. 45.K. Deb and M. Goyal, ‘‘A flexible optimization procedure for mechanical component design based on genetic adaptive search,’’ J. Mech. Design, vol. 120, no. 2, pp. 162–164, Jun. 1998.
  46. 46.K. Deb and C. Myburgh, ‘‘A population-based fast algorithm for a billion-dimensional resource allocation problem with integer variables,’’ Eur. J. Oper. Res., vol. 261, no. 2, pp. 460–474, Sep. 2017.
  47. 47.J. Blank and K. Deb, ‘‘A running performance metric and termination criterion for evaluating evolutionary multi- and many-objective optimization algorithms,’’ in Proc. IEEE World Congr. Comput. Intell. (WCCI), 2020.
  48. 48.A. Santiago, H. J. F. Huacuja, B. Dorronsoro, J. E. Pecero, C. G. Santillan, J. J. G. Barbosa, and J. C. S. Monterrubio, A Survey of Decomposition Methods for Multi-Objective Optimization. Cham, Switzerland: Springer, 2014, pp. 453–465, doi: 10.1007/978-3-319-05170-3_31.
  49. 49.A. P. Wierzbicki, ‘‘The use of reference objectives in multiobjective optimization,’’ in Multiple Criteria Decision Making Theory and Application. Cham, Switzerland: Springer, 1980, pp. 468–486.
  50. 50.A. P. Wierzbicki, ‘‘A mathematical basis for satisficing decision making,’’ Math. Model., vol. 3, no. 5, pp. 391–405, 1982. [Online]. Available: http://www.sciencedirect.com/science/article/pii/0270025582900380
  51. 51.J. Knowles and D. Corne, ‘‘On metrics for comparing non-dominated sets,’’ in Proc. Congr. Evol. Comput. Conf. (CEC), 2002, pp. 711–716.
  52. 52.D. A. V. Veldhuizen and D. A. V. Veldhuizen, ‘‘Multiobjective evolutionary algorithms: Classifications, analyses, and new innovations,’’ Evol. Comput., Air Force Inst. Technol., Dayton, OH, USA, Tech. Rep. AFIT/DS/ENG/99-01, 1999.
  53. 53.H. Ishibuchi, H. Masuda, Y. Tanigaki, and Y. Nojima, ‘‘Modified distance calculation in generational distance and inverted generational distance,’’ in Evolutionary Multi-Criterion Optimization, A. Gaspar-Cunha, C. H. Antunes, and C. C. Coello, Eds. Cham, Switzerland: Springer, 2015, pp. 110–125.
  54. 54.E. Zitzler and L. Thiele, ‘‘Multiobjective optimization using evolutionary algorithms—A comparative case study,’’ in Proc. 5th Int. Conf. Parallel Problem Solving from Nature (PPSN), V. London, UK, U.K.: Springer-Verlag, 1998, pp. 292–304. [Online]. Available: http://dl.acm.org/citation.cfm?id=645824.668610
  55. 55.E. Zitzler, D. Brockhoff, and L. Thiele, ‘‘The hypervolume indicator revisited: On the design of Pareto-compliant indicators via weighted integration,’’ in Proc. 4th Int. Conf. Evol. Multi-Criterion Optim. (EMO), Berlin, Germany: Springer-Verlag, 2007, pp. 862–876. [Online]. Available: http://dl.acm.org/citation.cfm?id=1762545.1762618
  56. 56.J. D. Hunter, ‘‘Matplotlib: A 2D graphics environment,’’ Comput. Sci. Eng., vol. 9, no. 3, pp. 90–95, 2007.
  57. 57.A. K. A. Talukder and K. Deb, ‘‘PaletteViz: A visualization method for functional understanding of high-dimensional Pareto-optimal data-sets to aid multi-criteria decision making,’’ IEEE Comput. Intell. Mag., vol. 15, no. 2, pp. 36–48, May 2020.
  58. 58.J. M. Chambers and B. Kleiner, ‘‘10 graphical techniques for multivariate data and for clustering,’’ Tech. Rep., 1982.
  59. 59.E. J. Wegman, ‘‘Hyperdimensional data analysis using parallel coordinates,’’ J. Amer. Stat. Assoc., vol. 85, no. 411, pp. 664–675, Sep. 1990.
  60. 60.P. Hoffman, G. Grinstein, and D. Pinkney, ‘‘Dimensional anchors: A graphic primitive for multidimensional multivariate information visualizations,’’ in Proc. Workshop New Paradigms Inf. Vis. Manipulation Conjunct 8th ACM Int. Conf. Inf. Knowl. Manage. (NPIVM), New York, NY, USA, 1999, pp. 9–16.
  61. 61.E. Kandogan, ‘‘Star coordinates: A multi-dimensional visualization technique with uniform treatment of dimensions,’’ in Proc. IEEE Inf. Vis. Symp., Late Breaking Hot Topics, Oct. 2000, pp. 9–12.
  62. 62.A. Pryke, S. Mostaghim, and A. Nazemi, ‘‘Heatmap visualization of population based multi objective algorithms,’’ in Evolutionary Multi-Criterion Optimization, S. Obayashi, K. Deb, C. Poloni, T. Hiroyasu, and T. Murata, Eds. Berlin, Germany: Springer, 2007, pp. 361–375.
  63. 63.Y. S. Tan and N. M. Fraser, ‘‘The modified star graph and the petal diagram: Two new visual aids for discrete alternative multicriteria decision making,’’ J. Multi-Criteria Decis. Anal., vol. 7, no. 1, pp. 20–33, Jan. 1998.
  64. 64.E. Kasanen, R. Östermark, and M. Zeleny, ‘‘Gestalt system of holistic graphics: New management support view of MCDM,’’ Comput. OR, vol. 18, no. 2, pp. 233–239, 1991, doi: 10.1016/0305-0548(91)90093-7.
  65. 65.L. Rachmawati and D. Srinivasan, ‘‘Multiobjective evolutionary algorithm with controllable focus on the knees of the Pareto front,’’ IEEE Trans. Evol. Comput., vol. 13, no. 4, pp. 810–824, Aug. 2009.
  66. 66.K. Deb, A. Sinha, P. J. Korhonen, and J. Wallenius, ‘‘An interactive evolutionary multiobjective optimization method based on progressively approximated value functions,’’ IEEE Trans. Evol. Comput., vol. 14, no. 5, pp. 723–739, Oct. 2010.

Citation

MLA
Blank, J., and K. Deb. “Pymoo: Multi-Objective Optimization in Python”. IEEE Access, vol. 8, 2020, pp. 89497–509, https://doi.org/10.1109/ACCESS.2020.2990567.
APA
Blank, J., & Deb, K. (2020). Pymoo: Multi-Objective Optimization in Python. IEEE Access, 8, 89497–89509. https://doi.org/10.1109/ACCESS.2020.2990567
Chicago
Blank, J., and K. Deb. 2020. “Pymoo: Multi-Objective Optimization in Python”. IEEE Access 8: 89497–509. https://doi.org/10.1109/ACCESS.2020.2990567.
Harvard
Blank, J. and Deb, K. (2020) “Pymoo: Multi-Objective Optimization in Python”, IEEE Access, 8, pp. 89497–89509. Available at: https://doi.org/10.1109/ACCESS.2020.2990567.
Vancouver
1. Blank J, Deb K (2020) Pymoo: Multi-Objective Optimization in Python. IEEE Access 8:89497–89509

BibTeX

@article{Blank_2020, title={Pymoo: Multi-Objective Optimization in Python}, volume={8}, ISSN={2169-3536}, url={http://dx.doi.org/10.1109/ACCESS.2020.2990567}, DOI={10.1109/access.2020.2990567}, journal={IEEE Access}, publisher={Institute of Electrical and Electronics Engineers (IEEE)}, author={Blank, Julian and Deb, Kalyanmoy}, year={2020}, pages={89497–89509} }
Metadata:Crossref

Source Code

This paper has an official code repository available. Click below to access the source code.

View Repository

Access the Paper

This paper is available from its original source. Click below to access the PDF.

Open PDF