Programmazione Lineare - Algoritmo del Simplesso Andrea Scozzari a.a. 2013-2014 March 21, 2014 Andrea Scozzari (a.a. 2013-2014) Programmazione Lineare - Algoritmo del Simplesso March 21, 2014 1/7 Algoritmo del Simplesso Passi: Ogni iterazione dell’algoritmo consiste in 6 passi 1. Determinazione della SBA corrente 2. Test di ottimalit`a 3. Scelta della variabile che dovr`a entrare in base nella iterazione successiva (variabile entrante) 4. Test di illimitatezza 5. Scelta della variabile uscente dalla base corrente 6. Aggiornamento del valore della F.O. Andrea Scozzari (a.a. 2013-2014) Programmazione Lineare - Algoritmo del Simplesso March 21, 2014 2/7 Definizione Un sistema di equazioni si dice: 1. in Forma Canonica se ad ogni equazione si pu` o associare una variabile basica che ha coefficiente 1 in quella equazione e 0 in tutte le altre. 2. in Forma Canonica Ammissibile se ha inoltre la propriet`a che tutti i termini noti sono maggiori od uguali a 0. Andrea Scozzari (a.a. 2013-2014) Programmazione Lineare - Algoritmo del Simplesso March 21, 2014 3/7 Algoritmo del Simplesso Come trovare una SBA se il sistema Ax = b non `e in Forma Canonica Ammissibile (FCA)? FASE I: Trovare un sistema di equazioni equivalente a Ax = b in FCA. Dato S : ai1 x1 + ai2 x2 + . . . + ain xn = bi i = 1, . . . , m Si introducano m nuove variabili (artificiali) y1 , . . . , ym ≥ 0 e si riscriva il sistema ai1 x1 + ai2 x2 + . . . + ain xn + yi = bi i = 1, . . . , m Si definisce una nuova funzione obiettivo w0 = min y1 + . . . + ym Andrea Scozzari (a.a. 2013-2014) Programmazione Lineare - Algoritmo del Simplesso March 21, 2014 4/7 Algoritmo del Simplesso Si risolve il problema w0 = min y1 + . . . + ym = m P (bi ) − i=1 ai1 x1 + ai2 x2 + . . . + ain xn + yi = bi xj ≥ 0 yi ≥ 0 m n P P ( aij )xj j=1 i=1 i = 1, . . . , m j = 1, . . . , n i = 1, . . . , m Il problema di FASE I `e sicuramente ammissibile dato che esiste almeno una SBA ponendo xj = 0, j = 1, . . . , n, e yi = bi , i = 1, . . . , m. Il problema di FASE I non `e illimitato inferiormente poich´e w0 ≥ 0. Andrea Scozzari (a.a. 2013-2014) Programmazione Lineare - Algoritmo del Simplesso March 21, 2014 5/7 Algoritmo del Simplesso Si risolve il problema w0 = min y1 + . . . + ym = m P (bi ) − i=1 ai1 x1 + ai2 x2 + . . . + ain xn + yi = bi xj ≥ 0 yi ≥ 0 m n P P ( aij )xj j=1 i=1 i = 1, . . . , m j = 1, . . . , n i = 1, . . . , m Teorema Il sistema S ammette soluzioni non negative se e solo se w0 = 0 Andrea Scozzari (a.a. 2013-2014) Programmazione Lineare - Algoritmo del Simplesso March 21, 2014 6/7 Algoritmo del Simplesso Dal teorema: 1. w0 = 0, Esiste un sistema in FCA equivalente ad S 2. w0 > 0 S non ammette soluzioni a componenti non negative ⇒ Il problema di partenza `e inammissibile Nel caso 1. L’ultimo sistema di equazioni in corrispondenza delle sole variabili originarie x rispetto al quale l’algoritmo si ferma con w0 = 0, `e il sistema S 0 in FCA equivalente ad S. Una Soluzione Basica Ammissibile di S 0 `e la SBA di partenza per il problema originario. Andrea Scozzari (a.a. 2013-2014) Programmazione Lineare - Algoritmo del Simplesso March 21, 2014 7/7 Problema Consideriamo il seguente problema di PL Modello di PL max Z 4 x1 3x2 x1 x2 100 2 x1 x2 150 3x1 4 x2 360 x1 , x2 0 Modello in Forma Canonica Ammissibile max Z 4 x1 3x2 x1 x2 x3 100 2 x1 x2 x4 150 3x1 4 x2 x5 360 x1 , x2 , x3 , x4 , x5 0 Quale è la Soluzione Basica Ammissibile? 1 Individuazione della prima SBA Modello in FCA max Z 4 x1 3x2 x1 x2 x3 100 2 x1 x2 x4 150 3x1 4 x2 x5 360 x1 , x2 , x3 , x4 , x5 0 1 0 0 1 B 0 1 0, N 2 0 0 1 3 Z=0 1 1 4 1 1 1 0 0 100 A 2 1 0 1 0, b 150 3 4 0 0 1 360 x3 xB x4 , x5 x 0 xN 1 x 2 0 100 x3 100 xB B 1 150 x4 150 360 x5 360 2 Verifica dell’ottimalità della SBA corrente La soluzione del problema è ottima? CRITERIO e TEST di OTTIMALITA’ Una SBA è ottima se i benefici ridotti sono tutti minori o uguali a zero. Infatti, prendiamo una SBA x=(xB,xN), il valore della Funzione Obiettivo Z può essere riscritto in maniera equivalente: 1 1 Z (c c B N ) x N c B b T N T B T B Dato che x è una SBA (xB=B-1b ≥ 0; xN = 0) : Per ogni altra soluzione con xN ≥ 0 per cui si avrà: Z cBT B1b Z cBT B1b (cTN cBT B 1 N ) 0 4 0 Il test Fallisce 3 Costruzione della nuova SBA Come migliorare il valore della soluzione del problema? Osserviamo la funzione obiettivo. L’unico modo per aumentare Z è quello di aumentare il valore di x1 o di x2. max Z 4 x1 3x2 Questo comporta scambiare di ruolo una variabile non basica con una variabile basica. x1 x2 x3 100 Come faccio a garantire l’ammissibilità dei vincoli effettuando lo scambio? Di quanto posso aumentare x1 o x2? 2 x1 x2 x4 150 4 Costruzione della nuova SBA I coefficienti della funzione obiettivo rappresentano il “tasso” di miglioramento del valore di Z. max Z 4 x1 3x2 Dato che il problema è di massimo, si sceglierà, ad esempio, la variabile col massimo tasso di miglioramento. In questo caso x1. Esattamente una tra le variabili x3, x4, x5. deve uscire dalla base, ed assumerà valore nullo, ma le restanti variabili di base devono continuare a soddisfare i vincoli di non-negatività: x1 x2 x3 100 2 x1 x2 x4 150 3x1 4 x2 x5 360 x1 , x2 , x3 , x4 , x5 0 se x1 100/1 x3 0 se x1 150/2 x4 0 se x1 360/3 x5 0 5 Verifica dell’illimitatezza del Problema TEST di ILLIMITATEZZA Il problema è illimitato superiormente se per qualche variabile xi fuori dalla base : i) 0 i) 0 i ii) B 1 Nei 0 1 ii ) B 1 N 2 3 1 1 4 Il test Fallisce 6 Significato del Test di Illimitatezza TEST di ILLIMITATEZZA Il problema è illimitato superiormente se per qualche variabile xi fuori dalla base : i) 0 i) 0 i ii) B 1 Nei 0 1 ii ) B 1 N 2 3 1 1 4 Il test Fallisce Consideriamo la colonna della variabile entrante x1. La scelta della variabile uscente di base può scriversi: Rapporto x1 b 1 2, 3 100 150, 360 100/1 150/2, min100 , 150 , 360 1 2 3 360/3 x1 x2 x3 100 7 Costruzione della nuova SBA Si sceglierà quel valore dell’incremento di x1 che “garantisce” l’ammissibilità della nuova soluzione min 100, 75, 120 75 x4 esce dalla base 1 1 0 1 0 B 0 2 0, N 1 1 0 3 1 4 0 1 1 1 0 0 A 2 1 0 1 0 3 4 0 0 1 x3 xB x1 , x5 x 0 xN 2 x 4 0 100 x3 25 xB B 1 150 x1 75 360 x5 135 8 Definizione della nuova forma canonica Questa nuova soluzione è ottima o è possibile ottenere un valore migliore? max Z 4 x1 3x2 Nell’espressione di Z compare una variabile basica ed una fuori dalla base. Se si decide di variare x2, per garantire l’ammissibilità, si dovrà modificare anche x1. 2x1 x2 x4 150 RISCHIO: x1 potrebbe diminuire facendo diminuire anche Z. Idea. Far “sparire” la variabile x1 dalla funzione obiettivo in modo tale che Z dipenda solo dalle variabili non basiche. 9 Definizione della nuova forma canonica A partire dall’equazione vincolare che ha individuato la variabile x4, si ricava x1: 1 1 x1 75 x2 x4 2 2 Da cui : 1 1 Z 4 x1 3x2 4 75 x2 x4 3x2 300 x2 2 x4 2 2 max Z 300 x2 2 x4 1 1 x2 x4 x3 25 2 2 1 1 x2 x4 x1 75 2 2 5 3 x2 x4 x5 135 2 2 x1 , x2 , x3 , x4 , x5 0 Il nuovo problema si trova nuovamente in FCA, come nel problema di partenza 10 Individuazione della SBA Ripetendo gli stessi ragionamenti si ottiene: 1 1 0 1 B 1 2 0, N 0 4 3 1 0 0 1 0 x2 xB x1 , x5 x 0 xN 3 x 4 0 100 x2 50 xB B 1 150 x1 50 360 x5 10 max Z 350 2 x3 x4 2 x3 x4 x2 50 x3 x4 x1 50 5 x3 x4 x5 10 x1 , x2 , x3 , x4 , x5 0 11 Verifica dell’ottimalità della SBA corrente La soluzione del problema è ottima? TEST di OTTIMALITA’ La SBA è ottima se i benefici ridotti sono tutti minori o uguali a zero: Z 350 2x3 x4 Dato che le variabili devono essere tutte non-negative, risulta: Z 350 Dato che la Soluzione Basica Ammissibile corrente ha valore esattamente pari a 350, questa soluzione è ottima. 12
© Copyright 2024 Paperzz