yalmip简单的例子

YALMIP应用篇

yalmip是一个在matlab内的建模工具包,能够用一套统一的建模语言来构建约束,调用其他的求解器,减少了单独学习其他语言的浪费,我根据论文

俞武扬. YALMIP工具箱在运筹学实验教学中的应用[J]. 实验室研究与探索, 2017(8).

由于该论文的代码有错误,我改写了一下 以下例子为论文中的例子 1.一般线性规划 2.运输问题 3.背包问题 4.指派问题 5.最短路问题


在写程序之前要把求解器如cplex,gurobi等路径设置好 然后用yalmiptest来测试一下是否能够调用求解器

yalmip基本格式

  1. 创建决策变量
  2. 目标函数 z
  3. 约束条件设置 C
  4. 参数设置
    ops = sdpsetting('solver','Cplex','verbose',0); verbose:显示冗余度 0为只显示结果
  5. 求解
    result = solvesdp(C,z,ops)

一般线性规划

model

min ⁡ Z = C X  s.t.  { A X = b X ⩾ 0 \begin{array}{l}{\min Z=C X} \\ {\text { s.t. }\left\{\begin{array}{l}{A X=b} \\ {X \geqslant 0}\end{array}\right.}\end{array} minZ=CX s.t. { AX=bX0

例子

min ⁡ Z = 12 x 1 + 5 x 2 + 8 x 3  s.t.  { 2 x 1 + 3 x 2 + x 3 ⩾ 30 4 x 1 + x 2 + 5 x 3 ⩾ 15 x 1 , x 2 , x 3 ⩾ 0 \min Z=12 x_{1}+5 x_{2}+8 x_{3}\\ \text { s.t. }\left\{\begin{array}{l}{2 x_{1}+3 x_{2}+x_{3} \geqslant 30} \\ {4 x_{1}+x_{2}+5 x_{3} \geqslant 15} \\ {x_{1}, x_{2}, x_{3} \geqslant 0}\end{array}\right. minZ=12x1+5x2+8x3 s.t. 2x1+3x2+x3304x1+x

  • 32
    点赞
  • 195
    收藏
    觉得还不错? 一键收藏
  • 23
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值