Deixe- ser uma árvore de cobertura mínima de . Vamos ser a borda que modificar para obter'e deixá- ser a árvore calculado de acordo com o algoritmo. Sabemos que o peso de é menor ou igual ao peso de .TGeG′T′T′T
Primeiro, é uma árvore - criamos exatamente um ciclo no algoritmo e o quebramos, para não termos ciclos em .T′T′
Em segundo lugar, é uma árvore de abrangência de . Seja a borda removida e seja a borda adicionada no algoritmo (temos ou ). Para ser uma árvore de abrangência, precisamos ter um caminho entre cada par de vértices , usando apenas arestas de . Suponha que em (que é definitivamente uma árvore de abrangência), o caminho de até não envolva , o mesmo caminho existe em . Como alternativa, suponha que ele usouT′G′e′e′′e′′=e′e′′=euvT′Tuve′T′e′, existe um caminho (sem perda de generalidade) de para um ponto final de e do outro ponto final de para . Também existe um caminho de um ponto final de para o outro ponto final via (ao redor do ciclo), tudo dentro de . Em seguida, podemos construir um caminho de para via em mesclando esses três caminhos e removendo a sobreposição (embora uma caminhada seja suficiente para a conectividade).ue′e′ve′e′′T′uve′′T′
Agora, a parte importante, queremos provar que é uma árvore de abrangência mínima para .T′G′
Caso 1 : O algoritmo não adiciona à árvore. Neste caso, . Suponha que exista uma árvore de abrangência mínima para que seja diferente de . Se tem o mesmo peso que , terminamos. Agora, suponha, por contradição, que o peso de seja menor que o peso de . Deve haver alguma aresta de menor peso que esteja em mas não em (deve haver alguma aresta que se sai melhor, caso contrário não teria peso menor queeT′=THG′T′HT′HT′e′HT′GT′além disso, podemos assumir que a margem que se sai melhor é a menor margem de peso que não está em - podemos pegar qualquer que seja uma árvore de peso menor que e olhar para o candidato a , se não estiver. menor do que qualquer aresta em seu ciclo, então não é um MST, ou podemos criar um novo onde trocamos o por alguma aresta de , esse processo deve terminar com uma aresta que possui o propriedade que é a borda que faz melhor).T′H′T′e′H′H′e′T′e′
- Se , considere a árvore obtida adicionando a (observe, não ) e removendo a borda de maior peso no ciclo formado. Essa nova árvore tem peso menor que o de e é uma árvore de abrangência para , contradizendo o fato de que é um MST para - então sabemos que isso não pode acontecer.e′≠ee′TT′TGTG
- Se , considere o ciclo formado adicionando a (isto é, o que o algoritmo considerou). Todas as outras arestas do ciclo têm peso menor que (caso contrário, o algoritmo incluiria como aresta) e, portanto, devem estar em (como é a aresta de menor peso que ainda não está em ), mas então deve conter um ciclo, então não é uma árvore e temos uma contradição.e′=ee′=eT′e′eHe′T′H
Caso 2 : O algoritmo adiciona a . Seja a aresta em que é removida pelo algoritmo (e, portanto, não em ). Novamente, assuma que temos outro MST como antes. Se o peso for o mesmo, estamos felizes. Portanto, assuma por contradição que tenha peso menor e, como antes, é o limite de peso mais baixo em que não está em . Podemos fazer argumentos semelhantes aos de antes com .eT′xTT′HHe′HT′x
- Se (observe também que ), podemos melhorar como antes, mas sabemos que é um MST e, lembrando-se da propriedade que podemos assumir, tem peso menor que em menos uma aresta no ciclo induzida pela adição, isso dá uma contradição e não pode existir.e′≠xe′≠eTTe′H
- Se , novamente deve ter um peso maior que todas as outras arestas do ciclo, portanto, deve conter todas essas arestas e não é uma árvore, e derivamos uma contradição.e′=xe′HH
Portanto, em todos os casos, derivamos uma contradição; portanto, não pode haver uma árvore de abrangência de menor peso que ; portanto, é uma árvore de abrangência mínima para .T′T′G′