Pianificazione Maria Simi, 2005-2006 Il filo conduttore [AIMA]  Agente per il problem solving: agente che decide la sequenza di azioni prima di agire.

Slides:



Advertisements
Presentazioni simili
Sommario Nelle lezioni precedenti abbiamo introdotto tutti gli elementi che formano un particolare tipo di linguaggio logico, denominato linguaggio predicativo.
Advertisements

Linguaggi di programmazione
Problema e algoritmo Prof. Baldassare Galia 2002.
Specifiche Algebriche Modello Iniziale Versione 1.0 Gianna Reggio

Problemi di soddisfacimento di vincoli Maria Simi a.a. 2005/2006.
La Rappresentazione della Conoscenza
Agenti logici: la logica del prim’ordine
Linguaggi di Programmazione (AA 2002/2003)
ODE PROBLEMA DI CAUCHY IN 1-D Sia f : I x RR, I  R.
Lez. 121 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Progettazione.
Generazione di Piani attraverso Grafi di Pianificazione
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Il ragionamento classico
Il ragionamento non monotono
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Gestione dei dati e della conoscenza (agenti intelligenti) M.T. PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 7 Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 8
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
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.
CORSO DI PROGRAMMAZIONE II Introduzione alla ricorsione
Algoritmi e Strutture Dati (Mod. B)
CORSO DI MODELLI DI SISTEMI BIOLOGICI
Progettazione dei sistemi interattivi (A.A. 2004/05) - Lezione 3 1 La relazione di ereditarietà Punto di vista insiemistico: la relazione di ereditarietà
Intelligenza Artificiale
Ingegneria della conoscenza e sistemi esperti Dario Bianchi, 1999 Risoluzione di problemi e ricerca.
Programmazione logica
Intelligenza Artificiale - AA 2001/2002 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
Studio funzioni Premesse Campo esistenza Derivate Limiti Definizione di funzione Considerazioni preliminari Funzioni crescenti, decrescenti Massimi,
Metodo della moltiplicazione
Agenti logici: sistemi a regole
Agenti logici: calcolo proposizionale Maria Simi a.a. 2008/2009.
Cammini minimi da un sorgente
Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Gestione della conoscenza Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Algoritmi online Maria Simi, a.a. 2007/08 Problemi di esplorazione  Gli agenti per il problem-solving assumono:  ambienti deterministici e osservabili.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
La logica Dare un significato preciso alle affermazioni matematiche
Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2008/2009.
1 Interpretazione astratta: un approccio sistematico all’analisi statica.
Pianificazione Maria Simi, Il filo conduttore [AIMA]  Agente per il problem solving: agente che decide la sequenza di azioni prima di agire.
Esecuzione di un Programma [P] Una computazione corrisponde al tentativo di dimostrare, tramite la regola di risoluzione, che una formula (goal) segue.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Risoluzione dei Problemi (parte 2) Agostino Poggi.
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
1 Vincoli ‘Programming with constraints’ Capitolo 1.
AOT Lab Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Rappresentazione della Conoscenza e Ragionamento.
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
1 Metodologie di Programmazione = decomposizione basata su astrazioni.
Intelligenza Artificiale 1 Gestione della conoscenza lezione 14 Prof. M.T. PAZIENZA a.a
1 Ordinamento (Sorting) Input: Sequenza di n numeri Output: Permutazione π = tale che: a i 1  a i 2  ……  a i n Continuiamo a discutere il problema dell’ordinamento:
Agenti logici: calcolo proposizionale Maria Simi a.a. 2006/2007.
Algoritmi e Strutture Dati
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.
Ricerca online Maria Simi a.a. 2011/2012 Ambienti più realistici  Gli agenti risolutori di problemi “classici” assumono:  Ambienti completamente osservabili.
Introduzione alla LOGICA MATEMATICA Corso di Matematica Discreta. Corso di laurea in Informatica. Prof. Luigi Borzacchini III. La logica delle proposizioni.
Partial Order Planning (POP)
Partial Order Planning (POP)
Transcript della presentazione:

Pianificazione Maria Simi,

Il filo conduttore [AIMA]  Agente per il problem solving: agente che decide la sequenza di azioni prima di agire (ambiente accessibile)  Agente basato su conoscenza: sceglie le azioni sulla base di una rappresentazione esplicita degli stati e dell’effetto delle azioni (ambiente complesso e inaccessibile)  Agente pianificatore: è un agente che pianifica ma usando conoscenza esplicita delle azioni e del loro effetto e quindi è anche un agente KB

