Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
5. АЛГОРИТМЫ НА ГРАФАХМногие задачи теоретического и прикладного характера можно сформулировать в терминах неориентированных или ориентированных графов. В этой главе мы обсудим некоторые из основных задач на графах, решения которых полиномиально зависят (в смысле времени выполнения) от числа узлов и, следовательно, ребер графа. В основном мы будем заниматься задачами, в которых речь идет о связности графа. Сюда входят алгоритмы для нахождения остовных деревьев, двусвязных компонент, сильно связных компонент и путей между узлами. В гл. 10 мы изучим более сложные задачи о графах. 5.1. ОСТОВНОЕ ДЕРЕВО НАИМЕНЬШЕЙ СТОИМОСТИПусть Лемма 5.1. Пусть (а) для любых двух узлов и (б) если к Доказательство. Утверждение (а) тривиально, ибо если бы было более одного пути, то в Утверждение (б) тоже тривиально, ибо между концами добавляемого ребра уже был один путь. Лемма 5.2. Пусть Доказательство. Допустим противное и обозначим через По лемме Рассмотрим граф Опишем алгоритм нахождения остовного дерева наименьшей стоимости для неориентированного графа
Рис. 5.1. Цикл в графе О.
Рис. 5.2. Алгоритм построения остовного дерева наименьшей стоимости. выбираются из Алгоритм 5.1. Остовное дерево наименьшей стоимости (алгоритм Крускала) Вход. Неориентированный граф Выход. Остовное дерево Метод. Программа приведена на рис. 5.2. Пример 5.1. Рассмотрим неориентированный граф на рис. 5.3. Перечислим его ребра в порядке возрастания их стоимостей:
Разумеется, на самом деле на шаге 3 алгоритма 5.1 ребра не сортируются, а хранятся в виде сортирующего дерева, 2-3-дерева или какой-нибудь другой приемлемой структуры данных, пока они не потребуются. Сортирующее дерево из разд. 3.4 фактически дает идеальный способ реализации очереди с приоритетами. Повторное обращение в строке 6 с целью найти ребро наименьшей стоимости является основной операцией с Сортдеревом. Кроме того, число ребер, выбираемых в строке 6 для построения остовного дерева, часто меньше Вначале каждое ребро находится в одноэлементном множестве, входящем в Затем рассматривается ребро
Рис. 5.3. Неориентированный граф с указанными стоимостями его ребер.
Рис. 5.4. Последовательность шагов построения остовного дерева. Затем рассматривается ребро Теорема 5.1. Алгоритм 5.1 находит остовное дерево наименьшей стоимости для связного графа Доказательство. Корректность алгоритма вытекает непосредственно из леммы 5.2 и того факта, что строки 8 и 9 сохраняют узлы в том же самом множестве тогда и только тогда, когда
Рис. 5.5. Остовное дерево наименьшей стоимости. они принадлежат одному и тому же дереву остовного леса, представленного набором Для оценки времени допустим, что требуется
|
1 |
Оглавление
|