Diferença Entre Kruskal e Prim: Kruskal vs Prim
Na ciência da computação, os algoritmos de Prim e Kruskal são um algoritmo ganancioso que encontra uma árvore de abrangência mínima para um gráfico não direcionado ponderado conectado. Uma árvore de extensão é um subgrafo de um gráfico de tal forma que cada nó do gráfico está conectado por um caminho, que é uma árvore. Cada árvore de expansão tem um peso, e o mínimo possível de pesos / custos de todas as árvores abrangentes é a árvore de extensão mínima (MST).
Mais sobre o Algoritmo de PrimO algoritmo foi desenvolvido pelo matemático checo Vojtěch Jarník em 1930 e, mais tarde, independentemente pelo cientista da computação Robert C. Prim em 1957. Foi redescoberto por Edsger Dijkstra em 1959. O O algoritmo pode ser indicado em três etapas principais;
Dado o gráfico conectado com n nós e o respectivo peso de cada borda, 1. Selecione um nó arbitrário do gráfico e adicione-o à árvore T (que será o primeiro nó)
3. Repita o passo 2, até que as bordas n-1 sejam adicionadas à árvore.
Neste método, a árvore começa com um único nó arbitrário e se expande desse nó em cada ciclo. Portanto, para que o algoritmo funcione corretamente, o gráfico precisa ser um gráfico conectado. A forma básica do algoritmo de Prim tem uma complexidade de tempo de O (V
2 ).
O algoritmo desenvolvido por Joseph Kruskal apareceu nos trabalhos da American Mathematical Society em 1956. O algoritmo de Kruskal também pode ser expresso em três etapas simples.
Dado o gráfico com n nós e o respectivo peso de cada borda, 1. Selecione o arco com o menor peso do gráfico inteiro e adicione à árvore e exclua do gráfico.
2. Do restante, selecione a borda menos ponderada, de forma a não formar um ciclo. Adicione a borda à árvore e exclua do gráfico. (Selecione se houver dois ou mais mínimos)
3. Repita o processo no passo 2.
Neste método, o algoritmo começa com a borda menos ponderada e continua selecionando cada borda em cada ciclo. Portanto, no algoritmo o gráfico não precisa estar conectado. O algoritmo de Kruskal tem uma complexidade de tempo de O (logV)
Qual a diferença entre Algoritmo de Kruskal e Prim?
• O algoritmo de Prim inicializa com um nó, enquanto o algoritmo de Kruskal inicia com uma vantagem.
• Os algoritmos de Prim abrange de um nó para outro, enquanto o algoritmo de Kruskal seleciona as bordas de forma que a posição da borda não se baseie no último passo.
• No algoritmo de prim, o gráfico deve ser um gráfico conectado, enquanto o Kruskal pode funcionar em gráficos desconectados também.
• O algoritmo de Prim tem uma complexidade de tempo de O (V
2 ), e a complexidade de tempo de Kruskal é O (logV).