图的最短路径 - 佛洛伊德演算法 - DAY 27

前言


这篇的理解自己花了一些时间,但还是有点没把握,尽可能把理解到的内容输出。如有错误烦请指教,真心感谢。

节点和路径图


https://ithelp.ithome.com.tw/upload/images/20211011/20107754vatw1aPez7.jpg

各节点至邻近节点的权重图
https://ithelp.ithome.com.tw/upload/images/20211011/20107754qMhhqBhYhv.jpg

前驱矩阵 (查询後理解为:两个节点最佳距离会经过的节点)[如有错误烦请指出~~真的感谢]
https://ithelp.ithome.com.tw/upload/images/20211011/20107754wudZtD0ZRf.jpg

执行步骤


上面看到的权重图节点只知道节点周围的节点
这边要逐一开放节点,直到最後跑完所有节点

STEP 1

开放 A节点,但对其他节点没有构成影响
https://ithelp.ithome.com.tw/upload/images/20211011/20107754hTPneOS3Wb.jpg

STEP 2

开放 B节点
https://ithelp.ithome.com.tw/upload/images/20211011/20107754CcnVnwDZPz.jpg

A节点可以透过 B节点,进而拥有到达 C、D节点的权重
https://ithelp.ithome.com.tw/upload/images/20211011/20107754FVI43At4Wz.jpg

此时最佳连结也会由 开放的 B节点 替换上去
https://ithelp.ithome.com.tw/upload/images/20211011/201077544zUHLxqZ8d.jpg

STEP 3

开放 C节点
https://ithelp.ithome.com.tw/upload/images/20211011/20107754LR76nP82zx.jpg

A、B节点 都可以透过 C节点,连结到 D节点,进而取得权重
https://ithelp.ithome.com.tw/upload/images/20211011/20107754Oz2FgzX5dp.jpg

被取代的位置,也对应的由 C节点去替换
https://ithelp.ithome.com.tw/upload/images/20211011/20107754lus1lPuAxl.jpg

完成

开放D、E节点基本已经没有影响了,故到此结束。

这个范例单纯让大家了解整体运作流程,可以往下面看一下参考来源,里面会有 找到更好的路径权重,进而替换的状况产生,可以更了解整个演算法的面貌。

参考来源


<<:  [Lesson26] Kotlin - Inheritance

>>:  Day 27 | Unity游戏开发 - 对话介面管理器

RDS Transacrion

由於RDS注重资料的一致性, Transaction就相对重要, 也是RDS的优势. 从最基本的Be...

Day16 Laravel - migrate

Docker及Laravel为以後每个专案都会用到的搭配,所以这种时候就将它做成一个类似模板的环境并...

防止使用者频繁送出 Request & 倒数计时重新发送认证码

以实务来说,总是会有一些情况导致使用者没办法正常收到认证码,所以系统必须具备 retry on fa...

Day 10 号志的作用

在Kernel里面有一项功能,就是所谓的号志(semaphore)的功能,里面包括: 1.号志控制区...

峰禾影视

峰禾影视 峰禾影视电影电视剧频道拥有海量热门经典和2021最新的电影电视剧等,优质影视大片高清免费在...