140 likes | 263 Views
Risolvere vincoli soft. Francesca Rossi Giugno 2004. Metodo dei tagli. Dato P soft, e dato in semianello, costruisco P : stesso grafo di P in ogni vincolo, solo le tuple con valore > . Proprieta’. t soluzione ottima di P con valore v
E N D
Risolvere vincoli soft Francesca Rossi Giugno 2004
Metodo dei tagli • Dato P soft, e dato in semianello, costruisco P : • stesso grafo di P • in ogni vincolo, solo le tuple con valore >
Proprieta’ • t soluzione ottima di P con valore v • Per ogni <v, P consistente e t soluzione di P • Per ogni ≥ v, P inconsistente • Vere solo se x idempotente
Metodo di soluzione • Per trovare le soluzioni ottime di P: • Trovare il P consistente tale che per ogni > , P inconsistente • Le soluzioni di P sono le soluzioni ottime di P • Basta controllare i P con presente in P • Ricerca binaria su questi O(log(kd2)) chiamate ad un risolutore di vincoli classici • k= numero vincoli • d = grandezza dei domini
Branch and bound • Stesso schema dei vincoli classici • Lower bound = valore della soluzione migliore trovata finora (all’inizio 0) • Upper bound per ogni nodo • Se ub > lb non entrare nel sottoalbero
Upper bounds • t = assegnamento alle variabili passate • ub1= x c(t), con c gia’ assegnati da t • ub2 = x ub(cji), per xi in F, xj in P, • Ub(cji) = +cji(vj,a) per a in Di • ub3 = x (+ cij(a,b)) • x su xi, xj in F • + su a in Di, b in Dj • Ub = ub1 x ub2 x ub3 (o solo uno o due degli ub)
Upper bounds – vincoli con costo (min +) • t = assegnamento alle variabili passate • ub1= + c(t), con c gia’ assegnati da t • ub2 = + ub(cji), per xi in F, xj in P, • Ub(cji) = min cji(vj,a) per a in Di • ub3 = + (min cij(a,b)) • x su xi, xj in F • + su a in Di, b in Dj • Ub = ub1 + ub2 + ub3 (o solo uno o due degli ub)
Upper bounds -- fuzzy • t = assegnamento alle variabili passate • ub1= min c(t), con c gia’ assegnati da t • ub2 = min ub(cji), per xi in F, xj in P, • Ub(cji) = max cji(vj,a) per a in Di • ub3 = min (max cij(a,b)) • x su xi, xj in F • + su a in Di, b in Dj • Ub = min(ub1, ub2, ub3) (o solo uno o due degli ub)
Branch and bound con propagazione • La propagazione di vincoli soft abbassa le preferenze nei domini ub1, ub2, ub3 piu’ bassi piu’ probabile che ub < lb piu’ probabile il pruning • ub1= x c(t), con c gia’ assegnati da t • ub2 = x cji(vj,a) per xi in F, xj in P, a in Di • ub3 = x (+ cij(a,b)) • x su xi, xj in F • + su a in Di, b in Dj • ub = ub1 x ub2 x ub3 (o solo uno o due degli ub)
Eliminazione delle variabili • Come consistenza adattiva • Scelgo una variabile, x • X e’ connessa da vincoli C all’insieme di variabili Y • Calcolo x(C) e proietto su Y, e aggiungo il nuovo vincolo su Y • Posso dimenticarmi di X e dei vincoli C • Lo stesso per tutte le variabili • Quando ho solo una variabile, la sua preferenza piu’ alta e’ il valore dele soluzioni ottime • Per trovare le sol. ottime: istanzio le variabili nll’ordine opposto alla eliminazione, prendendo un valore con preferenza piu’ alta
Complessita’ • Tanti passi quante sono le variabili (n) • Ad ogni passo, tempo esponenziale nel numero di variabili in Y +1, spazio esponenziale nel numero di variabili in Y • Poi altri n passi per trovare una soluzione ottima • Tempo: O(n x exp(|Y|) +n)
Taglio dei cicli • Problema ad albero |Y| = 1 ad ogni passo O(n x d2) • Se non ad albero posso tagliare i cicli e trasformarlo in un albero • Come taglio un ciclo: individuo un sottoinsieme di variabili del ciclo che, se eliminate, eliminerebbero il ciclo, e le istanzio • Il sottoproblema rimasto e’ ad albero • Nuovo branch and bound: • elimino variabili dove |Y| =1 • istanzio variabili per eliminazione di un ciclo • ripeto da 1
Proposte di progetti • Branch and bound con uno degli ub per vincoli fuzzy, o parametrico rispetto alle due operazioni, con funzione identita’ per la propagazione • AC soft per vincoli fuzzy, da poter inserire in 1 • Metodo di alfa-taglio per vincoli fuzzy • Backtracking per vincoli classici, da poter inserire in 3 • Uno studente per progetto, ma coordinamento tra 1 e 2, e tra 3 e 4
Altre proposte di progetti • Eliminazione delle variabili per vincoli fuzzy o pesati • ...............