Parte V: Rilassamento Lagrangiano

Documenti analoghi
Il rilassamento Lagrangiano nella soluzione di problemi di programmazione lineare intera

Rilassamento Lagrangiano

Rilassamento Lagrangiano

Parte IV: Matrici totalmente unimodulari

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

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

3.2 Rilassamenti lineari/combinatori e bounds

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

Tecniche di rilassamento

RICERCA OPERATIVA (a.a. 2018/19)

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

Introduzione ai grafi

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

METODI DELLA RICERCA OPERATIVA

Condizioni di Karush-Kuhn-Tucker e Programmazione Lineare

Branch-and-bound per TSP

Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities

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.

4.1 Localizzazione e pianificazione delle base station per le reti UMTS

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

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

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

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI

Problemi di Flusso: Il modello del Trasporto

Catene di Markov. 8 ottobre 2009

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I

Linguaggi e Grammatiche Liberi da Contesto

3.4 Metodo di Branch and Bound

Possibile applicazione

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

Il metodo dei Piani di Taglio (Cutting Planes Method)

5.3 Metodo dei piani di taglio

Soluzione. 2.1 Pianificazione multiperiodo della produzione energetica

Ricerca Operativa Problemi di ottimizzazione su reti di flusso e cammini minimi

Problemi, istanze, soluzioni

Gestione della produzione e della supply chain Logistica distributiva

Ottimizzazione Combinatoria 2 Presentazione

Transcript:

Parte V: Rilassamento Lagrangiano

Tecnica Lagrangiana Consideriamo il seguente problema di Programmazione Lineare Intera: P 1 min c T x L I Ax > b Cx > d x > 0, intera in cui A = matrice m x n C = matrice m 1 x n b = vettore di dimensione m d = vettore di dimensione m 1 x, c = vettori di dimensione n

Tecnica Lagrangiana Supponiamo che P 1 L I sia un problema difficile, e min c T x Cx > d x > 0, intera sia un problema facile. In altre parole, stiamo supponendo che i vincoli Ax > b siano quelli che complicano la risoluzione del problema.

Tecnica Lagrangiana Costruiamo allora un nuovo problema P 2 inserendo nella L I funzione obiettivo i vincoli complicati nel modo seguente: P 2 L I min c T x λ T (Ax b) Cx > d x > 0, intera λ R m = vettore dei moltiplicatori di Lagrange + P 2 L I = problema Lagrangiano L(λ) = min{c T x λ T (Ax b): Cx > d, x > 0, intera }= funzione Lagrangiana

Tecnica Lagrangiana Per ogni valore di λ > 0 fissato, la soluzione ottima del problema lagrangiano costituisce un bound duale sull'ottimo del problema originario. Infatti, il problema lagrangiano corrisponde ad un rilassamento (lagrangiano) del problema iniziale. Proposizione: Sia z* il valore della soluzione ottima di P 1 L I. Per ogni vettore non negativo λ si ha L(λ) < z*.

Tecnica Lagrangiana Dim. Per ogni soluzione ammissibile x di P 1 L I Ax > b Ax b > 0. Poiché λ > 0, abbiamo che λ T (Ax b) > 0. si ha Pertanto, per ogni vettore non negativo λ si ha z* = min{c T x : Ax > b, Cx > d, x > 0, intera} > min {c T x λ T (Ax b): Ax > b, Cx > d, x > 0, intera} > min {c T x λ T (Ax b): Cx > d, x > 0, intera} = L(λ).

Duale Lagrangiano L'obiettivo di questo approccio è quello di determinare il vettore λ* che fornisce il miglior lower bound L(λ*) per z*. Per calcolare λ* è necessario risolvere il seguente problema di ottimizzazione L(λ*) = max{l(λ): λ > 0}. denominato duale Lagrangiano. Perché si utilizza la denominazione di duale?

Duale Lagrangiano Consideriamo un problema lineare della forma PL = min{c T x : Ax > b, x > 0} ed applichiamo il rilassamento lagrangiano sui vincoli Ax > b L(λ) = min{(c T λa)x + λb: x > 0}. Il duale lagrangiano avrà la forma L(λ*) = max{l(λ): λ > 0}= max{min{(c T λa)x + λb: x > 0}, λ > 0}. Per λ fissato, se (c T λa) < 0 la corrispondente componente di x sarà posta a + e quindi L(λ) =. Poiché il duale lagrangiano è in forma di max ha senso considerare solo quei vettori λ per cui (c T λa) > 0. Pertanto il duale lagrangiano può essere riscritto nella forma L(λ*) = max{λb: (c T λa) > 0, λ > 0} che corrisponde proprio al duale di PL.

