MATLAB 的 fmincon 函数的开源替代品?

新手上路,请多包涵

是否有 MATLAB 的开源替代方案 fmincon 用于约束线性优化的函数?我正在重写一个 MATLAB 程序以使用 Python/ NumPy / SciPy ,这是我唯一没有找到等效的函数。基于 NumPy 的解决方案是理想的,但任何语言都可以。

原文由 dF. 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

你的问题是凸的吗?线性?非线性?我同意 SciPy.optimize 可能会完成这项工作,但 fmincon 是一种解决优化问题的火箭筒,如果你能将它限制在以下类别之一(增加解决难度),你会更好有效率的)

  • 线性程序 (LP)
  • 二次规划 (QP)
  • 凸二次约束二次规划 (QCQP)
  • 二阶锥程序 (SOCP)
  • 半定纲领 (SDP)
  • 非线性凸问题
  • 非凸问题

还有组合问题,例如混合整数线性程序(MILP),但您没有提到任何类型的完整性约束,足以说它们属于不同类别的问题。

如果您的问题是凸的,CVXOpt 包将对您很有用。

如果您的问题不是凸的,则需要在寻找局部解决方案或全局解决方案之间做出选择。许多凸求解器“有点”在非凸域中工作。找到全局解决方案的良好近似值需要某种形式的模拟退火或遗传算法。找到全局解决方案将需要枚举所有本地解决方案或组合策略,例如 Branch and Bound。

原文由 user27315 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题