intelligenza artificiale - dii.unisi.ittrentin/csp_introduzione.pdf · intelligenza artificiale -...

20
Intelligenza Artificiale Intelligenza Artificiale Ing. Tiziano Papini Ing. Tiziano Papini Email: [email protected] Web: http://www.dii.unisi.it/~papinit

Upload: ngonhu

Post on 06-Feb-2018

227 views

Category:

Documents


1 download

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