Simplesso con le matrici: basi, forma canonica e costi ridotti
Nel metodo del simplesso il passo C consisteva nel riscrivere il sistema a ogni iterazione, esprimendo alcune variabili in funzione delle altre. In sostanza, si ripeteva sempre la stessa operazione. La formulazione matriciale permette di esprimere questo procedimento in modo compatto e generale.
Continuiamo con il problema di inverter e batterie in forma standard:
Vincoli, riscritti, in forma matriciale
I vincoli sono equazioni in incognite. In forma matriciale, :
con . È un sistema sottodeterminato: ha infinite soluzioni, perché si possono scegliere liberamente variabili, e le altre 2 sono allora determinate dal sistema.
Base e soluzione di base
Riscriviamo il modello, scelgiamo colonne di linearmente indipendenti: formano la matrice di base . Le colonne rimaste formano . Le variabili si dividono di conseguenza:
- le variabili di base , associate alle colonne di ;
- le variabili non di base , associate alle colonne di .
Definizione: matrice di base
Sia una matrice di rango , cioè con righe linearmente indipendenti. Una matrice di base è una sottomatrice quadrata formata da colonne di linearmente indipendenti.
Avendo colonne indipendenti, è invertibile:
Il sistema non cambia, cambia solo il modo di scriverlo. Il prodotto si spezza in due pezzi, uno con le colonne di base e uno con le altre:
Ora si moltiplicano entrambi i lati per . Siccome , davanti a resta l'identità:
Questa è la forma canonica rispetto alla base . Portando a destra il termine con , ogni variabile di base è espressa solo con le non di base:
Definizione: forma canonica
Un sistema è in forma canonica rispetto a un insieme di variabili di base se ogni variabile di base compare in una sola equazione, con coefficiente 1. Detto con le matrici: le colonne delle variabili di base formano l'identità.
Il vantaggio è che il sistema è già "risolto": ogni equazione dà il valore della sua variabile di base, una volta fissate le non di base.
Nel nostro esempio. Il sistema di partenza è già in forma canonica rispetto a : compare solo nella prima equazione, solo nella seconda, entrambe con coefficiente 1.
Rispetto a invece no, perché compare in tutte e due. Con
e (le colonne di e ), la moltiplicazione per dà:
Ora e compaiono ciascuna in una sola equazione. Portando a destra gli scarti:
Con si legge subito il vertice B (4, 6).
Mettendo le variabili non di base a zero si ottiene la soluzione di base, . Se è anche non negativa si chiama soluzione di base ammissibile, ed è un vertice della regione ammissibile.
Nel nostro esempio le possibili coppie di colonne sono sei:
| Variabili di base | Soluzione di base | Ammissibile? | Punto |
|---|---|---|---|
| , | sì | O (0, 0) | |
| , | sì | A (7, 0) | |
| , | sì | B (4, 6) | |
| , | sì | C (0, 6) | |
| , | no | (0, 14) | |
| nessuna: colonne dipendenti | — | — |
Le quattro soluzioni di base ammissibili sono esattamente i quattro vertici del disegno. Il punto (0, 14) è l'incrocio di due rette dei vincoli, ma sta fuori dalla regione. L'ultima coppia non è una base: le rette e sono parallele e non si incontrano.
I costi ridotti
Ora aggiungiamo anche l'obbiettivo: nel nostro caso . In generale si scrive
dove:
- contiene i coefficienti dell'obiettivo da minimizzare (Qui ).
- è una costante (poichè gli scarti non portano né profitto né costo, e ).
L'idea è la stessa della forma canonica: esprimere solo con le variabili non di base. Così si vede subito cosa succede all'obiettivo se una di loro aumenta.
1. Si ricava φ, separando i coefficienti delle variabili di base () da quelli delle non di base ():
2. Si sostituisce , la forma canonica:
3. Si raccolgono i due termini che contengono :
Nel vertice, dove , resta solo : è il valore dell'obiettivo nella soluzione di base.
Il vettore contiene i costi ridotti (o coefficienti di costo relativo), uno per ogni variabile non di base. Impostando tutto i valori delle variabili non di base a 0 cosa succede se incremento la variabile non di base, per esempio da 0 a 1, di quanto cambia l'obiettivo?
La risposta si legge nella formula del passo 3. Il prodotto è una somma, con un termine per ogni variabile non di base:
Nel vertice tutte le della somma valgono 0. Se una sola di loro, , passa a 1, nella parentesi resta solo : l'obiettivo diventa . Rispetto al vertice è cambiato di .
Due esempi dal nostro problema:
- Nell'origine la base è e l'obiettivo è , quindi i costi ridotti di e sono e . Produrre un inverter in più ( da 0 a 1) fa scendere di 4, cioè fa guadagnare 4 k€. Conviene.
- Nel vertice B la base è e l'obiettivo è , quindi i costi ridotti di e sono e . Lasciare inutilizzata un'ora di collaudo ( da 0 a 1) fa salire di 2, cioè fa perdere 2 k€. Non conviene.
Da qui viene la condizione di ottimalità del simplesso, cioè il passo A. Poiché :
- se c'è un , aumentare fa scendere : la base non è ottima;
- se tutti gli , nessun aumento può far scendere : la base è ottima.
Nell'esempio, alla base ottima :
: è il vertice B. Con e le non di base (le cui colonne formano l'identità e i cui costi sono zero):
Entrambi : la base è ottima, e . Sono esattamente i coefficienti trovati a mano nell'ultima iterazione, .
Il tableau
In pratica i conti si organizzano in una tabella, il tableau, che contiene la forma canonica rispetto alla base corrente. Quello finale del nostro problema:
| termine noto | ||||||
|---|---|---|---|---|---|---|
| riga di | 1 | 0 | 1/2 | −1/2 | 0 | 4 |
| riga di | 0 | 1 | 0 | 1 | 0 | 6 |
| riga dell'obiettivo | 0 | 0 | −2 | −1 | 1 | −34 |
Si legge:
- le colonne delle variabili di base sono vettori unitari;
- la colonna dei termini noti è , con i valori delle variabili di base, e in fondo il valore dell'obiettivo;
- la riga dell'obiettivo contiene i costi ridotti ;
- le colonne delle variabili di scarto contengono (sopra) e (sotto).
Riepilogo
- I vincoli in forma standard sono un sistema sottodeterminato , con infinite soluzioni.
- Una base è un insieme di colonne indipendenti. La forma canonica esprime le variabili di base con quelle non di base: .
- La soluzione di base si ottiene con . Se è non negativa è un vertice.
- I costi ridotti dicono se conviene far entrare una variabile: se sono tutti , la base è ottima.