Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaMárk Balázs Megváltozta több, mint 10 éve
1
2007.09.03 Előadó: Nagy Sára Mesterséges intelligencia Kereső rendszerek
2
Alapfeladat: egy út keresése valamilyen gráfban. Különbség az egyes kereső algoritmusokban: mennyire általános útkeresési problémát oldanak meg, optimalizálnak-e valamilyen szempontból.
3
MI problémamegoldás menete 1. Reprezentálás. 2. Megfeleltetése egy gráfhoz. 3. Valamelyik kereső algoritmus futtatása. 4. Az eredmény értelmezése az eredeti feladat szempontjából.
4
Általános sémák
5
Állapottér repr. megfeleltetése gráfhoz állapot művelet művelet költsége kezdő állapot célállapotok művelet sorozat megoldás csúcs irányított él élköltség stratcsúcs terminális csúcsok irányított út irányított út a startcsúcsból egy terminális csúcsba
6
Gráfreprezentáció fogalma Egy útkeresési probléma gráfreprezentációja egy (R,s,T) hármas, ahol R=(N,A) egy δ-gráf (az úgynevezett reprezentációs gráf) s ∈ N (a startcsúcs) T ⊆ N (a célcsúcsok) A feladat megoldása egy s → T út.
7
Keresőrendszer sémája Eljárás KR 1. ADAT := kezdeti érték; 2. Ciklus amíg nem Terminális(ADAT) 3. SZABÁLY:=Választ(Alkalmazható(ADAT)); 4. ADAT:=SZABÁLY(ADAT); 5. Ciklus vége; Eljárás vége.
8
Kereső rendszer részei Globális adatbázis (ADAT) Szabályok (SZABÁLYOK halmaza) Vezérlési startégia (Választ)
9
Elsődleges vezérlési stratégiák Nem módosítható Módosítható Visszalépéses Gráfkereső
10
Visszalépéses kereső rendszer Globális adatbázis: egy út a startcsúcsból az aktuális csúcsba Szabályok: egy él hozzá vétele vagy törlése (visszalépés) Vezérlési startégia: a fő elv, hogy a visszalépést utoljára választjuk. Terminálási feltétel: Sikeres: célcsúcs megjelenése az út végén Sikertelen: visszalépés a startcsúcsból
11
Visszalépés esetei Zsákutca. Zsákutca torkolat. Kör. Mélységi korlát elérése.
12
Visszalépéses KR algoritmusa Eljárás VL1(csúcs) : megoldás 1. ha cél(csúcs) akkor return nil; 2. szabályok:=kivezető_élek(csúcs); 3. ciklus amíg nem üres-e(szabályok) 4. szab:=kivesz_egyet(szabályok); 5. újcsúcs:=szab(csúcs); 6. megoldás:=VL1(újcsúcs); 7. ha megoldás <> hiba akkor return hozzáfűz(szab,megoldás); 7. ciklus vége; 8. return hiba; Eljárás vége.
13
Visszalépéses algoritmus 2. változat Eljárás VL2(csúcslista) : megoldás 1. csúcs:=első(csúcslista); 2. ha hossza(csúcslista) > mélységi korlát akkor return hiba; 3. ha eleme(csúcs,maradék(csúcslista)) akkor return hiba; 4. ha cél(csúcs) akkor return nil; 5. szabályok:=kivezető_élek(csúcs); 6. ciklus amíg nem üres-e(szabályok) 7. szab:=kivesz_egyet(szabályok); 8. újcsúcslista:=hozzáfűz(szab(csúcs),csúcslista); 9. megoldás:=VL2(újcsúcslista); 10. ha megoldás <> hiba akkor 11. return hozzáfűz(szab,megoldás); 12. ciklus vége; 13. return hiba; Eljárás vége.
14
Heurisztika A reprezentációban nem rögzített, a feladattal kapcsolatos konkrét ismeret (vezérlési tudás), amelytől a jó eredményt és a megfelelő hatékonyságot várjuk. sorrendi heurisztika: sorrendet ad a végpontból kivezető élek (utak) vizsgálatára vágó heurisztika: megjelöli azokat a végpontból kivezető éleket, amelyeket nem érdemes megvizsgálni
15
Állítások A VL1 véges, körmentes, irányított gráfokon mindig terminál, és ha létezik megoldás, akkor talál egy megoldást. A VL2 δ-gráfban mindig terminál, és ha létezik a mélységi korlátnál nem hosszabb megoldás, akkor megtalál egy megoldást.
16
Értékelés Előnyök: könnyen implementálható; kicsi memória igényű. Hátrányok: nem ad optimális megoldást; kezdetben hozott rossz döntés csak sok visszalépéssel javítható; több úton megközelíthető gráfrészeket többször is bejár.
17
Gráfkereső rendszer Globális adatbázis: egy részgráf a startcsúcsból kiindulva Szabályok: egy csúcs rákövetkezőinek előállítása (kiterjesztés) Vezérlési stratégia: a „legígéretesebb” csúcs kiterjesztése Terminálási feltétel: Sikeres: célcsúcs kiválasztása kiterjesztésre Sikertelen: nincs kiválasztható csúcs
18
Gráfkeresés 0. verziója Eljárás GK0 : megoldás 1. G:= s; NYILT:={s}; 2. ciklus amíg nem üres-e(NYILT) 3. n:= választ(NYILT); 4. ha cél(n) akkor return megoldás; 5. G:= G + Γ(n); 6. NYILT:=NYILT \ {n} U Γ(n); 7. ciklus vége; 8. return hiba; Eljárás vége.
19
Problémák az alap algoritmussal Körökre érzékeny. Hogyan olvasható ki a megoldás? Nem feltétlenül talál optimális megoldást. Mi alapján válasszunk ki egy csúcsot kiterjesztésre?
20
Válaszok a problémákra Használjunk kiértékelő függvényt. f: NYILT → R a 3. lépésben: n:=min f (NYILT) A csúcsokhoz vezető minél kisebb költségű utat tartsunk nyilván. p: G → G; p(n): az egyikszülőre mutat g: G → R ; g(n):=c α (s,n), ahol α a nyilvántartott út. g* : N → R ; g*(n):=c*(s,n), ami az optimális út s-ből n-be.
21
Gráfkeresés alapalgoritmusa Eljárás GK : megoldás 1. G:= s; NYILT:={s}; g(s):=0; p(s):=nil 2. ciklus amíg nem üres-e(NYILT) 3. n:= min(NYILT); NYILT:=NYILT \ {n} f 4. ha cél(n) akkor return megoldás; 5. ciklus minden m Γ(n)-re; 6. ha (m G) vagy g(m)>g(n)+c(n,m) akkor p(m):=n, g(m):=g(n)+c(n,m), NYILT:=NYILT U {m}; ha vége; 7. ciklus vége; 8. G:= G + Γ(n); 9. ciklus vége; 10. return hiba; Eljárás vége.
22
Állítások 1. A GK működése során egy csúcsot legfeljebb véges sokszor terjeszt ki. 2. A GK véges reprezentációs gráfban mindig terminál. 3. Ha egy véges reprezentációs gráfban létezik megoldás, akkor GK egy célcsúcs megtalálásával terminál.
23
Invariáns lemma Minden s-ből elérhető n csúcsra igaz, hogy GK az n csúcs kiterjesztése előtt bármely s *→n optimális úton mindig nyilvántart egy olyan m csúcsot, amelyre teljesül, hogy 1. m NYILT 2. g(m)=g*(m) 3. minden m-et megelőző csúcs zárt.
24
Gráfkereső algoritmusok csoportosítása Neminformált Mélységi Szélességi Egyenletes Heurisztikus Előretekintő A A* A c
25
Heurisztikus függvény h: N → R, ami minden csúcsra becsli a hátralévő út költségét. A h* függvény jelenti az optimális hátralévő utat, azaz h*(n) = min c*(n,t) = c*(n,T) t T
26
Nevezetes gráfkereső algoritmusok és tulajdonságaik MegnevezésKiértékelő függvényÁllítások Mélységi f = -g és c(n,m)=1 élre Csak mélységi korláttal ad megoldást. Szélességi f = g és c(n,m)=1 élre Legrövidebb megoldást ad, a csúcsokat legfeljebb egyszer terjeszti ki. Egyenletesf = gLegolcsóbb megoldást ad, a csúcsokat legfeljebb egyszer terjeszti ki. Előre tekintőf = h- A f = g+h és 0 h -gráfokon megoldást ad. A* f = g+h és 0 h h* -gráfokon optimális megoldást ad. A c (következetes) f = g+h és 0 h és h(t)=0 t T- re és h(n)-h(m) c(n,m) élre -gráfokon optimális megoldást ad, a csúcsokat legfeljebb egyszer terjeszti ki.
27
Csökkenő kiértékelő függvény a NYÍLT halmazbeli csúcsok kiértékelő függvényértéke az ott tartózkodás alatt nem nő, a NYÍLT halmazba visszakerülő csúcs kiértékelő függvényértéke határozottan kisebb, mint a csúcs megelőző kiterjesztésekor felvett függvényértéke. Megj.: A nevezetes gráfkereső algoritmusok ilyen csökkenő kiértékelő függvényt használnak.
28
Működési grafikon
29
Állítás Csökkenő kiértékelő függvény használata mellett a GK a küszöbcsúcsok kiterjesztésekor optimális költségű konzisztens feszítőfát tart nyilván. Def.: Küszöbcsúcsnak nevezzük azt a csúcsot, amely kiterjesztésekor mért kiértékelő függvényértéke ( a küszöb érték) nagyobb vagy egyenlő, mint a megelőző kiterjesztésekkor mért érték.
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.