Ricerca Automatica Esercitazione 3 Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 0
Ascensore In un grattacielo ci sono 3 coppie formate da marito e moglie. Il cancello delle scale viene chiuso e l unico modo per scendere è con l ascensore che può portare 3 persone alla volta e deve sempre portare almeno un passeggero. I mariti non vogliono che le rispettive mogli si ritrovino in presenza di altri mariti se non sono presenti essi stessi. Come devono scendere le 3 coppie senza crisi di gelosia? Formalizzare la soluzione come un problema di ricerca. Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 1
Ascensore (3a) (2 p.) caratterizzare lo spazio degli stati lo stato iniziale e lo stato obiettivo (3a) r. Lo spazio degli stati è costituito dalle possibili disposizioni tra piano terra ed ultimo piano delle 3 coppie e dell ascensore. Una possibile rappresentazione dello stato è data da: C C C boolean dove C = boolean boolean, in cui il valore 1 rappresenta la posizione all ultimo piano e si assume che in una coppia vengano indicati nell ordine moglie e marito. stato iniziale: < c(1, 1), c(1, 1), c(1, 1), 1 > stato finale: < c(0, 0), c(0, 0), c(0, 0), 0 > Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 2
Ascensore (3b) (2 p.) caratterizzare gli operatori (3b) r. Gli operatori sono: scendi(x) dove x rappresenta una combinazione di persone compresa tra 1 e 3, l operatore è applicabile se le persone indicate sono all ultimo piano e se l ascensore si trova all ultimo piano; x può essere rappresentato con le stesse convenzioni usate per lo stato: ad esempio c(0, 1), c(0, 1), c(0, 1) è un parametro valido per l operazione sali(x) dove x rappresenta una combinazione di persone compresa tra 1 e 3, l operatore è applicabile se le persone indicate e l ascensore si trovano al piano terra; la condizione di applicabilità degli operatori richiede inoltre che quando una moglie si trova in ascensore o al Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 3
piano terra o all ultimo piano senza marito, non siano presenti anche altri mariti: Ad esempio c(1, 0), c(x, 1), c(x, X) non è una configurazione ammissibile. Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 4
Ascensore (3c) (2 p.) costruire gli stati raggiungibili a partire dallo stato iniziale con un singolo operatore (3c) r. Y = scendi(c(1, 1), c(0, 0), c(0, 0)) S = stato(c(0, 0), c(1, 1), c(1, 1), 0) ; Y = scendi(c(0, 1), c(0, 1), c(0, 1)) S = stato(c(1, 0), c(1, 0), c(1, 0), 0) ; Y = scendi(c(1, 0), c(1, 0), c(1, 0)) S = stato(c(0, 1), c(0, 1), c(0, 1), 0) ; Y = scendi(c(1, 0), c(1, 0), c(0, 0)) S = stato(c(0, 1), c(0, 1), c(1, 1), 0) ; Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 5
Y = scendi(c(1, 0), c(0, 0), c(1, 0)) S = stato(c(0, 1), c(1, 1), c(0, 1), 0) ; Y = scendi(c(1, 0), c(0, 0), c(0, 0)) S = stato(c(0, 1), c(1, 1), c(1, 1), 0) ; Y = scendi(c(0, 0), c(1, 1), c(0, 0)) S = stato(c(1, 1), c(0, 0), c(1, 1), 0) ; Y = scendi(c(0, 0), c(1, 0), c(1, 0)) S = stato(c(1, 1), c(0, 1), c(0, 1), 0) ; Y = scendi(c(0, 0), c(1, 0), c(0, 0)) S = stato(c(1, 1), c(0, 1), c(1, 1), 0) ; Y = scendi(c(0, 0), c(0, 0), c(1, 1)) Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 6
S = stato(c(1, 1), c(1, 1), c(0, 0), 0) ; Y = scendi(c(0, 0), c(0, 0), c(1, 0)) S = stato(c(1, 1), c(1, 1), c(0, 1), 0) ; Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 7
Ascensore (3d) (4 p.) costruire una soluzione con la tecnica di ricerca in profondità. (3d) r. stato(c(1, 1), c(1, 1), c(1, 1), 1) scendi(c(1, 0), c(1, 0), c(1, 0)) stato(c(0, 1), c(0, 1), c(0, 1), 0) sali(c(0, 0), c(0, 0), c(1, 0)) stato(c(0, 1), c(0, 1), c(1, 1), 1) scendi(c(0, 1), c(0, 1), c(0, 1)) stato(c(0, 0), c(0, 0), c(1, 0), 0) sali(c(0, 0), c(0, 0), c(0, 1)) stato(c(0, 0), c(0, 0), c(1, 1), 1) scendi(c(0, 0), c(0, 0), c(1, 1)) stato(c(0, 0), c(0, 0), c(0, 0), 0) Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 8
Torri di Hanoi Il gioco delle Torri di Hanoi ha origine da un antica leggenda Vietnamita, secondo la quale un gruppo di monaci sta spostando una torre di 64 dischi (secondo la leggenda, quando i monaci avranno finito, verrà la fine del mondo). Lo spostamento della torre di dischi avviene secondo le seguenti regole: inizialmente, la torre di dischi di dimensione decrescente è posizionata su un perno 1; l obiettivo è quello di spostarla su un perno 2, usando un perno 3 di appoggio; le condizioni per effettuare gli spostamenti sono: tutti i dischi, tranne quello spostato, devono stare su una delle torri Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 9
è possibile spostare un solo disco alla volta, dalla cima di una torre alla cima di un altra torre; un disco non può mai stare su un disco più piccolo. Lo stato iniziale, uno stato intermedio, e lo stato finale per un insieme di 6 dischi sono mostrati nelle seguenti figure: 1 2 3 1 2 3 1 2 3 Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 10
Formalizzare la soluzione del gioco delle torri di Hanoi come un problema di ricerca. caratterizzare lo spazio degli stati caratterizzare lo stato iniziale e lo stato obiettivo definire gli operatori costruire l albero di ricerca con la tecnica di ricerca a profondità limitata con n = 3 per il problema di 3 dischi. Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 11
Torri di Hanoi: stati caratterizzare lo spazio degli stati lo stato iniziale e lo stato obiettivo gli stati vengono rappresentati tramite terne di liste ordinate (in ordine crescente) di interi (LO), che indicano il diametro dei dischi. LO LO LO Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 12
Torri di Hanoi: stati 1 2 3 < [1, 2, 3], [], [] > 1 2 3 < [], [1, 2, 3], [] > Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 13
Torri di Hanoi: operatori definire gli operatori muovi13() :< [X Xs], Y, Z > < Xs, Y, [X Z] > muovi23() :< X, [Y Y s], Z > < X, Y s, [Y Z] > muovi12() :< [X Xs], Y, Z > < Xs, [X Y ], Z > muovi21() :< X, [Y Y s], Z > < [Y X], Y s, Z > muovi31() :< X, Y, [Z Zs] > < [Z X], Y, Zs > muovi32() :< X, Y, [Z Zs] > < X, [Z Y ], Zs > muovisd si può eseguire se la condizione sul diametro dei dischi è soddisfatta nello stato destinazione. Inoltre il disco da spostare deve essere presente nello stato sorgente, ma questo è implicato dalla definizione con le liste non vuote. Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 14
Slot machine Si consideri il seguente gioco: un display mostra un numero costituito da tre cifre c 1, c 2 e c 3 appartenenti all insieme {0, 1, 2}. Sotto ogni cifra c i è presente un pulsante p i. Il giocatore può premere i pulsanti - uno alla volta - in successione. L effetto della pressione del pulsante p i è quello di sostituire alla cifra c i la somma modulo 3 delle altre due cifre. Modellare la soluzione del gioco come problema di ricerca in un opportuno spazio degli stati. Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 15
Slot machine: stati Descrivere lo spazio degli stati; Lo spazio degli stati è rappresentato dai valori dei pulsanti: P P P con P = {0, 1, 2}. stato iniziale < 0, 1, 2 > stato finale < 2, 1, 0 > Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 16
Slot machine: operatori Descrivere gli operatori; b1 :< X, Y, Z > < Y + 3 Z, Y, Z > b2 :< X, Y, Z > < X, X + 3 Z, Z > b2 :< X, Y, Z > < X, Y, X + 3 Y > Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 17
Slot machine: soluzione Supporre che all inizio il display mostri 0, 1, 2 ; rappresentare l albero di ricerca che si ottiene visitando lo spazio degli stati in ampiezza a partire da tale stato iniziale e fino a individuare la più breve pressione di tasti che conduce allo stato 2, 1, 0 (si eviti di espandere più volte uno stesso stato); b3 :< 0, 1, 2 > < 0, 1, 1 > b1 :< 0, 1, 1 > < 2, 1, 1 > b3 :< 2, 1, 1 > < 2, 1, 0 > Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 18
Ricerca: domande 1. La ricerca in profondità può non terminare su alberi di ricerca con fattore di ramificazione finito [vero o falso?]; 2. Se il fattore di ramificazione è finito e lo spazio degli stati ha profondità infinita, la ricerca in ampiezza è completa [vero o falso?]; 3. La ricerca in ampiezza espande sempre meno nodi rispetto a quella in profondità [vero o falso?]. 4. Il costo di spazio della ricerca in profondità è lineare nella profondità dell albero di ricerca [vero o falso?]. 5. A differenza degli algoritmi di ricerca in ampiezza, gli algoritmi ad approfondimento iterativo possono trovare come prima soluzione una soluzione che richiede un numero di passi non minimale [vero o falso?] Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 19
6. Un euristica si considera ammissibile quando non è mai inferiore del costo effettivo per raggiungere l obiettivo [vero o falso?]. 7. Definire la funzione di valutazione dei nodi usata dall algoritmo A* e spiegare la differenza con la ricerca golosa. 8. Descrivere il principio della ricerca simulated annealing. Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 20
Domande e Risposte 1 (3e)(2 p.) Illustrare le differenze tra la ricerca golosa e la ricerca euristica con A*. (3e) r. La ricerca golosa minimizza il costo stimato per ottenere la soluzione, mentre la ricerca A* minimizza il costo del cammino totale, cioè il costo per raggiungere il nodo corrente + il il costo stimato per ottenere la soluzione. Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 21
Domande e Risposte 2 (3e)(2 p.) Qual è il vantaggio principale della ricerca ad approfondimento iterativo rispetto alla ricerca in ampiezza e rispetto alla ricerca in profondità. (3e) r. Rispetto alla ricerca in ampiezza la ricerca ad approfondimento iterativo usa meno memoria (lineare anzichè esponenziale) e rispetto alla ricerca in profondità è completa ed ottimale (se il fattore di ramificazione è finito). Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 22