La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Il simplesso in forma tabellare Cap 3.2.4 Fischetti pg 33-36.

Presentazioni simili


Presentazione sul tema: "Il simplesso in forma tabellare Cap 3.2.4 Fischetti pg 33-36."— Transcript della presentazione:

1 Il simplesso in forma tabellare Cap Fischetti pg 33-36

2 Il metodo del tableau E’ d’uso presentare l’algoritmo del simplesso come una sequenza di operazioni algebriche su una tabella che riporta la matrice dei vincoli, il vettore b e, come riga aggiuntiva, il vettore dei costi ridotti e il valore della funzione obiettivo nella soluzione corrente Formato di riferimento forma standard Min cx: Ax=b, x  0

3 Formato iniziale del tableau x 1 x 2.. x m x m+1 … x n z b Riga 0 Riga 1.. Riga m Vettore dei costi 0 Matrice A b

4 Formato del tableau al passo k x 1 x 2.. x m x m+1 … x n z A B -1 b Riga 0 0 … 0 c N -c B A B -1 A N Riga 1.. Riga m Riga 0 = Vettore dei costi ridotti -c B A B -1 b Le colonne sono opportunamente riordinate per affiancare a sx le colonne della base In rosso sono evidenziate le colonne in base (  B), in blu quelle fuori base (  N) Si aggiunge una colonna ausiliaria che evidenzia le variabili in base, mentre alla riga 0 nella colonna del termine noto compare il valore corrente della funzione obiettivo cambiato di segno, inteso come il vincolo cx –z = 0 A B -1 A B = I A B -1 A N BxBxB

5 esempio Min -13 x 1 – 10 x 2 : 3 x x 2 + x 3 = 24 x x 2 + x 4 = 20 3x x 2 + x 5 = 18 x i  0

6 Esempio: usiamo i colori per denotare le variabili in B e in N x 1 x 2 x 3 x 4 x 5 z A B -1 b c. red Riga Riga Riga La base corrente e’ data dagli indici {3,4,5} mentre sono fuori base x 1 e x 2. La soluzione di base associata ha valore x =[0,0,24,20,18] con costo pari a 0. La tabella e’ gia in forma canonica rispetto alla base corrente (premoltiplicata per l’inversa della matrice di base, e il vettore dei costi azzerato nelle componenti in B) Le operazioni utilizzabili sono quelle invarianti rispetto alle soluzioni. x3x4x5x3x4x

7 Entrambe le variabili fuori base hanno costo ridotto <0, scelgo la variabile con indice minore x 1 (ininfluente) x 1 x 2 x 3 x 4 x 5 z A B -1 b c. red Riga Riga Riga Per determinare l’indice della variabile uscente devo calcolare il minimo rapporto tra il valore corrente della variabile i-esima della base e la componente i-esima della colonna della variabile entrante, per le sole componenti >0. x3x4x5x3x4x pivot Minimo {24/3, 20/1, 18/3} = 6  esce x 5. Devo fare pivot su a 31 in modo tale che la colonna entrante A 1 prenda la forma della colonna uscente A 5 (dividere la III riga per 3, poi sommarla alla II moltiplicata per -1, e sommarla alla riga I moltiplicata per -3) e azzerare il costo ridotto (sommarla alla riga 0 moltiplicata per 13) ☹

8 Base corrente B={1,3,4} x 1 x 2 x 3 x 4 x 5 z A B -1 b c. red. 0 -4/ / Riga Riga / /3 Riga 3 1 2/ /3 Facendo pivot su a 31 ho trasformato A 1 nella colonna 3 della matrice identita’ e azzerato il suo costo ridotto x3x4x1x3x4x Ora solo x 2 ha costo ridotto <0: entra x 2 e devo calcolare il minimo rapporto per determinare la variabile uscente. Min {6/2, 14.3/10, 6.3/2}=3, esce x 3 e faro’ pivot sull’elemento a 12. ☹

9 Base corrente B={1,2,4} x 1 x 2 x 3 x 4 x 5 z A B -1 b c. red /6 0 11/ Riga /2 0 -1/2 Riga /6 1 8/6 Riga /3 0 0 Facendo pivot su a 12 ho trasformato A 2 nella colonna 1 della matrice identita’ e azzerato il suo costo ridotto x2x4x1x2x4x1 3 4 Tutti i costi ridotti sono  0 la soluzione corrente x = [4,3,0, 4,0] e’ ottima, di costo -82.

10 Esercizi: Risolvere con il metodo del tableau i seguenti problemi di PL: Min - 5x 1 - 7x 2 : 2x 1 + x 2  8 x 1 + 2x 2  9 x 1 + x 2  5 x 1,x 2  0 Max 2x 1 + 5x 2 : x 1 - 4x 2  8 -x 1 + x 2  6 -3x 1 + 2x 2  5 x 1,x 2  0

