Condizioni di ottimalità e regole di pivot¶
Parte 2 · L'algoritmo del simplesso · Capitolo 7 · Dispensa, volume 2 (PDF) · Esercizi: Condizioni di ottimalità e regole di pivot
7.1 Condizioni sufficienti di ottimalità¶
-
Consideriamo un problema LP in forma standard di massimo con \(n+m\) variabili non negative e \(m\) vincoli lineari di uguaglianza, ottenuto da un problema LP in forma canonica di massimo con \(n\) variabili non negative e \(m\) vincoli lineari di minore o uguale aggiungendo \(m\) variabili di scarto non negative:
\[\begin{align*} && \max \;\;{\boldsymbol c}' \, {\boldsymbol x} \label{FORM_STANDARD_OBJ} \tag{7.1a}\\[2ex] && \text{soggetto a} \quad {\boldsymbol A} \; {\boldsymbol x} &= {\boldsymbol b}, & \phantom{j=1111} \label{FORM_STANDARD_CONS1} \tag{7.1b}\\[2ex] && {\boldsymbol x} &\ge {\boldsymbol 0}. \label{FORM_STANDARD_CONS2} \tag{7.1c} \end{align*}\]
Teorema 7.1: condizioni sufficienti di ottimalità
Data una base \({\boldsymbol A}_{\pazocal{B}}\) del problema LP (7.1), se \(~{ \bar{\boldsymbol b}} \ge {\boldsymbol 0}~\) e \(~{ \bar{\boldsymbol c}} \le {\boldsymbol 0}~\) allora \({\boldsymbol x}_{\pazocal{B}}={{\bar{\boldsymbol b}}}\) e \({\boldsymbol x}_{\pazocal{N}}={{{\boldsymbol 0}}}\) è una soluzione ottima e \({\boldsymbol c}'_{\pazocal{B}} \; \bar{\boldsymbol b}\) è il valore ottimo.
Dimostrazione
Data una base \({\boldsymbol A}_{\pazocal{B}}\) del problema LP (7.1), se \(~{ \bar{\boldsymbol b}} \ge {\boldsymbol 0}~\) allora \({\boldsymbol x}_{\pazocal{B}}={{\bar{\boldsymbol b}}}\) e \({\boldsymbol x}_{\pazocal{N}}={{{\boldsymbol 0}}}\) è una soluzione ammissibile. Se \({ ~\bar{\boldsymbol c}} \le {\boldsymbol 0}~\), per ogni soluzione ammissibile \({\boldsymbol x}\) abbiamo:
Quindi il valore della funzione obiettivo di tutte le soluzioni ammissibili è minore o uguale al valore della funzione obiettivo della soluzione di base ammissibile \({\boldsymbol x}_{\pazocal{B}}={{\bar{\boldsymbol b}}}\) e \({\boldsymbol x}_{\pazocal{N}}={{{\boldsymbol 0}}}\), e di conseguenza quest'ultima è una soluzione ottima di valore \({\boldsymbol c}'_{\pazocal{B}} \; \bar{\boldsymbol b}\) . □
-
Abbiamo dimostrato che:
\[\begin{equation*} ~{ \bar{\boldsymbol b}} \ge {\boldsymbol 0} {\rm ~~e~~} { \bar{\boldsymbol c}} \le {\boldsymbol 0} ~~~\Longrightarrow~~~ {\boldsymbol x}_{\pazocal{B}}={{\bar{\boldsymbol b}}} {\rm ~~e~~} {\boldsymbol x}_{\pazocal{N}}={{{\boldsymbol 0}}}, \text{ soluzione ottima} \end{equation*}\]quindi “\({ \bar{\boldsymbol b}} \ge {\boldsymbol 0}\) e \({ \bar{\boldsymbol c}} \le {\boldsymbol 0}\)” è una condizione sufficiente affinché “\({\boldsymbol x}_{\pazocal{B}}={{\bar{\boldsymbol b}}}\) e \({\boldsymbol x}_{\pazocal{N}}={{{\boldsymbol 0}}}\), soluzione ottima” e “\({\boldsymbol x}_{\pazocal{B}}={{\bar{\boldsymbol b}}}\) e \({\boldsymbol x}_{\pazocal{N}}={{{\boldsymbol 0}}}\), soluzione ottima” è una condizione necessaria affinché “\({ \bar{\boldsymbol b}} \ge {\boldsymbol 0}\) e \({ \bar{\boldsymbol c}} \le {\boldsymbol 0}\)”. L'implicazione non vale nell'altro verso (vedremo un controesempio). Di conseguenza:
\[\begin{equation*} {\boldsymbol x}_{\pazocal{B}}={{\bar{\boldsymbol b}}} {\rm ~~e~~} {\boldsymbol x}_{\pazocal{N}}={{{\boldsymbol 0}}}, \text{ soluzione ottima} ~~~\nRightarrow~~~ { \bar{\boldsymbol c}} \le {\boldsymbol 0} \end{equation*}\]
Corollario 7.2
Data una base \({\boldsymbol A}_{\pazocal{B}}\) del problema LP (7.1), se \(~{ \bar{\boldsymbol b}} \ge {\boldsymbol 0}~\) e \(~{ \bar{\boldsymbol c}} < {\boldsymbol 0}~\) allora \({\boldsymbol x}_{\pazocal{B}}={{\bar{\boldsymbol b}}}\) e \({\boldsymbol x}_{\pazocal{N}}={{{\boldsymbol 0}}}\) è l'unica soluzione ottima.
Dimostrazione
Dal Teorema precedente segue che \({\boldsymbol x}_{\pazocal{B}}={{\bar{\boldsymbol b}}}\) e \({\boldsymbol x}_{\pazocal{N}}={{{\boldsymbol 0}}}\) è una soluzione ottima. Se \({ ~\bar{\boldsymbol c}} < {\boldsymbol 0}~\) e poiché ogni soluzione ammissibile \({\boldsymbol x}\) diversa da \({\boldsymbol x}_{\pazocal{B}}={{\bar{\boldsymbol b}}}\) e \({\boldsymbol x}_{\pazocal{N}}={{{\boldsymbol 0}}}\) deve avere \({\boldsymbol x}_{\pazocal{N}} \neq {\boldsymbol 0}\), abbiamo:
Di conseguenza, \({\boldsymbol x}_{\pazocal{B}}={{\bar{\boldsymbol b}}}\) e \({\boldsymbol x}_{\pazocal{N}}={{{\boldsymbol 0}}}\) è l'unica soluzione ottima. □
-
Di conseguenza, abbiamo dimostrato che:
\[\begin{equation*} ~{ \bar{\boldsymbol b}} \ge {\boldsymbol 0} {\rm ~~e~~} { \bar{\boldsymbol c}} < {\boldsymbol 0} ~~~\Longrightarrow~~~ {\boldsymbol x}_{\pazocal{B}}={{\bar{\boldsymbol b}}} {\rm ~~e~~} {\boldsymbol x}_{\pazocal{N}}={{{\boldsymbol 0}}}, \text{ soluzione ottima unica} \end{equation*}\]quindi “\({ \bar{\boldsymbol b}} \ge {\boldsymbol 0}\) e \({ \bar{\boldsymbol c}} < {\boldsymbol 0}\)” è una condizione sufficiente affinché “\({\boldsymbol x}_{\pazocal{B}}={{\bar{\boldsymbol b}}}\) e \({\boldsymbol x}_{\pazocal{N}}={{{\boldsymbol 0}}}\), unica soluzione ottima”. L'implicazione non vale nell'altro verso (daremo un controesempio). Di conseguenza
\[\begin{equation*} {\boldsymbol x}_{\pazocal{B}}={{\bar{\boldsymbol b}}} {\rm ~~e~~} {\boldsymbol x}_{\pazocal{N}}={{{\boldsymbol 0}}}, \text{ soluzione ottima unica} ~~~\nRightarrow~~~ { \bar{\boldsymbol c}} < {\boldsymbol 0} \end{equation*}\]
Esempio 7.1: forma standard di massimo di problemi LP in forma canonica di massimo
Introduciamo il seguente problema LP in forma canonica di massimo con \(n=3\) variabili e \(m=2\) vincoli e la sua forma standard con \(n+m=5\) variabili e \(m=2\) vincoli:
Nel problema LP in forma standard, abbiamo:
Una soluzione ottima \({\tilde{\boldsymbol x}}(\,\text{LP}\,)\) della forma canonica è:
e il valore ottimo è:
Una soluzione ottima \({\tilde{\boldsymbol x}}(\,\text{LP}\,)\) della forma standard è:
con lo stesso valore ottimo.
Esempio 7.2: condizioni di ottimalità
Per il problema LP dell'Esempio 7.1, con \(\pazocal{B}= \{2,~~3\}\) e \(\pazocal{N}= \{1,~~4,~~5\},\) abbiamo:
Di conseguenza, abbiamo:
Poiché \(~{ \bar{\boldsymbol b}} \ge {\boldsymbol 0}~\) e \(~{ \bar{\boldsymbol c}} \le {\boldsymbol 0}~\), la soluzione di base ammissibile
è l'unica soluzione ottima e \({\bar{z}} = 7\) è il valore ottimo.
Il dizionario associato è:
Esempio 7.3: condizioni di ottimalità
Per il problema LP dell'Esempio 7.1, con \(\pazocal{B}= \{3,~~5\}\) e \(\pazocal{N}= \{1,~~2,~~4\},\) abbiamo:
Di conseguenza, abbiamo:
Poiché \(~{ \bar{\boldsymbol b}} \ge {\boldsymbol 0}~\) e \(\bar{z}=7~\) (il valore ottimo), la soluzione di base ammissibile
è una soluzione ottima ma \(\bar{\boldsymbol c} \nleq {\boldsymbol 0}\). È un controesempio al fatto che una soluzione ottima di base implica costi ridotti non positivi. Poiché questa soluzione ottima è unica (si veda l'Esempio 7.2), è anche un controesempio al fatto che una soluzione ottima di base unica implica costi ridotti negativi.
Il dizionario associato è:
7.2 Condizioni necessarie di ottimalità¶
7.2.1 Soluzioni di base ammissibili degeneri¶
Definizione 7.3: soluzioni di base ammissibili degeneri
Data una base \({\boldsymbol A}_{\pazocal{B}}\) del problema LP (7.1), se \(~{ \bar{\boldsymbol b}} \ge {\boldsymbol 0}~\) e per qualche \(i \in \pazocal{B}\) abbiamo \(\bar{b}_i=0\) allora \({\boldsymbol x}_{\pazocal{B}} = {{\bar{\boldsymbol b}}}\) e \({\boldsymbol x}_{\pazocal{N}} = {\boldsymbol 0}\) si chiama soluzione di base ammissibile degenere.
- In una soluzione di base ammissibile degenere ci sono più di \(n\) variabili a zero (anche alcune variabili in base sono a zero e non solo tutte le variabili fuori base).
Teorema 7.4: condizioni necessarie di ottimalità
Data una base \({\boldsymbol A}_{\pazocal{B}}\) del problema LP (7.1), se \({\boldsymbol x}_{\pazocal{B}}={{\bar{\boldsymbol b}}}\) e \({\boldsymbol x}_{\pazocal{N}}={{{\boldsymbol 0}}}\) è una soluzione ottima non degenere allora \(~{ \bar{\boldsymbol c}} \le {\boldsymbol 0}~\).
Dimostrazione
Supponiamo per assurdo che \({\boldsymbol x}_{\pazocal{B}}={{\bar{\boldsymbol b}}}\) e \({\boldsymbol x}_{\pazocal{N}}={{{\boldsymbol 0}}}\) sia una soluzione ottima non degenere e che \(\bar{c}_p > 0\) per qualche \(p \in \pazocal{N}\). Poiché la soluzione è non degenere e ammissibile abbiamo \({\bar{\boldsymbol b}} >0\) ma allora esiste un valore positivo \(\vartheta >0\) tale che:
Allora, ponendo \(x_p = \vartheta\) e \({\boldsymbol x}_{\pazocal{B}} = {{\bar{\boldsymbol b}}} - \bar{\boldsymbol A}_{p} \; {\vartheta}\) (tutte le altre variabili a zero), otteniamo un'altra soluzione ammissibile con un valore della funzione obiettivo strettamente migliore. Questo contraddice il fatto che \({\boldsymbol x}_{\pazocal{B}}={{\bar{\boldsymbol b}}}\) e \({\boldsymbol x}_{\pazocal{N}}={{{\boldsymbol 0}}}\) siano ottime, quindi deve valere \(~{ \bar{\boldsymbol c}} \le {\boldsymbol 0}~\). □
-
Combinando con le condizioni sufficienti di ottimalità, abbiamo dimostrato che:
\[\begin{equation*} {\boldsymbol x}_{\pazocal{B}}={{\bar{\boldsymbol b}}} {\rm ~~e~~} {\boldsymbol x}_{\pazocal{N}}={{{\boldsymbol 0}}}, \text{ soluzione ottima non degenere} ~~~\Longleftrightarrow~~~ { \bar{\boldsymbol b}} > {\boldsymbol 0} {\rm ~~e~~} { \bar{\boldsymbol c}} \le {\boldsymbol 0} \end{equation*}\]quindi “\({ \bar{\boldsymbol b}} > {\boldsymbol 0}\) e \({ \bar{\boldsymbol c}} \le {\boldsymbol 0}\)” è una condizione necessaria e sufficiente affinché “\({\boldsymbol x}_{\pazocal{B}}={{\bar{\boldsymbol b}}}\) e \({\boldsymbol x}_{\pazocal{N}}={{{\boldsymbol 0}}}\), soluzione ottima non degenere” e viceversa.
Esempio 7.4: soluzioni di base ammissibili degeneri
Per il problema LP dell'Esempio 7.1, con \(\pazocal{B}= \{3,~~5\}\) e \(\pazocal{N}= \{1,~~2,~~4\},\) abbiamo la soluzione di base ammissibile degenere:
Definizione 7.5: operazione di pivot degenere
Un'operazione di pivot degenere si verifica quando \(t_m = 0\), cioè quando la riga pivot \(x_r\) ha \(\bar{b}_r = 0\); questo può accadere solo se la soluzione di base ammissibile è degenere.
Il valore della funzione obiettivo aumenta in ogni operazione di pivot non degenere e può rimanere invariato solo in una degenere.
7.3 Regole di pivot¶
-
Nelle operazioni di pivot, una regola di pivot è un modo di rispondere alle due domande:
-
Come determinare la colonna pivot nei casi in cui ci siano più variabili fuori base con costo ridotto positivo?
-
Come determinare la riga pivot nei casi in cui ci siano più variabili in base che assumono il valore zero quando si pone il valore della colonna pivot al suo massimo valore possibile \(t_m\)?
-
7.3.1 Regole di pivot anti-ciclaggio¶
Teorema 7.6
Se l'algoritmo del simplesso non termina, allora deve ciclare.
Dimostrazione
Esistono al più \({n+m \choose m}\) basi \({\boldsymbol A}_{\pazocal{B}}\) del problema LP (7.1) e, di conseguenza, dizionari. Quindi, se l'algoritmo del simplesso non termina, deve visitare alcuni di questi dizionari più di una volta. Di conseguenza, l'algoritmo cicla. □
-
È molto raro che l'algoritmo del simplesso cicli, ma esistono istanze in cui cicla.
-
Il ciclaggio può verificarsi solo all'interno di una sequenza di soluzioni di base ammissibili degeneri in cui la funzione obiettivo rimane invariata.
Regola di pivot di Bland¶
-
La regola di pivot di Bland (regola di pivot dell'indice minimo) seleziona la colonna pivot e la riga pivot come segue:
-
la colonna pivot è la variabile fuori base \(x_p\) con l'indice minimo \(p \in \pazocal{N}\) tale che:
\[ \bar{c}_{p} > 0 \text{ o, equivalentemente } {c}_{p} > {{{\boldsymbol c}'_{\pazocal{B}} \; {\boldsymbol A}_{\pazocal{B}}^{-1}}} \;{\boldsymbol A}_{p} \] -
la riga pivot è la variabile in base \(x_r\) con l'indice minimo \(r \in \pazocal{B}\) tale che:
\[ \bar{a}_{rp} > 0 {\rm ~~~e~~~} \frac{\bar{b}_r}{\bar{a}_{rp}} = t_m \]
-
Teorema 7.7
L'algoritmo del simplesso termina purché la colonna pivot e la riga pivot siano selezionate dalla regola di pivot di Bland in ogni operazione di pivot.
- Per il Teorema precedente, la dimostrazione deve solo mostrare che il ciclaggio è impossibile quando si usa la regola di pivot di Bland.
Dimostrazione
Procediamo per assurdo e supponiamo che si verifichi il ciclaggio. Di conseguenza, sia
una sequenza di dizionari tale che il dizionario \(D_0\) si ripete dopo \(k\) operazioni di pivot degeneri con valore della funzione obiettivo costante.
Diciamo che una variabile è volubile se è una variabile in base in alcuni dizionari e una variabile fuori base in altri.
Sia \(x_t\) la variabile volubile con indice massimo \(t\) e sia \(D\) un dizionario
della sequenza ciclica \(D_0,~~D_1,~~ D_2,~~ \dots~~, D_{k-1}\) in cui \(x_t\) è la riga pivot. Sia \(x_s\) la colonna pivot del dizionario \(D\). Senza perdita di generalità, assumiamo che \(D = D_0\).
Sia \(D^{*}\) un dizionario
della sequenza \(D_1,~~ D_2,~~ \dots~~, D_{k-1}\) in cui \(x_t\) è la colonna pivot.
Poiché tutte le operazioni di pivot nel ciclo sono degeneri (il valore della funzione obiettivo rimane costante), abbiamo \({\bar{z}}={\bar{z}}^*=v\), e quindi possiamo scrivere la funzione obiettivo del dizionario \(D^{*}\) come
Consideriamo la soluzione ottenuta aumentando il valore di \(x_s\) fino a \(\vartheta\):
Di conseguenza, per la funzione obiettivo \(z\) dei dizionari \(D\) e \(D^{*}\), abbiamo:
Uguagliando queste due espressioni di \(z\), abbiamo:
L'implicazione è dovuta al fatto che l'equazione deve valere per ogni \(\vartheta\) (di conseguenza, abbiamo anche \(\sum_{i \in \pazocal{B} } \hat{c}_i^* \: \bar{b}_{i} =0\)).
Il fatto che \(x_s\) sia la colonna pivot in \(D\) implica che \(\bar{c}_s > 0\). Poiché \(x_s\) è volubile e \(s \neq t\) (\(x_s\) è fuori base e \(x_t\) è in base in \(D\)), abbiamo \(s < t\). Inoltre, abbiamo \(\hat{c}_s^* \le 0\): se \(s \in \pazocal{B}^*\), allora \(\hat{c}_s^* = 0\); se \(s \in \pazocal{N}^*\) e \(\hat{c}_s^* = \bar{c}_s^* > 0\), allora, per la regola di Bland e poiché \(s < t\), \(x_s\) e non \(x_t\) sarebbe la colonna pivot in \(D^{*}\). Di conseguenza, abbiamo:
Quindi \(x_r\) è volubile e perciò \(r \le t\). Infatti, \(r < t\), poiché \(\hat{c}_t^* \bar{a}_{ts} > 0\): entrambi i fattori sono positivi, poiché \(\hat{c}_t^*=\bar{c}_t^* > 0\) (\(x_t\) è la colonna pivot in \(D^*\)) e \(\bar{a}_{ts} > 0\) (\(x_t\) è la riga pivot in \(D\)).
Il fatto che \(r < t\) implica che \(\hat{c}_r^* \le 0\) (altrimenti, per la regola di Bland, \(x_r\) sarebbe la colonna pivot in \(D^*\)). Allora abbiamo:
Poiché ciascuno dei dizionari del ciclo descrive la stessa soluzione ammissibile (tutte le operazioni di pivot sono degeneri), ogni variabile volubile è nulla in tutti questi dizionari (è nulla in un dizionario in cui è fuori base).
In particolare, \(x_r = 0\). Ma in \(D\), \(x_r\) è in base. Quindi \(\bar{b}_r=0\) e, poiché \(\bar{a}_{rs} > 0\), abbiamo \(\frac{\bar{b}_r}{\bar{a}_{rs}} = 0 = t_m\). Quindi \(x_r\) era una candidata a essere la riga pivot in \(D\), e poiché \(r < t\), per la regola di Bland avrebbe dovuto essere scelta al posto di \(x_t\).
Questa è la contraddizione che dimostra che una sequenza ciclica di dizionari non può esistere usando la regola di Bland. □
Esercizi su questo capitolo: Condizioni di ottimalità e regole di pivot