Rilassamento Lagrangiano

Documenti analoghi
Rilassamento Lagrangiano

Parte V: Rilassamento Lagrangiano

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

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

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

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

Tecniche di rilassamento

Possibile applicazione

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

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

Programmazione Lineare Intera: Piani di Taglio

Università degli Studi di Roma La Sapienza

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

3.6 Metodi basati sui piani di taglio

Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities

4.1 Localizzazione e pianificazione delle base station per le reti UMTS

1) Data la seguente istanza di TSP (grafo completo con 5 nodi): c 12 = 52; c 13 = 51; c 14 = 40; c 15 = 53; c 23 = 44;

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

5.6 Metodo di penalità e metodo basato sulle funzioni lagrangiane aumentate. min f(x) s.v. c i (x) 0 i I c i (x) = 0 i E (1) x R n

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

5.3 Metodo dei piani di taglio

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

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

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

Ottimizzazione Combinatoria 2 Presentazione

Parte IV: Matrici totalmente unimodulari

Programmazione Lineare Intera

3.3 Problemi di PLI facili

Problemi di Flusso: Il modello del Trasporto

3.2 Rilassamenti lineari/combinatori e bounds

5.6 Metodo di penalità e metodo basato sulle funzioni lagrangiane aumentate

Programmazione Matematica / A.A Soluzioni di alcuni esercizi

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

Metodi e Modelli per l Ottimizzazione Combinatoria Problema dell assegnamento e matrici totalmente unimodulari

Algoritmi per la programmazione lineare: il metodo del simplesso

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

3.4 Metodo di Branch and Bound

Programmazione Matematica / A.A Soluzioni di alcuni esercizi

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

Parte IV: Rafforzamento di formulazioni e algoritmo dei piani di taglio

Stime dell ottimo - Rilassamenti. PRTLC - Rilassamenti

Risoluzione di problemi di programmazione lineare tramite generazione di colonne

Soluzione dei problemi di Programmazione Lineare Intera

Registro dell'insegnamento

RICERCA OPERATIVA. Tema d esame del 13/12/2005

5 PROGRAMMAZIONE LINEARE INTERA (PLI) E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

PROGRAMMAZIONE LINEARE A NUMERI INTERI

5.5 Metodi generali per la soluzione di problemi

Tecniche di Decomposizione per Programmazione Lineare Intera (Mista)

Programmazione Matematica: VI Estensioni dell algoritmo del Simplesso

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

Soluzione dei problemi di Programmazione Lineare Intera

PROVE D'ESAME 1997/98

I Appello Ricerca Operativa 2 bis Compito A

5.1 Metodo Branch and Bound

Metodi per la risoluzione di sistemi lineari

3.6 Rilassamento Lagrangiano

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

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

Il modello duale. Capitolo settimo. Introduzione

5.1 Metodo Branch and Bound

5.5 Programmazione quadratica (PQ)

Problemi di localizzazione di servizi (Facility Location Problems)

Dualità Lagrangiana. Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa

Ricerca Operativa. Programmazione Lineare. Università Mediterranea di Reggio Calabria Decisions Lab

Il teorema di dualità forte

RICERCA OPERATIVA (a.a. 2018/19)

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla teoria della dualità in programmazione lineare

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

Matematica Computazionale(6cfu) Ottimizzazione(8cfu) (a.a , lez.3)

Matematica Computazionale(6cfu) Ottimizzazione(8cfu) (a.a , lez.3)

FACOLTA DI ECONOMIA ESAME SCRITTO DI RICERCA OPERATIVA. Verona, 6 Giugno 1996

Esercizi su ottimizzazione vincolata

Problema del Bin Packing

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.

Problemi di Ottimizzazione

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

FACOLTA DI ECONOMIA ESAME SCRITTO DI RICERCA OPERATIVA. Verona, 5 Febbraio , : ; ;,, trovare il punto di

7.9 Il caso vincolato: vincoli di disuguaglianza

Università Ca Foscari Venezia

Parte III: Algoritmo di Branch-and-Bound

Dualitá in Programmazione Lineare e alcune conseguenze

Parte III: Algoritmo di Branch-and-Bound

Il rilassamento Lagrangiano nella soluzione di problemi di programmazione lineare intera

Si consideri il seguente tableau ottimo di un problema di programmazione lineare

Il metodo dei Piani di Taglio (Cutting Planes Method)

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.

Programmazione a numeri interi: il metodo del Branch and Bound

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

Capitolo 3: Ottimizzazione Discreta. E. Amaldi DEI, Politecnico di Milano

Teoria della Programmazione Lineare Intera

Esercizi di Programmazione Lineare

La dualità nella Programmazione Lineare

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

Esercizi sulla Programmazione Lineare Intera

Simplesso Revised. Domenico Salvagnin

a ij x j ) L i vincoli rilassati: a ij x j b i (i = 1,..., m) si inizia con un λ qualunque (es. λ i = 0 i);

TEORIA della DUALITÀ. Una piccola introduzione. Ricerca Operativa. Prof. R. Tadei. Politecnico di Torino. Teoria della Dualità / 1.

Transcript:

Rilassamento Lagrangiano AA 2009/10 1 Rilassamento Lagrangiano Tecnica più usata e conosciuta in ottimizzazione combinatoria per il calcolo di lower/upper bounds (Held and Karp (1970)). Si consideri il seguente problema P di programmazione lineare a numeri interi: (P) z(p) = min c T x s.t. Ax b (1) Bx d x {0,1} dove A è una matrice m 1 n, B è una matrice m 2 n, b è un vettore di dimensione m 1, d è un vettore di dimensione m 2 e c ed x sono vettori di dimensioni n. Supponiamo che i vincoli (1) siano vincoli difficili. Il Rilassamento Lagrangiano di P rispetto ai vincoli (1) si ottiene: 1. rilassando dal problema P i vincoli (1); 2. introducendo tali vincoli nella funzione obiettivo associando a loro un vettore di penalità, chiamato vettore delle penalità Lagrangiane (o moltiplicatori Lagrangiani).

Rilassamento Lagrangiano AA 2009/10 2 Il rilassamento Lagrangiano di P rispetto ai vincoli Ax b è il seguente problema L(λ): L(λ) z(l(λ)) = min c T x λ(ax b) s.t. Bx d x {0,1} dove λ 0 è il vettore delle penalià Lagrangiane di dimensione m 1 e L(λ) viene chiamata Funzione Lagrangiana. Esempio 1: (P) z(p) = min 3x 1 +7x 2 +10x 3 s.t. x 1 +3x 2 +5x 3 7 x 1,x 2,x 3 {0,1} L(λ) z(l(λ)) = min 3x 1 +7x 2 +10x 3 λ(x 1 +3x 2 +5x 3 7) s.t. x 1,x 2,x 3 {0,1} L importanza di L(λ) sta nel fatto che z(l(λ)), λ 0, è un valido lower bound al costo della soluzione ottima di P, z(p). In certe condizione la soluzione ottima di L(λ) è anche la soluzione ottima di P.

Rilassamento Lagrangiano AA 2009/10 3 Teorema (Dualità Lagrangiana Debole). Il valore ottimo z(p) del problema P è maggiore o uguale al valore ottimo z(l(λ)) del problema L(λ), per ogni vettore λ 0, ovvero: z(p) z(l(λ)), λ 0. Dimostrazione. Sia x la soluzione ottima di P. Si noti che x è anche una soluzione ammissibile per L(λ) per ogni λ 0. Si ha quindi che c T x λ(ax b) z(l(λ)) ma λ(ax b) 0 (poichè λ 0 e Ax b), quindi c T x z(l(λ)) ovvero z(p) z(l(λ)), λ 0.

Rilassamento Lagrangiano AA 2009/10 4 Set Covering Problem Il Set Covering Problem (SCP) è il problema di coprire le righe di una matrice m n (a ij ) con coefficienti 0 ed 1, con un sottoinsieme di colonne a costo minimo. Sia x j una variabile binaria 0-1 definita come segue: x j = 1 se la colonna j con costo c j è in soluzione; 0 altrimenti. Una formulazione matematica per il problema SCP è la seguente: (SC) z(sc) = min n s.t. n c j x j a ij x j 1, i = 1,...,m (2) x j {0,1}, j = 1,...,n Esempio 2: m = 3, n = 6, c j = [1,2,3,4,5,6] (a ij ) = 1 2 3 1 2 3 4 5 6 1 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 Soluzione ottima S = {2,3} di costo 5.

Rilassamento Lagrangiano AA 2009/10 5 Il Rilassamento Lagrangiano del problema SC rispetto ai vincoli (2) è il seguente: (L(λ)) z(l(λ)) = min n c j x j m λ i ( n a ij x j 1) i=1 s.t. x j {0,1}, j = 1,...,n dove λ i 0,i = 1,...,m. Il problema L(λ) può essere riscritto come segue: (L(λ)) z(l(λ)) = min n (c j m λ i a ij )x j + m i=1 λ i i=1 s.t. x j {0,1}, j = 1,...,n Posto C j = c j m i=1 λ i a ij,j = 1,...,n, L(λ) diventa: (L(λ)) z(l(λ)) = min n C j x j + m λ i i=1 s.t. x j {0,1}, j = 1,...,n la cui soluzione ottima può x essere calcolata ponendo: x j = 1 se C j 0; 0 altrimenti.,j = 1,...,n

Rilassamento Lagrangiano AA 2009/10 6 Esempio 3 Si consideri il seguente problem di Set Covering: (P1) z(p1) = min 2x 1 +3x 2 +4x 3 +5x 4 s.t. x 1 +x 3 1 x 1 +x 4 1 x 2 +x 3 +x 4 1 x 1,x 2,x 3,x 4 {0,1} La soluzione ottima è x 1 = x 2 = 1 e x 3 = x 4 = 0. Rilassando mediante le penalità Lagrangiane λ 1, λ 2 e λ 3 i 3 vincoli di P1 si ottiene il seguente problema: (L(λ)) z(l(λ)) = min 2x 1 +3x 2 +4x 3 +5x 4 λ 1 (x 1 +x 3 1) ovvero λ 2 (x 1 +x 4 1) λ 3 (x 2 +x 3 +x4 1) s.t. x 1,x 2,x 3,x 4 {0,1} (L(λ)) z(l(λ)) = min C 1 x 1 +C 2 x 2 +C 3 x 3 +C 4 x 4 +λ 1 +λ 2 +λ 3 s.t. x 1,x 2,x 3,x 4 {0,1} dove C 1 = 2 λ 1 λ 2 C 2 = 3 λ 3 C 3 = 4 λ 1 λ 3 C 4 = 5 λ 2 λ 3

Rilassamento Lagrangiano AA 2009/10 7 Se λ 1 = 1.5, λ 2 = 1.6 e λ 3 = 2.2 si ha: C 1 = 2 λ 1 λ 2 = 1.1 C 2 = 3 λ 3 = 0.8 C 3 = 4 λ 1 λ 3 = 0.3 C 4 = 5 λ 2 λ 3 = 1.2 per cui la soluzione ottima x di L(λ) é x 1 = 1,x 2 = x 3 = x 4 = 0 di costo z(l(λ)) = 1.1+0+0+0+1.5+1.6+2.2 = 4.2 ( 5). Se λ 1 = 1, λ 2 = 1 e λ 3 = 3 si ha: C 1 = 2 λ 1 λ 2 = 0 C 2 = 3 λ 3 = 0 C 3 = 4 λ 1 λ 3 = 0 C 4 = 5 λ 2 λ 3 = 1 per cui la soluzione ottima x è di L(λ) x 1 = x 2 = x 3 = x 4 = 0 di costo L(λ) = 0+0+0+0+1+1+3 = 5 (= z(p1)). Si noti che x non è una soluzione ammissibile per P1. Si noti inoltre che esistono soluzioni ottime alternative di L(λ) tutte di costo z(l(λ)) = 5 che si ottengono ponendo x 1 = 1 e/o x 2 = 1 e/o x 3 = 1 e x 4 = 0. Fra tali soluzioni vi è anche la soluzione ottima di P1.

Rilassamento Lagrangiano AA 2009/10 8 Lagrangiano Duale Dal teorema della Dualità debole per cui z(l(λ)) z(p), λ 0, si ha che l ottimo z(d L ) del seguente problema: (D L ) z(d L ) = max λ 0 [z(l(λ))] è un valido lower bound a z(p); ovvero z(d L ) z(p). Il problema D L è detto Lagrangiano Duale di P. Duality Gap Nel caso in cui z(d L ) < z(p) allora si dice che esiste un duality gap fra il problema P e il problema D L. Siaλla soluzione ottima del problema D L. Siainoltre xla soluzione ottima di RL(λ), ovvero: z(d L ) = z(l(λ)) = cx λ(ax b) Si consideri il caso in cui x è anche l ottimo di P, ovvero z(p) = cx. È evidente che z(d L ) < z(p) se λ(ax b) > 0.

Rilassamento Lagrangiano AA 2009/10 9 Esempio 4 (P) z(p) = min 3x 1 +7x 2 +10x 3 s.t. x 1 +3x 2 +5x 3 7 x 1,x 2,x 3 {0,1} (L(λ)) z(l(λ)) = min 3x 1 +7x 2 +10x 3 λ(x 1 +3x 2 +5x 3 7) s.t. x 1,x 2,x 3 {0,1} ovvero (L(λ)) z(l(λ)) = min (3 λ)x 1 +(7 3λ)x 2 +(10 5λ)x 3 +7λ s.t. x 1,x 2,x 3 {0,1} Per calcolare z(d L ), calcoliamo L(λ), λ 0: λ = 0, z(l(0)) = 0 e x = (0,0,0); λ = 1, z(l(1)) = 7 e x = (0,0,0); λ = 2, z(l(2)) = 14 e x = (0,0,0) oppure x = (0,0,1); λ = 7 3, z(l(7 44 )) = 3 3 e x = (0,0,1) oppure x = (0,1,1); λ = 3, z(l(3)) = 14 e x = (0,1,1) oppure x = (1,1,1); λ > 3, z(l(λ)) = 2λ+20 e x = (1,1,1). Quindi esiste un gap di dualità in quanto z(d L ) = 44 3 (= z(l(7 3 ))), z(p) = 17 e x = (0,1,1), che corrisponde ad una delle soluzioni di z(l( 7 3 )).

