mcpField
A
alterlab-pymoo

alterlab-pymoo

github.com/alterlab-ieuデータ・データベース7866 回インストール5 週間前に更新
リポジトリ

alterlab-pymoo について

alterlab-pymooは、Python最適化フレームワークpymooを使うためのスキルです。単一・多目的問題を扱い、進化アルゴリズム、制約、パレート解の比較、意思決定を支援します。

主な機能

  1. 01単一・多目的最適化
  2. 02NSGA-II/IIIなどの進化アルゴリズム
  3. 03制約付き問題への対応
  4. 04ベンチマーク問題とアルゴリズム評価
  5. 05パレート解の可視化と意思決定

活用シーン

  1. 01相反する目的間のトレードオフ解の探索
  2. 02ZDT、DTLZ、WFGでのアルゴリズム評価
  3. 03複数の変数型を含む問題の最適化

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alterlab-ieu/alterlab-academic-skills --skill alterlab-pymoo

インストール後、Claude Code で/alterlab-pymooを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

evals/
evals.json
references/
algorithms.md
constraints_mcdm.md
operators.md
problems.md
quick_reference.md
visualization.md
workflows.md
scripts/
custom_problem_example.py
decision_making_example.py
many_objective_example.py
multi_objective_example.py
single_objective_example.py

詳細

Pymoo - Python での多目的最適化

概要

Pymoo は、多目的問題に重点を置いた包括的な Python 最適化フレームワークです。最先端のアルゴリズム(NSGA-II/III、MOEA/D)、ベンチマーク問題(ZDT、DTLZ)、カスタマイズ可能な遺伝的オペレーター、多基準意思決定手法を使用して、単一目的および多目的の最適化を解決できます。目的が競合する問題で、トレードオフ解(パレートフロント)を見つけるのに優れています。

このスキルを使用する場面

次の場合にこのスキルを使用してください。

  • 1つまたは複数の目的を持つ最適化問題を解く
  • パレート最適解を見つけ、トレードオフを分析する
  • 進化アルゴリズム(GA、DE、PSO、NSGA-II/III)を実装する
  • 制約付き最適化問題に取り組む
  • 標準的なテスト問題(ZDT、DTLZ、WFG)でアルゴリズムをベンチマークする
  • 遺伝的オペレーター(交叉、突然変異、選択)をカスタマイズする
  • 高次元の最適化結果を可視化する
  • 複数の競合する解から意思決定する
  • バイナリ、離散、連続、または混合変数の問題を扱う
対象外
シナリオ代わりに使用
キューや共有リソースを時間経過とともにシミュレーションする(離散イベントシミュレーション)alterlab-simpy
機械学習モデルのハイパーパラメーターを探索する(グリッド/ランダムサーチ、CV)alterlab-scikit-learn
微分や記号計算によって数式の閉形式の最適値を求めるalterlab-sympy

コアコンセプト

統一インターフェース

Pymoo では、すべての最適化タスクで一貫した minimize() 関数を使用します。

from pymoo.optimize import minimize

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

結果オブジェクトに含まれるもの:

  • result.X:最適解の決定変数
  • result.F:最適解の目的関数値
  • result.G:制約違反(制約がある場合)
  • result.algorithm:履歴を含むアルゴリズムオブジェクト
問題の種類

単一目的: 最小化または最大化する目的関数が1つ 多目的: 競合する目的関数が2〜3個 → パレートフロント 多目的(4目的以上): 目的関数が4個以上 → 高次元のパレートフロント 制約付き: 目的関数と不等式/等式制約 動的: 時間とともに変化する目的関数または制約

コアワークフロー

  1. 問題の種類を選ぶ — 単一目的、多目的(目的関数が2〜3個)、多目的(目的関数が4個以上)、または制約付きから選びます。
  2. 問題を定義または選択する — get_problem(...) を使って組み込み問題を選ぶか、カスタム問題用に ElementwiseProblem をサブクラス化します(目的関数は out["F"]、不等式制約 g(x) <= 0 は out["G"]、等式制約 h(x) = 0 は out["H"] に格納します)。
  3. アルゴリズムを選ぶ — 目的関数が2〜3個の場合は NSGA-II、4個以上の場合は NSGA-III(参照方向を使用)、単一目的の場合は GA/DE/PSO/CMA-ES を使います。references/quick_reference.md の選択表を参照してください。
  4. 終了条件を設定する — ('n_gen', N)、('n_evals', N)、または許容誤差に基づく get_termination("moo", ftol=1e-3, n_max_gen=500) を使います(単一目的では "soo" を使います。"f_tol" キーはありません)。
  5. 実行する — minimize(problem, algorithm, termination, seed=1, verbose=True) を呼び出します。
  6. 結果を確認する — result.X/result.F/result.G(制約違反については result.CV)を確認します。
  7. 意思決定して可視化する — MCDM を適用して優先するパレート解を選び、Scatter/PCP/Petal でプロットします。

再現性を確保するために常に seed を設定し、目的関数のスケールが異なる場合は正規化し、NSGA-III には参照方向を指定してください。

ルーティング — 参照先

必要なもの…参照先
7 つすべてのワークフロー(単一目的/多目的/多数目的、カスタム問題、制約処理、MCDM による意思決定、可視化)の完全なコピー&ペースト可能な例references/workflows.md
アルゴリズム選択表、ベンチマーク問題一覧、オペレーター設定、トラブルシューティング、ベストプラクティス、インストールreferences/quick_reference.md
アルゴリズムの詳細リファレンス(パラメーター、使い方、選択)references/algorithms.md
特性を含むベンチマークテスト問題(ZDT、DTLZ、WFG)references/problems.md
遺伝的オペレーター(サンプリング、選択、交叉、突然変異)references/operators.md
すべての可視化タイプと例references/visualization.md
制約処理と多基準意思決定references/constraints_mcdm.md

実行可能なスクリプト(scripts/):single_objective_example.py、multi_objective_example.py、many_objective_example.py、custom_problem_example.py、decision_making_example.py。uv run python scripts/<name>.py で実行します。

リファレンスの検索: grep -r "NSGA-II\|NSGA-III\|MOEA/D" references/ · grep -r "Feasibility First\|Penalty\|Repair" references/ · grep -r "Scatter\|PCP\|Petal" references/

インストール

uv pip install pymoo

依存関係(自動的にインストールされます):NumPy、SciPy、matplotlib、autograd、cma、moocore。ドキュメント:https://pymoo.org/ — このスキルは pymoo 0.6.x(現行バージョンは 0.6.2、2026 年 6 月。NumPy 2 で CMA-ES が復活しました)を対象としています。

コメント