Agent Skills
返回列表
⚖️

Pymoo 多目标优化框架

行业专业 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/cn-pymoo。

技能介绍

要解决什么问题

工程里常见的不只是「把某一个指标压到最低」,而是多个目标互相拉扯:成本要低、延迟要短、资源占用要小,往往无法同时最优。你需要的是一族帕累托最优解(前沿),再在业务偏好下选点;同时还要处理不等式/等式约束、连续/整数/二进制/分类混合变量,以及仿真或黑盒目标带来的昂贵评估。

技能如何工作

本技能围绕开源库 pymoo(当前文档指向稳定版 0.6.1.6),用统一的 minimize() 接口串起「问题定义 → 算法 → 结果对象」。

  • 问题定义:Problem(向量化批量评估)、ElementwiseProblem(逐解评估,便于并行)、FunctionalProblem(函数式目标/约束)
  • 算法族:单目标如 GA、DE、PSO、CMA-ES;2–3 目标常用 NSGA-II;4 个及以上目标用 NSGA-III(需参考方向);另有 MOEA/D、SPEA2 等
  • 结果解读:result.X 决策变量、result.F 目标值、result.G 约束违反;可 save_history=True 看收敛
  • 后续链路:前沿可视化(2D/3D 散点、平行坐标、花瓣图)、目标归一化后的 MCDM(伪权重、折衷规划、膝点等)、约束策略(可行性优先、惩罚、约束作目标、SRES/ISRES)
  • 算子与基准:ZDT、DTLZ、WFG 等测试问题;连续变量 SBX/PM,二进制/排列专用交叉变异;昂贵评估可走 StarmapParallelization / JoblibParallelization

典型多目标流程:定义问题 → 选 NSGA-II/III → 跑前沿 → 可视化权衡 → 按需做决策。

适用边界与注意点

  • NSGA-III 必须配置参考方向;前沿质量差时先查种群规模、目标缩放与重复消除
  • 约束应写成 g(x) ≤ 0、h(x) = 0 的惯例;可行解稀少时考虑修复算子或专用约束算法
  • 目标量纲差很大时先归一化,再谈 MCDM 权重
  • 文档索引:https://pymoo.org/ ,LLM 友好索引:https://pymoo.org/llms.txt;技能内 references/ 与 scripts/ 对应算法、约束、可视化与示例工作流

使用场景

  • 产品要在成本、延迟、资源占用等冲突指标间出非支配解集,跑 NSGA-II 得到前沿后再按伪权重或膝点定方案
  • 论文或工程选型要在 ZDT、DTLZ、WFG 上对比 NSGA-II、MOEA/D 的收敛速度与前沿分布
  • 单次仿真或 ML 推理评估很慢,用 ElementwiseProblem 挂并行 runner,在 DE/GA 下做参数或结构寻优
  • 四个及以上目标(如多 KPI 系统设计)需 NSGA-III 配参考方向生成前沿,并用平行坐标检查权衡

适合人员

  • 做调度、配网或投资组合等多准则建模的研究员,需要可行约束下的帕累托集与 MCDM 选解
  • 复现或改进 MOEA 的研究生,要在标准测试问题上调 NSGA-II/III 种群、终止条件与参考方向
  • 把 CAE/仿真或黑盒模型封装为自定义问题、并写成 g(x)≤0 约束的算法/仿真工程师
  • 混合连续、整数、二进制决策变量(如选型+参数)需 MixedVariableGA 或带 RankAndCrowding 的多目标生存策略的设计优化工程师