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