弗洛伊德算法原理解释

不了解floyd算法是怎么一回事的可以先看下这篇文章,https://blog.csdn.net/yuewenyao/article/details/81021319是我见过讲得很清晰的了。

本文是对其原理的解释,希望看完此文后你能明白,“为什么floyd算法在插入N个顶点后一定会得到最短路径” ,以及,“乱序/任意顺序的插入所有顶点后都将得到最短路径”

要解释清楚这些,需要从最短路径的结果入手,可以认为floyd是从已知结果出发探寻出来的一种算法,以下是正文。

假设N个顶点之间的任意两点的最短路径已经确定,不妨认为,A1到Am两个点间的最短路径为A1->A2->…->Am-1->Am(其中m<n,A1点与Am点是任取的点)。

那么在这条最短路径上的任意两个点Ai与Aj之间的路径都将会是这两个点之间的最短路径,这个是好确定的:如果不是的话,把Ai与Aj之间的最短路径替换一下就会与上面的A1到Am的最短路径产生矛盾。

于是,当插入不属于这m个点的点时(即不是A1、A2、… 、Am之间的点),都不会影响到这些点之间的最短路径,那么我们可以不管非m个点之间的插入后的影响,同样的也不需要管A1和Am两个端点的影响,而只需要分析插入的是中间m-1个点(即A2、A3、… 、Am)时的结果。

为了让大家好理解一点,先插入A2试一下,那么A1->A3的距离,在经过A2后会达到最短(这是之前假设的结论),相当于一定会得到A1->A2->A3这样的一条A1到A3的最短路径。 同样的道理,如果我们插入中间的某个点Ai,就一定可以得到Ai-1->Ai->Ai+1这样的一条Ai-1到Ai+1的最短路径。于是,我们把中间的点全部插入后,这些最短路径就可以连起来从A1一直指向Am,这就与我们前面假设的最短路径一致了。

同时,基于上面的插入中间值的分析,显然我们任意顺序插入中间m-1个点最后都可以得到A1到Am的最短路径,故此,我们解释清楚了一开始的两个问题

弗洛伊德算法原理解释(数学证明)相关推荐

  1. 主成分分析原理的数学证明

    主成分分析原理的数学证明   主成分分析(Princle Componet Analysis, PCA)是一种经典的无监督方法,可以用来降低特征的维度,在稍微牺牲点性能的前提下减小运算量,提升计算效率 ...

  2. 算法(一):如何高效的算出2*8的值,位移算法原理解释,为什么8左移1位,4左移2位,2左移3位,1左移4位的结果为16

    位移算法,如何高效的算出2*8的值,为什么8<<1,4<<2,2<<3,1<<4的结果为16,位移算法原理解释: 一个很重要的原因埋在前头:当初笔者刚出 ...

  3. XGBoost算法原理解释(转载)

    1.XGBoost算法原理 参考文章1 参考文章2 2.代码实战 train = pd.read_csv(r"./dataset/train.csv") train.head() ...

  4. 【深度学习】语音识别之CTC算法原理解释与公式推导

    不搞语音识别得人开这个论文确实有点费劲,结合上图,思考一下语音识别的场景,输入是一段录音,输出是识别的音素, 输入的语音文件的长度和输出的音素个数之间没有一一对应关系,通常将语音文件「分片」之后,会出 ...

  5. 支持向量机(SVM)优化算法原理超详细证明过程,几何的角度证明互补松弛条件

    本文将初学者在硬间隔优化这一部分会遇到的问题基本都进行了说明和推导,包括为什么要取max以及互补松弛条件到底是什么,支持向量到底体现在哪里. 但是本文并没有引入说明支持向量的优化问题是怎么引出的.这里 ...

  6. RSA算法总结(数学知识/CTF题型)

    一.RSA简介 简要概括就两句话:公钥(e)加密,私钥(d)解密. 二.RSA过程 三.RSA各参数 p 和 q:两个大的质数,是另一个参数N的的两个因子. N/n:大整数,可以称之为模数. e 和 ...

  7. t-sne原理解释_T-SNE解释-数学与直觉

    t-sne原理解释 The method of t-distributed Stochastic Neighbor Embedding (t-SNE) is a method for dimensio ...

  8. 较真的来了!这篇【硬核论文】为何恺明新作MAE提供了一种理论解释和数学证明...

    关注公众号,发现CV技术之美 昨天,arXiv上出现了一篇非常硬核的论文"How to Understand Masked Autoencoder".该论文为何恺明的最新一作论文& ...

  9. Canny边缘检測算法原理及其VC实现具体解释(一)

    图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般能够看作是一个阶跃,既从一个灰度值在非常小的缓冲区域内急剧变化到还有一个灰度相差较大的灰度值.图象的边缘部分集中了图象的大部分信息,图 ...

  10. rsa加密原理数学证明_非对称加密算法——RSA加密原理及数学推导

    说明:原创不易,著作权仅归作者本人所有,转载请注明出处. 建议:建议阅读时间15min+.证明过程可能看着枯燥,需要动手. 一.  RSA是什么? 看到标题的第一瞬间,先想一下,RSA是什么呢?百度百 ...

最新文章

  1. base标签在ie6下的恶心问题
  2. javascript实例_网页空降与抖动
  3. 第一篇:Dapper快速学习
  4. (一)nodejs循序渐进-nodejs环境安装(基础篇)
  5. java mongo 查询数组_MongoDB查询(数组、内嵌文档)
  6. mgg mysql_mgg文件怎么转换mp3格式?
  7. “要源码上门自取”,结果人真上门了!国内企业再惹争议
  8. centos7 安装MyCli MySQL 客户端
  9. 关于DP的一些解题总结
  10. 【Git】clone项目push项目没反应,Cloning into...没下载
  11. CCF CSP20190301小中大(100分)(python)
  12. 下一个大危机,会是什么?
  13. mysql版网络验证自动发卡功能
  14. 交易猫跳转APP+后台管理
  15. 中兴财务新云陈虎:财务应从最小数据集转为大数据 洞察五新商机
  16. Wordpress搭建(初学者)
  17. linux中creat-file函数,Linux应用程序-文件编程-file_creat()函数的问题
  18. git pull用法
  19. mac安装win10_VMware虚拟机如何安装Win10系统
  20. 华为网络设备如何配置IPv6地址?它的格式是什么样的?如何缩写?又怎么分类?

热门文章

  1. Hook技术第二讲,之虚表HOOK
  2. 各类木材强度_常用木材分类
  3. 巴菲特投资赚钱的赚钱宝典和赢家暗语
  4. python appium+夜神模拟器 配置 笔记整理
  5. double比较大小
  6. my资源列表一 (csdn 99% 0分资源下载)
  7. 工程图字体宋体仿宋_宋黑仿变各种字体的审美禀赋
  8. 如何将windows桌面默认位置修改为D盘
  9. C语言文件的相对和绝对路径写法,文件路径写法
  10. 利用逆矩阵解线性方程组_经典Jacobi方法用于求解矩阵特征值