灾情巡视路线的数学模型
摘 要
本文研究的是根据某县的乡(镇)、村公路网示意图,如何在不同条件下制定出最佳灾情巡视方案的问题。
针对问题一:首先将公路网转化为一张无向赋权图并构造其邻接矩阵,然后根据Dijkstra算法求出任意两点间的最短距离及O点到其余顶点的最短路,最短路构成了一棵以O为树根的最小生成树,将干枝分为三组,每组各顶点间的最短路构成一个完备加权图,再建立混合整数规划模型求其最佳H圈。再逐步调整,使三组中路程较长者减小,最后得到三个组路程分别为204.9km、208.8km和205.3km,最长路程为208.8km,路程均衡度为1.9%,总路程为619km。
针对问题二:依题意至少需要4组,根据问题一中得到的最小生成树将顶点分为4组,利用问题一中的算法,求出每组的最佳H圈,然后逐步调整,使四组中用时较长者减小,最后得到四个组所用时间分别为21.9h、22.41h、22.12h和21.66h,最长时间为22.41h,时间均衡度为3.3%。
针对问题三:根据O点到最远点的距离确定时间上界,然后根据时间上界和到O点的距离由远及近确定最优巡视路线,得最优方案为分23组,巡视时间为6.43h,具体路径见问题三解答。
针对问题四:以问题二中所得结果为例,固定T,t和V中的两个量,改变一个量,求巡视时间与该变量间的关系,巡视时间与T,t和V的曲线图见解答四。
关键词:Dijkstra算法、最小生成树、加权完备图、最佳H圈、整数规划
1.问题重述
1.1问题背景
今年夏天该县遭受水灾。为考察灾情、组织自救,县领导决定,带领有关部门负责人到全县各乡(镇)、村巡视。巡视路线指从县政府所在地出发,走遍各乡(镇)、村,又回到县政府所在地的路线。 1.2需要解决的问题
问题一:若分三组(路)巡视,试设计总路程最短且各组尽可能均衡的巡视路线。
问题二:假定巡视人员在各乡(镇)停留时间T=2小时,在各村停留时间t=1小时,汽车行驶速度V=35公里/小时。要在24小时内完成巡视,至少应分几组;给出这种分组下你认为最佳的巡视路线。
问题三:在上述关于T , t和V的假定下,如果巡视人员足够多,完成巡视的最短时间是多少;给出在这种最短时间完成巡视的要求下,你认为最佳的巡视路线。
问题四:若巡视组数已定(如三组),要求尽快完成巡视,讨论T,t和V改变对最佳巡视路线的影响。
2.模型的假设
假设一:各组在巡视过程中,路途通畅,无任何延误时间。 假设二:各组行驶车速都相同,并且匀速行驶。
假设三:非本组巡视的乡(镇)或村只是路过,不作停留。
3.符号的说明
符号 T t V wij dij Zk L α sjk sj 符号说明 在乡(镇)的停留时间 在村的停留时间 汽车的速度 两相邻点i和j的距离 点i和点j的最短距离 第k组的最佳H圈的路程 第一问三个组中路程最大者 路程均衡度 第k组的巡视时间 几个组巡视时间的最大者,即完成巡视任务所需时间 4.问题分析
针对问题一:问题一是多个推销员问题,我们首先考虑对乡(镇)、村这些点进行分组,然后安排三组人进行巡视,将多个推销员问题转化为单个推销员问题。首先根据公路网图建立一个邻接矩阵储存相邻顶点间的距离,然后根据所得的邻接矩阵用Dijkstra算法求出任意两个顶点间的最短距离及O点到其余顶点间的最短路,再根据O点到其余顶点的最短路用Matlab画出以O为树根的最小生成树(程序见附录一),由最小生成树的树枝将顶点分为三组,根据每组各点间的最短
距离,构造一个完备加权图,即在一个完备加权图里面求最佳H圈,为TSP问题。再建立一个整数规划模型表示TSP问题,求解得出最佳H圈的路程和其对应的路径,最后逐步调整,是三组中巡视路程最长的减小,可得到一个近似最优解。
针对问题二,首先根据单个组的最小巡视路程和在各个停留点所需的总的停留时间计算出至少应分4个组,考虑到该图中乡(镇)和村分布均匀,故首先将52个要巡视的顶点平分为4组,然后如问题一求出每个组的最佳H圈的路程,根据改组的最佳H圈的路程和停留的时间可算出其巡视时间,然后逐步调整,使四个组中巡视时间最大的减小,可得到一个近似最优解。
针对问题三,在巡视人员充足的前提下,设计最佳巡视路线。先根据问题一中 得到的O点到最远点的距离确定巡视时间上界,然后再不超过时间上界的前提下,由远及近设计巡视路线,使巡视时间尽可能接近时间上界。
针对问题四,可以第二问的结果为例进行分析,固定T,t和V中的两个量,改变一个量,绘制出完成巡视任务所需时间随各个量得变化曲线图,观察其对完成巡视任务所需时间的影响,并进行分析。
5.数据分析
首先根据题目所给公路网图建立一个邻接矩阵,然后根据邻接矩阵用Dijkstra算法算出O点到其余顶点间的最短路,根据最短路可用Matlab函数画出以O为树根的最小生成树(程序见附录一),如下图,将树枝从左至右依次编号为①、②、③、④、⑤、⑥,
6.问题一的解答
6.1模型一的建立
问题一是多个推销员问题,可以转化为最佳H圈问题,再建立整数规划模型求解最佳H圈的路程及路径。首先根据邻接举证用Dijkstra算法求出任意两点间的最短距离及O点到其余顶点间的最短路,根据最短路画出以O为树根的最小生成树。Dijkstra算法如下:
Dijkstra算法:求G中从顶点u0到其预定点的最短路。 S:具有永久标号的顶点集。
对每一个顶点,定义两个标记(l(v),z(v)),其中: L(v):表示从顶点u0到v的一条路的权。 Z(v):v的父亲点,用以确定最短路的路线。 算法的过程就是在每一步改进这两个标记,使最终的l(v)为从顶点u0到v的最短路的权。输入为带权邻接矩阵W。
用上述算法求出的l(v)就是u0到v的最短路的权,从v的父亲点标记z(v)追溯到u0,就得到u0到v的最短路的路线。
如上图,可看出从O出发的共有六个干枝,将这六个干枝进行分组,分组时遵循以下三个准则。
准则一:尽量使长的干枝和短的干枝分为一组。 准则二:尽量把相邻干枝上的点分为一组。
准则三:尽量使使同一枝干及其分支上的点分为一组
根据该原则确定一个分组形式:(①⑥),(②③),(④⑤)。然后分别求每个组的最佳H圈。为求最佳H圈,应首先由给定的图G=(V,E)构造一个以V为顶点集的完备图权,即
,
的每条边(x,y)的权等于顶点x与y在途中最短路的
,这样就把在G中寻找最佳推销员回路问
题转化为在完备加权图G’中寻找最佳H圈,即TSP问题,我们将其转化为混合整数规划模型,建立了模型一。
6.1.1确定目标函数
6.1.1.3建立整数规划模型寻找最佳H圈
首先引入0-1整数变量:,
则目标函数为:
6.1.2确定约束条件
巡视i后必须要有一个即将巡视的确切乡(镇)或村;巡视j前必须要有一个刚刚巡视过的确切乡(镇)或村。用下面的两组约束分别实现上面的两个条件。
到此得到一个指派问题的整数规划模型,但这两个条件对于TSP来说并不充分,只是必要条件。因此要在原模型的基础上附加充分的条件以避免产生子巡回的方法。把额外变量
附加到问题中,可把这些变量看作是连续的(这
些变量在最优解中取整数值)。现附加下面形式的约束条件
综上所述,有以下约束条件:
6.1.3综上所述,得到问题一的最优化模型
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库灾情巡视的最短路 数学建模在线全文阅读。
相关推荐: