Programmazione lineare:basi e soluzioni di base p. 1/33 Programmazione lineare: basi e soluzioni di base Mariantonia Cotronei Facoltà di Ingegneria Università degli Studi Mediterranea di Reggio Calabria
Programmazione lineare:basi e soluzioni di base p. 2/33 Variabili di base e variabili fuori base Consideriamo il problema della PL in forma standard dove ν = min c T x A x = b x 0 c,x R n, A R m n, b R m Rappresentazione compatta { } min c T x : Ax = b, x 0 Il vettore c T è anche detto vettore dei costi.
Programmazione lineare:basi e soluzioni di base p. 3/33 Si supponga che: m n; rango A = m. Indichiamo con A 1,A 2,...,A n le colonne di A, cioè A = [A 1,A 2,...,A n ]
Programmazione lineare:basi e soluzioni di base p. 4/33 DEFINIZIONE. Una collezione di m colonne linearmente indipendenti di A si dice base di A. Le variabili x j associate alle colonne nella base si dicono variabili di base. Le rimanenti variabili si dicono fuori base.
Programmazione lineare:basi e soluzioni di base p. 5/33 Le variabili di base possono essere sempre ricavate, univocamente, da quelle fuori base. Infatti, supponiamo per semplicità che la base B sia costituita dalle prime m colonne di A. Indichiamo con B = [A 1,A 2,...,A m ], N = [A m+1,a m+2,...,a n ] Allora: A = [B,N]
Programmazione lineare:basi e soluzioni di base p. 6/33 Analogamente il vettore x si scriverà come [ ] x = dove x B, x N rappresentano i vettori delle variabili di base e di quelle fuori base. x B x N Quindi il sistema Ax = b diventa: Bx B + Nx N = b
Programmazione lineare:basi e soluzioni di base p. 7/33 Per la lineare indipendenza delle prime m colonne di A, la matrice B è non singolare (cioè è invertibile): Bx B = b Nx N = x B = B 1 b B 1 Nx N e la soluzione [ ] [ ] x = x B x N = B 1 b B 1 Nx N x N soddisfa sempre, per costruzione, il sistema Ax = b dato.
Programmazione lineare:basi e soluzioni di base p. 8/33 Il ragionamento vale anche se la base non è costituita dalla prime m colonne di A. In generale, si definisce l insieme β {1, 2,...,n} di m elementi tali che la matrice B = [ A β(1), A β(2),...,a β(m) ] (dove β(1),...,β(m) è un arbitrario ordinamento di β e A β(j) indica la colonna β(j)-sima di A) costituisce una base, e si indica con η = {1, 2,...,n} \β l insieme complementare di β.
Si può ripetere lo stesso ragionamento raggruppando in x B le variabili di base (cioè le x j tali che j β) e in x N le variabili fuori base (cioè le x j tali che j η). Programmazione lineare:basi e soluzioni di base p. 9/33
Programmazione lineare:basi e soluzioni di base p. 10/33 DEFINIZIONE. La soluzione ottenuta ponendo x N = 0 e x B = B 1 b si dice soluzione di base associata alla base B. La soluzione di base (e, per estensione, la base B stessa) si dice ammissibile se In particolare: x B = B 1 b 0. è non degenere se x B > 0 è degenere se esiste almeno un j β tale che x j = 0
Programmazione lineare:basi e soluzioni di base p. 11/33 Esempio min x 1 2x 2 x 1 + x 2 2 x 1 2 x 2 1 x 1 0, x 2 0
Programmazione lineare:basi e soluzioni di base p. 12/33 Trasformazione in forma standard min x 1 2x 2 x 1 + x 2 + x 3 = 2 x 1 + x 4 = 2 x 2 + x 5 = 1 x 1 0, x 2 0, x 3 0, x 4 0, x 5 0 A = 1 1 1 0 0 1 0 0 1 0 0 1 0 0 1, b = 2 2 1
Programmazione lineare:basi e soluzioni di base p. 13/33 x B = B 1 b = β = (1, 2, 3), B = x N = [ x 4 x 5 ] = 0 1 0 0 0 1 1 1 1 [ 1 1 1 1 0 0 0 1 0 ] 0 0 2 2 1 = 2 1 1 x 1 = 2, x 2 = 1, x 3 = 1, x 4 = 0, x 5 = 0 La base è non ammissibile poiché x 3 < 0.
Programmazione lineare:basi e soluzioni di base p. 14/33 β = (1, 2, 4), B = x B = B 1 b = 1 0 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 2 2 1 = 1 1 1 x 1 = 1, x 2 = 1, x 3 = 0, x 4 = 1, x 5 = 0 La base è ammissibile non degenere.
Programmazione lineare:basi e soluzioni di base p. 15/33 β = (1, 2, 5), B = x B = B 1 b = 0 1 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 1 2 2 1 = 2 0 1 x 1 = 2, x 2 = 0, x 3 = 0, x 4 = 0, x 5 = 1 La base è degenere poiché x 2 = 0.
Programmazione lineare:basi e soluzioni di base p. 16/33 β = (2, 3, 4), B = x B = B 1 b = 0 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 0 0 2 2 1 = 1 1 1 x 1 = 0, x 2 = 1, x 3 = 1, x 4 = 2, x 5 = 0 La base è ammissibile non degenere.
Programmazione lineare:basi e soluzioni di base p. 17/33 Esercizio min x 1 2x 2 6x 1 + 4x 2 24 3x 1 2x 2 6 x 1 0, x 2 0 Individuare e classificare tutte le basi.
Programmazione lineare:basi e soluzioni di base p. 18/33 Teorema fondamentale della PL Si consideri un problema di programmazione lineare in forma standard, con m vincoli, n incognite, m n e rangoa = m. 1. Esiste una soluzione ammissibile se e solo se esiste almeno una soluzione ammissibile che è anche di base. 2. Esiste una soluzione ottimale se e solo se esiste almeno una soluzione ottimale che è anche di base.
Programmazione lineare:basi e soluzioni di base p. 19/33 Alcune considerazioni. Per determinare l ottimo di un problema di PL possiamo limitarci all esplorazione delle soluzioni di base, poiché tra di esse, se il problema ammette ottimo, si troverà la soluzione. Ciò non vuol dire che non possano esistere soluzioni ottimali non di base, ma almeno una delle soluzioni ottimali deve essere di base. Il teorema permette di passare da un problema in cui lo spazio delle soluzioni da analizzare per trovare l ottimo è un insieme continuo, ad un insieme di candidati ottimi finito.
Programmazione lineare:basi e soluzioni di base p. 20/33 Poichè le soluzioni di base nascono dall identificazione di una sottomatrice B invertibile costituita da m colonne della matrice A, il numero complessivo di possibili basi non potrà superare il numero di modi in cui è possibile scegliere m colonne da un insieme di n, e cioè: ( n m ) = m! n!(n m)!
Programmazione lineare:basi e soluzioni di base p. 21/33 In virtù delle osservazioni, una prima idea per risolvere un problema di PL potrebbe essere quella di generare tutte le soluzioni di base del problema, individuando quella ammissibile che minimizza la funzione obiettivo. Tuttavia, il numero di basi cresce, al crescere di n ed m ad una velocità tale da rendere totalmente impraticabile la strada dell enumerazione esplicita di tutte le soluzioni di base. Il metodo del simplesso permette di determinare una base ottimale evitando di generare esplicitamente tutte le soluzioni di base, compiendo cioè un enumerazione implicita delle basi, e utilizzando un criterio per la verifica dell ottimalità
Programmazione lineare:basi e soluzioni di base p. 22/33 Vettore dei costi ridotti Sia min { } c T x : Ax = b, x 0 il problema da risolvere e sia B una base ammissibile. Il sistema Ax = b si può riscrivere come: Bx B + Nx N = b x B = B 1 b B 1 Nx N, con B 1 b 0.
Programmazione lineare:basi e soluzioni di base p. 23/33 La funzione obiettivo f(x) diventa [ ] [ ] c T x [ B x = = c T B ct N x N c T B ct N ] [ B 1 b B 1 Nx N x N ] c T x = c T B B 1 b + (c T }{{} N ct B B 1 N)x }{{ N } costante c T N x N [ ] B 1 b Indicando con x = la soluzione di base 0 ammissibile, la costante rappresenta il valore della soluzione di base ammissibile, cioè f( x) = c T x.
Programmazione lineare:basi e soluzioni di base p. 24/33 DEFINIZIONE. Il vettore c T N = ct N ct B B 1 N si chiama vettore dei costi ridotti rispetto alla (soluzione di) base B
Programmazione lineare:basi e soluzioni di base p. 25/33 Osserviamo che dove c T N x N = c T x c T = c T c T B B 1 A. Infatti si ha: c T = c T c T B B 1 A = c T B ct B B 1 B }{{} T c 0 T N ct B B 1 N }{{} c T N Anche a c T si suole dare il nome di vettore dei costi ridotti, e, per definizione, esso è nullo sulle variabili di base.
Programmazione lineare:basi e soluzioni di base p. 26/33 Test di ottimalità TEOREMA. (Criterio sufficiente di ottimalità) Sia B una base ammissibile. Se c T N 0T ( o, equivalentemente, c T 0 T ) allora la soluzione di base associata a B è ottima. In questo caso si dice che la base stessa è ottima.
Programmazione lineare:basi e soluzioni di base p. 27/33 Dimostrazione Siano: x la generica soluzione x = [x B,x N ] T x la soluzione di base ammissibile La soluzione è scritta come: [ ] [ x = x B x N = B 1 b B 1 Nx N x N ] Il valore di tale soluzione: f(x) = f( x) + c T N x N
Programmazione lineare:basi e soluzioni di base p. 28/33 L insieme ammissibile F = {x : Ax = b, x 0} può anche essere rappresentato come F = {x = [x B x N ] T : x B = B 1 b B 1 Nx N, x B 0, x N 0} Il problema di PL risulta allora essere equivalente a (tenendo conto che f( x) è costante) ν = min c T N x N B 1 Nx N B 1 b x N 0
Programmazione lineare:basi e soluzioni di base p. 29/33 Per tale problema, la soluzione x N = 0 è sempre ammissibile. Per ipotesi c T N 0, quindi x N = 0 è soluzione ottima. Allora x = [x B, x N ] T = [B 1 b, problema in esame. 0] T è soluzione ottima del
Programmazione lineare:basi e soluzioni di base p. 30/33 Il teorema fornisce solo una condizione sufficiente di ottimalità. La condizione diventa necessaria se si suppone che la soluzione di base sia non degenere. TEOREMA. Se una soluzione di base non degenere è ottima, allora il suo vettore dei costi ridotti è non negativo. Ciò vuol dire che, in presenza di degenerazione, si possono avere costi ridotti negativi anche in corrispondenza a una soluzione base ammissibile ottima.
Programmazione lineare:basi e soluzioni di base p. 31/33 Esempio min x 1 2x 2 x 1 + x 2 2 x 1 2 x 2 1 x 1 0, x 2 0 c T = [ 1, 2, 0, 0, 0]
Programmazione lineare:basi e soluzioni di base p. 32/33 β = (2, 3, 4), c T B = [ 2, 0, 0] Tale base è non degenere e si ha la soluzione di base ammissibile x = [0, 1, 1, 2, 0] T. Il vettore dei costi ridotti è: c T = c T c T B B 1 A = [ 1, 0, 0, 0, 2] Poiché c T 1 < 0, la soluzione (e quindi la base) non è ottima.
Programmazione lineare:basi e soluzioni di base p. 33/33 β = (1, 2, 4), c T B = [ 1, 2, 0] Anche tale base è non degenere e si ha la soluzione di base ammissibile Il vettore dei costi ridotti è: x = [1, 1, 0, 1, 0] T. c T = c T c T B B 1 A = [0, 0, 1, 0, 1] Poiché c T 0, la soluzione (e quindi la base) è ottima.