3.4 Metodo di Branch and Bound

Documenti analoghi
Programmazione a numeri interi: il metodo del Branch and Bound

Il Branch & Bound. Definizione 1. Sia S R n. La famiglia S = {S 1, S 2,..., S k S} tale che S 1 S 2 S k = S viene detta suddivisione di S.

Parte III: Algoritmo di Branch-and-Bound

Algoritmo di Branch & Bound

METODI DELLA RICERCA OPERATIVA

Il metodo dei Piani di Taglio (Cutting Planes Method)

5.3 Metodo dei piani di taglio

Algoritmi esatti. La teoria ci dice che per problemi difficili (come il

COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04

Soluzione dei problemi di Programmazione Lineare Intera

Esercizi sulla Programmazione Lineare Intera

Soluzione dei problemi di Programmazione Lineare Intera

5.5 Metodi generali per la soluzione di problemi

Metodi e Modelli per l Ottimizzazione Combinatoria Metodi Risolutivi per la Programmazione Lineare Intera

Figura 1: 1) Si scriva la formulazione del problema come problema di PLI (con un numero minimo di vincoli) e la matrice dei vincoli.

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

Corso di Perfezionamento

Soluzione di problemi di Programmazione Lineare Intera

Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities

Esame di Ricerca Operativa del 07/09/2016

3.6 Metodi basati sui piani di taglio

Branch-and-bound per KNAPSACK

Parte V: Rilassamento Lagrangiano

COMPITO DI RICERCA OPERATIVA. max 5 2x 1 + 3x 2 x 3 = 2 + x 1 5x 2 x 4 = 5 + x 2. x 5 = 1 + x 1 x 2

5.5 Metodi dei piani di taglio

i completi l'esecuzione dell'algoritmo di programmazione dinamica per questo problema restituendo il valore ottimo e una soluzione ottima del problema

Metodi generali per la soluzione di problemi di PLI

Programmazione Matematica: VI Estensioni dell algoritmo del Simplesso

Il Metodo Branch and Bound

Rilassamento Lagrangiano

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera

Ottimizzazione Combinatoria e Reti (a.a. 2007/08)

4.1 Localizzazione e pianificazione delle base station per le reti UMTS

Esame di Ricerca Operativa del 11/07/2016

Esame di Ricerca Operativa del 08/01/13. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Esame di Ricerca Operativa del 15/01/2015

Esame di Ricerca Operativa del 15/01/2015

Esercizi soluzione grafica e Branch and Bound. Daniele Vigo

Rilassamento Lagrangiano

Metodi e Modelli per l Ottimizzazione Combinatoria Metodi Risolutivi per Programmazione Lineare Intera

Algoritmi di Ricerca

Alberi. Alberi: definizioni. Alberi Binari. Esercizi su alberi binari: metodi ricorsivi. Struttura dati per alberi generici. ASD-L - Luca Tesei

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

2.2 Alberi di supporto di costo ottimo

Domini di funzioni di due variabili. Determinare i domini delle seguenti funzioni di due variabili (le soluzioni sono alla fine del fascicolo):

RICERCA OPERATIVA. Tema d esame del 04/03/2008 (Simulazione)

Per formalizzare il concetto sono necessarie alcune nozioni relative ai poliedri e alla loro descrizione.

COMPITO DI RICERCA OPERATIVA. max x 1 + x 2 x 1 2x 2 + x 3 = 4 x 1 x 2 x 3 = 3 x 2 + 2x 3 = 1 x 1, x 2, x 3 0

Il problema dello zaino: dalla gita in montagna ai trasporti internazionali. Luca Bertazzi

Tecniche euristiche Ricerca Locale

Domande d esame. Ricerca Operativa. G. Liuzzi. Giovedí 14 Maggio Istituto di Analisi dei Sistemi ed Informatica IASI - CNR

Esame di Ricerca Operativa del 03/09/2015

Metodi generali per la soluzione di problemi di PLI

Branch-and-bound per TSP

Esame di Ricerca Operativa del 16/06/2015

PROGRAMMAZIONE DINAMICA

Programmazione Lineare Intera. Programmazione Lineare Intera p. 1/4

Algoritmi e Strutture Dati

Programmazione Lineare Intera: Piani di Taglio

Risoluzione di problemi di programmazione lineare tramite generazione di colonne

Metodi e Modelli per l Ottimizzazione Combinatoria Metodi basati su generazione di colonne

Problemi, istanze, soluzioni

Algoritmi Euristici. Corso di Laurea in Informatica e Corso di Laurea in Matematica. Roberto Cordone DI - Università degli Studi di Milano

Il valore di flusso che si ottiene è

Contenuto e scopo presentazione. Modelli Lineari Interi/Misti. Piani di taglio. Piani di taglio. Piani di taglio Versione 31/08/

TECNOLOGIE INFORMATICHE MULTIMEDIALI

Programmazione Lineare Intera

1 Il metodo dei tagli di Gomory

Programmazione dinamica

Metodi e Modelli per l Ottimizzazione Combinatoria Metodi esatti per il problema del commesso viaggiatore

Teorema di Thevenin generalizzato

Note per la Lezione 4 Ugo Vaccaro

2.2 Alberi di supporto di costo ottimo

4. METODI DUALI DEL SIMPLESSO

u(ax b) = Consideriamo il generico moltiplicatore u i 0. Se la corrispondente quantità n

Algoritmi e strutture dati

Capitolo 14 Programmazione lineare intera: enumerazione implicita

Il problema del commesso viaggiatore

Esercizi per il corso di ricerca operativa 1

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI

Algoritmi e Strutture Dati

Esame di Ricerca Operativa del 09/02/2016

AA Appello del 27 Novembre 2009 Compito A

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio

Ottimizzazione Multi Obiettivo

2.3.3 Cammini ottimi nei grafi senza circuiti

Intelligenza Artificiale. Ricerca euristica Algoritmo A*

Possibile applicazione

Algoritmo basato su cancellazione di cicli

Premessa alla prima edizione 13

x 1 x 2 x 3 x 5 La base iniziale è B 0 = I e risulta x B 0 = , x N 0 = Iterazione 0. Calcolo dei costi ridotti. γ 0 = c N 0 (N 0 ) T c B 0 =

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013

Macchine parallele M 1 M 2 M 3 J 1 J 2 LAVORI J 3 J 4

Algoritmi di programmazione matematica per un problema di turnazione di squadre di pronto intervento

Tecniche Algoritmiche /3 Paradigma generativo: tecnica golosa e tecnica Divide-et-impera

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014

Programmazione Lineare Intera (PLI)

L ALGORITMO DEL SIMPLESSO REVISIONATO

Transcript:

3.4 Metodo di Branch and Bound Consideriamo un generico problema di Ottimizzazione Discreta dove X è la regione ammissibile. (P ) z = max{c(x) : x X} Metodologia generale di enumerazione implicita (Land e Doig 1960) basata sull esplorazione parzialmente implicita della regione ammissibile X. Una parte delle soluzioni ammissibili vengono escluse senza essere considerate esplicitamente. 1) Principio dividi e impera Idea: suddividere in modo ricorsivo la regione ammissibile per ricondurre la risoluzione del problema (P ) alla risoluzione di una sequenza di sottoproblemi più piccoli e più facili. Osservazione: Sia X = X 1... X k una partizione di X in k sottoinsiemi (X i X j = per ogni coppia di indici i j) e z i = max{c(x) : x X i } per 1 i k. Chiaramente z = max 1 i k z k. Partizione ricorsiva della regione ammissibile operazione di branching. 1

La procedura può essere rappresentata mediante l albero di enumerazione/decisionale con nodo radice associato a X e un nodo per ogni X i. Esempi: 1) X {0, 1} 3 (albero binario) 2) X l insieme di tutti i cicli Hamiltoniani di un dato grafo orientato G = (V, A) (albero multiplo) 2) Enumerazione implicita L enumerazione esplicita è troppo onerosa dal punto di vista computazionale anche per istanze di piccole dimensioni, non basta dividere ricorsivamente la regione ammissibile. Idea: sfruttare i limiti superiori ed inferiori (bound primali e duali) sui valori z i, con 1 i k, per evitare di esplorare esplicitamente certe parti della regione ammissibile X. Osservazione: Sia X = X 1... X k una partizione di X e z i = max{c(x) : x X i } per 1 i k. Inoltre siano l i un limite inferiore e u i un limite superiore su z i, ovvero l i z i u i. Allora l = max 1 i k l i è un limite inferiore e u = max 1 i k u i un limite superiore su z, ovvero l z u. 2

Casi in cui i bound primali e duali per l i-esimo sottoproblema possono essere sfruttati nella fase di esplorazione: Se u i = l i, non è necessario esaminare ulteriormente la sottoregione X i visto che abbiamo trovato una soluzione ottima in X i di valore z i = u i = l i. Il nodo corrispondente può essere chiuso criterio di ottimalità. Se il limite superiore u i è inferiore al valore della migliore soluzione ammissibile trovata finora o al più grande limite inferiore l j, non è necessario esaminare la sottoregione X i perché non può contenere una soluzione ammissibile migliore. Il nodo corrispondente può essere chiuso criterio di bounding. Se X i =, il nodo corrispondente può essere chiuso criterio di inammissibilità. Quattro esempi con due sottoproblemi (nodi), compreso uno in cui le regioni ammissibili dei due sottoproblemi devono essere esaminate. Se un sottoproblema non è risolto, si procede in modo ricorsivo generando dei sottoproblemi mediante branching. 3

Metodo di Branch and Bound (per problema di max), basato su tre principali ingredienti: - limiti superiori: metodo efficiente per determinare un limite superiore u su z di buona qualità - regola di branching: procedura per partizionare la regione ammissibile X in sottoregioni più piccole - limiti inferiori: euristica efficiente per cercare una soluzione ammissibile x di valore c( x) elevato, che fornisce un limite inferiore c( x) su z. Si mantiene un limite superiore globale UB ( upper bound ) su z e una lista L dei sottoproblemi attivi con per ciascuno un limite inferiore l i e un limite superiore u i su z i. Inoltre si memorizza e aggiorna la migliore soluzione ammissibile x LB trovata finora e il suo valore LB ( lower bound ). All inizio L = {P } dove (P ) è il problema di partenza. Si determina un limite superiore u risolvendo il rilassamento di (P ) e si pone UB := u. Tramite l euristica (primale) si cerca una soluzione ammissibile migliore possibile, che si memorizza in x LB e il suo valore in LB. Ad ogni iterazione, si estrae un sottoproblema (P i ) da L e si decide se va esaminata la corrispondente sottoregione ammissibile X i effettuando un operazione di branching, o se è applicabile uno dei tre criteri del lucido precedente. Quando viene generato un sottoproblema si determinano anche i limiti superiori e inferiori. I sottoproblemi che non soddisfano alcuno dei tre criteri sono inseriti in L. 4

Metodo generale, basta decidere 1. come scegliere il successivo sottoproblema (nodo) da esaminare 2. come generare i sottoproblemi di un dato sottoproblema (i nodi figlio ) 3. come calcolare le stime per eccesso ( bound superiori ) o per difetto ( bound inferiori ) L efficienza del metodo B&B dipende dall efficacia del criterio di branching e dalla qualità dei bound primali e duali. NB: Il metodo Branch and Bound è applicabile anche ai problemi di ottimizzazione non lineare continua e mista intera. 5

3.4.1 Branch and Bound per i problemi di PLI Consideriamo un PLI: di cui cerchiamo una soluzione ottima x P LI. z P LI = max{c t x : Ax = b, x 0 interi} (1) Risolviamo il rilassamento continuo di (1) ottenendo una soluzione ottima x P L di valore z P L. Ovviamente z P LI = c t x P LI z P L = c t x P L. Se x P L è intera, allora è anche ottima per il PLI. Altrimenti x P L ha almeno una componente frazionaria. Branching Risolvere il rilassamento continuo di (1). Se x P L non è intera, scegliere una componente frazionaria x h e generare i due sottoproblemi: z 1 P LI = max{c t x : Ax = b, x h x h, x 0 intero} z 2 P LI = max{c t x : Ax = b, x h x h + 1, x 0 intero} con sottoregioni X 1 e X 2 di X, esaustive e mutualmente esclusive. Chiaramente z P LI = max{z 1 P LI, z2 P LI }. 6

Procedimento ricorsivo: si risolve il rilassamento continuo di ogni sottoproblema di PLI e, se necessario, si effettua per ciascuno un operazione di branching. Bounding Consideriamo il i-esimo sottoproblema con la sottoregione ammissibile X i. Risolvere il suo rilassamento continuo, sia x P L la soluzione ottima trovata e zi P L il suo valore. Chiaramente, se tutti i coefficienti c i sono interi, ogni soluzione ammissibile del PLI in X i ha un valore zp i L. Nel Branch and Bound si alternano operazioni di branching e bounding, memorizzando e aggiornando la migliore soluzione trovata. Da decidere: 1. come scegliere il successivo sottoproblema (nodo) da esaminare 2. come generare i nodi figlio del nodo scelto (scelta variabile di branching) 3. come determinare le stime per difetto, ovvero quale euristica usare per ottenere i limiti inferiori sul valore ottimo della funzione obiettivo 7

1. Scelta del sottoproblema (nodo) da elaborare per primo prima quelli più profondi (tecnica depth first ): procedimento ricorsivo semplice ma costoso in caso di scelta sbagliata prima quelli più promettenti in termini di bound (tecnica best bound first ): si tende a generare meno nodi ma problemi meno vincolati si aggiorna raramente la migliore soluzione trovata 2. Scelta della variabile frazionaria di branching Non è detto che convenga scegliere una variabile frazionaria con la parte frazionaria più vicina a 0.5. Esempio 1: Risolvere il problema di PLI max 4x 1 x 2 s.v. 4x 1 + 2x 2 19 10x 1 4x 2 25 x 2 9 2 x 1, x 2 Z + con il metodo di Branch and Bound, determinando le soluzioni ottime dei rilassamenti continui per via grafica. Si esegua prima il branching rispetto alla variabile x 1. 8

Esempio 2: Risolvere il problema dello zaino binario max 10x 1 + 12x 2 + 5x 3 + 7x 4 + 9x 5 s.v. 5x 1 + 8x 2 + 6x 3 + 2x 4 + 7x 5 14 x 1,..., x 5 {0, 1} con il metodo di Branch and Bound, determinando le soluzioni ottime dei rilassamenti continui mediante una semplice procedura greedy. 9