00:00:00 Introduzione all’intervista
00:02:15 Previsioni probabilistiche e ottimizzazione della supply chain
00:04:31 Ottimizzazione stocastica e processo decisionale
00:06:45 Ingredienti per l’ottimizzazione stocastica: variabili, vincoli, funzione di perdita
00:09:00 Prospettive sulla modellazione e l’ottimizzazione
00:11:15 Vincoli e scenari peggiori nel processo di ottimizzazione
00:13:30 Incertezza, vincoli e soluzioni insoddisfacenti
00:15:45 Ottimizzazione deterministica e scenari variabili
00:18:00 Operazioni spaziali MRO e ottimizzazione dell’inventario
00:20:15 Incertezza nei tempi di consegna e parti riparabili
00:22:30 Conseguenze della mancanza di parti e limiti dell’approccio classico
00:24:45 Elementi stocastici e stocasticità basata sull’umano nella supply chain
00:27:00 Riparazione di un motore di un aeromobile e approvvigionamento di parti
00:29:15 Ottimizzazione dell’inventario e lista di materiali probabilistica
00:31:30 Politiche per l’ottimizzazione della supply chain e reattività
00:33:45 Problemi di scalabilità e funzioni convessi nella supply chain
00:36:00 Rilassamento del problema e vincoli nei problemi della supply chain
00:38:15 Strumenti di ricerca locale e soluzione fattibile nella supply chain
00:40:30 Algoritmi genetici metaeuristici e sfide di scalabilità
00:42:45 L’ottimizzazione matematica come problema di scalabilità
00:45:00 Sviluppo da parte di Lokad della tecnologia di ottimizzazione stocastica
00:47:15 Interdipendenze nella supply chain e risoluzione dei problemi con il denaro
00:49:30 Vincoli di limite di scaffale ed esempio di ottimizzazione dell’inventario di yogurt
00:51:45 Riassumendo l’ottimizzazione stocastica e l’incertezza
00:54:00 Ruolo del risolutore nell’ottimizzazione della supply chain
00:56:15 Chiarimento del termine ‘risolutore’ e calcolo della decisione finale
00:58:30 Mettere alla prova la soluzione del risolutore e possibili limitazioni
01:00:45 Punti chiave: importanza dell’ottimizzazione stocastica
01:03:00 Ignorare l’incertezza nella supply chain e vantaggi di un buon risolutore
01:05:15 Dipendenze e interdipendenze nelle supply chain non banali
01:07:30 Fine dell’intervista

Riassunto

In una discussione tra il CEO di Lokad, Joannes Vermorel, e il Responsabile della Comunicazione, Conor Doherty, viene sottolineata l’importanza dell’ottimizzazione stocastica e della previsione probabilistica nella gestione della supply chain. Vermorel spiega il concetto di stocasticità, in cui la funzione di perdita è incerta, una situazione comune negli scenari della supply chain. Egli illustra i tre ingredienti dell’ottimizzazione matematica: variabili, vincoli e funzione di perdita, e spiega che nell’ottimizzazione stocastica la funzione di perdita non è deterministica ma randomizzata. Vermorel discute anche i problemi di scalabilità delle tecniche di ottimizzazione matematica per la supply chain, che sono stati un ostacolo per quattro decenni. Conclude sottolineando che l’ottimizzazione stocastica è un aspetto cruciale spesso trascurato nei manuali di supply chain.

In una conversazione tra Conor Doherty, Responsabile della Comunicazione presso Lokad, e Joannes Vermorel, CEO e fondatore di Lokad, il duo approfondisce le complessità dell’ottimizzazione stocastica e della previsione probabilistica nella gestione della supply chain. Vermorel sottolinea l’importanza di avere un’anticipazione chiara e quantificata del futuro, che è fondamentale per ottimizzare una supply chain. Introduce il concetto di stocasticità, facendo riferimento a situazioni in cui la funzione di perdita è incerta o rumorosa, una situazione comune negli scenari della supply chain.

Vermorel spiega che la funzione di perdita è espressa attraverso i driver economici e viene ottimizzata per riflettere i dollari in gioco nel business. Sostiene che anche con una previsione probabilistica efficace, l’ottimizzazione è comunque necessaria a causa delle incertezze e delle non linearità intrinseche nella gestione della supply chain. Illustra i tre ingredienti dell’ottimizzazione matematica: variabili, vincoli e funzione di perdita, e spiega che nell’ottimizzazione stocastica la funzione di perdita non è deterministica ma randomizzata.

Vermorel approfondisce ulteriormente il concetto di vincoli nell’ottimizzazione matematica, che rappresentano un modo per esprimere soluzioni inaccettabili. Sottolinea che questi vincoli dovrebbero essere allineati alla strategia aziendale, proprio come la funzione di perdita. Sottolinea anche che i vincoli non sono matematicamente veri o falsi, semplicemente esistono. Ad esempio, una capacità massima di 100 unità non è matematicamente valida, è solo un dato di fatto. Spiega che in un mondo stocastico, i vincoli diventano più sottili dal punto di vista matematico e potrebbero non essere sempre applicati a causa della variabilità di fattori come i tempi di consegna.

Nel contesto di un’azienda di manutenzione, riparazione e revisione (MRO), Vermorel spiega che l’ottimizzazione dell’inventario è cruciale. La distinta base è probabilistica e se manca una parte, il componente non può essere riparato. Lokad utilizza previsioni probabilistiche per anticipare l’arrivo dei componenti e le parti necessarie per la riparazione. Le decisioni sull’acquisto delle parti devono tenere conto delle parti che tornano e dei potenziali tassi di scarto. L’obiettivo è risolvere i problemi legati all’acquisto delle parti.

Vermorel sottolinea la necessità di un approccio di ottimizzazione stocastica che consideri le parti non in modo isolato ma insieme. Il valore economico dell’acquisizione di determinate combinazioni di unità può essere molto diverso rispetto all’analisi delle singole parti. Conferma che la stocasticità della capacità umana di effettuare riparazioni può essere considerata in questo modello.

Vermorel discute anche i problemi di scalabilità delle tecniche di ottimizzazione matematica per la supply chain, che sono stati un ostacolo per quattro decenni. Spiega che i problemi affrontati nella supply chain non sono ben comportati e la scalabilità di queste tecniche dipende da quanto margine di manovra rimane una volta applicati tutti i vincoli. Sottolinea che i risolutori che utilizzano tecniche di eliminazione dello spazio delle soluzioni hanno prestazioni scadenti oltre un migliaio di variabili.

Vermorel spiega che Lokad ha dovuto sviluppare una nuova classe di tecnologia per l’ottimizzazione stocastica al fine di affrontare questi problemi su una scala che ha senso per la supply chain. Condivide il riassunto di Doherty secondo cui l’ottimizzazione stocastica è un modo più flessibile e reattivo per ottimizzare le decisioni rispetto all’ottimizzazione matematica tradizionale. Menziona anche la necessità di un componente software, un risolutore, per affrontare questi problemi.

Vermorel conferma che il risolutore genera le decisioni finali proposte da Lokad ai suoi clienti. Spiega che ci sono diversi modi per affrontare l’ottimizzazione, inclusi gli euristici, ma il risolutore è lo strumento che genera la soluzione data la previsione. Spiega che “ricetta numerica” si riferisce alla catena di elaborazione dalla preparazione dei dati alla generazione dei risultati, mentre “risolutore” si riferisce al calcolo della decisione finale, che prende la previsione come input.

