Sei sulla pagina 1di 62

Il Metodo del Simplesso

PL in forma standard
Min cx

Ax = b

x0

PL in forma standard

PL in forma standard
Min - cx

P2
Ax = b

x0

Max cx

P1
Ax = b

x0

Max cx Min - cx
3

Trasformazione di disequazioni lineari in equazioni


lineari

Variabili di slack
n

a x
j=1

ij j

bi

a x
j=1

ij

+ xsi = bi
n

bi aijxj

xsi = variabile slack


p Esempio :
p

j=1

3x1 - x2 + 2x3 8
3x1 - x2 + 2x3 + xs = 8
se x1 = 2, x2 = 1, x3 = 1
xs = 1
se x1 = 3, x2 = 4, x3 = 0.5
xs = 2
5

Se una varibile di slack, nella soluzione corrente,

uguale a zero, allora questa soluzione si trova sulla


frontiera
n maggiore di zero, la soluzione si trova nella regione
ammissibile
n minore di zero indica che la soluzione fuori dalla
regione ammissibile
n

Variabile di surplus
n

a x
j=1

ij j

a x x

bi

j=1

ij j

xsi = variabile di surplus

si

=bi
n

a x -b 0
j=1

p Esempio

ij j

3x1 - x2 + 2x3 8
3x1 - x2 + 2x3 - xs = 8
se x1 = 3, x2 = 1, x3 = 1
xs = 2
7

Slack e Surplus
p Variabili

vincolo

di Slack/Surplus sono associate ad ogni

Slack: quantit di risorsa non utilizzata


vincolo: 1x + 2y 40, soluzione: x=10,y=5
slack: 40-10-2(5)=20

Surplus: quantit di richiesta in eccesso


vincolo: 1x + 2y 40, soluzione: x=10,y=20
surplus: 10+2(20)-40=10
8

Idee risolutive (metodo del simplesso)


p
p

p
p

Focalizzare lattenzione esclusivamente sui vertici


Sviluppare una procedura iterativa:
1. Determinare un vertice iniziale
2. Verificare se il vertice ottimo (Test di ottimalit)
3. Determinare un nuovo vertice
Iniziare, quando possibile dal vertice (0,0)
Cercare vertici migliori a quello corrente tra i vertici
adiacenti (ricerca locale) identificando il tasso di
miglioramento della funzione obiettivo muovendosi
lungo uno spigolo
9

Idee risolutive (ct.)


p

Quindi ... il test di ottimalit consiste nel verificare se


esiste uno spigolo per il quale, spostandosi lungo di
esso, si produce un miglioramento della funzione
obiettivo

Tradurre la procedura in linguaggio algebrico , basata


sulla risoluzione di sistemi di equazioni

10

Vertici adiacenti
Soluzioni di Soluzioni
Base
Adiacenti
(Vertici)
(0,0)

(0,6) ; (4,0)

(0,6)

(2,6) ; (0,0)

(2,6)

(4,3) ; (0,6)

(4,3)

(4,0) ; (2,6)

(4,0)

(0,0) ; (4,3)

(0,6)

(2,6)
(4,3)

(0,0)
11

(4,0)

Algoritmo del Simplesso


p

Inizializzazione

Scegliere (0,0) come Soluzione di Base (SB)


iniziale

Test di ottimalit
(0,0) non la soluzione ottimale. Esistono
soluzioni adiacenti migliori

12

Algoritmo del Simplesso


p

Iterazione 1: spostarsi su (0,6) eseguendo i tre


passi seguenti
n

spostarsi lungo x1=0 poich la funzione obiettivo


cresce pi velocemente che lungo asse x2=0

Fermarsi nel punto di intersezione tra x1=0 e


2x2=12, (andando oltre si uscirebbe dalla
regione ammissibile

Calcolare il punto di intersezione tra x1=0 e


2x2=12 : (0,6)
13

Algoritmo del Simplesso


(0,6)

(2,6)
(4,3)

(0,0)

(4,0)

14

Algoritmo del Simplesso


p
p

Test di ottimalit
(0,6) non la soluzione ottimale. Esistono soluzioni
adiacenti migliori
Iterazione 2: spostarsi su (2,6) eseguendo i tre
passi seguenti
n

spostarsi lungo 2x2=12, poich la funzione obiettivo cresce


( lunica direzione di crescita)

Fermarsi nel punto di intersezione tra 2x2=12 e


3x1+2x2=12 (andando oltre si uscirebbe dalla regione
ammissibile

Calcolare il punto di intersezione tra 2x2=12 e


3x1+2x2=12: (2,6)
15

Algoritmo del Simplesso

(0,6)

(2,6)
(4,3)

(0,0)

(4,0)
16

Algoritmo del Simplesso


p

Test di ottimalit
(2,6) la soluzione ottimale.
Non esistono soluzioni adiacenti migliori

17

Procedura Algebrica
P1 max 3x1 + 5x 2

4
2 x2 12
3x1 + 2 x2 18
x1, x2 0
x1

Una soluzione di P1 diventa


soluzione di P2 introducendo il valori
delle variabili slack.

P2 max 3x1 + 5x2


x1

+ x3

2x 2
3x1 + 2x 2

Forma aumentata
3 equazioni 5 incognite

x1, x 2 0
18

=4
+ x4
= 12
+ x 5 = 18

Procedura Algebrica
Una SOLUZIONE DI BASE una soluzione di P2 che giace
su di un vertice.
Es: La soluzione non ammissibile (4,6) di P1 ha come
soluzione di base corrispondente (4,6,0,0,-6).
Le soluzioni di base possono essere ammissibili o non ammissibili.
Una SOLUZIONE DI BASE AMMISSIBILE una soluzione di
base che giace su un vertice allinterno della regione
ammissibile
Es: La soluzione (0,6) di P1 ha come soluzione ammissibile di base per
P2 (0,6,4,0,6).
19

Procedura Algebrica
Si noti che P2 ha 5 variabili e 3 vincoli, lasciando 2 gradi di libert nella
risoluzione del sistema.
Quindi posso fissare il valore di 2 variabili e risolvere il sistema di tre
variabili e 3 equazioni.
Lalgoritmo del simplesso fissa a 0 il valore di queste due
variabili (VARIABILI NON DI BASE) e trova il valore delle
restanti 3 variabili (VARIABILI DI BASE).

20

Soluzione di BASE: Propriet


p
p

p
p
p

Ogni variabile designata come variabile di base o


non di base
Il numero delle variabili di base uguale al numero
dei vincoli funzionali (senza considerare i vincoli di
non negativit)
Le variabili NON di base sono poste uguali a zero
Il valore delle variabili di base ottenuto risolvendo
il sistema di equazioni
Se le variabili di base soddisfano i vincoli di non
negativit allora la soluzione di base una soluzione
ammissibile di base
21

Esempio
max 3 x1 + 5 x2
2 x2 + x3
2 x1 + 3x2
x1

= 12
+ x4

= 18
+ x5 = 4

x1 , x2 0
p

Posso fissare il valore di 2 variabili (anche a 0) e


risolvere il sistema di tre variabili e 3 equazioni.
vertice (0,0) (0, 0,12,18,4) soluzione aumentata
vertice (0,6) (0, 6, 4, 0, 6) soluzione aumentata
22

Soluzioni di BASE adiacenti


p

Due soluzioni ammissibili di base sono ADIACENTI se


hanno le stesse variabili di base ad eccezione di una
(anche se con valori numerici diversi).
Per muoversi da una soluzione di base ad una sua
adiacente sufficiente scambiare una variabile di base
con una non di base e risolvere il sistema di equazioni.
Esempio: Si considerino le soluzioni di P1 (0,0) e (0,6).
Le corrispondenti soluzioni di P2 sono (0,0,4,12,18) e
(0,6,4,0,6).
Le variabili non di base sono (x1, x2) e (x1, x4)
rispettivamente.
23

Procedura di risoluzione PL?


p Procedura

che genera tutte le soluzioni di base,


escludendo quelle non ammissibili.
p Valutazione del costo di ciascuna soluzione
ammissibile
p Scelta della migliore
Pu essere adottata questa procedura?

24

Un tale algoritmo pu essere adoperato solo per istanze


di dimensioni molto piccole !
Si consideri, ad esempio, una istanza con
n= 30 variabili ed m = 15 vincoli

n 30
= = 155.117.520 soluzioni
m 15
Si osservi anche che ogni soluzione di base va costruita
operando uninversione di matrice B-1 !!
Ricerca Operativa A.A. 2006/07

25

Algoritmo del Simplesso


p Individua

la soluzione ottima muovendosi da una


soluzione ammissibile di base ad una adiacente
che sia migliorante per la funzione obiettivo

Ricerca Operativa A.A. 2006/07

26

Algoritmo del Simplesso


max Z 3x1 5 x2
=0
2 x2 + x3
= 12
3x1 + 2 x2 + x4
= 18
x1
+ x5 = 4
x1, x2 0
p

Per individuare una soluzione di base ammissibile (bfs)


posso fissare il valore di 2 variabili a zero e risolvere il
sistema di tre variabili e 3 equazioni, e.g. x1=0 x2=0
soluzione ammissibile di base iniziale (0,0,12,18,4)

Ricerca Operativa A.A. 2006/07

27

Test ottimalit
Funzione Obiettivo Z = 3 x1 + 5 x2

Z=0

Le variabili x1 e x2 non sono di base, introducendo una di


queste variabili in base la funzione obiettivo migliora.
Tasso di miglioramento di x1 : 3
Tasso di miglioramento di x2 : 5
I tassi di miglioramento sono positivi quindi la soluzione
individuata non ottimale.

Siccome 5 > 3 la variabile x2 candidata ad


entrare in base
28

Test del minimo rapporto


p Aumentando

x2 (nuova variabile di base)


aumenta Z ma determina cambiamenti nelle
variabili di base

3x1 5x2

=0

2x 2 + x 3
3x1 + 2x 2
x1

= 12
+x 4

= 18
+ x5 = 4

(x1 = 0)

x3 = 12 2 x2
x4 = 18 2 x2
x5 = 4

x1, x 2 0

x2 pu essere aumentata fino a 6 (e x3 scende a 0)


29

Nuova soluzione di base


Z 3x1 5 x2

=0

2 x2 + x3
3x1 + 2 x2
x1

= 12
+ x4

= 18
+ x5 = 4

x1 = 0; x3 = 0; x2 = 6

x4 = 6; x5 = 4;

x1 , x2 0
p
p

Per aggiornare lequazione relativa a Z (funzione obiettivo)


elimino la variabile x2. Come?
Le equazioni vengono aggiornate mediante procedure di
eliminazione di Gauss in modo tale che le variabili di base
siano presenti in un solo vincolo.

Nuova soluzione di base


(aggiornamento del tableau)
Z 3x1 5x 2
2x 2 + x3
3x1 + 2x 2
x1

+ x4

=0
= 12
= 18
+ x5 = 4

Z 3x1

+ (5 / 2) x3

= 30

x2 + (1 / 2) x3
3x1 +
x1

x3

=6
+ x4
+ x5

=6
=4

Sommo la seconda equazione, moltiplicata per 5/2, allequazione


relativa alla funzione obiettivo
Dopo questa trasformazione nella f.o. sono presenti soltanto le
31
variabili non in base

Test di ottimalit
Funzione Obiettivo
Z = 30 + 3x1 (5 / 2) x3
e x3 non sono di base.
Tasso di miglioramento di x1 : 3
Tasso di miglioramento di x3 : -5/2
Il tasso di miglioramento di x1 positivo quindi la
soluzione individuata non ottimale

32

Individuazione della variabile di base uscente


Z 3x1 +

= 30

(5 / 2) x3

x2 + (1 / 2) x3
3x1 +
x1

x3

=6
+ x4
+ x5

(x3 = 0)

=6

x 4 = 6 3x1

=4

x 5 = 4 x1

x1 = 2; x 2 = 6;x 3 = 0;x 4 = 0; x 5 = 2;
33

x 2 = (1/ 2)x3 + 6

Aggiornamento del tableau


La variabile di base uscente
x4 (scende a 0)
La nuova soluzione di base
(2,6,0,0,2)

+ (3 / 2) x3 +

Z 3x1

1 / 3x3

= 30

x2 + (1 / 2) x3
3x1 + x3
x4

=6
+ x4
+ x5

x1

x2 + (1 / 2) x3
x1

+ (5 / 2) x3

=6
=4

= 36
=6

+ 1 / 3x4

=2

(1 / 3) x3 (1 / 3) x4 + x5 = 2

Z = 36 (3 / 2)x3 x 4 La soluzione di base ottenuta ottima!!

Casi particolari: soluzioni degeneri


Una delle componenti in base ha valore 0
p

Regola di Bland (non sul libro) per evitare il cycling.


Per determinare la variabile uscente, nel caso in cui ci
siano pi variabili candidate ad uscire, viene selezionata
quella con lindice pi piccolo

35

Casi particolari
p Problemi

illimitati

p Soluzioni

ottime multiple

Ogni qual volta un problema ha pi di una base


ottima, almeno una delle variabili non di base ha un
coefficiente = 0 nella riga zero finale (riga della
funzione obiettivo)

36

Metodo del simplesso in forma tabellare

2/2

x1

x2

x3

x4

x5

-3

-5

12

18

1
37

Metodo del simplesso in forma tabellare

0+ 5 *2

x1

x2

x3

x4

x5

-3

-5

1/2

18

3- 2 *2

Metodo del simplesso in forma tabellare

0+ 5 *2

x1

x2

x3

x4

x5

-3

5/2

1/2

-1

3- 2 *2

39

Metodo del simplesso in forma tabellare

3/3

x1

x2

x3

x4

x5

30

-3

5/2

1/2

-1

1
40

Metodo del simplesso in forma tabellare

1 -3

x1

x2

x3

x4

x5

30

-3

5/2

1/2

-1/3

1/3

3/3

41

Metodo del simplesso in forma tabellare

0 +3*3

1 -3

x1

x2

x3

x4

x5

30

-3

5/2

1/3

-1/3

1/2

-1/3

1/3
42

Metodo del simplesso in forma tabellare

0 +3*3

x1

x2

x3

x4

x5

36

3/2

1/3

-1/3

1/2

-1/3

1/3
43

Metodo del simplesso in forma tabellare


x1

x2

x3

x4

x5

36

3/2

1/3

-1/3

1/2

-1/3

1/3

Soluzione di base iniziale


p Problema
p Tutti

di massimo

i vincoli

p Vettore

delle risorse b0

Lorigine un vertice ammissibile quindi pu


essere selezionato come sba iniziale

Calcolo di una base iniziale


Vincoli di ugualianza: equivalente a una coppia di vincoli di
disugualianza, oppure:

max

3x1 + 5x 2

Z 3x1 5 x2

x1

+ x3

x1
2 x2

2 x2 12

3x1 + 2 x2

3x1 + 2 x2 = 18
x1, x2 0
METODO DEL BIG-M
Z ( 3M + 3) x1 (2M + 5) x2

= 18 M

+ x3

x1
3x1 + 2 x2

=4
+ x4

2 x2
46

Mx5 = 0

= 12

+ x5 = 18

=4

+ x4

= 12

+ x5 = 18

p Problema
p Vincoli

di massimo (irrilevante)

p Componenti del vettore delle risorse


bi 0
p Variabili non vincolate
xi libera
xi = xi + - xi xi + 0
xi - 0

Metodo delle due fasi


Introduco slack e surplus

Per trovare una base ammissibile introduco una variabile


artificiale xa

48

Metodo delle due fasi


Nella prima fase dobbiamo minimizzare xa
0

Rendo il costo ridotto di xa uguale a zero:


sottraggo la riga 4 alla riga zero

49

Pivot

Metodo delle due fasi


Operiamo le opportune eliminazioni sulle righe 1 e 2

La soluzione ammissibile di base : ( 0, 5, 5, 21, 4, 0 )


Con xa = 0
Ripristiniamo i valori originali della funzione obiettivo
-1

50

Metodo delle due fasi


Sommo la riga 4 alla riga obiettivo per avere il tableau di partenza.

(Riga 0) (Riga 1)/2

(Riga 2)-2(Riga 1)

(Riga 3) (Riga 1)/2

3/ 2

51

Metodo delle due fasi


3/ 2

Tutti i coefficienti di costo ridotto sono <0


quindi la soluzione corrente:
( 5/2, 5, 0, 11, 3/2, 0 )
ottima !
52

Soluzioni non ammissibili


Se il problema originale non ha soluzioni ammissibili
allora sia il metodo del big M che la Fase 1 delle
metodo delle due fasi forniscono una soluzione finale
che ha almeno una variabile artificiale >0.
Altrimenti le variabile artificiali saranno tutte = 0

53

Simplesso Rivisitato
xT = ( x1, x2 ,..., xn )

xTs

c = (c1, c2 ,..., cn )

= ( xn+1, xn+ 2 ,..., xn + m )

a 11
a
A = 21

a
m1

a 12

a 22

a m2

bT = (b1,b2 ,...,bm )

a1n
... a 2 n


... a mn
...

I VINCOLI diventano:

x
[A I ] = b
xs

x
x 0
s

Dove I la matrice identit mxm54e il vettore nullo 0 ha n+m elementi

Simplesso Rivisitato
Date m variabili di base e n non di base, la soluzione di
base corrispondente data dalla soluzione del sistema in
m equazioni:

x
[A I ] = b
xs

x variabili sono =0
Dove n delle
xs (var. non di base)

BxB = b

Dove xB il vettore delle variabili di base


55

Simplesso Rivisitato
xTB = ( x1, x2 ,..., xn )

Ottenuto eliminando le variabili non di


base da x
x
s

B11
B
B = 21

B m1

B12
B 22

B m2

Ricerca Operativa A.A. 2006/07

... B1m
... Bm

... B mm

Ottenuto eliminando le colonne


corrispondenti alle variabili non di
base da [A I ]

56

Simplesso Rivisitato
Il metodo del simplesso introduce soltanto variabili di base
per cui B non singolare per cui

x B = B 1b

Z = cB x B = cB B 1b

57

Simplesso Rivisitato
c = [3,5]

1 0 1 0 0
[A I ] = 0 2 0 1 0
3 2 0 0 1

xT = ( x1, x2 )

xTs = ( x3 , x4 , x5 )

Iterazione 0:

Ricerca Operativa A.A. 2006/07

xTB

= ( x3 , x4 , x5 )

58

1 0 0
B = 0 1 0
0 0 1

bT = (4,12,18)

Simplesso Rivisitato
Iterazione 1:

Iterazione 2:

xTB

xTB

1 0 0
1 0 0
B = 0 2 0 B 1 = 0 1 / 2 0
0 2 1
0 1 1

= ( x3 , x2 , x5 )

1 0 1
= ( x3 , x2 , x1) B = 0 2 0

0 2 3

59

1 1 / 3 1 / 3
B 1 = 0 1 / 2
0
0 1 / 3 1 / 3

Forma Matriciale
Z
1 c 0 0
0 A I x = b

x
s

Z cB B 1b
x = 1
B B b

Z 1 cB B 1 0 cB B 1b
=
x =
1 b 1
B 0 B B b

60

Forma Matriciale
1 cB B 1 1 c 0 1 cB B 1 c cB B 1
=

1 0 A I
1
1
B
0 B
0 B A
Z

1
1 cB B c cB B cB B 1b
x =

1
1 1
B A
B
B b
0

xs
61

Forma Matriciale
1 cB B 1 1 c 0 1 cB B 1 A c cB B 1
=

1 0 A I
1
1
B A
B
0 B
0
Z
1 cB B A c cB B cB B 1b
x =

1
1 1
B A
B
B b
0

xs
1