Методы анализа графа. Поиск в ширину. Нахождение кратчайших путей в графе
Вход алгоритма: граф Выход алгоритма: компонента связности графа, в которую входит вершина Описание алгоритма: на этапах алгоритма строится последовательность расширяющихся множеств вершин
по следующему рекуррентному принципу:
Таким образом,
Как только два соседних множества совпадут, алгоритм завершает свою работу.
Пусть начальная вершина –
Поиск в ширину позволяет находить длины кратчайших путей и сами пути. Из фиксированной вершины Определение. Кратчайший путь между вершиной Утверждение. Вершины, впервые помеченные на k-ом этапе алгоритма поиска в ширину есть те вершины графа, кратчайший путь от которых до начальной вершины
Доказательство: Проведем доказательство методом индукции по номеру этапа алгоритма. Для начального нулевого этапа утверждение очевидно. Начальная вершина множества Пусть утверждение справедливо для k-ого этапа алгоритма. Докажем справедливость утверждения для Более короткого пути, чем из k+1-ого ребра в вновь помеченные вершины на k+1 этапе бытьть не может. В последнем случае эти вершины были бы отмечены на более раннем этапе (по предположению индукции). Утверждение доказано.
Рассмотрим более общую задачу поиска кратчайшего пути в графе, в котором каждому ребру предписано положительное число – его длина (расстояние между соответствующей парой вершин). Считаем, что это число положительное целое. Таким образом, на вход алгоритма подается сеть
На выходе алгоритма должны быть получены значения кратчайших путей Сведем рассматриваемую задачу к предыдущей задаче поиска кратчайших путей для графа, в котором функция длины единичная. Для этого совершим следующее преобразование: Рассмотрим произвольное ребро
В данное ребро добавим
Данное преобразование применим к каждому ребру графа. При этом длины кратчайших путей между вершинами исходного графа не изменятся, а функция длины в полученном графе единичная. Исходя из этого, можно применить алгоритм поиска в ширину для полученного графа. Примечание.Данный алгоритм будет неэффективным в силу того, что числа в компонентах связности хранятся в двоичной системе исчисления, поэтому целое число длины
Популярное: Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... ![]() ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (637)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |