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添加方法

图1-1

图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

时间: 2024-10-29 19:12:06

Yalmip+Ipopt+Cplex使用手册的相关文章

angular参考手册拷贝

AngularJS 参考手册 AngularJS 指令 本教程用到的 AngularJS 指令 : 指令 描述 ng-app 定义应用程序的根元素. ng-bind 绑定 HTML 元素到应用程序数据 ng-bind-html 绑定 HTML 元素的 innerHTML 到应用程序数据,并移除 HTML 字符串中危险字符 ng-bind-template 规定要使用模板替换的文本内容 ng-blur 规定 blur 事件的行为 ng-change 规定在内容改变时要执行的表达式 ng-check

Exchange 2013迁移SOP手册

Exchange 2013迁移SOP手册 阶段1:环境部署 OUTLOOK升级方式 统计版本低于SP3的OUTLOOK客户端信息 记录计算机在域中所在OU信息 域中创建临时升级用OU,如MAILUPGRADE 采用如下命令移动计算机到MAILUPGRADE OU dsmove "CN=Aidong Qi,OU=Users,OU=TESTP,OU=Hitech,DC=hitechad,DC=com" -newparent OU=MAILUPGRADE,DC=hitechad,DC=com

oracle11g dataguard 完全手册

一.前言: 网络上关于dataguard的配置文章很多,但是很多打着oracle11g的文章实际都是只能在9 10 上运行,比如FAL_CLIENT在11g中已经废弃,但是现在网络上的文章都是没有标注这一点.而且对于具体含义语焉不详对于新手只能知其然而不知其所以然.这篇文章我就想让像我这样的人对于dataguard配置不仅仅知道怎么配置,还要知道为什么需要这样配置,这样的效果才是最好的. 这篇文章不仅仅是记录如何配置,还介绍了为什么是这样,以及注意要点,我希望这个文章可以作为进行dataguar

小书匠语法使用手册

小书匠语法使用手册 小书匠 语法 MARKDOWN 帮助 常用语法 标题 1这是 H1 一级标题 2------ 3这是 H2 二级标题 4====== 5# 这是 H1 一级标题 6## 这是 H2 二级标题 7### 这是 H3 三级标题 8#### 这是 H4 四级标题 9##### 这是 H5 五级标题 10###### 这是 H6 六级标题 11 快捷键: [ctrl + h] 列表 无序列表 1* 项目1 2 * 子项目1.1 3 * 子项目1.2 4 * 子项目1.2.1 5* 项

[笔记][Java7并发编程实战手册]3.2 资源的并发访问控制Semaphore信号量

[笔记][Java7并发编程实战手册]系列目录 简介 本文学习信号量Semaphore机制. Semaphore 本质是一个共享锁 内部维护一个可用的信号集,获取信号量之前需要先申请获取信号数量:用完之后,则需要释放信号量:如果不释放,那么其他等待线程则一直阻塞直到获取信号量或则被中断为止 本人的理解是:互斥锁是同一时间只能一个线程访问,而在这里,是同一时间允许获取到了信号量的线程并发访问,而没有获取到信号量的则必须等待信号量的释放: 将信号量初始化为 1,使得它在使用时最多只有一个可用的许可,

SVN Server环境安装配置手册

SVN Server环境安装配置手册_百度文库 http://wenku.baidu.com/link?url=923bv1olSkznh1gWd7Gqoxxwj18IHIlTXcEbNiPSLM5H32k93UtQ22rAVppNIlVv89ru4E1cPFe1yESSEkSsR4NfDMMRgpA2d3GI_KcV37m

《开源分享1》:前端开发必备《Html-CSS中文手册》

一直想做一些优秀的资源分享内容,今天尝试整理了一下,以后会每天抽点时间发一些自认为不错的资料出来.帮助大家提高学习效率. 今天分享的内容:前端开发:<Html-CSS中文手册>! 本手册针对的是已有一定网页设计制作经验的读者.其目的是提供完整清晰的样式表内容的快速索引及进阶帮助.所以对于网页制作和样式表的基础知识,仅简单介绍,恕不赘述. 手册提供了完整的 CSS2.0 的属性(Properties).规则(At-Rules).伪类(Pseudo-Classes).伪元素(Pseudo-Elem

LINUX基本命令行手册一

linux基本命令行手册一    1.1基本的网络命令        1>wget 从服务器上检索或下载文件,支持HTTP,HTTPS,FTP协议,服务器响应后,会将请求到的文件下载到当前用户所处的目录下        语法:wget [option]... [URL]...        option:            -t:尝试请求服务器的次数,若在指定的次数内,未响应,则断开链接            -o:将信息输出保存在记录文件中            -nc:支持断点下载,当下

linux 打造man中文帮助手册

步骤 下载开源的man-pages 中文手册包 配置解压手册包 安装 测试 参考资料 学IT的同学都知道, Linux是一个好东西, 但初学者往往会因为太多的命令觉得头疼, 更头疼的是所有的帮助文档都是英文. 其实Linux之所以强大, 就在于其强大的命令行, 如此繁杂的命令让一个六级以下英语水平的同学去看实在是一件很残忍的事, 甚至极大打消了很多同学学习Linux的热情. 这篇文章就为广大英语不好的Linux初学者们提供了一个简便的方法把man帮助信息变成中文. 步骤 下载开源的man-pag