Intelligenza Artificiale marco ernandes Gennaio – Aprile 2007.

Slides:



Advertisements
Presentazioni simili
Strutture dati per insiemi disgiunti
Advertisements

Ricorrenze Il metodo di sostituzione Il metodo iterativo
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
Informatica Generale Marzia Buscemi
Informatica Generale Alessandra Di Pierro
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2005/2006.
Frontespizio Economia Monetaria Anno Accademico
La scelta del paniere preferito
Algoritmi e Strutture Dati
Lez. 91 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Alberi di ricerca.
RB-alberi (Red-Black trees)
Alberi binari di ricerca
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Teoria e Implementazione
Cammini minimi con sorgente singola
Implementazione dell algortimo di Viterbi attraverso la soluzione del problema di cammino mi- nimo tramite software specifico. Università degli studi di.
Reaching Definitions. Tino CortesiTecniche di Analisi di Programmi 2 Reaching definitions Dato un punto del programma, quali sono i comandi di assegnamento.
Ordini Parziali - Reticoli
Esercitazioni su circuiti combinatori
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmo di Ford-Fulkerson
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Programmazione 1 9CFU – TANTE ore
8. Reti di Code Nella maggior parte dei processi produttivi risulta troppo restrittivo considerare una sola risorsa. Esempio: linea tandem arrivi 1 v.
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Realizzazione e caratterizzazione di una semplice rete neurale per la separazione di due campioni di eventi Vincenzo Izzo.
Trovare il percorso minimo da b ad ogni altro vertice
Test di ipotesi X variabile casuale con funzione di densità (probabilità) f(x; q) q Q parametro incognito. Test Statistico: regola che sulla base di un.
Seminario su clustering dei dati – Parte II
La partita è molto combattuta perché le due squadre tentano di vincere fino all'ultimo minuto. Era l'ultima giornata del campionato e il risultato era.
QuickSort Quick-Sort(A,s,d) IF s < d THEN q = Partiziona(A,s,d) Quick-Sort(A,s,q-1) Quick-Sort(A,q + 1,d)
Cos’è un problema?.
Intelligenza Artificiale
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
Elementi di Informatica di base
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
TECNOLOGIE DELLINFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
Algoritmi e Strutture Dati
Un trucchetto di Moltiplicazione per il calcolo mentale
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 18 Ottobre.
Problemi con soddisfacimento dei vincoli
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Minimo comune multiplo
TRASFORMATA DI FOURIER
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 21 Agosto.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2008/2009.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Risoluzione dei Problemi (parte 2) Agostino Poggi.
1 Capitolo 3: Vincoli a dominio finito. 2 Vincoli a dominio finito u Problemi di soddisfazione di vincoli u Un risolutore con backtracking u Consistenza.
Ricerca locale M. Simi, Algoritmi di ricerca locale  Efficienti in occupazione di memoria: tengono traccia solo dello stato corrente (non.
Ricerca locale M. Simi, Algoritmi di ricerca locale  Efficienti in occupazione di memoria  tengono traccia solo dello stato corrente (non.
Ricerca locale Maria Simi Assunzioni sui problemi  Gli algoritmi visti esplorano gli spazi di ricerca alla ricerca di un goal e restituiscono.
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2011/2012.
Algoritmi e Strutture Dati Luciano Gualà
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2013/2014.
ASD a.a.2010/2011- Lezione 12 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi Backtracking/ Branch and Bound Lezione n°12.
Esempio: Map-Coloring
Transcript della presentazione:

Intelligenza Artificiale marco ernandes Gennaio – Aprile 2007

Intelligenza Artificiale - CSP 1/52 Constraint Satisfaction

Intelligenza Artificiale - CSP 2/52 PS vs. CSP Nel PS tutto ruota intorno al concetto di stato. Nel PS tutto è problem-specific (o state-specific) SCS(n), g(n), h(n), t(n), S 0. Gli stati sono dei veri black box senza struttura interna. La terminazione controlla se lo stato COINCIDE COMPLETAMENTE con uno degli stati finali. Il CSP invece cerca di aprire gli stati e generalizzarne la rappresentazione interna.

Intelligenza Artificiale - CSP 3/52 Il CSP si occupa, tipicamente di Problemi di assegnazione CONSTRAINT SATISFACTION PROBLEMS Nei problemi di assegnazione non cè linteresse di ottenere un percorso risolvente non cè (generalmente) un costo associato ad ogni passo non si possiede uno stato obiettivo (possedere uno stato obiettivo coincide con laver risolto il problema) Il PS fornisce un framework per affrontare problemi di percorso, il CSP fornisce tecniche per problemi di assegnazione: CONSTRAINT SATISFACTION PROGRAMMING CSP vs. PS

Intelligenza Artificiale - CSP 4/52 Esempi di CSP 1 I 2 N 3 FU 4 N 5 TO otto +due dieci aula ora 1A2A 9:00-10:00Diritto pubblicoStoria 2 10:00-11:00Diritto privatoPolitica comp. 11:00-12:00Storia 1Diritto privato

Intelligenza Artificiale - CSP 5/52 CSP (problems & programming) CSP CS-Programming Metodo per formalizzare e attaccare un problema CS. CS-Problems Tipologia di problemi (CS) La differenza tra PS e CSP può essere sfumata: un CSP può al limite essere formalizzato come PS e attaccato di conseguenza.

Intelligenza Artificiale - CSP 6/52 Definizione di CSP Un problema di CSP (soddisfacimento vincoli) è definito da: variabili un set di variabili: X 1, X 2,…, X n vincoli un set di vincoli (constraints): C 1, C 2,…, C m valori ogni variabile X i è associata ad un dominio D i di valori ammissibili v ogni vincolo C i agisce su di un subset di variabili e specifica le combinazioni di assegnamenti legali. La soluzione di un CSP è data da un assegnamento completo (per ogni variabile X i cè un valore estratto da D i ) senza violazione dei vincoli.

Intelligenza Artificiale - CSP 7/52 Variabili: 64 X ij con i = da 1 a 8, j = da 1 a 8 Dominio delle variabili D = {1,0} Vincoli: X ij = 1 SE X ik = 0 per tutti k da 1 a 8, k j ( ) X ij = 1 SE X kj = 0 per tutti k da 1 a 8, k i ( ) X ij = 1 SE X i+h,j+h = 0, X i-h,j-h = 0 per tutti i h ( ) da 1 a 8, h 0 CSP es: 8-Regine ( I ) x 1,j x 2,j x 3,j x 4,j x 5,j x 6,j x 7,j x 8,j x i,1 x i,2 x i,3 x i,4 x i,5 x i,6 x i,7 x i,8

Intelligenza Artificiale - CSP 8/52 Variabili: 8 X i con i = da 1 a 8 Dominio delle variabili D = {1,2,…,8} Vincoli: X i = k SE X j k per tutti j da 1 a 8, j i ( ) X i = k SE X i h k h per tutti i h da 1 a 8, h 0 ( ) CSP es: 8-Regine ( II ) x1x2x3x4x5x6 x7x8x1x2x3x4x5x6 x7x8 D =

Intelligenza Artificiale - CSP 9/52 Variabili: WA, NT, Q, NSW, V, SA, T Domini D i = {red, green, blue} Vincoli: regioni adiacenti devono avere colori diversi: es 1: color(WA) color(NT), es 2: color(WA,NT) da {(red,green), (red,blue), (green,red), (green,blue), (blue,red), (blue,green)} CSP es: Colorazione Mappe

Intelligenza Artificiale - CSP 10/52 CSP es: Criptoaritmetica two + two four Variabili: F, T, U, W, R, O (+ X d, X c, X m, i riporti) Domini D i = {1,2,3,4,5,6,7,8,9,0} Vincoli: ogni lettera deve essere associata ad un valore diverso e la somma tra due lettere in colonna (+ il riporto della somma precedente) deve essere uguale al valore della lettera risultato Alldiff(F, T, U, W, R, O) O+O = R +10 * X d X d +W+W = U + 10 * X c X m = F

Intelligenza Artificiale - CSP 11/52 CSP es: Soddisfacibilità (SAT) (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 ) Variabili: x 1,x 2,x 3 Domini D i = {true,false} Vincoli: il valore di ogni clausola deve essere TRUE (x 1 x 2 x 3 ) = TRUE (x 1 x 2 ) = TRUE

Intelligenza Artificiale - CSP 12/52 CSP e vincoli Constraint Network (CN): la rete di relazioni che coinvolge vincoli, variabili e valori. Arità dei vincoli k(C) Vincoli unari: k(C) = 1, il vincolo agisce solo su una variabile Vincoli binari: k(C) = 2, il vincolo agisce su una coppia di variabili Vincoli n-ari: k(C) = n, il vincolo agisce su più variabili contemporaneamente (es: N-Regine ogni variabile con valore ) CSP-binari possiedono al max. vincoli binari e si possono descrivere con un grafo dei vincoli. I CSP di ordine maggiore si descrivono con ipergrafi.

Intelligenza Artificiale - CSP 13/52 CSP e complessità CSP finiti: dominio finito di valori CSP infiniti:dominio infinito di valori (problemi affrontati dalla programmazione lineare) SAT: il SAT è un problema CSP finito e ogni CSP è riducibile al SAT, quindi: La complessità dei CSP finiti è esponenziale (es: Knapsack Problem 2 n )

Intelligenza Artificiale - CSP 14/52 Intro al CS-Programming Il Constraint Programming: insieme di metodologie che mirano alla risoluzione dei CSP e richiede 3 scelte progettuali modello (definito con framework CSP) algoritmo euristica Ognuna di queste scelte influenza lefficienza della risoluzione (es: il modello fa aumentare o diminuire le dimensioni della CN). Gli algoritmi si dividono in 2 categorie: Metodi Costruttivi Metodi Riparativi

Intelligenza Artificiale - CSP 15/52 Metodi Costruttivi Si parte da uno stato privo di assegnamenti e si cerca di immettere valori senza violare i vincoli. In questo caso si formalizza un CSP come un PS e si risolve attraverso tecniche di Search. Stato: assegnamento di valori dal dominio D i a variabili X i X 0 : assegnamento vuoto {} Successor function: un valore per ogni var non assegnata consistente con quelle già assegnate Goal test: assegnamento completo senza violazione di vincoli Costo di cammino: costante per ogni step

Intelligenza Artificiale - CSP 16/52 Metodi Costruttivi – vantaggi Commutatività del CSP: lordine degli assegnamenti è indifferente (non interessa il percorso), quindi: SCS: genera nodi da una sola variabile (qualsiasi) Non cè bisogno di memorizzare il cammino Non cè bisogno di calcolare il costo di cammino La profondità dellalbero è finita e conosciuta: d = numero di variabili da assegnare Gli algoritmi depth-first sono i più usati Le soluzioni proposte non violano i vincoli Grosso problema: le grandi dimensioni che può assumere D i che definisce il branching factor … e svantaggi

Intelligenza Artificiale - CSP 17/52 Backtracking Search E una ricerca Depth-First (per problemi CSP) in cui si espande facendo assegnamenti ad una sola variabile per volta. E lalgoritmo base per i CSP. 1. assignment = {}; 2. STACK.insert(assignment); 3. do if (STACK.isEmpty()) return failure; assignment = STACK.remove(); if (complete(assignment)) return assignment; STACK.insertAll (expand(assignment)); while (true);

Intelligenza Artificiale - CSP 18/52 Backtracking - simulazione Empty assignment 1 st variable 2 nd variable 3 rd variable Assignment = {}Assignment = {(X 1 =v11)}Assignment = {(X 1 =v11),(X 2 =v21)}Assignment = {(X 1 =v11),(X 2 =v21),(X 3 =v31)}Assignment = {(X 1 =v11),(X 2 =v21)}Assignment = {(X 1 =v11),(X 2 =v21),(X 3 =v32)}Assignment = {(X 1 =v11),(X 2 =v21)}Assignment = {(X 1 =v11)}Assignment = {(X 1 =v11),(X 2 =v22)}

Intelligenza Artificiale - CSP 19/52 Migliorare il backtracking ( I ) Il framework CSP permette di ottenere euristiche generali problem-independent considerando il concetto di espansione. Espandere vuol dire assegnare dei valori ad una variabile a scelta senza violare i vincoli. La ricerca Depth-First semplice non è molto efficiente. (Come già visto in PS). Nel PS si introduce uninformazione problem-specific (euristiche) per migliorare le prestazioni della ricerca.

Intelligenza Artificiale - CSP 20/52 Dal concetto di espansione: La scelta della variabile da espandere è determinante! Lordine dinserimento dei valori nello STACK è determinante! Le euristiche general-purpose del Constraint Programming rispondono quindi alle seguenti domande: 1. Quale variabile scegliere per lespansione? 2. In che ordine provare i valori? 3. E possibile scoprire in anticipo dei fallimenti? Migliorare il backtracking ( II )

Intelligenza Artificiale - CSP 21/52 Scelta della Variabile ( I ) Minimum Remaining Values (MRV) Heuristic: Si sceglie la variabile con il minor numero di valori legali rimanenti. MRV è anche detta: Most Constrained Variable Heuristic Fail First Heuristic Cheapest First Heuristic Vantaggi: Riduce il branching factor (da cui cheapest first) Porta più facilmente ad un fallimento superficiale (da cui fail first) con conseguente backtracking e quindi aiuta a potare lalbero.

Intelligenza Artificiale - CSP 22/52 Scelta della Variabile ( II ) Allo stato X 0 di questo esempio ogni variabile ha lo stesso numero di valori legali. In questo caso conviene scegliere la variabile coinvolta in più vincoli Riduce il branching factor delle scelte future Si chiama Degree Heuristic ed è spesso associata a MRV (funge da tie-breaker).

Intelligenza Artificiale - CSP 23/52 Scelta del Valore Least Constraining Value (LCV) Heuristic: Preferisci i valori che lasciano il più grande sottoinsieme di valori legali per le variabili non assegnate. E il criterio di ordinamento dellespansione Lidea è che si danno maggiori possibilità alla ricerca di trovare futuri assegnamenti legali. Mantiene 1 valore per SA Mantiene 0 valori per SA

Intelligenza Artificiale - CSP 24/52 Evitare i fallimenti La LCV Heuristic richiede il controllo previo del numero di valori rimanenti per variabile. Per fare questo si adotta il forward checking. Il Forward checking può essere utilizzato contemporaneamente per anticipare i dead-end. Per ogni variabile non-assegnata si tiene traccia del subset di valori ancora legali. Ogni volta che v è assegnato a X i : per ogni variabile non ass. X j connessa a X i da un vincolo si cancella dal dominio D j ogni valore inconsistente con v

Intelligenza Artificiale - CSP 25/52 E applicabile allinterno dellalgoritmo di backtracking come tecnica per stabilire quando tornare indietro. Ogni volta che si raggiunge uno stato non-consistente (con almeno una variabile priva di valori rimasti node-consistency) si effettua il backtracking. Forward Checking

Intelligenza Artificiale - CSP 26/52 WANTQNSWVSAT RGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGB T WA NT SA Q NSW V Forward Checking (es: colorazione grafo) Nellesempio non vengono adottate le altre euristiche

Intelligenza Artificiale - CSP 27/52 WANTQNSWVSAT RGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGB RRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGB T WA NT SA Q NSW V Forward checking rimuove il RED da NT e da SA Forward Checking (es: colorazione grafo) Nellesempio non vengono adottate le altre euristiche

Intelligenza Artificiale - CSP 28/52 WANTQNSWVSAT RGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGB RGBGBRGBRGBRGBRGBRGBRGBGBGBRGBRGB RGBGBGRGBRGBRGBRGBGBGBRGBRGB T WA NT SA Q NSW V Forward Checking (es: colorazione grafo) Nellesempio non vengono adottate le altre euristiche

Intelligenza Artificiale - CSP 29/52 WANTQNSWVSAT RGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGB RGBGBRGBRGBRGBRGBRGBRGBGBGBRGBRGB RBGRBRBRGBRGBBRGBRGB RBGRBRBBBRGBRGB T WA NT SA Q NSW V Forward Checking (es: colorazione grafo) Nellesempio non vengono adottate le altre euristiche

Intelligenza Artificiale - CSP 30/52 WANTQNSWVSAT RGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGB RGBGBRGBRGBRGBRGBRGBRGBGBGBRGBRGB RGBGBGRGBRGBRGRGGBGBRGBRGB T WA NT SA Q NSW V Forward Checking (es: colorazione grafo) Nellesempio non vengono adottate le altre euristiche

Intelligenza Artificiale - CSP 31/52 T WA NT SA Q NSW V Forward Checking (es: colorazione grafo) WANTQNSWVSAT RGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGB RGBGBRGBRGBRGBRGBRGBRGBGBGBRGBRGB RBGRBRBRGBRGBBRGBRGB RBGRBRBGBRGBRGB T WA NT SA Q NSW V Nellesempio non vengono adottate le altre euristiche

Intelligenza Artificiale - CSP 32/52 Arc Consistency (Waltz, 72) Forward Checking stabilisce un criterio di stop, ma non prevede i fallimenti con anticipo. In figura, per esempio, NT e SA sono entrambe Blu: nessuna soluzione è raggiungibile! Arc-consistency: per evitare di dead-end ci dobbiamo assicurare che, per ogni vincolo, rimanga un insieme di valori assegnabili alle variabili vincolate.

Intelligenza Artificiale - CSP 33/52 Contraint Propagation Arc-consistency può essere usato come controllo a supporto del backtracking dopo ogni assegnamento. Individua i dead-end prima di Forward Checking. Contraint Propagation: Lapproccio può però essere generalizzato facendo ripetutamente il controllo di arc- consistency, rimuovendo i valori che non la garantiscono.

Intelligenza Artificiale - CSP 34/52 Contraint Propagation Arc-consistency può essere usato come controllo a supporto del backtracking dopo ogni assegnamento. Individua i dead-end prima di Forward Checking. Contraint Propagation: Lapproccio può però essere generalizzato facendo ripetutamente il controllo di arc- consistency, rimuovendo i valori che non la garantiscono.

Intelligenza Artificiale - CSP 35/52 Algoritmi di Arc Consistency Invece di affrontare un CSP facendo search sulle variabili, si effettua un search sui vincoli (gli archi della CN). Si parte da una configurazione con i domini delle variabili pieni. Se un arco è inconsistente lo si rende consistente rimuovendo i valori inconsistenti. Larco x i x j (arco diretto) è definito consistente iff: v D i v D j cioè per ogni valore di V i esiste un assegnamento legale di V j. Quando si è reso consistente ogni arco allora si ritorna lassegnamento delle variabili come soluzione.

Intelligenza Artificiale - CSP 36/52 AC-3 (Mackworth, 86) ARCS = {tutti gli archi della CN}; while (!ARCS.isEmpty()) (X i,X j ) ARCS.remove(); if (REMOVE-INC-VALUES(X i,X j )==true) for all X k in NEIGHBORS[X i ] ARCS.put(X k, X i ); boolean removed = false; for all v in DOMAIN(X i ) if no value v in DOMAIN(X j ) satisfies (X i,X j ) DOMAIN(X i ).remove(v); removed = true; return removed; REMOVE-INC-VALUES(X i,X j ) AC-3

Intelligenza Artificiale - CSP 37/52 K-Consistency Generalizzazione del concetto di arc-consistency da coppie a gruppi di variabili: Un grafo è K-consistente se per ogni assegnamento legale di K-1 variabili esiste sempre un valore legale per ogni K-esima variabile V k nel grafo dei vincoli. Strong k-consistency = i-consistency per ogni i da 1 a k Node-consistency = strong 1-consistency Arc-consistency = strong 2-consistency Path-consistency = strong 3-consistency Un CSP con N variabili che sia strongly N-consistent, è risolvibile senza backtracking. Un CSP strongly K-consistent, è risolvibile senza backtracking se si trova lordinamento di variabili appropriato.

Intelligenza Artificiale - CSP 38/52 Abbiamo sin qui visto tecniche di look-ahead che mirano ad evitare i dead-end (profondi). Possiamo anche migliorare il backtracking con tecniche di look-back: Backjump Constraint recording Backtracking: si torna indietro alla variabile precedentemente assegnata Backjumping: si torna indietro direttamente alla variabile che a creato problemi. Migliorare il backtracking ( III )

Intelligenza Artificiale - CSP 39/52 Backjumping Motivazione: il motivo di un fallimento non si trova per forza nellultima coppia di assegnamenti, ma in assegnamenti precedenti. Backjumping = non-chronological backtracking. x1x1 x2x2 x3x3 x4x4 x5x5 x6x6 x7x7 x8x Fare backtracking a x 5 non cambia niente. Si rimane in un dead-end. Per un backtracking efficace va scelta unaltra variabile (secondo un criterio a scelta es: conflict set).

Intelligenza Artificiale - CSP 40/52 Conflict Set Si tiene traccia in CS[x i ] delle variabili assegnate, anche una sola, che entrano in conflitto con qualche valore presente in D i. Nogood variables. Directed-conflict Backtracking torna direttamente allassegnamento (+ recente) causa del dead-end. si rimuovono le decisioni intermedie e si aggiorna CS[] {} x1x1 {1}11 x2x2 {1,2}1212 x3x3 {1,2,3}12123 X4X4 {1,2,3,4} x5x x6x6 x7x7 x8x Directed-conflict Backtracking Ha il vantaggio di accelerare il processo di backtracking

Intelligenza Artificiale - CSP 41/52 Dynamic Backtracking (Ginsberg, 90, 92) E un non-chronological backtracking (backjumping) che: torna alla variabile nogood causa del dead-end NON rimuove le decisioni intermedie, ma ricostruisce lalbero eliminando un solo assegnamento X 1 = 1 X 2 = 3 X 3 = 5 X 4 = 2 X 5 = 4 X 1 = 1 X 2 = 3 X 3 = 5 X 5 = 4 Stabilire la variabile effettivamente causa del dead-end non è sempre ovvio

Intelligenza Artificiale - CSP 42/52 Dynamic Backtracking (es: crossword generation) 1 I 2 N 3 U 4 5 L 1 I 2 N I 2 N 3 FU 4 5 L 1A3A5A1D2D4D ASFUNGOITNAGNO INTADTOIFSAGDO ISLAATNUT NUL I 2 N 3 FU 4 N 5 L 1 I 2 N 3 FU 4 N 5 T O 1A2D 1D2A5A

Intelligenza Artificiale - CSP 43/52 Dynamic Backtracking (es: crossword generation) (Ginsberg, 90) ha usato: euristica MRV (cheapest-first): euristica LCV nella formula: min-look = 10 sul backtracking Schema di hashing (degli ingressi del dizionario) per calcolare rapidamente il dominio (matching dei pattern) Schemi grandi (15x15) riempiti in pochi secondi! 1° position2° position3° position4° position A … … …… B … ……… C … ……… … … il valore k è alto se lingresso k del dizionario contiene la data lettera i alla data posizione j

Intelligenza Artificiale - CSP 44/52 Euristiche e discrepanze In molti problemi reali lo spazio di ricerca è talmente vasto che si deve far ricorso a delle euristiche: Suggeriscono un assegnamento da fare Dipendono strettamente dal problema (es: nella generazione di cruciverba preferire le parole con vocali o lettere comuni). Gli algoritmi devono gestire lerrore delleuristica: seguire sempre leuristica può portare ad una inconsistenza gli errori si verificano più spesso nelle prime fasi della ricerca Il numero di errori delleuristica è tipicamente ridotto Si usa il concetto di discrepanza: assegnamento per il quale non viene seguito il suggerimento delleuristica. Lidea è che seguendo le indicazioni delleuristica, tranne in poche occasioni (discrepanze), si può arrivare rapidamente ad una soluzione.

Intelligenza Artificiale - CSP 45/52 Limited Discrepancy Search (Harvey, Ginsberg 95) LDS è un algoritmo iterativo. Ad ogni iterazione viene associato un numero massimo di discrepanze d. Se ad una iterazione non è stato possibile trovare una soluzione, la soglia di discrepanze d viene aumentata e si riparte. Ad ogni iterazione si effettuano tutte le ricerche con d discrepanze, iniziando con quelle che hanno le discrepanze più superficiali. Euristica = go left

Intelligenza Artificiale - CSP 46/52 Metodi Riparativi (Ricerca Locale) Si parte da uno stato pieno: cioè con tutte le variabili assegnate. Per rientrare nel framework CSP: Si consentono stati con violazione dei vincoli Gli operatori sono di riassegnamento di valori a variabili e non di assegnamento. Si usano tecniche di ottimizzazione locale: Min-Conflicts Hill-climbing Tabu Search Simulated annealing Algoritmi Genetici

Intelligenza Artificiale - CSP 47/52 Metodi Riparativi vs. Costruttivi Gli algoritmi costruttivi funzionano bene soprattutto su CSP-binari (o con pochi vincoli e pochi valori): Es: complex di AC-3 = O(nk 3 ) dipende da k=valori e n=archi Diventano poco gestibili con Constraint Networks ad arità maggiore e con molti valori. Es: N-regine con N > Gli algoritmi riparativi, locali, forniscono meno garanzie teoriche, ma nel caso di problemi molto complessi risultano efficienti nella pratica. Gli algoritmi riparativi non sono completi. Si tratta infatti di algoritmi locali.

Intelligenza Artificiale - CSP 48/52 Min-Conflicts (Minton, 92) Si sceglie una configurazione iniziale (random) Ripeti: Prendi una variabile x i in conflitto (random) Assegna a x i il valore che minimizza il numero di conflitti Se la configurazione è valida allora RETURN ASSEGNAZIONE, altrimenti CONTINUE

Intelligenza Artificiale - CSP 49/52 Min-Conflicts - vantaggi E estremamente efficace per problemi come quello delle n-regine. Risolti problemi di milioni di regine (con solo ~50 iterazioni partendo da assegn. random!). Con algoritmi costruttivi è impossibile. E estremamente utile (ed efficace) in problemi CSP reali, come quelli di scheduling: Perché se cè una variazione nei vincoli (es: cambio di orario di un professore nel problema del Class Scheduling) non si deve ricominciare da capo. E quindi un sistema che può far fronte ad un ambiente dinamico: online-CSP. Ha risolto il problema dello scheduling delle osservazioni del Telescopio Hubble. Può essere usato in forma iterativa o in associazione con algoritmi locali come simulated-annealing

Intelligenza Artificiale - CSP 50/52 Simulated Annealing Lapproccio di riparazione ha due modelli puri opposti: Hill-climbing: si segue uno schema di costante ascesa. Migliora gli stati ma si ferma nei massimi locali (si può ricominciare da uno stato iniziale diverso: Iterative Hill-Climbing) Random Walk: è completo, ma non cerca di migliorare gli stati. Simulate Annealing: generalizzazione che combina lhill-climbing con il random walk per ottenere completezza ed efficenza: Invece di fare la migliore scelta se ne fa una random. IF la scelta migliora lo stato attuale allora si accetta. ALTRIMENTIla scelta è accettata con una probabilità < 1 La probabilità è relata al peggioramento prodotto: exp(- /T) è dato dalla differenza di valore degli stati (peggioramento). T è la temperatura = se è alta si accettano molti peggioramenti Si tende a far decrescere la temperatura durante la ricerca.

Intelligenza Artificiale - CSP 51/52 Generalizzazione del CSP Variabili, valori, vincoli (modello o constraint network) potrebbero avere pesi diversi: 1) Rilassamento peso vincoli (libertà di violare). 2) Rilassamento peso variabili (libertà di non istanziare) 3) Rilassamento peso valori (alcuni preferibili). Questo si presenta quando: casting di un problema dal mondo reale al dominio dei CSP non vi sono soluzioni con una constraint network hard-valued. V-CSP: un peso su ogni elemento del modello Crossword Solving = P-CSP (sottoinsieme di V-CSP)

Intelligenza Artificiale - CSP 52/52 Riassumendo Motivazioni per il framework CSP Definizione e formalizzazione dei CSP Complessità dei CSP Algoritmi Costruttivi Backtracking Search MetaEuristiche: MRV, LCV Forward checking, consistency search Backjumping Dynamic Backtracking Discrepancy Search: LDS Algoritmi Riparativi Minimization Conflicts Simulated Annealing