12. Остов в графе и алгоритм Краскала поиска остова минимального веса во взвешенном графе
Пусть 
 - граф и 
 - весовая функция. Как обычно, предполагается, что все рассматриваемые графы связны. Остовом графа, напомним, называвается подграф, яв-ляющийся деревом и содержащий все вершины данного графа. Нетрудно доказать, что в каж-дом графе обязательно есть остов.
Как определялось ранее, Вес подграфа - это сумма весов его ребер. Ясно, что во взвешен-ном графе существует остов наименьшего веса.
Существует Алгоритм Краскала, позволяющий найти остов минимального веса в любом взвешенном графе. Дадим его описание по шагам.
Шаг 1. Найдем в данном графе ребро минимального веса (если таких несколько, фикси-руем любое). Обозначим его через 
; кроме того, фикисруем подграф в данном графе 
, со-стоящий из концов ребра 
 и самого этого ребра. Обозначим этот подграф через 
.
Шаг 2. Фиксируем в данном исходном графе 
 второе ребро - обозначим его через 
, - вес которого минимален относительно весов всех ребер, не принадлежащих 
. Подграф, со-стоящий из ребер 
, 
 и их концов обозначим через 
.
Шаг 3. Фиксируем в графе 
 ребро - обозначим его через 
, - имеющее минимальный вес среди всех ребер графа 
, не принадлежащих 
, и не составляющих цикла с ребрами из 
. Подграф, состоящий из ребер 
, 
, 
 и их концов, обознаим через 
.
Шаг 4. Фиксируем в графе 
 ребро - обозначим его через 
, - имеющее минимальный вес среди тех ребер графа 
, которые не принадлежат 
 и не образуют цикла с ребрами из 
. Подграф, состоящий из ребер 
, 
, 
, 
 и их концов обознаим через 
.
Общий шаг - шаг № K. Фиксируем в графе 
 ребро – обозначим его через 
, - имею-щее минимальный вес среди ребер, не входя-щих в 
 и не составляющих цикла с ребрами из 
. Подграф, состоящий из ребер 
, 
, 
,..., 
, обозначим через 
.
Можно доказать, что Если в исходном графе 
 Количество вершин равно 
, То подграф  
 Будет искомым остовом.
| < Предыдущая | Следующая > | 
|---|