Gli agenti per il problem solving Maria Simi a.a 2007/2008.

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture dati Mod B
Advertisements

Strutture dati per insiemi disgiunti
Estendere i linguaggi: i tipi di dato astratti
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2005/2006.
Ricerca euristica Maria Simi a.a. 2006/ /03/2017
Generazione di Piani attraverso Grafi di Pianificazione
Intelligenza Artificiale Simbolica
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Strutture dati elementari
Alberi binari di ricerca
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Teoria e Implementazione
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Algoritmi e Strutture Dati
Intelligenza Artificiale 1 Gestione della conoscenza lezione 5 Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
Esercizi su alberi binari
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati Alberi Binari di Ricerca.
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. A)
Algoritmi e Strutture Dati (Mod. B)
Ingegneria della conoscenza e sistemi esperti Dario Bianchi, 1999 Risoluzione di problemi e ricerca.
Intelligenza Artificiale Risoluzione di Problemi
Intelligenza Artificiale
Fibonacci Heaps e il loro utilizzo nell’algoritmo di Prim
Anche la RB-Delete ha due fasi: Nella prima viene tolto un nodo y avente uno dei sottoalberi vuoto sostituendolo con la radice dellaltro sottoalbero. Per.
Strutture dati per insiemi disgiunti
Agenti logici: calcolo proposizionale Maria Simi a.a. 2008/2009.
Strategie per il problem solving
Risoluzione di problemi e ricerca
Cammini minimi da un sorgente
Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
Algoritmi online Maria Simi, a.a. 2007/08 Problemi di esplorazione  Gli agenti per il problem-solving assumono:  ambienti deterministici e osservabili.
Ricerca euristica Maria Simi a.a. 2008/2009 Ricerca euristica  La ricerca esaustiva non è praticabile in problemi di complessità esponenziale  Noi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Oltre la ricerca classica Cap 4 – Ricerca locale, ricerca online Maria Simi a.a. 2014/2015.
Alberi Alberi radicati : alberi liberi in cui un vertice è stato scelto come radice. Alberi liberi : grafi non orientati connessi e senza cicli. Alberi.
Paola Disisto, Erika Griffini, Yris Noriega.  Insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce.
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.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
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.
Algoritmi elementari su grafi
Ricerca locale M. Simi, Algoritmi di ricerca locale  Efficienti in occupazione di memoria: tengono traccia solo dello stato corrente (non.
Intelligenza Artificiale Risoluzione di Problemi
Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Risoluzione dei Problemi Agostino Poggi Stefano Cagnoni.
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:
Ricerca euristica Maria Simi a.a. 2005/2006 Ricerca euristica  La ricerca esaustiva non è praticabile in problemi di complessità esponenziale  Noi.
Master Bioinformatica 2002: Visite di Grafi Algoritmi di visita Scopo: visitare tutti i vertici di un grafo per scoprirne proprietà di vario tipo. Alcune.
Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
Grafi: rappresentazione e visita
Algoritmi e Strutture Dati
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Ricerca locale Maria Simi Assunzioni sui problemi  Gli algoritmi visti esplorano gli spazi di ricerca alla ricerca di un goal e restituiscono.
Algoritmi e Strutture Dati HeapSort. Select Sort: intuizioni L’algoritmo Select-Sort  scandisce tutti gli elementi dell’array a partire dall’ultimo elemento.
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.
Ricerca euristica Maria Simi a.a. 2013/2014 Ricerca euristica  La ricerca esaustiva non è praticabile in problemi di complessità esponenziale  Noi.
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2013/2014.
Agenti risolutori di problemi
Transcript della presentazione:

Gli agenti per il problem solving Maria Simi a.a 2007/2008

Agenti risolutori di problemi  Adottano il paradigma della risoluzione di problemi come ricerca in uno spazio di stati  Sono particolari agenti con obiettivo, che pianificano l’intera sequenza di mosse prima di agire  Passi da seguire: 1. Determinazione obiettivo (un insieme di stati) 2. Formulazione del problema 3. Determinazione della soluzione mediante ricerca 4. Esecuzione del piano

Che tipo di assunzioni?  L’ambiente è statico  Osservabile  Discreto  un insieme finito di azioni possibili  Deterministico  Si assume che l’agente possa eseguire il piano “ad occhi chiusi”. Niente può andare storto.

Formulazione del problema 1. Stato iniziale 2. Funzione successore: Fn-succ: stato  { *} (1 e 2 definiscono lo spazio degli stati) 3. Test obiettivo: Goal-test: stato  {true, false} 4. C osto del cammino (somma dei costi delle azioni): Fn-costo-cammino Un problema può essere definito formalmente da 4 componenti:

Algoritmi di ricerca Gli algoritmi di ricerca prendono in input un problema e restituiscono un cammino soluzione, i.e. un cammino che porta dallo stato iniziale a uno stato goal  Misura delle prestazioni Trova una soluzione? quanto costa trovarla? quanto efficiente è la soluzione? Costo totale = costo della ricerca + costo del cammino soluzione

Itinerario (route finding): il problema

Itinerario: la formulazione  Stati: le città. Es. In(Pitesti)  Stato iniziale: la città da cui si parte. In(Arad)  Obiettivo: la città destinazione. In(Bucarest)  Azioni: spostarsi su una città vicina collegata Fn-succ(In(Arad)) = {,, …}  Costo del cammino: somma delle lunghezze delle strade  Lo spazio degli stati coincide con la rete di collegamenti tra città

Aspirapolvere (Vacuum world ): il problema Versione semplice: solo due locazioni, sporche o pulite, l’agente può essere in una delle due Percezioni: Dirt, No_dirt Azioni: Left, Right, Suck

Aspirapolvere: formulazione  Obiettivo: rimuovere lo sporco { 7, 8 }  Funzione di costo: ogni azione ha costo 1  Spazio degli stati :

Il puzzle dell’otto

Puzzle dell’otto: formulazione  Stati: configurazioni della scacchiera  Stato iniziale: una certa configurazione  Obiettivo: una certa configurazione Goal-Test: Stato obiettivo?  Azioni: mosse della casella bianca in sù:  in giù:  a destra:  a sinistra:   Costo cammino: ogni passo costa 1  Lo spazio degli stati è un grafo con possibili cicli.

Le otto regine: il problema Collocare 8 regine sulla scacchiera in modo tale che nessuna regina sia attaccata da altre

Le otto regine: formulazione incrementale 1  Stati: scacchiere con 0-8 regine  Goal-Test: 8 regine sulla scacchiera, nessuna attaccata  Costo cammino: zero  Azioni: aggiungi una regina 64  63  …  57 ~ 3  10 4 sequenze da considerare!

Le otto regine: formulazione incrementale 2  Stati: scacchiere con 0-8 regine, nessuna minacciata  Goal-Test: 8 regine sulla scacchiera, nessuna minacciata  Costo cammino: zero  Azioni: aggiungi una regina nella colonna vuota più a destra ancora libera in modo che non sia minacciata 2057 sequenze da considerare

Le 8 regine: formulazione a stato completo  Goal-Test: 8 regine sulla scacchiera, nessuna minacciata  Costo cammino: zero  Stati: scacchiere con 8 regine, una per colonna  Azioni: sposta una regina nella colonna, se minacciata

Dimostrazione di teoremi  Il problema: Dato un insieme di premesse {s, t, q  p, r  p, v  q, t  r, s  v} dimostrare una proposizione p  Nel calcolo proposizionale un’unica regola di inferenza, il Modus Ponens (MP): Se p e p  q allora q

Dim. teoremi: formulazione  Stati: insiemi di proposizioni  Stato iniziale: un insieme di proposizioni (le premesse).  Stato obiettivo: un insieme di proposizioni contenente il teorema da dimostrare. Es p.  Operatori: l’applicazione del MP, che aggiunge teoremi continua

Dim. teoremi: spazio degli stati {s, t, q  p, r  p, v  q, t  r, s  v} {s, t, q  p, r  p, v  q, t  r, s  v, v} {s, t, q  p, r  p, v  q, t  r, s  v, r} {s, t, q  p, r  p, v  q, t  r, s  v, v, q} {s, t, q  p, r  p, v  q, t  r, s  v, r, p} {s, t, q  p, r  p, v  q, t  r, s  v, v, q, p}

Ricerca della soluzione Generazione di un albero di ricerca sovrapposto allo spazio degli stati

Ricerca della soluzione Generazione di un albero di ricerca sovrapposto allo spazio degli stati

Strategia di ricerca function Tree-Search(problem, strategy) … loop do if non ci sono nodi da espandere then return failure scegli un nodo da espandere in base alla strategia if il nodo corrisponde a uno stato goal then return la soluzione corrispondente else espandi il nodo e aggiungi i successori all’albero di ricerca end Ovvero: quale nodo espandere tra quelli foglia?

I nodi dell’albero di ricerca Un nodo ha cinque componenti:  Uno stato  Il nodo genitore  L’operatore applicato per generarlo  La profondità del nodo  Il costo del cammino dal nodo iniziale al nodo Datatype node components: state, parent-node, operator, depth, path-cost

Struttura dati per la frontiera  Frontiera: lista dei nodi in attesa di essere espansi (le foglie dell’albero di ricerca).  La frontiera è implementata come una coda con operazioni:  Make-Queue  Empty?  First, Rest, RemoveFront  Insert, InsertAll  I diversi tipi di coda hanno diverse Insert

Algoritmo di ricerca function Tree-Search (problem, fringe) returns a solution or failure fringe  Insert(Make-Node(Initial-State[problem]), fringe)) loop do if Empty?(fringe) then return failure node  RemoveFront(fringe) if Goal-Test[problem] (State[node]) = true then return Solution(node) fringe  InsertAll(Expand(node, problem), fringe) end

