Графики, которые заставляют 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 2 , тогда добавляется ребро моста ( vграммзнак равно(В,Е)знак равноvграмм1грамм2v1грамм1v2грамм2 создает граф, который удовлетворяет свойству. Замена v 1 на v 2 также работает, я думаю. (v1,v2)v1v2
saadtaame

2
Хорошая мысль, так что есть какая-то правильно-рекурсивная композиция, в которой вы можете отождествить правый лист первого графа с корнем второго.
Люк Мэтисон

@LukeMathieson Похоже, вы можете исправить ситуацию, когда у узла есть родной и дочерний элементы , добавив ребро между этим потомком и родителем v . Вот мое предложение: Дан граф G = ( V , E ) . x V , если y , z , w V такой, что ( y , x ) , ( z , y ) , ( x , w ) Evvграммзнак равно(В,Е)ИксВY,Z,весВ(Y,Икс),(Z,Y),(Икс,вес)Етогда (Икс,Z)Есвойство имеет место для . Следующий шаг - доказать или опровергнуть это утверждение. грамм
saadtaame

Ответы:


6

Предположим, что у наших BFS и dfs есть правило начинать с определенного узла, и в каждом двустороннем пути они сначала посещают узел с наименьшей степенью:

ДФС-BFS

начать с самого левого черного узла, затем (BFS и DFS) посетить самый левый красный узел, затем они посетят следующий черный узел и т. д. Чтобы сделать его более общим, можно добавить несколько путей между треугольниками или добавить звезду после окончания треугольников ...


Это правильно, по вашему предположению. Вы подняли хорошую мысль на самом деле; мы должны указать, в каком порядке узлы добавляются в повестку дня (стек или очередь) при выборе.
saadtaame

Принимая во внимание, что LIFO и FIFO для планирования дают DFS и BFS соответственно, можно утверждать, что такое планирование (в котором планирование не может быть стековым или очередным) не является ни поиском по глубине, ни по ширине - хотя вы можете в некоторых случаях описать его тенденцию походить один или другой.
Ниль де Beaudrap

1
Я думаю , что он может быть реализован в терминах стека или очереди. Он не меняет способ снятия (LIFO или FIFO), он меняет порядок добавления дочерних элементов (в данном случае сначала самая низкая степень).
Samm

@NieldeBeaudrap на самом деле это просто структура, чтобы показать, что где-то оба пути одинаковы.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.