<marco />
← Tutti gli articoli
6 min di lettura

Il metodo del simplesso, passo per passo

ottimizzazione

Nell'articolo sul metodo grafico abbiamo trovato l'ottimo del problema di produzione disegnando la regione ammissibile. Con due variabili funziona; con centinaia conviene cambiare approccio. Serve un metodo algebrico, e il più famoso è il metodo del simplesso.

Lo seguiamo passo per passo sullo stesso problema, inverter (x1x_1) e batterie (x2x_2):

max⁡ ω=4x1+3x22x1+x2≤14x2≤6x1, x2≥0\begin{aligned} \max \ \omega &= 4x_1 + 3x_2 \\ 2x_1 + x_2 &\le 14 \\ x_2 &\le 6 \\ x_1,\ x_2 &\ge 0 \end{aligned}

Forma standard

Il simplesso lavora con equazioni, non con disuguaglianze. Ogni vincolo ≤\le diventa un'equazione aggiungendo una variabile di scarto, che misura quanto manca al limite:

2x1+x2+s1=14x2+s2=6\begin{aligned} 2x_1 + x_2 + s_1 &= 14 \\ x_2 + s_2 &= 6 \end{aligned}

s1s_1 sono le ore di collaudo non usate, s2s_2 i moduli di celle avanzati. Il segno di uno scarto dice dove si trova un punto rispetto al vincolo:

  • si>0s_i > 0: il punto rispetta il vincolo con margine;
  • si=0s_i = 0: il punto è sulla retta del vincolo;
  • si<0s_i < 0: il punto viola il vincolo.

Per questo si impone s1,s2≥0s_1, s_2 \ge 0: la regione ammissibile diventa "tutte le variabili non negative".

Infine il problema si scrive come minimo, con φ=−ω\varphi = -\omega, e anche l'obiettivo diventa un'equazione del sistema:

2x1+x2+s1=14x2+s2=64x1+3x2+φ=0\begin{aligned} 2x_1 + x_2 + s_1 &= 14 \\ x_2 + s_2 &= 6 \\ 4x_1 + 3x_2 + \varphi &= 0 \end{aligned}

con x1,x2,s1,s2≥0x_1, x_2, s_1, s_2 \ge 0 e φ\varphi da minimizzare.

Punto di partenza

Se l'origine è ammissibile, è comoda per partire: con x1=x2=0x_1 = x_2 = 0 il sistema dà subito s1=14s_1 = 14, s2=6s_2 = 6 e φ=0\varphi = 0. Ogni iterazione del simplesso ha poi tre passi.

Iterazione 1

Passo A: la soluzione è ottima? Dall'equazione dell'obiettivo:

φ=0−4x1−3x2\varphi = 0 - 4x_1 - 3x_2

I coefficienti di x1x_1 e x2x_2 sono negativi: aumentando una delle due variabili, φ\varphi scende, cioè il profitto sale. La soluzione non è ottima. Scegliamo di aumentare x1x_1, che ha il coefficiente più negativo, muovendoci lungo l'asse x2=0x_2 = 0.

Passo B: di quanto si può avanzare? Con x2=0x_2 = 0 le equazioni dei vincoli danno s1=14−2x1s_1 = 14 - 2x_1 e s2=6s_2 = 6. Il secondo non pone limiti, il primo deve restare ≥0\ge 0:

x1≤7x_1 \le 7

È la regola del rapporto minimo: tra i limiti imposti dai vincoli si prende il più stretto, qui l'unico. Con x1=7x_1 = 7 si arriva al vertice A (7, 0), dove s1s_1 si azzera e φ=−28\varphi = -28.

Passo C: riscrivere il sistema. Nel nuovo punto valgono zero x2x_2 e s1s_1, quindi conviene esprimere tutto in funzione di queste due. Dall'equazione che contiene s1s_1 si ricava x1=7−12x2−12s1x_1 = 7 - \tfrac{1}{2}x_2 - \tfrac{1}{2}s_1, e si sostituisce nelle altre:

x1+12x2+12s1=7x2+s2=6x2−2s1+φ=−28\begin{aligned} x_1 + \tfrac{1}{2}x_2 + \tfrac{1}{2}s_1 &= 7 \\ x_2 + s_2 &= 6 \\ x_2 - 2s_1 + \varphi &= -28 \end{aligned}

Iterazione 2

Passo A. Ora φ=−28−x2+2s1\varphi = -28 - x_2 + 2s_1: il coefficiente di x2x_2 è negativo, quindi conviene aumentare x2x_2.

Passo B. Con s1=0s_1 = 0: x1=7−12x2≥0x_1 = 7 - \tfrac{1}{2}x_2 \ge 0 dà x2≤14x_2 \le 14, mentre s2=6−x2≥0s_2 = 6 - x_2 \ge 0 dà x2≤6x_2 \le 6. Il più stretto è 6: si arriva a B (4, 6), dove si azzera s2s_2, e φ=−28−6=−34\varphi = -28 - 6 = -34.

Passo C. Dalla seconda equazione x2=6−s2x_2 = 6 - s_2, che sostituita nell'obiettivo dà:

φ=−34+2 s1+s2\varphi = -34 + 2\, s_1 + s_2

Iterazione 3: l'ottimo

Passo A. I coefficienti di s1s_1 e s2s_2 sono entrambi positivi: aumentare una qualsiasi delle due variabili farebbe salire φ\varphi, cioè peggiorare. Non c'è direzione che migliori, quindi la soluzione è ottima: x1=4x_1 = 4, x2=6x_2 = 6, φ=−34\varphi = -34, cioè ω=34\omega = 34 k€. È lo stesso risultato del metodo grafico.

0 2 4 6 8 10 0 2 4 6 8 x₁x₂ 2x₁ + x₂ = 14 x₂ = 6 O: φ = 0 A: φ = −28 C: φ = −18 B: φ = −34 (ottimo)

Al primo passo si poteva scegliere anche x2x_2, utile anche come esercizio.

  • Le variabili di scarto trasformano i vincoli ≤\le in equazioni.
  • Ogni iterazione del simplesso ha tre passi: A verifica l'ottimalità, B trova di quanto avanzare con il rapporto minimo, C riscrive il sistema rispetto al nuovo vertice.
  • Il simplesso si ferma quando nessun coefficiente dell'obiettivo è negativo.