Sei sulla pagina 1di 32

Teoria della dualità

Ricerca Operativa1
A.A. 2020-2021
Prof.ssa P. Beraldi

1
In questa lezione
 Introduzione alla teoria della dualità

 Costruzione dei problemi duali

2
Teoria della dualità
 Ad ogni problema di PL, detto primale, risulta
associato un altro problema, detto duale,
costruito utilizzando gli stessi coefficienti

 Le soluzioni dei due problemi sono tra loro


strettamente legate

 La soluzione del problema duale fornisce utili


informazioni sulla soluzione del problema
primale

3
Costruzione del problema duale
Si consideri un problema (P) di PL in forma standard

min 𝑧 𝑥 = 𝑐𝑇𝑥
s.v.
𝐴𝑥 = 𝑏
𝑥 ≥ 0
con A ∈ Rmxn, b ∈Rm e x ∈ Rn

Al problema (P) viene associato il problema (D)


max w y = bTy
s. v.
ATy ≤ c
y libera
4
Costruzione del problema duale

min 𝑧(𝑥) = 𝑐𝑇𝑥 max w y = bTy


s.v. s. v.
𝐴𝑥 = 𝑏 A Ty ≤ c
𝑥 ≥ 0 y libera

• È immediato osservare che, mentre il primale è un


problema di minimo, il duale è un problema di massimo
• I termini noti di un problema sono i coefficienti della
funzione obiettivo dell’altro
• A ciascuna variabile (xj) del primale corrisponde
univocamente un vincolo del duale (la matrice AT ha
dimensione nxm)
• A ciascun vincolo (i) del primale corrisponde una variabile
del duale (yi) .
5
Esempio
 Si consideri il seguente problema di PL

min 𝑧 𝑥 = 10𝑥1 + 4𝑥2 + 7𝑥3


3𝑥1 − 5𝑥2 + 8𝑥3 = 27
𝑥1 + 3𝑥2 − 2𝑥3 = 40
𝑥1 , 𝑥2 , 𝑥3 ≥ 0

 Riscriviamo il problema in forma compatta

x= 𝑥1 𝑥2 𝑥3

3 −5 8 27
 𝐴= b= cT = 10 4 7
1 3 −2 40
Esempio
 Associamo le variabili duali ai vincoli del primale
y1e y2
3𝑥1 − 5𝑥2 + 8𝑥3 = 27 (y1)
𝑥1 + 3𝑥2 − 2𝑥3 = 40 (y2)
3 1
𝐴𝑇 = −5 3
8 −2

La funzione obiettivo

max 𝑤 𝑦 = 27 𝑦1 + 40 𝑦2
7
Costruzione del problema duale
 A ogni formulazione di un problema di PL diversa
da quella standard resta associato,
conformemente alla formulazione introdotta, un
problema duale.

 Si consideri il seguente problema primale:

min 𝑧 𝑥 = 𝑐𝑇𝑥
s.v.
𝐴𝑥 ≥ 𝑏
𝑥 ≥ 0

8
Costruzione del problema duale
Riscriviamo il problema in forma standard (indichiamo
con s le variabili di surplus)

min 𝑧 𝑥, 𝑠 = 𝑐𝑇𝑥 + 0𝑇𝑠


𝑠. 𝑣.
𝐴𝑥 − 𝐼𝑚𝑠 = 𝑏 (A –Im)
𝑥, 𝑠 ≥ 0

A tale problema primale risolta associato il duale

max 𝑤(𝑦) = 𝑏𝑇𝑦


𝑠. 𝑣.
𝐴𝑇 𝑦 ≤ 𝑐
−𝐼𝑚𝑦 ≤ 0

9
Costruzione problema duale
min 𝑧 𝑥 = 𝑐𝑇𝑥 max w(y) = bTy
s.v. s.v.
𝐴𝑥 ≥ 𝑏 ATy ≤ c
𝑥 ≥ 0 y ≥ 0

 Ad ogni vincolo di disuguaglianza del primale è


associata una variabile vincolata in segno nel duale
 Ad ogni vincolo di eguaglianza è associata una
variabile libera in segno nel duale

10
Costruzione del problema duale
Si consideri il seguente problema primale, con variabili di
decisione non sono vincolate in segno (eviteremo da ora in
poi di scrivere libere):

min 𝑧(𝑥) = 𝑐𝑇𝑥


𝑠. 𝑣.
𝐴𝑥 = 𝑏

Poniamo
+ −
𝑥 = 𝑥 −𝑥
+ −
𝑥 ,𝑥 ≥ 0

