La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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.

Presentazioni simili


Presentazione sul tema: "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."— Transcript della presentazione:

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 con il dominio consistente sugli iper-archi:

2 2 Ottenere la consistenza sui limiti u Dato un dominio D, vogliamo modificare i limiti dei domini in modod che sia consistente sui limiti u Si usano delle regole di propagazione

3 3 Ottenere la consistenza sui limiti Consideriamo il vincolo primitivo X = Y + Z che e equivalente alle tre forme: Ragionando sui valori minimi e massimi: Regole di propagazione per il vincolo X = Y + Z

4 4 Ottenere la consistenza sui limiti Le regole di propagazione determinano che: Quindi i domini possono essere ridotti a:

5 5 Altre regole di propagazione Dato il dominio iniziale: Determiniamo che: Nuovo dominio:

6 6 Disequazioni Le disequazioni generano delle regole di propagazioni deboli: ce propagazione solo quando una variabile ha un valore fisso che e uguale al minimo o massimo dellaltra variabile

7 7 Moltiplicazione Se tutte le variabili sono positive, e semplice: Ma se le variabili possono essere 0 o negative? Esempio: Diventa:

8 8 Moltiplicazione Calcolare i limiti di X esaminando i valori estremi: Simile per limite superiore usando il massimo. Ma questo non funziona per Y e Z? Se min(D,Z) 0 non ce nessuna restrizione per Y Stiamo usando numeri reali (es. 4/d)

9 9 Moltiplicazione Possiamo aspettare finche il range di Z e non negativo o non positivo e poi usare le regole Divisione per 0:

10 10 Algoritmo per la consistenza sui limiti u Applica ripetutamente le regole di propagazione ad ogni vincolo primitivo finche non viene modificato nessun dominio u Non dobbiamo ri-esaminare un vincolo primitivo se i domini delle sue variabili non sono modificati

11 11 Esempio di consistenza sui limiti Problema dello zaino del ladro (senza whisky) Non ce piu nessuna modifica. Notare che abbiamo dovuto riesaminare il vincolo di profitto.

12 12 Risolutore per la consistenza sui limiti bounds_consistent u D := bounds_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

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

14 14 Esempio Problema del ladro Dominio corrente: Consistenza sui limiti iniziale: W = 0 P = 1 (0,1,3) Trovata una soluzione: return true

15 15 Esempio Problema del ladro Dominio corrente: Consistenza sui limiti iniziale:Backtrack P = 2 false Backtrack P = 3 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

16 16 Consistenza generalizzata u Possiamo usare qualunque metodi di consistenza diversi su vincoli diversi, e comunicheranno attraverso I dimini delle variabili u node consistency : per vincoli primitivi con 1 u arc consistency: per vinoli primitivi con 2 var u bounds consistency: altri vincoli primitivi u A volte possiamo eliminare piu valori usando vincoli complessi e metodi di consistenza specializzati

17 17 Alldifferent u alldifferent({V1,...,Vn}) e soddisfatto quando ogni variabile V1,..,Vn ha un valore diverso u alldifferent({X, Y, Z}) e equivalente a u E consistente sugli archi con il dominio u Ma non ce soluzione! la consistenza specializzata per alldifferent puo scoprirlo

18 18 Alldifferent Consistency u Sia c della forma alldifferent(V) u while esiste v in V dove D(v) = {d} u V := V - {v} u for ogni v in V u D(v) := D(v) - {d} u DV := unione di tutti i D(v) per v in V u if |DV| < |V| then return false domain u return D

19 19 Alldifferent Examples DV = {1,2}, V={X,Y,Z} quindi scopre la non soddisfacibilita DV = {1,2,3,4,5}, V={X,Y,Z,T} non la scopre Algoritmi basti su matching massimo potrebbero scoprirla:

20 20 Altri vincoli complessi u schedulare n lavori con tempi iniziali Si e durate Di che usano risorse Ri in cui L risorse sono disponibili in ogni momento u Accesso allarray: se I = i, allora X = Vi e se X != Vi allora I != i

21 21 Ottimizzazione per CSPs u Dato che i domini sono finiti, possiamo usare un risolutore per costruire un ottimizzatore banale u retry_int_opt u retry_int_opt(C, D, f, best) int_solv u D2 := int_solv(C,D) u if D2 e un dominio falso then return best u sia sol la soluzione corrispondente a D2 retry_int_opt u return retry_int_opt(C /\ f < sol(f), D, f, sol)

22 22 Esempio Problema del ladro (ottimizzare il profitto) First solution found: Corresponding solution Next solution found: Nessuna altra soluzione! Return la sol. migliore

23 23 Backtracking + Ottimizzazione u Dato che il risolutore puo usare la ricerca con backtracking, e meglio combinarla con lottimizzazione u Ad ogni passo della ricerca con backtracking, se best e la soluzione ottima vista finora, aggiungi il vincolo f < best(f)

24 24 Esempio Smugglers knapsack problem (whiskey available) Dominio corrente: Consistenza sui limiti iniziale: W = 0 P = 1 (0,1,3) Soluzione trovata aggiungi il vincolo Problema del ladro

25 25 Esempio Consistenza sui limiti iniziale: P = 2 false P = 3 false W = 1 (1,1,1) Modify constraint W = 0 P = 1 (0,1,3) Problema del ladro W = 2 false Return lultima sol (1,1,1)

26 26 Ottimizzazione con Branch and Bound u Il metodo precedente, a differenza del simplesso, non usa la funzione obbiettivo per dirigere la ricerca u Ottimizzazione branch and bound per (C,f) u Usare il simplesso per trovare una soluzione reale u Se la soluzione e intera, stop u Altrimenti scegliere una var x con valore non intero d e esaminare I problemi u Usare la soluzione ottima corrente per vincolare I problemi

27 27 Esempio Problema del ladro Soluzione (2,0,0) = 30 false Soluzione (1,1,1) = 32 Peggio della sol ottima false

28 28 Finite Constraint Domains Summary u CSPs form an important class of problems u Solving of CSPs is essentially based on backtracking search u Reduce the search using consistency methods u node, arc, bound, generalized u Optimization is based on repeated solving or using a real optimizer to guide the search


Scaricare ppt "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."

Presentazioni simili


Annunci Google