Графики, которые заставляют DFS и BFS обрабатывать узлы в одном и том же порядке

11

Для некоторых графиков алгоритмы поиска DFS и BFS обрабатывают узлы в одном и том же порядке при условии, что они оба начинаются на одном и том же узле. Два примера - графы, которые являются путями, и графы в форме звезды (деревья глубины с произвольным числом детей). Есть ли способ классификации графов, которые удовлетворяют этому свойству?1

saadtaame
источник
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 на самом деле это просто структура, чтобы показать, что где-то оба пути одинаковы.