11
Costruzione del problema duale
Il problema primale si riscrive come
+ − 𝑇 + 𝑇 −
min 𝑧 𝑥 , 𝑥 = 𝑐𝑥 − 𝑐𝑥
s.v.
+ −
𝐴𝑥 − 𝐴𝑥 = 𝑏
+ −
𝑥 ,𝑥 ≥ 0

Il problema duale risulta


max 𝑤(𝑦) = 𝑏𝑇𝑦
𝑠. 𝑣.
𝐴𝑇 𝑦 ≤ 𝑐
−𝐴𝑇𝑦 ≤ −𝑐

12
Costruzione del problema duale
min 𝑧(𝑥) = 𝑐𝑇𝑥 max 𝑤(𝑦) = 𝑏𝑇𝑦
𝑠. 𝑣. 𝑠. 𝑣.
𝐴𝑥 = 𝑏 𝐴𝑇𝑦 = 𝑐.

 Se le variabili del primale non sono vincolate in


segno, i vincoli del duale sono espressi in termini di
uguaglianza
 Se le variabili del primale sono vincolate in segno, i
corrispondenti vincoli del duale sono di
diseguaglianza

13
Costruzione del problema duale
Riassumendo, l’insieme delle proprietà di
«simmetria» nella coppia primale-duale viene
espresso attraverso le seguenti regole generali:

 Ad un vincolo di disuguaglianza nel primale


corrisponde una variabile vincolata in segno nel
duale

 Ad un vincolo di uguaglianza nel primale


corrisponde una variabile libera in segno nel
duale

14
Costruzione del problema duale
 Ad una variabile vincolata in segno nel primale
corrisponde un vincolo di disuguaglianza nel
duale

 Ad una variabile libera in segno nel primale


corrisponde un vincolo di uguaglianza nel duale

 Se la funzione obiettivo del primale è in forma di


minimo, la funzione obiettivo del duale è in
forma di massimo e viceversa

15
Costruzione del problema duale
Teorema
Dato il seguente problema di PL:

min 𝑧(𝑥) = 𝑐𝑇𝑥


𝑠. 𝑣.
𝑎𝑇𝑖𝑥 ≥ 𝑏𝑖, 𝑖 ∈ 𝐼1
𝑎𝑇𝑖𝑥 ≤ 𝑏𝑖, 𝑖 ∈ 𝐼2
𝑎𝑇𝑖𝑥 = 𝑏𝑖, 𝑖 ∈ 𝐼3
𝑥𝑗 ≥ 0, 𝑗 ∈ 𝐽1
𝑥𝑗 ≤ 0, 𝑗 ∈ 𝐽2
𝑥𝑗 𝑙𝑖𝑏𝑒𝑟𝑎, 𝑗 ∈ 𝐽3
Il suo duale è
max 𝑤(𝑦) = 𝑏𝑇𝑦
𝑠. 𝑣.
𝑦𝑇𝐴𝑗 ≤ 𝑐𝑗 , 𝑗 ∈ 𝐽1
𝑦𝑇𝐴𝑗 ≥ 𝑐𝑗 , 𝑗 ∈ 𝐽2
𝑦𝑇𝐴𝑗 = 𝑐𝑗 , 𝑗 ∈ 𝐽3
𝑦𝑖 ≥ 0, 𝑖 ∈ 𝐼1
𝑦𝑖 ≤ 0, 𝑖 ∈ 𝐼2
16
𝑦𝑖 𝑙𝑖𝑏𝑒𝑟𝑎, 𝑖 ∈ 𝐼3 .
Tabella di Trasformazione
Primale min 𝑧(𝑥) = 𝑐𝑇𝑥 Duale max 𝑤(𝑦) = 𝑏𝑇𝑦

𝑎𝑇𝑖𝑥 ≥ 𝑏𝑖 𝑦𝑖 ≥ 0
𝑎𝑇𝑖𝑥 ≤ 𝑏𝑖 𝑦𝑖 ≤ 0
𝑎𝑇𝑖𝑥 = 𝑏𝑖 𝑦𝑖 𝑙𝑖𝑏𝑒𝑟𝑎
𝑥𝑗 ≥ 0 𝑦𝑇𝐴𝑗 ≤ 𝑐𝑗
𝑥𝑗 ≤ 0 𝑦𝑇𝐴𝑗 ≥ 𝑐𝑗
𝑥𝑗 𝑙𝑖𝑏𝑒𝑟𝑎 𝑦𝑇𝐴𝑗 = 𝑐𝑗

17
Esempio
Dato il seguente problema di PL:

min 𝑧(𝑥) = 8𝑥1 + 5𝑥2 + 13𝑥3 + 7𝑥4


