- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OSPF 中的最短路径算法
中心 旭盛
生活中的网 拓扑,可以抽象成由 点(路由器)和 (路由器之 的 路)构成
的有向 通 , 路的代价可以抽象成 的 函数。 之所以称 有向 , 是因 同一条 路( )不同方向的 可能不一 。
我 知道, 于有向 通 , 以任意一个 点 起点, 利用最短路径算法可以 算出到
其他 点的最短路径。 那么, 于能抽象成有向 通 的网 拓扑来 , 也可以利用最短路
径算法先 算出以任意一台路由器 起点, 到达其他路由器的最短路径, 然后根据各路由器的网 接情况可以得到到各个网 的路由路径。
OSPF中用到的 Dijkstra 算法和 RIP中用到的距离向量算法一 ,都是相当 典的最短路径算法。本文将 Dijkstra 算法 行系 的描述,并 出一个 的 明。
1 Dijkstra 算法介绍
在数学上, 以某个 点 起点, 算到其他 点的最短路径的算法,称 “ 源最短路
径” 算法。求“ 源最短路径”的 在数学上可以精确描述如下:
“ 源最短路径” : 已知一个有 n个 点 (V0..n) 构成的有向 通 G=( V , E),
以及 中 的 函数 C (E) ,其中 V 代表 点集合, E表示所有 的集合, 并假 所有 非 ,
求由 G中指定 点 V0 到其他各个 点的最短路径。
Dijkstra 算法是很 典的求解上述 的算法,其基本想法是 一种最短路径 的构
造方法,按非降次序逐条构造从 V0 到各个 点的最短路径,第一步找到和 V0 相距最短的
点以及到 个 点的路径,第二步找到和 V0 相距次短的 点以及到 个 点的路径,如此
反复,最后找到 V0 到所有 点的最短路径,构造出整棵最短路径 。
上述构造方法的一个直 考 是:和 V0 相距最短的 点 在和 V0 直接相 的 点
中,和 V0 相距次短的 点要么在和 V0 直接相 的 点中,要么在和 些相 点相 的
点中,如此逐步 散考 , 就可以找到和 V0 相距最短、次短、 ?? .第 n短的 点以及
的路径, 而且因 是 通 , 最后肯定所有 点都能全部考 到, 也就能完成整棵最短路
径 的构造。
事 上,上述直 考 是 的, Dijkstra 算法是 上述 程的一个提 和 化:和 V0 相
1 / 8
距最短的节点是和
V0 直接相连的节点没错;相距次短的节点范围可以缩小为,和
V0 直接相
邻的节点, 加上跟刚选中的最短节点直接相邻的节点;
相距第三短的节点的范围可以类推得
到,即在上一步考察的节点的基础上,加上和次短节点直接相邻的节点。如此逐步构造,可
以按非降次序找到到所有节点的最短路径。
为了从数学上精确描述上述构造过程,引入了集合的概念对节点和路径进行分类。
我们把节点分成两个集合:
A:已经选入最短路径树的节点的集合。
B:剩余的其他节点的集合。
对于路径,我们分成三个集合:
:已经选入最短路径树的路径的集合
:候选路径集合:下一条加入最短路径树的路径将从这个集合中选入。
:剩余的其他路径的集合(被废弃的路径或者还未考虑的路径)。
为了更好的理解,有必要对这里的路径定义进行一下强调:路径是指以 V0 为起点,其
他节点为终点的由一条或多条边组成的一个有序集。 边,可以理解为路径中的一段, 只有到
和V0 直接相邻的节点的路径才直接对应一条边。从 V0 到所有节点,都可能存在一条或多条
路径,非最短路径在计算过程中将会被废弃,放入集合 III 。
从前面的描述中可以明显看出, Dijkstra 算法是一个递归构造过程,因为任何递归都必
须有明确的初始状态,所以我们有必要先得到上述 Dijkstra 算法中定义的集合的初始值:
以V0 为起点计算最短路径的话,初始状态时显然有且只有 V0 在集合 A中,所以集
合A 的初始值为 V0 。集合 B的初始值为剩余节点。
前面提到过,下一个加入集合 A 的节点,一定是和 V0 直接有边相连的节点,因此,
加入最短路径树的第一条路径也必然在这些和 V0 直接相连的边所代表的路径中产
生,所以集合 II 的初始值就是和 V0 直接相连的边构成的路径。另外, 初始状态最短
路径树为空,所以集合 I 的初始值为空。集合 I、 II 明确了的话,集合 III 自然明确。
下面我们开始展开递归构造最短路径树的过程:
第一步:从集合 II 中选择一条最短的路径,放入最短路径树,相应的,这条路径的
终点对应的节点(这里记为 X)应该从集合 B移入集合 A 。
第二步:考察所有从 X 出发的边的终点,考虑其中不属于集合 A的节点,这里记为
Y ,计算从 V0 出发经 X 到达 Y 的路径值,计算方法为:最短路径树中 V0 到节
您可能关注的文档
- 2020结婚最经典的祝福语大全.docx
- 2020结婚祝福语创意.docx
- 2020给力幸福句子.docx
- 2020给哥哥的生日祝福语.docx
- 2020给学姐中考祝福语.docx
- 2020给客户拜年祝福语.docx
- 2020给爸爸的新年祝福语大全.docx
- 2020给班主任的祝福语.docx
- 2020给群友的祝福语.docx
- 2020给领导的新年祝福语.docx
- 绿色金融与企业可持续发展关系.docx
- 2025年10月自考00140国际经济学押题及答案含解析.pdf
- 成人脓毒症相关心肌损伤和(或)心功能障碍临床的治疗2025.docx
- 克氏原螯虾免疫防线探秘:两种凝集素的分子机制解析.docx
- 【2025年】富顺事业单位考试笔试试卷【附答案】.pdf
- 东北林蛙皮肤抗菌肽mRNA多样性的研究:基于RT-PCR与生物信息学的分子特征解析.docx
- 千年古都的艺术商业密码:西安市画廊模式与定位研究.docx
- 2025年10月自考00385学前卫生学押题及答案.pdf
- 2025年10月自考00398学前教育原理押题及答案.pdf
- 探秘葎草活性部位:解锁免疫抑制作用的奥秘.docx
文档评论(0)