Dado um não dirigida, ligado, gráfico ponderada , onde é a função de ponderação e uma árvore de cobertura mínima (MST) de . Agora vamos diminuir o peso por de uma borda que não não pertencem a .
Como atualizar eficientemente para torná-lo um MST (denotado ) de , onde é o mesmo que exceto que ?
O algoritmo para atualizar para é fácil: Adicionando para cria um ciclo em . Deixe ser uma vantagem máxima ponderados no ciclo . Se , então é o MST conforme desejado. Caso contrário, .
Tenho dificuldade em provar sua correção por contradição. Suponha que é uma árvore de abrangência de G ' e w' (T '') <w '(T') .
- : temos . Contradiz com o fato de que é uma MST de .
- : Estou preso aqui.
Duas notas:
A resposta aceita aqui para a mesma pergunta é muito geral para eu seguir.
Prefiro provas que não se baseiam em algoritmos concretos de MST, como os algoritmos de Kruskal e Prim. No entanto, você não precisa provar isso por contradição ou separar os dois casos e como eu fiz.
Respostas:
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 .T G e G′ 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′′=e u v T′ T u v e′ 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).u e′ e′ v e′ e′′ T′ u v e′′ 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 quee T′=T H G′ T′ H T′ H T′ e′ H T′ G T′ 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′
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 .e T′ x T T′ H H e′ H T′ x
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′
fonte
Deixe- ser uma árvore de amplitude de um gráfico de aresta ponderados . Chamamos a um local-mínimos árvore geradora de se por toda a borda não em , é uma vantagem a mais pesada no ciclo criado quando adicionamos para .S G S G e S e e S
Deixe-me apresentar um teorema sobre a árvore de abrangência mínima (MST).
Uma árvore de abrangência é um MST se, e somente se, é uma árvore de abrangência local mínima.
Uma prova do teorema acima pelo próprio OP não depende de nenhum algoritmo MST concreto.
Em outra prova do teorema acima, mas declarado de maneira diferente , você também pode ler o motivo pelo qual uma árvore de abrangência é chamada "local-mínimo".
O teorema acima nos permite verificar um MST borda a borda, embora o MST seja definido com relação a todas as arestas juntas.
Uma vez armados com o teorema acima, fica fácil provar a correção do algoritmo na pergunta. Na verdade, deve ser mais fácil construir uma prova do que ler a prova rigorosa abaixo.
Uma prova simples do algoritmo na pergunta
Vamos reutilizar todas as notações na definição de OP do algoritmo.
Note-se que é uma árvore spanning-mínimo local de . Para provar que é um MST de , mostraremos que é uma árvore de abrangência local mínima de . Existem dois casos.T G T′ G′ T′ G′
quando e .w(e′)≤w′(e) T′=T
Como a única diferença entre em e em é o peso da aresta , precisamos verificar apenas . Como é uma aresta mais pesada em com , a condição significa que é uma aresta mais pesada em com . Nós terminamos neste caso.T G T′ G′ e e e′ C w w′(e)≥w(e′) e C w′
quando e .w(e′)>w′(e) T′=T∪{e}−{e′}
Observe que o algoritmo e a prova acima funcionam bem, independentemente de o peso de estar diminuído, intacto ou aumentado.e
Sobre pesos iguais de arestas
É uma prática comum assumir pesos distintos de todas as arestas para uma exposição mais clara. No entanto, este post funciona bem com pesos de borda possivelmente iguais. Em particular, nos referimos a "uma aresta mais pesada", mas nunca "a aresta mais pesada".
fonte