『实践』Yalmip+Ipopt+Cplex使用手册

Yalmip+Ipopt+Cplex使用手册

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  

  • (组件下载地址链接:http://pan.baidu.com/s/1o8p3xhg 密码:754n)

  •  在打开的界面中选择图1-1即可。

『实践』Yalmip+Ipopt+Cplex使用手册_第1张图片 

图1

  •  Ipopt下载地址:https://www.inverseproblem.co.nz/OPTI/index.php/DL/DownloadOPTI(最新版本)
  • Ipopt下载链接:http://pan.baidu.com/s/1crTxZC 密码:7xcs(以前的版本)
  • 下载下来后解压缩,打开文件,目录如下图1-2。

『实践』Yalmip+Ipopt+Cplex使用手册_第2张图片 

图2

  •  打开MATLAB,设置路径-》添加并包含子文件夹-》选择Ipopt路径-》保存。见下图1-3

『实践』Yalmip+Ipopt+Cplex使用手册_第3张图片 

图3

  • 右键运行图1-2中的opti_Install。MATLAB命令行窗口出现如下命令:
  1 INSTALLING OPTI TOOLBOX ver 2.24
  2 
  3  
  4 
  5 - Checking MATLAB version and operating system...
  6 
  7 MATLAB (R2014a) 64bit (Windows x64) detected
  8 
  9  
 10 
 11 - Checking for required pre-requisites...
 12 
 13 Found the Microsoft VC++ 2015 x64 Redistributable
 14 
 15 Found the Intel Fortran XE 2016 x64 Redistributable
 16 
 17  
 18 
 19 - Checking for previous versions of OPTI Toolbox...
 20 
 21 Could not find a previous installation of OPTI Toolbox
 22 
 23  
 24 
 25 - Adding OPTI Paths to MATLAB Search Path...Done
 26 
 27  
 28 
 29 - Would You Like To Save the Path Changes? (Recommended) (y/n): y
 30 
 31  
 32 
 33 - Would You Like To Run Post Installation Tests? (Recommended) (y/n): y
 34 
 35  
 36 
 37 Checking OPTI Toolbox Installation:
 38 
 39 Checking Paths...                Ok
 40 
 41 Checking    LP Solver Results... Ok
 42 
 43 Checking  MILP Solver Results... Ok
 44 
 45 Checking    QP Solver Results... Ok
 46 
 47 Checking  MIQP Solver Results... Ok
 48 
 49 Checking   SDP Solver Results... Ok
 50 
 51 Checking   NLS Solver Results... Ok
 52 
 53 Checking   NLP Solver Results... Ok
 54 
 55 Checking MINLP Solver Results... Ok
 56 
 57  
 58 
 59 Toolbox Checked Out Ok! - Enjoy
 60 
 61  
 62 
 63 OPTI Toolbox Installation Complete!
 64 
 65 ------------------------------------------------
 66 
 67  
 68 
 69 You now have the following solvers available to use:
 70 
 71  
 72 
 73 ------------------------------------------------
 74 
 75 OPTI AVAILABLE SOLVERS:
 76 
 77  
 78 
 79 BARON:           Not Available
 80 
 81 BONMIN:          Available      v1.8.4
 82 
 83 CBC:             Available      v2.9.8
 84 
 85 CLP:             Available      v1.16.10
 86 
 87 CPLEX:           Not Available
 88 
 89 CSDP:            Available      v6.2 beta
 90 
 91 DSDP:            Available      v5.8
 92 
 93 FILTERSD:        Available      v1.0
 94 
 95 GLPK:            Available      v4.48
 96 
 97 GMATLAB:         Available      v3.2.5
 98 
 99 HYBRJ:           Available
100 
101 IPOPT:           Available      v3.12.6
102 
103 LBFGSB:          Available      v3.0
104 
105 LEVMAR:          Available      v2.6 (November 2011)
106 
107 LMDER:           Available
108 
109 LP_SOLVE:        Available      v5.5.2.0
110 
111 M1QN3:           Available      v3.3
112 
113 MATLAB:          Available      v7.0
114 
115 MKLTRNLS:        Available      v2017.0 R2
116 
117 MOSEK:           Not Available
118 
119 MUMPS:           Available      v4.10.0
120 
121 NL2SOL:          Available      v2.3
122 
123 NLOPT:           Available      v2.4.2
124 
125 NOMAD:           Available      v3.7.2
126 
127 OOQP:            Available      v0.99.22
128 
129 PSWARM:          Available      v1.5
130 
131 SCIP:            Not Available
132 
133 SEDUMI:          Not Available
View Code

 

4.Yalmip添加方法

  • 下载地址:https://yalmip.github.io/(最新版本)
  • 下载链接:http://pan.baidu.com/s/1eRBhRlK 密码:dv4o(之前版本)
  • 将下载的文件解压,设置路径-》添加并包含子文件夹-》选择Yalmip路径-》保存。
  •  在Matlab的命令行窗口中输入或输入Yalmiptest,测试是否添加成功。

 

5.Yalmip建模常用语法

5.1  变量设置

  • 实数变量:sdpvar;
  • 0-1变量:binvar;
  • 整数变量:intvar。
  • 例如:x = sdpvar(1,1);    %x为1×1的实数变量

 

5.2  约束条件

  • Constraints = [];  %Constraints为自己定义的一个存储约束的矩阵
  • Constraints = [Constraints,0 <= x  <= 1];   %定义了一个变量x大于0且小于1的约束条件

 

5.3  目标函数

  • F = 0;    %F为目标函数
  • x = sdpvar(1,1);
  • Constraints = [Constraints, x >= 2];
  • F = F + x^2 + x^3;   %目标函数为x^2+x^3

 

5.4   查看变量或表达式的值

  • value(x);   %查看变量x的值
  • value(x^2+x^3);   %查看表达式x^2+x^3的值

 

5.5  设置Yalmip和求解器的options

  • 通过sdpsettings设置,(sdpsettings参数列表链接)
  • options = sdpsettings('field',value,'field',value,.....);   %filed为参数名,value为设置值
  • 例如:options = sdpsettings('solver','cplex');   %设置求解器为cplex
  • 或者这样也可以:options.cplex.exportmodel = 'model.lp';   %设置求解器cplex输出模型为model.lp

图4  

『实践』Yalmip+Ipopt+Cplex使用手册_第4张图片

图5   options

『实践』Yalmip+Ipopt+Cplex使用手册_第5张图片

图6  options.cplex

 

5.6  常用求解函数optimize

  • sol = optimize(Constraints,Objective,options);  %Constraints为约束,Objective为目标函数,options为5.5节的options

 

5.7  输出Yalmip模型

  • export函数是将Yalmip模型按照求解器的格式输出。
  • [model,recoverymodel,diagnostic,internalmodel] = export(Constraints,Objective,options);  %Constraints为约束,Objective为目标函数,options为5.5节的options
  • 例如:
  • x = intvar(2,2);
  • Constraints = [];
  • Constraints = [Constraints,0 <= x  <= 1]; 
  • F = sum(x) * ones(2,1);
  • options = sdpsettings('solver','cplex');   %设置求解器为cplex
  • [model,recoverymodel,diagnostic,internalmodel] = export(Constraints,Objective,options);  %此时model中就会有符合cplex求解器格式的模型

 『实践』Yalmip+Ipopt+Cplex使用手册_第6张图片

图7  model中的参数列表

 

5.8  获取求解器的求解时间和Yalmip的建模时间

  • sol = optimize(Constraints,Objective,options);  %Constraints为约束,Objective为目标函数,options为5.5节的options
  • sol.yalmiptime;  %Yalmip的建模时间
  • sol.solvertime;  %求解器的求解时间

 

5.9  设置初值

  • P = sdpvar(2,2);
  • assign(P,double(Pit));  %P为2×2的实数变量,Pit为2×2的已知矩阵,将Pit的值赋值给P
  • options = sdpsettings('solver','cplex','usex0',1);  %usex0默认为0,1为开启设置初值功能

『实践』Yalmip+Ipopt+Cplex使用手册_第7张图片

图8   Yalmip网站说明

 

5.10  获取对偶乘子

  • 查看我的另一篇博客:『实践』Yalmip获取对偶函数乘子

 

5.11  Yalmip输出模型,调用Cplex类求解

  • 查看我的另一篇博客::『实践』Yalmip建模+Cplex类求解

 

你可能感兴趣的:(Yalmip,Cplex,实践)