AI plánování
Transkript
AI plánování Instalace BlackBox Nejprve je potřeba si nainstalovat BlackBox planovač. Instalaci možné nalézt na stránkách cvičení. Obsah archivu (Windows dva soubory) je nutné rozbalit do adresáře a jeho cestu přidat do systémové proměnné PATH (Počítač >Vlastnosti >Upřesnit nastavení systému >Proměnné prostředí >> PATH > Upravit > např. „…;D:\blackbox“). Pro Unix je nejlépe si stáhnout a provést instalaci dle WWW stranky (přes Google „BlackBox planner“ ; https://www.cs.rochester.edu/~kautz/satplan/blackbox/ ). Jednoduchá úloha Tvoří se 2 soubory: první je popis domény plánovací úlohy, druhý je popis zadání plánovací úlohy. Psaní PDDL souboru je možné provádět v jakémkoliv textově orientovaném editoru, nejlépe však v editoru, který umí kontrolovat rozsah kulatých závorek. Je doporučené spouštět si BlackBox i na částečných prototypech souboru pro kontrolu syntaxe. Typicky se získá jenom zpráva o chybné řádce. Obvyklými chybami jsou množná a jednoduchá čísla klíčových slov (např. precondition, ale predicates), dále překlepy v názvech proměnných, nelícující závorky, atd. PDDL je odvozené z jazyku LISP, takže i psaní predikátů a operátorů tomu odpovídá. Zbytek řádku po středníku je komentář. Je dobré postupovat dle přednášek a příslušné části o PDDL. Úloha se spouští příkazem (pravděpodobně nebude fungovat zkopírování a vložení kvůli kódování – je třeba příkaz přepsat): >blackbox.exe –o simpleDomain.pddl –f simpleProblem1.pddl V případě nejasností ohledně plánovacího procesu je možné si někdy trochu pomocí přepínače „-i 1“ nebo „-i 2“. První jednoduchá doména je triviální: převede jeden literál ve druhý pomocí jedné akce. V některých verzích BlackBox plánovače se automaticky nespouští solver Chaff, který by měl být nejlepší. Spuštění se zajistí přidáním parametru „-solver chaff“. Specifikace domény plánovací úlohy (např. viz soubor simpleDomain.pddl): 1. Specifikace jména domény a. (define (domain SIMPLE) ……) 2. Specifikace požadavků na zápis PDDL souboru (existují modifikace jako ADL, povolení různých rozšíření, atd.). My budeme preferovat čistý zápis ve STRIPS notaci (klasická notace) a použití typů: a. (:requirements :strips :typing) 3. Vyjmenování typů proměnných a. (:types typeX) 4. Vyjmenování predikátů a jejich proměnných, jména proměnných mají prefix ?, typ je za pomlčkou –. Například následující jsou čtyři predikáty, první dva s jednou proměnnou, další dva predC a predD nemají proměnné žádné. a. (:predicates b. (predA ?x - typeX) c. (predB ?y - typeX) d. (predC) e. (predD) f. ) 5. Zadání operátoru. V parametrech je nutné uvést všechny proměnné a jejich typy, které se vyskytují ve vstupních podmínkách a efektech daného operátoru. Instance operátoru (tj. s konstantami či objekty dosazenými za proměnné se pak stávají podle současné terminologie akcemi. Akce actionK nemá žádné parametry a umí převést stav s platným literálem predC na stav platným literálem predD. a. (:action actionK b. :parameters () c. :precondition (predC) d. :effect (and (predD)) e. ) 6. Akce actionL má dva parametry ?x a ?y. Reprezentuje jakoukoliv akci, která provede přechod ze stavu, ve kterém platí predikát predA(?x) pro nějakou instanci proměnné ?x do stavu, kde již tento predikát neplatí, naopak začne platit predB(?y) pro nějakou vhodnout instanci proměnné ?y. 7. Uzavřením závorky domény je možné ukončit editování souboru domény plánovací úlohy. Specifikace zadání jednoduché plánovací domény (viz. např. simpleProblem1.pddl): Opět je vhodné postupovat dle přednášek, sekce s PDDL . Zadání jednoduchého problému, v němž se nevyskytují objekty by mohlo být následující: 1. Zadání názvu problému a. (define (problem SIMPLE1) ……..) 2. Odkaz na doménu plánovací úlohy, tj. které predikáty, operátory, atd. se mohou použít. a. (:domain SIMPLE) 3. Specifikace, které literály platí v počátečním stavu (např. platí pouze predC, který je bez parametrů) a. (:init (predC)) 4. Specifikace množiny cílových stavů vyjmenováním literálů, které v nich musí platit/neplatit. V našem jednoduchém příkladě by v cílovém stavu mělo platit predD: a. (:goal (predD)) 5. Uzavřít specifikaci problému závorkou a spusti plánování. Ve výstupu plánovače by se měl objevit následující plán: a. Begin plan b. 1 (actionk) c. End plan SimpleProblem2.pddl obsahuje zadání plánovací úlohy obsahující objekty a použití literálů s odkazy na tyto objekty. SimpleProblem3.pddl obsahuje zadání plánovací úlohy, jejíž řešení požaduje použití všech tří operátorů domény. Všimněte si použití proměnné tt, která není referencována v zadání plánovacího problému, ale která je potřeba k tomu, aby se řešení vůbec našlo (actionL potřebuje dvě různé proměnné). Problém opice Problém: je opice či několik opic, které chtějí utrhnout ovoce visící u stropu. Přímo na něj nedosáhnou, takže musí přijít na to, že přistrčí bednu pod ovoce, vylezou na bednu a ovoce utrhnou. Opice, ovoce i bedny se nachází v různých místech. S bednami je proto rovněž nutné hýbat. Zadání domény: 1. Zavedou se typy pro všechny objekty, tj. opice, bedny, místa, ovoce. 2. Predikáty: zřejmě je potřeba rozlišit, zda je bedna prázdná, zda na bedně je opice, zda je opice na zemi, kde je opice, kde je bedna, kde je ovoce, zda opice má dané ovoce. 3. Operátor GOTO dovoluje opici se přesouvat s místa na místo 4. Operátor PUSH umožňuje opici přesunout bednu z místa na jiné místo. Je možné přesouvat pouze bednu, na níž nesedí žádná jiná opice. 5. Pomocí operátoru CLIMB se opice přemístí z podlahy na bednu. Jak opice, tak bedna se musí nacházet ve stejném místě. 6. Operátor DESCEND umožňuje opici slézt z bedny na podlahu. 7. Operátor GRAB-FRUIT umožňuje opici na bedně utrhnout ovoce, pokud toto ovoce visí nad bednou. Specifikace zadání plánovací úlohy: Jsou k dispozici tři zadání. 1. monkeyProblem1.pddl je klasické jednoduché zadání s jednou opicí, jednou krabicí a jedním ovocem v různých místech. Úkolem opice je získat banány. Zakomentovaný cíl je možné použít jako částečný cíl při konstrukci domény a její kontrole, např. že opice umí vylézt na bednu. 2. monkeyProblem2.pddl je jednoduché rozšíření předchozího zadání, kdy opice musí oběhnout místa dvě, aby se dostala nejenom k banánům, ale ke kiwi. 3. monkeyProblem3.pddl je ukázkou toho, že pomocí domény lze nalézt řešení úloh, kdy několik opic sbírá různé ovoce, některé i více druhů a přitom musí sdílet jednu bednu. Vzhledem k tomu, že se hledá plán s nejmenším počtem kroků, je zajímavé pozorovat součinnost opic při plnění plánu. Stačí však zapomenout specifikovat, že nějaká opice je v počátečním stavu na podlaze, či ji chybně pojmenovat a plán se nenajde.
Podobné dokumenty
Přednáška 1 - Security@FIT
• Použitá šifra je rozpoznána jako PURPLE, jedná se o nejkvalitnější
japonskou šifru, která byla ale oddělením OP-20-G zlomena a byly
vytvořeny kopie šifrovacích rotorových strojů.
• Francis M. Bro...
KRAISKA HYGIENICKA STANICE se sidlem v ]IHOMOMVSKEHO
kraF kterajsou zasa:€nyn.d mlnim
ho taku A aJednakpripravak vyrvoretri
h ukovev61vyprodars
matnd vy!:trvgrafckych nfomaancfr systamech
c.y
rcnro
sy$6m
by vwinurhk aby s€
lcrs)
mohrrychreprzpisobr k...
Technická informace
„křížek“ (#) ústředen řady Galaxy Classic softwarová verze V4
Tabulky na následujících stranách detailně popisují speciální vlastnosti a funkce, které lze v různých menu
zpřístupnit použitím výše u...
Moudrosti, V.1
The most important thing in life is to stop saying „I wish” and start saying „I will.” Consider nothing impossible, then treat
possibilities as probabilities.
David Copperfield, kouzelník
Jeden far...
bakalářská práce esop minimalizace logických funkcí
Prvním a nejstarším přístupem k optimalizaci je zjednodušování výrazu pomocí
přepisovacích pravidel. Tento přístup má velké výhody ve své jednoduchosti na pochopení a
snadnou modifikaci a optimaliz...
JourneyMan Gladiator X-8
manuál pozorně. Informace obsažené v tomto manuálu, výstražné nálepky a ostatní prvky, dodávané s ATV, Vám
pomohou porozumět bezpečnému užívání a údržbě ATV. Ujistěte se, že všemu rozumíte a postup...