Különbség a Kruskal és a Prim között

Különbség a Kruskal és a Prim között
Különbség a Kruskal és a Prim között

Videó: Különbség a Kruskal és a Prim között

Videó: Különbség a Kruskal és a Prim között
Videó: Nexium vs Prilosec-which one is better? 2024, Július
Anonim

Kruskal vs Prim

A számítástechnikában a Prim- és a Kruskal-algoritmusok egy mohó algoritmusok, amelyek megtalálják a minimális feszítőfát egy összekapcsolt súlyozott irányítatlan gráfhoz. A feszítőfa a gráf olyan részgráfja, amelyben a gráf minden csomópontját egy útvonal köti össze, amely egy fa. Minden feszítőfának van súlya, és az összes feszítőfa minimális lehetséges súlya/költsége a minimális feszítőfa (MST).

További információ a Prim algoritmusáról

Az algoritmust Vojtěch Jarník cseh matematikus fejlesztette ki 1930-ban, később önállóan, Robert C. Prim informatikus, 1957-ben. Edsger Dijkstra fedezte fel újra 1959-ben. Az algoritmust három kulcslépésben lehet megfogalmazni;

Az n csomóponttal és az egyes élek megfelelő súlyával összekapcsolt gráfot figyelembe véve

1. Válasszon ki egy tetszőleges csomópontot a gráfból, és adja hozzá a T fához (ami lesz az első csomópont)

2. Vegye figyelembe a fa csomópontjaihoz kapcsolódó egyes élek súlyát, és válassza ki a minimumot. Adja hozzá az élt és a csomópontot a T fa másik végén, és távolítsa el az élt a gráfból. (Válassza ki bármelyiket, ha kettő vagy több minimum létezik)

3. Ismételje meg a 2. lépést, amíg n-1 élt hozzáad a fához.

Ennél a módszernél a fa egyetlen tetszőleges csomóponttal kezdődik, és ettől a csomóponttól kezdve minden ciklussal bővül. Ezért ahhoz, hogy az algoritmus megfelelően működjön, a gráfnak összefüggő gráfnak kell lennie. A Prim-algoritmus alapformájának időbonyolítása O(V2).

További információ a Kruskal-algoritmusról

A Joseph Kruskal által kifejlesztett algoritmus 1956-ban jelent meg az Amerikai Matematikai Társaság közleményében. Kruskal algoritmusa három egyszerű lépésben is kifejezhető.

Az n csomópontot tartalmazó gráf és az egyes élek megfelelő súlya alapján

1. Válassza ki a legkisebb súlyú ívet a teljes grafikonon, és adja hozzá a fához, és törölje a grafikonból.

2. A többi közül válassza ki a legkevésbé súlyozott élt úgy, hogy ne képezzen ciklust. Adja hozzá az élt a fához, és törölje a grafikonból. (Válassza ki bármelyiket, ha kettő vagy több minimum létezik)

3. Ismételje meg a folyamatot a 2. lépésben.

Ennél a módszernél az algoritmus a legkisebb súlyozott éllel kezdődik, és minden egyes ciklusban folytatja az egyes élek kiválasztását. Ezért az algoritmusban a gráfot nem kell összekapcsolni. Kruskal algoritmusának időbonyolultsága O(logV)

Mi a különbség a Kruskal- és a Prim-algoritmus között?

• A Prim algoritmusa egy csomóponttal inicializálódik, míg a Kruskal algoritmusa egy éllel.

• A Prim algoritmusai egyik csomóponttól a másikig terjednek, míg Kruskal algoritmusa úgy választja ki az éleket, hogy az él pozíciója ne az utolsó lépésen alapuljon.

• A prim algoritmusában a gráfnak összefüggő gráfnak kell lennie, míg a Kruskal-féle gráfok szétválasztott gráfokon is működhetnek.

• A Prim algoritmusának időbonyolultsága O(V2), Kruskal időbonyolultsága pedig O(logV).

Ajánlott: