mesterséges intelligencia - nyíregyházi...
TRANSCRIPT
Mesterséges intelligencia
PTI BSc levelező2009-10. ősz
Előadás, gyakorlat: Vályi Sándormailto:[email protected]
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ős2 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émareprezen-tációs-megoldáskeresős feladatok
• http://www.inf.unideb.hu/~jeszy/download/mestint/feladatok.pdf
• http://www.inf.unideb.hu/~jeszy/download/mestint/jatekok.pdf
Választható kétszemélyesjáték-feladatok
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ájaA 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:
Bukaresten teremni holnap 11.00-re Fogalmazzuk meg az állapotokat:
á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
Egy problémát 4 dolog definiál:1. kezdeti állapot, pl. "Aradon vagyok"2. Akciók(operátorok) S(x) = x-ben alkalmazható akció-állapot
párok 3. célteszt, lehet
explicit, pl., x = "Bukarestben" implicit, pl., sakkjáték-programban „Matt” – egy feltétel
1. útköltség, ami az egyes lépések költségeiből adódik össze (additív) pl., a távolságok összegeEgy 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?
á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ó
A porszívóvilág állapottere
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ázoljukint 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ás-má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ébenIdő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
• A perem: [I,E,C], továbbfeldolgozásra kijelölt: I
Mélységi keresés
Depth-first search• A perem: [E,C], továbbfeldolgozásra
kijelölt: E
• 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
Mélységi keresés
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
Feladath(S-G)=10h(A-G)=7h(D-G)=1h(F-G)=1h(B-G)=10h(E-G)=8h(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
Feladath(S-G)=10h(A-G)=7h(D-G)=1h(F-G)=1h(B-G)=10h(E-G)=8h(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ákA 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ákA 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 IDS = 3,644,035 nodesA*(h1) = 227 nodes A*(h2) = 73 nodes
• d=24 IDS = too many nodesA*(h1) = 39,135 nodes A*(h2) = 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!