Supondo que as arestas não sejam direcionadas, tenham peso exclusivo e nenhum caminho negativo, esses algoritmos produzem as mesmas árvores de abrangência mínima?
Supondo que as arestas não sejam direcionadas, tenham peso exclusivo e nenhum caminho negativo, esses algoritmos produzem as mesmas árvores de abrangência mínima?
Respostas:
Constatou -se que afirma que, se todas as condições mencionadas acima forem atendidas, um gráfico terá necessariamente um MST único. Portanto, em termos de minha pergunta, os algoritmos de Kruskal e Prim necessariamente produzem o mesmo resultado.
Se o MST for único, todos os algoritmos o produzirão forçosamente.
Se o MST não for exclusivo, as saídas poderão diferir devido a ordens de processamento de nó diferentes (até duas implementações distintas do mesmo algoritmo podem), mas os pesos totais serão idênticos. Nesse caso, o MST é um nome impróprio.
Para adicionar a resposta de Yves Daoust , o seguinte gráfico
Neste gráfico, temos 3 nós e 3 arestas, cada um com o mesmo peso. Obviamente, quaisquer 2 arestas formarão um MST para este gráfico. No entanto, quais as duas arestas escolhidas dependerão não apenas do algoritmo, mas também da implementação do algoritmo. Por exemplo, se eu armazenar os nós em uma lista, posso visitá-los em uma ordem diferente do que se os nós forem armazenados em um conjunto, mesmo se eu usar o mesmo algoritmo MST a partir desse ponto.
De fato, se minha implementação depende da aritmética dos ponteiros (o que alguns contêineres em alguns idiomas fazem), posso até escolher um MST diferente cada vez que executo o algoritmo!
set
ou dict
no Python 3.3+: os hashes são salgados com um valor diferente a cada execução para dificultar os ataques de negação de serviço.