1 / 14

Risolvere vincoli soft

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

ankti
Download Presentation

Risolvere vincoli soft

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Risolvere vincoli soft Francesca Rossi Giugno 2004

  2. Metodo dei tagli • Dato P soft, e dato  in semianello, costruisco P : • stesso grafo di P • in ogni vincolo, solo le tuple con valore > 

  3. 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

  4. 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

  5. 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

  6. 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)

  7. 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)

  8. 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)

  9. 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)

  10. 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

  11. 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)

  12. 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

  13. 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

  14. Altre proposte di progetti • Eliminazione delle variabili per vincoli fuzzy o pesati • ...............

More Related