Vermorel conclude sottolineando che l’ottimizzazione stocastica è un aspetto cruciale spesso trascurato nei manuali di supply chain. Critica i player consolidati per vendere risolutori per problemi di ottimizzazione deterministica, ignorando l’incertezza intrinseca nei problemi di supply chain. Sottolinea i vantaggi di un risolutore stocastico, che consente una visione olistica della supply chain e delle sue interdipendenze.

Trascrizione completa

Conor Doherty: L’ottimizzazione stocastica è lo strumento attraverso il quale le decisioni economicamente valide possono essere quantificate e, in definitiva, ottimizzate. Qui per discutere della sua importanza e, soprattutto, di come funziona, è il fondatore di Lokad, Joannes Vermorel. Quindi Joannes, penso che la maggior parte delle persone abbia sentito molte volte i termini ottimizzazione in contesti diversi da noi e di solito viene utilizzato nello stesso contesto della previsione probabilistica perché alla fine sono gli strumenti chiave che utilizziamo. Quindi prima di entrare in tutte le formule matematiche dell’ottimizzazione stocastica, qual è il riassunto a livello esecutivo di entrambi questi strumenti e perché sono così importanti?

Joannes Vermorel: La previsione probabilistica riguarda davvero avere un’anticipazione chiara e quantificata del futuro. Quindi, se vuoi ottimizzare la tua supply chain, devi avere informazioni sul futuro. Quindi hai bisogno di informazioni quantificate. La previsione probabilistica riguarda conoscere il futuro, ma anche conoscere ciò che non sai, quantificando l’incertezza. Questo è un aspetto che riguarda la comprensione di ciò che sta davanti a te in modo da poter prendere decisioni più informate.

La seconda parte riguarda l’ottenimento della decisione migliore. Cosa significa? Migliore secondo cosa? E qui c’è l’ottimizzazione in senso lato che significa semplicemente migliorare le cose. Ma c’è anche l’ottimizzazione in senso matematico. In senso matematico, significherebbe trovare una soluzione al tuo problema che, secondo un criterio numerico, ti dà una perdita più piccola. Per il bene di questa discussione, probabilmente ci atteniamo alla prospettiva della perdita in cui si desidera semplicemente minimizzare la perdita.

Quindi l’ottimizzazione in questo senso è un’operazione puramente matematica. Si tratta di trovare, per un dato problema, la soluzione che minimizza una funzione di perdita che ti sei dato.

Conor Doherty: Quindi, ad esempio, cercare di non perdere troppo denaro con l’esito di questa decisione.

Joannes Vermorel: Quindi, nel caso di una supply chain, la decisione di base sarebbe quante unità devo ordinare? E poi per qualsiasi quantità che scelgo, c’è un risultato con costi di gestione del magazzino, penalità per le rotture di stock. Ovviamente, ci sono anche i guadagni che realizzo vendendo prodotti con profitto che verrebbero come una sorta di perdita negativa in modo da poter minimizzare ulteriormente vendendo effettivamente i tuoi prodotti.

Conor Doherty: Ok, penso che la maggior parte delle persone capirà quando parli di vincoli. Ma dov’è la stocasticità? Voglio dire, puoi ottimizzare, ma dov’è la stocasticità in ciò che hai appena detto?

Joannes Vermorel: Quindi la stocasticità si riferisce a classi di problemi in cui abbiamo una funzione di perdita incerta, in cui la funzione di perdita è rumorosa. Quindi se andiamo a questo problema di riapprovvigionamento di inventario molto classico, scelgo la quantità che voglio riordinare oggi ma qualunque punteggio o perdita ottenga da questa decisione, lo saprò solo in seguito. E per ora, sono bloccato con l’incertezza su quale sarà la perdita finale. E quindi, quando hai una situazione in cui la tua funzione di perdita non è fondamentalmente conosciuta in modo affidabile in anticipo, ti trovi di fronte a un problema di ottimizzazione stocastica, a differenza dei classici problemi di ottimizzazione deterministica in cui tutto è perfettamente noto.

Se vogliamo fare il posizionamento dei componenti, quindi hai bisogno di adattare diversi componenti all’interno di una scatola tenendo conto di tutte le dimensioni fisiche dei vari componenti, tutto questo è completamente perfettamente noto quindi questo è un problema che non ha incertezza. Può essere molto difficile trovare la combinazione completa, ma a differenza delle situazioni di supply chain, non c’è incertezza. Le situazioni di supply chain sono, direi, situazioni ultra-dominanti stocastiche in cui c’è un po’ di incertezza.

La previsione probabilistica incorpora effettivamente questa incertezza, ma non risolve nulla. Ti dice solo che questo è il futuro e questa è l’incertezza. Non è un processo decisionale o un processo di generazione di decisioni di alcun tipo. Quella parte è l’ottimizzazione, e più specificamente, un’ottimizzazione stocastica.

Conor Doherty: E come si affina questa funzione di perdita, alla luce di tutta questa stocasticità?

Joannes Vermorel: La funzione di perdita è molto semplice. Da Lokad, esprimiamo ciò attraverso i driver economici, quindi si tratta solo di minimizzare i dollari di errore. C’è molta competenza che va nel perfezionare questa funzione di perdita per renderla davvero adeguata all’attività, in modo che rifletta davvero i dollari in gioco. Abbiamo due preoccupazioni ortogonali. Una è trovare una funzione di perdita che sia completamente fedele alla strategia aziendale. Ma questo non richiede alcuna competenza specifica di ottimizzazione numerica. Si tratta solo di avere qualcosa che rifletta la mia attività. Richiede solo operazioni aritmetiche di base. Non è qualcosa di stravagante. L’altra è tutto ciò che dobbiamo fare per l’ottimizzazione stocastica per qualsiasi funzione di perdita data.

Conor Doherty: Beh, mi viene in mente che quando si fa una previsione probabilistica molto buona o molto efficace, non si potrebbe saltare completamente la parte di ottimizzazione? Perché se si sapesse meglio cosa si stava per fare o quale sarebbe stata la domanda, perché è necessario bilanciare tutte queste altre cose? Non potresti semplicemente ordinare la quantità che hai identificato o il rendimento più probabile?

Joannes Vermorel: Se avessi una conoscenza perfetta del futuro, allora effettivamente la parte decisionale non è così complicata. Anche in questo tipo di situazioni, però, dovresti affrontare quantitativi minimi di ordine e costi di ordinazione piatti, costi di trasporto piatti. Anche se dovessi conoscere perfettamente il futuro, ti troveresti comunque di fronte a parecchie non linearità che ti impediscono di avere una soluzione immediata banale.

Ma in realtà, la situazione è molto peggiore perché hai solo una conoscenza molto imperfetta del futuro. È un’asserzione completamente irragionevole dire che otterremo mai una previsione che elimini l’incertezza. L’incertezza può essere ridotta, ma in larga misura è irriducibile. Quindi, sei bloccato con questa incertezza e non c’è una soluzione ovvia. Non c’è una soluzione evidente da ottenere.

Conor Doherty: Ok, tornando un po’ indietro alla ottimizzazione stocastica. Hai parlato degli ingredienti. Hai elencato la funzione di perdita. La funzione di perdita non può essere l’unico ingrediente che entra nell’ottimizzazione stocastica. Quindi, quali sono gli ingredienti necessari per questo?

Joannes Vermorel: Quando ci avviciniamo all’ottimizzazione matematica, ci sono tre tipi di ingredienti. Il primo sono le variabili. Le variabili sono essenzialmente ciò che puoi scegliere. Questo è ciò che definisce la tua soluzione. La tua soluzione è una combinazione specifica di variabili.

Se vuoi pensare a un problema discreto come trovare la combinazione giusta per un lucchetto, hai ad esempio quattro variabili. Ogni variabile ha 10 posizioni e ogni combinazione definisce una soluzione potenziale. Vuoi trovare l’unica soluzione che si incastra e si apre.

I primi ingredienti sono le variabili. Nella supply chain, ci riferiamo spesso a problemi discreti perché le variabili sono intere. Puoi riordinare zero unità, una unità, due unità, tre unità, ecc., ma di solito non puoi riordinare 0,5 unità. L’aspetto discreto rende le cose più difficili perché non puoi passare facilmente da una soluzione all’altra. Ci sono molti modelli non lineari che si verificano.

Ad esempio, passare da zero a una unità è molto diverso rispetto a passare solo da frazioni piccolissime. Ma puoi anche avere cose come i quantitativi minimi di ordine, dove devi saltare in avanti di 100 unità, ad esempio, per arrivare a una soluzione.

Conor Doherty: È un vincolo.

Joannes Vermorel: E questo mi porta alla seconda cosa, che sono i vincoli. Quindi, tipicamente, elenchi le variabili e elenchi i vincoli. I vincoli sono un insieme di espressioni matematiche sulle variabili che ti dicono se questa è una soluzione accettabile, una soluzione fattibile.

Quindi, ad esempio, in un caso di rifornimento, possiamo riordinare quante unità vogliamo, ma c’è una capacità finita per lo scaffale. Lo scaffale può contenere solo un certo numero di unità. Potrebbe esserci una capacità massima per il giorno per quante merci possono essere ricevute, elaborate dal negozio o ingerite dal magazzino o da qualsiasi altra posizione nella tua supply chain.

E hai tonnellate di vincoli del genere. Puoi avere un vincolo che dice che devo avere almeno questo, questo e quello per poter presentare uno scaffale bello. Questo sarebbe un vincolo di merchandising in un negozio, ecc.

Quindi abbiamo le variabili, abbiamo i vincoli e il terzo è la funzione di perdita. La funzione di perdita ti dà, per qualsiasi soluzione che soddisfa tutti i vincoli, ecco la tua perdita e vuoi solo minimizzarla. È solo una convenzione.

E questi tre elementi insieme definiscono il framework generale di ottimizzazione matematica. Il motivo per cui i matematici negli ultimi 100 anni hanno usato questo framework è che è molto generale.

E qui stiamo addirittura guardando la sfumatura della stocasticità, dove stiamo aggiungendo una sfumatura piuttosto insolita al problema, che è dire che la funzione di perdita non è deterministica. Non è una classica funzione matematica in cui si fornisce un input e si ha un output garantito. Diciamo che si fornisce un input e si ha un output casualizzato.

Conor Doherty: Solo per tornare all’idea dei vincoli, e correggimi se sbaglio, potresti suddividere quei vincoli. Quindi ad esempio, hai elencato la capacità, conosci la capacità dei tuoi scaffali, del tuo magazzino, quanto può essere elaborato in un giorno. Forse questo può essere aumentato un po’ in termini di elaborazione, ma ancora una volta, la capacità dello scaffale è finita. Questo non sta cambiando a breve. Ma le MOQ potrebbero cambiare. Voglio dire, potresti rinegoziare. Quindi c’è un po’ di fluidità qui per alcuni di questi vincoli. È questo il tipo di stocasticità di cui stai parlando e che viene considerata nelle decisioni?

Joannes Vermorel: Non proprio. I vincoli sono letteralmente solo un modo matematico per esprimere l’idea che alcune soluzioni non sono accettabili. Di nuovo, proprio come c’è una vera e propria domanda profonda, ma non è una domanda matematica, sull’adeguatezza della tua funzione di perdita rispetto alla tua strategia aziendale, lo stesso vale per i tuoi vincoli. Quindi diresti, beh, questo vincolo è davvero un vincolo? Posso effettivamente investire per superare questo vincolo o posso pensare in modo diverso al business?

Di nuovo, l’idea è che avrai davvero due prospettive diverse. Una è l’approccio di modellazione in cui dici che vuoi davvero avere variabili, funzioni di perdita, vincoli che siano fedeli rispetto al tuo business. Ed è fondamentalmente un’impresa non matematica, non algoritmica. Si tratta davvero di capire se queste cose sono vere per il business.

Ma non vere nel senso matematico. Un vincolo non è né vero né falso nel senso matematico. È semplicemente così. È letteralmente qualcosa in cui dici che la capacità massima è di 100 unità. Non c’è validità matematica in questa affermazione. Questo è solo un dato di fatto. Un matematico può dire, sì, hai scelto 100. Matematicamente parlando, non posso dirti se 100 è un buon numero. Posso solo dirti, ad esempio, che se mi dici che c’è un vincolo che dice che dovrebbe essere meno di 100 unità e poi un altro vincolo che dice che dovrebbe essere più di 100 unità strettamente, allora posso dirti che non c’è soluzione.

Le matematiche non giudicano il tipo di input che viene loro fornito. Si tratta solo di avere coerenza interna. Ma poi, la cosa interessante dell’aspetto stocastico nel mondo stocastico è che improvvisamente i vincoli diventano molto più sottili dal punto di vista matematico.

Quindi vediamo cosa significa avere un problema stocastico. Nella vecchia prospettiva di ottimizzazione non stocastica, c’era una chiara separazione tra questa soluzione funziona o non funziona, a causa dei vincoli, senza nemmeno tenere conto della perdita. Ma vediamo cosa significa in un mondo in cui la nostra funzione di perdita è stocastica. Diciamo, ad esempio, che abbiamo un magazzino e possiamo passare ordini di rifornimento e abbiamo una capacità giornaliera in entrata per il magazzino.

Quindi ogni singolo giorno abbiamo un limite su quante unità possiamo elaborare dai fornitori. E quindi quello che di solito viene fatto in questo magazzino per tenerne conto è che distribuiamo gli ordini di rifornimento, tenendo conto dei tempi di consegna dei fornitori, in modo da non avere tutti i fornitori che consegnano tutto lo stesso giorno e superano la capacità giornaliera del magazzino per ricevere le merci.

Guardandolo da una prospettiva di ottimizzazione stocastica, scelgo le mie quantità e poi ho variabilità nel tempo per le consegne. Ciò significa che se sono estremamente sfortunato, potrei finire con una decisione che va benissimo. Tutto è stato distribuito in termini di ordini di rifornimento, ma i miei ordini molto precoci sono in ritardo e poi i miei ordini successivi sono addirittura in anticipo. Per un colpo di fortuna casuale, tutto ciò finisce per collassare lo stesso giorno e poi in questo giorno sovraccarico il mio magazzino. Sono oltre la capacità nominale di ricezione.

