一、引言
在计算机科学中,Floyd-Warshell-Roy算法是用于在有向图或负权图中寻找最短路径的一种算法。运行一次能够找到所有两个顶点间的最短路径,不过并不输出所有路径。该算法同时也可以被用于寻找关系R的传递闭包。
Floyd-Warshell算法是一个动态规划的例子,在1962年为Robert Floyd发表。然而,在1959年,相同的算法已经被Bernard Roy发表。同年,Stephen Warshell发表了找到传递闭包的这个算法。三人被认定为独立发现这个算法。
该算法的主要作用是将常规算法的时间复杂度由Θ(n^4)降低到了Θ(n^3).
本文中,我们出于寻找Roy、Warshall的算法被认定为独立发现的的缘由对两人的算法进行分析。

二、分析与讨论

  1. Warshall 算法
procedure Warshall (MR : n × n zero–one matrix)
W : = MR
for k : = 1 to nfor i : = 1 to nfor j : = 1 to nw_ij : = w_ij ∨ (w_ik)∧ w_kj )
return W{W = [w_ij] is MR∗}

三、结论
虽然Bernard Roy 提出该算法在Robert Floyd和Stephen Warshall之前,但他论文的主体依旧是以对图的定义为主,而Warshall 和Floyd两人同年发表了成文的简单算法。所以,可能这是一部分影响单独发表的原因。

四、展望
根据[1],我们知道了Roy的传递闭包计算方法是采用了Kleene已经提出了的深层技术,而Warshall和Floyd则是采用了第三个参数。不过基于时间以及水平原因,并没有能够找到这两者之间所说的深层技术,也并没能确定是否Warshall和Floyd所采用的关键技术是在于中间点k。因而,可以沿这个方向继续接下去进行查询发掘。

五、参考文献
[1]. Jeff Erickson, Kleene-Roy-Floyd-Warshall. [https://courses.engr.illinois.edu/cs498dl1/sp2015/notes/22-apsp.pdf]
[2]. Warshall, Stephen (January 1962). "A theorem on Boolean matrices". Journal of the ACM 9 (1): 11–12. doi:10.1145/321105.321107 .
[3]. Roy, B. "Transitivité et connexité." C. R. Acad. Sci. Paris 249, 216-218, 1959. [http://gallica.bnf.fr/ark:/12148/bpt6k3201c]
[4]. Bouyssou, D., Jacquet-Lagrèze, E., Perny, P., Slowiński, R., Vanderpooten, D., Vincke, P,《Aiding Decisions with Multiple Criteria: Essays in Honor of Bernard Roy》,24,2001.
[5]. Wikipedia. [https://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm]
[6]. Purdom, Paul, Jr. “A Transitive Closure Algorithm.” Bit 10, no. 1 (March 1970): 76–94. doi:10.1007/BF01940892.

转载于:https://www.cnblogs.com/sean10/p/4972620.html

关于Warshall、Roy对寻找传递闭包方法的不同表达的探讨相关推荐

  1. python寻找质数_寻找质数方法Python2.7版本

    这是个人的Python代码练习作品,完成了在Python2.7版本下寻找质数方法的操作. #!/usr/bin/python # coding=utf8 # Find Primes # Usage: ...

  2. WarShall算法求矩阵传递闭包关系

    离散知识 给了你一个矩阵,你如何求他的传递闭包呢? //求出如下矩阵的传递闭包 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 利用WarShall ...

  3. 脱壳笔记-寻找OEP方法总结

    本文的示例程序为通过upx加壳的应用程序 讲解的方法:手动单步跟踪法.ESP定律方式.内存二次断点法 一.手动单步跟踪法 主要使用的两个快捷键F8与F4 F8:单步步过 F4:运行到指定位置(右键-& ...

  4. turtle中如何获取当前鼠标当前位置、寻找坐标方法

    获取位置的方法POS 代码如下: import turtle print(turtle.pos()) turtle.color('red','blue') turtle.begin_fill() tu ...

  5. War-shall 算法 【求传递闭包】 离散数学记录

    学离散数学时遇到到第一个算法,记录一下: 代码思路: warshall(A[1...n,1...n] r(0)<-A; for(k=1;k<=n;k++)for(i=1;i<=n;i ...

  6. 图论 Warshall 和Floyd 矩阵传递闭包

    首先我们先说下图论,一般图存储可以使用邻接矩阵,或邻接表,一般使用邻接矩阵在稠密图比较省空间. 我们来说下有向图,一般的有向图也是图,图可以分为稠密图,稀疏图,那么从意思上,稠密图就是点的边比较多,稀 ...

  7. 专家对话:寻找商业方法保护共识 知产保护“阿里模式”受关注

    "非常高兴我能率领一群美国法律精英,来到阿里巴巴同中国的知识产权专家共同探讨有关商业方法保护的问题."6月9日,美国联邦巡回上诉法院前任首席法官Randall R.Rader在来访 ...

  8. 视杯和视盘分割及分类方法对青光眼诊断的探讨

    摘要: 在过去几年中,视网膜眼底图像的使用已增加用于诊断视网膜疾病. 青光眼是一种导致眼睛视神经受损的疾病,导致视力下降. 一旦确诊,该病不能完全治疗,但及时检测可进一步控制青光眼的效果. 通常通过分 ...

  9. 有人说计算机心理测验更科学,计算机心理动态测验方法及心理测评系统研究探讨...

    摘 要 教育事业的日益兴盛和发展使得现代社会人们已经充分了解了心理学.行为学等等相关知识的重要性,尤其是信息技术的飞速发展,更加带动了心理动态测验和心理测评体系的进步.现代社会相关人士已经在大力研究把 ...

最新文章

  1. CSS3混合模式mix-blend-mode/background-blend-mode简介
  2. python实现最小二乘法(转)
  3. java parseint()
  4. Android Handler机制
  5. android中gradle的作用,Gradle 之 Android 中的应用
  6. linux 命令行使用wget下载百度云资源
  7. COM组件设计与应用(三)(转载)
  8. 【BZOJ】【1036】树的统计
  9. 091117 T else if 的写法
  10. 浅析天际网、IT260、微人脉等中国职业社交网站
  11. Backbox Linux简介与配置内网IP
  12. 跟我一起写 Makefile 上
  13. 22个HTML5和CSS3表单教程
  14. DreamweaverCS6手把手教你安装并破解
  15. 10、PIC系列-输出比较-PWM脉宽调制模式
  16. poi在Excel中创建折线图
  17. 《第五项修炼,学习型组织的艺术与实践》读书笔记
  18. 全球最大湾区|微信大数据:《粤港澳大湾区智慧生活圈报告》
  19. (二)Tushare Pro教程:上市公司财务数据接口
  20. 成都生物研究所高性能计算服务器,专家人才库数据----中科院成都生物所资源库...

热门文章

  1. C#中自定义属性的例子
  2. 技术开发项目收获了什么_有幸入职字节跳动一年,附上百度、字节跳动等后台面经,谈谈我的收获!...
  3. aac fhg lc哪一个模式_电流模式变换器输出LC滤波器对反馈环影响
  4. java模拟数据库压测_java应用的优化【转】
  5. vim 撤销上一步操作_Linux笔记(4):vim入门
  6. Maltego发布新版本4.2.18
  7. Kali Linux安装谷歌浏览器
  8. OUYA游戏开发快速入门教程第1章了解OUYA及其设备
  9. c语言水印添加,[求助]C语言 bmp文件加上水印
  10. qchart画完以后删除_画错了,重新画一幅吧!”这句话对学画画的孩子来说,伤害有多大?...