1.软件版本
- Cplex 12.6.2,Matlab R2014a,Ipopt 3.12.6,Yalmip
2.Cplex添加方法
- 官方下载地址: http://www-01.ibm.com/software/websphere/products/optimization/cplex-studio-community-edition/
- 其中community-edition可以免费试用,但最多只能计算1000个变量或1000个约束条件的优化问题。
- 点击安装,安装步骤默认操作即可。
- 点击Matlab中的,点击,找到路径并将其添加,最后点击即可。
- 然后在Matlab命令行窗口输入,出现帮助文档,代表添加成功。
3.Ipopt添加方法
- 需要的组件:Visual C++ Redistributable for Visual Studio 2015和Redistributable Libraries for Intel? C++2016Compilers for Windows
- Visual C++ Redistributable for Visual Studio 2015下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=48145
- Redistributable Libraries for Intel? C++2016Compilers for Windows下载地址:https://software.intel.com/en-us/articles/redistributables-for-intel-parallel-studio-xe-2016-composer-edition-for-windows 在打开的界面中选择图1-1即可。
图1-1
- Ipopt下载地址:https://www.inverseproblem.co.nz/OPTI/index.php/DL/DownloadOPTI
- 下载下来后解压缩,打开文件,目录如下图1-2。
图1-2
- 打开MATLAB,设置路径-》添加并包含子文件夹-》选择Ipopt路径-》保存。见下图1-3。
图1-3
- 右键运行图1-2中的opti_Install。MATLAB命令行窗口出现如下命令:
INSTALLING OPTI TOOLBOX ver 2.24
- Checking MATLAB version and operating system...
MATLAB (R2014a) 64bit (Windows x64) detected
- Checking for required pre-requisites...
Found the Microsoft VC++ 2015 x64 Redistributable
Found the Intel Fortran XE 2016 x64 Redistributable
- Checking for previous versions of OPTI Toolbox...
Could not find a previous installation of OPTI Toolbox
- Adding OPTI Paths to MATLAB Search Path...Done
- Would You Like To Save the Path Changes? (Recommended) (y/n): y
- Would You Like To Run Post Installation Tests? (Recommended) (y/n): y
Checking OPTI Toolbox Installation:
Checking Paths... Ok
Checking LP Solver Results... Ok
Checking MILP Solver Results... Ok
Checking QP Solver Results... Ok
Checking MIQP Solver Results... Ok
Checking SDP Solver Results... Ok
Checking NLS Solver Results... Ok
Checking NLP Solver Results... Ok
Checking MINLP Solver Results... Ok
Toolbox Checked Out Ok! - Enjoy
OPTI Toolbox Installation Complete!
------------------------------------------------
You now have the following solvers available to use:
------------------------------------------------
OPTI AVAILABLE SOLVERS:
BARON: Not Available
BONMIN: Available v1.8.4
CBC: Available v2.9.8
CLP: Available v1.16.10
CPLEX: Not Available
CSDP: Available v6.2 beta
DSDP: Available v5.8
FILTERSD: Available v1.0
GLPK: Available v4.48
GMATLAB: Available v3.2.5
HYBRJ: Available
IPOPT: Available v3.12.6
LBFGSB: Available v3.0
LEVMAR: Available v2.6 (November 2011)
LMDER: Available
LP_SOLVE: Available v5.5.2.0
M1QN3: Available v3.3
MATLAB: Available v7.0
MKLTRNLS: Available v2017.0 R2
MOSEK: Not Available
MUMPS: Available v4.10.0
NL2SOL: Available v2.3
NLOPT: Available v2.4.2
NOMAD: Available v3.7.2
OOQP: Available v0.99.22
PSWARM: Available v1.5
SCIP: Not Available
SEDUMI: Not Available
4.Yalmip添加方法
- 下载地址:https://yalmip.github.io/
- 将下载的文件解压,设置路径-》添加并包含子文件夹-》选择Yalmip路径-》保存。
- 在Matlab的命令行窗口中输入或输入Yalmiptest,测试是否添加成功。
5.通过Yalmip建模并调用Cplex和Ipopt
- 首先通过Yalmip建立一个MILP的模型,调用Cplex求解并设置迭代时间,然后将其迭代结束得出的最优解作为初始值赋值给一个NLP模型,调用IPOPT求解,最终求出一个最优解。
- Yalmip设置变量,实数变量:sdpvar;0-1变量:binvar;整数变量:intvar。具体例子见图1-4.
图1-4
- Yalmip设置约束条件。具体例子见图1-5.
图1-5
- Yalmip设置目标函数。具体例子见图1-6.
图1-6
- Yalmip调用求解器。具体例子为调用Cplex,见图1-7.
图1-7
- Yalmip设置Options中的一些属性。调试中,程序运行到图1-8中的第7行时,在Matlab的工作区中点击,查看options,见图1-9。在图1-9中找到并点击,出现图1-10,在1-10中找到,timelimit为迭代的最大时间。图1-10中的为输出建立的数学模型。
图1-8
图1-9
图1-10
- Yalmip设置Cplex的迭代最大时间,见图1-11.
图1-11
- Yalmip设置Cplex输出建立的数学模型,见图1-12.点击图1-13,出现图1-14,1-15,图1-14中obj即为目标函数。图1-15中的Subject To即为约束条件。
图1-12
图1-13
图1-14
图1-15
- Yalmip设置初值,官方说明见图1-16.在options中将usex0设置为1即为设置初始值,赋值初始值使用assign。具体见图1-17和图1-18.图1-17中的P_it为被赋值的对象,Pit为初始值。图1-18中的求解器为Ipopt。
图1-16
图1-17
图1-18
- Yalmip求解命令,见图1-19.图1-19中的constraint为模型约束条件,fun为模型目标函数,options见图1-18.
图1-19
- Yalmip产看变量或表达式的值,见图1-20.图1-20为输出目标函数的值。fun为目标函数。
图1-20
- Yalmip调用Cplex求解结果,见图1-21和图1-22.
图1-21
图1-22
- Yalmip调用Ipopt求解结果,见图1-23和图1-24.
图1-23
图1-24