Sei sulla pagina 1di 31

Ricerca Operativa

Matematica per la finanza e l’assicurazione


Programmazione lineare a variabili reali.

aa 2015/16

Ricerca Operativa aa 2015/16 – 1 / 27


Sommario

Duale di un programma lineare Duale di un


programma lineare
Relazioni tra primale e duale Relazioni tra primale
e duale
Dualità forte Dualità forte
Basi ammissibili
Basi ammissibili duali duali
Simplesso duale
Simplesso duale

Ricerca Operativa aa 2015/16 – 2 / 27


Duale di un programma lineare

Definizione. Duale di un
programma lineare
Relazioni tra primale
e duale
Primale max{z = cT x : Ax = b, x ≥ 0} (P) Dualità forte
Basi ammissibili
min{w = uT b : uT A ≥ cT } duali
Duale Simplesso duale
min{w = uT b : uT A − vT = cT , v ≥ 0}
(D)

Le variabili u sono libere in segno. Notazione.

A ∈Rm×n x ∈Rn b ∈ Rm
c ∈Rn u ∈Rm v ∈ Rn

Ricerca Operativa aa 2015/16 – 3 / 27


Duale di un programma lineare

Caratteristiche. Duale di un
programma lineare
Relazioni tra primale
■ Nella funzione obiettivo duale, le variabili u1 , . . . , um e duale
Dualità forte
appaiono pesate dai coefficienti bT = (b1 , . . . , bm ). Basi ammissibili
duali
■ Per ogni variabile primale si genera un vincolo duale. Simplesso duale
■ Nel j-esimo vincolo duale le variabili u1 , . . . , um
appaiono con i coefficienti della colonna Aj .
■ Nel j-esimo vincolo duale il termine noto è cj .

Ricerca Operativa aa 2015/16 – 4 / 27


Duale di un programma lineare

Esempio. Duale di un
programma lineare
Relazioni tra primale
e duale
max z =x1 − x2 max z =x1 − x2 Dualità forte
Basi ammissibili
soggetto a x1 + 2x2 ≥ 5 soggetto a x1 +x2 − x3 = 5 duali
⇔ Simplesso duale
3x1 + x2 ≤ 6 3x1 +x2 + x4 = 6
x1 , x2 ≥ 0 x1 , . . . , x4 ≥ 0

min w =5u1 + 6u2


min w =5u1 + 6u2
soggetto a u1 +3u2 − v1 = 1
soggetto a u1 + 3u2 ≥ 1
2u1 +u2 − v2 = −1
2u1 + u2 ≥ −1 ⇔
− u1 − v3 = 0
− u1 ≥0
u2 − v4 = 0
u2 ≥ 0
v1 , . . . , v4 ≥ 0.

Ricerca Operativa aa 2015/16 – 5 / 27


Duale di un programma lineare

Duale di un
Definizione. Dati due problemi (non necessariamente PL) programma lineare
Relazioni tra primale
e duale
Π1 : max{f1 (x) : x ∈ S1 } Dualità forte
Basi ammissibili
Π2 : max{f2 (x) : x ∈ S2 } duali
Simplesso duale

Π2 è un rilassamento di Π1 se
■ S1 ⊆ S2 , e
■ f1 (x) ≤ f2 (x) per ogni x ∈ S1 .
Se z1∗ , z2∗ sono i valori ottimi di Π1 , Π2 :

z1∗ ≤ z2∗ .

Il valore ottimo di Π2 fornisce un limite superiore (upper


bound) per il valore ottimo di Π2 .

Ricerca Operativa aa 2015/16 – 6 / 27


Duale di un programma lineare

Caso dei programmi lineari. Duale di un


programma lineare
Relazioni tra primale
e duale
max{z = cT x : Ax = b, x ≥ 0} (P) Dualità forte
Basi ammissibili
duali
Fissato un vettore u = (u1 , u2 , . . . , um )T ∈ Rm (un ui Simplesso duale

per ogni vincolo), il problema di determinare

L(u) = max{cT x − uT (Ax − b) : x ≥ 0} (L)

è un rilassamento lagrangiano (dei vincoli Ax = b) per il


problema P.

L(u) = uT b + max{(cT − uT A)x : x ≥ 0} (L)

Ricerca Operativa aa 2015/16 – 7 / 27


Duale di un programma lineare

Proprietà. Duale di un
programma lineare
Relazioni tra primale
■ L è un rilassamento di P. e duale
Dualità forte
■ L(u) esiste finito (e vale uT b) se e solo se Basi ammissibili
duali
Simplesso duale
cT − uT A ≤ 0.

Ricerca Operativa aa 2015/16 – 8 / 27


