La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Dualità in Programmazione Lineare Cap 4 Fischetti pg 51-72.

Presentazioni simili


Presentazione sul tema: "Dualità in Programmazione Lineare Cap 4 Fischetti pg 51-72."— Transcript della presentazione:

1 Dualità in Programmazione Lineare Cap 4 Fischetti pg 51-72

2 DUALITA’ HL cap 6 Risolvere il problema P: Min {cx : Ax=b, x  0}, vuol anche dire cercare la stima w il più possibile esatta del valore ottimo cx *, vale a dire w*,massimownon superiore a cx,  x  P cercare w*, ovverosia il massimo valore w che sia non superiore a cx,  x  P Possiamo quindi definire il problema equivalente D: Max w: w  cx,  x  P, w  R. NB Se P ha ottimo finito, l’ottimo di D deve avere uguale valore D ha un numero infinito di vincoli del tipo w  cx (dovendo limitare superiormente il costo di ogni soluzione x ammissibile di P) e assume valore in R, Cerchiamone formulazioni equivalenti + trattabili w cx 1 cx 2 cx j

3 Poichè l’ottimo di P sta su un vertice x v del politopo P, allora possiamo trasformare il sistema formato dall’insieme infinito di vincoli w  cx,  x  P in un sistema equivalente formato da un numero finito per i soli x vertici del politopo P, passando alla forma w  cx v,  v  V(P) Se P ha ottimo finito (z*=cx* > -  ) allora esiste una base ottima B tale che –c – c B A B -1 A  0 (costi ridotti non negative = condizione di ottimalità primale) –z* = c B A B -1 b (valore della soluzione di base associate alla base B) per cui posso riformulare il problema D come: Max {w: w  c B A B -1 b, c B A B -1 A  c per ogni base B} Introduco y  R m come la soluzione di base duale associata alla base B, y = c B A B -1, e riformulo il problema come determinare la y tale che w  y b y A  c

4 Teorema ( dell’alternativa o lemma di Farkas ): dato un problema di programmazione lineare z* = min {cx: x  P} dove P={x: Ax=b, x  0} allora vale che w  cx,  x  P  y  R m : y A  c w  yb  La disuguaglianza w≤cx è valida per il politopo P (w≤cx  x  P) se e solo se esiste un vettore y nello spazio delle colonne di A che sia una soluzione ammissibile per yA≤c, w≤yb Poichè x è ammissibile per P, ne segue che (per x≥0) yAx ≤ cx (per Ax=b) yb ≤ cx

5 Cercare Equivale a cercare Sono equivalenti i due problemi, P e D z* = min cx : Ax = b x  0, x  R n w* = max w : w  yb y A  c, y  R m w* = max w : w  cx,  x  P, w  R w* = max yb : y A  c, y  R m Quindi…

6 Corollario del Lemma di Farkas Dato P= min cx: Ax=b, x  0, D =max yb: yA  c Valgono alternativamente i due casi 1) Esiste un vettore v  R n : Av = b, v  0 (primale ammissibile) 2) Esiste una direzione d  R m : db > 0 e dA  0 Rappresentiamo nello spazio R m le due situazioni Nel primo caso è possibile includere b nel cono formato da alcune colonne di A, quindi non esiste un iperpiano di separazione che divide il semispazio in cui sta il vettore b da quello in cui stanno TUTTE le colonne di A. Nel secondo caso il vettore d, ortogonale al semipiano di separazione, è anche una direzione di miglioramento illimitata per il duale D, poichè ha prodotto scalare >0 con b ma  0 con le colonne di A b d b d Primale ammissibile Duale illimitato Primale vuoto A1A1 A2A2 A3A3 A3A3 A4A4 A4A4 A2A2 A5A5 A1A1

7 Coppie di problemi primale-duale Pillole per polli: l’allevatore Ha a disposizione 2 tipi di mangimi, A,B di costo c A,c B, di cui conosce i valori nutrizionali di proteine, carboidrati e vitamine Sono noti gli apporti nutrizionali minimi di una dieta per essere un “super=pollo” L’allevatore vuole la dieta super-pollo di costo minimo

8 Formalizzazione algebrica del problema Variabili: x A, x B  0 Vincoli: per ogni principio nutritivo, occorre raggiungere la soglia minima carb A x A + carb B x B  mincarb prot A x A + prot B x B  minprot vit A x A + vit B x B  minvit Funzione obiettivo: minimizzare la spesa Min c A x A + c B x B

9 Mangime AMangime BMinimo Giornaliero Carboidrati2214 Proteine4220 Vitamine139 Costo unitario 12001600? Esercizio Esercizio: formulare il problema con i dati seguenti

10 Il cugino chimico dell’allevatore ….. Sintetizza in garage pillole per polli di vitamine carboidrati e proteine… Che vuole vendere all’allevatore al massimo prezzo possibile Il cugino risolve un problema di equilibrio… Massimizzare il profitto restando sul mercato = essendo competitivo con i mangimi

11 Il cugino chimico risolve il problema Max mincarb y c + minprot y p + minvit y v : carb A y c + prot A y p + vit A y v  c A carb B y c + prot B y p + vit B y v  c B y c y p y v  0 Il vincolo 1 garantisce la concorrenza con il mangime A Il vincolo 2 garantisce la concorrenza con il mangime B

12 I due problemi P, D sono EQUIVALENTI (Fischetti 4.2-4.4) spazi decisionali diversi ma lavorano in spazi decisionali diversi x  R 2, y  R 3 Relazioni: A  R 3x2 è la matrice dei vincoli di P A T  R 2x3 è la matrice dei vincoli di D b  R 3 è il rhs di P, e il vettore dei costi di D c  R 2 è il vettore dei costi di P e il rhs di D

13 Tabella generale delle corrispondenze (duale in modo automatico) P (min cx) a i x  b i a i x  b i a i x = b i x j  0 x j  0 x j libera D (max yb) y i  0 y i  0 y i libera yA j  c j yA j  c j yA j = c j Una variabile D per ogni vincolo P e una variabile P per ogni vincolo D

14 esercizio Costruire il duale del problema della WindoorGlass in base alla tabella. Riusciamo a darne una interpretazione?

