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