1998年全国大学生数学建模竞赛题目
B题 灾情巡视路线
下图为某县的乡(镇)、村公路网示意图,公路边的数字为该路段的公里数。 今年夏天该县遭受水灾。为考察灾情、组织自救,县领导决定,带领有关部门负责人到全县各乡(镇)、村巡视。巡视路线指从县政府所在地出发,走遍各乡(镇)、村,又回到县政府所在地的路线。
(1) 若分三组(路)巡视,试设计总路程最短且各组尽可能均衡的巡视路线。 (2) 假定巡视人员在各乡(镇)停留时间T=2小时,在各村停留时间t=1小时,汽车行驶速度V=35公里/小时。要在24小时内完成巡视,至少应分几组;给出这种分组下你认为最佳的巡视路线。
(3) 在上述关于T , t和V的假定下,如果巡视人员足够多,完成巡视的最短时间是多少;给出在这种最短时间完成巡视的要求下,你认为最佳的巡视路线。 (4) 若巡视组数已定(如三组),要求尽快完成巡视,讨论T,t和V改变对最佳巡视路线的影响。
灾情巡视路线模型
摘 要
本文将求最佳巡视路线间题转化为图论中求最佳推销员回路(哈米尔顿回路)的问题,并用近似算法去寻求近似最优解。对赋权图中的路径分组问题定义了均衡度用以衡量分组的均衡性。对问题1和问题2先定出几个分的准则进行初步分组,并用近似算法求每一组的近似最佳推销员回路,再根据均衡度进行微调,得到较优的均衡分组和每组的近似最佳推销员回路。对问题1,运用求任意两点间最短路的Floyd算法,得出总路程较短且各组尽可能均衡的路线,各组的巡视路程分别为216.4公里,191.1公里,192.3公里,总路程599.8公里。对问题2,证明了应至少分为4组,并求出了分为4组时各组的较优巡视路线,各组的巡视时间分别为22.74小时,22.59小时,21.69小时,22.54小时。对问题3,求出完成巡视的最短时间为6.43小时,并用较为合理的分组的准则,分成22个组 对问题4,研究了在不影响分组的均衡条件下, T,t,V的允许变化范围,并得出了这三个变量的关系式,并由此对分三个组的情况进行了具体讨论。
关键词:最佳推销员回路问题 哈米尔顿回路 赋权图 近似算法 均衡度
一、问题重述
1998年夏天某县遭受水灾。为考察灾情、组织自救,县领导决定,带领有关部门负责人到全县各17个乡(镇)、35个村巡视。巡视路线指从县政府所在地出发,走遍各乡(镇)、村,又回到县政府所在地的路线。
(1) 若分三组(路)巡视,试设计总路程最短且各组尽可能均衡的巡视路线。 (2) 假定巡视人员在各乡(镇)停留时间T=2小时,在各村停留时间t=1小时,
汽车行驶速度V=35公里/小时。要在24小时内完成巡视,至少应分几组;给出这种分组下你认为最佳的巡视路线。 (3) 在上述关于T , t和V的假定下,如果巡视人员足够多,完成巡视的最短时
间是多少;给出在这种最短时间完成巡视的要求下,你认为最佳的巡视路线。 (4) 若巡视组数已定(如三组),要求尽快完成巡视,讨论T,t和V改变对最佳
巡视路线的影响。
二、问题分析
本题给出了某县的公路网络图,要求的是在不同的条件下,灾情巡视的最分组方案和路线.将每个乡(镇)或村看作一个图的顶点,各乡镇、村之间的公路看作此图对应顶点间的边,各条公路的长度(或行驶时间)看作对应边上的权,所给公路网就转化为加权网络图,问题就转化图论中一类称之为旅行售货员问题,即在给定的加权网络图中寻找从给定点O出发,行遍所有顶点至少一次再回到点O,使得总权(路程或时间)最小.
本题是旅行售货员问题的延伸-多旅行售货员问题.本题所求的分组巡视的最佳路线,也就是m条经过同一点并覆盖所有其他顶点又使边权之和达到最小的闭链(闭迹).如第一问是三个旅行售货员问题,第二问是四个旅行售货员问题. 众所周知,旅行售货员问题属于NP完全问题,即求解没有多项式时间算法.显然本问题更应属于NP完全问题. 有鉴于此,一定要针对问题的实际特点寻找简便方法,想找到解决此类问题的一般方法是不现实的,对于规模较大的问题可使用近似算法来求得近似最优解.
三、模型假设
1.汽车在路上的速度总是一定,不会出现抛锚等现象;忽略天气、故障等因素的影响。
2.巡视当中,在每个乡镇、村的停留时间一定,不会出现特殊情况而延误时间; 3.每个小组的汽车行驶速度完全一样;
4.分组后,各小组只能走自己区内的路,不能走其他小组的路,除公共路外。
四、符号说明
w(i,j)……………………………………..任意两点i,j间的间距。
ei ……………………………………..各点的停留时间,即点权。
V………………………………………汽车行驶速度。
dij ………………………………从任意点i至点j的时间,则dij?w(i,j)/V。五、模型建立与求解
公路网图中,每个乡(镇)或村看作图中的一个节点,各乡(镇)、村之间的公路看作图中对应节点间的边,各条公路的长度(或行驶时间)看作对应边上的权,所给公路网就转化为加权网络图,问题就转化为在给定的加权网络图中寻找从给定点O出发,行遍所有顶点至少一次再回到O点,使得总权(路程或时间)
最小,此即最佳推销员回路问题。
在加权图G中求最佳推销员回路问题是NP—完全问题,我们采用一种近似算法求出该问题的一个近似最优解,来代替最优解,算法如下:
算法一 求加权图G(V,E)的最佳推销员回路的近似算法:
1. 用图论软件包求出G中任意两个顶点间的最短路,构造出完备图
G?(V,E?),??x,y??E?, ??x,y??MindG?x,y?; 2. 输入图G?的一个初始H圈;
3. 用对角线完全算法(见[23])产生一个初始H圈; 4. 随机搜索出G?中若干个H圈,例如2000个;
5. 对第2、3、4步所得的每个H圈,用二边逐次修正法进行优化,得到近似最佳H圈;
6. 在第5步求出的所有H圈中,找出权最小的一个,此即要找的最佳H圈的近似解.
由于二边逐次修正法的结果与初始圈有关,故本算法第2、3、4步分别用三种方法产生初始圈,以保证能得到较优的计算结果。 问题一:
此问题是多个推销员的最佳推销员回路问题.即在加权图G中求顶点集V的划分V1,V2,.......Vn,将G分成n个生成子图G?V1?,G?V2?,......G?Vn?,使得
(1)顶点O?Vi i=1,2,3……n
(2)
Vi?V?G? Ui?1w?Ci??wCjini,j(3)Max??Maxw?Ci???,其中Ci为
Vi的导出子图G?Vi?中的最佳推销
员回路,??Ci?为Ci的权,i,j=1,2,3……n
(4)?w?Ci??Min
i?1n 定义 称??0Maxw?Ci??wCji,jMaxw?Ci?i??为该分组的实际均衡度。?为最大容
许均衡度。
?0越小,?0与?满 显然0??0?1,说明分组的均衡性越好.取定一个?后,足条件(3)的分组是一个均衡分组.条件(4)表示总巡视路线最短。
此问题包含两方面:第一、对顶点分组;第二、在每组中求最佳推销员回路,即为单个推销员的最佳推销员问题。
由于单个推销员的最佳推销员回路问题不存在多项式时间内的精确算法,故多个推销员的问题也不存在多项式时间内的精确算法.而图中节点数较多,为53个,我们只能去寻求一种较合理的划分准则,对图11-9进行粗步划分后,求出各部分的近似最佳推销员回路的权,再进一步进行调整,使得各部分满足均衡性条件(3)。
图11-10 O点到任意点的最短路图(单 从O点出发去其它点,要使路程较小应尽量走O点到该点的最短路.故用图
论软件包求出O点到其余顶点的最短路,这些最短路构成一棵O为树根的树,将从O点出发的树枝称为干枝,见图11-10,从图中可以看出,从O点出发到
其它点共有6条干枝,它们的名称分别为①,②,③,④,⑤,⑥。 根据实际工作的经验及上述分析,在分组时应遵从以下准则: 准则一:尽量使同一干枝上及其分枝上的点分在同一组; 准则二:应将相邻的干枝上的点分在同一组; 准则三:尽量将长的干枝与短的干枝分在同一组. 由上述分组准则,我们找到两种分组形式如下: 分组一:(⑥,①),(②,③),(⑤,④) 分组二:(①,②),(③,④),(⑤,⑥) 显然分组一的方法极不均衡,故考虑分组二。
对分组二中每组顶点的生成子图,用算法一求出近似最优解及相应的巡视路线.使用算法一时,在每个子图所构造的完备图中,取一个尽量包含图11-10中树上的边的H圈作为其第2步输入的初始圈。
分组二的近似解见表1。
表1(单位:公里) 小组 路 线 总路线长路线名称 度 的总长度 I O-P-28-27-26-N-24-23-22-17-16-I-15-I-191.1 558.5 18-K-21-20-25-M-O II O-2-5-6-L-19-J-11-G-13-14-H-12-F-10-F241.9 -9-E-7-E -8-4-D-3-C III O-R-29-Q-30-32-31-33-35-34-A-B-1-O 125.5 因为该分组的均衡度?0=??C1????C2??241.9?125.5?54.2%
Max??Ci?i?1,2,3241.9所以此分法的均衡性很差。
为改善均衡性,将第Ⅱ组中的顶点C,2,3,D,4分给第Ⅲ组(顶点2为这两组的公共点),重新分组后的近似最优解见表2。
表2(单位:公里) 编号 路 线 路线 路线总 长度 长度 I O—P—28—27—26—N—24—23—22—17—191.1 599.8 16—I—15—I—18—K—21—20—25—M—O II O—2—5—6—7—E—8—E—9—F—10—F—216.4 12—H—14—13—G—11—J—19—L—6—5—2—O III O—R—29—Q—30—32—31—33—35—34—192.3 A—1—B—C—3—D—4—D—3—2—O ??C3????C1?216.4?191.1??11.69% 因该分组的均衡度?0?Max??Ci?216.4i?1,2,3所以这种分法的均衡性较好。
问题二
由于T=2小时,t=1小时,V=35公里/小时,需访问的乡镇共有17个,村共有35个.计算出在乡(镇)及村的总停留时间为17?2+35=69小时,要在24小
69时内完成巡回,若不考虑行走时间,有: ?24 (i为分的组数).得i最小为
i4,故至少要分4组。
由于该网络的乡(镇)、村分布较为均匀,故有可能找出停留时间尽量均衡
69?17.25小时,则每组分配在路途上的分组,当分4组时各组停留时间大约为4的时间大约为24-17.25=6.75小时.而前面讨论过,分三组时有个总路程599.8公里的巡视路线,分4组时的总路程不会比599.8公里大太多,不妨以599.8
599.8?17小时,若平均分配给4个组,每个组约需公里来计算.路上时间约为3517=4.25小时〈6.75小时,故分成4组是可能办到的。 4现在尝试将顶点分为4组.分组的原则:除遵从前面准则一、二、三外,还应遵从以下准则:
准则四:尽量使各组的停留时间相等。
用上述原则在图11-10上将图分为4组,同时计算各组的停留时间,然后用算法一算出各组的近似最佳推销员巡回,得出路线长度及行走时间,从而得出完成巡视的近似最佳时间.用算法一计算时,初始圈的输入与分三组时同样处理。
这4组的近似最优解见表3:
表3(路程单位:公里;时间单位:小时) 组名 路 线 路线 停留 行走 完成巡视 总长度 时间 时间 的总时间