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?
graphs
trees
minimum-spanning-tree
Death_by_Ch0colate
fonte
fonte
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.
fonte
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.
fonte
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!
fonte
set
oudict
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.