Rilassamento lagrangiano e rilassamento lineare Che relazione esiste tra il bound ottenibile con il rilassamento lineare z RL e quello ottenibile con il rilassamento lagrangiano L(λ*)? Teorema: L(λ*) > z RL. Pertanto il rilassamento lagrangiano è almeno tanto buono quanto il rilassamento lineare. Tuttavia l'efficacia del rilassamento lagrangiano è legata all'efficienza con cui si riesce a risolvere il duale Lagrangiano.

Condizioni di ottimalità per il rilassamento lagrangiano La soluzione ottima del rilassamento lagrangiano potrebbe non essere ammissibile per P 1 a causa dei vincoli rilassati. L I Inoltre, se anche la soluzione del rilassamento lagrangiano è ammissibile, non è detto che essa sia ottima per P 1. L I Proposizione(condizione sufficiente): Se, per un fissato valore di λ*, si ha che 1. La soluzione ottima x L * del problema lagrangiano è ammissibile per P 1 LI 2. (λ*) T (Ax L * b) = 0 allora x L * è una soluzione ottima anche per P 1 L I.

Condizioni di ottimalità per il rilassamento lagrangiano Dim: Per definizione, fissato λ, L(λ) = min{c T x λ T (Ax b)}. Dalla condizione 2, si ottiene che L(λ*) = c T x L *. Inoltre L(λ*) è un lower bound per l'ottimo di P 1 L I, ossia c T x L * = L(λ*) < c T x per ogni soluzione ammissibile x. Dalla condizione 1. sappiamo che x L * è ammissibile per P 1 L I pertanto deduciamo che x L * è anche ottima per P 1. L I e

Soluzione del duale lagrangiano Consideriamo il problema lagrangiano P 2 L I min c T x λ T (Ax b) Cx > d x > 0, intera e sia X = {x 1,..., x H } l'insieme di punti interi che soddisfano i vincoli di P 2 L I. Per un dato λ, in ciascun punto x h, la funzione lagrangiana assume il valore (c T λ T A)x h + λ T b, per h = 1,..., H. Pertanto, L(λ) = min {(c T λ T A)x 1 + λ T b, (c T λ T A)x 2 + λ T b,... (c T λ T A)x H + λ T b}

Pertanto Soluzione del duale lagrangiano L(λ) = max v v < (c T λ T A)x h + λ T b λ > 0 per h = 1,..., H Ricordiamo che: Una funzione f: R n R si dice concava se per ogni coppia x 1, x 2 R n e per ogni α, 0 < α < 1, risulta αf(x 1 ) + (1 α)f(x 2 ) < f(x 1 + (1 α)x 2 ). L(λ) è una funzione continua, lineare a tratti e concava.

Funzione lagrangiana per m = 1 L(λ) (c T λa T )x 4 + λ T b L(λ*) (c T λa T )x 3 + λ T b (c T λa T )x 2 + λ T b (c T λa T )x 1 + λ T b (c T λa T )x 5 + λ T b λ* λ

Soluzione del duale lagrangiano Pertanto risolvere il duale lagrangiano significa determinare il punto di massimo della funzione L(λ). Osserviamo che L(λ) è una funzione non differenziabile. Uno dei metodi più utilizzati per risolvere il duale lagrangiano è il metodo del subgradiente, che può essere applicato a funzioni continue ma non differenziabili.

