La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Intelligenza Artificiale marco ernandes Gennaio – Aprile 2006.

Presentazioni simili


Presentazione sul tema: "Intelligenza Artificiale marco ernandes Gennaio – Aprile 2006."— Transcript della presentazione:

1 Intelligenza Artificiale marco ernandes Gennaio – Aprile 2006

2 Intelligenza Artificiale - Problem Solving 1/102 Problem SolvingIntroduzione

3 Intelligenza Artificiale - Problem Solving 2/102

4 Intelligenza Artificiale - Problem Solving 3/102 Risolvere problemi E uno dei processi intellettivi che secondo il Comportamentismo richiede e definisce lattività intellettuale. 1. Induzione (Apprendimento) 2. Sussunzione (Riconoscimento) 3. Ragionamento (Deduzione) 4. Problem Solving (implica tutte le precedenti) Approccio comportamentista: Test di Turing

5 Intelligenza Artificiale - Problem Solving 4/102 PS: uomo & macchina Il PS è unattività tipicamente definita come razionale. Razionale = ciò che si basa su procedimenti esprimibili in formula chiusa (algoritmi) LAI ha dimostrato che più un task richiede razionalità in senso stretto più luomo perde il confronto con la macchina. Hard Computing vs. Soft Computing

6 Intelligenza Artificiale - Problem Solving 5/102 Come costruire un Problem Solver ? Approccio Human-oriented (cognitivista) Deve SIMULARE lattività intelligente Risolvere problemi pensando come un uomo Approccio Machine-oriented (comport.) Deve MANIFESTARE attività intelligente Risolvere i problemi al meglio

7 Intelligenza Artificiale - Problem Solving 6/102 A cosa serve un Problem Solver? Spiegare in maniera computazionale come luomo risolve i problemi Fornire alluomo uno strumento di supporto

8 Intelligenza Artificiale - Problem Solving 7/102 GPS: General Problem Solver (Newell, Simon e Shaw ) Risultato dellapproccio cognitivo Esperienza previa con Logic Theorist Uso di resoconti di PS umano Analisi mezzi-fini

9 Intelligenza Artificiale - Problem Solving 8/102 Analisi Mezzi-Fini a)Identificare la più grande differenza tra stato attuale e stato desiderato. b)Creare un sotto-obiettivo che cancelli questa differenza. c)Selezionare un operatore che raggiunga questo sotto-obiettivo d)SE loperatore può essere applicato ALLORA lo si applica e, arrivati nello stato successivo, si riapplica lA-M-F. e)SE loperatore non può essere applicato ALLORA si usa lA-M- F in modo ricorsivo per rimuovere la condizione di blocco.

10 Intelligenza Artificiale - Problem Solving 9/102 Bias della razionalità Aristotele e l animale razionale 3 limiti della razionalità Informativi Cognitivi Deliberativi Uomo irrazionale nella presa di decisioni Paradosso di Allais Ragionamento non Bayesiano Per irrazionalità si intende contradditorietà diacronica nella presa di decisioni

11 Intelligenza Artificiale - Problem Solving 10/102 Paradosso di Allais (53) Tra 2 scommesse, quale preferite? A) vincere 30 Euro con probabilità 100% B) vincere 45 Euro con probabilità 80% Eppure… lutilità attesa è: A = 30 x 1,0 = 30 Euro B = 45 x 0,8 = 36 Euro Il 78% degli intervistati risponde A!

12 Intelligenza Artificiale - Problem Solving 11/102 Kahneman & Tversky (78) Cosa preferite? A) vincere 120 Euro con probabilità 25% B) vincere 180 Euro con probabilità 20% Eppure… lutilità attesa è sempre la stessa: A = 120 x 0,25 = 30 Euro B = 180 x 0,20 = 36 Euro Oltre il 50% risponde B!

13 Intelligenza Artificiale - Problem Solving 12/102 Ragionamento non-bayesiano Secondo il Teorema di Bayes: P(M|T) = P(T|M) x P(M) / P(T) P (M+ | T+) = 0.99 x = (0,1%) Malato P (M- | T+ ) = 0.02 x = (2%) Sano Mario si sottopone al test e risulta positivo. E più probabile che sia malato o che sia sano? A Siena si è diffusa una malattia che interessa un soggetto su Se una persona ammalata si sottopone al test diagnostico la malattia viene rilevata nel 99% dei casi. Se una persona sana si sottopone allo stesso test vengono rilevati un 2% di falsi positivi. Cap. 14