Ci sono molte situazioni in cui non è più possibile avere una soluzione perfettamente fattibile. Ciò significa che vivrai situazioni in cui c’è una probabilità che i tuoi vincoli non saranno applicati. Questo è solo così. Questa è una dichiarazione matematica che sto facendo. A causa della natura delle funzioni di perdita e del fatto che le tue decisioni possono avere conseguenze che sono esse stesse non deterministiche, come decidere sulla quantità ma poi non avere un controllo completo sul giorno di consegna.

Anche se hai preso le decisioni migliori, c’è la possibilità di avere quantità di inventario che si scontrano. L’unico modo per essere assolutamente sicuri che non accada mai sarebbe assicurarsi che in tutta la tua pipeline di ordini in sospeso, non superi mai ciò che potresti ricevere in un determinato giorno, tenendo conto dello scenario peggiore in cui tutti i tuoi ordini in sospeso verrebbero consegnati lo stesso giorno. Questo è ovviamente estremo.

Le aziende devono affrontare questo tipo di situazione in cui sì, c’è una possibilità su 10.000 che supererò la mia capacità. Ma in realtà, l’idea di un vincolo assoluto è più simile a un’idea matematica. In pratica, se superi la tua capacità, ci sarà un costo.

Quando entriamo nella prospettiva di ottimizzazione stocastica, vediamo che fondamentalmente i vincoli diventano in larga misura parte della funzione di perdita. Altrimenti, o ci avviciniamo in un modo che dice che vado bene con un certo grado di tolleranza per accettare che i vincoli saranno violati con una bassa probabilità. Per la maggior parte delle situazioni interessanti nei problemi di ottimizzazione stocastica che affrontano la supply chain, ci sarà una piccola probabilità residua che i tuoi vincoli saranno violati.

Conor Doherty: Quando parli di quella tolleranza, stai parlando di fattibilità, giusto? E per estensione, questo viene misurato in?

Joannes Vermorel: Questo viene misurato in qualsiasi capacità tu abbia impostato per i tuoi problemi. Se dici che voglio rifornire un negozio, prendi la tua decisione in modo che si adatti alla capacità del negozio. Ma cosa succede se il negozio, per un colpo di fortuna, non vende nulla in un determinato giorno? Diciamo che stai facendo alimenti freschi, decidi oggi di rifornire il latte e prendi questa decisione senza avere le vendite del giorno. Ma assumi comunque che verranno vendute alcune unità. E se per un colpo di fortuna casuale, in questo negozio che normalmente vende l'80% del suo stock di latte fresco ogni singolo giorno, oggi non vende nulla, solo un colpo di fortuna, allora potresti finire per rifornire e superare i tuoi vincoli.

La chiave per capire è che non appena ti trovi in una situazione di incertezza, non solo la tua funzione di perdita varia, ma anche la soddisfacibilità dei vincoli varia. Per la maggior parte delle situazioni interessanti, ti troverai con vincoli che non saranno perfettamente soddisfatti. Sarebbe un errore dire che voglio solo situazioni in cui sono garantito che i miei vincoli saranno soddisfatti. Perché? Perché matematicamente otterrai soluzioni, ma saranno molto scarse. Saranno soluzioni come non ordinare nulla, non fare nulla, lasciarlo così com’è. E questo ti darà soddisfazione nel senso di nessuna violazione del vincolo, ma sicuramente non ti darà profitto.

Conor Doherty: Voglio tornare all’esempio che hai dato riguardo all’accettazione degli ordini, alla distribuzione degli ordini e al tentativo di farlo nel modo più economicamente sostenibile. Questo sarebbe, immagino, l’approccio stocastico. Come affrontavano il problema i modelli precedenti basati sull’ottimizzazione matematica, quindi privi della dimensione stocastica, che hai appena descritto?

Joannes Vermorel: Semplicemente ignoravano completamente il problema. Non esisteva nemmeno nell’ottimizzazione matematica deterministica classica. Le conseguenze variabili delle tue decisioni non vengono nemmeno prese in considerazione, semplicemente non esistono.

Ci sono modi per mitigare il caso. Un modo semplice sarebbe dire: “Beh, espando macroscopicamente la definizione del mio problema dicendo che anziché guardare a un’ottimizzazione, dico che sto ottimizzando congiuntamente, diciamo, 100 scenari distinti. E dico che la mia decisione deve essere comune per tutti i futuri possibili, e devo assicurarmi che per tutti quegli scenari variabili, tutti i miei vincoli siano ancora soddisfatti”.

Quindi come si torna a un caso deterministico? Beh, puoi semplicemente dire: “Posso copiare la mia situazione 100 volte che rappresentano 100 varianti della situazione che sarebbero a 100 traiettorie, e quindi ottimizzare il problema espanso macroscopicamente che ha 100 istanze contemporaneamente”.

E posso farlo con un risolutore classico, ma poi peggiora solo un problema che impedisce già agli attuali professionisti della supply chain di utilizzare effettivamente strumenti di ottimizzazione matematica in primo luogo. E questo problema è la scalabilità.

Conor Doherty: Ok, penso che sarebbe un buon punto per iniziare ad applicarlo a un settore specifico in modo che le persone possano iniziare a comprendere in modo tridimensionale come la teoria interagisce con la complessità reale, i vincoli reali, le variabili reali. Quindi, se prendiamo, diciamo, un’azienda MRO, di dimensioni tipiche che fornisce servizi a una flotta di dimensioni normali, diciamo 10 aerei, ognuno dei quali ha, non so, un quarto di milione di parti, come si adattano questi tre ingredienti a un’ottimizzazione stocastica per un’azienda MRO rispetto a un’ottimizzazione matematica vecchio stile che secondo te non funziona?

Joannes Vermorel: Vediamo quali problemi abbiamo per MRO. Vogliamo ottimizzare l’inventario in modo che tu possa effettuare le riparazioni. Hai un componente che arriva, è non funzionante, inizi la riparazione, scopri le parti di cui hai bisogno. Quindi hai una lista di materiali, ma la lista di materiali è probabilistica, quindi è incerta. Qui si verifica una stocasticità. Hai l’incertezza se otterrò componenti per la riparazione, che è una domanda fluttuante. Ma una volta ottenuto il componente, scoprirai effettivamente di cosa hai bisogno per riparare il componente.

Il problema è che se manca una parte, non puoi riparare il componente. Vedi, non essere in grado di avere, ad esempio, il 90% delle parti non risolve il problema. Sei bloccato. Hai bisogno di tutte le parti per le riparazioni o non sarai in grado di riparare il componente affatto.

Da anni, presso Lokad, abbiamo iniziato a fare previsioni probabilistiche per queste situazioni. La previsione probabilistica consiste nell’anticipare con le opportune probabilità l’arrivo dei componenti da riparare, prevedere le distribuzioni di probabilità delle parti di cui avrai bisogno. Quindi avremo questa lista di materiali probabilistica. E ora dobbiamo decidere cosa riordinare, quali sono le parti che vogliamo avere in magazzino e in quali quantità. E poi per quelle parti c’è anche l’incertezza dei tempi di consegna. E alcune di queste parti sono riparabili.

Per alcune di esse, c’è l’incertezza che non solo avranno il loro tempo di riparazione perché si toglie una parte dal componente, ma questa parte stessa è riparabile. Quindi puoi farla riparare e rimetterla, o molto probabilmente prenderai le parti, farai riparare questa parte, ma ne metterai un’altra nel componente perché non vuoi aspettare che la parte torni per essere riparata.

Ma questo significa che quando vuoi decidere se hai bisogno di più parti, devi tenere conto delle parti che torneranno, che sono già in processo. Quindi non sono solo le parti che hai, ma anche le parti che stanno tornando. E poi ci sono altri fattori come i tassi di scarto in cui cerchi di riparare, ma la riparazione potrebbe non funzionare. Quindi pensavi di avere, ad esempio, 10 parti che tornavano, ma ne hai solo 8 perché due sono state scartate perché la riparazione non era possibile.

Questo fa parte della previsione, tutte le incertezze. Ora, le decisioni che vuoi prendere alla fine riguardano la risoluzione dei problemi di acquisto delle parti. La domanda è: dovrei acquistare più unità di parti, tenendo conto di tutte le parti che tornano e tutto il resto?

Una parte avrà un valore economico se contribuisce a una riparazione. Ma proprio come il lucchetto che ho menzionato in precedenza, hai questo effetto di scatto in cui se hai tutte le parti, puoi riparare e tutte quelle parti hanno valore. Ma se mancano parti, tutto ciò è solo peso morto. Le parti che hai servono solo se hai la combinazione completa. Se hai la combinazione meno una, allora hai ritardi per i tuoi clienti.

In ogni caso, l’inventario serve solo se hai tutto. E se non hai tutto, la domanda sarà: “Quanto tempo ci vorrà per ottenere perché scoprirai all’ultimo minuto che manca qualcosa e quanto tempo ci vorrà perché questa cosa diventi disponibile se fai un ordine molto tardi per questo?”

Se ci troviamo nelle impostazioni semplici in cui tutti i miei SKU sono strettamente indipendenti, clienti diversi, tutto diverso, allora per ogni posizione di magazzino posso calcolare un punteggio economico e dire in base a tutte le probabilità posso calcolare i dollari attesi di ritorno avendo questa unità in magazzino.

Ma per l’MRO, non posso avere questo approccio perché ci sono dipendenze tra i numeri di parte. Se decido di acquistare un’unità, da sola potrebbe non avere alcun valore. Ma se acquisto un’altra unità, allora posso completare una riparazione e entrambe le parti hanno molto valore.

Fino a quando non hai tutte le parti di cui hai bisogno per la tua lista di materiali probabilistica, le parti che hai sono fondamentalmente inutili. Il loro valore economico è essenzialmente quando sono insieme. Separatamente, non hanno valore. Quindi, qualunque cosa tu usi per risolvere questo problema di ottimizzazione stocastica, devi essere in grado di esaminare le tue decisioni in cui non stai acquistando parti una per una o considerando parti che hai in isolamento ma insieme. Le combinazioni di determinate unità da acquisire possono avere un valore economico molto diverso rispetto a un’analisi indipendente in cui si guardano solo le parti una per una.

Conor Doherty: Cercherò di seguire questo ragionamento e abbiate pazienza con me, ma quando descrivi tutti questi elementi stocastici, stai dicendo che la parte, diciamo il tempo di riparazione per ottenere quella parte potrebbe essere un giorno, potrebbe essere mezza giornata, potrebbe essere tre giorni, potrebbe essere quattro giorni. C’è un’altra area di stocasticità che presumibilmente è anche la capacità delle persone di effettuare effettivamente la riparazione, come ad esempio quanto tempo impiega una persona una volta ricevuta la parte, che varia, per effettuare effettivamente la riparazione. Puoi tener conto di quel livello di stocasticità, come anche la stocasticità basata sull’essere umano?

Joannes Vermorel: Sì, gli esseri umani sono solo uno dei tipi di ritardi tra gli altri e possono avere abilità variabili. Ad esempio, alcuni operatori sono più talentuosi di altri e quindi potrebbero persino aver bisogno di meno parti. Qualcuno potrebbe riuscire a fare una riparazione consumando meno cose rispetto a un dipendente meno talentuoso che butta via le cose in cui non riesce a fare la riparazione.

Nell’aviazione MRO, i componenti sono altamente modulari, quindi i componenti sono composti da componenti che sono composti da componenti. Quindi c’è sempre l’opzione quando non sai come riparare e butti via l’intero sottomodulo e metti solo uno nuovo che è nuovo di zecca in termini di sostituzione, invece di identificare solo la cosa che sta fallendo e cambiarla.

Se sei molto bravo a diagnosticare ciò che deve essere cambiato, cambierai ciò che deve essere cambiato. Se sei meno bravo, potresti finire per cambiare molto di più.

Ma tornando al caso, il trucco qui è che quando definisco la soluzione, dobbiamo guardarla dal punto di vista di una politica. Quindi ciò significa che la tua soluzione non è necessariamente solo la decisione che prendi in questo momento, ma il principio generale che guida le tue decisioni. Una politica potrebbe governare quali parti hai in magazzino, ma terrai conto di come reagisci quando scopri la tua lista di materiali probabilistica.

Perché è importante? Diciamo ad esempio che vuoi riparare un motore di un aereo. Ci sono alcune parti che sono solo all’esterno del motore che saranno le prime ad essere diagnosticate. Quindi, mentre ricevi il tuo motore per fare la riparazione, scoprirai di cosa hai bisogno per l’esterno del motore proprio perché smontando il motore, quella sarà la prima parte che toccherai, perché un motore è proprio come una Matryoshka con molti strati che va al nucleo.

Se scopri una parte che si trova all’esterno del motore, è probabile che tu abbia molto tempo per reperire questa parte perché avrai prima potenzialmente molti giorni per smontare il motore fino al nucleo e quindi rimontare gradualmente dall’interno verso l’esterno il motore e avrai bisogno della parte che si adatta all’esterno del motore alla fine del processo.

Quindi questa parte, non ho nemmeno bisogno di averla in magazzino perché quando arrivo a aver bisogno delle parti, posso riordinare le parti il primo giorno e il giorno 60 quando effettivamente ho bisogno delle parti, ho le parti pronte perché il mio tempo di consegna dai fornitori è stato solo, diciamo, 20 giorni.

Quando vuoi analizzare l’ottimizzazione delle scorte per le parti, devi tenere conto della politica che è quali parti devo avere pronte e qual sarà la mia tipica reazione quando mi trovo di fronte alla scoperta di questa lista di materiali probabilistica.

Se assumo una politica diversa, ad esempio la persona che smonta l’aereo non ha alcuna informazione sulla disponibilità o indisponibilità delle parti in magazzino, allora è una storia completamente diversa perché poi smonto il motore dell’aereo, rimonto il motore dell’aereo e poi 60 giorni dopo scopro ancora che sono senza scorte per questa parte che manca.

Come puoi vedere, la politica esprimerà questo tipo di situazioni decisionali sequenziali in cui si prenderanno decisioni e come modelleranno l’esito economico finale della situazione man mano che si sviluppa.

Abbiamo due politiche qui, una è intelligente, reagisco non appena ho le informazioni, passo l’ordine di acquisto. L’altra è, aspetto fino a quando devo montare la parte e poi mi rendo conto che la parte è necessaria e poi passo l’ordine. Se ti trovi nella situazione in cui la politica è la seconda, significa che metterà molto più valore economico nel avere le parti in magazzino perché è l’unico modo per assicurarsi che non ritardiamo ulteriormente il motore dell’aereo alla fine perché manca questa parte.

