Mesterséges intelligencia



Hasonló dokumentumok
Mesterséges intelligencia 1 előadások

Mesterséges Intelligencia I. előadásjegyzet (vázlat)

Keresőeljárások kétszemélyes játékokhoz

Mesterséges Intelligencia I. (I602, IB602)

Mesterséges Intelligencia I. gyakorlat

Mesterséges Intelligencia MI

Szeminárium-Rekurziók

1. AZ MI FOGALMA. I. Bevezetés. Tulajdonságok. Kezdet ELIZA. Első szakasz (60-as évek)

IFJÚSÁG-NEVELÉS. Nevelés, gondolkodás, matematika

Mesterséges Intelligencia (Artificial Intelligence)

Intelligens Rendszerek I. Problémamegoldás kereséssel: nem informált keresés (blind search)

JANUS PANNONIUS TUDOMÁNYEGYETEM. Schipp Ferenc ANALÍZIS I. Sorozatok és sorok

SZAKDOLGOZAT. Hucker Dávid

Gyakorló feladatok ZH-ra

SZAKDOLGOZAT. Nagy Gábor

8. Mohó algoritmusok Egy esemény-kiválasztási probléma. Az esemény-kiválasztási probléma optimális részproblémák szerkezete

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnökinformatikus szak BME Villamosmérnöki és Informatikai Kar május 27.

Előzetes követelmény(ek): Feltételezett tudásanyag, előképzettségi szint: Szervezés 1. Oktató tanszék(ek) 6 :

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

TANTÁRGY ADATLAP és tantárgykövetelmények

Leggyakrabban használt adatbányászási technikák. Vezetői információs rendszerek

Analízisfeladat-gyűjtemény IV.

különösen a média közleményeiben való reális tájékozódást. Mindehhez elengedhetetlen egyszerű matematikai szövegek értelmezése, elemzése.

Történelemtanítás Online történelemdidaktikai folyóirat

Dr. Jelasity Márk. Mesterséges Intelligencia I. Előadás Jegyzet (2008. október 6) Készítette: Filkus Dominik Martin

Bevezetés a programozásba. 12. Előadás: 8 királynő

Vizsgakérdések az MI előadás anyagából A Russel féle négy cél MI rendszer 2. Megoldás keresés az állapottérben: hegymászó keresés, Hanoi

II. Szabályalapú következtetés

Lehet vagy nem? Konstrukciók és lehetetlenségi bizonyítások Dr. Katz Sándor, Bonyhád

Szakmai zárójelentés

Analízis előadás és gyakorlat vázlat

SZAKDOLGOZAT. Kiss Albert

Beadható feladatok december Add meg az alábbi probléma állapottér-reprezentációját!

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Programozás I gyakorlat. 5. Struktúrák

Nagy hálózatok előfeldolgozása gyorsabb útvonalkereséshez

5. modul - Adatbázis-kezelés

különösen a média közleményeiben való reális tájékozódást. Mindehhez elengedhetetlen egyszerű matematikai szövegek értelmezése, elemzése.

INFORMATIKAI ALAPISMERETEK

Olvasás javítókulcs. 6. évfolyam ORSZÁGOS KOMPETENCIAMÉRÉS. Kiss Árpád Országos Közoktatási Szolgáltató Intézmény - Értékelési Központ

reális tájékozódást. Mindehhez elengedhetetlen egyszerű matematikai szövegek értelmezése, elemzése. A tanulóktól megkívánjuk a szaknyelv életkornak

KÖVETELMÉNYEK 2015/ félév. Informatika II.

Apor Vilmos Katolikus Iskolaközpont. Helyi tanterv. Matematika. készült. a 51/2012. (XII. 21.) EMMI rendelet 1. sz. melléklet 1-4./1.2.3.

KÖVETELMÉNYEK. Tantárgyfelelős tanszék kódja. A foglalkozáson való részvétel:

Mesterséges Intelligencia MI

Intelligens robotok. Előadás vázlat. 1 előadás

SZAKMAI GYAKORLAT A TANÁRI MESTERKÉPZÉSBEN 1 2 3

KÉPZÉSI PROGRAM NEMZETKÖZI GAZDÁLKODÁS ALAPKÉPZÉSI SZAK

A TANÁRI MESTERSZAKRA VONATKOZÓ SAJÁTOS RENDELKEZÉSEK. Alapfogalmak

Semmelweis Egyetem Szervezeti és Működési Szabályzat. III/III. fejezet

Nemzeti versenyek évfolyam