14 Intelligenza Artificiale - Problem Solving 13/102 Alcune Conclusioni Perde credito lipotesi simulativa su basi razionali. Il ragionamento umano (PS e decisioni) non è simulabile razionalmente E studiato dalla Psicologia Cognitiva Può avere più senso usare le macchine: Sfruttando le loro potenzialità Come supporto per luomo (es: Problem Solving attuale, Sistemi Esperti)

15 Intelligenza Artificiale - Problem Solving 14/102 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

16 Intelligenza Artificiale - Problem Solving 15/102 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

17 Intelligenza Artificiale - Problem Solving 16/102 Cosa è un problema? ( II ) Formalizzazione: 5-tupla di elementi: P={X,SCS,x 0,g,t} Formalizzare = astrarre un problema Ha senso quindi pensare ad un GPS?

18 Intelligenza Artificiale - Problem Solving 17/102 I giochi nellIA e non solo M. Minsky (1968): i giochi non vengono scelti perché sono chiari e semplici, ma perché ci danno la massima complessità con le minime strutture iniziali Pungolo Scientifico Matematica: teoria dei grafi e complessità Computer Science: database e calcolo parallelo Economia: teoria dei giochi

19 Intelligenza Artificiale - Problem Solving 18/102 Teoria dei Giochi Von Neumann & Morgenstern (1944) Teoria della DecisioneTeoria dei Giochi Analizzare il comportamento Individuale le cui azioni hanno effetto diretto Analizzare il comportamento Individuale le cui azioni hanno effetto che dipende dalle scelte degli altri Scommesse & Mondo dei Puzzle Mondo dei Giochi a + giocatori

20 Intelligenza Artificiale - Problem Solving 19/102 Problem Solving Ricerca nello spazio degli stati Blind Search

21 Intelligenza Artificiale - Problem Solving 20/102 Ruolo del Search nellAI Anni 60 – 80: cuore dellAI Tutto è Search o Knowledge Recentemente… nei textbooks Nilsson (1980): 17% Rich (1983):31% Norvig & Russel (1995): 13 % Pool, Mackworth & Goebel (1998): 10%

22 Intelligenza Artificiale - Problem Solving 21/102 Grafi e strategie Spazio degli Stati X Spazio della Ricerca (SCS(SCS(…(x 0 )…))) Alberi Nodi Cosa vuol dire trovare una soluzione? Cosa è una strategia di ricerca?

23 Intelligenza Artificiale - Problem Solving 22/102 Valutare le strategie 4 criteri fondamentali: Completezza Ottimalità Complessità Spaziale Complessità Temporale Le regole doro di J.Pearl (1984) Non dimenticarsi di cercare sotto ogni pietra Non alzare due volte la stessa

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

25 Intelligenza Artificiale - Problem Solving 24/102 Algoritmo Generale di Search Struttura Generale 1.if (goal_test(x 0 )== true) return SUCCESS 2.else CODA.insert(x 0 ) 3.do { if (CODA.isEmpty()) return FAILURE nodo = CODA.remove() figli[] = SCS(nodo) CODA.insert(figli) } while( goal_test(nodo)== false ) 4.return SUCCESS

26 Intelligenza Artificiale - Problem Solving 25/102 Breadth First Ricerca in Ampiezza Usa una memoria FIFO E un algoritmo difensivo E completo e ottimale Complessità spaziale: O(b d ) Complessità temporale: O(b d )

27 Intelligenza Artificiale - Problem Solving 26/102 Breadth First - simulazione GOAL

28 Intelligenza Artificiale - Problem Solving 27/102 Alcuni numeri depthN° nodiTempoMemoria msec11 KB ,1 sec1 MB 6 > sec>100 MB 8 > min>10 GB 10 > ore>1 TB 12 > giorni>100 TB 14 > 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 Quasi il 50% del contributo va ai miglioramenti algoritmici.

29 Intelligenza Artificiale - Problem Solving 28/102 Depth First Ricerca in Profondità Usa una memoria LIFO E un algoritmo aggressivo E non completo e non ottimale Complessità temporale: O(b m ) Complessità spaziale: O(mb)