Metodo del subgradiente Def: Data L(λ) concava e un punto λ R m in cui L non è differenziabile un subgradiente di L in λ è un vettore s R m tale che, per qualsiasi altro punto λ' R m, si ha L(λ') L(λ) < s T (λ' λ) Osservazione 1: Possono esistere molti vettori s che soddisfano la relazione precedente. Osservazione 2: Se L fosse differenziabile il suo unico subgradiente in λ sarebbe il suo gradiente L(λ). Osservazione 3: λ* è un punto di ottimo per la funzione L(λ) se 0 è un subgradiente di L in λ*.

Metodo del subgradiente Il metodo del subgradiente per il calcolo di λ* consiste nel generare una successione di valori λ (0), λ (1),..., λ (k), convergente a λ* in cui λ (k+1) = λ (k) + θ (k) d (k) con d (k) = direzione di spostamento θ (k) = passo opportunamente specificato Se il passo è scelto in maniera opportuna, l'algoritmo del subgradiente converge a λ*.

Scelta del subgradiente Teorema: Siano λ (k) R m e x (k) Z n + due vettori tali che L(λ (k) ) = min{c T x λ (k)t (Ax b): Cx > d, > 0, intera} = c T x (k) λ (k)t (Ax (k) b). Allora il vettore (b Ax (k) ) è un subgradiente di L(λ) in λ (k). Dim: Per un generico vettore λ risulta: L(λ) = min{c T x + λ T (b Ax): Cx > d, > 0, intera} < c T x (k) + λ T (b Ax (k) ) = c T x (k) + λ (k)t (b Ax (k) ) + (λ λ (k) )(b Ax (k) ) = L(λ (k) ) + (b Ax (k) )(λ λ (k) ) Dalla definizione di subgradiente segue la tesi.

Scelta del passo La scelta del passo θ (k) è fondamentale per la convergenza o meno ad un punto di massimo λ*. Inoltre, nel caso di convergenza, la scelta di θ (k) ne influenza notevolmente la velocità. Se la sequenza θ (k) soddisfa le condizioni lim θ (k) = 0 k + + θ (k) = + k=0 allora la successione {λ (k) } generata scegliendo d (k) = s (k) / s (k) converge a λ*.

Algoritmo del subgradiente Input: L(λ), λ (0) =punto iniziale, K MAX = massimo numero di iterazioni senza miglioramento 1. Inizializzazione k := 1. 2. Per un dato λ (k), calcola la soluzione x (k) del problema Lagrangiano. 3. s (k) := b Ax (k). Se s (k) = 0, STOP 4. θ (k) := (z UB L(λ (k 1) ))/ s (k) 5. λ (k+1) := λ (k) + θ (k) s (k) / s (k) 6. k := k + 1 7. Se il lower bound non è migliorato nelle ultime K MAX iterazioni, STOP, altrimenti vai al passo 2.

Esempio: TSP simmetrico Una delle applicazioni più efficaci della tecnica lagrangiana è quella del TSP simmetrico. Dati G = (V, E) grafo completo, V = n c ij = costo associato all'arco ij, per ogni ij E determinare un ciclo hamiltoniano su G di costo minimo. Per formulare il TSP simmetrico, definiamo S = sottoinsieme di nodi di V E(S) = archi con entrambi gli estremi in S δ(s) = archi con un estremo in S ed uno in V\S.

Esempio: TSP simmetrico Consideriamo le variabili binarie x ij ciclo hamiltoniano, x ij = 0 altrimenti. = 1 se l'arco ij appartiene al Formulazione: min c ij x ij ij E x ij = 2 ij δ(i) per ogni i V x ij < S 1 2 < S < n 1 ij E(S) x ij {0, 1} per ogni ij E

Esempio: TSP simmetrico I vincoli x ij = 2 ij δ(i) per ogni i V indicano che su ogni nodo del grafo devono incidere esattamente due archi del ciclo hamiltoniano. I vincoli x ij < S 1 2 < S < n 1 ij E(S) garantiscono che nessun sottografo indotto dai nodi in S contenga sottocicli. Tali vincoli sono in numero esponenziale (O(2 n ))!

Esempio: TSP simmetrico Tuttavia alcuni degli (O(2 n )) vincoli sono superflui. Infatti, consideriamo un nodo arbitrario, sia esso v = 1, e scriviamo i vincoli soltanto per i sottoinsiemi S che non contengono tale nodo. x ij < S 1 ij E(S) 2 < S < n 1, 1 S Una soluzione ammissibile per il TSP con questi vincoli corrisponde ancora ad un ciclo hamiltoniano. Se, per assurdo, non fosse un ciclo hamiltoniano dovrebbe contenere un sottociclo. In realtà, dai vincoli di uguaglianza deduciamo che dovrebbe contenere almeno due sottocicli. Di questi, uno sicuramente non conterrà il nodo v = 1. Ma allora, per questo sottociclo il vincolo precedente sarebbe violato!!!

Esempio: TSP simmetrico Pertanto possiamo riformulare il problema come segue: Formulazione: min c ij x ij ij E xij = 2 ij δ(1) x ij = 2 ij δ(i) x ij < S 1 ij E(S) per ogni i V 2 < S < n 1, 1 S x ij = n ij E x ij {0, 1} per ogni ij E

Esempio: TSP simmetrico Dato che il problema così formulato è difficile da risolvere, proviamo ad applicare il rilassamento lagrangiano rilassando gli n 1 vincoli di uguaglianza sui nodi Problema Lagrangiano: L(λ) =min c ij x ij λ i ( x ij 2) xij = 2 ij δ(1) ij E n i =2 ij δ(i) x ij < S 1 ij E(S) 2 < S < n 1, 1 S x ij = n ij E x ij {0, 1} per ogni ij E

Esempio: TSP simmetrico Le soluzioni ammissibili del problema lagrangiano sono tutti gli 1-alberi sul grafo iniziale in cui ogni arco ij ha peso c ij λ i λ j Pertanto, il problema lagrangiano è facile da risolvere. Ad una generica iterazione i, dato il moltiplicatore λ', scegliamo s (i) = 2 x' ij δ(i) ij dove x' è la soluzione ottima del corrispondente problema lagrangiano L(λ'). Osserviamo che n s 2 = ( x' ij 2) 2 i =2 ij δ(i)