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.
algorithms
graphs
minimum-spanning-tree
domoremath
fonte
fonte
Respostas:
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.
A prova do lema 1 é deixada como um exercício fácil.
(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 1W2 W1 ,
Um algoritmo baseado em comparação em um gráficoG é 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.G G
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 quem G W1 m W2 e1 e2 W1 e1 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 come2 W2 W1 W2 m W2 W2 m W1 W2 m , ele encontrará m também com w 1W2 m W1 .
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 seguinte algoritmo MST não é compatível com comparação.
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?
Um algoritmo é compatível com comparação se, em termos gerais, pode ser descrito em três tipos de etapas.
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
fonte