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