用途:pymoo 是 Python 的多目标优化框架,用于求解单目标、多目标(2-3 个)及多目标(4 个以上)优化问题,重点在于寻找目标相互冲突时的 Pareto 权衡解,适用于工程设计等场景。
主要能力:内置 NSGA-II、NSGA-III、MOEA/D、RVEA、AGE-MOEA 等多目标算法,以及 GA、DE、PSO、CMA-ES 等单目标算法;支持不等式约束 g(x)<=0、等式约束 h(x)=0 及可行性优先、惩罚法、约束转目标等处理方式;提供 ZDT、DTLZ、WFG 等基准问题;可自定义交叉、变异、选择算子,适配连续、二进制、离散、排列及混合变量;提供散点图、3D 散点、平行坐标图、花瓣图等可视化,并含 Pseudo-Weights、折中规划、膝点、超体积贡献等多准则决策方法。
使用方式:安装命令为 uv pip install pymoo,依赖 NumPy、SciPy、matplotlib,autograd 可选。统一步骤为先定义或获取问题,再选择算法与终止条件,最后调用 minimize(problem, algorithm, termination, seed=1, verbose=True)。自定义问题需继承 ElementwiseProblem,在 _evaluate 中写入 out["F"] 目标值、out["G"] 不等式约束与 out["H"] 等式约束。NSGA-III 需先用 get_reference_directions 生成参考方向。结果对象提供 result.X(决策变量)、result.F(目标值)、result.G(约束违反),可开启 save_history 分析收敛。
限制:本资料基于 pymoo 0.6.x,未提供具体收费、价格与性能对比数据;复杂问题需自行调参(种群规模、代数、算子参数),约束须按 g<=0 与 h=0 正确表述,否则易导致可行解稀少。官方文档见 https://pymoo.org/。