当前位置:文档之家› 关于企业和仓库物资调运问题的研究

关于企业和仓库物资调运问题的研究

关于企业和仓库物资调运问题的研究
关于企业和仓库物资调运问题的研究

承诺书

我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.

我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。

我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。

我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们将受到严肃处理。

我们参赛选择的题号是(从A/B/C/D中选择一项填写):

我们的参赛报名号为(如果赛区设置报名号的话):

所属学校(请填写完整的全名):

参赛队员(打印并签名) :1.

2.

3.

指导教师或指导教师组负责人(打印并签名):

日期:年月日赛区评阅编号(由赛区组委会评阅前进行编号):

2012高教社杯全国大学生数学建模竞赛

编号专用页

赛区评阅编号(由赛区组委会评阅前进行编号):

赛区评阅记录(可供赛区评阅时使用):

全国统一编号(由赛区组委会送交全国前编号):

全国评阅编号(由全国组委会评阅前进行编号):

关于企业和仓库物资调运问题的研究

摘要

本文针对某地区企业和仓库的物资合理调运问题,一方面通过建立公路交通网的数学模型,运用图论中Floyd算法,MATLAB求解出最优路线;另一方面通过线性规划,在保证国家级储备库基础上,及满足各仓库需求量的约束条件下,规划出最佳调运量,从而给该地区有关部门做出科学决策提供了依据。

针对问题1,根据给出的生产企业,物资仓库及国家储备库的分布图,简化并赋权画出各企业,仓库及国家储备库分布赋权图,权重为价格/公里/百件。再通过表格的方式给出任意两个相邻交汇点的运输成本/百件。清晰的建立了公路交通网数学模型,具体内容见问题1的分析。

针对问题2,根据问题1的各企业,仓库及国家储备库分布赋权图,及图论Floyd 原理,运用MATLAB编程求解出各个交汇点的最优线路,确定企业,仓库,储备库之间的调运路线。在重点保证国家级储备库的基础上,及满足各仓库需求的约束条件下,运用线性规划模型MATLAB求解使运输成本最小,并尽量使运输天数最短,从而建立了分四个阶段运输方案:第一阶段,所有企业及仓库向储备库运输,使其满足预测库存。第二阶段,所有企业及仓库3,仓库5向其他仓库运输,使所有仓库尽量满足预测库存,需时8天。第三阶段,企业1向储备库1运输,企业3向储备库2运输,第33天完成。第四阶段,企业1向仓库2,5运输,企业2向仓库1,7运输,企业3向仓库3,4,6,8运输,第70天完成。具体运输路线及运输量见问题2的结果分析。

针对问题3,根据问题2所建立的运输方案,发现第20天处于运输第三阶段,即所有仓库基本达到预测库存,企业1向储备库1,企业3向储备库2运输过程中,20天后的库存量为:(单位:百件)

仓库1 仓库2 仓库3 仓库4 仓库5 仓库6 仓库7 仓库8 储备库1 储备库2 764 900 300 400 1000 500 596 800 3480 2740

针对问题4,问题2调运方案目的是使成本最少,不能解决紧急调运问题,但解决方法类似。我们重新建立部分公路中断的公路交通网模型,并用MATLAB求解出最短距离。此次利用线性规划求解的目标是使运输时间最短,即路程最近。同时依旧在保证国家级储备库的基础上,满足各仓库的预测库存量,规划出两阶段的运输方案:第一阶段,所以企业及仓库向储备库运输,使其满足预测库存。第二阶段,所有企业及仓库3,5向其他仓库运输,使所有仓库基本达到预测库存量。具体调运路线就调运量见问题4结果分析。

最后对论文所建模型进行了评价与推广。

关键词:图论线性规划物资调运

一、问题重述

1.1问题背景:

已知某地区有生产该物资的企业三家,大小物资仓库八个,国家级储备库两个,各库库存及需求情况见附件1,其分布情况见附件2。经核算该物资的运输成本为高级公路2元/公里/百件,普通公路1.2元/公里/百件,假设各企业,物资仓库及国家储备库之间的物资可以通过公路运输相互调运。 1.2问题提出:

附件1列出了各库库存及需求情况,附件2给出了生产企业,物资仓库及国家级储备库分布图(说明:把交汇点27和30分别设为储备库1和2;42号交汇点附近的9号改为42号。见附录)。

现要通过数学建模来完成以下任务:

