pymoo
Multi-objective optimization framework. NSGA-II, NSGA-III, MOEA/D, Pareto fronts, constraint handling, benchmarks (ZDT, DTLZ), for engineering design and optimization problems.
Author
Category
AI Skill DevelopmentInstall
Hot:9
Download and extract to your skills directory
Copy command and send to OpenClaw for auto-install:
Download and install this skill https://openskills.cc/api/download?slug=k-dense-ai-scientific-skills-pymoo&locale=en&source=copy
Pymoo - Python Multi-Objective Optimization Framework
Skill Overview
Pymoo is the most comprehensive multi-objective optimization framework in Python, offering advanced evolutionary algorithms such as NSGA-II/III and MOEA/D, specifically designed to solve Pareto fronts and complex constrained optimization problems.
Applicable Scenarios
When it is necessary to find the best trade-offs among cost, performance, reliability, and other conflicting objectives, using pymoo can quickly produce a Pareto-optimal solution set to help engineers make more informed design decisions.
Built-in standard test problems like ZDT, DTLZ, and WFG support algorithm performance comparison and validation, making it an ideal tool for researchers in evolutionary algorithms. It can be used for algorithm benchmarks in published papers.
After obtaining the Pareto set, pymoo provides various MCDM (multi-criteria decision making) methods such as pseudo-weighting, compromise programming, and knee-point identification to help select the preferred optimal solutions from many options.
Core Features
All algorithms can be called uniformly via the
minimize() function. It supports single-objective (GA, DE, PSO, CMA-ES), multi-objective (NSGA-II, MOEA/D), and many-objective (NSGA-III) optimization, and automatically handles variable values, objective values, and constraint violations in the result object.By inheriting the
ElementwiseProblem class you can define custom optimization problems. It supports continuous, discrete, binary, and mixed variable types. It offers multiple constraint handling strategies such as feasibility-first, penalty methods, and constraint-to-objective conversion, and supports both equality and inequality constraints.Visualization automatically selects scatter plots (2–3 objectives) or parallel coordinate plots (4+ objectives) based on the number of objectives, and supports petal charts for solution comparisons. Built-in MCDM methods support objective normalization and preference weight settings, enabling a complete workflow from Pareto front to final decision.
Frequently Asked Questions
What is the difference between Pymoo and Scipy Optimize?
Scipy Optimize focuses on single-objective optimization, whereas Pymoo is designed for multi-objective optimization and provides evolutionary algorithms like NSGA-II/III and MOEA/D that can directly generate Pareto fronts. Pymoo is better suited for handling multi-objective conflicts, while Scipy is suitable for single-objective function optimization.
How to choose between NSGA-II and NSGA-III?
NSGA-II is suitable for optimization problems with 2–3 objectives and is a standard, reliable choice. When the number of objectives reaches 4 or more, NSGA-III is recommended; it uses reference directions to guide population distribution and can better handle high-dimensional objective spaces.
Can it handle constrained optimization problems?
Yes. Pymoo supports inequality constraints (g<=0) and equality constraints (h=0), and by default uses a feasibility-first strategy to handle them automatically. It also provides alternatives such as constraint-to-objective conversion and penalty functions, specifically designed to solve difficult constrained problems.