对于非线性规划,Cplex 与 Gurobi 只支持二次规划(包括凸规划,二阶锥规划,目标函数或约束条件中可以包含二次函数)。若更高次数,或者非凸规划,非二阶锥规划,则需要用其他求解器了。matlab 自带的 fmincon 可以得到一些可行解,比较专业常用的求解器有 lingo,Mosek 等。
对lingo初步使用的心得包括以下几个方面,
优点
-
语法简单,容易上手
-
通过 solver 中 的 options 可以方便对求解进行设置
-
支持非线性,非凸问题的求解
-
国内网上很多学习资料
-
对于非线性问题的求解,确实比 matlab 好(有时候也不一定)
-
不能直接定义二维求解变量,需要通过 link 间接定义
-
对大规模问题的支持显然不如 cplex,gurobi 等
-
对求解过程的调试或控制,没有支持 java调用的 cplex,或者支持 python 调用的 gurobi 方便
对于非线性规划,Cplex 与 Gurobi 只支持二次规划(包括凸规划,二阶锥规划,目标函数或约束条件中可以包含二次函数)。若更高次数,或者非凸规划,非二阶锥规划,则需要用其他求解器了。matlab 自带的 fmincon 可以得到一些可行解,比较专业常用的求解器还有 lingo,自己这段时间准备用下看看。......
非
线性
求解
器
Casadi
使用
简介
Casadi做为一款
非
线性
求解
器
,支持python、C++、
matlab
等多种语言,能够解决
非
常多的工程问题。具体
使用
请参考casadi官方
使用
文档。
使用
Casadi主要包含3个步骤:构造变量、构造目标函数和设置
求解
器
。
构造变量和目标函数
使用
casadi
求解
优化问题时,就需要将变量定义成casadi能够识别的形式,其中可以将变量定义成向量、矩阵的形式,如“x = SX.sym(‘x’)”定义的是一个一维变量,“y=SX.sym(‘y’, 5)”定义的是一个5维向量变量
Medicine/1..2/:Profits_medicine, Number_production;
Material/1..2/:Total_material;
link(Medicine, Material):Consuption;
endsets
data:
HiOp-用于优化的HPC
求解
器
HiOp是用于解决某些数学优化问题(表示为
非线性规划
问题)的优化
求解
器
。 HiOp是一种轻量级的HPC解算
器
,它利用应用程序现有的数据并行性,通过
使用
专用的线性代数内核来并行化优化迭代。
构建/安装说明
HiOp
使用
基于CMake的构建系统。 可以通过在“ build”目录中调用以下命令来完成标准构建
$ > cmake ..
$ > make
$ > make test
$ > make install
此序列将构建HiOp,运行完整性和正确性测试,并将标头和库安装在HiOp根目录中的“ _dist-default-build”目录中。
Command make test对HiOp的各个模块进行广泛的测试,以检查完整性和正确性。 测试套件的范围从单元测试到解决具体的优化问题,以及根据已知解决方案针对这些问题检查HiOp
求解
器
的性能。 默认情况下,
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
LINGO
编程简介与实例一.
LINGO
使用
介绍1.
LINGO
编写格式2 .
LINGO
内部函数
使用
详解.二、
LINGO
求解
优化模型实例
一.
LINGO
使用
介绍
LINGO
是一种专门用于
求解
数学规划问题的软件包。由于
LINGO
执 行速度快,易于方便地输入、
求解
和分析数学规划问题,因此在 教学、科研和工业界得到广泛应用。
LINGO
主要用于
求解
线性规划 、
非线性规划
、二次规划和整数规划等问题,也可以用于
求解
一 些线性和
非
线性方程组及代数方程求根
1.yalmip简介
yalmip是由Lofberg开发的一种免费的优化
求解
工具,其最大特色在于集成许多外部的最优化
求解
器
(包括cplex),形成一种统一的建模
求解
语言,提供了
Matlab
的调用API,减少学习者学习成本。简而言之,它可以让你像书写数学模型那样输入你的模型。
2.环境搭建
2.1 yalmip安装
yalmip下载页面,点击下载即可。
解压后,将其复制到toolbox文件...
在
使用
fmincon
求解
最优值的过程中,可以有以下所示的多种形式:
x = fmincon(fun,x0,A,b)
x = fmincon(fun,x0,A,b,Aeq,be)
x = fmincon(fun,x0,A,b,Aeq,beq,lb,u