La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Partial Order Planning (POP)

Presentazioni simili


Presentazione sul tema: "Partial Order Planning (POP)"— Transcript della presentazione:

1 Partial Order Planning (POP)
L’anomalia di Sussman reloaded

2 L’anomalia di Sussman PILA Clear(a) Table(a) Stack(a, b) On(a, b)
goal Stato iniziale PILA Clear(a) Table(a) Stack(a, b) On(a, b) On(b, c)  On(a, b) Stack(a, b) On(a, b) On(b, c)  On(a, b) Clear(b) Clear(a) Table(a) Stack(a, b) On(a, b) On(b, c)  On(a, b) Table(a) Stack(a, b) On(a, b) On(b, c)  On(a, b) On(b, c)  On(a, b) On(a, b) On(b, c)  On(a, b) Table(b) Stack(b, c) On(b, c) On(b, c)  On(a, b) On(b, c)  On(a, b) On(a, b) On(b, c)  On(a, b) Unstack(a) Table(b) Stack(b, c) On(b, c) On(b, c)  On(a, b) On(b, c) On(b, c)  On(a, b) Stack(b, c) On(b, c) On(b, c)  On(a, b) Clear(a) Unstack(a) Table(b) Stack(b, c) On(b, c) On(b, c)  On(a, b) Unstack(c) Table(a) Stack(a, b) On(b, c) On(b, c)  On(a, b) Clear(a) Table(a) Stack(a, b) On(b, c) On(b, c)  On(a, b) Clear(b) Clear(a) Table(a) Stack(a, b) On(b, c) On(b, c)  On(a, b) On(a, b) On(b, c) On(b, c)  On(a, b) Table(a) Stack(a, b) On(b, c) On(b, c)  On(a, b) Clear(c) Unstack(c) Table(a) Stack(a, b) On(b, c) On(b, c)  On(a, b) Stack(a, b) On(b, c) On(b, c)  On(a, b) Clear(b) Table(b) Stack(b, c) On(b, c) On(b, c)  On(a, b) Table(b) Stack(b, c) On(b, c) On(b, c)  On(a, b) Clear(c) Clear(b) Table(b) Stack(b, c) On(b, c) On(b, c)  On(a, b) On(b, c) On(b, c)  On(a, b) C B A C B A C B A C B A C B A C B A

3 Rappresentazione per le azioni
Azioni come in STRIPS (qui visualizzate a grafo) Azione stack Azione unstack Clear(x) Clear(y) Table(x) Stack(x, y) Clear(y) On(x, y) Table(x) Clear(x) On(x, y) Unstack(x, y) Clear(y)  On(x, y) Table(x)

4 L’anomalia di Sussman PILA Clear(a) Table(a) Stack(a, b) On(a, b)
goal Stato iniziale PILA Clear(a) Table(a) Stack(a, b) On(a, b) On(b, c)  On(a, b) Stack(a, b) On(a, b) On(b, c)  On(a, b) Clear(b) Clear(a) Table(a) Stack(a, b) On(a, b) On(b, c)  On(a, b) Table(a) Stack(a, b) On(a, b) On(b, c)  On(a, b) On(b, c)  On(a, b) On(a, b) On(b, c)  On(a, b) Table(b) Stack(b, c) On(b, c) On(b, c)  On(a, b) On(b, c)  On(a, b) On(a, b) On(b, c)  On(a, b) Unstack(a) Table(b) Stack(b, c) On(b, c) On(b, c)  On(a, b) On(b, c) On(b, c)  On(a, b) Stack(b, c) On(b, c) On(b, c)  On(a, b) Clear(a) Unstack(a) Table(b) Stack(b, c) On(b, c) On(b, c)  On(a, b) Unstack(c) Table(a) Stack(a, b) On(b, c) On(b, c)  On(a, b) Clear(a) Table(a) Stack(a, b) On(b, c) On(b, c)  On(a, b) Clear(b) Clear(a) Table(a) Stack(a, b) On(b, c) On(b, c)  On(a, b) On(a, b) On(b, c) On(b, c)  On(a, b) Table(a) Stack(a, b) On(b, c) On(b, c)  On(a, b) Clear(c) Unstack(c) Table(a) Stack(a, b) On(b, c) On(b, c)  On(a, b) Stack(a, b) On(b, c) On(b, c)  On(a, b) Clear(b) Table(b) Stack(b, c) On(b, c) On(b, c)  On(a, b) Table(b) Stack(b, c) On(b, c) On(b, c)  On(a, b) Clear(c) Clear(b) Table(b) Stack(b, c) On(b, c) On(b, c)  On(a, b) On(b, c) On(b, c)  On(a, b) C B A C B A C B A C B A C B A C B A

5 Esempio di POP C B A Stato iniziale Start < Finish
Clear(c) Table(a) On(c, a) Clear(b) Table(b) Clear(c) On(c, a) Unstack(c, a) Clear(a)  On(c, a) Table(c) Stack(b, c) < Stack(a, b) minaccia Unstack(c,a) < Stack(b,c) Start < Finish Table(a) Clear(b) Clear(a) Stack(a, b) Clear(b) On(a, b) Clear(b) Clear(c) Table(b) Stack(b, c) Clear(c) On(b, c) C B A goal Finish NIL On(b, c) On(a, b)

6 POP: conclusione Abbiamo ottenuto un piano completo e consistente
Ogni linearizzazione è una soluzione In questo caso una sola: [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)

7 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

8 POP: algoritmo SELECT-SUBGOAL: una precondizione di un’azione non ancora soddisfatta non è importante l’ordine CHOOSE-OPERATOR: un modo di soddisfare la precondizione (con azioni esistenti o aggiungendo una nuova azione) soggetto a backtracking RESOLVE-THREATS: si controlla se esistono minacce e se possibile si rimuovono; altrimenti backtracking.

9 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

10 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


Scaricare ppt "Partial Order Planning (POP)"

Presentazioni simili


Annunci Google