前言
这一算法相关的博客很少,因此我觉得很有必要写这篇博客。但由于我是用网上搜集得来的资料自学的,因此在下面的讲述中可能会有不对的地方,还请dalao们耐心指出,十分感谢。
你最好已经知道的知识:floyd算法,矩阵快速幂。
提前说一下,这个算法和floyd很像,但有新的东西。
我会列举2种我查到的Transitive Closure算法,并对他们进行分析,请读者耐心阅读。
概念
Transitive Closure翻译为“传递闭包”,它到底是什么?参考一下传递闭包(百度百科)。
用我的话说,它就是在一个有向图中,所有的「能不能从一个点到另一个点」的关系(老外说得好: all paths in a directed graph)。
举个例子:

[图1:有向图]
(本篇博客所有图片均截自参考资料[1])
那么它的传递闭包是:

[图2:有向图的传递闭包]
图2中实线是原图中的关系,虚线是添加的关系。
有人可能会问,求「是否能到达」算什么,用Floyd算法连最短路都求出来了。确实,「法1」我自认为完全可以用floyd代替,而「法2」则与矩阵运算结合。
法1
我们先思考这个问题,能从u到v的条件:
- 存在一条边为

本文深入探讨了有向图中的传递闭包概念及其两种算法实现:一种类似Floyd算法,另一种结合矩阵运算与快速幂,适用于求解特定路径可达性问题。通过实例解析,对比不同算法的时间与空间复杂度。
1180

被折叠的 条评论
为什么被折叠?



