[ PROMPT_NODE_27140 ]
pymoo
[ SKILL_DOCUMENTATION ]
# Pymoo - Python 多目标优化
## 概述
Pymoo 是一个综合性的 Python 优化框架,重点在于多目标问题。使用最先进的算法(NSGA-II/III, MOEA/D)、基准问题(ZDT, DTLZ)、可定制的遗传算子和多准则决策方法来解决单目标和多目标优化问题。擅长为具有冲突目标的问题寻找权衡解(帕累托前沿)。
## 何时使用此技能
当您需要:
- 解决具有一个或多个目标的优化问题
- 寻找帕累托最优解并分析权衡
- 实现进化算法(GA, DE, PSO, NSGA-II/III)
- 处理约束优化问题
- 在标准测试问题(ZDT, DTLZ, WFG)上对算法进行基准测试
- 自定义遗传算子(交叉、变异、选择)
- 可视化高维优化结果
- 从多个竞争方案中进行决策
- 处理二进制、离散、连续或混合变量问题
## 核心概念
### 统一接口
Pymoo 为所有优化任务使用一致的 `minimize()` 函数:
python
from pymoo.optimize import minimize
result = minimize(
problem, # 要优化的对象
algorithm, # 如何优化
termination, # 何时停止
seed=1,
verbose=True
)
**结果对象包含:**
- `result.X`: 最优解的决策变量
- `result.F`: 最优解的目标函数值
- `result.G`: 约束违规情况(如果存在约束)
- `result.algorithm`: 包含历史记录的算法对象
### 问题类型
**单目标:** 一个需要最小化/最大化的目标
**多目标:** 2-3 个冲突目标 → 帕累托前沿
**多目标(Many-objective):** 4 个以上目标 → 高维帕累托前沿
**约束优化:** 目标 + 不等式/等式约束
**动态优化:** 随时间变化的目标或约束
## 快速入门工作流
### 工作流 1:单目标优化
**适用场景:** 优化单个目标函数
**步骤:**
1. 定义或选择问题
2. 选择单目标算法(GA, DE, PSO, CMA-ES)
3. 配置终止准则
4. 运行优化
5. 提取最优解
**示例:**
python
from pymoo.algorithms.soo.nonconvex.ga import GA
from pymoo.problems import get_problem
from pymoo.optimize import minimize
# 内置问题
problem = get_problem("rastrigin", n_var=10)
# 配置 GA