代码之家  ›  专栏  ›  技术社区  ›  dF.

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

  •  30
  • dF.  · 技术社区  · 17 年前

    fmincon NumPy / SciPy 这是我唯一找不到等效函数的函数。基于NumPy的解决方案是理想的,但任何语言都可以。

    8 回复  |  直到 16 年前
        1
  •  32
  •   tripleee    4 年前

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

    • 线性规划(LP)
    • 二次规划(QP)
    • 二阶圆锥规划(SOCP)
    • 非线性凸问题
    • 非凸问题

    还有一些组合问题,比如混合整数线性规划(MILP),但是你没有提到任何类型的完整性约束,可以说它们属于不同的问题类别。

    如果你的问题不是凸的,你需要在局部解和全局解之间做出选择。许多凸解算器在非凸域中工作。找到全局解的良好近似值需要某种形式的模拟退火或遗传算法。找到全局解需要枚举所有局部解或使用分支定界等组合策略。

        2
  •  18
  •   Chetan    13 年前
        3
  •  14
  •   WalkingRandomly    17 年前

    开源Python包, SciPy ,有相当大的一组优化例程,包括一些用于约束多变量问题的例程(我相信fmincon就是这样做的)。一旦安装了SciPy,在Python命令提示符下键入以下命令

       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
  •  4
  •   Peter Mortensen Pieter Jan Bonestroo    16 年前

    GNU Octave 是另一个MATLAB克隆,可能具有您所需的功能。

        5
  •  3
  •   Joker Joker    17 年前

    对于Python中的数值优化,您可以查看OpenOpt解算器:

    http://openopt.org/NLP

    http://openopt.org/Problems

        6
  •  1
  •   wcm    17 年前

    我不知道它是否在那里,但有一个python发行版,名为 Enthought

        7
  •  1
  •   Peter Mortensen Pieter Jan Bonestroo    16 年前

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

    在那里你会发现C代码,它提供了与之相同的功能 fmincon . (但是,使用不同的算法。如果您对详细信息感兴趣,可以阅读手册。)

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

        8
  •  1
  •   Peter Mortensen Pieter Jan Bonestroo    16 年前

    有一个叫做 SciLab 那是一个MATLAB克隆。

        9
  •  1
  •   Luis Ramon Merchan    4 年前

    Octave在最新版本中实现了一个等效于Matlab的fmincon函数,并将其放入优化包中。

    https://octave.sourceforge.io/optim/function/fmincon.html

        10
  •  0
  •   Stéphane Mottelet    5 年前

    https://atoms.scilab.org/toolboxes/fmincon

    对于大规模优化,它的性能优于Matlab的fmincon。