- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 图论及其应用 应用数学学院 * 第一章 图的基本概念 本次课主要内容 最短路算法、图的代数表示 (一)、最短路算法 (二)、图的代数表示 1、图的邻接矩阵 2、图的关联矩阵 * 1、相关概念 (1) 赋权图 (一)、最短路算法 在图G的每条边上标上一个实数w (e)后, 称G为边赋权图。被标上的实数称为边的权值。 若H是赋权图G的一个子图,称 为子图H的权值。 权值的意义是广泛的。可以表示距离,可以表示交通运费,可以表示网络流量,在朋友关系图甚至可以表示友谊深度。但都可以抽象为距离。 * (2) 赋权图中的最短路 设G为边赋权图。u与v是G中两点,在连接u与v的所有路中,路中各边权值之和最小的路,称为u与v间的最短路。 解决某类问题的一组有穷规则,称为算法。 (3) 算法 1) 好算法 算法总运算量是问题规模的多项式函数时,称该算法为好算法。(问题规模:描述或表示问题需要的信息量) 算法中的运算包括算术运算、比较运算等。运算量用运算次数表示。 2) 算法分析 * 对算法进行分析,主要对时间复杂性进行分析。分析运算量和问题规模之间的关系。 2) 算法分析 2、最短路算法 1959年,但切西(Dantjig)发现了在赋权图中求由点a到点b的最短路好算法,称为顶点标号法。 t (an) : 点an的标号值,表示点 a1=a 到an的最短路长度 Ai ={a1,a2, ..., ai}:已经标号的顶点集合。 Ti : a1到ai的最短路上的边集合 算法叙述如下: * (1) 记 a=a1 , t(a1) =0, A1= {a1}, T1= ? ; (2) 若已经得到 Ai = {a1,a2,…, ai }, 且对于 1≤n≤i,已知t(an),对每一个an∈ Ai , 求一点: 使得: (3) 设有mi ,1≤mi≤i ,而bmi(i)是使 取最小值,令: (4) 若ai+1=b ,停止,否则,记 ,转(2). * 该算法的通俗说法为: (1) 找出已标号顶点的未标号最近邻点:bn (i) (2) 把已标号顶点标号值与它到最近邻点的距离相加,和值最小者对应的最近邻点作为标号点,标号值为该和值。 * 时间复杂性分析: 对第i次循环:步骤(2)要进行i次比较运算,步骤(3)要进行i次加法与i次比较运算。所以,该次循环运算量为3i .所以,在最坏的情况下,运算量为n2级,是好算法。 算法证明: 定理1:算法中的函数t(ai)给出了a与ai的距离。 证明:对i作数学归纳法。 (1) i=1时结论显然成立。 (2) 设对所有的j,1≤ji 时,t (aj)=d (a, aj). (3) 考虑j=i 令P= v0 v1 … vd , v0 = a ,vd =ai是连接a与ai的一条最短路, * 于是d(P) = d (a, ai) ,令vn是P中第一个不在Ai-1中的点。由于 ,故这样的点vn存在。又因v0 ∈Ai-1知n≥1, 设 vn-1=ak, 则有k≤i-1.记P中由a到vn的一段的长度为l, a到vn-1的一段长度为l1.由归纳假设,有l1≥t(ak),且 其中ami-1由算法的第(3)步得到,1≤mi-1≤i-1.又由于 存在一条长度为t(ai) 联结的a与ai的路,可知 * 联合此两个不等式,即得: 由归纳法知定理成立。 例1 如图所示,求点a到点b的距离。 8 1 2 6 1 4 2 2 7 9 2 4 6 9 3 a v1 v2 v3 v4 v5 v6 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}; * 2. A2 ={a, v3}, 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,
文档评论(0)