(1)请根据附件2提供的信息建立该地区公路交通网的数学模型。

(2)设计该物质合理的调运方案,包括调运量及调运路线,在重点保证国家级储备库的情况下,为给该地区有关部门做出科学决策提供依据。 (3)根据你的调运方案,20天后各库的库存量是多少?

(4)因山体滑坡等自然灾害下列路段交通中断,能否用问题二的模型解决紧急调运的问题,如果不能,请修改你的模型。

中断路段:○14○23,○11○25,○26○27,○9○31

二、基本假设

1 假设各个企业,仓库,储备库有足够的运输能力;

2 假设运输过程中不会发生意外,导致货物损失;

3 假设运输车辆速度相同,运输时间仅与路程有关;

4 假设发生中断的道路不会在短时间内修好;

三、符号说明

:ik x 企业i 调往储备库k 的货物量,单位为百件(i=1…3;k=1,2) :jk x 仓库j 调往储备库k 的货物量,单位为百件(j=1…8;k=1,2)

:ik c 货物从企业i 调往储备库k 的每百件费用之和,单位为元/(百件.公里) :jk c 货物从仓库j 调往储备库k 的每百件费用之和,单位为元/(百件.公里) :i x 企业i 的现有库存

:j x 仓库j 的现有库存与最低库存的差量 :k x 储备库k 的现有库存与预测库存的差量

:

ik

y 企业i 调往仓库k 的货物量,单位为百件(i=1,2,3;k=1…6;分别为仓库1,2,4,6,7,8)

:jk y 仓库j(仓库3,5)调往仓库k 的货物量,单位为百件(k=1…6;j=1,2)

:ik d 货物从企业i 调往仓库k 的每百件费用之和,单位为元/(百件.公里)

d货物从仓库j调往仓库k的每百件费用之和,单位为元/(百件.公里)

jk

:

y企业i的现有库存(可运输量)

:i

y仓库3,5的现有库存与预测库存的差量

:j

y仓库k的现有库存与预测库存的差量(仓库1,2,4,6,7,8)

k

:

l货物从企业i调往储备库k的路程,单位为公里

:

ik

l货物从仓库j调往储备库k的路程,单位为公里

jk

:

p货物从企业i调往仓库k的路程,单位为公里

ik

:

p货物从仓库j调往仓库k的路程,单位为公里

:

jk

四、模型的分析建立与求解

4.1 问题1

4.1.1公路交通网络图

根据附件2给出的生产企业,物资仓库及国家级储备库分布图的信息,及高级公路2元/公里/百件,普通公路1.2元/公里/百件,将给出的距离图赋权运输成本,并简化后得到图1,如图所示:

图1 生产企业,物资仓库及国家储备库分布图

4.1.2公路交通网络表

根据公路交通网络图,找出各个交汇点之间的赋权距离,即运输成本/百件,如下表1所示:

表1 公路交汇点间的赋权距离(单位:元/百件)

交汇点编号交汇点

编号

运输成本/百件

交汇点

编号

交汇点

编号

运输成本/百件

1 2 48 15 18 69.6 1 33 72 15 25 55.2

1 34 54 15 4

2 33.6

2 3 42 16 18 150 2 7 60 16 21 69.6 2 9 74.4 16 23 78

2 36 60 17 2

3 62.4

3 10 50.

4 18 19 26.4

3 36 60 18 23 54

4 5 20 18 25 60 4 6 36 19 22 86.4 4 29 80 19 26 33.6

4 30 84 20 22 54

5 6 56 20 22 96 5 39 170 20 24 60

5 40 7

6 21 22 54

6 11 64 24 26 36 6 40 36 25 26 21.6

6 41 57.6 26 2

7 84

7 27 140 27 40 64

8 14 72 28 29 72 8 15 76 28 42 38.4

8 28 100 29 30 74.4

9 27 48 30 39 18 9 31 62.4 31 32 60

9 40 33.6 32 34 30

10 12 62.4 32 35 117.6

11 15 112 32 38 81.6 11 25 80 32 39 74.4

11 27 96 33 36 48

12 13 96 33 37 45.6

13 20 81.6 35 39 204

13 27 100 37 39 42

14 17 112 41 42 31.2 14 23 60

4.2 问题2 1 问题分析:

在设计物资合理调运方案时,我们考虑到此阶段的目的是使运费最少,并在保证国家级储备库的情况下,满足各仓库的需求量。此问运费只与调运量及调运路线有关,调运路线可根据问题1的赋权图,运用图论的Floyd 算法,通过MATLAB 求解出各个企业,仓库及储备库之间的最优路线。调运量的安排是在优先满足国家级储备库的基础上,再优化出各个企业及仓库之间的调运量,使花费最小,对此我们分四个阶段,逐步使储备库及仓库达到预测库存以至于最大库存。 2 模型准备:

在规划各阶段运输量之前,我们需要求解出最优路线,即任意两个企业,仓库及储备库之间的最小的费用/百件。对此我们运用图论,构建各个交汇点的42X42邻接矩阵,通过Floyd 算法,用MATLAB 编程计算出他们之间的最优路线,为下面的模型建立求解最佳运输量做准备。 3 模型建立及求解 3.1第一阶段 3.1.1模型分析

我们认为国家级储备库优先级高于其他仓库及运费。即此阶段的目的是使储备库1,2分别达到预测库存,所有仓库及企业都可以向储备库1,2运输,但仓库库存量不能低于最低库存,并在此基础上规划出各企业及仓库的最少运费运输量。

此阶段假设所有企业无产量。 3.1.2模型建立及求解

模型一:

目标函数:所有仓库及企业向储备库运输所需最小成本为:

jk

j k jk

ik i k ik

c x

c x

z ?+

?=

∑∑∑∑====8

12

1

3

12

1

min

约束条件:各个企业及仓库运输量小于现有库存,总运输量等于储备库的预测库存与现有库存差值,即:

?

??????????≥=+≤∑∑∑∑=======≤0

,..3

181)

2,1(2

1

)81()3,2,1(2

1jk ik i j k k jk ik k j j jk i k i ik x x x x x x x x x t s

由此建立第一阶段的运输方案,运用MATLAB 求解出最佳调运量,具体方案见下表:

表2. 第一阶段各企业,仓库向储备库的运输量和剩余库存量的情况(单位:百件)

相对应的各个企业仓库向储备库最优运输路线为:

表3第一阶段各企业,仓库向储备库的运输路径(单位:元/百件)

3.2第二阶段 3.2.1模型分析

在第一阶段完成后,我们发现储备库已满足预测库存,仓库3,仓库5大于预测库存,其他仓库小于预测库存,即此阶段的目的是使所有仓库至少达到预测库存,同时运费最低,即所有企业和仓库3,5可以向其他仓库运输,先不考虑天数及产量的限制,规划出各企业整体的运输量,再分析出各企业所需生产天数。 3.2.2模型建立及求解

模型二:

目标函数:仓库3,5和所有企业向其他仓库运输所需最小运费为:

单位 分配量 现有库存量 可运输量 剩余库存量

运输量

储备库1 储备库2 企业1 600 600 0 600 0 企业2 360 360 90 270 0 企业3 500 500 0 0 500 仓库1 200 100 100 0 100 仓库2 270 70 270 0 0 仓库3 450 250 450 0 0 仓库4 230 130 100 130 0 仓库5 800 500 800 0 0 仓库6 280 80 280 0 0 仓库7 390 90 300 0 90 仓库8 500

100 490

10

起点 终点 单位成本 最短路径(各节点编号) 企业1

储备库1 120 24-26-27

企业2 157.6 41-6-40-27 仓库4 110.4 31-9-27 企业3

储备库2

122.4 34-32-39-30 仓库1 146.4 28-29-30 仓库7 74.4 29-30 仓库8

174

38-32-39-30

∑∑

∑∑

====?+

?=

3

16

1

2

16

1

min i k j k jk

jk ik ik d y d y z

约束条件:此阶段仓库3,5运输量不得低于预测库存,可以保证所有仓库经过此阶段后达到预测库存,企业运输量大于零,储备库不参与运输,即约束条件为:

?

??????????≥=+≤≤∑∑∑∑=======0

,..3

121)