Nemzeti alaptanterv 2012 MATEMATIKA

Gyarmati Dezső Sport Általános Iskola MATEMATIKA HELYI TANTERV 1-4. OSZTÁLY

különösen a média közleményeiben való reális tájékozódást. Mindehhez elengedhetetlen egyszerű matematikai szövegek értelmezése, elemzése.

Analízis 1. (BSc) vizsgakérdések Programtervez informatikus szak tanév 2. félév

MATEMATIKA. Tildy Zoltán Általános Iskola és Alapfokú Művészeti Iskola Helyi tanterv 1-4. évfolyam 2013.

5. évfolyam. Gondolkodási módszerek. Számelmélet, algebra 65. Függvények, analízis 12. Geometria 47. Statisztika, valószínűség 5

Gráfokkal megoldható hétköznapi problémák

TERMELÉSMENEDZSMENT. Gyakorlati segédlet a műszaki menedzser szak hallgatói számára. Összeállította: Dr. Vermes Pál főiskolai tanár 2006.

TANTÁRGYLEÍRÁS. Informatika és elektronika Tantárgy kódja

Károlyi Mihály Két Tanítási Nyelvű Közgazdasági Szakközépiskola Német Helyi Tanterv 2014

Felhasználónév: ire jelszó: IRE07 Követelmények

EMMI kerettanterv 51/2012. (XII. 21.) EMMI rendelet 1. sz. melléklet Matematika az általános iskolák 1 4. évfolyama számára

A sorozatok az egyetemen és a középiskolákban

SZERK2 ÉPÜLETSZERKEZETEK II.

HELYI TANTERV MATEMATIKA (emelt szintű csoportoknak) Alapelvek, célok

EMMI kerettanterv 51/2012. (XII. 21.) EMMI rendelet 2. sz. melléklet Matematika az általános iskolák 5 8.

Középszintű érettségi feladatsorok és megoldásaik Összeállította: Pataki János; dátum: november. I. rész

Korszerű tanulás támogatás erőforrásai a felsőoktatásban Göncziné Kapros Katalin Eszterházy Károly Főiskola, Médiainformatika Intézet kaprosk@ektf.

Matematika helyi tanterv,5 8. évfolyam

TVSZ. 10. SZ. FÜGGELÉK A CIKLUSOKRA BONTOTT, OSZTOTT KÉPZÉSBEN MEGVALÓSULÓ TANÁRI MESTERSZAKRA VONATKOZÓ SAJÁTOS RENDELKEZÉSEK

Mesterséges intelligencia, 7. előadás október 13. Készítette: Masa Tibor (KPM V.)

SEMMELWEIS EGYETEM SZERVEZETI ÉS MŰKÖDÉSI SZABÁLYZAT III. RÉSZ III/II. FEJEZET SEMMELWEIS EGYETEM EGÉSZSÉGTUDOMÁNYI KAR

Miskolci Egyetem GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR. Analízis I. példatár. (kidolgozott megoldásokkal) elektronikus feladatgyűjtemény

Tantárgy adatlap Operációkutatás

KÖVETELMÉNYEK. Tantárgy neve

Valószínűségszámítás

Mesterséges Intelligencia MI

Ikt. sz.: SZF/.../2012. A Szolnoki Főiskola Térítési és Juttatási Szabályzata

BARANYA MEGYEI TANULÓK TUDÁSSTRUKTÚRÁI. Takács Viola

MATEMATIKA ÍRÁSBELI ÉRETTSÉGI-FELVÉTELI FELADATOK május 19. du. JAVÍTÁSI ÚTMUTATÓ

MATEMATIKA 1-2.osztály

MATEMATIKA ÉVFOLYAM

2. gyakorlat Állapot alapú modellezés Megoldások

Mesterséges intelligencia 2. laborgyakorlat

Gáspár Csaba. Analízis

Legrövidebb utat kereső algoritmusok. BFS (szélességi keresés)

Regressziószámítás alkalmazása kistérségi adatokon

Mesterséges Intelligencia MI

REKURZIÓ. Rekurzív: önmagát ismétlő valami (tevékenység, adatszerkezet stb.) Rekurzív függvény: függvény, amely meghívja saját magát.

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Bevezetés a programozásba 2

Tájékoztató az érettségiről és a felvételiről

Matematika évfolyam. Vass Lajos Általános Iskola Helyi tanterv Matematika 1 4. osztály

15. BESZÉD ÉS GONDOLKODÁS

Matematika évfolyam

