Ogni giorno, chi prende decisioni in azienda affronta un braccio di ferro logorante. Da una parte la direzione preme per abbattere i costi operativi; dall’altra, i clienti pretendono spedizioni lampo e i direttori vendite esigono margini di soddisfazione irrealistici. Nella teoria economica classica si cerca l’ottimo assoluto. Nella realtà dei mercati, l’ottimo assoluto non esiste: esiste il compromesso più intelligente.
È esattamente qui che interviene il metodo del Goal Attainment.
Non si tratta di cercare una soluzione magica in cui tutti i parametri vincono, ma di calcolare matematicamente il “danno minore”.
Quanto siamo disposti a sacrificare su un obiettivo per mantenere a galla gli altri?
In questo articolo vedremo come i manager della logistica e gli analisti finanziari traducono le tensioni aziendali in sistemi di equazioni, trasformando le guerre interne sui budget in fredde decisioni basate sui dati.
Esercizio 1: Goal Attainment nella Logistica (Livello Medio)
Un’azienda di consegne deve decidere il volume ottimale di spedizioni da effettuare utilizzando due diverse modalità, bilanciando tre obiettivi contrastanti:
- Spedizione rapida: [math]x[/math]
- Spedizione standard: [math]y[/math]
1. Dati del Problema e Modello Matematico
Il problema presenta dei vincoli operativi fissi e degli obiettivi (Goal) che l’azienda vorrebbe raggiungere.
Vincoli Operativi:
I limiti fisici o logistici del sistema sono:
[math]x + y \le 30[/math]
[math]x \le 20[/math]
[math]y \le 25[/math]
[math]x, y \ge 0[/math]
Obiettivi e Goal (Target):
| Obiettivo | Direzione | Funzione [math]f(x,y)[/math] | Goal ([math]g[/math]) | Peso ([math]w[/math]) |
|---|---|---|---|---|
| Consumo carburante | Minimizzazione | [math]C = 2x + y[/math] | 20 | 0.5 |
| Tempo totale | Minimizzazione | [math]T = 0.5x + y[/math] | 5 | 1 |
| Soddisfazione | Massimizzazione | [math]S = 10x + 5y[/math] | 150 | 2 |
2. Impostazione del Metodo Goal Attainment
Nel metodo Goal Attainment, l’obiettivo principale diventa minimizzare la variabile di scostamento [math]\gamma[/math], trasformando i tre obiettivi aziendali in vincoli “rilassati” dipendenti da [math]\gamma[/math] e dal peso [math]w[/math]:
Per obiettivi di Minimizzazione:
[math]f(x,y) \le g + w\gamma[/math]
Per obiettivi di Massimizzazione:
[math]f(x,y) \ge g – w\gamma[/math]
Il sistema da risolvere per trovare il punto di equilibrio diventa quindi:
[math]\displaystyle \begin{aligned}
& \begin{cases}
2x + y \le 20 + 0.5\gamma & \text{(1. Vincolo Consumo)} \\
0.5x + y \le 5 + \gamma & \text{(2. Vincolo Tempo)} \\
10x + 5y \ge 150 – 2\gamma & \text{(3. Vincolo Soddisfazione)} \\
x + y \le 30 & \text{(Vincoli operativi)} \\
x \le 20, y \le 25, x, y \ge 0
\end{cases}
\end{aligned}[/math]
3. Risoluzione
Per trovare la minima deviazione possibile ([math]\gamma[/math]), cerchiamo il punto in cui i vincoli contrastanti si intersecano, diventando vincoli attivi (ovvero dove vale l’uguaglianza).
Passo 1: Intersezione dei vincoli di “tetto” (1 e 2)
Poniamo i due vincoli di minimizzazione (consumo e tempo) come equazioni per esprimere [math]x[/math] e [math]y[/math] in funzione di [math]\gamma[/math]:
[math]\displaystyle \begin{aligned}
& \begin{cases}
2x + y = 20 + 0.5\gamma \\
0.5x + y = 5 + \gamma
\end{cases}
\end{aligned}[/math]
Sottraendo la seconda equazione dalla prima:
[math]1.5x = 15 – 0.5\gamma \implies x = 10 – \frac{\gamma}{3}[/math]
Sostituendo il valore di [math]x[/math] appena trovato nella seconda equazione:
[math]\displaystyle \begin{aligned}
& 0.5 \left( 10 – \frac{\gamma}{3} \right) + y = 5 + \gamma \\
& 5 – \frac{\gamma}{6} + y = 5 + \gamma \implies y = \frac{7}{6}\gamma
\end{aligned}[/math]
Passo 2: Inserimento nel vincolo di “pavimento” (3)
Ora che abbiamo le coordinate del punto di intersezione in funzione di [math]\gamma[/math], le sostituiamo nel vincolo di massimizzazione (soddisfazione) per trovare il minimo valore di [math]\gamma[/math] che renda il sistema ammissibile:
[math]10x + 5y \ge 150 – 2\gamma[/math]
Sostituiamo [math]x[/math] e [math]y[/math]:
[math]\displaystyle \begin{aligned}
& 10 \left( 10 – \frac{\gamma}{3} \right) + 5 \left( \frac{7}{6}\gamma \right) \ge 150 – 2\gamma \\
& 100 – \frac{10}{3}\gamma + \frac{35}{6}\gamma \ge 150 – 2\gamma \\
& 100 + 2.5\gamma \ge 150 – 2\gamma \\
& 4.5\gamma \ge 50 \implies \gamma \ge \frac{50}{4.5} \implies \gamma \ge \frac{100}{9} \approx 11.11
\end{aligned}[/math]
Passo 3: Calcolo della Soluzione Ottima
Avendo trovato la minima deviazione necessaria ([math]\gamma^*[/math]), possiamo ricavare i valori ottimi definitivi per [math]x[/math] e [math]y[/math]:
[math]\gamma^* \approx 11.11[/math]
[math]x^* = 10 – \frac{11.11}{3} \approx 6.30[/math]
[math]y^* = \frac{7}{6}(11.11) \approx 12.96[/math]
(Nota: I valori di [math]x^*[/math] e [math]y^*[/math] rispettano ampiamente i vincoli operativi iniziali di non negatività e di capacità massima).
4. Interpretazione Geometrica e Concetti Chiave
Comprendere cosa succede sul piano cartesiano è essenziale per padroneggiare il metodo Goal Attainment.
Le Dinamiche delle Rette
Rette 1 e 2 (Consumo e Tempo): Sono vincoli di [math]\le[/math], quindi limitano l’area dall’alto, schiacciando la soluzione verso l’origine degli assi.
Retta 3 (Soddisfazione): È un vincolo di [math]\ge[/math], quindi delimita l’area dal basso, spingendo la soluzione lontano dall’origine.
Il Punto Ottimo
Il risultato (6.30, 12.96) non è un vertice del dominio operativo iniziale, ma è il punto di sella generato dal compromesso. È il luogo esatto in cui i tre vincoli (rilassati da [math]\gamma[/math]) si “scontrano” permettendo l’esistenza di un’unica soluzione comune.

