Sei sulla pagina 1di 15

Corso di Ricerca Operativa - A.

Sciomachen 1
Metodo del simplesso quando 0 e S
Il simplesso un algoritmo iterativo che ha
bisogno di una soluzione iniziale nota da cui
partire per cercare la soluzione ottimale
Si sceglie lorigine perch:
una soluzione ammissibile ovvia
Corrisponde ad una stato del sistema di riferimento
inattivo (livello delle attivit delle variabili
decisionali = 0) in cui tutte le risorse sono disponibili
Il valore di z 0 (sicuramente migliorabile)
Se 0 e S a volte comunque possibile identificare un
vertice ammissibile che, a seconda della f.o., pu
essere ottimale oppure no
Un vertice iniziale ammissibile = 0 corrisponde ad una
soluzione di base in cui alcune variabili decisionali
sono > 0 e qualche variabile slack = 0

la matrice B ammissibile iniziale non la matrice I
necessario quindi identificare B tra le
colonne di A e invertirla ad ogni iterazione per
determinare il valore di x
B


Complessit di calcolo!


2
Metodo del simplesso quando 0 e S
Punto di forza della PL: - programmi molto efficienti in
grado di risolvere rapidamente problemi con migliaia
di vincoli e centinaia di migliaia di variabili

calcolare ad ogni iterazione B
-1
sarebbe troppo
oneroso e poco efficiente
necessario quindi avere I come base iniziale

IDEA: si parte comunque dallorigine risolvendo un
problema modificato finch con iterazioni del
simplesso si arriva ad un vertice di S per poi
proseguire verso il vertice ottimale (se non lo
gi)


2
Metodo del simplesso quando 0 e S
4
Soluzione iniziale diversa da I
Dato un problema in forma standard:
max cx
Ax s b
x > 0
inserendo le variabili slack y si ottiene il problema in
forma aumentata:
max cx
Ax + Iy = b
x, y > 0

La soluzione di base x = 0 e y = b ammissibile e B = I
(origine)
5
Soluzione iniziale diversa da I
Si consideri ora un problema di PL:
max cx
Ax = b
x > 0
in cui b > 0 ma I . A
In questo caso il problema non in forma aumentata
(ad esempio per la presenza nel problema originale di
vincoli di =)

lorigine degli assi non un vertice iniziale ammissibile

Si modifica il problema originale (sia f.o. che matrice A)
in modo da avere comunque I come matrice iniziale



6
Metodo di penalizzazione
Metodo utilizzato quando si ha un problema di max
con vincoli di e pochi vincoli di = (risorse da
consumare totalmente) per cui mancano (poche)
colonne della matrice I
Si aggiunge al sistema di vincoli un vettore di variabili
artificiali y e si risolve il sistema:
max cx - My
Ax + Iy = b
x, y > 0, con M > 0 (grande)
Soluzione ammissibile : x = 0, y = b
Nota. Si aggiungono alla matrice A tante variabili
artificiali quante sono le colonne mancanti alla
matrice I nel problema originale in forma aumentata
7
Metodo di penalizzazione
Il termine My una penalizzazione del valore della
f.o. che interviene se y = 0
Risolvendo il problema cos modificato il simplesso,
volendo max z, tende a far uscire di base y
Casi possibili:
1) Ottimo finito del problema modificato
y = 0 si ottenuto lottimo del problema originale
y = 0 S = C il problema originale non ha
soluzione
2) Ottimo illimitato del problema modificato
y = 0 il problema originale illimitato
y = 0 il problema originale non ha soluzione
Nota. Possibili difficolt di calcolo a causa di M
Corso di Ricerca Operativa - A. Sciomachen 8
Esercizio metodo di penalizzazione
Dato il seguente problema di PL:
max 3x
1
+ 2x
2
2x
1
+ x
2
10
-3x
1
+ 2x
2
6
x
1
+ x
2
= 6
x
1
, x
2
0
Trasformiamo tutti i vincoli in =

max 3x
1
+ 2x
2
2x
1
+ x
2
+ x
3
= 10
-3x
1
+ 2x
2
+ x
4
= 6
x
1
+ x
2
= 6
x
1
, x
2
, x
3
, x
4
0
Variabili slack
Corso di Ricerca Operativa - A. Sciomachen 9
Esercizio metodo di penalizzazione
necessario avere una variabile di base in ogni
equazione con coeff. = 1

Aggiungiamo una variabile artificiale alla terza
equazione ed inseriamo la penalit corrispondente
nella f.o.
max 3x
1
+ 2x
2
My
1
2x
1
+ x
2
+ x
3
= 10
-3x
1
+ 2x
2
+ x
4
= 6
x
1
+ x
2
+ y
1
= 6
x
1
, x
2
, x
3
, x
4,
y
1
0
Corso di Ricerca Operativa - A. Sciomachen 10
Metodo di penalizzazione: Tableau iniziale
Si attribuisce a M un valore arbitrario (ma sempre
penalizzante rispetto a quello che potrebbe essere il
valore della f.o.)
Poniamo M = 20
x
1
x
2
x
3
x
4
y
1
z -3 -2 0 0 M 0
x
3
2 1 1 0 0 10
x
4
-3 2 0 1 0 6
y
1
1 1 0 0 1 6
Corso di Ricerca Operativa - A. Sciomachen 11
Metodo di penalizzazione: Tableau iniziale
Attenzione: Il Tableau non in forma canonica (il
coeff. Della f.o. nella colonna di I = 0)
necessario effettuare delle operazioni elementari di
riga per porare il coeff. = 0
x
1
x
2
x
3
x
4
y
1
z -3 -2 0 0 20 0
x
3
2 1 1 0 0 10
x
4
-3 2 0 1 0 6
y
1
1 1 0 0 1 6
Corso di Ricerca Operativa - A. Sciomachen 12
Tableau iniziale







Procediamo con una operazione di pivot
Entra in base x
1
esce x
3
x
1
x
2
x
3
x
4
y
1
z -23 -22 0 0 0 -120
x
3
2 1 1 0 0 10
x
4
-3 2 0 1 0 6
y
1
1 1 0 0 1 6
Corso di Ricerca Operativa - A. Sciomachen 13
Nuovo Tableau
x
1
x
2
x
3
x
4
y
1
Z 0 -21/2 23/2 0 0 -5
x
1
1 1/2 1/2 0 0 5
x
4
0 7/2 3/2 1 0 21
y
1
0 1/2 -1/2 0 1 1
La soluzione non ottimale
Eseguiamo una operazione di pivot: entra in base x
2

esce y
1
Corso di Ricerca Operativa - A. Sciomachen 14
Nuovo Tableau
La condizione di ottimalit verificata
y
1
non in base la soluzione di base corrente
ammissibile e ottimale per il problema originale
x
1
x
2
x
3
x
4
y
1
Z 0 0 1 0 21 16
x
1
1 0 1 0 -1 4
x
4
0 0 5 1 -7 14
x
2
0 1 -1 0 2 2
15
Soluzione ottimale problema originale
Ha soluzione ottimale:
x1 = 4, x2 = 2, x3 = 0, x4 = 14, z = 16
Nota. Il metodo del simplesso arriva ad S
direttamente nel vertice ottimale (situazione
frequente ma non sempre verificata)
Nota. possibile non esplicitare il valore di M e
tenerlo come parametro fino alla fine
Il problema originale
max 3x
1
+ 2x
2
2x
1
+ x
2
10
-3x
1
+ 2x
2
6
x
1
+ x
2
= 6
x
1
, x
2
0

Potrebbero piacerti anche