𝑠. 𝑣.
4𝑥1 − 6𝑥2 + 8𝑥3 + 2𝑥4 ≤ 27
−𝑥1 + 3𝑥2 + 5𝑥3 + 3𝑥4 ≥ 12
𝑥1 − 2𝑥4 = 20
𝑥1, 𝑥2 ≥ 0
𝑥4 ≤ 0

Scrivere il problema duale

18
Tabella di Trasformazione
min 𝑧(𝑥) = 8𝑥1 + 5𝑥2 + 13𝑥3 + 7𝑥4
Primale Duale
min 𝑧(𝑥) = 𝑐𝑇𝑥 max 𝑤(𝑦) = 𝑏𝑇𝑦 𝑠. 𝑣.
4𝑥1 − 6𝑥2 + 8𝑥3 + 2𝑥4 ≤ 27 (𝑦1 )
𝑎𝑇𝑖𝑥 ≥ 𝑏𝑖 𝑦𝑖 ≥ 0 −𝑥1 + 3𝑥2 + 5𝑥3 + 3𝑥4 ≥ 12 (𝑦2 )
𝑥1 − 2𝑥4 = 20 (𝑦3 )
𝑎𝑇𝑖𝑥 ≤ 𝑏𝑖 𝑦𝑖 ≤ 0 𝑥1 , 𝑥 2 ≥ 0
𝑎𝑇𝑖𝑥 = 𝑏𝑖 𝑦𝑖 𝑙𝑖𝑏𝑒𝑟𝑎 𝑥4 ≤ 0
𝑥𝑗 ≥ 0 𝑦𝑇𝐴𝑗 ≤ 𝑐𝑗 max 𝑤(𝑦) = 27𝑦1 + 12𝑦2 + 20𝑦3
𝑥𝑗 ≤ 0 𝑦𝑇𝐴𝑗 ≥ 𝑐𝑗 𝑠. 𝑣.
4𝑦1 − 𝑦2 + 𝑦3 ≤ 8
𝑥𝑗 𝑙𝑖𝑏𝑒𝑟𝑎 𝑦𝑇𝐴𝑗 = 𝑐𝑗
−6𝑦1 + 3𝑦2 ≤ 5
8𝑦1 + 5𝑦2 = 13
2𝑦1 + 3𝑦2 − 2𝑦3 ≥ 7
𝑦1 ≤ 0
𝑦2 ≥ 0.
19
Esempio
Secondo procedimento
Trasformo il problema in modo da riportalo alla forma

min 𝑧 𝑥 = 𝑐𝑇𝑥 max w(y) = bTy


s.v. s.v.
𝐴𝑥 ≥ 𝑏 ATy ≤ c
𝑥 ≥ 0 y ≥ 0

min 𝑧(𝑥) = 8𝑥1 + 5𝑥2 + 13𝑥3 + 7𝑥4 min 𝑧 𝑥 = 8𝑥1 + 5𝑥2 + 13𝑥3 − 7 𝑥′4
𝑠. 𝑣. 𝑠. 𝑣.
4𝑥1 − 6𝑥2 + 8𝑥3 + 2𝑥4 ≤ 27 - 4𝑥1 + 6𝑥2 − 8𝑥3 + 2𝑥 ′ 4 ≥ − 27
−𝑥1 + 3𝑥2 + 5𝑥3 + 3𝑥4 ≥ 12 −𝑥1 + 3𝑥2 + 5𝑥3 − 3𝑥′4 ≥ 12
𝑥1 − 2𝑥4 = 20 𝑥1 + 2′𝑥4 = 20
𝑥1 , 𝑥2 ≥ 0 𝑥1 , 𝑥2 ≥ 0
𝑥4 ≤ 0 𝑥 ′4 ≥ 0

20
Esempio
min 𝑧 𝑥 = 8𝑥1 + 5𝑥2 + 13𝑥3 − 7 𝑥′4
𝑠. 𝑣.
- 4𝑥1 + 6𝑥2 − 8𝑥3 + 2𝑥 ′ 4 ≥ − 27 (𝑦1 )
−𝑥1 + 3𝑥2 + 5𝑥3 − 3𝑥 ′ 4 ≥ 12 (𝑦2 )
𝑥1 + 2′ 𝑥4 = 20 (𝑦3 )
𝑥1, 𝑥2 ≥ 0
𝑥 ′4 ≥ 0

max 𝑤 𝑦 = −27𝑦1 + 12𝑦2 + 20𝑦3