11 Analisi post ottimale Compito Debugging del modello Validazione del modello Allocazione ottima delle risorse (vettore b) Valutare le stime dei parametri del modello Definire i trade-off tra i parametri del modello Obiettivo Trovare errori, mancanze e punti deboli del modello Dimostrarne la validita’ Destinare il giusto quantitativo di risorse a ciascuna attivita’ Individuare i parametri critici da stimare con maggiore precisione Trovare il miglior trade-off Tecnica Riottimizzazione Soluzione di successive varianti Prezzi ombra Analisi di sensisitivita’ Programmazione lineare parametrica

12 riottimizzazione I problemi reali hanno dimensioni consistenti (  O(10 4 ) variabili e vincoli) di cui puo’ essere necessario esaminare e risolvere diverse varianti, in fase di messa a punto (debugging) del modello. Durante la fase di validazione si eseguiranno anche numerosi test su dati passati per confrontare le soluzioni del modello con quelle effettive, prese nella realta’

13 riottimizzazione Quando si devono risolvere numerose varianti di un modello tra loro leggermente diverse, anziche’ ripartire ogni volta da capo (from scratch), quando e’ possibile, risulta + conveniente effettuare una ripartenza a caldo (warm start), a partire dalla soluzione ottima del modello precedente x*. se x* e’ ancora una soluzione di base ammissibile del nuovo modello ma non piu’ ottima (ad esempio, per l’introduzione di una nuova variabile) si applica il simplesso primale, altrimenti, se e’ ancora di base ma non ammissibile (ad esempio per l’introduzione di un nuovo vincolo) si applica il simplesso duale

14 Introduzione di una nuova variabile x n+1 : cosa cambia? Aggiungo una colonna al tableau, la soluzione corrente e’ ancora ammissibile nel nuovo spazio R n+1, intendendo la nuova variabile fuori base a valore 0. Da x*  R n passo a x’=[x*,0]  R n+1 Devo calcolare il costo ridotto di x n+1 per verificare se x’ e’ ottima. Se no, applico il simplesso primale

15 Base corrente B={1,2,4} x 1 x 2 x 3 x 4 x 5 z c. red /6 0 11/ Riga /2 0 -1/2 Riga /6 1 8/6 Riga /3 0 0 x2x4x1x2x4x1 3 4 la soluzione corrente x = [4,3,0, 4,0] in R 5 e’ ottima, di costo -82. A B -1 b -c B A B -1 b

16 Inserisco una nuova variabile x6, di cui e’ nota la colonna A 6 nella matrice originaria e il costo c 6 x 1 x 2 x 3 x 4 x 5 x 6 z c. red /6 0 11/3 c Riga /2 0 -1/2 a 16 Riga /6 1 8/6 a 26 Riga /3 0 0 a 36 x2x4x1x2x4x1 3 4 la colonna A 6 puo’ essere aggiunta al tableau e portata nella forma A B -1 A 6 tramite le consuete operazioni elementari. il costo ridotto c 6 - c B A B -1 A 6 deve venire calcolato from scratch, e poi inserito in tabella. Se risolta <0 allora x 6 entra in base altrimenti la soluzione ottima non cambia (x 6 =0) A B -1 b -c B A B -1 b _

17 Aggiungo un nuovo vincolo a m+1 x=b m+1 : cosa cambia?

18 x1x1 x2x a 1 : x 1  4 (x 3 =0) a 3 : 3x 1 +2 x 2  18 (x 5 =0) X* a 2 : x 2  6 (x 4 =0) Consideriamo nuovamente la rappresentazione della regione ammissibile del problema della WinDoorGlass, con ottimo in x*. Introduco il vincolo a4 : e’ rispettato da x* che resta ottimo simplesso duale Se introduco il vincolo a5 poiche’ questo e’ violato da x*, allora x* diventa NON AMMISSIBILE ☹  devo applicare un passo del simplesso duale per determinare il nuovo vertice ottimo x’ x 2 =0 x 1 =0 a 4 : x1 - x2  3 (x 6 =0) x’ a 5 : x1 + 5/6x2  6 (x 7 =0)

19 Prezzi ombra Interpretazione del problema come allocazione ottima di risorse limitate (1 vincolo   risorsa) in quantita’ b (rhs) Il livello disponibile b i puo’ essere una decisione reversibile alla luce dell’impatto sulla soluzione ottima ? Quanto sarei disponibile a pagare per ottenere 1 unita’ supplementare per la risorsa i? In un sistema di equilibrio, il prezzo unitario e’ tanto quanto permette di migliorare il valore ottimo della funzione obiettivo  prezzo ombra della risorsa = suo valore marginale

