蔬菜分配数学建模蔬菜配送数学建模Word格式文档下载.docx
- 文档编号:18154823
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:40
- 大小:224.42KB
蔬菜分配数学建模蔬菜配送数学建模Word格式文档下载.docx
《蔬菜分配数学建模蔬菜配送数学建模Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《蔬菜分配数学建模蔬菜配送数学建模Word格式文档下载.docx(40页珍藏版)》请在冰豆网上搜索。
菜市场
每天需求(100kg)
短缺损失(元/100kg)
①
80
10
②
70
8
③
90
5
④
⑤
120
⑥
⑦
100
⑧
通过这次建模我们解决以下问题:
1.为该市设计一个从收购点至个菜市场的定点供应方案,使用于蔬菜调运及预期的短缺损失为最小;
2.若规定各菜市场短缺量一律不超过需求量的20%,重新设计定点供应方案;
3.为满足城市居民的蔬菜供应,该市的领导规划增加蔬菜种植面积,试问增产的蔬菜每天应分别向A、B、C三个采购点供应多少最经济合理。
二、问题分析
2.1问题一的分析
要使用于蔬菜调运及预期的短缺损失为最小,即总费用R最小,也就是指调运费用P与缺货损失Q之和最小。
首先考虑调运费用P,调运费用与距离与送货量成正比,因此考虑距离问题,我们须先求出A、B、C三个采购点至各个菜市场的最短距离。
采用Froyd算法,结合MATLAB编程实现最短距离计算,确定出最短路线。
其次考虑缺货造成的损失Q,以题中每天需求量为约束条件,将损失最低作为目标建立线性规划模型,用LINGO编程求解缺货损失最小值。
2.2问题二的分析
若按规定各菜市场短缺量一律不超过需求量的20%,也就是在模型一的基础上增加一个约束条件,即每个菜市场的供应量必须不低于需求量的80%。
则可得到满足条件要求的模型二。
2.3问题三的分析
本题的目标有二:
首先要满足每个菜市场的供货量要充足的条件;
其次要使得总费用最低。
所以我们在模型一的基础上增加了上述两个限制条件,即得到模型三。
使得在供货量充足的情况下日均费用最小化。
三、问题假设
1、各个路口以及蔬菜销售点都可以作为中转点。
2、假设蔬菜种植基地直达某个销售地点,即销售点之间没有卸货的情况。
3、假设运输的蔬菜路途中没有损耗,也无意外发生。
4、假设只考虑运输费用和短缺费用,不考虑装卸等其它费用。
5、假设各蔬菜种植基地供应蔬菜同质且单位运价相同。
6、假设新增产的蔬菜能够满足缺货量。
7、日需求量与缺货损失费用不变。
四、变量说明
从A到i(各个菜市场)的最短距离
从B到i(各个菜市场)的最短距离
从C到i(各个菜市场)的最短距离
从A到i(各个菜市场)的运货量
从B到i(各个菜市场)的运货量
从C到i(各个菜市场)的运货量
总调运费
短缺损失
总费用
五、模型建立
5.1问题一模型的建立
按照问题的分析,我们知道调运总费用P与调运距离和调运量乘积有关,也就是说总调运费用等于每阶段调运距离和调运量的累计。
首先就要求解各采购点到菜市场的最短距离。
在图论里面关于最短路径问题比较常用的是Dijkstra算法,Dijkstra算法提供了从网络图中某一点到其他点的最短距离。
主要特点是以起始点为中心向外层扩展,直到扩展到终点为止。
但由于它遍历计算的节点很多,所以效率较低,实际问题中往往要求网络中任意两点之间的最短路距离。
如果仍然采用Dijkstra算法对各点分别计算,就显得很麻烦。
所以就可以使用网络各点之间的矩阵计算法,即Floyd算法。
Floyd算法的基本思想是:
从任意节点i到任意节点j的最短路径不外乎两种可能,一种是直接从i到j,另一种是从i经过若干个节点k到j。
i到j的最短距离不外乎存在经过i与j之间的k和不经过k两种可能,所以可以令k=1,2,3,…,n(n是菜市场的数目),再检查d(i,j)与d(i,k)+d(k,j)的值,在此d(i,k)与d(k,j)分别是目前为止所知道的i到k与k到j的最短距离。
因此d(i,k)+d(k,j)就是i到j经过k的最短距离。
所以,若有d(i,j)>
d(i,k)+d(k,j),就表示从i出发经过k再到j的距离要比原来的i到j距离短,自然把i到j的d(i,j)重写为d(i,k)+d(k,j),每当一个k查完了,d(i,j)就是目前的i到j的最短距离。
重复这一过程,最后当查完所有的k时,d(i,j)里面存放的就是i到j之间的最短距离了。
5.2问题二模型的建立
各菜市场短缺量一律不超过需求量的20%,为满足这一条件,现对方案一进行调整。
只需在方案一中加一限制条件:
同理可用LINGO编程求出调运方案。
5.3问题三模型的建立
要足城市居民的蔬菜供应,增加蔬菜种植面积,则需要保证所有的菜市场都满足日需求量,且日均化费用要最小。
在问题一得基础上作出以下调整:
六、模型求解
6.1问题一模型的求解
由图1和表格1的信息,建立一个线性规划模型并经过Floyd算法,使得蔬菜调运及预期的短缺损失为最小。
调运总费用P为:
(1)
若使调运总费用最少,则应保证A、B、C三个收购点到8个菜市场的路程最短,最短路线的求解过程如图2:
图2:
最短路程求解过程图
分析上图可知,该路线为无向网络,就该图而言,网络弧集为:
E=[(v1,v2),(v1,v4),(v1,v5),(v2,v1),(v2,v3),(v2,v5),(v2,v6),(v3,v2),.(v3,v6),(v3,v8),(v3,v9),(v4,v1),(v4,v5).(v4,v7),(v4,v10),(v5,v1),(v5,v2),(v5,v4),(v5,v6),(v5,v7),(v5,v8),(v6,v2),(v6,v3),(v6,v5),(v6,v8),(v7,v4),(v7,v5),(v7,v8),(v7,v11),(v8,v3),(v8,v5),(v8,v6),(v8,v7),(v8,v9),(v8,v11),(v9,v3),(v9,v8),(v9,v11),(v9,v13),(v9,v15),(v10,v4),(v10,v11),(v10,v12),(v10,v14),(v11,v7),(v11,v8),(v11,v9)(v11,v10),(v11,v12),(v12,v10),(v12,v11),(v12,v13),(v12,v14),(v13,v9),(v13,v12),(v13,v14),(v14,v10),(v14,v12),(v14,v13),(v15,v9)]
下面来确定网络权矩阵:
W=
(2)
其中:
①当(
)属于E时,
=
,
为弧(
)的权;
②当(
)不属于E时,
=inf。
(inf为无穷大,n为网络结点个数)
=0,i=1,2,3……n按上述规定,该网络的权矩阵为:
因为上述网络有15个结点,故网络的权矩阵均为15阶矩阵。
用Floyd算法求解图2中任意两个顶点的最短路径及其长度,名为Floyd.m的程序文件见附录程序1。
最终运行结果为:
D=
0714541081218121520242223
707128312814191319202419
14701613611711181218172316
512160613591571215211720
48136074814131117202219
103613709511161016172116
81211549041012713161815
128798540611511121611
18141115141110609396145
1219187131612119068151014
1513121211107536069118
2019181517161311986010514
242017212017161261591001111
2224231722211816141011511019
231916201916151151481411190
path=
122452555454545
123156566166666
223866889888989
117455777107107107
126456788477878
223556888888888
558458788411118118
5637567891111119119
883888889111111131115
4411441141111101112111411
7887787891011129129
101111101111111111101112131411
999999999991213149
101212101212121212101212131412
9999999999999915
根据上述矩阵,分别找出A、B、C到①、②、③、④、⑤、⑥、⑦、⑧的最短距离,见表2:
表2:
收购点到菜市场的最短距离
最短距离(单位:
100千米)
A
4
19
11
6
22
20
B
14
7
16
12
23
17
C
15
调运量的限制:
短缺损失费为:
总费用为:
由以上约束条件,用LINGO软件进行线性规划求解(源程序及完整运行结果见附录程序2),部分运行结果如下:
Objectivevalue:
10280.00
Totalsolveriterations:
14
VariableValueReducedCost
P9640.0000.000000
Q640.00000.000000
SA180.000000.000000
SA20.0000002.000000
SA30.0000002.000000
SA40.0000006.000000
SA5100.00000.000000
SA670.000000.000000
SA70.00000024.00000
SA80.00000010.00000
SB10.00000020.00000
SB270.000000.000000
SB390.000000.000000
SB440.000000.000000
SB50.0000002.000000
SB60.00000020.00000
SB70.00000026.00000
SB80.0000004.000000
SC10.00000042.00000
SC20.00000034.00000
SC30.00000018.00000
SC40.0000006.000000
SC520.000000.000000
SC60.00000028.00000
SC7100.00000.000000
SC860.000000.000000
从上述运行结果中可以得出调运方案为:
在此种方案下,蔬菜调运及预期的短缺损失最小,最小金额为10280元。
6.2问题二模型的求解
将调整后的方案用LINGO编程(源程序及完整运行结果见附录程序3),部分运行结果如下:
10628.00
20
P10064.000.000000
Q564.00000.000000
SA20.0000000.000000
SA324.000000.000000
SA40.0000004.000000
SA576.000000.000000
SB10.00000022.00000
SB366.000000.000000
SB464.000000.000000
SB50.0000004.000000
SB60.00000022.00000
SB70.00000028.00000
SB80.0000006.000000
SC20.00000032.00000
SC30.00000016.00000
SC40.0000004.000000
SC528.000000.000000
SC780.000000.000000
SC872.000000.000000
6.3问题三模型的求解
将调整后的方案用LINGO编程(源程序及完整运行结果见附录程序4),部分运行结果如下:
11200.00
16
P11200.000.000000
Q0.0000000.000000
SA240.000000.000000
SA30.0000000.000000
SA560.000000.000000
SB230.000000.000000
SB480.000000.000000
SC560.000000.000000
SC890.000000.000000
七、结果分析
7.1模型的评价
7.1.1模型的优点:
模型简单易懂,主要用了Froyd算法与线性规划,使问题的求解变得十分方便,能适应更重新的要求。
且计算结果能大致能反映蔬菜调运的最小损失要求,模型的建立成功实现了建模的目的。
7.1.2模型的缺点:
模型的建立中,采用了若干假设条件,假设的条件使得特殊情况模型失效或者偏离实际情况,比如第三问只考虑了运输费用最小,却没有考虑到供过于求造成的货物积压问题等,考虑更多现实的因素,模型有待进一步改进和完善。
7.2模型的改进:
在第三问中由于模型只考虑了运输费用最小,却没有考虑到供过于求造成的货物积压问题。
在计算时,应将货物堆积造成的损失计算进去,这样考虑结果将更加满足实际情况,使得模型更加完善。
八、参考文献
[1]夏鸿鸣,魏艳华,王丙参.数学建模.成都:
西南交通大学出版社,2014.
[2]张志涌,杨祖樱.MATLAB教程[M].北京:
北京航空航天大学出版社,2011.
[3]周品,赵新芬.数学建模.北京:
国防工业出版社,2009.
[4]费培之,程中媛.数学建模实用教程.成都:
四川大学出版社,1998.
[5]陈如栋,于延荣.数学模型与数学建模.北京:
国防工业出版社,2006.
九、附录
程序1
function[D,path]=floyd(a)
n=size(a,1);
D=a
fori=1:
n
forj=1:
path(i,j)=j;
end
end
path
fork=1:
fori=1:
ifD(i,k)+D(k,j)<
D(i,j)
D(i,j)=D(i,k)+D(k,j);
path(i,j)=path(i,k);
k
D
path
在MATLAB命令窗口输入命令:
a=[07inf54infinfinfinfinfinfinfinfinfinf;
707inf83infinfinfinfinfinfinfinfinf;
inf70infinf6inf711infinfinfinfinfinf;
5infinf06inf5infinf7infinfinfinfinf;
48inf60748infinfinfinfinfinfinf;
inf36inf70inf5infinfinfinfinfinfinf;
infinfinf54inf04infinf7infinfinfinf;
infinf7inf85406inf5infinfinfinf;
infinf11infinfinfinf60inf3inf6inf5;
infinfinf7infinfinfinfinf068inf10inf;
infinfinfinfinfinf753606infinfinf;
infinfinfinfinfinfinfinfinf860105inf;
infinfinfinfinfinfinfinf6infinf10011inf;
infinfinfinfinfinfinfinfinf10inf5110inf;
infinfinfinfinfinfinfinf5infinfinfinfinf0]
[D,path]=floyd(a)
程序2
min=P+Q;
DA1=4;
DA2=8;
DA3=8;
DA4=19;
DA5=11;
DA6=6;
DA7=22;
DA8=20;
DB1=14;
DB2=7;
DB3=7;
DB4=16;
DB5=12;
DB6=16;
DB7=23;
DB8=17;
DC1=20;
DC2=19;
DC3=11;
DC4=14;
DC5=6;
DC6=15;
DC7=5;
DC8=10;
SA1+SA2+SA3+SA4+SA5+SA6+SA7+SA8=250;
SB1+SB2+SB3+SB4+SB5+SB6+SB7+SB8=200;
SC1+SC2+SC3+SC4+SC5+SC6+SC7+SC8=180;
p=2*(SA1*DA1+SA2*DA2+SA3*DA3+SA4*DA4+SA5*DA5+SA6*DA6+SA7*DA7+SA8*DA8)+2*(SB1*DB1+SB2*DB2+SB3*DB3+SB4*DB4+SB5*DB5+SB6*DB6+SB7*DB7+SB8*DB8)+2*(SC1*DC1+SC2*DC2+SC3*DC3+SC4*DC4+SC5*DC5+SC6*DC6+SC7*DC7+SC8*DC8);
Q=10*(80-(SA1+SB1+SC1))+8*(70-(SA2+SB2+SC2))+5*(90-(SA3+SB3+SC3))+10*(80-(SA4+SB4+SC4))+10*(120-(SA5+SB5+SC5))+8*(70-(SA6+SB6+SC6))+5*(100-(SA7+SB7+SC7))+8*(90-(SA8+SB8+SC8));
10*(80-(SA1+SB1+SC1))>
=0;
8*(70-(SA2+SB2+SC2))>
5*(90-(SA3+SB3+SC3))>
10*(80-(SA4+SB4+SC4))>
10*(120-(SA5+SB5+SC5))>
8*(70-(SA6+SB6+SC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 蔬菜 分配 数学 建模 配送