15 WindoorGlass, primale e duale PRIMALE Min -3 x A -5 x B : x A + x C = 4(a 1 2 x B + x D = 12(a 2 3 x A + 2 x B + x E = 18(a 3 x A, x B, x C, x D, x E  0 DUALE Max 4y 1 + 12y 2 + 18y 3 y 1 + 3y 3 ≤ -3(a 1 2 y 2 + 2y 3 ≤ -5(a 2 y 1 ≤ 0(a 3 y 2 ≤ 0(a 4 y 3 ≤ 0(a 5

16 Ma anche…. DUALE Max 3 x A + 5 x B : x A ≤ 4(a 1 2 x B ≤ 12(a 2 3 x A + 2 x B ≤ 18(a 3 PRIMALE Min 4y 1 + 12y 2 + 18y 3 y 1 + 3y 3 = 3(a 1 2 y 2 + 2y 3 = 5(a 2 y 1, y 2, y 3  0 Attraverso passaggi equivalenti si trasforma la coppia di problemi in una coppia in cui riconosciamo un nuovo primale e un nuovo duale. Possiamo interpretare il problema di dx come l’acquisizione da parte di un soggetto esterno delle ore disponibili dei 3 impianti (4 del primo, 12 del secondo, 18 del terzo), a fronte della spesa minima che garantisce uguale reddito al produttore, affinchè l’offerta del soggetto esterno sia competitiva con quanto il produttore guadagnerebbe se utilizzasse le ore disponibili per realizzare la propria produzione (punto di equilibrio).

17 Th dualita’ debole:  x  P,  y  D cx  yb Banalmente segue dalla tabella Th: idempotenza il duale del duale è il primale Per P= min {cx: Ax=b, x  0}, D= max {yb: yA  c} yb = yAx  cx Max yb  Min cx

18 Th: dualita’ forte dati P= min {cx: Ax=b, x  0}, D= max {yb: yA  c} con ottimo finito, allora Min cx = Max yb Corollario: sia x ammissibile per P, y ammissibile per D, Se vale che cx=yb  x e’ ottima per P, y e’ ottima per D. Max yb  Min cx cx*=y*b Oss il costo di una soluzione ammissibile a uno dei due problemi fornisce una STIMA ottimistica del valore OTTIMO dell’altro

19 Casi possibili P / DOttimo finito cx* F P =  Illimitato (-  ) Ottimo finito y*b cx* = y*bNO F D =  NOSI Illimitato (+  ) NOSINO

20 Th scarti complementari: anche detto “ condizioni di ortogonalità ” Th scarti complementari: anche detto “ condizioni di ortogonalità ” dati: x  P, y  D con P= min {cx: Ax=b, x  0}, D= max {yb: yA  c} se (c-ya)x=0  x e y sono ottime generalizzando date x,y ammissibili per P= min {cx: Ax  b, x  0}, D= max {yb: yA  c, y  0} Se (c-ya)x=0 e y(Ax-b)=0  x e y sono ottime Possiamo vedere in questa ottica il fatto che i prezzi ombra (variabili duali) delle risorse non esaurite all’ottimo siano 0

21 Simplesso duale (Fischetti 4.7) Consideriamo la coppia di problemi P e D P: Min cx : Ax=b, x  0 D: Max yb : yA  c P: min D: max n m =  x  0 A x b c c x y y b ATAT Tale che:

22 Ammissibilità e ottimalità duale Data una base B posso calcolare y = c B A B -1 la soluzione di base duale  analizzo la soluzione di base complementare associata nello spazio primale x= [A B -1 b, 0]) Per costruzione y soddisfa gli m vincoli in B (detti vincoli attivi) yA B  c B, come uguaglianza  infatti i costi ridotti delle componenti in base della soluzione primale complementare x sono nulli per costruzione (c B - c B A B -1 A B = 0) y è duale ammissibile se sono soddisfatti anche i vincoli in N, A N y  c N  corrisponde a chiedere costi ridotti  0 nel primale per la soluzione di base complementare associata, x= [A B -1 b, 0], quindi anche per le componenti x N Quindi l’ammissibilità duale di una soluzione di base y B equivale a chiedere la primale ottimalità della soluzione primale associata alla stessa base B Condizione di ottimalità duale nello spazio duale (posso immaginare il politopo): secondo la geometria, la soluzione duale è ottima se il gradiente della funzione obiettivo duale (b)  cono dei gradienti dei vincoli attivi (cioè le righe in base)    0,   R m, tale che A B  = b  da  posso costruire una soluzione primale ammissibile ponendo x B =  e completando il vettore nello spazio R n con n-m elementi nulli (x N =0)

23 Ammissibilità duale  ottimalità primale, Ammissibilità primale  ottimalità duale Data una soluzione di base del duale y=c B A B -1 i gradienti dei vincoli non attivi hanno moltiplicatore 0  posso costruire un vettore x = [ , 0] in R n, che soddisfa A x = b, x  0.  ammissibilità primale se y= c B A B -1 è duale ammissibile, significa che: A T y  c  c T  c B A B -1 A  c  0  condizione di ottimalità primale sui costi ridotti _ Allora posso costruire un metodo che esplora le basi, mantienedualeammissibilitàduale ottimalità mantiene la duale ammissibilità cercando la duale ottimalità e interpretarlo nello spazio primale Questo metodo si chiama SIMPLESSO DUALE

24 Interpretazione nello spazio primale Interpretazione del Simplesso duale nello spazio primale di Ax=b, x  0 Data una soluzione di base corrente alla iterazione k, x(k)= [x B,0] dove x N =0 e x B = A B -1 b tale che: -soddisfa i criteri di ottimalità primale (ammissibilità duale): ha costi ridotti non negativi: c  c B A B -1 A -non è primale ammissibile nei soli vincoli di segno x  0 (non è ottimo duale): per costruzione x(k) soddisfa Ax=b, ma  almeno una componente di x negative, cioè esiste almeno un vincolo i  1..m tale che A B -1 a i x(k) = (A B -1 b e i ) <0

25 Si danno 2 casi L’intera riga i di A B -1 A ha componenti  0, per cui nessun vettore x  0 potrà mai soddisfare contemporaneamente i vincoli Ax=b e x  0  primale inammissibile e duale illimitato  un componente j di A B -1 a i di segno negativo (a ’ ij = A B -1 a i e j <0): utilizzando tale elemento a ’ ij come pivot posso moltiplicare per -1 il vincolo e eliminare la negatività della componente j in soluzione MA devo mantenere l’ottimalità primale: la scelta della componente i tra gli elementi negativi della riga A B -1 a j deve minimizzare il valore assoluto del rapporto tra il costo ridotto di i e l’elemento selezionato a ’ ij : i = ArgMin i=1..n { (c i -c B A B -1 A i ) / (|A B -1 a i e j |) tale che A B -1 a i e j <0}

26 x1x1 2 4 6 8 0 24 68 51 Rappresentiamo la regione ammissibile del primale come il politopo P. Il simplesso duale si muove sui punti di intersezione di m vincoli, tali per cui c sta nel cono dei gradienti dei vincoli attivi (ottimalità primale = ammissibilità duale). Si muove su basi adiacenti cercando di soddisfare l’ammissibilità primale, che è la condizione di ottimalità del problema duale. In BLU le soluz di base DUALI ammissibili (costi ridotti  0) In ROSSO le soluz di base che NON sono DUALI ammissibili Ad ogni step - l’algoritmo seleziona un vincolo non soddisfatto, - si muove su di vertice adiacente con un cambio di base verso l’ammissibilita’ primale, mantenedo l’ottimalita’ primale = tenendo c nel cono dei gradienti dei vincoli attivi

27 Soluzioni di base complementari Data una base B (A B ha rango pieno) si dicono soluzioni di base complementari x = [A B -1 b, 0] e y = [c B A B -1 ] T NB una coppia di soluzioni complementari, per definizione soddisfa gli scarti complementari (è nullo il prodotto scalare del vettore delle slack dei vincoli per il vettore delle variabili associate ai vincoli nel problema complementare)  idea per un 3  algoritmo: il Simplesso primale-duale: conserva la complementarietà delle due soluzioni di base ricerca la simultanea ammissibilità di entrambe, passando a basi adiacenti con le consuete operazioni di scambio di indici dentro e fuori dalla base corrente

28 Data la coppia di problemi P: min cx: Ax=b, x  0, D: max yb: yA  c per ogni base B si ha la coppia di soluzioni x=[A B -1 b, 0] e y=c B A B -1 Ax=b, x  0Ammissibilità primale c  yA Ammissibilità duale (c-yA) x = 0complementarietà (ortogonalità) Ottimalità duale Ottimalità primale Simplesso primale Simplesso duale Simplesso primale-duale

29 Il simplesso primale mantiene l’ammissiblità primale di x e cerca l’ammissibilità duale della soluzione complementare duale y(B) = [c B A B -1 ] Il simplesso duale mantiene l’ammissibilità duale di y e cerca l’ammissibilità primale della soluzione complementare x(B) = [A B -1 b,0] I solver permettono la scelta di quale simplesso usare

30 Esercizi: Esercizi: utilizzando gli scarti complementari verificare se la soluzione x 1 =8, x 2 =3, è ottima per il problema max 4x 1 + 2x 2 : 2x 1  16, x 1 + 3x 2  17, x 2  5, x 1,x 2  0 la soluzione x 1 =2, x 2 = -4, è ottima per il problema max x 1 - x 2 : x 2  1, 2x 1 + x 2  5, x 1 + 3x 2  -10, -x 1 -x 2  2, x 1  0, x 2 libera Soluzione: si determina a quale base B e’ associata la soluzione x, si formula il problema duale, si calcola la soluzione di base complementare y associata a B,e se ne verifica l’ammissibilita’ duale

31 Il problema duale: un’ulteriore riflessione (1) ottimalità primale nonammissibilità Dato un problema primale nella consueta forma, Min cx: Ax=b, x  0, il problema duale nasce dall’analisi delle soluzioni di base primali che soddisfano alle condizioni di ottimalità primale ma non necessariamente a quelle di ammissibilità sul segno delle variabili x: sono soluzioni di base che NON sono vertici del politopo P. Ricordiamo che P è la rappresentazione delle soluzioni ammissibili del problema primale nello spazio di n-m variabili, ottenuto portando il sistema in forma di disuguaglianza premoltiplicando Ax=b per l’inversa della sottomatrice di base rispetto alle altre m colonne. Così possiamo interpretare ciascuna variabile primale x i come la slack del vincolo corrispondente alla riga di A B -1 A in cui la colonna i-esima ha la forma della i-esima colonna della matrice identità (versore e i ). Se x i <0 significa che il vincolo suddetto e’ violato. Consideriamo una base B tale che  0, quindi c  c B A B -1 A, ma B nonè necessariamente una base primale ammissibile, nel senso che la soluzione di base associata può violare x  0. Introduciamo il vettore y ∊ R m = c B A B -1 come la soluzione di base duale rispetto alla base B, osservando che, per costruzione, y costituisce una soluzione ammissibile del sistema yA  c, e interroghiamoci sul valore di yb. Se B è anche primale ammissibile allora la soluzione di base primale associate x(B)=[x B,x N ]=[A B -1 b,0] è anche ottima con costo cx(B) = c B A B -1 b = z * ottimo del problema. In tal caso yb = c B A B -1 b = z * ha lo stesso valore.

32 Il problema duale: un’ulteriore riflessione (2) Sotto tali condizioni, y è anche l’ottimo del problema duale, da cui si deriva il seguente TH: la primale ammissibilità di una base duale ammissibile, ne implica la duale ottimalità. DIM: Le componenti di x B =A B -1 b forniscono le coordinate di una combinazione conica delle colonne in base di A che generano b. Essendo tali vettori pari ai gradienti dei vincoli attivi nella base B per il problema duale, e b il gradiente della funzione obiettivo del duale, tale condizione è condizione di ottimo per un problema di massimo. Contrariamente, se B non è primale ammissibile, z * rappresenta un upper bound al valore di yb per ogni y ammissibile per yA  c. Infatti un’altra base primale ottima ma non primale ammissibile non rispetta le condizioni di ottimo duale yb ≤ z *

33 x1x1 x2x2 2 4 6 8 10 0 24 68 51 a 1 : x 1  4 a 3 : 3x 1 +2 x 2  18 C = [ 3, 5 ] a 2 : x 2  6 Esempio numerico di simplesso duale sul tableau: rappresento le iterazioni nello spazio delle variabili primali x 1,x 2. La base iniziale B 1 ={1,2,5,6} (N 1 ={3,4}) individua il vertice v 1, posto all’  dei vincoli a 1 e a 2 ove sia annullano le scarto x 3 e x 4. v1v1 La soluzione primale associata a B 1 non e’ primale ammissibile essendo x 5 <0, x 6 <0 (x 5 = -6, x 6 = -3) v 1 e’ duale ammissibile in quanto il vettore c=[3,5] e’ compreso nel cono dei gradienti dei vincoli attivi a1 e a2. Su ogni vincolo sono evidenziati i gradienti a 4 : x 1 + x 2  7

34 Svolgiamo un passo di simplesso duale sul tableau: (Fischetti 4.7) inseriamo in tabella i dati secondo la forma primale del problema x 1 x 2 x 3 x 4 x 5 x 6 z b -3-50000 -1 101000 010100 320010 110001 La tabella va portata in forma canonica rispetto alla base B 1 ={1,2,5,6} premoltiplicandola per l’inversa della matrice di base, e azzerando il vettore dei costi ridotti nelle componenti in B. 4 6 18 7

35 Avendo premoltiplicato per l’inversa di A B ={A 1,A 2,A 5,A 6 } otteniamo la tabella seguente x 1 x 2 x 3 x 4 x 5 x 6 z b 003500 -1 101000 010100 00-3-210 00-1-101 La base corrente e’ data dagli indici {1,2,5,6} di valore x =[4,6,0,0,-6,-3] con costo della soluzione pari a 3*4+5*6=42. x non e’ primale ammissibile quindi occorre portare a 0 x 5 o x 6 muovendosi verso il vincolo su cui una delle due si azzera, senza perdere la duale ammissibilita’. (Continuare per esercizio) x1x2x5x6x1x2x5x6 4 6 -6 -3 A B -1 = 1 0 0 0 0 1 0 0 -3-2 1 0 -1-1 0 1

36 Quando è corretto addottare un modello di PL per descrivere e risolvere un problema di ottimizzazione? La scelta di un modello di PL e’ appropriata solo se sono soddisfatte le seguenti condizioni: ProporzionalitáProporzionalitá AdditivitáAdditivitá DivisibilitáDivisibilitá CertezzaCertezza PL: indicazioni per l’uso (1)

37 Proporzionalitá Nella LP sia la funzione obiettivo che i vincoli sono funzioni lineari, che presuppongono un tasso costante di crescita tra variabili indipendenti e dipendenti (es. costi marginali costanti). Scegliendo funzioni lineari non sono correttamente rappresentate economie di scala, punti di saturazione, costi fissi, e ogni altra relazione non lineare tra variabili indipendenti e dipendenti. Nel breve periodo e per intervalli di variazione limitati, una funzione lineare puo’ fornire una buona approssimazione della funzione vera. Si possono costruire funzioni lineari a tratti e con costi fissi in modelli + complessi di MILP. Altrimenti occorre adottare modelli non lineari (NLP) PL: indicazioni per l’uso (2)

38 Additivitá Ogni funzione e’ data dalla somma dei contributi delle singole variabili Non presuppone alcuna interazione e sinergia fra le variabili. L’effetto della singola variabile dipende solo dal valore della stessa e non e’ condizionato dal valore che assumono contemporaneamente le altre variabili. Molti fenomeni reali non soddisfano questo requisito (fenomeni fisici) e richiedono modelli non-lineari (NLP ) PL: indicazioni per l’uso (3)

39 Divisibilitá Eventuali valori frazionari delle variabili decisionali devono avere una corretta interpretazione nel problema reale. Ad esempio possono rappresentare un tasso di funzionamento di una attivita’ che andra’ ripetuta in tutti i periodi temporali, (es. quantitativo prodotto per unita’ di tempo). Se l’ipotesi non e’ verificata occorrono variabili a valori interi (ILP) PL: indicazioni per l’uso (4)

40 Certezza i valori assegnati a ogni parametro del modello devono essere delle costanti note. spesso sono frutto di un processo di stima per cui possono contenere delle inesattezze rispetto a quanto si verifichera’. occorre effettuare a posteriori l’analisi di sensitività, cioè verificare la robustezza della soluzione ottima al variare dei singoli parametri: per quale range di variazione del parametro c i (b j, a ij ) la soluzione ottima corrente rimane tale? PL: indicazioni per l’uso (5)

41 Oltre la PL  la PLI Quando le suddette condizioni non sono verificate spesso è possibile dare un modello matematico del problema in esame che mantenga sia vincoli che funzione obiettivo lineari, utilizzando variabili intere. Questo ci porta a una nuova classe di problemi, dalla Programazione Lineare alla Programmazione Lineare Intera (o mista) (ILP o MILP). Passare da LP a ILP fa passare da un problema nella classe P a un problema di tipo NP-Hard, a meno di particolari proprietà del problema in esame. Branch and BoundAlgoritmo per la PLI: Branch and Bound, con worst case complexity esponenziale  importanza di una buona modellazione per la performance media


Scaricare ppt "Dualità in Programmazione Lineare Cap 4 Fischetti pg 51-72."

Presentazioni simili


Annunci Google