蔬菜分配数学建模蔬菜配送数学建模.docx

上传人:b****7 文档编号:10917470 上传时间:2023-02-23 格式:DOCX 页数:37 大小:321.59KB
下载 相关 举报
蔬菜分配数学建模蔬菜配送数学建模.docx_第1页
第1页 / 共37页
蔬菜分配数学建模蔬菜配送数学建模.docx_第2页
第2页 / 共37页
蔬菜分配数学建模蔬菜配送数学建模.docx_第3页
第3页 / 共37页
蔬菜分配数学建模蔬菜配送数学建模.docx_第4页
第4页 / 共37页
蔬菜分配数学建模蔬菜配送数学建模.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

蔬菜分配数学建模蔬菜配送数学建模.docx

《蔬菜分配数学建模蔬菜配送数学建模.docx》由会员分享,可在线阅读,更多相关《蔬菜分配数学建模蔬菜配送数学建模.docx(37页珍藏版)》请在冰豆网上搜索。

蔬菜分配数学建模蔬菜配送数学建模.docx

蔬菜分配数学建模蔬菜配送数学建模

 

2016年数学建模论文

第二套

 

论文题目:

蔬菜供应方案设计

组别:

第38组

姓名:

耿晨闫思娜王强

提交日期:

2016年7月13日

题目:

蔬菜供应方案设计

 

摘要

本次建模探究得是江平市蔬菜市场为满足不同条件的最优调配方案问题,模型求解时使用了Froyd算法,并用线性规划建立了一系列数学规划模型,采用MATLAB和LINGO软件编程计算出模型结果。

关于问题一:

为了实现蔬菜调运及预期的短缺损失为最小,我们建立了线性规划模型,用Froyd算法在MATLAB中编程,求出收购点至个菜市场的最短距离,并考虑每日各菜市场的需求量条件,用LINGO编程求得蔬菜调运及预期的短缺损失最小值为日均10280元。

关于问题二:

在模型一的基础增加各菜市场短缺量一律不超过需求量的20%的约束条件,用LINGO编程求得最少日均费用最少为10628元,并设计最优供应方案见正文。

关于问题三:

在模型一的基础上,条件改为供货充足、需求调运与短缺损失的费用最小值。

建立模型三时在模型一的基础上改变条件,并用LINGO编程求得日均最少费用为11200元,增产的蔬菜每天应分给C收购点7000Kg,分析过程见正文。

关键词:

蔬菜市场调配方案,Floyd算法,线性规划,MATLAB编程,LINGO

一、问题重述

江平市是一个人口不到20万人的小城市。

根据该市的蔬菜种植情况,分别在菜市场(A),城乡路口(B)和南街口(C)设三个收购点,再由各收购点分送到全市的8个菜市场,该市道路情况,各路段距离(单位:

100m)及各收购点,菜市场①到⑧的具体位置见图1。

图1:

蔬菜供应网点图

按常年情况,A、B、C三个收购点每天收购量分别为250,200和180(单位:

100kg),各菜市场的每天需求量及发生供应短缺时带来的损失(元/100kg)见表1。

设从收购点至各菜市场蔬菜调运费为2元/(100kg.100m).

表1:

各蔬菜市场需求量表

菜市场

每天需求(100kg)

短缺损失(元/100kg)

80

10

70

8

90

5

80

10

120

10

70

8

100

5

90

8

通过这次建模我们解决以下问题:

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问题三模型的建立

要足城市居民的蔬菜供应,增加蔬菜种植面积,则需要保证所有的菜市场都满足日需求量,且日均化费用要最小。

在问题一得基础上作出以下调整:

同理可用LINGO编程求出调运方案。

六、模型求解

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

8

8

19

11

6

22

20

B

14

7

7

16

12

16

23

17

C

20

19

11

14

6

15

5

10

调运量的限制:

短缺损失费为:

总费用为:

由以上约束条件,用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),部分运行结果如下:

Objectivevalue:

10628.00

Totalsolveriterations:

20

VariableValueReducedCost

P10064.000.000000

Q564.00000.000000

SA180.000000.000000

SA20.0000000.000000

SA324.000000.000000

SA40.0000004.000000

SA576.000000.000000

SA670.000000.000000

SA70.00000024.00000

SA80.00000010.00000

SB10.00000022.00000

SB270.000000.000000

SB366.000000.000000

SB464.000000.000000

SB50.0000004.000000

SB60.00000022.00000

SB70.00000028.00000

SB80.0000006.000000

SC10.00000042.00000

SC20.00000032.00000

SC30.00000016.00000

SC40.0000004.000000

SC528.000000.000000

SC60.00000028.00000

SC780.000000.000000

SC872.000000.000000

从上述运行结果中可以得出调运方案为:

 

6.3问题三模型的求解

将调整后的方案用LINGO编程(源程序及完整运行结果见附录程序4),部分运行结果如下:

Objectivevalue:

11200.00

Totalsolveriterations:

16

VariableValueReducedCost

P11200.000.000000

Q0.0000000.000000

SA180.000000.000000

SA240.000000.000000

SA30.0000000.000000

SA40.0000004.000000

SA560.000000.000000

SA670.000000.000000

SA70.00000024.00000

SA80.00000010.00000

SB10.00000022.00000

SB230.000000.000000

SB390.000000.000000

SB480.000000.000000

SB50.0000004.000000

SB60.00000022.00000

SB70.00000028.00000

SB80.0000006.000000

SC10.00000042.00000

SC20.00000032.00000

SC30.00000016.00000

SC40.0000004.000000

SC560.000000.000000

SC60.00000028.00000

SC7100.00000.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:

n

path(i,j)=j;

end

end

path

fork=1:

n

fori=1:

n

forj=1:

n

ifD(i,k)+D(k,j)

D(i,j)=D(i,k)+D(k,j);path(i,j)=path(i,k);

end

end

end

k

D

path

end

在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))>=0;

5*(90-(SA3+SB3+SC3))>=0;

10*(80-(SA4+SB4+SC4))>=0;

10*(120-(SA5+SB5+SC5))>=0;

8*(70-(SA6+SB6+SC6))>=0;

5*(100-(SA7+SB7+SC7))>=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1