intelligenza artificiale - dii.unisi.ittrentin/csp_introduzione.pdf · intelligenza artificiale -...
TRANSCRIPT
Intelligenza ArtificialeIntelligenza Artificiale
Ing. Tiziano PapiniIng. Tiziano PapiniEmail: [email protected]
Web: http://www.dii.unisi.it/~papinit
Intelligenza Artificiale - CSP Tiziano Papini - 2011 2
Constraint Satisfaction Constraint Satisfaction IntroduzioneIntroduzione
Intelligenza Artificiale - CSP Tiziano Papini - 2011 3
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), S0.
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.
CSP vs. PS
Intelligenza Artificiale - CSP Tiziano Papini - 2011 4
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
CSP vs. PS
Intelligenza Artificiale - CSP Tiziano Papini - 2011 5
Esempi di CSP
1 I 2 N
3 F U 4 N
5 T O
otto+ due
dieci
aulaora
1A 2A
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 6
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 Tiziano Papini - 2011 7
Definizione di CSP
Un problema di CSP (soddisfacimento vincoli) è definito da: un set di variabilivariabili: X1, X2,…, Xn
un set di vincolivincoli (constraints): C1, C2,…, Cm
ogni variabile Xi è associata ad un dominio Di di valorivalori ammissibili v
ogni vincolo Ci 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 Xi c’è un valore estratto da Di) senza violazione dei vincoli.
Un’assegnazione che non viola alcun vincolo è detta‘consistente’ (o ‘legale’).
Intelligenza Artificiale - CSP Tiziano Papini - 2011 8
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 9
Variabili: 64 Xi j con i = da 1 a 8, j = da 1 a 8
Dominio delle variabili D = {1,0}
Vincoli: Xi j = 1 SE Xi k = 0 per tutti k da 1 a 8, k ≠ j (orizzontale) Xi j = 1 SE Xk j = 0 per tutti k da 1 a 8, k ≠ i (verticale) Xi j = 1 SE Xi + h , j + h = 0,
Xi – h , j - h = 0 per tutti i±h da 1 a 8, h ≠ 0
(diagonali)
CSP es: 8-Regine (I)
x1,j
x2,j
x3,j
x4,j
x5,j
x6,j
x7,j
x8,j
xi,1 xi,2 xi,3 xi,4 xi,5 xi,6 xi,7 xi,8
Intelligenza Artificiale - CSP Tiziano Papini - 2011 10
Variabili: 8 Xi con i = da 1 a 8
Dominio delle variabili D = {1,2,…,8}
Vincoli: Xi = k SE Xj ≠ k per tutti j da 1 a 8, j ≠ i
(orizzontale e verticale)
Xi = k SE Xi ± h ≠ k±h per tutti i±h da 1 a 8, h ≠ 0
(diagonale)
CSP es: 8-Regine (II)
x1
x2
x3
x4
x5
x6
x7
x8
D = 1 2 3 4 5 6 7 8
Intelligenza Artificiale - CSP Tiziano Papini - 2011 11
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 12
Variabili: WA, NT, Q, NSW, V, SA, T
Domini Di = {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 Tiziano Papini - 2011 13
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:
CSP binari
Intelligenza Artificiale - CSP Tiziano Papini - 2011 14
CSP es: Criptoaritmetica
two+ two
four
Variabili: F, T, U, W, R, O (+ Xd, Xc, Xm, i riporti)
Domini Di = {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 * Xd
Xd +W+W = U + 10 * Xc
Xm = F
Intelligenza Artificiale - CSP Tiziano Papini - 2011 15
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 16
CSP es: Soddisfacibilità (SAT)
(x1 ∨ x2 ∨ x3) ∧ (¬x1 ∨ x2 ∨ x3) ∧ (x1 ∨ ¬x2 )
Variabili: x1,x2,x3
Domini Di = {true,false}
Vincoli: il valore di ogni clausola deve essere TRUE
(x1 ∨ x2 ∨ x3) = TRUE (¬x1 ∨ x2 ∨ x3) = TRUE (x1 ∨ ¬x2) = TRUE
OR AND NOT
Intelligenza Artificiale - CSP Tiziano Papini - 2011 17
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 18
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 19
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 2n)
Intelligenza Artificiale - CSP Tiziano Papini - 2011 20
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