Valutazione di una strategia  Completezza: se la soluzione esiste viene trovata  Ottimalità (ammissibilità): trova la soluzione migliore, con costo minore  Complessità nel tempo: tempo richiesto per trovare la soluzione  Complessità nello spazio: memoria richiesta

Strategie non informate  Ricerca in ampiezza  Ricerca di costo uniforme  Ricerca in profondità  Ricerca in profondità limitata  Ricerca con approfondimento iterativo Vs strategie di ricerca euristica (o informata): fanno uso di informazioni riguardo alla distanza stimata dalla soluzione

Ricerca in ampiezza Implementata con una coda che inserisce alla fine (FIFO)

Ricerca in ampiezza: analisi  Strategia completa  Strategia ottimale se gli operatori hanno tutti lo stesso costo k, cioè g(n) = k · depth(n), dove g(n) è il costo del cammino per arrivare a n  Assumendo b = fattore di diramazione (numero max di successori) d = profondità della soluzione più superficiale  Complessità nel tempo (nodi generati) b + b 2 + … + b d + (b d+1 – b)  O(b d+1 )  Complessità spazio (nodi in memoria): O(b d+1 )

Ricerca in ampiezza: esempio  Esempio: b=10; nodi al sec generati; 1 nodo occupa 1000 byte ProfonditàNodiTempoMemoria ,11 sec 11 sec 19 min 31 ore 129 giorni 35 anni 3523 anni 1 megabyte 106 megabyte 10 gigabyte 1 terabyte 101 terabyte 10 petabyte 1 exabyte

