哈密顿灾情巡视模型
关于灾情巡视路线的模型
关于灾情巡视路线的模型摘要本文将求最佳巡视路线间题转化为图论中求最佳推销员回路(哈米尔顿回路)的问题,并用近似算法去寻求近似最优解。
对赋权图中的路径分组问题定义了均衡度用以衡量分组的均衡性。
对问题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改变对最佳巡视路线的影响。
1998年全国大学生数学建模竞赛题
1998年全国大学生数学建模竞赛题目B题灾情巡视路线下图为某县的乡(镇)、村公路网示意图,公路边的数字为该路段的公里数。
今年夏天该县遭受水灾。
为考察灾情、组织自救,县领导决定,带领有关部门负责人到全县各乡(镇)、村巡视。
巡视路线指从县政府所在地出发,走遍各乡(镇)、村,又回到县政府所在地的路线。
(1) 若分三组(路)巡视,试设计总路程最短且各组尽可能均衡的巡视路线。
(2) 假定巡视人员在各乡(镇)停留时间T=2小时,在各村停留时间t=1小时,汽车行驶速度V=35公里/小时。
要在24小时内完成巡视,至少应分几组;给出这种分组下你认为最佳的巡视路线。
(3) 在上述关于T , t和V的假定下,如果巡视人员足够多,完成巡视的最短时间是多少;给出在这种最短时间完成巡视的要求下,你认为最佳的巡视路线。
(4) 若巡视组数已定(如三组),要求尽快完成巡视,讨论T,t和V改变对最佳巡视路线的影响。
?灾情巡视路线模型摘要本文将求最佳巡视路线间题转化为图论中求最佳推销员回路(哈米尔顿回路)的问题,并用近似算法去寻求近似最优解。
对赋权图中的路径分组问题定义了均衡度用以衡量分组的均衡性。
对问题1和问题2先定出几个分的准则进行初步分组,并用近似算法求每一组的近似最佳推销员回路,再根据均衡度进行微调,得到较优的均衡分组和每组的近似最佳推销员回路。
对问题1,运用求任意两点间最短路的Floyd算法,得出总路程较短且各组尽可能均衡的路线,各组的巡视路程分别为公里,公里,公里,总路程公里。
对问题2,证明了应至少分为4组,并求出了分为4组时各组的较优巡视路线,各组的巡视时间分别为小时,小时,小时,小时。
对问题3,求出完成巡视的最短时间为小时,并用较为合理的分组的准则,分成22个组对问题4,研究了在不影响分组的均衡条件下, T,t,V的允许变化范围,并得出了这三个变量的关系式,并由此对分三个组的情况进行了具体讨论。
关键词:最佳推销员回路问题哈米尔顿回路赋权图近似算法均衡度一、问题重述1998年夏天某县遭受水灾。
灾情巡视路线的数学模型
灾情巡视路线的数学模型之阿布丰王创作摘要本文是解决灾情巡视路线最佳安插方案的问题.某县领导将带人下乡巡视灾情,筹算从县城动身,视察所有乡、村后返回县城.为确定安插巡视路线,本文将此安插问题转化为旅行售货员问题,建立了四个最优化模型解决问题.对问题一,建立了双目标最优化模型.首先将问题一转化为三个售货员的最佳旅行售货员问题,获得以总路程最短和路程均衡度最小的目标函数,,并用MATLAB软件编程计算,获得最优树图,然后按每块近似有相等总路程的标准将最优树分成三块,最后根据最小环路定理,获得三组巡视路程分别为三组巡视的总路程到达具体巡视路线安插见表1.对问题二,建立了单目标最优化模型.首先根据条件计算可确定至少要分4组巡视,于是可将问题转化为四个售货员的最佳旅行售货员问题,.再根据求最优哈密顿圈的方法,运用LINGO软件编程计算,求出了各组的最佳巡视路线.时间分别为时间均衡度为4.82%,具体巡视路线安插见表2.对问题三,建立了以最少分组数为目标函数的单目标最优化模型.运用问题一中最短路径的Dijkstra算法,运用LINGO软件编程计算,获得从县城到各点的最短距离,再经过计算可获得本问的最短巡视时间为6.43小时.最后采纳就近归组的搜索方法,逐步优化,最终获得最少需要分22组进行巡视,具体的巡视方案见表3.对问题四,建立了单目标优化模型,而且对变量进行讨论.在分最佳巡视路线的影响时,我们通过控制变量的变动,初步的得出了.关键词最优化模型旅行售货员问题最优哈密顿圈1.问题重述今年夏天某县遭受水灾,为考察灾情、组织自救,县领导决定,率领有关部份负责人到全县各乡、村巡视.巡视路线指从县政府所在地动身,走遍各乡(镇)、村,又回到县政府所在地的路线.(路线相关信息见附表1)本文需解决的问题:问题一:若分三组巡视,试设计总路程最短且各组尽可能均衡的巡视路线.小时,在各村停留时间小时,公里/小时.要在24小时内完成巡视,至少应分几组;给出这种分组下你认为最佳的巡视路线.,如果巡视人员足够多,完成巡视的最短时间是几多;给出在这种最短时间完成巡视的要求下,你认为最佳的巡视路线.问题四:若巡视组数已定(如三组),要求尽快完成巡视,对最佳巡视路线的影响.2.模型假设与符号说明2.1模型的假设假设1:巡视人员足够多,汽车足够多;假设2:每组视察路线的路况相同,而且各汽车的平均速度相等;假设3:每个乡(镇)、村均只视察一次,第二次经过时不作停留;假设4:各巡视小组只在各自计划的乡(镇)、村停留,非计划之内的乡(镇)、村可以经过,可是不竭留.假设5:在乡镇的停留时间与在村的停留时间成正比例关系.2.2符号说明3.问题分析本文是领导视察受灾县,并求最佳巡视路线的数学建模问题,题中已给出该县公路的网络图,要求在分歧的题目要求下,获得灾情巡视的最佳分组方案和路线.若将每个乡(镇)或村看作一个图的极点,各乡镇、村之间的公路看作此图对应极点间的边,各条公路的长度(或行驶时间)看作对应边上的权,所给公路网就转化为加权网络图,问题就转化图论中一类称之为旅行售货员的问题,即在给定的加权网络图中寻找从给定点O动身,行遍所有极点至少一次再回到点O,使得总权(路程或时间)最小. 本题所求的分组巡视的最佳路线,也就是m条经过同一点并覆盖所有其他极点又可使边上的权之和到达最小的闭链(闭迹),即最佳旅行售货员问题.针对问题一,要求分三组(路)巡视,获得总路程最短且各组尽可能均衡的巡视路线,可转化为三个售货员的最佳旅行售货员问题.先用MATLAB软件编程计算获得加权网络图的最小生成树,按每块近似有相等总路程的标准将最小生成树分成三块,每一块都转化为一个最佳旅行售货员问题.再确定总路程最短且满足各组尽可能均衡的路线的目标函数,最后对目标函数适当改进,获得最终的双目标最优化模型.针对问题二,由于T=2小时,t=1小时,V=35公里/小时,需访问的乡镇共有17个,村共有35个.计算出在乡(镇),要在24小时内完成巡回,若不考虑行走时间,有:69/k<24(k为分的组数). 得k最小为4,所以至少要分4组.于是将题目转化为四个售货员的最佳旅行售货员问题,再用与问题一类似的方法运用MATLAB软件编程计算求解,即可获得问题二的结果.针对问题三,从起始点O动身,中途不作任何停留,直接沿最小生成树路线巡视到距O最远的点,并仅在此点停留,再返回,获得最短巡视时间.为防止人力浪费,且满足条件,以分组最少的巡视方法为单目标函数建立模型求解.针对问题四,实际上是一个变量讨论问题.在分析乡(镇)停留时间T,村落停留时间t和汽车行驶速度V的改变对最佳巡视路线的影响时,我们通过控制分歧变量的变动,初步的得出了当T与t变动时和V变动时对最佳巡视路线的影响.4.问题一的解答针对问题一,建立模型一4.1模型的建立4.1.1目标函数简直定最年夜容许均衡度.,),).要使总路程最短且各组有尽可能均衡的巡视路线,确定,.然而,要使总路程最短,可,为每个子图中乡(镇)、村的总数,则有:4.1.2综上所述,我们获得问题一的模型4.2模型的求解与分析,用MATLAB软件编程计算获得图的最优树,如下图所示:图一由于在最优树上,各边权接近,要使最优树分解时, 分解结果尽量均衡,则各子图包括的极点就应尽量接近[(35+17)/3]=17个,由此获得最优树的分解原则如下:(1)分解点为O点或尽可能接近O点;(2)分解所得的三个子图包括的极点数尽可能接近17个;(3)尽量使分解所得的子图为连通图;(4)尽量使子图与O的最短路上的点在该子圈内,尽量使各子图内部形成环路.根据以上原则,获得分解后的结果图如下图所示:通过增环、扩环、换枝等方法,对子图内部进行适当调整优化,寻找出最佳巡视回路,运用LINGO软件编程计算获得结果如下表:根据上表数据,说明本题分组路程均衡性很好,满足题目要求的均衡路线,可是总路程稍长,到达了624.6公里. 5.问题二的解答针对问题二,建立模型二5.1模型的建立5.1.1目标函数简直定由问题二的分析知,要满足条件,最少要分成4组进行灾情巡视.)分别为该组停留的乡(镇)和村数,则各组所花费的时间为:此问题与问题一的情况类似,为获得最佳巡视路线图,就要让各组所花费的总时间最小,花费时间最多的组花费的时间也要尽可能小,于是有目标函数如下:类似于问题一,把花费时间最多的组花费的时间尽可能小作为主要判断依据,最终确订单目标函数: 5.1.2确定约束条件 要使总路程最短,,则有: ,,n i ≠(1)每个点只有一条边出去,即11,1,2,n ij j xi n===∑(2)每个点只有一条边进去,即 11,1,2,n ij i x j n===∑(3)除起点和终点外,各边不构成圈 {},1,21,1,2,,ij i j s x s s n s n ∈≤-≤≤-⊂∑5.1.3综上所述,我们获得问题二的模型{}min max k h {}{}11,1,1,2,1,1,2,.1,21,1,2,,min 2/,1,2,3,4()(0,1,,1,2,,,)n ij j nij i ij i j sk k k k k k ijij i j x i nx j n st x s s n s n h m n l V k l w e x x i j n i j ==∈≠⎧==⎪⎪⎪==⎪⎪⎪⎪≤-≤≤-⊂⎨⎪⎪=++=⎪⎪=∈=≠⎪⎪⎪⎩∑∑∑∑5.2模型的求解根据Kruskal 算法原理,用MATLAB 编程计算获得最小生成树(法式见附录),结果如下图所示:此最小生成树分解方法类似于问题一,为获得最佳巡视路线图,乡村数的均衡性和各组时间的均衡性是分组的主要依据,故有平均每个子图中点权和为[(17 2+35)/4]=17,获得分成四组时的最小生成树分解原则如下:(1)分解点为O或尽量接近O;(2)分解后的各子图尽量为连通图;(3)生成的子图容易形成圈或接近圈;(4)使各子图中的点权和尽量接近17;通过增环、扩环、换枝等方法,对子图内部进行适当调整优化,寻找出最佳巡视回路,运用LINGO软件编程计算获得结果如下表:表2 分4组巡视的路线小组路线路程之和时间总路程一O,P,28,27,26,N,24,23,22,17,16,17,K,21,25,M,O 154.3 22.41 661.2 二O,2,5,6,L,19,J,13,14,H,14,15,I,18,K,21,20,25,M,O 184 22.26三O,C,B,34,35,32,30,Q,29,R,31,33,A,R,31,33,A,1,O 136.5 21.90四O,C,3,D,4,8,E,11,G,12,F,10,F,9,E,7,6,5,2,O 186.4 21.33 由上表可发现,第二组和第一组有重叠点:K,21,25,M;第四组和第二组有重叠点:2,5,6;第四组和第三组有重叠点:C.这些点是该组非计划之内的乡(镇)、村,故该组在巡视时,可以经过这些处所,可是不竭留.5.3结果的分析由上表可知,分为4组巡视时,各组巡视时间均在22小时左右,消耗最长时间的小组所消耗的时间为22.41小时<24小时,满足题目条件的要求,证明分为4组进行巡视是可行的.再进行均衡度分析,分析如下:分组的时间均衡度为:由上式可以看出,问题二分组方法的时间均衡度很好.6.问题三的解答针对问题三,建立模型三6.1模型的建立6.1.1目标函数简直定问题一中计算出了从县城到各点的距离(见附表法式一的结果),可以知道离县城最远的乡,距离为77.5公里,因此独自巡视该乡所需时间为.故无论如何分工巡视,完成巡视至少需要6.43小时.故确定以最少分组为目标的目标函数:要在最短时间内完成巡视,即巡视时间小于即是6.43小时,有其中6.1.2综上所述,我们获得问题三的模型6.2模型的求解界说最小生成树的分支上未分组的点中到O依此类推,直至离O O点到点N将,,判别方法如下:(i.同理,. (ii)再在分支上未分组的点中找到离O最远的点,作为下一组,用上述同样的方法判断,直至所有节点分组完.按以上求解过程,逐步求解可得以下共分22组巡视方案:表3 分为22组巡视路线经过,不竭留.6.3结果的分析由以上表格,可以看出各组巡视的时间分歧不年夜,所耗费最年夜时间也未超越题目要求的最小时间6.43小时,故分成22组是可行的.但我们采纳的是就近归组的搜索方法,逐步优化,获得的最少需要分22组,故22组分法是否是最小数组,因论证过程较繁复,此处就不再讨论.7.问题四的解答针对问题四,建立模型四7.1模型的建立7.1.1目标函数简直定由问题四的分析知,本题要讨论参数T,t和V的改变对最佳巡视路线的影响.且要尽快完成巡视,就要求花费时间最多的组花费的时间尽可能小.易知各组花费时间为:7.1.2综上所述,我们获得问题四的模型7.2模型的求解,由于T 和t 的作用完全相仿,所以为简化讨论起见,对任意给定的T 和t ,它是t,V 的减小)而增年夜.于是我们容易获得以下结论:(1)若t (T )增年夜而V 不变,,就要求.可是当T 和t其中m 是全县的乡(镇)数17,n 是全县的村数35.上述要求就成为各组停留在询问乡村的总时间尽可能均匀.用数学式子暗示即为:.固然,在调整各组停留的乡村数使之到达均衡时,自然会给各组的路线及其长度带来影响.这时应当考虑进行适当调整. (2.这种情况下,.那么,和(1)中的结论类似,.固然,数,,这对尽快完成巡视会带来负面影响.所以对具体情况应作具体分析,的修正,对路程较长的组尽量考虑停留较少乡村.8.模型的评价、改进及推广8.1模型的评价优点:模型有较强的理论应用性,对任意给出有各边权值的图G,都能够分为若干个子图,简化问题,便于求解;缺点:模型中只考虑了路程与时间两种因素,未考虑其他影响因素,忽略了现实生活中对模型有很年夜影响的重要指标,如人力资源,巡视经费等.这样模型的实用性就降低了.8.2模型的改进(1)在问题二中,未论证22组是否为最小分组方法,若时间充分,应进行论证,使模型的结果更为可靠.(2)建模时可以考虑更多的因素,让模型实用性更强,比如说,如何让巡视过程中花费最小.8.3模型的推广该问题为旅行售货员问题,可以应用的范围较广,在图形数据处置及简化方面均可运用该模型均作为参考.9.参考资料[1]姜启源,数学建模(第三版)[M],北京:高等教育出书社,2003[2]徐权智,杨晋浩,数学建模[M],北京:高等教育出书社,2004[3]韩中庚,数学建模方法及其应用[M],北京:高等教育出书社,2005[4]宋来忠,数学建模与实验[M],北京:科学出书社,2005[5]田贵超,黎明,韦雪洁.旅行商问题(TSP)的几种求解方法[J].计算机仿真,2006.8(8)10.附录附录一某县的乡(镇)、村公路网示意图,公路边的数字为该路段的公里数题一法式一.县城到O到各点的距离法式及结果model:sets:cities/A35,A34,A33,A32,A31,A30,A29,A28,A27,A26,A25,A24,A23,A22,A21,A2 0,A19,A18,A17,A16,A15,A14,A13,A12,A11,A10,A9,A8,A7,A6,A5,A4,A3,A2,A1, R,Q,P,N,M,L,K,J,I,H,G,F,E,D,C,B,A,O/:fl;roads(cities,cities)/A35,A34 A35,A33 A35,A32 A34,B A34,A A32,A33 A31,A33 A33,A A32,A31 A30,A32 A31,R A30,Q A29,R Q,A29 A29,P A27,A28 Q,A28 A28,P A27,A26 A24,A27 A26,P N,A26 A21,A25 A20,A25 N,A25 A25,MA24,A23 A24,N A22,A23 A23,A21 A23,N A17,A22 A22,K A21,A20 K,A21A19,A20 A20,L A19,L J,A19 A18,K A18,J I,A18 A16,A17 A17,K A16,IA15,A14 A15,I A14,A13 H,A14 A13,J A13,I A13,G H,A12 A12,G A12,F J,A11 G,A11 A11,E A10,F F,A9 A9,E A8,A4 A8,E A7,A6 L,A7 E,A7 A7,D A6,A5M,A6 L,A6 A5,A2 M,A5 D,A5 A4,D A3,A2 D,A3 A3,C A2,O C,A1 B,A1 A,A1A1,O A,R R,O P,O N,M M,O I,J C,B C,O/:w,p;endsetsdata:w=8.2 20.3 14.9 17.6 11.5 19 7.3 7.4 8.1 10.3 9.2 7.7 7.9 7.2 15.2 7.9 8.3 12.1 7.8 18.8 10.5 10.5 7.8 6.5 8.8 12 8.9 13.2 10 9.17.9 6.7 10.1 7.9 4.1 9.3 5.5 7.2 8.1 9.2 8.2 8.2 6.8 9.8 11.8 15 8.88.6 9.9 9.8 16.4 8.6 10.2 7.8 12.2 13.2 6.8 14.2 10.8 5.6 7.8 20.4 8 7.3 14.5 7.2 15.1 9.7 9.5 11.8 8.3 11.4 11.3 12.7 4.8 8.2 7.9 9.211.2 5.9 10.3 6 8.8 12.9 10.1 14.2 19.8 15.8 11 11.5;enddatan=@size(cities); fl(n)=0;@for(cities(i)|i#lt#n:fl(i)=@min(roads(i,j):w(i,j)+fl(j)));@for(roads(i,j):p(i,j)=@if(fl(i)#eq#w(i,j)+fl(j),1,0));endFeasible solution found.Total solver iterations: 0Variable ValueN 53.00000FL( A35) 36.00000FL( A34) 27.80000FL( A33) 23.70000FL( A32) 30.20000FL( A31) 22.10000FL( A30) 35.70000FL( A29) 20.80000FL( A28) 22.20000FL( A27) 28.40000FL( A26) 20.60000FL( A25) 31.80000FL( A24) 44.30000FL( A23) 39.00000FL( A22) 49.00000FL( A21) 39.60000FL( A20) 38.30000FL( A19) 46.20000FL( A18) 52.90000FL( A17) 53.50000FL( A16) 60.30000FL( A15) 69.90000FL( A14) 72.70000FL( A13) 64.10000FL( A12) 67.30000FL( A11) 55.90000FL( A10) 65.90000FL( A9) 49.50000FL( A8) 49.70000FL( A7) 34.50000FL( A6) 27.20000FL( A5) 17.50000FL( A4) 34.90000FL( A3) 14.00000FL( A2) 9.200000FL( A1) 6.000000FL( R) 12.90000FL( Q) 28.00000FL( P) 10.10000FL( N) 31.10000FL( M) 19.80000FL( L) 39.00000FL( K) 43.70000FL( J) 54.30000FL( I) 61.10000FL( H) 77.50000FL( G) 62.70000FL( F) 55.10000FL( E) 41.70000FL( D) 22.20000FL( C) 11.50000FL( B) 11.90000FL( A) 16.30000FL( O) 0.000000法式二.环路一的最短路程model:sets:city/O,I,J,K,L,M,N,P,15,16,17,18,19,20,21,22,23,24,25,26,27/:u; links(city,city):dist,x;endsetsdata:dist=0, 61.1, 55.7, 43.7, 43.8, 19.8, 31.1, 10.1, 69.9, 60.3, 53.5, 52.9, 47.6, 38.3, 39.6, 49.0, 39.0, 44.3, 31.8, 20.6, 28.461.1, 0, 15.8, 17.4, 31.1, 41.3, 38.1, 59.1, 8.8, 11.8, 18.6,8.2, 23.9, 29.4, 21.5, 25.3, 30.6, 39.5, 29.3, 48.6, 56.455.7, 15.8, 0, 17.4, 15.3, 35.9, 32.7, 53.7, 24.6, 27.6, 27.2,8.2, 8.1, 17.4, 21.5, 27.5, 30.6, 39.5, 23.9, 43.2, 51.043.7, 17.4, 17.4, 0, 17.5, 23.9, 20.7, 41.7, 26.2, 16.6, 9.8,9.2, 21.3, 12.0, 4.1, 10.1, 13.2, 22.1, 11.9, 31.2, 39.023.5, 7.2, 5.5, 13.4, 27.6, 22.5, 31.4, 12.0, 31.3, 39.119.8, 41.3, 35.9, 23.9, 24.0, 0, 14.2, 29.9, 50.1, 40.5, 33.7,33.1, 27.8, 18.5, 19.8, 32.1, 22.1, 27.4, 12.0, 24.7, 32.531.1, 38.1, 32.7, 20.7, 20.8, 14.2, 0, 21.0, 46.9, 31.4, 24.6,29.9, 24.6, 15.3, 16.6, 17.9, 7.9, 13.2, 8.8, 10.5, 18.310.1, 59.1, 53.7, 41.7, 41.8, 29.9, 21.0, 0, 67.9, 52.4, 45.6,50.9, 45.6, 36.3, 37.6, 38.9, 28.9, 34.2, 29.8, 10.5, 18.369.9, 8.8, 24.6, 26.2, 39.9, 50.1, 46.9, 67.9, 0, 20.6, 27.4,17.0, 32.7, 38.2, 30.3, 34.1, 39.4, 48.3, 38.1, 57.4, 65.260.3, 11.8, 27.6, 16.6, 34.1, 40.5, 31.4, 52.4, 20.6, 0, 6.8,20.0, 35.7, 28.6, 20.7, 13.5, 23.5, 32.4, 28.5, 41.9, 49.753.5, 18.6, 27.2, 9.8, 27.3, 33.7, 24.6, 45.6, 27.4, 6.8, 0,19.0, 31.1, 21.8, 13.9, 6.7, 16.7, 25.6, 21.7, 35.1, 42.952.9, 8.2, 8.2, 9.2, 23.5, 33.1, 29.9, 50.9, 17.0, 20.0, 19.0, 0, 16.3, 21.2, 13.3, 19.3, 22.4, 31.3, 21.1, 40.4, 48.247.6, 23.9, 8.1, 21.3, 7.2, 27.8, 24.6, 45.6, 32.7, 35.7, 31.1,16.3, 0, 9.3, 17.2, 31.4, 26.3, 35.2, 15.8, 35.1, 42.938.3, 29.4, 17.4, 12.0, 5.5, 18.5, 15.3, 36.3, 38.2, 28.6, 21.8,21.2, 9.3, 0, 7.9, 22.1, 17.0, 25.9, 6.5, 25.8, 33.639.6, 21.5, 21.5, 4.1, 13.4, 19.8, 16.6, 37.6, 30.3, 20.7, 13.9,13.3, 17.2, 7.9, 0, 14.2, 9.1, 18.0, 7.8, 27.1, 34.949.0, 25.3, 27.5, 10.1, 27.6, 32.1, 17.9, 38.9, 34.1, 13.5, 6.7,19.3, 31.4, 22.1, 14.2, 0, 10.0, 18.9, 22.0, 28.4, 36.239.0, 30.6, 30.6, 13.2, 22.5, 22.1, 7.9, 28.9, 39.4, 23.5, 16.7,22.4, 26.3, 17.0, 9.1, 10.0, 0, 8.9, 16.7, 18.4, 26.244.3, 39.5, 39.5, 22.1, 31.4, 27.4, 13.2, 34.2, 48.3, 32.4, 25.6,31.3, 35.2, 25.9, 18.0, 18.9, 8.9, 0, 22.0, 23.7, 18.831.8, 29.3, 23.9, 11.9, 12.0, 12.0, 8.8, 29.8, 38.1, 28.5, 21.7,21.1, 15.8, 6.5, 7.8, 22.0, 16.7, 22.0, 0, 19.3, 27.120.6, 48.6, 43.2, 31.2, 31.3, 24.7, 10.5, 10.5, 57.4, 41.9, 35.1,40.4, 35.1, 25.8, 27.1, 28.4, 18.4, 23.7, 19.3, 0, 7.828.4, 56.4, 51.0, 39.0, 39.1, 32.5, 18.3, 18.3, 65.2, 49.7, 42.9,48.2, 42.9, 33.6, 34.9, 36.2, 26.2, 18.8, 27.1, 7.8, 0;enddatan=@size(city);min=@sum(links:dist*x);@for(city(k):@sum(city(i)|i#ne#k:x(i,k))=1;@sum(city(j)|j#ne#k:x(k,j))=1;);@for(city(i):@for(city(j)|j#gt#1#and#i#ne#j:u(i)-u(j)+n*x(i,j)<=n-1););@for(city(i):u(i)<=n-1);@for(links:@bin(x));end环路二的最短路程model:sets:city/O,A,B,C,D,Q,R,1,2,3,4,28,29,30,31,32,33,34,35/:u;links(city,city):dist,x;endsetsdata:dist=0, 16.3, 11.9, 11.5, 22.2, 28.0, 12.9, 6.0, 9.2, 14.0, 34.9, 36.3, 20.8, 35.7, 22.1, 30.2, 23.7, 27.8, 36.016.3, 0, 12.2, 21.5, 37.6, 23.9, 8.8, 10.3, 25.5, 29.4, 50.3,32.2, 16.7, 31.6, 14.7, 22.8, 7.4, 11.5, 19.711.9, 12.2, 0, 11.0, 27.1, 36.1, 21.0, 5.9, 21.1, 18.9, 39.8,44.4, 28.9, 43.8, 26.9, 35.0, 19.6, 17.6, 25.811.5, 21.5, 11.0, 0, 16.1, 39.5, 24.4, 11.2, 12.7, 7.9, 28.8,47.8, 32.3, 47.2, 33.6, 41.7, 28.9, 28.6, 36.822.2, 37.6, 27.1, 16.1, 0, 50.2, 35.1, 27.3, 13.0, 8.2, 12.7,58.5, 43.0, 57.9, 44.3, 52.4, 45.0, 44.7, 52.98.3, 7.2, 7.7, 24.3, 18.0, 31.3, 35.4, 32.912.9, 8.8, 21.0, 24.4, 35.1, 15.1, 0, 18.9, 22.1, 26.9, 47.8,23.4, 7.9, 22.8, 9.2, 17.3, 16.2, 20.3, 28.56.0, 10.3, 5.9, 11.2, 27.3, 34.0, 18.9, 0, 15.2, 19.1, 40.0,42.3, 26.8, 41.7, 25.0, 33.1, 17.7, 21.8, 30.09.2, 25.5, 21.1, 12.7, 13.0, 37.2, 22.1, 15.2, 0, 4.8, 25.7,45.5, 30.0, 44.9, 31.3, 39.4, 32.9, 37.0, 45.214.0, 29.4, 18.9, 7.9, 8.2, 42.0, 26.9, 19.1, 4.8, 0, 20.9,50.3, 34.8, 49.7, 36.1, 44.2, 36.8, 36.5, 44.734.9, 50.3, 39.8, 28.8, 12.7, 62.9, 47.8, 40.0, 25.7, 20.9, 0,71.2, 55.7, 70.6, 57.0, 65.1, 57.7, 57.4, 65.636.3, 32.2, 44.4, 47.8, 58.5, 8.3, 23.4, 42.3, 45.5, 50.3, 71.2, 0, 15.5, 16.0, 32.6, 26.3, 39.6, 43.7, 41.220.8, 16.7, 28.9, 32.3, 43.0, 7.2, 7.9, 26.8, 30.0, 34.8, 55.7,15.5, 0, 14.9, 17.1, 25.2, 24.1, 28.2, 36.435.7, 31.6, 43.8, 47.2, 57.9, 7.7, 22.8, 41.7, 44.9, 49.7, 70.6,16.0, 14.9, 0, 18.4, 10.3, 25.7, 33.4, 25.222.1, 14.7, 26.9, 33.6, 44.3, 24.3, 9.2, 25.0, 31.3, 36.1, 57.0,32.6, 17.1, 18.4, 0, 8.1, 7.3, 26.2, 23.030.2, 22.8, 35.0, 41.7, 52.4, 18.0, 17.3, 33.1, 39.4, 44.2, 65.1,26.3, 25.2, 10.3, 8.1, 0, 15.4, 23.1, 14.923.7, 7.4, 19.6, 28.9, 45.0, 31.3, 16.2, 17.7, 32.9, 36.8, 57.7,39.6, 24.1, 25.7, 7.3, 15.4, 0, 18.9, 20.327.8, 11.5, 17.6, 28.6, 44.7, 35.4, 20.3, 21.8, 37.0, 36.5, 57.4,43.7, 28.2, 33.4, 26.2, 23.1, 18.9, 0, 8.236.0, 19.7, 25.8, 36.8, 52.9, 32.9, 28.5, 30.0, 45.2, 44.7, 65.6,41.2, 36.4, 25.2, 23.0, 14.9, 20.3, 8.2, 0 ;enddatan=@size(city);min=@sum(links:dist*x);@for(city(k):@sum(city(i)|i#ne#k:x(i,k))=1;@sum(city(j)|j#ne#k:x(k,j))=1;);@for(city(i):@for(city(j)|j#gt#1#and#i#ne#j:u(i)-u(j)+n*x(i,j)<=n-1););@for(city(i):u(i)<=n-1);@for(links:@bin(x));end环路三的最短路程model:sets:city/O,E,F,G,H,2,5,6,7,8,9,10,11,12,13,14/:u;links(city,city):dist,x;endsetsdata:dist= 0 41.7000 55.1000 62.7000 77.5000 9.200017.5000 27.2000 34.5000 49.7000 49.5000 65.9000 55.9000 67.3000 71.3000 79.900041.7000 0 13.4000 21.0000 35.8000 32.500024.2000 14.5000 7.2000 8.0000 7.8000 24.2000 14.200025.6000 29.6000 38.200055.1000 13.4000 0 20.0000 22.4000 45.900037.6000 27.9000 20.6000 21.4000 5.6000 10.8000 26.8000 12.2000 28.6000 32.300062.7000 21.0000 20.0000 0 18.0000 53.500045.2000 35.5000 28.2000 29.0000 25.6000 30.8000 6.8000 7.8000 8.6000 17.200077.5000 35.8000 22.4000 18.0000 0 68.300060.0000 50.3000 43.0000 43.8000 28.0000 33.2000 24.8000 10.2000 18.5000 9.90009.2000 32.5000 45.9000 53.5000 68.3000 08.3000 18.0000 25.3000 40.5000 40.3000 56.7000 46.700058.1000 62.1000 70.700017.5000 24.2000 37.6000 45.2000 60.0000 8.30000 9.7000 17.0000 32.2000 32.0000 48.4000 38.400049.8000 53.8000 62.400027.2000 14.5000 27.9000 35.5000 50.3000 18.00009.7000 0 7.3000 22.5000 22.3000 38.7000 28.700040.1000 44.1000 52.700034.5000 7.2000 20.6000 28.2000 43.0000 25.300017.0000 7.3000 0 15.2000 15.0000 31.4000 21.400032.8000 36.8000 45.400049.7000 8.0000 21.4000 29.0000 43.8000 40.500032.2000 22.5000 15.2000 0 15.8000 32.2000 22.200033.6000 37.6000 46.200049.5000 7.8000 5.6000 25.6000 28.0000 40.300032.0000 22.3000 15.0000 15.8000 0 16.4000 22.000017.8000 34.2000 37.900065.9000 24.2000 10.8000 30.8000 33.2000 56.700048.4000 38.7000 31.4000 32.2000 16.4000 0 37.600023.0000 39.4000 43.100055.9000 14.2000 26.8000 6.8000 24.8000 46.700038.4000 28.7000 21.4000 22.2000 22.0000 37.6000 014.6000 15.4000 24.000067.3000 25.6000 12.2000 7.8000 10.2000 58.100049.8000 40.1000 32.8000 33.6000 17.8000 23.0000 14.6000 0 16.4000 20.100071.3000 29.6000 28.6000 8.6000 18.5000 62.100053.8000 44.1000 36.8000 37.6000 34.2000 39.4000 15.400016.4000 0 8.600079.9000 38.2000 32.3000 17.2000 9.9000 70.700062.4000 52.7000 45.4000 46.2000 37.9000 43.1000 24.000020.1000 8.6000 0;enddatan=@size(city);min=@sum(links:dist*x);@for(city(k):@sum(city(i)|i#ne#k:x(i,k))=1;@sum(city(j)|j#ne#k:x(k,j))=1;);@for(city(i):@for(city(j)|j#gt#1#and#i#ne#j:u(i)-u(j)+n*x(i,j)<=n-1););@for(city(i):u(i)<=n-1);@for(links:@bin(x));end题二最小生成树法式a(2,5)=11.5; a(2,15)=19.8; a(2,17)=10.1;a(2,19)=12.9;a(2,20)=12.9;a(2,21)=9.2;a(3,4)=12.2;a(3,19)=8.8; a(3,20)=8.3;a(3,52)=7.4;a(3,53)=11.5;a(4,5)=11; a(4,20)=5.9;a(4,53)=17.6;a(5,20)=11.2;a(5,22)=7.9;a(6,22)=8.2;a(6,23)=12.7;a(6,24)=11.3;a(6,26)=15.1;a(7,26)=7.2;a(7,27)=8;a(7,28)=7.8;a(7,30)=14.2;a(8,28)=5.6;a(8,29)=10.8;a(8,31)=12.2;a(9,30)=6.8;a(9,31)=7.8;a(9,32)=8.6;a(10,31)=10.2;a(10,33)=9.9;a(11,12)=15.8;a(11,32)=16.4;a(11,34)=8.8;a(11,35)=11.8;a(11,37)=8.2;a(12,30)=13.2;a(12,32)=9.8;a(12,37)=8.2;a(12,38)=8.1;a(13,36)=9.8;a(13,37)=9.2;a(13,40)=4.1;a(13,41)=10.1;a(14,25)=11.8;a(14,26)=14.5;a(14,38)=7.2;a(14,39)=5.5;a(15,16)=14.2;a(15,24)=11.4;a(15,25)=9.5;a(15,44)=12;a(16,42)=7.9;a(16,43)=13.2;a(16,44)=8.8;a(16,45)=10.5;a(17,45)=10.5;a(17,47)=12.1;a(17,48)=15.2;a(18,47)=8.3;a(18,48)=7.2;a(18,49)=7.7;a(19,48)=7.9;a(19,50)=19.2;a(21,22)=4.8;a(21,24)=8.3;a(23,27)=20.4;a(24,25)=9.7;a(25,26)=7.3;a(32,33)=8.6;a(33,34)=15;a(35,36)=6.8;a(36,41)=6.7;a(38,39)=9.3;a(39,40)=7.9;a(39,44)=6.5;a(40,42)=9.1;a(40,44)=7.8;a(41,42)=10;a(42,43)=8.9;a(43,46)=18.8;a(45,46)=7.8;a(46,47)=7.8;a(49,51)=10.3;a(50,51)=8.1;a(50,52)=7.3;a(51,52)=19;a(51,54)=14.9;a(52,54)=20.3;a(53,54)=8.2;[i,j,b]=find(a);data=[i';j';b'];index=data(1:2,:);loop=max(size(a))-1;result=[];while length(result)<looptemp=min(data(3,:));flag=find(data(3,:)==temp);flag=flag(1);v1=data(1,flag);v2=data(2,flag);if index(1,flag)~=index(2,flag)result=[result,data(:,flag)];endindex(find(index==v2))=v1;data(:,flag)=[];index(:,flag)=[];endresult一model:sets:city/O,K,M,N,P,16,17,21,22,23,24,25,26,27,28/:u;links(city,city):dist,x;endsetsdata:dist= 0 43.7000 19.8000 31.1000 10.1000 60.3000 53.5000 39.6000 49.0000 39.0000 44.3000 31.8000 20.6000 28.400022.200043.7000 0 23.9000 20.7000 41.7000 16.6000 9.80004.1000 10.1000 13.2000 22.1000 11.9000 31.2000 39.0000 46.900019.8000 23.9000 0 14.2000 29.9000 40.5000 33.700019.8000 32.1000 22.1000 27.4000 12.0000 24.7000 32.500040.400031.1000 20.7000 14.2000 0 21.0000 31.4000 24.600016.6000 17.9000 7.9000 13.2000 8.8000 10.5000 18.300026.200010.1000 41.7000 29.9000 21.0000 0 52.4000 45.600037.6000 38.9000 28.9000 34.2000 29.8000 10.5000 18.300012.100060.3000 16.6000 40.5000 31.4000 52.4000 0 6.800020.7000 13.5000 23.5000 32.4000 28.5000 41.9000 49.700057.600053.5000 9.8000 33.7000 24.6000 45.6000 6.8000 013.9000 6.7000 16.7000 25.6000 21.7000 35.1000 42.900050.800039.6000 4.1000 19.8000 16.6000 37.6000 20.7000 13.90000 14.2000 9.1000 18.0000 7.8000 27.1000 34.9000 42.800049.0000 10.1000 32.1000 17.9000 38.9000 13.5000 6.700014.2000 0 10.0000 18.9000 22.0000 28.4000 36.200044.100039.0000 13.2000 22.1000 7.9000 28.9000 23.5000 16.70009.1000 10.0000 0 8.9000 16.7000 18.4000 26.2000 34.100044.3000 22.1000 27.4000 13.2000 34.2000 32.4000 25.600018.0000 18.9000 8.9000 0 22.0000 23.7000 18.800026.700031.8000 11.9000 12.0000 8.8000 29.8000 28.5000 21.70007.8000 22.0000 16.7000 22.0000 0 19.3000 27.1000 35.000020.6000 31.2000 24.7000 10.5000 10.5000 41.9000 35.100027.1000 28.4000 18.4000 23.7000 19.3000 0 7.800015.700028.4000 39.0000 32.5000 18.3000 18.3000 49.7000 42.900034.9000 36.2000 26.2000 18.8000 27.1000 7.8000 07.900022.2000 46.9000 40.4000 26.2000 12.1000 57.6000 50.800042.8000 44.1000 34.1000 26.7000 35.0000 15.7000 7.90000;enddatan=@size(city);min=@sum(links:dist*x);@for(city(k):@sum(city(i)|i#ne#k:x(i,k))=1;@sum(city(j)|j#ne#k:x(k,j))=1;);@for(city(i):@for(city(j)|j#gt#1#and#i#ne#j:u(i)-u(j)+n*x(i,j)<=n-1););@for(city(i):u(i)<=n-1);@for(links:@bin(x));end二model:sets:city/O,H,I,J,K,L,M,2,5,6,13,14,15,18,19,20,21,25/:u;links(city,city):dist,x;endsetsdata:dist= 0 82.6000 61.1000 54.3000 43.7000 39.0000 19.80009.2000 17.5000 27.2000 64.1000 72.7000 69.9000 52.9000 46.2000 38.3000 39.6000 31.800082.6000 0 33.7000 28.3000 45.7000 43.6000 64.200073.4000 65.1000 55.4000 18.5000 9.9000 24.9000 36.500036.4000 45.7000 49.8000 52.200061.1000 33.7000 0 15.8000 17.4000 31.1000 41.300060.9000 52.6000 42.9000 16.4000 23.8000 8.8000 8.200023.9000 29.4000 21.5000 29.300054.3000 28.3000 15.8000 0 17.4000 15.3000 35.900045.1000 36.8000 27.1000 9.8000 18.4000 24.6000 8.20008.1000 17.4000 21.5000 23.900043.7000 45.7000 17.4000 17.4000 0 17.5000 23.900043.6000 35.3000 29.3000 27.2000 35.8000 26.2000 9.200021.3000 12.0000 4.1000 11.900039.0000 43.6000 31.1000 15.3000 17.5000 0 21.300029.8000 21.5000 11.8000 25.1000 33.7000 39.9000 23.50007.2000 5.5000 13.4000 12.000019.8000 64.2000 41.3000 35.9000 23.9000 21.3000 019.7000 11.4000 9.5000 45.7000 54.3000 50.1000 33.100027.8000 18.5000 19.8000 12.00009.2000 73.4000 60.9000 45.1000 43.6000 29.8000 19.7000 0 8.3000 18.0000 54.9000 63.5000 69.7000 52.8000 37.000035.3000 39.5000 31.700017.5000 65.1000 52.6000 36.8000 35.3000 21.5000 11.40008.3000 0 9.7000 46.6000 55.2000 61.4000 44.5000 28.7000 27.0000 31.2000 23.400027.2000 55.4000 42.9000 27.1000 29.3000 11.8000 9.500018.0000 9.7000 0 36.9000 45.5000 51.7000 35.300019.0000 17.3000 25.2000 21.500064.1000 18.5000 16.4000 9.8000 27.2000 25.1000 45.700054.9000 46.6000 36.9000 0 8.6000 23.6000 18.000017.9000 27.2000 31.3000 33.700072.7000 9.9000 23.8000 18.4000 35.8000 33.7000 54.300063.5000 55.2000 45.5000 8.6000 0 15.0000 26.600026.5000 35.8000 39.9000 42.300069.9000 24.9000 8.8000 24.6000 26.2000 39.9000 50.100069.7000 61.4000 51.7000 23.6000 15.0000 0 17.000032.7000 38.2000 30.3000 38.100052.9000 36.5000 8.2000 8.2000 9.2000 23.5000 33.100052.8000 44.5000 35.3000 18.0000 26.6000 17.0000 016.3000 21.2000 13.3000 21.100046.2000 36.4000 23.9000 8.1000 21.3000 7.2000 27.800037.0000 28.7000 19.0000 17.9000 26.5000 32.7000 16.30000 9.3000 17.2000 15.800038.3000 45.7000 29.4000 17.4000 12.0000 5.5000 18.500035.3000 27.0000 17.3000 27.2000 35.8000 38.2000 21.20009.3000 0 7.9000 6.500039.6000 49.8000 21.5000 21.5000 4.1000 13.4000 19.800039.5000 31.2000 25.2000 31.3000 39.9000 30.3000 13.300017.2000 7.9000 0 7.800031.8000 52.2000 29.3000 23.9000 11.9000 12.0000 12.000031.7000 23.4000 21.5000 33.7000 42.3000 38.1000 21.100015.8000 6.5000 7.8000 0;enddatan=@size(city);min=@sum(links:dist*x);@for(city(k):@sum(city(i)|i#ne#k:x(i,k))=1;@sum(city(j)|j#ne#k:x(k,j))=1;);@for(city(i):@for(city(j)|j#gt#1#and#i#ne#j:u(i)-u(j)+n*x(i,j)<=n-1););@for(city(i):u(i)<=n-1);@for(links:@bin(x));end三model:sets:city/O,A,B,C,Q,R,1,29,30,31,32,33,34,35/:u;links(city,city):dist,x;endsetsdata:dist= 0 82.6000 61.1000 54.3000 43.7000 39.0000 19.80009.2000 17.5000 27.2000 64.1000 72.7000 69.9000 52.9000 46.2000 38.3000 39.6000 31.800082.6000 0 33.7000 28.3000 45.7000 43.6000 64.200073.4000 65.1000 55.4000 18.5000 9.9000 24.9000 36.500036.4000 45.7000 49.8000 52.200061.1000 33.7000 0 15.8000 17.4000 31.1000 41.300060.9000 52.6000 42.9000 16.4000 23.8000 8.8000 8.200023.9000 29.4000 21.5000 29.300054.3000 28.3000 15.8000 0 17.4000 15.3000 35.900045.1000 36.8000 27.1000 9.8000 18.4000 24.6000 8.20008.1000 17.4000 21.5000 23.900043.7000 45.7000 17.4000 17.4000 0 17.5000 23.900043.6000 35.3000 29.3000 27.2000 35.8000 26.2000 9.200021.3000 12.0000 4.1000 11.900039.0000 43.6000 31.1000 15.3000 17.5000 0 21.300029.8000 21.5000 11.8000 25.1000 33.7000 39.9000 23.50007.2000 5.5000 13.4000 12.000019.8000 64.2000 41.3000 35.9000 23.9000 21.3000 019.7000 11.4000 9.5000 45.7000 54.3000 50.1000 33.100027.8000 18.5000 19.8000 12.00009.2000 73.4000 60.9000 45.1000 43.6000 29.8000 19.7000 0 8.3000 18.0000 54.9000 63.5000 69.7000 52.8000 37.000035.3000 39.5000 31.700017.5000 65.1000 52.6000 36.8000 35.3000 21.5000 11.40008.3000 0 9.7000 46.6000 55.2000 61.4000 44.5000 28.7000 27.0000 31.2000 23.400027.2000 55.4000 42.9000 27.1000 29.3000 11.8000 9.500018.0000 9.7000 0 36.9000 45.5000 51.7000 35.300019.0000 17.3000 25.2000 21.500064.1000 18.5000 16.4000 9.8000 27.2000 25.1000 45.700054.9000 46.6000 36.9000 0 8.6000 23.6000 18.000017.9000 27.2000 31.3000 33.700072.7000 9.9000 23.8000 18.4000 35.8000 33.7000 54.300063.5000 55.2000 45.5000 8.6000 0 15.0000 26.600026.5000 35.8000 39.9000 42.300069.9000 24.9000 8.8000 24.6000 26.2000 39.9000 50.100069.7000 61.4000 51.7000 23.6000 15.0000 0 17.000032.7000 38.2000 30.3000 38.100052.9000 36.5000 8.2000 8.2000 9.2000 23.5000 33.100052.8000 44.5000 35.3000 18.0000 26.6000 17.0000 016.3000 21.2000 13.3000 21.100046.2000 36.4000 23.9000 8.1000 21.3000 7.2000 27.800037.0000 28.7000 19.0000 17.9000 26.5000 32.7000 16.30000 9.3000 17.2000 15.800038.3000 45.7000 29.4000 17.4000 12.0000 5.5000 18.500035.3000 27.0000 17.3000 27.2000 35.8000 38.2000 21.20009.3000 0 7.9000 6.500039.6000 49.8000 21.5000 21.5000 4.1000 13.4000 19.800039.5000 31.2000 25.2000 31.3000 39.9000 30.3000 13.300017.2000 7.9000 0 7.800031.8000 52.2000 29.3000 23.9000 11.9000 12.0000 12.000031.7000 23.4000 21.5000 33.7000 42.3000 38.1000 21.100015.8000 6.5000 7.8000 0;enddatan=@size(city);min=@sum(links:dist*x);@for(city(k):@sum(city(i)|i#ne#k:x(i,k))=1;@sum(city(j)|j#ne#k:x(k,j))=1;);@for(city(i):@for(city(j)|j#gt#1#and#i#ne#j:u(i)-u(j)+n*x(i,j)<=n-1););@for(city(i):u(i)<=n-1);@for(links:@bin(x));end四model:sets:city/O,C,D,E,F,G,2,3,4,5,6,7,8,9,10,11,12/:u;links(city,city):dist,x;endsetsdata:dist= 0 11.5000 22.2000 41.7000 55.1000 62.7000 9.200014.0000 34.9000 17.5000 27.2000 34.5000 49.7000 49.500065.9000 55.9000 67.300011.5000 0 16.1000 38.4000 51.8000 59.4000 12.70007.9000 28.8000 21.0000 30.7000 31.2000 46.4000 46.2000 62.6000 52.6000 64.000022.2000 16.1000 0 22.3000 35.7000 43.3000 13.00008.2000 12.7000 11.3000 21.0000 15.1000 30.3000 30.1000 46.5000 36.5000 47.900041.7000 38.4000 22.3000 0 13.4000 21.0000 32.500030.5000 28.4000 24.2000 14.5000 7.2000 8.0000 7.800024.2000 14.2000 25.600055.1000 51.8000 35.7000 13.4000 0 20.0000 45.900043.9000 41.8000 37.6000 27.9000 20.6000 21.4000 5.600010.8000 26.8000 12.200062.7000 59.4000 43.3000 21.0000 20.0000 0 53.500051.5000 49.4000 45.2000 35.5000 28.2000 29.0000 25.600030.8000 6.8000 7.80009.2000 12.7000 13.0000 32.5000 45.9000 53.5000 04.8000 25.7000 8.3000 18.0000 25.3000 40.5000 40.3000 56.7000 46.7000 58.100014.0000 7.9000 8.2000 30.5000 43.9000 51.5000 4.8000 0 20.9000 13.1000 22.8000 23.3000 38.5000 38.3000 54.700044.7000 56.100034.9000 28.8000 12.7000 28.4000 41.8000 49.4000 25.700020.9000 0 24.0000 33.7000 27.8000 20.4000 36.200052.6000 42.6000 54.000017.5000 21.0000 11.3000 24.2000 37.6000 45.2000 8.3000。
最佳灾情巡视路线模型
最佳灾情巡视路线模型【摘要】“图论”是组合数学的分支,它与其他的数学分支,如群论、矩阵论、拓扑学,数值分析有着密切的联系。
在其它科学领域,如计算机科学、运筹学、电网络分析、化学物理以及社会科学等方面图论也具有越来越重要的地位,并已取得丰硕的成果。
而且,图论的理论和方法在数学建模中也有重要应用。
本文概述了一些常用的图论方法和算法,并通过举例(灾情巡视路线)说明其在数学建模中的应用。
【关键词】图论灾情巡视Hamilton回路数学模型预备知识定义1 完全图:如果图G中每一对不同的顶点恰有一条边连接,则称此图为完全图。
定义2 连通图:如果对图G=(V,E)的任何两个顶点u与v,G中存在一条(u-v)路。
则称G是连通图。
定义3 加权图:边上有数的图称为加权图。
在加权图中,链(迹、路)的长度为链(迹、路)上的所有边的权植的和。
定义4 Hamilton回路:图G中的一个回路C称为一个Hamilton回路如果C含有G 的所有顶点。
含有Hamilton回路的图称为Hamilton图。
定义5 欧拉回路:经过图G的每条边的迹称为欧拉迹,如果这条迹是闭的,则称这条闭迹为G的欧拉回路。
一数学建模中常用的图论方法1 迪克斯特拉算法(Dijkstra)1.1问题来源在加权图中,我们经常需要找出两个指定点之间的最短路,通常称为最短路问题。
解决最短路问题的方法之一就是迪克斯特拉算法。
1.2基本思路假定P:V1→V2→ (V)i→…→Vj→…→Vk是从V1到Vk的最短路,则它的子路Vi →…→Vj一定是从Vi到Vj的最短路。
否则从V1出发沿路p走到Vi,,然后沿Vi 到Vj的最短路走到Vj再沿路P从Vj到Vk,这样得到一条新的从V1出发到Vk的路,其长度小于P,与P是最短路的假设矛盾。
1.3算法设G为所有权都为正数的加权连通简单图。
G带有顶点a=V0, V1, (V)n=z,权W(Vi , Vj) ,若(Vi, Vj)不是G中的边,则W(Vi, Vj) =∞for i=1 to nL((Vi)= ∞L(a)=0S=Ф(初始化标记,a的标记为0,其它结点标记为∞,S 为空集)当z不属于S时beginu=不属于S的L(u)最小的一个顶点S=S∪{u}对所有不属于S的顶点Vif L(u)+W(u,v)<L(v) thenL(v)=L(u)+L(u,v) (这样就给S中添加带最小标记的顶点并且更新不在S中的顶点的标记)End (L(z)表示从a到z的最短路的长度) 这个算法经过n-1次循环后必定结束,计算量为1/2(n-1)(n-2),因而是个有效算法。
数学建模案例分析5.建模案例:最佳灾情巡视路线
建模案例:最佳灾情巡视路线这里介绍1998年全国大学生数学模型竞赛B题中的两个问题.一、问题今年夏天某县遭受水灾.为考察灾情、组织自救,县领导决定,带领有关部门负责人到全县各乡(镇)、村巡视.巡视路线指从县政府所在地出发,走遍各乡(镇)、村,又回到县政府所在地的路线.1.若分三组(路)巡视,试设计总路程最短且各组尽可能均衡的路线.2.假定巡视人员在各乡(镇)停留时间T=2h,在各村停留时间t=1h,汽车行驶速度V=35km/h.要在24h内完成巡视,至少应分几组;给出这种分组下最佳的巡视路线.乡镇、村的公路网示意图见图1.图1二、假设1.汽车在路上的速度总是一定,不会出现抛锚等现象;2.巡视当中,在每个乡镇、村的停留时间一定,不会出现特殊情况而延误时间;3.每个小组的汽车行驶速度完全一样;4.分组后,各小组只能走自己区内的路,不能走其他小组的路(除公共路外).三、模型的建立与求解将公路网图中,每个乡(镇)或村看作图中的一个节点,各乡(镇)、村之间的公路看作图中对应节点间的边,各条公路的长度(或行驶时间)看作对应边上的权,所给公路网就转化为加权网络图,问题就转化为在给定的加权网络图中寻找从给定点O 出发,行遍所有顶点至少一次再回到O 点,使得总权(路程或时间)最小,此即最佳推销员回路问题.在加权图G 中求最佳推销员回路问题是NP —完全问题,我们采用一种近似算法求出该问题的一个近似最优解,来代替最优解,算法如下:算法一 求加权图G (V ,E )的最佳推销员回路的近似算法:1. 用图论软件包求出G 中任意两个顶点间的最短路,构造出完备图),(E V G '',()E y x '∈∀,, ()(),,G x y mind x y ω=;2. 输入图G '的一个初始H 圈;3. 用对角线完全算法产生一个初始H 圈;4. 随机搜索出G '中若干个H 圈,例如2000个;5. 对第2、3、4步所得的每个H 圈,用二边逐次修正法进行优化,得到近似最佳H 圈;6. 在第5步求出的所有H 圈中,找出权最小的一个,此即要找的最佳H圈的近似解.由于二边逐次修正法的结果与初始圈有关,故本算法第2、3、4步分别用三种方法产生初始圈,以保证能得到较优的计算结果.问题一 若分为3组巡视,设计总路程最短且各组尽可能均衡的巡视路线.此问题是多个推销员的最佳推销员回路问题.即在加权图G 中求顶点集V 的划分12,,,n V V V ,将G 分成n 个生成子图[][][]12,,...,n G V G V G V ,使得(1)顶点i V O ∈, i =1,2,3,…,n ;(2)()G V V n i i== 1 ;(3)()()(),m ax m ax i j i ji i C C C ωωαω-≤,其中i C 为i V 的导出子图[]i V G 中的最佳推销员回路,()i C ω为i C 的权,i ,j =1,2,3,…,n ;(4)()1ni i C ω=∑取最小.定义 称()()(),0m ax m ax i j i ji i C C C ωωαω-=为该分组的实际均衡度.α为最大容许均衡度.显然100≤≤α,0α越小,说明分组的均衡性越好.取定一个α后,0α与α满足条件(3)的分组是一个均衡分组.条件(4)表示总巡视路线最短.此问题包含两方面:第一,对顶点分组;第二,在每组中求最佳推销员回路,即为单个推销员的最佳推销员问题.由于单个推销员的最佳推销员回路问题不存在多项式时间内的精确算法,故多个推销员的问题也不存在多项式时间内的精确算法.而图中节点数较多,为53个,我们只能去寻求一种较合理的划分准则,对图1进行粗步划分后,求出各部分近似最佳推销员回路的权,再进一步调整,使得各部分满足均衡性条件(3).图2 O点到任意点的最短路图(单位:km)从O点出发去其他点,要使路程较小应尽量走O点到该点的最短路.故用图论软件包求出O点到其余顶点的最短路,这些最短路构成一棵以O为树根的树,将从O点出发的树枝称为干枝,见图2,从图中可以看出,从O点出发到其它点共有6条干枝,他们的名称分别为①,②,③,④,⑤,⑥.根据实际工作的经验及上述分析,在分组时应遵从以下准则:准则一:尽量使同一干枝及其分枝上的点分在同一组;准则二:应将相邻的干枝上的点分在同一组;准则三:尽量将长的干枝与短的干枝分在同一组.由上述分组准则,我们找到两种分组形式如下:分组一:(⑥,①),(②,③),(⑤,④);分组二:(①,②),(③,④),(⑤,⑥).显然分组一的方法极不均衡,故考虑分组二.对分组二中每组顶点的生成子图,用算法一求出近似最优解及相应的巡视路线.使用算法一时,在每个子图所构造的完备图中,取一个尽量包含图2中树上的边的H圈作为其第2步输入的初始圈.分组二的近似解见表1.因为该分组的均衡度0α=()()()121,2,3241.9125.5m ax 241.9i i C C C ωωω=--==54.2%所以此分法的均衡性很差.为改善均衡性,将第Ⅱ组中的顶点C ,2,3,D ,4分给第Ⅲ组(顶点2为这两组的公共点),重新分组后的近似最优解见表2.因该分组的均衡度=0α()311,2,3216.4191.1m ax 216.4i i C C C ωωω=--==11.69%所以这种分法的均衡性较好.问题二 当巡视人员在各乡(镇)、村的停留时间一定,汽车的行驶速度一定,要在24h 内完成巡视,至少要分几组及最佳的巡视路线.由于T =2h ,t =1h ,V =35km/h ,需访问的乡镇共有17个,村共有35个.计算出在乡(镇)及村的总停留时间为17⨯2h+35h=69h ,要在24h 内完成巡回,若不考虑行走时间,有: 2469<i (i 为分的组数).得i 最小为4,故至少要分4组.由于该网络的乡(镇)、村分布较为均匀,故有可能找出停留时间尽量均衡的分组,当分4组时各组停留时间大约为69h 17.254=h ,则每组分配在路途上的时间大约为24h-17.25h=6.75h.而前面讨论过,分三组时有个总路程599.8km 的巡视路线,分4组时的总路程不会比599.8km 大太多,不妨以599.8km 来计算.路上时间约为599.8h 1735=h ,若平均分配给4个组,每个组约需417h=4.25h〈6.75h ,故分成4组是可能办到的.现在尝试将顶点分为4组.分组的原则:除遵从前面准则一、二、三外,还应遵从以下准则:准则四:尽量使各组的停留时间相等.用上述原则在图2上将图分为4组,同时计算各组的停留时间,然后用算法一算出各组的近似最佳推销员巡回,得出路线长度及行走时间,从而得出完成巡视的近似最佳时间.用算法一计算时,初始圈的输入与分3组时同样处理.这4组的近似最优解见表3.加框的表示此点只经过不停留.该分组实际均衡度0α==-74.2269.2174.22 4.62%可以看出,表3分组的均衡度很好,且完全满足24h 完成巡视的要求.。
第2讲行遍性问题
Fleury 算法步骤: (1)任选一个顶点 v0,令道路 w0=v0
(2)假定道路 wi=v0 e1 v1 e2… e ivi 已经选好,则从 E\{e1,e2, …,ei}中
选一条边 ei+1,使: a)ei+1 与 vi 相关联
b)除非不能选择,否则一定要使 ei+1 不是 Gi=G[E-{e1,e2, …,ei}]
68
68
Pa 21 57 36 inf 51 61
Pe 51 78 68 51 inf 13
T
60 70 68
61 13 inf
建模实例 灾情巡视路线
• 图5-53为某乡,(镇),村公路网示意图,公路边的数 字为该路段的公里数。
• 有一年夏天该县遭受水灾。为考察灾情,组织自救,县领 导决定,带领有关部门负责人到全县各乡,(镇),村巡 视。巡视路线指从县政府所在地出发,走遍各乡,镇,村, 又回到县政府所在地的路线。
2.以 v4、v7、v8、v9 为顶点,它们之间的距离为边权构造完备图 G1.
3.求出 G1 的最小权完美匹配 M={(v4,,v7),(v8,v9)}
4.在 G 中沿 v4 到 v7 的最短路径添加重复边,沿 v8 到 v9 的最短路径 v8v9 添加重复边,得欧拉图 G2.G2 中一条欧拉巡回就是 G 的一条最佳 巡回.其权值为64.
(2)以 G 的所有奇次顶点为顶点集(个数为偶数),作一完备图, 边上的权为两端点在原图 G 中的最短距离,将此完备加权图记为 G1.
(3)求出G1的最小权理想匹配M,得到奇次顶点的最佳配对.
(4)在 G 中沿配对顶点之间的最短路径添加重复边得欧拉图 G*.
(5)用 Fleury 算法求出 G*的欧拉巡回,这就是 G 的最佳巡回.
数学建模案例分析5.建模案例:最佳灾情巡视路线
建模案例:最佳灾情巡视路线这里介绍1998年全国大学生数学模型竞赛B题中的两个问题.一、问题今年夏天某县遭受水灾.为考察灾情、组织自救,县领导决定,带领有关部门负责人到全县各乡(镇)、村巡视.巡视路线指从县政府所在地出发,走遍各乡(镇)、村,又回到县政府所在地的路线.1.若分三组(路)巡视,试设计总路程最短且各组尽可能均衡的路线.2.假定巡视人员在各乡(镇)停留时间T=2h,在各村停留时间t=1h,汽车行驶速度V=35km/h.要在24h内完成巡视,至少应分几组;给出这种分组下最佳的巡视路线.乡镇、村的公路网示意图见图1.图1二、假设1.汽车在路上的速度总是一定,不会出现抛锚等现象;2.巡视当中,在每个乡镇、村的停留时间一定,不会出现特殊情况而延误时间;3.每个小组的汽车行驶速度完全一样;4.分组后,各小组只能走自己区内的路,不能走其他小组的路(除公共路外).三、模型的建立与求解将公路网图中,每个乡(镇)或村看作图中的一个节点,各乡(镇)、村之间的公路看作图中对应节点间的边,各条公路的长度(或行驶时间)看作对应边上的权,所给公路网就转化为加权网络图,问题就转化为在给定的加权网络图中寻找从给定点O 出发,行遍所有顶点至少一次再回到O 点,使得总权(路程或时间)最小,此即最佳推销员回路问题.在加权图G 中求最佳推销员回路问题是NP —完全问题,我们采用一种近似算法求出该问题的一个近似最优解,来代替最优解,算法如下:算法一 求加权图G (V ,E )的最佳推销员回路的近似算法:1. 用图论软件包求出G 中任意两个顶点间的最短路,构造出完备图),(E V G '',()E y x '∈∀,, ()(),,G x y mind x y ω=;2. 输入图G '的一个初始H 圈;3. 用对角线完全算法产生一个初始H 圈;4. 随机搜索出G '中若干个H 圈,例如2000个;5. 对第2、3、4步所得的每个H 圈,用二边逐次修正法进行优化,得到近似最佳H 圈;6. 在第5步求出的所有H 圈中,找出权最小的一个,此即要找的最佳H圈的近似解.由于二边逐次修正法的结果与初始圈有关,故本算法第2、3、4步分别用三种方法产生初始圈,以保证能得到较优的计算结果.问题一 若分为3组巡视,设计总路程最短且各组尽可能均衡的巡视路线.此问题是多个推销员的最佳推销员回路问题.即在加权图G 中求顶点集V 的划分12,,,n V V V ,将G 分成n 个生成子图[][][]12,,...,n G V G V G V ,使得(1)顶点i V O ∈, i =1,2,3,…,n ;(2)()G V V n i i== 1 ;(3)()()(),m ax m ax i j i ji i C C C ωωαω-≤,其中i C 为i V 的导出子图[]i V G 中的最佳推销员回路,()i C ω为i C 的权,i ,j =1,2,3,…,n ;(4)()1ni i C ω=∑取最小.定义 称()()(),0m ax m ax i j i ji i C C C ωωαω-=为该分组的实际均衡度.α为最大容许均衡度.显然100≤≤α,0α越小,说明分组的均衡性越好.取定一个α后,0α与α满足条件(3)的分组是一个均衡分组.条件(4)表示总巡视路线最短.此问题包含两方面:第一,对顶点分组;第二,在每组中求最佳推销员回路,即为单个推销员的最佳推销员问题.由于单个推销员的最佳推销员回路问题不存在多项式时间内的精确算法,故多个推销员的问题也不存在多项式时间内的精确算法.而图中节点数较多,为53个,我们只能去寻求一种较合理的划分准则,对图1进行粗步划分后,求出各部分近似最佳推销员回路的权,再进一步调整,使得各部分满足均衡性条件(3).图2 O点到任意点的最短路图(单位:km)从O点出发去其他点,要使路程较小应尽量走O点到该点的最短路.故用图论软件包求出O点到其余顶点的最短路,这些最短路构成一棵以O为树根的树,将从O点出发的树枝称为干枝,见图2,从图中可以看出,从O点出发到其它点共有6条干枝,他们的名称分别为①,②,③,④,⑤,⑥.根据实际工作的经验及上述分析,在分组时应遵从以下准则:准则一:尽量使同一干枝及其分枝上的点分在同一组;准则二:应将相邻的干枝上的点分在同一组;准则三:尽量将长的干枝与短的干枝分在同一组.由上述分组准则,我们找到两种分组形式如下:分组一:(⑥,①),(②,③),(⑤,④);分组二:(①,②),(③,④),(⑤,⑥).显然分组一的方法极不均衡,故考虑分组二.对分组二中每组顶点的生成子图,用算法一求出近似最优解及相应的巡视路线.使用算法一时,在每个子图所构造的完备图中,取一个尽量包含图2中树上的边的H圈作为其第2步输入的初始圈.分组二的近似解见表1.因为该分组的均衡度0α=()()()121,2,3241.9125.5m ax 241.9i i C C C ωωω=--==54.2%所以此分法的均衡性很差.为改善均衡性,将第Ⅱ组中的顶点C ,2,3,D ,4分给第Ⅲ组(顶点2为这两组的公共点),重新分组后的近似最优解见表2.因该分组的均衡度=0α()311,2,3216.4191.1m ax 216.4i i C C C ωωω=--==11.69%所以这种分法的均衡性较好.问题二 当巡视人员在各乡(镇)、村的停留时间一定,汽车的行驶速度一定,要在24h 内完成巡视,至少要分几组及最佳的巡视路线.由于T =2h ,t =1h ,V =35km/h ,需访问的乡镇共有17个,村共有35个.计算出在乡(镇)及村的总停留时间为17⨯2h+35h=69h ,要在24h 内完成巡回,若不考虑行走时间,有: 2469<i (i 为分的组数).得i 最小为4,故至少要分4组.由于该网络的乡(镇)、村分布较为均匀,故有可能找出停留时间尽量均衡的分组,当分4组时各组停留时间大约为69h 17.254=h ,则每组分配在路途上的时间大约为24h-17.25h=6.75h.而前面讨论过,分三组时有个总路程599.8km 的巡视路线,分4组时的总路程不会比599.8km 大太多,不妨以599.8km 来计算.路上时间约为599.8h 1735=h ,若平均分配给4个组,每个组约需417h=4.25h〈6.75h ,故分成4组是可能办到的.现在尝试将顶点分为4组.分组的原则:除遵从前面准则一、二、三外,还应遵从以下准则:准则四:尽量使各组的停留时间相等.用上述原则在图2上将图分为4组,同时计算各组的停留时间,然后用算法一算出各组的近似最佳推销员巡回,得出路线长度及行走时间,从而得出完成巡视的近似最佳时间.用算法一计算时,初始圈的输入与分3组时同样处理.这4组的近似最优解见表3.加框的表示此点只经过不停留.该分组实际均衡度0α==-74.2269.2174.22 4.62%可以看出,表3分组的均衡度很好,且完全满足24h 完成巡视的要求.。
数学建模论文之灾情巡视路线
最佳灾情巡视路线问题的研究摘要本文分析的是最佳的巡视路线问题,我们用Kruskral 算法对原路线图进行处理,求得其最小生成树,并以巡视总路程、各组巡视时间和路程(时间)均衡度为目标函数建立模型,通过图论软件包、Matlab 软件求解,并对结果进行均衡度检验,设计出了最佳巡视路线,而且对影响最佳巡视路线的因素进行了定量分析。
针对问题一:问题一我们运用了用Kruskral 算法对原路线图进行处理,求得其最小生成树,提出了分块准则,我们根据分块准则,建立了以巡视总路程和路程均衡度为目标函数的多目标标模型,并通过分析比较和路程均衡度检验,最终得出了最佳巡视路线,此时巡视总路程公里5.622=S ,路程均衡度为%3.6=s α具体巡视路线见表三。
针对问题二:我们通过分析可知在此种情况下至少需分四组巡视,并在题一得出的最小生成树的基础上,提出分块准则,建立了以个组巡视总时间和时间均衡度为目标函数的多目标模型,并通过分析比较和时间均衡度检验,得出了最佳巡视路线,此时25.2124.22,27.22,05.224321====T T T T 小时,小时小时小时,时间均衡度%7.6=t α,具体巡视路线见图二。
针对问题三:我们通过图论软件包求出了所有的点到点O 的最短距离,以及离O 最远的点为H 点,我们以巡视H 点的最短时间为各组各组巡视时间的上限,运用图论软件包和自己分析判断,最终制订了最佳巡视路线,此分组组数为23组,具体数据和巡视路线见表五。
针对问题四:我们假设该问题是已经定分为三组的情形,且在乡镇停留时间为在村停留时间整数倍情况下讨论V t T 和,的改变对最佳巡视路线的影响。
由问题一的求解结果可知,第三组巡视路线较第一组、第二组巡视路线长,所以我们只讨论在V t T 和,改变时对第三组巡视路线的影响进行分析以说明问题。
最终得出结论:停留时间的改变对最佳巡视路线影响较大;汽车时速的改变对最佳巡视路线的确定影响较小。
最佳灾情巡视路线的数学模型
三
。。
一 个均衡分组
}
, ,
为澎 于 的 实际路 程均衡度 组
,
。
为最大容许均 衡度
显然
。。
,
,
,
,
似最佳 推销 员 回路 的权 再进 一步进行调整 使得各部分满足均衡性条件 从 点 出发去其 它点 要使路 程较小应尽量走 点到 该点的最短路 故用 图论 软件包求 出 点 到 其余 顶 点 的最短路 这 些 最短路构 成 一 棵 为树根 的树 将从 点 出发的树枝称为干 枝 见 图 从 图 中可 以看 出 从 点 出发 到 其它 点 共有 条干枝 它 们的 名称 分别为 ① ② ③ ④ ③
,
组 并求 出了分为
、
组 时 各组 的较优巡 视路 线 各组 的巡 视时间分别 为 小 时 对 问题
,
小时
,
小时
围
,
,
求 出完成巡 视的最 短 时间为
,
小时 并用较为合理
,
的分组 的准则 分成
个组 对 间题
,
,
研究了在不影响分组的均 衡条 件下
的允许变化范
并得 出了这三 个变量 的关系式
并 由此 对 分三个组的情况进行 了具 体讨论
农
小组 名称 称
路
一 尸一
一 】 一 一 一
单位 公里
总路 线 长度
路 线的 总长 度
线
一 一
一 一
一
一
一
,
,
仁
一 一 一 一 一 一 一
一 一
一 一 一
一
一 几 一 了
一 一
一
一
一
〔
一 一
一 尸一
哈密顿灾情巡视模型
《数学建模》课程论文学生潘在裕成绩灾情巡视路线模型 摘要本题所研究的分组巡视的最佳路线与多个旅行推销员的问题相似,但也有不同,因为此题还有均衡性要求。
这是一类图上的点的遍历性问题,即用若干条闭链覆盖图上所有的顶点,并使某些指标达到最优。
首先,将乡村公路示意图转化为赋权连通图,并通过最小生成树法将原权图划分为若干个子图,然后,利用Hamilon 圈法分别求出各个子图的最佳巡视路线。
最后,利用本文中自定义的均衡度公式:()()max min()100%,max A A A A α-=⨯为各组巡视路程或时间组成的集合,来衡量分组的均衡性,如果均衡度越小,那么分组的均衡性就越好,据此来判断分组是否满足题意。
而题中,在基于最小生成树法将原权图划分为若干个子图的划分情况下,就必然使得总巡视路程相对较短,而均衡度不够令人满意,此时根据实际需要,若要使总巡视路程优先,达到相对较短,则采用原划分的子图分组;若要使均衡度优先,达到满意要求,则我们可以对各分组部分边界点进行重划分调整。
针对问题一,我们分别采用直观分析法和最小生成树法求解并得到不同的结果。
若分三组巡视,最小生成树法求解各组的巡视路程分别为159.3km 、242.2km 、186.4km ,总路程为587.9km ,路程均衡度为34%。
此结果下的总路程相对较短,而均衡度偏高。
如果要优先考虑均衡度,在最小生成树法求解发改进的基础上得到:194.0km 、205.3km 、206.8km ,总路程为606.1km ,路程均衡度为6.2%。
针对问题二,基于计算可以发现至少分4组,并求出了各组的最佳巡视路线。
各组巡视的路程和时间分别为125.5km /19.6h 、154.3km /22.4h 、203.9km /23.8h 、158.8km /21.5h ,时间均衡度为18%。
针对问题三,我们选取了巡视离县城最远的乡镇(点H )所需的时间6.4小时作为最短巡视时间,当巡视比较偏僻的乡村时,汽车从县镇府出发直至到达终点,中途不会停留,仅在终点站停留T (或t )小时,然后按原路返回,到达沿途各站接回巡视人员。
灾情巡视问题(数学建模)
模型求解之问题三
问题复述: 在上述关于T,t和V的假定下,如果巡视人 员足够多,完成巡视的最短时间是多少;给出 在这种最短时间完成巡视的要求下,你认为最 佳的巡视路线。
求解步骤(一)
1. 如果巡视人员足够多,显然52个巡视人员分别巡视不同 村镇可使使用时间最短。此时用Floyd算法可得结果如下 (由图可知,巡视最短时间为6.394小时)
• 问题复述: 分三组(路)巡视,试设计总路程最短且 各组尽可能均衡的路线。
• 问题转化: 求解一个V的分组(V1,V2,V3),使得:
① f (Vi )
i 1 3
充分小(总路程最短)
② max( f (Vi ))充分小( 各组路程均衡) min( f (Vi ))
求解步骤(一)
1. 运用Floyd算法,将所给图转化为满足任意两点之间的权值 为原图中任意两点之间的最短路长度的完全图。 2. 将G(V,E),转化为G'(V,E')。 3. 将G'(V,E')中的顶点集V分为三组,方法如下: ①选出三个点为基点,使得这三点两两之间的最短长度是 所有可能组合中最大的,而且三点离O点的距离比较均衡。 ②对于其他任何点,离哪个基点最近,将之与该基点划为 一组。 由此得到初始分组。将O点分到每组中,运用两边逐次修 正算法算得每组中的最优哈密尔顿圈。 各组的圈的权是:
结果如下:
求 解 步 骤 ( 三 )
模型求解之问题四
问题复述: 若巡视组数已定(比如三组),要求尽快完成 巡视,讨论T,t和v改变对最佳巡视路线的影响。
求解步骤
1. 基点确认:考虑的是各个顶点之间的距离的关系,因此
T,t与v的改变并不影响基点的选择。 2. 初始分组:各点距基点的距离即各点到基点的时间成了 判断标准,因此T和t的改变对于初始分组过程是没有影响 的。而汽车的速度是相等不变的,因此v的改变对每个点的 影响是相等的。因此,v也不影响初始分组过程。 3. 调整分组:T,t与v的改变都会对巡视时间产生影响,从 而对分组的调整产生影响。因 Ti NiT ni,其中 表示各 t f (ViTi )/ v 组所用最短巡视时间,Ni表示各组顶点中乡镇的个数,ni 表示各组顶点中村的个数。 ①当T或t变大时,乡镇或村的个数对各组的用时的影响变大。 同时,当决定把一个乡镇或村的点移入另一个分组时,该 点对另一个组的最短时间的影响变大。 ②当v变大时,顶点之间的距离对各组的用时的影响变小。
数学建模案例分析5.建模案例:最佳灾情巡视路线
建模案例:最佳灾情巡视路线这里介绍1998年全国大学生数学模型竞赛B题中的两个问题.一、问题今年夏天某县遭受水灾.为考察灾情、组织自救,县领导决定,带领有关部门负责人到全县各乡(镇)、村巡视.巡视路线指从县政府所在地出发,走遍各乡(镇)、村,又回到县政府所在地的路线.1.若分三组(路)巡视,试设计总路程最短且各组尽可能均衡的路线.2.假定巡视人员在各乡(镇)停留时间T=2h,在各村停留时间t=1h,汽车行驶速度V=35km/h.要在24h内完成巡视,至少应分几组;给出这种分组下最佳的巡视路线.乡镇、村的公路网示意图见图1.图1二、假设1.汽车在路上的速度总是一定,不会出现抛锚等现象;2.巡视当中,在每个乡镇、村的停留时间一定,不会出现特殊情况而延误时间;3.每个小组的汽车行驶速度完全一样;4.分组后,各小组只能走自己区内的路,不能走其他小组的路(除公共路外).三、模型的建立与求解将公路网图中,每个乡(镇)或村看作图中的一个节点,各乡(镇)、村之间的公路看作图中对应节点间的边,各条公路的长度(或行驶时间)看作对应边上的权,所给公路网就转化为加权网络图,问题就转化为在给定的加权网络图中寻找从给定点O 出发,行遍所有顶点至少一次再回到O 点,使得总权(路程或时间)最小,此即最佳推销员回路问题.在加权图G 中求最佳推销员回路问题是NP —完全问题,我们采用一种近似算法求出该问题的一个近似最优解,来代替最优解,算法如下:算法一 求加权图G (V ,E )的最佳推销员回路的近似算法:1. 用图论软件包求出G 中任意两个顶点间的最短路,构造出完备图),(E V G '',()E y x '∈∀,, ()(),,G x y mind x y ω=;2. 输入图G '的一个初始H 圈;3. 用对角线完全算法产生一个初始H 圈;4. 随机搜索出G '中若干个H 圈,例如2000个;5. 对第2、3、4步所得的每个H 圈,用二边逐次修正法进行优化,得到近似最佳H 圈;6. 在第5步求出的所有H 圈中,找出权最小的一个,此即要找的最佳H圈的近似解.由于二边逐次修正法的结果与初始圈有关,故本算法第2、3、4步分别用三种方法产生初始圈,以保证能得到较优的计算结果.问题一 若分为3组巡视,设计总路程最短且各组尽可能均衡的巡视路线.此问题是多个推销员的最佳推销员回路问题.即在加权图G 中求顶点集V 的划分12,,,n V V V ,将G 分成n 个生成子图[][][]12,,...,n G V G V G V ,使得(1)顶点i V O ∈, i =1,2,3,…,n ;(2)()G V V n i i== 1 ;(3)()()(),m ax m ax i j i ji i C C C ωωαω-≤,其中i C 为i V 的导出子图[]i V G 中的最佳推销员回路,()i C ω为i C 的权,i ,j =1,2,3,…,n ;(4)()1ni i C ω=∑取最小.定义 称()()(),0m ax m ax i j i ji i C C C ωωαω-=为该分组的实际均衡度.α为最大容许均衡度.显然100≤≤α,0α越小,说明分组的均衡性越好.取定一个α后,0α与α满足条件(3)的分组是一个均衡分组.条件(4)表示总巡视路线最短.此问题包含两方面:第一,对顶点分组;第二,在每组中求最佳推销员回路,即为单个推销员的最佳推销员问题.由于单个推销员的最佳推销员回路问题不存在多项式时间内的精确算法,故多个推销员的问题也不存在多项式时间内的精确算法.而图中节点数较多,为53个,我们只能去寻求一种较合理的划分准则,对图1进行粗步划分后,求出各部分近似最佳推销员回路的权,再进一步调整,使得各部分满足均衡性条件(3).图2 O点到任意点的最短路图(单位:km)从O点出发去其他点,要使路程较小应尽量走O点到该点的最短路.故用图论软件包求出O点到其余顶点的最短路,这些最短路构成一棵以O为树根的树,将从O点出发的树枝称为干枝,见图2,从图中可以看出,从O点出发到其它点共有6条干枝,他们的名称分别为①,②,③,④,⑤,⑥.根据实际工作的经验及上述分析,在分组时应遵从以下准则:准则一:尽量使同一干枝及其分枝上的点分在同一组;准则二:应将相邻的干枝上的点分在同一组;准则三:尽量将长的干枝与短的干枝分在同一组.由上述分组准则,我们找到两种分组形式如下:分组一:(⑥,①),(②,③),(⑤,④);分组二:(①,②),(③,④),(⑤,⑥).显然分组一的方法极不均衡,故考虑分组二.对分组二中每组顶点的生成子图,用算法一求出近似最优解及相应的巡视路线.使用算法一时,在每个子图所构造的完备图中,取一个尽量包含图2中树上的边的H圈作为其第2步输入的初始圈.分组二的近似解见表1.因为该分组的均衡度0α=()()()121,2,3241.9125.5m ax 241.9i i C C C ωωω=--==54.2%所以此分法的均衡性很差.为改善均衡性,将第Ⅱ组中的顶点C ,2,3,D ,4分给第Ⅲ组(顶点2为这两组的公共点),重新分组后的近似最优解见表2.因该分组的均衡度=0α()311,2,3216.4191.1m ax 216.4i i C C C ωωω=--==11.69%所以这种分法的均衡性较好.问题二 当巡视人员在各乡(镇)、村的停留时间一定,汽车的行驶速度一定,要在24h 内完成巡视,至少要分几组及最佳的巡视路线.由于T =2h ,t =1h ,V =35km/h ,需访问的乡镇共有17个,村共有35个.计算出在乡(镇)及村的总停留时间为17⨯2h+35h=69h ,要在24h 内完成巡回,若不考虑行走时间,有: 2469<i (i 为分的组数).得i 最小为4,故至少要分4组.由于该网络的乡(镇)、村分布较为均匀,故有可能找出停留时间尽量均衡的分组,当分4组时各组停留时间大约为69h 17.254=h ,则每组分配在路途上的时间大约为24h-17.25h=6.75h.而前面讨论过,分三组时有个总路程599.8km 的巡视路线,分4组时的总路程不会比599.8km 大太多,不妨以599.8km 来计算.路上时间约为599.8h 1735=h ,若平均分配给4个组,每个组约需417h=4.25h〈6.75h ,故分成4组是可能办到的.现在尝试将顶点分为4组.分组的原则:除遵从前面准则一、二、三外,还应遵从以下准则:准则四:尽量使各组的停留时间相等.用上述原则在图2上将图分为4组,同时计算各组的停留时间,然后用算法一算出各组的近似最佳推销员巡回,得出路线长度及行走时间,从而得出完成巡视的近似最佳时间.用算法一计算时,初始圈的输入与分3组时同样处理.这4组的近似最优解见表3.加框的表示此点只经过不停留.该分组实际均衡度0α==-74.2269.2174.22 4.62%可以看出,表3分组的均衡度很好,且完全满足24h 完成巡视的要求.。
-利用数学建模浅谈汶川地震某区域搜救路线问题
-----------------------------------Docin Choose -----------------------------------豆 丁 推 荐↓精 品 文 档The Best Literature----------------------------------The Best Literature豆 丁 推 荐↓精 品 文 档The Best Literature----------------------------------The Best Literature利用数学建模浅谈汶川地震某区域搜救路线问题安然刘春洁王明旭(黑龙江建筑职业技术学院,黑龙江哈尔滨150000)引言5.12汶川大地震使震区地面交通和通讯系统严重瘫痪。
救灾指挥部紧急派出多支小分队,到各个指定区域执行搜索任务,以确定需要救助的人员的准确位置。
在其它场合也常有类似的搜索任务。
为了加快速度,搜索队伍有50人,拥有3台卫星电话,分成3组进行搜索。
每组可独立将搜索情况报告给指挥部门。
我们想得到最短的时间。
我们的忠旨就是在最短的时间救最多的人,所以我们采用上述的疏散方法,散开时我们每个队员都配发指令,一号到十九号行走一定路程就开始进行搜查行动,而二十号队员始终以搜查速度前进,而这样就导致20号队员落后,我们通过搜查开始的第一次转弯,进行计算,我们得出了搜索路线,先把20人行走的路线看为一条直线,但是所进行的不是地毯式搜索,原因在于地毯式搜索要求同时出发,而如果同时出发就会浪费更多的时间。
我们考虑多种路线,首先从大的方向考虑,就是三组的排法,都想到了(20.20.10)(15.15.20)(10.10.30)(18.18.14)等等。
下面我们就其中一种分析并考虑其时间,然后算出每一条路线的时间,最后进行比较,由于我们分三组,所以要考虑每组在每个队形中的分散方法,以保证在最开始就节省大量时间,下面对(15.15.20)这种分组方法进行分析,散开方法有两种,一个是从中间散开,一个是一列散开,当从中间散开时,我们拥有两个分别搜查散开路线的人,只是我们行走时就有两人落后,但是对于每个转折点都可以追查回来,就会形成双点化线路线,然后去走,但是这时我们的区域就不相同了,因为有一个不同的,我们就要对20人队的区域安人分组,同时也要把两个15对一组的按一定区域路线分开,所以我们就能得得到不同区域和不同路线两种大框,就不同区域先把大框画出来,然后就每块区域进行图画,画出路线,避免重复路线,避免让人少的走大区域,这是可以按理论的方法把行走路线画出来的。
[汇总]数学建模案例分析5.建模案例:最佳灾情巡视路线
建模案例:最佳灾情巡视路线这里介绍1998年全国大学生数学模型竞赛B题中的两个问题.一、问题今年夏天某县遭受水灾.为考察灾情、组织自救,县领导决定,带领有关部门负责人到全县各乡(镇)、村巡视.巡视路线指从县政府所在地出发,走遍各乡(镇)、村,又回到县政府所在地的路线.1.若分三组(路)巡视,试设计总路程最短且各组尽可能均衡的路线.2.假定巡视人员在各乡(镇)停留时间T=2h,在各村停留时间t=1h,汽车行驶速度V=35km/h.要在24h内完成巡视,至少应分几组;给出这种分组下最佳的巡视路线.乡镇、村的公路网示意图见图1.图1二、假设1.汽车在路上的速度总是一定,不会出现抛锚等现象;2.巡视当中,在每个乡镇、村的停留时间一定,不会出现特殊情况而延误时间;3.每个小组的汽车行驶速度完全一样;4.分组后,各小组只能走自己区内的路,不能走其他小组的路(除公共路外).三、模 型 的 建 立 与 求 解将公路网图中,每个乡(镇)或村看作图中的一个节点,各乡(镇)、村之间的公路看作图中对应节点间的边,各条公路的长度(或行驶时间)看作对应边上的权,所给公路网就转化为加权网络图,问题就转化为在给定的加权网络图中寻找从给定点O 出发,行遍所有顶点至少一次再回到O 点,使得总权(路程或时间)最小,此即最佳推销员回路问题.在加权图G 中求最佳推销员回路问题是NP —完全问题,我们采用一种近似算法求出该问题的一个近似最优解,来代替最优解,算法如下:算法一 求加权图G (V ,E )的最佳推销员回路的近似算法:1. 用图论软件包求出G 中任意两个顶点间的最短路,构造出完备图),(E V G '',()E y x '∈∀,, ()(),,G x y mind x y ω=;2. 输入图G '的一个初始H 圈;3. 用对角线完全算法产生一个初始H 圈;4. 随机搜索出G '中若干个H 圈,例如2000个;5. 对第2、3、4步所得的每个H 圈,用二边逐次修正法进行优化,得到近似最佳H 圈;6. 在第5步求出的所有H 圈中,找出权最小的一个,此即要找的最佳H 圈的近似解.由于二边逐次修正法的结果与初始圈有关,故本算法第2、3、4步分别用三种方法产生初始圈,以保证能得到较优的计算结果.问题一 若分为3组巡视,设计总路程最短且各组尽可能均衡的巡视路线.此问题是多个推销员的最佳推销员回路问题.即在加权图G 中求顶点集V 的划分12,,,n V V V ,将G 分成n 个生成子图[][][]12,,...,n G V G V G V ,使得(1)顶点i V O ∈, i =1,2,3,…,n ;(2)()G V V n i i == 1 ;(3)()()(),max max i j i ji i C C C ωωαω-≤,其中i C 为i V 的导出子图[]i V G 中的最佳推销员回路,()i C ω为i C 的权,i ,j =1,2,3,…,n ;(4)()1n i i C ω=∑取最小.定义 称()()(),0m a x m a x i j i j i i C C C ωωαω-=为该分组的实际均衡度.α为最大容许均衡度.显然100≤≤α,0α越小,说明分组的均衡性越好.取定一个α后,0α与α满足条件(3)的分组是一个均衡分组.条件(4)表示总巡视路线最短.此问题包含两方面:第一,对顶点分组;第二,在每组中求最佳推销员回路,即为单个推销员的最佳推销员问题.由于单个推销员的最佳推销员回路问题不存在多项式时间内的精确算法,故多个推销员的问题也不存在多项式时间内的精确算法.而图中节点数较多,为53个,我们只能去寻求一种较合理的划分准则,对图1进行粗步划分后,求出各部分近似最佳推销员回路的权,再进一步调整,使得各部分满足均衡性条件(3).图2 O点到任意点的最短路图(单位:km)从O点出发去其他点,要使路程较小应尽量走O点到该点的最短路.故用图论软件包求出O点到其余顶点的最短路,这些最短路构成一棵以O为树根的树,将从O点出发的树枝称为干枝,见图2,从图中可以看出,从O点出发到其它点共有6条干枝,他们的名称分别为①,②,③,④,⑤,⑥.根据实际工作的经验及上述分析,在分组时应遵从以下准则:准则一:尽量使同一干枝及其分枝上的点分在同一组;准则二:应将相邻的干枝上的点分在同一组;准则三:尽量将长的干枝与短的干枝分在同一组.由上述分组准则,我们找到两种分组形式如下:分组一:(⑥,①),(②,③),(⑤,④);分组二:(①,②),(③,④),(⑤,⑥).显然分组一的方法极不均衡,故考虑分组二.对分组二中每组顶点的生成子图,用算法一求出近似最优解及相应的巡视路线.使用算法一时,在每个子图所构造的完备图中,取一个尽量包含图2中树上的边的H圈作为其第2步输入的初始圈.分组二的近似解见表1.因为该分组的均衡度0α=()()()121,2,3241.9125.5max 241.9i i C C C ωωω=--==54.2%所以此分法的均衡性很差.为改善均衡性,将第Ⅱ组中的顶点C ,2,3,D ,4分给第Ⅲ组(顶点2为这两组的公共点),重新分组后的近似最优解见表2.因该分组的均衡度=0α()311,2,3216.4191.1max 216.4i i C ω=-==11.69%所以这种分法的均衡性较好.问题二 当巡视人员在各乡(镇)、村的停留时间一定,汽车的行驶速度一定,要在24h 内完成巡视,至少要分几组及最佳的巡视路线.由于T =2h ,t =1h ,V =35km/h ,需访问的乡镇共有17个,村共有35个.计算出在乡(镇)及村的总停留时间为17⨯2h+35h=69h ,要在24h 内完成巡回,若不考虑行走时间,有: 2469<i(i 为分的组数).得i 最小为4,故至少要分4组.由于该网络的乡(镇)、村分布较为均匀,故有可能找出停留时间尽量均衡的分组,当分4组时各组停留时间大约为69h 17.254=h ,则每组分配在路途上的时间大约为24h-17.25h=6.75h.而前面讨论过,分三组时有个总路程599.8km 的巡视路线,分4组时的总路程不会比599.8km 大太多,不妨以599.8km 来计算.路上时间约为599.8h 1735=h ,若平均分配给4个组,每个组约需417h=4.25h 〈6.75h ,故分成4组是可能办到的.现在尝试将顶点分为4组.分组的原则:除遵从前面准则一、二、三外,还应遵从以下准则:准则四:尽量使各组的停留时间相等.用上述原则在图2上将图分为4组,同时计算各组的停留时间,然后用算法一算出各组的近似最佳推销员巡回,得出路线长度及行走时间,从而得出完成巡视的近似最佳时间.用算法一计算时,初始圈的输入与分3组时同样处理.这4组的近似最优解见表3.表3(路程单位:km ;时间单位:h )加框的表示此点只经过不停留.该分组实际均衡度0α==-74.2269.2174.22 4.62% 可以看出,表3分组的均衡度很好,且完全满足24h 完成巡视的要求.。
灾区巡视--最佳路线-选择问题-数学建模
灾难最佳巡视路线摘要本文解决的是对全县的乡镇和村庄进行灾情巡视最佳线路的求解问题,多旅行售货问题。
问题一是三个旅行售货问题,问题二是四个旅行售货问题。
我们可以运用图论的知识并且考虑气均衡性,建立起约束最优化线路模型来解决这个问题。
关键词:Hamilton圈多旅行售货问题最小生成树问题今年夏天该县遭受水灾。
为考察灾情、组织自救,县领导决定,带领有关部门负责人到全县各乡(镇)、村巡视。
巡视路线指从县政府所在地出发,走遍各乡(镇)、村,又回到县政府所在地的路线。
1.若分三组(路)巡视,试设计总路程最短且各组尽可能均衡的巡视路线。
2.假定巡视人员在各乡(镇)停留时间T=2小时,在各村停留时间t=1小时,汽车行驶速度V=35公里/小时。
要在24小时内完成巡视,至少应分几组;给出这种分组下你认为最佳的巡视路线。
1.问题重述问题1:若分三组(路)巡视,试设计总路程最短且各组尽可能均衡的巡视路线图问题2:假定巡视人员在各乡(镇)停留时间T=2小时,在各村停留时间t=1小时,汽车行驶速度V=35公里/小时。
要在24小时内完成巡视,至少应分几组;给出这种分组下你认为最佳的巡视路线。
问题3:在上述关于T , t和V的假定下,如果巡视人员足够多,完成巡视的最短时间是多少;给出在这种最短时间完成巡视的要求下,你认为最佳的巡视路线。
问题4:若巡视组数已定(如三组),要求尽快完成巡视,讨论T,t和V改变对最佳巡视路线的影响。
2.模型的假设及符号说明2.1模型假设假设1:假设汽车在路上以V匀速行驶,且不停留,不考虑故障,忽略外部因素影响假设2:巡视过程中除了正常停留外,没有因其它因素造成时间延误假设3:巡视路线可以重复假设4:对于要多次经过的乡(镇)或村只停留一次假设5:每个巡视人员只能走自己划分区域内的路线2.2符号说明G:表示加权图Gi:表示子图V:表示顶点,每一个乡(镇)或村看成一个点E:表示边,乡(镇)或村之间的路线w(x,y):表示权重,乡(镇)或村之间的距离S:表示回路路程总和ə:表示路程均衡度Li:表示每一条子回路T:表示在每个乡(镇)停留的时间I:表示在每个村停留的时间Ti:表示第i组的巡视时间V:表示汽车行驶速度Z:表示划分的区域数N:表示乡(镇)的数目N:表示村的数目Ni:表示第i组巡视乡(镇)的数目Ni:表示第i组巡视村的数目M:表示所分的组数v :表示时间均衡度3.问题分析本文研究的是最佳巡视路线设计问题,要求从O点出发巡视完所有乡(镇)村后,在回到O点,此问题可以转化为旅行商问题,再设计相应的算法求解针对问题一:问题一要求设计3组巡视总路程最短且尽可能均衡,首先我们通过主观筛选法将原图划分为3个子图,每个子图顶点数大约为17个,相邻的点划在一个子图中,且尽量使每个子图构成一个回路,这样将原问题转化为单旅行商问题求解针对问题二:问题二在问题一的基础上加了时间的限制,在每一个顶点都有停留时间,且在24小时巡视完。
新能源哈密尔顿模型与暂态稳定控制
新能源哈密尔顿模型与暂态稳定控制
新能源电力系统的逐步普及使得传统的稳定控制技术不再适用于该系统。
因此,新的
稳定控制技术的开发变得至关重要。
哈密尔顿模型是一种创新的控制技术,它可以在新能
源电力系统中实现快速准确的稳定控制。
哈密尔顿模型是一种基于能量的控制技术,它将系统视为一个物理模型,能量通过机
械动量和势能的相互作用来表示。
通过该模型,可以将控制任务转换为能量最小化问题,
从而实现对系统的稳定控制。
在新能源电力系统中,哈密尔顿模型可以提供比传统控制技术更高效、更准确的控制,因为它可以解决系统中的非线性、不确定性和时变性问题。
此外,哈密尔顿模型还可以同
时考虑多个状态变量,例如电压、频率和功率等。
因此,它非常适合于实现新能源电力系
统的稳定控制。
暂态稳定控制是新能源电力系统中最重要的控制任务之一。
它是指系统从大幅度扰动(例如短路或发电机故障)后能够快速地恢复到稳定状态的能力。
在这种情况下,哈密尔
顿模型可以实现快速准确的控制,从而保证系统的暂态稳定性。
与传统控制技术相比,哈密尔顿模型的优势在于它可以自适应地调整控制策略,从而
适应不同的工作条件和环境。
此外,由于哈密尔顿模型是基于能量的控制技术,因此它可
以最小化系统的总能量消耗,提高系统的能效。
灾情巡视路线模型
灾情巡视路线模型
杨文亮;周群星;赵利峰
【期刊名称】《思茅师范高等专科学校学报》
【年(卷),期】1999(015)004
【摘要】利用图论的有关知识、破圈法寻求灾情巡视模型的解答,并对其进行逐步调整,以求达到最佳结果.进一步对模型的四个问题作了深入细致的分析.
【总页数】8页(P23-30)
【作者】杨文亮;周群星;赵利峰
【作者单位】思茅师专数理系学生,云南思茅,665000;思茅师专数理系学生,云南思茅,665000;思茅师专数理系学生,云南思茅,665000
【正文语种】中文
【中图分类】O157.5
【相关文献】
1.最佳灾情巡视路线的数学模型 [J], 王传玉;徐赤东;汪术文;杨双根;汪军;张辉
2.灾情巡视最优路线的寻径算法 [J], 刘长河
3.灾情巡视最优路线的寻径算法 [J], 刘长河
4.灾情巡视路线网络模型 [J], 杨溪;王海龙;谭学平
5.灾情巡视最佳路线模型 [J], 杨胤清;童强;詹小英
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数学建模》课程论文学生潘在裕成绩灾情巡视路线模型摘要本题所研究的分组巡视的最佳路线与多个旅行推销员的问题相似,但也有不同,因为此题还有均衡性要求。
这是一类图上的点的遍历性问题,即用若干条闭链覆盖图上所有的顶点,并使某些指标达到最优。
首先,将乡村公路示意图转化为赋权连通图,并通过最小生成树法将原权图划分为若干个子图,然后,利用Hamilon圈法分别求出各个子图的最佳巡视路线。
最后,利用本文中自定义的均衡度公式:()()max min()100%,maxA AAAα-=⨯为各组巡视路程或时间组成的集合,来衡量分组的均衡性,如果均衡度越小,那么分组的均衡性就越好,据此来判断分组是否满足题意。
而题中,在基于最小生成树法将原权图划分为若干个子图的划分情况下,就必然使得总巡视路程相对较短,而均衡度不够令人满意,此时根据实际需要,若要使总巡视路程优先,达到相对较短,则采用原划分的子图分组;若要使均衡度优先,达到满意要求,则我们可以对各分组部分边界点进行重划分调整。
针对问题一,我们分别采用直观分析法和最小生成树法求解并得到不同的结果。
若分三组巡视,最小生成树法求解各组的巡视路程分别为159.3km、242.2km、186.4km,总路程为587.9km,路程均衡度为34%。
此结果下的总路程相对较短,而均衡度偏高。
如果要优先考虑均衡度,在最小生成树法求解发改进的基础上得到:194.0km、205.3km、206.8km,总路程为606.1km,路程均衡度为6.2%。
针对问题二,基于计算可以发现至少分4组,并求出了各组的最佳巡视路线。
各组巡视的路程和时间分别为125.5km/19.6h、154.3km/22.4h、203.9km/23.8h、158.8km/21.5h,时间均衡度为18%。
针对问题三,我们选取了巡视离县城最远的乡镇(点H)所需的时间6.4小时作为最短巡视时间,当巡视比较偏僻的乡村时,汽车从县镇府出发直至到达终点,中途不会停留,仅在终点站停留T(或t)小时,然后按原路返回,到达沿途各站接回巡视人员。
基于最短巡视时间和制定的分组原则得到巡视人员至少需分成7组。
针对问题四,实际上是一个变量讨论问题。
在分析乡(镇)停留时间T,村庄停留时间t和汽车行驶速度v的改变对最佳巡视路线的影响时,我们通过控制不同变量的变化,初步的得出了当T与t变化时和v变化时对最佳巡视路线的影响。
最后,我们对模型进行了评价和推广,使其更具有实用价值。
【关键词】:均衡度最小生成树Hamilon圈最佳巡视路线一、问题重述下图为某县的乡(镇)、村公路网示意图,公路边的数字为该路段的公里数。
今年夏天该县遭受水灾。
为考察灾情、组织自救,县领导决定,带领有关部门负责人到全县各乡(镇)、村巡视。
巡视路线指从县政府所在地出发,走遍各乡(镇)、村,又回到县政府所在地的路线。
问题一:若分三组(路)巡视,试设计总路程最短且各组尽可能均衡的巡视路线。
问题二:假定巡视人员在各乡(镇)停留时间T=2小时,在各村停留时间t=1小时,汽车行驶速度v=35公里/小时。
要在24小时内完成巡视,至少应分几组;给出这种分组下你认为最佳的巡视路线。
问题三:在上述关于T , t 和v 的假定下,如果巡视人员足够多,完成巡视的最短时间是多少;给出在这种最短时间完成巡视的要求下,你认为最佳的巡视路线。
问题四:若巡视组数已定(如三组),要求尽快完成巡视,讨论T ,t 和v 改变对最佳巡视路线的影响。
二、问题分析本题给出了某县的道路交通网络图,要求的是在不同条件下,灾情巡视的最佳分组方案和路线。
这是一类图上的点的遍历性问题,也就是要用若干条闭链覆盖图上所有的顶点,并使某些指标达到最优。
点的遍历性问题在图论中属于哈密顿问题和旅行推销员问题类似。
如果巡视人员只分一组,巡视路线是指巡视人员从县政府O 出发,走遍各乡(镇)、村最后油回到县镇府。
我们可以把该题抽象为图论的赋权连通问题,即有一赋权无向连通图(,)G V E ,且O V 。
两村之间的公路长度即为无向图的边权()w e 。
寻找最佳巡视路线,即在图(,)G V E 中找到一条包含O 点的回路,它至少经过所有的顶点一次且使得总路程(总时间)最短。
如果将巡视人员分成若干组,每组考察部分区域且所有乡(镇)、村都考察到,实际上就是将图(,)G V E 分为若干个连通的子图i G ,然后在每个子图中寻找到一条含O 点的最佳回路。
完成巡视的时间应是各组巡视中最长的时间,要想提高巡视的效率则应尽量使各组的巡视时间接近,反映在G 图分块时应尽量均衡。
三、模型假设1、公路不考虑等级差别,也不受灾情或交通情况的影响;2、各条公路段上汽车行驶的速度可以认为是均匀的;3、巡视人员在各乡(镇)、村停留的时间一定,不会出现特殊情况而延误时间;4、各巡视组巡视的乡(镇)、村不受行政区划的影响,即某乡(镇)与隶属于它的村不一定要分在同一组内5、忽略不计巡视人员上、下车所用的时间;6、当巡视比较偏僻的乡村时,汽车从县镇府出发直至到达终点,中途不会停留,仅在终点站停留T (或t )小时,然后按原路返回,到达沿途各站接回巡视人员。
四、符号约定k : 巡视人员的分组数;(,)G V E :赋权连通图;i G :赋权连通图的第i 个子图(1,2,)i = ,k ; i L :子图i G 中的最佳回路;i c :最佳回路i L 的各边权之和;i h :最佳回路i L 的巡视时间;ij w :第i 个乡、村到第j 个乡、村的距离(j 1,2,53)i = ,,; T :巡视员在各乡(镇)的停留时间; t :巡视人员在各村停留的时间;v :汽车行驶的速度,单位公里/小时。
五、模型建立及模型求解5.1问题一模型的建立及求解:5.1.1模型一的建立与求解(直观分析法):根据题中所给的乡(镇)、村示意图对地理位置进行粗略的划组分析。
很显然,由于县政府位置偏向东面,则若分成三组巡视,县城远离的一边分为两块的可能性比邻近县城的一边大得多,这样就可以得到手工给出的三组巡视路线图见表1:表1为了衡量分组的合理性,于是我们定义分组的路程均衡度公式 :()()()123123123max ,,min ,,max ,,c c c c c c c c c α-=;显然01α≤≤,α值越小,说明分组的均衡性越好。
由此我们可以得到采用直观分析法时的均衡度123%α=。
5.1.2模型二的建立与求解(基于最小生成树法) 现要分三组巡视,则需要把图G 分成三个子图(1,2,3)i G i=,在每个子图i G 中寻找最佳回路(1,2,3)i L i =。
因为最小生成树中能包含图G 中所有的顶点E ,而且最小树的边权是相邻两顶点间的距离,它描述了顶点之间的相近程度,故可以采用最小生成树进行分组。
本模型的主要思想是:首先采用Prim 算法得到G 图的最小生成树,然后基于最小生成树生成一个可行的巡视路线,求得路线的最优总路程为。
采用Prim 算法求解最小生成树步骤如下: (1)输入加权连通图G 的带权邻接矩阵((,))n n A a i j ⨯=;(2)建立初始候选边表, B T←∅;(3)在候选边表中选出最短边(,),(,)u v T T u v ←⋃;(4)调整候选边表B ;(5)重复(2),(3),直到T 含有1n -条边。
根据Prim 算法进行编程求解(具体程序见附录1),于是我们得到G 图的最小生成树如图1。
图1G并使得分解结果尽现对已得到的最小生成树进行分解,以获得三个子图i量均衡。
由于在最小生成树上,边权接近可以近似认为均衡即各子图包含的顶点数应接近。
因此,各个子图的顶点数应尽量接近17个,且遵循以下分解原则。
最小生成树分解原则:G的顶(i)分解点为O点或尽可能地接近O点;(ii)分解所得的三个子图i点数尽可能地接近17个;(iii)尽量是分解所得的子图是连通图;(iv)尽量使G与点O的最短路上的点在该子图内,且尽量使各子图的点在子图内部形子图i成环路。
依据以上分解原则得到的分解结果如图2。
图2然后,采用哈密顿回路法求解每个子图内的最佳巡视路线。
寻找最佳巡视路线实际上就是在赋权图中寻找最优的哈密顿圈,包含图G 的每个顶点的圈陈为哈密顿圈。
于是问题就可以转化为:现已知三个子图内乡、村与乡、村之间的距离,从县镇府O 出发,经过子图内的所有乡、村,最后又回到点O 。
现在讨论如何将寻找最佳巡视路线问题表述成整数规划问题。
但是,对于规模较大的寻找最佳巡视路线问题,这里的表述会显得笨拙且效率低下。
决策变量定义为:1 0 ij x ⎧=⎨⎩,选择从城市i 到城市j ,否则;其线性(整数)规划模型目标函数为:11min n nij ij i j fw x ===∑∑。
目标函数给出了哈密顿圈的总长度,并使其最小。
约束式11niji x==∑保证只能到达每个城市一次,约束式11nijj x==∑保证只能离开一个城市一次,约束式1i j ij nx n μμ-+≤-( ,i j μμ为自定义变量)是表述问题的关键,它确保:(1)由解得到的任何圈一定包含城市1(即县镇府点O );(2)包含全部城市的圈是可行的。
于是,约束条件概括为:111 j=1,2,,n 1 i=1,2,,n . 1 i j, i,j=2,3,,n 0 1 i j, i,j=1,2,,n 0 j=1,2,,n 53nij i nij j ij ijij j x x s t nx n x n μμμ==⎧=⎪⎪⎪=⎪⎪⎨-+≤-≠⎪⎪=≠⎪≥⎪⎪=⎩∑∑ ,,,或, ,按照上述思想写出相应的Lingo 程序(程序见附录2)求解得到三组巡视路线图见表2:表2由此我们可以得到采用最小生成树法时的路程均衡度234%α=。
从上述图表中不难看出,第二组走的路程过长而第一组走的路程过短,两者之间的差值较大,也就是说这样分组的均衡性较差。
因此,我们需在基于最小生成树的原则之上对原来的分组进行适当的调整。
为了缩小第一、二组间的路程差,首先,我们将第二组的28点和N 点分到第一组;然后,再采用Hamilton 圈法分别求解三个子图内的最佳回路;最后,采用Lingo 编程求解得到初步改进后三组巡视路线图见表3。
表3由此,可以计算出对模型二初步改进后的分组的均衡度为:217.2%α'=。
分析表3可知,第二组与第三组走的路程间的差值还是比较大,也就是说这样分组的均衡性还有待改善。
于是,我们在基于最小生成树的原则之上对初步改进后的分组进行适当的调整。
为了缩小第二、三组间的路程差,首先,我们将第二组的H 点分到第三组;然后采用上述中同样的方法求解得到最终改进后各组的巡视路线图见表4。
表4由此,可以计算出对模型二最终改进后的分组的均衡度为:26.2%α''=。