2-simplesso

62
Il Metodo del Simplesso

Upload: bossmilan

Post on 08-Dec-2015

20 views

Category:

Documents


8 download

DESCRIPTION

algoritmo ricerca operativa

TRANSCRIPT

Page 1: 2-simplesso

Il Metodo del Simplesso

Page 2: 2-simplesso

2

PL in forma standard

PL in forma standard Min cx Ax = b x ≥ 0

⎧⎨⎪

⎩⎪

Page 3: 2-simplesso

3

PL in forma standard

⎪⎩

⎪⎨⎧

≥=0xbAx

cx

- Min2PP1

Max cx Ax = b x ≥ 0

⎧⎨⎪

⎩⎪

cxcx - Min Max ≡

Page 4: 2-simplesso

Trasformazione di disequazioni lineari in equazioni lineari

Page 5: 2-simplesso

5

Variabili di slack

p  xsi = variabile slack p  Esempio :

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

ij

n

1jij bxa ≤∑

=isij

n

1jij bxxa =+∑

=

j

n

1jiji xab ∑

=

Page 6: 2-simplesso

6

Se una varibile di slack, nella soluzione corrente, è n  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

Page 7: 2-simplesso

7

Variabile di surplus

p  xsi = variabile di surplus

p  Esempio : 3x1 - x2 + 2x3 ≥ 8 è 3x1 - x2 + 2x3 - xs = 8 se x1 = 3, x2 = 1, x3 = 1 è xs = 2

ij

n

1jij bxa ≥∑

=

0≥∑=

ij

n

1jij b-xa

isij

n

1jij bxxa =−∑

=

Page 8: 2-simplesso

8

Slack e Surplus

p  Variabili di Slack/Surplus sono associate ad ogni vincolo

n  Slack: quantità di risorsa non utilizzata vincolo: 1x + 2y ≤ 40, soluzione: x=10,y=5 slack: 40-10-2(5)=20

n  Surplus: quantità di richiesta in eccesso vincolo: 1x + 2y ≥ 40, soluzione: x=10,y=20 surplus: 10+2(20)-40=10

Page 9: 2-simplesso

9

Idee risolutive (metodo del simplesso)

p  Focalizzare l’attenzione esclusivamente sui vertici p  Sviluppare una procedura iterativa:

1.  Determinare un vertice iniziale 2.  Verificare se il vertice è ottimo (Test di ottimalità) 3.  Determinare un nuovo vertice

p  Iniziare, quando possibile dal vertice (0,0) p  Cercare vertici migliori a quello corrente tra i vertici

adiacenti (ricerca locale) identificando il tasso di miglioramento della funzione obiettivo muovendosi lungo uno spigolo

Page 10: 2-simplesso

10

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

p  Tradurre la procedura in “linguaggio algebrico” , basata sulla risoluzione di sistemi di equazioni

Page 11: 2-simplesso

11

Soluzioni di Base (Vertici)

Soluzioni Adiacenti

(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)

Vertici adiacenti

(0,6) (2,6)

(4,3)

(4,0) (0,0)

Page 12: 2-simplesso

12

Algoritmo del Simplesso p  Inizializzazione

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

p  Test di ottimalità p  (0,0) non è la soluzione ottimale. Esistono

soluzioni adiacenti migliori

Page 13: 2-simplesso

13

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

n  Fermarsi nel punto di intersezione tra x1=0 e 2x2=12, (andando oltre si uscirebbe dalla regione ammissibile

n  Calcolare il punto di intersezione tra x1=0 e 2x2=12 : (0,6)

Page 14: 2-simplesso

14

Algoritmo del Simplesso

(0,6) (2,6)

(4,3)

(4,0) (0,0)

Page 15: 2-simplesso

15

Algoritmo del Simplesso p  Test di ottimalità

p  (0,6) non è la soluzione ottimale. Esistono soluzioni adiacenti migliori

p  Iterazione 2: spostarsi su (2,6) eseguendo i tre passi seguenti n  spostarsi lungo 2x2=12, poiché la funzione obiettivo cresce

(è l’unica direzione di crescita)

n  Fermarsi nel punto di intersezione tra 2x2=12 e 3x1+2x2=12 (andando oltre si uscirebbe dalla regione ammissibile

n  Calcolare il punto di intersezione tra 2x2=12 e 3x1+2x2=12: (2,6)

Page 16: 2-simplesso

16

Algoritmo del Simplesso

(0,6) (2,6)

(4,3)

(4,0) (0,0)

Page 17: 2-simplesso

17

Algoritmo del Simplesso p  Test di ottimalità

(2,6) è la soluzione ottimale. Non esistono soluzioni adiacenti migliori

Page 18: 2-simplesso

18

Procedura Algebrica

0,18231224

21212

1

≥≤+≤≤

+

xxxxx

x21 5x3xmax

Forma aumentata

3 equazioni 5 incognite

max 3x1 + 5x2x1 + x3 = 4

2x2 + x4 =123x1 + 2x2 + x5 =18x1, x2 ≥ 0

P1

P2

Una soluz ione d i P1 d iventa soluzione di P2 introducendo il valori delle variabili slack.

Page 19: 2-simplesso

19

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 all’interno della regione ammissibile Es: La soluzione (0,6) di P1 ha come soluzione ammissibile di base per P2 (0,6,4,0,6).

Page 20: 2-simplesso

20

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. L’algoritmo 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).

Page 21: 2-simplesso

21

Soluzione di BASE: Proprietà p  Ogni variabile è designata come variabile di base o

non di base p  Il numero delle variabili di base è uguale al numero

dei vincoli funzionali (senza considerare i vincoli di non negatività)

p  Le variabili NON di base sono poste uguali a zero p  Il valore delle variabili di base è ottenuto risolvendo

il sistema di equazioni p  Se le variabili di base soddisfano i vincoli di non

negatività allora la soluzione di base è una soluzione ammissibile di base

Page 22: 2-simplesso

22

Esempio

0,41832122

21

51

421

32

21

≥=+=++=+

+

xxxx

xxxxx

xx 53max

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

Page 23: 2-simplesso

23

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).

p  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.

p  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.

Page 24: 2-simplesso

24

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?

Page 25: 2-simplesso

Ricerca Operativa A.A. 2006/07 25

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

Si osservi anche che ogni soluzione di base va costruita operando un’inversione di matrice B-1 !!

soluzioni 0155.117.521530

mn

=⎟⎟⎠

⎞⎜⎜⎝

⎛=⎟⎟⎠

⎞⎜⎜⎝

Page 26: 2-simplesso

Ricerca Operativa A.A. 2006/07 26

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

Page 27: 2-simplesso

Ricerca Operativa A.A. 2006/07 27

Algoritmo del Simplesso

0,41823122053max

2151

42132

21

≥=+=++=+=−−

xxxx

xxxxx

xxZ

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)

Page 28: 2-simplesso

28

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

Page 29: 2-simplesso

29

Test del minimo rapporto

p  Aumentando x2 (nuova variabile di base) aumenta Z ma determina cambiamenti nelle variabili di base

Z − 3x1 − 5x2 = 02x2 + x3 =12

3x1 + 2x2 +x4 =18x1 + x5 = 4x1, x2 ≥ 0

4218212

5

24

23

=−=−=

xxxxx

(x1 = 0)

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

Page 30: 2-simplesso

Nuova soluzione di base

p  Per aggiornare l’equazione relativa a Z (funzione obiettivo) elimino la variabile x2. Come?

p  Le equazioni vengono aggiornate mediante procedure di eliminazione di Gauss in modo tale che le variabili di base siano presenti in un solo vincolo.

0,41823122053

21

51

421

32

21

≥=+=++=+=−−

xxxx

xxxxx

xxZ 6;0;0 231 === xxx

;4;6 54 == xx

Page 31: 2-simplesso

31

Nuova soluzione di base (aggiornamento del tableau)

Z −3x1 − 5x2 = 02x2 + x3 =12

3x1 + 2x2 + x4 =18x1 + x5 = 4 4

636)2/1(30)2/5(3

51

431

32

31

=+=+−+=+=+−

xxxxx

xxxxZ

Sommo la seconda equazione, moltiplicata per 5/2, all’equazione relativa alla funzione obiettivo

Dopo questa trasformazione nella f.o. sono presenti soltanto le variabili non in base

Page 32: 2-simplesso

32

Test di ottimalità Funzione Obiettivo 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

31 )2/5(330 xxZ −+=

Page 33: 2-simplesso

33

Individuazione della variabile di base uscente

4636)2/1(30)2/5(3

51

431

32

31

=+=+−+=+=+−

xxxxx

xxxxZ

x2 =− (1 / 2)x3 + 6x4 = 6− 3x1x5 = 4−x1

(x3 = 0)

x1 = 2; x2 = 6;x3 =0;x4 = 0; x5 =2;

Page 34: 2-simplesso

Aggiornamento del tableau

4636)2/1(30)2/5(3

51

431

32

31

=+=+−+=+=+−

xxxxx

xxxxZ

La soluzione di base ottenuta è ottima!!

2)3/1()3/1(23/13/16)2/1(36)2/3(

543

431

32

43

=+−−=+−=+=++

xxxxxx

xxxxZ

La variabile di base uscente è x4 (scende a 0)

La nuova soluzione di base è

(2,6,0,0,2)

Z = 36 − (3 / 2)x3 − x4

Page 35: 2-simplesso

35

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 l’indice più piccolo

Page 36: 2-simplesso

36

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)

Page 37: 2-simplesso

37

Metodo del simplesso in forma tabellare

x1 x2 x3 x4 x5

0 -3 -5 0 0 0

4 1 0 1 0 0

12 0 2 0 1 0

18 3 2 0 0 1

2°/2

Page 38: 2-simplesso

Metodo del simplesso in forma tabellare

x1 x2 x3 x4 x5

0 -3 -5 0 0 0

4 1 0 1 0 0

6 0 1 0 1/2 0

18 3 2 0 0 1 3°- 2 *2°

0°+ 5 *2°

Page 39: 2-simplesso

39

Metodo del simplesso in forma tabellare

x1 x2 x3 x4 x5

0 -3 0 0 5/2 0

4 1 0 1 0 0

6 0 1 0 1/2 0

6 3 0 0 -1 1 3°- 2 *2°

0°+ 5 *2°

Page 40: 2-simplesso

40

Metodo del simplesso in forma tabellare

x1 x2 x3 x4 x5

30 -3 0 0 5/2 0

4 1 0 1 0 0

6 0 1 0 1/2 0

6 3 0 0 -1 1 3°/3

Page 41: 2-simplesso

41

Metodo del simplesso in forma tabellare

x1 x2 x3 x4 x5

30 -3 0 0 5/2 0

4 1 0 1 0 0

6 0 1 0 1/2 0

2 1 0 0 -1/3 1/3 3°/3

1° -3°

Page 42: 2-simplesso

42

Metodo del simplesso in forma tabellare

x1 x2 x3 x4 x5

30 -3 0 0 5/2 0

2 0 0 1 1/3 -1/3

6 0 1 0 1/2 0

2 1 0 0 -1/3 1/3

1° -3°

0° +3*3°

Page 43: 2-simplesso

43

Metodo del simplesso in forma tabellare

x1 x2 x3 x4 x5

36 0 0 0 3/2 1

2 0 0 1 1/3 -1/3

6 0 1 0 1/2 0

2 1 0 0 -1/3 1/3

0° +3*3°

Page 44: 2-simplesso

Metodo del simplesso in forma tabellare

x1 x2 x3 x4 x5

36 0 0 0 3/2 1

2 0 0 1 1/3 -1/3

6 0 1 0 1/2 0

2 1 0 0 -1/3 1/3

Page 45: 2-simplesso

Soluzione di base iniziale p  Problema di massimo

p  Tutti i vincoli ≤

p  Vettore delle risorse b≥0

L’origine è un vertice ammissibile quindi può essere selezionato come sba iniziale

Page 46: 2-simplesso

46

Calcolo di una base iniziale

18231224053

521

42

31

521

=++=+=+=−−−

xxxxx

xxxMxxZ

0,18231224

21

21

2

1

≥=+≤≤

+

xxxxx

x21 5x3xmax

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

METODO DEL BIG-M

1823122418)52()33(

521

42

31

21

=++=+=+−=+−+−

xxxxx

xxMxMxMZ

Page 47: 2-simplesso

p  Problema di massimo (irrilevante) p  Vincoli ≥ p  Componenti del vettore delle risorse

bi ≥ 0 p  Variabili non vincolate

xi libera xi = xi + - xi -

xi + ≥ 0 xi - ≥ 0

Page 48: 2-simplesso

48

Metodo delle due fasi

Introduco slack e surplus

Per trovare una base ammissibile introduco una variabile artificiale xa

Page 49: 2-simplesso

49

Metodo delle due fasi

Nella prima fase dobbiamo minimizzare xa

Rendo il costo ridotto di xa uguale a zero: •  sottraggo la riga 4 alla riga zero

0

Pivot

Page 50: 2-simplesso

50

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

Page 51: 2-simplesso

51

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

2/3

Page 52: 2-simplesso

52

Metodo delle due fasi

Tutti i coefficienti di costo ridotto sono <0 quindi la soluzione corrente:

( 5/2, 5, 0, 11, 3/2, 0 )

È ottima !

2/3

Page 53: 2-simplesso

53

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

Page 54: 2-simplesso

54

Simplesso Rivisitato

[ ] bxx

IAs

=⎥⎦

⎤⎢⎣

),...,,( 21 nT xxxx = ),...,,( ncccc 21=

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

⎥⎥⎥⎥

⎢⎢⎢⎢

=

mnmm

n

n

aaa

aaaaaa

A

...

...

...

21

22221

11211

),...,,( 21 mnnn

Ts xxxx +++=

0≥⎥⎦

⎤⎢⎣

sxx

Dove I è la matrice identità mxm e il vettore nullo 0 ha n+m elementi

I VINCOLI diventano:

Page 55: 2-simplesso

55

Simplesso Rivisitato

[ ] bxx

IAs

=⎥⎦

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

sxx

bBxB =

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

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

Dove è il vettore delle variabili di base Bx

Page 56: 2-simplesso

Ricerca Operativa A.A. 2006/07 56

Simplesso Rivisitato

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

=

mmmm

m

BBB

BBBBBB

B m

...

...

...

21

2221

11211

),...,,( 21 nT xxxxB =

⎥⎦

⎤⎢⎣

sxx

Ottenuto eliminando le variabili non di base da

Ottenuto eliminando le colonne corrispondenti alle variabili non di base da [ ]IA

Page 57: 2-simplesso

57

Simplesso Rivisitato

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

bBxB1−=

bBcxcZ BB B1−==

Page 58: 2-simplesso

Ricerca Operativa A.A. 2006/07 58

Simplesso Rivisitato

⎥⎥⎥

⎢⎢⎢

⎡=

100010001

B

),( 21 xxxT =

[ ]5,3=c

)18,12,4(=Tb[ ]⎥⎥⎥

⎢⎢⎢

⎡=

100230102000101

IA

),,( 543 xxxxTs =

Iterazione 0: ),,( 543 xxxxTB =

Page 59: 2-simplesso

59

Simplesso Rivisitato

⎥⎥⎥

⎢⎢⎢

⎡=

320020101

BIterazione 2: ),,( 123 xxxxTB =

⎥⎥⎥

⎢⎢⎢

−=−

3/13/1002/103/13/11

1B

⎥⎥⎥

⎢⎢⎢

⎡=

120020001

BIterazione 1: ),,( 523 xxxxTB =

⎥⎥⎥

⎢⎢⎢

−=−

11002/10001

1B

Page 60: 2-simplesso

60

Forma Matriciale

⎥⎥⎦

⎢⎢⎣

⎡=⎥

⎤⎢⎣

⎥⎥⎦

⎢⎢⎣

⎡=⎥

⎤⎢⎣

⎡−

bBbBc

bBBc

xZ BBB 1

1

1

1 0

01

⎥⎦

⎤⎢⎣

⎡=

⎥⎥⎥

⎢⎢⎢

⎥⎦

⎤⎢⎣

⎡ −b

xxZ

IAc

s

00

01

⎥⎥⎦

⎢⎢⎣

⎡=⎥

⎤⎢⎣

⎡−

bBbBc

xZ BB 1

1

Page 61: 2-simplesso

61

Forma Matriciale

⎥⎥⎦

⎢⎢⎣

⎡ −=⎥⎦

⎤⎢⎣

⎡ −

⎥⎥⎦

⎢⎢⎣

⎡−−

−−

11

11

1

1

01

001

01

BABBccBc

IAc

BBc BBB

⎥⎥⎦

⎢⎢⎣

⎡=

⎥⎥⎥

⎢⎢⎢

⎥⎥⎦

⎢⎢⎣

⎡ −−

−−

−−

bBbBc

xxZ

BABBccBc B

s

BB1

1

11

11

01

Page 62: 2-simplesso

Forma Matriciale

⎥⎥⎦

⎢⎢⎣

⎡ −=⎥⎦

⎤⎢⎣

⎡ −

⎥⎥⎦

⎢⎢⎣

⎡−−

−−

11

11

1

1

01

001

01

BABBccABc

IAc

BBc BBB

⎥⎥⎦

⎢⎢⎣

⎡=

⎥⎥⎥

⎢⎢⎢

⎥⎥⎦

⎢⎢⎣

⎡ −−

−−

−−

bBbBc

xxZ

BABBccABc B

s

BB1

1

11

11

01