30 Intelligenza Artificiale - Problem Solving 29/102 Depth First - simulazione GOAL backtracking

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

32 Intelligenza Artificiale - Problem Solving 31/102 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(b d/2 ) Complessità temporale: O(b d/2 )

33 Intelligenza Artificiale - Problem Solving 32/102 Ricerca Bidirezionale - Simulazione GOAL X0X0

34 Intelligenza Artificiale - Problem Solving 33/102 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(b l ) Complessità temporale: O(b l ) PRO: evita loop infiniti senza usare memoria! CON: richiede conoscenza a priori del problema

35 Intelligenza Artificiale - Problem Solving 34/102 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 X 0 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)b 2 + … + (1)b d = O(b d ) Complex. spaziale: O(bd) CONTRO: si espandono più volte gli stessi stati. Quanto? b d (b/(b-1)) 2

36 Intelligenza Artificiale - Problem Solving 35/102 Iterative Deepening - sim Iterazione: 1

37 Intelligenza Artificiale - Problem Solving 36/102 Iterative Deepening - sim Iterazione: 2

38 Intelligenza Artificiale - Problem Solving 37/102 Iterative Deepening - sim GOAL Iterazione: 3

39 Intelligenza Artificiale - Problem Solving 38/102 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.

40 Intelligenza Artificiale - Problem Solving 39/102 Ricerca a costo uniforme - Sim COSTO: GOAL 232

41 Intelligenza Artificiale - Problem Solving 40/102 Dijkstra? Sì. Ricerca Uniforme = Algoritmo Dijkstra E il progenitore degli algoritmi Best-First Ricerca Operativa Ricerca Cieca (AI) Complex temp. Dijkstra = O(X 2 ) Complex temp. Unif-cost = O(b d ) Perché due stime diverse?FF

42 Intelligenza Artificiale - Problem Solving 41/102 Branching Factor Branching Factor Naive Branching Factor Asintotico Branching Factor Effettivo CSC CSC CSSS CCSC 1 = f cc +f cs +f ss +f sc bf cc = f sc bf cs = f cc bf ss =f cs bf sc = 2f ss +f cs b 4 - b - 2 = 0

43 Intelligenza Artificiale - Problem Solving 42/102 Confronto tra b naive e b asyn b naive b asyn 5-Puzzle 1,331,35 8-Puzzle 1,67 1,67 22 =8 x ,73 1,73 22 =1,7 x Puzzle =9 x ,13 2,13 53 =2,5 x Puzzle 2,2 2,2 100 =1,7 x ,37 2, =3 x 10 37

44 Intelligenza Artificiale - Problem Solving 43/102 Branching factor effettivo b* Fattore di ramificazione reale di un processo di ricerca. E valutabile solo a posteriori! Quando conosci il numero di nodi visitati (N). N = 1 + b* + b* b* d = (b* d+1 -1)/(b*-1). (approx. ). b* è utile per testare la efficienza di un algoritmo (o di una euristica) es: trovare sol a profondità 5 in 52 nodi, b* = 1,92

45 Intelligenza Artificiale - Problem Solving 44/102 Problem Solving Ricerca nello spazio degli stati Heuristic Search

46 Intelligenza Artificiale - Problem Solving 45/102 Cosa è uneuristica? 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 MercatoreMercatore Tipicamente nel Problem Solving: Valutazione del costo di cammino futuro

47 Intelligenza Artificiale - Problem Solving 46/102 Come usare uneuristica? X0X0 Actual State (n) Goal State g(n) h(n) f(n)

48 Intelligenza Artificiale - Problem Solving 47/102 Ricerca Informata 123 Strategia di ricercaEuristicaPolitica f(n)= g(n) e h(n) 3 pilastri

49 Intelligenza Artificiale - Problem Solving 48/102 Due Esempi di Euristiche Tessere fuori posto h fp (n) = 5 Distanza di Manhattan h m (n) = 11

50 Intelligenza Artificiale - Problem Solving 49/102 Proprietà generali delle Euristiche Ammissibilità: h(n) è ammissibile se h(n) h*(n) Dominanza: h 2 domina h 1 se h 1 (n) h 2 (n) e h 1 & h 2 sono ammissibili

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

