Plánováníá a rozvrhování

Podobné dokumenty
Plánováníá a rozvrhování

Plánováníá a rozvrhování. časem

Plánování: reprezentace problému

Agent pracující v částečně pozorovatelném prostředí udržuje na základě senzorického modelu odhaduje, jak se svět může vyvíjet.

Plánování v prostoru plánů

Plánování se stavovým prostorem

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

Í ž ž Ž ž Ž Ž ž Š ď Ž Í ť ž Í Ž Ž Ž Í Ý Š Í Š ž Ž Š ž ž ť Ž Š

NP-úplnost problému SAT

u odpovědí typu A, B, C, D, E: Obsah: jako 0) CLP Constraint Logic Programming

Rozhodovací procedury a verifikace Pavel Surynek, KTIML

Hranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek

ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML

Paralelní plánování jako problém splňování podmínek

Znalosti budeme nejčastěji vyjadřovat v predikátové logice prvního řádu. Metody:

Výroková a predikátová logika - II

Výroková a predikátová logika - V

Plánováníá a rozvrhování

Výroková a predikátová logika - XIII

Umělá inteligence I. Roman Barták, KTIML.

ů ř Ž ý ý ř ď ř

ř ř ř ú ň Ž Í ř ř ú ř ř ř ř ř ř ď Í ř ř ř ř ř ď ř ř Í ř ř ř ř ú ř Ž ř ú

Výroková a predikátová logika - II

Ř Á

Výroková a predikátová logika - XII

ď é Í Í é é é Ž é Ž é Ž é Ž É é é

Výroková a predikátová logika - III

ů č č č č úč č ž ň ž č ž ž š ž č ř č ů ř ř č ó é Á ř é š Á

E M B L E M A T I C K É M Y S T É R I U M Z A H R A D Y

Teorie rozhodování (decision theory)

Ť ŤÍ ň ň č Ó Í č č Ť Ť Ť ň ň ť Ž ň ť ň Í ů ň ň ň č ť Í ŤÍ č Ť Ť č Í Ť č č Ť Ť Ď Ť č Ť č č Ť č Ť č ť Ť Ž Ť č Í Ž č ú Ť č Ý Ď č Ť

Č Ž ú ú ú Š ú Š ú ú ó ú Č ú ú ú Č Ů ú ň ú ú Ě ú ú

ú ů Ý ůš š ů š ů Ý Ý ů

š š Č Í š ť ň č č š č ť č č Ě č š š č č š ň Ý ň č č š č Í č Ě č ň č ň š š Í Ý ď ď ň Í Í č č č č Í ť Í č č ň ň

Programování. s omezujícími podmínkami. Roman Barták. rová hranová konzistence

ú ú ť ú ú ú ú ú ú ú ú ú ť ť ú ú ť ú ú ú ť ó ú ť Ý ú ú ú ú ú ú ú ó

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Optimalizace & soft omezení: algoritmy

Í ž Í Ý Ž Ž Č Ú Í Í Í Ž Ž Ď Ž Ť ž Ť

Třídy složitosti P a NP, NP-úplnost

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Úvod do logiky (VL): 5. Odvození výrokových spojek z jiných

Ž Ý Ř Ě Ž ď ď Ž

Á Č Ě Í Í ů š č ř Í ř ž ů ý ř ř ů č ř ž ř č ř ž ř č ú ř ř ž ř ý ý ů ý č č č ř ů ř š ř ů ř ž č ů ď ý ů ý ř ý ř Í ť č ř Ž č š Š ž č ř úč ř č ž Ť č ú ř ž

Č Ý Ý Ě Ď Ý ÉŘ Á ó ě ě ě ě ě Á ě ě ě ě ě ě ě ě

ú ú Ž Č Č Č Ť ť

Obsah: CLP Constraint Logic Programming. u odpovědí typu A, B, C, D, E: jako 0)