Duale di un programma lineare

Proprietà. Duale di un
programma lineare
Relazioni tra primale
■ L è un rilassamento di P. e duale
Dualità forte
■ L(u) esiste finito (e vale uT b) se e solo se Basi ammissibili
duali
Simplesso duale
cT − uT A ≤ 0.

■ Ogni valore di u dà luogo a un rilassamento.


■ Si cerca il miglior upper bound (il più basso).

Ricerca Operativa aa 2015/16 – 8 / 27


Duale di un programma lineare

Proprietà. Duale di un
programma lineare
Relazioni tra primale
■ L è un rilassamento di P. e duale
Dualità forte
■ L(u) esiste finito (e vale uT b) se e solo se Basi ammissibili
duali
Simplesso duale
cT − uT A ≤ 0.

■ Ogni valore di u dà luogo a un rilassamento.


■ Si cerca il miglior upper bound (il più basso).
min w = uT b
soggetto a u T A ≥ cT
u ∈ Rm (libero in segno).

Ricerca Operativa aa 2015/16 – 8 / 27


Duale di un programma lineare

Caratteristiche. Duale di un
programma lineare
Relazioni tra primale
■ Nella funzione obiettivo duale, le variabili u1 , . . . , um e duale
Dualità forte
appaiono pesate dai coefficienti bT = (b1 , . . . , bm ). Basi ammissibili
duali
■ Per ogni variabile primale si genera un vincolo duale. Simplesso duale
■ Nel j-esimo vincolo duale le variabili u1 , . . . , um
appaiono con i coefficienti della colonna Aj .
■ Nel j-esimo vincolo duale il termine noto è cj .
Motivazioni
■ A volte è più efficiente la manipolazione del duale.
■ Operazione importante per la programmazione lineare
a variabili intere.

Ricerca Operativa aa 2015/16 – 9 / 27


Duale di un programma lineare

Duale di un
programma lineare
Relazioni tra primale
min{w = uT b : uT A − vT = cT } (D) e duale
Dualità forte
Basi ammissibili
Regione ammissibile duale. duali
Simplesso duale

Da = {u ∈ Rm : uT A ≥ cT }.

Da = {(u ∈ Rm , v ∈ Rn+ ) : uT A − vT = cT }.
Osservazioni. Se (u, v) ∈ Da , basta conoscere u o v per
determinare la soluzione completa.
■ Da u, si determina vT = uT A − cT .
■ Da v, si determina u:

uT A = (v + c)T ha soluzione unica.

Ricerca Operativa aa 2015/16 – 10 / 27


Duale di un programma lineare

Esempio. Duale di un
programma lineare
Relazioni tra primale
e duale
max z =x1 − x2 max z =x1 − x2 Dualità forte
Basi ammissibili
soggetto a x1 + 2x2 ≥ 5 soggetto a x1 +x2 − x3 = 5 duali
⇔ Simplesso duale
3x1 + x2 ≤ 6 3x1 +x2 + x4 = 6
x1 , x2 ≥ 0 x1 , . . . , x4 ≥ 0

min w =5u1 + 6u2


min w =5u1 + 6u2
soggetto a u1 +3u2 − v1 = 1
soggetto a u1 + 3u2 ≥ 1
2u1 +u2 − v2 = −1
2u1 + u2 ≥ −1 ⇔
− u1 − v3 = 0
− u1 ≥0
u2 − v4 = 0
u2 ≥ 0
v1 , . . . , v4 ≥ 0.

Ricerca Operativa aa 2015/16 – 11 / 27


Relazioni tra primale e duale

Proprietà. P è il duale di D. Duale di un


programma lineare
Relazioni tra primale
Proprietà. Per ogni x ∈ Sa , u ∈ Da risulta e duale
Dualità forte
Basi ammissibili
u T b ≥ cT x (dualità debole). duali
Simplesso duale

Ricerca Operativa aa 2015/16 – 12 / 27


Relazioni tra primale e duale

Corollario. Duale di un
programma lineare
Relazioni tra primale
P illimitato =⇒ Da = ∅ e duale
Dualità forte
Basi ammissibili
D illimitato =⇒ Sa = ∅ duali
Simplesso duale

Corollario. Se per due soluzioni x∗ ∈ Sa , u∗ ∈ Da risulta


cT x∗ = u∗T b, allora
■ x∗ è una soluzione ottima di P;
■ u∗ è una soluzione ottima di D;
■ entrambi i programmi hanno identico valore
dell’ottimo z ∗ = cT x∗ = u∗T b = w∗ .

Ricerca Operativa aa 2015/16 – 13 / 27


