ALGORITMO DEL SIMPLESSO ESERCITAZIONI DI RICERCA OPERATIVA 1 ESERCIZIO 1. Risolvere il seguente programma lineare (a) con il metodo del simplesso e (b) con il metodo grafico. (1) min x 1 x () (3) (4) (5) x 1 + x 5 3x 1 + x 9 x 4 x 1, x 0 ESERCIZIO. Risolvere il seguente programma lineare (a) con il metodo del simplesso e (b) con il metodo grafico. (6) max 3x 1 x (7) (8) (9) (10) x 1 x 1 x 1 + x 1 x 1 + x 0 x 1, x 0 ESERCIZIO 3. Risolvere il seguente programma lineare utilizzando l algoritmo del simplesso. (11) max 3x 1 x + x 3 (1) (13) (14) (15) x 1 + x 6 x + x 3 4 x 1 x 3 3 x 1, x, x 3 0 ESERCIZIO 4. Risolvere il seguente programma lineare per mezzo dell algoritmo del simplesso. (16) min x 1 3x 1
ESERCITAZIONI DI RICERCA OPERATIVA 1 (17) (18) (19) (0) x 1 + x 4 x 1 3 x 3 x 1, x 0 ESERCIZIO 5. Risolvere il seguente programma lineare per mezzo dell algoritmo del simplesso. (1) max x 1 x () x 1 + x 1 (3) x 1 + x (4) x 1, x 0
ALGORITMO DEL SIMPLESSO 3 Soluzioni 1. (a) Prima di applicare il metodo del simplesso è indispensabile porre il programma lineare in forma standard. Per ottenere questo è necessario, in questo caso, trasformare (1) (5) in un programma di minimo cambiando il segno della funzione obiettivo (1) e scrivere i vincoli () (4) come uguaglianze utilizzando opportune variabili di slack x 3, x 4, x 5. (1 ) ( ) (3 ) (4 ) (5 ) max x 1 + x x 1 + x + x 3 = 5 3x 1 + x + x 4 = 9 x + x 5 = 4 Grazie alla presenza delle variabili di slack, è immediatamente identificabile sul sistema dei vincoli una base ammissibile iniziale B 0 = {x 3, x 4, x 5 }. max z = 0 +x 1 +x x 3 = 5 x 1 x x 4 = 9 3x 1 x x 5 = 4 x B 0 = {x 3, x 4, x 5 } La presenza di costi ridotti γ 1, γ > 0 indica che la soluzione ammissibile di base associata a B 0 non è ottima; la variabile x 1, che presenta costo ridotto massimo, è idonea ad entrare in base. La variabile uscente è scelta con il criterio dei rapporti minimi, quindi { 5 min 1, 9 } = 9 3 3 indica che la variabile uscente è x 4. Effettuando l operazione di cardine si ottiene la riformulazione rispetto alla nuova base B 1. max z = 6 3 x 4 + 1 3 x x 3 = + 1 3 x 4 3 x x 1 = 3 1 3 x 4 1 3 x x 5 = 4 x B 1 = B 0 {x 1 } \ {x 4 } = {x 3, x 1, x 5 } Poiché γ > 0 la soluzione associata a B 1 non è ottima, e si prosegue facendo entrare in base x. La variabile uscente è in questo caso x 3, alla quale corrisponde il minimo tra i rapporti /3, 3 1/3, 4 1. Si ottiene quindi, effettuando l operazione di cardine, la seguente riformulazione. max z = 7 1 x 4 1 x 3 x = 3 + 1 x 4 3 x 3 x 1 = 1 x 4 + 1 x 3 x 5 = 1 1 x 4 + 3 x 3 B = B 1 {x } \ {x 3 } = {x, x 1, x 5 } La soluzione associata alla base B è ottima, poiché sulla riformulazione γ 4, γ 3 0.
4 ESERCITAZIONI DI RICERCA OPERATIVA 1 r x 5 4 x = 4 3 A(, 3) 1 S a 0 1 3 4 5 x 1 3x 1 + x = 9 x 1 + x = 5 Figura 1. Risoluzione per via grafica dell esercizio 1. (b) Essendo (1) (5) un programma in due sole variabili, è agevole utilizzare il metodo grafico. La Figura 1 rappresenta graficamente l insieme S a delle soluzioni ammissibili di (1) (5); la retta tratteggiata r è una isocosto e la direzione di crescita è quella indicata dal vettore (, 1). L ottimo è quindi localizzato nel punto A di coordinate x 1 =, x = 3. Si noti il percorso seguito sulla frontiera di S a dalle iterazioni del simplesso, attraverso i vertici (0, 0) (3, 0) (, 3) A.. Trasformando (6) (10) in forma standard, si introducono due variabili di slack x 3, x 5 associate rispettivamente ai vincoli (7) e (9) e una variabile di surplus x 4 associata al vincolo (8). Si ottiene dunque quanto segue. (6 ) max 3x 1 x (7 ) (8 ) (9 ) (10 ) x 1 x + x 3 = 1 x 1 + x x 4 = 1 x 1 + x + x 5 = 0 A differenza di quanto osservato nell esercizio 1, le variabili supplementari x 3, x 4, x 5 non formano una base ammissibile (la soluzione corrispondente avrebbe x 4 = 1). È quindi conveniente impostare il problema di prima fase. In questo caso è sufficiente aggiungere una singola variabile artificiale s 1, in corrispondenza del secondo vincolo. max s 1
ALGORITMO DEL SIMPLESSO 5 x 1 x + x 3 = 1 x 1 + x x 4 + s 1 = 1 x 1 + x + x 5 = 0 x 1,..., x 5, s 1 0 Ora la base B 0 = {x 3, s 1, x 5 } è ammissibile per il problema di prima fase, e si può avviare l algoritmo del simplesso. max z = 1 x 1 +x x 4 x 3 = 1 x 1 +x s 1 = 1 +x 1 x +x 4 x 5 = 0 +x 1 1x x 1,..., x 5, s 1 0 B 0 = {x 3, s 1, x 5 } A questo punto entra in base la variabile x (γ > 0) e la regola dei rapporti individua in x 5 la variabile uscente. max z = 1 +3x 1 x 5 x 4 x 3 = 1 +x 1 x 5 s 1 = 1 3x 1 +x 5 +x 4 x = 0 +x 1 x 5 x 1,..., x 5, s 1 0 B 1 = {x 3, s 1, x } Infine entra in base x 1 mentre esce s 1. max z = 0 s 1 x 3 = 4 3 1 3 s 1 1 3 x 5 + 1 3 x 4 x 1 = 1 3 1 3 s 1 + 3 x 5 + 1 3 x 4 x = 3 3 s 1 + 1 3 x 5 + 3 x 4 x 1,..., x 5, s 1 0 B = {x 3, x 1, x 5 } Poiché il problema di prima fase ha una soluzione ottima con funzione obiettivo pari a 0, il programma (6 ) (10 ) ha una soluzione ammissibile di base, corrispondente a x 3 = 4 3, x 1 = 1 3, x = 3 (x 4 = x 5 = 0 perché fuori base). Riformulando ora la funzione obiettivo (6 ) rispetto alla base B si ottiene quanto segue. max z = 1 3 + 5 3 x 5 + 1 3 x 4 x 3 = 4 3 1 3 x 5 + 1 3 x 4 x 1 = 1 3 + 3 x 5 + 1 3 x 4 x = 3 + 1 3 x 5 + 3 x 4 B = {x 3, x 1, x 5 } Sulla colonna di x 4 si può riconoscere la condizione di illimitatezza: γ 4 > 0, con tutti gli α i4 0. Il programma (6) (10) ha quindi S a ma S ott =. Si può osservare che dalla riformulazione è immediato ottenere l equazione parametrica di un raggio lungo il quale la funzione obiettivo cresce indefinitamente: x 3 = 4 3 + 1 3 x 4 x 1 = 1 3 + 1 3 x 4 t 0. x = 3 + 3 x 4 x 4 = t
6 ESERCITAZIONI DI RICERCA OPERATIVA 1 x r x 1 + x = 0 5 3x 1 x = 1 4 3 S a x 1 + x = 1 1 0 1 3 4 5 x 1 Figura. Risoluzione per via grafica dell esercizio. (Nota: corrisponde alla semiretta con origine in (x 1 = 1 3, x = 3 ) e giacente sulla retta di equazione x 1 + x = 0.) (b) Operando graficamente si ottiene la rappresentazione di S a data in Figura. La regione S a è illimitata (in alto a destra), e la retta isocosto r può essere spostata nella direzione di crescita indefinitamente. 3. La forma standard di (11) (15) si ottiene introducendo una variabile di slack x 4 e due variabili di surplus x 5, x 6. (11 ) max 3x 1 x + x 3 (1 ) (13 ) (14 ) (15 ) x 1 + x + x 4 = 6 x + x 3 x 5 = 4 x 1 x 3 x 6 = 3 x 1,..., x 6 0 Non avendo a disposizione una base ammissibile iniziale, è conveniente impostare e risolvere il problema di prima fase utilizzando due variabili artificiali s 1, s introdotte nei vincoli (13 ) e (14 ) rispettivamente. max s 1 s x 1 + x + x 4 = 6 x + x 3 x 5 + s 1 = 4 x 1 x 3 x 6 + s = 3 x 1,..., x 6, s 1, s 0
ALGORITMO DEL SIMPLESSO 7 Si può quindi applicare l algoritmo del simplesso a partire dalla base iniziale B 0 = {x 4, s 1, s }. max z = 7 +x 1 +x +x 3 x 5 x 6 x 4 = 6 x 1 x s 1 = 4 x x 3 +x 5 B 0 = {x 4, s 1, s } s = 3 1x 1 +x 3 +x 6 x 1,..., x 6, s 1, s 0 max z = 4 s +x +x 3 x 5 x 4 = 0 +s x x 3 x 6 s 1 = 4 x x 3 +x 5 B 1 = {x 4, s 1, x 1 } x 1 = 3 s +x 3 +x 6 x 1,..., x 6, s 1, s 0 max z = 4 +s x 4 x 5 x 6 x 3 = 0 +s 1 x 1 x 4 x 6 s 1 = 4 s +x 4 +x 5 +x 6 B = {x 3, s 1, x 1 } x 1 = 3 1 x 1 x 4 x 1,..., x 6, s 1, s 0 max z = 1 s 1 1 x 4 1 x 5 x 6 x 3 = 1 s 1 1 x + 1 x 5 s = 1 s 1 + 1 x 4 + 1 x 5 +x 6 B 3 = {x 3, s, x 1 } x 1 = 3 1 x 1 x 4 x 1,..., x 6, s 1, s 0 La base B 3 risulta ottima per il problema di prima fase, con x 3 = 4, s =, x 1 = 3, e valore di funzione obiettivo z = < 0. Quindi il programma lineare (11) (15) non ha soluzioni ammissibili. 4. Si perviene alla forma standard di (16) (0) cambiando segno alla funzione obiettivo e introducendo le variabili di slack x 3, x 4, x 5 rispettivamente nei vincoli (17), (18) e (19). (16 ) (17 ) (18 ) (19 ) (0 ) max x 1 + 3x x 1 + x + x 3 = 4 x 1 + x 4 = 3 x + x 5 = 3 x 1, x, x 3, x 4, x 5 0 Partendo dalla base B 0 = {x 3, x 4, x 5 } si ottiene la riformulazione max z = 0 +x 1 +3x x 3 = 4 x 1 x x 4 = 3 x 1 B 0 = {x 3, x 4, x 5 } x 5 = 3 x
8 ESERCITAZIONI DI RICERCA OPERATIVA 1 x 1 S a 0 1 3 x 1 Figura 3. Risoluzione per via grafica dell esercizio 4. Avendo γ 3, γ > 0 la soluzione ammissibile di base corrispondente non è ottima, e conviene portare in base x. La variabile uscente, determinata considerando il rapporto minimo { 4 min, 3 } = 3, risulta essere la x 5 (l elemento-cardine è evidenziato in grassetto). Si ottiene quindi max z = 9 +x 1 3 x 5 x 3 = 1 1x 1 +x 5 x 4 = 3 x 1 x = 3 1 x 5 max z = 13 x 3 + 1 x 5 x 1 = 1 x 3 +x 5 x 4 = +x 3 1x 5 B 1 = B 0 {x } \ {x 5 } B = B 1 {x 1 } \ {x 3 } x = 3 1 x 5 e infine, portando in base la x 5, max z = 15 3 x 3 1 x 4 x 1 = 3 x 4 x 5 = +x 3 x 4 B 3 = B {x 5 } \ {x 4 } x = 1 1 x 3 + 1 x 4. La soluzione x 1 = 3, x = 1 risulta quindi ottima per il problema (16) (0). La soluzione ottenuta con metodo grafico è illustrata in Figura 3 la retta isoprofitto tratteggiata è riferita al programma in forma standard; si noti come l esecuzione del simplesso abbia prodotto la sequenza di vertici (0, 0) (0, 3 ) (1, 3 ) (3, 1 ). 5. La forma standard di (1) (4) si ottiene introducendo la variabile di slack x 3 nel vincolo (), e la variabile di surplus x 4 nel vincolo (3). (1 ) max x 1 x
ALGORITMO DEL SIMPLESSO 9 ( ) (3 ) (4 ) x 1 + x + x 3 = 1 x 1 + x x 4 = x 1,..., x 4 0 Dalla forma standard non è immediata la derivazione di una base ammissibile (la base {x 3, x 4 } non è ammissibile). Si può ricorrere al problema di prima fase per determinare una soluzione ammissibile di base iniziale. È sufficiente una singola variabile artificiale s 1, aggiunta al vincolo (3 ), per completare la sottomatrice identità nella matrice del sistema. max s 1 x 1 + x + x 3 = 1 x 1 + x x 4 + s 1 = x 1,..., x 4, s 1 0 Il problema di prima fase così ottenuto ha una base ammissibile evidente B 0 = {x 3, s 1 }. max z = +x 1 +x x 4 x 3 = 1 +x 1 x s 1 = x 1 x +x 4 x 1,..., x 4, s 1 0 max z = 0 s 1 x 3 = 0 + 3 x 1 + 1 s 1 1 x 4 x = 1 1 x 1 1 s 1 + 1 x 4 x 1,..., x 4, s 1 0 B 1 = B 0 {x } \ {s 1 } Poiché il problema di prima fase ha un ottimo con valore nullo, segue che la base B 1 è ammissibile per (1 ) (4 ). Si procede quindi partendo dalla base B 1, eliminando la variabile artificiale s 1 e riformulando la funzione obiettivo (1 ) rispetto a B 1 : ( z = x 1 x = x 1 1 1 x 1 + 1 ) x 4 = 1 + 5 x 1 1 x 4. max z = 1 + 5 x 1 1 x 4 x 3 = 0 + 3 x 1 1 x 4 x = 1 1 x 1 + 1 x 4 x 1,..., x 4, s 1 0 max z = 4 5x +x 4 x 3 = 3 3x +x 4 x 1 = x +x 4 x 1,..., x 4, s 1 0 B = B 1 {x 1 } \ {x } Nell ultima riformulazione si osserva la condizione di illimitatezza γ 4 > 0, α 34, α 14 0. Risulta quindi S a, S ott =. La funzione obiettivo cresce illimitatamente
10 ESERCITAZIONI DI RICERCA OPERATIVA 1 lungo la semiretta x 1 = + t x = 0 x 3 = 3 + t x 4 = t t 0.