Il modello in forma canonica

Nella programmazione lineare un modello in forma canonica rispetto a una base è il seguente: $$ \begin{cases} \min \: z(x) \: = \: c_B^T A_B^{-1}b + \bar{c}_N^T x_N \\ x_B = A_B^{-1}b - A_B^{-1} A_N x_N \\ x_B,x_N \ge 0 \end{cases} $$

La dimostrazione

Per trasformare un modello di ottimizzazione in forma canonica, devo partire dalla forma standard.

$$ \begin{cases} \min \: z(x) \: = \: c^T x \\ Ax = b \\ x \ge 0 \end{cases} $$

Nella ricerca delle soluzioni di base ammissibili (SBA) devo dividere le componenti in base (B) ed escluse (N).

$$ \begin{cases} \min \: z(x) \: = \: c_B^T x_B + \bar{c}_N^T x_N \\ A_B x_B + A_N x_N = b \\ x_B,x_N \ge 0 \end{cases} $$

Ora ricavo la componente Xb

$$ A_B x_B + A_N x_N = b $$

$$ A_B x_B = b - A_N x_N $$

$$ x_B = \frac{b}{A_B} - \frac{A_N x_N}{A_B} $$

$$ x_B = A_B^{-1}b - A_B^{-1} A_N x_N $$

Quindi riscrivo il modello in questa forma

$$ \begin{cases} \min \: z(x) \: = \: c_B^T x_B + \bar{c}_N^T x_N \\ x_B = A_B^{-1}b - A_B^{-1} A_N x_N \\ x_B,x_N \ge 0 \end{cases} $$

Nella soluzione di base XN è nulla.

$$ x_B = A_B^{-1}b $$

Quindi sostituisco XB nella funzione obiettivo senza considerare XN

$$ \begin{cases} \min \: z(x) \: = \: c_B^T A_B^{-1}b + \bar{c}_N^T x_N \\ x_B = A_B^{-1}b - A_B^{-1} A_N x_N \\ x_B,x_N \ge 0 \end{cases} $$

E' il modello di ottimizzazione in forma canonica.

Il primo termine della funzione obiettivo è un valore z numerico.

Il secondo termine della funzione obiettivo sono i costi ridotti delle variabili fuori base.

Si calcolano per differenza

$$ \bar{c}_N^T = c^T - c_B^T A_B^{-1} A $$

Quindi, posso riscrivere il modello nella forma canonica in questo modo

$$ \begin{cases} \min \: z(x) \: = \: c_B^T A_B^{-1}b + [ c^T - c_B^T A_B^{-1} A ] x_N \\ x_B = A_B^{-1}b - A_B^{-1} A_N x_N \\ x_B,x_N \ge 0 \end{cases} $$

Un esempio pratico

Ho un problema di ottimizzazione

$$ \begin{cases} \min z(x) = 4x_1 - x_2 \\ \\ x_1-x_2 \le 5 \\ 3x_1+x_2 \le 2 \\ \\ x_1 \ge 0 \\ x_2 \le 0 \end{cases} $$

Lo trasformo in forma standard

$$ \begin{cases} \min z(x) = 4x_1 - x_2\\ \\ x_1-x_2 +x_3 = 5 \\ 3x_1+x_2 + x_4 = 2 \\ \\ x_1, x_3, x_4 \ge 0 \\ x_2 \le 0 \end{cases} $$

La matrice dei coefficienti del sistema è

$$ A = \begin{pmatrix} 1 & -1 & 1 & 0 \\ 3 & 1 & 0 & 1 \end{pmatrix} $$

Nota. Il rango del sistema è r(A)=r(A|B)=2. E' la condizione del teorema di Rouché Capelli perché abbia una o più soluzioni. Inoltre, il numero delle righe (m=2) non è superiore al numero delle variabili (n=4). Le condizioni per cercare le soluzioni di base sono soddisfatte.

Per trasformare il sistema in forma canonica devo cercare una soluzione di base ammissibile.

Seleziono due colonne della matrice dei coefficienti A linearmente indipendenti tra loro ossia con determinante diverso da zero.

Ad esempio, seleziono le colonne [1,2] e ottengo la matrice dei coefficienti A

$$ A_B = \begin{pmatrix} 1 & -1 \\ 3 & 1 \end{pmatrix} $$

Le variabili escluse (x3,x4) compongono un'altra matrice dei coefficienti.

$$ A_N = \begin{pmatrix} -1 & 0 \\ 0 & 1 \end{pmatrix} $$

Le soluzioni XB della base sono

$$ x_B = A_B^{-1} b $$

$$ x_B = \begin{pmatrix} 1 & -1 \\ 3 & 1 \end{pmatrix} ^{-1} \begin{pmatrix} 5 \\ 2 \end{pmatrix} $$

Calcolo matrice inversa e svolgo i calcoli.

$$ x _B = \begin{pmatrix} 0.25 & 0.25 \\ -0.75 & 0.25 \end{pmatrix} \begin{pmatrix} 5 \\ 2 \end{pmatrix} $$

$$ x_B = \begin{pmatrix} 1.75 \\ -3.25 \end{pmatrix} $$

E' una base ammissibile del problema perché nel problema le variabili selezionate devono essere x1≥0 e x2≤0.

Posso cominciare a scrivere il modello in forma canonica rispetto alla base [1,3].

$$ \begin{cases} \min c_B^T A_B^{-1}b + c_N^T x_N \\ x_B = A_B^{-1}b - A_B^{-1} A_N x_N \\ x_B,x_N \ge 0 \end{cases} $$

$$ \begin{cases} \min c_B^T A_B^{-1}b + c_N^T x_N \\ \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = A_B^{-1}b - A_B^{-1} A_N x_N \\ x_1, x_3, x_4 \ge 0 \\ x_2 \le 0 \end{cases} $$

