Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Roberto Aringhieri1
http://www.di.unito.it/~aringhie
roberto.aringhieri@unito.it
C ONSIDERAZIONI INIZIALI
Dato un programma lineare
max z = cT x : Ax = b, x ≥ 0 ,
S IMPLESSO
C ONSIDERAZIONI INIZIALI
AB xB + AN xN = b, xB ≥ 0, xN ≥ 0,
VARIABILI
ovvero
xB + A−1 −1
B AN xN = AB b , xB ≥ 0, xN ≥ 0.
(3.16) xB = A−1 −1
B b − AB AN xN , xB ≥ 0, xN ≥ 0.
F UNZIONE OBIETTIVO
Il valore di una soluzione ammissibile x ∈ Sa si può allora scrivere in
funzione delle sole xN , sostituendo in z = cT x i valori delle xB dati
dalle (3.16):
z = cT x = cTB xB + cTN xN =
= cTB A−1 −1 T
B b − AB AN xN + cN xN =
(3.17)
T
= cTB A−1 T −1
B b + cN − cB AB AN xN =
= z(B) + rTN xN
C OSTI RIDOTTI
rTN = rN1 , . . . , rNn−m = cTN − cTB A−1
B AN .
R IFORMULAZIONE
La combinazione di (3.16) e (3.17) costituisce la riformulazione
rispetto alla base B:
xB = A−1 −1
B b − AB AN xN
z = cTB A−1 T
B b + rN xN
xB ≥ 0, xN ≥ 0.
Osservazione 3.2
La riformulazione dei vincoli Ax = b rispetto alla base B corrisponde a
ottenere una matrice completa del sistema T(B) = A−1 B (A | b) ridotta
dalla trasformazione A−1
B :
A−1
B
(A | b) −−−→ (A−1 A | A−1 b) ⇐⇒ xB + A−1 −1
B AN xN = AB b.
| B {z B }
T(B)
E SEMPIO 3.7
Si vuole riformulare il seguente programma lineare rispetto alla base
B = {A1 , A2 , A4 }.
soggetto a
M ETODO ( A )
Dalla matrice inversa di
1 5
4 5 0 4 0−4
AB = 4 10 1 =⇒ A−1
B =
0 0 1
0 1 0 −1 1 −5
e calcolando:
1
1 5
0 − 54 41 0 4 −4
A−1
B AN = 0 0 1 0 0 = 0 1
−1 1 −5 0 1 −1 −5
1 5
5
4 0−4 10 4
A−1
B b=
0 0 1 15 = 1
−1 1 −5 1 0
M ETODO ( B )
4 5 1 0 0 10 1 54 14 0 0 10
4
4 10 0 1 0 15 → 0 5 −1
1 0 5→
0 1 0 0 1 1 0 1 0 0 1 1
1 0 12 − 14 0 5
4 1 0 41 0 − 54 5
4
→ 0 1 − 51 15 0 1 → 0 1 0 0 1 1
0 0 51 − 51 1 0 0 0 −1 1 −5 0
= A−1
B (A | b) = T(B).
5
z = 8x1 + 3x2 = 8 4 − 14 x3 + 45 x5 + 3 (1 − x5 ) =
= 13 − 2x3 + 7x5 ,
xB + xj A−1 −1
B Aj = AB b xB > 0, xj ≥ 0.
xB = A−1 −1
B b − xj AB Aj (xj = ε).
z(ε) = cTB xB + cj xj =
= cTB A−1 −1
B b − xj AB Aj + cj xj
= cTB A−1 T −1
B b + cj − cB AB Aj xj =
| {z } | {z }
z(B) rj
= z(B) + rj xj = z(B) + rj ε.
5
x1 = 4
− 41 x3 + 54 x5
x2 = 1 − x5
x4 = 0 +x3 + 5x5
z = 13 − 2x3 + 7x5
x1 , . . . , x5 ≥ 0.
5
x1 = 4
+ 45 x5 = 5
4 + 54 ε
x2 = 1
− x5 =1−ε
x4 = 0 + 5x5 = 0 + 5ε
x =ε
5
x3 = 0.
C ONDIZIONE DI OTTIMALITÀ
Proprietà 3.3
Se B è una base ammissibile, condizione sufficiente perché x(B) sia
ottima è che risulti
Dimostrazione.
Per ogni x̄ ∈ Sa distinta da x(B) si deve necessariamente avere
x̄N 6= 0.
Inoltre per ipotesi risulta rj ≤ 0 per ogni x̄j fuori base.
Per l’equazione (3.17), il costo di qualunque x̄ ∈ Sa distinta da x(B) è
quindi
In queste condizioni l’insieme z = cT x : Ax = b, x ≥ 0 pur non
essendo vuoto non ha un elemento massimo.
Proprietà 3.4
Condizione sufficiente perché la funzione obiettivo sia illimitata
superiormente è che nella riformulazione rispetto a una base B risulti
A−1
B Ak ≤ 0, rk > 0 per almeno una variabile xk fuori base.
Dimostrazione – 1.
Si consideri la seguente soluzione x(t) (che non è di base)
parametrizzata dal valore t > 0.
Dimostrazione – 2.
Infatti, per il vettore x(t), i vincoli
xB + A−1 −1
B AN xN = AB b xB ≥ 0, xN ≥ 0
equivalgono a
xB (t) = A−1 −1
B b −tAB Ak xB (t) ≥ 0, xN ≥ 0
| {z } | {z }
≥0 ≥0
Dimostrazione – 3.
Il costo della soluzione x(t) è
E SEMPIO 3.9
soggetto a
2x1 + 3x2 ≥ 6
3x1 − 4x2 ≤ 7
x1 , x2 ≥ 0
E SEMPIO 3.9
In forma standard:
soggetto a
2x1 + 3x2 − x3 = 6
3x1 − 4x2 + x4 = 7
x1 , . . . , x4 ≥ 0.
BASI ADIACENTI
max z = cT x : Ax = b, x ≥ 0 ,
(3.20)
α11 ............ α1n β1
..
. . . . . . . . . . . . . . . . . . . . . . . . . .
−1 −1
T(B) = (AB A | AB b) =
αp1 . . . αpq . . . αpn βp
..
. . . . . . . . . . . . . . . . . . . . . . . . . .
αm1 . . . . . . . . . . . . αmn βm
(3.21)
α′11 ... 0 ... α′1n β1′
..
. . . . . . . . . . . . . . . . . . . . . . . . .
′ −1 −1
′
αp1 . . . 1
T(B ) = (AB ′ A | AB ′ b) = . . . α′pn βp′
..
. . . . . . . . . . . . . . . . . . . . . . . . .
α′m1 . . . 0 . . . α′mn βm ′
E SEMPIO 3.10
Si consideri il programma lineare
soggetto a
5 4
1 0 14 0 − 45 4 −5 0 − 15 0 1 −1
0 1 0 0 1 1 −→ 4 1
5 1 5 0 0 2
0 0 −1 1 −5 0 −4 0 −2 1 0 −5
5
− 41 x3 + 45 x5 x = −1 + 45 x1 + 15 x3
x1 = 4
5
x2 = 1 − x5 −→ x2 = 2 − 54 x1 − 15 x3
x3 = 0 +x3 + 5x5 x4 = −5 +4x1 + 2x3
28
z = 13 − 2x3 + 7x5 −→ z =6+ 5 x1 − 53 x3
x1 , . . . , x5 ≥ 0 x1 , . . . , x5 ≥ 0.
Osservazione 3.3
L’esempio mette in evidenza che, anche se B è una base ammissibile,
una base adiacente B ′ non è necessariamente ammissibile anch’essa.
Per passare ad una base adiacente ammissibile occorre scegliere
l’elemento-pivot in modo opportuno.
Proprietà 3.5
Se B è una base ammissibile e in T(B) risulta
αpq > 0,
βp βi
= min : αiq > 0, i = 1, . . . , m ,
αpq αiq
Dimostrazione – 1.
Da T(B), si ricava T(B ′ ) effettuando le trasformazioni elementari che
realizzano l’operazione di pivot:
αiq
Ei ← Ei − Ep i = 1, . . . , m, i 6= p,
αpq
1
Ep ← Ep .
αpq
Dimostrazione – 2.
′ ≥ 0.
Si vuole dimostrare che la base B ′ è ammissibile, cioè β1′ , . . . , βm
Poiché B è una base ammissibile, deve avere β1 , . . . , βm ≥ 0, e quindi
risulta che
βp
βp′ = ≥ 0.
αpq
Per ognuno degli gli altri βi con i 6= p sono possibili due casi.
(a) αiq ≤ 0: in questo caso risulta
αiq
βi′ = βi − βp ≥ βi ≥ 0.
αpq
| {z }
≤0
Dimostrazione – 3.
(b) αiq > 0: in questo caso risulta
αiq
βi′ = βi − βp =
αpq
βi βp
= αiq − ≥ 0.
|{z} αiq αpq
>0 | {z }
≥0
Proprietà 3.6
Se risulta αpq > 0 e rq > 0, allora z(B ′ ) ≥ z(B).
Dimostrazione – 1.
Basta osservare che con l’operazione di pivot la variabile xq entra nella
βp
nuova base B ′ con un valore pari a αpq ≥ 0.
Dimostrazione – 2.
Il valore della funzione obiettivo per una qualunque soluzione si può
calcolare usando l’espressione riformulata rispetto a B:
z = z(B) + rTN xN .
βp
z(B ′ ) = z(B) + rq xq = z(B) + rq ≥ z(B).
αpq
| {z }
≥0
E SEMPIO 3.11
max z = 3x1 − x2
soggetto a
2x1 − x2 ≤ 3
−x1 + x2 ≤ 1
x1 ≤8
x1 , x2 ≥ 0,
In forma standard:
max z = 3x1 − x2
soggetto a
2x1 − x2 +x3 =3
−x1 + x2 + x4 =1
x1 +x5 = 8
x1 , . . . , x5 ≥ 0.
S IMPLESSO
◮ condizione di ottimalità,
◮ condizione di illimitatezza,
(a) La base corrente B risulta ottima, per la Proprietà 3.3 (righe 4–5
dell’algoritmo)
oppure
Proprietà 3.7
L’algoritmo del simplesso termina in un numero finito di iterazioni.
Dimostrazione.
Se la successione z(B 0 ) < z(B 1 ) < . . . è strettamente crescente, ciò
vuol dire che l’algoritmo non genera mai una stessa base ammissibile
più di una volta. Il numero di possibili basi ammissibili del problema è
un numero finito |Ba |, quindi in al più |Ba | iterazioni si deve
raggiungere una delle condizioni di uscita.
1
Si sceglie un nuovo elemento pivot sulla colonna 2 perché r2 = 2 > 0;
confrontando quindi
5 13
β2 2 β3 2
= 1, = 1 ,
α22 2
α23 2
1 0 1 1 0 4 x1 = 4 −x3 − x4
T(B ′′ ) = 0 1 1 2 0 5 x2 = 5 −x3 − 2x4
0 0 −1 −1 1 4
x5 = 4 −x3 − x4
z = 7 − 2x3 − x4 .
Avendo r3 , r4 ≤ 0, la soluzione
x = 4, x2 = 5, x5 = 4, x3 = 0, x4 = 0
|1 {z } | {z }
xB′′ xN ′′