AI plánování

Transkript

AI plánování
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

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...

Více

KRAISKA HYGIENICKA STANICE se sidlem v ]IHOMOMVSKEHO

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...

Více

Technická informace

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...

Více

Moudrosti, V.1

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...

Více

bakalářská práce esop minimalizace logických funkcí

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...

Více

JourneyMan Gladiator X-8

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...

Více

BES M08EB-POC40F-S49G BES000L

BES M08EB-POC40F-S49G BES000L Skutečná spínací vzdálenost Sr Typ konektoru Utahovací moment

Více