La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Capitolo 3: Vincoli a dominio finito. 2 Vincoli a dominio finito u Problemi di soddisfazione di vincoli u Un risolutore con backtracking u Consistenza.

Presentazioni simili


Presentazione sul tema: "1 Capitolo 3: Vincoli a dominio finito. 2 Vincoli a dominio finito u Problemi di soddisfazione di vincoli u Un risolutore con backtracking u Consistenza."— Transcript della presentazione:

1 1 Capitolo 3: Vincoli a dominio finito

2 2 Vincoli a dominio finito u Problemi di soddisfazione di vincoli u Un risolutore con backtracking u Consistenza su nodi e archi u Consistenza sui limiti u Consistenza generalizzata u Ottimizzazione per vincoli aritmetici

3 3 Vincoli a dominio finito u Una classe importante di problemi con vincoli u Usati per moellare problemi con vincoli che hanno a che fare con delle scelte: u es.: Scheduling, routing and timetabling u Il piu’ grande impatto industriale della programmazione con vincoli e’ stato su questi problemi

4 4 Problemi di soddisfazione con vincoli u Un problema di soddisfazione con vincoli (CSP) consiste di: u Un vincolo C su variabli x1,..., xn u Un dominio D che mappa ogni variabile xi ad un insieme finito di possibili valori d(xi) u E’ inteso come il vincolo

5 5 Colorazione di mappe Un CSP classico e’ il problema della colorazione di mappe in modo che regioni adiacenti non abbiamo lo tesso colore. Es.: puo’ la mappa dell’Australia essere colorata con 3 colori?

6 6 4-regine Piazzare 4 regine su una scacchiera 4 x 4 in modo che non si attacchino. Q1Q2Q3Q4 1 2 3 4 Quattro variabili Q1, Q2, Q3, Q4 che rappresentano la riga della regine in ogni colonna. Dominio di ogni variabile: {1,2,3,4} One solution! -->

7 7 4-regine I vincoli: Non sulla stessa riga: Non nella stessa diagonale up: Not nella stessa diagonale down:

8 8 Lo zaino del ladro Un ladro ha uno zaino con capacita’ 9, e deve scegliere cose da rubare in modo da fare un profitto di almeno 30 Quale dovrebbe essere il dominio delle variabili?

9 9 Risolutore con backtracking u Il modo piu’ semplice per risolvere csps e’ di enumerare le possibili soluzioni u Il risolutore con backtracking: u Enumera i valori per una variabile alla volta u Ad ogni passo, controlla che nessun vincolo primitivo sia violato u Assumiamo che satisfiable(c) ritorna false quando il vincolo primitivo c senza variabili e’ non soddisfacibile

10 10 Partial Satisfiable u Controlla se un vincolo e’ non soddisfacibile a causa di un vincolo primitivo senza variabili u Partial_satisfiable u Partial_satisfiable(c) u For ogni vincolo primitivo c in C u If vars(c) e’ vuoto u If satisfiable(c) = false return false u Return true

