点 路程 起点 终点 路程 起点 终点 路程 起点 终点 路程 起点 终点 路程 起点 终点 路程 起点 终点 路程 起点 53 93.3 15 8 15 11 67 15 18 58 80 15 25 46 52 15 42 80 16 18 80 16 20 58 68 83.3 16 23 17 14 60 93.34 17 23 52 18 15 50 18 16 63 93.3 28 125 65 93.3 58 125 18 18 18 19 19 19 20 20 20 20 21 22 19 22 22 20 80 26 19 28 28 42 23 45 22 21 45 26 24 30 29 4 25 50 23 14 50 26 25 18 29 28 60 33 37 38 39 18 22 23 16 65 26 27 22 72 23 17 52 27 7 26 28 23 18 45 27 9 40 31 9 52 35 32 13 68 24 20 50 27 11 16 58 24 26 22 80 25 11 24 50 25 15 22 45 25 18 19 72 25 26 18 28 29 60 32 39 62 38 32 68 42 30 66.7 27 13 27 26 46 50.01 27 40 28 8 70 117 30 4 70 34 1 45 39 30 39 15 34 32 25 39 80 83.3 31 32 50 35 39 32 31 50 36 3 50 40 70 53.33 83.33 32 34 25 36 33 40 40 32 35 98 37 33 38 41 32 38 68 37 38 35 41 42 66.7 33 1 60 38 33 36 40 39 98 170 40 6 40 终点 路程 起点 终点 路程 37 5 30 15 32 35 5 6 30 9 27 6 48 42 26 15 28 35 142 42 28 42 62 170 63.3 28 53.3 42 41 26 2、关于问题(2)的模型建立和求解:
由于洪水是难以预期的,有一定的随机性。所以为了有效的防御,应该当在最短的时间保证各储备库和仓库达到预测库存,也就是说在储备库和仓库未达到预测库存之前以时间为第一目标函数建立模型。而当他们都达到预测库存之后,各地区都有充足的防洪能力了,所以我们可以以经济为第一目标函数建立模型。
首先要对数据进行处理,把高级公路长度按运费折算成普通公路的等效长度。例如:企业1(点24)到储备库2(点30)之间的一条线路:24-26-25-11-6-4-30中分别从左至右的路程分别为30、18、40、32、30、70,总路程为220。但其中40和32是高级公路上的路程,由题可知高级公路单价为2元,普通公路为1.2。可以把这两个路程转化为普通公路路程(40+32)*2/1.2=120 故这条线路上的总路程268。 以此类推用这种方法就可以让路程等效。
我们可以利用动态规划的顺序解法求解个两点间的路程最短的问题,以及最优路线。 我们以求解企业1—仓库2的最短路程为例: 局部简化线路图如图所示:(注:粗线表示高级公路)
19 22 23 45
18 30 28 26 18 30 24 25 (1)、当k=1时, f1(s1)=f1(24)=0, (2)、当k=2时, f2(26)=30, (3)、当k=3时,
f3(19) =f2(26)?d3(26,19)?30?28?58 f3(25) =f2(26)?d3(26,25)?30?18?48
7
(4)、当k=4时,
?f3(19)?d4(19,18)??58?22?80?f4(18)?min??min????80?48?30*2/1.2?98??f3(25)?d4(25,18)?
(5)、当k=5时,
f5(23)=f4(18)?d5(18,23)?80?45?125
即最短路是24-26-19-18-23 路程是125
以此类推可以求得各个企业到各仓库的等效路程最短的路线。因为首先满足储备库,故首先考虑三个企业向储备库的调运,其次由于仓库3和仓库5现有库存超过预测库存,所以也要考虑仓库3和仓库5向储备库的调运。
表2:
起点 目的地 最优路线 储备库1 24-26-27 储备库2 24-26-25-11-6-4-30 仓库1 仓库2 企业1 仓库3 仓库4 仓库5 仓库6 仓库7 仓库8 24-26-25-15-42-28 24-26-19-18-23 24-26-27-9-31-32-35 24-26-27-9-31 24-20-22 24-26-27-9-2-3-36 24-26-25-15-42-28-29 24-26-27-9-31-32-38 路程 100 268 164 125 340 192 130 287 224 310 131.3 148 68 157 306 158 206 253 128 276 161 152 298.7 332 123 75 337 储备库1 41-6-40-27 储备库2 41-6-4-30 仓库1 仓库2 企业2 仓库3 仓库4 仓库5 仓库6 仓库7 仓库8 41-42-28 41-42-15-18-23 41-6-40-9-31-32-35 41-6-40-9-31 41-42-15-18-19-22 41-6-40-9-2-3-36 41-42-28-29 41-6-40-9-31-32-38 储备库1 34-32-31-9-27 储备库2 34-32-39-30 仓库1 企业3 仓库2 仓库3 仓库4 仓库5
34-32-39-30-4-29-28 34-32-31-9-27-26-19-18-23 34-32-35 34-32-31 34-32-31-9-27-21-19-22 8
仓库6 仓库7 仓库8 34-1-33-36 34-32-39-30-4-29 34-32-38 145 238.67 93 240 175 371.67 405 148 410 268 311.67 166 170 338 222 139 410 262 357 282 380 储备库1 35-32-31-9-27 储备库2 35-32-39-30 仓库1 仓库2 仓库3 仓库4 仓库5 仓库6 仓库7 仓库8 35-32-39-30-4-29-28 35-32-31-9-27-26-19-18-23 35-32-31 35-32-31-9-27-26-19-22 35-32-34-1-33-36 35-32-39-30-4-29 35-32-38 储备库1 22-19-26-27 储备库2 22-19-26-25-11-6-4-30 仓库1 仓库2 仓库5 仓库3 仓库4 仓库6 仓库7 仓库8
22-19-18-15-42-28 22-19-18-23 22-19-26-27-9-31-32-35 22-19-26-27-9-31 22-19-26-27-9-2-3-36 22-19-18-15-42-28-29 22-19-26-27-9-31-32-38 第一阶段:我们使储备库达到预测库存,由企业和超过预测库存的仓库3、5向储备库提供。此阶段以总调运时间最小为目标,但我们前面已经假设了把高级公路和普通公路路程等效,速度都是相等的恒定值。故要求总运调时间也就是总路程最短,且满足再最短路上调运量最大。 模型1的建立: 目标函数:
总的调运时间最小,
min???lijyiji?1j?152
约束条件:
各企业(包括仓库3、5)向外运输量不大于现有的库存量,
?yij?xi ?i=1、、23、、45?j=12
使储备库要达到预测库存,
5?yi=1ij?zj ?j?1、2?
9
用LINGO求解,得到第一阶段各企业向各储备库的具体分配量如下: 表-3:
分配量 可运输量 储备库1 储备库2
企业1 600 600 0
企业2 360 310 50
企业3 500 0 500 仓库3 150 0 150 仓库5 400 90 0
第二阶段:使其他各个仓库达到预测库存。通过分析第一阶段的结果,发现三个企业现存量已全部运完,仓库3刚好达到预测库存,而仓库5超过预测库存310。通过公式(时间?预测库存总量?现有库存总量)得到各库存都达到预测值时间为7.44天,即
三个企业的日产量和至少需要8天。然后我们把8天后各企业总产量处理为其在8天可调运的总量,建立以时间最少为目标的模型,得到每个企业向各仓库8天的总分配量。 模型2的建立: 目标函数:
min???lijyij
i?1j?148约束条件:
各企业(包括仓库5)向外运输量不大于现有的库存量,
?yij?xi ?i=1、2、3、4?j=18
被运输的各仓库要达到预备库存,
4?yi=1ij?zj ?j=1、、23、、45、6、7、8?
用LINGO求解,得到第二阶段各企业向各仓库的具体分配量如下:
表-4:
分配量 仓库1 仓库2 仓库3 仓库4 仓库5 仓库6 仓库7 仓库8 企业1 企业2 企业3 仓库5
第三阶段:在达到预测库存之后,该地区已经具备了防御一般洪水的能力,为了防御更大的洪水,应该使库存物资尽可能多。
10
170 130 0 0 70 0 0 260 0 0 0 0 80 0 40 0 0 0 0 0 0 0 20 0 0 110 0 0 0 0 100 0