20.06.2013 Views

download(PDF) - Dipartimento di Ingegneria dell'Informazione

download(PDF) - Dipartimento di Ingegneria dell'Informazione

download(PDF) - Dipartimento di Ingegneria dell'Informazione

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Nome e Cognome:<br />

Matricola:<br />

Nickname:<br />

Intelligenza Artificiale<br />

Compito - 12 Marzo 2007<br />

ESERCIZIO N° 1 – Ricerca Informata A* 4 punti<br />

Stabilite se un’euristica monotona permette ad A* <strong>di</strong> espandere sempre meno no<strong>di</strong> rispetto alla ricerca a costo<br />

uniforme. Motivate la risposta.<br />

Sì. A*, usando un’euristica monotona, espanderà sempre meno no<strong>di</strong> della ricerca UCS. UCS<br />

rappresenta un caso particolare <strong>di</strong> A* in cui hUSC(n) = 0 ∀n . A* sfrutta un’euristica<br />

monotona, quin<strong>di</strong> ammissibile, hA*(n) ≤ h*(n) ∀n. Ipotizzando che al nodo goal l’euristica<br />

abbia valore pari a 0, ne consegue che: 0 = hUSC(n) ≤ hA*(n) ≤ h*(n) ∀n. Questo coincide con<br />

la definizione <strong>di</strong> dominanza: hA*(n) domina hUCS(n) ogni nodo espanso da A* è anche<br />

espanso da UCS. Infatti fA*(n) ≥ fUCS(n) ∀n, quin<strong>di</strong> il numero <strong>di</strong> no<strong>di</strong> espansi da UCS, in cui<br />

fUCS(n) ≤ f*, è maggiore dei no<strong>di</strong> espansi da A*, in cui fA*(n) ≤ f*.<br />

ESERCIZIO N° 2 – Quiz “Vero o Falso” (+0,5 per ogni risposta corretta, -0,25 per ogni risposta errata) 6 punti<br />

1. Usando una versione <strong>di</strong> WA* in cui f(n)=g(n)+wh(n) e w=3, se h*(xo) = 20 allora il costo delle<br />

soluzioni ottenute sarà superiore a 60.<br />

2.<br />

3.<br />

Un algoritmo <strong>di</strong> ricerca ad approfon<strong>di</strong>menti iterativi trova la stessa soluzione <strong>di</strong> un algoritmo <strong>di</strong><br />

ricerca depth-first.<br />

Nella ricerca bi<strong>di</strong>rezionale le euristiche front-to-front valutano la <strong>di</strong>stanza tra un nodo della<br />

frontiera “forward” e un nodo della frontiera “backward”.<br />

4. Con lookahead infinito gli algoritmi real-time coincidono con gli algoritmi off-line. V F<br />

5. La ricerca ad approfon<strong>di</strong>menti iterativi visita sempre più no<strong>di</strong> della ricerca in ampiezza. V F<br />

6. Alfa-Beta Pruning trova mosse migliori <strong>di</strong> Minimax (a parità <strong>di</strong> taglio <strong>di</strong> profon<strong>di</strong>tà). V F<br />

7.<br />

8.<br />

9.<br />

10.<br />

11.<br />

12.<br />

I pattern databases permettono <strong>di</strong> calcolare un’euristica più informata sfruttando l’informazione<br />

ottenuta dalla risoluzione previa <strong>di</strong> porzioni del problema.<br />

Aggiungendo a IDA* una tabella hash che conserva i no<strong>di</strong> già espansi si <strong>di</strong>minuisce sia il costo<br />

temporale e sia il costo spaziale della ricerca.<br />

L’Alfa-beta pruning pota solo i rami dell’albero <strong>di</strong> ricerca che non influenzano la decisione<br />

minimax.<br />

A <strong>di</strong>fferenza <strong>di</strong> LRTA* l’algoritmo Online Depth First Search ha bisogno unicamente <strong>di</strong> una<br />

pila <strong>di</strong> no<strong>di</strong> per effettuare la scelta <strong>di</strong> un operatore.<br />

Nel caso <strong>di</strong> giochi multiplayer in cui le alleanze non sono ammesse non è possibile determinare<br />

la mossa ottima (secondo il criterio minimax) per l’agente intelligente.<br />

L’algoritmo minimax potrebbe essere reso più efficiente usando la ricerca ad approfon<strong>di</strong>menti<br />

iterativi, invece che la ricerca in profon<strong>di</strong>tà.<br />

V F<br />

V F<br />

V F<br />

V F<br />

V F<br />

V F<br />

V F<br />

V F<br />

V F


ESERCIZIO N° 3 – Ricerca Informata 8 punti<br />

2<br />

C<br />

3<br />

G1<br />

0<br />

1<br />

6<br />

Iterative deepening search<br />

Percorso risolvente:<br />

S B G2<br />

No<strong>di</strong> espansi: {} / S / S,A,B / S,A,C,D,B,E,G2<br />

Uniformed Cost search<br />

Percorso risolvente:<br />

No<strong>di</strong> espansi:<br />

Greedy search<br />

Percorso risolvente:<br />

S B E G2<br />

In questo grafo vengono riportati sugli archi i costi<br />

<strong>di</strong> cammino da uno stato all’altro e all’interno dei<br />

no<strong>di</strong> una valutazione euristica della <strong>di</strong>stanza da<br />

uno stato goal.<br />

Lo stato <strong>di</strong> partenza è S, gli stati goal sono G1 e<br />

G2.<br />

Per ognuno degli algoritmi proposti riportate: a) il<br />

percorso risolvente; b) la lista or<strong>di</strong>nata <strong>di</strong> no<strong>di</strong><br />

espansi. In caso <strong>di</strong> algoritmo iterativo separare con<br />

“/” le varie iterazioni.<br />

NOTA: il test <strong>di</strong> terminazione viene effettuato in<br />

fase <strong>di</strong> espansione. In caso <strong>di</strong> dubbio la scelta tra i<br />

no<strong>di</strong> avviene in or<strong>di</strong>ne alfabetico.<br />

(with CLOSED list) S,A,C,B,D,E,G2<br />

(without CLOSED list) S,A,C,S,B,D,E,A,D,C,B,B,E,S,B,E,G2<br />

S A D G1<br />

No<strong>di</strong> espansi: S,A,D,G1<br />

A* search<br />

2<br />

Percorso risolvente:<br />

S B E G2<br />

No<strong>di</strong> espansi: S,A,C,D,B,E,G2<br />

IDA* search<br />

A<br />

5<br />

4 6<br />

D<br />

2<br />

Percorso risolvente:<br />

3<br />

S<br />

10<br />

3<br />

7<br />

B<br />

5<br />

1<br />

E<br />

4<br />

9<br />

8<br />

5<br />

S B E G2<br />

No<strong>di</strong> espansi: {} / S,A,C,D / S,A,C,D,D / S,A,C,D,D,B,E / S,A,C,D,D,B,E,G2<br />

G2<br />

0


ESERCIZIO N° 4 – Game Playing 5 punti<br />

Osservate il seguente albero in cui MAX muove per primo.<br />

v=4<br />

β=3<br />

A) Qual è la mossa che MAX dovrà effettuare? E quale sarà probabilmente la mossa <strong>di</strong> MIN? Nel caso in cui MIN<br />

non muova in modo ottimo, quale potrebbe essere l’utilità finale <strong>di</strong> MAX?<br />

MAX effettuerà la mossa che porta a D. MIN dovrebbe rispondere con J.<br />

In caso contrario (configurazione K) MAX muoverebbe su U e quin<strong>di</strong> l’utilità finale sarebbe<br />

pari a 7 (maggiore dell’utilità minimax teorica: U(A)=4).<br />

B) Riportate in modo or<strong>di</strong>nato i no<strong>di</strong> visitati da MINIMAX.<br />

v=3<br />

α=3<br />

A,B,C,D,E,F,G,L,M,N,O,P,H,Q,I,R,S,W,X,Y,Z,J,T,K,U,V,X2,Y2,Z2<br />

oppure (no<strong>di</strong> “espansi”)<br />

A,B,E,L,M,F,N,O,G,P,C,H,Q,I,R,W,X,S,Y,Z,D,J,T,K,U,X2,V,Y2,Z2<br />

C) Riportate, nodo per nodo, i valori <strong>di</strong> utilità calcolati da MINIMAX.<br />

E=3; F=4; G=5; H=3; R=1; S=-1; I=1; J=4; U=7; V=-2; K=7; B=3; C=1; D=4; A=4;<br />

D) Quali sono i no<strong>di</strong> che la potatura alfa-beta non visita? Motivate la risposta mostrando sull’albero i valor assunti<br />

da v, alfa e beta nel caso <strong>di</strong> potature.<br />

La potatura alfa-beta evita la visita dei no<strong>di</strong>:<br />

O; I; R; W; X; S; Y; Z; V; Y2; Z2.<br />

v=7<br />

β=4


ESERCIZIO N° 5 – Torre <strong>di</strong> Hanoi 10 punti<br />

Considerate il problema della Torre <strong>di</strong> Hanoi (Figura A). Avete 3 paletti sui quali infilare 3 <strong>di</strong>schi <strong>di</strong> <strong>di</strong>verse<br />

<strong>di</strong>mensioni. Lo scopo del gioco è quello <strong>di</strong> portare i <strong>di</strong>schi dalla configurazione S (dove tutti i <strong>di</strong>schi si trovano sul<br />

paletto sinistro) alla configurazione G (tutti i <strong>di</strong>schi sul paletto destro). Potete muovere un solo <strong>di</strong>sco per volta. Un<br />

<strong>di</strong>sco non può essere collocato sopra un <strong>di</strong>sco <strong>di</strong> <strong>di</strong>mensioni inferiori. NOTA: come nei riquadri in Figura A, i<br />

<strong>di</strong>schi possono essere rappresentati usando i numeri 1 (piccolo), 2 (me<strong>di</strong>o), 3 (grande).<br />

(S)<br />

(n)<br />

A) Analizzate la <strong>di</strong>mensione dello spazio degli stati e <strong>di</strong>te come questa cambia al variare del numero <strong>di</strong> <strong>di</strong>schi.<br />

Per generare configurazioni legali della Torre <strong>di</strong> Hanoi partiamo da una configurazione priva <strong>di</strong><br />

<strong>di</strong>schi e li inseriamo partendo da quello più grande fino al più piccolo. Grazie all’inserimento<br />

or<strong>di</strong>nato siamo liberi <strong>di</strong> posizionare ogni <strong>di</strong>sco su qualsiasi paletto. Sia il <strong>di</strong>sco “3”, sia il <strong>di</strong>sco “2”,<br />

sia il <strong>di</strong>sco “1” potranno essere inseriti in 3 paletti <strong>di</strong>versi. Il numero <strong>di</strong> configurazioni legali è<br />

quin<strong>di</strong> pari a 3x3x3 = 27. Nel caso generale, dati N <strong>di</strong>schi il numero <strong>di</strong> configurazioni legali è 3 N .<br />

B) Analizzate il branching factor minimo e massimo dell’albero <strong>di</strong> ricerca e <strong>di</strong>te come questi cambiano al<br />

variare del numero <strong>di</strong> <strong>di</strong>schi.<br />

In<strong>di</strong>pendentemente dal numero <strong>di</strong> <strong>di</strong>schi, il problema presenta 3 “torri” con un totale <strong>di</strong> 3 <strong>di</strong>schi <strong>di</strong><br />

<strong>di</strong>mensioni <strong>di</strong>verse su cui applicare l’operatore <strong>di</strong> spostamento: D1 < D2 < D3 (la torre vuota è come un<br />

<strong>di</strong>sco <strong>di</strong> <strong>di</strong>mensioni infinite). Qualunque sia l’or<strong>di</strong>ne, D1 potrà essere mosso su D2 e D3; D2 su D3;<br />

