Matlab——0-1整数规划
(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}⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡3868987441022226109739375510⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤(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整数规划相关推荐
- MATLAB+yalmip+cplex 整数规划
整数规划问题的解决实践.本文将简单介绍整数规划问题是什么,如何配置环境以及如何在MATLAB上通过工具箱yalmip调用外部解析器cplex解决整数规划问题. 文章目录 1. 整数规划问题 2. ...
- matlab 0到正无穷求和,1/k!k从0到无穷求和是多少
n从1到无穷,n^2/n!级数求和 经济数学团队为你解答,有不清楚请追问.请及时评价.再问:得出e^x这一步可以写详细点吗再答: 极限求和求舍格玛k=1到n,1/k(k+L),当n趋向无穷时的极限 拆 ...
- 【老生谈算法】matlab实现非线性整数规划的遗传算法——遗传算法
非线性整数规划的遗传算法Matlab程序(附图) 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]非线性整数规划的遗传算法Ma ...
- 【Matlab】混合整数规划
混合整数规划 官方文档 语法 实例1 实例2 官方文档 链接 语法 x = intlinprog(f, intcon,A,b) x = intlinprog(f , intcon,A,b,Aeq, b ...
- 混合非线性整数规划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 ...
- 如何用matlab编写混合整数规划,MATLAB中的混合整数线性规划
我试图用MATLAB解决这个混合整数线性规划问题 . 但是,我在matlab中对线性目标函数和决策变量求和的定义存在问题 . 我在MATLAB中使用intlinprog函数 . 请在下面找到图片链接 ...
- matlab 0阶贝塞尔函数,零阶贝塞尔函数
第二类修正贝塞尔函数的零阶和一阶,分别怎样用mat书上说 (0和1都是下标) K0(z), the zeroth order modified Bessel funct首先双击matlab软件图标,打 ...
- matlab 0阶贝塞尔函数,零阶贝塞尔函数 分享助,第一类零阶贝塞尔
分享助,第一类零阶贝塞尔函数积分和sinc函数之间有也就是下面的这个等式怎么得出来的. 第二类修正贝塞尔函数的零阶和一阶,分别怎样用mat 书上说 (0和1都是下标) K0(z), the zerot ...
- matlab赋值一行,matlab – 0和1的矩阵,其中后续行中的赋值取决于前一行
基于检查数字是大于还是小于中位数的解决方案.只要测试的列数是偶数,一组随机双精度的正好一半将大于中位数,一半将更小.这可以保证正好有50%的位被翻转. nRows = 3; nCols = 16; % ...
- matlab cplex 混合整数规划,Leapms + cplex解决 混合整数规划问题
Leapms + cplex解决 混合整数规划问题 O.概述 CPleX是一个神秘的求解器, 听说久了就想用, 但是直接用有些困难, 尤其入门困难. 对初学者来说Leapms是一个好的通道. 在Lea ...
最新文章
- python——类和对象之__dict__属性的使用
- 修改MySQL字符集
- jenkins 忘记用户名和密码
- 如何将iTunes资料安全地备份到外部硬盘驱动器?
- 为什么Audition cc2017扫描不了电音插件,你需要这个软件
- i510400和i59400f哪个好?有什么区别
- 向日葵远程控制工具安装
- 计算机论文中的技术路线,毕业论文开题报告中技术路线怎么写
- 【学习笔记】阿里天猫浏览型应用的CDN静态化架构演变
- 谷歌提出MaskGIT:掩码生成图像Transformer
- 支付宝小程引入 SJS
- 先行一步,7 大技术创新和突破,阿里云把 Serverless 领域的这些难题都给解了
- Mac 不能写入移动硬盘的解决方案
- 微信小程序连接阿里云物联网平台——物联网远程控制开发1
- 学习uni-app记录
- 大众汽车CEO:支持汽车大数据 反对数据独裁者
- 易语言复制代码到记事本时出现乱码
- Android 保证Service服务不被杀死的几个方法
- 下一代3d渲染技术,体素光线投射
- Freemarker模板引擎学习,生成html里的动态表格,可合并单元格