Intelligenza Artificiale Simbolica

Slides:



Advertisements
Presentazioni simili
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
Advertisements

Strutture dati per insiemi disgiunti
Ricorrenze Il metodo di sostituzione Il metodo iterativo
1 MeDeC - Centro Demoscopico Metropolitano Provincia di Bologna - per Valutazione su alcuni servizi erogati nel.
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
Frontespizio Economia Monetaria Anno Accademico
1 la competenza alfabetica della popolazione italiana CEDE distribuzione percentuale per livelli.
Algoritmi e Strutture Dati
Lez. 91 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Alberi di ricerca.
1 Tavolo del Patto per la crescita intelligente, sostenibile e inclusiva Il ricorso agli ammortizzatori sociali nei territori colpiti dagli eventi sismici.
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Problem Solving Introduzione
Problem Solving Introduzione
Teoria e Implementazione
Cammini minimi con sorgente singola
Implementazione dell algortimo di Viterbi attraverso la soluzione del problema di cammino mi- nimo tramite software specifico. Università degli studi di.
Reaching Definitions. Tino CortesiTecniche di Analisi di Programmi 2 Reaching definitions Dato un punto del programma, quali sono i comandi di assegnamento.
I MATEMATICI E IL MONDO DEL LAVORO
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
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 Capitolo 2 Modelli di calcolo e metodologie di analisi.
Intelligenza Artificiale 1 Gestione della conoscenza lezione 5 Prof. M.T. PAZIENZA a.a
EIE 0607 III / 1 A B P a = 30 P b = 35 t = 2, tc = 1 Questo può essere un equilibrio? No! Politiche di un paese importatore: una tariffa allimportazione.
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.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmo di Ford-Fulkerson
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Un albero è un grafo.
Programmazione 1 9CFU – TANTE ore
Canale A. Prof.Ciapetti AA2003/04
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Realizzazione e caratterizzazione di una semplice rete neurale per la separazione di due campioni di eventi Vincenzo Izzo.
Master universitario di II livello in Ingegneria delle Infrastrutture e dei Sistemi Ferroviari Anno Accademico 2012/2013 Cultura dimpresa, valutazione.
La partita è molto combattuta perché le due squadre tentano di vincere fino all'ultimo minuto. Era l'ultima giornata del campionato e il risultato era.
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Simulazione di un esperimento di laboratorio: Caduta di un corpo quadrato in.
Cos’è un problema?.
Ingegneria della conoscenza e sistemi esperti Dario Bianchi, 1999 Risoluzione di problemi e ricerca.
Intelligenza Artificiale Risoluzione di Problemi
Intelligenza Artificiale
Velocità ed accelerazione
Esercitazione 1: Rispetto al test di ansia (Media=25; σ=5), calcolare:
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.
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
Elementi di Informatica di base
ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
ISTITUTO COMPRENSIVO “G. BATTAGLINI” MARTINA FRANCA (TA)
Algoritmi e Strutture Dati
LE SAI LE TABELLINE? Mettiti alla prova!.
1 Questionario di soddisfazione del servizio scolastico Anno scolastico 2011/2012 Istogramma- risposte famiglie.
Un trucchetto di Moltiplicazione per il calcolo mentale
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 K 4 è planare? Sì!
21 marzo 2002 (ri-)Avvisi: Giovedi 28 marzo la lezione e sospesa. Nuovo indirizzo di Spedire messaggi e esercizi solo.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
Minimo comune multiplo
TRASFORMATA DI FOURIER
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Ricerca euristica Maria Simi a.a. 2008/2009 Ricerca euristica  La ricerca esaustiva non è praticabile in problemi di complessità esponenziale  Noi.
Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Risoluzione dei Problemi (parte 2) Agostino Poggi.
Intelligenza Artificiale Risoluzione di Problemi
Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Risoluzione dei Problemi Agostino Poggi Stefano Cagnoni.
Gli agenti per il problem solving Maria Simi a.a 2007/2008.
Agenti risolutori di problemi Risolvere i problemi mediante ricerca Maria Simi a.a 2013/2014.
Algoritmi e Strutture Dati Luciano Gualà
Transcript della presentazione:

Intelligenza Artificiale Simbolica m. ernandes, e. trentin

Problem Solving Introduzione Intelligenza Artificiale - Problem Solving