Il Ruolo di [math]\gamma[/math] e dei Pesi (w)
Evoluzione dell’area: Se [math]\gamma = 0[/math] (ovvero esigiamo il rispetto totale e immediato dei goal), le rette non si intersecano in alcuna area valida; i target sono incompatibili. Aumentando [math]\gamma[/math], le rette traslano parallelamente fino a toccarsi. [math]\gamma^* \approx 11.11[/math] è il momento esatto di quel primo contatto.
Tolleranza e Pesi: Dalla formula generica [math]g + w\gamma[/math], si evince chiaramente il ruolo di [math]w[/math]. Se il peso [math]w[/math] è grande, anche un piccolo aumento di [math]\gamma[/math] allargherà enormemente il confine di quel vincolo (maggiore tolleranza).
Regola pratica: Se desideri che un determinato obiettivo sia rigido e poco incline al compromesso, devi assegnargli un peso [math]w[/math] molto basso.
Esercizio 2 (Difficile) – Portafoglio finanziario con obiettivi non lineari
Un investitore vuole allocare il proprio capitale in tre diverse attività finanziarie ([math]A_1, A_2, A_3[/math]). Le proporzioni del capitale investito in ciascuna attività sono indicate con [math]x_1, x_2, x_3[/math].
Poiché rappresentano l’intero portafoglio, deve valere la condizione: [math]x_1 + x_2 + x_3 = 1[/math], con ogni [math]x_i \ge 0[/math].
Dati delle attività:
| Attività | Rendimento atteso | Varianza | Indice di liquidità |
|---|---|---|---|
| A1 ([math]x_1[/math]) | 5% | 0.01 | 1.0 |
| A2 ([math]x_2[/math]) | 10% | 0.04 | 0.5 |
| A3 ([math]x_3[/math]) | 15% | 0.09 | 0.2 |
Le Funzioni Obiettivo
L’investitore ha tre obiettivi contrastanti:
Rendimento totale (da massimizzare):
[math]R(x) = 0.05x_1 + 0.10x_2 + 0.15x_3[/math]
Rischio / Deviazione standard (da minimizzare):
[math]\sigma(x) = \sqrt{0.01x_1^2 + 0.04x_2^2 + 0.09x_3^2}[/math]
Liquidità media ponderata (da massimizzare):
[math]L(x) = 1.0x_1 + 0.5x_2 + 0.2x_3[/math]
I Traguardi (Goal) e i Pesi
L’investitore si pone i seguenti traguardi minimi/massimi e assegna un “peso” ([math]w[/math]) che indica quanto è grave allontanarsi da quel traguardo:
- Rendimento: [math]R \ge 0.08[/math] (almeno 8%). Peso: [math]w_R = 1[/math]
- Rischio: [math]\sigma \le 0.12[/math] (massimo 12%). Peso: [math]w_\sigma = 0.5[/math]
- Liquidità: [math]L \ge 0.7[/math] (almeno 70%). Peso: [math]w_L = 2[/math]
Obiettivo dell’esercizio: Risolvere il problema utilizzando il metodo del Goal Attainment, riducendo il problema a due variabili.
Risoluzione
Fase 1: Riduzione a due variabili
Per semplificare i calcoli, eliminiamo la variabile [math]x_3[/math]. Sapendo che la somma dei pesi è 1, possiamo scrivere [math]x_3 = 1 – x_1 – x_2[/math].
Sostituiamo questa espressione nelle tre funzioni obiettivo:
Rendimento ([math]R[/math]):
[math]R = 0.05x_1 + 0.10x_2 + 0.15(1 – x_1 – x_2)[/math]
[math]R = 0.15 – 0.10x_1 – 0.05x_2[/math]
Rischio (calcoliamo la varianza [math]\sigma^2[/math] per comodità):
[math]\sigma^2 = 0.01x_1^2 + 0.04x_2^2 + 0.09(1 – x_1 – x_2)^2[/math]
Sviluppando il quadrato del trinomio e raggruppando i termini simili, otteniamo:
[math]\displaystyle \begin{aligned}
\sigma^2 = &{} 0.10x_1^2 + 0.13x_2^2 + 0.18x_1x_2 \\
&{} – 0.18x_1 – 0.18x_2 + 0.09
\end{aligned}[/math]
(Il rischio effettivo sarà la radice quadrata di questo valore).
Liquidità ([math]L[/math]):
[math]L = x_1 + 0.5x_2 + 0.2(1 – x_1 – x_2)[/math]
[math]L = 0.8x_1 + 0.3x_2 + 0.2[/math]
Fase 2: Impostazione del Goal Attainment
Il metodo del Goal Attainment introduce una variabile di “compromesso” [math]\gamma[/math] (gamma).
Se [math]\gamma = 0[/math], tutti i traguardi sono raggiunti perfettamente.
Se [math]\gamma > 0[/math], indica di quanto stiamo fallendo i nostri obiettivi (pesato per l’importanza). Il nostro scopo matematico è minimizzare [math]\gamma[/math].
Impostiamo il sistema di disequazioni includendo i traguardi, i pesi e [math]\gamma[/math]:
- Per il rendimento (da massimizzare): [math]R \ge \text{Goal} – w_R \cdot \gamma[/math]
- Per il rischio (da minimizzare): [math]\sigma \le \text{Goal} + w_\sigma \cdot \gamma[/math]
- Per la liquidità (da massimizzare): [math]L \ge \text{Goal} – w_L \cdot \gamma[/math]
Otteniamo il seguente sistema:
- Vincolo Rendimento: [math]0.15 – 0.10x_1 – 0.05x_2 \ge 0.08 – 1\gamma[/math]
- Vincolo Rischio: [math]\sigma(x_1, x_2) \le 0.12 + 0.5\gamma[/math]
- Vincolo Liquidità: [math]0.8x_1 + 0.3x_2 + 0.2 \ge 0.7 – 2\gamma[/math]
Con i vincoli standard: [math]x_1 \ge 0[/math], [math]x_2 \ge 0[/math], [math]x_1 + x_2 \le 1[/math], e [math]\gamma \ge 0[/math].
Fase 3: Analisi preliminare (Possiamo avere la botte piena e la moglie ubriaca?)
La prima cosa da fare in questi problemi è chiedersi: esiste una combinazione di portafoglio che soddisfa tutti i requisiti senza bisogno di compromessi?
Per scoprirlo, proviamo a imporre [math]\gamma = 0[/math] (ovvero, nessun compromesso).
Ponendo [math]\gamma = 0[/math], semplifichiamo i vincoli lineari (Rendimento e Liquidità):
Da (1): [math]0.10x_1 + 0.05x_2 \le 0.07[/math]
Da (3): [math]0.8x_1 + 0.3x_2 \ge 0.5[/math]
Isoliamo [math]x_2[/math] nel vincolo della liquidità (trasformandolo in equazione per testare il confine):
[math]0.3x_2 = 0.5 – 0.8x_1 \implies x_2 = \frac{5}{3} – \frac{8}{3}x_1[/math]
Proviamo a testare un punto lungo questa linea. Scegliamo un valore semplice per [math]x_1[/math], ad esempio [math]x_1 = 0.5[/math].
Se [math]x_1 = 0.5[/math]:
[math]x_2 = \frac{5}{3} – \frac{8}{3}(0.5) = \frac{5}{3} – \frac{4}{3} = \frac{1}{3} \approx 0.3333[/math]
Verifichiamo se il punto [math](0.5, 0.3333)[/math] è una soluzione ammissibile per tutti e tre i nostri traguardi originali:
1. Verifica Rendimento:
[math]\displaystyle \begin{aligned}
R &= 0.15 – 0.10(0.5) – 0.05(0.3333) \\
&= 0.15 – 0.05 – 0.01667 = 0.08333
\end{aligned}[/math]
Poiché 0.08333 [math]\ge[/math] 0.08, il traguardo del rendimento è SUPERATO.
2. Verifica Liquidità:
[math]L = 0.8(0.5) + 0.3(0.3333) + 0.2 = 0.4 + 0.1 + 0.2 = 0.7[/math]
Poiché 0.7 [math]\ge[/math] 0.7, il traguardo della liquidità è CENTRATO ESATTAMENTE.
3. Verifica Rischio:
Calcoliamo prima la varianza [math]\sigma^2[/math] inserendo i valori nella formula complessa trovata in Fase 1:
[math]\displaystyle \begin{aligned}
\sigma^2 = &{} 0.10(0.5)^2 + 0.13(0.3333)^2 \\
&{} + 0.18(0.5)(0.3333) – 0.18(0.5) \\
&{} – 0.18(0.3333) + 0.09
\end{aligned}[/math]
[math]\displaystyle \begin{aligned}
\sigma^2 & \approx 0.025 + 0.01444 + 0.03 \\
&{} \quad – 0.09 – 0.06 + 0.09 = 0.00944
\end{aligned}[/math]
Calcoliamo la deviazione standard (rischio):
[math]\sigma = \sqrt{0.00944} \approx 0.0972[/math]
Poiché 0.0972 [math]\le[/math] 0.12, il traguardo del rischio è ampiamente RISPETTATO.
Conclusione
Nonostante la natura non lineare della funzione di rischio e la presenza di obiettivi contrastanti, abbiamo dimostrato che il problema era ben posto e i traguardi fissati dall’investitore non erano utopici.
Poiché esiste almeno una composizione del portafoglio che soddisfa tutti i vincoli imposti simultaneamente, la variabile di compromesso ottimale è [math]\gamma^* = 0[/math].
La soluzione ottima del portafoglio è:
- [math]x_1[/math] (Attività 1): 0.5 (50%)
- [math]x_2[/math] (Attività 2): 0.3333 (33.33%)
- [math]x_3[/math] (Attività 3): [math]1 – 0.5 – 0.3333 = 0.1667[/math] (16.67%)
Abbiamo formalizzato il problema in termini matematici.
Ma come si traduce tutto questo in un algoritmo concreto?
👉 Scopri come implementare il Goal Attainment in Python con SciPy in questo tutorial pratico.
Commento Applicativo
Esercizio 1 (Logistica)
Perché è interessante?
Questo esercizio smonta un bias cognitivo molto comune nel management: l’idea che la soluzione migliore si trovi spingendo al massimo un singolo asset.
La particolarità matematica qui è che la soluzione ottima ([math]x = 6.30, y = 12.96[/math]) lascia un’enorme capacità inutilizzata (il totale è circa 19 spedizioni su un massimo di 30 disponibili).
Dal punto di vista applicativo, questo insegna a un Operations Manager che saturare la capacità produttiva (fare 30 spedizioni solo perché “possiamo farlo”) distruggerebbe il delicato equilibrio tra tempo, costi e soddisfazione.
Esercizio 2 (Finanza)
Perché è interessante?
La genialità di questo esercizio risiede nella Fase 3. Spesso, di fronte a funzioni obiettivo non lineari (come il rischio quadratico [math]\sigma^2[/math]), analisti inesperti si lanciano immediatamente sull’uso di complessi algoritmi di risoluzione o calcoli di matrici Hessiane.
Questo esercizio insegna la regola d’oro della Ricerca Operativa applicata: testare prima il punto di utopia. Ponendo [math]\gamma = 0[/math], abbiamo scoperto che i traguardi dell’investitore erano già compatibili tra loro senza dover scendere a compromessi.
Ci ricorda che prima di risolvere un problema complesso, bisogna sempre chiedersi se il problema esista davvero.
L’Arte del “Compromesso Intelligente”
Come abbiamo visto attraverso le lenti della logistica e della finanza, la Ricerca Operativa non serve a trovare soluzioni magiche che accontentino tutti. Serve a trasformare le guerre interne sui budget e sui KPI in discussioni razionali e basate sui dati.
Quando abbandoniamo l’illusione di poter massimizzare tutto simultaneamente, entriamo nel regno del pragmatismo matematico. Per padroneggiare questo approccio nel vostro lavoro quotidiano, ecco i sei concetti chiave del metodo Goal Attainment da tenere sempre a mente:
- Il “Compromesso Intelligente™”: È il vero cambio di paradigma manageriale. Significa smettere di cercare l’ottimo assoluto (spesso impossibile) per calcolare matematicamente la soluzione più equilibrata e sostenibile per l’azienda.
- I Vincoli: Le regole del gioco non negoziabili. Rappresentano i limiti fisici, operativi o di capitale del sistema (capacità di un magazzino, ore lavorabili, budget totale). Sono i muri portanti entro cui deve avvenire la decisione.
- Gli Obiettivi (Target): Le aspirazioni. Nel Goal Attainment, le classiche funzioni di costo o ricavo vengono trasformate in traguardi concreti verso cui tendere, accettando a priori che il mercato potrebbe impedirci di centrarli tutti.
- I Pesi ([math]w[/math]): La traduzione matematica delle priorità aziendali. Assegnare un peso basso a un obiettivo significa renderlo “rigido” e intoccabile; un peso alto indica invece una maggiore propensione al sacrificio su quel fronte.
- La Tolleranza ([math]\gamma[/math]): La vera protagonista dell’algoritmo. Questa variabile misura matematicamente di quanto stiamo fallendo i nostri traguardi utopici. L’intero scopo del sistema diventa minimizzare [math]\gamma[/math], riducendo al minimo lo scartamento dai target iniziali.
- Il Punto di Sella: Sul piano cartesiano, non cerchiamo più i vertici estremi del dominio (come accade nei modelli standard), ma andiamo a individuare il punto esatto in cui i vincoli, ammorbiditi dalla tolleranza [math]\gamma[/math], si incontrano per permettere al sistema di funzionare.
Che si tratti di spedire pacchi in tutta Europa o di allocare milioni in asset finanziari, la matematica ci insegna una lezione fondamentale: le decisioni migliori nascono quando impariamo a misurare, e quindi a governare, i nostri compromessi.
Errori tipici dei manager: Perché i dati non bastano
Anche con i modelli matematici più raffinati, il fattore umano può inquinare il processo decisionale.
Basandoci sull’analisi degli esercizi precedenti, ecco i tre errori cognitivi più comuni che portano a decisioni inefficienti:
1.Massimizzare un singolo obiettivo distrugge il sistema
È la trappola del “pensiero a silos”. Se un manager della logistica si focalizza ossessivamente solo sulla Soddisfazione del Cliente (come visto nell’Esercizio 1), tenderà a spingere al massimo le spedizioni rapide.
Tuttavia, la matematica del compromesso ci mostra che questo approccio fa esplodere i costi di carburante e i tempi di gestione, rendendo l’intera operazione insostenibile nel lungo periodo. L’obiettivo non è vincere una battaglia, ma equilibrare la guerra.
2. Confondere capacità disponibile con capacità ottimale
Nell’Esercizio 1, l’azienda aveva una capacità di 30 spedizioni, ma il punto di equilibrio ideale ne prevedeva circa 19. Molti manager soffrono della “paura del vuoto”: vedono risorse inutilizzate (mezzi fermi, budget non spesi) e forzano il sistema per saturarle.
Ma, come dimostrato, saturare la capacità spesso sposta il punto di lavoro lontano dal Punto di Sella, degradando la qualità degli altri obiettivi.
3. Saltare la verifica del punto di utopia
Questo è l’errore dell’Esercizio 2. Spesso si parte dal presupposto che gli obiettivi siano intrinsecamente conflittuali e si investono tempo e denaro in complessi algoritmi di mediazione. Un manager analitico deve sempre chiedersi: “E se potessimo avere tutto?”.
Verificare se i traguardi sono già compatibili (il caso [math]\gamma = 0[/math]) prima di negoziare sui pesi permette di risparmiare risorse critiche e di scoprire che, a volte, la soluzione perfetta è già a portata di mano.
Decisioni complesse: quando ottimizzare non basta più
Profitto, rischio, sostenibilità: non esiste una soluzione perfetta. Esistono compromessi intelligenti. Qui impari a trovarli.
- 👉Frontiera di Pareto: il punto in cui migliorare significa peggiorare altro
Il concetto chiave per capire ogni decisione multi-obiettivo.
- 👉Come trovare le soluzioni di Pareto (con esempi concreti)
Dalla teoria alle soluzioni non dominate.
- 👉Programmazione lineare multi-obiettivo: metodi e strategie reali
Goal programming, metodo STEM e risoluzione grafica.
- 👉Goal attainment: come prendere decisioni ottimali con obiettivi multipli
Una guida pratica per integrare preferenze e vincoli reali.
- 👉Profitto vs rischio vs sostenibilità: il modello in Python
Tradurre trade-off complessi in codice e decisioni operative.
- 👉Goal attainment avanzato: quando scegli tu cosa conta davvero
Applicazioni complesse e scenari decisionali reali.





