1.介绍

首先,yalmip是一个matlab的工具包,通过matlab实现各种操作和调用。

其次,它是一个建模工具,甚至可以称为一种“语言”,通过这种“语言”来描述模型,然后再调用其他求解器(如gurobi、cplex等)来求解模型。相当于一个将“yalmip语言”转换成其他求解器“语言”的语言转换器

不同的求解器有不同的专用语言,学习多个语言即冗余又浪费精力,所以,yalmip的珍贵之处就体现出来了。

更为可贵的是,yalmip真正实现了建模和算法二者的分离,它提供了一种统一的、简单的建模语言,针对所有的规划问题,都可以用这种统一的方式建模;至于用哪种求解算法,你只需要通过一次简单的参数配置指定就可以了,甚至不用你指定,yalmip会自动为你选择最适合的算法。

有了yalmip,你不再需要针对每一种工具包去学习特定的建模语言(比如用cplex要专门学习cplex的建模语言,用lingo要专门学习lingo的建模语言,还有GLPK、lpsolve、Matlab自带的求解器等等,如果每一种求解器都要学习新的建模语言的话,这个工作量是可想而知的)。相反,如果你选择使用yalmip,那么你只需要学习yalmip一种建模语法,因为yalmip真正实现了建模和算法的分离,所有的问题都可以用统一的方法建模,如果需要使用不同的求解器,只需要一句简单的配置即可。因此,yalmip不仅仅是一个线性规划求解器,更强大的地方在于,它提供了一个统一的建模平台,支持现有的几乎所有的求解算法。有了yalmip,一切都变得简单起来。

以上摘自博客《yalmip + lpsolve + matlab 求解混合整数线性规划问题(MIP/MILP)》

2.安装

  1. 官网下载https://yalmip.github.io/
  2. 解压至matlab/toolbox
  3. matlab中设置路径,注意:要将压缩包内的子文件夹都加入路径,选择“添加并包含子文件夹”来添加路径;
  4. 检查是否配置成功:matlab中调用yalmitest命令,查看所有支持的求解器已经他们的安装状态。

3.使用

3.1 定义变量

设置默认格式变量:x = sdpvar(m, n, [option])

设置整数格式变量:x = intvar(m, n, [option])

设置0-1格式变量:x = binvar(m, n, [option])

3.2 设定目标函数

举例:f = [4 2 1] * x;

3.3 设定约束

直接设置:Constraints = [sum(x) <= 10, x(1) == 0, 0.5 <= x(2) <= 1.5];

增加新约束:Constraints = [Constraints, x(2) == 1,];

3.4 设定求解要求及参数

命令语句:sdpsettings(option1, value1, option2, value2, ……)

举例:ops=sdpsettings('solver','gurobi','verbos',2)

'solver' 参数指定程序用gurobi求解器(如果已经安装,否则会报错),如果不指定 ‘solver’ 参数,他会根据决策变量类型自动挑选已安装的、最适合的求解器;'verbose' 指定显示冗余度(冗余度越大,你就可以看到越详细的求解过程信息)。

3.5 求解

result = solvesdp(F, f, ops)或sol = optimize(Constraints,Objective,options);

查看最优解x:solution=value(x)

问题探查:

% Analyze error flags
if sol.problem == 0% Extract and display valuesolution = value(x)
elsedisplay('Hmm, something went wrong!');sol.infoyalmiperror(sol.problem)
end

