Gestire un’azienda agricola oggi non è più solo una sfida contro il meteo, ma una partita a scacchi con i costi delle materie prime.
Spesso ci si affida all’intuizione, pensando che puntare tutto sul prodotto che sembra più redditizio sia la scelta vincente.
Ma i numeri raccontano una storia diversa.
La programmazione lineare non è un astratto esercizio accademico: è lo strumento che permette di capire perché, a volte, produrre meno di un bene “pregiato” per bilanciare le risorse sia l’unica strada per non lasciare soldi sul tavolo.
Vediamo come trasformare vincoli fisici di magazzino in una strategia di profitto reale attraverso un caso pratico.
Il Problema: Ottimizzare la Produzione di Fertilizzanti
Un’azienda deve decidere quanto produrre di due miscele, A e B, avendo a disposizione scorte limitate di azoto e fosfato.
Ogni scelta influisce non solo sul guadagno immediato, ma sulla saturazione delle risorse.
Dati del problema:
- Prodotto A richiede: [math]1[/math] kg di azoto e [math]2[/math] kg di fosfato.
- Prodotto B richiede: [math]2[/math] kg di azoto e [math]1[/math] kg di fosfato.
- Disponibilità totale: [math]8[/math] kg di azoto e [math]8[/math] kg di fosfato.
- Profitto unitario: [math]10[/math] € per ogni unità di A e [math]10[/math] € per ogni unità di B.
Risoluzione
1. Scelta delle variabili
Indichiamo con:
- [math]x[/math] = numero di unità di fertilizzante A;
- [math]y[/math] = numero di unità di fertilizzante B.
Poiché non è possibile produrre quantità negative:
[math]x \geq 0, \quad y \geq 0[/math]
2. Costruzione della funzione obiettivo
Ogni unità di A genera [math]10[/math] €, così come ogni unità di B. La funzione profitto è quindi:
[math]Z = 10x + 10y[/math]
Poiché il problema richiede di massimizzare il profitto:
[math]\max Z = 10x + 10y[/math]
Osserviamo subito una cosa importante:
[math]Z = 10(x + y)[/math]
cioè il profitto dipende solamente dalla somma totale delle unità prodotte.
3. Costruzione dei vincoli
Vincolo dell’azoto:
Il prodotto A consuma [math]1[/math] kg di azoto, mentre B ne consuma [math]2[/math]. Avendo disponibili solo [math]8[/math] kg:
[math]x + 2y \leq 8[/math]
Vincolo del fosfato:
Il prodotto A richiede [math]2[/math] kg di fosfato, mentre B ne richiede [math]1[/math]. Quindi:
[math]2x + y \leq 8[/math]
Modello matematico completo:
[math]\max Z = 10x + 10y[/math]
soggetto ai vincoli:
[math]\begin{cases} x + 2y \leq 8 \\ 2x + y \leq 8 \\ x \geq 0 \\ y \geq 0 \end{cases}[/math]
4. Studio grafico dei vincoli
Prima retta: [math]x + 2y = 8[/math]
Intersezioni con gli assi:
- se [math]y = 0 \rightarrow x = 8[/math] (punto [math](8,0)[/math])
- se [math]x = 0 \rightarrow 2y = 8 \Rightarrow y = 4[/math] (punto [math](0,4)[/math])
Seconda retta: [math]2x + y = 8[/math]
Intersezioni:
- se [math]y = 0 \rightarrow 2x = 8 \Rightarrow x = 4[/math] (punto [math](4,0)[/math])
- se [math]x = 0 \rightarrow y = 8[/math] (punto [math](0,8)[/math])
5. Calcolo del punto di intersezione
Per trovare il vertice comune alle due rette risolviamo il sistema:
[math]\begin{cases} x + 2y = 8 \\ 2x + y = 8 \end{cases}[/math]
Metodo di eliminazione:
Moltiplichiamo la prima equazione per [math]2[/math]: [math]2x + 4y = 16[/math].
Sottraiamo ora la seconda:
[math]\begin{aligned} (2x + 4y) – (2x + y) &= 16 – 8 \\ 3y &= 8 \Rightarrow y = \frac{8}{3} \end{aligned}[/math]
Sostituiamo nella prima equazione:
[math]\begin{aligned} x + 2\left(\frac{8}{3}\right) &= 8 \Rightarrow x + \frac{16}{3} = 8 \\ x &= \frac{24}{3} – \frac{16}{3} = \frac{8}{3} \end{aligned}[/math]
Quindi il punto di intersezione è: [math]D\left(\frac{8}{3}, \frac{8}{3}\right)[/math].
6. Determinazione dei vertici ammissibili
La regione ammissibile ha i seguenti vertici:
- [math]O(0, 0)[/math]
- [math]A(4, 0)[/math]
- [math]B(0, 4)[/math]
- [math]D\left(\frac{8}{3}, \frac{8}{3}\right)[/math]
7. Calcolo della funzione obiettivo nei vertici
- Nel punto [math]O(0,0)[/math]: [math]Z = 10(0) + 10(0) = 0[/math]
- Nel punto [math]A(4,0)[/math]: [math]Z = 10(4) + 10(0) = 40[/math]
- Nel punto [math]B(0,4)[/math]: [math]Z = 10(0) + 10(4) = 40[/math]
- Nel punto [math]D\left(\frac{8}{3}, \frac{8}{3}\right)[/math]:
[math]Z = 10\left(\frac{8}{3} + \frac{8}{3}\right) = 10\left(\frac{16}{3}\right) = \frac{160}{3} \approx 53.33[/math]
8. Conclusione
Il profitto massimo è:
[math]Z_{\max} = \frac{160}{3} \approx 53.33 \, \text{€}[/math]
e si ottiene producendo:
[math]x = \frac{8}{3}, \quad y = \frac{8}{3}[/math]
cioè una produzione mista dei due fertilizzanti.

