Metodo del simplesso Si consideri il seguente problema di

Metodo del simplesso
N.B.: Se qualche passaggio non ti è chiaro scrivici sul forum!
Si consideri il seguente problema di programmazione lineare (PL)
max z = 3x1 + 4x2
2x1 + x2 <= 8
-x1 +2x2 <= 6
x1 , x2 >=0
Applicare il simplesso e determinare la soluzione ottima
Consideriamo il problema (PL) in Forma Standard aggiungendo le variabili di slack e
di surplus e mettendo i vincoli di uguaglianza.
min z = cT x
Ax = b
x>= 0
- min –z = -3x1 -4x2
2x1 + x2 +x3 = 8
-x1 + 2x2 + x4 = 6
x >= 0
x1 x2 x3 x4
A= [
]
Poiché abbiamo la matrice identità nelle colonne x3 e x4 la base di partenza sarà B = {
3, 4} Scriviamo la matrice di base AB e la sua inversa sarà proprio AB
AB = [
]
Calcoliamoci gli b = xB = A-1B b = [
] [ ]= [ ]
La base è ammissibile poiché gli xB sono >=0
Test di ottimalità per le variabili fuori base
zj – cj = cTB A-1B aj <= 0
CB è la matrice con i coefficienti di costo della funzione obiettivo delle variabili in
base. Aj e’ la colonna della variabile fuori base con la quale si fa il test di ottimalità.
z1 – c1 = [
][
][
z2 – c2 = 3 e z 2 – c2 = [
]
][
][ ]
Poiché i coefficienti sono > 0 allora scegliamo quello con il valore maggiore (Secondo
la regola del gradiente). Quindi x2 entra in base.
Ora facciamo il test di illimitatezza. Se y i k ≤0 ∀i=1,...m, allora la soluzione del
problema è illimitata (non esiste ottimo finito), e l’algoritmo termina altrimenti
facciamo il test dei minimi rapporti per stabilire quale variabile uscirà dalla base.
Test illimitatezza
yj = A-1B aj
y2 = [
][ ]
[ ]
Test minimi rapporti
x3 x4
∀j = 1,…,k} = { 8/1 , 6/2}
Min = {
x4 esce dalla base. Nuova base B = { 3, 2} N={1, 4}
AB = [
]
A-1B = [
]
Per calcolare l’inversa di una matrice 2x2 basta scambiare a11 con a22 e cambiare di
segno ad a12 e a21. Poi calcolare il determinante e dividere la matrice con
quest’ultimo.
xB = [
][ ]
[ ]
Test di ottimalità
z1 – c1 = [
][
z4 – c4 = [
][ ]
][
]
x1 entra in base
Test illimitatezza
Y1 = [
][
]
[
]
[
][
]
Test minimi rapporti
Poiché abbiamo un y negativo allora il test dei minimi verrà fatto solo sulla x3 che di
conseguenza esce dalla base.
Nuova base B = {1, 2} N = {3, 4}
AB = [
]
A-1B = [
XB = [
][ ]
]
[ ]
Test di ottimalità
z3 – c3 = [
] [
z4 – c4 = [
][ ]
][ ]
[
][ ]
L’algoritmo termina poiché tutti i z j – cj sono <= 0. Quindi la base B = {1, 2} è ottima.