Risoluzione di problemi e ricerca

Slides:



Advertisements
Presentazioni simili
Strutture dati per insiemi disgiunti
Advertisements

Algoritmi e Strutture Dati
Liste di Interi Esercitazione. Liste Concatenate Tipo di dato utile per memorizzare sequenze di elementi di dimensioni variabile Definizione tipicamente.
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2005/2006.
Intelligenza Artificiale Simbolica
RB-alberi (Red-Black trees)
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Alberi binari di ricerca
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Teoria e Implementazione
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Gestione dei dati e della conoscenza (agenti intelligenti) M.T. PAZIENZA a.a
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
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 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
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmi e strutture Dati - Lezione 7
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Interrogazioni su un albero binario di ricerca Search(S,k) – dato un insieme S ed un valore chiave k restituisce un puntatore x ad un elemento in S tale.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. A)
Heap binari e HeapSort.
Ingegneria della conoscenza e sistemi esperti Dario Bianchi, 1999 Risoluzione di problemi e ricerca.
Intelligenza Artificiale Risoluzione di Problemi
Intelligenza Artificiale
Elementi di Informatica di base
Intelligenza Artificiale
Intelligenza Artificiale
Algoritmi e Strutture Dati
Problemi con soddisfacimento dei vincoli
Slides Intelligenza Artificiale, Vincenzo Cutello
3. Forma Strategica e ricerca dell’equilibrio
Grafi Rappresentazione mediante liste di adiacenza:
Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
Algoritmi e Strutture Dati Luciano Gualà
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.
Alberi Alberi radicati : alberi liberi in cui un vertice è stato scelto come radice. Alberi liberi : grafi non orientati connessi e senza cicli. Alberi.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
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.
Esecuzione di un Programma [P] Una computazione corrisponde al tentativo di dimostrare, tramite la regola di risoluzione, che una formula (goal) segue.
1 Ordinamento (Sorting) INPUT: Sequenza di n numeri OUTPUT: Permutazione π = tale che a 1 ’  a 2 ’  … …  a n ’ Continuiamo a discutere il problema dell’ordinamento:
Algoritmi e strutture Dati - Lezione 7 1 Algoritmi di ordinamento ottimali L’algoritmo Merge-Sort ha complessità O(n log(n))  Algoritmo di ordinamento.
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.
Ricerca locale M. Simi, Algoritmi di ricerca locale  Efficienti in occupazione di memoria: tengono traccia solo dello stato corrente (non.
Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale Risoluzione di Problemi
Intelligenza Artificiale 1 Gestione della conoscenza lezione 4 Prof. M.T. PAZIENZA a.a
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:
Gli agenti per il problem solving Maria Simi a.a 2007/2008.
Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Sesta giornata Risolvere efficientemente un problema in P: Il problema dell’ordinamento: Insertion.
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.
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.
Algoritmi e Strutture Dati Luciano Gualà
Transcript della presentazione:

Risoluzione di problemi e ricerca Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello Outline Agenti risolutori di problemi Tipi di problema Formulazione del problema Esempi di problemi Algoritmi di base per la ricerca Slides Intelligenza Artificiale, Vincenzo Cutello

Agenti risolutori di problemi Forma ristretta di un agente generale function SIMPLE-PROBLEM-SOLVING-AGENT(p) returns un azione Inputs: p, una percezione Static: s, una sequenza di azioni, inizialmente vuota state, una qualche descrizione dello stato corrente del mondo g, un obiettivo, inizialmente nullo problem, una formulazione del problema state  UPDATE-STATE(state,p) if s è vuota then g  FORMULATE-GOAL(state) problem  FORMULATE-PROBLEM(state,g) s  SEARCH(problem) action  RECOMMENDATION(s,state) s  REMAINDER(s,state) Return action Nota: questa è una risoluzione di problema offline La risoluzione di problemi online implica azioni senza una completa conoscenza del problema e della soluzione Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello Esempio: Canada Dawson Whitehorse Churchill St. John’s Edmonton Quèbec Winnipeg Calgary Halifax Regina Ottawa Vancouver Montreal Slides Intelligenza Artificiale, Vincenzo Cutello Toronto

Slides Intelligenza Artificiale, Vincenzo Cutello Esempio: Canada Vacanza in Canada; attualmente a Whitehorse. Il volo parte domani da Ottawa Formulazione dell’obiettivo: essere ad Ottawa Formulazione del problema: stati: la varie città operatori: guidare da una città all’altra Trovare la soluzione: sequenza di città, cioè, Whitehorse, Edmonton, Winnipeg, Ottawa Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello Tipi di problema Deterministico, accessibile  problema a stato singolo Deterministico, inaccessibile  problema a stato multiplo Nondeterministico, inaccessibile  problema di contingenza è necessario l’uso di sensori durante l’esecuzione la soluzione è un albero spesso ricerca interleave, esecuzione Spazio degli stati sconosciuto  problema di esplorazione (“online”) Slides Intelligenza Artificiale, Vincenzo Cutello

Esempio: il mondo dell’aspirapolvere Stato singolo, inizia al #5 Soluzione ?? Stato multiplo, inizia al {1,2,3,4,5,6,7,8} Cioè, Destra va al {2,4,6,8} Contingenza, inizia al #5 Legge di Murphy: si può sporcare un tappeto pulito Sensori locali: presenza e posizione della polvere. 1 2 3 4 5 6 7 8 Slides Intelligenza Artificiale, Vincenzo Cutello

Formulazione del problema a stato singolo Un problema è definito da quattro elementi: Stato iniziale cioè, “a Whitehorse” Operatori (o funzione successore S(x)) cioè, Whitehorse  Dawson Whitehorse  Vancouver etc. Verifica dell’obiettivo, può essere esplicito, cioè, x = “a Ottawa” implicito, cioè, Non_Sporco(x) Costo del cammino (additivo) cioè, somma delle distanze, numero di operatori eseguiti, etc. Una soluzione è una sequenza di operatori che conduce dallo stato iniziale allo stato obiettivo Slides Intelligenza Artificiale, Vincenzo Cutello

Selezionando uno spazio degli stati Il mondo reale è assurdamente complesso quindi lo spazio degli stati deve essere astratto per la risoluzione del problema (Astratto) stato = insieme di stati reali (Astratto) operatore = combinazione complessa di stati reali cioè, “Whitehorse  Dawson” rappresenta un insieme complesso di rotte, fermate, etc. Per garantire la realizzabilità, a un qualsiasi stato reale “a Whitehorse” deve corrispondere un qualche stato reale “a Dawson” (Astratto) soluzione = l’insieme dei percorsi reali che sono soluzione nel mondo reale Ogni azione astratta dovrebbe essere più facile rispetto al problema originale Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello Esempio: Il puzzle a 8 5 4 6 1 8 7 3 2 1 2 3 8 4 7 6 5 Stato iniziale Stato finale Stati ??: Posizioni intere delle tessere (ignoriamo le posizioni intermedie) Operatori ??: Muovi il bianco a sinistra, destra, sopra, sotto Verifica dell’obiettivo ??: = stato obiettivo (dato) Costo del cammino ??: 1 per mossa Nota: La soluzione ottima per la famiglia dei puzzle a n è NP-hard Slides Intelligenza Artificiale, Vincenzo Cutello

Grafo dello spazio degli stati per il mondo dell’aspirapolvere Stati ??: Locazione dello sporco e del robot (ignoriamo la quantità di sporco) Operatori ??: Sinistra, Destra, Aspira Verifica dell’obiettivo ??: assenza di sporco Costo del cammino ??: 1 per operatore Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello Esempi: Il problema delle 8 regine; Criptoaritmetica undici + dieci = ventuno; Missionari e cannibali (capre e cavoli); Per ognuno: Stati – Operatori – Obiettivo - Costo Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello Esempio: Il problema delle 8 regine; Stati ?? Operatori ?? Obiettivo ?? Costo ?? Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello Esempi: Criptoaritmetica undici + dieci = ventuno; Missionari e cannibali (capre e cavoli); Per ognuno: Stati – Operatori – Obiettivo - Costo Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello Esempio: SOKOBAN; Stati ?? Operatori ?? Obiettivo ?? Costo ?? Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello Algoritmi di ricerca Idea di base: offline, esplorazione simulata dello spazio degli stati tramite la generazione di successori di stati già esplorati function GENERAL-SEARCH(problem,strategy) returns una soluzione, o un fallimento inizializza l’albero di ricerca usando lo stato iniziale del problema loop do if non ci sono candidati per l’espansione then return fallimento scegli una foglia per l’espansione in accordo alla strategia if il nodo contiene uno stato obiettivo then return la soluzione corrispondente else espandi il nodo, aggiungendo i nodi risultanti all’albero di ricerca end Slides Intelligenza Artificiale, Vincenzo Cutello

Esempio di ricerca generale Whitehorse Edmonton Dawson Vancouver Whitehorse Winnipeg Calgary Churchill Regina Churchill Ottawa Toronto Slides Intelligenza Artificiale, Vincenzo Cutello

Implementazione di algoritmi di ricerca function GENERAL-SEARCH(p:problem, QUEUING-FN) returns una soluzione o fallimento nodi  MAKE-QUEUE(MAKE-NODE(INITIAL-STATE[p])) loop do if nodi è vuoto then return fallimento nodo  REMOVE-FRONT(nodi) if GOAL-TEST[p] applicato a STATE(nodo) si verifica then return nodo nodi  QUEUING-FN(nodi, EXPAND(nodo,OPERATORS[p])) end Slides Intelligenza Artificiale, Vincenzo Cutello

Implementazione: stati vs. nodi Uno stato è una (rappresentazione di) una configurazione fisica Un nodo è una struttura dati che costituisce una parte dell’albero di ricerca Include genitore, figli, profondità o costo del cammino g(x) Gli stati non hanno genitori, figli, profondità, o costo del cammino ! genitori 5 4 6 1 8 7 3 2 profondità = 6 g = 6 stato figli La funzione EXPAND crea nuovi nodi, riempendo i vari campi e usando OPERATORS (o SuccessorsFn) del problema per creare gli stati corrispondenti. Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello Strategie di ricerca Una strategia è definita stabilendo l’ordine di espansione dei nodi. Le strategie sono valutate mediante i seguenti criteri: completezza – la soluzione viene sempre trovata se questa esiste ? complessità temporale – numero di nodi generati/espansi complessità spaziale – massimo numero di nodi in memoria ottimalità – viene sempre trovata la soluzione meno costosa ? La complessità spaziale e temporale sono misurate in termini di b – massimo fattore di ramificazione dell’albero di ricerca d – profondità della soluzione meno costosa m – massima profondità dello spazio degli stati (potrebbe essere infinito) Slides Intelligenza Artificiale, Vincenzo Cutello

Strategie di ricerca non informata Le strategie non informate usano soltanto l’informazione disponibile nella definizione del problema Ricerca breadth-first Ricerca a costo uniforme Ricerca depth-first Ricerca depth-first limitata Ricerca iterativa Slides Intelligenza Artificiale, Vincenzo Cutello

Ricerca breadth-first Espandi il nodo meno profondo non espanso Implementazione: QUEUEINGFN = metti i nodi successori alla fine della coda Slides Intelligenza Artificiale, Vincenzo Cutello

Ricerca breadth-first Whitehorse Edmonton Dawson Vancouver Whitehorse Churchill Whitehorse Calgary Whitehorse Calgary Churchill Winnipeg Slides Intelligenza Artificiale, Vincenzo Cutello

Proprietà della ricerca breadth-first Completa ?? Si (se b è finita) Tempo ?? 1+b+b2+b3+…+bd =O(bd), cioè, esponenziale in d Spazio ?? O(bd) (mantiene ogni nodo in memoria) Ottimalità ?? Si (se il costo = 1 ad ogni passo); non ottimale in generale Lo spazio è il grande problema; si possono facilmente generare nodi a 1MB/sec così 24hrs = 86GB Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello Canada con costi in Km Dawson 450 2650 Whitehorse Churchill 1600 St. John’s 1350 Edmonton 1650 1500 1100 450 950 1250 Quèbec 750 850 Winnipeg Calgary 500 1800 250 Halifax Regina Ottawa Vancouver Montreal 175 1600 400 Toronto Slides Intelligenza Artificiale, Vincenzo Cutello

Ricerca a costo uniforme Espandi il nodo meno costoso non ancora espanso Implementazione: QUEUEINGFN = inserisce i nodi in ordine crescente rispetto al costo del cammino Slides Intelligenza Artificiale, Vincenzo Cutello

Ricerca a costo uniforme Whitehorse 450 1650 1600 Dawson Edmonton Vancouver 450 1250 2650 1600 450 1350 Whitehorse Churchill Calgary Winnipeg Churchill Whitehorse Slides Intelligenza Artificiale, Vincenzo Cutello

Proprietà della ricerca a costo uniforme Completa ?? Si, se il costo di ogni passo è ≥ ε Tempo ?? # di nodi con g ≤ costo della soluzione ottima Spazio ?? Ottimalità ?? Si Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello Ricerca depth-first Espandi il nodo più profondo non ancora espanso Implementazione: QUEUEINGFN = inserisce i nodi all’inizio della coda Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello Ricerca depth-first Whitehorse Dawson Edmonton Vancouver Whitehorse Churchill Dawson Edmonton Vancouver Slides Intelligenza Artificiale, Vincenzo Cutello

Ricerca Depth-first: Problemi La ricerca depth-first può eseguire percorsi con infiniti cicli Necessitiamo di uno spazio di ricerca finito e non ciclico (o un controllo sulla ripetizione degli stati) Slides Intelligenza Artificiale, Vincenzo Cutello

Proprietà della ricerca depth-first Completezza ?? No: fallisce in spazi con profondità infinita, spazi con cicli Evitando la ripetizione degli stati attraverso il cammino  completezza in spazi finiti Tempo ?? O(bm): terribile se m è molto più grande di d ma se le soluzioni sono dense, potrebbe essere più veloce della breadth-first Spazio ?? O(bm), cioè, spazio lineare ! Ottimalità ?? No Slides Intelligenza Artificiale, Vincenzo Cutello

Ricerca a profondità limitata = ricerca depth-first con limite di profondità l Implementazione: I nodi a profondità h non hanno successori Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello Ricerca iterativa function ITERATIVE-DEEPENING-SEARCH(problema) returns una soluzione input: problema, un problema for h  0 to ∞ do risultato  DEPTH-LIMITED-SEARCH(problem, h) if P(risultato) then return risultato end Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello Ricerca iterativa h=0 Whitehorse Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello Ricerca iterativa h=1 Whitehorse Dawson Edmonton Vancouver Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello Ricerca iterativa h=2 Whitehorse Dawson Edmonton Vancouver Whitehorse Churchill Whitehorse Calgary Churchill Winnipeg Whitehorse Calgary Slides Intelligenza Artificiale, Vincenzo Cutello

Proprietà della ricerca iterativa Completezza ?? Si Tempo ?? (d+1)b0+db1+(d-1)b2+…+bd=O(bd) Spazio ?? O(bd) Ottimalità ?? Si, se il costo di un passo = 1 Può essere modificata per esplorare alberi a costo uniforme Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello Riassunto Solitamente la formulazione del problema richiede astrazione dai dettagli del mondo reale per definire uno stato degli spazi che può essere facilmente esplorato Varietà di strategie di ricerca non informata La ricerca iterativa usa spazio lineare e non molto più tempo degli altri algoritmi di ricerca non informata Slides Intelligenza Artificiale, Vincenzo Cutello