python - MATLAB 的 fmincon 函数的开源替代方案?

标签 python matlab numpy numerical scientific-computing

是否有 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/

相关文章:

python - Python 最佳实践 - 在哪里存储 API key / token

python - 使用 Python 跟踪 Linux 命令

javascript - 使用javascript和django将文本文件上传到服务器中的某个文件夹

python - "virtualenv"中的库比系统库大得多

python - R apply在Python中的匹配速度

Python-性能-将大型 numpy 数组作为字符串打印到选项卡文件

python - 如何从matlab调用python类的 "__call__()"方法

matlab - 是否可以在 MATLAB 中以非工程格式显示数字?

matlab - 将 Matlab 函数结果缓存到文件

python - 使用 numpy 数组中的索引执行计算和比较