Dualit`a - Informatica

Transcript

Dualit`a - Informatica
Dualità
Andrea Scozzari
a.a. 2012-2013
March 26, 2013
Andrea Scozzari (a.a. 2012-2013)
Dualità
March 26, 2013
1 / 21
Esercizio n.1
Lezione 22-03-2013
Sia data una raffineria che deve miscelare 4 costituenti del petrolio per
ottenere 3 qualità di benzina A, B, C . Siano
Cosituenti
1
2
3
4
Quantità massima disponibile in barili
3000
2000
4000
1000
Andrea Scozzari (a.a. 2012-2013)
Dualità
Costo per barile
3
6
4
5
March 26, 2013
2 / 21
Esercizio n.1
Lezione 22-03-2013
Per mantenere la qualità richiesta per ciascun grado di benzina A, B, C è
necessario specificare percentuali massime o minime dei costituenti 1,2,3,4.
1. per la benzina A: non più del 30% di costituente 1; non meno del
40% di costituente 2; non più del 50% di costituente 3.
2. per la benzina B: non più del 50% di costituente 1; non meno del
70% di costituente 2.
3. per la benzina C : non più del 70% di costituente 1.
Il problema consiste nel determinare la produzione delle tre benzine in
modo tale da massimizzare il profitto totale. Il prezzo per barile è
Qualità Prezzo di vendita per barile
A
5.5
B
4.5
C
3.5
Andrea Scozzari (a.a. 2012-2013)
Dualità
March 26, 2013
3 / 21
Modello
xij = il numero totale di barili di costituente j per la produzione della
benzina di qualità i
La quantità totale di benzina i è:
xi1 + xi2 + xi3 + xi4
i = A, B, C
Il consumo totale del costituente j è:
xAj + xBj + xCj
j = 1, . . . , 4
Profitto totale
z = 5.5(xA1 + xA2 + xA3 + xA4 ) + 4.5(xB1 + xB2 + xB3 + xB4 )+
3.5(xC 1 + xC 2 + xC 3 + xC 4 ) − 3(xA1 + xB1 + xC 1 ) − 6(xA2 + xB2 + xC 2 )
−4(xA3 + xB3 + xC 3 ) − 5(xA4 + xB4 + xC 4 )
Andrea Scozzari (a.a. 2012-2013)
Dualità
March 26, 2013
4 / 21
Modello
Limitazioni sulla disponibilità di ciascun costituente
xA1 + xB1 + xC 1
xA2 + xB2 + xC 2
xA3 + xB3 + xC 3
xA4 + xB4 + xC 4
≤ 3000
≤ 2000
≤ 4000
≤ 1000
Vincoli sulle percentuali massime o minime di ciascun costituente
xA1 ≤ 0.3(xA1 + xA2 + xA3 + xA4 )
xA2 ≥ 0.4(xA1 + xA2 + xA3 + xA4 )
xA3 ≤ 0.5(xA1 + xA2 + xA3 + xA4 )
xB1 ≤ 0.5(xB1 + xB2 + xB3 + xB4 )
xB2 ≥ 0.7(xB1 + xB2 + xB3 + xB4 )
xC 1 ≤ 0.7(xC 1 + xC 2 + xC 3 + xC 4 )
Vincoli di non negatività
xij ≥ 0
Andrea Scozzari (a.a. 2012-2013)
i = A, B, C
Dualità
j = 1, . . . , 4
March 26, 2013
5 / 21
Esercizio n.2
Lezione 22-03-2013
Bisogna gestire 3 fattorie la cui produzione è limitata sia dalla superficie
utilizzabile che dalla quantità di litri di acqua per la irrigazione
Fattoria
1
2
3
Terreno utilizzabile in acri
400
600
300
Andrea Scozzari (a.a. 2012-2013)
Dualità
Acqua disponibile per acro
1500
2000
900
March 26, 2013
6 / 21
Esercizio n.2
Lezione 22-03-2013
Si vogliono piantare 3 raccolti A, B, C per i quali si hanno le seguenti
informazioni
Raccolto
A
B
C
Acri da utilizzare
700
800
300
Acqua per acro
5
4
3
Profitto atteso per acro
400
300
100
Si vuole inoltre che la percentuale della superficie utilizzabile in ogni
fattoria sia la stessa (carico di lavoro uniforme)
Problema: Quanto di ciascun raccolto deve essere piantato per
massimizzare il profitto
Andrea Scozzari (a.a. 2012-2013)
Dualità
March 26, 2013
7 / 21
Modello
xij = numero di acri da coltivare della fattoria i riservati al raccolto j
Profitto totale
z = 400(x1A + x2A + x3A ) + 300(x1B + x2B + x3B ) + 100(x1C + x2C + x3C )
Limitazioni sulla disponibilità della superficie di ogni fattoria
x1A + x1B + x1C ≤ 400
x2A + x2B + x2C ≤ 600
x3A + x3B + x3C ≤ 300
Andrea Scozzari (a.a. 2012-2013)
Dualità
March 26, 2013
8 / 21
Modello
Limitazioni sull’uso dell’acqua per ogni fattoria
5x1A + 4x1B + 3x1C ≤ 1500
5x2A + 4x2B + 3x2C ≤ 2000
5x3A + 4x3B + 3x3C ≤ 900
Limitazioni sull’utilizzo della superficie coltivabile per ciascun raccolto
x1A + x2A + x3A ≤ 700
x1B + x2B + x3B ≤ 800
x1C + x2C + x3C ≤ 300
Andrea Scozzari (a.a. 2012-2013)
Dualità
March 26, 2013
9 / 21
Modello
Vincoli sul carico di lavoro
x1A +x1B +x1C
400
=
x2A +x2B +x2C
600
x2A +x2B +x2C
600
=
x3A +x3B +x3C
300
x1A +x1B +x1C
400
=
x3A +x3B +x3C
300
Dato che le prime due equazioni implicano la terza, questa si può eliminare
dato che diventa ridondante.
Vincoli di non negatività
xij ≥ 0
Andrea Scozzari (a.a. 2012-2013)
i = A, B, C
Dualità
j = 1, 2, 3
March 26, 2013
10 / 21
La Dualità: Teoremi
Lemma
1. Se il problema Primale (P) è illimitato superiormente allora il
problema duale (D) è inammissibile
2. Se il problema Duale (D) è illimitato inferiormente allora il problema
Primale (P) è inammissibile
Andrea Scozzari (a.a. 2012-2013)
Dualità
March 26, 2013
11 / 21
Dimostrazione Lemma
1. Se il problema Primale (P) è illimitato superiormente allora il
problema duale (D) è inammissibile
Supponiamo che (P) sia illimitato ma che per assurdo (D) sia ammissibile.
Allora per il problema di dualità in forma debole esisterebbe una soluzione
u ammissibile per (D) tale che presa una soluzione ammissibile x per (P):
cx ≤ ub
Allora ub sarebbe una limitazione superiore per la funzione obiettivo di
(P). Questo però non è possibile perché per ipotesi (P) è illimitato
superiormente.
In modo del tutto simmetrico si dimostra 2.
Andrea Scozzari (a.a. 2012-2013)
Dualità
March 26, 2013
12 / 21
La Dualità: Teoremi
Teorema
Teorema di Dualità in forma Forte: Data una coppia di problemi (P) e
(D) si possono presentare solamente le seguenti possibilità:
1. Il primale e il duale posseggono soluzioni ammissibili, allora hanno
entrambi ottimo finito e i due ottimi coincidono.
2. Il primale possiede soluzioni ammissibili ed il duale è inammissibile.
Allora il primale ha un ottimo illimitato.
3. Il duale possiede soluzioni ammissibili ed il primale è inammissibile.
Allora il duale ha un ottimo illimitato.
4. Né il primale, né il duale posseggono soluzioni ammissibili.
Andrea Scozzari (a.a. 2012-2013)
Dualità
March 26, 2013
13 / 21
La Dualità: Teoremi
Dimostrazione
Consideriamo il problema in forma standard e assumiamo che c ∈ Rn sia
un vettore riga. Dimostriamo il primo punto:
max cx
Ax = b
(1)
x ≥0
Se il problema (1) ha una soluzione ottima x̄, per il teorema fondamentale
della PL (1) ha una soluzione basica ottima. Pertanto sia B una base
ottima e la soluzione basica sarà:
(x̄B , x̄N ) = (B −1 b, 0)
Andrea Scozzari (a.a. 2012-2013)
Dualità
March 26, 2013
14 / 21
La Dualità: Teoremi
Dimostrazione
La funzione obiettivo Z del problema diviene:
Z = cB B −1 b + (cN − cB B −1 N)x̄N = πb + (cN − πN)x̄N
dove cB B −1 = π e c̄N = cN − πN ≤ 0 per il fatto che x̄ è soluzione ottima
del Primale. Si fa vedere che π = ū è una soluzione ammissibile del
problema Duale (D).
Nella trasformazione Primale-Duale, possiamo distinguere i vincoli
associati alle variabili basiche (del primale) e quelli associati alle variabili
non basiche (del primale) e otteniamo:
uB ≥ cB
e
uN ≥ cN
Andrea Scozzari (a.a. 2012-2013)
Dualità
March 26, 2013
15 / 21
La Dualità: Teoremi
Dimostrazione
Preso il vettore π = ū si ha:
ūB = cB B −1 B = cB
Inoltre
ūN = cB B −1 N = πN ≥ cN
Pertanto, si è dimostrato che il vettore π = cB B −1 = ū è una soluzione
ammissibile per il Duale. Inoltre, abbiamo anche:
c x̄ = cB x̄B + cN x̄N = cB B −1 b = πb = ūb
ovvero
c x̄ = ūb
Dalla condizione sufficiente di ottimalità si ha che ū è soluzione ottima per
il Duale.
Andrea Scozzari (a.a. 2012-2013)
Dualità
March 26, 2013
16 / 21
La Dualità: Teoremi
Dimostrazione
I punti 2. e 3. del teorema sono conseguenza (di fatto sono corollari) del
teorema di dualità in forma debole. Il punto 4. si può far vedere attraverso
un esempio:
(P) - Problema di Massimo:
(D) - Problema di Minimo:
max x1 + x2
min −u1 − u2
x1 − x2 ≤ −1
−x1 + x2 ≤ −1
x1 , x2 ≥ 0
u1 − u2 ≥ 1
−u1 + u2 ≥ 1
u1 , u2 ≥ 0
Andrea Scozzari (a.a. 2012-2013)
Dualità
March 26, 2013
17 / 21
La Dualità: Teoremi
Teorema
Sia x una soluzione ammissibile per il primale (P) ed u una soluzione
ammissibile per il duale (D), allora x ed u sono soluzioni ottime
rispettivamente per il primale e per il duale se e solo se sono verificate le
seguenti condizioni di ortogonalità:
u(b − Ax) = 0
(2)
(uA − c)x = 0
Andrea Scozzari (a.a. 2012-2013)
Dualità
March 26, 2013
18 / 21
La Dualità: Teoremi
Dimostrazione
Se x è una soluzione ammissibile per il primale ed u una soluzione
ammissibile per il duale, per il teorema di dualità debole si ha
cx ≤ uAx ≤ ub
Inoltre, x ed u sono soluzioni ottime se e solo se cx = ub. Questo discende
dala condizione sufficiente di ottimalità e dal teorema forte di dualità.
Pertanto, sono ottime se e solo se:
cx = uAx
e
uAx = ub
ovvero vale la condizione (2)
u(b − Ax) = 0
Andrea Scozzari (a.a. 2012-2013)
(uA − c)x = 0
Dualità
March 26, 2013
19 / 21
La Dualità: Teoremi
Corollario
Consideriamo le variabili ausiliarie (slack o surplus)
s = b − Ax ≥ 0
e
t = uA − c ≥ 0
Otteniamo le seguenti condizioni
us = 0
e
tx = 0
ovvero
ui si
i = 1, . . . , m
tj xj
j = 1, . . . , n
(3)
Andrea Scozzari (a.a. 2012-2013)
Dualità
March 26, 2013
20 / 21
La Dualità: Teoremi
Osservazione
Una maniera equivalente di interpretare le condizioni di ortogonalità è la
seguente. Un vincolo in un problema di PL si dice attivo se, per una data
assegnazione delle variabili x, questo è soddisfatto con il segno di
uguaglianza. Pertanto si avrà:
1. se ui > 0 allora l’i-mo vincolo del primale è attivo
2. se xj > 0 allora il j-mo vincolo del duale è attivo
Andrea Scozzari (a.a. 2012-2013)
Dualità
March 26, 2013
21 / 21