3. Rilassamento Lagrangiano
3. Rilassamento Lagrangiano
3. Rilassamento Lagrangiano
Trasformi i suoi PDF in rivista online e aumenti il suo fatturato!
Ottimizzi le sue riviste online per SEO, utilizza backlink potenti e contenuti multimediali per aumentare la sua visibilità e il suo fatturato.
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 1<br />
<strong>Rilassamento</strong> <strong>Lagrangiano</strong><br />
Tecnica più usata e conosciuta in ottimizzazione combinatoria per il<br />
calcolo di lower/upper bounds (Held and Karp (1970)).<br />
Si consideri il seguente problema P di programmazione lineare a<br />
numeri interi:<br />
(P) z(P) = min c T x<br />
s.t. Ax ≥ b (1)<br />
Bx ≥ d<br />
x ∈ {0,1}<br />
dove A è una matrice m1×n, B è una matrice m2×n, b è un vettore<br />
di dimensione m1, d è un vettore di dimensione m2 e c ed x sono vettori<br />
di dimensioni n.<br />
Supponiamo che i vincoli (1) siano vincoli “difficili”.<br />
Il <strong>Rilassamento</strong> <strong>Lagrangiano</strong> di P rispetto ai vincoli (1) si ottiene:<br />
1. rilassando dal problema P i vincoli (1);<br />
2. introducendo tali vincoli nella funzione obiettivo associando a loro<br />
un vettore di penalità, chiamato vettore delle penalità Lagrangiane<br />
(o moltiplicatori Lagrangiani).<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 2<br />
Il rilassamento <strong>Lagrangiano</strong> di P rispetto ai vincoli Ax ≥ b è il<br />
seguente problema L(λ):<br />
L(λ) z(L(λ)) = min c T x−λ(Ax−b)<br />
s.t. Bx ≥ d<br />
x ∈ {0,1}<br />
dove λ ≥ 0 è il vettore delle penalià Lagrangiane di dimensione m1 e<br />
L(λ) viene chiamata Funzione Lagrangiana.<br />
Esempio 1:<br />
(P) z(P) = min 3x1 +7x2+10x3<br />
s.t. x1 +3x2 +5x3 ≥ 7<br />
x1,x2,x3 ∈ {0,1}<br />
L(λ) z(L(λ)) = min 3x1+7x2 +10x3−λ(x1+3x2 +5x3−7)<br />
s.t. x1,x2,x3 ∈ {0,1}<br />
L’importanza di L(λ) sta nel fatto che z(L(λ)) , ∀λ ≥ 0, è un<br />
valido lower bound al costo della soluzione ottima di P, z(P).<br />
In certe condizione la soluzione ottima di L(λ) è anche la soluzione<br />
ottima di P.<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 3<br />
Teorema (Dualità Lagrangiana Debole).<br />
Il valore ottimo z(P) del problema P è maggiore o uguale al valore<br />
ottimo z(L(λ)) del problema L(λ), per ogni vettore λ ≥ 0, ovvero:<br />
Dimostrazione.<br />
z(P) ≥ z(L(λ)), ∀λ ≥ 0.<br />
Sia x ∗ la soluzione ottima di P.<br />
Si noti che x ∗ è anche una soluzione ammissibile per L(λ) per ogni<br />
λ ≥ 0. Si ha quindi che<br />
c T x ∗ −λ(Ax ∗ −b) ≥ z(L(λ))<br />
ma λ(Ax ∗ −b) ≥ 0 (poichè λ ≥ 0 e Ax ∗ ≥ b), quindi<br />
c T x ∗ ≥ z(L(λ)) ovvero z(P) ≥ z(L(λ)), ∀λ ≥ 0.<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 4<br />
Set Covering Problem<br />
Il Set Covering Problem (SCP) è il problema di coprire le righe di<br />
una matrice m×n (aij) con coefficienti 0 ed 1, con un sottoinsieme di<br />
colonne a costo minimo.<br />
Sia xj una variabile binaria 0-1 definita come segue:<br />
xj =<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
1 se la colonna j con costo cj è in soluzione;<br />
0 altrimenti.<br />
Una formulazione matematica per il problema SCP è la seguente:<br />
(SC) z(SC) = min n �<br />
cjxj<br />
j=1<br />
n�<br />
s.t.<br />
j=1<br />
aijxj ≥ 1, i = 1,...,m (2)<br />
xj ∈ {0,1}, j = 1,...,n<br />
Esempio 2: m = 3, n = 6, cj = [1,2,3,4,5,6]<br />
(aij) =<br />
Soluzione ottima S = {2,3} di costo 5.<br />
1<br />
2<br />
3<br />
⎡<br />
⎢<br />
⎣<br />
1 2 3 4 5 6<br />
1 0 1 0 1 0<br />
0 0 1 1 0 1<br />
0 1 0 0 1 1<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori<br />
⎤<br />
⎥<br />
⎦
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 5<br />
Il <strong>Rilassamento</strong> <strong>Lagrangiano</strong> del problema SC rispetto ai vincoli (2)<br />
è il seguente:<br />
(L(λ)) z(L(λ)) = min n �<br />
cjxj −<br />
j=1<br />
m �<br />
λi(<br />
i=1<br />
n �<br />
aijxj −1)<br />
j=1<br />
dove λi ≥ 0,i = 1,...,m.<br />
s.t. xj ∈ {0,1}, j = 1,...,n<br />
Il problema L(λ) può essere riscritto come segue:<br />
(L(λ)) z(L(λ)) = min n �<br />
(cj −<br />
j=1<br />
m �<br />
λiaij)xj +<br />
i=1<br />
m �<br />
λi<br />
i=1<br />
Posto Cj = cj − m �<br />
i=1<br />
s.t. xj ∈ {0,1}, j = 1,...,n<br />
λiaij,j = 1,...,n, L(λ) diventa:<br />
(L(λ)) z(L(λ)) = min n �<br />
Cjxj +<br />
j=1<br />
m �<br />
λi<br />
i=1<br />
s.t. xj ∈ {0,1}, j = 1,...,n<br />
la cui soluzione ottima può x ∗ essere calcolata ponendo:<br />
x ∗ j =<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
1 se Cj ≤ 0;<br />
0 altrimenti.<br />
,j = 1,...,n<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 6<br />
Esempio 3<br />
Si consideri il seguente problem di Set Covering:<br />
(P1) z(P1) = min 2x1 +3x2+4x3+5x4<br />
s.t. x1 +x3 ≥ 1<br />
x1 +x4 ≥ 1<br />
x2 +x3 +x4 ≥ 1<br />
x1,x2,x3,x4 ∈ {0,1}<br />
La soluzione ottima è x1 = x2 = 1 e x3 = x4 = 0.<br />
Rilassando mediante le penalità Lagrangiane λ1, λ2 e λ3 i 3 vincoli di<br />
P1 si ottiene il seguente problema:<br />
(L(λ)) z(L(λ)) = min 2x1 +3x2+4x3+5x4 −λ1(x1+x3−1)<br />
ovvero<br />
−λ2(x1+x4−1)−λ3(x2 +x3 +x4−1)<br />
s.t. x1,x2,x3,x4 ∈ {0,1}<br />
(L(λ)) z(L(λ)) = min C1x1 +C2x2+C3x3 +C4x4 +λ1 +λ2 +λ3<br />
s.t. x1,x2,x3,x4 ∈ {0,1}<br />
dove<br />
C1 = 2−λ1−λ2<br />
C2 = 3−λ3<br />
C3 = 4−λ1−λ3<br />
C4 = 5−λ2−λ3<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 7<br />
Se λ1 = 1.5, λ2 = 1.6 e λ3 = 2.2 si ha:<br />
C1 = 2−λ1 −λ2 = −1.1<br />
C2 = 3−λ3 = 0.8<br />
C3 = 4−λ1 −λ3 = 0.3<br />
C4 = 5−λ2 −λ3 = 1.2<br />
per cui la soluzione ottima x ∗ di L(λ) é<br />
x ∗ 1 = 1,x∗ 2 = x∗ 3 = x∗ 4<br />
= 0<br />
di costo z(L(λ)) = −1.1+0+0+0+1.5+1.6+2.2 = 4.2 (≤ 5).<br />
Se λ1 = 1, λ2 = 1 e λ3 = 3 si ha:<br />
C1 = 2−λ1 −λ2 = 0<br />
C2 = 3−λ3 = 0<br />
C3 = 4−λ1 −λ3 = 0<br />
C4 = 5−λ2 −λ3 = 1<br />
per cui la soluzione ottima x ∗ è di L(λ)<br />
x ∗ 1 = x ∗ 2 = x ∗ 3 = x ∗ 4 = 0<br />
di costo L(λ) = 0+0+0+0+1+1+3 = 5 (= z(P1)).<br />
Si noti che x ∗ non è una soluzione ammissibile per P1.<br />
Si noti inoltre che esistono soluzioni ottime alternative di L(λ) tutte di<br />
costo z(L(λ)) = 5 che si ottengono ponendo x ∗ 1 = 1 e/o x ∗ 2 = 1 e/o<br />
x ∗ 3 = 1 e x ∗ 4 = 0. Fra tali soluzioni vi è anche la soluzione ottima di P1.<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 8<br />
<strong>Lagrangiano</strong> Duale<br />
Dal teorema della Dualità debole per cui z(L(λ)) ≤ z(P), ∀λ ≥ 0,<br />
si ha che l’ottimo z(DL) del seguente problema:<br />
(DL) z(DL) = max<br />
λ≥0<br />
[z(L(λ))]<br />
è un valido lower bound a z(P); ovvero z(DL) ≤ z(P).<br />
Il problema DL è detto <strong>Lagrangiano</strong> Duale di P.<br />
Duality Gap<br />
Nel caso in cui z(DL) < z(P) allora si dice che esiste un duality<br />
gap fra il problema P e il problema DL.<br />
Siaλla soluzione ottima del problema DL. Siainoltre xla soluzione<br />
ottima di RL(λ), ovvero:<br />
z(DL) = z(L(λ)) = cx−λ(Ax−b)<br />
Si consideri il caso in cui x è anche l’ottimo di P, ovvero z(P) = cx.<br />
È evidente che z(DL) < z(P) se λ(Ax−b) > 0.<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 9<br />
Esempio 4<br />
(P) z(P) = min 3x1 +7x2+10x3<br />
s.t. x1 +3x2 +5x3 ≥ 7<br />
x1,x2,x3 ∈ {0,1}<br />
(L(λ)) z(L(λ)) = min 3x1+7x2 +10x3−λ(x1+3x2+5x3−7)<br />
ovvero<br />
s.t. x1,x2,x3 ∈ {0,1}<br />
(L(λ)) z(L(λ)) = min (3−λ)x1+(7−3λ)x2+(10−5λ)x3+7λ<br />
s.t. x1,x2,x3 ∈ {0,1}<br />
Per calcolare z(DL), calcoliamo L(λ), λ ≥ 0:<br />
λ = 0, z(L(0)) = 0 e x = (0,0,0);<br />
λ = 1, z(L(1)) = 7 e x = (0,0,0);<br />
λ = 2, z(L(2)) = 14 e x = (0,0,0) oppure x = (0,0,1);<br />
λ = 7 44 , z(L(7))<br />
= 3 3 3<br />
e x = (0,0,1) oppure x = (0,1,1);<br />
λ = 3, z(L(3)) = 14 e x = (0,1,1) oppure x = (1,1,1);<br />
λ > 3, z(L(λ)) = −2λ+20 e x = (1,1,1).<br />
Quindi esiste un gap di dualità in quanto z(DL) = 44<br />
3<br />
(= z(L(7<br />
3 ))),<br />
z(P) = 17 e x ∗ = (0,1,1), che corrisponde ad una delle soluzioni di<br />
z(L( 7<br />
3 )).<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 10<br />
Teorema (Dualità Lagrangiana Forte).<br />
Sia x la soluzione ottima di L(λ) per un dato λ ≥ 0.<br />
Se x e λ soddisfano le seguenti condizioni:<br />
x è ammissibile per P(ovvero Ax ≥ b) e (3)<br />
λ(Ax−b) = 0, (4)<br />
allora x è la soluzione ottima di P ed inoltre z(DL) = z(L(λ)).<br />
Dimostrazione.<br />
Dimostriamo x è una soluzione ottima di P.<br />
Essendo x soluzione ammissibile di P si ha<br />
cx ≥ z(P). (5)<br />
Per il teorema della dualità Lagrangiana debole si ha:<br />
Quindi da (5( e (6) si ottiene<br />
z(P) ≥ L(λ) = cx−λ(Ax−b) ). (6)<br />
� �� �<br />
=0 per la (4<br />
cx ≥ z(P) ≥ cx ovvero z(P) = cx (= z(L(λ))). (7)<br />
Dimostriamo che z(DL) = z(L(λ)).<br />
Per come è definito il problema DL si ha che:<br />
Quindi da (7) e (8) si ottiene<br />
z(DL) ≥ L(λ)<br />
z(P) ≥ z(DL)<br />
z(DL) = z(P).<br />
⎫<br />
⎪⎬<br />
⎪⎭<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori<br />
(8)
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 11<br />
Considerazioni<br />
Si noti che le condizioni del teorema della dualità lagrangiana forte<br />
sono sufficienti, ma non necessarie.<br />
Nell’esempio 4 la soluzione duale ottima che si ha per λ = 7<br />
3<br />
soluzione ottima del problema primale (x∗ = (0,1,1)), ma:<br />
λ(Ax−b) = λ(x1+3x2 +5x3−7) = 7 7<br />
(0+3+5−7) =<br />
3 3<br />
Dato un problema P:<br />
fornisce la<br />
�= 0<br />
Quali vincoli devono essere rilassati in modo <strong>Lagrangiano</strong> ?<br />
È necessario considerare rilassamenti per i quali la complessità computazionale<br />
necessaria per risolvere il problema L(λ) è di tipo polinomiale<br />
o pseudopolinomiale;<br />
Come risolvere il problema DL ?<br />
Il numero di penalità Lagrangiane necessarie per effettuare il rilassamento<br />
influenza la complessità computazionale necessaria per<br />
risolvere il problema DL;<br />
Che relazioni ci sono fra il <strong>Rilassamento</strong> Lineare di P ed il <strong>Rilassamento</strong><br />
<strong>Lagrangiano</strong> di P ?<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 12<br />
Relazione fra il <strong>Rilassamento</strong> Lineare<br />
ed il <strong>Rilassamento</strong> <strong>Lagrangiano</strong><br />
Il miglior lower bound ottenuto rilassando in modo <strong>Lagrangiano</strong> il problema<br />
P (ovvero la soluzione ottima del lagrangiano duale) è sempre<br />
maggiore o uguale al lower bound ottenuto dal rilassamento lineare di P<br />
Proprietà di integralità<br />
z(LP) ≤ z(DL)<br />
Definizione: proprietà di integralità. Si dice che il <strong>Rilassamento</strong><br />
<strong>Lagrangiano</strong> L(λ) soddisfa la proprietà di integralità se la regione ammissibile<br />
di L(λ) (per un dato vettore λ ≥ 0) ha solo vertici interi.<br />
Ne consegue che<br />
per qualunque vettore di costi c T<br />
z(L(λ)) = z(ril. lineare di L(λ))<br />
Teorema (Proprietà d’integralità). Se il <strong>Rilassamento</strong> <strong>Lagrangiano</strong><br />
L(λ) di P soddisfa la proprietà di integralità, allora z(DL) = z(LP).<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 13<br />
Assegnamento Generalizzato<br />
Sono dati m contenitori ed n oggetti. Il contenitore j ha una<br />
capacità pari a bj (j = 1,...,m). Ogni oggetto i (i = 1,...,n)<br />
occupa una spazio pari a aij nel contenitore j (j = 1,...,m). Sia cij il<br />
costo per assegnare l’oggetto i al contenitore j.<br />
Si vuole assegnare ogni oggetto ad uno ed un solo contenitore nel rispetto<br />
della capacità dei contenitori e minimizzando il costo complessivo.<br />
Una formulazione matematica è la seguente:<br />
xij =<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
1 se l’oggetto i viene assegnato al contenitore j;<br />
0 altrimenti.<br />
(AG) z(AG) = Min n � m�<br />
cijxij<br />
i=1j=1<br />
m�<br />
s.t.<br />
j=1<br />
n�<br />
i=1<br />
xij = 1,i = 1,...,n (9)<br />
aijxij ≤ bj,j = 1,...,m (10)<br />
xij ∈ {0,1},i = 1,...,n,j = 1,...,m<br />
I vincoli (9) impongono che ogni oggetto sia assegnato ad un ed un solo<br />
contenitore, mentre le disuguaglianze (10) impongono il vincolo sulla<br />
capacità dei contenitori.<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 14<br />
Si considerino i seguenti tre Rilassamenti del problema AG:<br />
- <strong>Rilassamento</strong> <strong>Lagrangiano</strong> rispetto ai vincoli (9):<br />
z(L1(λ)) = min n � m�<br />
(cij −λi)xij +<br />
i=1j=1<br />
n �<br />
λi<br />
i=1<br />
n�<br />
s.t.<br />
i=1<br />
aijxij ≤ bj,j = 1,...,m<br />
xij ∈ {0,1},i = 1,...,n,j = 1,...,m<br />
- <strong>Rilassamento</strong> <strong>Lagrangiano</strong> rispetto ai vincoli (10):<br />
z(L2(µ)) = min n � m�<br />
(cij +aijµj)xij −<br />
i=1j=1<br />
m �<br />
µjbj<br />
j=1<br />
s.t. m �<br />
j=1<br />
xij = 1,i = 1,...,n<br />
xij ∈ {0,1},i = 1,...,n,j = 1,...,m<br />
µj ≥ 0,j = 1,...,m<br />
- <strong>Rilassamento</strong> <strong>Lagrangiano</strong> rispetto ai vincoli (9) e (10):<br />
z(L3(λ,µ)) = min n � m�<br />
(cij −λi+aijµj)xij +<br />
i=1j=1<br />
n �<br />
λi−<br />
i=1<br />
m �<br />
µjbj<br />
j=1<br />
s.t. xij ∈ {0,1},i = 1,...,n,j = 1,...,m<br />
µj ≥ 0,j = 1,...,m<br />
Siccome L2 e L3 soddisfano la proprietà di integralità e possono essere<br />
facilmente risolti per ispezione. Si ha z(DL2 ) = z(DL3 ) = z(LP).<br />
Per quanto riguarda L1, si ha z(DL1 ) ≥ z(LP). Si noti che la<br />
risoluzione di L1(λ) coinvolge la risoluzione di m problemi di knapsack.<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 15<br />
Risoluzione del <strong>Lagrangiano</strong> Duale<br />
Teorema La Funzione Lagrangiana è concava.<br />
✻<br />
z(L(λ)) = z(L(αλ 1 +(1−α)λ 2 ))<br />
z(L(λ 1 ))<br />
λ1 λ2 λ = αλ1 +(1−α)λ 2<br />
z(L(λ 2 ))<br />
αz(L(λ 1 ))+(1−α)z(L(λ 2 ))<br />
αz(L(λ 1 ))+(1−α)z(L(λ 2 )) ≤ z(L(λ)).<br />
Subgradiente<br />
Un vettore s è detto subgradiente di L(λ) in λ se soddisfa:<br />
✻<br />
z(L(λ)) ≤ z(L(λ))+s(λ−λ)<br />
z(L(λ))+s(λ−λ))<br />
z(L(λ))<br />
λ λ<br />
z(L(λ))<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori<br />
✲<br />
✲
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 16<br />
Il <strong>Lagrangiano</strong> Duale<br />
(DL) z(DL) = max<br />
λ≥0<br />
[z(L(λ))]<br />
potrebbe essere risolto come un problema di Programmazione Lineare<br />
Continua, ma spesso risulta molto oneroso dal punto di vista computazionale.<br />
Per risolvere DL si usano perciò altri metodi, di tipo euristico, fra i<br />
quali l’ottimizzazione subgradiente.<br />
1. Calcola la funzione z(L(λ)) per λ dato.<br />
2. Calcola un subgradiente s in λ;<br />
<strong>3.</strong> λ := λ+θs (un passo nella direzione del subgradiente)<br />
4. Se non è attivo un criterio di arresto, then goto 1.<br />
Il metodo genera una sequenza finita di vettori λ 1 ,λ 2 ,...,λ k e di valori<br />
z(L(λ 1 )), z(L(λ 2 )), ...,z(L(λ k ))<br />
N.B. i valori z(L(λ i )) non sono monotoni !<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 17<br />
Calcolo del subgradiente<br />
Dato λ sia x la soluzione di RL(λ), ovvero<br />
Per un generico λ si ha che<br />
z(L(λ)) = cx−λ(Ax−b) (11)<br />
z(L(λ)) = min<br />
x∈X (cT x−λ(Ax−b)) ≤ cx−λ(Ax−b) (12)<br />
Sottraendo dalla (12) la (11) si ottiene:<br />
ovvero<br />
z(L(λ))−z(L(λ)) ≤ −(λ−λ)(Ax−b)<br />
z(L(λ)) ≤ z(L(λ))−(Ax−b)(λ−λ)<br />
ne segue che s = −(Ax−b) è un subgradiente di z(L(λ)) in λ.<br />
Affinche z(L(λ)) sia maggiore di z(L(λ)) è necessario che:<br />
−(Ax − b)(λ − λ) > 0, ovvero, è necessario muoversi nella direzione<br />
del subgradiente:<br />
λ = λ+θs, θ > 0<br />
Il problema (non facile) è quello di determinare il valore di θ.<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 18<br />
Metodo del Subgradiente<br />
Indichiamo in forma di sommatoria i vincoli Ax ≥ b, ovvero,<br />
n�<br />
j=1<br />
aijxj ≥ bi, i = 1,...,m1.<br />
Algoritmo Subgradiente<br />
Step 1. Sia α un parametro predefinito. Poni LB = −∞.<br />
Sia inoltre z(UB) il costo di una soluzione euristica al problema.<br />
Si ponga λi = 0,i = 1,...,m1.<br />
Step 2. Si risolva il problema L(λ).<br />
Sia x ∗ la soluzione ottima di L(λ) di costo z(L(λ)).<br />
Poni LB = max[LB,L(λ)]. Se Ax ∗ ≥ b e λ(Ax ∗ −b) = 0<br />
allora x ∗ è la soluzione ottima di P.<br />
Step <strong>3.</strong> Siano si, i = 1,...,m1, i subgradienti per i vincoli rilassati,<br />
calcolati come:<br />
si = bi− n �<br />
j=1<br />
aijx ∗ j , i = 1,...,m1.<br />
Step 4. θ = α[z(UB)−z(L(λ))] / m1<br />
�<br />
s<br />
i=1<br />
2 i .<br />
Step 5. Si aggiornino le Penalita’ Lagrangiane nel seguente modo:<br />
λi = max[0,λi+θsi], i = 1,...,m1.<br />
Vai allo Step 2.<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 19<br />
In genere 0 < α ≤ 2.<br />
Osservazioni<br />
Il valore di α va opportunatamente ridotto (α = α/2) se per ∆<br />
iterazioni risulta z(L(λ)) ≤ LB. In genere ∆ = 20.<br />
In generale è necessario imporre un numero massimo di iterazioni<br />
all’algoritmo in quanto non vi è nessuna garanzia sulla sua terminazione.<br />
Il lower bound z(L(λ)) prodotto ad una generica iterazione può essere<br />
inferiore al lower bound prodotto all’iterazione precedente.<br />
Il lower bound LB tende a crescere rapidamente durante le primi<br />
iterazioni dell’algoritmo per poi convergere lentamente verso z(DL).<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 20<br />
Set Covering<br />
Si consideri il problema di Set Covering dell’esercizio <strong>3.</strong><br />
Una possibile iterazione del Metodo Subgradiente è la seguente.<br />
Step 1. Poni α = 2.<br />
Poni z(UB) = 6 (soluzione euristica ottenuta ponendo<br />
x1 = x3 = 1, x2 = x4 = 0).<br />
Poni λ1 = 1.5, λ2 = 1.6 e λ3 = 2.2.<br />
Step 2. La soluzione di L(λ) è x ∗ 1 = 1 e x ∗ 2 = x ∗ 3 = x ∗ 4 = 0<br />
con z(L(λ)) = 4.2<br />
Step <strong>3.</strong> Le equazioni per il subgradiente sono:<br />
s1 = (1−x ∗ 1 −x∗3 ) = 0<br />
s2 = (1−x ∗ 1 −x∗4 ) = 0<br />
s3 = (1−x ∗ 2 −x∗ 3 −x∗ 4) = 1<br />
Step 4. θ = 2(6−4.2)<br />
(0 2 +0 2 +1 2 )<br />
= <strong>3.</strong>6<br />
Step 5. L’aggiornamento delle penalità Lagrangiane produce:<br />
λ1 = max(0,1.5+<strong>3.</strong>6(0)) = 1.5<br />
λ2 = max(0,1.6+<strong>3.</strong>6(0)) = 1.6<br />
λ3 = max(0,2.2+<strong>3.</strong>6(1)) = 5.8<br />
L’iterazione successiva produce:<br />
x∗ 1 = x∗2 = x∗3 = x∗4 = 1 con z(L(λ)) = −0.7 (< 4.2).<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 21<br />
Rilassamenti con vincoli di tipo diverso<br />
Si consideri il seguente problema P di programmazione lineare a<br />
numeri interi:<br />
(P) z(P) = min c T x<br />
s.t. A1x ≥ b1<br />
A2x ≤ b2<br />
A3x = b3<br />
Bx ≥ d<br />
x ∈ {0,1}<br />
(13)<br />
(14)<br />
(15)<br />
dove A1 è una matrice m1×n, A2 è una matrice m2×n ed A3 è una<br />
matrice m3 ×n.<br />
Il rilassamento <strong>Lagrangiano</strong> del problema P secondo i vincoli (13),<br />
(14) e (15) è il seguente:<br />
(L(λ,µ,ω)) z(L(λ,µ,ω) = min c T x−λ(A1x−b1)+<br />
s.t. µ(A2x−b2)−ω(A3x−b3)<br />
Bx ≥ d<br />
x ∈ {0,1}<br />
λ,µ ≥ 0<br />
- λ: vettore di dimensione m1 associato ai vincoli (13);<br />
- µ: vettore di dimensione m2 associato ai vincoli (14);<br />
- ω: vettore (libero) di dimensione m3 associato ai vincoli (15);<br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori
<strong>Rilassamento</strong> <strong>Lagrangiano</strong> AA 2009/10 22<br />
Nel caso del problema P lo Step 5 del Metodo del Subgradiente si<br />
modifica come segue:<br />
Calcolo dei subgradienti (Step 3):<br />
- Gi = b1 i − n �<br />
a<br />
j=1<br />
1 ijx ∗ j, i = 1,...,m1;<br />
- Fi = b2 i − n �<br />
a<br />
j=1<br />
2 ijx ∗ j, i = 1,...,m2;<br />
- Hi = b3 i − n �<br />
a<br />
j=1<br />
3 ijx ∗ j, i = 1,...,m<strong>3.</strong><br />
Calcolo dello step T (Step 4):<br />
θ =<br />
m1 �<br />
G<br />
i=1<br />
2 i<br />
α(z(UB)−L(λ))<br />
m2 �<br />
+<br />
i=1<br />
F 2<br />
i<br />
m3 �<br />
+ H<br />
i=1<br />
2 i<br />
(16)<br />
Per quanto riguarda l’aggiornamento delle penalità Lagrangiane si<br />
ha (Step 5):<br />
- A1x ≥ b1: λi = max[0,λi+θGi], i = 1,...,m1;<br />
- A2x ≤ b2: µi = max[0,µi+θFi], i = 1,...,m2;<br />
- A3x ≤ b3: ωi = ωi +θHi, i = 1,...,m<strong>3.</strong><br />
Modelli per le Decisioni - M. Dell’Amico/M. Iori