Pianificazione vs problem solving  Un PS agent  Azioni : capacità di generare i successori di uno stato  Obiettivi: goal test (la rappresentazione del goal è implicita)  Pianificazione: ottenere, mediante un processo di ricerca euristica, una sequenza di azioni che portano dallo stato iniziale allo stato goal  Un agente pianificatore  ha una rappresentazione esplicita dell’obiettivo, delle azioni e loro effetto  può decomporre il goal in sotto-goal indipendenti  ha libertà nella costruzione del piano  Un agente pianificatore può essere più efficiente

Un esempio Goal: Procurati del latte, delle banane e un trapano

Di cosa parleremo  Pianificazione come dimostrazione di teoremi  Il calcolo di situazioni  Il frame problem  Problemi di rappresentazione collegati e inefficienza  Pianificazione con algoritmi specializzati  Rappresentazione delle azioni in STRIPS  Pianificazione come ricerca in uno spazio di stati (STRIPS)  Pianificazione come ricerca in uno spazio di piani (POP)

Il calcolo di situazioni  Una particolare ontologia che tratta di stati, cambiamento, azioni:  Stati: fotografie del mondo in un certo istante  Proprietà dipendenti dallo stato  Azioni  Cambiamento per effetto di azioni  Il calcolo di situazioni è una formalizzazione in FOL di questa ontologia [Mc Carthy, 69]

Il calcolo di situazioni nel mondo dei blocchi  Stati: s, s 0, s 1, s 2 …  Proprietà dipendenti dallo stato: On, Table, Clear …  On(a, b) diventa On(a, b, s)  Azioni: move(a, b, c) è una funzione che denota l’azione di spostare il blocco A da B a C (istanza dell’operatore move)

Stati risultanti dalle azioni  Effetto delle azioni: Do: A  S  S  Do(move(a, b, c), s 0 ) denota lo stato risultante dall’azione move(a, b, c) compiuta in s 0 C B A S0S0 C B A S1S1  Move(b, a, c)

Assiomi per l’effetto delle azioni  Sono del tipo: precondizioni  effetto  x  y  z  s On(x, y, s)  Clear(x, s)  Clear(z, s)  x  z  On(x, z, Do(Move(x, y, z), s))  Clear(y, Do(Move(x, y, z), s))  Altri effetti, ad esempio  Clear(z, Do(Move(x, y, z), s)) sono ricavabili da vincoli di stato del tipo  x  s Clear(x, s)   y On(y, x, s) “Un blocco è libero sse non c’è niente sopra”  Ma nel nuovo stato …  y è o no sul tavolo? x è o no libero?

C'è un problema...  Nello stato risultante non si sa niente delle cose che erano vere (o false) prima dell’azione e che rimangono vere (o false) perché non influenzate. E queste sono la maggioranza!  Esempio. Se Table(a, s) non si deriva Table(a, Do(move(b, a, c), s)) eppure si sposta solo b!

Ilframe problem  Il problema del contorno (frame problem): uno dei problemi più classici dell’AI [McCarthy- Hayes, 1969]  Analogia col mondo dell'animazione: il frame problem è il problema di distinguere il background (che rimane fisso) dal foreground (che cambia).

Assiomi frame  Clear rispetto a move: Clear(x, s)  x  w  Clear(x, Do(Move(y, z, w), s)) Un blocco rimane libero se l’azione non ci sposta qualcosa sopra  Clear(x, s)  x  z   Clear(x, Do(Move(y, z, w), s)) Un blocco rimane occupato a meno che non sia liberato dall’azione  In maniera analoga per ogni coppia proprietà-azione  troppi assiomi!!!

