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
Python优化软件:
OpenOpthttp://openopt.org(这一个是基于numpy的,由FuncDesigner自动区分)
Pyomohttps://software.sandia.gov/trac/coopr/wiki/Package/pyomo
CVXOPThttp://abel.ee.ucla.edu/cvxopt/
NLPyhttp://nlpy.sourceforge.net/
你的问题是凸的吗?线性的?非线性?我同意SciPy.optimize可能会做这项工作,但是fmincon是一种用于解决优化问题的火箭筒,如果你能将它限制在下面的一个类别中(提高有效解决问题的难度),你会过得更好
线性程序(LP) 二次规划(QP) 凸二次约束二次规划(QCQP) 二阶锥规划 半定程序 非线性凸问题 非凸问题
还有一些组合问题,比如混合整数线性规划(Mixed Integer Linear Programs,MILP),但是你没有提到任何类型的完整性约束,足以说明它们属于不同的问题类别。
如果您的问题是凸的,那么CVXOpt包将非常有用。
如果你的问题不是凸的,你需要在寻找局部解和全局解之间做出选择。许多凸解算器在非凸域中工作。找到一个好的全局解的近似需要某种形式的模拟退火或遗传算法。寻找全局解需要枚举所有局部解或组合策略,如分支和界。
开源的Python包SciPy有相当多的优化例程,其中包括一些用于带约束的多变量问题的例程(这是fmincon所相信的)。安装了SciPy后,在Python命令提示符下键入以下内容
帮助(scipy.optimize)
由此产生的文件是广泛的,包括以下我认为可能对你有用。
相关问题 更多 >
编程相关推荐