1、1,图论及其应用,应用数学学院,2,第一章 图的基本概念,本次课主要内容,最短路算法、图的代数表示,(一)、最短路算法,(二)、图的代数表示,1、图的邻接矩阵,2、图的关联矩阵,3,1、相关概念,(1) 赋权图,(一)、最短路算法,在图G的每条边上标上一个实数w (e)后, 称G为边赋权图。被标上的实数称为边的权值。,若H是赋权图G的一个子图,称 为子图H的权值。,权值的意义是广泛的。可以表示距离,可以表示交通运费,可以表示网络流量,在朋友关系图甚至可以表示友谊深度。但都可以抽象为距离。,4,(2) 赋权图中的最短路,设G为边赋权图。u与v是G中两点,在连接u与v的所有路中,路中各边权值之和最
2、小的路,称为u与v间的最短路。,解决某类问题的一组有穷规则,称为算法。,(3) 算法,1) 好算法,算法总运算量是问题规模的多项式函数时,称该算法为好算法。(问题规模:描述或表示问题需要的信息量),算法中的运算包括算术运算、比较运算等。运算量用运算次数表示。,2) 算法分析,5,对算法进行分析,主要对时间复杂性进行分析。分析运算量和问题规模之间的关系。,2) 算法分析,2、最短路算法,1959年,但切西(Dantjig)发现了在赋权图中求由点a到点b的最短路好算法,称为顶点标号法。,t (an) : 点an的标号值,表示点 a1=a 到an的最短路长度,Ai =a1,a2, ., ai:已经标
3、号的顶点集合。,Ti : a1到ai的最短路上的边集合,算法叙述如下:,6,(1) 记 a=a1 , t(a1) =0, A1= a1, T1= ;,(2) 若已经得到 Ai = a1,a2, ai , 且对于 1ni,已知t(an),对每一个an Ai , 求一点:,使得:,(3) 设有mi ,1mii ,而bmi(i)是使 取最小值,令:,(4) 若ai+1=b ,停止,否则,记 ,转(2).,7,该算法的通俗说法为:,(1) 找出已标号顶点的未标号最近邻点:bn (i),(2) 把已标号顶点标号值与它到最近邻点的距离相加,和值最小者对应的最近邻点作为标号点,标号值为该和值。,8,时间复杂
4、性分析:,对第i次循环:步骤(2)要进行i次比较运算,步骤(3)要进行i次加法与i次比较运算。所以,该次循环运算量为3i .所以,在最坏的情况下,运算量为n2级,是好算法。,算法证明:,定理1:算法中的函数t(ai)给出了a与ai的距离。,证明:对i作数学归纳法。,(1) i=1时结论显然成立。,(2) 设对所有的j,1ji 时,t (aj)=d (a, aj).,(3) 考虑j=i,令P= v0 v1 vd , v0 = a ,vd =ai是连接a与ai的一条最短路,,9,于是d(P) = d (a, ai) ,令vn是P中第一个不在Ai-1中的点。由于,故这样的点vn存在。又因v0 Ai-
5、1知n1, 设 vn-1=ak, 则有ki-1.记P中由a到vn的一段的长度为l, a到vn-1的一段长度为l1.由归纳假设,有l1t(ak),且,其中ami-1由算法的第(3)步得到,1mi-1i-1.又由于 存在一条长度为t(ai) 联结的a与ai的路,可知,10,联合此两个不等式,即得:,由归纳法知定理成立。,例1 如图所示,求点a到点b的距离。,解 1. A1= a,t (a) = 0,T1 = ,2. b1 (1)= v3 ;,3. m1 = 1, a2 = v3 , t(v3) = t(a) + l(av3) = 1 (最小), T2 =av3;,11,2. A2 =a, v3,
6、b1 (2) =v1, b2 (2) =v2 ;,3. m2 = 1, a3 = v1 , t(v1) = t(a) + l(av1) = 2 (最小),,T3 =av3, av1;,2. A3 =a, v3, v1, b1 (3) =v2, b2 (3) =v2 , b3 (3) =v4 ;,3. m3 = 3, a4 = v4 , t(v4) = t(v1) + l(v1v4) = 3 (最小),,T4 =av3, av1, v1v4,2. A4 = a, v3, v1, v4,b1 (4) = v2,b2 (4) = v2,b3 (4) = v2, b4 (4) = v5 ;,3. m4
7、 = 4, a5 = v5 , t(v5) = t(v4) + l(v4v5) = 6 (最小),,T5 =av3, av1, v1v4, v4v5 ;,12,2. A5 = a, v3, v1, v4, v5,b1 (5) = v2,b2 (5) = v2,b3 (5) = v2 , b4 (5) = v2, b5 (5) = v2 ;,3. m5 = 4, t(v2) = t(v4) + l(v4v2) = 7 (最小),,T6 =av3, av1, v1v4, v4v5, v4v2;,2. A6 = a, v3, v1, v4, v5, v2, b2 (6) = v6, b4 (6) =
8、 b,b5 (6) = v6,b6 (6) = v6 ;,3. m6 = 6, a7 = v6 , t(v6) = t(v2) + l(v2v6) = 9 (最小),,T7 =av3, av1, v1v4, v4v5, v4v2, v2v6 ;,2. A7 = a, v3, v1, v4, v5, v2, v6, b4 (7) = b,b5 (7) =b,b7 (7) =b ;,3. m7 = 7, a8 = b , t(b) = t(v6) + l(v6b) = 11 (最小),,13,T8 =av3, av1, v1v4, v4v5, v4v2, v2v6, v6b;,于是知a与b的距离,
9、d (a, b) = t (b) = 11,由T8导出的a到b的最短路为:,课外作业,某公司在六个城市C1,C2,C3,C4,C5,C6中有分公司,从Ci到Cj的直接航程票价记在下述矩阵的(i, j)位置上,表示没有直接航程。,14,例2 某两人有一只8升的酒壶装满了酒,还有两只空壶,分别为5升和3升。求最少的操作次数。,解:设x1,x2,x3分别表示8,5,3升酒壶中的酒量。则,容易算出(x1,x2,x3) 的组合形式共24种。,每种组合用一个点表示,两点连线,当且仅当可通过倒酒的方式相互变换。,若各边赋权为1,则问题转化为在该图中求(8,0,0)到 (4,4,0)的一条最短路。结果如下:,
10、15,例3 在一河岸有狼,羊和卷心菜。摆渡人要将它们渡过河去,由于船太小,每次只能载一样东西。由于狼羊,羊卷心菜不能单独相处。问摆渡人至少要多少次才能将其渡过河?,分析:人,狼,羊,菜所有组合形式为:,但是以下组合不能允许出现:,狼羊菜,羊菜,狼羊,人,人狼,人菜,共6种。,岸上只能允许出现10种组合:,人狼羊菜,人狼羊,人狼菜,人羊,空,菜,羊,狼,狼菜,人羊菜。,每种情况用点表示;,16,两点连线,当且仅当两种情况可用载人(或加一物)的渡船相互转变。,于是,问题转化为求由顶点“人狼羊菜”到顶点“空”的一条最短路。,每条边赋权为1,结果为:,人狼羊菜狼菜人狼菜狼人狼羊羊 人羊空;,(2) 人
11、狼羊菜狼菜人狼菜菜人羊菜羊 人羊空。,17,(二)、图的代数表示,用邻接矩阵或关联矩阵表示图,称为图的代数表示。 用矩阵表示图,主要有两个优点: (1) 能够把图输入到计 算机中;(2) 可以用代数方法研究图论。,1、图的邻接矩阵,定义1 设G为n阶图,V=v1, v2, , vn,邻接矩阵A(G)=(aij),其中:,18,例如:写出下图G的邻接矩阵:,解:邻接矩阵为:,19,图G的邻接矩阵的性质,(1)非负性与对称性,由邻接矩阵定义知aij是非负整数,即邻接矩阵是非负整数矩阵;,在图中点vi与vj邻接,有vj与vi邻接,即aij =aji.所以,邻接矩阵是对称矩阵。,(2) 同一图的不同形
12、式的邻接矩阵是相似矩阵。,这是因为,同图的两种不同形式矩阵可以通过交换行和相应的列变成一致。,(3) 如果G为简单图,则A(G)为布尔矩阵;行和(列和)等于对应顶点的度数;矩阵元素总和为图的总度数,也就是G的边数的2倍。,20,(4) G连通的充分必要条件是:A(G)不能与如下矩阵相似,证明:1) 充分性,若不然:设A11对应的顶点是v1,v2, vk , A22对应的顶点为vk+1,vk+2, vn,显然,vi (1ik)与vj (k+1in)不邻接,即G是非连通图。矛盾!,2) 必要性,若不然:设G1与G2是G的两个不连通的部分,并且设 V(G1)=v1,v2,vk, V(G2)=vk+1
13、,vk+2,vn, 如果在写,21,G的邻接矩阵时,先排V(G1)中点,再排V(G2)中点,则G的邻接矩阵形式必为:,(5) 定理:设 ,则a ij (k)表示顶点vi到顶点 vj的途径长度为k的途径条数。,证明:对k作数学归纳法证明。,当k=1时,由邻接矩阵的定义,结论成立;,设结论对k-1时成立。当为k时:,一方面:先计算Ak ;,22,另一方面:考虑vi到vj的长度为k的途径,设vm是vi到vj的途径中点,且该点和vj邻接。则vi到vj的经过vm且长度为k的途径数目应该为:,所以,vi到vj的长度为k的途径数目为:,即为,例4 求下图中v1到v3的途径长度为2和3的条数。,23,解:由于
14、:,所以,v1到v3的途径长度为2和3的条数分别为:3和4。,推论: (1)A2的元素aii (2)是vi的度数,A3的元素aii (3)是含vi的三角形个数的2倍;,24,(2) 若G是连通的,对于i j , vi和vj间距离是使An的 aij (n)0的最小整数。,2、图的关联矩阵,(1) 若G是(n, m) 图。定义G的关联矩阵:,其中:,例如:,25,(2) 关联矩阵的性质,1) 关联矩阵的元素为0,1或2;,2) 关联矩阵的每列和为2;没行和为对应顶点度数;,3) 无环图G连通的充分必要条件是R(M) = n-1;,证明:,令:,由于M中每列恰有两个“1”元素,所有行向量的和为0(模
15、2加法运算)。所以:,26,另一方面:在M中任意去掉一行mk, 由于G是连通的,因此,mk中存在元素“1”, 这样,M中去掉行mk后的行按模2相加不等于零,即它们是线性无关的。所以:,所以:,若G不连通,假设G有两个连通分支G1与G2。又设G1与G2的关联矩阵分别为M1与M2, 则G的关联矩阵可以写为:,于是,R(M) =V(G1)-1+V(G2)-1=n-2,矛盾!,27,定义:在G的关联矩阵中删掉任意一行后得到的矩阵可以完全决定G,该矩阵称为G的基本关联矩阵。删掉的行对应的顶点称为该基本关联矩阵的参考点。,说明: (1) 图的关联矩阵及其性质是网络图论的基础,在电路分析中有重要应用;在第二章中再作一些相关介绍。,(2) 图的关联矩阵比邻接矩阵大得多,不便于计算机存储。但二者都有各自的应用特点。,28,作业,P29P30 16,29,Thank You !,