MatLab运输问题高手进

实验项目名称:运输问题实验目的:使学生了解和掌握利用线性规划方法求解总运输费用最小问题的步骤和方法,掌握利用数学软件简单编程计算最优解方法。实验内容:有A、B、C三个食品... 实验项目名称:运输问题
实验目的:使学生了解和掌握利用线性规划方法求解总运输费用最小问题的步骤和方法,掌握利用数学软件简单编程计算最优解方法。
实验内容:
有A、B、C三个食品加工厂,负责供给甲、乙、丙、丁四个市场。三个厂每天生产食品箱数上限如下表:
工厂 A B C
生产数 60 40 50
四个市场每天的需求量如下表:
市场 甲 乙 丙 丁
需求量 20 35 33 34
从各厂运到各市场的运输费(元/每箱)由下表给出:

市 场

甲 乙 丙 丁

A 2 1 3 2

B 1 3 2 1

C 3 4 1 1

甲乙丙丁为收点 ABC 为发点

求在基本满足供需平衡的约束条件下使总运输费用最小。
实验步骤和结果分析:
(主要内容:问题分析、符号说明、程序编写、结果分析和启示等)

做的好加分
展开
 我来答
wacs5
2008-10-22 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3724
采纳率:82%
帮助的人:2734万
展开全部
简单地写了一些(分析部分,你好好看一下,应当可以看得懂,多看一两遍,自己总结一下,我可能描述得不准)

(1)问题分析:
运输费=运输单价*运输量。这里要求是总运输费最低,也就是说规划的目标函数是使得运输费最小。
约束条件有:
a.ABC三个工厂生产能力存在上限,当然也存在下限(产量为0)
b.至少应甲乙丙丁四个市场的需求量。

(2)符号说明:
xij代表i工厂给j市场的箱数,当然这里i=1,2,3分别代表ABC;j=1,2,3,4分别代表甲乙丙丁
costij代表i工厂运到j市场每箱的运输费。由题意得cost=[2,1,3,2;1,3,2,1;3,4,1,1];
proi代表i工厂生产的总箱数,很明显proi=sum(xij,j,1,4)-----注意这里引入的东西是说对j从1到4求和。即xi1+xi2+xi3+xi4
needj代表j市场的实际进货,很明显needj=sum(xij,i,1,3)----同上

根据"问题分析"我们可以得到规划
目标:min f=sum(sum(costij.*xij,i,1,3),j,1,4)
约束条件:
xij>=0 其中i=1,2,3;j=1,2,3,4
pro1=sum(x1j,j,1,4)<=60
pro2=sum(x2j,j,1,4)<=40
pro3=sum(x3j,j,1,4)<=50
need1=sum(xi1,i,1,3)>=20
need2=sum(x21,i,1,3)>=35
need3=sum(x31,i,1,3)>=33
need4=sum(x41,i,1,3)>=34

(3)程序编写(基于Matlab,注意这里要将Aij转成列向量)
clear
cost=[2,1,3,2;1,3,2,1;3,4,1,1];
f=cost(:);%目标
A=[
1,0,0,1,0,0,1,0,0,1,0,0;
0,1,0,0,1,0,0,1,0,0,1,0;
0,0,1,0,0,1,0,0,1,0,0,1;
-1,-1,-1,0,0,0,0,0,0,0,0,0;
0,0,0,-1,-1,-1,0,0,0,0,0,0;
0,0,0,0,0,0,-1,-1,-1,0,0,0;
0,0,0,0,0,0,0,0,0,-1,-1,-1;
];%约束,注意大于号约束时,我们两边乘以-1,变成小于号约束
b=[60;40;50;-20;-35;-33;-34];
Aeq=[];
beq=[];
xmin=zeros(12,1);
xmax=inf*ones(12,1);
x0=xmin;
[x,fmin]=linprog(f,A,b,Aeq,beq,xmin,xmax,x0);
reshape(x,3,4),fmin
totalbox=sum(x)

(4)结果分析
上述程序的结果是:
ans =
0.0000 35.0000 0.0000 0.0000
20.0000 0.0000 0.0000 17.3777
0.0000 0.0000 33.0000 16.6223

fmin =
122.0000

totalbox =
122.0000

其中ans就是Aij,得到的总费用是122元,运输的总箱数也为122箱。也就是说平均每箱的费用也是1元。

(5)启示
我们注意观察
cost与ans的关系
cost =
2 1 3 2
1 3 2 1
3 4 1 1

ans =
0.0000 35.0000 0.0000 0.0000
20.0000 0.0000 0.0000 17.3777
0.0000 0.0000 33.0000 16.6223
我们可以发现,ans中非元素与cost中的1元素是对应的。
也就是说对于j市场,它可以从ABC三个厂进货。但是要使得费用最近,当然是希望从运费最低的那个厂进货。
先观察甲乙丙和ABC,对于甲乙丙来说,他们分别从BAC三个厂进贷是最合算的,当然BAC的产量都大于甲乙丙三个市场的需求量。这三个市场都从BAC那里进货。
对于丁市场来说,它的最低运费的有BC两个工厂,而BC工厂分别给甲丁两个市场20,33个箱。它们离最大的产量还剩20,17。只要丁市场从这里取34箱就可以了。对于这两个就没有什么优先性,因为它的运输费是一致的。
所以本例存在多解情况,先让BAC三个工厂分别满足甲乙丙三个市场,丁市场从BC两个工厂进货34箱即可(而这34箱从B厂的20箱和C厂的17箱里面运出即可),考虑到箱数一般为整数。BC厂给丁市场的箱数可有以下几种组合
B厂 C厂
20 14
19 15
18 16
17 17
上海沃行
2024-09-10 广告
货代提单管理系统是专为货代行业设计的,主要包括订单管理、提单生成、追踪查询、数据分析等功能。这些系统通过自动化和标准化的操作,提高了货代企业的运营效率和准确性。例如,沃行云货代管理系统,作为我们公司的拳头产品,不仅提供完整的提单管理功能,还... 点击进入详情页
本回答由上海沃行提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式