Analisi del grafico
Le rette dei vincoli
Le due rette rappresentano i vincoli di disponibilità delle risorse:
[math]x + 2y = 8 \quad \text{e} \quad 2x + y = 8[/math]
Geometricamente:
- La retta blu ha pendenza: [math]-\frac{1}{2}[/math]
- La retta arancione ha pendenza: [math]-2[/math]
Queste pendenze diverse sono fondamentali: garantiscono che i vincoli si intersechino in un punto interno, creando un vertice che sfrutta entrambe le risorse.
La regione ammissibile
La zona azzurra rappresenta l’insieme delle soluzioni possibili. Ogni punto della regione soddisfa contemporaneamente:
[math]\begin{cases} x + 2y \le 8 \\ 2x + y \le 8 \\ x \ge 0, \ y \ge 0 \end{cases}[/math]
- Sotto le rette: Significa non superare la capacità massima delle risorse.
- Primo quadrante: Rappresenta il vincolo fisico di non poter produrre quantità negative.
Il punto ottimo
Il punto [math]D\left(\frac{8}{3}, \frac{8}{3}\right)[/math] è il vertice di intersezione dei due vincoli.
In questo stato:
- Azoto: [math]\frac{8}{3} + 2 \cdot \frac{8}{3} = 8[/math] (utilizzato al 100%)
- Fosfato: [math]2 \cdot \frac{8}{3} + \frac{8}{3} = 8[/math] (utilizzato al 100%)
Caratteristica tipica: all’ottimo le risorse scarse risultano spesso completamente saturate.
La retta di iso-profitto
La retta tratteggiata verde [math]x + y = \frac{16}{3}[/math] rappresenta un livello di profitto costante.
Poiché [math]Z = 10x + 10y[/math], dividendo per [math]10[/math] otteniamo la famiglia di rette [math]x + y = \text{costante}[/math]. L’obiettivo geometrico è:
- Traslare parallelamente questa retta verso l’esterno.
- Individuare l’ultima posizione di contatto con la regione azzurra.
In questo caso, la retta “abbandona” la regione proprio nel punto D, confermando che è il punto di massimo profitto assoluto.
Perché il punto ottimo è interno alla regione ammissibile?
Questa è una delle idee geometriche più importanti della programmazione lineare, ed è normale che all’inizio sembri poco intuitiva.
Molti studenti pensano: “Per massimizzare il profitto conviene produrre solo uno dei due prodotti.”
In alcuni problemi è vero. Qui invece il massimo si ottiene mescolando i due prodotti. Vediamo perché con calma.
1. L’idea delle rette di profitto
La funzione obiettivo è [math]Z = 10x + 10y[/math]. Dividendo tutto per [math]10[/math]:
[math]x + y = \text{costante}[/math]
Questa equazione rappresenta una famiglia di rette parallele (es. [math]x + y = 2[/math], [math]x + y = 4[/math], [math]x + y = 6[/math]).
2. Che cosa rappresentano queste rette?
Ogni retta rappresenta un livello di profitto. Più la retta si sposta verso l’alto e verso destra, maggiore è il profitto.
3. La pendenza della funzione obiettivo
Isolando [math]y[/math] nell’equazione [math]x + y = k[/math], otteniamo [math]y = -x + k[/math].
Quindi la pendenza è: [math]m = -1[/math].
Geometricamente significa che aumentando [math]x[/math] di [math]1[/math], dobbiamo diminuire [math]y[/math] di [math]1[/math] per restare sullo stesso profitto.
4. Le rette dei vincoli
Scriviamo i vincoli in forma esplicita per trovarne la pendenza:
- Primo vincolo (Azoto): [math]x + 2y = 8 \Rightarrow y = 4 – \frac{x}{2}[/math]
Pendenza: [math]m = -\frac{1}{2}[/math] (Retta “poco inclinata”). - Secondo vincolo (Fosfato): [math]2x + y = 8 \Rightarrow y = 8 – 2x[/math]
Pendenza: [math]m = -2[/math] (Retta molto inclinata).
5. Il significato geometrico
| Retta | Pendenza |
|---|---|
| Funzione obiettivo | [math]-1[/math] |
| Primo vincolo | [math]-1/2[/math] |
| Secondo vincolo | [math]-2[/math] |
Osserviamo che [math]-2 < -1 < -1/2[/math]: la pendenza della funzione obiettivo è “compresa” tra quelle dei due vincoli.
6. Cosa succede spostando la retta di profitto?
Facendo scorrere la retta di profitto parallelamente verso l’alto, l’ultima posizione possibile prima di uscire dalla regione ammissibile è proprio il vertice di intersezione [math]D\left(\frac{8}{3}, \frac{8}{3}\right)[/math].
7. Perché non sugli assi?
- Solo prodotto A: [math]y = 0 \Rightarrow x \leq 4[/math]. Profitto: [math]Z = 40[/math].
- Solo prodotto B: [math]x = 0 \Rightarrow y \leq 4[/math]. Profitto: [math]Z = 40[/math].
- Combinazione (Punto D): [math]Z = 10\left(\frac{8}{3} + \frac{8}{3}\right) \approx 53.33[/math].
8. Intuizione economica
Ogni prodotto consuma molto di una risorsa e poco dell’altra:
- Prodotto A: poco azoto, tanto fosfato.
- Prodotto B: tanto azoto, poco fosfato.
Se produci solo A, sprechi azoto. Se produci solo B, sprechi fosfato. Mescolandoli, riesci a sfruttare completamente entrambe le risorse.
9. Regola pratica importante
- Se la retta obiettivo è parallela a un lato [math]\rightarrow[/math] infiniti ottimi.
- Se la pendenza è intermedia tra due lati [math]\rightarrow[/math] ottimo nel vertice di intersezione.
- Se è più inclinata di tutti i lati [math]\rightarrow[/math] l’ottimo tende a stare su un asse.
Immagina la retta di profitto come una squadra rigida che scorre verso nord-est. Quando urta la regione ammissibile e non può più avanzare, hai trovato il massimo. In questo problema l’urto finale avviene nel vertice interno D.
Focus: La Geometria della Precisione (Assenza di Degenerazione)
In molti problemi reali, capita che più vincoli si incrocino esattamente nello stesso punto, creando una sorta di “affollamento” nel vertice ottimo.
In termini tecnici, diremmo che il problema è degenere.
Ma non è questo il caso.
Perché questo punto è “pulito”?
Per definizione, un punto in uno spazio a due dimensioni (come il nostro piano [math]x, y[/math]) è individuato dall’intersezione di due rette. Nel nostro esercizio, nel punto ottimo [math]D(8/3, 8/3)[/math]:
- Il vincolo dell’azoto è attivo ([math]x + 2y = 8[/math]).
- Il vincolo del fosfato è attivo ([math]2x + y = 8[/math]).
- I vincoli di non-negatività ([math]x \geq 0[/math] e [math]y \geq 0[/math]) non sono attivi, perché le quantità prodotte sono strettamente positive.
Abbiamo esattamente 2 vincoli attivi per 2 variabili. Questa è la condizione tecnica di non degenerazione.
In un problema di ottimizzazione o programmazione lineare, un vincolo si dice attivo (o stringente) quando, nel punto di soluzione ottima, il valore delle variabili rende l’equazione del vincolo esattamente uguale al suo limite.
In termini più semplici: un vincolo attivo è un limite che stai toccando con mano. Non hai più “margine di manovra” su quella specifica risorsa.
L’importanza applicativa: Niente “stalli” decisionali
Perché un manager o un analista dovrebbe preoccuparsene?
- Efficienza del calcolo: Se dovessi risolvere questo problema con l’algoritmo del Simplesso, l’assenza di degenerazione garantisce che il computer non entri in un “loop” infinito (il cosiddetto cycling). Ogni passo porta a un miglioramento reale.
- Chiarezza strategica: In un vertice degenere, potresti avere una risorsa che sembra bloccarti ma che è ridondante. Qui la situazione è cristallina: se vuoi aumentare il profitto, devi allentare entrambi i vincoli. Non ci sono ambiguità su quale sia il collo di bottiglia.
In sintesi: Questo esercizio è un modello di “comportamento corretto”. La soluzione è determinata univocamente e ogni risorsa dichiarata come critica lo è effettivamente.
Approfondimento: Analisi di Sensitività
Finora abbiamo considerato un profitto unitario fisso di [math]10[/math] € per entrambi i prodotti.
Ma cosa succede se il mercato cambia?
L’analisi di sensitività ci permette di capire come varia la soluzione ottima al variare dei parametri economici.
1. Nuova funzione obiettivo
Supponiamo che il profitto di A resti fisso a [math]10[/math] €, mentre il profitto di B diventi una variabile [math]p[/math].
La funzione obiettivo diventa:
[math]Z = 10x + py[/math]
In forma esplicita, le rette di livello sono [math]y = -\frac{10}{p}x + \frac{k}{p}[/math]. La pendenza è dunque:
[math]m = -\frac{10}{p}[/math]
Punto chiave: Modificare il profitto di B significa ruotare la pendenza della funzione obiettivo.
2. Le pendenze dei vincoli
Ricordiamo le pendenze dei confini della nostra regione ammissibile:
- Vincolo 1 ([math]x + 2y = 8[/math]): [math]m = -1/2[/math]
- Vincolo 2 ([math]2x + y = 8[/math]): [math]m = -2[/math]
3. Quando l’ottimo resta nel punto interno?
L’ottimo rimane nel vertice [math]D\left(\frac{8}{3}, \frac{8}{3}\right)[/math] finché la pendenza della funzione obiettivo è compresa tra quelle dei due vincoli incidenti:
[math]-2 < -\frac{10}{p} < -\frac{1}{2}[/math]
Risolvendo le due disuguaglianze otteniamo l’intervallo di stabilità:
[math]\boxed{5 < p < 20}[/math]
4. Scenari estremi
- Se [math]p > 20[/math]: Il profitto di B è così alto che conviene produrre solo quello. L’ottimo si sposta in [math](0, 4)[/math].
- Se [math]p < 5[/math]: Il profitto di B è troppo basso. Conviene produrre solo A. L’ottimo si sposta in [math](4, 0)[/math].
5. Casi limite: Ottimi Multipli
Se [math]p = 5[/math] o [math]p = 20[/math], la retta del profitto diventa perfettamente parallela a uno dei vincoli. In questi casi, non c’è un solo punto ottimo, ma infiniti punti ottimi lungo tutto il segmento del vincolo corrispondente.
Tabella Riassuntiva
| Profitto [math]p[/math] di B | Soluzione Ottima | Strategia |
|---|---|---|
| [math]p < 5[/math] | [math](4, 0)[/math] | Solo Prodotto A |
| [math]p = 5[/math] | Linguetta di bordo | Infiniti Ottimi |
| [math]5 < p < 20[/math] | [math]D(8/3, 8/3)[/math] | Produzione Mista |
| [math]p = 20[/math] | Linguetta di bordo | Infiniti Ottimi |
| [math]p > 20[/math] | [math](0, 4)[/math] | Solo Prodotto B |
Significato Teorico: La Stabilità del Sistema
Questo esercizio introduce uno dei concetti più importanti della ricerca operativa: la stabilità della soluzione ottima.
In un mondo ideale, i prezzi e i profitti sono fissi. Nel mondo reale, i mercati oscillano continuamente. La forza della Programmazione Lineare sta nello scoprire che la soluzione ottima non cambia immediatamente al variare dei parametri.
Il Cuore dell’Analisi di Sensitività
Esiste quello che i matematici chiamano intervallo di stabilità:
[math]\boxed{5 < p < 20}[/math]
All’interno di questo range, il piano produttivo ottimo rimane identico. Anche se il profitto del fertilizzante B sale da 10€ a 15€, la scelta migliore resta produrre esattamente [math]8/3[/math] unità di A e [math]8/3[/math] unità di B.
Perché questo è fondamentale?
- Resilienza decisionale: Il manager dell’azienda sa che non deve stravolgere la produzione per ogni minima fluttuazione del prezzo di mercato.
- Margine di errore: Se le stime iniziali sul profitto erano leggermente imprecise, la decisione finale presa sulla carta rimane valida finché l’errore non porta il parametro fuori dall’intervallo di stabilità.
- Analisi “What-if”: Permette di prevedere esattamente quale debba essere il “prezzo di rottura” oltre il quale conviene cambiare radicalmente strategia (ad esempio, abbandonare la produzione di A per concentrarsi solo su B).
Commento Applicativo:
Questo caso è emblematico per tre ragioni che ogni Business Analyst o Agri-Tech Consultant dovrebbe considerare per trasformare la teoria in strategia aziendale:
1. Saturazione Perfetta 🎯
È un esempio raro in cui il punto ottimo satura al 100% tutte le risorse disponibili. Nella realtà, spesso rimangono dei residui (slack variables), ma qui la geometria ci mostra un incastro perfetto tra azoto e fosfato.
2. Effetto Sostituzione 🔄
Dimostra che il profitto non è l’unico driver. Anche se A e B valgono uguale sul mercato, la loro “impronta di risorse” è speculare. Questo esercizio insegna a guardare cosa c’è “dentro” il prodotto, non solo il prezzo di cartellino.
3. Il “Prezzo di Rottura” 💎
L’analisi di sensitività ([math]5 < p < 20[/math]) è la parte più visionaria. Ci dice che la nostra strategia è robusta. Se il prezzo del fertilizzante B fluttua in questo range, non dobbiamo cambiare una virgola della linea di produzione.