52 Intelligenza Artificiale - Problem Solving 51/102 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) 2. e anche: 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))…) 4. quindi: h(n) c(n,n) + h(n) (n,n)

53 Intelligenza Artificiale - Problem Solving 52/102 Proprietà generali delle Euristiche 3 Ammissibilità e Ottimalità: SE h(n) è ammissibile SE lalgoritmo usato è Best-First SE h(n) non viene MAI pesato più di g(n) ALLORA la Ricerca è ottimale Formalmente:

54 Intelligenza Artificiale - Problem Solving 53/102 Proprietà generali delle Euristiche 4 Altre conseguenze: se uneuristica è monotona allora è ammissibile se uneuristica è monotona allora f(.) non decresce (per cui vale f(n) f* n) se h è non ammissibile la si può rendere ammissibile garantendone il vincolo di monotonicità! se h 1 domina h 2 tutti i nodi espansi usando BEST-FIRST e h 1 sono espansi usando h 2 Ogni nodo n espanso da un algoritmo BEST-FIRST con h ammissibile costruisce un percorso ottimo tra n 0 e n

55 Intelligenza Artificiale - Problem Solving 54/102 Come ottenere uneuristica ammissibile? Analisi dei vincoli sugli operatori Per muovere una tessera da A a B: 3) A e B devono essere confinanti 2) B deve essere una casella vuota 1) A e B devono invertire le proprie posizioni Rilassando 1,2,3,4: h(n) = 1 non cè informazione 4) Un solo movimento per volta Rilassando 1,2,3:h 1 (n) = 7 h fp (n) Rilassando 1,2:h 2 (n) = 17 h m (n) Non rilassando:si deve risolvere il problema stesso! Heuristic generation by Abstraction ABSOLVER - 93

56 Intelligenza Artificiale - Problem Solving 55/102 Esempi di Euristiche Ammissibili A) Tessere Fuori Posto B) Distanza di Manhattan C) h 3 =h fp + h m 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)

57 Intelligenza Artificiale - Problem Solving 56/102 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 allobiettivo

58 Intelligenza Artificiale - Problem Solving 57/ Per ogni permutazione delle tessere fringe si risolve il sottoproblema, considerando il pivot e le altre tessere. Si memorizza in un DB il numero di mosse. Si fa lo stesso per laltro Pattern. Pattern Databases (Culberson&Schaeffer 1996) Pattern Database è la prima euristica memory-based. Vi sono N! / (N!-n!) permutazioni delle tessere fringe compreso il pivot. Fringe del 15-puzzle = 519 milioni (495 MB memoria). Usando solo il fringe: speedup* su h m = 6, nodi = 1/346 Usando il doppio Pattern: speedup = 12, nodi = 1/2000 Grandi miglioramenti con Disjoint Pattern DB (Korf & Taylor, 02)

59 Intelligenza Artificiale - Problem Solving 58/102 Effetti delle euristiche Nella pratica: migliorano i tempi della ricerca. In teoria: solo uneuristica oracolare elimina la complessità esponenziale! Constant Absolute Error: h*(n)-h(n) = costante costo di ricerca lineare b*d Constant Relative Error: h*(n)-h(n) = dipende da h* costo di ricerca b d La ricerca è asintoticamente cieca.

60 Intelligenza Artificiale - Problem Solving 59/102 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

61 Intelligenza Artificiale - Problem Solving 60/102 Hill-Climbing Search Si usa unicamente la funzione euristica Non cè backtracking Non si usa memoria Non è ottimale Non è completo Minimi locali GOAL 53

62 Intelligenza Artificiale - Problem Solving 61/102 Greedy Search Ricerca Best-First che minimizza f(n) = h(n) Memorizza tutti i nodi frontiera 1.if (goal_test(x 0 )== true) return SUCCESS 2.else CODA.insert(x 0, h(x 0 ) ) 3.do { if (CODA.isEmpty()) return FAILURE nodo = CODA.remove(0) figli[] = SCS(nodo) CODA.insert(figli, h(figli)) } while( goal_test(nodo)== false ) 4.return SUCCESS

63 Intelligenza Artificiale - Problem Solving 62/102 Greedy Search 2 Proprietà: Non Ottimale Non Completo (senza lHash) Complex time & space: O(b m ) Miglioramenti per non ripetere stati: check sulla CODA dei nodi da espandere aggiunta di tabella HASH per nodi già espansi coda dei nodi espansi CLOSED coda dei nodi da espandere OPEN

