• Non ci sono risultati.

Esempio: Map--Coloring Coloring

N/A
N/A
Protected

Academic year: 2021

Condividi "Esempio: Map--Coloring Coloring"

Copied!
20
0
0

Testo completo

(1)

Esempio: Map

Esempio: Map--Coloring Coloring

1 1

•• variabili variabili WA, NT, Q, NSW, V, SA, T WA, NT, Q, NSW, V, SA, T

•• Domini Domini D D

ii

= {red,green,blue} = {red,green,blue}

•• vincoli vincoli: regioni adiacenti devono avere colori diversi : regioni adiacenti devono avere colori diversi

•• e.g., WA e.g., WA ≠ ≠ NT, or (WA,NT) in NT, or (WA,NT) in

{(red,green),(red,blue),(green,red), {(red,green),(red,blue),(green,red), (green,blue),(blue,red),(blue,green)}

(green,blue),(blue,red),(blue,green)}

(2)

Esempio: Map

Esempio: Map--Coloring Coloring

2 2

•• Le soluzioni Le soluzioni sono assegnamenti sono assegnamenti completi completi e e consistenti

consistenti, e.g., WA = red, NT = green,Q = , e.g., WA = red, NT = green,Q =

red,NSW = green,V = red,SA = blue,T = green

red,NSW = green,V = red,SA = blue,T = green

(3)

Constraint graph Constraint graph

•• CSP binario: CSP binario: ogni vincolo si ogni vincolo si correla a due variabili

correla a due variabili

•• Constraint graph: Constraint graph: nodi sono nodi sono variabili, archi sono vincoli variabili, archi sono vincoli

3 3

(4)

Backtracking : esempio Backtracking : esempio

4 4

(5)

Backtracking : esempio Backtracking : esempio

5 5

(6)

Backtracking : esempio Backtracking : esempio

6 6

(7)

Backtracking : esempio Backtracking : esempio

7 7

(8)

Most constrained variable Most constrained variable

•• Most constrained variable: Most constrained variable:

Scegli la variabile con meno valori ammessi Scegli la variabile con meno valori ammessi

•• minimum remaining values (MRV) o first fail minimum remaining values (MRV) o first fail

8 8

•• minimum remaining values (MRV) o first fail minimum remaining values (MRV) o first fail

(9)

Most constraining variable Most constraining variable

•• Most constraining variable: Most constraining variable:

– Scegli la variabile con il maggior numero di vincoli sulle altre variabili Scegli la variabile con il maggior numero di vincoli sulle altre variabili rimaste (si applica quando ci sono piu’ variabili con uguale numero di rimaste (si applica quando ci sono piu’ variabili con uguale numero di valori nel dominio).

valori nel dominio).

9 9

(10)

Least constraining value Least constraining value

•• Data una variabile, scegli il valore Data una variabile, scegli il valore meno vincolante, cioe’ che rende meno vincolante, cioe’ che rende impossibili o inconsistenti meno impossibili o inconsistenti meno assegnamenti dellle variabili assegnamenti dellle variabili rimaste.

rimaste.

10 10

(11)

Forward checking Forward checking

•• Idea Idea: :

– Tenere traccia dei valori legali per le variabili rimanenti Tenere traccia dei valori legali per le variabili rimanenti –

– Fallire quando non ci sono piu’ valori legali. Fallire quando non ci sono piu’ valori legali.

11 11

(12)

Forward checking Forward checking

12 12

(13)

Forward checking Forward checking

13 13

(14)

Forward checking Forward checking

14 14

(15)

Constraint Propagazione di vincoli e forward Constraint Propagazione di vincoli e forward checking

checking

•• Forward checking propaga Forward checking propaga

l’informazione da variabili assegnate a l’informazione da variabili assegnate a variabili non assegnate, ma non

variabili non assegnate, ma non

consente di individuare subito situazioni consente di individuare subito situazioni inconsistenti.

inconsistenti.

15 15

inconsistenti.

inconsistenti.

•• NT e SA non possono essere entrambe NT e SA non possono essere entrambe blue

blue

•• Constraint propagationConstraint propagation fra variabili non fra variabili non assegnate!

assegnate!

(16)

Arc consistency Arc consistency

•• La piu’ semplice forma di La piu’ semplice forma di

propagazione, rende ogni arco propagazione, rende ogni arco consistente.

consistente.

•• X X  Y Y e’ consistente se e solo e’ consistente se e solo

16 16

•• X X  Y Y e’ consistente se e solo e’ consistente se e solo se

se

Per

Per ogni ogni valore di valore di X X c’e’ almeno c’e’ almeno un

un valore ammissibile per Yvalore ammissibile per Y

(17)

Arc consistency Arc consistency

17 17

(18)

Arc consistency Arc consistency

•• SE SE X X perde un valore, perde un valore, devo ricontrollare I “vicini”

devo ricontrollare I “vicini”

di X.

di X.

18 18

(19)

Arc consistency Arc consistency

I fallimenti sono trovati I fallimenti sono trovati con l’Arc consistency con l’Arc consistency prima che con il forward prima che con il forward checking

checking

19 19

Puo’ girare come pre Puo’ girare come pre--

processore, oppure dopo processore, oppure dopo ogni assegnamento.

ogni assegnamento.

(20)

Arc

Arc--Consistency: Algoritmo Consistency: Algoritmo

20 20

Riferimenti

Documenti correlati

all’interno di un oggetto posso avere movimento di carica conduttori: le cariche possono muoversi.

Per 100 promozioni in più è possibile prevedere circa 50,00 euro in meno di vendite d.. Per 100 promozioni in più è possibile prevedere circa 8,00 euro in più di vendite

L'esito di un sondaggio rivela che la probabilità che ha Bianchi di vincere è il doppio di quella di Neri; Neri e Rossi hanno la stessa probabilità di vincere; mentre la

Ricordiamo che vogliamo (dobbiamo) rappresentare tutti i vincoli in modo lineare, anche i vincoli di tipo logico che coinvolgono variabili logiche: dal punto di vista modellistico,

Questo significa che ,scelto in maniera arbitraria un numero positivo ε , deve risultare : x < ε Pertanto, dire che x è una variabile infinitesima significa affermare che essa,

i coefficienti del j -esimo vincolo del duale coincidono con i coefficienti della variabile x j nei vincoli del primale il termine noto del j -esimo vincolo del duale coincide con

i coefficienti del j -esimo vincolo del duale coincidono con i coefficienti della variabile x j nei vincoli del primale il termine noto del j -esimo vincolo del duale coincide con

 La macro va_start inizializza la variabile argP in modo che punti al primo degli argomenti anonimi, è necessario fornire il nome dell’ultimo argomento fisso.