Tervkészítés PDDL alapon Konzulens: Kovács Dániel László Intelligens rendszerek tanszék Budapest Műszaki és Gazdaságtudományi egyetem Villamosmérnöki és Informatikai kar Méréstechnika és Információs Rendszerek Tanszék Készítette: Kovács Dávid Balázs Intelligens rendszerek Bsc ágazat
Tartalom Bevezetés Alkalmazási területek Tervkészítés lényege Tervkészítési algoritmusok PDDL (Planning Domain Definition Language) Saját tervkészítő megvalósítás Demonstráció Összefoglalás
Motiváció Sussman anomália Cél Állapot Kiinduló állapot Tervkészítés ?
Motiváció Sussman anomália
Alkalmazási területek Pakolási problémák Marsjáró Hadműveletek tervezése Ütemezési feladatok (pl. gyártósorok ütemezése) AUV (Autonom Underwater Vehicle) Számítógépes játékok
Állapottérben start cél on c a on a asztal Állapot Cselekvés on c asztal Tervtérben Részleges tervek Tervmódosító cselekvés move c asztal move b c move c asztal move b c move c asztal move b c move a b Cél - Megoldás Keresés start cél Állapot Cselekvés Tervkészítés lényege
Tervkészítési algoritmusok (A*) RRT(WARPLAN), FRRT(pl. WARPLAN-C), HDRRT (pl. UCPOP, SHOP2) SAT (pl. SATPLAN, CO-PLAN, LPG) Modellellenőrzéses (pl. MBP) CTL (pl. FF Planner) Graphplan (pl. LPGP)
PDDL (Planning Domain Definition Language) Probléma leírás (define (problem sussman) (:domain sussman) (:objects a b c) (:init (on c table) (on a table) (on b table)) (:goal (and (on a b) (on b c) (on c table)))) Tárgyterület leírás ((define (domain sussman) (:requirements :strips :equality) (:constants table) (:predicates (on ?x ?y)) (:action move :parameters (?cube ?from ?to) :precondition (and (on ?cube ?from) (not (= ?from ?to)) (not (exists ?y) (on ?y ?cube) (or (= ?to table) (not (exists ?y) (on ?y ?to))) :effect (and (on ?cube ?to) (not (on ?cube ?from)))))
Megvalósítás (1/3): reprezentáció Támogatott elemek Strips Egyenlőség Negált kifejezések Típusok Feltételes következmények Tervezett elemek Diszjuntív formulák Egzisztenciális kvantorok Univerzális kvantorok Numerikus formulák (pl. hasznosság) Folytonos cselekvések
Megvalósítás (2/3): algoritmus on(c a) Kezdeti feltételek on(c asztal) on(b asztal) not on (c asztal) not on (a c) Generált cselekvés halmaz move (c asztal) move (b c) Graphplan algoritmus – Tervkészítési gráf on (c asztal) not on (c a) on (b c) not on (b asztal) Cselekvések következményei S0 A0S1 A1
Megvalósítás (3/3): Szoftver Implementáció részletei: –Haskell (funkcionális nyelv) –GHC (Glasgow Haskell Compiler) –Interpreter vagy natív bájtkód Parser Gráf építő Terv kereső Blokkséma:
Teszteredmények Tapasztalatok: – Cselekvések paramétereinek száma, objektumok száma nagyon növeli a komplexitást (lusta kiértékelés problémája) –Nagy gráfokban keresés jelentősen növeli a futási időt 3 kocka5 kocka7 kocka Futási idő0.4 sec perc~ 10 perc Memória használat 65 kb70kb100kb
Demonstráció Probléma: –Sussmann anomália: Megoldás:
Összefoglalás és kitekintés Irodalomkutatás: –Tervkészítés alapjai –Graphplan –PDDL Továbblépési lehetőségek: –Optimalizálás (párhuzamosítás) –Problémaleírónyelv kiterjesztése Numerikus formulák Bizonytalan cselekvések –Tervkészítés realisztikusabb problémákon
Köszönöm a figyelmet! Kérdések?