Branch and Bound Lezione n°18 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.
Prof.ssa Rossella Petreschi Lezione del 29 /10/2014 del Corso di Algoritmica Lezione n°8.
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
Branch and Bound Lezione n°14 Prof.ssa Rossella Petreschi
Reti, flussi e tagli Lezione n°11
Sistemi basati su conoscenza Metodi di ricerca informata
PIANIFICAZIONE DEI TRASPORTI La teoria dei grafi
Approssimazione Lezione n°20 Prof.ssa Rossella Petreschi
Analisi di sequenze di operazioni Union-Find
Lezione n°9 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
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Lezione n°17 Prof.ssa Rossella Petreschi
Lezione n°15 Prof.ssa Rossella Petreschi
Rappresentazione di alberi
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
Complessità ammortizzata degli algoritmi Union Find
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 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Usi (meno scontati) della visita DFS
Algoritmi approssimati
Programmazione Intera
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°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
Algoritmi e Strutture Dati
Algoritmi per il flusso nelle reti
Lezione n°6 Prof.ssa Rossella Petreschi
Algoritmi e Strutture Dati
Cammini di costo minimo su un grafo pesato
Schema generale, visita in ampiezza e profondità.
Algoritmi e Strutture Dati
Backtracking Lezione n°13 Prof.ssa Rossella Petreschi
Usi (meno scontati) della visita DFS
Progettare algoritmi veloci usando strutture dati efficienti
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Ottimizzazione distribuita
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a. 2010/11
Backtracking Lezione n°17 Prof.ssa Rossella Petreschi
Alberi di ricerca Lezione n°4
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:
Lezione n°7 Splay-Trees e Heaps Prof.ssa Rossella Petreschi
Transcript della presentazione:

Branch and Bound Lezione n°18 Prof.ssa Rossella Petreschi Lezione del 12/12/2013 del Corso di Algoritmica

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 2

Esempio 3: 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 3

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

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 5

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