赞
踩
对于非线性规划,Cplex 与 Gurobi 只支持二次规划(包括凸规划,二阶锥规划,目标函数或约束条件中可以包含二次函数)。若更高次数,或者非凸规划,非二阶锥规划,则需要用其他求解器了。matlab 自带的 fmincon 可以得到一些可行解,比较专业常用的求解器有 lingo,Mosek 等。
MATLAB求解非线性规划的算法包括:内点法(interior point algorithm)、信赖域法(trust-region method)、序列二次规划法(sequential quadratic method)。
这几种方法的核心思想基本都是:将原问题近似为一个凸规划问题求解。
官方解释参看:https://www.mathworks.com/help/optim/ug/constrained-nonlinear-optimization-algorithms.html
Lingo使用的非线性规划的算法是:广义既约梯度法(general reduced gradient method),顺序线性规划法(sucessive linear programming method)。
Lingo 号称有时能够得到全局最优解。
官方解释:https://www.lindo.com/index.php/products/lingo-and-optimization-modeling?catid=89&id=88:powerful-lingo-solvers
还有一个类似的软件叫 lindo,跟 lingo 是一家公司,貌似只能求解线性问题,不过 lindo支持 python 调用,而 lingo 目前还不支持。
对lingo初步使用的心得包括以下几个方面,
优点
缺点:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。