A DIPLOMÁS PÁLYAKÖVETŐRENDSZER KUTATÁSI EREDMÉNYEIBŐL JELLI JÁNOS ÉS KABAINÉ TÓTH KLÁRA

9. előadás Környezetfüggetlen nyelvek

Helyi tanterv Német nyelvű matematika érettségi előkészítő. 11. évfolyam

MATEMATIKA 5 8. ALAPELVEK, CÉLOK

Átírás:

Mesterséges intelligencia PTI BSc levelező 2009-10. ősz Előadás, gyakorlat: Vályi Sándor mailto:valyis@nyf.hu Az email tárgy(subject): mezője a mestint szóval kezdődjék

Az órák időpontja 1. előadás: szept. 5, Szo, 8:00-11:23, [hely: D 6ea] 1. gyakorlat: szept. 18, P, 8:00-11:30 (A) ill. 13:00-16:30 (B) [hely: E016] 2. előadás: nov. 20, P, 8:00-11:23, D 7ea 2. gyakorlat: dec. 11, P, 8:00-11:30 (A) ill. 13:00-16:30 (B) [hely: E014]

TANTÁRGYLEÍRÁS Tantárgy neve Mesterséges intelligencia Tantárgy kódja PMB1212 Meghirdetés féléve 5 Kreditpont 5 Heti kontakt óraszám (elm.+gyak.) 2+2 nappalin, 7+8 levelezőn Félévi követelmény kollokvium Előfeltétel (tantárgyi kód) PMB1205 (prog 2) Tantárgyfelelős neve és beosztása Dr. Várterész Magda, főiskolai tanár

A tantárgy elsajátításának célja A mesterséges intelligencia alapvető reprezentációs technikáinak és megoldáskereső eljárásainak a megismerése, programozása

Tantárgyi program A mesterséges intelligencia kutatási területei, módszerei, eredményei. Problémák reprezentálása állapottéren, példák. A gráfreprezentáció. Megoldást kereső rendszerek felépítése, csoportosítása. Nem módosítható stratégiák. A backtrack algoritmus. Gráfkereső eljárások: szélességi, mélységi, optimális keresések. Heurisztikus gráfkeresők: a best-first és az A algoritmusok. Az A algoritmus teljessége. Probléma-redukciós feladatmegoldás, reprezentálása ÉS/VAGY gráffal. Megoldás az ÉS/VAGY gráfban. Keresési stratégiák ÉS/VAGY gráfban: szélességi, mélységi, AO algoritmus. A terminálás figyelése címkézéssel. Kétszemélyes játékok, ábrázolásuk játékfával. A nyerő stratégia létezése. A minimax eljárás, az alfa-béta vágás.

Évközi követelmények Évközben a hallgatók 3 fős csoportokban (esetleg 2) két MI feladatot számítógépes program készítésével megoldanak és dokumentálva benyújtanak. A két feladat kiválasztása az 1. gyakorlatig email-ben vagy az 1. gyakorlaton lehetséges, a feladatok megoldása a 2. gyakorlat időpontjáig lehetséges. A feladatok típusa: 1. problémareprezentációs/megoldáskeresős 2 kétszemélyes játékban lépésajánló A bemutatók feladatokban való mély ismereteikről személyes beszámoló során számolnak be, nem együtt, hanem külön-külön. A két feladatra összesen 50 pontot lehet kapni, aláírás 30 ponttól. Ez alapján kapnak aláírást. Az elért pontokat beszámítom az A és B vizsga eredményébe, csak ebben a szemeszterben. Vizsgázni a feladatmegoldások elfogadása után lehet (az aláírás birtokában), írásban. Itt még 50 pontot lehet szerezni. A következő összefüggést használom a vizsgajegyek megállapításához, ahol az összesített pontszám P és a jegy J: P>=50 J>=2 és P>=70 J>=3 és P>=80 J>=4 és P>=90 J=5 és P<60 J=1.

A vizsga anyaga Egy adott probléma szövegesen megadott változatából állapottér-reprezentáció leírását készíteni, s megadott algoritmust objektumorientált nyelven implementálni, gép mellett. Plusz néhány tesztkérdés.

Választható problémareprezentációs-megoldáskeresős feladatok http://www.inf.unideb.hu/~jeszy/download/mes Választható kétszemélyesjátékfeladatok http://www.inf.unideb.hu/~jeszy/download/ mestint/jatekok.pdf

Időpontok a vizsgaidőszakban 3 lesz a vizsgaidőszakban

