Che cos’è la Ricerca Operativa ? Come può ottimizzare qualsiasi processo ?
In che ambiti si applica ? Perché è importante per la tua attività ?
Quando sei un imprenditore ti trovi spesso a dover prendere decisioni importanti basandoti esclusivamente sulla tua esperienza e su ciò che pensi sia la cosa giusta. È un rischio? Si (e anche grosso). Come si può quindi ridurre il rischio di prendere una decisione sbagliata che arreca danno al portafoglio tuo e della tua azienda?
Con la ricerca operativa.
Si tratta di un approccio scientifico all’analisi dei problemi e al decision making. Perché? Perché usa la matematica e i calcolatori per sviluppare modelli che permettano di predire le conseguenze associate a scelte alternative e di determinare la scelta ottima. Cioè riesci a stabilire prima, in maniera scientifica, quali e quante conseguenze possono nascere per ogni decisione presa e prendere la decisione che implica la conseguenza minore e il vantaggio migliore (riducendo il rischio).
La sua rilevanza negli ultimi decenni è un crescendo soprattutto per i contesti estremamente dinamici e complessi. I problemi affrontati (come il caso studio che rederemo tra poco della fabbrica di veicoli pesanti), sono tipicamente quelli in cui bisogna prendere delle decisioni sull’uso di risorse limitate (vincoli) cercando di massimizzare il massimo risultato ragionevole ottenibile dall’uso delle risorse stesse.
In quali ambiti si applica la ricerca operativa e a quali risultati porta ?
Gli ambiti di applicazione sono vasti, ecco un elenco per darti un’idea:
Aerospace, Biology, Energy, Economics and Finance, Environment, Government, Healthcare, Information systems, Logistics, Marketing, Manufacturing / Production systems, Military, Security, Services and society, Transportation, Telecommunication.
I risultati della sua applicazione sono fenomenali. Nella seguente tabella ti riporto alcuni esempi di problemi di ottimizzazione sorti in vari ambiti applicativi e risolti con successo. Questi esempi sono presi dalla lista dei lavori finalisti del premio Franz Edelman che la comunità internazionale assegna annualmente alle applicazioni di Ricerca Operativa di maggiore rilevanza.
Chi risparmia, chi ottimizza e raddoppia la produzione, chi massimizza i profitti, insomma la ricerca operativa è una competenza non trascurabile per chi vuole fare impresa sul serio.
Solo negli USA, la ricerca operativa, impiega circa 50 mila persone che lavorano in aziende come American Airlines, Merrill Lynch, Citicorp, AT&T, General Motors e American Express.
Le capacità del ricercatore operativo prevedono solide basi di matematica (analisi matematica, geometria e algebra lineare, probabilità e statistica), di conoscenza di modelli di algoritmi base, di saper usare software specifici e doti di leadership nel convincere persone.
Lo schema per affrontare i problemi di ottimizzazione
Nella vita quotidiana, senza rendercene conto, affrontiamo problemi di ottimizzazione: per esempio determinare il miglior percorso per andare al lavoro, fare la spesa minimizzando il tempo impiegato e non superando il budget a disposizione, ecc…
Se per problemi quotidiani non è necessario ricorrere alla RO (meno male!), questi strumenti quantitativi messi a disposizione dalla matematica non possono essere ignorati nel risolvere problemi più complessi e di più vasto impatto. Per esempio in ambito industriale si ricorre alla RO quando si deve pianificare la produzione, in ambito dei trasporti quando si deve determinare il percorso di un autobus in modo da massimizzare la qualità del servizio o il numero di passeggeri serviti, ecc, ecc.
Prima di passare al caso studio, vi dico che personalmente quando devo affrontare un problema decisionale, adotto uno schema decomposto nelle seguenti fasi:
La prima fase, ossia l’individuazione del problema, prevede un intervista approfondita per poter capire se si tratta veramente di un problema decisionale. Bisogna stare molto attenti a distinguere quello che racconta a parole il committente, perché c’è molto rumore di fondo che non bisogna scambiare per informazione. Ad esempio: la descrizione del problema potrebbe essere non chiara perché l’imprenditore non ha capito il suo problema oppure, si può scoprire che quello di cui parla il committente non è veramente un problema decisionale.
Quali sono gli elementi che non possono variare (e quindi attorno a cui non verte nessuna decisione) e quelli che invece possono variare ?
Saper individuare con precisione tutti i vincoli che regolano il problema e definire quale obbiettivo perseguire (massimizzare i profitti, ridurre i costi, ottimizzare i percorsi, ecc) è cruciale per la costruzione di un modello matematico che sia il più fedele possibile alla realtà. Bisogna anche stabilire con quale criterio di preferenza, rispetto alle diverse alternative, si scelgono alcune soluzioni rispetto ad altre.
La raccolta dati è delicata, perché in alcuni casi non è possibile avere dati certi in quanto certi fenomeni non sono noti e ci si deve accontentare di serie storiche o di previsioni. Altre volte i dati sono noti, ma non possono essere divulgati perché sono coperti dal segreto industriale per prevenire attacchi dalla concorrenza. Allora in questo caso si costruiscono dei generatori casuali di dati per poter comporre dei casi (istanze) del problema verosimili. Inoltre, bisogna interrogarsi sulla qualità dei dati acquisiti poiché potrebbero alterare o invalidare il modello matematico.
La seconda fase, quella che riguarda la costruzione del modello matematico, rappresenta la fase più delicata di astrazione e schematizzazione del problema. Di solito scompongo il problema in “sottoproblemi”, in modo tale che possano essere risolti matematicamente utilizzando gli strumenti algoritmici più opportuni. La complessità del modello dipenderà dalla complessità del problema, e potrebbe passare abbastanza tempo prima di trovare una modellizzazione che generi una soluzione ottimale.
Costruire un “Minimum Mathematical Models”. Perché?
Riprendendo, dal mondo delle Start up, il concetto di Minimum Viable Product”, possiamo, per analogia, ipotizzare di costruire un modello matematico minimo. Esso ha il vantaggio di testare le nostre ipotesi, di non intervenire sul sistema e permette di effettuare, anche in parallelo, l’analisi di più scenari. Infatti, vagliando le caratteristiche del modello matematico – quelle sufficienti affinché si possa ricevere un feedback praticabile – evitiamo di lavorare su modelli matematici errati. Un dettaglio che fa risparmiare tempo, costi e rischi di implementazione o di pervenire a soluzioni non soddisfacenti. Infatti, se già nei primi tentativi di costruzione del modello matematico ci accorgiamo che siamo lontani dalla soluzione del problema reale, possiamo tornare indietro e rimodellare matematicamente il nostro problema. Tutto a costo zero (se non il tempo intellettuale investito).
La terza fase, consiste nella scelta di una procedura di risoluzione del modello matematico , il cosiddetto algoritmo. Ossia una procedura computazionale ben definita che trasforma dati di ingresso in un insieme di dati in uscita, al fine di risolvere il problema.
Mettiamoci in testa che non sempre è possibile risolvere all’ottimo un problema decisionale, e più delle volte ci si deve accontentare di un algoritmo euristico, ossia di un algoritmo che non garantisce di trovare la migliore soluzione al problema ma una “buona” soluzione comunque ammissibile.
Ci sono poi anche altri algoritmi che garantiscono soluzioni ammissibili con valori prossimi a quello ottimo ma solo entro un certo range: tali algoritmi sono detti approssimati.
E poiché le istanze del problema possono avere dimensioni tali per cui eseguire l’algoritmo di soluzione manualmente è impossibile, allora si implementerà l’algoritmo in un opportuno linguaggio di programmazione creando il codice di calcolo che consente la risoluzione del problema mediante computer. Si possono usare software per manipolare matrici, visualizzare funzioni e dati, implementare algoritmi e pervenire ad una soluzione.
Le seguenti fasi appena elencate non sono necessariamente in sequenza. Anzi, molto spesso, prima di implementare il modello matematico sul problema, si realizzano una serie di esperimenti matematici che ci danno un feedback prezioso. Feedback che può essere incoerente rispetto alla realtà, rilevando quindi una non perfetta corrispondenza del modello matematico al problema reale o magari il compimento di errori nella fasi successive (p.e., un errore di implementazione del software o una errata raccolta dati).
Alla fine tutta la modellizzazione consiste in questi 3 passaggi:
Come descrivere la realtà con la ricerca operativa ?
La matematica applicata si avvale di una serie di template e metodi che permettono di descrivere la realtà con un sufficiente dettaglio matematico:
Esempio di applicazione della RO nell’industria manifatturiera
La RO può essere applicata su più livelli, sia in ambito industriale che di servizi.
A livello strategico:
A livello tattico:
A livello operativo:
Esempio di applicazione della RO nei Trasporti
Livello Strategico:
Livello Tattico:
Livello Operativo:
Esempio di allocazione ottima delle risorse per la produzione di 2 veicoli pesanti
Una fabbrica deve produrre due tipi di camion.
Obiettivo:
deve massimizzare il profitto derivante dalla produzione dei due modelli;
Vincoli del problema:
Variabili decisionali:
Dati tecnologici e finanziari:
A scanso di equivoci, i dati citati, come le ore uomo o i prezzi di vendita, sono inventati e sono solo a scopo di esempio per spiegare il processo per ottenere una soluzione ottimale.
Come applichiamo qui la formula matematica?
Quali sono le variabili decisionali ? Sono le quantità che devo produrre dei due veicoli, Camion Toro e Camion Orso. Queste quantità li definiamo rispettivamente come
Qt e Qo ∈ ℛ (campo numeri reali)
che saranno vendute e sono variabili decisionali continue.
La funzione obbiettivo dell’azienda è il profitto della produzione, cioè
20 Qt + 30 Qo
Ora facciamo il passaggio successivo. Come rappresentiamo i vincoli del problema ?Abbiamo detto che non possiamo vendere più di 60 Camion Toro al giorno e matematicamente si traduce come
Qt ≤ 60
e non più di 50 Camion Orso al giorno e matematicamente si traduce in
Qo ≤ 50
e la produzione non deve richiedere più di 120 ore di lavoro umano, sapendo che per produrre un camion Toro ci vogliono 1 ora di lavoro uomo e per un camion Orso 2 ore di lavoro uomo.Segue che
Qt + 2 Qo ≤ 120
e le quantità prodotte Qt e Qo sono sempre non negative, e quindi
Qt ≥ 0Qo ≥ 0
Riassumendo la formulazione matematica verrebbe una cosa del genere:
Da notare come stia parlando solo di formulazione matematica. Per la soluzione procediamo con un grafico che rende più semplice la comprensione.
Sull’asse della ascisse ci stanno le quantità Qt di camion toro. Sull’asse delle ordinate le quantità Qo di camion orso. Nell’asse orizzontale, esattamente nel punto 60, è tracciata la retta che rappresenta il vincolo di camion Toro vendibili in un giorno; invece, sull’asse verticale, in corrispondenza del numero 50 viene rappresentata tramite una retta il vincolo di camion Orso vendibili in un giorno;
Adesso individuiamo la retta Qt + 2 Qo ≤ 120 che rappresenta il vincolo delle ore lavoro uomo. Come si traccia ? Se assegniamo a Qo = 0, la disequazione diventa
Qt ≤ 120 e se, viceversa, assegniamo a Qt=0 la disequazione diventa Qo= 60. Basta unire i due punti con una linea per disegnare il vincolo del lavoro, che nel nostro caso coincide con la retta gialla tratteggiata.
L’area colorata celeste rappresenta tutte le soluzioni ammissibili al nostro problema. Ma il nostro obbiettivo non è trovare una soluzione qualunque, ma la soluzione migliore, cioè max 20 Qt + 30 Qo (ovvero il profitto della produzione).
Come si traccia la retta che rappresenta il profitto della produzione ?
Sapendo che la nostra funzione obbiettivo è 20Qt + 30Qo possiamo far traslare la retta finché non si raggiunge il punto oltre al quale non possiamo andare e che rappresenta il max risultato ottenibile, ovvero la soluzione migliore. Infatti se poniamo
20Qt + 30 Qo = K
e stabiliamo che k sia un profitto pari a 1200 otterremo
20Qt + 30 Qo = 1200
e se poniamo, come abbiamo fatto in precedenza, che la variabile Qo è uguale a 0, allora Qt diventerà pari a 60, e viceversa, se poniamo Qt=0 allora Qo diventerà pari a 40 (come riportato nel grafico sottostante attraverso la retta tratteggiata rossa)
Ora dobbiamo esser bravi a traslare la retta rossa tratteggiata fino al punto nero, punto in cui c’è la soluzione ottimale del nostro problema. Che in questo caso coincide con
Qt =60 e Qo= 30
valori di produzione che generano il profitto ottimale pari a 2100€.
Cosa ci interessa di questo ragionamento ?
Ecco un esempio di come lavoro con la ricerca operativa per i miei clienti e non sempre tutto è cosi semplice perché si può incappare in diverse difficoltà:
Se sei un imprenditore e devi prendere decisioni importanti, c’è solo una soluzione che ti porta a risparmiare, ottimizzare la produzione e massimizzare i profitti: La ricerca operativa.
Se sei interessato a saperne di più o se vuoi risolvere qualche problema spinoso in azienda, scrivimi un email con la descrizione della tua frustrazione. Verrai contattato dal mio staff per un eventuale call di approfondimento (ovviamente senza impegno).