Nella trattazione del Metodo del Simplesso supporremo di dover risolvere il seguente generico problema di PL formulato in forma standard:
dove ha rango pari ad m.
Con indicheremo l’i.ma colonna di A, mentre con ne indicheremo l’i.ma riga.
Suppurremo, inoltre, che sia la regione ammissibile corrispondente al problema.
Come già sottolineato, il Metodo del Simplesso passa da una soluzione ammissibile di base ad una soluzione ammissibile di base adiacente e termina quando non esiste una soluzione ammissibile di base adiacente migliore.
Infatti, esso può essere interpretato come algoritmo di ricerca locale. Si noti che sfortunatamente in generale una soluzione ottima localmente non è necessariamente ottima globalmente.
Fortunatamente, però, nel caso di problemi di PL, dal momento che si tratta di ottimizzare una funzione obiettivo convessa su una regione ammissibile convessa, si è certi che l’ottimo locale restituito in output dal metodo del simplesso è ottimo anche globalmente.
Supponiamo che ad una generica iterazione, il Metodo del Simplesso abbia calcolato la soluzione ammissibile di base x in P.
Come individuare una direzione lungo la quale si verifica un decremento del valore corrente della funzione obiettivo a partire da x?
In altri termini, data la soluzione ammissibile di base corrente x in P a partire dalla quale vogliamo muoverci lungo la direzione di un certo vettore , come va scelto detto vettore d?
Innanzitutto, dobbiamo limitare la scelta di d a quei vettori che non ci conducano fuori dalla regione ammissibile P. Tale osservazione porta immediatamente alla seguente definizione di direzione ammissibile.
Definizione: Sia .
Un vettore è detto direzione ammissibile a partire da x se esiste uno scalare tale che
Dunque, dalla soluzione ammissibile di base corrente x tale che
si vuole passare alla soluzione adiacente
può essere ottenuta selezionando una variabile non di base ed incrementando il suo valore di una quantità positiva , mantenendo nulle le restanti n-m-1 variabili non di base.
Algebricamente ciò equivale a porre
Al contempo, anche il vettore di base dovrà cambiare in , dove è il vettore le cui componenti sono le componenti di d corrispondenti alle variabili di base.
Come determinare ? Basta osservare che si vuole che
Ricordando che
Ma come scegliere j fra le variabili non di base? Ricordando che vogliamo spostarci lungo una direzione ammissibile di miglioramento del valore corrente di funzione obiettivo:
Definizione: Sia x una soluzione di base, B la matrice di base ad essa associata e sia il vettore dei costi associati alle variabili di base. Per ogni si definisce costo ridotto della variabile .
Dunque, j è un indice di variabile non di base cui corrisponde un costo ridotto negativo.
Nota: per ogni variabile di base si ha che
Teorema
Sia x una soluzione ammissibile di base, B la matrice di base ad essa associata e sia il corrispondente vettore dei costi ridotti.
Se , allora x è ottima.
Se x è ottima e non degenere, allora .
Dunque, per essere sicuri che la corrente soluzione ammissibile di base non degenere sia ottima, è sufficiente controllare che tutti i costi ridotti delle variabili correntemente non in base siano non negativi.
Tale controllo equivale ad esaminare tutte le n-m direzioni di base.
Se, invece, la corrente soluzione è degenere, non è purtroppo disponibile un test altrettanto semplice. Fortunatamente, come vedremo di qui a poco, esiste una “regola” (Regola di Bland) che consente di ovviare a tali difficoltà in maniera efficiente.
In quanto segue supporremo per il momento di trattare soluzioni ammissibili di base non degeneri.
Se esiste un costo ridotto con j indice di variabile non di base, allora la j.ma direzione di base d ( e ) è una direzione di base ammissibile che porta ad un decremento del valore della funzione obiettivo.
Muovendosi lungo la direzione di d, il valore della variabile non di base di indice j passa da 0 ad un valore , mentre il valore delle altre variabili non di base rimane nullo.
Si fa riferimento a tale cambiamento dicendo che la variabile (o la colonna ) entra in base.
Muoversi lungo la direzione d vuol dire muoversi toccando punti del tipo , ottenendo decrementi del valore della funzione obiettivo.
E’ banale osservare che vorremmo raggiungere il punto cui corrisponde il massimo di tali decrementi, sempre però rimanendo all’interno della regione ammissibile P, e cioè il punto , dove
La risultante variazione del valore della funzione obiettivo sarà pari a:
Ma quanto vale ?
Osserviamo che
per cui i vincoli di uguaglianza che descrivono P non possono essere mai violati.
Così, può essere non ammissibile solo se una delle sue componenti diventa negativa.
A tal proposito osserviamo che le variabili fuori base in x rimangono non nulle. Infatti:
Dunque, per stabilire il valore da assegnare a occorre preservare la nonnegatività delle sole variabili che in x sono in base.
A tal proposito distinguiamo due casi:
.
In questa caso, dato che per ogni il vettore non può mai diventare non ammissibile, poniamo .
per qualche .
In questo caso, occorre porre
Nota: , dato che per ogni i (ipotesi di soluzioni non degeneri).
Supponiamo di aver calcolato . A questo punto, ci spostiamo da x a .
Sia l l’indice di variabile tale che
allora
Dunque, la variabile di base è diventata nulla, mentre la variabile non di base è diventata positiva e sostituisce in base.
Si fa riferimento a tale cambiamento dicendo che
Coerentemente, per ottenere la matrice di base associata alla nuova base, sostituiamo la colonna con la colonna , cioè
Teorema
Valgono le seguenti proprietà:
Si noti che,
Dunque, abbiamo raggiunto il nostro scopo: passare da una soluzione ammissibile di base (che è un vertice del poliedro descritto dall’insieme dei vincoli) ad una adiacente (vertice adiacente) cui corrisponde un valore della funzione obiettivo inferiore.
Abbiamo, cioè, effettuato un’iterazione dell’algoritmo del simplesso, che viene di solito chiamata operazione di pivot, formalmente descritta nella slide successiva.
Teorema
Sia dato un problema di PL avente regione ammissibile P non vuota.
Si supponga che ogni soluzione di base ammissibile al problema sia non degenere, allora il Metodo del Simplesso termina dopo un numero finito di iterazioni.
Al termine dell’esecuzione, possono verificarsi due possibilità:
per cui il valore ottimo della funzione obiettivo è .
Che succede in caso di soluzioni degeneri?
Può accadere che l’algoritmo cicli indefinitamente.
Rimedio: semplice regola (Regola di Bland) nello scegliere le variabili che escono dalla base e quelle che entrano in caso di ex equo, cioè nel caso in cui a più di una variabile di base corrisponda il minimo valore per e nel caso in cui più di una variabile non di base abbia un costo ridotto negativo.
Regola di Bland
Caso A:
Si decide di far entrare in base la variabile
Caso B:
Si decide di far uscire dalla base la variabile
L’algoritmo del Simplesso con regola di Bland termina in al più iterazioni (# vertici _ # finito di pivoting).
Per ciascuna iterazione:
1. Presentazione del Corso ed Introduzione alla Programmazione Mat...
2. Introduzione ai Problemi di PL
6. Algoritmo del Simplesso Revisionato
7. Algoritmo del Simplesso Tabellare
10. Soluzione di Problemi di PL tramite Algoritmo del Simplesso
11. Problemi di Programmazione Lineare Intera
12. PLI con matrice dei vincoli unimodulare
13. Problemi di PLI: Branch & Bound
14. Il Problema dello Zaino 0/1 e il Problema dello Zaino Frazionar...
15. Il Problema dello Zaino 0/1: un algoritmo B&B
16. Il Problema dello Zaino 0/1: un algoritmo di Programmazione Din...
17. Richiami di Teoria dei Grafi: definizioni e notazioni
18. Il Problema del Vertex Cover Minimo di un Grafo
19. Il Problema dell'Albero di Copertura Minimo (MST)
20. Il Problema dell'Albero di Copertura Minimo (MST): esempio
D. Bertsimas e J.N. Tsitsiklis, Introduction to Linear Optimization, Belmont - Massachusetts (USA), Dynamic Ideas and Athena Scientific, 2008.
M. Fischetti, Lezioni di Ricerca Operativa, Padova, Edizioni Libreria Progetto Padova, 1999.
S. Martello, Fondamenti di Ricerca Operativa L-A, Bologna, Società Editrice Esculapio, 2004.
S. Martello, Ricerca Operativa LS, Bologna, Società Editrice Esculapio, 2004.
Dispense ed Appunti del Corso.