Vizsga tananyaga Előadás vázlata, internetről letölthető Elég a Várterész Magda tanárnő-féle rész Az előadáson elhangzott kiegészítések Russel-Norvig: Mesterséges intelligencia modern megközelítésben (adatai az irodalomnál), a 244. oldalig (I-II. rész)

Ajánlott(***) és kötelező irodalom ***Futó Iván (szerk.): Mesterséges intelligencia, Aula Kiadó,Budapest, 1999. Stuart J. Russell, Peter Norvig : Mesterséges intelligencia modern megközelítésben, Panem- Prentice Hall, Budapest, 2000.

Forrás Fő forrás: Nagyon sok helyen direkt beképeztem a Várterész tanárnő nappalisoknak tartott előadásának anyagát. Közötte saját anyag, Jeszenszky Péter ismeretreprezentációs anyagai és a Russel-Norvig könyvhöz ajánlott prezentációs anyag.

1. Állapottér alapú ismeretreprezentáció

Intelligens ágensek problémája A cél: a világ állapotainak egy halmaza, azon állapotoké, amiben a cél igaz. (A cél tehát a világ objektumainak egy leíró tulajdonsága, állítás.) Problémamegoldás: a világ állapotainak olyan sorozatát megalkotni, ami Elvezet a célhoz Az egyes lépéseket már meg tudom tenni

Problémamegoldás = Útkeresés (Ezen gondolatmenet szerint) Az ilyenféle, jól leírható állapotokkal modellezett problémák az ún. jóldefiniált problémák számítási problémával megfogalmazhatók (nem biztos, hogy a megoldó algoritmus könnyű is, vagy egyáltalán létezik!)

Példa: Romániai útkeresés Vakáción Erdélyben és Romániában; jelenleg Aradon. Holnap indul a repülőnk Bukarestből Fogalmazzuk meg a célt: Fogalmazzuk meg az állapotokat: Bukaresten teremni holnap 11.00-re állapotok: a különböző városok akciók: egyik városból a másikba átmenni kocsival A megoldás formája: Városok egy sorozata, pl., Arad, Nagyszeben, Fogaras, Bukarest (megfeleltethető akciók sorozatának)

Példa gráfra: Erdély és Ó-Románia néhány városa és köztük utak

Állapottérrel (state space) megfogalmazott probléma 1. 2. 3. Egy problémát 4 dolog definiál: kezdeti állapot, pl. "Aradon vagyok" Akciók(operátorok) S(x) = x-ben alkalmazható akció-állapot párok célteszt, lehet 1. explicit, pl., x = "Bukarestben" implicit, pl., sakkjáték-programban Matt egy feltétel útköltség, ami az egyes lépések költségeiből adódik össze (additív) pl., a távolságok összege Egy megoldás: akcióknak egy olyan sorozata, amely a céltesztet teljesítő ún. célállapotba visz

AZ ÁLLAPOTTÉR MEGVÁLASZTÁSA A valódi világ minden emberileg leírhatónál bonyolultabb (számomra biztosan) az állapottér csak egy absztrakciója, ami éppen releváns a problémánk szempontjából (Absztrakt) állapot = sok valódi állapot összefogva (Absztrakt) akció = valós akciók bonyolult kombinációja pl., "Arad Nagyzerénd" maga is egy lehetséges utak halmazát reprezentálja, navigálok Aradon, megállok-e útközben az étteremben, Az absztrakt akciók könnyebbek legyenek, mint a probléma, amit modellezünk A megfelelő absztrakciós szintű akciókat és állapotokat vegyük fel: pl., az "Arad Nagyzerénd akcióhoz ne modellezzük a kormánymozdulatokat, megállásokat, fékezéseket, jelzőtáblákat, ezek irreleváns részletek az útkereső ágensünk esetén, bár, ha taxisofőr ágenst készítenénk, nyilván már nem ez lenne a helyzet.

A porszívóvilág állapottere Állapotok? Akciók? célteszt? Útköltség?

A porszívóvilág állapottere állapotok? <melyik szobában van, ott van-e kosz> actions? Balra, Jobbra, Szívás célteszt? Nincs kosz sehol élköltség? 1 per akció

Példa: 8-as csúszkajáték Állapotok? Akciók? célteszt? Útköltség?

Példa: 8-as csúszkajáték (8-puzzle) Állapotok? 0..8 számok sorozata (0: luk) Akciók? A luk le/fel/balra/jobbra célteszt? Explicit: [0,1,2,3,4,5,6,7,8] Útköltség? 1/tolás

