MATLAB编程(运筹学之运输问题)
(2017-04-04 18:52:42)
标签:
matlab编程运筹学运输问题 |
运筹学与最优化MATLAB编程
使用MATLAB求解:
1、某公司经销甲产品。它下设三个加工厂。每日的产量分别是:A1位7吨,A2为4吨,A3为9吨。该公司把这些产品分别运往4个销售点。各销售点的每日销量分别为:B1为3吨,B2为6吨,B3为5吨,B4为6吨,已知运价如下表所示,问该公司如何调用产品,在满足各销地需求量的前提下,使总运费最少。 运价表
加工厂 |
销地 |
|||
B1 |
B2 |
B3 |
B4 |
|
A1 |
3 |
11 |
3 |
10 |
A2 |
1 |
9 |
2 |
8 |
A3 |
7 |
4 |
10 |
5 |
2、某厂按合同规定须于当年每个季度末分别提供10,15,25,20台同一格的柴
季度 |
生产能力/台 |
单位成本/万元 |
1 |
25 |
10.8 |
2 |
35 |
11.1 |
3 |
30 |
11.0 |
4 |
10 |
11.3 |
c=[10.8,10.95,11.10,11.25,0,11.10,11.25,11.40,0,0,11.00,11.15,0,0,
A=[1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0;
b=[25;35;30;10]
Aeq=[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;
beq=[10;15;25;20]
lb=[0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0]
ub=[Inf;Inf;Inf;Inf;Inf;Inf;Inf;Inf;Inf;Inf;Inf;Inf;Inf;Inf;Inf;Inf]
[x,fval,]=linprog(c,A,b,Aeq,beq,lb,ub)
请总结MATLAB解运输问题的思路,并说明上面两项实验内容的区别。
解:
运输问题主要有产销平衡和产销不平衡两种情况:
针对产销平衡问题,可利用MATLAB直接求解。
针对产销平衡问题,核心方法是将产销不平衡的转化为产销平衡的问 题,然后进行求解。
对于“产>销”问题:可虚拟一个销地,让多余的产量均运往此销地,则其销售量=“产-销”,同时令该虚拟销地的运价等于0。
对于“产>销”问题:可虚拟一个产地,让不足的销售量均由此产地提供,则其销售量=“销-产”,同时令该虚拟产地的运价等于0。
上面两个实验,第一个为产销平衡问题,约束条件都为等式,而第二个为产销不平衡问题,销量约束条件为不等式。