- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章图与网络理论;第一节 图的基本概念;有些图的边带有方向,这样的图称为有向图。而边不带方向的图称为无向图。
图7.7是一个无向图。; 在一个图中,若e=(u,v) ,则称u,v是边e的端点.并u,v称相邻.称e是点u(v及点)的关联边。若边ei,ej有一个公共的端点u,称边ei,ej相邻。若边e的两个端点是同一顶点,则称此边为环。若两顶点之间有多于一条的边,则这些边称为多重边。如图7.7中,e7是环, e1, e2是多重边。
一个不含环和多重边的图称为简单图。含有多重边的图称为多重图。我们这里所说的图,如不特别指明,都是简单图。; 以点v为端点的边的条数称为点v的度,记作d(v),如图7.7中d(v1)=3, d(v3)=1。
度为零的点称为弧立点,度为1的点称为悬挂点。悬挂点的边称为悬挂边。度为奇数的点称为奇点,度为偶数的点称为偶点。
不难证明:在一个图中,顶点度数的总和等于边数的2倍,奇顶点的个数必为偶数。 ;第二节 树
树是一类结构简单而又十分有用的图。一个不含圈的连通图称为树。
设图T=(V,E),含有n个顶点,则下列命题是等价的。
(1)T是树。
(2)T的任意两顶点之间,有唯一的链相连。
(3)T连通且有n-1条边。
(4)T无圈且有n-1条边。
(5)T无圈但添加一条边得唯一一圈。
(6)T连通但去掉一条边则不连通。; 给定图G=( V, E) ,若V ’ ? V , E’? E,并且E’中的边的端点都属于V ’ ,则称G’=( V’ , E’)是G的一个子图。特别地,若V’ = V ,则称G’为G的支撑子图。
设T是图G的一个支撑子图,若T是一树,则称T是G的一个支撑树。
给定图G=( V, E),对于G的每一条边,可赋以一个实数w(e),称为边e的权,图G连同它边上的权称为赋权图。赋权图在图论的应用中经常出现。根据实际问题的需要,权可以有不同的实际含义,它可以表示距离、流量、时间、费用等。; 给定图G=( V, E), 设T =( V, E’)是G的一个支撑树,定义树T的权为;例2 分别用破圈法,避圈法求图7.17的最小支撑树。 ;v1;v1;第三节 最短路问题
最短路问题,一般来说就是从给定的赋权图中,寻找两点之间权最小的链(链的权即链中所有边的权??和)。许多优化问题都需要求图的最短路,如选址、管道铺设、设备更新、整数规划等问题。由于所求问题不同,需要使用不同的方法。下面我们介绍常用的算法。
一、Dijkstra算法
Dijkstra算法是求赋权有向图中,某两点之间最短路的算法。实际上,它可以求某一点到其它各点的最短路。它是Dijkstra于1959年提出。目前被认为是求非负权最短路的最好的算法。; Dijkstra算法的基本思想是基于以下原理:若vs,vl,…,vj是vs到vj的最短路, vi是此路中某一点,则vs,vl,…,vi必是从vs到vi的最短路。此算法的基本步骤是采用标号法,给图G每一个顶点一个标号。标号分两种:一种是T标号,一种是P标号。T标号也称临时标号,它表示从vs到这一点的最短路长度的一个上界,P标号也称固定标号,它表示从vs到这一点的最短路的长度(这里最短路长度是指这条路上个边权的和)。算法每一步都把某点的T标号改变为P标号。当终点得到P标号,算法结束。若要求某点到其它各点的最短路,则最多经过n-1步算法结束。 ;设lij表示边(vi,vj)的权,则Dijkstra算法步骤如下:
(1)给始点以P标号P(0,0),给其它各点vj以T标号T(dj, v1),其中,dj =l1j,(若vj与v1不相邻,则令l1j =+∞)。
(2)在所有T标号点中,若vk的T标号最小,则把vk的T标号改为P标号。若最小的T标号不止一个,则可任取一个改为P标号。;例3 求图7.20中,v1到v8的最短路。 ;图 7.20;图 7.20;图 7.20;图 7.20;图 7.20;图 7.20;例4 求图7.22中,v1到其它各点的最短路。;图 7.22;图 7.22;图 7.22;图 7.22;图 7.22;图 7.22;图 7.22;二、逐次逼近法
前面介绍的Dijkstra 算法,只适用于权为非负的赋权图中求最短路问题。逐次逼近法可用于存在负权,但无负有向回路的赋权图的最短路问题。
因为,如果dj是从v1到vj的最短路的长度,而这从条最短路的最后一条边为(vk, vj),则从v1到vj的最短路中,从v1到vk这一段,必然也是从v1到vk的最短路。若其长度记为
文档评论(0)