ň ú Ú ů é é ň ů ž ů ů ů ů é é é é ú ň é ú ú ů é é ů ů Č é ň ú ú ů é é ů Ť ň é ů ů ú ň é ú ť ť é é é ů é é ů é é ť ň ú ú ů é é ů ů ú é ů é ů é ů ť ů ú

1. D Y N A M I C K É DAT O V É STRUKTUR Y

Výroková a predikátová logika - III

Č ů ť ú ů ť ť ú ů ů ť ť ň ů Ť ť ů ó Č ú ť ů ů ů ú ó ó ť ů ů ú ú ú Á ú ť ť ó ň ů ů ň ť Ů Ů ť ň ů ů

Í ÁŇ Ý ÚŘ Í Ů É Č Ú ň ú Ú ů Ž Í ň ů Ž Ž ů Ž ó ů ů ú Ž Ž ť ť ť Ž ů ů Ž ů ů Ž

ň č ů ý ů ů ů ý ť č č ý č č ý ý ý č ú ý ů ť č č Ú ů Ý ů ů ú ý ů ů úč Ú č ů ů úč ý ů ů č ů úč Í ů Í Í ý č úč ů č ň ú ú ů ú č ů č ň ú ú ů ú ú ý ů ň ý ú

Woody a Steina Vasulkovi

ů ů ď

11 VYPOČITATELNOST A VÝPOČTOVÁ SLOŽITOST

Í ÁŇ Ý ÚŘ ú ů Č Ř č ž č ů ú ů Ú č č ů Ť č Č č ů č Č ů Č č úč Ž č Ž Ú Ž ž Ť č ů ů Ž úč ů úč Ž ů ů č ú ú ů Č č Ú Ž ů Ť č ů ú ú ú ú Č Č č Ú

Obyčejnými diferenciálními rovnicemi (ODR) budeme nazývat rovnice, ve kterých

Výroková a predikátová logika - X

IB112 Základy matematiky

Ý é ě é é Ý é Ú é é Ý Š ě é Č ě Ý ě ž é é é Í é Č Š Ž é ž é ž é é ě é é ž é ě Ž é é é é ě Á ÁŘ

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

Ř Í Ě ŘÍ Í Ě É Ř Ť ž é ě ž ě Í é ě ž ú ě ě ě é é é ž é ě é é Ú ě é ú ě ž ě ě é ú ě ú ž é ž Ž é Ž Ž ť ž ú é ě Ž ě ž Ť ž ě ž ž ě ě é ě é Ž é ě é é ě é é

V B r n ě, 2 4. b ř e z n a

Ý Á Š Ť ě ř ě ě ě ř ě ř ř ě ě ř ě ů ř ř ě ž ř ě Í ě ě ě ě ů ě ě ř ů ěž ř ě ů ř ě ů ž ě ň ú ú ů ž ů Ř ř ž ů ě ř ř ěř ů ěř ů ů ů ě ů ě ů ž ě ř ř ě ř ě ě

Algoritmizace a programování

š É ú Á Á ž ó ú Ť Á

Metody návrhu algoritmů, příklady. IB111 Programování a algoritmizace

é ř š š ř Ú Č ěř ů ě ěř é šř ě ř š š ř Ú Č ěř ů ě ěř é šř ě š š ř Ú ěř ů ě ěř ř š š ř Ú

Co je obsahem? O čem bude přednáška? plánování a rozvrhování. ono se to někde používá? aplikace? řešící algoritmy.

ď š š š š ň ť Í Í š Í š š Č ť š š š ň š Ů š š šť š š

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů

Matematická logika. Rostislav Horčík. horcik

Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31

Domény. Petr Štěpánek. S využitím materialu Krysztofa R. Apta

í Š ó č É Í é á ď Ď é Š Á ó ó É Ó

ě

Ú é ů é Ú é Ž é é é ě Ú ž é ě ž Ž ě é ě ě ě ě é ě Ú ě ž é ě ě Ž ě ě ě Š ě ó ě ě Í é Ž é Ž Ž ě ě ě ě ě Š ůž ě ěž Ž Ž ě Ž Ž Ž ě ň ň ě ó é Ž ě

Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Umělá inteligence I. Roman Barták, KTIML.

č č č Ó ť č č č č č Í č č č Ť č č Ó č č č č č Ť č č Ť Á ť Ť č ť č Ž č ť ť Í ť Ó Ť

teorie logických spojek chápaných jako pravdivostní funkce

Ú é š é é š ú ů š Í Ú ú éú ú ú ú ú é é

ě ě é é Ú Ů ě ů ě ú Í Č ě ú é ň é Ú ě Ý é ů ě ě ě š ú ě ě š ů Ú ÚČ ě ň ú ž ú š ě é Ž é ÚČ é é é Š ě Ž ÚČ ň ÚČ ó ú ú ú Ž ú Č Ž Ů ú š ě Ý ě ě ž ú ě é š

ť

ď

Daňový systém jako katalyzátor prorodinné politiky

é š ž ú é ď É ř ž ú ů é š ž ú ú š ř š ž ř ů š ů ř š é é ž š ú ž ř ů é ů ř ú ň é š ř ř é ú Š Š ř ř š š é é é ú é š ž ů š ř ř ž ř ř é ř ř é é š ž ř ž ž

ý ď ř š ý ň Ú ž Ž ý ž ú ýš ú ú ů Ýš ř ý ý ž řš ý ý ž ř š Í Í Í ý ý ž ú ú ř ž ó ú ř š ř ý ř ž ů ý ý ř ýš ř ž ů ž řš ž šť ř ý ž ř ř ž ú ů ž ď ř š ž ž ž

Univerzita Karlova v Praze Právnická fakulta DIPLOMOVÁ PRÁCE Filip Kračman

Ě Í Č ŘÍ Ů Ý Ů Ú ů ů ú ů ů Ň É ŘÍ ŘÍ Ř É ÝĎ Í Á Ú Ě Ů Ž Á Í ú ů ú ů ú ž ú ú ú Č Č ž ú ú ž

Výroková a predikátová logika - II

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest

ú ě ě ě ú ú ě ě š ě ě ě ě ě ě ě ú ě ů ů ů ě ě ů ů ů

ď ť Ý ť Š

č Ř Ě ů č ě ě ě ě č š ě Ž č úč úč ě č ú Š č ě š č Ž č Š ě š č ů úč Í Š ě ě Í Ú č č ě ú č č ě Á Ř Ř Ž Ý Ř Ř Í Ú Ž Ý č Ř Í Ř É ÍÚ Ř Ř Ř š ě č č Ř š ě š

Ý ň č Ť š ň Ť š ň č š š Ť š Ť čč Ť š Í č č Ť š č Ť Ť š š š č č ň š Ó č č š š č š š Í š Ť Í š Ť č Í š Ť š š Ť Ť š š Ť Ť Ť Ť Ť č š Ď č č š Ť Í š č č Ť č

ř ř ř Č Ů ř úř ů ú ů ř ž úř ž ř š ř Č Ý řž š ů ů ů ú ý ýš ř ž ý ý ý ž ž ú ů ř ř ú ů ýš ů ý ž š ň ú š

ř ř ř ř ď ú ř ď ů ř ř ř ú ů ř ů ú ř ř ř ř ř ř ř ů šť ů ř ů ů š Á ř š ř ů ř ř úř ř ř ú ů š ř

Transkript:

Plánováníá a rozvrhování Roman Barták, KTIML roman.bartak@mff.cuni.cz cz http://ktiml.mff.cuni.cz/~bartak Na úvod Dosud prezentované plánovací systémy používaly adhoc algoritmy, tj. speciální plánovací algoritmy. Můžeme plánovací problém kódovat v jiném formalismu a využít jeho řešící techniky? Ano! Např. použitím SAT a CSP. Proč? Zlepšení obecných řešících algoritmů pro SAT a CSP povede okamžitě ke zlepšení efektivity plánovače. Problém: SAT i CSP používají statické kódování,, my ale dopředu neznáme velikost plánu! Řešení: Budeme hledat plány do dané maximální délky a v případě neúspěchu se délka zvětší.

