微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我无法理解算法设计手册中的 BFS 树边缘

如何解决我无法理解算法设计手册中的 BFS 树边缘

我不明白这是什么意思

没有出现在广度优先搜索树中的图边也 有特殊的属性。对于无向图,非树边只能指向 到与父顶点相同级别的顶点,或到级别上的顶点 直接在父级下方。这些性质很容易从以下事实得出:每个 树中的路径必须是图中的最短路径。对于有向图, 只要 v 比 u 更靠近根,就可以存在反向边 (u,v)

我明白'没有出现在广度优先搜索树中的图边也 有特殊属性.'.但是我怎么知道这些属性很容易从树中的每条路径必须是图中的最短路径这一事实得出?另外,对于有向图,对于有向图,我如何证明只要 v 比 u 离根更近,就可以存在反向边 (u,v)?

解决方法

因为我们使用的是 BFS 树,所以树的同一级别中的所有节点必须与根节点的距离相同。因此,例如,深度为 5 的节点与根节点的距离必须为 5。类似地,深度为 10 的节点与根的距离必须为 10。

首先,让我们谈谈无向图。想象有一条边 {u,v} 不在 BFS 树中。现在,假设 u 和 v 在树中相距超过两级,特别是 v 至少比 u 低两级。这意味着从根节点 s 到 v 的距离比从 s 到 u 的距离多两个。因此,从 s 到 v 的最短路径的长度至少比从 s 到 u 的最短路径的长度多两条边(这就是最短路径的定义)。但这在这里不是真的:我们可以得到一条从 s 到 v 的路径,它只比从 s 到 u 的最短路径长一条边,方法是沿着从 s 到 u 的最短路径,然后沿着边 {u,v}。这里出了点问题,特别是我们假设 v 比 u 低两个或更多个级别。

对于有向图,您确实可以有有向边跳回树中的更高级别。一个非常简单的方法来看待这个:考虑一个节点 u、v、w 的三角形,其中 u 有一条到 v 的边,v 有一条到 w 的边,w 有一条到 u 的边。 BFS 树是什么样子的?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。