Sapendo che i costi di base cB delle variabili x1 e x2 sono (4 , -1 )

$$ \begin{cases} \min (4 , -1 ) \begin{pmatrix} 1.75 \\ -3.25 \end{pmatrix} + c_N^T x_N \\ \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = A_B^{-1}b - A_B^{-1} A_N x_N \\ x_1, x_3, x_4 \ge 0 \\ x_2 \le 0 \end{cases} $$

$$ \begin{cases} \min 10.25 + c_N^T x_N \\ \\ \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = A_B^{-1}b - A_B^{-1} A_N x_N \\ \\ x_1, x_3, x_4 \ge 0 \\ x_2 \le 0 \end{cases} $$

Ora calcolo il resto

$$ \begin{cases} \min 10.25 + c_N^T x_N \\ \\\begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = \begin{pmatrix} 1.75 \\ -3.25 \end{pmatrix} - A_B^{-1} A_N x_N \\ \\ x_1, x_3, x_4 \ge 0 \\ x_2 \le 0 \end{cases} $$

$$ \begin{cases} \min 10.25 + c_N^T x_N \\ \\\begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = \begin{pmatrix} 1.75 \\ -3.25 \end{pmatrix} - \begin{pmatrix} 0.25 & 0.25 \\ -0.75 & 0.25 \end{pmatrix} \begin{pmatrix} -1 & 0 \\ 0 & 1 \end{pmatrix} \begin{pmatrix} x_3 \\ x_4 \end{pmatrix} \\ \\ x_1, x_3, x_4 \ge 0 \\ x_2 \le 0 \end{cases} $$

$$ \begin{cases} \min 10.25 + c_N^T x_N \\ \\\begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = \begin{pmatrix} 1.75 \\ -3.25 \end{pmatrix} - \begin{pmatrix} -0.25 & 0.25 \\ 0.75 & 0.25 \end{pmatrix} \begin{pmatrix} x_3 \\ x_4 \end{pmatrix} \\ \\ x_1, x_3, x_4 \ge 0 \\ x_2 \le 0 \end{cases} $$

$$ \begin{cases} \min 10.25 + c_N^T x_N \\ \\\begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = \begin{pmatrix} 1.75 \\ -3.25 \end{pmatrix} - \begin{pmatrix} -0.25x_3 & 0.25x_4 \\ 0.75x_3 & 0.25x_4 \end{pmatrix} \\ \\ x_1, x_3, x_4 \ge 0 \\ x_2 \le 0 \end{cases} $$

$$ \begin{cases} \min 10.25 + c_N^T x_N \\ \\ x_1 = 1.75 + 0.25 x_3 - 0.25x_4 \\ x_2 = -3.25 -0.75x_3 -0.25x_4 \\ \\ x_1, x_3, x_4 \ge 0 \\ x_2 \le 0 \end{cases} $$

$$ \begin{cases} \min 10.25 + c_N^T x_N \\ \\ x_1 - 0.25 x_3 + 0.25x_4 = 1.75 \\ x_2 +0.75x_3 +0.25x_4 = -3.25 \\ \\ x_1, x_3, x_4 \ge 0 \\ x_2 \le 0 \end{cases} $$

Ora devo solo calcolare i costi ridotti cN delle variabili escluse x4 e x5.

$$ c^T - c_B^T A_B^{-1} A $$

$$ (4, -1, 0, 0) - (4, -1) \begin{pmatrix} 0.25 & 0.25 \\ -0.75 & 0.25 \end{pmatrix} \begin{pmatrix} 1 & -1 & 1 & 0 \\ 3 & 1 & 0 & 1 \end{pmatrix} $$

$$ (4, -1, 0, 0) - (4, -1) \begin{pmatrix} 1 & 0 & 0.25 & 0.25 \\ 0 & -1 & -0.75 & 0.25 \end{pmatrix} $$

$$ (4, -1, 0, 0) - (4, -1, 1.75, 0.75) $$

$$ (0, 0, -1.75, -0.75) $$

Quindi escludendo le variabili di base (x1,x2) ossia le prime due colonne, i coefficienti di costo delle variabili escluse sono

$$ c_N = (-1.75, -0.75) $$

Una volta trovati posso calcolare l'ultima componente del sistema

$$ \begin{cases} \min 10.25 + c_N^T x_N \\ \\ x_1 - 0.25 x_3 + 0.25x_4 = 1.75 \\ x_2 +0.75x_3 +0.25x_4 = -3.25 \\ \\ x_1, x_3, x_4 \ge 0 \\ x_2 \le 0 \end{cases} $$

$$ \begin{cases} \min 10.25 + (-1.75 , -0.75) \begin{pmatrix} x_3 \\ x_4 \end{pmatrix} \\ \\ x_1 - 0.25 x_3 + 0.25x_4 = 1.75 \\ x_2 +0.75x_3 +0.25x_4 = -3.25 \\ \\ x_1, x_3, x_4 \ge 0 \\ x_2 \le 0 \end{cases} $$

$$ \begin{cases} \min 10.25 -1.75x_3 , -0.75 x_4 \\ \\ x_1 - 0.25 x_3 + 0.25x_4 = 1.75 \\ x_2 +0.75x_3 +0.25x_4 = -3.25 \\ \\ x_1, x_3, x_4 \ge 0 \\ x_2 \le 0 \end{cases} $$

Ho così calcolato il sistema in forma canonica rispetto alla base [1,2].

Nota. La soluzione è ammissibile perché x1≥0 e x2≤0 ma non è ottimale. Esiste almeno un coefficiente di costo della variabili fuori base negativo (-1.75 e -0.75).

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

La ricerca operativa