Остовные деревья: определения, лемма о безопасном ребре — различия между версиями
Строка 44: | Строка 44: | ||
Пусть <tex>\ G = (V, E) </tex> - связный неориентированный граф с действительной весовой функцией <tex> w </tex>, определенной на <tex> E </tex>. Пусть <tex> A </tex> - подмножество <tex> E </tex>, которое входит в некоторое минимальное остовное дерево графа <tex> G </tex>; <tex> (S, V - S) </tex> - разрез <tex> G </tex>, согласованный с <tex> A </tex> по ребрам, а <tex> (u, v) </tex> - легкое ребро, пересекающее разрез <tex> (S, V - S) </tex>. Тогда ребро <tex> (u, v) </tex> является безопасным для <tex> A </tex>. | Пусть <tex>\ G = (V, E) </tex> - связный неориентированный граф с действительной весовой функцией <tex> w </tex>, определенной на <tex> E </tex>. Пусть <tex> A </tex> - подмножество <tex> E </tex>, которое входит в некоторое минимальное остовное дерево графа <tex> G </tex>; <tex> (S, V - S) </tex> - разрез <tex> G </tex>, согласованный с <tex> A </tex> по ребрам, а <tex> (u, v) </tex> - легкое ребро, пересекающее разрез <tex> (S, V - S) </tex>. Тогда ребро <tex> (u, v) </tex> является безопасным для <tex> A </tex>. | ||
|proof= | |proof= | ||
− | Пусть <tex> T </tex> - минимальное остовное дерево, которое включает в себя <tex> A </tex>. Предположим, что <tex> T </tex> не содержит ребро <tex> (u, v) </tex>, поскольку в противном случае теорема доказана. Мы построим другое минимальное остовное дерево <tex> T^ | + | Пусть <tex> T </tex> - минимальное остовное дерево, которое включает в себя <tex> A </tex>. Предположим, что <tex> T </tex> не содержит ребро <tex> (u, v) </tex>, поскольку в противном случае теорема доказана. Мы построим другое минимальное остовное дерево <tex> T^* </tex>, которое включает <tex> A \cup {(u, v)} </tex>, путем использования метода вырезания и вставки, показывая таким образом, что ребро <tex> (u, v) </tex> является безопасным для <tex> A </tex>. <br> |
+ | При добавлении ребро <tex> (u, v) </tex> образует цикл с ребрами на пути <tex> p </tex> от <tex> u </tex> к <tex> v </tex> в минимальном остовном дереве <tex> T </tex>. Так как вершины <tex> u </tex> и <tex> v </tex> находятся на разных сторонах разреза <tex> (S, V - S) </tex>, то на пути <tex> p </tex> имеется как минимум одно ребро из <tex> T </tex>, которое пересекает разрез. Пусть таким ребром является ребро <tex> (x, y) </tex>. Ребро <tex> (x, y) </tex> не входит в <tex> A </tex>, поскольку разрез согласован с <tex> A </tex> по ребрам. Так как <tex> (x, y) </tex> является единственным путем от <tex> u </tex> к <tex> v </tex> в <tex> T </tex>, то его удаление разбивает <tex> T </tex> на две компоненты. Добавление ребра <tex> (u, v) </tex> восстанавливает разбиение, образуя новое остовное дерево <tex> T^* </tex>. Покажем, что <tex> T^* </tex> - минимальное остовное дерево. Поскольку <tex> (u, v) </tex> - легкое ребро, пересекающее разрез <tex> (S, V - S) </tex>, и <tex> (x, y) </tex> тоже пересекает этот разрез, то <tex> w(u, v) \le w(x, y) </tex>. Следовательно, <tex> w(T^*) = w(T) - w(x, y) + w(u, v) \le w(T) </tex>. Но <tex> T </tex> - минимальное остовное дерево, так что <tex> w(T) \le w(T^*) </tex>. Значит <tex> T^* </tex> также должно быть минимальным остовным деревом. <br> | ||
+ | Покажем, что <tex> (u, v) </tex> действительно безопасное ребро для <tex> A </tex>. Мы имеем <tex> A \subseteq T^* </tex>, поскольку <tex> A \subseteq T </tex> и <tex> (x, y) \notin A </tex>. Таким образом, <tex> A \cup {(u, v)} \subseteq T^* </tex> и, поскольку <tex> T^* </tex> - минимальное остовное дерево, ребро <tex> (u, v) </tex> безопасно для <tex> A </tex>. | ||
}} | }} |
Версия 04:36, 8 декабря 2010
Содержание
Минимальное остовное дерево
Дан связный неориентированный граф
, где - множество вершин, - множество ребер. Для каждого ребра задана весовая функция , которая определяет стоимость перехода из в .Определение: |
Минимальным остовным деревом(как вариант MST) графа Граф может содержать несколько минимальных остовных деревьев. | называется ациклическое подмножество , которое соединяется все вершины и чей общий вес минимален.
Безопасное ребро
Пусть
- подмножество некоторого минимального остовного дерева графа , которое мы хотим полностью достроить до MST.Определение: |
Ребро | называется безопасным, если при добавлении его в , остается подмножеством некоторого минимального остовного дерева графа .
Разрез
Определение: |
Разрезом неориентированного графа | называется разбиение на два подмножества: и . Обозначается как .
Пересечение разреза
Определение: |
Мы говорим, что ребро | пересекает разрез , если один из его концов оказывается в множестве , а другой в множестве .
Согласованность разреза
Определение: |
Мы говорим, что разрез согласован с множеством | по ребрам, если ни одно ребро из не пересекает разрез.
Легкое ребро
Определение: |
Ребро, пересекающее разрез, является легким, если оно имеет минимальный вес среди всех ребер, пересекающих разрез. |
Заметим, что может быть несколько легких ребер одновременно.
Лемма о безопасном ребре
Теорема: |
Пусть - связный неориентированный граф с действительной весовой функцией , определенной на . Пусть - подмножество , которое входит в некоторое минимальное остовное дерево графа ; - разрез , согласованный с по ребрам, а - легкое ребро, пересекающее разрез . Тогда ребро является безопасным для . |
Доказательство: |
Пусть |