TERVGENERÁLÁS. Robotika részfeladatai. Állapot-leírás logikai állításokkal. Kocka világ. Állapot-leírás tulajdonságai. Példa

Hasonló dokumentumok
Cselekvési tervek generálása a robotikában

II. Szabályalapú következtetés

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

II. Állapottér-reprezentáció

III. Szabályalapú logikai következtetés

2. Visszalépéses stratégia

ÍTÉLETKALKULUS (NULLADRENDŰ LOGIKA)

Adatszerkezetek és algoritmusok

Logika es sz am ıt aselm elet I. r esz Logika Hatodik el oad as 1/33

ZH feladatok megoldásai

LOGIKA ÉS ÉRVELÉSTECHNIKA

Chomsky-féle hierarchia

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

Logika és informatikai alkalmazásai

Gráfelméleti modell alkalmazása épít ipari kivitelezés ütemezésére

L'Hospital-szabály március 15. ln(x 2) x 2. ln(x 2) = ln(3 2) = ln 1 = 0. A nevez határértéke: lim. (x 2 9) = = 0.

Haladók III. kategória 2. (dönt ) forduló

Függvények július 13. f(x) = 1 x+x 2 f() = 1 ()+() 2 f(f(x)) = 1 (1 x+x 2 )+(1 x+x 2 ) 2 Rendezés után kapjuk, hogy:

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

Diszkrét matematika 1. középszint

Logika és informatikai alkalmazásai kiskérdések február Mikor mondjuk, hogy az F formula a G-nek részformulája?

Automatikus következtetés

Elsőrendű logika. Mesterséges intelligencia március 28.

Taylor-polinomok. 1. Alapfeladatok április Feladat: Írjuk fel az f(x) = e 2x függvény másodfokú Maclaurinpolinomját!

LOGIKA ÉS ÉRVELÉSTECHNIKA

A matematika nyelvér l bevezetés

Logikai ágensek. Mesterséges intelligencia március 21.

LOGIKA ÉS ÉRVELÉSTECHNIKA

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2010/2011 1/363

Mesterséges intelligencia 1 előadások

2. Visszalépéses keresés

VII. Keretalapú ismeretábrázolás

Arany Dániel Matematikai Tanulóverseny 2017/2018-as tanév 2. forduló Haladók II. kategória

Gráfkeresések A globális munkaterületén a startcsúcsból kiinduló már feltárt utak találhatók (ez az ún. kereső gráf), külön megjelölve az utak azon

Mesterséges intelligencia. Gregorics Tibor people.inf.elte.hu/gt/mi

Cselekvési tervek generálása. Máté Annamária

Predikátumkalkulus. Predikátumkalkulus alapfogalmai, formalizálás, tagadás, logikailag igaz formulák. Vizsgáljuk meg a következ két kijelentést.

Relációk. 1. Descartes-szorzat. 2. Relációk

Matematikai logika. 3. fejezet. Logikai m veletek, kvantorok 3-1

Elérhetőségi analízis Petri hálók dinamikus tulajdonságai

Mesterséges intelligencia

Függvények határértéke, folytonossága

Predikátumkalkulus. 1. Bevezet. 2. Predikátumkalkulus, formalizálás. Predikátumkalkulus alapfogalmai, formalizálás, tagadás, logikailag igaz formulák.

ÖSSZEFOGLALÁS a Bsc záróvizsga mesterséges intelligenciáról szóló témaköréhez

Logikai következmény, tautológia, inkonzisztens, logikai ekvivalencia, normálformák

Problémamegoldás kereséssel. Mesterséges intelligencia március 7.

Bisonc++ tutorial. Dévai Gergely. A szabály bal- és jobboldalát : választja el egymástól. A szabályalternatívák sorozatát ; zárja le.

Keresések Gregorics Tibor Mesterséges intelligencia

Struktúra nélküli adatszerkezetek

Deníciók és tételek a beugró vizsgára

A logikai következmény

, , A

Java programozási nyelv

MATEMATIKA évfolyam

Logikai programozás ADMINISZTRATÍV KÉRDÉSEK KÖVETELMÉNYRENDSZER FŐBB PONTOK NÉHÁNY BIZTATÓ SZÓ

bármely másikra el lehessen jutni. A vállalat tudja, hogy tetszőlegesen adott

Megoldott feladatok november 30. n+3 szigorúan monoton csökken, 5. n+3. lim a n = lim. n+3 = 2n+3 n+4 2n+1

rank(a) == rank([a b])

Algoritmusok és adatszerkezetek gyakorlat 07

Adatbázisok elmélete 12. előadás

Egyváltozós függvények 1.

Logika és informatikai alkalmazásai

A szemantikus elemzés elmélete. Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus elemzés elmélete. A szemantikus elemzés elmélete

MATEMATIKA A és B variáció

5. SOR. Üres: S Sorba: S E S Sorból: S S E Első: S E

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

Logika és informatikai alkalmazásai

