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

Algoritmusok és Adatszerkezetek I.

Hasonló előadás


Az előadások a következő témára: "Algoritmusok és Adatszerkezetek I."— Előadás másolata:

1 Algoritmusok és Adatszerkezetek I.
Feszítőfák és legrövidebb utak 2018. november 13.

2 Minimális feszítőfák

3 Feszítőfa Telefon, út stb. hálózat vagy elektromos áramkör tervezése

4 Minimális feszítőfa probléma (Minimum Spanning Tree, MST)
Bemenet: összefüggő, irányítatlan, súlyozott G=(V,E) gráf. A w(u,v) súly az (u,v) él költségét fejezi ki. Kimenet: Egy T feszítőfa, amire minimális Feszítőfa: minden csúcsot érintő, összefüggő, körmentes élhalmaz (fa)

5 Minimális feszítőfa

6 Kruskal algoritmus Minimális fák erdejét tároljuk
Kezdetben minden pont egy külön fa Minden lépésben a legkisebb, két fát összekötő élt húzzuk be (egyesítjük egyetlen fává a két fát) Mohó algoritmus!

7 Kruskal algoritmus O(ElogE) O(logE) össz futásidő: O(ElogE)

8 Kruskal helyessége véges lépésben véget ér eredmény élhalmaz:
minden V csúcsot érint körmentes összefüggő minimális költségű (bizonyítások)

9 Prim algoritmus egyetlen fát növesztünk
tetszőleges gyökérpontból indulva minden lépésben új csúcsot kötünk be a fába legolcsóbb éllel elérhető csúcsot választjuk Mohó algoritmus!

10 Prim algoritmus gyökérpont össz futásidő: O(VlogV+ElogV)
= O(ElogV) ha V<E fában nem szereplő csúcsok prioritási sora a legközelebbi fapont szerint O(logV) O(logV)

11 Kruskal vs Prim Kruskal O(ElogE) (ha E<V2 logE=O(logV) → O(ElogV))
Prim O(ElogV) (tovább gyorsítható O(E+VlogV)) Sűrű gráfok esetén (E nagy) Prim előnyösebb, egyébként Kruskal egyszerűbb adatszerkezetet használ

12 Adott csúcsból induló legrövidebb utak

13 Legrövidebb utak probléma
Bemenet: irányított, súlyozott G=(V,E) gráf és egy s kezdőcsúcs. A w(u,v) súly az (u,v) él költségét fejezi ki. Kimenet: Minden V csúcshoz a legrövidebb út s-ből indulva

14 Dijsktra algoritmusa azokat a csúcsokat tárolja amihez már megtalálta a legrövidebb utat minden lépésben egyel bővíti az elért csúcsok halmazát legkisebb legrövidebb úttal bíró csúcsot választja Mohó algoritmus!

15 Dijsktra algoritmusa

16 Dijsktra algoritmusa össz futásidő: O(ElogV)
fában nem szereplő csúcsok prioritási sora a legrövidebb összúthosszak szerint O(logV)

17 Dijkstra helyessége

18 Negatív élsúlyok és körök
Körök nem okoznak problémát, de a negatív összsúlyú körök igen!

19 Negatív élsúlyok és Dijkstra
Dijkstra nem ad helyes megoldást negatív élsúlyok esetén

20 Bellman-Ford algoritmus
Negatív élsúlyok mellett is működik Ha elérhető negatív kör a kezdőcsúcsból akkor azt észreveszi Egy iterációban minden élen megpróbálunk javítani V-1 iterációra van szükség legrosszabb esetben

21 Bellman-Ford algoritmus
O(VE)

22 Legrövidebb utak minden csúcspárra

23 Legrövidebb utak minden pontpárra
Dijsktra minden kezdőpontból: O(VElogV) Bellman-Ford minden kezdőpontból: O(V2E)

24 Floyd-Warshall algoritmus
Dinamikus programozás d mátrix dij eleme az ismert legrövidebb út i-ből j-be dinamikus programozással a belső csúcsként használható csúcsokat bővítjük

25 Floyd-Warshall algoritmus
O(V3)

26

27 Legrövidebb utak minden pontpárra
Ha nincsenek negatív élsúlyok és ritka a gráf akkor Dijsktra minden kezdőpontból O(VElogV) Ha vannak negatív élsúlyok, de nincsenek negatív összköltségű körök vagy sűrű a gráf akkor Floyd-Warshall O(V3) Ha negatív összköltésgű körök is lehetnek akkor Ford-Bellman minden kezdőcsúcsra O(V2E)

28 Gráfalgoritmusok Minimális feszítőfák Legrövidebb utak egy csúcsból
Kruskal Prim Legrövidebb utak egy csúcsból Dijsktra Bellman-Ford Legrövidebb utak összes pontpárra Floyd-Warshall


Letölteni ppt "Algoritmusok és Adatszerkezetek I."

Hasonló előadás


Google Hirdetések