图中的关节点和桥梁

时间:2013-08-31 19:52:39

标签: algorithm graph depth-first-search

今天我在图表中学习了关节点和桥梁(基本上是无向的)。

我读到的文字(史蒂文哈利姆的一本书)说

  

当我们位于顶点uv是其邻居时,如果dfs_low(v) >= dfs_num(u)u是切割顶点。

然而,

  

检查时条件变为dfs_low(v) > dfs_num(u)   桥。

但我无法弄清楚为什么平等从第二种情况(在桥梁中)消失了。 请帮帮我。

PS:dfs_num(i)为dfs中的顶点编号。

dfs_low(i)告诉我可以从i到达的最低编号顶点。

1 个答案:

答案 0 :(得分:3)

假设在被认为是关键点的情况下,但是u-v不是桥梁。然后除了通过u-v链路之外,还存在从v到u的路径;因此,从包含u的双连接组件传递到包含v的组件的DFS最终将再次到达u,从而在dfs_low(v) >= dfs_num(u)中提供相等性。 (不等式的大于部分是因为你是一个清晰点,所以v的路径不能通过u而得到较低编号的顶点,而DFS不会回溯这些路径。)

但是如果u-v也是一个桥,那么v和u之间不存在任何其他路径,而不是桥u-v。所以DFS再也不会到达你了; DFS到达v后的所有dfs_num值都将严格大于dfs_num(u)