(1)第一个问题:指派问题的0-1整数规划问题,可以使用MATLAB,如果是其他的就不适用。
栗子:
(1)[3821038729764275842359106910]\begin{bmatrix} 3 & 8 & 2 & 10 & 3 \\\\ 8 & 7 & 2 & 9 &7 \\\\ 6 & 4 & 2 & 7 &5 \\\\ 8 & 4 & 2 & 3 &5 \\\\ 9 & 10 & 6 & 9 &10 \end{bmatrix}\tag{1}⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​38689​874410​22226​109739​375510​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​(1)

\\\使用MATLAB
c=[3 8 2 10 3;8 7 2 9 7;6 4 2 7 5;8 4 2 3 5;9 10 6 9 10];
c=c(:);
a=zeros(10,25);
for i=1:5a(i,(i-1)*5+1:5*i)=1;a(5+i,i:5:25)=1;
end
b=ones(10,1);
[x,y]=linprog(c,[],[],a,b);
x=reshape(x,[5,5]),y
\\使用Lingo软件
model:
sets:
var/1..5/;
link(var,var):c,x;
endsets
data:
c=3 8 2 10 3
8 7 2 9 7
6 4 2 7 5
8 4 2 3 5
9 10 6 9 10;
enddata
min=@sum(link:c*x);
@for(var(i):@sum(var(j):x(i,j))=1);
@for(var(j):@sum(var(i):x(i,j))=1);
@for(link:@bin(x));
end
(纪念一下,运行很多次出现错误,最后查阅很多资料,才他妈的发现缺个分号,我眼睛都看瞎了)



结果是,最优指派方案为x(15)=x(23)=x(32)=x(44)=x(51)=1,最优值为21。
(2)第二个问题。生产销售计划问题。
建立模型:
设原油的购买量为x,根据题目可以得出采购的支出c(x)可表示为下列的分段线性函数:
c(x)={10x,0≤x≤5001000+8x,500≤x≤10003000+6x,1000≤x≤1500c(x)= \begin{cases} 10x,0\leq x \leq 500&\\ 1000+8x,500\leq x \leq 1000&\\ 3000+6x,1000\leq x \leq 1500 \end{cases} c(x)=⎩⎪⎨⎪⎧​10x,0≤x≤5001000+8x,500≤x≤10003000+6x,1000≤x≤1500​​
设原油A生产甲、乙两种汽油的数量分别是x(11)和x(12),原油B生产甲、乙两种汽油的数量分别是x(21)和x(22),则总的收入为4.8(x(11)+x(21))+5.6(x(21+x(22)))
则利润为:
maxz=4.8[x(11)+x(21)]+5.6[x(21)+x(22)]−c(x)maxz=4.8[x(11)+x(21)]+5.6[x(21)+x(22)]-c(x)maxz=4.8[x(11)+x(21)]+5.6[x(21)+x(22)]−c(x)
约束条件为:
x(11)+x(12)≤500+xx(21)+x(22)≤1000x≤1500x(11)x(11)+x(21)≤0.5x(12)x(12)+x(22)≤0.6x(11),x(12),x(21),x(22),x≥0x(11)+x(12)\leq 500+x\\ x(21)+x(22)\leq 1000\\ x\leq 1500\\ \frac{x(11)}{x(11)+x(21)}\leq 0.5\\ \frac{x(12)}{x(12)+x(22)}\leq 0.6\\ x(11),x(12),x(21),x(22),x\geq 0 x(11)+x(12)≤500+xx(21)+x(22)≤1000x≤1500x(11)+x(21)x(11)​≤0.5x(12)+x(22)x(12)​≤0.6x(11),x(12),x(21),x(22),x≥0
模型一:
目标函数:
maxz=4.8[x(11)+x(21)]+5.6[x(21)+x(22)]−[10x(1)+8x(2)+6x(3)]maxz=4.8[x(11)+x(21)]+5.6[x(21)+x(22)]-[10x(1)+8x(2)+6x(3)]maxz=4.8[x(11)+x(21)]+5.6[x(21)+x(22)]−[10x(1)+8x(2)+6x(3)]
约束条件:
前面的条件加上:x1=500t[x(1)−500]x(2)=0[x(2)−500]x(3)=00≤x(1),x(2),x(3)≤500前面的条件加上: x1=500t\\ [x(1)-500]x(2)=0\\ [x(2)-500]x(3)=0\\ 0\leq x(1),x(2),x(3)\leq500 前面的条件加上:x1=500t[x(1)−500]x(2)=0[x(2)−500]x(3)=00≤x(1),x(2),x(3)≤500
使用lingo解释模型:

model:
sets:
var1/1..4/:y;  !这里的y(1)=x(11),y(2)=x(12),y(3)=x(21),y(4)=x(22);
var2/1..3/:x,c;
endsets
max=4.8*(y(1)+y(2))+5.6*(y(3)+y(4))-@sum(var2:c*x);
y(1)+y(3)<@sum(var2:x)+500;
y(2)+y(4)<1000;
0.5*(y(1)-y(2))>0;
0.4*y(3)-0.6*y(4)>0;
(x(1)-500)*x(2)=0;
(x(2)-500)*x(3)=0;
@for(var2:@bnd(0,x,500));
data:
c=10 8 6;
enddata
end

得出结果,最后购买1000t原油A,与库存的500t原油A和1000t原油B一起,生产2500t汽油乙,利润是5000元。

Matlab——0-1整数规划相关推荐

  1. MATLAB+yalmip+cplex 整数规划

      整数规划问题的解决实践.本文将简单介绍整数规划问题是什么,如何配置环境以及如何在MATLAB上通过工具箱yalmip调用外部解析器cplex解决整数规划问题. 文章目录 1. 整数规划问题 2. ...

  2. matlab 0到正无穷求和,1/k!k从0到无穷求和是多少

    n从1到无穷,n^2/n!级数求和 经济数学团队为你解答,有不清楚请追问.请及时评价.再问:得出e^x这一步可以写详细点吗再答: 极限求和求舍格玛k=1到n,1/k(k+L),当n趋向无穷时的极限 拆 ...

  3. 【老生谈算法】matlab实现非线性整数规划的遗传算法——遗传算法

    非线性整数规划的遗传算法Matlab程序(附图) 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]非线性整数规划的遗传算法Ma ...

  4. 【Matlab】混合整数规划

    混合整数规划 官方文档 语法 实例1 实例2 官方文档 链接 语法 x = intlinprog(f, intcon,A,b) x = intlinprog(f , intcon,A,b,Aeq, b ...

  5. 混合非线性整数规划matlab,matlab学习——02整数规划(蒙特卡洛法,指派问题,混合整数规划)...

    02整数规划 蒙特卡洛法(随机取样法) 编写文件mengte.m,目标函数f和约束向量g function[f,g]=mengte(x); f=x(1)^2+x(2)^2+3*x(3)^2+4*x(4 ...

  6. 如何用matlab编写混合整数规划,MATLAB中的混合整数线性规划

    我试图用MATLAB解决这个混合整数线性规划问题 . 但是,我在matlab中对线性目标函数和决策变量求和的定义存在问题 . 我在MATLAB中使用intlinprog函数 . 请在下面找到图片链接 ...

  7. matlab 0阶贝塞尔函数,零阶贝塞尔函数

    第二类修正贝塞尔函数的零阶和一阶,分别怎样用mat书上说 (0和1都是下标) K0(z), the zeroth order modified Bessel funct首先双击matlab软件图标,打 ...

  8. matlab 0阶贝塞尔函数,零阶贝塞尔函数 分享助,第一类零阶贝塞尔

    分享助,第一类零阶贝塞尔函数积分和sinc函数之间有也就是下面的这个等式怎么得出来的. 第二类修正贝塞尔函数的零阶和一阶,分别怎样用mat 书上说 (0和1都是下标) K0(z), the zerot ...

  9. matlab赋值一行,matlab – 0和1的矩阵,其中后续行中的赋值取决于前一行

    基于检查数字是大于还是小于中位数的解决方案.只要测试的列数是偶数,一组随机双精度的正好一半将大于中位数,一半将更小.这可以保证正好有50%的位被翻转. nRows = 3; nCols = 16; % ...

  10. matlab cplex 混合整数规划,Leapms + cplex解决 混合整数规划问题

    Leapms + cplex解决 混合整数规划问题 O.概述 CPleX是一个神秘的求解器, 听说久了就想用, 但是直接用有些困难, 尤其入门困难. 对初学者来说Leapms是一个好的通道. 在Lea ...

最新文章

  1. python——类和对象之__dict__属性的使用
  2. 修改MySQL字符集
  3. jenkins 忘记用户名和密码
  4. 如何将iTunes资料安全地备份到外部硬盘驱动器?
  5. 为什么Audition cc2017扫描不了电音插件,你需要这个软件
  6. i510400和i59400f哪个好?有什么区别
  7. 向日葵远程控制工具安装
  8. 计算机论文中的技术路线,毕业论文开题报告中技术路线怎么写
  9. 【学习笔记】阿里天猫浏览型应用的CDN静态化架构演变
  10. 谷歌提出MaskGIT:掩码生成图像Transformer
  11. 支付宝小程引入 SJS
  12. 先行一步,7 大技术创新和突破,阿里云把 Serverless 领域的这些难题都给解了
  13. Mac 不能写入移动硬盘的解决方案
  14. 微信小程序连接阿里云物联网平台——物联网远程控制开发1
  15. 学习uni-app记录
  16. 大众汽车CEO:支持汽车大数据 反对数据独裁者
  17. 易语言复制代码到记事本时出现乱码
  18. Android 保证Service服务不被杀死的几个方法
  19. 下一代3d渲染技术,体素光线投射
  20. Freemarker模板引擎学习,生成html里的动态表格,可合并单元格

热门文章

  1. Word Power Made Easy
  2. 多线程设计模式-全面详解(学习总结---从入门到深化)
  3. map容器对象插入数据的4种方式【转】
  4. DIY 作品 及 维修 不定时更新
  5. 米莱狄机器人怎么那么多_王者米莱狄小机器人怎么变大机器人
  6. mysql索引优化是什么意思_理解MySQL——索引与优化
  7. 传奇客户度文件代码完全解析
  8. 地推活动策划有几种?
  9. dto do po vo 区分
  10. Rotate RotateAround