“Risolvere problemi” E’ uno dei processi intellettivi che secondo il Comportamentismo richiede e definisce l’“attività intellettuale”. Induzione (Apprendimento) Sussunzione (Riconoscimento) Ragionamento (Deduzione) Problem Solving (implica tutte le precedenti) Approccio comportamentista: Test di Turing Intelligenza Artificiale - Problem Solving

“Come” costruire un Problem Solver ? Approccio Human-oriented (cognitivista) Deve SIMULARE l’attività intelligente Risolvere problemi “pensando come un uomo” Approccio Machine-oriented (comport.) Deve MANIFESTARE attività intelligente Risolvere i problemi al meglio Intelligenza Artificiale - Problem Solving

Approccio Machine-Oriented Problem Solver che MANIFESTA intelligenza Algoritmi di Ricerca Problem Solving = ricerca nello spazio degli stati. Perchè? PS = Hard Computing Il bias della “potenza di calcolo”: Con calcolatori sufficientemente potenti si può “attaccare” ogni tipo di problema. Falso: l'esplosione combinatoria rende futile la forza bruta Intelligenza Artificiale - Problem Solving

Cosa è un problema? (I) “Problema” è un concetto non definibile, solo esemplificabile. (Nilsson, 1982) Alcuni esempi: I puzzle “da tavola”  in genere NP “Commesso viaggiatore” Rompicapo come il Cubo di Rubik SAT, Dimostrazione teoremi Giochi (Dama, Scacchi, etc.) VLSI Intelligenza Artificiale - Problem Solving

Cosa è un problema? (II) Formalizzazione: 5-tupla di elementi: P={X,SCS,x0,g,t} 7 2 5 8 1 6 4 3 2 8 7 6 5 4 3 1 Formalizzare = astrarre un problema Intelligenza Artificiale - Problem Solving

Ricerca nello spazio degli stati Problem Solving Ricerca nello spazio degli stati “Blind” Search Intelligenza Artificiale - Problem Solving

Grafi e strategie Spazio degli Stati  X Spazio della Ricerca  (SCS(SCS(…(x0)…))) Alberi Nodi Cosa vuol dire trovare una soluzione? Cosa è una strategia di ricerca? Intelligenza Artificiale - Problem Solving

Valutare le strategie 4 criteri fondamentali: Completezza Ottimalità Complessità Spaziale Complessità Temporale Le “regole d’oro” di J.Pearl (1984) Non dimenticarsi di cercare sotto ogni pietra Non alzare due volte la stessa Intelligenza Artificiale - Problem Solving

Ricerca Cieca Come espandere un nodo? Coda dei nodi aperti: CODA.insert(node); node = CODA.remove(); L’ordinamento dei nodi in CODA determina la strategia di ricerca Intelligenza Artificiale - Problem Solving

Algoritmo Generale di Search Struttura Generale if (goal_test(x0)== true) return SUCCESS else CODA.insert(x0) do { if (CODA.isEmpty()) return FAILURE nodo = CODA.remove() figli[] = SCS(nodo) CODA.insert(figli) } while( goal_test(nodo)== false ) 4. return SUCCESS Intelligenza Artificiale - Problem Solving

“Breadth First” Ricerca in Ampiezza Usa una memoria FIFO E’ un algoritmo “difensivo” E’ completo e ottimale Complessità spaziale: O(bd) Complessità temporale: O(bd) Intelligenza Artificiale - Problem Solving

“Breadth First” - simulazione GOAL Intelligenza Artificiale - Problem Solving

Alcuni numeri depth N° nodi Tempo Memoria 2 111 1 msec 11 KB 4 11111 0,1 sec 1 MB 6 >106 10 sec >100 MB 8 >108 17 min >10 GB 10 >1010 28 ore >1 TB 12 >1012 116 giorni >100 TB 14 >1014 32 anni >10000 TB b =10, velocità ricerca = 100 mila nodi/sec., 100 byte/nodo Korf: dagli anni ’60 la velocità di ricerca è cresciuta di 2 x 106. Quasi il 50% del contributo va ai miglioramenti algoritmici. Intelligenza Artificiale - Problem Solving

“Depth First” Ricerca in Profondità Usa una memoria LIFO E’ un algoritmo “aggressivo” E’ non completo e non ottimale Complessità temporale: O(bd) Complessità spaziale: O(db) Intelligenza Artificiale - Problem Solving

“Depth First” - simulazione backtracking GOAL Intelligenza Artificiale - Problem Solving

Come migliorarli? Conoscendo lo stato goal Non ripetendo gli stati Evitando di espandere lo stato di provenienza Evitando i cicli In generale: evitando di generare nodi con stati già visitati nella ricerca Conoscendo il costo degli operatori Intelligenza Artificiale - Problem Solving

Ricerca Bidirezionale (sfruttare la conoscenza dello stato goal) Ricerca in Ampiezza Dallo stato iniziale verso il goal Dal goal verso lo stato iniziale Quando termina? Perché non usare 2 “depth first”? E’ completa e ottimale Complessità spaziale: O(bd/2) Complessità temporale: O(bd/2) Intelligenza Artificiale - Problem Solving

Ricerca Bidirezionale - Simulazione GOAL X0 Intelligenza Artificiale - Problem Solving

Ricerca a profondità limitata (evitare di cadere in loop infiniti) Ricerca in profondità Si stabilisce una profondità massima l Se la coda è vuota al raggiungimento di l si ritorna un fallimento Non è completa (se l<d) né ottimale Complessità spaziale: O(bl) Complessità temporale: O(bl) PRO: evita loop infiniti senza usare memoria! CON: richiede conoscenza a priori del problema Intelligenza Artificiale - Problem Solving

Iterative Deepening Search (evitare di cadere in loop infiniti) Ricerca a profondità limitata Passo 1: l = 0 Passo 2: si applica la ricerca a profondità limitata partendo da X0 se la coda è vuota al raggiungimento di l si reitera il passo 2 aumentando l E’ ottimale e completa Complex. temporale: (d+1)1 + (d)b + (d-1)b2 + … + (1)bd = O(bd) Complex. spaziale: O(bd) CONTRO: si espandono più volte gli stessi stati. bd(b/(b-1))2 Intelligenza Artificiale - Problem Solving

Iterative Deepening - sim Iterazione: 0 Intelligenza Artificiale - Problem Solving

Iterative Deepening - sim Iterazione: 1 Intelligenza Artificiale - Problem Solving

Iterative Deepening - sim Iterazione: 2 Intelligenza Artificiale - Problem Solving

Iterative Deepening - sim Iterazione: 3 GOAL Intelligenza Artificiale - Problem Solving

Ricerca a costo uniforme (sfruttare la conoscenza del costo degli operatori) La “Breadth First” Search minimizza il costo di cammino della soluzione se la funzione di costo per ogni operatore è costante (es: 1) funzione di costo: g(n) La “Uniform-Cost” Search minimizza il costo di cammino anche con operatori a costo variabile (es: “commesso viaggiatore”) Requisito: g(n) <= g(SCS(n)), cioè costo non negativo Altrimenti non c’è strategia che tenga! E’ completa e ottimale. Intelligenza Artificiale - Problem Solving

Ricerca a costo uniforme - Sim 4 2 4 6 6 5 2 8 6 5 6 1 1 4 5 6 2 3 2 GOAL 7 6 4 2 3 COSTO: Intelligenza Artificiale - Problem Solving

Ricerca nello spazio degli stati Problem Solving Ricerca nello spazio degli stati “Heuristic” Search Intelligenza Artificiale - Problem Solving

Cosa è un’euristica? “Qualsiasi cosa” che serva di supporto in un processo decisionale E’ una conoscenza, magari imperfetta, del dominio in cui ci troviamo Un esempio reale: “la Carta di Mercatore” Tipicamente nel Problem Solving: Valutazione del costo di cammino futuro Intelligenza Artificiale - Problem Solving

Come usare un’euristica? X0 g(n) Actual State (n) f(n) h(n) Goal State Intelligenza Artificiale - Problem Solving

Due Esempi di Euristiche 2 6 7 1 5 8 4 3 Tessere fuori posto hfp(n) = 5 Distanza di Manhattan hm(n) = 11 Intelligenza Artificiale - Problem Solving

Proprietà generali delle Euristiche Ammissibilità: h(n) è ammissibile se h(n) ≤ h*(n) Dominanza: h2 domina h1 se h1(n) ≤ h2(n) e h1 & h2 sono ammissibili Intelligenza Artificiale - Problem Solving

Proprietà generali delle Euristiche 2 Consistenza: h(n) è consistente se Monotonicità: h(n) è monotona se n c(n,n’) h(n’) h(n) n’  Intelligenza Artificiale - Problem Solving

Dim: consistenza = ammissibilità 1. Per def: h(n)  c(n,n’) + h(n’) (n,n’) 2. Allora possiamo sostituire n’ con un nodo risolvente  3. quindi: h(n)  c(n,) + h() 4. h() = 0 e c(n,) = h*(n) per   * (percorso ottimo) 5. da 3 e 4 abbiamo che h(n)  h*(n) Dim: monotonicità = consistenza 1. Per def: h(n)  c(n,n’) + h(n’)  n,n’  SCS(n) 3. ripetendo il punto 2 con: n’  n’’ e c(n,n’’)  c(n,n’) + c(n’,n’’) rimane garantito che h(n)  c(n,n’’) + h(n’’)  n,n’’  SCS(…(SCS(n))…) 2. e anche: h(n’)  c(n’,n’’) + h(n’’)  n’,n’’  SCS(n’) 4. quindi: h(n)  c(n,n’) + h(n’) (n,n’) Intelligenza Artificiale - Problem Solving

Esempi di Euristiche Ammissibili 7 8 5 2 1 6 4 3 A) Tessere Fuori Posto B) Distanza di Manhattan C) h3=hfp+ hm  non è ammissibile! Navigazione Robot tra ostacoli h(n) = Distanza in linea retta (se il costo degli step è 1 per movimento ortogonale e per movimento diagonale) Intelligenza Artificiale - Problem Solving

Euristica di Manhattan Somma delle distanze ortogonali delle parti (le tessere nel Puzzle di Sam-Loyd) dalle loro posizioni nel goal state. E’ ammissibile E’ monotona. Rispetta la parità di h*(n) E’ pienamente informata quando siamo vicini all’obiettivo Intelligenza Artificiale - Problem Solving

Algoritmi di Ricerca Euristica Hill-Climbing Best-First Search Algoritmi Greedy Algoritmi A* Algoritmo Generale: WA* Memory Bounded Search IDA*, SMA* Ricerca a miglioramenti Iterativi Simulated Annealing Intelligenza Artificiale - Problem Solving

Hill-Climbing Search Si usa unicamente la funzione euristica Non c’è backtracking Non si usa memoria Non è ottimale Non è completo Minimi locali 4 5 4 3 5 3 GOAL Intelligenza Artificiale - Problem Solving

Best-First Ottimale: A* (Hart, Nilsson and Raphael, 1968) A* = un nome ambizioso Funzione di valutazione  f(n)=g(n)+h(n) Caratteristiche: Ottimale Completo Complex time & space: O(bd) Ottimamente efficiente Intelligenza Artificiale - Problem Solving

Algoritmo A* Intelligenza Artificiale - Problem Solving if (goal_test(x0)== true) return SUCCESS else OPEN.insert(x0, g(x0)+h(x0) ) do { if (OPEN.isEmpty()) return FAILURE nodo = OPEN.remove() CLOSED.insert(nodo) figli[] = SCS(nodo) for all figli{ if (!CLOSED.contains(figlio)) OPEN.insert(figlio, g(figlio)+h(figlio)) } } while( goal_test(nodo)== false ) 4. return SUCCESS Intelligenza Artificiale - Problem Solving

Dimostrazioni A* è un algoritmo ottimale A* è un algoritmo completo Intelligenza Artificiale - Problem Solving

A* = algoritmo ottimale n0 Per ASSURDO: A* espande da OPEN 2 e 2 non è la soluzione ottima n 1. per definizione g(2) > f* 2. sia n  * nodo foglia (in OPEN) *  3. se h è ammissibile allora f(n) ≤ f* 4. 2 viene preferito a n quindi f(n) ≥ f(2) 5. da 3 e 4 abbiamo che f* ≥ f(2) 6. dato che 2 è finale allora h(2)=0 e f(2)= g(2) 7. da 5 e 6 abbiamo che f* ≥ g(2) che contraddice il punto 1 Intelligenza Artificiale - Problem Solving

