Prim算法在路由选择上的应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

重庆邮电大学课程小论文

2013学年第 1 学期

科目图论及其算法

姓名雷秋燕

学号 S130102006

院系通信工程学院

专业仪器科学与技术

图论中最小生成树在路由选择中的应用

摘要

在现代通信系统中,路由选择是直接关系到一个通信系统好坏的决定性因素,要综合考虑各种因素来做出路由选择,尽可能使用代价最小的算法。图论中的树

的概念,尤其是最小生成树在通信网中的具有很好的理论研究作用。本文就使用Prim算法在Visual C++ 6.0平台上进行了仿真,得到最小生成树。

关键词:路由;最小代价;图论;最小生成树

1 引言

由于生产管理、军事、交通运输等方面提出大量实际问题的需要,图论的理论及其应用研究得到飞速发展.各门科学已强烈地显示出数学化的趋势。当代计算机科学的发展与广泛运用,加速了数学向各个学科的渗透,尤其是网络理论的建立,图论与线性规划、动态规划等优化理论和方法的互相渗透,图论是体现这个特点的现代数学之一。图论提供的理论和方法应用于不同学科,各学科的发展又为图论提供新的概念,新的研究课题和新的研究方法。这样反复循环促使和丰富了图论的内容和应用。它在运筹学、通信网络的设计分析、电网络分析、印刷线路板分析、信号流图与反馈理论、计算机流程图、等众多领域都有成功的应用。当今社会是一个高度发达的信息社会,通信的重要性不言而喻。在通信系统的演进过程中,人们越来越意识到资源的重要性,所以近几年逐渐提出了“绿色通信”的口号。所谓“绿色”就是耗费的资源最少,代价最小。这里的代价一方面可以指比如工程造价上的最小,另一方面也可以指传输时延最小。图论的理论研究现在已经应用到通信的各个方面,比如在讨论蜂窝小区最大限度利用频谱效率时可以利用图着色原理等[5]。

2 图论的基本概念和原理

2.1 图的基本概念

图是用点和边来描述事物和事物之间的关系,是对实际问题的一种抽象.之所以用图来解决问题,是因为图能够把纷杂的信息变得有序、直观、清晰.自然界和人类社会中的大量事物以及事物之间的关系,常可用图形来描述.例如,物

质结构,电气网络,城市规划,交通运输,信息传输工作调配,事物关系等等都可以用点和线连起来所组成的图形来模拟并转化为图论的问题。

有序三元组G =(V,E,φ)称为一个图,其中:

(1) V是有穷非空集,称为顶点集,其元素叫做图的顶点;

(2) E称为边集,其元素叫做图的边;

(3)φ是从边集E到顶点集的有序或者无序对集合的映射,称为关联函数。在实际的路由系统中就可以认为两个通信点之间有实际存在的通路的才有边。2.2 权

边上有数的图称为加权图。设P(u,v)是赋权图G中从u到v的路径,则称w(p)=∑w(e)

e∈E为路径P的权。在表示通信网中路由选择时权值就可以代表路径长短或者代价大小。

2.3 最小生成树

连通加权图里权和最小的生成树为最小生成树。寻求最小生成树的问题有其实际背景,如在某一国家或地区,需建造一铁路网把一些城市联结起来,需要长度最短或者造价最低。常用的算法有普林(Prim)算法和克鲁斯卡尔(Kruskal)算法。

在本文的仿真中采用的是第一种算法。

2.4 Prim算法的基本思想

首先选择带最小权的边,把它放到树里。相继向树里添加带最小权的边,这些边与已在树里的顶点相关联,并且不与已在树里的边形成权。当已经添加了

n-1条边为止。

下面是其伪代码描述。

Procedure prim(G:带n个定点的连通无向图)

T:=权最小的边

for i:=1 to n-2

begin

e:=与T里顶点相关联的权最小的边,并且若添加到T里则不形成圈

t:=添加e之后的T

end{T是G的最小生成树}

3 通信网中路由问题的抽象分析

假设要在n个城市之间建立通信网络,则需要n-1条路线,即有中间需要经过多个路由。这时,自然会考虑一个问题,如何在代价最小的前提下建立选择通信路由线路。每两个城市之间都可以设置一线路,相应的定义一个代价,n个城市之间最多可以设置n(n−1)/2条线路,那么,如何在这些线路中选择n-1条,使得总代价最小。这个问题就是构造连通网的最小代价生成树

(Minimum Cost Spanning Tree),简称最小生成树(MST)问题。一棵最小生成树的代价就是各边代价之和。

在通信网络的路由选择中,不妨假设该通信网络中有n个通信点(用户或者城市),我们将每个通信点用一个点表示,则得顶点集合V={V1,V2,…,V n};若某通信点和另一通信点之间有线路相连则我们将这两点之间连上一条边,边集合即E={e ij=(V i,V j)|V i,V j∈V}。这样就利用点和边将通信网络抽象成图论当中的图,我们将其记为G(V,E)。对于图G(V,E)的每条边e ij=(V i,V j)的权值,我们就用这两点间所需要的通信代价表示,可是物理距离,可以是安全因子,延迟因子等。这样,要研究通信网络的最小代价问题,我们只需要在由实际情况抽象成的赋权图G(v,E)上研究即可。

首先,我们确保满足该通信网络中的每个用户的通信需要,则需要图上任意两个点间皆有路相连。这样,只要确保图G是一个连通图即可满足要求。

其次,如果两点间的边不止一条,即两个用户之间的线路不止一条,则我们本着最优的原则必定会选取线路短的那一条。因此,图G中肯定不能有重边,也就是图G的任意两个点之间的边最多只有一条。

再次,图G中不应该含有圈。因为将圈中任一条边去掉后,图G仍然保持连通,所有用户的通信需求仍然满足。因此,将该圈中去掉一条边之后,相当于是既保持了用户的通信需要又节省了资源,而且,在选择去掉一条边的时候我们可以选择该圈中最长的那条边优先去掉,从而达到最优化的目的。

最后,在设计中,任意两个用户之间我们都是可以连通的,所以图G可是任意两个点之间都有边相连的完全图,又要满足我们的前三个条件,则图G变成了一个连通的且没有重边和圈的简单图,这实际是一个树图,是原图G的一个生成树。通过以上讨论,我们可以得出这样一个结论:对于实际通信网络设计所抽象出来的图G而言它是一个完全图,本着最优化原则最终所要求的最优的方案即为求此图G的最小权值的生成树。

相关文档
最新文档