я ищу быстрый алгоритм, чтобы просто определить, содержит ли данный ориентированный граф мост или нет ...
не беспокоит расположение этого моста .. только то, содержит ли граф его или нет.
проверка ориентированного графа на мосты
- Просто посмотрите здесь: en.wikipedia.org/wiki/Bridge_%28graph_theory%29 14.10.2011
- @harold это ориентированный граф. 14.10.2011
Ответы:
В случае ориентированного графа, аналогично мостам для неориентированного графа, мы называем ребро сильным мостом, если его удаление увеличивает количество сильносвязных компонент графа. Чтобы проверить, есть ли в ориентированном графе сильные мосты, вам нужно запустить алгоритм, подробно описанный в статье: Джузеппе Ф. Итальяно, Луиджи Лаура, Федерико Сантарони: Поиск сильных мостов и сильных точек сочленения за линейное время . Теор. вычисл. науч. 447: 74-84 (2012) http://dx.doi.org/10.1016/j.tcs.2011.11.011
Обратите внимание, что ребро является мостом тогда и только тогда, когда оно не содержится ни в одном цикле, поэтому, если ваш граф не сильно связан, он должен содержать мосты.
Запустите на графе алгоритм сильно связанных компонентов Tarjan . если результат отличается, то на вашем графике есть мост.
я только что нашел лучшее или более простое решение для этого ..
выберите любой узел, запустите простой dfs и проверьте, посещен ли каждый узел, затем переверните все ребра и, начиная с того же узла, проверьте, можете ли вы посетить все узлы опять же, если нет, то он наверняка содержит мост.