Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
вопросы к экзамену.docx
Скачиваний:
5
Добавлен:
28.12.2024
Размер:
430.24 Кб
Скачать

29. Графы. Построение минимального остовного дерева. Алгоритм Прима.

Граф – это совокупность двух множеств – множества вершин и множества их парных связей - ребер.

Остовное дерево графа – это ациклический связный подграф данного графа, содержащий все его вершины.

Минимальное – имеющее минимальный возможный вес, где под весом понимается сумма весов всех входящих в него ребер.

Алгоритм:

Искомый минимальный остов строится постепенно, мы добавляем ребра по одному.

Произвольно выбирается вершина, потом выбирается ребро минимального веса, исходящее из этой вершины, и добавляется в остов. Когда остов имеет две вершины, ищется и добавляется ребро минимального веса, имеющее конец в одной из двух вершин, а другой – нет, во всех остальных, кроме этих двух (чтобы не образовалось циклов).

Эти действия повторяются, пока остов не будет содержать все вершины (n-1 ребер).

28. Графы. Построение минимального остовного дерева. Алгоритм Краскала.

Граф – это совокупность двух множеств – множества вершин и множества их парных связей - ребер.

Остовное дерево графа – это ациклический связный подграф данного графа, содержащий все его вершины.

Минимальное – имеющее минимальный возможный вес, где под весом понимается сумма весов всех входящих в него ребер.

Перед началом работы алгоритма все ребра графа сортируются в порядке неубывания.

Изначально алгоритм помещает каждую вершину в своё дерево, а затем объединяет эти деревья, объединяя неким ребром два разных дерева.

Процесс объединения выглядит так: мы проходим по списку отсортированных ребер, если у текущего ребра его концы принадлежат разным поддеревьям, то эти поддеревья объединяются, а ребро добавляется к ответу. По окончании перебора всех ребер, все вершины будут принадлежать одному поддереву, которое и будет являться минимальным остовным деревом.

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

Для улучшенной реализации используется система непересекающихся множеств.