Sei sulla pagina 1di 12

Il rilassamento Lagrangiano nella soluzione di problemi di programmazione lineare intera

Alessandro Agnetis, Paolo Detti January 24, 2012

La tecnica Lagrangiana

Lapplicazione di algoritmi di enumerazione implicita a problemi di programmazione lineare intera (PLI) ` basata sulla possibilit` di avere, ad ogni nodo dellalbero di enumere a azione, un bound sul valore della soluzione ottima. Il metodo pi` immediato per calcolare u tale bound consiste nel risolvere un problema di programmazione lineare (PL) ottenuto rilassando i vincoli di interezza delle variabili. Tuttavia, esistono altri approcci. In questa dispensa vogliamo presentare lapproccio Lagrangiano, che ` impiegato con successo in e molti algoritmi di soluzione per un numero molto ampio di problemi di PLI. Lintuizione alla base dellapproccio Lagrangiano consiste nel vedere un problema di programmazione lineare intera dicile come un problema facile, complicato per` da o un insieme, in genere di dimensione ridotta, di vincoli ulteriori. Il rilassamento Lagrangiano consiste nelleliminazione di tali vincoli indesiderati e nellinserimento di questi nella funzione obiettivo, in modo tale da tenerne comunque conto nella soluzione del problema rilassato. Si consideri il seguente problema di Programmazione Lineare Intera P LI1 : min cT x Ax b Cx d n x Z+ (1) (2) (3) (4)

dove A e C sono matrici di dimensioni, rispettivamente, m n e m1 n, b e d sono vettori n di dimensioni, rispettivamente, m e m1 , mentre c e x sono vettori di dimensione n, e Z+ denota linsieme dei vettori a valori interi non negativi. Supponiamo che i vincoli Ax b siano quelli che complicano la risoluzione del problema, nel senso che, mentre P LI1 ` un e problema di dicile risoluzione, risulta facile risolvere il problema ottenuto inserendo nella funzione obiettivo i vincoli (2) nel seguente modo:
Dipartimento di Ingegneria dellInformazione - Universit` di Siena, via Roma, 56 - 53100 Siena (Italy), a e-mail: detti@dii.unisi.it

min cT x T (Ax b) Cx d n x Z+

(5) (6) (7)

m Nella (5), R+ ` denominato vettore dei moltiplicatori di Lagrange. Il problema e (5)(7) ` detto problema Lagrangiano e la funzione e n L() = min{cT x T (Ax b) : Cx d, x x Z+ }

(8)

` denominata funzione Lagrangiana. Il problema Lagrangiano ha la propriet` che per ogni e a 0 ssato, la soluzione ottima costituisce un lower bound sullottimo del problema originario (un upper bound se il problema originario ` di massimo): e Proposizione 1 Sia z(P LI1 ) il valore della soluzione ottima di P LI1 . Per ogni vettore m non negativo R+ , si ha L() z(P LI1 )
T

(9)

Dim. Poich per ogni soluzione ammissibile di P LI1 si ha Ax b e 0, allora e (Ax b) 0. Quindi, per ogni ssato vettore di moltiplicatori, si ha:
n z(P LI1 ) = min{cT x : Ax b, Cx d, x Z+ } n min{cT x T (Ax b) : Ax b, Cx d, x Z+ } n min{cT x T (Ax b) : Cx d, x Z+ } = L()

dove lultimo passaggio ` dovuto al fatto che, rimuovendo i vincoli Ax b, si eettua un e allargamento della regione ammissibile del problema. Si noti che abbiamo supposto 0 in quanto nel problema originario i vincoli che rendono il problema dicile sono disuguaglianze. Se invece i vincoli da rilassare sono di e uguaglianza, il problema originario (P LI1 ) `: min cT x Ax = b Cx d n x Z+ (10) (11) (12) (13)

e indicando con z(P LI1 ) il valore della soluzione ottima di tale problema, si ha il seguente risultato, del tutto analogo al precedente: Proposizione 2 Per ogni vettore Rm , si ha L() z(P LI1 ) (14)

Dim. Pressoch identica a quella precedente, viene lasciata per esercizio. e Poich, per ogni valore del vettore , L() costituisce un lower bound sul valore di e z(P LI), siamo interessati a cercare quel vettore che d` luogo al migliore lower bound a ottenibile con questo approccio. Si tratta quindi di risolvere il seguente problema di ottimizzazione, denominato duale Lagrangiano: L( ) = max{L() : 0}. (15)

Con riferimento al problema P LI1 , ` interessante andare a valutare quale relazione e sussiste tra i bound ottenibili con il rilassamento lineare e con quello Lagrangiano. Indicando con P L1 il rilassamento lineare del problema P LI1 , e con z(P L1 ) il valore della sua soluzione ottima, vale il seguente risultato. Teorema 1 Sia L() la funzione Lagrangiana ottenuta da P LI1 eettuando il rilassamento Lagrangiano dei vincoli Ax b, e sia L( ) il valore ottimo del duale Lagrangiano. Vale la condizione: L( ) z(P L1 ) Dim. L( ) = = =
n max{min{cT x T (Ax b) : Cx d, x Z+ } : 0} max{min{cT x T (Ax b) : Cx d, x 0} : 0} max{min{(cT T A)x + T b : Cx d, x 0} : 0} max{min{(cT T A)x T (Cx d) + T b : x 0} : , 0} max{min{(cT T A T C)x + T d + T b : x 0} : , 0}

(16)

(17)

ora, nel problema di minimo in (17), x non ` soggetto ad altri vincoli oltre a quelli di non e negativit`. Dunque, se e sono tali che almeno una componente, e.g. la j-esima, del a vettore (cT T A T C) risulta negativa, il minimo della funzione obiettivo pi` interna u sarebbe (per xj +), e dunque certamente il max non si ottiene per quei valori di e . Quindi, gli unici valori di e per i quali ha senso calcolare il minimo di (cT T A T C)x + T d + T b sono quelli per cui cT T A T C 0. Inoltre, in tal caso il problema di minimo ` banalmente risolto ponendo x = 0, con il che la funzione e T T obiettivo vale d + b. In denitiva, si ha: = max{T d + T b : cT T A T C 0 : , 0} questultimo ` un problema di programmazione lineare. Scrivendone il duale, per la e dualit` forte si ha: a = min{cT x : Ax b, Cx d, x 0} = z(P L1 ). La Proposizione 1 stabilisce, quindi, che il bound ottenibile con il rilassamento Lagrangiano ` almeno tanto buono quanto quello ottenibile con il rilassamento lineare, e e giustica quindi, almeno in linea teorica, limpiego dei bound Lagrangiani nella messa a punto di algoritmi di enumerazione implicita di tipo branch and bound. Lecacia pratica del rilassamento Lagrangiano ` legata ovviamente alla ecienza con cui si riesce e a risolvere il duale Lagrangiano. 3