yalmip使用指南相关推荐

  1. 超详细中文预训练模型ERNIE使用指南-源码

    作者 | 高开远,上海交通大学,自然语言处理研究方向 最近在工作上处理的都是中文语料,也尝试了一些最近放出来的预训练模型(ERNIE,BERT-CHINESE,WWM-BERT-CHINESE),比对 ...

  2. 入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集-深度学习问题

    入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集 GT_Zhang关注 0.1012019.08.01 18:43:34字数 1,874阅读 795 Hi,欢迎各位来自Paddl ...

  3. ASIC设计-终极指南

    ASIC设计-终极指南 ASIC Design – The Ultimate Guide ASIC设计-终极指南 ASICs代表特定于应用的集成电路,指的是针对特定应用而设计的半导体解决方案,与其他解 ...

  4. Python神经网络集成技术Guide指南

    Python神经网络集成技术Guide指南 本指南将介绍如何加载一个神经网络集成系统并从Python运行推断. 提示 所有框架的神经网络集成系统运行时接口都是相同的,因此本指南适用于所有受支持框架(包 ...

  5. 深度学习框架集成平台C++ Guide指南

    深度学习框架集成平台C++ Guide指南 这个指南详细地介绍了神经网络C++的API,并介绍了许多不同的方法来处理模型. 提示 所有框架运行时接口都是相同的,因此本指南适用于所有受支持框架(包括Te ...

  6. HTML5与CSS3权威指南之CSS3学习记录

    title: HTML5与CSS3权威指南之CSS3学习记录 toc: true date: 2018-10-14 00:06:09 学习资料--<HTML5与CSS3权威指南>(第3版) ...

  7. Maven入门指南⑦:Maven的生命周期和插件

    Maven入门指南⑦:Maven的生命周期和插件 一个完整的项目构建过程通常包括清理.编译.测试.打包.集成测试.验证.部署等步骤,Maven从中抽取了一套完善的.易扩展的生命周期.Maven的生命周 ...

  8. ini文件怎么使用_ftp文件下载工具,ftp文件下载工具是怎么使用的?使用指南

    ftp文件下载工具是什么工具,可能有人会回答说不知道,因为一般只有从事网站管理的工作者会使用的多一点.但不是每个人生来就会的,所以刚开始肯定都会学习怎么使用.这篇文章就来教一下大家ftp文件下载工具是 ...

  9. 王建春计算机应用基础,计算机应用基础(本)教学指南.pdf

    "计算机应用基础(本 )"教学指南 一.课程概况 课程性质.教学目标.教学内容等详见 "课程导学--学什么". 1.学习资源 现有教学资源 功能 "学 ...

  10. java修改 nsf中的数据_最新NSF申请指南中的一些重要改动

    作者:孟津 美国NSF已更新其申请书的写作和提交指南,从2009年1月5日起实施.比较重要的变化有下列几点,涉及几个方面: 1. 博士后指导:每一个含有支持博士后资金的申请,必须在申请书规定的15页课 ...

最新文章

  1. 查找数组中第二个最小元素
  2. copy_to_user和copy_from_user
  3. Android 控件之RatingBar评分条
  4. CCAI 2017 | 日本理化学研究所杉山将:弱监督机器学习的研究进展
  5. RestTemplate异常no suitable HttpMessageConverter found for request type [java.lang.Integer]
  6. Sublime Text 教程
  7. 409.最长回文串(力扣leetcode) 博主可答疑该问题
  8. 快速合并所有txt文档
  9. dcp9030cdn定影_兄弟DCP-9030CDN驱动下载
  10. 基于Opencv的人脸&姓名&表情&年龄&种族&性别识别系统(源码&教程)
  11. 流程图设计教程和参考样例
  12. mybatis plus 代码生成器
  13. [转载]前端代码规范 及 最佳实践
  14. linux安装ati工具,安装ati驱动的辛苦历程
  15. zigbee 问题一:协调器究竟如何选择信道?
  16. X265码率控制——ABR算法基本原理 源码解读
  17. 爬虫实战(一)利用scrapy爬取豆瓣华语电影
  18. java 实现SocketIo客户端
  19. 介绍一个中型开源社区
  20. 服务器运维基础知识,IDC机房服务器运维基础知识

热门文章

  1. 第一节 计算机硬件组成
  2. mysql毫秒丢失_MySQL JDBC 更新数据丢失毫秒精度
  3. win7虚拟磁盘服务器,深度Win7 64位旗舰版系统如何创建虚拟磁盘
  4. xml.html一键解密工具,AutoJs一键解密
  5. 国内的点对点聊天工具鱼信Fishchat怎么用?
  6. 宏碁e5-572g重装linux,Acer-E5-572G笔记本U盘装原版win10系统教程
  7. 计算机四级网络题型,全国计算机四级考试题型
  8. 探索大型网站技术架构(二)
  9. 网易云再度升级!用Python爬取下载(一:思路)
  10. 4.3 数值分析: 简单迭代法的构造和收敛条件