Skip to content
Data
Skill

/pymoo

Solves and validates single-, multi-, and many-objective optimization with pymoo, including NSGA-II, NSGA-III, MOEA/D, constraints, Pareto approximations, reference directions, and ZDT/DTLZ benchmarks for engineering and research problems.

From plugin
scientific-agent-skills
56k177 skills

Claude Code

$ npx -y skills add K-Dense-AI/scientific-agent-skills --skill pymoo --agent claude-code

SKILL.md

pymoo.SKILL.md
name: pymoo
description: Solves and validates single-, multi-, and many-objective optimization with pymoo, including NSGA-II, NSGA-III, MOEA/D, constraints, Pareto approximations, reference directions, and ZDT/DTLZ benchmarks for engineering and research problems.
license: Apache-2.0 license
allowed-tools: Read Write Edit Bash
compatibility: Requires Python 3.10+ and pymoo 0.6.2 with its NumPy, SciPy, matplotlib and autograd dependencies. Optional joblib for parallel runners, optuna for its algorithm wrapper, and dill for checkpoints. Network needed for installation only.
metadata:
  version: "1.6"
  last-reviewed: "2026-10-01"
  upstream-version: "0.6.2"
  skill-author: K-Dense Inc.

Pymoo - Multi-Objective Optimization in Python

Overview

Pymoo is a comprehensive Python framework for optimization with emphasis on multi-objective problems. Solve single and multi-objective optimization using state-of-the-art algorithms (NSGA-II/III, MOEA/D, SPEA2), benchmark problems (ZDT, DTLZ), customizable genetic operators, and multi-criteria decision making methods. Excels at finding trade-off solutions (Pareto fronts) for problems with conflicting objectives. Targets stable **pymoo 0.6.2**, reviewed 2026-10-01 against current official docs and native toy runs.

Installation

uv pip install "pymoo==0.6.2"

For reproducible environments, pin a version: `uv pip install "pymoo==0.6.2"`.

**Dependencies:** The released 0.6.2 wheel requires NumPy, SciPy, moocore, autograd, cma, matplotlib, alive_progress, and Deprecated. NumPy 2.x is supported. The current installation prose describes some dependencies as optional; the released package metadata governs installation. Joblib, Optuna and dill are separate dependencies for the corresponding recipes.

**Documentation:** https://pymoo.org/ โ€” LLM-friendly index: https://pymoo.org/llms.txt

When to Use This Skill

This skill should be used when:

  • Solving optimization problems with one or multiple objectives
  • Finding Pareto-optimal solutions and analyzing trade-offs
  • Implementing evolutionary algorithms (GA, DE, PSO, NSGA-II/III)
  • Working with constrained optimization problems
  • Benchmarking algorithms on standard test problems (ZDT, DTLZ, WFG)
  • Customizing genetic operators (crossover, mutation, selection)
  • Visualizing high-dimensional optimization results
  • Making decisions from multiple competing solutions
  • Handling binary, discrete, continuous, or mixed-variable problems

Core Concepts

The Unified Interface

Pymoo uses a consistent `minimize()` function for all optimization tasks:

from pymoo.optimize import minimize

result = minimize(
    problem,        # What to optimize
    algorithm,      # How to optimize
    termination,    # When to stop
    seed=1,
    verbose=True
)

**Result object contains:**

  • `result.X`: Decision variables of optimal solution(s)
  • `result.F`: Objective values of optimal solution(s)
  • `result.G`: Raw inequality values (`g(x) <= 0` is feasible)
  • `result.H`: Raw equality residuals
  • `result.CV`: Aggregated constraint violation under the configured tolerances
  • `result.algorithm`: Final algorithm state; history is retained when requested

