Kruskal vs Prim
A számítástechnikában Prim és Kruskal algoritmusok egy kapzsi algoritmus, amely minimális átfogó fát talál a csatlakoztatott súlyozott, nem irányított gráf számára. A kiterjedő fa egy grafikon algráfja, úgy, hogy a grafikon minden egyes csomópontját egy út vezet össze, amely egy fa. Minden átfogó fa súlya van, és az átfogó fák minimális lehetséges súlya / költsége a minimális átfogó fa (MST)..
További információ Prim algoritmusáról
Az algoritmust 1930-ban Vojtěch Jarník cseh matematikus, később pedig függetlenül Robert C. Prim számítógépes tudós fejlesztette ki 1957-ben. Ezt 1959-ben Edsger Dijkstra fedezte fel. Az algoritmust három kulcsfontosságú lépésben lehet megállapítani;
Adott n csomóponttal és az egyes élek súlyával összekapcsolt gráf,
1. Válasszon egy tetszőleges csomópontot a grafikonból, és adja hozzá a T fához (ez lesz az első csomópont)
2. Vegye figyelembe a fa csomópontjaihoz kapcsolt egyes élek súlyát, és válassza ki a minimumot. Adja hozzá a szélt és a csomópontot a T fa másik végéhez, és távolítsa el az élt a grafikonból. (Válasszon egyet, ha létezik kettő vagy több minimum)
3. Ismételje meg a 2. lépést, amíg n-1 élek hozzáadódnak a fához.
Ebben a módszerben a fa egyetlen tetszőleges csomóponttal kezdődik, és az egyes ciklusoktól kezdve kibővül. Ezért az algoritmus megfelelő működéséhez a gráfnak összekapcsolt gráfnak kell lennie. A Prim algoritmusának alap formája O (V2).
További információ Kruskal algoritmusáról
A Joseph Kruskal által kifejlesztett algoritmus az American Mathematical Society 1956-ban jelent meg. Kruskal algoritmusa három egyszerű lépésben is kifejezhető..
Adott grafikon n csomóponttal és az egyes élek súlya,
1. Válassza ki a teljes grafikon legkisebb súlyú ívét, adja hozzá a fához, és törölje a grafikonból.
2. A fennmaradó rész közül válassza ki a legkevesebb súlyt él, oly módon, hogy ne hozzon létre ciklust. Adja hozzá a szélt a fához, és törölje a grafikonból. (Válasszon egyet, ha létezik kettő vagy több minimum)
3. Ismételje meg a folyamatot a 2. lépésben.
Ebben a módszerben az algoritmus a legkevesebb súlyozott szélgel kezdődik, és folytatja az egyes élek kiválasztását minden ciklusonként. Ezért az algoritmusban a gráfot nem kell összekapcsolni. Kruskal algoritmusának O időbeli összetettsége van (logV)
Mi a különbség Kruskal és Prim algoritmusa között??
• Prim algoritmusa egy csomóponttal inicializálódik, míg Kruskal algoritmusa éllel kezdődik.
• Prim algoritmusai az egyik csomóponttól a másikig terjednek, míg Kruskal algoritmusa úgy választja meg az éleket, hogy a szél pozíciója nem az utolsó lépésre épül.
• A prim algoritmusában a gráfnak összekapcsolt gráfnak kell lennie, míg a Kruskal gráfoknak is lehet elválasztott gráfokon is működniük..
• Prim algoritmusának O (V2), és Kruskal időbeli összetettsége O (logV).