Università Ca Foscari Venezia

Documenti analoghi
Ricerca Operativa a.a : IV appello

Ricerca Operativa a.a : III appello

Ricerca Operativa a.a : II appello

Università Ca Foscari Venezia

Ricerca Operativa a.a : II appello

Prova d Esame di Ricerca Operativa

5.5 Metodi generali per la soluzione di problemi

Algoritmo di Branch & Bound

3.4 Metodo di Branch and Bound

Algoritmo dibranch & Bound

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

Programmazione Lineare

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

Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities

Soluzione di problemi di Programmazione Lineare Intera

Branch-and-bound per KNAPSACK

5.3 Metodo dei piani di taglio

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

Soluzione dei problemi di Programmazione Lineare Intera

PROGRAMMAZIONE LINEARE A NUMERI INTERI

Università degli Studi di Roma La Sapienza

COMPITO DI RICERCA OPERATIVA APPELLO DEL 07/04/04

Soluzione dei problemi di Programmazione Lineare Intera

Prova Intermedia Scritta di Ricerca Operativa

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

Ricerca Operativa A.A. 2007/ Esercitazione di laboratorio: Branch and Bound.

Metodi generali per la soluzione di problemi di PLI

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

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

Programmazione Lineare Intera

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.

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

Teoria della Programmazione Lineare Intera

COMPITO DI RICERCA OPERATIVA. max x 1 + x 2 x 1 + x 2 1 x 1 + x 2 2. Lo si trasformi in forma standard e se ne determini una soluzione ottima.

COMPITO DI RICERCA OPERATIVA. (5 punti) Sia dato il seguente problema di PL: min x 1 + x 2 x 1 + x 2 3 x 1 + x 2 2 2x 1 + x 2 3.

min 2x 1 +4x 2 2x 3 +2x 4 x 1 +4x 2 +2x 3 + x 4 =6 2x 1 + x 2 +2x 3 + x 5 =3 x 0.

5.5 Metodi dei piani di taglio

Tecniche di Decomposizione per Programmazione Lineare Intera (Mista)

Il metodo del simplesso

COMPITO DI RICERCA OPERATIVA. min 2x 1 x 2 + x 3 x 4 x 1 x 2 + x 3 + x 4 = 5 x 1 + x 2 + x 3 3. x 1, x 2, x 3, x 4, x 5 I

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola:

Problemi dello zaino e di bin packing

Programmazione a numeri interi: il metodo del Branch and Bound

Programmazione Lineare Intera: Piani di Taglio

RICERCA OPERATIVA GRUPPO B prova scritta del 22 settembre 2004 FOGLIO 1. Cognome: Nome: Matricola:

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

5.1 Metodo Branch and Bound

3.2 Rilassamenti lineari/combinatori e bounds

Problemi di Localizzazione Impianti

Prova Scritta di Ricerca Operativa

Sull algoritmo di ascesa duale per il problema della localizzazione di impianti

Metodi generali per la soluzione di problemi di PLI

Branch and Bound. Branch and Bound p. 1/3

1. Dare la definizione di funzione lineare. R: Una funzione lineare di n variabili è una funzione del tipo. c 1 x 1 + c 2 x c n x n,

(a) Si proponga una formulazione di programmazione nonlineare a variabili misto-intere per problema.

Geometria della programmazione lineare

1 Il metodo dei tagli di Gomory

3.3 Problemi di PLI facili

Programmazione Non Lineare

Algoritmo Branch and Cut (B&C)

città

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola:

Esercizi sulla Programmazione Lineare. min. cx Ax b x 0

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

METODI DELLA RICERCA OPERATIVA

Rilassamento Lagrangiano

Ricerca Operativa. G. Liuzzi. Giovedí 19 Marzo Tableau del Simplesso Esempio Fase I del Simplesso Esempio

Algoritmi generali per PLI

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. Una volta decise le risposte riportatele sull apposito foglio allegato.

Esercizi sulla Programmazione Lineare Intera

Metodi generali per la soluzione di problemi di PLI

Ricerca Operativa. G. Liuzzi. Lunedí 9 Marzo Programmazione Matematica Geometria di R n Esempi Teoria della PL Forma Standard. logo.

Ottimizzazione e Controllo 2015/2016 ESERCITAZIONE

Esercizi di Programmazione Lineare

Il metodo dei Piani di Taglio (Cutting Planes Method)

La dualità nella Programmazione Lineare

Rilassamento Lagrangiano

Scuola di Dottorato in Ingegneria L. da Vinci. Problemi di estremo vincolato ed applicazioni. Introduzione ai problemi di estremo

Introduzione al Metodo del Simplesso. 1 Soluzioni di base e problemi in forma standard

1 Programmazione Lineare Intera

A.A Fondamenti di Ricerca Operativa. 2. Determinare β affinchè il poliedro descritto dal sistema di disequazioni

PROGRAMMAZIONE LINEARE E DUALITA'

Dualitá. Dualitá p. 1/4

Registro dell'insegnamento

A.A Fondamenti di Ricerca Operativa Esercizi ottobre min 2x 1 + x 2 + 4x 3 3x 4 x 1 + x 3 = 5 x 2 + x 4 = 2

Ricerca Operativa. Ricerca Operativa p. 1/6

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

Massimo flusso e matching

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I)

Introduzione alla programmazione lineare

Introduzione al Column Generation Caso di Studio: il Bin Packing Problem

PROVE D'ESAME 1997/98

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

Corso di Matematica Applicata A.A

Formulazioni. Consideriamo il seguente problema di Knapsack 0-1. max (5x x 2. ) st 3x x 2. < 6 x {0,1} 2

Transcript:

Università Ca Foscari Venezia Dipartimento di Scienze Ambientali, Informatica e Statistica Giovanni Fasano Brevi NOTE sul Metodo del BRANCH & BOUND Università Ca Foscari Venezia, Dipartimento di Management, S.Giobbe Cannaregio 873, 30121 Venezia, ITALY. E-mail:fasano@unive.it ; URL: http://venus.unive.it/ fasano - A.A. 2018-2019.

Le presenti note sintetizzano alcune linee guida relative al Metodo del Branch & Bound, per la soluzione di problemi di Programmazione Lineare. Le note si riferiscono al corso di Ricerca Operativa, svolto dal docente Giovanni Fasano nell A.A. 2018-2019, presso l Università Ca Foscari Venezia, sede di via Torino (Mestre). Le lezioni sono state organizzate nell ambito del Corso di Laurea in Informatica. 2

Figura 1: Il poliedro Q i e l insieme S i = {(1, 2), (2, 0), (2, 1), (2, 2), (3, 0), (3, 1), (3, 2), (3, 3), (4, 2)} dei punti a coordinate intere in esso contenuti, i.e. S i Q i. 1 Note e premesse sul Metodo del Branch & Bound (B&B) Il B&B rappresenta una tecnica iterativa esatta, di tipo enumerativo, per la soluzione di problemi di Programmazione Matematica Intera/Mista e, più in particolare, per la soluzione di problemi di Programmazione Lineare Intera (PLI) e Programmazione Lineare Mista (PLM). Si supponga pertanto di voler risolvere il problema di PLI (nel seguito si indicherà con Z l insieme dei numeri interi, i.e. Z = {0, ±1, ±2,...}) x Q 0 x Z n, x S 0, (1) nel quale Q 0 = {x IR n : Ax b} è un generico poliedro in IR n, S 0 = Q 0 Z n, A IR m n, c IR n e b IR m. L insieme S 0 contiene tutti e soli i punti del poliedro Q 0 a coordinate intere. Più in generale, si indicherà di seguito con S i l insieme dei punti a coordinate intere dato da S i = Q i Z n, dove Q i è un poliedro in IR n (si veda l esempio nella Figura 1). Nelle note che seguono si assumerà per semplicità che il problema (1) NON sia illimitato inferiormente. Premesse I punti a coordinate intere in S i non necessariamente coincidono con i vertici del poliedro Q i (contrariamente a quanto mostrato in Figura 1), pertanto se si tentasse 3

