规划利器--YALMIP工具箱

YALMIP是一个MATLAB上的一个工具箱.它让你用MATLAB语法优雅地解决各种规化问题.

安装

  1. 确保MATLAB版本在2015a及以上.
  2. 此处下载zip安装包,随后解压到MATLAB目录下,例如
  3. 把YALMIP的目录加入到MATLAB的PATH中,其中包括:


验证

验证YALMIP的安装工作

在MATLAB中输入yalmiptest,若出现

+++++++++++++++++++++++++++++++++++++++++++++++
|       Searching for installed solvers       |
+++++++++++++++++++++++++++++++++++++++++++++++
|        Solver|   Version/module|      Status|
+++++++++++++++++++++++++++++++++++++++++++++++
|       LINPROG|                 |       found|
|      QUADPROG|                 |       found|
|        LMILAB|                 |       found|
|       FMINCON|        geometric|       found|
|                .......                      |
|         FRLIB|                 |   not found|
+++++++++++++++++++++++++++++++++++++++++++++++

那么YALMIP安装成功

安装基础的解析器

当我们执行yalmiptest时,实际上是检查可使用的解析器.下面就介绍一些常用的解析器以及安装

Gurobi/CPLEX:Gurobi和CPLEX适用的范围差不多,所以上只要装一个就行.性能的话还是CPLEX会好一点(毕竟IBM,但差别不大),两者都有针对学术的免费版本,CPLEX学术版本的获取需要以教师身份注册,而Gurobi是需要教育网IP验证.同时Gurobi还有免费的社区版本(半年).各版本的区别都在于支持的变量数上,然而Gurobi的社区版本个人以为完全可以满足国赛的需要了(超了那个数量自己想想思路有没有问题).

以下是Gurobi的安装流程.

  1. 先到Gurobi官网上注册账号.
  2. 申请对应版本的序列号.
  3. 下载对应版本Gurobi,安装后重启.
  4. Win+R运行cmd回车后 输入激活码grbgetkey xxx-xxx-xxx-xxx.
  5. 在MATLAB下运行Gurobi/win/matlab/gurobi_setup.m 同时保存PATHsavepath
  6. 在运行yalmiptest应该看到Gurobi变成found了.

当然,如果你确实需要一个支持大量变量的解析器,那么你只能用mosek了,只需要edu邮箱验证,然而解题速度会慢很多.

基本使用

  1. 设未知量
x = sdpvar(n,m); %生成a行b列的未知量

之前也说过YALMIP的未知量有3中类型.分别为

  • sdpvar %实型
  • intvar %整型
  • binvar %0-1型

需要混合规划多设几个变量就行了

  1. 约束条件, 例如:
F = [-2 <= x <= 2];
  1. 写目标函数
obj = x(1)^2+x(2)^2;
  1. 求解
optimize(F,obj[,options]);

F为约束,obj为目标函数(默认求最小值),options可选择求解器,改变输出方式,如:

optimize(F,obj,sdpsettings('solver','gurobi','verbose',2));

指定solver为Gurobi,不打印解析过程.

  1. 获取结果
opt=value(x); %x的值

具体案例

案例一:求 x^2+y^2在x,y∈[-2,2]上的最小值

%生成2*1的矩阵变量
x = sdpvar(2,1);
%限制条件
F = [-2 <= x <= 2];
%目标函数
obj = x(1)^2+x(2)^2;
%求解
optimize(F,obj);
%取得值以及对应的x的值
optobj = value(obj)
optx = value(x)

结果如下(此处使用matlab自带的求解器)

optobj =
   1.5449e-43
optx =
   1.0e-21 *
    0.2779    0.2779

案例二:指派问题,A,B,C为3个员工,P,Q,R为3样工作,成本表如下:

A B C
P 9 6 2
Q 3 1 4
R 5 6 10

代码

%设x(a,b)==1为a做b工作
x=binvar(3,3);
%成本矩阵
work=[9,6,2;3,1,4;5,6,10];
%限制条件,每人只能做一份工作
F=[sum(x)==1];
%目标函数,总花费最小
obj=sum(sum(x.*work));
%启动求解器
optimize(F,obj);
%获取结果
optx=value(x)
optObj=value(obj)

结果

optx =
 0     0     1
 0     1     0
 1     0     0

optObj =
 8

from
https://anemone.top/%E6%95%B0%E6%A8%A1-YALMIP%E5%B7%A5%E5%85%B7%E7%AE%B1%E2%80%94%E2%80%94Matlab%E4%B8%8A%E8%A7%A3%E5%86%B3%E8%A7%84%E5%88%92%E9%97%AE%E9%A2%98%E7%9A%84%E5%A4%A7%E6%9D%80%E5%99%A8/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 148,827评论 1 317
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 63,511评论 1 266
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 99,318评论 0 218
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,108评论 0 189
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,112评论 1 266
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,387评论 1 185
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 30,905评论 2 283
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,657评论 0 177
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,144评论 0 223
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,744评论 2 225
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,100评论 1 236
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,565评论 2 222
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,041评论 3 216
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,769评论 0 9
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,301评论 0 178
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,173评论 2 239
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,313评论 2 242

推荐阅读更多精彩内容

  • @synthesize和@dynamic分别有什么作用?@property有两个对应的词,一个是 @synthes...
    笔笔请求阅读 477评论 0 1
  • 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图...
    万忍阅读 1,473评论 0 6
  • 家园建造与种植资料分类汇总标签(空格分隔): 家园建造 种植技术 原文链接(自带目录导航):家园建造与种植资料分类...
    中道心阅读 1,380评论 0 3
  • 现在最流行的话题莫过于中年危机,被它怒刷了一波存在感的90后开始思索,到了40岁还没实现财务自由的自己,应该如何面...
    有融网阅读 823评论 0 0
  • (开始) (标题)iApc(/标题)(链接)https://duming666.wodemo.net/down/2...
    独名阅读 1,473评论 1 3