Se la prima politica, quella intelligente, è in atto, significa che non c’è alcun valore economico nel avere quelle parti all’esterno del motore in magazzino. A causa della politica, non mi mancheranno perché gli ordini di acquisto verranno passati in anticipo.

Conor Doherty: Quali tipi di costi tecnologici saranno associati al tipo di reattività che stai descrivendo? Quindi, se mi faccio strada nel motore e scopro di aver bisogno di una parte, ciò riconfigura completamente la linea temporale prevista per questa riparazione.

Joannes Vermorel: È una domanda molto interessante. La scalabilità è stata una preoccupazione principale. Quando parlo di scalabilità, intendo la scalabilità delle tecniche di ottimizzazione matematica per la supply chain, che è stata un ostacolo per essenzialmente quattro decenni.

L’ottimizzazione matematica è suppostamente un campo di ricerca super consolidato e ci sono player software super consolidati che vendono ciò che è noto come solutori. I solutori sono software progettati per affrontare problemi di ottimizzazione matematica e di solito sono dotati del proprio linguaggio di programmazione. Sono tipicamente linguaggi di programmazione matematica che ti consentono di esprimere le tue variabili, le tue funzioni di perdita e i tuoi vincoli.

La cosa interessante è che, anche se questi solutori sono stati introdotti sul mercato quattro decenni fa e oggi ci sono persino solutori open source, questi solutori non si vedono da nessuna parte nella supply chain. Credo che la scalabilità sia un grosso problema.

Se scomponiamo il tipo di tecniche disponibili sul mercato, abbiamo essenzialmente le funzioni di perdita ben comportate, le funzioni convessi. Le funzioni convessi significano che le tue funzioni hanno una curva dolce e puoi, quando scegli una soluzione, scendere dolcemente verso il fondo. Devi solo seguire i gradienti e arriverai in fondo. Quindi, quelle ben comportate saranno funzioni lineari, funzioni quadratiche. Questo tipo di funzioni non ha problemi di scalabilità, possiamo avere letteralmente miliardi di variabili. Ma i problemi che affrontiamo nella supply chain non sono così ben comportati.

Poi abbiamo una seconda classe di solutori, che sono branch and bounds, branch and cuts, che assumono essenzialmente che i vincoli predominino, che ci siano pochissime soluzioni valide. Quindi, hai così tanti vincoli che puoi eliminare un intero iperpiano del tuo spazio di soluzione. Fondamentalmente, puoi dividere il tuo insieme di soluzioni a metà e dire che questa metà è da scartare perché so che queste soluzioni non soddisferanno mai i vincoli che ho. E letteralmente, puoi scartare la metà delle soluzioni e ripetere il processo di eliminazione della metà delle soluzioni un gran numero di volte. E alla fine, ti ritrovi con uno spazio molto piccolo e quindi puoi esaminare questo piccolo spazio in modo molto approfondito.

Ci sono molte tecniche, quella che viene chiamata rilassamento dei problemi, che consiste nel guardare il problema senza i vincoli, trovare le soluzioni ideali senza il vincolo e poi riapplicare il vincolo. Anche questi problemi, se non hai vincoli molto stretti, scalano molto male. Quindi, la scalabilità di queste tecniche dipende molto da quanto margine hai ancora una volta applicati tutti i vincoli. E il problema è che nella supply chain, il tipo di problemi che consideriamo, ci sono molti vincoli ma non sono molto stretti.

Pensate al lucchetto. Il lucchetto ha 10.000 combinazioni, ce n’è solo una che fa click, tutte le altre sono sbagliate. Beh, nelle supply chain ci sono dei vincoli ma quei vincoli non sono molto rigidi. Ad esempio, all’interno dei vincoli della capacità dello scaffale, hai comunque una grande quantità di soluzioni. Puoi decidere di mettere più di questi prodotti, più di questi prodotti. Se lo guardi, è un vincolo molto debole. Non è il tipo di vincoli che riducono lo spazio delle soluzioni a poche soluzioni. Hai comunque una quantità assolutamente enorme di soluzioni.

Tutti quei solutori che adottano quelle tecniche di eliminazione dello spazio delle soluzioni, branch and cuts, branch and bound, ecc., oltre 1000 variabili, di solito si comportano estremamente male. Forse, se vai fuori di testa, 10.000 variabili, ma già si sta spingendo ai limiti estremi. Stiamo parlando di macchine molto grandi con decine di gigabyte di RAM, decine di CPU e potenzialmente ore per ottenere una soluzione. Quindi, sarà molto lento e per 10.000 variabili, si potrebbe dire oh, è già molto. Non proprio, è piccolo.

Considerate che un mini market avrà 5.000 prodotti. Ma poi non sono 5.000 variabili perché la domanda è davvero se porto zero unità, una unità, due unità, tre unità. Quindi, diciamo che ti fermi a 10, 10 sarà sufficiente ma sono già a 50.000 variabili e poi la posizione e per mini market e ovviamente ci sono molti mini market. Quindi, vedete che anche un problema di alto livello come un mini market è già a 50.000 variabili e questo va oltre ciò che si può fare.

E poi abbiamo una terza classe di strumenti, che sono la ricerca locale. La ricerca locale è una classe di tecniche che dice assumiamo che tu possa trovare una soluzione fattibile. Nel caso della supply chain, è un’assunzione molto ragionevole. Quindi, trovare una soluzione che non violi alcun vincolo è tipicamente abbastanza facile. Se il tuo vincolo è che non devi superare lo scaffale, basta ordinare di meno. Non è qualcosa di difficile, basta decrementare le unità fino a soddisfare il vincolo. Se hai una quantità minima d’ordine, beh se vuoi soddisfare il vincolo basta aggiungere uno al prodotto fino ad avere la quantità.

Quindi, non è difficile trovare una soluzione che soddisfi i vincoli. Non è come un enigma crittografico in cui devi ottenere esattamente giuste decine di variabili in modo che si adattino. Nella supply chain, di solito quando dico che i problemi sono facili, significa che di solito regolando solo una variabile puoi far cliccare la soluzione. Quindi, puoi semplicemente diminuire una quantità fino a farla entrare nello scaffale, diminuire o aumentare una quantità fino a raggiungere questa quantità minima. Stessa cosa del genere. Quindi, hai modi semi-triviali per ottenere una soluzione che soddisfi i tuoi vincoli. Ma non sto dicendo nulla sulla qualità della soluzione, sto solo dicendo che troverai una soluzione.

E fondamentalmente, la ricerca locale dice semplicemente che una volta che hai una soluzione che si adatta, puoi mutare casualmente questa soluzione e se la soluzione mutata viola uno dei vincoli, te ne sbarazzi. E se soddisfa ancora il problema e hai una funzione di perdita che ti dice che questa soluzione è migliore, allora passi a questa soluzione che è migliore e continui a iterare.

Quindi, la funzione di perdita significa che hai già una soluzione che è legale in un certo senso, la modifichi casualmente e quando per caso ottieni una soluzione che secondo la tua funzione di perdita è migliore e che soddisfa i tuoi vincoli, allora passi a questa nuova soluzione e ripeti.

