Изменения

Перейти к: навигация, поиск
Критерий Тарьяна
<tex> \Rightarrow </tex>
Пусть нам дано минимальное остовное дерево <tex> A </tex>, которое получилось в результате общего алгоритма построения MST. Докажем, что оно имеет ребра минимального веса на каждом цикле.
'''function''' Generic MST(<tex> G </tex>):
Следовательно, любое ребро <tex> \notin A</tex> не легче ребер <tex> \in A </tex> на этом цикле.
Легко заметить, что остовное дерево, не удовлетворяющее условию, не минимально. Если для какого-то ребра оказалось, что оно легче некоторых рёбер образуемого цикла, то можно получить остов с меньшим весом, добавив это ребро в остов, и удалив самое тяжелое ребро из цикла. Если же это условие не выполнилось ни для одного ребра, то вес остова при добавлении не изменится.<tex> \Leftarrow </tex>
Пусть у нас есть минимальное остовное дерево <tex> A </tex>, состоящее из минимальных ребер на циклах. Докажем, что такое дерево минимально.
Предположим противное. В дереве <tex> A </tex> не все минимальные ребра на циклах. Тогда найдется цикл, в котором есть ребро <tex> (u, v) \notin A</tex>, которое легче остальных ребер этого цикла, включая ребро <tex> (a, b) \in A</tex>. Следовательно, можно получить остов с меньшим весом, удалив ребро <tex> (a, b) </tex>, и, добавив <tex> (u, v) </tex>. Поэтому, дерево содержащее не минимальные ребра на циклах не минимально {{---}} противоречие.
}}
113
правок

Навигация