Branch and Bound Lezione n°14 Prof.ssa Rossella Petreschi

Slides:



Advertisements
Presentazioni simili
ASD a.a.2010/2011- Lezione 12 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi Backtracking/ Branch and Bound Lezione n°12.
Advertisements

Prof.ssa Rossella Petreschi Lezione del 29/10/2012 del Corso di Algoritmi e Strutture Dati Riferimenti: Capitolo 19 del testo Cormen, Leiserson, Rivest,
Prof.ssa Rossella Petreschi Lezione del 5/12/2012 del Corso di Algoritmi e Strutture Dati Riferimenti: Capitolo 11 del testo Anany Levitin “The design.
La seguente matrice è una matrice delle distanze di un’istanza del problema del Commesso Viaggiatore. Calcolare un lower bound per il valore del ciclo.
Prof.ssa Rossella Petreschi Lezione del 3/12/2013 del Corso di Algoritmica GRAFI e PLANARITA’ Lezione n°15.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Lezione n°10 Prof.ssa Rossella Petreschi
Cammini minimi in grafi:
Inserzione e Cancellazione
Branch and Bound Lezione n°19 Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Reti, flussi e tagli Lezione n°11
Alberi di ricerca di altezza logaritmica
Approssimazione Lezione n°20 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
La funzione Path e le forme a cespuglio
Alberi binari Definizione Sottoalberi Padre, figli
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Lezione n°17 Prof.ssa Rossella Petreschi
Lezione n°15 Prof.ssa Rossella Petreschi
Rappresentazione di alberi binari
B-alberi e alberi autoaggiustanti
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Il problema del cammino minimo
Lezione n°14 Reti di flusso Prof.ssa Rossella Petreschi
La gestione degli insiemi disgiunti
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Usi (meno scontati) della visita DFS
Algoritmi approssimati
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Paths, tree and flowers Lezione n°14
K4 è planare? E K3,3 e K5 sono planari? Sì!
Approssimazione Lezione n°15 Prof.ssa Rossella Petreschi
per rappresentare grafi
Lezione n°11 Prof.ssa Rossella Petreschi
Lezione n°12 Prof.ssa Rossella Petreschi
Lezione n°16 Prof.ssa Rossella Petreschi
Lezione n°18 Prof.ssa Rossella Petreschi
ABBINAMENTO Lezione n°13
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Impariamo a conoscere le Matrici
Algoritmi e Strutture Dati
Algoritmi per il flusso nelle reti
Lezione n°6 Prof.ssa Rossella Petreschi
Branch and Bound Lezione n°18 Prof.ssa Rossella Petreschi
Cammini di costo minimo su un grafo pesato
Introduzione agli Algoritmi e alle Strutture Dati
Schema generale, visita in ampiezza e profondità.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Backtracking Lezione n°13 Prof.ssa Rossella Petreschi
Usi (meno scontati) della visita DFS
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Backtracking Lezione n°17 Prof.ssa Rossella Petreschi
Esercizio Dato un albero binario, definiamo altezza minimale di un nodo v la minima distanza di v da una delle foglie del suo sottoalbero, definiamo invece.
Cammini minimi in grafi:
Grafi e problem solving
Lezione n°7 Splay-Trees e Heaps Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Il problema del flusso nelle reti
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Unione per ranghi compressi
Transcript della presentazione:

Branch and Bound Lezione n°14 Prof.ssa Rossella Petreschi Lezione del 7 /12/ 2011 del Corso di Algoritmi e Strutture Dati Riferimenti: capitolo 11 del testo Anany Levitin “The design and analysis of algorithms” Edizioni: Addison Wesley ASD-A.A.2011/2012

Ciclo Euleriano/ Ciclo Hamiltoniano CICLO EULERIANO passa per ogni arco del grafo una e una sola volta Proprietà strutturale G tutti i nodi di grado pari CICLO HAMILTONIANO passa per ogni nodo del grafo una e una sola volta Proprietà strutturale ???????? DODECAEDRO DI HAMILTON ASD-A.A.2011/2012 2

Ciclo Hamiltoniano INPUT: G =(V,E) connesso, V=n PROBLEMA: trovare un (tutti) i cicli hamiltoniani di G, se esistono RAPPRESENTAZIONE: con t-ple di dimensione n (x1,x2,…xn), xi rappresenta l’i-esimo vertice visitato nel ciclo proposto VINCOLI ESPLICITI: la t-pla è una permutazione VINCOLI IMPLICITI: (xi xi+1 ) deve essere un arco Per evitare di generare più volte uno stesso ciclo, assumiamo che il primo elemento della permutazione sia sempre il vertice 1 del grafo ASD-A.A.2011/2012 3

L’albero degli stati Nell’albero degli stati classifichiamo i nodi in tre tipi a seconda che rappresentino genericamente uno stato del problema, uno stato soluzione o uno stato risposta. Uno stato soluzione è uno stato s del problema per il quale il cammino da dalla radice ad s definisce una t-pla nello spazio delle soluzioni (spazio delle soluzioni:tutti i cammini dalla radice agli altri nodi). Uno stato risposta è uno stato soluzione la cui t-pla appartiene all’insieme delle soluzioni. Una volta che si è stabilita la natura dell’albero degli stati, il problema si risolve generando sistematicamente gli stati del problema, determinando quali di questi siano stati soluzione e infine quali siano stati risposta ASD-A.A.2011/2012 4

Come generare l’albero degli stati NodoE: Nodo vivo o da espandere, ovvero nodo i cui figli debbono ancora essere generati. Nodo morto: nodo che non può più essere espanso perché non ha figli da generare o perché una qualche funzione soglia lo ha ucciso. Backtracking: generazione dell’albero tramite DFS con funzione soglia. Branch and Bound: tutti i figli di un nodoE sono generati prima che un altro nodo sia considerato da espandere. La lista dei nodi da espandere può essere memorizzata tramite struttura FIFO (BFS) o tramite struttura LIFO(DS) ASD-A.A.2011/2012 5

La tecnica del Branch and Bound E’ usata per problemi di ottimizzazione. Rispetto al Backtracking richiede in più per ogni nodo: di poter calcolare un limite superiore (o inferiore) rispetto al valore delle soluzioni ammissibili raggiungibili da quel nodo; di conoscere il valore della migliore soluzione calcolata fino a quel momento. Una soluzione ottima è una soluzione ammissibile che raggiunge il miglior valore per la funzione obiettivo. ASD-A.A.2011/2012 6

Criteri di terminazione L’espansione dell’albero su un ramo termina quando: il valore del limite in quel nodo non è migliore di quello della migliore soluzione ottenuta fino a quel momento; la soluzione rappresentata dal nodo viola i vincoli (non è ammissibile); il nodo non ha più figli verso cui espandersi. ASD-A.A.2011/2012 7

Il problema dell’assegnamento INPUT: n persone, n differenti lavori. Matrice dei costi C(nxn):il costo dell’assegnamento della persona i al lavoro j è la quantità C(i,j). PROBLEMA: assegnare n persone ad n lavori (ogni persona ad esattamente un lavoro, ogni lavoro ad esattamente una persona) in modo da rendere il costo totale dell’assegnamento il minore possibile. ALTRA FORMULAZIONE: Selezionare un elemento in ogni riga della matrice in modo tale che la somma degli elementi selezionati sia la più piccola possibile e nessuna coppia di elementi selezionati sia sulla stessa colonna. LOWER BOUND: Somma dei valori minimi sulle singole righe, che in generale non è una soluzione ammissibile. TECNICA: best-first branch and bound SOLUZIONE POLINOMIALE: metodo ungherese ASD-A.A.2011/2012 8

Il problema della bisaccia INPUT: n elementi ciascuno di peso wi e valore vi e una bisaccia di capacità W. PROBLEMA: trovare la migliore scelta di elementi che non superando la capacità della bisaccia, ottimizzi il guadagno della scelta stessa. CONVENIENZA: Ordinare in modo non decrescente rispetto al rapporto valore/peso v1/w1 ≥ v2/w2 ≥ v3/w3 ≥…≥vn/wn UPPER BOUND: ub = Svk + (W-Swk)(vi+1/wi+1 ), k= 1,…i, i=1,…n TECNICA: best-first branch and bound ASD-A.A.2011/2012 9

Il problema del commesso viaggiatore IL NOME: data una rete di città, connesse tramite delle strade, trovare il percorso di minore lunghezza che un commesso viaggiatore deve seguire per visitare tutte le città una e una sola volta. IL MODELLO: un grafo pesato i cui nodi rappresentano le città, gli archi le strade fra le città e i pesi sugli archi la distanza fra le due città in considerazione. PROBLEMA: trovare il ciclo di minor peso (minor lunghezza) che passi per tutti i nodi una e una sola volta. CONFRONTO: la differenza con il circuito hamiltoniano è che qui il grafo è pesato LOWER BOUND 1: ub = distanza minima fra tutte le città moltiplicata per n LOWER BOUND 2: ub = Ssi /2, 1≤i≤n, dove si è la somma delle distanze dalla città i alle due città ad essa più vicine ASD-A.A.2011/2012 10