【发布时间】:2011-10-14 12:50:00
【问题描述】:
我正在寻找一种快速算法来确定给定的有向图是否包含桥...
不关心这座桥的位置.. 只关心图表是否包含它。
【问题讨论】:
-
@harold 这是一个有向图。
我正在寻找一种快速算法来确定给定的有向图是否包含桥...
不关心这座桥的位置.. 只关心图表是否包含它。
【问题讨论】:
如果图是有向图,类似于无向图的桥,如果移除边会增加图的强连通分量的数量,我们将其称为强桥。 为了测试有向图是否具有强大的桥梁,您需要运行本文中详述的算法: Giuseppe F. Italiano、Luigi Laura、Federico Santaroni:在线性时间中寻找牢固的桥梁和牢固的关节点。理论。计算。科学。 447:74-84(2012) http://dx.doi.org/10.1016/j.tcs.2011.11.011
【讨论】:
请注意,当且仅当它不包含在任何循环中时,边才是桥,因此如果您的图不是强连接的,则它应该包含桥。
在您的图表上运行Tarjan strongly connected components algorithm。如果结果与你的图表不同,那就是一座桥。
【讨论】:
我刚刚找到了一个更好或更简单的解决方案..
选择任何节点运行一个简单的 dfs 并检查是否访问了每个节点然后反转所有边并从同一个节点开始检查是否可以再次访问所有节点,如果不能,那么它肯定包含一个桥。
【讨论】: