Mesterséges intelligencia - Nyíregyházi...

Preview:

Citation preview

Mesterséges intelligencia

PTI BSc levelező2009-10. ősz

Előadás, gyakorlat: Vályi Sándormailto: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ő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!

Recommended