该框架提供了最先进的单目标和多目标优化算法以及更多与多目标优化相关的功能,如可视化和决策。 pymoo可在PyPi上使用,可以通过以下方式安装。
pip install -U pymoo
请注意,一些模块可以被编译以加快计算速度(可选)。上面的命令试图编译这些模块;但是,如果不成功,就会安装纯Python版本。更多信息可在我们的 安装指南.
特性
此外,我们的框架提供了各种不同的功能,涵盖了多目标优化的各个层面。
接口
- 函数: minimize
- 参数: Problem, Algorithm, Termination
- 选项: Callback, Display, ...
- 返回: Result
- 相关的: Ask and Tell , Checkpoints
问题
- Single-objective: Ackley, Griewank, Rastrigin, Rosenbrock, Zakharov, ...
- Multi-objective: BNH, OSY, TNK, Truss2d, Welded Beam, ZDT, ...
- Many-objective: DTLZ, WFG
- Constrained: CTP, DASCMOP, MODAct, MW, CDTLZ
- Dynamic: DF
- Related: Problem Definition, Gradients, Parallelization
算法
- Single-objective: GA, DE, PSO, Nelder Mead, Pattern Search, BRKGA, ES, SRES, ISRES, CMA-ES, G3PCX
- Multi-objective: NSGA-II, R-NSGA-II
- Many-objective: NSGA-III, R-NSGA-III, U-NSGA-III, MOEA/D, AGE-MOEA, AGE-MOEA2 , RVEA , SMS-EMOA
- Dynamic: D-NSGA-II
- Related: Reference Directions, Constraints , Convergence, Hyperparameters
自定义
- 变量类型: 二进制, 离散, 叠加, 混合 , 自定义
- 实例: Biased Initialization, Traveling Salesman
Operators
- Sampling: Random, LHS
- Selection: Random, Binary Tournament
- Crossover: SBX, UX, HUX, DE Point, Exponential, OX, ERX
- Mutation: Polynomial, Bitflip, Inverse Mutation
- Repair
可视化
散点图 (2D/3D/ND), 平行坐标图 (PCP) , Radviz, 星座坐标, 热图, 花瓣图, Spider Web / Radar, Video
多标准决策
性能指标
GD, GD+, IGD, IGD+, Hypervolume, KKTPM
分解
案例研究
算法列表
| 算法 | Class | Convenience | 目标(s) | 约束 | 描述 |
|---|---|---|---|---|---|
| Genetic Algorithm | GA | single | x | 遗传算法的一个模块化实现。它可以很容易地用不同的进化算子进行定制,并适用于广泛的问题类别。 | |
| Differential Evolution | DE | single | x | 微分演化的不同变体是连续优化中的一个著名概念,特别是在全局优化中。 | |
| Biased Random Key Genetic Algorithm | BRKGA | single | x | 大多用于组合优化,而不是自定义进化算子,其复杂性被放入高级变量编码。 | |
| Nelder Mead | NelderMead | single | x | 一个基于逐点的算法,它跟踪一个单线的扩展反映或收缩。 | |
| Pattern Search | PatternSearch | single | x | 迭代法,通过围绕当前最佳解决方案形成特定的探索模式来估计搜索方向。 | |
| CMAES | CMAES | single | 著名的基于模型的算法,在每次迭代中从动态更新的正态分布中采样。 | ||
| Evolutionary Strategy | ES | single | 针对实值优化问题提出的进化策略算法。 | ||
| Stochastic Ranking Evolutionary Strategy | SRES | single | x | 一个使用随机排名的约束处理的进化策略。 | |
| Improved Stochastic Ranking Evolutionary Strategy | ISRES | single | x | 一个改进的SRES版本,能够有效地处理因变量。 | |
| NSGA-II | NSGA2 | multi | x | 知名的多目标优化算法,基于非支配性排序和拥挤。 | |
| R-NSGA-II | RNSGA2 | multi | x | NSGA-II的一个扩展,用户可以提供参考/启发点。 | |
| NSGA-III | NSGA3 | many | x | 针对有两个以上目标的多目标优化问题,对NSGA-II进行了改进。 | |
| U-NSGA-III | UNSGA3 | many | x | NSGA-III的泛化,对单目标和双目标优化问题更有效率。 | |
| R-NSGA-III | RNSGA3 | many | x | 允许为NSGA-III定义愿望点,以纳入用户的偏好。 | |
| MOEAD | MOEAD | many | 另一个著名的基于分解的多目标优化算法。 | ||
| AGE-MOEA | AGEMOEA | many | 与NSGA-II类似,但估计Pareto-front的形状来计算取代拥挤距离的得分。 | ||
| C-TAEA | CTAEA | many | x | 一种对多目标优化算法进行更复杂约束处理的算法。 | |
| SMS-EMOA | CTAEA | many | x | 一种在环境生存期间使用超容积的算法。 | |
| RVEA | RVEA | many | x | 一个基于参考方向的算法使用了一个角度惩罚性的度量。 |
在pymoo 0.6.0中:
- 新版本可用于预编译Python 3.7-3.10,适用于Linux、Mac和Windows。
- 模块pymoo.factory已被废弃。请直接实例化对象。
- 约束的数量现在由n_ieq_constr和n_eq_constr定义,以区分平等和不平等约束(现在也检查目标和约束的正确数量)。
- 不要忘记查看标有新的功能,以了解进一步的变化。混合变量优化,超参数优化,更新的约束处理方法,以及更多。