最佳灾情巡视路线模型 下载本文

内容发布更新时间 : 2024/5/26 2:31:04星期一 下面是文章的全部内容请认真阅读。

最佳灾情巡视路线模型

【摘要】 “图论”是组合数学的分支,它与其他的数学分支,如群论、矩阵论、拓扑学,数值分析有着密切的联系。在其它科学领域,如计算机科学、运筹学、电网络分析、化学物理以及社会科学等方面图论也具有越来越重要的地位,并已取得丰硕的成果。而且,图论的理论和方法在数学建模中也有重要应用。本文概述了一些常用的图论方法和算法,并通过举例(灾情巡视路线)说明其在数学建模中的应用。

【关键词】图论 灾情巡视 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→?Vi→?→Vj→?→Vk是从V1到Vk的最短路,则它的子路Vi→?→Vj一定是从Vi到Vj的最短路。否则从V1出发沿路p走到Vi,,然后沿Vi到Vj的最短路走到Vj再沿路P从Vj到Vk,这样得到一条新的从V1出发到Vk的路,其长度小于P,与P是最短路的假设矛盾。

1

1.3算法

设G为所有权都为正数的加权连通简单图。G带有顶点a=V0, V1 , ?Vn=z,权W(Vi, Vj) ,若(Vi, Vj)不是G中的边,则W(Vi, Vj) =∞

for i=1 to n L((Vi)= ∞ L(a)=0

S=Ф(初始化标记,a的标记为0,其它结点标记为∞,S 为空集)

当z不属于S时

begin

u=不属于S的L(u)最小的一个顶点

S=S∪{u}

对所有不属于S的顶点V if L(u)+W(u,v)

L(v)=L(u)+L(u,v) (这样就给S中添加带最小标记的顶点并且更新不在S中的顶点

的标记)

End (L(z)表示从a到z的最短路的长度)

这个算法经过n-1次循环后必定结束,计算量为1/2(n-1)(n-2),因而是个有效算法。

2最邻近算法

2.1问题来源

最邻近算法起源于旅行推销员问题,该问题实际上是求加权完全无向图中的访问每个顶点恰好一次且返回出发点的总权数最小的闭路,又称为最优Hamilton回路。如果我们将加权图中的结点看作城市,加权看作距离,旅行推销员问题就成为找出一条最短路线,使得旅行推销员从某个城市出发,沿着这条路线遍历每个城市一次最后再回到出发的城市。 2.2 算法

设G=(V,E)是一个赋权完全图,根据实际问题作如下规定:

对V(G)中的任何三个顶点U,V和X,满足W(UV)+W(VX)≥W(UX) (1) 任选一个顶点V0作起点,找一条与V0关联其权最小的一条边e1, e1的另一个端点记为V1,得一条路V0 V1;

2

(2) 设已选出路V0 V1?Vi,在V(G)-{ V0,V1?Vi}中取一个与Vi最近的相邻顶点Vi?1,得V0 V1?ViVi?1;

(3) 若i+1

设C= V1 V2?Vp V1是G的一个Hamilton回路。若存在i,j适合1

W(ViVj)+W(Vi?1Vj?1)

则Hamilton回路为

Cij= V1V2?ViVjVj?1?Vi?1Vj?1?VpV1

(它是由C删去边ViVi?1和VjVj?1添加边Vi Vj和Vi?1 Vj?1而得到的)其权和

W(Cij)=W(C)-W(ViVi?1)-W(VjVj?1)+W(ViVj)+W(Vi?1Vj?1)

3弗来里算法(Fleury)

3.1问题来源

邮递员从邮局出发,沿着邮路的每条街道分送信件,最后回到邮局。在这一过程中,邮递员希望以尽可能少的行程完成投递任务。这类问题首先由我国的管梅谷先生于1962年提出,故国际上称为中国邮递员问题。用图论语言来描述:一个连通加权图G(V,E,W),每一条边代表邮路中的每一条街道,每个顶点表示两条街道间的交叉点,每边的权表示街长。要找一条从邮局出发的回路,使之包含G的每一边至少一次,且该回路的权达到最小。 3.2算法

(1) 任意取一个顶点V0,令W0=V0;

(2) 假定迹Wi= V0 e1 V1?eiVi已经选出,那么用下列方法从E(G)

-{ e1,e2 , ?, ei}中选取ei?1: ① ei?1与Vi相连;

② 除非没有别的边可选择,ei?1不是Gi={ e1, e2, ?, ei}的割边; (3)当(2)不能执行时,停止。否则让i+1→ i.,转(2)。

3