implementando tópicos algoritmo utilizando de Kruskal
-
13-09-2019 - |
Pergunta
Estou implementando o algoritmo de Kruskal e eu gostaria de utilizar threads. No entanto, eu não estou certo que eu sei o suficiente sobre o algoritmo para fazer isso.
O que imagino é que eu tinha diferentes partes do gráfico seria resolvido para e ligado no final. Alguém pode me apontar na direção certa? Obrigado.
Solução
A partir Wikipedia
A investigação centrou-se em resolver o mínimo abrangendo problema árvore em um altamente parallelized maneira. Com um número de processadores linear é possível para resolver o problema em O (log n) de tempo. Um artigo 2003 "Rápido Shared-Memory Algorithms for Computing Mata geradora mima de Dispersa Gráficos" por David A. Bader e Guojing Cong demonstra uma pragmática algoritmo que pode calcular MSTs 5 mais rápidos tempos de 8 processadores do que um optimizado algoritmo sequencial. [9] Tipicamente, os algoritmos são paralelas baseado em algoritmo-Prim do Boruvka e, especialmente, o algoritmo de Kruskal fazer não escala bem a adicional processadores.
Assim, você pode olhar para o algoritmo mencionado nesse papel, mas Kruskal provavelmente não irá beneficiar de vários segmentos.
Outras dicas
O algoritmo de Kruskal para MST é difícil de paralelizar porque considera bordas em uma ordem estritamente especificado. Você deve dar uma olhada algoritmo de Boruvka que é mais fácil de paralelização da ele pode trabalhar em cada sub-árvore de um MST parcial de forma independente.