
Pymoo 多目標優化實戰指南從 NSGA-II 到 Pareto 前沿的科學計算方案【免費下載鏈接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000 scientists worldwide. 165 ready-to-use validated skills plus 100 scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.項目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skills導讀本文基于 scientific-agent-skills 倉庫中的 pymoo Agent Skill 編寫圍繞 pymoo SKILL 文檔 及其下完整的 references 參考文檔 與可執行 scripts 腳本系統講解如何在 Python 中使用 pymoo 解決單目標、多目標與高維多目標優化問題。讀完本文你將掌握統一minimize()接口、三種問題定義風格、九大實操工作流、算法與遺傳算子選型、約束處理、多準則決策MCDM、可視化與并行化等完整技術棧可直接在工程設計、科學研究與 AI Agent 場景中落地使用。一、Skill 概覽為什么用它何時用它Pymoo 是一個以多目標優化為核心的 Python 優化框架內置了 NSGA-II、NSGA-III、MOEA/D、SPEA2 等前沿算法ZDT、DTLZ、WFG 等標準基準測試問題可自定義的遺傳算子以及一整套多準則決策方法。它最擅長處理的是**目標相互沖突、需要尋找折中解Pareto 前沿**的優化問題。倉庫中的 Skill 元數據將其定位為Multi-objective optimization framework. NSGA-II, NSGA-III, MOEA/D, Pareto fronts, constraint handling, benchmarks (ZDT, DTLZ), for engineering design and optimization problems.見 SKILL.md。根據 SKILL.md 的 When to Use 章節本 Skill 適用于以下場景求解單目標或多目標優化問題尋找 Pareto 最優解并分析目標間的折中關系實現進化算法GA、DE、PSO、NSGA-II/III 等處理帶約束的優化問題在標準測試問題ZDT、DTLZ、WFG上對算法做基準評測自定義交叉、變異、選擇等遺傳算子可視化高維優化結果從多個競爭解中做決策選優處理二進制、離散、連續或混合變量問題。二、安裝與運行環境Skill 前端元數據聲明compatibility: Requires Python 3.10 and pymoo (uv pip install)即要求 Python 3.10 及以上版本并通過 uv 安裝 pymoo。基本安裝uv pip install pymoo可復現環境的版本鎖定uv pip install pymoo0.6.1.6依賴說明見 SKILL.mdNumPy自 0.6.1.3 起兼容 NumPy 2.xSciPy科學計算基礎依賴matplotlib可視化繪制散點圖、平行坐標圖等必需autograd可選自 0.6.1.3 起支持基于梯度的特性joblib可選用于JoblibParallelization并行化見 parallelization.mdoptuna可選當使用pymoo.algorithms.soo.nonconvex.optuna.Optuna包裝器時需單獨安裝。當前穩定版本為pymoo 0.6.1.62025 年 11 月發布。三、核心概念統一接口與問題定義3.1 統一的minimize()接口Pymoo 所有優化任務都通過同一個minimize()函數完成參數語義高度一致優化什么、如何優化、何時停止from pymoo.optimize import minimize result minimize( problem, # What to optimize algorithm, # How to optimize termination, # When to stop seed1, verboseTrue )返回的result對象包含字段含義result.X最優解組的決策變量值result.F最優解組的目標函數值result.G約束違反量若問題帶約束result.algorithm算法對象含迭代歷史n_gen、evaluator.n_eval等例如倉庫腳本 single_objective_example.py 中就是這樣讀取結果并統計迭代信息的print(fBest solution: {result.X}) print(fBest objective value: {result.F[0]:.6f}) print(fNumber of generations: {result.algorithm.n_gen}) print(fNumber of function evaluations: {result.algorithm.evaluator.n_eval})3.2 三種問題定義風格Pymoo 支持三種問題定義方式見 SKILL.mdProblem向量化風格——_evaluate接收一批解的矩陣batch適合高性能評估ElementwiseProblem一次評估一個解——自定義問題與并行評估的首選也是倉庫五個示例腳本統一采用的風格FunctionalProblem以獨立函數定義目標與約束無需子類化。3.3 六類問題類型問題類型特征單目標Single-objective一個待最小化/最大化的目標多目標Multi-objective2~3 個沖突目標 → 求 Pareto 前沿高維多目標Many-objective4 個及以上目標 → 高維 Pareto 前沿約束問題Constrained目標 不等式/等式約束混合變量Mixed-variable同一問題中混合連續、整數、二進制、類別變量動態問題Dynamic目標或約束隨時間變化四、九大快速上手工作流倉庫在 quick_start_workflows.md 中沉淀了九個可直接運行的完整工作流并配套 scripts 下的五個可執行示例。下表是工作流速查#工作流適用場景1單目標優化只有一個目標用 GA 或 DE2多目標優化2-3 目標NSGA-II 求 Pareto 前沿3高維多目標4 目標NSGA-III 或參考方向法4自定義問題定義子類化Problem/ElementwiseProblem5約束處理不等式與等式約束6Pareto 前沿上的決策標量化與 MCDM 選優7可視化散點、PCP、radviz、熱力圖8并行評估線程、進程或 Dask 處理昂貴目標9混合變量優化整數、二進制、類別變量工作流 1單目標優化對應完整腳本 single_objective_example.py使用遺傳算法在 Sphere 函數上做單目標最小化from pymoo.algorithms.soo.nonconvex.ga import GA from pymoo.problems import get_problem from pymoo.optimize import minimize # 內置測試問題10 維 Rastrigin problem get_problem(rastrigin, n_var10) # 配置遺傳算法 algorithm GA( pop_size100, eliminate_duplicatesTrue ) # 終止條件200 代 result minimize( problem, algorithm, (n_gen, 200), seed1, verboseTrue ) print(fBest solution: {result.X}) print(fBest objective: {result.F[0]})腳本版本還顯式配置了算子組合見 single_objective_example.pyFloatRandomSampling()初始采樣 SBX(prob0.9, eta15)交叉 PM(eta20)變異終止條件用get_termination(n_gen, 100)表達。工作流 2多目標優化NSGA-II Pareto 前沿對應完整腳本 multi_objective_example.py在 ZDT1 雙目標問題上運行 NSGA-II并將求得的 Pareto 前沿與真實前沿疊加對比from pymoo.algorithms.moo.nsga2 import NSGA2 from pymoo.problems import get_problem from pymoo.optimize import minimize from pymoo.visualization.scatter import Scatter # 雙目標基準問題 ZDT1 problem get_problem(zdt1) # NSGA-II 算法 algorithm NSGA2(pop_size100) # 優化 200 代 result minimize(problem, algorithm, (n_gen, 200), seed1) # 可視化紅色為求得前沿黑色半透明為真實前沿 plot Scatter() plot.add(result.F, labelObtained Front) plot.add(problem.pareto_front(), labelTrue Front, alpha0.3) plot.show() print(fFound {len(result.F)} Pareto-optimal solutions)腳本還會打印前沿解數量與迭代統計multi_objective_example.py。工作流 3高維多目標NSGA-III 參考方向對應完整腳本 many_objective_example.py在 5 目標 DTLZ2 上使用 NSGA-III并用平行坐標圖PCP可視化from pymoo.algorithms.moo.nsga3 import NSGA3 from pymoo.problems import get_problem from pymoo.optimize import minimize from pymoo.util.ref_dirs import get_reference_directions from pymoo.visualization.pcp import PCP # 5 目標問題 problem get_problem(dtlz2, n_obj5) # 生成參考方向NSGA-III 必需 # 注意n_dim 是位置參數寫成 n_obj 會拋 TypeError ref_dirs get_reference_directions(das-dennis, 5, n_partitions12) # 配置 NSGA-III algorithm NSGA3(ref_dirsref_dirs) # 優化 300 代 result minimize(problem, algorithm, (n_gen, 300), seed1) # 平行坐標圖可視化 plot PCP(labels[ff{i1} for i in range(5)]) plot.add(result.F, alpha0.3) plot.show()該腳本注釋中特別強調了倉庫實測的一個坑get_reference_directions的維度參數是位置參數傳入n_obj關鍵字會觸發TypeError見 many_objective_example.py。工作流 4自定義問題定義對應完整腳本 custom_problem_example.py該腳本同時演示了無約束與帶約束兩個自定義問題。無約束雙目標問題from pymoo.core.problem import ElementwiseProblem import numpy as np class MyProblem(ElementwiseProblem): def __init__(self): super().__init__( n_var2, # 決策變量數 n_obj2, # 目標數 xlnp.array([0, 0]), # 下界 xunp.array([5, 5]) # 上界 ) def _evaluate(self, x, out, *args, **kwargs): f1 x[0]**2 x[1]**2 f2 (x[0]-1)**2 (x[1]-1)**2 out[F] [f1, f2]帶約束問題在__init__中聲明約束數量在_evaluate中輸出G/Hclass ConstrainedProblem(ElementwiseProblem): def __init__(self): super().__init__( n_var2, n_obj2, n_ieq_constr2, # 不等式約束數 n_eq_constr1, # 等式約束數 xlnp.array([0, 0]), xunp.array([5, 5]) ) def _evaluate(self, x, out, *args, **kwargs): out[F] [f1, f2] # 目標 out[G] [g1, g2] # 不等式約束 g(x) 0 out[H] [h1] # 等式約束 h(x) 0約束書寫規則詳見 constraints_mcdm.md不等式寫成g(x) 0≤ 0 即可行等式寫成h(x) 0等于 0 即可行若原始約束形如g(x) b轉換為-(g(x) - b) 0。custom_problem_example.py 給出了工程化的轉換實例x2 9*x1 6被改寫為g1 -(x[1] 9*x[0] - 6)-x2 9*x1 1被改寫為g2 -(-x[1] 9*x[0] - 1)。工作流 5約束處理Pymoo 提供四類約束處理手段詳見 constraints_mcdm.md① 可行性優先Feasibility First默認推薦多數算法默認行為比較規則為兩者皆可行→比較目標值一可行一不可行→可行者勝兩者皆不可行→比較約束違反量。用result.CV[:, 0] 0判斷可行性from pymoo.algorithms.moo.nsga2 import NSGA2 algorithm NSGA2(pop_size100) result minimize(problem, algorithm, termination) feasible result.CV[:, 0] 0 # CV constraint violation print(fFeasible solutions: {np.sum(feasible)})② 罰函數法把約束違反量折入目標值F_penalized F penalty_factor * violationfrom pymoo.constraints.as_penalty import ConstraintsAsPenalty problem_penalized ConstraintsAsPenalty(problem, penalty1e6)penalty系數需按問題量級調參見 constraints_mcdm.md。③ 約束目標化將約束違反量作為額外目標問題變為 M1 目標適合可行域很小的場景from pymoo.constraints.as_obj import ConstraintsAsObjective problem_with_cv ConstraintsAsObjective(problem)④ 專用算法SRES/ISRES 內建約束處理適合重約束問題from pymoo.algorithms.soo.nonconvex.sres import SRES algorithm SRES()此外還可使用ε-約束法動態可行性閾值與修復算子Repair。修復算子通過繼承pymoo.core.repair.Repair實現例如把解投影回可行域constraints_mcdm.mdfrom pymoo.core.repair import Repair class MyRepair(Repair): def _do(self, problem, X, **kwargs): X np.clip(X, problem.xl, problem.xu) return X algorithm GA(pop_size100, repairMyRepair())約束方法選型速查問題特征推薦方法可行域大Feasibility First可行域小Constraint as Objective、Repair重約束SRES/ISRES、ε-約束線性約束Repair投影非線性約束Feasibility First、Penalty已知可行解偏置初始化工作流 6Pareto 前沿上的決策MCDM對應完整腳本 decision_making_example.py該腳本依次演示了尋找極端解、比較不同偏好權重、用花瓣圖Petal對比選中方案輸出結論是不同權重會選擇不同解權重越高越偏向在該目標上更優的解。Pseudo-Weights 偽權重法示例from pymoo.mcdm.pseudo_weights import PseudoWeights import numpy as np # 歸一化目標到 [0, 1] F_norm (result.F - result.F.min(axis0)) / (result.F.max(axis0) - result.F.min(axis0)) # 定義偏好權重之和必須為 1 weights np.array([0.3, 0.7]) # 30% f1, 70% f2 # 決策選優 dm PseudoWeights(weights) selected_idx dm.do(F_norm) best_solution result.X[selected_idx] best_objectives result.F[selected_idx]其他 MCDM 方法詳見 constraints_mcdm.mdCompromise Programming折中規劃選擇距理想點最近的解CompromiseProgramming().do(result.F, idealideal_point, nadirnadir_point)Knee Point膝點檢測無需先驗偏好時選擇折中最平衡的解KneePoint().do(result.F)Hypervolume Contribution超體積貢獻挑選對超體積貢獻最大的多樣子集配合pymoo.indicators.hv.HV計算貢獻度。MCDM 決策工作流constraints_mcdm.md先歸一化目標 → 散點圖分析折中 → 應用 MCDM 方法 → 用 Petal 圖驗證所選方案。工作流 7可視化Pymoo 提供八類可視化詳見 visualization.md全部基于 matplotlib 封裝并接受標準 kwargs2 目標 → 散點圖from pymoo.visualization.scatter import Scatter plot Scatter(titleBi-objective Results) plot.add(result.F, colorblue, alpha0.7) plot.show()3 目標 → 3D 散點plot.add(result.F)自動渲染 3D。4 目標 → 平行坐標圖 PCPfrom pymoo.visualization.pcp import PCP plot PCP( labels[ff{i1} for i in range(n_obj)], normalize_each_axisTrue ) plot.add(result.F, alpha0.3) plot.show()解對比 → 花瓣圖 Petalfrom pymoo.visualization.petal import Petal plot Petal( bounds[result.F.min(axis0), result.F.max(axis0)], labels[Cost, Weight, Efficiency] ) plot.add(solution_A, labelDesign A) plot.add(solution_B, labelDesign B) plot.show()其余類型還包括 Heatmap密度分布、Radar多準則性能畫像、Radviz高維降維投影、Star Coordinate星坐標以及基于算法歷史生成收斂動畫的Video需save_historyTrue與 ffmpeg。可視化選型指南問題類型首選圖輔助圖2 目標ScatterHeatmap3 目標3D Scatter平行坐標4-10 目標平行坐標Radviz10 目標RadvizStar Coordinates解對比Petal/Radar平行坐標收斂過程VideoScatter末代分布分析HeatmapScatter保存圖片使用plot.save(my_plot.png, dpi300)多數據集疊加可直接多次plot.add(...)傳入不同顏色與 label。工作流 8并行評估當_evaluate是瓶頸仿真、ML 推理、外部求解器時通過給ElementwiseProblem傳入elementwise_runner實現并行詳見 parallelization.md。前提是子類化ElementwiseProblem而非向量化Problem。線程池版本適合 I/O 密集評估from multiprocessing.pool import ThreadPool from pymoo.algorithms.soo.nonconvex.ga import GA from pymoo.core.problem import ElementwiseProblem from pymoo.optimize import minimize from pymoo.parallelization.starmap import StarmapParallelization class MyProblem(ElementwiseProblem): def __init__(self, elementwise_runnerNone, **kwargs): super().__init__( n_var10, n_obj1, xl-5, xu5, elementwise_runnerelementwise_runner, **kwargs, ) def _evaluate(self, x, out, *args, **kwargs): out[F] (x ** 2).sum() # 替換為昂貴的評估邏輯 pool ThreadPool(4) runner StarmapParallelization(pool.starmap) problem MyProblem(elementwise_runnerrunner) result minimize(problem, GA(), (n_gen, 50), seed1) pool.close() # 務必在優化結束后關閉線程池進程池版本適合 CPU 密集評估將ThreadPool換為multiprocessing.PoolJoblib 版本使用JoblibParallelization(lambda func, X: Parallel(n_jobs4)(delayed(func)(x) for x in X))。注意進程池要求問題定義可 pickle類體內避免 lambda且并行收益取決于評估成本與調度開銷的比值。工作流 9混合變量優化當決策變量同時包含連續、整數、二進制、類別類型時用帶類型標注的vars字典定義問題并用MixedVariableGA求解from pymoo.core.problem import ElementwiseProblem from pymoo.core.variable import Real, Integer, Choice, Binary from pymoo.core.mixed import MixedVariableGA from pymoo.optimize import minimize class MixedProblem(ElementwiseProblem): def __init__(self, **kwargs): vars { b: Binary(), x: Choice(options[nothing, multiply]), y: Integer(bounds(0, 2)), z: Real(bounds(0, 5)), } super().__init__(varsvars, n_obj1, **kwargs) def _evaluate(self, X, out, *args, **kwargs): b, x, z, y X[b], X[x], X[z], X[y] f z y if b: f 100 * f if x multiply: f 10 * f out[F] f algorithm MixedVariableGA(pop_size20) result minimize(MixedProblem(), algorithm, (n_evals, 1000), seed1)多目標混合變量問題為MixedVariableGA傳入survivalRankAndCrowdingSurvival()即可quick_start_workflows.md單目標混合搜索還可使用pymoo.algorithms.soo.nonconvex.optuna.Optuna包裝器需單獨uv pip install optuna見 algorithms.md。五、算法選擇指南5.1 單目標算法算法最佳場景特點GA通用算子靈活可定制DE連續優化全局搜索能力強PSO平滑地貌收斂快CMA-ES困難/帶噪聲問題協方差自適應Pattern Search / Nelder-Mead無梯度信息直接搜索/局部優化GA 的默認參數為pop_size100、Tournament 選擇、SBX 交叉、Polynomial 變異、eliminate_duplicatesTruealgorithms.md。5.2 多目標算法2-3 目標算法最佳場景特點NSGA-II標準基準快速、可靠、久經測試非支配排序 擁擠距離SPEA2歸檔式 MOO基于強度的適應度 外部歸檔0.6.1.6 有改進R-NSGA-II偏好區域參考點引導MOEA/D可分解問題標量化分解SMS-EMOA超體積指標支配超體積貢獻選擇5.3 高維多目標算法4 目標算法最佳場景特點NSGA-III4-15 目標參考方向維持多樣性pop_size默認等于參考方向數RVEA自適應搜索參考向量演化AGE-MOEA復雜地貌自適應幾何估計U-NSGA-III多種場景更穩健的統一版本NSGA-II 與 NSGA-III 的分界很明確2-3 目標用 NSGA-II計算開銷更低4 目標用 NSGA-III分布更均勻。5.4 約束問題方案算法適用時機可行性優先任意算法可行域較大專用算法SRES、ISRES重約束罰函數GA penalty算法兼容性優先動態多目標場景目標隨時間變化可選用 D-NSGA-II 與 KGB-DMOEA知識引導利用歷史信息詳見 algorithms.md。六、基準測試問題Pymoo 通過get_problem統一提供測試問題詳見 problems.mdfrom pymoo.problems import get_problem # 單目標 problem get_problem(rastrigin, n_var10) problem get_problem(rosenbrock, n_var10) # 多目標 problem get_problem(zdt1) # 凸前沿 problem get_problem(zdt2) # 非凸前沿 problem get_problem(zdt3) # 不連續前沿5 個分區 # 高維多目標 problem get_problem(dtlz2, n_obj5, n_var12) problem get_problem(dtlz7, n_obj4)ZDT 套件雙目標標準基準的關鍵特征問題變量/邊界前沿形狀用途ZDT130 連續[0,1]凸基礎收斂與多樣性ZDT230 連續[0,1]非凸凹非凸前沿處理ZDT330 連續[0,1]不連續5 段不連續前沿的多樣性維持ZDT410 連續x?∈[0,1]x????∈[-10,10]凸21? 個局部前沿全局搜索ZDT511 離散位串凸離散優化與欺騙性地貌ZDT610 連續[0,1]非凸、密度不均偏置分布處理DTLZ 套件高維可擴展基準目標數通常 3-15DTLZ1 線性前沿但含 11^k 局部前沿DTLZ2 球形前沿適合基礎多樣性測試DTLZ3 組合了 DTLZ1 的多模態與 DTLZ2 的幾何DTLZ7 具有 2^(M-1) 個不連續區域。其他問題族WFGWFG1-WFG9含不可分、欺騙、多模態、偏置、縮放前沿等復雜形狀、MW / DAS-CMOP約束多目標、DF1-DF14CEC2018 動態多目標基準、工程問題 Truss2D重量 vs 位移與 Welded Beam多約束工程設計。問題選型指引基礎收斂DTLZ2、ZDT1多模態ZDT4、DTLZ1、DTLZ3非凸ZDT2不連續ZDT3、DTLZ7約束MW/DAS-CMOP工程驗證Truss2D、Welded Beam。七、遺傳算子定制Pymoo 允許對采樣、選擇、交叉、變異四個環節做細粒度定制詳見 operators.md。7.1 標準連續變量 GA 配置from pymoo.algorithms.soo.nonconvex.ga import GA from pymoo.operators.crossover.sbx import SBX from pymoo.operators.mutation.pm import PM algorithm GA( pop_size100, crossoverSBX(prob0.9, eta15), mutationPM(eta20), eliminate_duplicatesTrue )參數語義SBX(prob0.9, eta15)模擬二進制交叉eta分布指數越高子代越接近父代偏局部搜索越低越偏向探索交叉概率通常取 0.8-0.95PM(probNone, eta20)多項式變異probNone表示使用1/n_var標準推薦值更高的變異概率帶來更多探索但收斂變慢eliminate_duplicatesTrue消除冗余重復解。7.2 按變量類型選算子變量類型采樣交叉變異連續FloatRandomSampling/LHSSBX、DE 交叉PM二進制BinaryRandomSamplingTwoPointCrossover、UniformCrossover(prob0.5)、HUXBitflipMutation(prob0.05)整數IntegerRandomSampling整數 SBX整數 PM排列TSP、調度PermutationRandomSamplingOrderCrossoverOX、ERX、PMXInversionMutation、ScrambleMutation排列問題 GATSP示例from pymoo.operators.sampling.rnd import PermutationRandomSampling from pymoo.operators.crossover.ox import OrderCrossover from pymoo.operators.mutation.inversion import InversionMutation sampling PermutationRandomSampling() crossover OrderCrossover() mutation InversionMutation()選擇算子TournamentSelection(pressure2)錦標賽壓力默認 2與RandomSelection()。7.3 字符串簡寫配置Pymoo 支持用字符串直接指定算子operators.mdalgorithm GA( pop_size100, samplingreal_random, crossoverreal_sbx, mutationreal_pm )可用字符串采樣real_random/real_lhs/bin_random/perm_random交叉real_sbx/real_de/int_sbx/bin_ux/bin_hux變異real_pm/int_pm/bin_bitflip/perm_inv。7.4 參數調優經驗交叉概率高0.8-0.95為多數問題的標準選擇變異概率1/n_var為標準推薦交叉eta15-30越高越偏局部搜索變異eta20-50越高越偏開發exploitation。八、性能調優與故障排查8.1 常見問題與對策現象對策算法不收斂增大種群規模增加迭代代數檢查問題是否多模態換算法核對約束表述Pareto 前沿分布差調整 NSGA-III 參考方向增大種群檢查重復解消除核對問題尺度可行解稀少采用約束目標化應用修復算子嘗試 SRES/ISRES檢查約束是否寫成g 0計算成本高減小種群減少代數用更簡單算子通過elementwise_runner開啟并行工作流 88.2 最佳實踐清單歸一化目標各目標尺度差異大時先歸一化設置隨機種子seed1保證可復現保存歷史save_historyTrue便于分析收斂過程可視化結果理解解的質量與真實 Pareto 前沿對比當測試問題提供pareto_front()時合理設置終止條件(n_gen, N)或get_termination(f_tol, tol0.001)調優算子參數針對問題特征調整交叉/變異概率與eta。8.3 收斂可視化配合save_historyTrue可把各代的最優前沿疊在同一張散點圖上觀察收斂軌跡visualization.mdresult minimize( problem, algorithm, (n_gen, 200), seed1, save_historyTrue, verboseFalse ) plot Scatter(titleConvergence Over Generations) for gen in [0, 50, 100, 150, 200]: F result.history[gen].opt.get(F) plot.add(F, alpha0.5, labelfGen {gen}) plot.show()九、Skill 資源索引與運行方式本 Skill 在倉庫中配有完整的參考文檔與可執行腳本推薦在實戰中按需查閱參考文檔references/algorithms.md全部算法的參數、用法與選型指南problems.mdZDT/DTLZ/WFG 等基準問題特征operators.md采樣、選擇、交叉、變異算子及配置visualization.md八類可視化類型、示例與選型constraints_mcdm.md約束處理技術與多準則決策方法parallelization.mdStarmapParallelization 與 JoblibParallelization 并行評估。可執行腳本scripts/single_objective_example.pyGA 單目標優化Sphere 函數multi_objective_example.pyNSGA-II 多目標 可視化ZDT1many_objective_example.pyNSGA-III 高維多目標 參考方向DTLZ2custom_problem_example.py自定義約束/無約束問題decision_making_example.py多準則決策與偏好對比。運行示例python3 skills/pymoo/scripts/single_objective_example.py python3 skills/pymoo/scripts/multi_objective_example.py python3 skills/pymoo/scripts/many_objective_example.py python3 skills/pymoo/scripts/custom_problem_example.py python3 skills/pymoo/scripts/decision_making_example.py快速檢索模式查閱參考文檔時可按主題 grep例如算法細節grep -r NSGA-II\|NSGA-III\|MOEA/D skills/pymoo/references/約束方法grep -r Feasibility First\|Penalty\|Repair skills/pymoo/references/可視化類型grep -r Scatter\|PCP\|Petal skills/pymoo/references/。十、常見模式速記自定義問題優先用ElementwiseProblem函數式定義可選FunctionalProblem混合變量問題用帶類型標注的vars字典約束統一寫成g(x) 0、h(x) 0NSGA-III 必須提供參考方向get_reference_directions注意 n_dim 為位置參數執行 MCDM 前先歸一化目標終止條件二選一(n_gen, N)按代數get_termination(f_tol, tol0.001)按收斂容差。以上模式均與 SKILL.md 的 Additional Notes 及倉庫各腳本實現一一對應可直接復制到科研、工程設計或 AI Agent 的優化任務中。【免費下載鏈接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000 scientists worldwide. 165 ready-to-use validated skills plus 100 scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.項目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skills創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考