(1 + (y ) 2 = f(x). Határozzuk meg a rúd alakját, ha a nyomaték eloszlás. (y ) 2 + 2yy = 0,

ROBOTIKA. Kürti. Levente

Adatszerkezetek és algoritmusok

Algoritmuselmélet 2. előadás

: s s t 2 s t. m m m. e f e f. a a ab a b c. a c b ac. 5. Végezzük el a kijelölt m veleteket a változók lehetséges értékei mellett!

HALMAZELMÉLET feladatsor 1.

AZ INFORMATIKA LOGIKAI ALAPJAI

Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén

értékel függvény: rátermettségi függvény (tness function)

Relációk. 1. Descartes-szorzat

Ítéletkalkulus. 1. Bevezet. 2. Ítéletkalkulus

Modellezés Gregorics Tibor Mesterséges intelligencia

Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

A két csapatra osztás leggyakoribb megvalósításai: Lyukas teli (vagy sima vagy nem lyukas)

Diszkrét matematika 2. estis képzés

Kiterjesztések sek szemantikája

Robotok inverz geometriája

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

Függvények július 13. Határozza meg a következ határértékeket! 1. Feladat: x 0 7x 15 x ) = lim. x 7 x 15 x ) = (2 + 0) = lim.

1. tétel - Gráfok alapfogalmai

JAVASLAT A TOP-K ELEMCSERÉK KERESÉSÉRE NAGY ONLINE KÖZÖSSÉGEKBEN

Matematikai logika. Nagy Károly 2009

Diszkrét matematika 2.C szakirány

Matematikai és matematikai statisztikai alapismeretek

Bázistranszformáció és alkalmazásai 2.

Tárgy. Forgóasztal. Lézer. Kamera 3D REKONSTRUKCIÓ LÉZERES LETAPOGATÁSSAL

Amortizációs költségelemzés

Kereső algoritmusok a diszkrét optimalizálás problémájához

Feladatok, amelyek gráfokkal oldhatók meg 1) A königsbergi hidak problémája (Euler-féle probléma) a

MBNK12: Permutációk (el adásvázlat, április 11.) Maróti Miklós

Iványi Antal alkotó szerkeszt INFORMATIKAI ALGORITMUSOK

Programkonstrukciók A programkonstrukciók programfüggvényei Levezetési szabályok. 6. előadás. Programozás-elmélet. Programozás-elmélet 6.

3. előadás. Programozás-elmélet. A változó fogalma Kiterjesztések A feladat kiterjesztése A program kiterjesztése Kiterjesztési tételek Példa

Átírás:

Robotika részfeladatai TERVGENERÁLÁS 1. Állapottér-reprezentáció 2. Probléma redukció 3. Probléma dekompozíció 4. Logikai reprezentáció robot-szerkezet építése cél-meghatározás érzékelés, alakfelismerés (látás, hallás, stb. tervgenerálás (elemi m veletsorozat el állítása végrehajtás és korrigálás 1 2 Kocka világ Állapot-leírás logikai állításokkal sztalról egy kockát felemel: sztalra lerak egy kockát: Egy kockát egy kockára rátesz: Egy kockát egy kockáról levesz: pickup(x putdown(x stack(x,y unstack(x,y Elemi állítások on(x,y egy kocka egy másik kockán van clear(x egy kocka teteje üres ontable(x egy kocka az asztalon van handempty robotkar szabad holding(x robotkar egy kockát tart 3 4 Állapot-leírás tulajdonságai pozitív literálok konjunkciója: Konkrét vagy általános állapot-leírás. Változók használata. handempty clear( Teljes vagy hiányos állapot-leírás. Hiányos leírás lehet egyértelm vagy többértelm. on(, clear( ontable( ontable( Helyes vagy ellentmondásos állapot-leírás. Ellen rzés: konstrukcióval vagy logikai következtetéssel. 5 6 1

Ellentmondásos állapot Egy állapot-leírás lehet helyes vagy ellentmondásos z on(, clear( állapot ellentmondásos Egy állapot ellentmondása eldönthet konstrukcióval teljessé alakítjuk ontable, on, holding végrehajtása clear, handempty ellen rzése rezolúcióval, megfelel axiómarendszer alapján Pl.: on(x,y clear(y ontable(x holding(x holding(y Helyes-e az on(, clear( állapot-leírás az alábbi axiómarendszer ismeretében? x holding(x handempty x (holding(x ontable(x x (holding(x clear(x x (ontable(x on(x,y x (clear(y on(x,y Másként feltéve a kérdést: kielégíthetetlen-e az a logikai rendszer, amelyben a fenti axiómákhoz hozzávesszük az on(, clear( állítást? 7 8 ( holding(a handempty (handempty holding(b ( holding(x 21 ontable(x 21 (ontable(x 22 holding(x 22 ( holding(x 31 clear(x 31 (clear(x 32 holding(x 32 ( ontable(x 41 on(x 41,y 41 (on(x 42,y 42 ontable(x 42 ( clear(y 51 on(x 51,y 51 (on(x 52,y 52 clear(x 52 on(, clear(...... ontable(x 6 clear(x 6 ontable( clear( on(x 7, holding( M Minden F(x m velethez megadunk egy El feltétel lista : P F (x röviden P Törlési lista : D F (x röviden D vítési lista : F (x röviden : veletek leírása pickup(x: P: ontable(x,clear(x,handempty D: ontable(x,clear(x,handempty : holding(x 10 pickup( handempty, clear(, on(,, clear(, ontable(, ontable( holding(, clear(, on(,, ontable( 11 putdown(x: P: holding(x D: holding(x Példák további m : ontable(x,clear(x,handempty stack(x,y: P: holding(x clear(y D: holding(x clear(y : on(x,y, clear(x, handempty unstack(x,y: P: on(x,y, clear(x, handempty D: on(x,y, clear(x, handempty : holding(x clear(y veletekre 12 2

Megjegyzés P F nem feltétlenül azonos D F -vel. Például, ha a robotkar egy m velete az asztalon fekv x kockát felteszi az y kockára (pickup(x+stack(x,y: puton(x,y: P F : ontable(x, clear(x,clear(y, handempty D F : ontable(x, clear(y F : on(x,y D F többnyire része P F -nek 13 Megjegyzés Egy M m velet az F(x m velet-leírásnak egy F(xα alappéldánya. (α egy helyettesítés z el feltétel igazolása, valamint a m velet eredményének kiszámolása halmazm veletek segítségével történik. Egy m velet teljes állapot-leírásból (konkrét állapotból teljes állapot-leírást (konkrét állapotot hoz létre. m velet-leírás alapján hiányos és általános állapot-leírást is át lehet alakítani. 14 1. Megoldás állapottér-reprezentációval 2. Redukció a tervgenerálásban Állapotok, m veletek meghatároznak egy állapotgráfot, benne egy kezd - és egy célállapot Megoldási út el állítása el re vagy visszafelé haladó kereséssel visszalépéses gráfkeresés Heurisztika?? 15 16 Állapot redukálása Kiválasztunk egy megvalósítandó L literált Keresünk olyan M=F(xα m veletet, amely b vítési listáján ez a literál szerepel: L M Kiszámoljuk a megel z állapotot: vesszük a m velet el feltételét: P M megvizsgáljuk, hogy a célállapot literáljainak milyen formában kell jelen lenni a megel z állapotban handempty, clear(, clear( unstack(x, x on (x,, clear(x, handempty, true, clear(, false 17 18 3

Regresszió z L literálnak az M m veletre vett regressziója (el dje R[L; M] = L true ha L M és L D M ha L M false ha L D M z M m velethez tartozó redukciós m velet: M (a = P M R[L; M] L a 19 ontable(, clear(, handempty, ontable(, clear( on (,x, clear(, handempty, ontable(, clear( pickup( unstack(, unstack(,x, x on (,, clear(, handempty, ontable( holding(, ontable(, clear( unstack(x, x putdown( stack(,x on (x,, clear(x, handempty, holding(, ontable( holding(, holding(, holding(, clear(x, holding(, ontable( 3. Tervgenerálás dekompozícióval Egy összetett L 1... L n célt tényez nként (célliterálonként valósítunk meg. Egy L literál megvalósítása olyan m velettel történik, amely b vítési listáján (megfelel változó behelyettesítés mellett szerepel az L. Így az L literál megvalósítását visszavezetjük a m velet el feltételének (részcél megvalósítására. részcélokat újra és újra dekomponáljuk, amíg olyan literálokhoz nem jutunk, amelyek teljesülnek a -ban. F 1 L 1 L 11 L 12 részterv 1 L 21 L 1... L n L 2... F 2 részterv 2 Tiszta dekompozíció L n részterv n gráf közönséges ágait hívjuk résztervnek. Megoldás: részterv 1,, részterv n valamilyen sorrendje 21 22 Dekompozíciós reprezentáció Probléma leírás: állapot Kiinduló probléma: cél Egyszer probléma: L, ha L Operátorok: L 1... L n visszavezethet a L 1,..., L n problémákra L visszavezethet a P M problémára, ahol M olyan m velet, hogy az L M D on(,,on(,d on(, on(,d 1.stack(, 2.stack(,D holding( clear( holding( clear(d 3.pickup( 4.pickup( ontable( clear( handempty ontable( clear( handempty Megoldás: 3,1,4,2 vagy 4,2,3,1 23 4

Ellenpélda on(,,on(, on(, on(, 1.stack(, 2.stack(, holding( clear( holding( clear( 3.pickup( 4.pickup( ontable( clear( handempty ontable( clear( handempty 5.unstack(x, on(x, clear(x handempty x Megoldás:? Mi a megoldási terv? Nem hajtható végre az 5,3,1 részterv, mert hiányzik bel le a putdown( két részterv kölcsönösen elrontja egymás el feltételét. részcélok kölcsönhatásban állnak: ha az egyik résztervet kiegészítjük úgy, hogy a másik részterv után végrehajthassuk, akkor az els részterv eredményét, a már megvalósított részcélt rontjuk el. 26 3.1. Résztervek szekvenciális végrehajtása Egy adott szinten egyszerre 1, 2 csak egy részcél megvalósításával 1 2 foglalkozzunk. z el állított résztervet T 1 T 2 azonnal végrehajtjuk, és az T 1 ( így kapott állapotból indulva valósítjuk meg a következ célt. 1 2 T 1 T 2 T 1 ( T 2 (T 1 ( on(,,on(, on(, stack(, holding( clear( pickup( ontable( clear( handempty unstack(x, on(x, clear(x handempty x on(, 27 Döntési pontok, heurisztikák on(,,on(, Melyik célliterált valósítsuk meg el ször? földhöz közelebb es t, habár Melyik m veletet válasszuk? z aktuális állapothoz legjobban illeszked el feltétel t. Melyik változó-helyettesítést alkalmazzuk? on(, stack(, holding( clear( pickup( ontable( clear( handempty 1. unstack(x, on(x, clear(x handempty x on(, 29 5

on(,,on(, on(,,on(, on(, stack(, on(, on(, stack(, on(, holding( pickup( clear( holding( 3. pickup( clear( ontable( clear( handempty ontable( clear( handempty 1.unstack(, 2. putdown(y 1. 2. holding(y y on(,,on(, on(, 4. stack(, 3. pickup( 2. putdown( 1. unstack(, holding( clear( on(, on(, 4. stack(, 3. pickup( 2. putdown( 1. unstack(, on(,,on(, on(, 8. stack(, holding( clear( 7. pickup( ontable( clear( handempty 5. unstack(z, 6. putdown(v on (z, clear(z handempty holding(v z v on(,,on(, Résztervek ütközése on(, 4. stack(, 3. pickup( 2. putdown( 1. unstack(, on(, 8. stack(, 7. pickup( 6. putdown( 5. unstack(, 1, 2 1 2 T 1 T 2 T 1 ( 1 2? 1 T 1 T 2 T 1 ( T 2 (T 1 ( =? cél 36 6

I. STRIPS 1, 2 on(,,on(, 2 1 1 T 2 T 1 T 3 T 1 ( T 2 (T 1 ( Hagyjuk, hogy egy kés bbi (T 2 részterv elrontson egy már megvalósított ( 1 részcélt, amit kés bb újra megvalósítunk az aktuális állapotból kiindulva. 37 on(, on(, on(, 10. stack(, holding( clear( 1. 2. 3. 4. 5. 6. 7. 8. 9.pickup( ontable( clear( handempty Megjegyzés II. RSTRIPS STRIPS mindig talál megoldást, ha a m veleteknek van inverze Ellenpélda: Regiszter csere 39 1, 2 1 2 T 1 T 2 T 1 ( Töröljük a védett 1 részcélt elrontó tervet. Valósítsuk 2 -t a T 1 részterv utolsó m velete el tt legyen ennek a m veletnek a 2 egy újabb el feltétele feltéve, hogy 2 -t nem törli ez a m velet. 40 on(, 4. stack(, 3. pickup( 2. putdown( 1. unstack(, on(,,on(, on(, 8. stack(, 7. pickup( 6. putdown( 5. unstack(, on(, on(, stack(, 3. pickup( 2. putdown( 1. unstack(, holding( on(,,on(, clear( on(, stack(, pickup( putdown( on(, holding( 7

6. stack(, holding( 5. pickup( on(,,on(, on(, ontable( clear( handempty 1. unstack(, 2. putdown( holding( clear( on(, 4. stack(, 3. pickup( handempty El rehelyezés esetei Megjegyzés Ha a literált megvalósító terv véglegesen elrontja annak már megvalósított testvér-literálját. Ha a literált nem tudjuk megvalósítani. (kör, zsákutca Nem helyezhet el re, ha az a m velet, ami elé akarjuk helyezni, törli a literált. Visszalépéses keresésbe ágyazva z RSTRIPS talál megoldást, ha van megoldás? Regiszter-csere 44 3.2. Résztervek összefésülése III. DOMP Térjünk vissza az eredeti dekompozícióhoz, és a párhuzamosan el állított résztervek m veletei között jelöljünk ki - ha kell - végrehajtási sorrendet, sorrendi kötéseket. z így kapott tervet nem kell feltétlenül szekvenciába f zni. 1, 2 1 2 T 1 T 2 45 1. fázis: Résztervek el állítása eredeti dekompozícióval. 2. fázis: felesleges m veletek törlése, sorrendi megkötések felállítása a m veletekre, majd a résztervek összefésülése. 3. fázis: Ha az összefésülés eredménye egy ütközéses terv, akkor új m veletek beillesztésével az ütközéseket megszüntetjük. 46 on(,,on(, on(, =2,4,7,8 on(, =1 =2 D=5,6 clear( 2.stack(, 1.stack(, holding( 4.unstack(, clear( 3.pickup( =3 D=4,7,8 on(, clear( handempty D=2,7,8 =2 ontable( clear( handempty holding( =5 =2 D=3,5,6,7,8 =5,6 6.unstack(, 5.unstack(, D=4,5,6,7,8 =4,7,8 on(, clear( handempty D=1,6 on(, clear( handempty =1 8.unstack(, 7.unstack(, D=3,4,6,7,8 on(, clear( handempty on(, clear( handempty Sorrendi megkötéseket teszünk Természetes sorrend (1.fázis résztervei Mely m veletek nem követhetik egymást feltétel nélkül? z i m velet után nem hajtható végre a j, ha az i törli a j el feltétel-literáljainak egyikét. Ha i m velet után nem hajtható végre a j, akkor feltüntetjük, j mely el feltételei sérülnek. Keresünk olyan k m velete(ket, amely az i után és a j el tt végrehajtva el állítja a sérült feltételt. 48 8

1. részterv: 4 5 3 1 2. részterv: 4 1 3. részterv: 4 5 2 1,2: 2,3: 3,4: 4,5: 1 2 2 3 4 2 3 4? 5 1,5: 2,4: 3,5: 5 2 1 4? 2 5 2 3 4 5 2 3 1 handempty clear( z ütközéses terv preparálása cél állapot leírásából elindulva, a kijelölt m veletek mentén redukció segítségével kiszámoljuk a tervezett megoldás mentén szerepl állapotokat. z ütközést okozó sérült literálokat nem regrettáljuk. Ezután a állapot fel l elindulva kijelöljük az els ütközést feloldó részfeladatot (mi van és minek kéne lenni, megoldjuk, és megyünk tovább. 49 50 4 5 2 3 1 handempty clear( on(, on(, holding( clear( * ontable( clear( 1.stack(, 2.stack(, 5.unstack(, holding( clear( on(, on(, clear( handempty * ontable( 3.pickup( 4.unstack(, ontable( clear( handempty clear( on(, on(, clear( handempty on(, ontable( 51 4. m velet (unstack(, végrehajtása után holding(, clear(, on(,, ontable( El állítandó részcél: on(,, clear(, handempty*, ontable( Megoldás: putdown( clear(-vel szerencsénk van, mert a putdown( ezt is el állította. 52 IV. NONLIN Több-robotkaros kockavilág Párhuzamosítjuk a DOMP els két fázisát: Nem akarjuk a m veletek egyetlen szálra felf zni. mint egy m velet megjelenik, azonnal megmondjuk, hogy mely már meglev m veletekkel ütközhet, és ilyenkor sorrendi kötéseket teszünk, illetve jelöljük azokat az el feltétel literálokat, amelyeket a vizsgált két m velet végrehajtása között kell megvalósítani. Több-robotkaros kockavilágban a NONLIN párhuzamos terv el állítására is képes dott számú robotkar esetén ki kell egészíteni a handempty és a holding állításokat egy robotkarra utaló argumentummal. Tetsz leges számú robotkar esetén töröljük a handempty állítást. Ekkor a tervgenerálástól várjuk a szükséges robotkarok számának meghatározását is Egy robotkar esetén egy-szálú terv készül. 53 54 9

NONLIN algoritmusa ÉL Egy folyamot (irányított, körmentes!, egy nyel (cél és egy forrás ( csúcsot tartalmazó gráf, ahol minden csúcson keresztül vezet legalább egy ból célba tartó út épít algoritmus: Kétféle csúcs: m velet vagy literál Kétféle él: literál címkével vagy anélkül és célcsúcs egy-egy speciális m velet. Kezdetben: a -csúcsból vezet él a célcsúcsba. gráf mindig egy ütközés mentes tervet ábrázol, amely akkor teljes, ha nincs benne literál-csúcs. 55 on(, STRT on(, Gráf-egyszer sítés ÉL Él törlése: Dupla élt összevonunk. z (a,b él törölhet, ha van ezt az élt elkerül a b út a gráfban. törölt él címkéjét (ha van át kell írni az elkerül út utolsó élére. on(, on(, 57 STRT Literál-csúcs eliminálása 1. Ha nincs olyan m velet (nem lehet leszármazottja a literálnak, és nem lehet se a literál szül csúcsának amelyik a literált el állítja vagy van, de a m velet-csúcsból a literálba vezet úton van egy a literált kitörl másik m velet akkor egy olyan új m veletet illesztünk a hálóba, amelynek b vítési listáján szerepel a literál. a literál-csúcsot a m velet-csúccsal helyettesítjük a m veletb l kifutó él címkéje a literál lesz felvesszük új csúcsokként a m velet el feltételének literáljait, és bel lük élt húzunk a m velet-csúcshoz, és mindegyikhez élt húzunk a literál szül csúcsából. 59 ÉL on(, stack(, holding( clear( STRT on(, 10

ÉL on(, stack(, holding( pickup( clear( ontable( ontable( clear( on(, Literál-csúcs eliminálása 2. Ha a literált el állítja egy m velet (nem leszármazottja a literálnak, és nem se a literál szül csúcsának és a m veletcsúcsból a literálba vezet úton nincs a literált kitörl másik m velet, akkor a literál-csúcsot bel le kivezet éllel töröljük, a m veletb l élt húzunk a literál-csúcs szül jéhez az él címkéje a literál lesz STRT 62 on(, ÉL on(, ÉL stack(, on(, stack(, on(, holding( holding( clear( pickup( clear( pickup( clear( ontable( ontable( ontable( clear( clear( unstack(x, STRT on(, clear( x on(x, clear(x STRT on(, ÉL on(, ÉL stack(, on(, stack(, on(, holding( clear( holding( clear( pickup( pickup( ontable( clear( ontable( clear( unstack(, unstack(, on(, clear( STRT on(, clear( STRT 11

ÉL on(, stack(, holding( clear( pickup( ontable( clear( unstack(, on(, clear( STRT on(, stack(, clear( holding( Ütközés (sérül a konzisztencia Egy új m velet (amit most generáltuk vagy változó kötést kapott "ütközhet" már meglev régi m velettel: Nincs köztük sorrend, de közös er forrást használnak. Van köztük kijelölt sorrend és az egyik sérti a másikat (törlési, b vítési és el feltétel listák összevetése, azaz az el bb végrehajtandó m velet (véglegesen törli az utóbbi egyik el feltételét Súlyos sértésr l beszélünk, ha a törölt literált már korábban megvalósítottuk, azaz szerepel valamelyik él címkéjeként. 68 Ütközés feloldása Sorrendet (lehet leg sértésmentes vagy nem súlyosan sért sorrendet jelölünk ki a két m velet között Ha a sorrend sértésmentes, akkor egy irányított élt húzunk az el bb végrehajtandó m veletb l a másikba. Ügyeljünk arra, hogy ne alakuljon ki irányított kör. Ha a sorrend sért, mert az el bb végrehajtandó m velet (a sért véglegesen törli a kés bbi (a sértett L el feltételliterálját, akkor egy irányított élt húzunk sért m veletb l az L literál-csúcshoz. Ha ráadásul a sorrend súlyosan sért is, akkor a fentiek mellett töröljük a sértett m veletbe befutó élek címkéi közül az L literált. 69 ÉL on(, stack(, holding( clear( pickup( ontable( clear( unstack(, on(, clear( STRT on(, stack(, clear( holding( ÉL on(,on(, ÉL on(,on(, stack(, stack(, stack(, stack(, holding( clear( pickup( ontable( clear( clear( putdown( holding( holding( holding( clear( pickup( ontable( clear( clear( holding( putdown( pickup( holding( ontable( clear( unstack(, holding( unstack(, ontable( clear( on(, clear( on(, clear( STRT STRT 12

ÉL on(,on(, stack(, clear( stack(, holding( clear( clear( holding( pickup( putdown( pickup( ontable( clear( holding( ontable( clear( unstack(, 4. Logikai reprezentációk Logikai következtetéssel (rezolúció, szabály alapú következtetés generáljunk tervet! logikai reprezentáció nem is olyan egyszer. on(, clear( STRT 3 robotkar szükséges 74 4.1. Naiv reprezentáció Kézenfekv logikai reprezentáció: Tény: kezd állapot leírása Szabályok: m veletekb l származó P F F állítások él: célállapot leírása izonyítandó: kezd állapot, m veleti szabályok célállapot Kezd állapot: 1. handempty, clear(, clear(, ontable(, ontable( élállapot: on(, Szabályok: x y (holding(x clear(y on(x,y clear(x handempty x y (on(x,y clear(x handempty holding(x clear(y x (holding(x ontable(x clear(x handempty x (ontable(x clear(x handempty holding(x 75 76 Visszafelé haladó szabályalapú reprezentáció Tény: handempty, clear(, clear(, ontable(,ontable( Szabályok: x (ontable(x clear(x handempty holding(x x y (holding(x clear(y on(x,y x y (holding(x clear(y clear(x x y (holding(x clear(y handempty él: on(, 77 Szabályalapú következtetés on(, { x 1 /, y 1 / } on(x 1,y 1 holding( { x 2 /} holding(x 2 stack(, clear( pickup( ontable( clear( handempty ontable( clear( handempty clear( 78 13

axiómák: Klóz formára hozás handempty, clear(, clear(, ontable(,ontable( ontable(x 1 clear(x 1 handempty holding(x 1 holding(x 2 clear(y 2 on(x 2,y 2 holding(x 3 clear(y 3 clear(x 3 holding(x 4 clear(y 4 handempty él: on(, 79 on(, holding( clear( holding( {x 2 /,y 2 /} {x 1 /} holding(x 2 clear(y 2 on(x 2,y 2 /stack(, clear( ontable( clear( handempty Rezolúció ontable(x 1 clear(x 1 handempty holding(x 1 /pickup( handempty clear( ontable( Kezd állapot: 2. handempty, clear(, on(,, ontable( élállapot: on(, Szabályok: x y (holding(x clear(y on(x,y clear(x handempty x y (on(x,y clear(x handempty holding(x clear(y x (holding(x ontable(x clear(x handempty x (ontable(x clear(x handempty holding(x Visszafelé haladó szabályalapú reprezentáció Tény: handempty, clear(, on(,, ontable( Szabályok: x (holding(x ontable(x clear(x handempty x y (on(x,y clear(x handempty clear(y x (ontable(x clear(x handempty holding(x él: on(, 81 82 on(, { x 1 /, y 1 / } on(x 1,y 1 holding( { x 2 /} holding(x 2 stack(, clear( pickup( ontable( clear( handempty { y 3 /} ontable( clear(y 3 handempty unstack(x 3, on(x 3, clear(x 3 handempty { x 3 /} { x 3 /} on(, clear( handempty clear( xiómák: Klóz formára hozás handempty, clear(, on(,, ontable( holding(x 1 clear(y 1 on(x 1,y 1 on (x 3,y 3 clear(x 3 handempty clear(y 3 ontable(x 2 clear(x 2 handempty holding(x 2 él: on(, 84 14

on(, holding( clear( holding( {x 1 /,y 1 /} {x 2 /} ontable( clear( handempty clear( {y 3 /} on (x 3,y 3 clear(x 3 handempty holding(x 1 clear(y 1 on(x 1,y 1 /stack(, clear( ontable(x 2 clear(x 2 handempty holding(x 2 /pickup( handempty ontable( on (x 3,y 3 clear(x 3 handempty clear(y 3 /unstack(x 3, on (, clear(, handempty Problémák Nem generál tervet a válaszadási eljárás: z érvényesé kiegészített on(, on(, célklózban nem tud megjelenni a válasz. bból, hogy mely m velet axiómájával rezolváltunk, még nem nem olvasható ki az alkalmazott m veletek sorrendje. z üres klóz levezetéséhez nem használtuk a putdown m velet axiómáit, pedig arra biztos szükség van. 86 4.2. Tervgenerálás Logikai reprezentáció készítése állapottérreprezentációból: szituáció kalkulus. Ez nem azonos a terv létezésének eldöntésénél használt reprezentációval. Predikátum szimbólumok P(x állítást egy állapot jelzésére alkalmas változóval kell kiegészíteni. P(x,s predikátum így mindig az adott s állapotra vonatkozik majd. kocka-világ probléma predikátumai: ontable(x,s, on(x,y,s, clear(x,s, holding(x,s, handempty(s Például az s 0 kezd állapotban ontable(,s 0, ontable(,s 0, clear(,s 0, clear(,s 0, handempty(s 0 87 88 Függvény szimbólumok z F(x m velet egy állapot állapot operátor, amit paraméterek állapot állapot függvényszimbólumnak tekinthetünk. z F(x(s vagy röviden F(x,s megadja azt az állapotot amelyikbe az s-b l az F(x m velet végrehajtásával jutunk. kocka-világ probléma függvényei: pickup(x,s, putdown(x,s, stack(x,y,s, unstack(x,y,s Egy terv ábrázolása: Pl: stack(,,pickup(,s 0 89 lternatív megoldás az állapot átmenetek jelölésére z F(x m veletek függvényszimbólumai mellett bevezetjük a do:m velet állapot állapot operátort, amit szintén függvényszimbólumnak tekintünk. do(f(x,s megadja azt az állapotot amelyikbe az s-b l az F(x m velet végrehajtásával jutunk. Egy terv ábrázolása: Pl: do(stack(,,do(pickup(,s 0 90 15

Tény-állítások Hatás-szabályok Kezd állás predikátumai az s 0 kezd állapotban Pl: ontable(,s 0, ontable(,s 0, clear(,s 0, clear(,s 0, handempty(s 0 Egyéb megkötések, pickup(x m velet a P listáján szerepl állítások teljesülése esetén hajtható végre, és végrehajtása után teljesülni fognak az listáján szerepl állítások. x s ontable(x,s, clear(x,s, handempty(s holding(x, pickup(x,s Általában az F(x(P,,D m velet hatás-szabálya a x s P F (x,s F (x, F(x,s 91 92 Keret-probléma Keret-probléma megoldása Tegyük fel ontable(,s, ontable(,s, clear(,s, clear(,s, handempty(s. lkalmazzuk a pickup( m veletet az s állapotban. Így a pickup(,s állapotba jutunk. m velet hatás-szabályából kiolvasható, hogy az új állapotban: holding(, pickup(,s De hogyan adjuk meg azt, hogy az új állapotban ontable(, pickup(,s, és a clear(, pickup(,s állítás is teljesül? Vegyük észre, hogy ezek éppen azok, amelyek nem szerepeltek a pickup( D listáján. 93 Keret szabályokkal: Explicit módon leírjuk minden m veletre azt, hogy azok végrehajtásakor mely állítások mely állítások maradnak meg az új állapotban Pl: ontable(,s ontable(, pickup(,s clear(, s clear(, pickup(,s Vegyük észre, hogy ezek éppen azok az állítások, amelyek nem szerepeltek a m velet D listáján. Default szabályokkal: Q(y,s : Q(y D F(x Q(y, F(x, s 94 Keret-szabályok pickup(x m velet a D listáján nem szerepl állítások a clear(u,s (ahol u x, az ontable(u,s (ahol u x, és az on(u,v,s. Ezért x u s clear(u,s, u x clear(u,pickup(x,s x u s ontable(u,s, u x ontable(u,pickup(x,s x u v s on(u,v,s on(u,v,pickup(x,s Általában az F(x(P,,D m velet keret-szabálya az L(u literálra : x u s L(u,s L(u D F (x L(u, F(x,s Összefoglalva Tények kezd állapot egyéb állítások Szabályok: hatás-szabályok: s x P F (x,s F (x, F(x,s keret-szabályok: s x u L(u,s L(u D F (x L(u,F(x,s él: t cél(t 95 96 16

Rezolúció Tények: ontable(,s 0, ontable(,s 0, clear(,s 0, clear(,s 0, handempty(s 0,, Hatás-szabályok: (most csak kett x s ontable(x,s, clear(x,s, handempty(s holding(x, pickup(x,s x y s holding(x,s, clear(y,s on(x,y,stack(x,y,s, clear(y, stack(x,y,s, handempty(stack(x,y,s Keret-szabályok: (most csak egy x u s clear(u,s, u x clear(u,pickup(x,s él: t on(,,t ontable(,s 0, ontable(,s 0, clear(,s 0, clear(,s 0, handempty(s 0,, ontable(x,s clear(x,s handempty(s holding(x, pickup(x,s holding(x,s clear(y,s on(x,y,stack(x,y,s holding(x,s clear(y,s clear(y, stack(x,y,s holding(x,s clear(y,s handempty(stack(x,y,s clear(u,s u=x clear(u,pickup(x,s on(,,t 97 98 on(,, t {x 1 /, y 1 /, t/ stack(,,s 1 } holding(x 1,s 1 clear(y 1,s 1 on(x 1,y 1,stack(x 1, y 1,s 1 holding(,s 1 clear(,s 1 ontable(x 2,s 2 clear(x 2,s 2 handempty(s 2 holding(x 2, pickup(x 2,s 2 {x 2 /, s 1 / pickup(,s 2 } clear(,pickup(,s 2 ontable(,s 2 clear(,s 2 handempty(s 2 {u 3 /, x 3 /, s 3 /s 2 } clear(,s 2 = ontable(,s 2 clear(,s 2 handempty(s 2 clear(u 3,s 3 u 3 =x 3 clear(u 3,pickup(x 3,s 3 on(,, t on(,, t {x 1 /, y 1 /, t/ stack(,,s 1 } on(,,stack(,,s 1 holding(,s 1 clear(,s 1 {x 2 /, s 1 / pickup(,s 2 } on(,,stack(,, clear(,pickup(,s 2 ontable(,s 2 pickup(,s 2 clear(,s 2 handempty(s 2 on(,,stack(,, pickup(,s 2 {u 3 /, x 3 /, s 3 /s 2 } clear(,s 2 = ontable(,s 2 clear(,s 2 handempty(s 2 {s 2 /s 0 } tényklózok on(,,stack(,, pickup(,s 0 {s 2 /s 0 } Szabályalapú következtetés Megjegyzés on(,,t { x 1 /, y 1 /, t/stack(,,s 1 } on(x 1, y 1, stack(x 1, y 1, s 1 holding(, s 1 clear(, s 1 { x 2 /, s 1 / pickup(, s 2 } {u 2 /, s 1 / pickup(, s 2 } holding(x 2, pickup(x 2, s 2 clear(u 2, pickup(, s 2 Jól jönne egy kis heurisztika. Egy adott szinten ugyanazon m velet szabályait illesszük Másik állapottér-reprezentáció segíthet (Green. M veleti (hatás és keret szabályok száma általában csökkenthet Kowalski módszerével. ontable(, s 2 clear(, s 2 handempty(s 2 clear(, s 2 {s 2 /s 0 } {s 2 /s 0 } {s 2 /s 0 } {s 2 /s 0 } {s 2 /s 0 } ontable(, s 0 clear(, s 0 handempty(s 0 clear(, s 0 102 17

Kowalski reprezentációja Ötlet Túl sok szabály van, mert egy hatás-szabály több W L szabályra esik szét egy m veletnek sok keret-szabálya van F L s x u (L(u,s L(u D F (x L(u,F(x,s (másodrend logikával kellene dolgoznunk Univerzum kockák, állapotok, állítások, m veletek Predikátum szimbólumok: HOLD(állítás,állapot PT(m velet,állapot POSS(állapot Függvény szimbólum: do(m velet,állapot 103 104 Tényállítás Szabályok Hatás-szabályok: HOLD(a,do(F(x,s ha a F (x HOLD(holding(x,do(pickup(x,s HOLD(on(x,y,do(stack(x,y,s HOLD(clear(x,do(stack(x,y,s... Kezd állás: HOLD(kezdet,s 0 HOLD(ontable(,s 0, kezd állapot lehetséges: POSS(s 0 Speciális nem-egyenl ségek El feltételek: HOLD(P F (x,s PT(F(x,s s x y (HOLD(holding(x,s HOLD(clear(y,s PT(stack(x,y,s Keret-szabályok: HOLD(a,s a D F (x HOLD(a,do(F(x,s s a x y (HOLD(a,s a holding(x a clear(y HOLD(a,do(stack(x,y,s Lépés-szabály: POSS(s PT(m,s POSS(do(m,s 105 106 élállítás célállítás fenn áll a célállapotban és a célállapot lehetséges t (POSS(t HOLD(cél,t : t (POSS(t HOLD(on(,,t 107 18