用途:pymoo 是 Python 优化框架,重点解决单目标与多目标优化问题,尤其擅长在目标冲突时寻找权衡解(Pareto 前沿),可用于工程设计等场景。
主要能力:提供统一 minimize() 接口;算法涵盖 GA、DE、PSO、CMA-ES(单目标)与 NSGA-II、R-NSGA-II、MOEA/D(多目标)、NSGA-III、RVEA、AGE-MOEA(多目标 4 个以上);内置 ZDT、DTLZ、WFG 等基准问题;支持连续、二进制、离散及混合变量;可自定义问题(继承 ElementwiseProblem,实现 _evaluate)与遗传算子(如 SBX、PM);支持约束处理(可行性优先、惩罚、约束转目标、SRES/ISRES)及多准则决策(PseudoWeights、折衷规划、膝点、超体积贡献);提供散点图、3D 散点、平行坐标图、花瓣图等可视化。
使用方式:安装命令 uv pip install pymoo;依赖 NumPy、SciPy、matplotlib,autograd 为可选项。典型调用为 minimize(problem, algorithm, termination, seed=1, verbose=True),结果对象含 X、F、G、CV 等。约束须写成 g(x) <= 0 与 h(x) = 0;NSGA-III 需提供参考方向(如 get_reference_directions);MCDM 前建议先归一化目标。脚本示例包括 single_objective_example.py、multi_objective_example.py、many_objective_example.py、custom_problem_example.py、decision_making_example.py,可用 python3 运行。
适用场景:多目标权衡分析、约束优化、进化算法实现、基准测试与结果可视化。
限制:资料基于 pymoo 0.6.x,未提供具体性能、收费或平台支持信息;使用需自行调参,常见建议包括归一化目标、设置随机种子、保存历史、选用合适终止条件(如 'n_gen' 或 get_termination("f_tol", tol=0.001))。