连锁店和生产基地增设以及货物配送问题数学建模.docx
《连锁店和生产基地增设以及货物配送问题数学建模.docx》由会员分享,可在线阅读,更多相关《连锁店和生产基地增设以及货物配送问题数学建模.docx(39页珍藏版)》请在冰豆网上搜索。
连锁店和生产基地增设以及货物配送问题数学建模
第一题:
1、问题重述
华商公司在全省县级及以上城镇设立销售连锁店,主要销售鲜猪肉。
已知全省县级及以上城镇地理位置及道路连接。
目前公司现有2个生产基地(分别设在120号和63号城镇)、23家销售连锁店,连锁店的日销售量见附录1。
若运输成本为0.45元/吨公里,请你为公司设计生产与配送方案,使运输成本最低。
2、问题分析
本题首先使用matlab软件将全省交通网络数据转换成矩阵,即若两点之间有路线,则采用矩阵的形式标注出来,若没有直接路线,则用相对很大的数如M表示,这对其求最短路没有影响。
然后采用Floyd算法算出任意两个城镇之间的距离,得出新的最短路矩阵,然后从中挑选出每个连锁店与生产基地所在地城镇63和城镇120之间距离的最小值。
由于每个连锁店的日销量都是给定的,并且生产基地必须满足所有连锁店的需求,因此,本题所求的运输成本最低可以转化为生产基地到连锁店的总路线最短。
3、模型假设
(1)位于同一个城镇里的生产基地和连锁店之间的距离视为0,不计入运输成本。
(2)由于要求运输成本最小,所以假定除了距离外,没有其他因素影响运输成本
(3)在求出的最短路中,皆是可行的路线。
4、符号说明
:
从
到
的只以
集合中的节点为中间节点的最短路径的长度
5、模型建立
由于要求的问题可转化为最短路问题,而解决任意两点之间的最短路问题,一般而言最为经典的模型便是Floyd算法,所以此模型即为Floyd算法的模型。
即状态转移方程如下:
1.若最短路径经过点k,则
;
2.若最短路径不经过点k,则
。
因此,
。
在实际算法中,为了节约空间,可以直接在原来空间上进行迭代,这样空间可降至二维。
6、模型求解
全省交通网络图如下:
先把全省交通网络数据转换成矩阵,其matlab程序见附件程序一(注:
如问题分析所说,若两点之间没有直接路线,则用大M表示,分析此题,可用1000代替大M,对程序运行结果无影响),然后采用Floyd算法,求出一个154*154的矩阵,D(i,j)表示i,j之间的最短距离。
Floyd算法程序见附件程序二。
我们算出任意两个城镇之间的距离,然后分别比较城镇63和城镇120与23个连锁店的距离,比如:
如果城镇63与连锁店i的距离小于城镇120与连锁店i的距离,则连锁店i的猪肉由生产基地在城镇63的生产基地供应。
最终所得方案如下:
表1运输成本最小方案
生产基地
连锁店
所在城镇
最短距离(公里)
日销售量(kg)
运费(元)
城镇63
2
106
63.7
38223
1095.662295
5
141
61.72
9258
257.131692
9
1
134.31
14744
891.119988
11
36
151.19
11503
782.6123565
13
34
119.54
451
24.260643
14
42
110.58
9489
472.182129
15
94
170.17
12773
978.1116345
19
145
72.85
39653
1299.924473
21
16
103.64
14783
689.449554
22
123
5.11
18081
41.5772595
城镇120
4
31
114.66
23947
1235.593359
6
10
108.36
8481
413.550522
7
65
19.09
15570
133.754085
8
79
28.17
38759
491.3284635
12
27
135.1
9265
563.265675
16
11
179.15
6103
492.0086025
17
24
128.94
3251
188.632773
20
22
168.95
6375
484.6753125
23
64
7.31
1840
6.05268
最终可得总费用最小为:
10540.8935元
注:
由于连锁店3和18都在63号城镇、连锁店1和10都在120号城镇,可以将这四个连锁店的运输成本忽略不计。
7、模型评价
(1)优点:
容易理解,可以算出任意两个节点之间的最短距离,代码编写简单
(2)缺点:
比较高,不适合计算大量数据。
第二题
1、问题重述
根据近5年全省各城镇的鲜猪肉月度需求数据,分析各城镇需求特征,并预测未来何时全省鲜猪肉需求达到峰值,并筛选出达到峰值时需求达到前5位和后5位的城镇。
2、问题分析
本题有三个小问题,我们着重考虑第二个小问,即预测何时全省鲜猪肉需求达到峰值。
关于第一小问,由于数量过于庞大,用描述统计的方法即可得到各个城镇数据的大致特征。
对于第二小问,应反复使用不同的曲线模型进行拟合,然后选出最合适的模型,求出达到峰值的时间。
关于第三小问,为避免计算量过大,我们挑选出第一小问中平均值前十位和后十位的城镇逐个预测,最终能筛选出达到峰值时需求达到前5位和后5位的城镇。
3、模型的建立与求解
3.1对于第一小问我们利用描述统计的方法,计算出每个城镇数据的全距、均值以及方差。
详细数据见附录。
(1)城镇68、63、76、86、31的数据全局均在500以上,说明这些城镇数据变化范围较广。
(2)城镇31、63的数据均值都在4000以上,说明这两个城市对猪肉的需求量很大,然而也有例如城镇74、94、30、84对猪肉的月平均需求量在120以下。
(3)城镇4、92、98、19、43、3、48、93、60、82、96、99、88、89、5、29、16、34、17、84、30、74数据的标准差均在10以下,说明这些城镇数据的波动较小、很平缓。
然而也有城镇数据波动性较大,如城镇68、63、76、86、31、1、83、41、40、79、69的标准差都在100以上。
3.2对于第二小问:
(1)模型假设:
题目所给数据季节波动性很弱,可以忽略它的影响。
相邻时间段的数据之间基本不存在自回归现象;
(2)符号说明:
y表示全省鲜猪肉月度需求量
x表示时间,例如x=1表示2008年1月。
(3)模型的建立和求解
我们用SPSS对数据进行曲线拟合,发现拟合度最高的为二次曲线,如下:
y=106296.987+373.206x-2.573x^2
对方程两边求导,令y’=373.206—2*2.573x=0
得x=72.52351
即2014年1月中旬全省鲜猪肉需求量达到峰值。
3.3对于第三小问:
我们根据第一问的结果挑选出月度猪肉需求量均值前10位和后10位的城镇。
如下表:
表2月度猪肉需求量均值前10位城镇
城镇
47
118
2
102
74
月需求量均值(公斤)
122.8
122.4275
120.9895
112.2618
109.4933
城镇
30
84
109
129
94
月需求量均值(公斤)
107.5695
104.9897
101.6152
99.2745
107.8893
表3月度猪肉需求量均值后10位城镇
城镇
120
31
63
106
104
月需求量均值(公斤)
8634.49
4484.37
4136.11
3438.24
2141.91
城镇
121
100
79
56
101
月需求量均值(公斤)
1991.06
1826.46
1761.84
1684.56
2097.49
经过对以上20个城镇的数据逐个拟合,发现城镇31、120、106、121、100、79、56、118、74、30、84的数据没有明显上升或下降的趋势,预测值与平均值不会相差太远,所以在此取其均值作为达到峰值时的预测值。
然而城镇101、104、2、47、94、129二次曲线的拟合度都很高,城镇63、109线性拟合度很高。
模型如下:
城镇101:
y(101)=1364.246+40.076x-0.398x^2
城镇104:
y(104)=1270.008+53.841x-0.626x^2
城镇2:
y
(2)=75.318+1.985x-0.012x^2
城镇47:
y(47)=74.578+1.86x-0.007x^2
城镇94:
y(94)=37.881+3.127x-0.021x^2
城镇129:
y(129)=70.645+1.273x-0.008x^2
城镇63:
y(63)=4555.160-13.739x
城镇109:
y(109)=74.016+0.905x
将x=72.52351带入以上方程,得出结果如下:
y(101)=2177.353705,y(104)=1882.199453,y
(2)=156.1612533,y(47)=172.6541121,y(94)=154.2091662,y(129)=120.8901522,y(63)=3558.759496,
y(109)=139.6497766
从而筛选出全省鲜猪肉需求达到峰值时需求达到前5位和后5位的城镇,如下表:
城镇
需求量(公斤)
84
104.9897
30
107.5695
74
109.4933
102
112.2618
129
120.8901522
表4前五位城镇表5后五位城镇
城镇
需求量(公斤)
120
8634.4912
31
4484.374
63
3558.759496
106
3438.241
101
2177.353705
即全省鲜猪肉需求达到峰值时需求达到前5位的城镇是120、31、63、106、101,后5位的城镇是84、30、74、102、129。
问题三
1、问题重述
已知城镇对公司产品每日需求预测数据,公司未来各城镇每日需求预测数据.但公司产品的需求量与销售量不完全一致,若在当地(同一城镇)购买,则这一部分需求量与销售量相同,若在不足10公里的其他城镇的销售连锁店购买,则这一部分需求量只能实现一半,而在超过10公里的其他城镇的销售连锁店购买,销售量只能达到需求量的三成。
公司决定在各城镇增设销售连锁店,且原有的23家销售连锁店销售能力可在现有销售量的基础上上浮20%,增设的销售连锁店销售能力控制在每日20吨至40吨内,并且要求增设的销售连锁店的销售量必须达到销售能力的下限。
同一城镇可设立多个销售连锁店。
要求规划增设销售连锁店方案,使全省销售量达到最大。
2、问题分析
由题意知,本题需决定连锁店的增建方案,以使全省销售量最大。
那么就需要解决增建多少连锁店,建在哪里的问题。
这是一个优化问题,如果用lingo做规划可以解决,但是题中的数据比较大,难以导入,关联性极大,程序也很繁杂。
所以,我们将采用先分析,再筛选的方法来解此题。
由题意知,在超过10公里以外的城镇购买销售量是原来的三成,反过来说,如果我们从已有的21个已经有连锁店的城镇入手,在距他们10公里以外的城镇(这些城镇的猪肉都由离他们最近的连锁店提供)建立新的连锁店,那么建了新连锁店的城镇的销售量将增加七成,相比在10公里内建新连锁店效果更好。
此外,为了达到销售量最大和单个连锁店销售能力下限,在超过10公里的基础上筛选出日销售量比较大的城镇和已有连锁店的城镇作为新建连锁店的试点,再通过由筛选模型建立起来的程序,用matlab进行筛选,最终得到连锁店的个数和选址。
由于在选择试点的个数时会有所不同也会有个人倾向,所以,我们得到的只是与最大值比较相近的结果。
3、模型假设
(1)假设购买者只去距离他们最近的连锁店购买猪肉,不去其他连锁店购买。
即各连锁店对其他连锁店所在城镇的销售量无影响。
(2)假设买不到猪肉的购买者去个体户或者其他公司购买。
即在计算最大销售量时,若销售能力小于需求量时,按最大销售能力计算,反之,最大销售量按需求量计算。
4、模型的建立与解答
为了规划新增连锁店的个数和地址,以达到全省最大销售量。
我们假设各城镇都去离他们最近的连锁店购买猪肉,以此为标准,我们将所有的城镇分成21(有两个城镇原来有2家连锁店)片,每一片中的城镇的猪肉都由这一片中的连锁店提供。
然后,将题中所给的每个城镇的猪肉需求量进行排序,并从中挑出除去已存在连锁店的城镇后需求量排在前20位的城镇,然后再按片区从中挑出距离已有连锁店超过10公里的城镇和已有连锁店的城镇,作为建立新连锁店的试点,再用按以下筛选模型建立的程序来筛选出满足销售量大于单个连锁店的销售能力下限(20吨)或者满足大于原有连锁店销售能力的1.2倍加上20吨的城镇。
最后,通过比较各种兴建方式的销售量大小来确定建立新连锁店的城镇。
而新连锁店的个数将用新建连锁店后该城镇的销售量减去原有连锁店的销售能力的1.2倍(原来没有连锁店的不需要减),再除以20取整便可。
筛选过程如下:
首先,找出除去已存在连锁店的城镇后需求量排在前20位的城镇
表6筛选前的城镇表7筛选后的城镇
城镇号
需求量(公斤)
城镇120
87236
城镇31
45123
城镇63
39125
城镇106
34561
城镇101
21299
城镇68
20574
城镇150
20426
城镇121
20154
城镇104
19704
城镇100
18324
城镇79
17634
城镇110
17545
城镇56
16947
城镇154
16916
城镇76
16836
城镇116
16255
城镇12
16187
城镇148
15576
城镇49
15370
城镇46
15316
城镇50
15260
城镇33
15042
城镇53
14728
城镇54
14661
城镇128
14061
城镇号
需求量(公斤)
城镇101
21299
城镇68
20574
城镇150
20426
城镇121
20154
城镇104
19704
城镇100
18324
城镇110
17545
城镇56
16947
城镇154
16916
城镇76
16836
城镇116
16255
城镇12
16187
城镇148
15576
城镇49
15370
城镇46
15316
城镇50
15260
城镇33
15042
城镇53
14728
城镇54
14661
城镇128
14061
然后由第2小问的结论,按片区挑选出距离已有的连锁店超过10公里的城镇。
表8
原始连锁店所在城镇编号(片区)
新建连锁店所在城镇编号
1
101
79
68
145
150
120
121
106
104
1
100
120
110
42
56
16
154
65
76
表9试点所在城镇编号
120
106
63
31
141
150
24
145
22
16
123
1
36
27
34
42
76
100
101
104
110
79
154
65
56
11
68
10
64
94
121
注:
虽然121和104号城镇离本片区的原有连锁店不足10公里,不过,由于此距离将近10公里,且其需求量比较大,所以,在这里我们暂时把他们放在试点里,等下面一步和最终最大销售量比较时进行筛选和去留决定。
(事实上,经检验,这两个点是比较好的点)
接下来,用matlab筛选出符合要求的试点,并作下一步筛选
筛选模型如下:
设:
有n个试点,作为新建连锁店的第i个试点所在城镇的坐标为(Xi,Yi),第k个试点的坐标为(Xk,Yk),则剩余的154-n个城镇的第j个城镇坐标设为(Xj,Yj),第j个城镇的需求量为Nj,各试点所在城镇的需求量为Sk,已有的连锁店销售能力为L。
则通过比较其他其他城镇于试点之间的距离,可知其他城镇中的一个与哪个连锁店最近,据此将所有的城镇分成n片,等式如下:
Min((Xj-Xi)^2+(Yj-Yi)^2)=(Xj-Xk)^2+(Yj-Yk)^2,i=1,2,3……,n
若k=i,则第j个城镇被分在第k个试点所在的一片中,
即第j个城镇的购买者在购买该公司的产品时只去第k个试点购买;
若此时,(Xj-Xk)^2+(Yj-Yk)^2>100,
则第j个城镇在第k个试点的购买量为Bj=0.3*Nj;
若(Xj-Xk)^2+(Yj-Yk)^2>100,
则第j个城镇在第k个试点的购买量为Bj=0.5*Nj
假设有1—a号城镇都被分在第k个试点,则第k个试点所在城镇的销售量Wk可表示成如下等式:
若第k个试点建在已有连锁店的城镇,
则,若Wk>1.2*L+20000,则该试点可作为可考虑点,否则此点舍去;
若第k个试点所在的城镇以前没有连锁店,
则,若Wk>20000,则该试点可作为可考虑点,否则此点舍去。
matlab的计算结果显示如下:
我们取出了31个试点,其中21个已有连锁店,10个没有连锁店,31个片区内的各城镇编号如下:
12013119
106178991107127128129
637515253596162
313233
14115130131132
1032
65678
79668081
1
36123537
271826282930
34
424041434445
9428384858687939596
111923
24325
145133140142143144146147
222021
16
123124125
64
56946474849545557
6885067697071727382
76474757788
100979899
101102
1049092103105
1105145860108109111112113114115116117118126
1213839122
150134135136137138139148149151
154152153
此结果第一列为试点所在城镇编号,第二列为应该新建连锁店的个数,第三列为该城的需求量,第四列为原有的连锁店的销售能力的1.2倍
12009077673500
10604813145867.6
6305623560033.6
3114984328736.4
14101760511109.6
100995610177.2
650851218684
7902412446510.8
101280817692.8
3601121313803.6
2702500511118
3401355541.2
4201183111386.8
9401721215327.6
110148537323.6
240100903901.2
14501730447583.6
22095207650
160137817739.6
1230765221697.2
64055202208
561322870
682412240
761268660
1001236340
1011242490
1041279640
1102488150
1211266440
1501387160
1541204560
表10所有(新建的和已有的)连锁店所在城镇实际销售量
城镇编号
120
106
63
31
141
10
65
79
销售量(公斤)
73500
45867.6
56235
49843
11109.6
9956
8512
24124
城镇编号
68
76
100
101
104
110
121
150
销售量(公斤)
41224
26866
23634
24249
27964
48815
26644
38716
城镇编号
11
24
145
22
56
24
42
94
销售量(公斤)
7323.6
3901.2
17304
7650
32287
3901.2
11386.8
15327.6
城镇编号
36
64
16
123
34
1
154
27
销售量(公斤)
11213
2208
1378
7652
541.2
12808
20456
11118
销售量总和为699813.6公斤
其结果为在31号城镇再建一个连锁店
在56,76,100,101,104,121,150,154号
城镇各建一个连锁店,
在68,110号城镇各建2个连锁店
经检验
去掉121号和104号城镇后其总销售量
约为620000左右,
小于没去掉他们时的销售量总和,
所以连锁店的规划情况应该取
没有去掉121和104号城镇的情况。
没有去掉121和104号城镇的情况
其结果将在附录里给出。
第四题
1、问题重述
在增设销售连锁店的基础上,公司决定增加生产基地,地址设立在城镇所在地,每日产品生产必须达到250吨以上,在生产与销售各环节不能有产品积压。
请你为公司设计生产基地增设方案,使运输成本最低。
2、问题分析
要求运输成本最小,由于各连锁店的需求一定,所以成本只与路线有关,亦即也是最短路问题。
所以便可在除了原来的生场地所在的城镇外的城镇中任意设置生产场地。
然后求现有的生产场地到各自覆盖的连锁店之间的最短路,如:
增设i城镇为新的生产基地,则共有i,120,63三个生产场地,然后求出此三者各自所覆盖的连锁店,求出总的最短路以及最小运输成本,同时判断是否符合i日产量在250吨以上。
如此,求出除去120,63之外的所有城镇最小运输费用,再对152个数据进行比较,求出其中运费最少的并且满足约束条件的一组,便是问题的解。
3、模型假设
(1)一个连锁店的供给全由同一家生产场地提供,亦即由距离最近的生产场地供给,这样便可以达到运费最小。
(2)第三题中新增的连锁店以及各连锁店的需求皆为真实需求,即需求量与销售量相同且有效。
(3)新增的生产地日生产250吨以上,影响原来的生产场地日产量的降低,但降低的最小标准没有要求,即对于原来的生产场地的日销量没有约束。
4、符号说明
D(i,j):
两点之间的最短路。
i:
新设的生产场地。
j:
连锁店。
C(i,j):
在i,63,120三个产地中到j连锁店的最短路。
d(1,j):
j地连锁店的需求量。
y(i,1):
新增i产地后的最小总费用。
5、模型的建立
首先,除了120与63号城镇,对于任何一个城镇i假设在此设立生产基地,则要确定它所提供供给连锁店,同时也要确定