64 Intelligenza Artificiale - Problem Solving 63/102 Greedy Search - simulazione GOAL

65 Intelligenza Artificiale - Problem Solving 64/102 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 (anche senza lHash!!) Complex time & space: O(b d ) Ottimamente efficiente

66 Intelligenza Artificiale - Problem Solving 65/102 Algoritmo A* 1.if (goal_test(x 0 )== true) return SUCCESS 2.else OPEN.insert(x 0, g(x 0 )+h(x 0 ) ) 3.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

67 Intelligenza Artificiale - Problem Solving 66/102 Dimostrazioni A* è un algoritmo ottimale A* è un algoritmo completo

68 Intelligenza Artificiale - Problem Solving 67/102 A* = algoritmo ottimale Per ASSURDO: A* espande da OPEN 2 e 2 non è la soluzione ottima n * n0n0 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

69 Intelligenza Artificiale - Problem Solving 68/102 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 n 0 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 alluso di g(n): perché g(n) < n 6. due condizioni per la completezza: - costo di un infinito = - * non infinito

70 Intelligenza Artificiale - Problem Solving 69/102 Confronto tra Greedy e A* Robot Navigation h(n) = Distanza Manhattan g(n,SCS(n)) = 1

71 Intelligenza Artificiale - Problem Solving 70/ g=0, h= g=1, h= g=1, h= g=1, h= g=2, h=4 g=2, h= g=2, h= g=3, h= g=4, h= g=4, h= g=4, h= g=5, h= g=6, h= g=6, h=2 g=3, h= goal Simulazione di A*

72 Intelligenza Artificiale - Problem Solving 71/102 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*

73 Intelligenza Artificiale - Problem Solving 72/102 WA*: alcuni risultati sul 15-puzzle w MosseNodi 1 52,7380 x ,5 56,6500 x ,579 x , ,37000

74 Intelligenza Artificiale - Problem Solving 73/102 WA* Esempio: maze problem X O w = 1 w = 2 w = 5

75 Intelligenza Artificiale - Problem Solving 74/ X w = 1 WA* Esempio: maze problem

76 Intelligenza Artificiale - Problem Solving 75/ X O 5+30 w = 2 WA* Esempio: maze problem

77 Intelligenza Artificiale - Problem Solving 76/ X O w = 5 WA* Esempio: maze problem

78 Intelligenza Artificiale - Problem Solving 77/102 X O X O X O w = 1 CLOSED=41 OPEN=18 d = 24 wC* = 24 w = 2 CLOSED=66 OPEN=18 d = 32 wC* = 48 w = 5 CLOSED=37 OPEN=16 d = 30 wC* = 120 WA* Esempio: maze problem

79 Intelligenza Artificiale - Problem Solving 78/102 Bidirectional A* Il problema di A* è la memoria… approccio bidirezionale? E un approccio perdente! Il problema è la garanzia di ottimalità. Terminazione 1: lalgoritmo termina quando il costo della migliore soluzione ottenuta non supera più il minimo h(n)+g(n) presente in entrambe le direzioni. Questo obbliga a fare due ricerche unidirezionali complete! Con loverhead del raggiungimento di più soluzioni. Il numero di nodi espansi è maggiore di A* normale. Terminazione 2: lalgoritmo termina quando il costo della migliore soluzione ottenuta non supera più la somma dei due g(n) minori delle due direzioni. Questa condizione tende ad essere verificata dopo la 1 (se leuristica usata è abbastanza informata).

80 Intelligenza Artificiale - Problem Solving 79/102 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(b d )

81 Intelligenza Artificiale - Problem Solving 80/102 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

82 Intelligenza Artificiale - Problem Solving 81/102 Algoritmo IDA* 1.if (goal_test(x 0 )== true) return SUCCESS 2. soglia = g(x 0 )+h(x 0 ) 3. LISTA.insert(x 0 ) 4.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 } ?

83 Intelligenza Artificiale - Problem Solving 82/ IDA* Simulazione Threshold: 3

84 Intelligenza Artificiale - Problem Solving 83/ IDA* Simulazione Threshold: 5

85 Intelligenza Artificiale - Problem Solving 84/ IDA* Simulazione Threshold: 7

