agentsclimarketplace

Alterlab pymoo

Skill AlterLab-IEU/AlterLab-Academic-Skills/skills/data-science/alterlab-pymoo

Multi-objective optimization with pymoo — NSGA-II, NSGA-III, MOEA/D, Pareto-front computation, constraint handling, and standard benchmarks (ZDT, DTLZ). Use when solving multi-objective or constrained optimization problems, computing Pareto-optimal trade-offs, or tackling engineering design problems with competing objectives. Part of the AlterLab Academic Skills suite.From its SKILL.md

Install
npx -y skills add AlterLab-IEU/AlterLab-Academic-Skills --skill alterlab-pymoo

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its file declares

Copied from the file, not written here

The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

5.0 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it

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), 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.

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: Constraint violations (if constrained)
  • result.algorithm: Algorithm object with history

Problem Types

Single-objective: One objective to minimize/maximize Multi-objective: 2-3 conflicting objectives → Pareto front Many-objective: 4+ objectives → High-dimensional Pareto front Constrained: Objectives + inequality/equality constraints Dynamic: Time-varying objectives or constraints

Core Workflow

  1. Pick problem type — single, multi (2-3 obj), many (4+ obj), or constrained.
  2. Define or select the problem — built-in via get_problem(...), or subclass ElementwiseProblem for custom (objectives in out["F"], inequality constraints g(x) <= 0 in out["G"], equality h(x) = 0 in out["H"]).
  3. Choose the algorithm — NSGA-II for 2-3 objectives, NSGA-III (with reference directions) for 4+, GA/DE/PSO/CMA-ES for single-objective. See the selection tables in references/quick_reference.md.
  4. Set termination — ('n_gen', N) or get_termination("f_tol", tol=0.001).
  5. Run with minimize(problem, algorithm, termination, seed=1, verbose=True).
  6. Inspect result.X / result.F / result.G (or result.CV for constraint violation).
  7. Decide & visualize — apply MCDM to pick a preferred Pareto solution, plot with Scatter/PCP/Petal.

Always set seed for reproducibility, normalize objectives when scales differ, and provide reference directions for NSGA-III.

Routing — where to look

You need…Go to
Complete copy-paste examples for all 7 workflows (single/multi/many-objective, custom problems, constraint handling, MCDM decision making, visualization)references/workflows.md
Algorithm-selection tables, benchmark problem list, operator config, troubleshooting, best practices, installreferences/quick_reference.md
Deep algorithm reference (parameters, usage, selection)references/algorithms.md
Benchmark test problems (ZDT, DTLZ, WFG) with characteristicsreferences/problems.md
Genetic operators (sampling, selection, crossover, mutation)references/operators.md
All visualization types with examplesreferences/visualization.md
Constraint handling + multi-criteria decision makingreferences/constraints_mcdm.md

Runnable scripts (scripts/): single_objective_example.py, multi_objective_example.py, many_objective_example.py, custom_problem_example.py, decision_making_example.py. Run with uv run python scripts/<name>.py.

Search references: grep -r "NSGA-II\|NSGA-III\|MOEA/D" references/ · grep -r "Feasibility First\|Penalty\|Repair" references/ · grep -r "Scatter\|PCP\|Petal" references/

Install

uv pip install pymoo

Dependencies: NumPy, SciPy, matplotlib, autograd (optional). Docs: https://pymoo.org/ — this skill targets pymoo 0.6.x.

What ships with it: 13 files

74.8 KB alongside SKILL.md, 5 of them executable

evals/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.