Soluzione dei Problemi di Programmazione Lineare Consideriamo un problema di Programmazione Lineare (PL) con m vincoli ed n variabili in Forma Standard dove: ma 0 c A b ( ) 0 ( 2) R è il vettore n delle variabili decisionali c è il vettore n dei coefficienti della funzione obiettivo b è il vettore m dei termini noti dei vincoli A è la matrice mn dei coefficienti dei vincoli; A[a ij ], i,...,n, j,...,m n T Inoltre, si assumono soddisfatte le seguenti ipotesi: b 0 b j 0 j, K, m m<n mrango(a) Qualunque problema di PL può essere trasformato in un problema equivalente in forma standard. PL-25
I valori di che soddisfano i vincoli () sono detti soluzioni del problema di PL. Inoltre, i valori di che soddisfano anche i vincoli (2) sono detti soluzioni ammissibili del problema di PL. L ipotesi m<n (più variabili che vincoli) non rappresenta una perdita di generalità. E noto infatti che il sistema di equazioni lineari (): può ammettere una soluzione unica se mn può ammettere soluzione se m>n ed almeno m-n equazioni sono ridondanti (quindi possono essere eliminate) può ammettere n m soluzioni se m<n Solo l ultimo caso è significativo dal punto di vista dei problemi di ottimizzazione. Un problema di PL può essere: a) Ammissibile con soluzioni ottime finite b) Ammissibile senza soluzione ottime finite (detto anche illimitato, o con ottimo all infinito) c) Non Ammissibile (senza soluzioni ammissibili) PL-26
Da un punto di vista grafico i tre casi corrispondono a: a) una regione di ammissibilità associata ad un poliedro chiuso non vuoto (Politopo) { R n : } X A b X b) una regione di ammissibilità associata ad un poliedro aperto non vuoto (n.b., una soluzione ottima all infinito implica un poliedro X aperto, ma non è vero il viceversa) X (X aperto) X c) una regione di ammissibilità associata ad un poliedro vuoto X 2 X R n taleche X X X X X2 PL-27
Un poliedro è dato dall intersezione di semispazi. Un semispazio in n dimensioni è individuato da una disuguaglianza lineare a T n b R Un poliedro X è un insieme convesso Definizione Un insieme X è convesso se e solo se dati due punti a, b X ogni punto generato come λa + ( λ) b 0 λ (combinazione convessa di a, ) è tale che X b a X Vertici del Poliedro X b I vertici di un poliedro si dicono Punti Estremi Definizione Un punto di un poliedro X è un punto estremo se e solo se non può essere espresso come combinazione convessa di altri punti di X. PL-28
. Teorema (Proprietà dei punti estremi di un poliedro) Dato X poliedro chiuso non vuoto con punti estremi ogni punto X può essere espresso come combinazione e i, i,..., E convessa dei punti estremi di X: E E λi con i ei λ i λi 0 i i e Ad es., la combinazione convessa di e e2 e 3 permette di esprimere tutti i punti di X' X X X e 2 e3 Se X è un poliedro aperto non vuoto per esprimere tutti i suoi punti oltre ad i punti estremi si devono utilizzare anche le sue direzioni estreme. Definizione Dato un poliedro X, d è una direzione di X se e solo se X + µ d X µ 0. PL-29
Ad esempio: X d + µ d ( µ 0) Definizione Una direzione d di un poliedro X, è una direzione estrema di X se e solo se non è esprimibile come combinazione lineare di altre direzioni di X. Ad esempio: X d µ de + µ d 2 e2 d e µ, µ 2 0 2 d e PL-30
2. Teorema (Proprietà dei punti estremi e delle direzioni estreme di un poliedro) Dato X poliedro non vuoto con punti estremi e direzioni estreme Ogni punto X può essere espresso come combinazione convessa dei punti estremi di X e combinazione lineare delle sue direzioni estreme: de j D j,,..., E D λ i e i + µ jde j i j i E ei,,..., E con λ i λ i 0 i, µ j 0 j i Se d è una direzione del poliedro {, 0} X A b allora si ha che ( ) + λd X X, λ 0 A + λd b Ad 0 PL-3
Soluzione Algebrica dei problemi di PL Consideriamo il problema (PL) in Forma Standard (PL) ma c T 0 A b ( ) 0 ( 2) n R Poiché mrango(a) ed m<n, si può partizionare A come A [ B N] dove: B è matrice non singolare mm N è matrice m(n-m) (det( B) 0) La matrice B è composta da m colonne linearmente indipendenti di A. Tali colonne sono quindi una base nello spazio vettoriale ad m dimensioni delle colonne di A. La matrice B è detta Matrice di Base (Base). In corrispondenza di una scelta di B ed N si può partizionare anche il vettore delle : B N m componenti n m componenti è detto Vettore delle Variabili in Base (Vettore di Base) è detto Vettore delle Variabili fuori Base B N PL-32
Il sistema di equazioni lineari A b si può riscrivere come [ B N] B b BB NN b N + B B b B NN Una soluzione del sistema di equazioni () corrisponde a determinare il valore per m variabili ( B ) avendo fissato arbitrariamente il valore per le restanti n-m variabili ( N ) Una scelta particolarmente importante è porre N 0 da cui si ottiene B B b N 0 Soluzione di Base Se B B b 0 si ottiene una Soluzione di Base Ammissibile. PL-33
Le soluzioni di base sono importanti poichè vale il seguente teorema 3. Teorema Dato {, 0} X A b insieme convesso, dove A è una matrice mn di rango m con m<n, e è un punto estremo di X se e solo se e è una soluzione di base ammissibile. La ricerca delle soluzioni di un problema di PL si può effettuare esaminando solamente un numero finito di soluzioni corrispondenti alle soluzioni di base associate al poliedro dei vincoli. In generale, a ciascuna matrice di base B (ammissibile) corrisponde una sola soluzione di base (ammissibile). Viceversa, ad una soluzione di base (ammissibile) possono corrispondere più matrici di base. Questi casi sono associati a soluzioni dette degeneri, ovvero per cui qualche componente del vettore di base risulta nullo. B Un esempio. ma 0 2 + 2 + 2 5 ( ) + 2 0 ( 2) 6 + 22 2 ( 3) 0 2 0 Il problema non è in forma standard! (continua) PL-34
Trasformazione dei problemi in forma standard. Vincoli Si introducono variabili ausiliarie positive dette Variabili di Slack (scarto): n n aij j bi aij j + si bi si 0 j j Vincoli Si introducono variabili ausiliarie positive dette Variabili di Surplus (eccedenza): n n j ij j i j a b a s b s 0 ij j i i i Variabili non vincolate in segno (variabili libere) Si sostituisce la variabile libera con due variabili ausiliarie positive (il problema diventa ad n+ variabili): libera u v con u 0 v 0 j j j j j j Termini noti dei vincoli negativi Si moltiplicano entrambe i membri per - e si cambia il verso della disuguaglianza Problema di minimo Si trasforma il problema in massimo moltiplicando per - la funzione obiettivo. PL-35
Un esempio (seguito). Il problema trasformato in forma standard: ma 0 2 + 2 + 2 + 3 5 ( ) + 2 + 4 0 ( 2) 6 + 22 + 5 2 ( 3) 0 2 0 3 0 4 0 5 0 2 5 (3) 4 () (2) 3 2 P 2 P 3 0 7. 75 Ottimo 0 0 X P 4 P 2 3 4 5 A 0 0 0 0 6 2 0 0 b 5 0 2 PL-36
PL-37 Il massimo numero di possibili basi corrisponde al numero di possibili estrazioni di m colonne su n colonne di A: n m n m n m!!( )! Nell esempio 5 3 5 3 2 0!!! In generale, non tutte le possibili sottomatrici mm sono non-singolari (quindi invertibili). Inoltre, non tutte le matrici di base danno luogo a soluzioni ammissibili (ossia, positive). Per questo fatto il numero delle combinazioni corrisponde ad un limite superiore. Nell esempio solo 6 combinazioni danno luogo a basi ammissibili: B b P B 2 4 3 4 9 4 2 dove B 0 6 2 0 P B 2 2 5 2 5 2 5 2 P B 3 3 4 4 7 2 3 2 7 2 P B B B 4 3 5 5 2 3 5 6 4 3 5 0 5 2 (soluzioni degeneri)
Dalla corrispondenza delle soluzioni di base ammissibili con i punti estremi del poliedro X deriva il seguente teorema. 4. Teorema Fondamentale della PL Se un problema di PL ammette soluzione, allora esiste una soluzione ammissibile di base. Se un problema di PL ha soluzione ottima finita, allora ha anche una soluzione di base ottima. Poiché il massimo numero di possibili basi di un problema di PL è finito, tali problemi hanno una struttura discreta. I problemi di ottimizzazione corrispondenti alla selezione tra un numero finito di alternative si dicono problemi combinatorici. La PL è quindi un problema combinatorico. Un possibile algoritmo per determinare la soluzione ottima potrebbe consistere nella generazione esplicita di tutte le soluzioni ammissibili di base, quindi nella scelta di quella soluzione che rende massimo l obiettivo. Tale strategia non è conveniente poichè il numero massimo delle possibili basi cresce in maniera esponenziale col crescere delle dimensioni del problema (numero di variabili e vincoli). Algoritmi che richiedono in generale un numero di passi che cresce in maniera esponenziale con le dimensioni del problema non sono efficienti. PL-38
Calcolo della soluzione ottima di un problema di PL. Supponendo di aver individuato una base B ammissibile, riscriviamo la funzione obiettivo: [ ] c T 0 cb cn B c T B c T B N N N + () Sostituiamo in () l espressione delle variabili di base: B B b B NN (2) T ottenendo: ( T T ) 0 B B N c B b c B N c N (3) Il valore dell obiettivo corrispondente alla base B è c T 0 BB b Le relazioni (2) e (3) esprimono rispettivamente i vincoli e la funzione obiettivo in funzione delle variabili fuori base. Raccogliamo (2) e (3) in in forma matriciale: c T B b c T B N c T 0 B B N N B B b B N (4) Le (4) sono m+ equazioni. PL-39
Trasformiamo le (4) in una forma più compatta. In particolare, si pone: R l insieme degli indici delle variabili fuori base, ovvero delle colonne di N B e 0 0 B 00 c T B b B 0 0 B b vettore (m+)-dim M m0 B M B m 0j c T BB a j c j j j R j B a j n-m vettori (m+)-dim M mj a j dove e c j sono rispettivamente la colonna di N ed il coefficiente di che moltiplicano la j-esima variabile fuori base. c N PL-40
Le (4) si possono quindi riscrivere come segue i m Bi i0 ij j 0,, K, (5) j R Ponendo nelle (5) j 0 j R si ottengono il valore dell obiettivo (i0) e le soluzioni di base (i,...,m) corrispondenti alla base attuale. Verifichiamo se la soluzione corrente è ottima. Consideriamo l obiettivo: B 0 00 j j j R 0 Supponiamo che esista un coefficiente 0k <0, e consideriamo come varia l obiettivo facendo diventare positiva la variabile fuori base k, attualmente nulla. } >0 B kk 0 00 0 > 00 L obiettivo migliora! <0 >0 Allora si potrebbe pensare di aumentare indefinitivamente k migliorando sempre l obiettivo. Tuttavia, aumentando k anche le equazioni (5) corrispondenti ai vincoli variano, modificando i valori delle variabili di base. PL-4
Consideriamo la generica equazione i-esima in funzione della variabile fuori base k che stiamo incrementando: Bi i0 ik k Se ik >0, aumentando k la B i diminuisce. E quindi possibile aumentare k fino a che Bi 0 (ammissibile). Il valore limite di k perché la i-esima variabile di base resti ammissibile è quindi: k i B i 0 0 ik Facendo assumere ad k un valore positivo significa portare la variabile in base. Nello stesso tempo il valore delle altre variabili di base per cui ik >0 diminuisce. Il valore che k assume in base è quello corrispondente all annullamento della prima variabile di base, ad es.,cioè Br r0 i0 min rk i,..., M ik ik > 0 La variabile k entra in base con tale valore, ed in corrispondenza la variabile Br esce di base. PL-42
Il coefficiente rk è detto Pivot, (l aggiornamento della base si dice Pivoting) e viene usato per aggiornare i valori delle variabili in base dopo l ingresso in base di k : 0 0 i 0,..., m; i r Bi i ik r rk k r0 rk La nuova soluzione di base { } j 0 j R' R k 0 Br Le nuove variabili fuori base Con il cambio delle variabili in base, la nuova matrice di base risulta composta delle stesse colonne della vecchia base ad eccezione del fatto che la colonna associata a Br è stata sostituita dalla colonna associata a k. Aggiorniamo le equazioni (5) dopo il cambio di base: Bi i ik r 0 0 ij ik rk j R i 0,, K, m; i r { k} rj j + rk rj rk B r (5 ) k r rj 0 j rk j R rk { k} rk B r PL-43
I nuovi valori delle variabili in base si ottengono ponendo nelle (5 ) La nuova soluzione di base ha migliorato il valore della funzione obiettivo: } >0 B r 0 00 0 0k > { rk <0 { >0 E possibile iterare il procedimento fino a che esiste qualche variabile fuori base che può migliorare l obiettivo se portata in base. 5. Teorema (Condizione di ottimalità) Una soluzione di base non degenere di un problema di PL è ottima se e solo se: ) i0 0 i,..., m (ammissibile) 2) j R (non migliorabile) 0j 0 { } j 0 j R k 0 Br 00 Nel caso di soluzione degenere possono esistere soluzioni ottime in cui il punto (2) del terorema 5 non è soddisfatto. Tuttavia, se un problema ammette soluzione ottima finita allora ammette una soluzione di base ottima che soddisfa le condizioni () e (2) del teorema 5. PL-44
Scelta della variabile entrante. Quando la condizione di ottimalità non è verificata è sempre possibile scegliere una variabile fuori base k da portare in base per migliorare l obiettivo. Quando esistono più alternative la scelta non preclude il raggiungimento della soluzione ottima, ma può al peggio aumentare il tempo necessario per la sua ricerca. Esistono due criteri di scelta della variabile entrante: a) Il metodo del gradiente (il più utilizzato) Sceglie la variabile che localmente fa aumentare più rapidamente l obiettivo: k 0k arg ma j R 0 j< 0 min j R 0 j< 0 b) Il metodo del massimo incremento Sceglie la variabile che effettivamente provoca il maggior aumento dell obiettivo: dove r è l indice della variabile che lascia la base a causa dell ingresso in base di j. 0j 0j r0 rj PL-45
Scelta della variabile uscente. Determinata la variabile fuori base k da portare in base, si deve scegliere la variabile uscente. Esistono due situazioni alternative: a) rk >0 per almeno un r Allora si può aggiornare la base come visto. b) ik 0 i,..., m Allora la soluzione del problema è illimitata (non esiste ottimo finito). In questo caso facendo aumentare k il valore di nessuna variabile di base diminuisce: } >0 { Bi i0 ik k 0 { <0 >0 sempre! Nota. Se per una variabile di base i si ha che ik >0 e r0 0 (soluzione degenere), k entra in base con valore nullo. In questo caso la soluzione non cambia, ed in particolare rimane degenere. Per questa ragione la ricerca della soluzione potrebbe rimanere bloccata generando sempre la medesima soluzione (ccling). Il ccling è piuttosto raro e comunque esistono strategie per evitalo. PL-46
L algoritmo del Simplesso. Inizializzazione. Determinare una soluzione di base ammissibile. 2. Verifica dell ottimalità. Se 0j 0 j R allora la soluzione corrente è ottima e l algoritmo termina. Altrimenti andare al passo 3. 3. Scelta della variabile entrante in base. Scegliere una variabile fuori base k tale che 0k <0 (ad esempio, con il metodo del gradiente), ed andare al passo 4. 4. Scelta della variabile uscente dalla base. Scegliere la variabile tale che Br r0 i0 min rk i,..., M ik ik > 0 Se ik 0 i,..., m, allora la soluzione del problema è illimitata (non esiste ottimo finito), e l algoritmo termina. 5. Pivoting. Risolvere le equazioni (5) ricavando k e i r Bi, in funzione di j, j R { k} e di B r. La nuova soluzione si ottiene ponendo j 0, j R { k} e Br 0. Andare al passo 2. PL-47