20 xAxA xBxB a 1 : x A  4 a 3 : 3x A +2 x B  18 C = [ 3, 5 ] a 2 : x B  6 Primo caso Risorsa eccedente nel punto di ottimo Primo caso: Risorsa eccedente nel punto di ottimo: valore marginale della risorsa NULLO (il vincolo relativo alla specifica risorsa non e’ aderente al punto di ottimo corrente): traslare l’iperpiano associato al vincolo x A  4 (diventa x A  5) non modifica le coordinate di x*

21 Secondo caso Risorsa esaurita nel punto di ottimo Secondo caso: Risorsa esaurita nel punto di ottimo Se la slack della risorsa si annulla nell’ottimo x*, il vincolo e’ aderente al punto di ottimo. Sia x’ l’ottimo disponendo di 1 unita’ supplemetare della risorsa i (spostando il vincolo i parallelo a se stesso, le coordinate del punto di ottimo cambiano da x* a x’).

22 xAxA xBxB a 1 : x A  4 a 3 : 3x A +2 x B  18 C = [ 3, 5 ] a 2 : x B  6 Risorsa esaurita nel punto di ottimo: (il vincolo della risorsa e’ aderente al punto di ottimo corrente): valore marginale della risorsa >0 l’iperpiano traslare l’iperpiano associato al vincolo x B  6 ( x B  6 (diventa x B  7) modifica il punto di ottimo da x* a x’ (ma non la base, in questo caso, poiche’ restano attivi sia a 2 che a 3 ) x* x’

23 Valutazione dell’incremento  della funzione obiettivo in seguito all’incremento unitario di una componente dei rhs Hp Hp: la base ottima B non cambia quidi x N resta a 0 (i vincoli attivi in x* e in x’ sono i medesimi) il vettore dei rhs e’ cambiato da b a b’=(b+e i ) quindi x B = A B -1 b’ La variazione della funzione obiettivo e’ data da  = cx’-cx* = c (x’-x*) = c ([A B -1 b’,0] T - [A B -1 b,0] T ) = c B A B -1 (b’-b) = c B A B -1 (b+e i -b) = c B A B -1 e i = y i  0 (comando getdual(vincolo) in Mosel) Il prezzo ombra della risorsa e’ la componente i-esima del prodotto c B A B -1 (comando getdual(vincolo) in Mosel) Vedremo nel seguito come a questa quantita’ variabilespazio duale corrisponda una precisa variabile nello spazio duale

24 Esercizio Calcolare i prezzi ombra y delle 3 risorse del problema della WindorGlass, verificando che sono nulli per le risorse che non si esauriscono nella soluzione ottima Oss: in forma canonica Ax  b –dato il sistema Ax=b, x  0 portato in forma canonica Ax  b premoltiplicando per A B -1, dove B e’ la base ottima e x* la soluzione ottima associata, y –dato y il vettore dei prezzi ombra delle risorse rispetto a B, ALLORA vale che (b-Ax*)y=0 Questo risultato nella teoria della dualita’ va sotto il nome di teorema degli SCARTI COMPLEMENTARI

25 Analisi di sensitivita’ I parametri del modello sono frutto di una stima Vogliamo testare quanto la soluzione ottima sia robusta rispetto a tali stime I parametri per cui si registra una maggiore variazione della soluzione ottima sono da stimare con maggiore accuratezza in fase di messa a punto del modello, e da monitorare attentamente durante il periodo di applicazione dei risultati, per verificare se i valori stimati si mantengono stabili. I sw commerciali offrono strumenti per l’analisi di sensitivita’ per i singoli parametri (b i, c j principalmente) che rispondono alla domanda “entro quale range b i, c j puo’ variare mantenendo x* (o la base associata) come ottimo corrente?” Comandi MOSEL: vettore dei termini noti –XPRSrhssa fornisce lower e upper bound dell’intervallo in cui puo’ variare il singolo elemento del vettore dei termini noti mantenendo la stessa base nel punto di ottimo vettore dei costi –XPRSobjsa fornisce lower e upper bound dell’intervallo in cui puo’ variare il singolo elemento del vettore dei costi mantenendo la stessa base nel punto di ottimo

26 Programmazione lineare parametrica Estende il concetto di analisi di sensitivita’ Permette di stimare come varia la soluzione ottima quando + parametri variano simultaneamente all’interno di un intervallo, data una correlazione fra i parametri, per effetto di un unico fattore che ne governa il cambiamento (es. il tasso di crescita, l’euribor, etc. puo’ far cambiare insieme un costo di produzione e beneficio atteso)

27 DUALITA’ HL cap 6 Risolvere il problema P:Min cx Ax=b, x  0, vuol anche dire cercare la stima w il piu’ 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 non puo’ che 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

28 Poiche’ l’ottimo di P sta su un vertice 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 negativi) –z* = c B A B -1 b per cui posso riformulare il problema 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  yb yA  c

