La matrice Pivot

La matrice pivot è una matrice quadrata usata nell'algoritmo del simplesso per trasformare un modello in forma canonica da una base a un'altra.

Come costruire una matrice pivot

Ho un modello in forma canonica rispetto alla base B[2,3,4].

$$ \begin{cases} \min 9 - 6.5 x_1 \\ \\ x_2 = 1 + 0.5 x_1 \\ x_3 = 5 - 1.5 x_1 \\ x_4 = 2 - x_1 \\ \\ x_1,x_2,x_3,x_4 \ge 0 \end{cases} $$

Lo preparo per calcolare la matrice M.

Sposto i termini noti dei vincoli a destra e tutto il resto a sinistra.

$$ \begin{cases} \min 9 - 6.5 x_1 \\ \\ x_2 - 0.5 x_1 = 1 \\ x_3 + 1.5 x_1 = 5 \\ x_4 + x_1 = 2 \\ \\ x_1,x_2,x_3,x_4 \ge 0 \end{cases} $$

Poi lo trasformo in una matrice ponendo la funzione obiettivo nella riga 0 (la prima riga) e i termini noti dei vincoli nella colonna 0 (la prima colonna).

La matrice ha m+1=4 righe e n+1=5 colonne.

$$ M = \begin{pmatrix} -d & c_1 & ... & c_n \\ b_1 & a_m1 & ... & ... \\ ... & ... & ... & ... \\ b_m & a_m1 & ... & a_mn \\ \end{pmatrix} $$

$$ M = \begin{pmatrix} -9 & -6.5 & 0 & 0 & 0 \\ 1 & -0.5 & 1 & 0 & 0 \\ 5 & 1.5 & 0 & 1 & 0 \\ 2 & 1 & 0 & 0 & 1 \\ \end{pmatrix} $$

Quindi, creo una matrice identità con m+1 righe e m+1 colonne.

In questo caso è una matrice quadrata 4x4

$$ \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix} $$

Infine sostituisco alla h-esima colonna con la k-esima colonna.

$$ Q=\begin{pmatrix} 1 & 0 & ... & -c_k/a_{hk} & ... & 0 \\
0 & 1 & ... & -a_{1k}/a_{hk} & ... & 0 \\
... & ... & ... & ... & ... & 0 \\
0 & 0 & ... & 1/a_{hk} & ... & 0 \\
... & ... & ... & ... & ... & 0 \\
0 & 0 & ... & -a_{mk}/a_{hk} & ... & 1 \end{pmatrix} $$

La variabile h è il numero della colonna uscente, ossia la variabile da sostituire nella base, mentre la variabile k è la variabile entrante.

Il prodotto tra la matrice pivot Q è la matrice M genera la matrice del modello in forma canonica rispetto alla nuova base.

$$ M_{B2} = Q M_{B1} $$

Il termine ah,k è il coefficiente positivo dei vincoli più grande ( vedi algoritmo del simplesso ).

Un esempio pratico

Questo modello è in forma canonica nella base B[2,3,4].

La variabile entrante in base è x1 e la variabile uscente dalla base è x3. Pertanto, devo considerare k=1 e h=3.

$$ \begin{cases} \min 9 - 6.5 x_1 \\ \\ x_2 - 0.5 x_1 = 1 \\ x_3 + 1.5 x_1 = 5 \\ x_4 + x_1 = 2 \\ \\ x_1,x_2,x_3,x_4 \ge 0 \end{cases} $$

Perché? In questo esempio k=1 perché nella funzione obiettivo la variabile x1 ha il coefficiente negativo minore (-6.5), mentre h=3 perché il valore minimo positivo b/a si trova nella riga con indice 3 ossia la terza equazione dei vincoli dove b/a=2/1. $$ h=min( -, \frac{5}{1.5} , \frac{2}{1} ) = 3 $$ La prima riga non viene considerata (-) perché il coefficiente non è positivo a1k=-0.5≤0.

Nella matrice M l'elemento pivot ahk è il numero a31=1 ( rosso ).

$$ M = \begin{pmatrix} -9 & -6.5 & 0 & 0 & 0 \\ 1 & -0.5 & 1 & 0 & 0 \\ 5 & 1.5 & 0 & 1 & 0 \\ 2 & {\color{Red} 1 } & 0 & 0 & 1 \\ \end{pmatrix} $$

Nota. La prima riga e la prima colonna della matrice pivot hanno indice pari a zero (0).

Costruisco la matrice identità Q con lo stesso numero di righe della matrice M.

$$ Q= \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix} $$

Ora sostituisco la colonna h=3 della matrice Q con gli elementi della colonna k=1 della matrice M opportunamente modificati secondo la regola precedente,

$$ Q= \begin{pmatrix} 1 & 0 & 0 & {\color{Red} 0 } \\ 0 & 1 & 0 & {\color{Red} 0 } \\ 0 & 0 & 1 & {\color{Red} 0 } \\ 0 & 0 & 0 & {\color{Red} 1 } \end{pmatrix} $$

$$ Q = \begin{pmatrix} 1 & 0 & 0 & -c_1/a_{3,1} \\ 0 & 1 & 0 & -a_{1,1}/a_{3,1} \\ 0 & 0 & 1 & -a_{2,1}/a_{3,1} \\ 0 & 0 & 0 & < a_{3,1}/a_{3,1} > \end{pmatrix} $$

$$ Q = \begin{pmatrix} 1 & 0 & 0 & -(-6.5)/1 \\ 0 & 1 & 0 & -(-0.5)/1 \\ 0 & 0 & 1 & -1.5/1 \\ 0 & 0 & 0 & 1/1 \end{pmatrix} $$

$$ Q =\begin{pmatrix} 1 & 0 & 0 & 6.5 \\ 0 & 1 & 0 & 0.5 \\ 0 & 0 & 1 & -1.5 \\ 0 & 0 & 0 & 1 \end{pmatrix} $$

A questo punto moltiplico le matrici Q e M.

$$ M_{new} = Q \cdot M $$

$$ M_{new} = \begin{pmatrix} 1 & 0 & 0 & 6.5 \\ 0 & 1 & 0 & 0.5 \\ 0 & 0 & 1 & -1.5 \\ 0 & 0 & 0 & 1 \end{pmatrix} \cdot \begin{pmatrix} -9 & -6.5 & 0 & 0 & 0 \\ 1 & -0.5 & 1 & 0 & 0 \\ 5 & 1.5 & 0 & 1 & 0 \\ 2 & 1 & 0 & 0 & 1 \\ \end{pmatrix} $$

$$ M_{new} = \begin{pmatrix} 4 & 0 & 0 & 0 & 6.5 \\ 2 & 0 & 1 & 0 & 0.5 \\ 2 & 0 & 0 & 1 & -1.5 \\ 2 &1 & 0 & 0 & 1 \end{pmatrix} $$

Ho così ottenuto la matrice del modello in forma canonica rispetto alla base [1,2,3]

$$ \begin{cases} \min 4 + 6.5x_4 \\ \\ x_2+0.5x_4 = 2\\ x_3-1.5x_4 = 2 \\ x_1+x_4 = 2 \\ \\ x_1,x_2,x_3,x_4 \ge 0 \end{cases} $$

E' lo stesso risultato che ho ottenuto nell'esercizio dell'algoritmo del simplesso tramite l'operazione pivot.

E così via.

 


 

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

FacebookTwitterLinkedinLinkedin
knowledge base

La ricerca operativa