**Check feasibility before plotting or selecting:** If no feasible solution was found, `result.X` and `result.F` can be `None`. With `return_least_infeasible=True`, a returned candidate can still violate constraints; report its `CV` and residuals instead of calling it feasible. Re-evaluate chosen candidates against the original physical constraints after any normalization or repair. See the [result contract](https://pymoo.org/interface/result.html).

Problem Definition Styles

Pymoo supports three problem definition styles:

  • **`Problem`**: Vectorized โ€” `_evaluate` receives a batch of solutions (matrix)
  • **`ElementwiseProblem`**: One solution per call โ€” recommended for custom problems and parallel evaluation
  • **`FunctionalProblem`**: Define objectives and constraints as separate functions without subclassing

Problem Types

**Single-objective:** One objective to minimize; negate a maximization objective and record the conversion **Multi-objective:** 2-3 conflicting objectives โ†’ Pareto front **Many-objective:** 4+ objectives โ†’ High-dimensional Pareto front **Constrained:** Objectives + inequality/equality constraints **Mixed-variable:** Continuous, integer, binary, and categorical variables in one problem **Dynamic:** Time-varying objectives or constraints

Quick Start Workflows

Nine workflows and context-dependent adaptation snippets are in [references/quick_start_workflows.md](references/quick_start_workflows.md):

| # | Workflow | Use when | | --- | --- | --- | | 1 | Single-objective optimization | one objective, GA or DE | | 2 | Multi-objective (2-3 objectives) | NSGA-II and a Pareto front | | 3 | Many-objective (4+ objectives) | NSGA-III or reference-direction methods | | 4 | Custom problem definition | subclassing `Problem` / `ElementwiseProblem` | | 5 | Constraint handling | inequality and equality constraints | | 6 | Decision making from a Pareto front | scalarization and MCDM selection | | 7 | Visualization | scatter, PCP, radviz, and heatmap views | | 8 | Parallel evaluation | threads or joblib for expensive objectives | | 9 | Mixed-variable optimization | integer, binary, and categorical variables |

Algorithm Selection Guide

Single-Objective Problems

| Algorithm | Best For | Key Features | |-----------|----------|--------------| | **GA** | General-purpose | Flexible, customizable operators | | **DE** | Continuous optimization | Good global search | | **PSO** | Smooth landscapes | Fast convergence | | **CMA-ES** | Difficult/noisy problems | Self-adapting |

Multi-Objective Problems (2-3 objectives)

| Algorithm | Best For | Key Features | |-----------|----------|--------------| | **NSGA-II** | Standard benchmark | Fast, reliable, well-tested | | **SPEA2** | Strength/density survival | Strength-based

Read more
@k-dense-ai
Ships withscientific-agent-skills

๐Ÿ”” Claude Scientific Skills is now Scientific Agent Skills. Same skills, broader compatibility โ€” now works with any AI agent that supports the open Agent Skills standard, not just Claude.

Stars on GitHub

Momentum

stars in total
55.6k
Star history of K-Dense-AI/scientific-agent-skills on GitHub, a chart by star-history.com

Other skills on scientific-agent-skills.

aeon

aeon

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting,โ€ฆ

More skills from other plugins.

paddleocr-doc-parsing

paddleocr-doc-parsing

Use this skill to extract structured Markdown/JSON from PDFs and document imagesโ€”tables with cell-level precision, formulas asโ€ฆ

@paddlepaddle@paddlepaddleInstall Skill
context-loader
Auto-invoked

context-loader

Search memories from earlier Pi sessions in this repository. Use it when earlier work may already explain the code, error,โ€ฆ

mem04d69k
@mem0ai@mem0aiInstall Skill
analyzing-ai-citations

analyzing-ai-citations

Answer AI citation and answer engine optimization (AEO) questions in PostHog: whether AI answer engines (ChatGPT, Claude, and anโ€ฆ

posthog10d41k
@posthog@posthogInstall Skill
qmd

qmd

Search local markdown knowledge bases, notes, docs, and wikis with QMD. Use when users ask to find notes, retrieve documents,โ€ฆ

qmd3w31k
@tobi@tobiInstall Skill

Questions about pymoo.

Which coding agents can use pymoo?
pymoo installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.