mentre D3 non potrà essere mosso. In totale si hanno al massimo 3 mosse. Il branch factor minimo si<br />

ha quando 2 torri sono nulle, quin<strong>di</strong> vale solo: D1 muove su D2 e D3. Il branching factor minimo è <strong>di</strong> 2<br />

mosse. Durante la ricerca, possiamo imporre che non venga mai rivisitato il nodo padre (più in generale<br />

che non venga mai rimosso due volte <strong>di</strong> seguito lo stesso <strong>di</strong>sco).: quin<strong>di</strong> bMAX= 2; bMIN=1. Al variare del<br />

numero <strong>di</strong> <strong>di</strong>schi il branching factor rimane invariato.<br />

C) Provate a proporre 2 euristiche garantitamente ammissibili h1 e h2 usando le tecniche viste a lezione.<br />

Obiettivo: portare tutti i <strong>di</strong>schi sul paletto “target” in modo or<strong>di</strong>nato.<br />

I vincoli sugli operatori sono i seguenti: A) si muove un <strong>di</strong>sco per volta da t1 a t2; B) si preleva un <strong>di</strong>sco<br />

dalla cima della torre t1; C) si inserisce un <strong>di</strong>sco sulla cima <strong>di</strong> una torre t2; D) si muove un <strong>di</strong>sco da t1 a<br />

t2 se il <strong>di</strong>sco in t2 è più grande; E) il numero <strong>di</strong> paletti su cui fare un inserimento è pari a 2.<br />

Si possono ottenere molte euristiche <strong>di</strong>verse a seconda della combinazione dei vincoli rilassati. Ad es:<br />

h1 = euristica che deriva dal rilassamento <strong>di</strong> B, C, D, E. Questa euristica equivale al numero <strong>di</strong> <strong>di</strong>schi<br />

“fuori posto”.<br />

(G)<br />

1 X X<br />

2 X X<br />

3 X X<br />

X X 1<br />

X X 2<br />

X X 3<br />

1<br />

2 3 X<br />

Figura A: Torre <strong>di</strong> Hanoi.<br />

(S) configurazione iniziale<br />

(G) configurazione goal<br />

(n) configurazione <strong>di</strong> prova per l’esercizio D<br />

Un <strong>di</strong>sco può essere spostato da un paletto ad un<br />

altro solo se nel paletto <strong>di</strong> arrivo non è presente un<br />

<strong>di</strong>sco più piccolo.<br />

Ogni mossa ha costo pari a 1 (in<strong>di</strong>pendentemente<br />

dalla <strong>di</strong>stanza tra il paletto <strong>di</strong> origine e quello <strong>di</strong><br />

arrivo).<br />

h2 = rilassamento <strong>di</strong> D ed E. Per calcolarla si può effettuare una ricerca nello spazio degli stati del<br />

problema rilassato. E’ equivalente a <strong>di</strong>re: numero <strong>di</strong>schi fuori posto + 2 mosse per ogni <strong>di</strong>sco sul paletto<br />

target che non è al livello giusto (perché il <strong>di</strong>sco andrà “tolto e rimesso” effetto del vincolo C) + 1<br />

mossa per ogni <strong>di</strong>sco non sul target che ha sotto <strong>di</strong> sé un <strong>di</strong>sco più grande (il <strong>di</strong>sco dovrà essere<br />

portato su un altro paletto non target per lasciar “uscire” il <strong>di</strong>sco più grande effetto del vincolo B).


D) Applicate A* partendo dalla configurazione n (Figura A). Mostrate sul retro del foglio gli alberi <strong>di</strong> ricerca <strong>di</strong><br />

A* considerando che a parità <strong>di</strong> f(n) si preferisce il nodo con minor h(n). Quale delle due euristiche domina<br />

l’altra? Motivate.<br />

