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!