2007.09.03 Előadó: Nagy Sára Mesterséges intelligencia Kereső rendszerek.

Slides:



Advertisements
Hasonló előadás
Készítette: Kosztyán Zsolt Tibor
Advertisements

A Floyd-Warshall algoritmus
Készítette: Kosztyán Zsolt Tibor
Nevezetes algoritmusok
MESTERSÉGES INTELLIGENCIA (ARTIFICIAL INTELLIGENCE)
Összefoglalás Hardver,szoftver,perifériák Memóriák fajtái
Függvények Egyenlőre csak valós-valós függvényekkel foglalkozunk.
Készítette: Major Máté
Matematika II. 4. előadás Geodézia szakmérnöki szak 2010/2011. tanév Műszaki térinformatika ágazat tavaszi félév.
Illés Tibor – Hálózati folyamok
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
DAG topologikus rendezése
Dijkstra algoritmus Irányított gráfban.
Bayes hálók október 20. Farkas Richárd
Bevezetés a gépi tanulásba február 16.. Mesterséges Intelligencia „A számítógépes tudományok egy ága, amely az intelligens viselkedés automatizálásával.
Ág és korlát algoritmus
A digitális számítás elmélete
IRE 4 /32/ 1 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – I ntelligens R endszerek E lmélete 4.
Prím algoritmus.
1 Györgyi Tamás – GYTNAAI.ELTE 2007 Április 03 Algoritmusok És Adatszerkezetek 2 Gráfalgoritmus Bellman-Ford Algoritmusa S a b d e
„Országos” feladat. Feladat: Egy tetszőleges, színes országokat tartalmazó térképen akar eljutni egy kommandós csapat egy országból egy másikba. Viszont.
Dijkstra algoritmus Algoritmusok és adatszerkezetek 2. Újvári Zsuzsanna.
Dijkstra algoritmusa Egy csúcsból a többibe vezető legkisebb költségű út megkeresése Az algoritmus működésének leírása és bemutatása LL.
Szélességi bejárás A szélességi bejárással egy irányított vagy irányítás nélküli véges gráfot járhatunk be a kezdőcsúcstól való távolságuk növekvő sorrendjében.
A digitális számítás elmélete
KERESÉS (SEARCH).
KERESÉS (SEARCH).
Ismeretalapú rendszerek alaptechnikái I. Szabályalapú rendszerek.
Ismeretalapú rendszerek alaptechnikái
Ismeretalapú rendszerek alaptechnikái I. Szabályalapú rendszerek.
Készítette: Kosztyán Zsolt Tibor
Készítette: Lakos Péter.  Adott egy élsúlyozott, véges gráf  Negatív élsúlyokat nem tartalmaz  Lehet irányított vagy irányítatlan  Továbbá adott egy.
Algoritmusok II. Gyakorlat 3. Feladat Pup Márton.
Gráf Szélességi bejárás/keresés algoritmusa
A Dijkstra algoritmus.
Gráf szélességi bejárása SzB(G,p). Tetszőleges gráf, melyben a p csúcsot választottam kiindulónak: A gráfnak megfelelő fa:
Nevezetes algoritmusok
Nevezetes algoritmusok: Fa megvalósítása Készítette: Várkonyi Tibor Zoltán.
Gráfok 1. Szlávi Péter ELTE IK Média- és Oktatásinformatika Tanszék
Koncepció: Specifikáció: e par exp i = eb imp bod ib Specifikáció elemzése: tulajdonságok felírása a koncepció alapján + tulajdonságok bizonyítása.
Logikai programozás 5..
1 Szélességi Bejárás Györgyi Tamás – GYTNAAI.ELTE 2007 Március 22 Algoritmusok És Adatszerkezetek 2 Gráfalgoritmus S b a d e f h g c.
1 Dijkstra Algoritmusa Györgyi Tamás – GYTNAAI.ELTE 2007 Április 02 Algoritmusok És Adatszerkezetek 2 Gráfalgoritmus S a b c d e
Algoritmizálás, adatmodellezés tanítása 8. előadás.
Dijkstra-algoritmus. A Dijkstra-algoritmus egy mohó algoritmus, amivel irányított gráfokban lehet megkeresni a legrövidebb utakat egy adott csúcspontból.
Készítette Schlezák Márton
Mesterséges Intelligencia 1. Eddig a környezet teljesen megfigyelhető és determinisztikus volt, az ágens tisztában volt minden cselekvésének következményével.
Bellmann-Ford Algoritmus
Útkeresések.
előadások, konzultációk
Diszjunkt halmazok adatszerkezete A diszjunkt halmaz adatszerkezet diszjunkt dinamikus halmazok S={S 1,…,S n } halmaza. Egy halmazt egy képviselője azonosít.
Morvai Mária-Júlia F3D3D4.  Adott egy G=(V,E)élsúlyozott, irányított vagy irányítás nélküli, negatív élsúlyokat nem tartalmazó,véges gráf. Továbbá adott.
DIJKSTRA- ALGORITMUS. A Dijkstra-algoritmus egy mohó algoritmus, amivel irányított vagy irányítás nélküli, negatív élsúlyokat nem tartalmazó, véges gráfokban.
Algoritmusok és adatszerkezetek
Automatikus fizikai tervezési javaslatok XML adatbázisokhoz Balogh Bernadett Kresz Marcell Cseh Tamás.
Készítette : Giligor Dávid Neptun : HSYGGS
Prim algoritmus Algoritmusok és adatszerkezetek 2. Újvári Zsuzsanna.
INFOÉRA Gráfok, gráfalgoritmusok II. (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
Szélességi bejárás. Véges gráf összes csúcsának bejárása a kezdőcsúcstól való távolságuk szerinti növekvő sorrendben Egy csúcsot egyszer járunk be Egyenlő.
Dijkstra algoritmus. Az algoritmus működése  Kezdésnél a kezdő csúcson kívül minden csúcs távolsága legyen ∞, a kezdő csúcs távolsága 0.  Feltételes.
Algoritmus DAG = irányított körmentes gráf. Először ezt a tulajdonságot ellenőrizzük (mélységi bejárással), aztán rendezzük: Q: Sor adatszerkezet, kezdetben.
Kvantitatív módszerek
A Dijkstra algoritmus.
Gráfok szélességi bejárása Dijkstra algoritmus
II. konzultáció Analízis Sorozatok Egyváltozós valós függvények I.
Mesterséges intelligencia
Nem módosítható keresések
Gráfalgoritmusok G=(V,E) gráf ábrázolása
Gráfok - 1 Definíció: Irányított gráf (digráf) G=(V,E) rendezett pár.
Gráfalgoritmusok G=(V,E) gráf ábrázolása
Előadás másolata:

Előadó: Nagy Sára Mesterséges intelligencia Kereső rendszerek

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.

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.

Általános sémák

Á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

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.

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.

Kereső rendszer részei Globális adatbázis (ADAT) Szabályok (SZABÁLYOK halmaza) Vezérlési startégia (Választ)

Elsődleges vezérlési stratégiák Nem módosítható Módosítható Visszalépéses Gráfkereső

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

Visszalépés esetei Zsákutca. Zsákutca torkolat. Kör. Mélységi korlát elérése.

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.

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.

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

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

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

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

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.

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?

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.

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.

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

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.

Gráfkereső algoritmusok csoportosítása Neminformált Mélységi Szélességi Egyenletes Heurisztikus Előretekintő A A* A c

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

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.

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.

Működési grafikon

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