s.v.
-4𝑦1 − 𝑦2 + 𝑦3 ≤ 8
6𝑦1 + 3𝑦2 ≤ 5
-8𝑦1 + 5𝑦2 = 13
2𝑦1 − 3𝑦2 + 2𝑦3 ≤ − 7
𝑦1 ≥ 0
𝑦2 ≥ 0.
21
Esempio
max 𝑤(𝑦) = 27𝑦1 + 12𝑦2 + 20𝑦3
I metodo 𝑠. 𝑣.
4𝑦1 − 𝑦2 + 𝑦3 ≤ 8
−6𝑦1 + 3𝑦2 ≤ 5
8𝑦1 + 5𝑦2 = 13
2𝑦1 + 3𝑦2 − 2𝑦3 ≥ 7
𝑦1 ≤ 0
𝑦2 ≥ 0.
II metodo

max 𝑤 𝑦 = −27𝑦1 + 12𝑦2 + 20𝑦3 max 𝑤 𝑦 = −27𝑦1 + 12𝑦2 + 20𝑦3


s.v. s.v.,
-4𝑦1 − 𝑦2 + 𝑦3 ≤ 8 -4𝑦1 − 𝑦2 + 𝑦3 ≤ 8
6𝑦1 + 3𝑦2 ≤ 5 6𝑦1 + 3𝑦2 ≤ 5
-8𝑦1 + 5𝑦2 = 13 -8𝑦1 + 5𝑦2 = 13
2𝑦1 − 3𝑦2 + 2𝑦3 ≤ − 7 2𝑦1 − 3𝑦2 + 2𝑦3 ≤ − 7  −2𝑦1 + 3𝑦2 − 2𝑦3 ≥ 7
𝑦1 ≥ 0 𝑦1 ≥ 0
𝑦2 ≥ 0. 𝑦2 ≥ 0.

22
Esempio
max 𝑤 𝑦 = −27𝑦1 + 12𝑦2 + 20𝑦3
s.v.,
-4𝑦1 − 𝑦2 + 𝑦3 ≤ 8
6𝑦1 + 3𝑦2 ≤ 5
-8𝑦1 + 5𝑦2 = 13
-2𝑦1 + 3𝑦2 − 2𝑦3 ≥ 7
𝑦1 ≥ 0
𝑦2 ≥ 0.

max 𝑤(𝑦) = 27𝑦1 + 12𝑦2 + 20𝑦3


𝑠. 𝑣.
4𝑦1 − 𝑦2 + 𝑦3 ≤ 8
−6𝑦1 + 3𝑦2 ≤ 5
8𝑦1 + 5𝑦2 = 13
2𝑦1 + 3𝑦2 − 2𝑦3 ≥ 7
𝑦1 ≤ 0
𝑦2 ≥ 0.

23
Costruzione del problema duale
Cosa accade quando il problema è di massimo ?
Supponiamo di considerare il problema nella forma

max 𝑧(𝑥) = 𝑐𝑇𝑥


𝑠. 𝑣.
𝐴𝑥 ≤ 𝑏
𝑥 ≥ 0

Lo trasformiamo in forma standard

min 𝑧(𝑥, 𝑠) = −𝑐𝑇𝑥 − 0𝑇𝑠


𝑠. 𝑣.
𝐴𝑥 + 𝐼𝑚𝑠 = 𝑏
𝑥, 𝑠 ≥ 0
24
Costruzione del problema duale
Il duale risulta essere
max 𝑤(𝑦’) = 𝑏𝑇𝑦
𝑠. 𝑣.
𝐴𝑇𝑦 ≤ −𝑐
𝐼𝑚𝑦 ≤ 0

rimpiazzando 𝑦 con 𝑦′ = −𝑦 ,

min 𝑤(𝑦’) = 𝑏𝑇𝑦’


𝑠. 𝑣.
𝐴𝑇𝑦’ ≥ 𝑐
𝑦’ ≥ 0.

25
Costruzione del problema duale
max 𝑧(𝑥) = 𝑐𝑇𝑥 min 𝑤(𝑦’) = 𝑏𝑇𝑦’
𝑠. 𝑣. 𝑠. 𝑣.
𝐴𝑥 ≤ 𝑏 𝐴𝑇𝑦’ ≥ 𝑐
𝑥 ≥ 0 𝑦’ ≥ 0.

Se il problema primale è di massimo il corrispondente


duale è di minimo

26
Tabella di Trasformazione

Primale 𝒎𝒂𝒙 𝑧(𝑥) = 𝑐𝑇𝑥 Duale 𝒎𝒊𝒏 𝑤(𝑦) = 𝑏𝑇𝑦

