Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Prim algoritmusa Gubicza József (GUJQAAI.ELTE). Jellemzők Cél: Adott egyszerű gráfban a min. költségű feszítőfa meghatározása. Algoritmikus szinten: 3.

Hasonló előadás


Az előadások a következő témára: "Prim algoritmusa Gubicza József (GUJQAAI.ELTE). Jellemzők Cél: Adott egyszerű gráfban a min. költségű feszítőfa meghatározása. Algoritmikus szinten: 3."— Előadás másolata:

1 Prim algoritmusa Gubicza József (GUJQAAI.ELTE)

2 Jellemzők Cél: Adott egyszerű gráfban a min. költségű feszítőfa meghatározása. Algoritmikus szinten: 3 tömb feltöltése; - d[1..n] a csúcsokhoz tartozó min. költségek ill. - π (parent) a csúcsokhoz tartozó szülők meghat. - a kész[1..n] segédtömb segítségével, amely azt mutatja, vizsgáltuk-e már az adott csúcsot. A gráf élcímkéi pozitív értékeket vehetnek fel, a csúcscímkék pozitív, ill. végtelent.

3 Az algoritmus A minimum keresés a d tömbbeli min. értékre vonatkozik  a legkisebb költségű csúcs, ami még nincs kész. A fő változás a Dijkstra algoritmushoz képest, hogy itt csak az adott él hosszát (ellenőrizzük) tároljuk le, nem pedig a d[u] –val vett összegét.

4 d∞∞∞∞∞∞∞ π∕∕∕∕∕∕∕ Kész ∞ ∞∞ ∞ ∞ ∞∞ Kezdőállapot: minden csúcsot ∞-el címkézünk, szüleiket NIL- re állítjuk, valamint a Kész értékeket 0-kra, és kijelöljük a kezdőcsúcsot. s =

5 d0∞∞∞∞∞∞ π∕∕∕∕∕∕∕ Kész ∞ 0∞ ∞ ∞ ∞∞ A kezdőcsúcs értékét 0-ra állítjuk, így a FeltMinker(d[1..n], u, Kész[j] = 0) őt fogja megtalálni először. Ezt a csúcsot készre állítjuk. s =

6 d05∞∞∞∞∞ π∕1∕∕∕∕∕ Kész ∞ ∞ ∞ ∞∞ A csúcs minden szomszédjára megnézzük (amelyek még nincsenek Kész, 5 és 3), hogy: c(u,v) < d[v] Tehát az él, javít-e a költségen? Ha igen, d[v] = c(u,v) és π[v] := u szülő jelölése s =

7 d058∞∞∞∞ π∕11∕∕∕∕ Kész ∞ ∞ ∞ ∞ 8 Ha végeztünk az összes szomszéd vizsgálatával…. s =

8 d058∞∞8∞ π∕11∕∕2∕ Kész ∞ 8 ∞ ∞8 Iterálunk még egyet, a legkisebb költségű még nem kész elem a 2-es csúcs (d{5}), még nem kész szomszédai: 6, 4, 3 s =

9 d0584∞8∞ π∕112∕2∕ Kész ∞ ∞8 Mivel a 3-as csúcsba érés nem javítana a költségen 7 HAMIS, így tovább iterálunk. s =

10 d0584∞8∞ π∕112∕2∕ Kész ∞ ∞8 Tovább iterálunk a 4-esre, és elkezdjük vizsgálni a 6, 5 csúcsokkal s =

11 d058452∞ π∕11244∕ Kész ∞ 5 8 A 6-os csúcs költségén javít, így a 6-os szülője mostantól ő lesz (felülírás!), ill. az 5-ös költségén is. s =

12 d058452∞ π∕11244∕ Kész ∞ 58 Tovább iterálunk a 6-osra, vizsgálandó szomszédai: 7, 5 s =

13 d π∕ Kész A 7-es költségén javít, azonban az 5-ösön nem, mivel 8<5 hamis. s =

14 d π∕ Kész Tovább iterálunk a 5-ösre, ami a 7-essel nem ér el javulást, többre nem is vizsgáljuk. s =

15 d π∕ Kész A 7-esen nincs mit vizsgálni, csak készre jelöljük. s =

16 d π∕ Kész Tovább iterálunk a 3-asra, készre jelöljük, és mivel nincs nem kész szomszédja, így… s =

17 d π∕ Kész végeztünk. Ezzel megkaptuk eredményül a min. költségű feszítőfát a gráfunkban. s =


Letölteni ppt "Prim algoritmusa Gubicza József (GUJQAAI.ELTE). Jellemzők Cél: Adott egyszerű gráfban a min. költségű feszítőfa meghatározása. Algoritmikus szinten: 3."

Hasonló előadás


Google Hirdetések