图与网络理论.ppt
《图与网络理论.ppt》由会员分享,可在线阅读,更多相关《图与网络理论.ppt(84页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七章图与网络理论第七章图与网络理论ABCDABCD第一节图的基本概念第一节图的基本概念 所谓图,就是顶点和边的集合,点的集合记为所谓图,就是顶点和边的集合,点的集合记为V=v1,v2,vn,边的集合记为,边的集合记为E=e1,e2,em ,vi称为图的顶点,称为图的顶点,ej称为图的边,若边称为图的边,若边ej联结联结vs和和vt,则记为则记为(vs,vt),即,即ej=(vs,vt)。则图可以表示为:则图可以表示为:G=(V,E),点代表被研究的事物,边代表事物之间的联系,点代表被研究的事物,边代表事物之间的联系,因此,边不能离开点而独立存在,每条边都有两个因此,边不能离开点而独立存在,每
2、条边都有两个端点。端点。在画图时,顶点的位置、边和长短形状都是无在画图时,顶点的位置、边和长短形状都是无关紧要的,只要两个图的顶点及边是对应相同的,关紧要的,只要两个图的顶点及边是对应相同的,则两个图相同。则两个图相同。有些有些图图的的边带边带有方向,有方向,这样这样的的图图称称为为有向有向图图。而而边边不不带带方向的方向的图图称称为为无向无向图图。图图7.7是一个无向是一个无向图图。图图7.8是一个有向是一个有向图图。v1v5v2v3v4e1e2e3e4e6e5e7图图7.7图图7.8 在一个图中,若在一个图中,若e=(u,v),则称,则称u,v是边是边e的的端点端点并并u,v称称相邻相邻称
3、称e是点是点u(v及点)及点)的的关联边关联边。若边。若边ei,ej有一个公共的端点有一个公共的端点u,称,称边边ei,ej相邻相邻。若边。若边e的两个端点是同一顶点,的两个端点是同一顶点,则称此边为则称此边为环环。若两顶点之间有多于一条的。若两顶点之间有多于一条的边,则这些边称为边,则这些边称为多重边多重边。如图。如图7.7中,中,e7是是环,环,e1,e2是多重边。是多重边。一个不含环和多重边的图称为一个不含环和多重边的图称为简单图简单图。含有多重边的图称为含有多重边的图称为多重图多重图。我们这里所说。我们这里所说的图,如不特别指明,都是简单图。的图,如不特别指明,都是简单图。以点以点v为
4、端点的边的条数称为点为端点的边的条数称为点v的的度度,记作,记作d(v),如图如图7.7中中d(v1)=3,d(v3)=1。度为零的点称为度为零的点称为弧立点弧立点,度为,度为1的点称为的点称为悬挂悬挂点点。悬挂点的边称为。悬挂点的边称为悬挂边悬挂边。度为奇数的点称为。度为奇数的点称为奇点奇点,度为偶数的点称为,度为偶数的点称为偶点偶点。不难证明:在一个图中,顶点度数的总和等不难证明:在一个图中,顶点度数的总和等于边数的倍,奇顶点的个数必为偶数。于边数的倍,奇顶点的个数必为偶数。链:链:由两两相邻的点及其相关联的边构成的点边序由两两相邻的点及其相关联的边构成的点边序列列;如如:v0,e1,v1
5、,e2,v2,e3,v3,vn-1,en,vn;v0,vn分别为链的起点和终点;分别为链的起点和终点;简单链:简单链:链中所含的边均不相同;链中所含的边均不相同;初等链:初等链:链中所含的点均不相同;链中所含的点均不相同;圈:圈:在链中,若在链中,若 v0=vn 则称该链为则称该链为圈圈;连通图:连通图:图中任意两点之间均至少有一图中任意两点之间均至少有一 条链相连条链相连,第二节树第二节树 树是一类结构简单而又十分有用的图。树是一类结构简单而又十分有用的图。一个不含圈的连通图称为树。一个不含圈的连通图称为树。设图设图T=(V,E),含有,含有n个顶点,则下列命个顶点,则下列命题是等价的。题是
6、等价的。(1)T是树。是树。(2)T的任意两顶点之间,有唯一的链相连。的任意两顶点之间,有唯一的链相连。(3)T连通且有连通且有n1条边。条边。(4)T无圈且有无圈且有n1条边。条边。(5)T无圈但添加一条边得唯一一圈。无圈但添加一条边得唯一一圈。(6)T连通但去掉一条边则不连通。连通但去掉一条边则不连通。给定图给定图G=(V,E),若,若V V,E E,并且并且E中的边的端点都属于中的边的端点都属于V ,则称,则称G=(V,E)是是G的一个子图。特别地,若的一个子图。特别地,若V=V,则称则称G为为G的支撑子图。的支撑子图。设设T是图是图G的一个支撑子图,若的一个支撑子图,若T是一树,是一树
7、,则称则称T是是G的一个支撑树。的一个支撑树。给定图给定图G=(V,E),对于对于G的每一条边,可的每一条边,可赋以一个实数赋以一个实数w(e),称为边,称为边e的权,图的权,图G连同连同它边上的权称为赋权图。赋权图在图论的应它边上的权称为赋权图。赋权图在图论的应用中经常出现。根据实际问题的需要,权可用中经常出现。根据实际问题的需要,权可以有不同的实际含义,它可以表示距离、流以有不同的实际含义,它可以表示距离、流量、时间、费用等。量、时间、费用等。给定图给定图G=(V,E),设设T=(V,E)是是G的一的一个支撑树,定义树个支撑树,定义树T的权为的权为即支撑树即支撑树T上所有边的权的总和。图上
8、所有边的权的总和。图G的最的最小支撑树就是图小支撑树就是图G中权最小的支撑树。中权最小的支撑树。求图求图G的最小支撑树的方法是建立在求的最小支撑树的方法是建立在求图图G的支撑树基础上,只需在求图的支撑树基础上,只需在求图G的支的支撑树的算法再加适当限制。因此,求最小撑树的算法再加适当限制。因此,求最小支撑树方法也有相应的支撑树方法也有相应的破圈法;避圈法破圈法;避圈法。例例2分别用破圈法,避圈法求图分别用破圈法,避圈法求图7.17的最小支撑树。的最小支撑树。图图7.17v1v5v2v3v42v6v7v83434623664585v1v5v2v3v42v6v7v83434623664585解破圈
9、法解破圈法v1v5v2v3v42v6v7v83434623664585避圈法:避圈法:第三节最短路问题第三节最短路问题 最短路问题,一般来说就是从给定的赋权最短路问题,一般来说就是从给定的赋权图中,寻找两点之间权最小的链(链的权即链中图中,寻找两点之间权最小的链(链的权即链中所有边的权之和)。许多优化问题都需要求图的所有边的权之和)。许多优化问题都需要求图的最短路,如选址、管道铺设、设备更新、整数规最短路,如选址、管道铺设、设备更新、整数规划等问题。由于所求问题不同,需要使用不同的划等问题。由于所求问题不同,需要使用不同的方法。下面我们介绍常用的算法。方法。下面我们介绍常用的算法。一、一、Di
10、jkstra算法算法 Dijkstra算法是求赋权有向图中,某两点算法是求赋权有向图中,某两点之间最短路的算法。实际上,它可以求某一点到之间最短路的算法。实际上,它可以求某一点到其它各点的最短路。它是其它各点的最短路。它是Dijkstra于于1959年提出。年提出。目前被认为是求非负权最短路的最好的算法。目前被认为是求非负权最短路的最好的算法。Dijkstra算法的基本思想是基于以下原理:算法的基本思想是基于以下原理:若若vs,vl,vj是是vs到到vj的最短路,的最短路,vi是此路中某一是此路中某一点,则点,则vs,vl,vi必是从必是从vs到到vi的最短路。此算法的最短路。此算法的基本步骤
11、是采用标号法,给图的基本步骤是采用标号法,给图G每一个顶点每一个顶点一个标号。标号分两种:一种是一个标号。标号分两种:一种是T标号,一种标号,一种是是P标号。标号。T标号也称临时标号,它表示从标号也称临时标号,它表示从vs到到这一点的最短路长度的一个上界,这一点的最短路长度的一个上界,P标号也称标号也称固定标号,它表示从固定标号,它表示从vs到这一点的最短路的长到这一点的最短路的长度(这里最短路长度是指这条路上个边权的和)度(这里最短路长度是指这条路上个边权的和)。算法每一步都把某点的。算法每一步都把某点的T标号改变为标号改变为P标号。标号。当终点得到当终点得到P标号,算法结束。若要求某点到标
12、号,算法结束。若要求某点到其它各点的最短路,则最多经过其它各点的最短路,则最多经过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标标号不止号不止一个,一个,则则可任取一个改可任取一个改为为
13、P标标号。号。(3)修改所有)修改所有T标标号号T(dj,vt);dj=min dj,dk+lk j,若若dk+lk jdj vt=vk否否则则不不变变。(4)当)当终终点或全部点或全部顶顶点都得到点都得到P标标号,号,算法算法结结束,否束,否则则返回(返回(2)。)。例例3求图求图7.20中,中,v1到到v8的最短路。的最短路。图图 7.20v4v2v1v3v6v5v7v89838342567671094图图 7.20v4v2v1v3v6v5v7v89838342567671094解解 P(0,0)T(9,v1)T(3,v1)T(8,v1)图图 7.20v4v2v1v3v6v5v7v8983
14、8342567671094解解 P(0,0)T(9,v1)T(7,v3)T(3,v1)T(8,v1)P(3,v1)图图 7.20v4v2v1v3v6v5v7v89838342567671094解解 P(0,0)T(9,v1)T(7,v3)T(8,v1)P(3,v1)P(7,v3)T(14,v6)T(16,v6)图图 7.20v4v2v1v3v6v5v7v89838342567671094解解 P(0,0)T(9,v1)T(8,v1)P(3,v1)P(7,v3)T(14,v6)P(9,v1)P(8,v1)T(17,v2)T(16,v6)图图 7.20v4v2v1v3v6v5v7v89838342
15、567671094解解 P(0,0)P(3,v1)P(17,v2)P(7,v3)T(14,v6)P(9,v1)P(8,v1)T(17,v2)T(16,v6)P(14,v6)P(16,v6)图图 7.20v4v2v1v3v6v5v7v89838342567671094解解 P(0,0)P(3,v1)P(17,v2)P(7,v3)P(9,v1)P(8,v1)P(14,v6)P(16,v6)例例4 求求图图7.22中,中,v1到其它各点的最短路。到其它各点的最短路。图图 7.22v4v2v1v3v6v5v7v8354263441517498Dijkstra算法同样可用于求无向图的最短路。算法同样可用
16、于求无向图的最短路。图图 7.22v4v2v1v3v6v5v7v8354263441517498解解 P(0,0)T(3,v1)T(4,v1)T(2,v1)图图 7.22v4v2v1v3v6v5v7v8354263441517498解解 P(0,0)T(3,v1)T(4,v1)T(2,v1)P(2,v1)T(7,v4)T(3,v4)P(3,v1)T(8,v2)T(9,v2)图图 7.22v4v2v1v3v6v5v7v8354263441517498解解 P(0,0)P(2,v1)T(7,v4)T(3,v4)P(3,v1)T(8,v2)T(9,v2)P(3,v4)T(6,v3)图图 7.22v4
17、v2v1v3v6v5v7v8354263441517498解解 P(0,0)P(2,v1)T(7,v4)P(3,v1)T(8,v2)P(3,v4)T(6,v3)P(6,v3)T(7,v6)T(15,v6)图图 7.22v4v2v1v3v6v5v7v8354263441517498解解 P(0,0)P(2,v1)T(7,v4)P(3,v1)P(3,v4)P(6,v3)T(7,v6)P(7,v6)T(15,v6)T(11,v5)P(7,v4)图图 7.22v4v2v1v3v6v5v7v8354263441517498解解 P(0,0)P(2,v1)P(3,v1)P(3,v4)P(6,v3)P(7,
18、v6)T(11,v5)P(7,v4)P(11,v5)图图 7.22v4v2v1v3v6v5v7v8354263441517498解解 P(0,0)P(2,v1)P(3,v1)P(3,v4)P(6,v3)P(7,v6)P(7,v4)P(11,v5)二、逐次逼近法二、逐次逼近法 前面介前面介绍绍的的Dijkstra 算法,只适用于算法,只适用于权权为为非非负负的的赋权图赋权图中求最短路中求最短路问题问题。逐次逼近。逐次逼近法可用于存在法可用于存在负权负权,但无,但无负负有向回路的有向回路的赋权赋权图图的最短路的最短路问题问题。因因为为,如果,如果dj是从是从v1到到vj的最短路的的最短路的长长度,
19、度,而而这这从条最短路的最后一条从条最短路的最后一条边为边为(vk,vj),则则从从v1到到vj的最短路中,从的最短路中,从v1到到vk这这一段,必然一段,必然也是从也是从v1到到vk的最短路的最短路。若其若其长长度度记为记为dk,lk j表示表示边边(vk,vj)的的权权,那么,那么dj,dk和和lk j应满应满足下足下列方程:列方程:逐次逼近法就是用迭代方法解逐次逼近法就是用迭代方法解这这个方个方程。第一次逼近是找点程。第一次逼近是找点v1到点到点vj由一条由一条边边所所组组成的最短路,其成的最短路,其长记为长记为dj(1);第二次;第二次逼近是求从逼近是求从v1到点到点vj不多于两条不多
20、于两条边组边组成的成的最短路,其最短路,其长记为长记为dj(2);以此;以此类类推,第推,第m次逼近是求从次逼近是求从v1到到vj不多于不多于m条条边组边组成的成的最短路,其最短路,其长记为长记为dj(m)。因因为图为图中,不含中,不含负负有向回路,所以从有向回路,所以从v1到到vj的最短路上最的最短路上最多有多有n-1条条边边。从而可知,最多做从而可知,最多做n-1次逼次逼近就可求出从近就可求出从v1到到vj的最短路。的最短路。逐次逼近法步逐次逼近法步骤骤如下:如下:(1)首先令首先令dj(1)=l1j(j=1,2,n),若,若v1 与与vj之之间间无无边时边时,lij=+,而,而ljj=0
21、;(3)若若对对所有的所有的j,有,有dj(m)=dj(m-1),则计则计算算结结束,束,dj(m)(j=1,2,n)即即为为v1到其它各到其它各点的最短路的点的最短路的长长度,否度,否则则返回(返回(2)。)。例例4求下图中,求下图中,v1到其它各点的最短路。到其它各点的最短路。v1 1 3 9 5 3 83 6 2v6 v5 v3 v4 v2 v1 1 3 9 5 3 83 6 2v6 v5 v3 v4 v2026 v1 1 3 9 5 3 83 6 2v6 v5 v3 v4 v20260 v1 1 3 9 5 3 83 6 2v6 v5 v3 v4 v202602 v1 1 3 9 5
22、3 83 6 2v6 v5 v3 v4 v202602 25 v1 1 3 9 5 3 83 6 2v6 v5 v3 v4 v202602 2510 v1 1 3 9 5 3 83 6 2v6 v5 v3 v4 v202602 25109 v1 1 3 9 5 3 83 6 2v6 v5 v3 v4 v202602 25109 v1 1 3 9 5 3 83 6 2v6 v5 v3 v4 v202602 2510902510810 v1 1 3 9 5 3 83 6 2v6 v5 v3 v4 v202602 25109025108100251089 v1 1 3 9 5 3 83 6 2v6
23、v5 v3 v4 v202602 251090251081002510890251089例例5求图求图7.24中,中,v1到其它各点的最短路。到其它各点的最短路。图图7.24v1v2v3v4v5v6v7v834-14-22545-3-2-4354jilijdj(1)dj(2)dj(3)dj(4)dj(5)dj(6)v1v2v3v4v5v6v7v8v1034000000v20-1-24333333v305422222v4204511111v50-2375555v6045333v7-3-40597777v8010877第四节最大流问题第四节最大流问题 给定一个有向图给定一个有向图G=(V,E),每
24、条边,每条边(vi,vj)给定一个非负数给定一个非负数cij称为边称为边(vi,vj)容量。容量。假设假设G中只有一个入度为零的点中只有一个入度为零的点vs称为发点,称为发点,只有一个出度为零的点只有一个出度为零的点vt称为收点,其余点称为收点,其余点称为中间点,这样的有向图称为容量网络,称为中间点,这样的有向图称为容量网络,记为记为G=(V,E,C)。例如例如图图7.25就是一个容量网就是一个容量网络络。如果。如果vs表示表示油田,油田,vt表示表示炼炼油厂,油厂,图图7.25表示从油田到表示从油田到炼炼油油厂的厂的输输油管道网。油管道网。边边上的数字表示上的数字表示该该管道的最大管道的最大
25、输输油能力,中油能力,中间间点表示点表示输输油油泵泵站。站。现现在要在要问问如何如何安排各管道安排各管道输输油量,才能使从油量,才能使从vs到到vt输输油量最大?油量最大?这这就是本就是本节节所要介所要介绍绍的最大流的最大流问题问题。图图 7.25v1v2v3v4vsvt541425378一、基本概念一、基本概念 给定一个容量网络给定一个容量网络G=(V,E,C),所谓网络,所谓网络G上的流,是指每条边上的流,是指每条边(vi,vj)上确定的一个数上确定的一个数f(vi,vj),简记为,简记为fij,称集合,称集合f=fij为网络为网络G上的一个流。上的一个流。如果网络如果网络G表示一个输油管
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 理论
限制150内