1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il...

28
1 Esempi di consistenza sui Esempi di consistenza sui limiti limiti X Y Z DX DY DZ 3 5 27 02 12 () [..], ( ) [..], ( ) [ ..] Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e’ consistente sui limiti: DX DY DZ () [..], ( ) [..], ( ) [..] 27 02 01 Confrontare con il dominio consistente sugli iper-archi: DX DY DZ () {,,}, ( ) { ,,}, ( ) { ,} 356 012 01

Transcript of 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il...

Page 1: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

1

Esempi di consistenza sui Esempi di consistenza sui limitilimiti

X Y Z

D X D Y D Z

3 5

2 7 0 2 1 2( ) [ .. ], ( ) [ .. ], ( ) [ .. ]

Non consistente sui limiti, considera Z=2, poi X-3Y=10

Ma il dominio qui sotto e’ consistente sui limiti:

D X D Y D Z( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 2 7 0 2 0 1

Confrontare con il dominio consistente sugli iper-archi:

D X D Y D Z( ) { , , }, ( ) { , , }, ( ) { , } 3 5 6 0 1 2 0 1

Page 2: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

2

Ottenere la consistenza sui Ottenere la consistenza sui limitilimiti

Dato un dominio D, vogliamo modificare i limiti dei domini in modod che sia consistente sui limiti

Si usano delle regole di propagazione

Page 3: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

3

Ottenere la consistenza sui Ottenere la consistenza sui limitilimiti

Consideriamo il vincolo primitivo X = Y + Z che e’ equivalente alle tre forme:

X Y Z Y X Z Z X Y

Ragionando sui valori minimi e massimi:X D Y D Z X D Y D Z

Y D X D Z Y D X D Z

Z D X D Y Z D X D Y

min( , ) min( , ) max( , ) max( , )

min( , ) max( , ) max( , ) min( , )

min( , ) max( , ) max( , ) min( , )

Regole di propagazione per il vincolo X = Y + Z

Page 4: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

4

Ottenere la consistenza sui Ottenere la consistenza sui limitilimiti

X Y Z

D X D Y D Z

( ) [ .. ], ( ) [ .. ], ( ) [ .. ]4 8 0 3 2 2

Le regole di propagazione determinano che:

( ) ( )

( ) ( )

( ) ( )

0 2 2 5 3 2

4 2 2 6 8 2

4 3 1 8 8 0

X

Y

Z

Quindi i domini possono essere ridotti a:

D X D Y D Z( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 4 5 2 3 2 2

Page 5: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

5

Altre regole di propagazioneAltre regole di propagazione4 3 2 9

9

4

3

4

2

49

3

4

3

2

39

2

4

2

3

2

W P C

W D P D C

P D W D C

C D W D P

min( , ) min( , )

min( , ) min( , )

min( , ) min( , )

Dato il dominio iniziale:D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 9 0 9 0 9

Determiniamo che:

Nuovo dominio:

W P C 9

4

9

3

9

2, ,

D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 2 0 3 0 4

Page 6: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

6

Disequazioni Disequazioni

Le disequazioni generano delle regole di propagazioni deboli: c’e’ propagazione solo quando una variabile ha un valore fisso che e’ uguale al minimo o massimo dell’altra variabile

Y Z

D Y D Z

D Y D Z

D Y D Z D Y D Z

( ) [ .. ], ( ) [ .. ]

( ) [ .. ], ( ) [ .. ]

( ) [ .. ], ( ) [ .. ] ( ) [ .. ], ( ) [ .. ]

2 4 2 3

2 4 3 3

2 4 2 2 3 4 2 2

no propagation

no propagation

prop

Page 7: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

7

MoltiplicazioneMoltiplicazione X Y Z

Se tutte le variabili sono positive, e’ semplice:X D Y D Z X D Y D Z

Y D X D Z Y D X D Z

Z D X D Y Z D X D Y

min( , ) min( , ) max( , ) max( , )

min( , ) / max( , ) max( , ) / min( , )

min( , ) / max( , ) max( , ) / min( , )

Ma se le variabili possono essere 0 o negative?

Esempio:

Diventa:

D X D Y D Z( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 4 8 1 2 1 3

D X D Y D Z( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 4 6 2 2 2 3

Page 8: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

8

MoltiplicazioneMoltiplicazione X Y Z Calcolare i limiti di X esaminando i valori estremi:

X D Y D Z D Y D Z

D Y D Z D Y D Z

minimum{min( , ) min( , ), min( , ) max( , )

max( , ) min( , ), max( , ) max( , )}

Simile per limite superiore usando il massimo.

Ma questo non funziona per Y e Z? Se min(D,Z) <0 e max(D,Z)>0 non c’e’ nessuna restrizione per Y

X Y Z X Y d Z d { , , / } 4 4

Stiamo usando numeri reali (es. 4/d)

Page 9: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

9

MoltiplicazioneMoltiplicazione ZYX Possiamo aspettare finche’ il range di Z e’ non negativo o non positivo e poi usare le regole

Y D X D Z D X D Z

D X D Z D X D Z

minimum{min( , ) / min( , ), min( , ) / max( , )

max( , ) / min( , ), max( , ) / max( , )}

Divisione per 0:

ve ve

0 0

0

0

Page 10: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

10

Algoritmo per la consistenza Algoritmo per la consistenza sui limitisui limiti

Applica ripetutamente le regole di propagazione ad ogni vincolo primitivo finche’ non viene modificato nessun dominio

Non dobbiamo ri-esaminare un vincolo primitivo se i domini delle sue variabili non sono modificati

Page 11: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

11

Esempio di consistenza sui Esempio di consistenza sui limitilimiti

Problema dello zaino del ladro (senza whisky)

capacity profit

W P C W P C4 3 2 9 15 10 7 30

D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 0 9 0 9

W P C 102 15 12 10 60 7/ / /W P C 9 4 9 3 9 2/ / /

D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 0 3 0 4

7/010/215/28 CPW

D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 1 3 0 4

Non c’e piu’ nessuna modifica.

Notare che abbiamo dovuto riesaminare il vincolo di profitto.

Page 12: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

12

Risolutore per la consistenza Risolutore per la consistenza sui limitisui limiti

D := bounds_consistentbounds_consistent(C,D) if D e’ un dominio falso

return false if D e’ un dominio valutazione

return satisfiable(C,D) return unknown

Page 13: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

13

Ricerca con backtracking Ricerca con backtracking combinata con la consistenza combinata con la consistenza sui limitisui limiti

Applicare la consistenza sui limiti prima di iniziare la ricerca con backtracking e dopo ogni assegnamento di un valore ad una variabile

Page 14: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

14

EsempioEsempio

Problema del ladrocapacity profit

W P C W P C4 3 2 9 15 10 7 30

D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 9 0 9 0 9Dominio corrente:

Consistenza sui limiti iniziale:

D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 2 0 3 0 4

W = 0

D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 1 3 0 4

P = 1

D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 1 1 3 3

(0,1,3)

Trovata una soluzione: return true

Page 15: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

15

EsempioEsempio

Problema del ladrocapacity profit

W P C W P C4 3 2 9 15 10 7 30 Dominio corrente:

Consistenza sui limiti iniziale:Backtrack

D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 1 3 0 4

P = 2

D W D P D C( ) , ( ) , ( )

false

Backtrack

D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 1 3 0 4

P = 3

D W D P D C( ) { }, ( ) { }, ( ) { } 0 3 0

W = 0

P = 1

(0,1,3) (0,3,0)

W = 1

(1,1,1)

W = 2

(2,0,0)

Non ci sono altre soluzioni

Page 16: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

16

Consistenza generalizzataConsistenza generalizzata

Possiamo usare qualunque metodi di consistenza diversi su vincoli diversi, e comunicheranno attraverso I dimini delle variabili node consistency : per vincoli primitivi con 1 arc consistency: per vinoli primitivi con 2 var bounds consistency: altri vincoli primitivi

A volte possiamo eliminare piu’ valori usando vincoli ‘’complessi’’ e metodi di consistenza specializzati

Page 17: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

17

AlldifferentAlldifferent

alldifferent({V1,...,Vn}) e’ soddisfatto quando ogni variabile V1,..,Vn ha un valore diverso alldifferent({X, Y, Z}) e’ equivalente a

E’ consistente sugli archi con il dominio

Ma non c’e’ soluzione! la consistenza specializzata per alldifferent puo’ scoprirlo

X Y X Z Y Z

}2,1{)(},2,1{)(},2,1{)( ZDYDXD

Page 18: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

18

Alldifferent ConsistencyAlldifferent Consistency

Sia c della forma alldifferent(V) while esiste v in V dove D(v) = {d}

V := V - {v} for ogni v’ in V

D(v’) := D(v’) - {d} DV := unione di tutti i D(v) per v in V if |DV| < |V| then return false domain return D

Page 19: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

19

Alldifferent ExamplesAlldifferent Examplesalldifferent X Y Z

D X D Y D Z

({ , , })

( ) { , }, ( ) { , }, ( ) { , } 1 2 1 2 1 2

DV = {1,2}, V={X,Y,Z} quindi scopre la non soddisfacibilita’

alldifferent X Y Z T

D X D Y D Z D T

({ , , , })

( ) { , }, ( ) { , }, ( ) { , }, ( ) { , , , } 1 2 1 2 1 2 2 3 4 5

DV = {1,2,3,4,5}, V={X,Y,Z,T} non la scopre

Algoritmi basti su matching massimo potrebbero scoprirla:X Y Z T

1 2 3 4 5

Page 20: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

20

Altri vincoli complessiAltri vincoli complessi

schedulare n lavori con tempi iniziali Si e durate Di che usano risorse Ri in cui L risorse sono disponibili in ogni momento

Accesso all’array: se I = i, allora X = Vi e se X != Vi allora I != i

cumulative S S D D R R Ln n n([ , , ],[ , , ],[ , , ], )1 1 1

element I V V Xn( ,[ , , ], )1

Page 21: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

21

Ottimizzazione per CSPsOttimizzazione per CSPs

Dato che i domini sono finiti, possiamo usare un risolutore per costruire un ottimizzatore banale

retry_int_optretry_int_opt(C, D, f, best) D2 := int_solvint_solv(C,D) if D2 e’ un dominio falso then return best sia sol la soluzione corrispondente a D2 return retry_int_optretry_int_opt(C /\ f < sol(f), D, f, sol)

Page 22: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

22

EsempioEsempio

Problema del ladro (ottimizzare il profitto)minimize subject to

15 10 7

4 3 2 9 15 10 7 30

0 9 0 9 0 9

W P Ccapacity profit

W P C W P C

D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ]

First solution found: D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 1 1 3 3

Corresponding solution sol W P C{ , , } 0 1 3

sol f( ) 31

minimize subject to

15 10 7

4 3 2 9 15 10 7 30

15 10 7 31

0 9 0 9 0 9

W P Ccapacity profit

W P C W P C

W P C

D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ]

Next solution found: D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 1 1 1 1 1 1

sol W P C{ , , } 1 1 1

sol f( ) 32

minimize subject to

15 10 7

4 3 2 9 15 10 7 30

15 10 7 31 15 10 7 32

0 9 0 9 0 9

W P Ccapacity profit

W P C W P C

W P C W P C

D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ]

Nessuna altra soluzione!

Return la sol. migliore

Page 23: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

23

Backtracking + OttimizzazioneBacktracking + Ottimizzazione

Dato che il risolutore puo’ usare la ricerca con backtracking, e’ meglio combinarla con l’ottimizzazione

Ad ogni passo della ricerca con backtracking, se best e’ la soluzione ottima vista finora, aggiungi il vincolo f < best(f)

Page 24: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

24

EsempioEsempio

Smugglers knapsack problem (whiskey available)capacity profit

W P C W P C4 3 2 9 15 10 7 30

D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 9 0 9 0 9Dominio corrente:

Consistenza sui limiti iniziale:

D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 2 0 3 0 4

W = 0

D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 1 3 0 4

P = 1

D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 1 1 3 3

(0,1,3)

Soluzione trovata aggiungi il vincolo

Problema del ladrocapacity profit

W P C W P C

W P C

4 3 2 9 15 10 7 30

15 10 7 31

Page 25: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

25

EsempioEsempio

Consistenza sui limiti iniziale:

capacity profit

W P C W P C

W P C

4 3 2 9 15 10 7 30

15 10 7 31

P = 2

false

P = 3

false

W = 1

(1,1,1)

Modify constraint

capacity profit

W P C W P C

W P C

4 3 2 9 15 10 7 30

15 10 7 32

W = 0

P = 1

(0,1,3)

Problema del ladro

W = 2

false

Return l’ultima sol (1,1,1)

Page 26: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

26

Ottimizzazione con Branch Ottimizzazione con Branch and Boundand Bound

Il metodo precedente, a differenza del simplesso, non usa la funzione obbiettivo per dirigere la ricerca

Ottimizzazione branch and bound per (C,f) Usare il simplesso per trovare una soluzione reale Se la soluzione e’ intera, stop Altrimenti scegliere una var x con valore non intero d e

esaminare I problemi

Usare la soluzione ottima corrente per vincolare I problemi

( , ) ( , )C x d f C x d f

Page 27: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

27

EsempioEsempioProblema del ladro

{ / , , }W P C 11 4 0 0W 2 W 3

{ , / , }W P C 2 1 3 0P 0 P 1

{ , , / }W P C 2 0 1 2C 0 C 1

{ , , }W P C 2 0 0Soluzione (2,0,0) = 30

{ / , , }W P C 7 4 0 1W 1 W 2

{ , , / }W P C 1 0 5 2C 2 C 3

false { / , , }W P C 3 4 0 3W 0 W 1

false false

false

{ / , , }W P C 6 4 1 0W 1 W 2

{ , / , }W P C 1 5 3 0P 1 P 2

{ , , }W P C 1 1 1Soluzione (1,1,1) = 32

Peggio della sol ottima

false

false

Page 28: 1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.

28

Finite Constraint Domains Finite Constraint Domains SummarySummary

CSPs form an important class of problems Solving of CSPs is essentially based on

backtracking search Reduce the search using consistency methods

node, arc, bound, generalized Optimization is based on repeated solving or

using a real optimizer to guide the search