Todas as árvores de abrangência mínima do MST podem ser acessadas pelo Kruskal e Prim?

13

Acredito que isso seja verdade, mas também não consegui uma prova formal. Mas é verdade que qualquer árvore de abrangência mínima é alcançável aplicando o algoritmo de Kruskal? Da mesma forma, isso é verdade para o algoritmo de Prim?

EDIT: Para ser mais preciso, quero saber se é fornecido um MST para um gráfico conectado, não direcionado e ponderado, é garantido que haja uma sequência de etapas usando Kruskal ou Prim que gera esse MST. Por exemplo, existem opções diferentes para o Kruskal quando existem várias arestas com o mesmo peso. Da mesma forma para Prim.

domoremath
fonte
2
Resposta e discussão relevantes para outro resultado que você pode querer usar como um lemme.
Raphael
3
A primeira seção da minha resposta comprova isso para o algoritmo de Kruskal, e eu acho que um argumento semelhante iria trabalhar para de Prim: stackoverflow.com/a/13779113/47984
j_random_hacker

Respostas:

9

Conforme indicado pelo comentário de Rafael e o comentário de j_random_hacker , a resposta é positiva. De fato, qualquer MST é acessível por qualquer algoritmo MST, com algumas pequenas exceções.

Para um gráfico , duas funções de peso em todas as arestas (para números reais) são definidas como (fracamente)G compatíveis com comparação (uma para a outra) se pudermos estender a ordenação fraca estrita nas arestas induzida por qualquer função de peso para a mesma estrita ordem total. Ou seja, podemos criar regras de desempate consistentes com cada função de peso, para que o resultado da comparação de duas arestas por uma função de peso e suas regras de desempate seja o mesmo que o resultado da outra função de peso e seu empate. quebrando Regras.

Lema 1 : Seja e w 2 duas funções de peso. As cinco instruções a seguir são equivalentes entre si.W1W2

  1. e w 2W1W2 são compatíveis com comparação.
  2. Em qualquer conjunto de arestas, existe uma aresta mais clara comum por e por w 2W1W2 .
  3. Em qualquer conjunto de arestas, existe uma aresta mais pesada comum por e por w 2W1W2 .
  4. Existe uma função de peso que atribui pesos distintos a arestas distintas, de modo que w 3 seja compatível com comparação com w 1 e w 2W3W3W1W2 .
  5. para qualquer aresta e e 2, de modo que e 1 seja mais leve que e 2 por uma função de peso, e 1 seja tão leve quanto ou mais leve que e 2e1e2e1e2e1e2 pela outra função de peso.

A prova do lema 1 é deixada como um exercício fácil.

Lema 2 : Seja duas funções de peso e w 2 tais que se e 1 < w 1 e 2 , então e 1 < w 2 e 2W1W2e1<W1e2e1<W2e2 . Então eles são comparáveis.

(Sugestão para) Prova: Uma abordagem é verificar a condição 5 do lema 1. Outra abordagem é verificar a condição 2 do lema 1, mostrando que em qualquer conjunto de arestas, uma aresta mais leve de também é uma aresta mais leve de w 1W2W1 ,

Um algoritmo baseado em comparação em um gráfico G é definido como compatível com comparação se, para quaisquer duas funções de peso compatíveis com comparação (fracamente) em todas as arestas, podemos executar o algoritmo com uma função de peso de uma forma que possa ser repetida sem nenhuma alteração com a outra função de peso. Em particular, essas duas execuções do algoritmo terão a mesma saída.

Observe que a maioria, se não todos, os algoritmos MST podem ser declarados em dois tipos. O primeiro sabor assume que as arestas distintas de têm pesos distintos, o que é usado quando a principal preocupação é encontrar um MST (que também é o único MST). O segundo sabor permite que arestas distintas de G tenham os mesmos pesos. Obviamente, nesta resposta, onde a principal preocupação é encontrar todos os MSTs, cuidaremos apenas dos algoritmos do MST no segundo sabor.GG

