Problem planowania
painted
not painted
ceiling
Problem planowania
stir−paint
not painted
ceiling
ceiling
painted
paint
ceiling
get−paint
get−ladder
mount−ladder
Jezyk STRIPS: stany
Reprezentuj¡ hwilowe stany opisywanego ±wiata,
ka»dy stan opisany jest jako koniunk ja literaªów rela yjny h,
literaªy s¡ zawsze ustalone i bez wyra»e« funk yjny h,
w opisie wystpuj¡ tylko literaªy pozytywne,
o pozostaªy h zakªada si, »e s¡ nieprawdziwe
Np.
At(Spare, T runk) ∧ At(F lat, Axle)
Jezyk STRIPS: akcje
Reprezentuj¡ zynno± i zmieniaj¡ e stan opisywanego ±wiata,
ka»da ak ja ma warunki wstpne, które musz¡ by¢ speªnione
przed zastosowaniem ak ji, oraz efekty, które za hodz¡ po wykonaniu ak ji
Jezyk STRIPS: akcje
Reprezentuj¡ zynno± i zmieniaj¡ e stan opisywanego ±wiata,
ka»da ak ja ma warunki wstpne, które musz¡ by¢ speªnione
przed zastosowaniem ak ji, oraz efekty, które za hodz¡ po wykonaniu ak ji
Preconditions
Action
Effects
Warunki wstpne: koniunk ja pozytywny h literaªów rela yjny h,
mo»e zawiera¢ zmienne i staªe, ale bez wyra»e« funk yjny h
Efekty: koniunk ja negatywny h i pozytywny h literaªów rela yjny h, mo»e
zawiera¢ zmienne z war. wstpny h i staªe, ale bez wyr. funk yjny h
At(x,Trunk)
At(x,Ground)
At(x,Trunk)
Remove(x,Trunk)
Jezyk STRIPS: postawienie problemu
Stan po z¡tkowy
Wybrany stan reprezentuj¡ y warunki po z¡tkowe zadanego problemu
Cel
Zbiór faktów, tzn. pozytywny h literaªów rela yjny h
z ustalonymi warto± ami (tzn. bez zmienny h i wyra»e« funk yjny h)
At(Flat,Axle)
At(Spare,Trunk)
Start
At(Spare,Axle)
Finish
Plan jako rozwiazanie problemu
Plan
Cz± iowo uporz¡dkowany zbiór ak ji przeksztaªa aj¡ y stan po z¡tkowy
w stan speªniaj¡ y warunki do elowe
Ak je w planie s¡ ukonkretnione, tzn. zmienne wystpuj¡ e jako parametry
ak ji maj¡ przypisan e konkretne warto± i
Start
Remove(Spare,Trunk)
At(Spare,Trunk)
Remove(Flat,Axle)
At(Flat,Axle)
PutOn(Spare,Axle)
At(Spare,Ground)
At(Flat,Axle)
Finish
At(Spare,Axle)
At(Flat,Axle)
At(Spare,Trunk)
¬
Poprawno±¢ planu polega na tym, »e dla ka»dej ak ji stan poprzedzaj¡ y t¡
Plan jako rozwiazanie problemu
W prakty e poszukuje si liniowo uporz¡dkowany h planów
Start
Start
Start
Total-Order Plans:
Partial-Order Plan:
Start
Left
Sock
Start
Right
Sock
Start
Left
Sock
Left
Sock
Right
Sock
Right
Sock
LeftSockOn
RightSockOn
LeftShoeOn, RightShoeOn
Start
Right
Sock
Right
Shoe
Left
Sock
Left
Shoe
Left
Sock
Left
Sock
Right
Sock
Right
Shoe
Right
Sock
Left
Shoe
Right
Shoe
Left
Shoe
Right
Shoe
Left
Shoe
Left
Sock
Right
Sock
Left
Shoe
Right
Shoe
Left
Shoe
Right
Shoe
Left
Shoe
Right
Shoe
Redukcja przestrzeni planow
Przestrze« mo»liwy h planów jest zazwy zaj bardzo du»a,
dlatego stosuje si heurysty zne metody reduk ji przestrzeni stanów:
Linearyza j a
pomija plany, w który h ak je prowadz¡ e
do ró»ny h pod elów wystpuj¡ naprzemiennie
O hrona
pomija plany, w który h wystpuje ak ja eliminuj¡ a
jeden z w ze±niej osi¡gnity h pod elów
Uwaga: linearyza ja i o hrona s¡ w prakty e skute zne,
ale mog¡ spowodowa¢ wyklu zenie poprawny h planów,
w sz zególno± i mog¡ wyklu zy¢ wszystkie poprawne plany
Metody poszukiwania poprawnych planow
♦
Przeszukiwanie wprzód ForwardChainin g♦
Przeszukiwanie wste z PopPlan GraphPlan♦
Sprowadzenie do problemu speªnialn o± i SatPlanForwardChaining
Poszukuje planu z liniowo uporz¡dkowanymi ak jami za zynaj¡ od stanu
po- z¡tkowego i dodaj¡ ak je w przód. Algorytm ofa si, je±li nie mo»e
za-stosowa¢ ju» »adnej ak ji w bie»¡ ym stanie lub bie»¡ y stan wyst¡piª ju»
ForwardChaining: algorytm
A2
Start
A1
A1
A2
A1
A2
A2
A1
A2
ForwardChaining: algorytm
matching
Start
A1
A1
A2
A1
A2
A2
A1
A2
A2
action
ForwardChaining: algorytm
enumerating possible
Start
A1
A1
A2
A1
A2
A2
A1
A2
A2
action
matching
substitutions
to preconditions
ForwardChaining: algorytm
enumerating possible
Start
A1
A1
A2
A1
A2
A2
A1
A2
A2
removing
repeated states
action
matching
substitutions
to preconditions
ForwardChaining: algorytm
enumerating possible
Start
A1
A1
A2
A1
A2
A2
A1
A2
A2
removing
repeated states
action
matching
substitutions
to preconditions
ForwardChaining: efektywna implementacja
♦
Przegl¡danie mo»liwy h podstawie« do warunków wstpny h ak ji Najpi erw mo»na dopasowywa¢ fakty z warunków wstpny h ak jii ze stanu, a potem przegl¡da¢ pasuj¡ e podstawienia
♦
Usuwanie powtarzaj¡ y h si stanówStany wyli zone w poprzedni h kroka h algorytmu mog¡ by¢
Polaczenia przyczynowe i wiezy porzadkujace
Poª¡ zenia przy zynowe
Poª¡ zenia w planie prowadz¡ e od efektu jednej ak ji
do warunku wstpnego innej ak ji
Wizy porz¡dkuj¡ e
Wizy midzy ak jami w planie wskazuj¡ e, »e jedna ak ja
wystpuje przed inn¡ ak j¡
Warunek otwarty = warunek wstpny jednej z ak ji nie posiadaj¡ y
poª¡ zenia przy zynowego prowadz¡ ego od efektu innej ak ji
Plan jest kompletny wtw kiedy ka»dy warunek wstpny jest osi¡gnity
Warunek wstpny jest osi¡gnity wtw je±li jest efektem w ze±niejszej ak ji
Polaczenia przyczynowe i wiezy porzadkujace
Start
Sells(SM,Milk)
Sells(HWS,Drill)
Polaczenia przyczynowe i wiezy porzadkujace
Buy(Drill)
Buy(Milk)
Go(SM)
Start
Sells(SM,Milk)
At(SM)
Sells(HWS,Drill)
At(HWS)
At(x)
Sells(SM,Milk)
Sells(HWS,Drill)
At(Home)
Sells(SM,Ban.)
Polaczenia przyczynowe i wiezy porzadkujace
At(SM)
At(Home)
At(HWS)
Buy(Drill)
Buy(Milk)
Buy(Ban.)
Go(Home)
Go(HWS)
Go(SM)
Start
Sells(SM,Milk)
At(SM)
At(SM)
Sells(SM,Ban.)
Sells(HWS,Drill)
At(HWS)
Kloberowanie oraz promocja/democja
Ak ja kloberuj¡ a jest poten jalnie przeszkadzaj¡ ¡ ak j¡, która
eliminuje warunek uzyskany z powi¡zania przy zynowego,
np.
Go
(Home)
kloberujeAt
(Supermarket)
:At(Home)
At(Home)
Go(Home)
DEMOTION
PROMOTION
Go(Supermarket)
At(Supermarket)
Buy(Milk)
Demo ja: dodanie wizu porz¡dkuj¡ ego
Go
(Home) → Go(Supermarket)
Promo ja: dodanie wizu porz¡dkuj¡ ego
PopPlan: algorytm
Pomysª: Stopniowo kompletuje plan za zynaj¡ od pustego planu poprzez
dodawanie poª¡ ze« przy zynowy h, ak ji i wizów porz¡dkuj¡ y h
Cofa, gdy otwarty warunek jest nieosi¡ga ln y lub konikt jest nierozstrzygaln y
fun tion POP (initial,goal,operators) returns plan
plan
←
Make-Minimal-Plan(initial,goal) loop doif Solution?(plan) then return plan
S
need
, c
←
Sele t-Subgoal(plan)Choose-Operator(plan,operators,
S
need
, ) Resolve-Threats(plan)end
fun tion Sele t-Subgoal(plan) returns
S
need
, c
pi k a plan stepS
need
from Steps(plan)PopPlan: algorytm
pro edure Choose-Operator(plan,operators,
S
need
, )hoose a step
S
add
from operators or Steps(plan) that hasc
as an ee t if there is no su h step then failadd the ausal link
S
add
c
−→ S
need
to Links(plan)add the ordering onstraint
S
add
≺ S
need
to Orderings(plan) ifS
add
is a newly added step from operators thenadd
S
add
to Steps(plan)add
Start
≺ S
add
≺ F inish
to Orderings(plan)pro edure Resolve-Threats(plan)
for ea h
S
threat
that threatens a linkS
i
c
−→ S
j
in Links(plan) do hoose eitherDemotion: Add
S
threat
≺ S
i
to Orderings(plan) Promotion: AddS
j
≺ S
threat
to Orderings(plan) if not Consistent(plan) then failPopPlan: przyklad
Start State
Goal State
B
A
C
A
B
C
PutOn(x,y)
Clear(x) On(x,z) Clear(y)
~On(x,z) ~Clear(y)
Clear(z) On(x,y)
PutOnTable(x)
Clear(x) On(x,z)
~On(x,z) Clear(z) On(x,Table)
PopPlan: przyklad
B
A
C
A
B
C
FINISH
On(A,B) On(B,C)
START
PopPlan: przyklad
B
A
C
A
B
C
FINISH
START
On(C,A) On(A,Table) Cl(B) On(B,Table) Cl(C)
PutOn(B,C)
Cl(B) On(B,z) Cl(C)
PopPlan: przyklad
B
A
C
A
B
C
FINISH
On(A,B) On(B,C)
START
On(C,A) On(A,Table) Cl(B) On(B,Table) Cl(C)
PutOn(B,C)
PutOn(A,B)
PutOn(A,B)
clobbers Cl(B)
=> order after
PutOn(B,C)
On(A,z) Cl(B)
Cl(A)
On(B,z) Cl(C)
Cl(B)
PopPlan: przyklad
B
A
C
A
B
C
FINISH
On(A,B) On(B,C)
START
On(C,A) On(A,Table) Cl(B) On(B,Table) Cl(C)
PutOn(B,C)
Cl(B) On(B,z) Cl(C)
PutOn(A,B)
Cl(A) On(A,z) Cl(B)
PutOn(A,B)
clobbers Cl(B)
=> order after
PutOn(B,C)
PutOnTable(C)
PutOn(B,C)
clobbers Cl(C)
=> order after
PutOnTable(C)
Cl(C)
PopPlan: wlasnosci
Niedeterminiz m:
wybór ak ji
S
add
do powi¡zania przy zynowego zS
need
wybór demo ji lub promo ji dla ak ji kloberuj¡ ej(wybór
S
need
mo»e by¢ ustalony: ka»dy warunek wstpny musi zosta¢ osi¡gnity w ko« owym planie)PopPlan jest peªny i systematy zny (wyklu za powtórzenia)
Mo»na efektywnie przyspiesz y¢ wybieraj¡ wªa± iw¡ heurystyke rozstrzygania
koniktów na podstawie opisu problemu
Graf planowania
Graf planowani a skªada si z poziomów:
poziom
S
0
odpowiada stanowi po z¡tkowemu z opisu zadania, kolejne poziomy odpowiadaj¡ kolejnym krokom zasuKa»dy poziom zawiera:
zbiór literaªów: reprezentuje te, o mog¡ by¢ speªnione w danym kroku
zbiór ak ji: reprezentuje ak je, które mog¡ by¢ u»yte w danym kroku;
opró z ak ji z opisu problemu, dla ka»dego literaªu dopusz zalna jest
ak ja za howuj¡ a stan tego literaªu
Poziomy s¡ rozwijane do momentu, kiedy dwa kolejne poziomy s¡ identy zne
Graf planowania: przyklad
Stan po z¡tkowy:
Have
(Cake)
Cel:Have
(Cake) ∧ Eaten(Cake)
Ak je:
Eat
(Cake)
warunki wstpne:
Have
(Cake)
efekty:
¬Have
(Cake) ∧ Eaten(Cake)
Bake
(Cake)
warunki wstpne:
¬Have(Cake)
efekty:Have
(Cake)
Bake(Cake)
Eat(Cake)
Have(Cake)
S
0
A
0
S
1
A
1
S
2
Have(Cake)
Have(Cake)
Have(Cake)
Have(Cake)
Eaten(Cake)
Eaten(Cake)
Eat(Cake)
¬
¬
¬
¬
Relacja wzajemnej wylacznosci (mutex)
Rela ja mutex za hodzi pomidzy dwoma ak jami, je±li wystpuj¡:
albo sprze zne efekty ak ji
albo interferen ja, tzn. efekt jednej z ak ji
jest nega j¡ warunku wstpnego drugiej ak ji
albo ak je maj¡ sprze zne warunki wstpne
Rela ja mutex za hodzi pomidzy dwoma literaªami, je±li jeden jest nega j¡
Relacja mutex: przyklad
Ak je
Eat
(Cake)
i ak ja za howuj¡ aHave
(Cake)
s¡ sprze zne, bo maj¡ sprze zny efektHave
(Cake)
Ak je
Eat(Cake)
i ak ja za howuj¡ aHave(Cake)
s¡ sprze zne, bo efekt ak jiEat
(Cake)
jest zaprze zeniem warunku wstpnego ak ji za howuj¡ ejHave
(Cake)
Ak je
Eat
(Cake)
iBake
(Cake)
s¡ sprze zne, bo maj¡ sprze zny warunek wstpnyHave
(Cake)
Literaªy
Have
(Cake)
iEaten
(Cake)
s¡ w rela ji mutex, bo wymagaj¡ u»y- ia wyklu zaj¡ y h si ak jiEat
(Cake)
i ak ji za howaniaHave
(Cake)
Bake(Cake)
Eat(Cake)
Have(Cake)
S
0
A
0
S
1
A
1
S
2
Have(Cake)
Have(Cake)
Have(Cake)
Have(Cake)
Eat(Cake)
GraphPlan: algorytm
fun tion Graphplan(problem ) returns solution or failure
graph
←
Initial-Planning-Graph(problem ) goals←
Goals [ problem ℄loop do
if goals all non-mutex in last level of graph then do
solution
←
Extra t-Solution(graph,goals,Length(graph)) if solution6=
failure then return solutionelse if No-Solution-Possible(graph) then return failure
graph
←
Expand-Graph(graph,problem )Funk ja Initial-Planning-Graph generuje literaªy na poziomie
S
0
grafu planowani a zyli literaªy ze stanu po z¡tkowegoW ka»dym kroku ptli funk ja Expand-Graph dodaje ak je z bie»¡ ego
GraphPlan: szukanie rozwiazania
Funk ja Extra t-Solution próbuje znale¹¢ plan na podstawie
doty h- zas wygenerowanego grafu planowania. Cofa si od ostatniego poziomu grafu
przeksztaª aj¡ bie»¡ y zbiór niespeªni ony h elów w nastpuj¡ y sposób:
po z¡tkowy zbiór elów to wszystkie ele z zadania
na ostatnim bie»¡ ym poziomie
S
n
dla elów na poziomie
S
i
algorytm wybiera podzbiór ak ji z poziomuA
i−1
tak, »eby efekty ty h ak ji pokrywaªy zbiór elów na poziomieS
i
i »adne dwie nie wyklu zaªy si wzajemnie,
funk ja zwra a pora»k, je±li takiego zbioru ak ji nie da si wybra¢
warunki wstpne ak ji wybrany h na poziomie
A
i−1
staj¡ si bie»¡ ymi elami na poziomieS
i−1
GraphPlan: przyklad
Cel:
At
(Spare, Axle)
S
0
A
1
S
2
At(Spare,Trunk)
At(Spare,Trunk)
At(Flat,Axle)
At(Flat,Axle)
At(Spare,Axle)
At(Flat,Ground)
At(Flat,Ground)
At(Spare,Ground)
At(Spare,Ground)
At(Spare,Trunk)
At(Spare,Trunk)
At(Flat,Axle)
At(Flat,Axle)
At(Spare,Axle)
At(Flat,Ground)
At(Flat,Ground)
At(Spare,Ground)
At(Spare,Ground)
At(Spare,Axle)
At(Spare,Trunk)
At(Flat,Axle)
At(Spare,Axle)
At(Flat,Ground)
At(Spare,Ground)
PutOn(Spare,Axle)
LeaveOvernight
Remove(Flat,Axle)
Remove(Spare,Trunk)
Remove(Spare,Trunk)
Remove(Flat,Axle)
LeaveOvernight
¬
¬
¬
¬
¬
¬
¬
¬
¬
¬
¬
¬
¬
A
0
S
1
W powy»szym przykªadzie zostaªy zazna zone tylko niektóre rela je mutex
GraphPlan: wybor celow i akcji
Koszt poziomowy literaªu : najni»s zy poziom w grae planowani a, na którym
dany literaª wystpuje po raz pierwszy
Funk ja Extra t-Solution u»ywa nastpuj¡ ej heurystyki wyboru elów
i ak ji na ka»dym poziomie:
ele wybierane s¡ w kolejno± i od najwy»szego do najni»szego kosztu
poziomowego
do osi¡gni ia danego elu wybierana jest ak ja z najmniejsz¡ sum¡ (lub
GraphPlan: wlasnosci
Twierdzenie
Dla ka»dego zadania planowania mo»na efektywnie wyzna zy¢ sko« zony
poziom grafu planowani a, od którego funk ja Extra t-Solution
SATPlan
Planowanie przez sprowadzenie do problemu speªnialn o± i w logi e zdaniowej
Problem
Algorithm
For SAT
Heuristic
Planning
Plan
decoding
Model
coding
Formula
Boolean
SATPlan: algorytm
fun tion Satplan(problem,T
max
) returns solution or failure inputs : problem , a planning problemT
max
, an upper limit for plan length for T= 0
to Tmax
donf,mapping
←
Translate-To-SAT(problem,T) assignment←
SAT-Solver( nf )if assignment is not null then
return Extra t-Solution(assignment,mapping )
return failure
Funk ja Translate-To-S AT konwertuje problem planowania do formuªy
w posta i normalnej koniunk yjnej