Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

54
Intelligenza Artificiale Simbolica m. ernandes, e. trentin

Transcript of Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Page 1: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale Simbolica

m. ernandes, e. trentin

Page 2: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

2/102

Problem Solving

IntroduzioneIntroduzione

Page 3: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

3/102

“Risolvere problemi”

E’ uno dei processi intellettivi che secondo il Comportamentismo richiede e definisce l’“attività intellettuale”.

1. Induzione (Apprendimento)

2. Sussunzione (Riconoscimento)

3. Ragionamento (Deduzione)

4. Problem Solving (implica tutte le precedenti)

Approccio comportamentista: Test di Turing

Page 4: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

4/102

“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

Page 5: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

5/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

Page 6: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

6/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

Page 7: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

7/102

Cosa è un problema? (II)

Formalizzazione: 5-tupla di elementi: P={X,SCS,x0,g,t}

2

87

654

317

25 8

16

43

Formalizzare = astrarre un problema

Page 8: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

8/102

Problem Solving

Ricerca nello spazio degli statiRicerca nello spazio degli stati

“Blind” Search

Page 9: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

9/102

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?

Page 10: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

10/102

Valutare le strategie4 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

Page 11: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

11/102

Ricerca Cieca

Come espandere un nodo?

CodaCoda dei nodi aperti:CODA.insert(node);node = CODA.remove();

L’ordinamento dei nodi in CODAdetermina la strategia di ricerca

Page 12: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

12/102

Algoritmo Generale di Search

Struttura Generale

1. if (goal_test(x0)== true) return SUCCESS2. else CODA.insert(x0)3. do { if (CODA.isEmpty()) return FAILURE nodo = CODA.remove() figli[] = SCS(nodo) CODA.insert(figli)

} while( goal_test(nodo)== false )4. return SUCCESS

Page 13: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

13/102

“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)

Page 14: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

14/102

“Breadth First” - simulazione

GOAL

Page 15: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

15/102

Alcuni numeridepth N° nodi Tempo Memoria2 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 TBb =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.

Page 16: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

16/102

“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)

Page 17: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

17/102

“Depth First” - simulazione

GOALbacktracking

Page 18: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

18/102

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

Page 19: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

19/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 ottimaleComplessità spaziale: O(bd/2)Complessità temporale: O(bd/2)

Page 20: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

20/102

Ricerca Bidirezionale - SimulazioneGOAL

X0

Page 21: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

21/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(bl)

Complessità temporale: O(bl)

PRO: evita loop infiniti senza usare memoria!

CON: richiede conoscenza a priori del problema

Page 22: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

22/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 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))2bd(b/(b-1))2

Page 23: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

23/102

Iterative Deepening - sim

Iterazione: 0

Page 24: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

24/102

Iterative Deepening - sim

Iterazione: 1

Page 25: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

25/102

Iterative Deepening - sim

Iterazione: 2

Page 26: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

26/102

Iterative Deepening - sim

GOAL

Iterazione: 3

Page 27: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

27/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.

Page 28: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

28/102

Ricerca a costo uniforme - Sim

44

26

6 2

1 4 5 6

1 568 5 6

COSTO: 023467GOAL

2 3 2

Page 29: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

29/102

Problem Solving

Ricerca nello spazio degli statiRicerca nello spazio degli stati

“Heuristic” Search

Page 30: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

30/102

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

Page 31: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

31/102

Come usare un’euristica?

X0

Actual State (n)

Goal State

g(n)

h(n)

f(n)

Page 32: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

32/102

Due Esempi di Euristiche

2

67 1

58

43

Tessere fuori posto

hfp(n) = 5

Distanza di Manhattan

hm(n) = 11

Page 33: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

33/102

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

n

n

n

Page 34: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

34/102

Proprietà generali delle Euristiche 2

Consistenza:h(n) è consistente se

Monotonicità:h(n) è monotona se

( ) ( , ') ( ') ( , ')h n c n n h n n n

( ) ( , ') ( ') | ' ( )h n c n n h n n n SCS n

n

c(n,n’) h(n’)

h(n)

n’

Page 35: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

35/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’)

Page 36: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

36/102

Esempi di Euristiche Ammissibili

7

85 21643 A) Tessere Fuori Posto

B) Distanza di ManhattanC) 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)

2

2

Page 37: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

37/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 all’obiettivo

Page 38: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

38/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

Page 39: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

39/102

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 0

GOAL

53

Page 40: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

40/102

Best-First Ottimale: A*(Hart, Nilsson and Raphael, 1968)

A* = un nome ambizioso

Funzione di valutazione f(n)=g(n)+h(n)

Caratteristiche:OttimaleCompletoComplex time & space: O(bd)Ottimamente efficiente

Page 41: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

41/102

Algoritmo A*

1. if (goal_test(x0)== true) return SUCCESS2. else OPEN.insert(x0, g(x0)+h(x0) )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

Page 42: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

42/102

Dimostrazioni

A* è un algoritmo ottimale

A* è un algoritmo completo

Page 43: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

43/102

A* = algoritmo ottimale

Per ASSURDO:

A* espande da OPEN 2 e 2 non è la soluzione ottima

n

*

n0

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

Page 44: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

44/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 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

Page 45: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

45/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*

(se w > 1)

Page 46: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

46/102

WA*: alcuni risultati sul 15-puzzle

wMosse 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

Page 47: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

47/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(bd)

Page 48: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

48/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

Page 49: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

49/102

Algoritmo IDA*

1. if (goal_test(x0)== true) return SUCCESS2. soglia = g(x0)+h(x0) 3. LISTA.insert(x0)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 SUCCESSelse{

update(soglia) GOTO 3}

£

?

Page 50: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

50/102

2+3 2+3

1+4 1+41+2

0+3IDA* SimulazioneThreshold: 3

Page 51: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

51/102

4+3 4+3

3+43+4

3+23+43+4

3+4

2+52+5 2+5

2+32+3 2+3

1+4 1+41+2

0+3IDA* SimulazioneThreshold: 5

Page 52: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

52/102

6+36+1

5+45+2

4+34+5

3+6

4+54+5

3+63+4

2+3

3+4 3+4

2+52+5

1+4 1+4

2+3

1+2

7+0

0+3IDA* SimulazioneThreshold: 7

Page 53: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

53/102

b =ca. 4

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

N!configurazioni risolvibili

operatori (non-reversibili)

N!/2

b = ca.3

Page 54: Intelligenza Artificiale Simbolica m. ernandes, e. trentin.

Intelligenza Artificiale - Problem Solving

54/102

Formalizzazione Problemi: Cubo di Rubik

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

18

configurazioni risolvibili

operatori utili su x

(8! 12! 38 212)/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 dell’asse centrale

3) Dopo aver mosso la faccia “A” e poi la faccia “B”, va mossa una delle altre 4 facce rimanenti.