Dualità forte

Teorema. P ammette una soluzione ottima ⇐⇒ Duale di un


programma lineare
D ammette una soluzione ottima. Inoltre, i valori di Relazioni tra primale
e duale
funzione obiettivo dei due ottimi coincidono. Dualità forte
Basi ammissibili
duali
Simplesso duale

Ricerca Operativa aa 2015/16 – 14 / 27


Dualità forte

Teorema. P ammette una soluzione ottima ⇐⇒ Duale di un


programma lineare
D ammette una soluzione ottima. Inoltre, i valori di Relazioni tra primale
e duale
funzione obiettivo dei due ottimi coincidono. Dualità forte
Basi ammissibili
duali
Condizioni di complementarietà. Siano x∗ ∈ Sa e Simplesso duale
(u∗ , v∗ ) ∈ Da .
x∗ e (u∗ , v∗ ) sono entrambi soluzioni ottime
rispettivamente per (P) e (D) se e solo se

v∗T x∗ = 0 [cioè (u∗T A − cT )x∗ = 0].

Ricerca Operativa aa 2015/16 – 14 / 27


Basi ammissibili duali

B = base di P— non necessariamente ammissibile. Duale di un


programma lineare
Notazione. Relazioni tra primale
e duale
Dualità forte
A → 
(AB ,AN ) Basi ammissibili
duali
cB Simplesso duale
c →
 cN 
xB
x →
x N 
vB
v →
vN

Ricerca Operativa aa 2015/16 – 15 / 27


Basi ammissibili duali

B = base di P— non necessariamente ammissibile. Duale di un


programma lineare
La soluzione duale u(B), v(B) associata a B è l’unica Relazioni tra primale
e duale
soluzione di uT A − vT = cT che soddisfa la condizione Dualità forte
Basi ammissibili
vB = 0. duali
Simplesso duale
( T T T
u A B − v B = c B
uT A − v = cT ⇐⇒
u T AN − v NT
= cTN

vB = 0



v(B), u(B) : uT AB = cTB =⇒ uT = cTB A−1
B

T
= −cTN + uT AN T
=⇒ vN = −cN + cTB A−1

vN B AN

Ricerca Operativa aa 2015/16 – 16 / 27


Basi ammissibili duali

B = base di P— non necessariamente ammissibile. Duale di un


programma lineare
Relazioni tra primale
e duale
Dualità forte
v =0

Basi ammissibili
 B
 duali

v(B), u(B) : uT = cTB A−1


B
Simplesso duale

vN = −cN + cTB A−1
 T
B AN = −rT (B)

Se v(B) ≥ 0 la base (primale) B è detta duale


ammissibile.

Ricerca Operativa aa 2015/16 – 17 / 27


Basi ammissibili duali

Duale di un
programma lineare
max z =x1 − x2 max z =x1 − x2 Relazioni tra primale
e duale

soggetto a x1 + 2x2 ≥ 5 soggetto a x1 +x2 − x3 = 5 Dualità forte


Basi ammissibili
⇔ duali
3x1 + x2 ≤ 6 3x1 +x2 + x4 = 6 Simplesso duale

x1 , x2 ≥ 0 x1 , . . . , x4 ≥ 0

min w =5u1 + 6u2


min w =5u1 + 6u2
soggetto a u1 +3u2 − v1 = 1
soggetto a u1 + 3u2 ≥ 1
2u1 +u2 − v2 = −1
2u1 + u2 ≥ −1 ⇔
− u1 − v3 = 0
− u1 ≥0
u2 − v4 = 0
u2 ≥ 0
v1 , . . . , v4 ≥ 0.

Ricerca Operativa aa 2015/16 – 18 / 27


Basi ammissibili duali

x2
Duale di un
programma lineare
Relazioni tra primale
6 b
B4 e duale
Dualità forte
Basi ammissibili
duali
5 Simplesso duale

3
b
B1

2 b
B2

1
B0 B3 B5
b b b

x1
−1 1 2 3 4 5
−1
Ricerca Operativa aa 2015/16 – 19 / 27
Basi ammissibili duali

u2
Duale di un
programma lineare
Relazioni tra primale
2 e duale
Dualità forte
Basi ammissibili
duali
B2 1 Simplesso duale
b
B3
b
B5
b b b

B0 1 u1
−3 −2 −1 B1 2
−1 b
B4

B u(B) v(B)
B0 : x3 = −5 x4 = 6 0 0 −1 1 0 0
B1 : x2 = 25 x4 = 27 − 12 0 − 23 0 1
2 0
B2 : x1 = 75 x2 = 59 − 45 3
5 0 0 4
5
3
5
1 4 1
B3 : x1 = 2 x3 = −3 0 3 0 3 0 3

Ricerca Operativa aa 2015/16 – 20 / 27


Basi ammissibili duali

u2
Duale di un
programma lineare
Relazioni tra primale
2 e duale
Dualità forte
Basi ammissibili
duali
B2 1 Simplesso duale
b
B3
b
B5
b b b

B0 1 u1
−3 −2 −1 B1 2
−1 b
B4

B u(B) v(B)
B0 : x3 = −5 x4 = 6 0 0 −1 1 0 0
B1 : x2 = 25 x4 = 27 − 12 0 − 23 0 1
2 0
B2 : x1 = 74 x2 = 59 − 45 3
5 0 0 4
5
3
5
1 4 1
B3 : x1 = 2 x3 = −3 0 3 0 3 0 3

Ricerca Operativa aa 2015/16 – 21 / 27


Simplesso duale

■ Se è nota una base B non ammissibile per P, ma Duale di un


programma lineare
■ duale ammissibile Relazioni tra primale
e duale
■ è possibile ottimizzare il duale agendo sulla Dualità forte
Basi ammissibili
riformulazione primale. duali
Simplesso duale
■ Computazionalmente vantaggioso in svariate
situazioni.

Ricerca Operativa aa 2015/16 – 22 / 27


Simplesso duale

Cambio di base duale. Duale di un


programma lineare
Relazioni tra primale
■ Scegliere la variabile di base uscente xp sulla e duale
Dualità forte
riformulazione in modo da avere xp (B) < 0. Basi ammissibili
duali
X Simplesso duale
max z = z(B) + rj x j
Xj rj ≤ 0 ∀j
xp = βp + αj xj
βp < 0
j
............................

■ Scegliere la variabile entrante xq in modo che sia


rq rj
− = min{− : αj > 0.}
αq αj
■ Se αj ≤ 0 ∀j =⇒ D illimitato.

Ricerca Operativa aa 2015/16 – 23 / 27


Simplesso duale

Duale di un
Cambio di base duale (cont.). programma lineare
Relazioni tra primale
■ Effettuando un normale cambio di base e duale
Dualità forte
B ′ = (B \ {xp }) ∪ {xq }) si ottiene una riformulazione Basi ammissibili
duali
    Simplesso duale
