- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最短路模型最短路模型
* 一、引例 例1:已知如图所示的单行线交通网,每弧旁的数字表示通过这条单行线所需的费用。现在某人要从v1出发通过这个交通网到v8 ,求使总费用最小的旅行路线。 对于有向图G 或无向图G 的每一条边e ,附加一个实数w(e),则称w(e)为边e 上的权,当e=(vi,vj)时,w(e)也可记为wij 。G 连同其各边上的权称为带权图,带权图常记为G=V,E,W。 最短路问题:设G 是带权图,vs,vt是G 的两个顶点,P是G 中从vs到vt的一条通路,定义路P 的权为P 中所有边的权之和,记为w(P)。最短路就是在所有从vs到vt的路中,求一条权最小的路,即求一条从vs到vt的路P0,使 v6 v5 v4 v3 v2 v1 v9 v8 v7 3 10 4 6 10 2 2 1 6 1 2 3 4 2 6 3 上式中对G 中所有从vs到vt的路P 取最小,称P0为从vs到vt的最短路。路P0的权称为从vs到vt的距离,记为d(vs,vt),显然d(vs,vt)与d(vt,vs)不一定相等。 二、最短路算法 设G=V,E,W为n阶带权图,wij?0,若vi与vj 不相邻,令wij=∞ 标号法:标号法是由E.W.Dijkstra于1959年提出来的,其基本思想是:从vs出发,逐步地向外探寻最短路。在执行过程中,与每点对应,记录下一个数(称为这个点的标号),它或者表示从vs到该点的最短路的权(称为P 标号),或者表示从vs 到该点的最短路的权的上界(称为T 标号),方法的每步是去修改T 标号,并把某个T 标号的点改变为具有P 标号的点,从而使G 中具有P 标号的顶点数多一个,这样,至多经过p-1步,就可以求出从vs到各点的最短路。 以引例为例,说明标号法的基本思想。 s =1,因所有wij?0,故d(v1,v1)=0, 这时v1 是具有P 标号的点。 v6 v5 v4 v3 v2 v1 v9 v8 v7 3 10 4 6 10 2 2 1 6 1 2 3 4 2 6 3 考察从v1出发的三条弧(v1,v2), (v1,v3), (v1,v4) 。如果从v1出发沿(v1,v2)到达v2,则需要d(v1,v1)+w12=6单位费用;如果 从v1出发沿(v1,v3)到达v3 ,则需要d(v1,v1)+w13=3单位费用;类似地若沿(v1,v4)到达v4 , 则需要d(v1,v1)+w14=1单位费用。由于 min {d(v1,v1)+w12 , d(v1,v1)+w13 , d(v1,v1)+w14}= d(v1,v1)+w14=1 所以从v1出发到达v4所需要的最小费用必定是1单位,即从v1到v4的最短路是(v1,v4) ,d(v1,v4)=1 。v4 变成具有P 标号点。 考察从v1及v4指向的其余点的弧,由上已知,从v1出发分别沿(v1,v2),(v1,v3) 到达v2,v3, 所需6 ,3单位费用,而从v1出发沿(v1,v4)和(v4,v6)到达v6 ,所需费用是d(v1,v4)+w46=1+10=11单位。因为 min {d(v1,v1)+w12 , d(v1,v1)+w13 , d(v1,v4)+w46}= d(v1,v1)+w13=3 所以从v1出发到达v3所需要的最小费用必定是3 单位,即从v1到v3的最短路是(v1,v3) ,d(v1,v3)=3 。v3变成具有P 标号点。如此重复此过程,可以求出从v1到任意一点的最短路。 几个记号:用P ,T 分别表示某点具有P 标号,T 标号,用Si 表示第i 步时具有P 标号点的集合。在每个点v 处给一个?值? (v) 。如果算法结束时, ?(v) =m ,表示从vs 到v 的最短路上,v 的前一个点是vm ;如果?(v) =M ,则表示G 中不含从vs 到v 的最短路;如果 ?(v) =0,则表示v =vs 。 Dijkstra方法的步骤: 开始(i =0)令S0 ={vs },P(vs )=0 , ?(vs) =0 ,对每个v ≠vs ,令T(v)=+?, ? (v)=M ,令k = s 。 (1)如果Si =V ,算法终止,这时,对每个v ?Si ,d(vs ,v) =P(v);否则转(2) (2)考察每个使(vk ,vj)? E ,且vj ?Si 的点vj 。 如果T(vj)P(vk) +wkj ,则把T(vj) 修改为P(vk) +wkj ,把? (vj) 修改为k;否则转入(3) 。 v6 v5 v4 v3 v2 v1 v9 v8 v7 3 10 4 6 10 2 2 1 6 1 2 3 4 2 6 3 i=0 : S0={v1} , P(v1) = 0 , ? (v1) =0 , T(vi)=+?, ? (v) =M ,(i =2,3, …,9) , k=1 (
您可能关注的文档
- 暨南大学2018年硕士生招生《普通生物学》考试大纲_暨南大学考研网暨南大学2018年硕士生招生《普通生物学》考试大纲_暨南大学考研网.pdf
- 暨南大学2018年硕士生招生《投资学》考试大纲_暨南大学考研网暨南大学2018年硕士生招生《投资学》考试大纲_暨南大学考研网.pdf
- 智能电子学生证(365平安卡)介绍智能电子学生证(365平安卡)介绍.pdf
- 曲度腰枕治疗仪的详细介绍曲度腰枕治疗仪的详细介绍.pdf
- 暴雨条件下绿化屋顶产流机制研究暴雨条件下绿化屋顶产流机制研究.pdf
- 曲阜师范大学2014年全日制硕士研究生招生简章_文彦考研曲阜师范大学2014年全日制硕士研究生招生简章_文彦考研.pdf
- 更换138皮带安全技术措施更换138皮带安全技术措施.doc
- 曙光天阔服务器远程控制手册曙光天阔服务器远程控制手册.doc
- 曲靖工业结构现状及其调整研究曲靖工业结构现状及其调整研究.pdf
- 更改后劳务合同更改后劳务合同.doc
文档评论(0)