Condizioni di ottimalit` per il problema Lagrangiano a

` E noto che se, andando a risolvere il rilassamento lineare di un problema intero, la soluzione ottima risulta intera, questa ` anche ammissibile per il problema intero e quindi e ottima. Ci si pu` chiedere se unanaloga situazione si pu` presentare nel caso del rilassao o mento Lagrangiano. Se, per un dato valore di , la soluzione del problema Lagrangiano ` ammissibile anche e per il problema originario (se, cio`, rispetta i vincoli rilassati (2)) non si pu` aermare e o che tale soluzione sia ottima per P LI1 , in quanto le funzioni obiettivo dei due problemi sono diverse. Vale per` la seguente condizione. o Proposizione 3 Sia L() la funzione Lagrangiana ottenuta da P LI1 eettuando il rilassamento Lagrangiano dei vincoli Ax b. Se, per un ssato valore dei moltiplicatori, si ha che: i. La soluzione ottima x () del problema Lagrangiano ` ammissibile per P LI1 ; e ii. e x () vericano la condizione di complementarit` a T (Ax () b) = 0 allora x () ` una soluzione ottima anche per il problema P LI1 . e Dim. Per denizione, L() = min{cT x T (Ax b)}. Dalla condizione ii, si ha che L() = cT x (). Inoltre poich L() cT x per ogni soluzione ammissibile x di P LI1 , e e poich x () ` ammissibile per P LI1 , si deduce che x () ` una soluzione ottima per e e e P LI1 . La proposizione precedente vale, in generale, per il rilassamento Lagrangiano di vincoli di disuguaglianza. Se per un dato problema si eettua, invece, il rilassamento Lagrangiano e e di vincoli di uguaglianza (problema P LI1 ), poich la condizione ii ` sempre soddisfatta, condizione suciente di ottimalit` per il problema originario ` che la soluzione x () del a e problema Lagrangiano sia ammissibile per P LI1 . (18)

Soluzione del duale Lagrangiano

Si consideri il problema Lagrangiano (8), e sia X linsieme (supponiamo nito) di punti n interi che soddisfano i vincoli del problema, ossia X {x1 , . . . , xK } {Cx d, x Z+ }. k Per un dato , in ciascun punto x il valore della funzione lagrangiana ` evidentemente e T T k T dato da (c A)x + b, e quindi L() sar` dato dal pi` piccolo di tali valori, vale a a u dire: L() = max v v (cT T A)xk + T b, 0 (19) (20) (21)

k = 1, . . . , K

Dunque, la funzione Lagrangiana L : L() ` denita dalla frontiera inferiore e di un insieme composto da un insieme nito di funzioni lineari (in ), e risulta quindi continua, lineare a tratti e concava. A scopo illustrativo, la gura 3 mostra landamento di L() per il caso monodimensionale (m = 1), in cui quindi vi ` un solo vincolo aT x b, e 1 5 e ` scalare. In questo esempio, X contiene 5 punti (x , . . . , x ). e

Figura 1: Andamento di L(). Consideriamo allora il problema di calcolare il massimo della funzione L(). Si noti che L() ` una funzione continua ma non dierenziabile. Per risolvere tale problema, e lapproccio pi` utilizzato ` un metodo molto usato per funzioni continue ma non dierenu e ziabili, noto come metodo del subgradiente. Com` noto, se f () ` una funzione concava dierenziabile in , e si indica con f () e e il suo gradiente, per qualsiasi altro punto vale la f () f () f ()T ( ) (22) Se invece f non ` dierenziabile in , tale propriet` evidentemente non sussiste pi`. e a u m Data quindi una f () concava, e un punto R in cui la f non ` dierenziabile, un e subgradiente di f in ` un vettore s Rm tale che per qualsiasi altro punto Rn si ha e f () f () sT ( ) (23) Si noti che vi possono essere molti vettori s che soddisfano la (23). Se f fosse dierenziabile in , il suo unico subgradiente in sarebbe il gradiente f (). Dalla denizione di subgradiente si pu` peraltro dedurre che ` un punto di massimo per la funzione f () o e se 0 ` un subgradiente di f in . Dalla (22) segue infatti che f () f ( ) 0T ( ) e Rn , e quindi f ( ) f () per qualsiasi altro Rn . per tutti i Il metodo del subgradiente per il calcolo di consiste nel generare una successione di valori (0) , (1) , . . . , (h) , . . . convergente a , in cui (h+1) = (h) + (h) d(h) (24) dove d(h) ` un subgradiente di L() in (h) , e (h) un passo opportunamente specicato. e Si pu` dimostrare che questo semplice algoritmo converge a , purch il passo sia scelto o e con una certa attenzione. 5

3.1

Scelta del subgradiente

La seguente proposizione determina un subgradiente per la funzione Lagrangiana (8).


n Teorema 2 Siano (h) Rm e x(h) Z+ due vettori tali che

L((h) ) = min{cT x (h) (Ax b) : Cx d, x {0, 1}n } = = cT x(h) (h) (Ax(h) b) allora il vettore (b Ax(h) ) ` un subgradiente di L() in (h) . e Dim. Per un generico vettore si ha L() = min{cT x T (Ax b) : Cx d, x {0, 1}n } cT x(h) T (Ax(h) b) = = cT x(h) (h) (Ax(h) b) ( (h) )T (Ax(h) b) = = L((h) ) + ( (h) )T (b Ax(h) ) cio` e ( (h) )T (b Ax(h) ) L() L((h) )
T T

(25) (26)

(27) (28) (29) (30)

Ricordando la denizione di subgradiente (23), si ha dunque che (b Ax(h) ) ` un subgrae (h) diente di L() in . Questo teorema mostra dunque che un subgradiente ` dato dal valore dei (termini di e sinistra dei) vincoli che abbiamo rilassato, ed ` quindi calcolabile molto facilmente. e

3.2

Scelta del passo

La dicolt` principale nella messa a punto del metodo del subgradiente riguarda la scelta a del passo (h) . Il modo con cui tale scelta ` realizzata determina la convergenza o meno e della sequenza di punti (h) ad un punto di massimo , e, nel caso in cui si abbia tale convergenza, ne inuenza notevolmente la velocit`. In particolare, si pu` dimostatre [2] a o che se la sequenza (h) soddisfa le condizioni:
t h=0

lim (h) = 0 (h) = +

(31) (32)

allora la successione di punti {(h) } generata scegliendo a ogni passo la direzione s(h) /||s(h) ||, converge a . In pratica, si richiede che la lunghezza del passo tenda a zero (31), ma non troppo rapidamente (32).

Algoritmo del subgradiente Input: funzione da massimizzare L(), punto iniziale 0 , massimo numero di iterazioni senza miglioramento K 1. Inizializzazione h := 1. 2. Per un dato valore (h) , calcola la soluzione x(h) del problema Lagrangiano (5)(7). 3. s(h) := b Ax(h) . Se s(h) = 0, STOP 4. (h) :=
BL((h1) ) ||s(h) ||2
(h)

s 5. (h+1) := (h) + (h) ||s(h) ||

6. h := h + 1 7. Se il lower bound non ` migliorato nelle ultime K iterazioni, STOP, altrimenti vai al passo e 2.

Figura 2: Algoritmo del subgradiente In pratica, dato un subgradiente s(h) , si pu` dimostrare che una scelta della lunghezza o del passo (h) che soddisfa le condizioni (31) e (32) ` dato dalla relazione [2, 1]1 e (h) = B L((h) ) ||s(h) ||2 (33)

dove per B si pu` scegliere il valore di una soluzione ammissibile del problema originario o (meglio se di buona qualit`).In Figura 2 ` riportato un possibile schema dellalgoritmo del a e subgradiente. Lalgoritmo del subgradiente ` garantito convergere al vettore ottimo dei e moltiplicatori di Lagrange . I maggiori incovenienti del metodo sono il comportamento oscillatorio dei lower bound generati (la serie di lower bound generati non `, infatti, e monotonicamente crescente) e la bassa velocit` di convergenza (lineare). Tuttavia, per a la sua facilit` di implementazione e per la buona qualit` dei bound prodotti (anche in a a termini di velocit` di calcolo della singola iterazione), tale metodo ` uno dei pi` utilizzati. a e u
1

Una formula pi` generale della (33) ` u e (h) = h B L((h) ) ||s(h) ||2

dove h ` uno scalare che nelle prime iterazioni vale 2, e poi viene fatto decrescere. Questo rende la e convergenza tipicamente pi` veloce. u

Esempio: il problema del commesso viaggiatore simmetrico

Vediamo ora una delle applicazioni pi` ecaci della tecnica lagrangiana: quella alla u soluzione del problema del commesso viaggiatore simmetrico (Symmetric Traveling Salesperson Problem, STSP). Ricordiamo che il problema ` il seguente: dato un grafo completo e G(V, E), per ogni arco e E ` denito un costo ce per andare da un estremo allaltro di e tale arco. Il problema consiste nel cercare il ciclo hamiltoniano (ossia, il ciclo passante esattamente una volta per ciascun nodo) di costo totale minimo. Nella formulazione che segue, indichiamo con n = |V | il numero di nodi, S un sottoinsieme di nodi, E(S) linsieme degli archi con entrambi gli estremi in S, e con (S) linsieme degli archi aventi un estremo in S e laltro in V \ S (quando S consiste di un solo nodo i, si ha (i), ossia la stella incidente il nodo i). Il problema pu` essere formulato come segue: o z = min
eE

ce xe xe = 2,
e(i)

(34) iV 2 |S| n 1 (35) (36) (37)

xe |S| 1,
eE(S)

x {0, 1}|E|

dove i vincoli (35) indicano che ciascun nodo deve essere incidente esattamente due archi del ciclo, mentre i vincoli (36) sono i subtour elimination constraints: ciascun sottografo con S nodi non pu` contenere pi` di |S| 1 archi del ciclo, e dunque non si possono o u formare sottocicli in S. ` E importante fare due osservazioni. Anzitutto, bastano i vincoli (35) a garantire il fatto che il ciclo conterr` esattamente n archi: infatti, sommando le (35) per i = 1, . . . , n, a considerando che ciascun arco {i, j} appartiene a due sole stelle incidenti, ossia (i) e (j), si ottiene
n

xe = 2
i=1 e(i) eE

xe = 2n

(38)

Unaltra osservazione riguarda il numero di vincoli (36). Tali vincoli sono chiaramente O(2n ). Tuttavia, la met` di essi ` superua. Infatti, consideriamo un nodo arbitrario, a e sia esso il nodo 1. Chiaramente, met` dei possibili sottoinsiemi di nodi contengono 1 e a laltra met` non lo contengono. Se scriviamo i vincoli (36) soltanto per i sottoinsiemi S a che non contengono 1, riusciamo ancora a impedire la formazione dei sottocicli. Infatti, immaginiamo di avere una soluzione ammissibile per il problema (3437) che rispetti solo questi vincoli, e supponiamo per assurdo che essa non sia un ciclo hamiltoniano. Se non ` un ciclo hamiltoniano, per via dei vincoli (35) ` comunque una collezione di almeno 2 e e sottocicli, di cui quindi almeno uno non contiene il nodo 1: ma allora il corrispondente subtour elimination constraint risulterebbe violato, un assurdo. Dunque, possiamo riscrivere la formulazione del problema di STSP in questo modo: z = min
eE

ce xe 8

(39)

xe = 2
e(1)

(40) i V \ {1} 2 |S| n 1, 1 S (41) (42) (43) (44)

xe = 2,
e(i)

xe |S| 1,
eE(S)

xe = n
eE

x {0, 1}|E|

Si noti che il vincolo (43) non sarebbe necessario, ma il suo ruolo sar` chiaro tra poco. a Prima di applicare il rilassamento Lagrangiano al problema (3944), introduciamo una denizione. Si consideri un grafo non orientato G(V, E), con i nodi numerati 1, 2,..,n. Deniamo 1-albero un sottoinsieme T di archi avente le seguenti propriet`: a T contiene n archi esattamente due archi di T incidono il nodo 1, siano essi e ed f Linsieme T \ {e, f } non contiene cicli. In altre parole, un 1-albero ` un albero ricoprente per il sottografo costituito dai nodi e {2, 3, . . . , n}, cui si aggiungono due archi di (1) (questi archi quindi necessariamente formeranno un ciclo con gli altri). Se gli archi del grafo sono pesati, si pu` considerare o il problema di determinare l1-albero di peso minimo. Questo problema pu` risolversi o facilmente applicando un qualsiasi algoritmo per il calcolo dellalbero di costo minimo sul sottografo costituito dai nodi {2, 3, . . . , n}, e aggiungendo poi semplicemente i due archi meno costosi incidenti il nodo 1. Tornando alla formulazione (3943), rilassiamo gli n 1 vincoli (41), ottenendo cos` il problema Lagrangiano:
n

L() = min
eE

ce xe
i=2

i (
e(i)

xe 2)

(45) (46)

xe = 2
e(1)

xe |S| 1,
eE(S)

2 |S| n 1, 1 S

(47) (48) (49)

xe = n
eE

x {0, 1}|E|

` facile rendersi conto che le soluzioni ammissibili per questo problema sono precisamente e tutti gli 1-alberi del grafo. Dunque, in questo caso il problema Lagrangiano consiste nel determinare l1-albero di costo minimo, laddove, dalla (45), il peso di un arco e = {i, j} ` dato da e c e i j . 9 (50)

Dato , se x ` la soluzione ottima del corrispondente problema Lagrangiano, in base al e Teorema 2 come subgradiente s possiamo prendere un vettore la cui i-esima componente ` data da e si = 2
e(i)

xe
e(i) n

(51)

dove, si noti, Si noti che ||s||2 =

xe ` il numero di archi dell1-albero incidenti il nodo i (i = 2, . . . , n). e xe 2)2

(
i=2 e(i)

(52)

Esempio 1 (tratto da [3]). Si consideri un grafo G = (N, E) costituito da 5 nodi, e con matrice dei costi data da

30 26 50 40

30 24 40 50

26 24 24 26

50 40 24 30

40 50 26 30

Una soluzione (trovata euristicamente, ad esempio) ` quella mostrata in gura 3, di e valore 148.

Figura 3: Un ciclo hamiltoniano di costo 148. Consideriamo ora, come vettore iniziale di moltiplicatori, (0) = (0 0 0 0). (Poich il e vincolo relativo al grado del nodo 1 non viene rilassato, per mantenere la corrispondenza coi nodi numeriamo i moltiplicatori da 2 a 5.) In tal caso, si noti, il problema Lagrangiano equivale al problema originario dal quale sono cancellati i vincoli (41). Risolvendo il problema Lagrangiano, si ottiene l1-albero in gura 4, di costo pari a 130. Dunque, questo ` un lower bound per il valore della soluzione ottima del problema (3437). e Ora, applichiamo il metodo del subgradiente per aggiornare il vettore dei moltiplicatori. Poniamo B = 148, valore della soluzione nota. Dalla (51) e dalla gura 4, si vede che il 10
T

Figura 4: Soluzione del problema Lagrangiano con (0) = (0 0 0 0). subgradiente ` dato da s(1) = (0 2 1 1)T , e dunque ||s(1) ||2 = 0 + 4 + 1 + 1 = 6. Dalla e (24) si ha quindi

(1) =

0 0 0 0

148 130 6

0 2 1 1

0 6 3 3

Si tratta ora di aggiornare i costi nella funzione Lagrangiana, tramite la (50). Si ottiene la nuova matrice

30 32 47 37

30 30 37 47

32 30 27 29

47 37 27 24

37 47 29 24

Figura 5: Soluzione del problema Lagrangiano con (1) = (0 6 3 3).

11

Da questa possiamo calcolare dunque la soluzione ottima del nuovo problema Lagrangiano, (1) ossia L((1) ), in gura 5. Il valore di L((1) ) ` dato da 143+2 5 i = 143. Calcoliamo e i=2 ora il nuovo vettore di moltiplicatori, tenendo presente che nel nuovo 1-albero i gradi dei nodi 2,3,4 e 5 sono dati rispettivamente da 2,3,2,1 e dunque il nuovo subgradiente ` e (2) (2) 2 s = (0 1 0 1) e ||s || = 1 + 1 = 2:
(2) =

0 6 3 3

148 143 2

0 1 0 1

0 17/2 3 11/2

La nuova matrice dei costi diviene


30 34.5 47 34.5 30 32.5 37 44.5 34.5 32.5 29.5 29 47 37 29.5 21.5 34.5 44.5 29 21.5

e la nuova soluzione ottima ` indicata in gura 6. Si ottiene cos` L((2) ) = 147.5, che, e siccome tutti i dati sono interi, implica un lower bound di 148, il che dimostra che la soluzione iniziale di cui disponevamo era in realt` ottima. a

Figura 6: Soluzione del problema Lagrangiano con (2) = (0 17/2 3 11/2).

References
[1] M. Held, R. M. Karp, The traveling salesman problem and minimun spanning trees: Part II, Mathematical Programming, 1, 6288, 1971. [2] B. T. Polyak, Minimization of Unsmooth Functionals, Computational Mathematics and Mathematical Physics, 9, 1429, 1969. [3] L. A. Wolsey, Integer Programming, Wiley, 1998.

12

Potrebbero piacerti anche