Példa: dobozvilág robotkarral

Példa: dobozvilág robotkarral állapot?: a robot ízületeinek állása, a dobozok pozíciója (néhány valós szám együttese) akciók?: a robot ízületeinek folytonos mozgása célteszt?: a végső összeszerelése a céltárgynak útköltség?: idő, ami alatt összerakja, fogyasztott árammennyiség, adott gyártási útra várható selejtátlag

Ismeretreprezentációs feladatok A 8-as játék állapottere két diszjunkt halmazból áll (nem elérhetők úttal egymásból). Keressük meg, mi a leírása ennek a két halmaznak és adjunk programozható eljárást két állapotról eldöntendő, egy csoportba tartoznak-e. 8 királynőt kell elhelyezni a 8x8-as sakktáblán. Állapotreprezentáció, Akciók, célteszt, élköltség? Az akció egy királylány (királynő-jelölt:-) felpakolása legyen.

Feladat Adjon állapot-halmazt, kiinduló állapotot, célfeltételt, élköltség-függvényt a következő problémák-hoz: egy N részre vonatkozó területfelosztás azzal van definiálva, melyik helyrajzi számú telek szomszédos a másikkal. 4 növényt kell telepíteni úgy, hogy szomszédos területekre nem lehet azonosat. Keressünk helyes telepítést. (Térképszínezési probléma)

Feladat: állapotok, cél, kiindulás, operátorok? 1 m-es majom egy szobában van, ahol van még két darab 1 m-es doboz (egymásra pakolhatók, rá lehet mászni). 2,5 m magasan van egy banán. A cél a banán elérése lenne. Van 3 permetezőszer-tároló edénye van: egy 12 l-es, egy 8 l-es és egy 3 l-es. Meg egy nagy permetlé tartálya, ahonnan bármelyiket éppen telemerítheti. Pontosan 1 l-t kell kimernie.

A 8-puzzle-játék C nyelvi reprezentációja typedef Allapot byte[3][3]; int kenyszerfeltetel(allapot x) {int nincsazonos=1; for(int i1=0;i1<=2;i1++) for(int j1=i1+1;j1<=2;j1++) for(int i2=0;i2<=2;i2++) for(int j2=i2+1;j2<=2;j2++) {if (x[i1][j1]==x[i2][j2] && ~(i1==i2 && j1==j2)) nincsazonos=0;} return nincsazonos; } const Allapot kezdo = {{1,2,0},{4,6,3},{7,5,8}}; int celallapot(allapot x) {...} int operatorok_szama; //a 4 operátort számokkal ábrázoljuk int alkalmazhato(allapot x, int op) {...} Allapot alkalmaz(allapot x, int op) {...}