Dopo aver applicato A* usando l’euristica h1 e l’euristica h2 osserviamo che il numero <strong>di</strong><br />

no<strong>di</strong> espansi nella ricerca è minore per h2. Di più, con h2 A* espande i no<strong>di</strong> in modo<br />

verticale verso la soluzione: nel caso della configurazione n l’euristica h2 risulta<br />

perfettamente informata. Entrambe le euristiche sono ammissibili perché ottenute da<br />

tecnica <strong>di</strong> astrazione e rilassamento dei vincoli. Contemporaneamente vale la<br />

<strong>di</strong>suguaglianza h2(n) ≥ h1(n) ∀n. Quin<strong>di</strong> h2 domina h1.<br />

ESERCIZIO N° 6 (FACOLTATIVO) – Game Playing 5 punti<br />

Immaginate <strong>di</strong> giocare una versione <strong>di</strong> Tic-Tac-Toe (tris) in cui:<br />

a) i giocatori non vedono le mosse dell’avversario;<br />

b) una segnalazione acustica vi avverte quando inserite la crocetta (o cerchio) in una cella dove si trova già<br />

l’avversario. In caso <strong>di</strong> segnalazione potrete ripetere la mossa.<br />

Analizzate le caratteristiche <strong>di</strong> questo gioco e provate ad adattare l’algoritmo minimax in modo opportuno.<br />

Illustrate il vostro ragionamento tramite una configurazione <strong>di</strong> esempio.<br />

Si tratta <strong>di</strong> un gioco ad informazione imperfetta (non conosciamo completamente lo stato<br />

del gioco). Data la mancanza <strong>di</strong> conoscenza sulle mosse dell’avversario la segnalazione<br />

acustica può essere considerata come un evento <strong>di</strong> natura stocastica.<br />

Dobbiamo quin<strong>di</strong> adattare minimax in modo da gestire questi due fattori.<br />

La mancanza <strong>di</strong> conoscenza sulla configurazione può essere gestita associando ad ogni nodo<br />

dell’albero <strong>di</strong> ricerca minimax un doppio stato, ciascuno composto da una matrice 3x3. Lo<br />

stato A conterrà in ogni cella la probabilità (determinata dalle informazioni in possesso <strong>di</strong><br />

MAX) che la cella sia occupata da MAX e la probabilità che sia occupata da MIN. [1;0] se<br />

MAX l’ha occupata, [0;1] se MAX ha scoperto che MIN l’ha occupata, [0;p] se MIN ha la<br />

probabilità p <strong>di</strong> averla occupata. Lo stato B conterrà in ogni cella le probabilità<br />

determinate dalle informazioni (stimate da MAX) in possesso <strong>di</strong> MIN. Ve<strong>di</strong> figura <strong>di</strong><br />

esempio dove MAX muove O.<br />

L’euristica usata dovrà tenere<br />

conto delle probabilità interne<br />

alla configurazione.<br />

Il fattore stocastico potrà essere modellato con Expectiminimax. Ad ogni mossa saranno<br />

associati N possibili eventi: N sarà pari al numero <strong>di</strong> volte che può essere stata emessa la<br />

segnalazione acustica prima <strong>di</strong> aver completato la mossa, cioè pari al numero <strong>di</strong> mosse<br />

fatte “ignote”. Ad esempio, nella configurazione sopra, dove tocca a MIN muovere e dove<br />

sono state fatte 5 mosse <strong>di</strong> cui tre “ignote”: p0=4/7 sarà la probabilità dell’evento “non<br />

sentire la segnalazione acustica”; p1=(3/7)x(2/6)x(1/5) sarà la probabilità <strong>di</strong> “scoprire<br />

tutte le mosse ignote”; p2=(3/7)*(4/6) la probabilità <strong>di</strong> “scoprire solo una mossa ignota”;<br />

p3=(3/7)*(2/6)*(4/5) sarà la probabilità <strong>di</strong> “scoprire solo due mosse”.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!