𝑎𝑇𝑖𝑥 ≤ 𝑏𝑖 𝑦𝑖 ≥ 0
𝑎𝑇𝑖𝑥 ≥ 𝑏𝑖 𝑦𝑖 ≤ 0
𝑎𝑇𝑖𝑥 = 𝑏𝑖 𝑦𝑖 𝑙𝑖𝑏𝑒𝑟𝑎
𝑥𝑗 ≤ 0 𝑦𝑇𝐴𝑗 ≤ 𝑐𝑗
𝑥𝑗 ≥ 0 𝑦𝑇𝐴𝑗 ≥ 𝑐𝑗
𝑥𝑗 𝑙𝑖𝑏𝑒𝑟𝑎 𝑦𝑇𝐴𝑗 = 𝑐𝑗

27
Esempio
Dato il seguente problema di PL:

max 𝑧(𝑥) = 6𝑥1 + 8𝑥2 + 4𝑥3


𝑠. 𝑣.
𝑥1 + 𝑥2 + 2𝑥3 ≤ 10
3𝑥1 + 5𝑥2 = 15
5𝑥1 + 2𝑥2 + 4𝑥3 ≥ 20
𝑥1, 𝑥2 ≥ 0

Costruire il problema duale

28
Esempio
max 𝑧(𝑥) = 𝑐𝑇𝑥 min 𝑤(𝑦) = 𝑏𝑇𝑦
𝑠. 𝑣. 𝑠. 𝑣.
𝐴𝑥 ≤ 𝑏 𝐴𝑇𝑦 ≥ 𝑐
𝑥 ≥ 0 𝑦 ≥ 0.

max 𝑧(𝑥) = 6𝑥1 + 8𝑥2 + 4𝑥3


𝑠. 𝑣
𝑥1 + 𝑥2 + 2𝑥3 ≤ 10
3𝑥1 + 5𝑥2 = 15
5𝑥1 + 2𝑥2 + 4𝑥3 ≥ 20  -5𝑥1 − 2𝑥2 − 4𝑥3 ≤ − 20
𝑥1, 𝑥2 ≥ 0

29
Esempio
max 𝑧(𝑥) = 6𝑥1 + 8𝑥2 + 4𝑥3
𝑠. 𝑣
𝑥1 + 𝑥2 + 2𝑥3 ≤ 10 (y1 )
3𝑥1 + 5𝑥2 = 15 (y2 )
-5𝑥1 − 2𝑥2 − 4𝑥3 ≤ − 20 (y3 )
𝑥1, 𝑥2 ≥ 0

min 𝑤 𝑦 = 10𝑦1 + 15𝑦2 − 20𝑦3


𝑠. 𝑣.
𝑦1 + 3𝑦2 − 5𝑦3 ≥ 6
𝑦1 + 5𝑦2 − 2𝑦3 ≥ 8
2𝑦1 − 4𝑦3 = 4
𝑦1 ≥ 0
𝑦3 ≥ 0.
30
Osservazione
max 𝑧(𝑥) = 6𝑥1 + 8𝑥2 + 4𝑥3
𝑠. 𝑣.
𝑥1 + 𝑥2 + 2𝑥3 ≤ 10
3𝑥1 + 5𝑥2 = 15
5𝑥1 + 2𝑥2 + 4𝑥3 ≥ 20
𝑥1, 𝑥2 ≥ 0

min 𝑤 𝑦 = 10𝑦1 + 15𝑦2 + 20𝑦3


𝑠. 𝑣.
𝑦1 + 3𝑦2 + 5𝑦3 ≥ 6
𝑦1 + 5𝑦2 + 2𝑦3 ≥ 8
2𝑦1 + 4𝑦3 = 4
𝑦1 ≥ 0
𝑦3 ≤ 0. 31
Osservazione
min 𝑤 𝑦 = 10𝑦1 + 15𝑦2 − 20𝑦3
𝑠. 𝑣.
𝑦1 + 3𝑦2 − 5𝑦3 ≥ 6
𝑦1 + 5𝑦2 − 2𝑦3 ≥ 8
2𝑦1 − 4𝑦3 = 4
𝑦1 ≥ 0
𝑦3 ≥ 0

min 𝑤 𝑦 = 10𝑦1 + 15𝑦2 + 20𝑦3


𝑠. 𝑣.
𝑦1 + 3𝑦2 + 5𝑦3 ≥ 6
𝑦1 + 5𝑦2 + 2𝑦3 ≥ 8
2𝑦1 + 4𝑦3 = 4
𝑦1 ≥ 0
𝑦3 ≤ 0. 32

Potrebbero piacerti anche