opengoal.tv
Transkript
opengoal.tv
Plánování Plá á í a rozvrhování Roman Barták, Barták KTIML [email protected] roman bartak@mff cuni cz http://ktiml.mff.cuni.cz/~bartak Pro zopakování Plánovací algoritmy jsou založeny na prohledávání. Plánování Plá á í ve stavovém t é prostoru t uzly odpovídají stavům jdeme buď od počátečního stavu k cíli nebo obráceně P blé Problémy: velký větvící faktor technika liftování zmenšuje větvící faktor (instanciace proměnných je odložena) alternativní a te at pořadí po ad a akcí c vedoucí edouc k neúspěchům eúspěc ů nemusíme vyžadovat konkrétní pořadí akcí, dokud není skutečně potřeba strategie nejmenších závazků (least-commitment) co není potřeba rozhodnout hned se odloží na později Plánování a rozvrhování, Roman Barták Plánování lá á í vp prostoru p plánů Základní myšlenka Princip podobný zpětnému plánování ve stavovém prostoru: začínáme z „prázdného“ plánu obsahujícího popis i počátečního čát č íh stavu t a cíle íl p přidáváme další akce,, které plní p dosud nesplněné (otevřené) cíle případně přidáváme vazby mezi již přítomnými akcemi Na plánování se můžeme ů dívat jako na opravovaní kazů v částečném plánu přecházíme od jednoho částečného plánu k dalšímu dokud nenajdeme úplný plán Plánování a rozvrhování, Roman Barták Příklad Předpokládejme, že v částečném plánu zatím máme akce: take(k1,c1,p1,l1) load(k1,c1,r1,l1) Možné úpravy plánu: Přidání akce Svázání proměnných akce move se týká správného robota a správného místa Přidání podmínky uspořádání aby šlo použít load, musí být robot r1 na místě l1 přesuň robota r1 na místo l1 move(r1,l,l1) přesunutí robota se musí uskutečnit před load na pořadí vzhledem k take ale nezáleží Přidání kauzální (příčinné) vazby nová akce byla přidána, přidána aby se robot dostal tam, tam kam má kauzální vazba mezi move a load nám zajistí, že mezi těmito akcemi robota někdo zase neodvolá Plánování a rozvrhování, Roman Barták Plánování Počáteční stav i cíl zakódujeme j jako j speciální p akce, které jsou v prvotním částečném plánu: Akce a0 reprezentuje počáteční stav tak, tak že nemá žádné předpoklady a počáteční stav je zakódován jako efekt. Tato akce je před všemi ostatními akcemi. Akce a∞ reprezentuje cíl, který je zakódován jako předpoklad efekt akce je prázdný předpoklad, prázdný. Tato akce je za všemi ostatními akcemi. Plánování á á í bude založeno ž na odstraňování ň á í p kazů ((flaws)) částečného plánu. Budeme přecházet od jednoho částečného plánu k dalšímu,, dokud nenajdeme j řešící plán. p Plánování a rozvrhování, Roman Barták Uzly jsou plány Uzly yp prohledávaného prostoru p jsou j tvořenyy částečnými plány. Čá t č ý plán Částečný lá Π je j čt čtveřice ři (A,<,B,L), (A B L) kde kd A je množina o a částečně částeč ě instanciovaných sta c o a ýc plánovacích operátorů {a1,…,ak} < je částečné uspořádání na A (ai<aj) B je množina vazeb tvaru x=y, x≠y nebo x∈Di L je množina ž kkauzálních ál í h vztahů hů tvaru ((ai→paj) ai,aj jsou akce uspořádané ai<aj p je výraz, který je efektem ai a předpokladem aj v B jjsou vazby y svazující j příslušné p proměnné p vp Plánování a rozvrhování, Roman Barták Částečný plán: příklad předpoklady akce kauzální vazby částečné uspořádání efekty akce Plánování a rozvrhování, Roman Barták Otevřený cíl Otevřený cíl (open goal) je kazem plánu. Jedná se o předpoklad p nějakého operátoru b, o kt é zatím kterém tí nebylo b l rozhodnuto, h d t jjakk h ho splnit l it (neexistuje kauzální vazba ai→pb). Odstranění otevřeného cíle p akce b: najdi jdi operátor át a (buď (b ď již přítomný řít ý v plánu lá nebo b nový), ý) který lze použít na splnění p (má p mezi efekty a může být před b) svaž proměnné vytvoř kauzální vazbu Plánování a rozvrhování, Roman Barták Hrozba Hrozba (threat) je dalším kazem plánu. J d á se o akci, Jedná k i která kt á může ůž porušit šit kkauzální ál í vazbu. b je-li ai→paj kauzální vazba a akce b má efekt unifikovatelný s negací p a může se nacházet mezi ai a aj , potom je b hrozbou (může porušit platnost kauzální vazby). Přesněji, Odstranění hrozby lze udělat třemi způsoby: uspořádáním b před ai uspořádáním b za aj navázáním proměnných v b tak, tak že ne neruší ší platnost p Plánování a rozvrhování, Roman Barták Řešící plán Částečný plán Π = (A,<,B,L) je řešícím plánem pro problém P = (Σ,s0,g) pokud: částeč částečné é uspo uspořádání ádá < a vazby a by B jsou globálně g obá ě konzistentní v částečném uspořádání p nejsou j cykly y y mohu proměnné přiřadit hodnotu z příslušné domény tak, že najdu hodnoty ostatních proměnných splňující B libovolná lineárně uspořádaná posloupnost plně instanciovaných akcí A splňující < a vazby B vede z s0 do stavu splňujícího g Definice nám boh bohužel žel přímo nedává nedá á výpočtovou ýpočto o proceduru, jak ověřit, zda je plán řešící! Plánování a rozvrhování, Roman Barták Řešící plán jinak Jak efektivně ověřit, zda je daný plán řešící? Tvrzení: Čá t č ý plán Částečný lá Π = (A,<,B,L) (A < B L) je j řřešící ší í pokud: k d nemá žádné kazy, tj. otevřené cíle ani hrozby částečné uspořádání < a vazby B jsou globálně konzistentní Důkaz indukcí podle délky plánu {a0,a1,a∞} je řešící plán pro větší množiny akcí vyber libovolnou z možných prvních akcí a spoj ji s akcí a0 Plánování a rozvrhování, Roman Barták Procedura PSP PSP = Plan-Space Planning (plánování v prostoru plánů) Volba kazu je deterministická (musí se odstranit všechny k ) kazy). Volba zjemnění je nedeterministická (v případě neúspěchu se zkouší k ší další d lší alternativa). lt ti ) Plánování a rozvrhování, Roman Barták Detaily PSP Otevřené cíle lze efektivně zjistit udržováním g yp předpokladů p akcí. Přidání kauzální agendy vazby pro p vyřadí p z agendy. Všechny y hrozby y lze najít j prozkoumáním p všech 3 trojic akcí (O(n )) nebo inkrementálně: po přidání akce se zjistí, komu je hrozbou (O(n2)), a po přidání řidá í kauzální k ál í vazby b se ověří ěří její j jí hrozby h b (O(n)). P odstranění Pro d t ě í otevřených t ř ý h cílů ílů a hrozeb h b se používají pouze konzistentní zjemnění plánu. konzistence k i t uspořádání řádá í buď b ďd detekcí t k í cyklů klů nebo b lépe lé udržováním tranzitivního uzávěru konzistence vztahů B pokud není negace, lze rychle (například pomocí AC) jje-li p přítomna negace g jedná j se o NP-úplný p ý problém p Plánování a rozvrhování, Roman Barták Vlastnosti PSP Procedura PSP jje korektní a úplná. p korektnost pokud program skončí, pak v něm není žádný kaz a plán je konzistentní. úplnost p pokud existuje plán, má procedura PSP vždy možnost vybrat ty správné akce Pozor na deterministickou implementaci! Prostor plánů není konečný! Úplná p deterministická procedura p musí garantovat g prohledání všech plánů do dané délky, např. iterativní prohlubování (iterative deepening). g Plánování a rozvrhování, Roman Barták Procedura PoP PoP je konkrétní (a populární) instance algoritmu PSP. PSP Agenda je množina dvojic (a,p), kde p je otevřený předpoklad akce a a. Nejprve hledá akci ai pro pokrytí k tí nějakého p z agendy. Ve druhé d hé fá fázii řeší ř ší všechny hrozby, které vznikly přidáním akce ai resp. kauzální vazby s ai. Plánování a rozvrhování, Roman Barták Příklad na závěr Počáteční čá č í stav: At(Home), Sells(OBI,Drill), Sells(Tesco,Milk), Sells(Tesco,Banana) tj. tj akce Start: Precond: none Effects: At(Home), Sells(OBI,Drill), Sells(Tesco,Milk), Sells(Tesco,Banana) Cíl: Have(Drill), Have(Milk), Have(Banana), At(Home) tj. akce Finish: Precond: Have(Drill), Have(Milk), Have(Banana), At(Home) Effects: none Máme k dispozici následující operátory: Go(l,m) ;; jdi z místa l do místa m Precond: At(l) Effects: At(m), ¬At(l) Buy(p s) ;; na místě s kup p Buy(p,s) Precond: At(s), Sells(s,p) Effects: Have(p) Plánování a rozvrhování, Roman Barták Příklad na závěr Počáteční plán efekty budeme psát pod akci At(Home), ( ), Sells(OBI,Drill), ( , ), Have(Drill), Have(Milk), Operátory Go(l,m) Precond: At(l) Effects: At(m), ¬At(l) Buy(p,s) Precond: At(s), Sells(s,p) Effects: Have(p) Sells(Tesco,Milk), ( ) Sells(Tesco,Bananas) ( ) Have(Bananas), At(Home) předpoklady budeme psát nad akci Plánování a rozvrhování, Roman Barták Příklad na závěr jediný způsob, jak splnit otevřené cíle Have,, je j akcemi Buy y ((které netvoří žádné hrozby) Operátory Go(l,m) Precond: At(l) Effects: At(m), ¬At(l) Buy(p,s) Precond: At(s), Sells(s,p) Effects: Have(p) At(s1), Sells(s1,Drill) B (D ill s1) Buy(Drill, At(s2), Sells(s2,Milk) Buy(Milk s2) Buy(Milk, At(s3), Sells(s3,Bananas) Buy(Bananas s3) Buy(Bananas, Have(Drill), Have(Milk), Have(Bananas), At(Home) Plánování a rozvrhování, Roman Barták Příklad na závěr jediný způsob, jak splnit předpoklady p p y Sells jje dosazení příslušných konstant Operátory Go(l,m) Precond: At(l) Effects: At(m), ¬At(l) Buy(p,s) Precond: At(s), Sells(s,p) Effects: Have(p) At(OBI), Sells(OBI,Drill) Buy(Drill OBI) Buy(Drill,OBI) At(Tesco), Sells(Tesco,Milk) Buy(Milk Tesco) Buy(Milk,Tesco) At(Tesco), Sells(Tesco,Bananas) Buy(Bananas Tesco) Buy(Bananas,Tesco) Have(Drill), Have(Milk), Have(Bananas), At(Home) Plánování a rozvrhování, Roman Barták Příklad na závěr jediný způsob, jak splnit otevřené cíle At, je přidání akcí Go přibyly nové hrozby! Operátory Go(l,m) Precond: At(l) Effects: At(m), ¬At(l) Buy(p,s) Precond: At(s), Sells(s,p) Effects: Have(p) At(l2) At(x) At(l1) Go(l2, Tesco) Go(l1,OBI) OBI) At(OBI) Sells(OBI At(OBI), Sells(OBI,Drill) Drill) At(Tesco), At(T ) S Sells(Tesco,Milk) ll (T Milk) At(Tesco), At(T ) S Sells(Tesco,Bananas) ll (T B ) Buy(Drill,OBI) Buy(Milk,Tesco) Buy(Bananas,Tesco) Have(Drill), Have(Milk), Have(Bananas), At(Home) Plánování a rozvrhování, Roman Barták Příklad na závěr třetí hrozbu můžeme odstranit uspořádáním p akce Buy(Drill) y( )p před Go(Tesco) to fakticky řeší všechny hrozby Operátory Go(l,m) Precond: At(l) Effects: At(m), ¬At(l) Buy(p,s) Precond: At(s), Sells(s,p) Effects: Have(p) At(l2) At(x) At(l1) Go(l2, Tesco) Go(l1,OBI) OBI) At(OBI) Sells(OBI,Drill) At(OBI), S ll (OBI D ill) Buy(Drill,OBI) At(T At(Tesco), ) Sells(Tesco,Milk) S ll (T Milk) At(Tesco), At(T ) Sells(Tesco,Bananas) S ll (T B ) Buy(Milk,Tesco) Buy(Bananas,Tesco) Have(Drill), Have(Milk), Have(Bananas), At(Home) Plánování a rozvrhování, Roman Barták Příklad na závěr otevřený cíl At(l1) můžeme splnit přiřazením l1=Home z akce Start p Operátory Go(l,m) Precond: At(l) Effects: At(m), ¬At(l) Buy(p,s) Precond: At(s), Sells(s,p) Effects: Have(p) At(l2) At(Home) Go(l2, Tesco) Go(Home OBI) Go(Home,OBI) At(OBI) Sells(OBI,Drill) At(OBI), S ll (OBI D ill) Buy(Drill,OBI) At(T At(Tesco), ) Sells(Tesco,Milk) S ll (T Milk) At(Tesco), At(T ) Sells(Tesco,Bananas) S ll (T B ) Buy(Milk,Tesco) Buy(Bananas,Tesco) Have(Drill), Have(Milk), Have(Bananas), At(Home) Plánování a rozvrhování, Roman Barták Příklad na závěr otevřený cíl At(l2) můžeme splnit přiřazením l2=OBI OBI z akce Go(Home, OBI) Operátory Go(l,m) Precond: At(l) Effects: At(m), ¬At(l) Buy(p,s) Precond: At(s), Sells(s,p) Effects: Have(p) At(OBI) At(Home) Go(OBI, Tesco) Go(Home OBI) Go(Home,OBI) At(OBI) Sells(OBI,Drill) At(OBI), S ll (OBI D ill) Buy(Drill,OBI) At(T At(Tesco), ) Sells(Tesco,Milk) S ll (T Milk) At(Tesco), At(T ) Sells(Tesco,Bananas) S ll (T B ) Buy(Milk,Tesco) Buy(Bananas,Tesco) Have(Drill), Have(Milk), Have(Bananas), At(Home) Plánování a rozvrhování, Roman Barták Příklad na závěr otevřený cíl At(Home) z Finish splníme p akcí Go vzniknou nové hrozby Operátory Go(l,m) Precond: At(l) Effects: At(m), ¬At(l) Buy(p,s) Precond: At(s), Sells(s,p) Effects: Have(p) At(OBI) At(Home) Go(OBI, Tesco) Go(Home OBI) Go(Home,OBI) At(OBI) Sells(OBI,Drill) At(OBI), S ll (OBI D ill) Buy(Drill,OBI) At(T At(Tesco), ) Sells(Tesco,Milk) S ll (T Milk) At(Tesco), At(T ) Sells(Tesco,Bananas) S ll (T B ) Buy(Milk,Tesco) Buy(Bananas,Tesco) At(l3) Go(l3, Home) Have(Drill), Have(Milk), Have(Bananas), At(Home) Plánování a rozvrhování, Roman Barták Příklad na závěr hrozby na At(Tesco) odstraníme uspořádáním p akce Go(Home) ( ) za obě akce Buy Operátory Go(l,m) Precond: At(l) Effects: At(m), ¬At(l) Buy(p,s) Precond: At(s), Sells(s,p) Effects: Have(p) At(OBI) At(Home) Go(OBI, Tesco) Go(Home OBI) Go(Home,OBI) At(OBI) Sells(OBI,Drill) At(OBI), S ll (OBI D ill) Buy(Drill,OBI) At(T At(Tesco), ) Sells(Tesco,Milk) S ll (T Milk) At(Tesco), At(T ) Sells(Tesco,Bananas) S ll (T B ) At(l3) Buy(Milk,Tesco) Buy(Bananas,Tesco) Go(l3, Home) Have(Drill), Have(Milk), Have(Bananas), At(Home) Plánování a rozvrhování, Roman Barták Finále Operátory otevřený cíl At(l3) splníme přiřazením l3=Tesco z akce p Go(OBI,Tesco) Go(l,m) Precond: At(l) Effects: At(m), ¬At(l) Buy(p,s) Precond: At(s), Sells(s,p) Effects: Have(p) At(OBI) At(Home) Go(OBI, Tesco) Go(Home OBI) Go(Home,OBI) At(OBI) Sells(OBI,Drill) At(OBI), S ll (OBI D ill) Buy(Drill,OBI) At(T At(Tesco), ) Sells(Tesco,Milk) S ll (T Milk) At(Tesco), At(T ) Sells(Tesco,Bananas) S ll (T B ) At(Tesco) Buy(Milk,Tesco) Buy(Bananas,Tesco) Go(Tesco, Home) Have(Drill), Have(Milk), Have(Bananas), At(Home) Plánování a rozvrhování, Roman Barták Srovnání technik Plánování se stavy Plánování s plány prohled. prostor konečný nekonečný uzly jednoduché (stavy světa) komplikovanější (částečné plány) stavy y světa explicitní p nejsou j částečný plán uspořádání a volba volba akcí a jejich akcí se dělá najednou pořadí oddělené struktura plánu lineární bez vazeb kauzální vazby Díky doménově specifickým heuristikám je dnes plánování se stavy výrazně rychlejší. Ale, plánování v prostoru plánů: vytváří flexibilnější plány díky částečnému uspořádání umožňuje další rozšíření, např. přidání času a zdrojů Plánování a rozvrhování, Roman Barták