Rilassamento Lagrangiano AA 2009/10 10 Teorema (Dualità Lagrangiana Forte). Sia x la soluzione ottima di L(λ) per un dato λ 0. Se x e λ soddisfano le seguenti condizioni: x è ammissibile per P(ovvero Ax b) e (3) λ(ax b) = 0, (4) allora x è la soluzione ottima di P ed inoltre z(d L ) = z(l(λ)). Dimostrazione. Dimostriamo x è una soluzione ottima di P. Essendo x soluzione ammissibile di P si ha cx z(p). (5) Per il teorema della dualità Lagrangiana debole si ha: Quindi da (5( e (6) si ottiene z(p) L(λ) = cx λ(ax b) ). (6) } {{ } =0 per la (4 cx z(p) cx ovvero z(p) = cx (= z(l(λ))). (7) Dimostriamo che z(d L ) = z(l(λ)). Per come è definito il problema D L si ha che: z(d L ) L(λ) z(p) z(d L ) (8) Quindi da (7) e (8) si ottiene z(d L ) = z(p).

Rilassamento Lagrangiano AA 2009/10 11 Considerazioni Si noti che le condizioni del teorema della dualità lagrangiana forte sono sufficienti, ma non necessarie. Nell esempio 4 la soluzione duale ottima che si ha per λ = 7 3 soluzione ottima del problema primale (x = (0,1,1)), ma: fornisce la λ(ax b) = λ(x 1 +3x 2 +5x 3 7) = 7 3 (0+3+5 7) = 7 3 0 Dato un problema P: Quali vincoli devono essere rilassati in modo Lagrangiano? È necessario considerare rilassamenti per i quali la complessità computazionale necessaria per risolvere il problema L(λ) è di tipo polinomiale o pseudopolinomiale; Come risolvere il problema D L? Il numero di penalità Lagrangiane necessarie per effettuare il rilassamento influenza la complessità computazionale necessaria per risolvere il problema D L ; Che relazioni ci sono fra il Rilassamento Lineare di P ed il Rilassamento Lagrangiano di P?

Rilassamento Lagrangiano AA 2009/10 12 Relazione fra il Rilassamento Lineare ed il Rilassamento Lagrangiano Il miglior lower bound ottenuto rilassando in modo Lagrangiano il problema P (ovvero la soluzione ottima del lagrangiano duale) è sempre maggiore o uguale al lower bound ottenuto dal rilassamento lineare di P z(lp) z(d L ) Proprietà di integralità Definizione: proprietà di integralità. Si dice che il Rilassamento Lagrangiano L(λ) soddisfa la proprietà di integralità se la regione ammissibile di L(λ) (per un dato vettore λ 0) ha solo vertici interi. Ne consegue che per qualunque vettore di costi c T z(l(λ)) = z(ril. lineare di L(λ)) Teorema (Proprietà d integralità). Se il Rilassamento Lagrangiano L(λ) di P soddisfa la proprietà di integralità, allora z(d L ) = z(lp).

Rilassamento Lagrangiano AA 2009/10 13 Assegnamento Generalizzato Sono dati m contenitori ed n oggetti. Il contenitore j ha una capacità pari a b j (j = 1,...,m). Ogni oggetto i (i = 1,...,n) occupa una spazio pari a a ij nel contenitore j (j = 1,...,m). Sia c ij il costo per assegnare l oggetto i al contenitore j. Si vuole assegnare ogni oggetto ad uno ed un solo contenitore nel rispetto della capacità dei contenitori e minimizzando il costo complessivo. Una formulazione matematica è la seguente: x ij = 1 se l oggetto i viene assegnato al contenitore j; 0 altrimenti. (AG) z(ag) = Min n s.t. m i=1 m n i=1 c ij x ij x ij = 1,i = 1,...,n (9) a ij x ij b j,j = 1,...,m (10) x ij {0,1},i = 1,...,n,j = 1,...,m I vincoli (9) impongono che ogni oggetto sia assegnato ad un ed un solo contenitore, mentre le disuguaglianze (10) impongono il vincolo sulla capacità dei contenitori.

Rilassamento Lagrangiano AA 2009/10 14 Si considerino i seguenti tre Rilassamenti del problema AG: - Rilassamento Lagrangiano rispetto ai vincoli (9): z(l 1 (λ)) = min n s.t. m i=1 n i=1 (c ij λ i )x ij + n λ i i=1 a ij x ij b j,j = 1,...,m x ij {0,1},i = 1,...,n,j = 1,...,m - Rilassamento Lagrangiano rispetto ai vincoli (10): z(l 2 (µ)) = min n s.t. m i=1 m (c ij +a ij µ j )x ij m x ij = 1,i = 1,...,n µ j b j x ij {0,1},i = 1,...,n,j = 1,...,m µ j 0,j = 1,...,m - Rilassamento Lagrangiano rispetto ai vincoli (9) e (10): z(l 3 (λ,µ)) = min n m i=1 (c ij λ i +a ij µ j )x ij + n i=1 λ i m s.t. x ij {0,1},i = 1,...,n,j = 1,...,m µ j 0,j = 1,...,m µ j b j Siccome L 2 e L 3 soddisfano la proprietà di integralità e possono essere facilmente risolti per ispezione. Si ha z(d L2 ) = z(d L3 ) = z(lp). Per quanto riguarda L 1, si ha z(d L1 ) z(lp). Si noti che la risoluzione di L 1 (λ) coinvolge la risoluzione di m problemi di knapsack.

Rilassamento Lagrangiano AA 2009/10 15 Risoluzione del Lagrangiano Duale Teorema La Funzione Lagrangiana è concava. z(l(λ)) = z(l(αλ 1 +(1 α)λ 2 )) z(l(λ 2 )) αz(l(λ 1 ))+(1 α)z(l(λ 2 )) z(l(λ 1 )) λ 1 λ = αλ 1 +(1 α)λ 2 λ 2 αz(l(λ 1 ))+(1 α)z(l(λ 2 )) z(l(λ)). Subgradiente Un vettore s è detto subgradiente di L(λ) in λ se soddisfa: z(l(λ)) z(l(λ))+s(λ λ) z(l(λ))+s(λ λ)) z(l(λ)) z(l(λ)) λ λ

Rilassamento Lagrangiano AA 2009/10 16 Il Lagrangiano Duale (D L ) z(d L ) = max λ 0 [z(l(λ))] potrebbe essere risolto come un problema di Programmazione Lineare Continua, ma spesso risulta molto oneroso dal punto di vista computazionale. Per risolvere D L si usano perciò altri metodi, di tipo euristico, fra i quali l ottimizzazione subgradiente. 1. Calcola la funzione z(l(λ)) per λ dato. 2. Calcola un subgradiente s in λ; 3. λ := λ+θs (un passo nella direzione del subgradiente) 4. Se non è attivo un criterio di arresto, then goto 1. Il metodo genera una sequenza finita di vettori λ 1,λ 2,...,λ k e di valori z(l(λ 1 )), z(l(λ 2 )),...,z(l(λ k )) N.B. i valori z(l(λ i )) non sono monotoni!

Rilassamento Lagrangiano AA 2009/10 17 Calcolo del subgradiente Dato λ sia x la soluzione di RL(λ), ovvero Per un generico λ si ha che z(l(λ)) = cx λ(ax b) (11) z(l(λ)) = min x X (ct x λ(ax b)) cx λ(ax b) (12) Sottraendo dalla (12) la (11) si ottiene: ovvero z(l(λ)) z(l(λ)) (λ λ)(ax b) z(l(λ)) z(l(λ)) (Ax b)(λ λ) ne segue che s = (Ax b) è un subgradiente di z(l(λ)) in λ. Affinche z(l(λ)) sia maggiore di z(l(λ)) è necessario che: (Ax b)(λ λ) > 0, ovvero, è necessario muoversi nella direzione del subgradiente: λ = λ+θs, θ > 0 Il problema (non facile) è quello di determinare il valore di θ.

Rilassamento Lagrangiano AA 2009/10 18 Metodo del Subgradiente Indichiamo in forma di sommatoria i vincoli Ax b, ovvero, n a ij x j b i, i = 1,...,m 1. Algoritmo Subgradiente Step 1. Sia α un parametro predefinito. Poni LB =. Sia inoltre z(u B) il costo di una soluzione euristica al problema. Si ponga λ i = 0,i = 1,...,m 1. Step 2. Si risolva il problema L(λ). Sia x la soluzione ottima di L(λ) di costo z(l(λ)). Poni LB = max[lb,l(λ)]. Se Ax b e λ(ax b) = 0 allora x è la soluzione ottima di P. Step 3. Siano s i, i = 1,...,m 1, i subgradienti per i vincoli rilassati, calcolati come: s i = b i n a ij x j, i = 1,...,m 1. Step 4. θ = α[z(ub) z(l(λ))] / m 1 Step 5. Si aggiornino le Penalita Lagrangiane nel seguente modo: λ i = max[0,λ i +θs i ], i = 1,...,m 1. Vai allo Step 2. i=1 s 2 i.

Rilassamento Lagrangiano AA 2009/10 19 In genere 0 < α 2. Osservazioni Il valore di α va opportunatamente ridotto (α = α/2) se per iterazioni risulta z(l(λ)) LB. In genere = 20. In generale è necessario imporre un numero massimo di iterazioni all algoritmo in quanto non vi è nessuna garanzia sulla sua terminazione. Il lower bound z(l(λ)) prodotto ad una generica iterazione può essere inferiore al lower bound prodotto all iterazione precedente. Il lower bound LB tende a crescere rapidamente durante le primi iterazioni dell algoritmo per poi convergere lentamente verso z(d L ).

Rilassamento Lagrangiano AA 2009/10 20 Set Covering Si consideri il problema di Set Covering dell esercizio 3. Una possibile iterazione del Metodo Subgradiente è la seguente. Step 1. Poni α = 2. Poni z(u B) = 6 (soluzione euristica ottenuta ponendo x 1 = x 3 = 1, x 2 = x 4 = 0). Poni λ 1 = 1.5, λ 2 = 1.6 e λ 3 = 2.2. Step 2. La soluzione di L(λ) è x 1 = 1 e x 2 = x 3 = x 4 = 0 con z(l(λ)) = 4.2 Step 3. Le equazioni per il subgradiente sono: s 1 = (1 x 1 x 3 ) = 0 s 2 = (1 x 1 x 4 ) = 0 s 3 = (1 x 2 x 3 x 4) = 1 Step 4. θ = 2(6 4.2) (0 2 +0 2 +1 2 ) = 3.6 Step 5. L aggiornamento delle penalità Lagrangiane produce: λ 1 = max(0,1.5+3.6(0)) = 1.5 λ 2 = max(0,1.6+3.6(0)) = 1.6 λ 3 = max(0,2.2+3.6(1)) = 5.8 L iterazione successiva produce: x 1 = x 2 = x 3 = x 4 = 1 con z(l(λ)) = 0.7 (< 4.2).

Rilassamento Lagrangiano AA 2009/10 21 Rilassamenti con vincoli di tipo diverso Si consideri il seguente problema P di programmazione lineare a numeri interi: (P) z(p) = min c T x s.t. A 1 x b 1 (13) A 2 x b 2 (14) A 3 x = b 3 (15) Bx d x {0,1} dove A 1 è una matrice m 1 n, A 2 è una matrice m 2 n ed A 3 è una matrice m 3 n. Il rilassamento Lagrangiano del problema P secondo i vincoli (13), (14) e (15) è il seguente: (L(λ,µ,ω)) z(l(λ,µ,ω) = min c T x λ(a 1 x b 1 )+ s.t. µ(a 2 x b 2 ) ω(a 3 x b 3 ) Bx d x {0,1} λ,µ 0 - λ: vettore di dimensione m 1 associato ai vincoli (13); - µ: vettore di dimensione m 2 associato ai vincoli (14); - ω: vettore (libero) di dimensione m 3 associato ai vincoli (15);

Rilassamento Lagrangiano AA 2009/10 22 Nel caso del problema P lo Step 5 del Metodo del Subgradiente si modifica come segue: Calcolo dei subgradienti (Step 3): - G i = b 1 i n - F i = b 2 i n - H i = b 3 i n a 1 ijx j, i = 1,...,m 1 ; a 2 ijx j, i = 1,...,m 2 ; a 3 ijx j, i = 1,...,m 3. Calcolo dello step T (Step 4): θ = m 1 i=1 α(z(ub) L(λ)) G 2 i + m 2 Fi 2 + m 3 Hi 2 i=1 i=1 (16) Per quanto riguarda l aggiornamento delle penalità Lagrangiane si ha (Step 5): - A 1 x b 1 : λ i = max[0,λ i +θg i ], i = 1,...,m 1 ; - A 2 x b 2 : µ i = max[0,µ i +θf i ], i = 1,...,m 2 ; - A 3 x b 3 : ω i = ω i +θh i, i = 1,...,m 3.