Plánování á jako SAT Základní myšlenka 1. Plánovací problém kódujeme jako výrokovou formuli. Jak popsat p stavy? Jak popsat stavové přechody? 2. Prostředky SATu zjistíme splnitelnost této formule. Davis-Putnam, GSAT, 3. Z pravdivostních hodnot proměnných zpětně dekódujeme řešení plánovacího problému.

Kódování stavů Stavy v klasické reprezentaci jsou množiny (konjunkce) instanciovaných atomů. Příklad: at(r1,l1) 1l1) loaded(r1) l d d(1) Stačí atomy kódovat jako výrokovou proměnnou. Příklad: předchozímu stavu odpovídá model {at(r1,l1) true, loaded(r1) false} Nemůže pak ale být robot být na dvou místech najednou? Např. máme-li výrokovou proměnnou pro at(r1,l2), dostáváme dva modely předchozího stavu: {at(r1,l1) true, loaded(r1) false, at(r1,l2) true} {at(r1,l1) true, loaded(r1) false, at(r1,l2) false} z nichž pouze druhý model odpovídá naší představě. Ve stavu musíme kódovat i zřejmé fakty! tj. at(r1,l1) at(r1,l2) loaded(r1) Poznámka: Výroková formule může bez problémů reprezentovat množiny stavů: ( (at(r1,l1) at(r1,l2)) ( at(r1,l1) at(r1,l2)) ) loaded(r1) Kódování přechodů Formule kódující stav nepokrývá dynamiku systému! Přechod použitím akce move(r1,l1,l2) lze popsat dvěma formulemi: at(r1,l1) at(r1,l2) ( % počáteční č stav at(r1,l1) at(r1,l2) % stav po přechodu V jiných stavech tedy platí jiné fakty! Přidáme do atomů i označení stavu (tzv. fluents) a potom můžeme přechod ř kódovat jedinou formulí: at(r1,l1,s1) at(r1,l2,s1) at(r1,l1,s2) at(r1,l2,s2) Do formule přidáme také novou výrokovou proměnnou ě označující akci, která přechod způsobila: move(r1l1l2s1) move(r1,l1,l2,s1) at(r1,l1,s1) at(r1,l2,s1) at(r1,l1,s2) at(r1,l2,s2) Jak ale víme, že na stav s1 se použije právě move?

Plánovací problém Budeme hledat řešení plánovacího problému s danou maximální délkou plánu (n). Pro každý krok k i plánu máme proměnné (fluents) L popisující možný stav, např. at(r1,l1,i) proměnné popisující možné akce A, např. move(r1,l1,l2,i) Plánovací problém kódujeme jako konjunkci následujících formulí Formule popisující počáteční stav (úplný popis): {p 0 p s 0 } { p 0 p L s 0 } Formule popisující p cíl (částečný ýpopis): p {p p n g + } { p n p g } Pro každou akci máme formule popisující, jaké změny tato akce přinese, pokud se použije v i-tém kroku plánu: a i {p i p precond(a)} {e i+1 e effects(a)} Axiom úplného vyloučení: Pro každou dvojici různých akcí a, b máme formule říkající, že se tyto akce nemohou použít najednou: Je to vše? a i b i Problém rámce Musíme zaručit, že proměnné, ě které nejsou změněny ě ě použitou akcí, zůstanou stejné. Axiomy rámce: formule popisující co se mezi stavy nemění existují itjírůzné ů způsoby, ů jak je zapsat klasické axiomy rámce u každé akce a popíšeme vlastnosti p, které se nemění (p effects(a)) a i (p i p i+1 ) ještě je potřeba zaručit, že v každém kroku je jedna akce vybrána V{a i a A} axiomy rámce s vysvětlením pravdivostní hodnota fluent proměnné p se mění pouze, pokud to udělá nějaká akce ( p i p i+1 V{a i p effects + (a)}) (p i p i+1 V{a i p effects (a)}) ;; někdo přidal p ;; někdo ubral p potřebují axiom úplného vyloučení, ten ale vede k úplně uspořádaným plánům, což může omezovat stačí axiom konfliktního vyloučení, tj.stačí aby v jednom kroku nebyly dohromady závislé akce

Jiné kódování akcí Zkusme zmenšit počet proměnných pro reprezentaci akcí (méně proměnných = menší prostor k prohledání) Situace: 3 roboti a 3 místa Pro akci move(r,loc1,loc2) l potřebujeme v každém kroku k 3 3 3= 3 3 27 proměnných. Proměnnou pro move(r1,loc1,loc2) nahradíme konjunkcí 3 proměnných: move1(r1) move2(loc1) move3(loc2) Protože akce move teď ď sdílejí stejné proměnné ě é( (např. ř move2(loc1) se použije pro move(r1,loc1,loc2) i pro move(r2,loc1,loc3)) dostáváme v každém kroku 3+3+3= 9 proměnných. Proměnné můžeme sdílet i mezi akcemi různého typu, např. move a fly. Závěrečné poznámky Celkový rámec pro plánování jako SAT for n = 0, 1, 2,, kóduj (P,n) jako SAT Φ if Φ is satisfiable then z modelu pro Φ extrahuj plán a vrať ho Extrakce plánu v každém kroku i máme právě jednu proměnnou a i s pravdivostní hodnotou true, ta určuje příslušnou akci do plánu Jak dobře to funguje? samo o sobě není moc praktické (paměťové a časové nároky) vhodné v kombinaci s dalšími technikami, např. plánovacím grafem systém BlackBox kóduje plánovací graf jako SAT, tj. máme proměnné pouze pro akce a atomy z grafu splnitelnost získané formule ověřuje existenci plánu

Plánovací doména: jeden robot: r1 dvě propojené lokace: l1, l2 jeden operátor: move Kódujeme plánovací problém (P,n) pro plán délky n = 1 počáteční č stav: {at(r1,l1)} at(r1,l1,0) at(r1,l2,0) Příklad cíl: {at(r1,l2)} at(r1,l2,1) operátor: move(r,l,l ) = (precond: at(r,l), effects: at(r,l ), at(r,l)) move(r1,l1,l2,0) l2 at(r1l10) at(r1,l1,0) at(r1l21) at(r1,l2,1) at(r1,l1,1) at(r1l11) move(r1,l2,l1,0) at(r1,l2,0) at(r1,l1,1) at(r1,l2,1) axiom úplného vyloučení: move(r1,l1,l2,0) move(r1,l2,l1,0) axiomy rámce s vysvětlením: at(r1,l1,0) at(r1l10) at(r1l11) at(r1,l1,1) move(r1,l2,l1,0) l1 at(r1,l2,0) at(r1,l2,1) move(r1,l1,l2,0) at(r1,l1,0) at(r1,l1,1) move(r1,l1,l2,0) at(r1,l2,0) t(1l20) at(r1,l2,1) t(1l21) move(r1,l2,l1,0) l1 Plánování a splňování podmínek

Základní použití Plánování jako CSP plánovací problém kódujeme a řešíme jako CSP SAT je vlastně ě speciálním případem CSP my ale použijeme jinou reprezentaci plánovacího problému, reprezentaci se stavovou proměnnou CSP v plánování CSP techniky se používají přímo v plánovacích algoritmech (např. Graphplan) jedná se o běžnější způsob využití CSP technik v plánování Stavové proměnné Stavové proměnné popisují vlastnost nějakého objektu v závislosti na stavu formou funkce. rloc: robots S locations rload: robots S containers {nil} cpos: containers S locations robots Neměnné vztahy se (pořád) reprezentují relacemi. adjacent(loc1,loc2) robots(r1) ;; popisuje typy konstant Operátory popisují změny stavových proměnných. move(r,l,m) ;; robot r at location l moves to an adjacent position m precond: rloc(r)=l, adjacent(l,m) effects: rloc(r) m load(c,r,l) l) ;; robot r loads container c at location l precond: rloc(r)=l, cpos(c)=l, rload(r)=nil effects: rload(r) c, cpos(c) r unload(c,r,l) ;; robot r unloads container c at location l precond: rloc(r)=l, rload(r)=c effects: rload(r) nil, cpos(c) l

Plánování jako CSP Opět modelujeme omezený plánovací problém, tj. hledáme plán do dané délky k. Pro každou instanciovanou stavovou proměnnou x i budeme mít CSP proměnnou x i (j) 0 j k s doménou odpovídající oboru hodnot. Příklad: rloc(r1,j) {l1,l2,l3}, l2l3} 0 j 4 rload(r1,j) {c1,c2,c3,nil}, 0 j 4 cpos(c,j) {l1,l2,l3,r1}, 0 j 4, c {c1,c2,c3} Pro každé j, 0 j k-1, máme akční proměnnou act(j) s doménou obsahující možné akce (včetně no-op). Příklad: act(j) {move(r1,l1,l2),move(r1,l1,l3),, no-op}, 0 j 3 proměnné ě Plánování jako CSP kódování stavů ů Počáteční č a koncový stav kódujeme formou unárních omezujících podmínek: má-li stavová proměnná x i ve stavu s 0 hodnotu v i, potom přidáme podmínku x i (0) = v i Příklad: rloc(r1,0)=l1, rload(r1,0)=nil, cpos(c1,0)=l1, cpos(c2,0)=l2, cpos(c3,0)=l2 má-li stavová proměnná ě x i v cíli g hodnotu v i, potom přidáme podmínku x i (k) = v i Příklad: cpos(c1,4)=l2, cpos(c2,4)=l1

