Intelligenza Artificiale Lezione 15 Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 0
Sommario CSP RN 3.8, 4.3, 4.5 Giochi RN 5.1, 5.2, 5.3, 5.4 Algoritmi genetici RN 20.8 Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 1
Problemi di soddisfacimento di vincoli: CSP Problema di ricerca standard: stato è una black box ogni struttura dati che supporta test obiettivo, valutazione, successori CSP (Constraint Satisfaction Problem): stato è definito da variabili V i con valori in domini D i test obiettivo è un insieme di vincoli che specificano combinazioni di valori per sottoinsiemi delle variabili Permette utili algoritmi general-purpose più potenti degli algoritmi di ricerca standard Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 2
Vincoli Dominio discreto e continuo Vincolo sul dominio Unario Vincolo Binario: correla due variabili Vincoli assoluti o di preferenza Grafo dei vincoli: i nodi sono variabili, gli archi mostrano i vincoli Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 3
Esempio: colorazione di mappe Colorare una mappa in modo che paesi adiacenti non siano dello stesso colore Variabili paesi C i Domini {Rosso, Blu, V erde} Vincoli P 1 P 2, P 1 P 5, etc. C 3 C C 1 2 C 5 C 6 C 4 Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 4
Colorazione mappa Grafo dei vincoli: C1 C2 C 5 C 3 C 6 C 4 Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 5
Ricerca della soluzione nei CSP CSP sono problemi di ricerca speciali : gli stati sono definiti da valori di un insieme fissato di variabili test obiettivo definito da vincoli su valori di variabili Backtracking = ricerca in profondità 1) ordine delle variabili fissato 2) solo successori legali La verifica in avanti impedisce assegnazioni che risulterebbero in futuri fallimenti Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 6
Euristiche L ordinamento delle variabili e le euristiche di scelta dei valori possono essere molto efficaci: variabile più vincolata variabile più vincolante valore meno vincolante C A GREEN B RED E F D Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 7
Algoritmi iterativi per CSP Hill-climbing, simulated annealing tipicamente lavorano con stati completi, i.e., tutte le variabili assegnate Per applicarli a CSP: permettere stati con vincoli violati operatori per riassegnare valori a variabili che creano conflitti Euristica del min-conflicts : scegliere il valore che viola il minimo numero di vincoli i.e., hillclimb con h(n) = numero totale di vincoli violati Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 8
Giochi astratti, scacchi dama, go, backgammon, bridge concentrano l attenzione sulla strategia: ambiente accessibile, statico e (in molti casi) informazione perfetta reali calcio, esplorazione, ricerca: ambiente solo parzialemente accessibile, dinamico, l informazione è incompleta Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 9
Giochi vs. problemi di ricerca Avversario non prevedibile soluzione è un piano con contingenza Limiti di tempo improbabile trovare obiettivo, bisogna approssimare Piano d attacco: algoritmi per giochi perfetti (Von Neumann, 1944) orizzonte finito, valutazione approssimata (Zuse, 1945; Shannon,1950; Samuel, 1952 57) potatura per ridurre i costi (McCarthy, 1956) Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 10
Tipi di giochi informazione perfetta informazione imperfetta deterministici dama, scacchi, go, otello fortuna backgammon monopoli bridge, poker, scarabeo Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 11
Caratterizzazione del problema Lo stato iniziale, che include la posizione sulla scacchiera e un indicazione di chi deve muovere. Un insieme di operatori, che definiscono le mosse lecite che può fare un giocatore. Un test di terminazione, che determina quando il gioco è finito. Gli stati in cui il gioco si conclude sono detti stati terminali. Una funzione di utilità (detta anche una funzione di guadagno), che attribuisce un valore numerico al risultato di una partita. Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 12
MAX (X) MIN (O) X X X X X X X X X MAX (X) X O X O X O... MIN (O) X O X X O X X O X............... TERMINAL Utility X O X X O X X O X O X O O X X O X X O X O O 1 0 +1... Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 13
Ricerca della soluzione con Minimax Minimax: Per giochi deterministici a informazione perfetta Idea: scegli una mossa verso una posizione con il più alto valore minimax = il migliore guadagno ottenibile a fronte del miglior gioco dell avversario 1. si genera l albero del gioco 2. si applica la funzione di utilità a ciascuno stato terminale 3. si usa l utilità al livello N + 1 per determinare l utilità al livello n, scgliendo il min per le mosse dell avversario ed il max per le proprie mosse. Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 14
MAX 3 A 1 A 2 A 3 MIN 3 2 2 A 11 A 12 A 13 A 21 A A 22 23 A 31 A 32 A 33 3 12 8 2 4 6 14 5 2 Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 15
function Decisione-Minimax(gioco) returns un operatore for each op in Operatori[gioco] do Valore[op] Valore-Minimax(Appl(op, gioco), gioco) end return l op con Valore[op] più alto function Valore-Minimax(stato, gioco) returns un valore di utilità if Test-Terminale[gioco](stato) then return Utilità[gioco](stato) else if si deve muovere max in stato then return il più alto Valore-Minimax in Successori(stato) else return il più basso Valore-Minimax in Successori(stato) Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 16
Proprietà di minimax Completo?? Si, se l albero è finito Ottimale?? Si, contro un avversario ottimale Complessità temporale?? O(b m ) Complessità spaziale?? O(bm) (esplorazione in profondità ) Per gli scacchi, b 35, m 100 per partite ragionevoli soluzioni esatte assolutamente non fattibili Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 17
Risorse limitate Supponiamo di avere 100 secondi, di esplorare 10 4 nodi/secondo 10 6 nodi per mossa Approccio standard: test di taglio (cutoff) e.g., limite di profondità funzione di valutazione = desiderabilità stimata della posizione Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 18
Esempi di valutazione Muove il Nero Bianco lievemente avvantaggiato Muove il Bianco Nero vince Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 19
Funzioni di valutazione Per gli scacchi, tipicamente la somma pesata lineare delle features Eval(s) = w 1 f 1 (s) + w 2 f 2 (s) +... + w n f n (s) valore dei pezzi schieramento Proprietà della funzione di valutazione precisa efficiente Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 20
Tagliare la ricerca Taglio-Minimax è identico a Valore-Minimax eccetto 1. Test-Terminale è rimpiazzato da Test-Taglio 2. Utilità è Valore Funziona in pratica? b m = 10 6, b = 35 m = 4 Lookahead di 4-turni è un giocatore senza speranze! 4-turni giocatore novizio 8-turni tipico PC, giocatore master 12-turni Deep Blue, Kasparov Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 21
Esempio di α β MAX 3 A 1 A 2 A 3 MIN 3 2 2 A 11 A 12 A 13 A 21 A A 22 23 A 31 A 32 A 33 3 12 8 2 4 6 14 5 2 Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 22
Proprietà dell α β Potatura non influenza il risultato finale Un buon ordinamento delle mosse migliora l efficacia della potatura Con un ordinamento perfetto, la complessità temporale è = O(b m/2 ) raddoppia la profondità della ricerca può facilmente raggiungere profondità 8 e fare un buon gioco di scacchi Semplice esempio del valore del meta-ragionamento su quali computazioni sono rilevanti Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 23
Perchè il nome α β? MAX MIN...... MAX MIN V Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 24
Potatura α β? α è il miglior valore (per max) trovato finora sul cammino corrente Se V è peggio di α, max lo evita pota quel ramo β definito in modo analogo per min Algoritmo α β Essenzialmente: Minimax + tenere memoria di α, β + potatura Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 25
Giochi deterministici in pratica Dama: Chinook ha concluso i 40 anni di regno del campione umano Marion Tinsley in 1994. Usa un database di chiusure di gioco che specificano le mosse con 8 pezzi sulla scacchiera, o meno, un totale di 443. 748. 401. 247 posizioni. Scacchi: Deep Blue ha vinto il campione mondiale Gary Kasparov in un match di sei partite nel 1997. Deep Blue cerca 200 milioni di posizioni al secondo, usa una funzione di valutazione molto sofisticata, e metodi (non pubblicati) per estendere alcune linee di ricerca fino a 40 turni. Otello: i campioni umani si rifiutano di competere con i calcolatori, che sono troppo bravi Go: i campioni umani si rifiutano di competere con i calcolatori, che sono troppo stupidi. Nel Go, b > 300. Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 26
Algoritmi genetici 1 Idea: organismi che evolvono; quelli che non sono adatti all ambiente muoiono, mentre quelli adatti sopravvivono e si riproducono (Darwin) popolazione iniziale: individui o cromosomi riproduzione: per incrocio, per mutazione selezione: mediante funzione di adeguatezza Ricerca nello spazio degli individui Ricerca a salita più ripida, perché si fanno delle piccole modifiche genetiche agli individui e si usano i migliori discendenti Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 27
Algoritmi genetici 2 Per applicare gli algoritmi genetici dobbiamo decidere: 1. Cos è la funzione di adeguatezza (fitness)? 2. Com è rappresentato un individuo? 3. Come vengono selezionati gli individui? 4. Come si riproducono gli individui? 1. funzione da individui a numeri reali 2. stringa di caratteri o (geni) (spesso 0/1) 3. generalmente la strategia di generazione è stocastica 4. incroci e mutazione Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 28
Algoritmi genetici 3 000110010111 8 32% 111010101100 111010010111 111010010111 111010101100 6 24% 000110010111 000110101100 000110101100 001110101001 6 24% 111010101100 111010101001 111110101001 111011011100 5 20% 001110101001 001110101100 001110101101 (a) (b) (c) Popolazione iniziale Funzione Selezione di adeguatezza (d) Incrocio (e) Mutazione Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 29
Algoritmi genetici: implementazione function Algoritmo-Genetico( popolazione, Fn-Ad) returns individuo inputs: popolazione, insieme di individui Fn-Ad, funzione che misura l adeguatezza di un individuo repeat genitori Selezione( popolazione,fn-ad) popolazione Riproduzione( genitori) until qualche individuo è abbastanza adeguato return individuo migliore in popolazione, secondo Fn-Ad Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 30