Почему BFS не может преобразовать неориентированный граф в группу доступности баз данных? - PullRequest
2 голосов
/ 30 января 2020

Скажем, у меня есть подключенный и ненаправленный граф G, и я хочу преобразовать G в DAG. Решение для меня ясно: я назначу каждому узлу номер, а затем каждое ребро (u, v) будет направлено u-> v, только если число, назначенное u, меньше v.

Однако это не было моим первоначальным решением. Сначала я подумал, а почему бы просто не запустить BFS? Я знаю, что BFS никогда не будет генерировать цикл, только дерево или перекрестие (которое не создает циклы). Я знаю, что BFS проблематична c с ориентированными графами, но данный граф G является ненаправленным . Мне сказали, что BFS здесь не работает, но не сказали почему. Я пытался подумать почему сам, но до сих пор не понимаю.

Спасибо!

1 Ответ

1 голос
/ 31 января 2020

BFS работает отлично. Если вы обрабатываете все ребра каждой вершины в порядке, в котором вы обнаруживаете эти вершины, то каждое ребро будет go из более старой вершины в более новую.

Результат будет соответствовать вашей схеме нумерации, если вы нумерация вершин в порядке BFS.

Существуют способы попробовать это с BFS, которые не работают ... но есть способы попытаться что-нибудь , которые не не работает.

...