86 Intelligenza Artificiale - Problem Solving 85/102 IDA*:difetti Non è ottimamente efficiente: Ripete i nodi delle iterazioni precedenti (incide poco, specie se b è grande) Ripete nodi nella stessa iterazione Funziona solo se: costo degli operatori del problema e valutazioni euristiche hanno valore discreto il costo è costante o quasi altrimenti… = O(b 2d ) b d (b/(b-1)) 2 (d+1)1 + (d)b + (d-1)b2 + … + (1)bd

87 Intelligenza Artificiale - Problem Solving 86/102 Miglioramenti ad A* e IDA* A* A parità di f(n): si deve preferire min(h(n)) Implementare OPEN con Array di Hashtable Si prelevano i nodi da OPEN[min f(n)] IDA* Sfruttare linformazione delle iterazioni precedenti Espansione nodi: ordinamento dei figli Tenere in memoria una transposition table dei nodi già visitati per evitare ripetizioni = -40% visite sul 15-puzzle

88 Intelligenza Artificiale - Problem Solving 87/102 Simplified Memory-Bounded A* (SMA*) (Russel, 92) SMA* è un A* che adatta la ricerca alla quantità di memoria disponibile. Se la mem è esaurita si dimenticano dei nodi n della frontiera e più in alto nellalbero si fa backup del minimo f(n) dei nodi dimenticati. E ottimale se cè mem sufficiente per il cammino risolutivo ottimale Se cè mem per tutto lalbero SMA* coincide con A* Rispetto ad IDA*: quando conviene e quando no?

89 Intelligenza Artificiale - Problem Solving 88/102 Simplified Memory-Bounded A* (SMA*) (15) () () (24) ES: MAX num nodi = 3 In giallo i nodi GOAL I valori sono gli f(n) (15)

90 Intelligenza Artificiale - Problem Solving 89/102 Problem Solving Ricerca nello spazio degli stati Online Search

91 Intelligenza Artificiale - Problem Solving 90/102 Online Search La differenza rispetto alla offline search è che lagente conosce SCS(n) (e i suoi costi) solo quando SI TROVA in n. Nellesempio sotto lagente (senza lookahead) scopre che loperatore UP porta da (1,1) a (2,1) solo dopo averlo applicato! Lagente deve muoversi con 2 scopi: esplorare lo spazio arrivare allo stato finale Il costo è dato dalla somma degli operatori applicati in tutta lesplorazione

92 Intelligenza Artificiale - Problem Solving 91/102 Online Search PROBLEMI: DEAD END: se gli operatori sono irreversibili allora non è possibile garantire completezza (spazio non safely explorable) CR unbounded BLOCCO AVVERSARIO: (ambiente dinamico) un avversario potrebbe porci degli ostacoli in modo da rendere il cammino altamente inefficiente VANTAGGI: La ricerca online può attaccare problemi in un ambiente dinamico (non avverso!) (es: aggirare ostacoli che si muovono) VALUTAZIONE ALGORITMI: Competitive Ratio (CR) = g cammino percorso / g cammino ottimo (E molto difficile riuscire a porre bound su CR!)

93 Intelligenza Artificiale - Problem Solving 92/102 Algoritmi Online (Real Time) Hill-Climbing: dato che è una ricerca locale può essere usata come algoritmo online (ha il difetto di bloccarsi in un minimo locale, perchè ?) Online Depth First Search (Online-DFS): usa il principio della ricerca in profondità con backtracking. Se ad ogni stato tutte le azioni sono state provate: backtracking fisico allo stato predecessore! Richiede di mappare lo spazio visitato in una tabella: result[A,S 1 ] S 2 Richiede di monitorare le zone dello da esplorare con un tabella indicizzata per ogni stato unexplored[S]. Richiede di monitorare le zone dello spazio in cui poter fare backtracking con una tabella unbacktracked[S].

94 Intelligenza Artificiale - Problem Solving 93/102 Online Depth First Search if (goal_test(s a )== true) return STOP if (UNEXPLORED[s a ] == null) { figli[] = SCS(s a ) for all (figli) UNEXPLORED[s a ].add(figlio) } RESULT[a p,s p ] s a UNBACKTRACKED[s a ].add(s p ) if (UNEXPLORED[s a ].is_empty()==true) { if (UNBACKTRACKED[s a ].is_empty()==true) return STOP back_state UNBACKTRACKED[s a ].pop() for all (actions of back_state) if (RESULT[action,s a ] == back_state) new_action action } else new_action UNEXPLORED[s a ].pop() s p = s a / a p = new_action return new_action ONLINE-DFS(s a ) > action = ONLINE-DFS(S)

