建模案例:最佳灾情巡视路线
这里介绍1998年全国大学生数学模型竞赛B题中的两个问题.
一、问 题
今年夏天某县遭受水灾.为考察灾情、组织自救,县领导决定,带领有关部门负责人到全县各乡(镇)、村巡视.巡视路线指从县政府所在地出发,走遍各乡(镇)、村,又回到县政府所在地的路线.
若分三组(路)巡视,试设计总路程最短且各组尽可能均衡的路线.
假定巡视人员在各乡(镇)停留时间T=2h,在各村停留时间t=1h,汽车行驶速度V=35km/h.要在24h内完成巡视,至少应分几组;给出这种分组下最佳的巡视路线.
乡镇、村的公路网示意图见图1.
图1
假 设
1.汽车在路上的速度总是一定,不会出现抛锚等现象;
2.巡视当中,在每个乡镇、村的停留时间一定,不会出现特殊情况而延误时间;
3.每个小组的汽车行驶速度完全一样;
4.分组后,各小组只能走自己区内的路,不能走其他小组的路(除公共路外).
三、模 型 的 建 立 与 求 解
将公路网图中,每个乡(镇)或村看作图中的一个节点,各乡(镇)、村之间的公路看作图中对应节点间的边,各条公路的长度(或行驶时间)看作对应边上的权,所给公路网就转化为加权网络图,问题就转化为在给定的加权网络图中寻找从给定点O出发,行遍所有顶点至少一次再回到O点,使得总权(路程或时间)最小,此即最佳推销员回路问题.
在加权图G中求最佳推销员回路问题是NP—完全问题,我们采用一种近似算法求出该问题的一个近似最优解,来代替最优解,算法如下:
算法一 求加权图G(V,E)的最佳推销员回路的近似算法:
用图论软件包求出G中任意两个顶点间的最短路,构造出完备图,,;
输入图的一个初始H圈;
用对角线完全算法产生一个初始H圈;
随机搜索出中若干个H圈,例如2000个;
对第2、3、4步所得的每个H圈,用二边逐次修正法进行优化,得到近似最佳H圈;
在第5步求出的所有H圈中,找出权最小的一个,此即要找的最佳H圈的近似解.
由于二边逐次修正法的结果与初始圈有关,故本算法第2、3、4步分别用三种方法产生初始圈,以保证能得到较优的计算结果.
问题一 若分为3组巡视,设计总路程最短且各组尽可能均衡的巡视路线.
此问题是多个推销员的最佳推销员回路问题.即在加权图G中求顶点集V的划分,将G分成n个生成子图,使得
(1)顶点,i=1,2,3,…,n;
(2) ;
(3),其中为的导出子图中的最佳推销员回路,为的权,i,j=1,2,3,…,n;
(4)取最小.
定义 称为该分组的实际均衡度.为最大容许均衡度,
显然,越小,说明分组的均衡性越好.取定一个后,与满足条件(3)的分组是一个均衡分组.条件(4)表示总巡视路线最短.
此问题包含两方面:第一,对顶点分组;第二,在每组中求最佳推销员回路,即为单个推销员的最佳推销员问题.
由于单个推销员的最佳推销员回路问题不存在多项式时间内的精确算法,故多个推销员的问题也不存在多项式时间内的精确算法.而图中节点数较多,为53个,我们只能去寻求一种较合理的划分准则,对图1进行粗步划分后,求出各部分近似最佳推销员回路的权,再进一步调整,使得各部分满足均衡性条件(3).
从O点出发去其他点,要使路程较小应尽量走O点到该点的最短路.故用图论软件包求出O点到其余顶点的最短路,这些最短路构成一棵以O为树根的树,将从O点出发的树枝称为干枝,见图2,从图中可以看出,从O点出发到其它点共有6条干枝,他们的名称分别为①,②,③,④,⑤,⑥.
根据实际工作的经验及上述分析,在分组时应遵从以下准则:
准则一:尽量使同一干枝及其分枝上的点分在同一组;
准则二:应将相邻的干枝上的点分在同一组;
准则三:尽量将长的干枝与短的干枝分在同一组.
由上述分组准则,我们找到两种分组形式如下:
分组一:(⑥,①),(②,③),(⑤,④);
分组二:(①,②),(③,④),(⑤,⑥).
显然分组一的方法极不均衡,故考虑分组二.
对分组二中每组顶点的生成子图,用算法一求出近似最优解及相应的巡视路线.使用算法一时,在每个子图所构造的完备图中,取一个尽量包含图2中树上的边的H圈作为其第2步输入的初始圈.
分组二的近似解见表1,
表1(单位:km)
小组名称
路 线
总路线长度
路线的总长度
I
O-P-28-27-26-N-24-23-22-17-16-I-15-I-18-K-21-20-25-M-O
191.1
558.5
II
O-2-5-6-L-19-J-11-G-13-14-H-12-F-10-F-9-E-7-E
-8-4-D-3-C
241.9
III
O-R-29-Q-30-32-31-33-35-34-A-B-1-O
125.5
因为该分组的均衡度=54.2%
所以此分法的均衡性很差.
为改善均衡性,将第Ⅱ组中的顶点C,2,3,D,4分给第Ⅲ组(顶点2为这两组的公共点),重新分组后的近似最优解见表2.
表2(单位:km)
编号
路 线
路线
长度
路线总长度
I
O—P—28—27—26—N—24—23—22—17—16—I—15—I—18—K—21—20—25—M—O
191.1
599.8
II
O—2—5—6—7—E—8—E—9—F—10—F—12—H—14—13—G—11—J—19—L—6—5—2—O
216.4
III
O—R—29—Q—30—32—31—33—35—34—A—1—B—C—3—D—4—D—3—2—O
192.3
因该分组的均衡度11.69%
所以这种分法的均衡性较好.
问题二 当巡视人员在各乡(镇)、村的停留时间一定,汽车的行驶速度一定,要在24h内完成巡视,至少要分几组及最佳的巡视路线.
由于T=2h,t=1h,V=35km/h,需访问的乡镇共有17个,村共有35个.计算出在乡(镇)及村的总停留时间为172h+35h=69h,要在24h内完成巡回,若不考虑行走时间,有, (i为分的组数).得i最小为4,故至少要分4组.
由于该网络的乡(镇)、村分布较为均匀,故有可能找出停留时间尽量均衡的分组,当分4组时各组停留时间大约为h,则每组分配在路途上的时间大约为24h-17.25h=6.75h.而前面讨论过,分三组时有个总路程599.8km的巡视路线,分4组时的总路程不会比599.8km大太多,不妨以599.8km来计算.路上时间约为h,若平均分配给4个组,每个组约需h=4.25h〈6.75h,故分成4组是可能办到的.
现在尝试将顶点分为4组.分组的原则:除遵从前面准则一、二、三外,还应遵从以下准则:
准则四:尽量使各组的停留时间相等.
用上述原则在图2上将图分为4组,同时计算各组的停留时间,然后用算法一算出各组的近似最佳推销员巡回,得出路线长度及行走时间,从而得出完成巡视的近似最佳时间.用算法一计算时,初始圈的输入与分3组时同样处理.
这4组的近似最优解见表3.
表3(路程单位:km;时间单位:h)
组名
路 线
路线总长度
停留时间
行走时间
完成巡视的总时间
I
O—2—5—6—7—E—8—E—11—G—12—H—12—F—10—F—9—E—7—6—5—2—O
195.8
17
5.59
22.59
II
O—R—29—Q—30—Q—28—27—26—N—24—23—22—17—16—17—K—22—23—N—26—P—O
199.2
16
5.69
21.69
III
O—M—25—20—21—K—18—I—15—14—13—J—19—L—6—M—O
159.1
18
4.54
22.54
IV
O—R—A—33—31—32—35—34—B—1—C—3—D—4—D—3—2—O
166
18
4.74
22.74
上表中符号说明:加有底纹的表示前面经过并停留过,此次只经过不需停留;加框的表示此点只经过不停留.
该分组实际均衡度=4.62%
可以看出,表3分组的均衡度很好,且完全满足24h完成巡视的要求.
这里介绍1998年全国大学生数学模型竞赛B题中的两个问题.
一、问 题
今年夏天某县遭受水灾.为考察灾情、组织自救,县领导决定,带领有关部门负责人到全县各乡(镇)、村巡视.巡视路线指从县政府所在地出发,走遍各乡(镇)、村,又回到县政府所在地的路线.
若分三组(路)巡视,试设计总路程最短且各组尽可能均衡的路线.
假定巡视人员在各乡(镇)停留时间T=2h,在各村停留时间t=1h,汽车行驶速度V=35km/h.要在24h内完成巡视,至少应分几组;给出这种分组下最佳的巡视路线.
乡镇、村的公路网示意图见图1.
图1
假 设
1.汽车在路上的速度总是一定,不会出现抛锚等现象;
2.巡视当中,在每个乡镇、村的停留时间一定,不会出现特殊情况而延误时间;
3.每个小组的汽车行驶速度完全一样;
4.分组后,各小组只能走自己区内的路,不能走其他小组的路(除公共路外).
三、模 型 的 建 立 与 求 解
将公路网图中,每个乡(镇)或村看作图中的一个节点,各乡(镇)、村之间的公路看作图中对应节点间的边,各条公路的长度(或行驶时间)看作对应边上的权,所给公路网就转化为加权网络图,问题就转化为在给定的加权网络图中寻找从给定点O出发,行遍所有顶点至少一次再回到O点,使得总权(路程或时间)最小,此即最佳推销员回路问题.
在加权图G中求最佳推销员回路问题是NP—完全问题,我们采用一种近似算法求出该问题的一个近似最优解,来代替最优解,算法如下:
算法一 求加权图G(V,E)的最佳推销员回路的近似算法:
用图论软件包求出G中任意两个顶点间的最短路,构造出完备图,,;
输入图的一个初始H圈;
用对角线完全算法产生一个初始H圈;
随机搜索出中若干个H圈,例如2000个;
对第2、3、4步所得的每个H圈,用二边逐次修正法进行优化,得到近似最佳H圈;
在第5步求出的所有H圈中,找出权最小的一个,此即要找的最佳H圈的近似解.
由于二边逐次修正法的结果与初始圈有关,故本算法第2、3、4步分别用三种方法产生初始圈,以保证能得到较优的计算结果.
问题一 若分为3组巡视,设计总路程最短且各组尽可能均衡的巡视路线.
此问题是多个推销员的最佳推销员回路问题.即在加权图G中求顶点集V的划分,将G分成n个生成子图,使得
(1)顶点,i=1,2,3,…,n;
(2) ;
(3),其中为的导出子图中的最佳推销员回路,为的权,i,j=1,2,3,…,n;
(4)取最小.
定义 称为该分组的实际均衡度.为最大容许均衡度,
显然,越小,说明分组的均衡性越好.取定一个后,与满足条件(3)的分组是一个均衡分组.条件(4)表示总巡视路线最短.
此问题包含两方面:第一,对顶点分组;第二,在每组中求最佳推销员回路,即为单个推销员的最佳推销员问题.
由于单个推销员的最佳推销员回路问题不存在多项式时间内的精确算法,故多个推销员的问题也不存在多项式时间内的精确算法.而图中节点数较多,为53个,我们只能去寻求一种较合理的划分准则,对图1进行粗步划分后,求出各部分近似最佳推销员回路的权,再进一步调整,使得各部分满足均衡性条件(3).
从O点出发去其他点,要使路程较小应尽量走O点到该点的最短路.故用图论软件包求出O点到其余顶点的最短路,这些最短路构成一棵以O为树根的树,将从O点出发的树枝称为干枝,见图2,从图中可以看出,从O点出发到其它点共有6条干枝,他们的名称分别为①,②,③,④,⑤,⑥.
根据实际工作的经验及上述分析,在分组时应遵从以下准则:
准则一:尽量使同一干枝及其分枝上的点分在同一组;
准则二:应将相邻的干枝上的点分在同一组;
准则三:尽量将长的干枝与短的干枝分在同一组.
由上述分组准则,我们找到两种分组形式如下:
分组一:(⑥,①),(②,③),(⑤,④);
分组二:(①,②),(③,④),(⑤,⑥).
显然分组一的方法极不均衡,故考虑分组二.
对分组二中每组顶点的生成子图,用算法一求出近似最优解及相应的巡视路线.使用算法一时,在每个子图所构造的完备图中,取一个尽量包含图2中树上的边的H圈作为其第2步输入的初始圈.
分组二的近似解见表1,
表1(单位:km)
小组名称
路 线
总路线长度
路线的总长度
I
O-P-28-27-26-N-24-23-22-17-16-I-15-I-18-K-21-20-25-M-O
191.1
558.5
II
O-2-5-6-L-19-J-11-G-13-14-H-12-F-10-F-9-E-7-E
-8-4-D-3-C
241.9
III
O-R-29-Q-30-32-31-33-35-34-A-B-1-O
125.5
因为该分组的均衡度=54.2%
所以此分法的均衡性很差.
为改善均衡性,将第Ⅱ组中的顶点C,2,3,D,4分给第Ⅲ组(顶点2为这两组的公共点),重新分组后的近似最优解见表2.
表2(单位:km)
编号
路 线
路线
长度
路线总长度
I
O—P—28—27—26—N—24—23—22—17—16—I—15—I—18—K—21—20—25—M—O
191.1
599.8
II
O—2—5—6—7—E—8—E—9—F—10—F—12—H—14—13—G—11—J—19—L—6—5—2—O
216.4
III
O—R—29—Q—30—32—31—33—35—34—A—1—B—C—3—D—4—D—3—2—O
192.3
因该分组的均衡度11.69%
所以这种分法的均衡性较好.
问题二 当巡视人员在各乡(镇)、村的停留时间一定,汽车的行驶速度一定,要在24h内完成巡视,至少要分几组及最佳的巡视路线.
由于T=2h,t=1h,V=35km/h,需访问的乡镇共有17个,村共有35个.计算出在乡(镇)及村的总停留时间为172h+35h=69h,要在24h内完成巡回,若不考虑行走时间,有, (i为分的组数).得i最小为4,故至少要分4组.
由于该网络的乡(镇)、村分布较为均匀,故有可能找出停留时间尽量均衡的分组,当分4组时各组停留时间大约为h,则每组分配在路途上的时间大约为24h-17.25h=6.75h.而前面讨论过,分三组时有个总路程599.8km的巡视路线,分4组时的总路程不会比599.8km大太多,不妨以599.8km来计算.路上时间约为h,若平均分配给4个组,每个组约需h=4.25h〈6.75h,故分成4组是可能办到的.
现在尝试将顶点分为4组.分组的原则:除遵从前面准则一、二、三外,还应遵从以下准则:
准则四:尽量使各组的停留时间相等.
用上述原则在图2上将图分为4组,同时计算各组的停留时间,然后用算法一算出各组的近似最佳推销员巡回,得出路线长度及行走时间,从而得出完成巡视的近似最佳时间.用算法一计算时,初始圈的输入与分3组时同样处理.
这4组的近似最优解见表3.
表3(路程单位:km;时间单位:h)
组名
路 线
路线总长度
停留时间
行走时间
完成巡视的总时间
I
O—2—5—6—7—E—8—E—11—G—12—H—12—F—10—F—9—E—7—6—5—2—O
195.8
17
5.59
22.59
II
O—R—29—Q—30—Q—28—27—26—N—24—23—22—17—16—17—K—22—23—N—26—P—O
199.2
16
5.69
21.69
III
O—M—25—20—21—K—18—I—15—14—13—J—19—L—6—M—O
159.1
18
4.54
22.54
IV
O—R—A—33—31—32—35—34—B—1—C—3—D—4—D—3—2—O
166
18
4.74
22.74
上表中符号说明:加有底纹的表示前面经过并停留过,此次只经过不需停留;加框的表示此点只经过不停留.
该分组实际均衡度=4.62%
可以看出,表3分组的均衡度很好,且完全满足24h完成巡视的要求.