Plánování jako CSP kódování akcí Akce kódujeme formou podmínek svazujících akční proměnnou act(j) s okolními okolními stavovými proměnnými x i (j) a x i (j+1). Předpoklad akce avetvaru(x i =v i ) se přeloží do podmínek act(j)=a x i i(j) (j)=v i, 0 j k-1. Předpoklad akce a ve tvaru (x i D i ) se přeloží do podmínek act(j)=a x i (j) D i, 0 j k-1. Přiřazení x i v i z efektů akce a se přeloží do podmínek act(j)=a x i (j+1)=v i, 0 j k-1. Příklad: act(j)=move(r1,l1,l2) rloc(r1,j)=l1 ;; předpoklad act(j)=move(r1,l1,l2) rloc(r1,j+1)=l2 ;; efekt Poznámka: další předpoklad adjacent(l1,l2) l2) se vzal v úvahu ihned při tvorbě akce z operátoru (dosazení konstant) Plánování jako CSP axiomy rámce Podobně jako u SAT kódování je potřeba zajistit, že stavové proměnné, které nejsou změněny vybranou akcí, si podrží svojí hodnotu axiomy rámce. Použijeme ternární podmínky svazující akční proměnnou act(j) s okolními stavovými proměnnými x i (j) a x i (j+1). Konkrétně, není-li stavová proměnná x i v efektu akce a (x i je vzhledem k a invariantní), potom přidáme podmínky: act(j)=a x i i(j) (j)=x i i(j (j+1), 0 j k-1. Příklad: act(j)=move(r1,l1,l2) l2) rload(r1,j)=rload(r1,j+1) j+1) act(j)=move(r1,l1,l2) cpos(c,j)=cpos(c,j+1), c {c1,c2,c3}