61(6

1

)2,1(6

1)3,2,1(jk ik i j k k jk ik k j j jk k i i ik y y y y y y y y y t s

通过MATLAB 求解出最佳运输量如下图:

表4第二阶段企业和仓库3,5

向其余仓库运输的情况(单位:百件) 单位

分配 现有库存量 可运输量 剩余库存

量 运输量 仓库1 仓库2 仓库4 仓库6 仓库7 仓库

8

企业1 320 320 0 0 320 0 0 0 0 企业2 330 330 0 220 0 0 0 0 110 企业3 160 160 0 160 0 0 0 0 0 仓库3 450 150 300 0 0 150 0 0 0 仓库5 800 400 450 20 10 100 20 200 0

由此我们可以计算出各个企业所需的生产天数为:

即8天后所有企业都可以满足各个仓库的需求量,并且无剩余,各个仓库均达到预测库存。

相对应的各个企业仓库向储备库最优运输路线为:

表5第二阶段企业和仓库3,5向其余仓库运输路径(单位:元/百件) 起点 终点 单位成本 最短路径 企业1 仓库2 150 24-26-19-18-23 企业2 仓库1 69.6 41-42-28

仓库8 331.2 41-6-40-9-32-38

企业3 仓库2 398.4

34-32-31-9-27-26-9-8-23 仓库4 177.6 35-32-31 仓库5 仓库4 314.4 22-9-26-27-31 仓库6 428.4 22-9-26-27-9-2-3-36 仓库7 326.4 22-9-26-25-15-42-28

3.3第三阶段

3.3.1模型分析,建立及求解

在第二阶段完成后,我们发现经过8天所有企业无产量剩余,仓库5超出预测库存50,其他仓库均达到预测库存,为了使之后的运输成本最小,我们经过最优路线选择后,得出各个企业对仓库和储备库的运输分配为:

储备库2

仓库8仓库6仓库4

仓库3仓库7仓库1

仓库5仓库2储备库1企业3

企业2

企业1

图2 各个企业对仓库和储备库的运输分配情况

即此过程不考虑到天数和产量的限制,可以使运输费用最小。 同样在保证国家级储备库优先运输的前提下,我们可以知道企业1向储备库1运输,企业3向储备库2运输,此阶段的目的是使储备库达到最大库存,根据储备库的需求量来求解出相对应企业的运输量,进而求出所需天数为:

由此可知,企业1,3在第33天同时使储备库满足最大库存。

3.4第四阶段

3.4.1模型分析,建立及求解

第三阶段进行的同时,企业2可以向仓库1,7运输,储备库运输完成后企业1,3也可以对其他仓库进行运输,所以,在运输路线确定的前提下,运输费用不会发生变化,始终保持最小,而对于各个仓库的运输先后问题,我们制定标准,使所需运输天数最小,从而可知,根据仓库需求量均衡分配可使天数最小,运输方案见下表:

表6第四阶段企业向储备库及仓库的每天的运输量(单位:百件)

天数单位9-20 21 22 23-3

3

34-54 55 56-58 59-69 70

企业1 储备库1 40 0 仓库2 0 14 6 0

仓库5 0 26 4 0 企业2 仓库1 22 26 10 0

仓库7 8 4 0

企业3 储备库2 20 0

仓库3 0 8 8 4 仓库4 0 2 0

仓库6 0 5 6 3 仓库8 0 5 6 3

我们在此运输量的规划过程中,尽量保持每天均衡分配,当运输量无法完全均衡分配时,我们通过简单的预测,保证了运输天数最少,从而得出了以上表格每天的具体分配量。

4.3 问题3

根据问题2所建立的调运模型,我们发现第20天后处于第三阶段,即企业1向储备库1运输,企业2向仓库1,7运输,企业3向储备库2运输阶段,根据运输量20天后各仓库库存量为:

表7 20天后所以仓库及储备库现有库存(单位:百件)

仓库1 仓库2 仓库3 仓库4 仓库5 仓库6 仓库7 仓库8 储备库1 储备库2 764 900 300 400 1000 500 596 800 3480 2740

4.4 问题4

4.4.1问题分析:

因发生山体滑坡等自然灾害使一些道路交通中断,在发生自然灾害的紧急情况下,我们往往考虑的是用最短的时间把物资运输到灾区,所以在这时不用考虑运输成本,考虑的是最短的运输路线,问题二建立的模型是基于成本最少的线性规划模型,不能用来解决该问题,所以我们需要对前面的模型做了改进。根据附件2,用MATLAB 软件算出任意两个公路交汇点之间的最短距离,并找出了企业,仓库和储备库之间的距离,利用这些数据就可以重新建立一个交通网络图,把该地区的运输费用赋权交通网络图,改进成为距离的赋权图,建立一个G(V,E)图。又因为要优先满足国家级储备库,所以把物资的调运分成两个阶段,第一阶段企业和仓库向两个储备库运输使其达到预测的库存,第二阶段使仓库也达到预测库存。分别建立两个线性规划模型,目标函数为最短路程,用MATLAB 软件求解出具体的运输量,得到具体的运输方案。 4.4.2模型准备:

在规划各阶段运输量之前,需建立部分路程中断的G(V,E)图,将最短的运输路线通过MATLAB 运用Floyd 算法求出,保证运输时间最短,具体图如下所示:

j

52

56

36

14

8仓库123仓库2

17

企业1

28

5030

50

56

48

18

28584630

2275

45

6576

80

68

80

72

45

58

24

21

42152511

27

储备库126

19

18

13

20

22仓库5

16

48

28

32

3248

30

10

26

40

50

70

324062

35

60

25

45

50

70

38

283050

60

40

62

85

1562

102

98

68

3538

40

50

42

52

31仓库4

9

41

企业240

64

5

34企业3

1

2

7

28

29仓库7

30储备库2

3935仓库3

32

38仓库8

37

33

36仓库6

3

10

12

图3 生产企业,物资仓库及国家级储备库距离图

4.4.3模型的建立与求解: 4.4.3.1第一阶段

我们使储备库达到预测库存,由企业和仓库提供,经过初步计算企业的现有库存和仓库超过最低库存的量就能够满足储备库的需求,此时以调用的路程最短为目标求各企业和仓库的调运路线和分配量。 1模型建立: 模型三:

目标函数:总的运输路程最短:

∑∑∑∑====?+

?=

3

12

1

8

12

1

min i k j k jk

jk

ik ik

l x

l x

z

约束条件:各企业的分配量不大于现有库存,仓库的分配量不大于现有库存与最低库存的差量,储备库达到预测库存。

?

??????????≥=+≤∑∑∑∑=======≤0

,..3

181)

