是否有 MATLAB 的 fmincon
的开源替代方案?约束线性优化的函数?我正在重写一个 MATLAB 程序以使用 Python/NumPy/SciPy这是我没有找到的唯一功能。基于 NumPy 的解决方案是理想的,但任何语言都可以。
最佳答案
你的问题是凸的吗?线性?非线性?我同意 SciPy.optimize 可能会完成这项工作,但 fmincon 是一种用于解决优化问题的火箭筒,如果您可以将其限制在以下类别之一(解决难度增加有效)
- 线性规划 (LP)
- 二次规划 (QP)
- 凸二次约束二次规划 (QCQP)
- 二阶锥体计划 (SOCP)
- 半定规划 (SDP)
- 非线性凸问题
- 非凸问题
还有组合问题,例如混合整数线性规划 (MILP),但您没有提到任何类型的完整性约束,足以说明它们属于不同类别的问题。
如果您的问题是凸的,CVXOpt 包将对您非常有用。
如果您的问题不是凸的,您需要在寻找局部解决方案或全局解决方案之间做出选择。许多凸求解器“有点”在非凸域中工作。找到全局解决方案的良好近似需要某种形式的模拟退火或遗传算法。找到全局解决方案将需要枚举所有本地解决方案或组合策略,例如 Branch and Bound。
关于python - MATLAB 的 fmincon 函数的开源替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49926/