Un problema computazionale  Si possono anche scrivere in maniera più compatta in un modo che combina effetto e frame axiom (es. AIMA): Vero dopo  [un'azione l'ha reso vero  era vero e nessun azione l'ha reso falso] Clear(x, Do(a, s))  [(a=Move(y, x, z))  (a=Unstack(y, x))  (a=Noop)]  [Clear(x, s)  (a  Move(z, w, x))  (a  Stack(z,x))]  Il problema sostanziale è la complessità computazionale  La nozione di “persistenza” non è catturabile facilmente in logica classica

Approccio non-monotono al frame problem  L’idea: implementare una nozione di persistenza: in assenza di informazione in contrario (per default) le cose rimangono come erano.  Un unico frame axiom (con la rappresentazione reificata):  p, a, s True(p, s)   Ab(p, a, s)  True(p, Do(a, s)) dove  Ab(p, a, s) vale a meno che Ab(p, a, s) non sia derivabile (Ab sta per ‘Abnormal’)  La teoria dovrà avere gli assiomi necessari per derivare ad esempio Ab(Clear(x), Do(Stack(y, x), s))

Problemi correlati  Il problema della qualificazione: in casi reali non è semplice elencare tutte le precondizioni rilevanti: Clear(x)  Clear(z)  y  z   Pesante(x)   Incollato(x)   Bollente(x)  …  effetti di move  Il problema della ramificazione: quali delle proprietà derivate persistono e quali no?  Sappiamo che gli oggetti appoggiati su un tavolo sono nella stanza in cui si trova il tavolo  Se si sposta il tavolo da una stanza all’altra anche gli oggetti sopra il tavolo devono cambiare locazione ma i frame axiom potrebbero far persistere la vecchia locazione

Pianificazione come dimostrazione di teoremi  Per generare una sequenza di azioni p per raggiungere l’obiettivo G, si cerca di dimostrare che  p G(Do’(p, s 0 )), dove Do’ è una estensione di Do a sequenze di azioni  Il pianificatore di Green, ad esempio, usa refutazione  Problemi  Complesso per varie sorgenti di non determinismo:  lunghezza incognita della sequenza delle azioni  frame axiom che deducono molte cose irrilevanti  strategie ad hoc necessarie, ma fanno perdere la completezza  Un theorem prover generale è inefficiente e semidecibile  Nessuna garanzia sull'efficienza del piano generato

Pianificatori specializzati  Linguaggio di STRIPS  Rappresentazione specializzata per gli stati:  un insieme di formule atomiche ground positive, prive di funzioni  Tutto ciò che non è detto viene considerato falso (assunzione del mondo chiuso) Es. On(a, b), Clear(a), Table(b)  Rappresentazione del goal  congiunzione di formule atomiche ground positive Es. On(b, a)  On(c, b)

Rappresentazione per le azioni  Azioni: espresse mediante operatori (o schemi di azione) Stack(x, y) Precondizioni: Clear(x), Table(x), Clear(y)precondizioni Effetti: Add-list: On(x, y)effetto positivo Delete-list: Table(x), Clear(y)effetto negativo Unstack(x, y) Precondizioni: Clear(x), On(x, y)precondizioni Effetti: Add-list: Table(x), Clear(y)effetto positivo Delete-list: On(x, y) effetto negativo

Rappresentazione per le azioni  Tutte le variabili nella precondizione e nell'effetto devono apparire come parametri dell'azione  Assunto di STRIPS: i letterali non menzionati nell'effetto si intendono non modificati  Conseguenza: vanno menzionati esplicitamente tutti i cambiamenti; anche quelli "derivabili" in un linguaggio più ricco, che consente di esprimere vincoli di stato

Pianificazione come ricerca  Lo spazio di ricerca è definito da che cosa sono gli stati e gli operatori:  Pianificazione come theorem proving: stati come insiemi di formule e operatori come regole di inferenza  Pianificazione nello spazio degli stati: stati come descrizioni di situazioni e operatori come modifiche dello stato  Pianificazione nello spazio dei piani: stati come piani parziali e operatori di raffinamento e completamento di piani

Pianificazione nello spazio degli stati  Pianificazione in avanti (a progressione) o all'indietro (a regressione)  Un esempio è STRIPS: un pianificatore che ricerca all’indietro dal goal nello spazio delle situazioni  Utilizza una pila in cui all’inizio viene messo il goal; ha una nozione di stato corrente, all’inizio lo stato iniziale del problema  Ad ogni passo, per risolvere un goal, cerca di utilizzare un operatore che rende vero il goal e di renderne vere le pre-condizioni (che diventano dei sotto-goal)

Esempio di funzionamento di STRIPS C B A Stato iniziale On(c, b)  Table(a)  Table (b) Table (b) Table(a) On(c, b) PILA C B A Stato corrente C B A C B A goal C B A Stato corrente Table(a) On(c, b) Clear(a) Unstack(a) Table(a) On(c, b) Unstack(a) Table(a) On(c, b) Table(a) On(c, b) Clear(c) Clear(b) Stack(c, b) On(c, b) Clear(b) Stack(c, b) On(c, b) Stack(c, b) On(c, b)

On(b, c)  On(a, b) On(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) Clear(a) 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) Unstack(c) Table(a) Stack(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) Stack(a, b) On(b, c) On(b, c)  On(a, b) 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) 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(a) Unstack(a) Table(b) Stack(b, c) On(b, c) On(b, c)  On(a, b) Unstack(a) 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) Stack(b, c) On(b, c) On(b, c)  On(a, b) On(b, c) On(b, c)  On(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) 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) Stack(a, b) On(a, b) On(b, c)  On(a, b) On(a, b) On(b, c)  On(a, b) C B A L’anomalia di Sussman C B A goal C B A Stato iniziale PILA C B A C B A C B A C B A C B A

