导致DFS和BFS以完全相同的顺序处理节点的图


11

对于某些图形,DFS和BFS搜索算法以完全相同的顺序处理节点,前提是它们都从同一节点开始。两个示例是作为路径的图和呈星形的图(深度为树,具有任意数量的子代)。有什么方法可以对满足此属性的图进行分类?1个


6
请注意,在两种情况下,这仅在您从某个特定节点开始时才有效。例如,如果您选择长路径上的中心节点,则会从DFS和BFS获得不同的顺序。
templatetypedef

1
除了星星或路径,还有其他有趣的可能性吗?乍看之下,如果您同时拥有一个具有同级和子级的顶点,那么您会立即获得不同的遍历,因此,要么没有任何一个顶点都有子级(除了根),要么获得星形,或者没有一个顶点具有同级。你会得到一条路。我想一个派系也行得通,但它同时嵌入了星号和路径。
路加·马蒂森

2
@LukeMathieson我正在考虑一颗星,其中最右边的孩子是另一颗星的根。我想那也行得通。我们甚至可以做一个一般性的陈述:如果从节点v∈V开始搜索时满足该属性,那么最右边的子的星星也满足。更好的是,如果和满足该属性,并且节点是处理的最后一个节点,而是从开始搜索的位置,则添加桥边会创建一个满足该属性的图。我认为用代替也可以。= v G 1 G 2 v 1 G 1 v 2 G 2v 1v 2v 1 v 2G=VË=vG1个G2v1个G1个v2G2v1个v2v1个v2
saadtaame 2012年

2
好点,所以有某种右递归组合,您可以在其中识别出第一张图的右叶和第二张图的根。
Luke Mathieson,2012年

@LukeMathieson看起来您可以通过在节点和的父级之间添加边来修复节点具有同级和子级的情况。这是我的主张:给定一个图。,如果使得,则的财产拥有权。下一步是证明或反对这一主张。vvG=VËXVÿžwVÿXžÿXwËXžËG
saadtaame 2012年

Answers:


6

假设我们的BFS和dfs有一条从特定节点开始的规则,并且在每个双向中,它们首先以最低的程度访问节点:

DFS文件系统

从最左边的黑色节点开始,然后(BFS和DFS)被访问最左边的红色节点,然后他们将访问下一个黑色节点,依此类推,为了使其更通用,您可以在三角形之间添加一些路径,或者添加星形完成三角形后...


根据您的假设,这是正确的。你实际上提出了一个好观点;当遇到选择时,我们应该指定按什么顺序将节点添加到议程(堆栈或队列)。
saadtaame 2012年

请记住,用于调度的LIFO和FIFO分别产生DFS和BFS,尽管这样的调度(其中的调度可能既不是堆栈式的也不是队列式的)既不是深度优先搜索也不是广度优先搜索在某些情况下,您可以描述其趋于相似的趋势。
Niel de Beaudrap 2012年

1
我认为可以按照堆栈或队列来实现。它不会改变事物的处理方式(LIFO或FIFO),而是会改变添加子级的顺序(在这种情况下,从最低的程度开始)。
SamM 2012年

@NieldeBeaudrap实际上,这只是一个结构,表明某处两种方式是相同的。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.