CMA-ES/pycma
Python implementation of CMA-ES
解决的问题
pycma 是共 covariance 矩阵自适应进化策略(CMA-ES)的 Python 实现,专为解决复杂的数值优化问题而设计。它特别针对非凸、病态、多峰、崎岖或存在噪声的问题,这些情况下传统基于梯度的方法可能因无需导数而失效。
工作原理
该库实现了 CMA-ES 算法,这是一种通过自适应调整协方差矩阵来导航搜索空间的随机搜索策略。支持多种复杂场景,包括:
- 边界约束:通过特定选项或专用包装器(
BoundDomainTransform)处理。 - 混合整数搜索:支持连续搜索空间中的整数变量。
- 约束条件:能够处理线性和非线性约束。
- 噪声处理:内置机制用于管理噪声目标函数。
适用人群
适用于从事连续和混合整数数值优化的研究人员和工程师,特别是处理导数不可用或搜索空间高度不规则的“黑箱”函数时。
主要亮点
- 无需导数:无需梯度即可运行,适用于崎岖或噪声较大的场景。
- 灵活的约束支持:支持边界、线性和非线性约束。
- 混合整数支持:可同时优化连续和整数变量。
- CMA-ES 变体:包含相关工具如
purecma和CompactGA。
相关
- 项目
- 项目
- 项目
- 项目
- 项目