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

Útkeresések.

Hasonló előadás


Az előadások a következő témára: "Útkeresések."— Előadás másolata:

1 Útkeresések

2 Gráfalgoritmusok Gráfbejárások Legrövidebb utak egy forrásból
Minimális súlyú feszítőfa keresése Mesterséges intelligencia

3 Gráfbejárások: a mélységi stratégia
Korosodó lámpagyújtogató egy középkori város utcáit járja: Főtérről indul Onnan nyíló sötét utcába megy és felgyújtja a lámpákat ha elágazáshoz ér, tovább megy egy másik sötét utcába és ott felgyújtja a lámpákat ha zsákutcába ér akkor visszamegy az előző kereszteződéshez és másik utcát választ

4 Mélységi bejárás

5 Mélységi bejárás

6 Mélységi bejárás

7 Mélységi bejárás

8 Mélységi bejárás

9 Mélységi bejárás

10 Mélységi bejárás

11 Mélységi bejárás

12 Mélységi bejárás

13 Mélységi bejárás

14 Mélységi bejárás

15 Mélységi bejárás

16 Mélységi bejárás

17 Mélységi bejárás

18 Mélységi bejárás

19 Mélységi bejárás

20 Mélységi bejárás

21 Mélységi bejárás

22 Mélységi bejárás

23 Mélységi bejárás

24 Gráfbejárások: a szélességi stratégia
Az alaphelyzet hasonló, de a lámpagyújtogató aznap este fáradt és elhívja a barátait (akik elég sokan vannak) segíteni. - a főtérről indulnak - a csapat annyi fele oszlik minden elágazásnál, ahány sötét utca kivezet belőle

25 Szélességi bejárás

26 Szélességi bejárás

27 Szélességi bejárás

28 Szélességi bejárás

29 Szélességi bejárás

30 Szélességi bejárás algoritmusa
Elérjük a kezdőcsúcsot Elérjük a kezdőcsúcs szomszédait Majd az 1 távolságra lévő csúcsok szomszédait, és így tovább… Közben kiiratjuk a csúcsok távolságait, és a szülőket Minden csúcsot csak egyszer járunk be

31 Szélességi bejárás algoritmusa
Algoritmikus megvalósítás: sor adatszerkezet segítségével Színezés: fehér: nem érintett csúcsok szürke: kiterjesztés alatt álló csúcsok fekete: kiterjesztett csúcsok

32 Szélességi bejárás algoritmusa
Q=[1]

33 Szélességi bejárás algoritmusa
Q=[2,3,4]

34 Szélességi bejárás algoritmusa
Q=[3,4,5,6]

35 Szélességi bejárás algoritmusa
Q=[4,5,6]

36 Szélességi bejárás algoritmusa
Q=[5,6,10]

37 Szélességi bejárás algoritmusa
Q=[6,10,7,8,9]

38 Szélességi bejárás algoritmusa
Q=[10,7,8,9]

39 Szélességi bejárás algoritmusa
Q=[7,8,9]

40 Szélességi bejárás algoritmusa
Q=[8,9]

41 Szélességi bejárás algoritmusa
Q=[9]

42 Szélességi bejárás algoritmusa
Q=[ ]

43 Minimális költségű utak egy forrásból
Élsúlyozott gráfok Pl.: Magyarország úthálózata: a gráf csúcsai városok élei a városokat összekötő utak, ahol az út megtételének költségét az élsúlyok jelzik

44 Dijkstra algoritmus (Nemnegatív) élsúlyozott irányított gráf
Elsőbbségi (prioritásos) sorban tároljuk a kiterjesztendő csúcsokat Alapelv: mindig a legkisebb költségű utat folytatjuk (mohó algoritmus)

45 Dijkstra algoritmus

46 Dijkstra algoritmus

47 Dijkstra algoritmus

48 Dijkstra algoritmus

49 Dijkstra algoritmus

50 Dijkstra algoritmus „legrövidebb utak fája”

51 A Dijkstra-algoritmus műveletigénye

52 A Dijkstra-algoritmus műveletigénye
A prioritásos sor megvalósítása rendezetlen tömbbel: a lineáris idejű a keresés miatt => T(n)=σ(n*n)= σ(n2) Kupaccal: a keresés log(n)-es, a fenntartás e*log(n)-es => T(n)= σ(n+e)*log(n)-es Sűrű gráf esetén: e~n2 => σ(n2*log(n))> σ(n2)

53 Bellmann-Ford algoritmus
Negatív élsúlyozású gráfokra is működik Feltétel, hogy ne legyen a gráfban negatív összköltségű irányított kör Az algoritmus elve: n-szer járjuk be a gráfot, keresve az s-ből induló 1,2…n-1 hosszúságú legrövidebb utakat a gráf összes pontjába Műveletigény: T(n)=Θ((n-1)*e) (~n3 ) Példa: valutaátváltások

54 Bellmann-Ford algoritmus

55 Bellmann-Ford algoritmus

56 Bellmann-Ford algoritmus

57 Bellmann-Ford algoritmus

58 Bellmann-Ford algoritmus

59 Bellmann-Ford algoritmus

60 Bellmann-Ford algoritmus

61 Minimális költségű feszítőfák
Pl.: városok elektromos ellátásának kiépítése

62 Minimális költségű feszítőfák
Lényegében 3 főbb módszert ismerünk Prim Kruskal Borovka Ezek egy közös absztrakt ősből, a piros-kék eljárásból származtathatók.

63 A piros-kék eljárás Kék szabály: Piros szabály:
válasszunk X csúcshalmazt, amiből nem vezet ki kék él az X-ből kivezető legkisebb súlyú élt színezzük kékre Piros szabály: válasszunk egy egyszerű kört amiben nincs piros él a legnagyobb súlyú színtelen élt színezzük pirosra

64 Példa kék szabályra

65 Példa kék szabályra

66 Példa piros szabályra

67 Példa piros szabályra

68 Kruskal algoritmus Kezdetben n db (egy pontból álló) kék fa van
Két lehetőség a kiválasztott élre: - ha két különböző kék fában vannak a végpontjai kékre színezzük - ha ugyanabban akkor pirosra Nagyon mohó

69 A Prim algoritmus a kék szabály véges sok alkalmazásával ér célt
egyetlen fát tartunk nyilván, ami folyamatosan növekszik a Dijkstra-algoritmushoz „hasonló”

70 Prim algoritmus X={ }

71 Prim algoritmus X={ }

72 Prim algoritmus X={1}

73 Prim algoritmus X={1,2}

74 Prim algoritmus X={1,2,5 }

75 Prim algoritmus X={1,2,5,4 }

76 Prim algoritmus X={1,2,5,4,3 }

77 Prim algoritmus X={1,2,5,4,3,6 }

78 A Prim algoritmus műveletigénye

79 A Prim algoritmus műveletigénye
A prioritásos sor megvalósítása rendezetlen tömbbel: a lineáris idejű a keresés miatt => T(n)=σ(n*n)= σ(n2) Kupaccal: a keresés log(n)-es, a fenntartás e*log(n)-es => T(n)= σ(n+e)*log(n)-es Sűrű gráf esetén: e~n => σ(n2*log(n))> σ(n2)

80 Mesterséges intelligencia: az A*
A mélységi és szélességi bejárás ötvözéséből jön létre Szükség van egy heurisztikus függvényre, amely előre „megbecsüli” a kiterjesztendő pont és cél várható távolságát Legjobbat először keresés

81 Legjobbat először keresés

82 Vége Köszönöm a figyelmet!


Letölteni ppt "Útkeresések."

Hasonló előadás


Google Hirdetések