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.