95 Intelligenza Artificiale - Problem Solving 94/102 Algoritmi Online informati LRTA* (Learning Real-Time A*, Korf 90): E dato da: Hill-Climbing + Memoria + aggiornamento funzione euristica Possiede una tabella H[S] dei costi aggiornati per ogni stato. Il criterio di aggiornamento è dato dal classico f(n) = g(n)+h(n) Funzionamento (lagente entra in uno stato s a ) 1) se H[s a ] è null allora H[s a ] h(s a ) 2) se s a ha un predecessore allora result[a p,s p ] s a H[s p ] min g(s) + H[s] a action[s p ] e s = result[a,s p ] (update) 3) scegli lazione a che porta allo stato vicino con min H[S] (se è null allora si prende h(S)), aggiorna s p s a e ricomincia

96 Intelligenza Artificiale - Problem Solving 95/102 LRTA*: un esempio Spazio monodimensionale I valori allinterno dei cerchi corrispondono a H[S]

97 Intelligenza Artificiale - Problem Solving 96/102 LRTA*: proprietà In spazi sicuri trova una soluzione in tempo finito Complessità = O(n 2 ) Non è completo in spazi infiniti (a differenza di A*) E possibile dimostrare che il valore di H[n] converge ad h*(n) durante il cammino. Se aumento il lookahead migliora il cammino, ma aumenta il costo computazionale per passo. Bisogna fare una scelta nel TRADEOFF: costo simulazione / costo esecuzione

98 Intelligenza Artificiale - Problem Solving 97/102 Riassumendo… Formalizzazione dei problemi Risolvere problemi = cercare un percorso in un albero di scelte Metodi di valutazione della ricerca Algoritmi di ricerca cieca Cosa è uneuristica Proprietà delle euristiche ed effetti sul costo di ricerca Come generare uneuristica ammissibile Componenti degli algoritmi di ricerca informata Algoritmo Hill-Climbing Algoritmi Best-First (Greedy ed A*) Proprietà degli algoritmi A* WA*: generalizzazione della ricerca informata Algoritmi Memory-Bounded (IDA*, SMA*) Algoritmi Real-Time (OnlineDFS, LRTA*)

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

100 Intelligenza Artificiale - Problem Solving 99/102 Formalizzazione Problemi: Cubo di Rubik X = tutte le configurazioni SCS(x) = tutti gli operatori di x x 0 = configurazione random g = unitario per ogni SCS* t = configurazione ordinata** 8! 12! configurazioni risolvibili operatori utili su x (8! 12! )/12 * 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 ca.11 1)Non ha senso ruotare la stessa faccia due volte consecutive 2)Muovere due facce opposte consecutivamente equivale alla sola mossa dellasse centrale 3)Dopo aver mosso la faccia A e poi la faccia B, va mossa una delle altre 4 facce rimanenti.

101 Intelligenza Artificiale - Problem Solving 100/102 Formalizzazione Problemi: Robot Navigation X = le coordinate possibili del robot SCS(x) = tutti gli spostamenti da x x 0 = posizione random del robot g = lunghezza spostamento t = (coord. Robot == coord. GOAL) sup. totale – ostacoli = ca pixel molto variabile: < 10 5 spostamenti VariabileVariabile tra 1 e

102 Intelligenza Artificiale - Problem Solving 101/102 Spazio degli stati ed operatori Robot Navigation

103 Intelligenza Artificiale - Problem Solving 102/102 Formalizzazione Problemi: Robot Navigation X = i vertici dei poligoni + x 0 e goal SCS(x) = tutti gli spostamenti da x x 0 = posizione random del robot g = lunghezza spostamento t = (coord. Robot == coord. GOAL) Lineare con il numero di poligoni pochissimi VariabileVariabile tra 1 e


Scaricare ppt "Intelligenza Artificiale marco ernandes Gennaio – Aprile 2006."

Presentazioni simili


Annunci Google