Soluzione. Esercizio. Forward Checking. Std backtracking

Documenti analoghi
TIPOLOGIE ESERCIZI SUI VINCOLI

TIPOLOGIE ESERCIZI SUI VINCOLI

COMPITO DI FONDAMENTI DI INTELLIGENZA ARTIFICIALE INTELLIGENZA ARTIFICIALE - parte I (tempo 2,30 h; punti 32) 12 Gennaio 2006

PROBLEMI DI SODDISFACIMENTO DI VINCOLI

PROBLEMI DI SODDISFACIMENTO DI VINCOLI

Esercizi d'esame su strategie di ricerca, CSP e Giochi. Compiti d'esame 2017 e 2018

Constraint Satisfaction Problems

Constraint Satisfaction Problems (CSPs)

SODDISFACIMENTO DI VINCOLI

Romicapo delle 8 (N) regine

Problemi CSP: Problemi di. soddisfacimento di vincoli. Colorazione di una mappa. Formulazione di problemi CSP. Formulazione. Tipi di problemi CSP

3 2 foglie, solo alcune sono soluzione (in grassetto)

PROBLEMI DI VINCOLI CSP (Constraint satisfaction problems),, X ik. ) che specificano quali valori delle variabili sono compatibili tra loro,

PROBLEMA DELLE 8 REGINE: MODELLO 2 (quello che adotteremo) Le otto regine vengono rappresentate con le variabili X 1, X 2,..., X 8 Il pedice si riferi

Prova scritta di Matematica Discreta e Logica del giorno 3 luglio 2017 Soluzione degli esercizi FILA D

COMPITO DI FONDAMENTI DI INTELLIGENZA ARTIFICIALE INTELLIGENZA ARTIFICIALE (v.o.) PARTE I. 8 Gennaio 2009 (Tempo a disposizione 2h, su 32 punti)

PROBLEMI DI VINCOLI CSP (Constraint satisfaction problems) trovare una assegnazione di valori alle variabili che soddisfa i vincoli.

circuiti combinatori Esercitazioni su Algebra Booleana: funzioni logiche di base Algebra booleana: equazioni

Esercitazioni su circuiti combinatori

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 12 Gennaio 2017 Tempo a disposizione: 2 h Risultato: 32/32 punti

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 9 Febbraio 2018 Tempo a disposizione: 2 h Risultato: 32/32 punti

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 16 Giugno 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti

Esame di Ricerca Operativa del 07/06/2019

3 Ricerca per Giochi e CSP

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 13 Gennaio 2010 Tempo a disposizione 2h Risultato 32/32 punti

Problemi di soddisfacimento di vincoli. Colorazione di una mappa. Formulazione di problemi CSP. Altri problemi

Prima prova Intermedia di Ricerca Operativa 2 COMPITO A Esercizio 1 (7 punti): LIFO

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 11 Gennaio 2018 Tempo a disposizione: 2 h Risultato: 32/32 punti

Sintesi Sequenziale Sincrona Sintesi Comportamentale di reti Sequenziali Sincrone

Metodo di Quine- McCluskey

Metodo di Quine- McCluskey

Introduzione agli algoritmi Prova di esame del 19/9/2016 Prof.sse E. Fachini - R. Petreschi. Parte prima

FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU)

COMPITO DI INTELLIGENZA ARTIFICIALE (v.o.) PARTE I FONDAMENTI DI INTELLIGENZA ARTIFICIALE. 29 Marzo 2007 (Tempo a disposizione 2h; su 32 punti)

FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU) 13 Gennaio 2015 Tempo a disposizione: 2 h Risultato: 32/32 punti

Colorazioni di mappe e basi di Gröbner

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 28 Gennaio 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti

C'era una volta in un paese lontano lontano la Mastro Geppetto Srl, una piccola impresa familiare condotta dall'esperto carpentiere Geppetto e dal

Teoria dei numeri 2. Alberto Saracco. Università di Parma Udine, 18 ottobre 2015

PROBLEMA DEL COMMESSO VIAGGIATORE

Introduzione all Intelligenza Artificiale a.a. 2016/17

Istituzioni di Matematiche (V): Seconda Prova Parziale, 13 Gennaio 2015 (versione 1)

FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU)

Corso di Laurea in Matematica per l Informatica e la Comunicazione Scientifica

Università del Piemonte Orientale

Problemi di soddisfacimento di vincoli. Maria Simi a.a. 2015/2016

csp & backtracking informatica e laboratorio di programmazione Alberto Ferrari Informatica e Laboratorio di Programmazione

Richiami di Teoria dei Grafi. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena

Prova scritta di Matematica Discreta e Logica del giorno 3 luglio 2017 Soluzione degli esercizi FILA C

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola:

Dipartimento di Elettronica, Informazione e Bioingegneria API 2013/4

Probabilità Condizionale - 1

Reti Logiche 1. Prof. B. Buttarazzi A.A. 2009/2010. Circuiti Addizionatori

La dualità nella Programmazione Lineare

SODDISFACIMENTO DI VINCOLI

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 14 Gennaio 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti

Calcolatori Elettronici Lezione 2 Algebra delle reti Logiche

In molte applicazioni sorge il problema di sapere in quanti modi possibili si può presentare un certo fenomeno.

COMPITO DI RICERCA OPERATIVA. max x 1 + x 2 + x 3 x 1 x 2 + x 3 = 1 x 1 x 2 + x 4 = 1 x 2 + x 5 = 2. x 1, x 2, x 3, x 4 0

Esercitazione 2 SAT. 11 Novembre Denizione del problema SAT

Progetto e analisi di algoritmi

Corso di Laurea in Scienze dell Architettura Modulo di Analisi Matematica

Reti Logiche A Prova di giovedì 3 febbraio 2005

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 25 Gennaio 2018 Tempo a disposizione: 2 h Risultato: 32/32 punti

Esercizi di Calcolo delle Probabilità

Partizioni intere. =! i# P. Es: Dato {38, 17, 52, 61, 21, 88, 25} possiamo rispondere positivamente al quesito poiché

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 12 Febbraio 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti

Esercizi per il corso di. Logistica I. a.a Daniela Favaretto. Dipartimento di Matematica Applicata Università Ca Foscari di Venezia

Costruzione di. circuiti combinatori

Funzioni booleane. Vitoantonio Bevilacqua.

RICERCA OPERATIVA (a.a. 2011/12) Nome: Cognome: Matricola:

Intelligenza Artificiale Ing. Tiziano Papini

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014

Programmazione Lineare Intera: Piani di Taglio

SODDISFACIMENTO DI VINCOLI

FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU)

Corso di Intelligenza Artificiale

Esame di Ricerca Operativa del 21/06/17

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

Esame di Ricerca Operativa - 17 luglio 2008 Facoltà di Ingegneria - Udine - CORREZIONE -

Esercizi proposti 4 (capitolo 8)

Note per la Lezione 4 Ugo Vaccaro

Intelligenza Artificiale. Ricerca euristica Algoritmo A*

Liceo Scientifico Statale G. Stampacchia Tricase Tempo di lavoro 120 minuti

Intelligenza Artificiale. Lezione 6bis. Sommario. Problemi di soddisfacimento di vincoli: CSP. Vincoli CSP RN 3.8, 4.3, 4.5.

Alberi. CORDA Informatica. A. Ferrari. Testi da. Marco Bernardo Edoardo Bontà. Dispense del Corso di. Algoritmi e Strutture Dati

Esercizi di Programmazione Lineare

Il metodo di eliminazione di Fermat.

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola:

Programmazione Lineare Intera. Programmazione Lineare Intera p. 1/4

I sistemi lineari Prof. Walter Pugliese

Quinto appello 27/6/ = 4. B b B = 2 b N = 4

Sintesi di Reti Logiche Combinatorie

FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU)

Dalla tabella alla funzione canonica

4 Agenti Logici e Pianificazione

Metodo di Quine-McCluskey. Algoritmo. Sommario. Sommario. M. Favalli

Probabilità esempi. Aiutiamoci con una rappresentazione grafica:

Transcript:

Esercizio Si devono visitare 6 clienti A, B, C, D, E, F nell arco della giornata lavorativa (dalle 9 alle 18). Due clienti non possono essere visitati contemporaneamente Si sa che i clienti C ed F devono essere visitati prima del cliente D. A è un cliente fuori città, mentre B, C, D, E ed F sono tutti in centro. Quindi, per spostarsi da A a ogni altro cliente si impiegano due ore, mentre qualunque spostamento in centro città viene effettuato a tempo trascurabile (=0). Il cliente C può essere visitato solo dalle 15 alle 17. Si modelli il problema in termini di variabili e vincoli. Si mostri l albero di ricerca fino alla prima soluzione relativo alla strategia standard backtracking e quello relativo al forward checking e si commentino i risultati. Soluzione Variabili: clienti Domini: possibili orari di visita A, B, C, D, E, F::[9..18] Vincoli: Due clienti non possono essere visitati contemporaneamente: X, Y X Y I clienti C ed F devono essere visitati prima del cliente D: C < D F < D A è un cliente fuori città, mentre B, C, D, E e F sono tutti in centro. Quindi, per spostarsi da A ad ogni altro cliente si impiegano due ore, mentre qualunque spostamento in centro città viene effettuato a tempo trascurabile (=0). X [B, C, D, E, F] A X + 2 OR X A + 2 Il cliente C può essere visitato solo dalle 15 alle 17. Vincolo unario su C che riduce il suo dominio C 15 e C 17 Std backtracking A=9 B=9 B=10 B=11 Fail Fail C=15 Forward Checking A = 9 B..F::[11..18] C::[15..17] B = 11 C::[15..17] D..F:: [12..18] D=9 D=10 D=11 D=12 D=13 D=14 D=15 D=16 Fail Fail Fail Fail Fail Fail Fail E=9 E=10 E=11 E=12 Fail Fail Fail C = 15 D::[16..18] E, F::[12..14, 16..18] D = 16 E::[12..14, 17..18] F::[12..14] E = 12 F::[13..14] F=9 F=10 F=11 F=12 F=13 Fail Fail Fail Fail OK Soluzione F = 13

ESERCIZIO Si supponga di avere a disposizione i seguenti vincoli: definiti sulle variabili X, Y, Z, K il cui dominio di definizione è [1..20]. Si risolva il problema applicando la strategia di full look ahead. Y :: 2..20 Y :: 2..20 K :: 2..20

Y :: 2..20 K :: 2..20 Y=2

Y=2 Y=2 Z :: 1..8 Y=2 Y=2 Z :: 1..8 Z :: 1..8 K=7 K=7 Z :: 1..8 Z :: 1..8 Z=1 successo

16 gennaio 2001 Nella prima settimana di Gennaio 2001, sei CD si trovavano in classifica rispettivamente nelle posizioni 1,2,3,4,5,6. Durante la seconda settimana, si trovano in nuove posizioni secondo i seguenti vincoli: i CD di posizione dispari sono CALATI in classifica (cioè sono in una posizione peggiore); i CD di posizione pari sono CRESCIUTI in classifica (cioè sono in posizione migliore); il CD 6 ha superato in classifica il 3, ma non l'1; il CD 4 non ha superato in classifica l'1; Si formuli il problema come Problema di Soddisfacimento di Vincoli, si applichi l'arc-consistenza alla rete risultante e si dica se il problema ammette una soluzione, più soluzioni o nessuna soluzione. Soluzione Variabili: CD1, CD2, CD3, CD4, CD5 e CD6. Domini: {1,2,3,4,5,6} Vincoli: CD1 > 1, CD3 > 3, CD5 > 5 CD2 < 2, CD4 < 4, CD6 < 6 CD6 < CD3, CD6 > CD1 CD4 > CD1 alldifferent([cd1,cd2,cd3,cd4,cd5,cd6,cd7]) Arc-Consistenza: CD1 :: {2} CD2 :: {1} CD3 :: {5} CD4 :: {3} CD5 :: {6} CD6 :: {4} Esiste quindi una ed una sola soluzione. 13 settembre 2006 Per decidere le posizioni a bridge quattro amici, Aldo, Barbara, Claudio e Dino hanno distribuito i quattro assi. Ho chiesto di dirmi quale asso gli fosse capitato e mi hanno risposto: Aldo: Barbara ha un asso dello stesso colore del mio. Barbara: Claudio ha un asso nero. Claudio: Aldo ha l'asso di cuori. Dino: io ho l'asso di fiori. Io so che quelli che hanno una carta rossa dicono sempre la verità, mentre quelli che hanno una carta nera mentono sempre. Chi aveva l'asso di cuori? Si modelli il problema come CSP e lo si risolva con Forward Checking. Soluzione Variabili: A,B,C,D Domini: 0,1,2,3 (convenzione 0=, 1=, 2=, 3= ) Con questa convenzione abbiamo che A < 2 indica che Aldo ha un asso rosso (e quindi dice la verità) Vincoli: A B, A C, A D, B C, B D, C D Aldo: Barbara ha un asso dello stesso colore del mio. B/2 = A/2 A < 2 Barbara: Claudio ha un asso nero. C > 1 B < 2 Claudio: Aldo ha l'asso di cuori. A = 0 C < 2 Dino: io ho l'asso di fiori. D = 2 D < 2

