Intelligenza Artificiale Ing. Tiziano Papini Email: papinit@dii.unisi.it Web: http://www.dii.unisi.it/~papinit
Constraint Satisfaction Introduzione Intelligenza Artificiale - CSP Tiziano Papini - 2011 2
CSP vs. PS Nel PS tutto ruota intorno al concetto di stato. Nel PS tutto è problem-specific (o state-specific) Op(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 Tiziano Papini - 2011 3
CSP vs. PS Il CSP si occupa, tipicamente di Problemi di assegnazione CONSTRAINT SATISFACTION PROBLEMS Nei problemi di assegnazione non c è l interesse 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 l aver risolto il problema) Il PS fornisce un framework per affrontare problemi di percorso, il CSP fornisce tecniche per problemi di assegnazione: CONSTRAINT SATISFACTION PROGRAMMING Intelligenza Artificiale - CSP Tiziano Papini - 2011 4
Esempi di CSP otto + due dieci 1 I 2 N 3 F U 4 N 5 T O aula 1A 2A ora 9:00-10:00 Diritto pubblico Storia 2 10:00-11:00 Diritto privato Politica comp. 11:00-12:00 Storia 1 Diritto privato Intelligenza Artificiale - CSP Tiziano Papini - 2011 5
CSP (problems & programming) CSP CS-Problems Tipologia di problemi (CS) CS-Programming Metodo per formalizzare e attaccare un problema 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 Tiziano Papini - 2011 6
Definizione di CSP Un problema di CSP (soddisfacimento vincoli) è definito da: un set di variabili: X 1, X 2,, X n un set di vincoli (constraints): C 1, C 2,, C m 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. Un assegnazione che non viola alcun vincolo è detta consistente (o legale ). Intelligenza Artificiale - CSP Tiziano Papini - 2011 7
Definizione di CSP Un assegnazione è completa se ogni variabile riceve un valore dentro quell assegnazione; Una soluzione è un assegnazione completa che soddisfa tutti i vincoli del problema; Idea: Se una soluzione è uno stato del problema che soddisfa certi requisiti, allora il compito di trovare una soluzione può essere visto come un compito di ricerca dentro uno spazio di stati; In questo senso, gli algoritmi di soddisfacimento vincoli sono degli algoritmi di ricerca. Intelligenza Artificiale - CSP Tiziano Papini - 2011 8
CSP es: 8-Regine (I) Variabili: 64 X i j con i = da 1 a 8, j = da 1 a 8 Dominio delle variabili D = {1,0} Vincoli: X i j = 1 SE X i k = 0 per tutti k da 1 a 8, k j (orizzontale) X i j = 1 SE X k j = 0 per tutti k da 1 a 8, k i (verticale) X i j = 1 SE X i + h, j + h = 0, X i h, j - h = 0 per tutti i±h da 1 a 8, h 0 (diagonali) Intelligenza Artificiale - CSP Tiziano Papini - 2011 9 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
CSP es: 8-Regine (II) D = 1 2 3 4 5 6 7 8 Variabili: 8 X i con i = da 1 a 8 Dominio delle variabili D = {1,2,,8} Vincoli: x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 X i = k SE X j k per tutti j da 1 a 8, j i (orizzontale e verticale) X i = k SE X i ± h k±h per tutti i±h da 1 a 8, h 0 (diagonale) Intelligenza Artificiale - CSP Tiziano Papini - 2011 10
Colorazione di mappe Teorema dei quattro colori: Quattro colori sono sufficienti a colorare qualunque mappa in modo che nessuna coppia di regioni adiacenti riceva lo stesso colore. ( Adiacenti significa con almeno un segmento in comune, e una regione `e una porzione di piano connessa); Dimostrato nel 1977 da Kenneth Appel e Wolfgang Haken, con l aiuto del computer: la prima formulazione come congettura risale a metà 800, e diversi matematici avevano creduto erroneamente di averlo dimostrato (Kempe, Tait); Esempio: Intelligenza Artificiale - CSP Tiziano Papini - 2011 11
CSP es: Colorazione Mappe 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)} Intelligenza Artificiale - CSP Tiziano Papini - 2011 12
CSP binari Nei CSP binari ciascun vincolo mette in relazione al massimo due variabili; Un CSP binario può essere visualizzato tramite un grafo dei vincoli, dove ogni nodo è una variabile e ogni arco è un vincolo; Ad esempio, la colorazione mappe è un CSP binario: Intelligenza Artificiale - CSP Tiziano Papini - 2011 13
CSP es: Criptoaritmetica 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 two + two four Intelligenza Artificiale - CSP Tiziano Papini - 2011 14
CSP es: Criptoaritmetica Esempio S = 9, E=5, N=6, D=7, M=1, O=0, R=8, E=5, Y=2 Intelligenza Artificiale - CSP Tiziano Papini - 2011 15
CSP es: Soddisfacibilità (SAT) OR AND NOT (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 x 3 ) = TRUE (x 1 x 2 ) = TRUE Intelligenza Artificiale - CSP Tiziano Papini - 2011 16
CSP nel mondo reale Problemi di assegnazione. Es.: Ripartire i corsi tra gli insegnanti; Problemi di pianificazione. Es.: Stabilire quali corsi offrire, dove e quando; Configurazione hardware; Pianificazione di una rete di trasporti (treni, bus, ecc.); Scheduling della produzione in una fabbrica. Nota: Molti problemi reali coinvolgono variabili continue. Intelligenza Artificiale - CSP Tiziano Papini - 2011 17
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 Tiziano Papini - 2011 18
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 Tiziano Papini - 2011 19
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 l efficienza 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 Tiziano Papini - 2011 20