11 11 Backtrack Solve u Back_solve u Back_solve(c,d) partial_satisfiable u If vars(c) e’ vuoto return partial_satisfiable(c) u Sceglie x in vars(c) u For ogni valore d in d(x) u Sia C1 uguale a C con x rimpiazzato da d partial_satisfiable( u If partial_satisfiable(c1) then back_solve u If back_solve(c1,d) then return true u Return false

12 12 Backtracking Solve Choose var X domain {1,2} Choose var Y domain {1,2} partial_satisfiable partial_satisfiable false Choose var Z domain {1,2} Nessuna variabile, e false Variable X domain {1,2} Sceglie var Y dominio {1,2} Nessuna variabile, e false

13 13 Consistenza sui nodi e sugli archi u Idea di base: trovare un CSP equivalente all’originale con domini delle variabili piu’ piccoli u Esamina 1 vincolo primitivo alla volta u Node consistency: (vars(c)={x}) rimuove dal dominio di x ogni valore che non soddisfa c u Arc consistency: (vars(c)={x,y}) rimuove da d(x) valori per cui non c’e’ nessun valore in d(y) tale che (x,y) soddisfa c, e vice versa

14 14 Node Consistency u Un vincolo primitivo c e’ node consistent con dominio D se |vars(c)| !=1 o u Se vars(c) = {x} allora per ogni d in d(x) u X assegnato a d e’ una soluzione di c u Un CSP e’ consistente sui nodi se ogni vincolo primitivo e’ consistente sui nodi

15 15 Esempi CSP che non e’ consistente sui nodi (vedere Z): CSP che e’ consistente sui nodi: Il problema della colorazione della mappa e quello delle 4 regine sono consistenti sui nodi.

16 16 Ottenere la consistenza sui nodi u Node_consistent u Node_consistent(c,d) u For ogni vincolo primitivo c in C node_consistent_primitive u D := node_consistent_primitive(c, D) u Return D u Node_consistent_primitive u Node_consistent_primitive(c, D) u If |vars(c)| =1 then u Sia {x} = vars(c) u Return D

17 17 Consistenza sugli archi u Un vincolo primitivo c e’ consistente sugli archi con dominio D se |vars{c}| != 2 o u Vars(c) = {x,y} e per ogni d in d(x) esiste e in d(y) tale che u E in modo simile per y u Un CSP e’ consistente sugli archi se ogni vincolo primitivo e’ consistente sugli archi

18 18 Esempi CSP consiste sui nodi ma non sugli archi: Esempio: il valore 4 per X e X < Y. CSP equivalente ma consistente sugli archi: La colorazione della mappa e le 4 regine sono consistenti sugli archi.

19 19 Ottenere la consistenza sugli archi u Arc_consistent_primitive u Arc_consistent_primitive(c, D) u If |vars(c)| = 2 then u Return D u Rimuove valori che non sono arc-onsistent con c

20 20 Ottenere la consistenza sugli archi u Arc_consistent u Arc_consistent(c,d) u Repeat u W := d u For ogni vincolo primitivo c in C arc_consistent_primitive u D := arc_consistent_primitive(c,d) u Until W = D u Return D u Una versione molto naive

21 21 Usare la consistenza ui nodi e sugli archi u Possiamo costruire risolutori basati sui metodi di consistenza u Due tipi importanti di dominio: u False domain: alcune variabili hanno il dominio vuoto u Valuation domain: ogni variabile ha un solo valore nel dominio u  Estendere satisfiable a CSP con domini valutazione

22 22 Risolutore basato su consistenza su nodi e archi node_consistent u D := node_consistent(C,D) arc_consistent u D := arc_consistent(C,D) u if D e’ un dominio falso u return false u if D e’ un dominio valutazione u return satisfiable(C,D) u return unknown

23 23 Esempio Colorare l’Australia: con vincoli WA NT SA Q NSW V T Consistenza sui nodi

24 24 Esempio Colorare l’Australia: con vincoli WA NT SA Q NSW V T Consistenza sugli archi

25 25 Esempio Colorare l’Australia: con vincoli WA NT SA Q NSW V T Consistenza sugli archi

26 26 Esempio Colorare l’Australia: con vincoli WA NT SA Q NSW V T Consistenza sugli archi Risposta: unknown

27 27 Risolutore con backtracking u Possiamo combinare la consistenza con il backtracking u Applichiamo la consistenza sui nodi e sugli archi prima di iniziare la ricerca con backtracking, e dopo ogni assegnamento di un valore ad una variabile

28 28 Esempio di risolutore con backtracking Q1Q2Q3Q4 1 2 3 4 Nessun valore puo’ essere assegnato a Q3 in questo caso! Quindi, dobbiamo scegliere un altro valore per Q2.

29 29 Esempio Q1Q2Q3Q4 1 2 3 4 Non possiamo trovare nessun valore per Q4 in questo caso! Backtracking… Trovo un altro valore per Q3? No! backtracking, Trovo un altro valore per Q2? No! backtracking, Trovo un altro valore per Q1? Si, Q1 = 2

30 30 Esempio Q1Q2Q3Q4 1 2 3 4

31 31 Esempio Q1Q2Q3Q4 1 2 3 4

32 32 Esempio Colorare l’Australia: con vincoli WA NT SA Q NSW V T Enumerazione con backtracking Seleziona una var. con dominio con piu’ di 1 valore, T Aggiunge il vincolo Applica la consistenza Answer: true

33 33 Consistenza sui limiti u E I vincoli primitivi con piu’ di 2 variabili? u hyper-arc consistency: estende la consistenza sugli archi per un numero arbitrario di variabili u Sfortunatamente determinare la hyper-arc consistency e’ NP-hard u Qual e’ la soluzione?

34 34 Consistenza sui limiti u CSP aritmetici: i vincoli sono interi u range: [l..u] rappresenta l’insieme degli interi {l, l+1,..., u} u Idea: usare la consistenza sui numeri reali e guardare solo i punti finali (limiti superiori e inferiori) del dominio di ogni variabile u Definire min(D,x) come il minimo elemento nel dominio di x, simile per max(D,x)

35 35 Consistenza sui limiti u Un vincolo primitivo c e’ consistente sui limiti con dominio D se per ogni var x in vars(c) u Esistono numeri reali d1,..., dk per le rimanenti variabili x1,..., xk tali che u e’ una soluzione di c u E simile per u Un CSP aritmetico e’ consistente sui limiti se lo sono tutti i vincoli primitivi


Scaricare ppt "1 Capitolo 3: Vincoli a dominio finito. 2 Vincoli a dominio finito u Problemi di soddisfazione di vincoli u Un risolutore con backtracking u Consistenza."

Presentazioni simili


Annunci Google