当前位置:  开发笔记 > 编程语言 > 正文

开源替代MATLAB的fmincon函数?

如何解决《开源替代MATLAB的fmincon函数?》经验,为你挑选了4个好方法。

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



1> user27315..:

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

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

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

如果您的问题凸出,CVXOpt包将对您有很大帮助.

如果您的问题不凸,则需要在寻找本地解决方案或全局解决方案之间进行选择.许多凸解算器'在非凸域中工作'.找到全局解决方案的良好近似将需要某种形式的模拟退火或遗传算法.寻找全球解决方案需要列举所有本地解决方案或组合策略,例如Br​​anch and Bound.



2> 小智..:

Python优化软件:

OpenOpt http://openopt.org (这个是基于numpy的,如你所愿,由FuncDesigner自动区分)

Pyomo https://software.sandia.gov/trac/coopr/wiki/Package/pyomo

CVXOPT http://abel.ee.ucla.edu/cvxopt/

NLPy http://nlpy.sourceforge.net/



3> WalkingRando..:

开源Python包SciPy有很多优化例程,包括一些带有约束的多变量问题(我相信这就是fmincon).安装SciPy后,在Python命令提示符下键入以下内容

帮助(scipy.optimize)

由此产生的文件非常广泛,包括以下我认为可能对您有用的文件.

   Constrained Optimizers (multivariate)

   fmin_l_bfgs_b -- Zhu, Byrd, and Nocedal's L-BFGS-B constrained optimizer
                      (if you use this please quote their papers -- see help)

   fmin_tnc      -- Truncated Newton Code originally written by Stephen Nash and
                      adapted to C by Jean-Sebastien Roy.

   fmin_cobyla   -- Constrained Optimization BY Linear Approximation



4> lindelof..:

GNU Octave是您可能需要的另一个MATLAB克隆。

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有