Engenharia Estrutural Civil &
Calculando a Árvore de Espremedor Mínima: Algoritmos de Kruskal e Prim na Prática
Table of Contents
Árvores de envergadura mínima são usadas para conectar todos os nós em um gráfico com o mínimo peso total de borda. Dois algoritmos comuns para encontrar essas árvores são os algoritmos de Kruskal e Prim. Ambos são eficientes, mas diferem na abordagem e implementação.
Algoritmo de Kruskal
O algoritmo do Kruskal classifica todas as bordas no gráfico em peso. Ele adiciona as bordas à árvore de envergadura, começando pelo menor, garantindo que não se formarão ciclos. Este processo continua até que todos os nós estejam conectados.
O algoritmo é particularmente eficaz para gráficos esparsos. Ele usa uma estrutura de dados de conjuntos disjuntos para verificar eficientemente se adicionar uma borda criaria um ciclo.
Algoritmo de Prim
O algoritmo do Prim começa a partir de um nó arbitrário e cresce a árvore de expansão adicionando a borda mais pequena que liga a árvore a um novo nó. Ele continua até que todos os nós estejam incluídos.
Este método é frequentemente preferido para gráficos densos. Ele usa uma fila de prioridades para selecionar a borda seguinte com o peso mínimo de forma eficiente.
Comparação e aplicação
Ambos os algoritmos garantem encontrar a árvore de envergadura mínima, mas sua eficiência depende da estrutura do gráfico. Kruskal é mais simples de implementar com foco em bordas de ordenação, enquanto Prim pode ser mais eficiente com gráficos densos usando uma fila de prioridade.
- As bordas de tipos de Kruskal globalmente
- A árvore cresce a partir de um nó inicial
- Ambos usam estruturas de dados diferentes para eficiência
- A escolha depende da densidade e tamanho do gráfico