29 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 

30 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

31 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

32 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

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

34 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

35 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

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

37 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

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

39 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 y y 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

40 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 y y 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, affinche’ l’offerta del soggetto esterno sia competitiva con quanto il produttore guadagnerebbe se utilizzazze le ore disponibili per realizzare la propria produzione (equilibrio).

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

42 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

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

44 Th scarti complementari: anche detti “ condizioni di ortogonalita’ ” Th scarti complementari: anche detti “ condizioni di ortogonalita’ ” dati, x  P, y  D 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} (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

45 Simplesso duale (cenni) (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:

46 Ammissibilita’ e ottimalita’ 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 =  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 e’ 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’ammissibilita’ duale di una soluzione di base y B equivale a chiedere la primale ottimalita’ della soluzione primale associata alla stessa base B Condizione di ottimalita’ duale nello spazio duale (posso immaginare il politopo): secondo la geometria, la soluzione duale e’ ottima se il gradiente della funzione obiettivo duale (b)  cono dei gradienti dei vincoli attivi (cioe’ 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)

47 Ammissibilita’ duale  ottimalita’ primale, Ammissibilita’ primale  ottimalita’ 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.  ammissibilita’ primale se y= c B A B -1 e’ duale ammissibile, significa: A T y  c  c  c B A B -1 A  c  0  condizione di ottimalita’ primale sui costi ridotti _ Allora posso costruire un metodo che esplora le basi, mantienedualeammissibilitaduale ottimalita mantiene la duale ammissibilita’ cercando la duale ottimalita’ e interpretarlo nello spazio primale Questo metodo si chiama SIMPLESSO DUALE

48 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 ottimalita’ primale (ammissibilita’ duale): ha costi ridotti non negativi: c  c B A B -1 A -non e’ primale ammissibile nei soli vincoli di segno x  0 (non e’ ottimo duale): per costruzione x(k) soddisfa Ax=b, ma  almeno un vincolo i  1..m tale che A B -1 a i x(k) = (A B -1 b e i ) <0

49 Si danno 2 casi L’intera riga i di A B -1 A ha componenti  0, per cui nessun vettore x  0 potra’ 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 negativita’ della componente j in soluzione MA devo mantenere l’ottimalita’ 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}

50 x1x 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 (ottimalita’ primale = ammissibilita’ duale). Si muove su basi adiacenti cercando di soddisfare l’ammissibilita’ primale, che e’ la condizione di ottimalita’ 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

51 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 (e’ 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 complementarieta’ delle due soluzioni di base e ricerca la simultanea ammissibilita’ di entrambe, passando a basi adiacenti con le consuete operazioni di scambio di indici

52 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  0Ammissibilita’ primale c  yA Ammissibilita’ duale (c-yA) x = 0complementarieta’ (ortogonalita’) Ottimalita’ duale Ottimalita’ primale

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

54 Esercizi: Esercizi: utilizzando gli scarti complementari verificare se la soluzione x 1 =8, x 2 =3, e’ 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, e’ 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

55 Il problema duale: un’ulteriore riflessione (1) ottimalita’ primale nonammissibilita 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 ottimalita’ primale ma non necessariamente a quelle di ammissibilita’ sul segno delle variabili x: sono soluzioni di base che non sono anche vertici del politopo P. Ricordiamo che P e’ 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. Cosi’ 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 identita’ (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 e’ necessariamente una base primale ammissibile, nel senso che la soluzione di base associata puo’ 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 e’ anche primale ammissibile allora la soluzione di base primale associata x(B)=[x B,x N ]=[A B -1 b,0] e’ 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.

56 Il problema duale: un’ulteriore riflessione (2) Sotto tali condizioni, y e’ anche l’ottimo del problema duale, da cui si deriva il seguente TH: la primale ammissibilita’ di una base duale ammissibile, ne implica la duale ottimalita’. 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 e’ condizione di ottimo per un problema di massimo. Contrariamente, se B non e’ 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 *

57 x1x1 x2x 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

58 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 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

59 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 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) x1x2x5x6x1x2x5x A B -1 =

60 Quando e’ 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)

61 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)

62 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)

63 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)

64 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 sensitivita’, cioe’ 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)

65 Oltre la PL  la PLI Quando le suddette condizioni non sono verificate spesso e’ 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 proprieta’ 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 "Il simplesso in forma tabellare Cap 3.2.4 Fischetti pg 33-36."

Presentazioni simili


Annunci Google