2,1(2

1

)81()3,2,1(2

1jk ik i j k k jk ik k j j jk i k i ik x x x x x x x x x t s

2模型求解:

用MATLAB 软件求解,得到第一阶段各企业和仓库向储备库的调运量如下表:

表8第一阶段各企业和仓库向储备库调运量

位 分配量 现有库存量 可运输量 剩余库存量

运输量

储备库1 储备库2 企业1 600 600 60 540 0 企业2 360 360 0 360 0 企业3 500 500 0 0 500 仓库1 200 100 100 100 0 仓库2 270 70 270 0 0 仓库3

450

250

340

110

第一阶段各企业和仓库向储备库的调运路线如下:

表9 第一阶段各企业和仓库向储备库的调运路线

起点 终点 路程 路线 企业1 储备库1 168 24-20-13-27

企业2 110 41-6-40-27

仓库6 187 36-3-10-7-27 企业3 储备库2 102 34-32-39-30

仓库1 92 28-29-30

仓库3 117 35-39-30 仓库7 32 29-30

4.4.3.2第二阶段

在储备库达到预测库存后,使其他的仓库达到预测库存。通过第一阶段的调运发现三个企业除了企业2还剩余90外,现存量都已运完;仓库3,5现有库存多于其预测库存。让三个企业和仓库3,5向其他六个仓库调运。企业几天内的总产量作为可调运的总量,建立路程最短的目标函数模型,得到具体的分配量。 1模型建立: 模型四:

目标函数:运输的路程最短及总的时间最少:

∑∑

∑∑

====?+

?=

3

16

1

2

16

1

min i k j k jk

jk ik ik p y p y z

约束条件:各企业的分配量不大于其可调运的总量,仓库3,5的分配量不大于其现有库存与预测库存的差量,仓库1,2,4,6,7,8达到预测库存。

?

??????????≥=+≤≤∑∑∑∑=======0

,..3

121)