A következő anyag forrása: Jeszenszky Péter (http://www.inf.unideb.hu/~jeszy) Minta a beadandó házi feladat dokumentációs részéhez!

Például a 3x3-as tilitoli probléma ábrázolása esetén, ha nem kötjük ki azt a kényszerfeltételt, hogy a 9 pozíción másmás szám áll, akkor nem 9!, hanem 9^9 állapot keletkezik.

A 8-puzzle probléma állapottér-gráfjának fa-alakja Forrás: Artificial Intelligence: a new synthesis szerző: Nils J. Nilsson

Mi a fagráf? Összefüggő, körmentes gráf. Az állapottér-gráf átalakítása fagráffá: pl. az odavezető utak lesznek az új csúcspontok.

2. Megoldást kereső módszerek

Példa előre és hátrafelé haladó megoldáskeresésre Logikai tételbizonyítás természetes levezetéssel: a célból indulunk ki mit kell még megcsinálnunk: visszafelé haladó vagy célvezérelt megoldáskeresés Generatív nyelvtanban CYK és Early-algoritmus: felsorolni, miket tudunk elvezetni az meglévő adatainkból kiindulva tudjuk-e levezetni a kívánt célt: előrefelé haladó vagy adatvezérelt megoldáskeresés

Heurisztikus keresés: informált keresés Példák: labirintusban bolyongani Labirintust szisztematikusan bejárni, térképet készíteni Minotauruszt szag alapján keresni Meglévő térkép alapján utat tervezni Más példák tipikus informált keresésre: Robotok cselekvés-tervezése Sakkjáték-program, HA: tanult sémákat is használ a keresés

Tárigény: konstans, az állapottérgráf méretében Időigény: nem értelmezhető, mert nem teljes

Heurisztikák a 8-puzzle esetén Egy állapot jóságának lehetséges mértékei: hány négyzet van a helyén? hány tolás kellene, ha minden négyzet szabadon egymásra tolható lenne (Manhattan-heurisztika)? Ezek a heurisztikák nem pontosak, nincs mindig olyan kirakás, ahol a jóság monoton módon növekszik

Hill-climbing (hegymászó) keresés Felmászni a Mont Blancra ködben, amnéziával"

Hegymászó keresés Probléma: csak lokális maximumot garantál, csapdába eshet egy ilyen helyen 1-dimenziós függvény maximumhelyének keresésére egyszerűsített példa

Hegymászó keresés: 8-királynő probléma h = azon királynő-párok száma, amelyek ütik egymást (még ha éppen most takarásban is állnak) h = 17 itt

Hegymászó keresés: Egy lokális minimum h = 1 értékkel

Egy szemléltető animáció http://www.ndsu.nodak.edu/instruct/juell/vp /cs724s00/hill_climbing/

Egyéb neminformált keresési módszerek

Szimulált hűtéses keresés Ötlet: a lokális maximumokból való kiszökés céljából megengedünk véletlenszerű rossz irányba tett véletlenszerűen nagy lépéseket; de csökkentve ezen lépések gyakoriságát. http://216.239.116.64/reference/simulated _annealing

A szimulált hűtéses keresés tulajdonsága Bizonyítani lehet: Ha T elég lassan növekszik, akkor a sz. h. k. 1 valószínűséggel megtalálja az optimumot. Itt az aláhúzott rész pontosabb specifikációt is kaphat. Sikeres, nagy projektek: VLSI tervezés repülőjáratok scheduling-ja, időzítése

Tárigény: O( V ), ha V az állapottérgráf csúcsainak halmaza.

Itt a differencia!

Az ismétlődő állapotok felismerése nélkül Egy lineáris időben megoldható feladatot exponenciálissá tehet.

Erősen nemdeterminisztikus! Lehet, hogy célállapot bekerül, de mégsem választjuk sose!

Fában kereső algoritmusok Alapötlet: Az állapottér bejárása, mindig a már felderített állapotok rákövetkezőit generálva Peremnek nevezzük a már felfedezett, de ki nem próbált csúcsokat

Keresés fában - példa Csúcspont mélysége: amilyen messze van a fa gyökerétől Sekélyebb csúcspont

Keresés fában - példa A fehér belsejű karika jelzi a perembeli csúcsokat. A szürke belsejű a már kipróbált csúcsokat jelzi.

Keresés fában - példa

Implementáció: állapotok vs. csúcsok Egy állapot egy fizikai konfiguráció (reprezentációja) Egy csúcs pedig egy olyan összetett adat, ami a keresési fának képezi részét és tartalmaz: állapotot, szülőcsúcsot, akciót, útköltséget g(x), mélységet. Az Expand függvény új csúcsokat képez egy csúcsból

Szélességi(Breadth-first) keresés A gyökérhez legközelebbi (legsekélyebb) csúcsot terjeszti ki Implementácó: A perem egy FIFO-sor (first-in-first-out), azaz amelyik elsőnek jött a sorba, elsőnek vesszük is ki A perem: [A]

Szélességi keresés A perem: [B,C]

Breadth-first search (szélességi keresés) munkamódszere Mindig a(z egyik) legsekélyebb csúcspontot terjeszti ki. Implementáció: A perem egy FIFO-sor, azaz: az újonnan képbe kerülő csúcsok a sor végére kerülnek. A perem: [D,E,C]

Szélességi keresés A perem: [D,E,F,G]

A szélességi keresés tulajdonságai Teljes? igen (ha b véges) Idő? 1+b+b2+b3+ +bd + b(bd-1) = O(bd+1 ) Tár? O(bd+1 ) (minden csúcs a memóriában, esetleg törölhetők, amelyek összes utódja már a peremben van) Optimális? Igen (ha költség=1) A tárigény alig kielégíthető Jelölje b azt, hogy egy csúcsnak hány fia lehet maximum. d a megoldás mélységét jelöli.

Mélységi keresés Mindig választunk egyet a legmélyebb, még nem kiterjesztett csúcsok közül, s azt terjesztjük ki. Implementáció: perem = LIFO-sor, azaz verem, az újonnan érkezetteket a sor elejére tesszük

Mélységi keresés(depth-first search) A perem: [B,C], továbbfeldologzásra kijelölt: B

Mélységi keresés A perem: [D,E,C], továbbfeldolgozásra kijelölt: D

Mélységi keresés A perem: [H,I,E,C], továbbfeldolgozásra kijelölt: H

Mélységi keresés A perem: [I,E,C], továbbfeldolgozásra kijelölt: I

Depth-first search A perem: [E,C], továbbfeldolgozásra kijelölt: E

Mélységi keresés A perem: [J,K,C], továbbfeldolgozásra kijelölt: J

Mélységi keresés A perem: [K,C], továbbfeldolgozásra kijelölt: K

Mélységi keresés A perem: [C], továbbfeldolgozásra kijelölt: C

Mélységi keresés A perem: [F,G], továbbfeldolgozásra kijelölt: F

Mélységi keresés A perem: [L,M,G], továbbfeldolgozásra kijelölt: L

Mélységi keresés A perem: [M,G], továbbfeldolgozásra kijelölt: M

Mélységi keresés A perem: [M,G], továbbfeldolgozásra kijelölt: M

A mélységi keresés tulajdonságai Teljes? Nem. Hibádzik végtelen állapottéren,sőt, végesben is, ha vannak hurkok az állapottérben; Módosíthatjuk úgy, hogy minden tárolt csúcshoz tároljuk azt is, hogyan jutottunk oda. ekkor teljes, legalábbis véges állapottéren. Idő? O(bm): nagy, ha m sokkal nagyobb, mint d de ha az állapottérben sűrűn vannak a megoldások, sokkal gyorsabb lehet, mint a szélességi Tár? O(bm), i.e., lineáris tár! Optimális? Nem

Folyton mélyülő keresés Először 1 mélységű szélességi keresés, aztán 2 mélységű, Ez megint teljes, egyenlő útköltség mellett.

Folyton mélyülő szélességi keresés

Folyton mélyülő szélességi keresés

Folyton mélyülő szélességi keresés

Folyton mélyülő szélességi keresés

Folyton mélyülő szélességi keresés - tulajdonságok Teljes? Igen Idő? (d+1)b0 + d b1 + (d-1)b2 + + bd = O(bd) Memóriaigény? O(bd) Optimális? Igen, ha az élköltségek egységesen =1

Best-first keresés Ötlet: minden n csúcsponthoz hozzárendelünk egy f(n) kiértékelő függvényértéket. Az előnyösség becslése, általában a kisebb érték a jobb ( a céltól való távolságot becsli <<nem méri!!!>>) Ha mérné, akkor a keresés nem is volna keresés! Egyelőre nem foglalkozunk vele, honnan beszerezhető ez az f függvény A legígéretesebb még nem kiterjesztett csúcsot terjesztjük ki Implementáció: Az aktuális peremen lévő csúcsokat az előnyösség szerint csökkenő sorrendben használjuk Speciális esetei: mohó best-first keresés A* keresés

Erdély és Románia térképvázlata

Best-first keresés példa

best-first keresés példa

best-first keresés példa

best-first keresés példa

A best-first keresés tulajdonságai Teljes-e? Nem végtelen ciklusba eshet, pl., Iasi Neamt Iasi Neamt ( Russel-Norvig szerint. Szerintem nem!) Idő? Rossz heurisztikával O(bm), de egy jó heurisztikával drámai javulás Memória? O(bm) minden csúcs a memiában Optimális? Nem (Arad NSzeben Rimniu Pitesti Bukarest olcsóbb)

A keresés * Ötlet: kerüljük azokat az utakat, amelyek már eddig is drágák. Evaluation function f(n) = g(n) + h(n) g(n) = n eléréséhez elhasznált költség h(n) = n-ből a célba jutás becsült költsége f(n) = az n-en keresztüli út becsült költsége Vagyis ez is egyfajta best-first keresés.

A keresés példa *

A keresés példa *

A keresés példa *

A keresés példa *

A keresés példa *

A keresés példa *

Feladat h(s-g)=10 h(a-g)=7 h(d-g)=1 h(f-g)=1 h(b-g)=10 h(e-g)=8 h(c-g)=20 A heurisztika. Hogy jutunk el S-ből G-be az A* algoritmussal?

A keresés * Ötlet: kerüljük azokat az utakat, amelyek már eddig is drágák. Evaluation function f(n) = g(n) + h(n) g(n) = n eléréséhez elhasznált költség h(n) = n-ből a célba jutás becsült költsége f(n) = az n-en keresztüli út becsült költsége Vagyis ez is egyfajta best-first keresés.

A keresés példa *

A keresés példa *

A keresés példa *

A keresés példa *

A keresés példa *

A keresés példa *

Feladat h(s-g)=10 h(a-g)=7 h(d-g)=1 h(f-g)=1 h(b-g)=10 h(e-g)=8 h(c-g)=20 A heurisztika. Hogy jutunk el S-ből G-be az A* algoritmussal?

Elfogadható heurisztikák Egy h(n) heurisztika elfogadható, ha minden n csúcsra h(n) h*(n) teljesül, ahol h*(n) az n csúcs igazi (még nem tudott) költsége. Az elfogadható heurisztika sosem becsli túl a cél elérésének költségét, azaz optimista. Például a légvonal szerinti távolság ilyen a térképen. Állítás: Ha h(n) elfogadható, akkor az A* algoritmus h-t használó példánya optimális.

Konzisztens heurisztikák Egy heurisztika konzisztens: ha minden n csúcsra, minden a akcióra és annak bármely n' lehetséges eredménycsúcsára: h(n) c(n,a,n') + h(n'), ahol c az n-ből n -be a akcióval való eljutás költsége. Ebben az esetben teljesül: f(n') = g(n') + h(n') = g(n) + c(n,a,n') + h(n') g(n) + h(n) = f(n) Állítás: Ha h(n) konzisztens, akkor az A* keresés g-t és h-t használva optimális.