Ricerca di costo uniforme Generalizzazione della ricerca in ampiezza: si sceglie il nodo di costo minore sulla frontiera (si intende il costo del cammino) Implementata da una coda ordinata per costo crescente (in cima i nodi di costo minore)

Costo uniforme: analisi Ottimalità e completezza garantite purché il costo degli archi sia maggiore di  0. Nota: quando ogni azione ha lo stesso costo Uniform-search = Breadth-first Complessità: O(b 1+  C*/  ) C* è il costo della soluzione ottima (C*/  è il numero di mosse nel caso peggiore)

Ricerca in profondità Implementata da una coda che mette i successori in testa alla lista (LIFO, pila o stack).

Ricerca in profondità: analisi  Sem distanza massima della soluzione nello spazio di ricerca b fattore di diramazione  Tempo: O(b m+1 )  Occupazione memoria: bm + 1  Strategia non completa e non ottimale.  Drastico risparmio in memoria: BF d=12 10 petabyte DF d=12118 Kbyte

Ricerca con backtracking (ricorsiva)  Ancora più efficiente in occupazione di memoria perché mantiene solo il cammino corrente (solo m) function Recursive-DF(node, problem) returns a solution or failure if Goal-Test[problem](State[node]) then return Solution(node) else for each successor in Expand(node, problem) do result  Recursive_DF(successor, problem) if result ≠ failure then return result end return failure

Ricerca in profondità limitata (DL)  Si va in profondità fino ad un certo livello predefinito l  Completa per problemi in cui si conosce un limite superiore per la profondità della soluzione. Es. Route-finding limitata dal numero di città – 1  Completo: se d < l  Non ottimale  Complessità tempo: O(b l )  Complessità spazio: O(b. l )

DL ricorsivo function Recursive-DL(node, problem, limit) returns a solution or failure or cutoff cutoff-occurred?  false if Goal-Test[problem](State[node]) then return Solution(node) else if Depth[node] = limit then return cutoff else for each successor in Expand(node, problem) do result  Recursive_DL(successor, problem, limit) if result = cutoff then cutoff-occurred?  true else if result ≠ failure then return result end if cutoff-occurred? then return cutoff else return failure

