2-simplesso
DESCRIPTION
algoritmo ricerca operativaTRANSCRIPT
Il Metodo del Simplesso
2
PL in forma standard
PL in forma standard Min cx Ax = b x ≥ 0
⎧⎨⎪
⎩⎪
3
PL in forma standard
⎪⎩
⎪⎨⎧
≥=0xbAx
cx
- Min2PP1
Max cx Ax = b x ≥ 0
⎧⎨⎪
⎩⎪
cxcx - Min Max ≡
Trasformazione di disequazioni lineari in equazioni lineari
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 ∑
=
−
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
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 =−∑
=
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
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
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
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)
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
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)
14
Algoritmo del Simplesso
(0,6) (2,6)
(4,3)
(4,0) (0,0)
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)
16
Algoritmo del Simplesso
(0,6) (2,6)
(4,3)
(4,0) (0,0)
17
Algoritmo del Simplesso p Test di ottimalità
(2,6) è la soluzione ottimale. Non esistono soluzioni adiacenti migliori
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.
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).
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).
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
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
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.
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?
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
=⎟⎟⎠
⎞⎜⎜⎝
⎛=⎟⎟⎠
⎞⎜⎜⎝
⎛
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
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)
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
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)
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
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
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 −+=
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;
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
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
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)
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
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°
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°
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
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°
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°
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°
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
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
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
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
48
Metodo delle due fasi
Introduco slack e surplus
Per trovare una base ammissibile introduco una variabile artificiale xa
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
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
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
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
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
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:
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
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
57
Simplesso Rivisitato
Il metodo del simplesso introduce soltanto variabili di base per cui B è non singolare per cui
bBxB1−=
bBcxcZ BB B1−==
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 =
59
Simplesso Rivisitato
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
320020101
BIterazione 2: ),,( 123 xxxxTB =
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−
−=−
3/13/1002/103/13/11
1B
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
120020001
BIterazione 1: ),,( 523 xxxxTB =
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−=−
11002/10001
1B
60
Forma Matriciale
⎥⎥⎦
⎤
⎢⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡
⎥⎥⎦
⎤
⎢⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡−
−
−
−
bBbBc
bBBc
xZ BBB 1
1
1
1 0
01
⎥⎦
⎤⎢⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎦
⎤⎢⎣
⎡ −b
xxZ
IAc
s
00
01
⎥⎥⎦
⎤
⎢⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡−
−
bBbBc
xZ BB 1
1
61
Forma Matriciale
⎥⎥⎦
⎤
⎢⎢⎣
⎡ −=⎥⎦
⎤⎢⎣
⎡ −
⎥⎥⎦
⎤
⎢⎢⎣
⎡−−
−−
−
−
11
11
1
1
01
001
01
BABBccBc
IAc
BBc BBB
⎥⎥⎦
⎤
⎢⎢⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎦
⎤
⎢⎢⎣
⎡ −−
−
−−
−−
bBbBc
xxZ
BABBccBc B
s
BB1
1
11
11
01
Forma Matriciale
⎥⎥⎦
⎤
⎢⎢⎣
⎡ −=⎥⎦
⎤⎢⎣
⎡ −
⎥⎥⎦
⎤
⎢⎢⎣
⎡−−
−−
−
−
11
11
1
1
01
001
01
BABBccABc
IAc
BBc BBB
⎥⎥⎦
⎤
⎢⎢⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎦
⎤
⎢⎢⎣
⎡ −−
−
−−
−−
bBbBc
xxZ
BABBccABc B
s
BB1
1
11
11
01