关于python:MATLAB的fmincon函数的开源替代品?

关于python:MATLAB的fmincon函数的开源替代品?

Open source alternative to MATLAB's fmincon function?

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


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

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

还存在组合性问题,例如混合整数线性程序(MILP),但您没有提及任何类型的完整性约束,只需说它们属于另一类问题即可。

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

如果您的问题不是凸出的,则需要在查找局部解决方案或全局解决方案之间进行选择。许多凸求解器在非凸域中"排序"。要找到全局解决方案的良好近似,则需要某种形式的模拟退火或遗传算法。要找到全局解决方案,将需要对所有本地解决方案进行枚举,或者需要采用组合策略,例如Br??anch and Bound。


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/


开源Python软件包SciPy具有大量优化例程,其中包括一些用于约束条件的多变量问题的程序(我相信fmincon就是这样做的)。安装SciPy后,在Python命令提示符下键入以下内容

帮助(scipy.optimize)

生成的文档内容广泛,其中包括以下内容,我认为可能对您有用。

1
2
3
4
5
6
7
8
9
   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

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


对于Python中的数值优化,您可以看一下OpenOpt求解器:

http://openopt.org/NLP

http://openopt.org/问题


看看http://www.aemdesign.com/downloadfsqp.htm。

在那里,您将找到提供与fmincon相同功能的C代码。 (但是,使用其他算法。如果您对详细信息感兴趣,可以阅读该手册。)

它是开源的,但不是在GPL下。


有一个名为SciLab的程序,它是MATLAB的克隆。

我根本没有使用过它,但是它是开源的,可能具有您正在寻找的功能。


我不知道它是否在那里,但是有一个名为Enthought的python发行版可能有您想要的东西。它是专门为数据分析而设计的,具有60多个附加库。


推荐阅读

    excel怎么用乘法函数

    excel怎么用乘法函数,乘法,函数,哪个,excel乘法函数怎么用?1、首先用鼠标选中要计算的单元格。2、然后选中单元格后点击左上方工具栏的fx公

    军用物资9000元z77游戏安装方案

    军用物资9000元z77游戏安装方案,,在英特尔Ivy Bridge平台,主板制造商z77主板已经有些无法抵御孤独。最近,有z77a-gd55 MSI主板经销商成立一

    计算机蓝屏故障的计算机蓝屏解决方案

    计算机蓝屏故障的计算机蓝屏解决方案,,电脑蓝屏电脑故障经常使用电脑的朋友经常遇到,因为电脑蓝屏是一个非常普遍的现象,所以很难预测,什么时

    excel中乘法函数是什么?

    excel中乘法函数是什么?,乘法,函数,什么,打开表格,在C1单元格中输入“=A1*B1”乘法公式。以此类推到多个单元。1、A1*B1=C1的Excel乘法公式

    标准差excel用什么函数?

    标准差excel用什么函数?,函数,标准,什么,在数据单元格的下方输入l标准差公式函数公式“=STDEVPA(C2:C6)”。按下回车,求出标准公差值。详细

    无法打开网络正常网页的解决方案

    无法打开网络正常网页的解决方案,,昨天我在一家电脑公司做了一个奇怪的现象,在网络的开始都是正常的,QQ是正常的,但不久之后,我发现无法打开网

    MacChrome打开HTTPS证书错误解决方案

    MacChrome打开HTTPS证书错误解决方案,,评论:在Chrome浏览器下,总是建议站点的安全证书不可信。有一个很好的解决方案,你可以试试看。 GoAge