CSP v plánování CSP techniky lze použít jako součást existujících í plánovacích algoritmů. ů plánování v prostoru plánů testování konzistence částečného plánu pomocí propagace omezujících podmínek (rychlé, ale neúplné) úplný test konzistence může být proveden když je nalezen kompletní plán plánování s plánovacím grafem plánovací graf je statická struktura a může být zakódovaná jako CSP CSP se používá ve fázi extrakce plánu z plánovacího grafu Do & Kambhampati (2000) Graphplan jako CSP Použijeme proměnné pro atomy a tyto proměnné budou určovat, jaká akce přidala daný atom. CSP model: proměnné výrokové uzly ze stavových vrstev P j,m (atom p j ve vrstvě m) číslovány jsou pouze stavové vrstvy doména proměnných aktivity, které mají daný atom jako pozitivní efekt pro neaktivní atom omezující podmínky spojují pozitivní efekty s předpoklady akce relace vzájemné výlučnosti č (mutex)

Do & Kambhampati (2000) P 4,m =a P 1,m-1 P 2,m-1 P 3,m-1 Graphplan jako CSP akce a má předpoklady p 1,p 2,p 3 a pozitivní efekt p 4 podmínka je přidána pro každý pozitivní efekt akce a P im i,m = P jm j,m = mutex mezi atomy p i a p j podmínky P i,m a P j,m b akce a, b jsou označeny jako mutex, p i je pozitivní efekt a ap j je pozitivní efekt b P i,k p i je cílový atom a k je index poslední vrstvy žádné paralelní akce maximálně jedna akce různá od no-op je přiřazena proměnným ve stejné vrstvě žádné prázdné vrstvy minimálně i ě jedna akce různá ů od no-op je přiřazena proměnnýmě v každé vrstvě Lopez & Bacchus (2003) Graphplan jako BCSP Použijeme Boolean proměnné pro výroky i akce a hodnota true bude určovat přítomnost výroku/akce. Boolean CSP (SAT) model: proměnné Boolean proměnné pro akční uzly A j,m a pro výrokové uzly P j,n vrstvy jsou číslovány jako v Graphplanu, tj. stavové vrstvy od nuly a akční vrstvy od jedné doména proměnných hodnota true znamená, že akce/výrok je aktivní omezující podmínky spojují akce s předpoklady a pozitivními efekty relace vzájemné výlučnosti (mutex)

