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

Az ábrán az inicializáló blokk lefutása utáni állapotot láthatjuk. A KÉSZ halmazhoz való tartozást színezéssel valósítjuk meg. A nem KÉSZ csúcsok fehérek,

Hasonló előadás


Az előadások a következő témára: "Az ábrán az inicializáló blokk lefutása utáni állapotot láthatjuk. A KÉSZ halmazhoz való tartozást színezéssel valósítjuk meg. A nem KÉSZ csúcsok fehérek,"— Előadás másolata:

1

2 Az ábrán az inicializáló blokk lefutása utáni állapotot láthatjuk. A KÉSZ halmazhoz való tartozást színezéssel valósítjuk meg. A nem KÉSZ csúcsok fehérek, a KÉSZ csúcsok zöldek lesznek. A csúcsok mellé feltüntettem a címkéjét és a csúcson belüli érték jelöli az eddig talált legrövidebb távolságot. Kezdetben a szürke kezdőcsúcs értéke 0 a többi csúcs végtelen (inf) értékkel szerepel az elsőbbségi sorban (minQ).

3 A főciklus működése. Ciklusfeltétel teljesül, minQ nem üres, belépés a ciklusba

4 Első lépésben kivesszük a prioritásos sorból az a csúcsot, (mivel az ő prioritása a legkisebb).

5 Az a csúcshoz már ki van számítva a legrövidebb út, tehát ez a csúcs már elkészült, tegyük bele a KÉSZ U halmazba.

6 Az a csúcs kiterjesztését végző ciklus működése. A ciklus végigmegy a gráf összes olyan elemén, amely szomszédja az u csúcsnak és nincs benne a KÉSZ halmazban. A kiterjesztés során vizsgált csúcsokat és éleket pirossal jelöltem.

7 A legrövidebb csúcs megkeresése. A d[…] tömbbe kerülnek az u csúcsból kiinduló élek távolságai. c(u,v) jelöli az u csúcsból a v csúcsba vezető él súlyát. Behelyettesítve az értékeket : inf > Igaz ág hajtódik végre.

8 A v csúcs távolsága legyen egyenlő az u csúcs értékével és a két csúcs közötti él súlyával (c(u,v) függvény).

9 minQ helyreállítása, visszatesszük a sorba d[v] értékét.

10 Ugrás a következő elemre

11 d[v] = inf d[u] = 0 c(u,v)=62 Behyelyettesítve az értékeket az igaz ág kerül végrehajtásra.

12

13

14 Ugrás a következő elemre

15 d[v] = inf d[u] = 0 c(u,v)=37 Behyelyettesítve az értékeket az igaz ág kerül végrehajtásra.

16

17 A belső ciklus lefutása utáni állapot. A kezdőcsúcshoz tartozó három él közül az e csúcshoz vezető él a legkisebb súlyú, ez került a minQ prioritásos sor legelejére.

18 A főciklus második lefutása. minQ első elemét kivesszük, ez jelen esetben az e csúcs

19 Betesszük a KÉSZ U{} halmazba, melynek elemeit az ábrán zölden jelöltem.

20 A belső ciklus nem fut le mert az u-hoz tartozó szomszédsági lista üres.

21 A főciklus harmadik lefutása. minQ első elemét kivesszük, ez jelen esetben a d csúcs és beletesszük a KÉSZ U{} halmazba.

22 A belső ciklus lefutása utáni állapot. Az f csúcshoz vezető út súlya: 54+76=130, mert a d csúcsnak csak egyetlen szomszédos eleme van, amely nincs benne a KÉSZ U{} halmazban, ennek értéke hozzáadódik a d csúcshoz vezető él súlyához.

23 A főciklus negyedik lefutása. minQ első elemét kivesszük, ez jelen esetben a b csúcs és beletesszük a KÉSZ U{} halmazba.

24 b csúcs kiterjesztése utáni állapot. Mivel b- nek csak egyetlen olyan szomszédos eleme van, amely nincs benne a KÉSZ U{} halmazban, ezért a belső ciklus csak egyszer fut le. d[v] értéke 62+15=77 lesz és ezt teszi be a minQ prioritásos sorba.

25 A főciklus ötödik lefutása. minQ első elemét kivesszük, ez jelen esetben a c csúcs és beletesszük a KÉSZ U{} halmazba.

26 A kiterjesztés során f csúcshoz két különbözű élsúlyú út is tartozik. Egyszer a korábbi 54+76=130 és a mostani kiterjesztés során bejárt 77+92=169 Ebben az esetbe a SKIP ág hajtódik végre, a 169 nem került bele minQ-ba.

27 A főciklus utolsó lefutása utáni állapot.


Letölteni ppt "Az ábrán az inicializáló blokk lefutása utáni állapotot láthatjuk. A KÉSZ halmazhoz való tartozást színezéssel valósítjuk meg. A nem KÉSZ csúcsok fehérek,"

Hasonló előadás


Google Hirdetések