pymoo
多目标优化框架。NSGA-II、NSGA-III、MOEA/D算法,帕累托前沿,约束处理,基准测试问题(ZDT、DTLZ系列),适用于工程设计与优化问题。
分类
AI 技能开发安装
热度:9
下载并解压到你的 skills 目录
复制命令,发送给 OpenClaw 自动安装:
下载并安装这个技能 https://openskills.cc/api/download?slug=k-dense-ai-scientific-skills-pymoo&locale=zh&source=copy
Pymoo - Python多目标优化框架
技能概述
Pymoo是Python中最全面的多目标优化框架,提供NSGA-II/III、MOEA/D等先进进化算法,专门用于求解帕累托前沿和复杂约束优化问题。
适用场景
当需要在成本、性能、可靠性等多个冲突目标之间寻找最佳平衡时,使用pymoo可以快速获得帕累托最优解集,帮助工程师做出更明智的设计决策。
内置ZDT、DTLZ、WFG等标准测试问题,支持算法性能对比验证,是进化算法研究者的理想工具。可用于发表论文时的算法基准测试。
获得帕累托解集后,提供伪权重法、折中规划、膝点识别等多种MCDM(多准则决策)方法,帮助从众多方案中筛选出符合偏好的最优解。
核心功能
通过
minimize()函数统一调用所有算法,支持单目标(GA、DE、PSO、CMA-ES)、多目标(NSGA-II、MOEA/D)和大规模多目标(NSGA-III)优化,自动处理结果对象中的变量值、目标值和约束违反情况。继承
ElementwiseProblem类即可自定义优化问题,支持连续、离散、二进制和混合变量类型。提供可行性优先、惩罚法、约束转目标等多种约束处理策略,支持等式和不等式约束。根据目标数量自动选择散点图(2-3目标)或平行坐标图(4+目标),支持花瓣图进行方案对比。内置多种MCDM方法,支持目标归一化和偏好权重设置,实现从帕累托前沿到最终决策的完整流程。
常见问题
Pymoo和Scipy Optimize有什么区别?
Scipy Optimize专注于单目标优化,而Pymoo专为多目标优化设计,提供NSGA-II/III、MOEA/D等进化算法,能直接生成帕累托前沿。Pymoo更适合处理多目标冲突问题,而Scipy适合单目标函数优化。
如何选择NSGA-II还是NSGA-III?
NSGA-II适用于2-3个目标的优化问题,是标准且可靠的选择。当目标数量达到4个及以上时,推荐使用NSGA-III,它通过参考方向引导种群分布,能更好地处理高维目标空间。
能处理带约束的优化问题吗?
完全可以。Pymoo支持不等式约束(g<=0)和等式约束(h=0),默认使用可行性优先策略自动处理。还提供约束转目标、惩罚函数等替代方案,专门用于求解困难约束问题。