Lopez & Bacchus (2003) podmínky pro předpoklady akce A i,m P j,m-1 p j je předpokladem akce a i podmínky pro následující stav Graphplan jako BCSP P i,m ( pi effects + (a j ) A j,m ) (P i,m-1 ( pi effects - (a j ) AA j,m ))) podmínky p i je aktivní, pokud je přidáno nějakou akcí nebo pokud je aktivní v předchozí vrstvě a žádná akce ho nesmazala no-op se zde nepoužívají! Pozor! Podmínky umožňují, aby byl atom jednou akcí přidán a zároveň jinou akcí smazán, takže podmínky pro mutex jsou potřeba! podmínky pro mutex A i,m A j,m mutex akcí a i a a j ve vrstvě m PP i,n PP j,n mutex atomů ů p i a p j ve vrstvě ě n počáteční stav a cíle P i,k =true p i je cílový atom a k je index poslední stavové vrstvy P i,0 =true p i je atom v počátečním stavu další podmínky žádné paralelní akce maximálně jedna akce ve vrstvě je aktivní žádné prázdné vrstvy minimálně jedna akce ve vrstvě je aktivní CSP vs. SAT Podobný základní princip i CSP kódování je kompaktnější jednodušší reprezentace stavu s méně proměnnými (díky použití stavové proměnné) nejsou potřeba axiomy vyloučení akcí (díky použití proměnné pro akci) Poznámka: CSP a SAT jsou NP-úplné zatímco plánování je PSPACE- nebo NEXPTIME-úplné. Jak to? Převod plánovacího problému na SAT resp. CSP přináší exponenciální nárůst velikosti problému. SAT: exponenciální počet Boolean proměnných CSP: lineární počet proměnných, ale exponenciální nárůst je ve velikosti CSP díky doménám