Forward Checking B :: 1 C :: 1 D :: 1,2,3 A:: 0,1,2,3 B:: 0,1,2,3 C:: 0,1,2,3 D:: 0,1,2,3 A=0 A=1 C :: vuoto B :: 0 C :: 2,3 D :: 0,2,3 B=1 B=0 C :: 2,3 D :: 2,3 D :: 3 C=2 25 Mar 2002 Formalizzare il seguente problema come Problema di Soddisfacimento di Vincoli: Ieri ho pagato un conto. Poi mi sono accorto di aver dato in Euro quello che dovevo in centesimi, e in centesimi il dovuto in Euro. Acc.. mi è costato più del doppio di quello che avrei dovuto, con una differenza di 89 centesimi. Qual era la cifra dovuta? Si risolva poi il problema utilizzando il Forward Checking. soluzione D=3 Formalizzazione CSP Forward Checking Abbiamo due variabili, che vanno da 0 a 99 (in quanto i centesimi possono andare solo da 0 a 99 e gli Euro sono scambiati con i centesimi nella cifra effettivamente pagata) Variabili: E, C Domini: 0..99 Vincoli: 100*C+E = 2*(100*E + C)+89 Visto che ho pagato più del dovuto, possiamo dire anche che C>E (vincolo ridondante). C :: [] E :: 0..99, C :: 0..99 E=0 E=1 E=2 C :: [] C :: [] E=3 C :: [7] C = 7 soluzione

Forward Checking B=2 C :: 2,3,4 D :: 2,3,4 E :: 2,3,4 C=2 C=3 D::3,4 E::{} fallim D::4 E::2 D=4 E::{} fallim B :: 2,3,4 C :: 2,3,4 D :: 2,3,4 E :: 2,3,4 B=3 A=1 stesso sottoalbero! C=4 D::{} fallim B=4 A :: 1,2,3 B :: 1,2,3,4 C :: 1,2,3,4 D :: 1,2,3,4 E :: 1,2,3,4 A=2 stesso sottoalbero! B :: 3,4 C :: 3,4 D :: 3,4 E :: 3,4 A=3 C :: 3,4 D :: 3,4 E :: 3,4 B :: {} B=3 B=4 C=3 D :: 4 E :: {} fallim C=4 D :: {} fallim stesso sottoalbero! A<B, A<C, A<D, A<E C<D, D<E, E<C Partial Look Ahead cancellati dal lookahead C :: {} (C<D) fall B=2 B :: 2,3,4 C :: 2,3,4 D :: 2,3,4 E :: 2,3,4 B=4 B=3 C :: {} (C<D) fall A=1 C :: {} (C<D) fall A :: 1,2,3 B :: 1,2,3,4 C :: 1,2,3,4 D :: 1,2,3,4 E :: 1,2,3,4 A=2 B :: 3,4 C :: 3,4 D :: 3,4 E :: 3,4 fail A=3 B :: {} A<B, A<C, A<D, A<E C<D, D<E, E<C Full Look Ahead cancellati dal partial cancellati dal full B :: 2,3,4 C :: 2,3,4 D :: 2,3,4 E :: 2,3,4 fail A=1 A :: 1,2,3 B :: 1,2,3,4 C :: 1,2,3,4 D :: 1,2,3,4 E :: 1,2,3,4 A=2 B :: 3,4 C :: 3,4 D :: 3,4 E :: 3,4 fail A=3 B :: {} A<B, A<C, A<D, A<E C<D, D<E, E<C 1 Aprile 2003 Si consideri il seguente problema: si devono allocare 6 task t1,, t6 le cui durate sono rispettivamente 3,4,5,4,7,6 su due risorse m1 e m2. Ad ogni task è associata la risorsa su cui viene eseguito: (t1, m2), (t2,m1), (t3,m2), (t4,m1), (t5,m1) (t6,m2). Su ogni risorsa può essere in esecuzione un solo task alla volta. Esistono dei vincoli di precedenza tra le seguenti coppie di task (t2,t4), (t1,t3), (t4,t5), (t1,t6), in cui il secondo task deve iniziare dopo o nello stesso istante in cui il primo finisce su una qualunque risorsa. Le risorse sono disponibili dall istante 1. E infine necessario che tutti i task terminino entro l istante di tempo 16, Si modelli il problema come un problema di soddisfacimento di vincoli. Sul problema iniziale, si applichi la arc consistenza ai soli vincoli di precedenza. Infine lo si risolva utilizzando il forward checking con euristica firstfail

Modello Ad ogni task è associata una variabile che rappresenta l inizio del task. Inoltre, ad ogni task è associata una variabile risorsa Start1::[1..13] R1=m2 Start2::[1..12] R2=m1 Start3::[1..11] R3=m2 Start4::[1..12] R4=m1 Start5::[1..9] R5=m1 Start6::[1..10] R6=m2 Start2 + 4 Start4 Start1 + 3 Start3 Start4 + 4 Start5 Start1 + 3 Start6 Se Ri = Rj Starti + di Startj Startj + dj Starti Arc-Consistenza sui vincoli di precedenza Start1::[1..13] R1=m2 Start2::[1..12] R2=m1 Start3::[1..11] R3=m2 Start4::[1..12] R4=m1 Start5::[1..9] R5=m1 Start6::[1..10] R6=m2 Start2 + 4 Start4 Start1 + 3 Start3 Start4 + 4 Start5 Start1 + 3 Start6 Arc consistenza su vincoli di precedenza: Start2 + 4 Start4 Start2::[1..8] Start4::[4..12] Start4 + 4 Start5 Start4::[5] Start5::[9] Risveglio Start2 + 4 Start4 Start2::[1] Start4::[5] Start1 + 3 Start3 Start1::[1..8] Start3::[4..11] Start1 + 3 Start6 Start1::[1..7] Start6::[4..10] Forward Checking Arc Consistency Start1::[1..7] Start2::[1] Start3::[4..11] Start4::[5] Start5::[9] Start6::[4..10] Forward checking Start2 = 1 Domini non cambiano Start4 = 5 Domini non cambiano Start5= 9 Domini non cambiano Start1 = 1 Domini non cambiano Start3 = 4 Start6::[9..10] Start6= 9 soluzione Forward Checking vs Look Ahead Si consideri il seguente CSP: variabili e domini A :: 1..3 B,C,D,E :: 1..4 vincoli A<B, A<C, A<D, A<E C<D, D<E, E<C Si mostri l albero esplorato dal Forward Checking dal Partial Look Ahead e da Full Look Ahead, istanziando le variabili in ordine lessicografico

16 Settembre 2005 Individuare due pozioni (una che consente di avanzare tra le fiamme e una per tornare indietro sani e salvi) tra una serie di sette bottiglie dal contenuto sconosciuto allineate sul tavolo. Il prof. Snape ha fornito una serie di indizi Le pozioni servono per avanzare o per tornare indietro oppure contengono vino d ortica o contengono veleno 1. C è sempre del veleno a sinistra del vino d ortica. 2. Le bottiglie alle estremità hanno contenuti diversi, ma nessuna di queste serve per andare avanti. 3. Né la bottiglietta più piccola, né quella gigante contengono veleno. 4. La seconda da sinistra e la seconda da destra hanno lo stesso contenuto. 5. La prima bottiglia non contiene ortica. Si formalizzi il problema come CSP Modello CSP Suppongo di numerare le bottiglie con 1, 2 7 da sinistra a destra Variabili: V1, V2 V7 Dom(Vi) = {A, I, O, V} dove A=avanti, I=indietro, O=vino d ortica, V=veleno Vincoli: Vi = O => Vi-1 = V (i=2, 7) V1 V7; V1 A; V7 A; V4 V; V6 V V2=V6 V1 O 12 Gennaio 2006 Un impiegato del comune, in fase di censimento, ha qualche informazione sugli abitanti di una palazzina: i signori Alberti, Bianchi, Carli, Doni, Elmi e Ferri che abitano (non necessariamente in questo ordine) negli appartamenti 1,2,3,4,5,6. Gli appartamenti si trovano su tre piani, due per piano. Gli appartamenti 1 e 2 al primo piano, il 3 e 4 al secondo piano e il 5 e 6 al terzo piano. L impiegato sa che i signori Alberti e Carli non abitano sullo stesso piano, i signori Bianchi e Ferri abitano a un piano più alto (maggiore) rispetto a quello in cui abita il signor Elmi. Doni abita a un piano più alto (maggiore) rispetto e Carli. Infine, Alberti e Elmi abitano allo stesso piano. Può l impiegato del comune in possesso di queste informazione dire a priori se esiste una sola soluzione? E se no come può trovarne una ammissibile? Si modelli il problema come un CSP applichi alla rete iniziale la tecnica della arc consistenza. Si proceda poi alla ricerca di una soluzione applicando il forward checking. Come euristica di selezione delle variabili si usi il first fail. Soluzione Per il problema non esiste mai un unica soluzione. Infatti, o il problema è insoddisfacibile oppure esistono soluzioni simmetriche. Non è specificato tra i vincoli se un inquilino abita nel primo o nel secondo appartamento di un piano. Pertanto il problema può essere modellato usando all interno dei domini i piani. In tal modo, è possibile che il problema abbia una unica soluzione (riferendosi ai piani) e una volta individuati il piano di ciascun individuo, è possibile generare tutte le soluzioni ammissibili del problema. Si modelli il problema con sei variabili A,B,C,D,E,F ciascuna inizialmente con dominio contenente i piani [1..3] I vincoli sono i seguenti Alberti e Carli non abitano sullo stesso piano: A C Bianchi abita a un piano più alto rispetto a quello in cui abita il signor Elmi: B > E Ferri abita a un piano più alto rispetto a quello in cui abita il signor Elmi: F > E Doni abita a un piano più alto rispetto e Carli: D > C Alberti e Elmi abitano allo stesso piano: A = E Due inquilini per piano a posteriori ossia appena due variabili assumono lo stesso valore questo valore e cancellato dai domini delle altre variabili

Si consideri il problema di colorare la mappa seguente usando solo 4 colori in modo che nessuna regione adiacente condivida lo stesso colore. Problemi di soddisfacimento di vincoli trovare un assegnamento di valori alle variabili che soddisfa tutti i vincoli Es: Colorazione di mappe Ho a disposizione 4 colori per colorare una mappa politica stati confinanti devono avere diverso colore 1 2 3 4 5 Backtracking Algoritmo semplice (ma a volte inefficiente) X2=rosso X1=rosso X3=rosso X3=verde X2=verde X3=giallo X4=rosso X4=verde X4=giallo X2 X1 X3 X4=blu X4 X5 Propagazione di vincoli Eliminazione a priori dei valori inconsistenti X1=rosso X2=verde X3=giallo X1:: r,v,g,b X2::r,v,g,b X3::r,v,g,b X4::r,v,g,b X5 r,v,g,b X5=rosso X5=verde X5=giallo successo