Approfondimento iterativo (ID) Limite 0Limite 1Limite 2Limite 3

ID: analisi  Miglior compromesso tra BF e DF BF: b+b 2 + … +b d-1 +(b d+1 – b) con b=10 e d= ( – 10)=  ID: I nodi dell’ultimo livello generati una volta, quelli del penultimo 2, quelli del terzultimo 3 … quelli del primo d volte ID: (d)b+(d-1) b 2 + … +3b d-2 +2b d-1 +1b d = =  Complessità tempo: O(b d ) Spazio: O(b.d)

Direzione della ricerca Un problema ortogonale alla strategia è la direzione della ricerca:  ricerca in avanti o guidata dai dati: si esplora lo spazio di ricerca dallo stato iniziale allo stato obiettivo;  ricerca all’indietro o guidata dall’obiettivo: si esplora lo spazio di ricerca a partire da uno stato goal e riconducendosi a sotto-goal fino a trovare uno stato iniziale.

Quale direzione?  Conviene procedere nella direzione in cui il fattore di diramazione è minore  Si preferisce ricerca all’indietro quando:  l’obiettivo e chiaramente definito (th. pr.) o si possono formulare una serie limitata di ipotesi;  i dati del problema non sono noti e la loro acquisizione può essere guidata dall’obiettivo  Si preferisce ricerca in avanti quando:  gli obiettivi possibili sono molti (design)  abbiamo una serie di dati da cui partire

Ricerca bidirezionale Si procede nelle due direzioni fino ad incontrarsi

Ricerca bidirezionale: analisi  Complessità tempo: O(b d/2 ) (test intersezione in tempo costante, es. hash table)  Complessità spazio: O(b d/2 ) (almeno tutti i nodi in una direzione in memoria, es usando BF) NOTA: non sempre applicabile, es. predecessori non definiti, troppi stati obiettivo …

Confronto delle strategie CriterioBFUCDFDLIDBidir Tempo Spazio Ottimale? Completa? b d+1 si(*) si b 1+  C*/  si(**) b m no b l b. l no si (+) b d si(*) si b d/2 si (*) se gli operatori hanno tutti lo stesso costo (**) per costi degli archi   > 0 (+) per problemi per cui si conosce un limite alla profondità della soluzione (se l >d)

Evitare stati ripetuti Su spazi di stati a grafo si generano più volte gli stessi nodi nella ricerca. Come evitare di visitare nodi già visitati?

Compromesso tra spazio e tempo  Ricordare gli stati già visitati occupa spazio ma ci consente di evitare di visitarli di nuovo  Gli algoritmi che dimenticano la propria storia sono destinati a ripeterla!

Tre soluzioni Tre tecniche in ordine crescente di costo e di efficacia:  Non tornare nello stato da cui si proviene: si elimina il genitore dai nodi successori;  Non creare cammini con cicli: si controlla che i successori non siano antenati del nodo corrente;  Non generare nodi con stati già visitati: ogni nodo visitato deve essere tenuto in memoria per una complessità O(b d ), o meglio O(s) dove s è il numero di stati possibili (hash table).

Ricerca su grafi  Mantiene una lista dei nodi visitati (closed)  Prima di espandere un nodo si controlla se lo stato era stato già incontrato prima  Se questo succede il nodo appena trovato non viene espanso  Ottimale solo se abbiamo la garanzia che il costo del nuovo cammino è maggiore  Altrimenti necessario aggiornamento

L’algoritmo di ricerca su grafi

Ricerca con informazione parziale La conoscenza degli stati e dell’effetto delle azioni può essere incompleta. 1. Problemi senza sensori (sensorless)  un insieme di stati possibili 2. Problemi con contingenza  effetto delle azioni incerto (non deterministico o con avversario) 3. Problemi di esplorazione  servono azioni per acquisire informazioni

Il mondo dell’aspirapolvere senza sensori

Problemi con contingenza e di esplorazione  Aspirapolvere con sensori difettoso: che qualche volta deposita sporco se casella pulita  Vanno considerati tutti i possibili effetti  Piano condizionale (prevede le possibili contingenze)  Alternanza di pianificazione e azione (o ricerca ed esecuzione) è tipica dei giochi con avversario  I problemi di esplorazione sono casi estremi di problemi con contingenza in cui l’agente deve anche pianificare azioni esplorative