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. 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.

Hasonló előadás


Az előadások a következő témára: "Útkeresések. 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."— 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

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

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

27

28

29

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

47

48

49

50 „legrövidebb utak fája”

51 A Dijkstra-algoritmus műveletigénye

52 A prioritásos sor megvalósítása rendezetlen tömbbel: –a lineáris idejű a keresés miatt => T(n)=σ(n*n)= σ(n 2 ) 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 2 => σ(n 2 *log(n))> σ(n 2 )

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) (~n 3 ) Példa: valutaátváltások

54 Bellmann-Ford algoritmus

55

56

57

58

59

60

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: –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

66 Példa piros szabályra

67

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 prioritásos sor megvalósítása rendezetlen tömbbel: –a lineáris idejű a keresés miatt => T(n)=σ(n*n)= σ(n 2 ) 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 => σ(n 2 *log(n))> σ(n 2 )

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

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


Letölteni ppt "Útkeresések. 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."

Hasonló előadás


Google Hirdetések