Programmazione Lineare Andrea Scozzari a.a. 2012-2013 March 14, 2013 Andrea Scozzari (a.a. 2012-2013) Programmazione Lineare March 14, 2013 1 / 18
Metodo del Simplesso Dato un problema di PL in forma standard ed una base B vale l equivalenza max c x Ax = b x 0 max c B x B + c N x N x B + B 1 Nx N = B 1 b (x B, x N ) 0 (1) NOTA: sono equivalenti i sistemi che rappresentano l insieme delle soluzioni ammissibili dei due problemi. Un problema di PL in forma standard può essere scritto nella forma equivalente (1) in tanti modi diversi quante sono le matrici di base di A. Andrea Scozzari (a.a. 2012-2013) Programmazione Lineare March 14, 2013 2 / 18
Metodo del Simplesso Osserviamo la funzione obiettivo. Sia Z = c T x, si ha Z c T x = 0 Z c T B x B c T N x N = 0 Data una base B, sostituendo x B + B 1 Nx N = B 1 b si ha Z (c N c B B 1 N)x N = c B B 1 b Si può esprimere il valore della funzione obiettivo solo in funzione delle variabili non basiche. I coefficienti (c N c B B 1 N) sono denominati costi o benefici ridotti. Andrea Scozzari (a.a. 2012-2013) Programmazione Lineare March 14, 2013 3 / 18
Metodo del Simplesso Criterio di Ottimalità Una SBA è ottima se i costi ridotti sono tutti minori o uguali a zero. Infatti, data una SBA x = (x B, x N = 0), il valore della Funzione Obiettivo Z è Z (c N c B B 1 N)x N = c B B 1 b Per ogni altra soluzione ammissibile con x N 0 per cui c N c B B 1 N 0 si avrà γ = (c N c B B 1 N)x N 0 e Z γ = Z + δ = c B B 1 b Z c B B 1 b con δ = γ 0. Dato che stiamo massimizzando Z, la condizione c N c B B 1 N 0 impedisce di migliorare la funzione obiettivo. Andrea Scozzari (a.a. 2012-2013) Programmazione Lineare March 14, 2013 4 / 18
Il metodo del simplesso arriva a determinare la soluzione di un problema di PL attraverso l individuazione di una sequenza di Soluzioni Basiche Ammissibili (SBA). max Z = 130x 1 + 100x 2 1.5x 1 + x 2 27 x 1 + x 2 21 0.3x 1 + 0.5x 2 9 x 1 15 x 2 16 (2) x 1, x 2 0 Andrea Scozzari (a.a. 2012-2013) Programmazione Lineare March 14, 2013 5 / 18
Definizione Data una funzione f (x) = f (x 1, x 2,..., x n ), si definisce gradiente di f nel punto x = ( x 1,..., x n ) il vettore colonna f x 1 ( x) f x 2 ( x) f ( x) =. f x n ( x) Andrea Scozzari (a.a. 2012-2013) Programmazione Lineare March 14, 2013 6 / 18
Nel caso di una funzione lineare f (x) = c 1 x 1 + c 2 x 2 +... + c n x n il gradiente diventa c 1 c 2 f ( x) = c =. c n Al crescere di Z (i.e., problema (2)), la retta c 1 x 1 + c 2 x 2 +... + c n x n = Z si sposta parallelamente a se stessa nella direzione del gradiente c (nel senso delle Z crescenti). Andrea Scozzari (a.a. 2012-2013) Programmazione Lineare March 14, 2013 7 / 18
Andrea Scozzari (a.a. 2012-2013) Programmazione Lineare March 14, 2013 8 / 18
L ultimo punto in cui la retta della F.O. tocca la regione ammissibile rappresenta il valore ottimo del Problema. Si noti che l ultimo punto sempre un vertice della regione ammissibile. Andrea Scozzari (a.a. 2012-2013) Programmazione Lineare March 14, 2013 8 / 18
Il metodo del simplesso genera una sequenza finita di vertici tali che il k-esimo è adiacente al (k + 1)-esimo e tali che il valore della funzione obiettivo cresce (per problemi di massimo) passando da un vertice a quello successivo. Quando si arriva in un vertice in cui il valore della funzione obiettivo è maggiore o uguale a quello dei vertici adiacenti, l algoritmo si ferma e l ultimo vertice fornisce le coordinate della soluzione ottima del problema di PL Teorema Se la funzione obiettivo ha ottimo finito nella regione ammissibile, allora tra le soluzioni ottime esiste almeno un vertice. Andrea Scozzari (a.a. 2012-2013) Programmazione Lineare March 14, 2013 9 / 18
Dato un problema di PL in forma generale Andrea Scozzari (a.a. 2012-2013) Programmazione Lineare March 14, 2013 10 / 18
L insieme dei punti che verificano una disequazione lineare è detto semispazio e l insieme dei punti si dice iperpiano S = {x R n : a 1 x 1 + a 2 x 2 +... + a n x n b} H = {x R n : a 1 x 1 + a 2 x 2 +... + a n x n = b} Andrea Scozzari (a.a. 2012-2013) Programmazione Lineare March 14, 2013 11 / 18
Definizione Un Poliedro P è una intersezione di un numero finito di semispazi e si rappresenta P = {x R n : a i1 x 1 + a i2 x 2 +... + a in x n b, i = 1,..., m} = {x R n : Ax b} L insieme vuoto é un poliedro L insieme delle soluzioni ammissibili o regione ammissibile di un arbitrario problema di PL é un poliedro. Un poliedro chiuso e limitato si dice Politopo Andrea Scozzari (a.a. 2012-2013) Programmazione Lineare March 14, 2013 12 / 18
Definizione Un insieme C R n è convesso se per ogni coppia di punti appartenenti all insieme, appartiene all insieme anche tutto il segmento che li congiunge. PROPRIETÀ: Ogni intersezione di insiemi convessi è convessa Proposizione Un poliedro P è sempre convesso Andrea Scozzari (a.a. 2012-2013) Programmazione Lineare March 14, 2013 13 / 18
Definizione Sia C R n e sia x C. Si dice che x è un punto intermedio se esistono due punti y, z C, y z, tali che preso un α [0, 1] si ha x = αy + (1 α)z Definizione Sia C R n. Un punto x C si dice punto estremo o vertice se non è un punto intermedio di C. Andrea Scozzari (a.a. 2012-2013) Programmazione Lineare March 14, 2013 14 / 18
Definizione Sia P un poliedro qualsiasi e sia S un insieme con le seguenti proprietà 1. S è una retta, una semiretta o un segmento 2. S P 3. se y, z P, x S e x appartiene al segmento [y, z], allora y, z S S è chiamata faccia unidimensionale di P, im particolare: 1. se S è un segmento, la faccia è detta spigolo 2. se S è una semiretta, la faccia è detta raggio estremo 3. se S è una retta, la faccia è detta retta estrema Andrea Scozzari (a.a. 2012-2013) Programmazione Lineare March 14, 2013 15 / 18
Una retta è un poliedro ma non ha vertici Teorema Sia P un poliedro non vuoto. P possiede almeno un vertice se e solo se P non contiene rette. Andrea Scozzari (a.a. 2012-2013) Programmazione Lineare March 14, 2013 16 / 18
Teorema Fondamentale della Programmazione Lineare Si consideri il seguente problema di PL max c x Ax b Teorema Si supponga che il poliedro P = {x R n : Ax b} non contenga rette. Allora una e una sola delle seguenti tre affermazioni è vera: 1. Il problema è inammissibile, ovvero P = ; 2. Il problema è illimitato superiormente; 3. Il problema ammette soluzioni ottime e almeno una di queste soluzioni è un vertice del poliedro P. Andrea Scozzari (a.a. 2012-2013) Programmazione Lineare March 14, 2013 17 / 18
Teorema Fondamentale della Programmazione Lineare Il teorema ci dice che in pratica si possono verificare solo le seguenti situazioni: 1. Il problema ammette soluzione ottima (che può essere o non essere unica) in un vertice del pliedro che delimita la regione ammissibile; 2. il problema non ammette soluzione ottima perché 2.1 la regione ammissibile è vuota 2.2 la regione ammissibile è illimitata e la funzione obiettivo è illimitata superiormente (se il problema è di massimizzazione) o illimitata inferiormente (se il problema è di minimizzazione). Il teorema e la proprietà 1. è ci dice che la ricerca delle soluzioni ottime di un problema di PL può restringersi all analisi dei soli vertici del poliedro P. Andrea Scozzari (a.a. 2012-2013) Programmazione Lineare March 14, 2013 18 / 18