A * optimalitása A* a csúcsokat a növekvő f érték szerint rendezve terjeszti ki. Fokozatosan ad egyre növekvő x értékekkel "f(n)<=x" környezeteit a kiindulásnak

A* tulajdonságok Teljes? Igen (hacsak nincs végtelen sok csúcs f f(g)-e teljesítően ) Idő? Exponenciális Tár? Minden kiterjesztett csúcs tárban Optimális? Igen Egy A*-demo URL-je: http://www.vision.ee.ethz.ch/~cvcourse/astar/astar.html JAVA-t igényel.

Elérhető heurisztikák -- példák A 8-as csúszka játékhoz: h1(n) = a rosszul elhelyezett lapocskák száma h2(n) = teljes Manhattan-távolság (az egyes lapocskák üres táblán való helyrecsúsztatásának lépésszámai összegezve) h1(start) =? h2(start) =?

Elérhető heurisztikák -- példák A 8-as csúszka játékhoz: h1(n) = a rosszul elhelyezett lapocskák száma h2(n) = teljes Manhattan-távolság (az egyes lapocskák üres táblán való helyrecsúsztatásának lépésszámai összegezve) h1(start) = 8 h2(start) = 3+1+2+2+2+3+3+2 = 18

Javasoljon néhány heurisztikát (és előtte adatábrázolási módot, célt): Egy kikísérletezendő AIDS-gyógyító gyógyszermolekula számára Egy kikísérletezendő tápanyagösszeállítás számára 2-3 hónapos borjak számára Egy összeállítandó osztály-ültetési rendre a gimis osztályban Utazó ügynök problémára Párizsban térkép nélkül megtalálni gyalog az Eiffel tornyot, kérdezni tudunk franciául, de csak az igen/nem választ értjük meg; az emberek 60%-a tudja a választ, csak egy összetett kérdést tehetünk fel

