Teoria della dualità¶
Parte 3 · Dualità e simplesso duale · Capitolo 9 · Dispensa, volume 3 (PDF) · Esercizi: Teoria della dualità · App: Dualità debole e forte
9.1 Problema duale di un problema LP in forma canonica di massimo¶
Definizione 9.1: problema duale di un problema LP in forma canonica di massimo
Dato un problema di programmazione lineare (LP) in forma canonica di massimo con \(n\) variabili non negative e \(m\) vincoli lineari di minore o uguale (detto problema primale e indicato con \(LP\)):
il seguente problema LP con \(m\) variabili non negative e \(n\) vincoli lineari di maggiore o uguale
si chiama problema duale e si indica con \(D(LP)\).
Esempio 9.1: coppia di problemi primale e duale
Consideriamo il seguente problema primale \(LP\) in forma canonica di massimo con \(n=2\) variabili non negative e \(m=3\) vincoli lineari di minore o uguale (Esempio 9.1):
Il problema duale \(D(LP)\), con \(m=3\) variabili non negative e \(n=2\) vincoli lineari di maggiore o uguale, è il seguente:
Si ottengono upper bound sul valore ottimo \(z(LP)\) del problema primale prendendo combinazioni lineari non negative dei vincoli, con i moltiplicatori scelti in modo che il coefficiente di ciascuna variabile nel membro sinistro risultante sia maggiore o uguale al suo coefficiente nella funzione obiettivo. Il membro destro della disuguaglianza risultante fornisce allora un upper bound su \(z(LP)\).
Esempio 9.2: Calcolo di upper bound tramite combinazioni lineari dei vincoli
Consideriamo il problema primale dell'Esempio 9.1.
-
Ad esempio, moltiplicando il secondo vincolo per \(5\), otteniamo:
\[ 5 \; x_1 + 10 \; x_2 ~~\le~~ 60 \]Quindi, ogni soluzione ammissibile del problema primale soddisfa questa disuguaglianza, che è una sovrastima della funzione obiettivo, poiché abbiamo:
\[ 5 \;x_{1} + 2 \; x_{2} ~~\le~~ 5 \; x_1 + 10 \;x_2 ~~\le~~ 60 \]In particolare, queste disuguaglianze valgono per la soluzione ottima, quindi \(z(\,LP\,) \le 60\).
-
Ad esempio, moltiplicando il secondo vincolo per \(\frac{5}{2}\) e sommandolo poi al terzo vincolo, otteniamo:
\[ \frac{5}{2}\,(x_1 + 2\,x_2) + (3\,x_1 - 2\,x_2) \le 12 \cdot \frac{5}{2} + 8 ~~\Rightarrow~~ \frac{11}{2}\,x_1 + 3\,x_2 \le 38 \]Quindi, ogni soluzione ammissibile del problema primale soddisfa questa disuguaglianza, che è una sovrastima della funzione obiettivo, poiché abbiamo:
\[ 5 \;x_{1} + 2 \; x_{2} ~~\le~~ \frac{11}{2}\,x_1 + 3\,x_2 ~~\le~~ 38 \]In particolare, queste disuguaglianze valgono per la soluzione ottima, quindi \(z(\,LP\,) \le 38\).
-
Ad esempio, moltiplicando il primo, il secondo e il terzo vincolo rispettivamente per \(2\), \(1\) e \(2\), e poi sommandoli, otteniamo:
\[ 2\,(-x_1 + 3\,x_2) + (x_1 + 2\,x_2) + 2\,(3\,x_1 - 2\,x_2) \le 12 \cdot 2 + 12 + 8 \cdot 2 ~~\Rightarrow~~ 5\,x_1 + 4\,x_2 \le 52 \]Quindi, ogni soluzione ammissibile del problema primale soddisfa questa disuguaglianza, che è una sovrastima della funzione obiettivo, poiché abbiamo:
\[ 5 \;x_{1} + 2 \; x_{2} ~~\le~~ 5 \;x_{1} + 4 \; x_{2} ~~\le~~ 52 \]In particolare, queste disuguaglianze valgono per la soluzione ottima, quindi \(z(\,LP\,) \le 52\).
Esempio 9.3: Calcolo di upper bound tramite combinazioni lineari dei vincoli
Consideriamo il problema primale dell'Esempio 9.1.
Poiché abbiamo tre vincoli, introduciamo tre moltiplicatori: \(\pi_1\), \(\pi_2\) e \(\pi_3\). Moltiplicando ciascun vincolo per il suo moltiplicatore, otteniamo:
Sommando le tre disuguaglianze, otteniamo:
Raggruppando per variabile, otteniamo:
Il membro destro di questa disuguaglianza fornisce un upper bound valido su \(z(\, LP\,)\) se e solo se il coefficiente di ciascuna variabile è almeno pari al coefficiente corrispondente nella funzione obiettivo:
Ogni moltiplicatore deve essere non negativo:
altrimenti il verso della disuguaglianza corrispondente si invertirebbe. Poiché vogliamo ottenere il miglior upper bound possibile, cioè il più piccolo, dobbiamo minimizzare il membro destro della disuguaglianza che fornisce l'upper bound su \(z(\,LP\,)\).
Il problema duale \(D(LP)\) è il problema LP di trovare il miglior upper bound possibile sul valore ottimo \(z(\, LP\,)\) del problema primale \(LP\) tramite combinazioni lineari dei vincoli.
- Una proprietà importante della trasformazione di dualità è che restituisce il problema di partenza se applicata due volte.
Dimostrazione
Partendo dal problema duale (9.2),
consideriamo il problema LP equivalente ottenuto moltiplicando per \(-1\) la funzione obiettivo e ciascun vincolo:
Questo problema è ora in forma canonica di massimo. Quindi, il suo duale è
Infine, moltiplicando per \(-1\) la funzione obiettivo e ciascun vincolo, otteniamo il problema equivalente
che è esattamente il problema primale (9.1). Pertanto, il duale del problema duale (9.2) è il problema primale (9.1). □
9.1.1 Dualità debole¶
- Il seguente teorema, detto della dualità debole, afferma che il valore di qualunque soluzione ammissibile del problema primale (9.1) è minore o uguale al valore di qualunque soluzione ammissibile del problema duale (9.2).
Teorema 9.3: Dualità debole
Per ogni soluzione ammissibile \((\bar x_1,\bar x_2,\dots,\bar x_n)\) del problema primale (9.1) e ogni soluzione ammissibile \((\bar \pi_1,\bar \pi_2,\dots,\bar \pi_m)\) del problema duale (9.2), abbiamo
- L'idea della dimostrazione è usare l'ammissibilità primale e duale delle due soluzioni per mostrare che il valore della soluzione primale è al più uguale al valore della soluzione duale.
Dimostrazione
Abbiamo:
□
-
Il teorema della dualità debole afferma che il valore di qualunque soluzione ammissibile \((\bar \pi_1,\bar \pi_2,\dots,\bar \pi_m)\) di un problema duale (9.2) fornisce un upper bound valido sul valore ottimo \(z(\,LP\,)\) del problema primale (9.1):
\[ z(\, LP\,) \le \sum_{i=1}^m b_i \; \bar \pi_i \]Inoltre, il valore di qualunque soluzione ammissibile \((\bar x_1,\bar x_2, \dots,\bar x_n)\) di un problema primale (9.1) fornisce un lower bound valido sul valore ottimo \(z(~ D(LP)~)\) del problema duale (9.2):
\[ \sum_{j=1}^n c_j \; \bar x_j \le z( ~D(LP)~) \]
Esempio 9.4: Soluzioni ammissibili primali e duali
Consideriamo la seguente coppia di problemi LP primale e duale:
Una soluzione primale ammissibile è:
Essa fornisce il seguente lower bound sul valore ottimo:
Un'altra soluzione primale ammissibile è:
Essa fornisce il seguente lower bound sul valore ottimo:
Una soluzione duale ammissibile è:
Essa fornisce il seguente upper bound sul valore ottimo:
Un'altra soluzione duale ammissibile è:
Essa fornisce il seguente upper bound sul valore ottimo:
-
Grazie alla dualità debole, possiamo mostrare che \((\tilde x_1,\tilde x_2,\dots,\tilde x_n)\) è una soluzione ottima del problema primale (9.1) e \((\tilde \pi_1,\tilde \pi_2,\dots,\tilde \pi_m)\) è una soluzione ottima del problema duale (9.2) se sono ammissibili per i rispettivi problemi e soddisfano
\[ \sum_{j=1}^n c_j \tilde x_j = \sum_{i=1}^m b_i \tilde \pi_i. \]Ciò discende dalla dualità debole nel modo seguente:
-
Per la dualità debole, per ogni soluzione ammissibile \((\bar x_1,\bar x_2,\dots,\bar x_n)\) del problema primale (9.1) e per la soluzione duale ammissibile \((\tilde \pi_1,\tilde \pi_2,\dots,\tilde \pi_m)\), abbiamo
\[ \sum_{j=1}^n c_j \bar x_j \le \sum_{i=1}^m b_i \tilde \pi_i. \]Se, inoltre,
\[ \sum_{j=1}^n c_j \tilde x_j = \sum_{i=1}^m b_i \tilde \pi_i, \]allora
\[ \sum_{j=1}^n c_j \bar x_j \le \sum_{j=1}^n c_j \tilde x_j \]per ogni soluzione ammissibile \((\bar x_1,\bar x_2,\dots,\bar x_n)\) del problema primale. Di conseguenza, \((\tilde x_1,\tilde x_2,\dots,\tilde x_n)\) è una soluzione ottima del problema primale (9.1).
-
Per la dualità debole, per ogni soluzione ammissibile \((\bar \pi_1,\bar \pi_2,\dots,\bar \pi_m)\) del problema duale (9.2) e per la soluzione primale ammissibile \((\tilde x_1,\tilde x_2,\dots,\tilde x_n)\), abbiamo
\[ \sum_{j=1}^n c_j \tilde x_j \le \sum_{i=1}^m b_i \bar \pi_i. \]Se, inoltre,
\[ \sum_{j=1}^n c_j \tilde x_j = \sum_{i=1}^m b_i \tilde \pi_i, \]allora
\[ \sum_{i=1}^m b_i \tilde \pi_i \le \sum_{i=1}^m b_i \bar \pi_i \]per ogni soluzione ammissibile \((\bar \pi_1,\bar \pi_2,\dots,\bar \pi_m)\) del problema duale. Di conseguenza, \((\tilde \pi_1,\tilde \pi_2,\dots,\tilde \pi_m)\) è una soluzione ottima del problema duale (9.2).
-
Esempio 9.5: Soluzioni ottime primali e duali
Consideriamo la seguente coppia di problemi LP primale e duale:
Per mostrare che
è una soluzione ottima del problema primale (9.1), e che
è una soluzione ottima del problema duale (9.2), possiamo procedere come segue.
Innanzitutto, verifichiamo di avere una soluzione ammissibile per il problema primale:
In secondo luogo, verifichiamo di avere una soluzione ammissibile per il problema duale:
Infine, calcoliamo i valori della funzione obiettivo:
e
Poiché entrambe le soluzioni sono ammissibili per i rispettivi problemi e i loro valori obiettivo sono uguali, per la dualità debole sono entrambe ottime.
9.1.2 Dualità forte¶
- Il seguente teorema, detto della dualità forte, afferma che il problema primale (9.1) ha una soluzione ottima se e solo se il problema duale (9.2) ha una soluzione ottima, e in tal caso i valori ottimi dei due problemi coincidono.
Teorema 9.4: Dualità forte
Il problema primale (9.1) ha una soluzione ottima \((\tilde x_1,\tilde x_2,\dots,\tilde x_n)\) se e solo se il problema duale (9.2) ha una soluzione ottima \((\tilde \pi_1,\tilde \pi_2,\dots,\tilde \pi_m)\), e in tal caso
-
L'esistenza di una soluzione ottima non ne implica l'unicità. Il teorema afferma soltanto che esiste almeno una soluzione ottima del problema primale se e solo se esiste almeno una soluzione ottima del problema duale (possono esserci più soluzioni ottime da una parte o da entrambe, ma i valori ottimi coincidono).
-
La dualità forte implica che
\[ \begin{array}{c} \text{il problema primale ha una soluzione ottima}\\[1ex] \Updownarrow \\[1ex] \text{il problema duale ha una soluzione ottima} \end{array} \]quindi “il problema primale ha una soluzione ottima” è condizione necessaria e sufficiente per “il problema duale ha una soluzione ottima” e viceversa.
-
I passi principali della dimostrazione del teorema della dualità forte sono i seguenti:
-
Mostriamo prima che, se il problema primale ha una soluzione ottima, allora il problema duale ha una soluzione ottima e i valori ottimi dei due problemi coincidono.
Per farlo si usa un dizionario ottimo del problema primale, prodotto dall'algoritmo del simplesso, per costruire una soluzione ammissibile del problema duale che soddisfa \(\eqref{SD}\).
Per la dualità debole, tale soluzione duale è necessariamente ottima, il che dimostra un'implicazione.
-
L'implicazione inversa si ottiene applicando il ragionamento precedente al problema duale (equivalentemente, scambiando i ruoli di primale e duale, poiché il duale del duale è il problema primale).
-
Dimostrazione
Supponiamo che il problema primale (9.1) abbia una soluzione ottima e consideriamo un dizionario ottimo prodotto dall'algoritmo del simplesso. La sua ultima riga si può scrivere come
Quindi \(\hat c_j\) è uguale al costo ridotto della variabile \(x_j\) se \(j \in \pazocal{N}\) (l'insieme degli indici delle variabili fuori base), ed è uguale a \(0\) altrimenti.
Riordinando i termini, otteniamo
dove la somma è stata suddivisa nelle variabili originali e nelle variabili di scarto. Ricordiamo che, per le variabili di scarto, abbiamo
Sostituendo queste espressioni nell'identità precedente, otteniamo
Poiché \(\eqref{A}\) è un'identità nelle variabili \(x_1,x_2,\dots,x_n\), vale per ogni scelta di queste variabili. Pertanto i termini costanti dei due membri devono coincidere, e devono coincidere anche i coefficienti di ciascuna variabile. Quindi
e
Definiamo ora
e mostriamo che \((\tilde \pi_1,\tilde \pi_2,\dots,\tilde \pi_m)\) è una soluzione ottima del problema duale (9.2) che soddisfa \(\eqref{SD}\).
Poiché il dizionario è ottimo, abbiamo \(\hat c_j \le 0\) per ogni \(j \in \{1,2,\dots,n+m\}\). Quindi da \(\eqref{D}\) otteniamo
e da \(\eqref{C}\) otteniamo
Pertanto \((\tilde \pi_1,\tilde \pi_2,\dots,\tilde \pi_m)\) è ammissibile per il problema duale (9.2).
Inoltre, poiché \((\tilde x_1,\tilde x_2,\dots,\tilde x_n)\) è una soluzione ottima del problema primale (9.1), il suo valore obiettivo è uguale al valore ottimo \(\bar z\) del problema primale (9.1). Quindi, per \(\eqref{B}\), abbiamo
Quindi la soluzione duale ammissibile \((\tilde \pi_1,\tilde \pi_2,\dots,\tilde \pi_m)\) soddisfa \(\eqref{SD}\).
Infine, la dualità debole implica che, per ogni soluzione duale ammissibile \((\bar \pi_1,\bar \pi_2,\dots,\bar \pi_m)\),
Poiché per la soluzione duale ammissibile \((\tilde \pi_1,\tilde \pi_2,\dots,\tilde \pi_m)\) abbiamo
ne segue che
per ogni soluzione duale ammissibile \((\bar \pi_1,\bar \pi_2,\dots,\bar \pi_m)\). Quindi \((\tilde \pi_1,\tilde \pi_2,\dots,\tilde \pi_m)\) è una soluzione ottima del problema duale (9.2).
L'implicazione inversa si ottiene applicando il ragionamento precedente al problema duale (dopo averlo riscritto nella corrispondente forma canonica, se necessario). Poiché il duale del problema duale è il problema primale, ne segue che se il problema duale (9.2) ha una soluzione ottima, allora anche il problema primale (9.1) ha una soluzione ottima. □
-
La figura seguente illustra la relazione tra bound primali e duali per un problema LP in forma di massimo. A titolo di esempio, la figura considera quattro soluzioni primali ammissibili
\[ \bar{\boldsymbol x}^{(1)}, \bar{\boldsymbol x}^{(2)}, \bar{\boldsymbol x}^{(3)}, \bar{\boldsymbol x}^{(4)}, \]e quattro soluzioni duali ammissibili
\[ \bar{\boldsymbol\pi}^{(1)}, \bar{\boldsymbol\pi}^{(2)}, \bar{\boldsymbol\pi}^{(3)}, \bar{\boldsymbol\pi}^{(4)}. \]Le soluzioni primali ammissibili forniscono lower bound sul valore ottimo, mentre le soluzioni duali ammissibili forniscono upper bound sul valore ottimo per il teorema della dualità debole \(\eqref{WD}\).
La quarta soluzione di ciascuna sequenza raggiunge il valore ottimo e, per il teorema della dualità forte \(\eqref{SD}\), i due bound coincidono: \(z(\,{ LP}\,) = z(~{ D(LP)}~)\).
Esempio 9.6: soluzioni duali ottime dai dizionari primali ottimi
Consideriamo il problema primale dell'Esempio 9.1 (con \(n=2\) e \(m=3\)). La forma standard del problema primale è
dove \(x_3\), \(x_4\) e \(x_5\) sono le variabili di scarto associate ai tre vincoli. Un dizionario ottimo è il seguente:
dove le variabili in base sono \(x_1\), \(x_2\) e \(x_3\), e le variabili fuori base sono \(x_4\) e \(x_5\). La soluzione primale ottima è \(\tilde{x}_1=5\), \(\tilde{x}_2=\frac{7}{2}\), \(\tilde{x}_3=\frac{13}{2}\), \(\tilde{x}_4=0\) e \(\tilde{x}_5=0\), e il valore ottimo è \(32\).
Il problema duale è
I valori \(\hat{c}_j\) con \(j \in \{1,2,3,4,5\}\) usati nella dimostrazione del teorema della dualità forte sono:
La soluzione duale ottima si ottiene assegnando alle variabili duali corrispondenti i valori \(\hat{c}_j\) cambiati di segno, come in \(\eqref{D}\), ed è la seguente:
La soluzione è ammissibile per il problema duale, poiché \(\tilde{\pi}_1\), \(\tilde{\pi}_2\) e \(\tilde{\pi}_3\) sono non negative e
Il valore della funzione obiettivo di questa soluzione è:
9.2 Problemi primale e duale: esiti possibili¶
- I teoremi della dualità debole e della dualità forte mettono in relazione i valori ottimi del problema primale (9.1) e del problema duale (9.2) ogni volta che entrambi ammettono una soluzione ottima. Descriviamo ora cosa succede quando uno dei due problemi è inammissibile o illimitato.
Corollario 9.5: problemi illimitati e problemi inammissibili
Per una coppia di problemi primale (9.1) e duale (9.2):
-
se il problema primale è illimitato, allora il problema duale è inammissibile;
-
se il problema duale è illimitato, allora il problema primale è inammissibile.
- L'idea della dimostrazione è che una sola soluzione ammissibile di uno dei due problemi limiterebbe il valore obiettivo dell'altro, per la dualità debole.
Dimostrazione
Dimostriamo il primo punto; il secondo si ottiene scambiando i ruoli dei due problemi.
Supponiamo, per assurdo, che il problema primale (9.1) sia illimitato e che il problema duale (9.2) ammetta una soluzione ammissibile \((\bar \pi_1,\bar \pi_2,\dots,\bar \pi_m)\). Per la dualità debole \(\eqref{WD}\), per ogni soluzione ammissibile \((\bar x_1,\bar x_2,\dots,\bar x_n)\) del problema primale abbiamo
dove \(M\) è un numero reale fissato, poiché la soluzione duale ammissibile è fissata. Di conseguenza, nessuna soluzione ammissibile del problema primale ha valore obiettivo maggiore di \(M\), il che contraddice l'ipotesi che il problema primale sia illimitato. □
Teorema 9.6: esiti possibili di una coppia di problemi primale e duale
Per una coppia di problemi primale (9.1) e duale (9.2), si verifica esattamente uno dei quattro casi seguenti:
-
entrambi i problemi ammettono una soluzione ottima, e i due valori ottimi coincidono;
-
il problema primale è illimitato e il problema duale è inammissibile;
-
il problema primale è inammissibile e il problema duale è illimitato;
-
entrambi i problemi sono inammissibili.
Dimostrazione
Per il Teorema Fondamentale della programmazione lineare, ciascuno dei due problemi è inammissibile, è illimitato, oppure ammette una soluzione ottima, e quindi ci sono nove combinazioni possibili. Mostriamo che cinque di esse non possono verificarsi.
-
Se il problema primale ammette una soluzione ottima, allora per la dualità forte \(\eqref{SD}\) il problema duale ammette anch'esso una soluzione ottima. Questo esclude le due combinazioni in cui il problema primale ammette una soluzione ottima e il problema duale è illimitato o inammissibile. Simmetricamente, sono escluse anche le due combinazioni in cui il problema duale ammette una soluzione ottima e il problema primale è illimitato o inammissibile.
-
Se il problema primale è illimitato, allora per il Corollario 9.5 il problema duale è inammissibile. Questo esclude la combinazione in cui entrambi i problemi sono illimitati.
Le quattro combinazioni rimanenti sono quelle dell'enunciato. □
Gli esiti possibili di una coppia di problemi primale e duale sono riassunti nella tabella seguente, dove i quattro casi del Teorema 9.6 sono marcati con ✓:
| problema duale \(D(LP)\) | |||
|---|---|---|---|
| problema primale \(LP\) | soluzione ottima | illimitato | inammissibile |
| soluzione ottima | ✓ | ||
| illimitato | ✓ | ||
| inammissibile | ✓ | ✓ | |
In particolare, il duale di un problema primale inammissibile può essere illimitato oppure inammissibile: l'inammissibilità del problema primale, da sola, non determina l'esito del problema duale.
Esempio 9.7: problema primale illimitato e problema duale inammissibile
Consideriamo la seguente coppia di problemi primale e duale, con \(n=2\) e \(m=2\) (detta Esempio 9.7):
Il problema primale è illimitato: per ogni valore \(t \ge 0\), il punto \(\bar x_1 = \bar x_2 = t\) è una soluzione ammissibile di valore obiettivo \(2 \, t\).
Il problema duale è inammissibile: sommando i suoi due vincoli otteniamo
che non è mai soddisfatta.
Nella prima figura la regione ammissibile del problema primale, nella seconda i due semipiani definiti dai vincoli duali, la cui intersezione è vuota.
Esempio 9.8: problema primale inammissibile e problema duale illimitato
Consideriamo la seguente coppia di problemi primale e duale, con \(n=2\) e \(m=2\) (detta Esempio 9.8):
Il problema primale è inammissibile: il primo vincolo impone \(x_1 + x_2 \le 2\) e il secondo impone \(x_1 + x_2 \ge 4\).
Il problema duale è illimitato: per ogni valore \(t \ge 0\), il punto \(\bar \pi_1 = 1 + t\) e \(\bar \pi_2 = t\) è una soluzione ammissibile, poiché \(\bar \pi_1 - \bar \pi_2 = 1 \ge 1\), e il suo valore obiettivo è
che tende a \(-\infty\) al crescere di \(t\). Poiché il problema duale è in forma di minimo, esso è illimitato.
Nella prima figura i due semipiani definiti dai vincoli primali, la cui intersezione è vuota; nella seconda la regione ammissibile del problema duale e, in viola, la famiglia di soluzioni ammissibili lungo la quale il suo valore obiettivo tende a \(-\infty\).
Esempio 9.9: problema primale inammissibile e problema duale inammissibile
Consideriamo la seguente coppia di problemi primale e duale, con \(n=2\) e \(m=2\) (detta Esempio 9.9):
Il problema primale è inammissibile: i due vincoli impongono \(x_1 - x_2 \le 1\) e \(x_1 - x_2 \ge 2\).
Anche il problema duale è inammissibile: sommando i suoi due vincoli otteniamo \(0 \ge 2\), che non è mai soddisfatta.
Nella prima figura il problema primale e nella seconda il problema duale: entrambe le regioni ammissibili sono vuote.
Il Teorema 9.6 si può usare per certificare l'esito di un problema LP:
-
una soluzione ammissibile del problema duale dimostra che il problema primale non è illimitato;
-
una soluzione ammissibile del problema primale dimostra che il problema duale non è illimitato;
-
una soluzione ammissibile di ciascuno dei due problemi dimostra che entrambi ammettono una soluzione ottima.
9.3 Scarti complementari¶
- Il seguente teorema, detto degli scarti complementari, afferma che una soluzione ammissibile del problema primale (9.1) e una soluzione ammissibile del problema duale (9.2) sono entrambe ottime se e solo se valgono le condizioni degli scarti complementari.
Teorema 9.7: Scarti complementari
Una soluzione ammissibile \((\bar x_1,\bar x_2,\dots,\bar x_n)\) del problema primale (9.1) e una soluzione ammissibile \((\bar \pi_1,\bar \pi_2,\dots,\bar \pi_m)\) del problema duale (9.2) sono soluzioni ottime dei rispettivi problemi se e solo se valgono le condizioni seguenti:
- In \(\eqref{WW}\) e \(\eqref{QQ}\), la congiunzione “oppure” è inclusiva, cioè entrambe le condizioni possono valere simultaneamente.
Definizione 9.8: Condizioni degli scarti complementari
Le condizioni \(\eqref{WW}\) e \(\eqref{QQ}\) si chiamano condizioni degli scarti complementari e si possono riscrivere in modo equivalente come:
-
Gli scarti complementari implicano che
\[ \begin{array}{c} \text{due soluzioni ammissibili primale e duale sono ottime}\\[1ex] \Updownarrow \\[1ex] \text{valgono le condizioni degli scarti complementari} \end{array} \]quindi “valgono le condizioni degli scarti complementari” è condizione necessaria e sufficiente per “due soluzioni ammissibili primale e duale sono ottime” e viceversa.
Definizione 9.9: vincoli attivi
Un vincolo primale o duale si dice:
-
attivo se è soddisfatto all'uguaglianza da una data soluzione (non c'è scarto);
-
non attivo se non è soddisfatto all'uguaglianza da una data soluzione (c'è uno scarto).
-
La condizione \(\eqref{WW}\) (o, equivalentemente, \(\eqref{WW_bis}\)) implica che se un vincolo primale non è attivo, cioè c'è uno scarto, la corrispondente variabile duale deve essere nulla.
-
La condizione \(\eqref{QQ}\) (o, equivalentemente, \(\eqref{QQ_bis}\)) implica che se un vincolo duale non è attivo, cioè c'è uno scarto, la corrispondente variabile primale deve essere nulla.
Esempio 9.10: Scarti complementari
Consideriamo la seguente coppia di problemi LP primale e duale:
Una soluzione ottima primale è
Scarti primali:
Il primo vincolo primale non è attivo, cioè c'è uno scarto. Quindi la variabile duale corrispondente \(\tilde\pi_1\) deve essere nulla.
Il secondo e il terzo vincolo primale sono attivi, cioè non ci sono scarti. Quindi le variabili duali corrispondenti \(\tilde\pi_2\) e \(\tilde\pi_3\) possono essere positive.
Una soluzione ottima duale è
Scarti duali:
Tutti i vincoli duali sono attivi, cioè non ci sono scarti. Quindi le variabili primali corrispondenti \(\tilde x_1\) e \(\tilde x_2\) possono essere positive.
-
Dal punto di vista geometrico, le condizioni degli scarti complementari significano che, data una soluzione ottima (\(\tilde x_1,\tilde x_2,\dots,\tilde x_n\)) di un problema primale (9.1) e una soluzione ottima (\(\tilde \pi_1,\tilde \pi_2,\dots,\tilde \pi_m\)) del suo problema duale (9.2), abbiamo due coppie di vettori perpendicolari:
\[ \begin{pmatrix} \tilde{\pi}_1 \\ \tilde{\pi}_2 \\ \vdots \\ \tilde{\pi}_m \end{pmatrix}, ~~~~~~ \begin{pmatrix} \displaystyle \sum_{j=1}^n a_{1j} \tilde x_j - b_1 \\ \displaystyle \sum_{j=1}^n a_{2j} \tilde x_j - b_2 \\ \vdots \\ \displaystyle \sum_{j=1}^n a_{mj} \tilde x_j - b_m \end{pmatrix} {\rm ~~~~e~~~~} \begin{pmatrix} \tilde{x}_1 \\ \tilde{x}_2 \\ \vdots \\ \tilde{x}_n \end{pmatrix}, ~~~~~ \begin{pmatrix} c_1 - \displaystyle \sum_{i=1}^m a_{i1} \tilde \pi_i \\ c_2 - \displaystyle \sum_{i=1}^m a_{i2} \tilde \pi_i \\ \vdots \\ c_n - \displaystyle \sum_{i=1}^m a_{in} \tilde \pi_i \end{pmatrix} \]
Esempio 9.11: Scarti complementari
Consideriamo di nuovo la coppia di problemi LP primale e duale precedente e le loro soluzioni ottime.
La prima coppia di vettori perpendicolari (caso non nullo) è
Verifica dell'ortogonalità:
I due vettori sono disegnati nello stesso spazio \(\R^3\) con coordinate generiche \((v_1, v_2, v_3)\): in blu la soluzione duale ottima \(\tilde{\boldsymbol \pi}\), in rosso il vettore dei valori dei vincoli primali meno i termini noti, \(\left(-\frac{13}{2}, 0, 0\right)\).
La seconda coppia di vettori perpendicolari è
Verifica dell'ortogonalità:
Dimostrazione
Poiché \((\bar x_1,\bar x_2,\dots,\bar x_n)\) è una soluzione ammissibile del problema primale (9.1) e \((\bar \pi_1,\bar \pi_2,\dots,\bar \pi_m)\) è una soluzione ammissibile del problema duale (9.2), con lo stesso argomento usato nella dimostrazione della dualità debole abbiamo
La prima disuguaglianza di \(\eqref{KKK}\) si può riscrivere come
e, per l'ammissibilità duale e l'ammissibilità primale, per ogni \(j \in \{1,2,\dots,n\}\) abbiamo
Una somma di termini non negativi è uguale a zero se e solo se ogni termine è zero. Pertanto, nella prima disuguaglianza di \(\eqref{KKK}\) vale l'uguaglianza se e solo se
cioè se e solo se vale la condizione \(\eqref{QQ}\).
Analogamente, la seconda disuguaglianza di \(\eqref{KKK}\) si può riscrivere come
e, per l'ammissibilità primale e l'ammissibilità duale, per ogni \(i \in \{1,2,\dots,m\}\) abbiamo
Una somma di termini non negativi è uguale a zero se e solo se ogni termine è zero. Pertanto, nella seconda disuguaglianza di \(\eqref{KKK}\) vale l'uguaglianza se e solo se
cioè se e solo se vale la condizione \(\eqref{WW}\).
Supponiamo prima che \((\bar x_1,\bar x_2,\dots,\bar x_n)\) e \((\bar \pi_1,\bar \pi_2,\dots,\bar \pi_m)\) siano soluzioni ottime dei rispettivi problemi. Allora, per la dualità forte,
Pertanto, entrambe le disuguaglianze in \(\eqref{KKK}\) devono valere con uguaglianza, e quindi valgono le condizioni \(\eqref{WW}\) e \(\eqref{QQ}\).
Viceversa, supponiamo che valgano le condizioni \(\eqref{WW}\) e \(\eqref{QQ}\). Allora entrambe le disuguaglianze in \(\eqref{KKK}\) valgono con uguaglianza, e quindi
Poiché \((\bar x_1,\bar x_2,\dots,\bar x_n)\) e \((\bar \pi_1,\bar \pi_2,\dots,\bar \pi_m)\) sono soluzioni ammissibili, la dualità debole implica che sono soluzioni ottime dei rispettivi problemi. □
- Il seguente teorema (derivato dal precedente) permette di verificare se una soluzione ammissibile di un problema primale (9.1) è ottima costruendo (se possibile) una soluzione ammissibile del problema duale (9.2) con lo stesso valore della funzione obiettivo, cioè è un test di ottimalità.
Corollario 9.10
Una soluzione ammissibile \((\bar x_1,\bar x_2,\dots,\bar x_n)\) del problema primale (9.1) è ottima se e solo se esiste \((\bar \pi_1,\bar \pi_2,\dots,\bar \pi_m)\) tale che:
Dimostrazione
Supponiamo prima che \((\bar x_1,\bar x_2,\dots,\bar x_n)\) sia una soluzione ottima del problema (9.1).
Per la dualità forte esiste una soluzione ottima \((\bar \pi_1,\bar \pi_2,\dots,\bar \pi_m)\) del problema duale (9.2). Poiché \((\bar \pi_1,\bar \pi_2,\dots,\bar \pi_m)\) è ammissibile per il problema duale, soddisfa \(\eqref{ZZ3}\) e \(\eqref{ZZ4}\). Inoltre, poiché le soluzioni primale e duale sono entrambe ottime, per il teorema degli scarti complementari soddisfano \(\eqref{ZZ1}\) e \(\eqref{ZZ2}\).
Quindi esiste \((\bar \pi_1,\bar \pi_2,\dots,\bar \pi_m)\) che soddisfa \(\eqref{ZZ1}\)–\(\eqref{ZZ4}\).
Viceversa, supponiamo che esista \((\bar \pi_1,\bar \pi_2,\dots,\bar \pi_m)\) che soddisfa \(\eqref{ZZ1}\)–\(\eqref{ZZ4}\).
Poiché \((\bar x_1,\bar x_2,\dots,\bar x_n)\) è ammissibile per il problema primale per ipotesi, e \(\eqref{ZZ3}\)–\(\eqref{ZZ4}\) implicano che \((\bar \pi_1,\bar \pi_2,\dots,\bar \pi_m)\) è ammissibile per il problema duale, entrambi i vettori sono ammissibili per i rispettivi problemi. Inoltre, \(\eqref{ZZ1}\) implica la condizione \(\eqref{QQ}\). Infine, l'ammissibilità primale insieme a \(\eqref{ZZ2}\) implica la condizione \(\eqref{WW}\).
Pertanto le soluzioni ammissibili primale e duale soddisfano le condizioni degli scarti complementari e, per il teorema degli scarti complementari, sono ottime per i rispettivi problemi. □
Esempio 9.12: Scarti complementari
Verifichiamo se la soluzione ammissibile
del problema LP dell'Esempio 9.1 è ottima.
-
Poiché
\[ \sum_{i=1}^m a_{ij} \bar \pi_i = c_j \text{ se }\bar x_j>0,~\forall j \in \{1,2,\dots,n\} \]costruiamo il seguente sistema di due equazioni lineari in tre variabili:
\[ \begin{array}{rrrrrrrrrrrrr} & {-} \, {\bar \pi_1} & {+} & \, {\bar \pi_2} & {+} & 3 \, {\bar \pi_3} & {=} & 5 & & {\left(\bar x_1=5>0\right)} \\[2ex] & 3\, {\bar \pi_1} & {+} & 2 \, {\bar \pi_2} & {-} & 2 \, {\bar \pi_3} & {=} & 2 & & {\left(\bar x_2=\frac{7}{2}>0\right)} \end{array} \] -
Poiché
\[ \bar \pi_i = 0 \text{ se } \sum_{j=1}^n a_{ij} \bar x_j < b_i,~\forall i \in \{1,2,\dots,m\} \]calcoliamo:
\[ \begin{array}{rrrrrrrrrrrrr} & {-1} {\cdot} {5} & {+} & 3 {\cdot} {\frac{7}{2}} & {=} & {\frac{11}{2}< 12} & { \text{ quindi } \bar \pi_1 = 0} \\[2ex] & 1 {\cdot} {5} & {+} & 2 {\cdot} {\frac{7}{2}} & {=} & {12 \nless 12} & \\[2ex] & 3 {\cdot} {5} & {-} & 2 {\cdot} {\frac{7}{2}} & {=} & {8 \nless 8} & \end{array} \]Risolviamo quindi il sistema precedente di due equazioni in due variabili e otteniamo:
\[ \bar{\pi}_1=0,~~ \bar{\pi}_2=2,~~\bar{\pi}_3=1 \] -
Dobbiamo verificare
\[ \sum_{i=1}^m a_{ij} \bar \pi_i \ge c_j, \quad \forall j \in \{1,2,\dots,n\} \]quindi calcoliamo:
\[ \begin{array}{rrrrrrrrrrrrr} & {-1} {\cdot} {0} & {+} & 1 {\cdot} {2} & {+} & 3 {\cdot} {1} & {=} & 5 { \ge 5} \\[2ex] & {3} {\cdot} {0} & {+} & 2 {\cdot} {2} & {-} & 2 {\cdot} {1} & {=} & 2 { \ge 2} \end{array} \] -
Dobbiamo verificare
\[ \bar \pi_i \ge 0, \quad \forall i \in \{1,2,\dots,m\} \]e poiché
\[ \bar \pi_1=0 \ge 0, ~~\bar \pi_2=2 \ge 0, ~~\bar \pi_3=1 \ge 0 \]la soluzione è ottima.
Esempio 9.13: Scarti complementari
Verifichiamo se la soluzione ammissibile
del problema LP dell'Esempio 9.1 è ottima.
-
Poiché
\[ \sum_{i=1}^m a_{ij} \bar \pi_i = c_j \text{ se }\bar x_j>0,~\forall j \in \{1,2,\dots,n\} \]costruiamo il seguente sistema di due equazioni lineari in tre variabili:
\[ \begin{array}{rrrrrrrrrrrrr} & {-} \, {\bar \pi_1} & {+} & \, {\bar \pi_2} & {+} & 3 \, {\bar \pi_3} & {=} & 5 & & {\left(\bar x_1=\frac{12}{5}>0\right)} \\[2ex] & 3\, {\bar \pi_1} & {+} & 2 \, {\bar \pi_2} & {-} & 2 \, {\bar \pi_3} & {=} & 2 & & {\left(\bar x_2=\frac{24}{5}>0\right)} \end{array} \] -
Poiché
\[ \bar \pi_i = 0 \text{ se } \sum_{j=1}^n a_{ij} \bar x_j < b_i,~\forall i \in \{1,2,\dots,m\} \]calcoliamo:
\[ \begin{array}{rrrrrrrrrrrrr} & {-1} {\cdot} {\frac{12}{5}} & {+} & 3 {\cdot} {\frac{24}{5}} & {=} & {12 \nless 12} & \\[2ex] & 1 {\cdot} {\frac{12}{5}} & {+} & 2 {\cdot} {\frac{24}{5}} & {=} & {12 \nless 12} & \\[2ex] & 3 {\cdot} {\frac{12}{5}} & {-} & 2 {\cdot} {\frac{24}{5}} & {=} & {-\frac{12}{5}< 8} & { \text{ quindi } \bar \pi_3 = 0} \end{array} \]Risolviamo quindi il sistema precedente di due equazioni in due variabili e otteniamo:
\[ \bar{\pi}_1 = -\frac{8}{5},~~\bar{\pi}_2 = \frac{17}{5},~~\bar{\pi}_3=0 \] -
Dobbiamo verificare
\[ \sum_{i=1}^m a_{ij} \bar \pi_i \ge c_j, \quad \forall j \in \{1,2,\dots,n\} \]quindi calcoliamo:
\[ \begin{array}{rrrrrrrrrrrrr} & {-1} {\cdot} {\left(-\frac{8}{5}\right)} & {+} & 1 {\cdot} {\frac{17}{5}} & {+} & 3 {\cdot} {0} & {=} & 5 { \ge 5} \\[2ex] & {3} {\cdot} {\left(-\frac{8}{5}\right)} & {+} & 2 {\cdot} {\frac{17}{5}} & {-} & 2 {\cdot} {0} & {=} & 2 { \ge 2} \end{array} \] -
Dobbiamo verificare
\[ \bar \pi_i \ge 0, \quad \forall i \in \{1,2,\dots,m\} \]ma poiché
\[ \bar \pi_1=-\frac{8}{5} < 0 \]la soluzione non è ottima.
9.3.1 Problema duale in notazione matriciale¶
-
I dati di un problema LP in forma canonica di massimo con \(n\) variabili e \(m\) vincoli di minore o uguale si possono rappresentare in notazione matriciale con un vettore dei costi \({\boldsymbol c} \in \R^n\) di \(n\) righe, con un vettore dei termini noti \({\boldsymbol b} \in \R^m\) di \(m\) righe e con una matrice dei vincoli \({\boldsymbol A} \in \R^{m \times n}\) di \(m\) righe e \(n\) colonne:
\[ {\boldsymbol c}= \begin{pmatrix} c_{1} \\ c_{2} \\ \vdots \\ \vdots \\ c_{n} \\ \end{pmatrix} \qquad\qquad {\boldsymbol A}= \begin{pmatrix} a_{11} & a_{12} & \dots& \dots & a_{1n}\\ a_{21} & a_{22} & \dots& \dots & a_{2n}\\ \vdots & \vdots & \dots& \dots & \vdots \\ a_{m1} & a_{m2} & \dots& \dots & a_{mn}\\ \end{pmatrix} \qquad\qquad {\boldsymbol b}= \begin{pmatrix} b_{1} \\ b_{2} \\ \vdots \\ b_{m} \\ \end{pmatrix} \] -
Le \(n\) variabili primali si possono rappresentare con un vettore colonna \({\boldsymbol x} \in \R^n\) di \(n\) righe che contiene le \(n\) variabili, e le \(m\) variabili duali con un vettore colonna \(\boldsymbol{\pi} \in \R^m\) di \(m\) righe che contiene le \(m\) variabili:
\[ {\boldsymbol x}= \begin{pmatrix} x_{1} \\ x_{2} \\ \vdots \\ \vdots \\ x_{n} \\ \end{pmatrix} \qquad\qquad \boldsymbol{\pi} = \begin{pmatrix} \pi_{1} \\ \pi_{2} \\ \vdots \\ \pi_{m} \\ \end{pmatrix} \] -
In notazione matriciale, un problema primale in forma canonica di massimo e il suo problema duale si scrivono come segue:
\[\begin{align*} && \max \;\;{\boldsymbol c}'\; {\boldsymbol x} \\[2ex] && \text{soggetto a} \quad {\boldsymbol A} \; {\boldsymbol x} &\leq {\boldsymbol b}, \\[2ex] && {\boldsymbol x} &\ge {\boldsymbol 0}. \end{align*}\]\[\begin{align*} && \min \;\;{\boldsymbol b}' \; \boldsymbol{\pi} \\[2ex] && \text{soggetto a} \quad {\boldsymbol A}' \; \boldsymbol{\pi} &\geq {\boldsymbol c}, \\[2ex] && \boldsymbol{\pi} &\ge {\boldsymbol 0}. \end{align*}\]
Esempio 9.14: notazione matriciale
Per il problema LP dell'Esempio 9.1, con \(n=2\) variabili e \(m=3\) vincoli, i dati sono:
e le variabili sono:
9.4 Problema duale di un problema LP generico¶
Definizione 9.11: problema duale di un problema LP generico
Consideriamo il seguente problema LP generico:
dove
-
\(N_{\ge 0}\), \(N_{\gtreqless 0}\) e \(N_{\le 0}\) sono i sottoinsiemi disgiunti degli indici delle variabili rispettivamente non negative, libere e non positive, e \(N= N_{\ge 0} \cup N_{\gtreqless 0} \cup N_{\le 0}\);
-
\(M_{\le}\), \(M_{=}\) e \(M_{\ge}\) sono i sottoinsiemi disgiunti degli indici dei vincoli rispettivamente di minore o uguale, di uguaglianza e di maggiore o uguale, e \(M= M_{\le } \cup M_{=} \cup M_{\ge}\).
il problema duale \(D(LP)\) del problema LP (9.8) è il seguente problema LP:
Esempio 9.15: problema duale di un problema LP generico
Consideriamo il seguente problema LP generico:
Per quanto riguarda gli indici delle variabili, abbiamo:
Per quanto riguarda gli indici dei vincoli, abbiamo:
Il problema duale \(D(LP)\) del problema LP è:
Poiché da un problema LP in forma generica di massimo si può ottenere un problema LP equivalente in forma canonica di massimo, la dualità debole, la dualità forte e il teorema degli scarti complementari valgono anche nel caso generico.
Esercizi su questo capitolo: Teoria della dualità
Laboratorio interattivo¶
Le idee del capitolo, da toccare con mano: muovi i cursori e trascina i punti. Ogni app si apre anche a tutta pagina nel laboratorio interattivo: Dualità debole e forte.