Különbség Kruskal és Prim: Kruskal vs Prim

Anonim

Kruskal vs Prim

Számítástudományban a Prim és a Kruskal algoritmusa olyan mohó algoritmus, amely a kapcsolt, súlyozott, nem irányított gráfra vonatkozó minimális spanning fát találja meg. Az átlós fa egy grafikon részgrafikája, úgy, hogy a grafikon minden egyes csomópontja egy ösvényhez kapcsolódik, ami egy fa. Minden egyes feszítőfa súlya, és az összes feszített fák minimális lehetséges súlya / költsége a minimális feszítőfa (MST).

Az algoritmust 1930-ban a cseh matematikus Vojtěch Jarník fejlesztette ki, majd 1958-ban Robert C. Prim számítógépes tudósok önállóan. Az 1959-ben Edsger Dijkstra újra felfedezte. az algoritmus három kulcsfontosságú lépésből állhat;

Tekintettel az összefüggő grafikonra n csomópontokkal és az egyes élek megfelelő súlyával

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

2. Tekintsük a fa csomópontjaihoz kapcsolódó minden él súlyát, és válasszuk ki a minimális értéket. Adja hozzá a fa és a csomópontot a fa másik végéhez, és vegye le a szélét a grafikonról. (Válasszon ki, ha két vagy több minimális létezik)

3. Ismételje meg a 2. lépést, amíg az n-1 élek hozzá nem kerülnek a fához.

Ebben a módszerben a fa egyetlen tetszőleges csomóponthoz indul, és minden egyes ciklussal kibővül a csomóponttól. Ezért, hogy az algoritmus megfelelően működjön, a gráfnak kapcsolt gráfnak kell lennie. A Prim algoritmus alapformája O (V

2) időkomplexitású.

A Kruskal algoritmusa több, mint Kruskal algoritmusa. A Joseph Kruskal által kidolgozott algoritmus 1956-ban jelent meg az American Mathematical Society munkájában. A Kruskal algoritmusa három egyszerű lépésben fejezhető ki. A grafikon n csomópontokkal és az egyes élek mindegyik súlyával 1. Válassza ki a teljes gráf legalacsonyabb súlyával rendelkező ívt, és adja hozzá a fához, és törölje a gráfból.

2. A fennmaradó részektől válassza ki a legkevésbé súlyozott élt oly módon, hogy ne formáljon ciklust. Adja hozzá a szegélyt a fa és törölje a grafikonból. (Válasszon ki, ha két vagy több minimális létezik)

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

Ebben az eljárásban az algoritmus a legkevésbé súlyozott éllel kezdődik, és folytatja az egyes élek mindegyik ciklusban történő kiválasztását. Ezért az algoritmusban a grafikont nem kell csatlakoztatni. Kruskal algoritmusa O (logV) időösszetevõséggel rendelkezik> Mi a különbség Kruskal és Prim algoritmusa között?

• A Prim algoritmusa egy csomóponttal inicializálódik, míg Kruskal algoritmusa egy élen kezdeményez.

• A Prim algoritmusai egy csomóponttól a másikig terjednek, miközben a Kruskal algoritmusa úgy választja meg a széleket, hogy az élhely nem az utolsó lépésen alapul.

• Prim algoritmusában a grafikonnak kapcsolt grafikonnak kell lennie, míg a Kruskal képes kapcsolódni rajta grafikonokon is.

• A Prim algoritmusa O (V

2

) időkomplexitással rendelkezik, és a Kruskal időbeli összetettsége O (logV).