Documente Academic
Documente Profesional
Documente Cultură
Universit di LAquila
Ricerca Operativa
Il metodo del simplesso
Sommario
Notazione
Basi e soluzioni di base
Forma canonica
Teorema 1: criterio di ottimalit
Teorema 2: criterio di illimitatezza
Operazione di pivot
Teorema 3: miglioramento della base corrente
Schema generale
Notazione
Consideriamo il problema di PL in forma standard
P:
max
cx
Ax = b
x > 0
c = (1, 3, 0, 2),
cS = (1, 3, 2);
A = 1 2 3 0
AS = 1 2 0
0 5 1
AB-1 =
1
2
2
non singolare. Invertendola si ha:
0
0
2
2
1
2
3
Un problema equivalente
Sostituendo xB = (AB1b AB1ANxN) nella funzione obiettivo di (P) e
interpretando le xB (che sono > 0) come slack si ha poi il problema in
forma generale
P:
max
(cN cBAB1AN)xN + cB AB1b
AB1ANxN
< AB1b
xN
< 0
Questo problema (P) equivalente a (P) nel senso che a ogni soluzione di
(P) corrisponde una soluzione di (P) che ha lo stesso valore, e viceversa.
In particolare:
una soluzione ottima di (P) corrisponde a una soluzione ottima di
(P).
(P) illimitato superiormente se e solo se anche (P) lo .
Esempio
Riprendiamo il problema
max
5x1 2x2 + x3 + 2x4
x1 + 2x2 3x3
= 8
2x1
+ 5x3 + x4 = 4
x1,, x4 > 0
in cui, come gi visto, linsieme B = {1, 2} costituisce una base:
AB-1 =
AN =
0
1
AB-1AN =
5/2
11/4
AB-1b =
2
3
Forma canonica
Il problema
P:
max
max
cNxN + d
ANxN < b
xN > 0
pu riscriversi
con
cN =
b =
AN =
cN cBAB1AN
AB1b,
AB1AN
d = cB AB1b
Riassumendo
Supponendo di disporre di una base ammissibile B,
possiamo raccogliere i dati del problema (P) o del suo
equivalente (P) in una tabella canonica
costi ridotti fuori base
cN = cN cBAB1AN
d = cB AB1b
AN = AB1AN
Imm
b = AB1b > 0
N: Variabili (colonne)
fuori base
PDF created with pdfFactory Pro trial version www.pdffactory.com
B: Variabili (colonne)
in base
Esempio
Riprendendo il problema
max 17x3 x4 + 4
5x3 + x4 < 4
11x3 x4 < 12
x3, x4
> 0
cN = 17
cN cBAB11AN
000
d = c4B AB1b
5
1
1
AN = AB AN
11
1
1 0
Imm
0 1
41
b = AB b > 0
12
N: Variabili (colonne)
x3, x4
fuori base
PDF created with pdfFactory Pro trial version www.pdffactory.com
x1B:
, xVariabili
(colonne)
2
in base
Teorema 1
Criterio di ottimalit: Sia xB = AB-1b, xN = 0 una soluzione
di base ammissibile per (P).
Se cN = (cN cBAB1AN) < 0, allora x = (xB, xN) ottima.
Dimostrazione: Per il Teorema di Dualit Forte x ottima se e solo se
esiste una y soluzione di
D)
min
yb
yA > c
tale che yb = cx.
Sia y = cBAB-1 IRm. Si ha
yAB = cBAB-1AB = cB
> cB (ovviamente).
yAN = cBAB-1AN
> cN (per ipotesi).
Quindi y ammissibile per (D)
Inoltre cx = cBxB + cNxN = cBAB-1b + cN0 = yb.
Quindi x ottima per (P).
Esempio
Riprendendo il problema
max 17x3 x4 + 4
5x3 + x4 < 4
11x3 x4 < 12
x3, x4
> 0
La soluzione x3 = x4 = 0
x1 = 4
x2 = 12
costi ridotti
fuori base
ridotti
ottima
sia per costi
P che
perinPbase
17
11
12
x3, x4
PDF created with pdfFactory Pro trial version www.pdffactory.com
x1, x2
Teorema 2
Criterio di illimitatezza: Sia xB = AB-1b, xN = 0 una
soluzione di base ammissibile per (P).
Se k N: ck > 0 e Ak < 0, allora (P) illimitato
superiormente.
Dimostrazione: Anzitutto (P) illimitato superiormente sse lo (P).
Ma per il Teorema Fondamentale della Programmazione Lineare,
(P) illimitato superiormente se esiste d rec(P) tale che cd > 0.
Ora si ha
rec(P) = {u IRn: Au < 0, u > 0}
Evidentemente, d = ek rec(P). Infatti
Aek = Ak
< 0
(per ipotesi)
cek = ck
> 0
(per ipotesi).
Quindi (P) illimitato superiormente.
cN + cwA
N N
T =
AANN
0 + w0
I I
d +
d
wb
bb>>00
Operazione di pivot
Loperazione di pivot consiste nel combinare linearmente
le righe di T in modo da ottenere una colonna unitaria in
posizione prestabilita.
k: colonna di pivot
h: riga
di pivot
elemento
di pivot
c0k
c0j
a1
hk
a1jk
d
d
bbhh
Operazione di pivot
Per eseguire unoperazione di pivot basta:
1. scegliere un elemento di pivot ahk 0
2. dividere la riga h per ahk, ottenendo ahk = 1
3. sottrarre alla generica riga i la riga h cos ricavata
moltiplicata per aik, ottenendo aik = 0
bi = bi bhaik/ahk
4. sottrarre alla riga 0 la riga h cos ricavata moltiplicata per
ck, ottenendo
ck = 0
d = d bhck/ahk
Esempio
1. Scegliere un elemento di pivot ahk
1
a23
PDF created with pdfFactory Pro trial version www.pdffactory.com
Esempio
2. Dividere la riga 2 per a23
1
a23
PDF created with pdfFactory Pro trial version www.pdffactory.com
Esempio
2. Dividere la riga 2 per a23
1
Esempio
3. Sottrarre alla riga 1 la riga 2
moltiplicata per a13
+1
3
13/4
1
0
2
11/4
Esempio
3. Sottrarre alla riga 3 la riga 2
moltiplicata per a33
+2
13/4
11/4
2
0
1
5/2
Esempio
4. Sottrarre alla riga 0 la riga 2
moltiplicata per c3
3
3
60
0
3/2
-5/2
2
13/4
11/4
5/2
Teorema 3
Miglioramento base corrente: Sia xB = AB-1b, xN = 0 una
soluzione di base ammissibile per (P).
Se h R, k N: ck > 0 e ahk > 0,
allora (P) ammette una base B associata a una soluzione non
peggiore di quella associata a B.
Dimostrazione: Senza perdere di generalit, sia h tale che
bh /ahk < bi /aik
i R: aik > 0
Eseguendo unoperazione di pivot su ahk si ottiene una nuova base
ammissibile B.
Inoltre il valore della soluzione associata a B
> d
d = d + bh ck /ahk
>0
>0
>0
Esempio
Riga di
pivot
Colonna di pivot
PDF created with pdfFactory Pro trial version www.pdffactory.com
Esempio
Nuovo valore
funzione obiettivo
3/2
5/2
13/4
11/4
5/2
FASE II
1.
2.
3.
Diagramma di flusso
Determina
Determinauna
unabase
baseammissibile
ammissibileB;
B;
1
Calcola
Calcolacc==ccNNccBBAABB1AANN
1
A
A==AAB 1AAN
B
output: B ottima
c
c<<0?
0?
no
stop
stop
A
0?
Akk<<0?
s
output: P illimitato
no
Determina
Determinaun
unelemento
elementoaahkhkdidipivot;
pivot;
Aggiorna
Aggiornac,
c,A,
A,b,
b,d
dtramite
tramite
unoperazione
unoperazionedidipivot
pivotsu
suaahk
hk
Esempio
P:
max
<
>
<
>
20
6
1
0
x 1
4x
3x 1
3x1 + 2x2
4x1 + 5x2
3x1 + 2x2
x1 + x2
x2
x2
5x
2
+2
x2
6
x2 = 0
20
w1
3
4
3
3
1
x2
2
5
2
2
1
z1
0
1
0
0
z2
0
0
11
0
z3
0
0
0
1
0
20
6
6
1
w1
0
0
1
0
x2
0
7/3
2/3
5/3
z1
0
1
0
0
z2
1
4/3
1/3
1/3
z3
0
0
0
1
6
12
2
3
a
1
u1
0
0
1
0
w1
0
0
1
0
iterazione
x2
0
7/3
2/3
5/3
z1
0
1
0
0
Elemento di pivot
Pivot
u1
0
0
1
0
w1
0
0
1
0
x2
0
7/3
2/3
5/3
Tabella risultante
u1
0
0
1
0
w1
0
0
1
0
x2
7/4
7/4
5/4
9/4
z1
0
1
0
0
1
4/3
1/3
1/3
z3
0
0
0
1
6
12
2
3
z2
La soluzione ottima
P:
max
3x1 + 2x2
4x1 + 5x2
3x1 + 2x2
x1 + x2
x2
<
>
<
>
20
6
1
0
u1 = 5
z2 * = 9
z3 * = 6
PDF created with pdfFactory Pro trial version www.pdffactory.com
x1* = 5
x2* = 0
fine dellesempio