Dominancia Ha h2(n) h1(n) minden n-re, de mindkettő elfogadható heurisztika, akkor h2 dominálja h1--et h2-val jobb keresni Tipikus keresési költség (a csúcsok számában mérve, d a mélység): d=12 A*(h1) A*(h2) d=24 A*(h1) A*(h2) IDS = 3,644,035 nodes = 227 nodes = 73 nodes IDS = too many nodes = 39,135 nodes = 1,641 nodes

Relaxált problémák Egy probléma, amiben az eredetihez képest kevesebb megszorítást tehetünk az adott állapotban végrehajtható akciókra: az eredetihez képest relaxált probléma A relaxált probléma megoldásához szükséges lépésszámmal adunk egy elfogadható heurisztikát az eredeti probléma A*-kereséséhez. Pl. a 8-as csúszkajátékban azt a kitételt elengedjük, hogy csak szomszédos lukba lehet elmozgatni lapocskát, hanem akárhová, akkor a h1(n) adja a legrövidebb megoldást. Ha minden szomszéd mezőbe tudnánk menni, akkor h2(n) heurisztika keletkezik ebből a relaxált problémából az eredeti számára.

Keresési algoritmusok interaktív gyakorlása http://aispace.org (JAVA RE-et igényel a böngészőben)

KÖSZÖNÖM A FIGYELMÜKET!