di risolvere il problema x Q 0, non necessariamente si avrebbe una soluzione x 0 a coordinate intere. Definendo i vettori e si ha naturalmente poichè S 0 Q 0. x 0 ˆx 0 soluzione di { x Q 0 soluzione di { x S 0 f(ˆx 0 ) f(x 0 ), Il Metodo del B&B consiste anzitutto nel partizionare (BRANCHING) in modo intelligente la regione ammissibile S 0, nei sottoproblemi S i, i {1,..., k}, così che S 0 = k i=1 S i = S i S j, 0 i j k, cercando (se necessario) una stima, per difetto, di una soluzione del sottoproblema x S i. (P i ) Il problema (P i ) così generato viene detto aperto e viene inserito in una lista. Nella procedura riportata in Sezione 2 si considererà per semplicità una partizione semplificata, che non pregiudica la convergenza del metodo. Per calcolare una stima della soluzione di (P i ) si deve calcolare un bound (BOUND- ING) per (P i ). In particolare, detta ˆx i una soluzione di (P i ) e posto ẑ i = c T ˆx i, per calcolare un bound di (P i ) calcoliamo x i, soluzione ottima del problema di Programmazione Lineare x Q i, (P L i ) ed indichiamo con z i il valore z i = c T x i. Sarà senz altro z i ẑ i poichè il poliedro Q i è tale che S i Q i. Si dice che (P L i ) è un rilassamento di (P i ). Ribadiamo che il poliedro Q i contiene gli stessi punti a coordinate intere di S i. 4

2 Sintesi del Metodo del B&B Fatte le precedenti premesse, il Metodo del B&B può essere schematizzato come segue: 1. Sia z = c T x l ottimo corrente (ovvero l approssimazione corrente di una soluzione per (1). Il punto x può essere calcolato in qualsiasi modo, anche attraverso ispezione visiva o tecniche euristiche) di (P 0 ), corrispondente al punto a coordinate intere x IR n. Nel caso peggiore, ovvero se non si è in grado di stimarlo in nessun modo, si pone z = + e x si pone non noto. 2. Sia L la lista dei cosiddetti problemi aperti (P i ), i 0 (dei quali cioè è ancora necessario cercare un possibile bound per la soluzione). All inizio della procedura L contiene solo il problema iniziale (P 0 ), ovvero si pone L = {(P 0 )}. 3. Si estrae dalla lista L il problema (P i ) (la scelta del problema (P i ) da estrarre dalla lista L, i.e. la regola di estrazione, è arbitraria) e se ne risolve il rilassamento (P L i ) con le seguenti regole: (a) se (P L i ) ammette soluzione x i e risulta z i z, allora si chiude (P i ), ovvero il sottoproblema (P i ) non può contenere alcuna soluzione a coordinate intere migliore della soluzione corrente x, in quanto risulta comunque c T ˆx i c T x i = z i z; (b) se (P L i ) ha un insieme ammissibile vuoto, allora si chiude (P i ), in quanto il sottoproblema (P i ) è anch esso vuoto. Quindi (P i ) non può contenere alcuna soluzione a coordinate intere migliore della soluzione corrente x; (c) se (P L i ) ammette soluzione x i e risulta z i < z, allora ci sono due possibili casi: se x i Z n (ovvero se x i ha tutte componenti intere), allora si pone x = x i, z = c T x i e si chiude il sottoproblema (P i ) (in quanto x i è anch esso soluzione di (P i )), ovvero L = L \ {(P i )}; se x i Z n (ovvero se x i NON ha tutte componenti intere), allora si partiziona il problema (P i ) nei due sottoproblemi (P i+1 ) e (P i+2 ), e si pone L = L \ {(P i )} {(P i+1 ), (P i+2 )}, ovvero da L si toglie (P i ) e si inseriscono (P i+1 ) e (P i+2 ). In particolare, se la componente j-sima x j i del vettore x i risulta NON intera, i.e. x j i = α Z, allora il problema (P i ) viene partizionato nei due sottoproblemi Qualora vi siano più componenti del vettore x i non intere, se ne sceglie arbitrariamente una. 5

x S i x j α (P i+1 ) e x S i x j α + 1, (P i+2 ) essendo α la parte intera inferiore di α. Ai problemi P i+1 e P i+2 vengono associati i problemi rilassati (P L i+1 ) e (P L i+2 ), ottenuti suddividendo (P L i ) come segue: x Q i x j α (P L i+1 ) e x Q i x j α + 1. (P L i+2 ) Ciò garantisce che (si veda anche la Figura 2) S i = S i+1 S i+2 e = S i+1 S i+2. 4. Se la lista L risulta vuota (i.e. non vi sono più sottoproblemi al suo interno, da estrarre) allora STOP (la procedura del B&B termina): il punto x è una soluzione di (1). Altrimenti si torna al punto 3. 3 Il B&B per problemi di Knapsack binario Vogliamo risolvere il problema di PLI n max c j x j n a j x j b, x {0, 1} n, (K 0 ) che rappresenta la massimizzazione dell utilità di inserire oggetti di volume finito in uno zaino (knapsack). In particolare si ha che c j rappresenta l utilità di inserire l oggetto j-simo nello zaino a j rappresenta il volume dell oggetto j-simo 6

Figura 2: A partire dal poliedro Q i si generano i poliedri Q i+1 = Q i {x IR 2 : x 2 α } e Q i+2 = Q i {x IR 2 : x 2 α + 1}, così che S i+1 Q i+1 e S i+2 Q i+2. b rappresenta il volume dello zaino x j {0, 1}, con x j = 1 se l oggetto j-simo viene inserito nello zaino, e x j = 0 altrimenti. Si tratta di un problema di Programmazione Lineare Intera, in cui è presente un solo vincolo, a parte i vincoli di interezza (binari), che può essere risolto quindi con il metodo del B&B. A tal fine, se si usa il B&B risulta piuttosto agevole la soluzione del rilassamento lineare (KL 0 ) di (K 0 ), senza usare il Metodo del Simplesso. Infatti, si ha per (KL 0 ) l espressione n max c j x j n a j x j b, 0 x j 1, j = 1,..., n. (KL 0 ) Per ottenere una soluzione di quest ultimo, valgono le seguenti osservazioni: (i) se c j = 0 allora la variabile x j non contribuisce alla massimizzazione della funzione obiettivo e basterà pertanto porre: x j = 0 se a j 0 (non uso parte del volume dello zaino per contenere il j-simo oggetto) x j = 1 se a j < 0 (uso parte del volume dello zaino per contenere il j-simo oggetto) 7

(ii) se a j = 0 allora la variabile x j non influenza il vincolo sul volume dello zaino, pertanto basterà porre: x j = 0 se c j 0 (non decremento l utilità includendo l oggetto j-simo) x j = 1 se c j > 0 (incremento l utilità includendo l oggetto j-simo) (iii) se c j a j 0 allora senza scapito di generalità si può assumere che sia c j > 0, a j > 0, in quanto altrimenti (ragionando come per (i) e (ii)) se c j < 0 e a j > 0 = basta porre x j = 0 se c j > 0 e a j < 0 = basta porre x j = 1 se c j < 0 e a j < 0 = basta effettare il cambio di variabile x j = 1 y j, con y j {0, 1}, ottenendo così un problema risultante con tutti coefficienti positivi. (iv) Ottenuto il nuovo problema di PLI, nel quale è stato assegnato un valore a n m variabili (con m n) applicando (i), (ii) e (iii), si ordinano (eventualmente rinominandole) le restanti m variabili, non assegnate ai punti (i), (ii) e (iii), in base al rapporto c j /a j non crescente, i.e. c 1 a 1 c 2 a 2 c m a m. Si determina ora l indice h, con 1 h m, tale che (si ricordi che dopo aver applicato (i)-(iii), si avrà al punto (iv) che a j > 0, j 1) h a j b e h+1 a j > b e si sceglie x j = 1, j = 1,..., h x h+1 = b h a j a h+1 x j = 0, j = h + 2,..., m. 8

Esempio. Diamo un esempio della precedente procedura (i)-(iv), per la soluzione del problema di Knapsack binario max 4x 1 + 2x 2 + 3x 3 5x 4 x 5 + x 6 3x 1 3x 2 + x 3 + x 4 x 5 1 2 x {0, 1} 6, (K 0 ) il cui rilassamento (KL 0 ) risulta essere max 4x 1 + 2x 2 + 3x 3 5x 4 x 5 + x 6 3x 1 3x 2 + x 3 + x 4 x 5 1 2 0 x j 1, j = 1,..., 6. (KL 0 ) Usando i risultati in (i), (ii) e (iii) possiamo assegnare facilmente il valore di alcune variabili (i.e. x 2 = 1, x 4 = 0, x 6 = 1), ottenendo in particolare il problema equivalente ovvero max 4x 1 + 2 1 + 3x 3 5 0 (1 y 5 ) + 1 3x 1 3 1 + x 3 + 1 0 (1 y 5 ) 0.5 0 x 1, x 3, y 5 1, max 4x 1 + 3x 3 + y 5 + 2 3x 1 + x 3 + y 5 4.5 0 x 1, x 3, y 5 1. Si provvede ora, in base a (iv), ad ordinare in modo non crescente i rapporti dei coefficienti delle restanti 3 variabili (x 1, x 3 e y 5 ), i.e. x 3 x 1 y 5 3 1 4 3 1 1, e di conseguenza si passa a risolvere (riordinando le variabili) il problema max 3x 3 + 4x 1 + y 5 + 2 x 3 + 3x 1 + y 5 4.5, 0 x 1, x 3, y 5 1. In base a (iv), essendo h = 2, risulta per la soluzione x 3 = 1 x 1 = 1 y 5 = 4.5 (1 + 3) 1 = 0.5 9

e pertanto la soluzione finale del rilassamento (KL 0 ) è data da x 1 = 1; x 2 = 1; x 3 = 1; x 4 = 0; x 5 = 1 y 5 = 0.5; x 6 = 1. 10