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

Upload: fino-cipriani

Post on 01-May-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

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