Критерий Тарьяна минимальности остовного дерева — различия между версиями
(изменено обозначение MST на K) |
(утверждение исправлено и вынесено в шаблон) |
||
Строка 6: | Строка 6: | ||
|proof= | |proof= | ||
Легко заметить, что остовное дерево, не удовлетворяющее условию, не минимально: | Легко заметить, что остовное дерево, не удовлетворяющее условию, не минимально: | ||
− | + | если существует ребро, не максимальное на образовавшемся цикле, то мы можем уменьшить вес дерева, добавив это ребро и удалив максимальное. | |
− | |||
Теперь докажем, что дерево <tex>K</tex>, удовлетворяющее условию, минимально: | Теперь докажем, что дерево <tex>K</tex>, удовлетворяющее условию, минимально: | ||
− | Для | + | {{Утверждение |
− | + | |statement=Для любого разреза <tex>\langle S, T \rangle</tex>, в котором ребро <tex>uv</tex> {{---}} единственное, пересекающее его в <tex>K</tex>, вес этого ребра минимален среди всех ребер <tex>G</tex>, пересекающих этот разрез. | |
− | |||
− | + | |proof=Рассмотрим ребро <tex>ab \notin K</tex>, пересекающее <tex>\langle S, T \rangle </tex> и путь между вершинами <tex>a</tex> и <tex>b</tex> по дереву <tex>K</tex>. | |
+ | По условию теоремы, вес <tex>ab</tex> не меньше веса любого ребра на этом пути. | ||
+ | При этом <tex>ab</tex> пересекает <tex>\langle S, T \rangle</tex>, поэтому на этом пути найдется ребро, пересекающее этот разрез. | ||
+ | Но единственное такое ребро в остовном дереве {{---}} это <tex>uv</tex>. | ||
+ | Следовательно, <tex>w(uv) \le w(ab)</tex>. | ||
+ | }} | ||
+ | Для доказательства минимальности <tex>K</tex> построим минимальное остовное дерево графа <tex>G</tex> используя [[алгоритм Краскала]], который представляет собой применение [[Лемма о безопасном ребре|леммы о безопасном ребре]] некоторое число раз. | ||
+ | На каждом шаге к строящемуся остову будет добавляться ребро минимального веса, пересекающего некоторый разрез, а этот вес, как было показано в утверждении выше, равен весу ребра из <tex>K</tex>, пересекающего этот разрез. | ||
+ | Поэтому вес получившегося минимального остова <tex>G</tex> будет равен весу <tex>K</tex>, что и требовалось. | ||
}} | }} | ||
Версия 21:59, 10 января 2015
Теорема (критерий Тарьяна минимальности остовного дерева): | |||||
Остовное дерево минимально тогда и только тогда, когда любое ребро не из дерева является максимальным на цикле, который образуется при его добавлении в дерево. | |||||
Доказательство: | |||||
Легко заметить, что остовное дерево, не удовлетворяющее условию, не минимально: если существует ребро, не максимальное на образовавшемся цикле, то мы можем уменьшить вес дерева, добавив это ребро и удалив максимальное. Теперь докажем, что дерево , удовлетворяющее условию, минимально:
Для доказательства минимальности алгоритм Краскала, который представляет собой применение леммы о безопасном ребре некоторое число раз. На каждом шаге к строящемуся остову будет добавляться ребро минимального веса, пересекающего некоторый разрез, а этот вес, как было показано в утверждении выше, равен весу ребра из , пересекающего этот разрез. Поэтому вес получившегося минимального остова построим минимальное остовное дерево графа используя будет равен весу , что и требовалось. | |||||
Литература
- Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. — Алгоритмы. Построение и анализ.