Um algoritmo MST compatível com comparação pode encontrar todos os MSTs.

Para provar a proposição acima, basta adaptar um pouco a seção "Kruskal pode encontrar todos os MST" no cálculo do número de MSTs . Para qualquer MST de G com função de peso w 1 , escolha um peso positivo que seja mais leve que a diferença absoluta entre qualquer par de pesos de borda desiguais. Se subtrairmos esse peso do peso de cada aresta em m sem alterar os pesos de outras arestas, obteremos uma nova função de peso, digamos, w 2 . Se a aresta e 1 for mais clara que e 2 por w 1 , e 1 deverá ser mais leve quemGW1mW2e1e2W1e1 por w 2 também. Pelo lema 2, w 1 e w 2 são compatíveis com comparação. Observe que m é o MST exclusivo com w 2 . (Uma maneira de mostrar essa singularidade é provar que sempre que o peso de uma borda do MST é reduzido, qualquer MST com a nova função de peso deve conter essa borda.) Portanto, qualquer execução do algoritmo em w 2 encontrará m . Como o algoritmo é compatível com comparação, podemos executá-lo da mesma maneira com w 1 ou w 2 . Uma vez que essa execução encontrará o MST exclusivo, m come2W2W1W2mW2W2mW1W2m , ele encontrará m também com w 1W2mW1 .

Todo algoritmo MST é compatível com comparação

A proposição acima parece exagerada. Bem, por todo algoritmo MST, quero dizer qualquer algoritmo geral MST baseado em comparação que eu já vi, excluindo aqueles aparentemente patológicos, como erros ou etapas desnecessárias. Como um algoritmo MST compatível com comparação pode encontrar todos os MSTs, todo algoritmo MST pode encontrar todos os MSTs. Em particular, cada um dos quatro algoritmos clássicos do MST , a saber, os algoritmos de Borůvka, Prim, Kruskal e exclusão reversa, pode encontrar todos os MSTs.

Aqui estão mais três algoritmos MST compatíveis com comparação.

  • o algoritmo delete-heavy-edge. Comece com todas as arestas. Encontre repetidamente um ciclo e remova uma de suas arestas mais pesadas até que nenhum ciclo permaneça.
  • o algoritmo add-non-heavy-edge. Comece com o conjunto vazio. Iterar através de todas as arestas. Cada aresta é adicionada e, se um ciclo for formado, remova uma das arestas mais pesadas.
  • TTeTtetTeTT

O seguinte algoritmo MST não é compatível com comparação.

  • S{umab,bc,cd}uma,b,cumab1bc,cd,db2

Observe que todos os oito algoritmos MST mencionados acima são baseados em comparação.

Como mostrar que um algoritmo é compatível com comparação?

G

  • FGF é uma floresta de árvores separadas de um único vértice.
  • S contendo todas as arestas do gráfico.
  • SF
    • S .
    • S .
    • F
  • F

w1w2GSw1w2 . Portanto, o algoritmo de Kruskal é compatível com comparação.

Um algoritmo é compatível com comparação se, em termos gerais, pode ser descrito em três tipos de etapas.

  1. faça algo que não envolva peso.
  2. selecione uma aresta com o peso mínimo em um determinado conjunto de arestas
  3. selecione uma aresta com o peso máximo em um determinado conjunto de arestas

Essa condição suficiente abrange o algoritmo de Borůvka, Prim, Kruskal, exclusão reversa, exclusão de borda pesada e adição de borda não pesada. Observe que, para atender a essa condição suficiente, talvez seja necessário alterar certas descrições de um algoritmo sem afetar o conjunto de MSTs alcançáveis. Por causa da exceção do algoritmo de Kruskal com viés de grau ser compatível com comparação, permita-me enfatizar que essa condição suficiente é descrita em termos fracos

John L.
fonte