Ci sono varianti di questo, sono chiamate tipicamente meta-euristiche, algoritmi genetici, ricerca tabù e così via e tutto ciò si basa sul presupposto che si inizi con una soluzione e si itera semplicemente su una soluzione con mutazioni casuali che ti danno una maggiore scalabilità. Con questo tipo di tecniche, si potrebbe arrivare a forse un milione di variabili. Ma è comunque molto lento.

E da Lokad, abbiamo provato e ancora non supera il test di scalabilità per la supply chain. Quindi, è fuori dalla strada classica, è il migliore ma è ancora troppo debole per scalare ai tipi di problemi in cui abbiamo rapidamente milioni di variabili e vogliamo una convergenza rapida.

E vogliamo anche considerare l’aspetto della stocasticità del problema. Perché vedi, quando ho menzionato questo problema per questi mini market in cui avevamo 50.000 variabili, se espandiamo macro con 100 traiettorie proprio come ho descritto per tener conto dei futuri possibili, allora siamo a 5 milioni di variabili. Quindi, si gonfia rapidamente e di nuovo non è sufficiente.

Conor Doherty: Voglio aggiungere un po’ alla domanda originale. Se potessi riassumere fino a questo punto, il problema con le vecchie ottimizzazioni matematiche era che era deterministico. Le cose sono conosciute, c’è un giusto e un sbagliato, fondamentalmente puoi prendere una decisione giusta o una decisione sbagliata.

Poi ti ho chiesto della complessità di MRO, e hai dato una chiara visione di quanto fosse complesso. Quindi, quali sono gli oneri tecnologici per l’ottimizzazione stocastica di questo piccolo assaggio di complessità che hai dato? È ovviamente folle, ma quello che sto chiedendo in realtà non è qual è il modo perfetto per implementarlo, ma qual è un modo migliore per utilizzare l’ottimizzazione stocastica? Potrebbe non essere perfetto, ma qual è un modo funzionale o fattibile per implementarlo che non violi tutto ciò che hai appena detto?

Joannes Vermorel: Il problema con l’ottimizzazione matematica riguarda davvero la scalabilità. Puoi tornare a un problema deterministico riformulando un problema stocastico come uno deterministico. Ma abbiamo iniziato con tecniche di ottimizzazione matematica che già soffrivano di gravi problemi di scalabilità.

Ora stiamo per ampliare il problema per riformulare il problema stocastico come uno deterministico, il che rende il problema di scalabilità ancora peggiore. C’è un modo banale per gestire l’ottimizzazione stocastica, basta eseguire la mia funzione di perdita che varia un milione di volte e mediare il risultato. Questo funzionerebbe, tranne che il costo computazionale è semplicemente gigantesco.

Quindi, il punto che sto facendo è che questi strumenti di ottimizzazione matematica sono stati disponibili per decenni, ma non scalano e non gestiscono nemmeno la stocasticità. Anche prima di considerare la stocasticità, che deriva da previsioni probabilistiche, non erano già sufficientemente scalabili. Se si accumula la stocasticità, allora siamo fuori di ordini di grandezza. Ecco perché Lokad ha dovuto essenzialmente sviluppare una classe di tecnologia per l’ottimizzazione stocastica in modo da poter affrontare questi problemi a una scala che ha senso per la supply chain.

E se torniamo a perché lo vogliamo davvero, la risposta è che quando Lokad ha introdotto le previsioni probabilistiche nel 2012, ci siamo resi conto molto rapidamente che avevamo un grosso problema. Ottimizzare in presenza di incertezza è molto, molto difficile.

Per anni, abbiamo creato euristiche intelligenti per cercare di tamponare la situazione. Quindi, puoi cavartela con euristiche intelligenti. Euristiche significa semplicemente un modo intelligente che funzionerà in qualche modo in questo contesto molto specifico. Quindi, è una scorciatoia. Trovi una scorciatoia che funziona in una situazione ristretta. Il problema è che queste euristiche tendono ad essere fragili.

E poi, quando introduci vincoli di prodotto incrociati o vincoli di distorsione incrociati, o qualsiasi cosa in cui hai cose interdipendenti nella tua supply chain, sai, può essere qualsiasi cosa, allora queste euristiche tendono a crollare. Ecco perché hai bisogno di avere un’ottimizzazione stocastica.

Se non lo fai, beh, cosa significa per le aziende? Significa che ti affidi tipicamente a un giudizio umano molto conservativo. Funziona in qualche modo, ma il problema è che tendi a giocare in modo molto sicuro per soddisfare i tuoi vincoli. Il problema è che nella supply chain, tutti i problemi possono essere risolti semplicemente buttando più soldi sul caso.

Se torno all’esempio di MRO dell’aviazione, c’è la soluzione ovvia: diciamo che il cielo è il limite. Posso avere quante parti voglio, quindi avrò un sacco di inventario e avrò un buon livello di servizio. Se butti solo soldi sul problema, sì, risolverai in qualche modo il problema, ma questa non è una soluzione precisa, è una soluzione molto approssimativa.

Stessa cosa per il limite dello scaffale. Puoi decidere di suddividere il tuo negozio con molti vincoli molto stretti. Diciamo, questi due prodotti o tre prodotti non dovrebbero avere così tanto spazio e questo non più di tanto spazio. Questo limita il tipo di variazione della composizione interna che il tuo negozio può subire.

Se dico, tutti i tipi di yogurt combinati, non dovrebbero esserci più di 200 unità, va bene. Ma cosa succede se questo vincolo è sbagliato? Cosa succede se c’è un picco di domanda a livello locale e questo vincolo per la quantità totale di yogurt è troppo basso? Alla fine di ogni sabato ti ritrovi senza un solo yogurt nel tuo minimarket.

Quello che succede è che quando non hai un ottimizzatore stocastico, un risolutore stocastico disponibile, le aziende tendono tipicamente ad aggiungere molti vincoli per ridurre lo spazio delle soluzioni. In questo modo, le persone o potenzialmente il software che dovranno scegliere le soluzioni, prendere decisioni, operare in uno spazio delle soluzioni molto più ristretto. Questo allevia tutte quelle sorta di dipendenze tra code, preoccupazioni tra code.

Ma questo è un modo di barare nel senso che potrebbero esserci soluzioni molto migliori là fuori e tu hai appena eliminato quelle soluzioni accumulando molti vincoli falsi.

Conor Doherty: Abbiamo coperto molte cose. Quindi, per cercare di riassumere o sintetizzare molte di queste cose per renderle più comprensibili alle persone che potrebbero non avere necessariamente una formazione matematica, l’ottimizzazione stocastica è un modo molto più flessibile e reattivo per ottimizzare le decisioni rispetto all’ottimizzazione matematica tradizionale, giusto?

Joannes Vermorel: Sì, è un modo più espressivo. Qualsiasi cosa tu possa esprimere come un problema deterministico, puoi anche esprimerla come un problema stocastico. Ma in un certo senso, lo stocastico è molto più generale, perché deterministico significa solo che la tua funzione non varia affatto. Se hai una funzione che varia puoi sempre scegliere una funzione che non varia. Funzionerà comunque. Quindi il framework consiste nel definire prima quale classe di problemi puoi affrontare.

Se i tuoi problemi coinvolgono l’incertezza, hai bisogno di un’ottimizzazione stocastica. Questa è letteralmente la classe di problemi a cui appartiene la tua situazione. E ora, idealmente, vuoi un componente software per affrontare questo problema. Le previsioni probabilistiche sono gli strumenti che ti consentono di generare quelle previsioni di base per valutare l’incertezza.

