Критерий Тарьяна минимальности остовного дерева — различия между версиями
Filchenko (обсуждение | вклад) (зяпятушечки) |
Filchenko (обсуждение | вклад) (еще стилистика) |
||
| Строка 12: | Строка 12: | ||
Теперь докажем, что дерево, удовлетворяющее условию, минимально: | Теперь докажем, что дерево, удовлетворяющее условию, минимально: | ||
| − | Обозначим дерево <tex>T</tex>, | + | Обозначим дерево <tex>T</tex> и покажем, что его можно построить алгоритмом Крускала. |
Индукция по количеству ребер в дереве: | Индукция по количеству ребер в дереве: | ||
| − | База: | + | |
| − | пустое дерево. | + | База: пустое дерево. |
Переход: | Переход: | ||
| + | |||
Строим дерево <tex>T'</tex> по лемме о безопасном ребре. Рассмотрим минимальное невзятое ребро <tex>uv \in T</tex>. | Строим дерево <tex>T'</tex> по лемме о безопасном ребре. Рассмотрим минимальное невзятое ребро <tex>uv \in T</tex>. | ||
Рассмотрим разрез, окружающий одну из двух компонент. | Рассмотрим разрез, окружающий одну из двух компонент. | ||
Пусть <tex>uv</tex> не минимально в разрезе, тогда существует <tex>ab \notin T</tex> такое, что <tex>w(ab) < w(uv)</tex>. Рассмотрим <tex>\{ab\} \cup T</tex>: некое ребро <tex>xy \in T</tex>, такое что <tex>w(xy) \ge w(uv) > w(ab)</tex>, будет лежать на цикле. Противоречие условию теоремы. | Пусть <tex>uv</tex> не минимально в разрезе, тогда существует <tex>ab \notin T</tex> такое, что <tex>w(ab) < w(uv)</tex>. Рассмотрим <tex>\{ab\} \cup T</tex>: некое ребро <tex>xy \in T</tex>, такое что <tex>w(xy) \ge w(uv) > w(ab)</tex>, будет лежать на цикле. Противоречие условию теоремы. | ||
| + | |||
Если <tex>uv</tex> минимально — добавим его в <tex>T'</tex>. | Если <tex>uv</tex> минимально — добавим его в <tex>T'</tex>. | ||
Версия 20:31, 15 января 2011
| Теорема (критерий минимальности остовного дерева Тарьяна): |
Остовное дерево минимально тогда и только тогда, когда любое ребро не из дерева является максимальным на цикле, который образуется при его добавлении в дерево. |
| Доказательство: |
|
Легко заметить, что остовное дерево, не удовлетворяющее условию, не минимально: Если существует ребро, не максимальное на образовавшемся цикле, мы можем уменьшить вес дерева, добавив это ребро и удалив максимальное. Теперь докажем, что дерево, удовлетворяющее условию, минимально: Обозначим дерево и покажем, что его можно построить алгоритмом Крускала. Индукция по количеству ребер в дереве: База: пустое дерево. Переход: Строим дерево по лемме о безопасном ребре. Рассмотрим минимальное невзятое ребро . Рассмотрим разрез, окружающий одну из двух компонент. Пусть не минимально в разрезе, тогда существует такое, что . Рассмотрим : некое ребро , такое что , будет лежать на цикле. Противоречие условию теоремы. Если минимально — добавим его в . В процессе индукции добавлялись только ребра из , поэтому построенное дерево совпадет с . |