rq rq X rq
max z = z(B) − β + xp + rj − α j xj
αq αq αq
j6=q
βq 1 X αj
xq = − + xp − xj
αq αq αq
j6=q
..................................

Ricerca Operativa aa 2015/16 – 24 / 27


Simplesso duale

■ La scelta di xp , xq garantisce Duale di un


programma lineare
Relazioni tra primale
  e duale
rq rq Dualità forte
≤0 rj − α j ≤0 Basi ammissibili
αq αq duali
Simplesso duale

■ cioè preserva l’ammissibilità duale.


r
■ Inoltre z(B ′ ) = z(B) − αqq βp ≤ z(B).

Ricerca Operativa aa 2015/16 – 25 / 27


Simplesso duale

Esempio. Duale di un
programma lineare
Relazioni tra primale

max z = 2 − 34 x2 − 13 x4 e duale
Dualità forte
Basi ammissibili
x3 = −3 + 53 x2 − 13 x4 duali
Simplesso duale
x1 = 2 − 31 x2 − 13 x4
x1 , . . . , x4 ≥ 0

Ricerca Operativa aa 2015/16 – 26 / 27


Simplesso duale

Esempio. Duale di un
programma lineare
Relazioni tra primale

max z = 2 − 34 x2 − 13 x4 e duale
Dualità forte
Basi ammissibili
x3 = −3 + 53 x2 − 13 x4 duali
1 1 → Simplesso duale
x1 = 2 − 3 x2 − 3 x4
x1 , . . . , x4 ≥ 0

max z = − 25 − 54 x3 − 35 x4
9
x2 = 5 + 53 x3 + 15 x4
→ 7
x1 = 5 − 51 x3 − 25 x4
x1 , . . . , x4 ≥ 0

Ricerca Operativa aa 2015/16 – 26 / 27


x2 Simplesso
x duale
2

6 b
B4 6 Duale di un
programma lineare
Relazioni tra primale
5 5 e duale
Dualità forte
Basi ammissibili
duali
4 4 Simplesso duale

3 3
b
B1

2 b
B2 2

1 B2 1
b
B3
B0 B3 B5 b
B5
b b b b b b

x1 B0 1 x1
1 2 3 4 5 −3 −2 −1 B1 2
−1 −1 b
B4

Ricerca Operativa aa 2015/16 – 27 / 27