Quando si tratta della stessa presa di decisione, abbiamo bisogno anche di un componente. La prospettiva tipica per l’ottimizzazione matematica è avere un risolutore, un pezzo di software generico che può prendere qualsiasi dichiarazione di problema, funzione di perdita deterministica, variabili, vincoli e darti la soluzione, la combinazione di variabili che minimizza la funzione di perdita. Puoi avere la stessa identica cosa, un risolutore, ma sarà un risolutore stocastico. E quindi ti darà come output la combinazione di variabili che stai cercando.

E perché vuoi avere un risolutore? Beh, la tua funzione di perdita che rappresenta i tuoi guadagni e le tue perdite, può cambiare. Forse vuoi riconfigurare la funzione in modo da adattare la tua visione strategica. Non vuoi reimplementare una risoluzione software completa della ricetta numerica che ti darà una soluzione.

Vuoi solo dire, ecco una nuova funzione di perdita, riapplica la risoluzione a questa funzione di perdita aggiornata. E questo è ciò che un risolutore può fare per te. È come il componente software confezionato che prenderà la definizione di una funzione di perdita, la definizione di vincoli e la definizione di variabili e ti darà la soluzione.

Conor Doherty: Quindi, lo strumento software di cui stai parlando, lo strumento software risolutore che rigenera automaticamente l’ottimizzazione o la soluzione di cui stai parlando, riduce quindi la quantità di lavoro che un tradizionale professionista della supply chain dovrebbe fare, giusto?

Joannes Vermorel: Quindi, nella pratica, questo automatizza interamente il processo decisionale? Sì, il risolutore è ciò che genera le decisioni finali proposte da Lokad ai suoi clienti. Ci sono diversi modi per affrontare l’ottimizzazione. Puoi usare euristiche, alcune delle quali sono molto buone. Funzionano bene in determinate situazioni, quindi non è necessario avere il risolutore. Puoi semplicemente avere la tua euristica che svolge il ruolo di un risolutore. Ma in definitiva, il risolutore è ciò che, dato il forecast, genera la soluzione.

Conor Doherty: Per chiarimento, quando usi ‘risolutore’, lo usi in modo intercambiabile con ‘ricetta numerica’ che genera le decisioni consigliate, ad esempio, in un rifornimento di inventario?

Joannes Vermorel: Quando uso il termine ‘ricetta numerica’, di solito mi riferisco all’intera catena di elaborazione. È più come tutto, dalla preparazione dei dati alla generazione dei risultati. Questa ricetta numerica è tipicamente decomposta in una serie di fasi: preparazione dei dati, generazione del forecast, ottimizzazione e quindi presentazione dei risultati. Oggi stiamo solo discutendo del calcolo della decisione finale, che prende il forecast come input.

Conor Doherty: Se il professionista della supply chain non è d’accordo con la decisione della supply chain generata dal risolutore, qual è la soluzione? Se tiene in considerazione milioni di variabili che operano su una scala che va oltre la capacità umana, come puoi valutare come giusto o sbagliato?

Joannes Vermorel: È molto semplice mettere alla prova un risolutore. Puoi semplicemente dire: “Ecco la mia soluzione migliore. Mettiamo alla prova questa soluzione rispetto alla funzione di perdita.” Tutto ciò che serve per dimostrare che il tuo risolutore non è buono è mostrare una soluzione migliore di quella trovata dal risolutore.

Quindi, il risolutore ti dà una combinazione e tipicamente, una volta che hai dato una soluzione, l’accesso alla funzione di perdita è lì, i vincoli sono lì. Quindi ecco la soluzione tentativa, verifichiamo prima che i vincoli siano validati, ok, verifichiamoli. E ora, applichiamo la funzione di perdita che mi dà la perdita in dollari. Ok, questa è la perdita e questa è la soluzione presentata dal risolutore.

Se regolo manualmente questa soluzione selezionando le mie variabili e ottengo qualcosa di migliore rispetto alla funzione di perdita, allora ho dimostrato che sono in grado, come essere umano, di generare una soluzione superiore al risolutore. In questo caso, il risolutore non è molto buono. Questo può succedere molto spesso.

Il problema con i risolutori pronti all’uso che troveresti sul mercato non è che non trovino soluzioni, lo fanno. Trovano solo soluzioni molto scarse. Soluzioni in cui i professionisti della supply chain regolerebbero manualmente le quantità da acquistare e che soddisferebbero comunque tutti i vincoli e secondo la funzione di perdita sarebbero migliori. Quindi, mettere alla prova un risolutore è molto più facile che mettere alla prova un modello di previsione probabilistico. Tutto quello che devi fare è mostrare una soluzione che risulta essere migliore secondo la funzione di perdita.

Se hai conoscenze speciali sul problema, puoi creare manualmente qualcosa che superi il tuo risolutore. Per la maggior parte del software, direi tutti i risolutori disponibili commercialmente nelle impostazioni della supply chain, è abbastanza semplice superarli manualmente. Non sono davvero così buoni quando si tratta di problemi stocastici. La loro scalabilità è terribile. Quindi, dovrai eseguire un risolutore per, diciamo, 30 minuti e finirla lì. Se la soluzione dopo 30 minuti è completamente sbagliata, allora non è così difficile per un essere umano fare meglio.

Conor Doherty: Cosa diresti è il punto chiave per le persone che hanno ascoltato questo?

Joannes Vermorel: Il punto chiave è che l’ottimizzazione stocastica è un aspetto molto importante che è per lo più assente nei manuali di supply chain. La maggior parte degli autori nemmeno riconosce che il problema esista in primo luogo. I grandi e consolidati attori che vendono risolutori stanno vendendo risolutori per problemi di ottimizzazione deterministica. Sono buoni risolutori, non fraintendetemi, ma non risolvono la classe di problemi che abbiamo nella supply chain a causa di questa incertezza. Semplicemente ignorano l’incertezza.

Il vantaggio di avere un tale risolutore è che ti consente di migliorare la tua supply chain in modi che considerano veramente tutte le interdipendenze esistenti. Invece di guardare le cose in modo isolato, guardano alla tua supply chain come a un sistema in cui tutto contribuisce al sistema e devi considerare quelle dipendenze.

Queste dipendenze possono assumere molte forme. Nell’aviazione, è l’elenco delle parti di cui hai bisogno per effettuare una riparazione. Nella moda, è il fatto che un negozio deve avere capi di abbigliamento di tutti i colori per essere attraente. Questo è qualcosa che non può essere espresso a livello di prodotto. In un ipermercato, devi pensare a quale sia la lista della spesa effettiva che le persone vogliono. Non vengono a comprare una sola cosa, vogliono una lista completa di cose. Forse vogliono cucinare ricette, quindi devi avere tutte le cose. Per praticamente tutte le supply chain non banali, ci sono interdipendenze ovunque e a meno che tu non abbia un risolutore stocastico o una tecnica di risoluzione stocastica, non puoi nemmeno avvicinarti al problema in modo soddisfacente.

Conor Doherty: Beh, Joannes, grazie mille per il tuo tempo. Non ho altre domande. E grazie a tutti per aver guardato. Ci vediamo la prossima volta.