Pianificazione

Download Report

Transcript Pianificazione

Partial Order Planning (POP)
L’anomalia di Sussman
reloaded
L’anomalia di Sussman
B
PILA
A
C
B
A
C
goal
Stato iniziale
Clear(b)
Clear(b)
Clear(a)
Clear(c)
Unstack(a)
Clear(a)
Unstack(c)
Clear(a)
Clear(b)
Table(b)
Table(b)
Table(a)
Table(a)
Stack(b,
c)
On(a, b)
Stack(a,
b)
Stack(b,
c)
Stack(a,
b)
On(b,
c)
On(a,
b)
On(a,
On(b,b)
c)
On(b,
c)
On(a,
b)
On(b,
c)
On(a,
b)
On(b,
On(b, c)
c) 
 On(a,
On(a, b)
b)
A
A C
BB
B
B
A
B
A C
Rappresentazione per le azioni

Azioni come in STRIPS (qui visualizzate a grafo)
Azione stack
Clear(x)
Table(x)
Azione unstack
Clear(y)
Clear(x)
Stack(x, y)
Clear(y)
Table(x)
On(x, y)
Unstack(x, y)
On(x, y)
Clear(y)
Table(x)
 On(x, y)
L’anomalia di Sussman
B
PILA
A
C
B
A
C
goal
Stato iniziale
Clear(b)
Clear(b)
Clear(a)
Clear(c)
Unstack(a)
Clear(a)
Unstack(c)
Clear(a)
Clear(b)
Table(b)
Table(b)
Table(a)
Table(a)
Stack(b,
c)
On(a, b)
Stack(a,
b)
Stack(b,
c)
Stack(a,
b)
On(b,
c)
On(a,
b)
On(a,
On(b,b)
c)
On(b,
c)
On(a,
b)
On(b,
c)
On(a,
b)
On(b,
On(b, c)
c) 
 On(a,
On(a, b)
b)
A
A C
BB
B
B
A
B
A C
Esempio di POP
T
C
B
Start
On(c,
On(c, a)
a)
Clear(c)
Table(a)
Clear(b)
A
Stato
iniziale
Table(b)
Start < Finish
Unstack(c, a)
Clear(a)
Clear(b)
Table(c)
Table(a)

On(c, a)
Clear(b)
Stack(a, b)
Clear(b)
Unstack(c,a) < Stack(b,c)
minaccia
Table(b)
Stack(b,
Clear(c) c) < Stack(a, b)
Stack(b, c)
On(b, c)
On(a, b)
Clear(c)
A
B
Finish
C
NIL
goal
POP: conclusione



Abbiamo ottenuto un piano completo e
consistente
Ogni linearizzazione è una soluzione
In questo caso una sola:
1.

[unstack(c, a), stack(b, c), stack(a, b)]
POP è corretto e completo (ogni piano
calcolato è una soluzione e se un piano esiste
viene trovato)
POP: Partial Order Planning
function POP (initial, goal, operators) returns plan
plan  MAKE-MINIMAL_PLAN(initial, goal)
loop do
if SOLUTION?(plan) then return plan
Sneed, c SELECT-SUBGOAL(plan)
CHOOSE-OPERATOR(plan, operators, Sneed, c)
RESOLVE-THREATS(plan)
end
POP: algoritmo

SELECT-SUBGOAL: una precondizione di
un’azione non ancora soddisfatta


CHOOSE-OPERATOR: un modo di soddisfare
la precondizione (con azioni esistenti o
aggiungendo una nuova azione)


non è importante l’ordine
soggetto a backtracking
RESOLVE-THREATS: si controlla se esistono
minacce e se possibile si rimuovono; altrimenti
backtracking.
Rimozione delle minacce
(a) S3 minaccia la precondizione c di S2, attuata da S1
(b) Risoluzione della minaccia per demozione
(c ) Risoluzione della minaccia per promozione
Possibili euristiche per POP




Tra le precondizioni aperte scegliere quella
che ha meno modi per essere soddisfatta
Analogo della variabile più vincolata nei CSP
Si riconoscono prima i fallimenti.
Grafi di pianificazione: una struttura dati
precalcolata che guida nel processo di
pianificazione