A* = algoritmo completo Per ASSURDO: A* ritorna un insuccesso o non termina 1. A* ritorna un insuccesso se OPEN è vuota 2. OPEN si svuota se nessuna foglia ha figli 3. se esiste un  tra n0 e  allora per ogni n   esiste un figlio 4. da 2 e 3 deriva che se esiste  allora OPEN non si svuota e A* non ritorna un insuccesso 5. se  è di lunghezza finita allora A* termina anche in grafi infiniti grazie all’uso di g(n): perché g(n) <  n 6. due condizioni per la completezza: - costo di un  infinito =  - * non infinito Intelligenza Artificiale - Problem Solving

Best-First Generale: WA* (Ira Pohl, 1970) Funzione di valutazione  f(n) = (1-w)g(n) + wh(n) w = 0  ricerca breadth-first w = 0,5  ricerca A* w = 1  ricerca Greedy Come cambia il costo della ricerca? w < 0,5 non ha senso, quindi: Funzione di valutazione  f(n) = g(n) + w h(n) Crescendo w la ricerca diventa sempre più “greedy” Il costo delle soluzioni è limitato superiormente da: wC* (se w > 1) Intelligenza Artificiale - Problem Solving

WA*: alcuni risultati sul 15-puzzle Mosse Nodi 1 52,7 380 x 106 1,5 56,6 500 x 103 2 63,5 79 x 103 6 103,3 10500 99 145,3 7000 Intelligenza Artificiale - Problem Solving

Iterative Deepening A* (IDA*) (Korf, 1985) Una innovazione “attesa” 1985: prime soluzioni ottime del gioco del 15 Eredita due qualità: linear space search: O(bd) da DFID ottimalità da A* E’ completo, complex. temp = O(bd) Intelligenza Artificiale - Problem Solving

Algoritmo IDA* Come funziona: Ha una soglia di costo: threshold. Funzione di valutazione  f(n) = g(n) + h(n) Ha una LISTA di nodi LIFO SE f(n) threshold si espande il nodo. SE la LISTA è vuota si ricominca da capo la ricerca aggiornando threshold Intelligenza Artificiale - Problem Solving

Algoritmo IDA* ? Intelligenza Artificiale - Problem Solving if (goal_test(x0)== true) return SUCCESS soglia = g(x0)+h(x0) LISTA.insert(x0) do { nodo = LISTA.remove() figli[] = SCS(nodo) for all figli{ if (g(figlio)+h(figlio)  soglia) LISTA.insert(figlio) } } while( goal_test(nodo)== false and !LISTA.isEmpty()) if(goal_test(nodo)== true) return SUCCESS else{ update(soglia) GOTO 3 ? Intelligenza Artificiale - Problem Solving

IDA* Simulazione Threshold: 3 0+3 1+4 1+2 Threshold: 3 2+3 Intelligenza Artificiale - Problem Solving

IDA* Simulazione Threshold: 5 0+3 1+4 1+2 Threshold: 5 2+5 2+5 2+3 2+3 3+4 3+4 3+2 3+4 4+3 Intelligenza Artificiale - Problem Solving

IDA* Simulazione Threshold: 7 0+3 6+3 6+1 5+4 5+2 4+3 4+5 3+6 3+4 2+3 2+5 1+4 1+2 7+0 Threshold: 7 Intelligenza Artificiale - Problem Solving

Formalizzazione Problemi: Il Puzzle di Sam Loyd X = tutte le configurazioni SCS(x) = tutti gli operatori di x x0 = configurazione random g = unitario per ogni SCS t = configurazione ordinata configurazioni risolvibili N! N!/2 operatori (non-reversibili) b =ca. 4 b = ca.3 Intelligenza Artificiale - Problem Solving

Formalizzazione Problemi: Cubo di Rubik Non ha senso ruotare la stessa faccia due volte consecutive Muovere due facce opposte consecutivamente equivale alla sola mossa dell’asse centrale Dopo aver mosso la faccia “A” e poi la faccia “B”, va mossa una delle altre 4 facce rimanenti. configurazioni risolvibili X = tutte le configurazioni SCS(x) = tutti gli operatori di x x0 = configurazione random g = unitario per ogni SCS* t = configurazione ordinata** (8! 12! 38 212)/12 8! 12! 38 212 operatori utili su x 18 ca.11 * se si usa costo unitario h(n) deve essere normalizzato a 1! ** per usare manhattan si associa ad un lato il colore delle tessere centrali Intelligenza Artificiale - Problem Solving