Partial Order Planning (POP)

Slides:



Advertisements
Presentazioni simili
Ricorsione Procedure e funzioni ricorsive. Definizioni Un oggetto si dice ricorsivo se è definito totalmente o parzialmente in termini di sé stesso La.
Advertisements

Procedure e funzioni ricorsive
Lez. 11 (11/12) - PBElementi di Programmazione1 Lezione 11 Esercizi.
Lez. 11 (10/11) - PBElementi di Programmazione1 Lezione 11 Esercizi.
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2005/2006.
Generazione di Piani attraverso Grafi di Pianificazione
Strutture dati elementari
1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.
Ordinamento di una lista: bubble-sort
APPUNTI SUL LINGUAGGIO C
Programmazione di Calcolatori
Algoritmi online Maria Simi, a.a. 2007/08 Problemi di esplorazione  Gli agenti per il problem-solving assumono:  ambienti deterministici e osservabili.
Oltre la ricerca classica Cap 4 – Ricerca locale, ricerca online Maria Simi a.a. 2014/2015.
Algoritmi e Strutture Dati Strutture Dati Elementari.
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2008/2009.
Pianificazione Maria Simi, Il filo conduttore [AIMA]  Agente per il problem solving: agente che decide la sequenza di azioni prima di agire.
1 Capitolo 3: Vincoli a dominio finito. 2 Vincoli a dominio finito u Problemi di soddisfazione di vincoli u Un risolutore con backtracking u Consistenza.
Ricerca locale M. Simi, Algoritmi di ricerca locale  Efficienti in occupazione di memoria: tengono traccia solo dello stato corrente (non.
Pianificazione Maria Simi, Il filo conduttore [AIMA]  Agente per il problem solving: agente che decide la sequenza di azioni prima di agire.
Master Bioinformatica 2002: Visite di Grafi La struttura dati D è una PILA (STACK) Visita in profondità o Depth-First-Search (DFS)
Gli agenti per il problem solving Maria Simi a.a 2007/2008.
Pianificazione Maria Simi, AIMA – Cap 10.
Ricerca locale Maria Simi Assunzioni sui problemi  Gli algoritmi visti esplorano gli spazi di ricerca alla ricerca di un goal e restituiscono.
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2011/2012.
Agenti risolutori di problemi Risolvere i problemi mediante ricerca Maria Simi a.a 2013/2014.
Ricerca online Maria Simi a.a. 2011/2012 Ambienti più realistici  Gli agenti risolutori di problemi “classici” assumono:  Ambienti completamente osservabili.
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2013/2014.
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2010/2011.
1 ELEMENTI DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Somme prefisse Lezione n°2.
Il piano economico-finanziario Traccia del documento di presentazione del piano economico – finanziario.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Branch and Bound Lezione n°14 Prof.ssa Rossella Petreschi
PROGRAMMAZIONE SHELL -
Write-only, read-only.
La funzione Path e le forme a cespuglio
Agenti risolutori di problemi
10. Programmazione Ricorsiva Ing. Simona Colucci
Lezione n°15 Prof.ssa Rossella Petreschi
Le postcondizioni specificano l’output della funzione.
Cammini minimi tra tutte le coppie
I FILES AD ACCESSO SEQUENZIALE
PROGRAMMAZIONE BASH – ISTRUZIONE IF
Usi (meno scontati) della visita DFS
Linearizzazione di un sensore
Paths, tree and flowers Lezione n°14
Esempio: Map-Coloring
K4 è planare? E K3,3 e K5 sono planari? Sì!
per rappresentare grafi
WEB MKTG INTERNET Mercato virtuale
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Linearizzazione di un sensore
Scrivere programmi corretti
Ricorsione 16/01/2019 package.
Nome e numero del corso Docente Nomi dei membri del gruppo
Algoritmo InsertionSort
PO Flip Training Jabil P2P Implementation
Schema generale, visita in ampiezza e profondità.
Nome e numero del corso Docente Nomi dei membri del gruppo
Astrazione e Concretizzazione
Backtracking Lezione n°17 Prof.ssa Rossella Petreschi
Partial Order Planning (POP)
Algoritmi e Strutture Dati
Analisi ammortizzata Lezione n°2
La programmazione strutturata
Algoritmi.
Ese 3 (del 3 Aprile 2003).
Transcript della presentazione:

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

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

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)

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

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)

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)

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 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.

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