61(6

1

)2,1(6

1)3,2,1(jk ik i j k k jk ik k j j jk k i i ik y y y y y y y y y t s

仓库4

230

130

230

仓库5 800 500 800 0 0 仓库6 280 80 280 0 0 仓库7 390 90 300 0 90 仓库8

500

100

500

2模型求解:

用MATLAB软件求解,得到第二阶段各企业和仓库3,5向仓库1,2,4,6,7,8的调运量如下表:

表10 第二阶段第二阶段各企业和仓库3,5向其他仓库调运量(单位:百件)

单位分配现有库

存量

可运

输量

剩余

库存

运输量

仓库1 仓库2 仓库4 仓库6 仓库7 仓库8

企业1 380 380 0 0 330 0 0 0 50 企业2 240 240 0 240 0 0 0 0 0 企业3 160 160 0 150 0 0 0 0 10 仓库3 340 40 300 0 0 0 0 0 40 仓库5 800 400 450 10 0 120 20 200 0

第二阶段各企业和仓库3,5向仓库1,2,4,6,7,8的运输路线如下:

表11第二阶段各企业和仓库3,5向其他仓库调运路线(单位:公里)

起点终点路程路线

企业1 仓库2 123 24-26-25-18-23

企业2 仓库1 58 41-42-28

企业3 仓库1 224 34-32-39-30-29-28

仓库2 387 34-32-39-30-29-28-9-15-45 仓库3 仓库4 148 35-32-31

仓库5 仓库1 212 22-19-26-25-15-42-28

仓库4 460 22-2013-27-29-1-34-32-31 仓库6 372 22-20-13-12-10-3-36

仓库7 272 22-19-18-15-42-28-29

五.模型的评价

1、模型的优点:

(1)本文采用图论中的Floyd算法和线性规划的方法,根据实际情况,针对问题在不同情况下的要求和侧重点分阶段考虑,建立了不同的数学模型。让结果更合理,更符号实际情况。

(2)问题2中拟定运输方案时,我们充分考虑到了国家级储备库的重要性,并在此基础上使费用最低,建立了四个阶段的模型,使模型的实用性更高,安排更合理,比如:问题2中分成四个阶段考虑,优先满足储备库达到预测库存、仓库达到预测库、储备库达到最大库存、仓库达到最大库存。

(3)问题2模型可以灵活运用,应对突发情况。问题4中考虑运输的时间最短,只对已有的模型做了一点修改,就确立了紧急调运的方案。

(4)问题4中确立的模型可以应用于任意的道路中断,只需修改中断道路数据便可以安排出紧急调运方案,灵活性高。

2、模型的改进:

(1)问题4中我们假设车辆在高等级公路和普通公路中的速度相同,而在实际情况中两者的速度可能不相同;可以根据它们的速度的比值,对交通网络图中的数据作相应的修改,用同样的模型进行求解,可以得到更好的实际调运方案。

(2)问题4中我们假设道路不能在短时间内修好,可实际情况无法预知道路的破坏程度,及所需修复时间,如在运输过程中修复完好,我们需灵活修改运输方案,来保证时间最短。

六.模型的推广

本文主要采用了图论及线性规划综合解决了货物的合理运输问题,此类模型可以应用于任何的货物运输类问题。运用图论的Floyd算法可以直接解决任何不相邻节点的最短路径,适用于查找所需两点的最短距离,特别对于路线复杂,道路多的一类问题。同时在道路问题上赋权不同,可以拓展解决问题的范围,如赋权路费,解决花费最小问题,赋权时间,解决时间最短问题等等。线性规划的运用同时可以推广到各个方面,当所需达到的目标函数不同时,我们可以解决任何类问题,适用范围广。

对于问题4中模型的中断路径进行修改便可解决任意道路中断的情况,可以推广到各类道路中断的货物紧急调运问题,只需修改道路路中断的数据,再通过Floyd算法便可求出最短距离。进而再通过线性规划制定相应的运输方案。

七.参考文献

[1] 李学文,李炳照,王宏洲.数学建模优秀论文精选与点评.北京:清华大学出版社,2011.

[2] 王树禾.图论.北京:科学出版社,2009.

[3] 赵静,但琦.数学建模与数学实验.北京:高等教育出版社,2008.

[4] 张可波,郑大斌.图论在道路建设中的应用.科技创新导报.2012,(3):10-15.

[5] 王海英,黄强,李传涛,褚宝增.图论算法及其MATLAB实现.https://www.doczj.com/doc/3d15251120.html,/f/24191632.html?from=top.2012年7月14日.

[6] 李立,浅谈表上作业法在选择商品调运路线中的应用,https://www.doczj.com/doc/3d15251120.html,/Article/CJFDTOTAL-JJWT198109008.htm,2012年7月14日.

[7] 李良,物流运筹学,

https://www.doczj.com/doc/3d15251120.html,/view/53471c995376039d9c210b6ef53d28c5.html,2012年7月14日.

八.附录

附件2:生产企业,物资仓库及国家级储备库分布图

注:

高等级公路 普通公路 河流

等表示公路交汇点;30,50,28等表示公路区间距离,单位:公里,如 与 之间距离为80公里。

企业

仓库

企业企业仓库

仓库储备1 储备2 仓库

仓库仓库仓库仓库75

65

5

2 58 45

72

80

4

5 22 50 30 28 30 18 68 70 50 80 78 40 48 70

32 40

28 30 38 32 30 10 48 56 28 26 32 58 46 50 56

36 38 50 60 40 62 70 85

15 102

5

2 62 5

0 48 42 52 35 50 4

0 50 45 6

0 40 3

83

5 68 98

62 28 25 20 21 16 17 18 19

13 14 15 12 10 11 9 7 6 8 42 5 4 3 1 2 25 24

23 29 22 28 27

30 26 31

32 33

34 35

36 37 38

39 40 41 1 2 3 12 13

图论的Floyd算法MA TLAB实现代码:

1.%floyd.m

function[D,R]=floyd(a)

n=size(a,1);

D=a

for i=1:n

for j=1:n

R(i,j)=j;

end

end

for k=1:n

for i=1:n

for j=1:n

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

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

R(i,j)=R(i,k);

end

end

end

end

2.基于成本的邻接矩阵求相邻节点间的最小运输费用:

%road.m

a=[0 48 inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf inf inf inf inf inf inf inf inf 72 54 inf inf inf inf

inf inf inf inf;inf 0 42 inf inf inf 60 inf 74.4 inf inf inf inf inf inf

inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf inf inf inf; inf 42 0 inf inf inf inf inf inf 50.4 inf inf inf inf inf inf inf inf inf

inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf 60 inf inf

inf inf inf inf;inf inf inf 0 20 36 inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf inf inf inf inf inf inf inf 80 84 inf inf inf inf inf

inf inf inf inf inf inf inf;inf inf inf 20 0 56 inf inf inf inf inf inf inf

inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf inf 170 76 inf inf;inf inf inf 36 56 0 inf inf inf inf

64 inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf inf inf inf inf inf 36 57.6 inf;inf 60 inf inf inf inf

0 inf inf 96 inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf

inf 140 inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf;inf inf

inf inf inf inf inf 0 inf inf inf inf inf 72 76 inf inf inf inf inf inf inf

inf inf inf inf inf 100 inf inf inf inf inf inf inf inf inf inf inf inf inf

inf;inf 74.4 inf inf inf inf inf inf 0 inf inf inf inf inf inf inf inf inf

inf inf inf inf inf inf inf inf 48 inf inf inf 62.4 inf inf inf inf inf inf

inf inf 33.6 inf inf; inf inf 50.4 inf inf inf

96 inf inf 0 inf 62.4 inf inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf; inf inf inf inf inf 64 inf inf inf inf 0 inf inf inf 112 inf inf inf inf

inf inf inf inf inf 80 inf 96 inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf;inf inf inf inf inf inf inf inf inf 62.4 inf 0 96 inf inf

inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf inf inf inf; inf inf inf inf inf inf inf inf inf inf inf 96 0 inf inf inf inf inf inf

81.6 inf inf inf inf inf inf 96 inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf;

inf inf inf inf inf inf inf 72 inf inf inf inf inf 0 inf inf 112 inf inf

inf inf inf 60 inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf;

inf inf inf inf inf 55.2 inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf 33.6;

inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf 0 inf 150 inf

inf 69.6 inf 78 inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf;

inf inf inf inf inf inf inf inf inf inf inf inf inf 112 inf inf 0 inf inf

inf inf inf 62.4 inf inf inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf;

inf inf inf inf inf inf inf inf inf inf inf inf inf inf 69.6 150 inf 0

26.4 inf inf inf 54 inf 60 inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf; inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf 26.4

0 inf inf 86.4 inf inf inf 33.6 inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf;

inf inf inf inf inf inf inf inf inf inf inf inf 81.6 inf inf inf inf inf

inf 0 inf 96 inf 60 inf inf inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf;

inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf 69.6 inf inf

inf inf 0 54 inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf; inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf

86.4 96 54 0 inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf;

inf inf inf inf inf inf inf inf inf inf inf inf inf 60 inf 78 62.4 54 inf

inf inf inf 0 inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf;

inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf

inf 60 inf inf inf 0 inf 36 inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf;

inf inf inf inf inf inf inf inf inf inf 80 inf inf inf 55.2 inf inf 60

inf inf inf inf inf inf 0 21.6 inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf;

inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf

33.6 inf inf inf inf 36 21.6 0 84 inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf;

inf inf inf inf inf inf 140 inf 48 inf 96 inf 100 inf inf inf inf inf inf

inf inf inf inf inf inf 84 0 inf inf inf inf inf inf inf inf inf inf inf

inf 64 inf inf;

inf inf inf inf inf inf inf 100 inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf inf inf inf inf 0 72 inf inf inf inf inf inf inf inf

inf inf inf inf 38.4;

inf inf inf 80 inf inf inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf inf inf inf inf 72 0 74.4 inf inf inf inf inf inf inf

inf inf inf inf inf;

inf inf inf 84 inf inf inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf inf inf inf inf inf 74.4 0 inf inf inf inf inf inf inf

inf 18 inf inf inf;

inf inf inf inf inf inf inf inf 62.4 inf inf inf inf inf inf inf inf inf

inf inf inf inf inf inf inf inf inf inf inf inf 0 60 inf inf inf inf inf

inf inf inf inf inf;

inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf inf inf inf inf inf inf inf 60 0 inf 30 117.6 inf inf

81.6 74.4 inf inf inf;

72 inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf inf inf inf inf inf inf inf inf inf 0 inf inf 48 45.6

inf inf inf inf inf;

54 inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf

inf inf inf inf inf;

inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf 117.6 inf inf 0 inf inf inf 204 inf inf inf;

inf inf 60 inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf 48 inf inf 0 inf inf inf inf inf inf;

inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf 45.6 inf inf inf 0 42 inf inf inf inf;

inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf 81.6 inf inf inf inf 42 0 inf inf inf inf;

inf inf inf inf 170 inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf 18 inf 74.4 inf inf 204 inf inf inf 0 inf inf inf;

inf inf inf inf 76 36 inf inf 33.6 inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf 64 inf inf inf inf inf inf inf inf inf inf inf inf 0 inf inf;

inf inf inf inf inf 57.6 inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf 0 31.2;

inf inf inf inf inf inf inf inf inf inf inf inf inf inf 33.6 inf inf inf inf inf inf inf inf inf inf inf inf 38.4 inf inf inf inf inf inf inf inf inf inf inf inf 31.2 0];[D,R]=floyd(a)

s1=[D(28,24),D(28,41),D(28,34),D(28,35),D(28,22),D(28,27),D(28,30)];

d1=min(s1');

q1=find(s1(1,:)==d1);

s2=[D(23,24),D(23,41),D(23,34),D(23,35),D(23,22),D(23,27),D(23,30)];

d2=min(s2');

q2=find(s2(1,:)==d2);

s3=[D(35,24),D(35,41),D(35,34),D(35,35),D(35,22),D(35,27),D(35,30)];

d3=min(s3');

q3=find(s3(1,:)==d3);

s4=[D(31,24),D(31,41),D(31,34),D(31,35),D(31,22),D(31,27),D(31,30)];

d4=min(s4');

q4=find(s4(1,:)==d4);

s5=[D(22,24),D(22,41),D(22,34),D(22,35),D(22,22),D(22,27),D(22,30)];

d5=min(s5');

q5=find(s5(1,:)==d5);

s6=[D(36,24),D(36,41),D(36,34),D(36,35),D(36,22),D(36,27),D(36,30)];

d6=min(s6');

q6=find(s6(1,:)==d6);

s7=[D(29,24),D(29,41),D(29,34),D(29,35),D(29,22),D(29,27),D(29,30)];

d7=min(s7');

q7=find(s7(1,:)==d7);

s8=[D(38,24),D(38,41),D(38,34),D(38,35),D(38,22),D(38,27),D(38,30)];

d8=min(s8');

q8=find(s8(1,:)==d8);

s9=[D(27,24),D(27,41),D(27,34),D(27,35),D(27,22),D(27,27),D(27,30)];

d9=min(s9');

q9=find(s9(1,:)==d9);

s10=[D(30,24),D(30,41),D(30,34),D(30,35),D(30,22),D(30,27),D(30,30)];

d10=min(s10');

q10=find(s10(1,:)==d10);

s=[s1,s2,s3,s4,s5,s6,s7,s8,s9,s10]

结果:

相关主题
文本预览
相关文档 最新文档