L’anomalia di Sussman  Il piano generato è: [Unstack(c), Stack(a, b), Unstack(a), Stack(b, c), Stack(a,b)]  Un altro piano generabile è: [Stack(b, c), Unstack(b), Unstack(c), Stack(a, b), Unstack(a), Stack(b, c), Stack(A,B)]  Il piano ideale non ottenibile con pianificazione “lineare”: [Unstack(c), Stack(b, c), Stack(a, b)]

Euristiche per la pianificazione  Cercare di stimare quante azioni servono a soddisfare tutti i goal (ogni azione costa 1)  Numero di sotto-obiettivi ancora da soddisfare  Ottimista, tutte le azioni applicabili (trascura precondizioni)  Considera sotto-obiettivi indipendenti: ottimista, trascura interazioni negative; pessimista, ci sono azioni che possono risolvere più obiettivi  Euristica della empty-delete-list  Si trascurano gli effetti negativi delle azioni e si valuta quante azioni servono considerando solo gli effetti positivi  Efficace in pianificatori a progressione

ADL (Action Description Language)  Più espressivo di STRIPS  StatI: letterali positivi e negativi negli stati (OWA)  Azioni  Variabili con tipo. es. x: Blocco  Predicato di uguaglianza predefinito  Effetto "P e ¬Q" significa "aggiungi P e ¬Q" e cancella gli eventuali ¬P e Q  Sono permessi effetti condizionali. Cond: effetto  Obiettivi: ammettono esistenziali, disgiunzioni (On(x, a)  Clear(x))  Clear(a) esiste un x tale che...

Pianificazione nello spazio dei piani  Piani parzialmente ordinati  Principio del minimo impegno: non ordinare i passi se non necessario  Pianificatore con ordine parziale: i passi sono parzialmente ordinati.  Linearizzazione di un piano: imporre un ordine totale a un piano parzialmente ordinato  Piani parzialmente istanziati  Principio del minimo impegno: lasciare le variabili non istanziate finché non è necessario istanziarle  Un piano senza variabili si dice totalmente istanziato

Partial Order Planning (POP)  Si parte da un piano generico  Ad ogni passo si utilizzano operatori  di aggiunta di passi per soddisfare precondizioni  di istanziazione di variabili  di ordinamento tra passi  Fino ad arrivare a un piano completo e consistente (tutte le precondizioni soddisfatte e vincoli non violati)  Ogni sua linearizzazione è una soluzione

Azioni Start e Finish T Start Finish NIL Fatti veri nello stato iniziale Fatti che devono essere veri nello stato goal

Rappresentazioni per i piani I piani sono: 1. Un insiemi di passi con precondizioni "aperte" 2. Vincoli di due tipi tra i passi  Relazioni di ordinamento: S 1 < S 2 (S 1 prima di S 2 )  Link causali: S 1 cond  S 2 (S 1 realizza cond per S 2 ) Nota: Se S 1 cond  S 2 allora S 1 < S 2 ma non viceversa Esempio: {Unstack(a, b), Unstack(c, d), Stack(b, a), Stack(d, c)} Unstack(a, b) < Stack(b, a) Unstack(a, b) Clear(b)  Stack(b, a) Unstack(c, d) < Stack(d, c) Unstack(c, d) Clear(d)  Stack(d, c)

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

Esempio di POP T Start Clear(c)Table(a) On(c, a) Clear(b) Table(b) C B A goal C B A Stato iniziale Finish NIL On(b, c)On(a, b)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) Clear(c)On(c, a) Unstack(c, a) Clear(a)  On(c, a) Table(c) minaccia Unstack(c,a) < Stack(b,c) Stack(b, c) < Stack(a, b) Start < Finish

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 S need, c  SELECT-SUBGOAL(plan) CHOOSE-OPERATOR(plan, operators, S need, 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) S 3 minaccia la precondizione c di S 2, attuata da S 1 (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

Pianificazione in ambienti reali  Gli ambienti reali sono:  Complessi  Non accessibili (incompletezza)  Non deterministici (non correttezza)  Evoluzioni delle tecniche di pianificazione:  Pianificazione gerarchica per dominare la complessità  Pianificazione condizionale (o con contingenza)  Monitoraggio dell’esecuzione di un piano  Pianificazione “situata” (integrazione di pianificazione ed esecuzione)