Di recente abbiamo parlato di estensione di Excel con Python. Ecco una registrazione del webinar che affronta l’argomento con una dimostrazione dal vivo e alcuni esempi.
Ho sottolineato che se si ha dimestichezza con Excel e si ottengono buoni risultati nella pianificazione, si dovrebbe passare a Python solo per le giuste ragioni. E ho suggerito che un’ottima ragione è quella di fare cose che non sono pratiche in Excel.
Alcuni esempi che ho fornito sono stati: ottimizzazione per la pianificazione della produzione, previsioni e analisi e simulazione dell’inventario.
Prepareremo altri contenuti su come svolgere alcune di queste attività in Excel e Python. E vorrei ricevere feedback sulle aree che più vi interessano. Potete inviarcelo tramite un sondaggio rapido qui.
In questo articolo, vorrei fornire alcune informazioni di base sulla simulazione dell’inventario: cosa significa, perché vale la pena provarla e i diversi livelli di sofisticazione, a partire dal più semplice. Condividerò inoltre ulteriori riflessioni sugli altri aspetti, come la pianificazione della produzione con ottimizzazione e le previsioni, in articoli successivi.
Non ci saranno dettagli su download, codice o implementazione. Prima di iniziare a costruire la simulazione, vale la pena prendersi del tempo per riflettere sul processo. Il fattore di successo più importante in qualsiasi tipo di sviluppo di sistemi è avere un quadro chiaro di ciò che si desidera ottenere, fino al dettaglio di funzioni e caratteristiche. È anche fondamentale definire i concetti e la scienza che verranno applicati. La simulazione è un modello del mondo reale e, come tutti i modelli, non rappresenterà tutto. Non è possibile. Suggerirò alcune funzionalità fondamentali che potrebbero rappresentare un buon punto di partenza. Spero di guidarvi attraverso il processo di pensiero e di darvi un’idea chiara di come dovrebbe essere una simulazione di base e di come potrebbe evolversi.
Consiglio di sviluppare questo tipo di progetto in più fasi. Iniziare con qualcosa di semplice, farlo funzionare e poi aggiornarlo da lì. È più importante pensare a ciò che eliminiamo piuttosto che a ciò che inseriamo. Le funzionalità omesse da un modello base forniscono un lungo elenco di possibili miglioramenti per la versione successiva. Rifletterò su queste scelte e darò suggerimenti su cosa sia prioritario.
Definiremo i livelli di sofisticazione, iniziando dal Livello 0: il semplice esempio che ho usato nel webinar. Partendo da lì, arriveremo a una specifica chiara per il Livello 1. Svilupperò e implementerò il Livello 1 in un webinar e in un articolo che pubblicherò a breve: i tempi esatti dipenderanno dai risultati del sondaggio. Questo argomento potrebbe facilmente raggiungere il Livello 8 o superiore, ma dedicheremo la maggior parte del tempo a riflettere sul Livello 1 e su cosa potrebbe accadere nel Livello 2. In questo modo, spero di svilupparlo gradualmente e di coinvolgervi durante l’elaborazione.
Simulazione di inventario: cos’è? Perché usarla?
La simulazione dell’inventario è un modo per modellare i sistemi di inventario al fine di determinare le migliori politiche di rifornimento. Un sistema, in questo caso, è un insieme di processi. In questo contesto, il sistema di inventario non è un software. È l’insieme di elementi che interagiscono per ottenere l’inventario dove serve. L’inventario include qualsiasi articolo tenuto in magazzino e utilizzato per soddisfare la domanda dei clienti. Potrebbe trattarsi di prodotti finiti, componenti prodotti o parti acquistate.
La maggior parte della pianificazione delle scorte è deterministica, ovvero si utilizza un numero per la domanda e un lead time fisso per la fornitura. Può variare da articolo a articolo, ma per ogni articolo la domanda è espressa da un singolo numero che rappresenta la quantità richiesta in un dato periodo. Il lead time è un singolo numero che definisce la differenza prevista tra la data dell’ordine e la data di scadenza.
Ma la vita non è così. Se domanda e offerta fossero prevedibili, avremmo bisogno di scorte molto inferiori (forse prossime allo zero) e la pianificazione non sarebbe il problema complesso che è. Ciononostante, non è possibile effettuare un ordine in base a una distribuzione di probabilità. Il fornitore non sarà in grado di rispondere a una probabilità del 50% di aver bisogno di qualcosa. Prendiamo decisioni in modo deterministico, ma pianifichiamo con incertezza.

La simulazione è utile perché, invece di analizzare un singolo scenario, è possibile studiare i risultati di, diciamo, 1000 scenari. Ogni scenario varia in base alla probabilità che si verifichi quell’evento. Ad esempio, se prevediamo che la domanda in una determinata settimana sia pari a 10, la probabilità che sia esattamente 10 potrebbe essere solo del 50%. Il numero effettivo potrebbe essere 11, 15 o 0. Tutto ciò che sappiamo è che sarà un numero positivo e che alcuni numeri sono più probabili di altri. Quindi abbiamo una distribuzione di probabilità.
Se riesci a generare 1000 scenari che corrispondono a questa distribuzione e poi a implementare un certo insieme di politiche, puoi calcolare la probabilità di una rottura di stock con quella politica. Puoi calcolare l’intervallo di livelli di inventario che avresti. Abbiamo un input probabilistico e, su molti campioni, possiamo ottenere un output probabilistico. Ma il meccanismo per ogni scenario è deterministico e funziona in un modo che possiamo riconoscere e comprendere. Hai la possibilità di analizzare un esercizio finanziario non una, ma mille volte, con ciascuna variabile con un livello di incertezza corrispondente alla situazione. Quindi puoi farlo più e più volte, provando soluzioni diverse e vedendo quale funziona meglio.
In questo modo, possiamo essere più scientifici. Ma in un modo che tenga la matematica sotto controllo. Ci saranno statistiche di mezzo, ma non abbiamo bisogno di una laurea specialistica in materia per capirla. Cominciamo con qualcosa di familiare.
Simulazione Monte Carlo
Il metodo più noto per la simulazione degli inventari è il metodo Monte Carlo. Il nome suggerisce la casualità che utilizza per comprendere meglio l’incertezza.
Immagina di essere al tavolo della roulette del casinò. Puoi vedere 36 numeri sulla ruota, più uno zero. Se scommetti su un singolo numero, sai di avere una probabilità di vincita di 1/37. Supponendo che tu ti fidi del casinò e che gestisca una ruota reale con la stessa probabilità di uscire su ogni numero, allora vale la pena puntare. Se ottieni un buon ritorno sulla scommessa (più di 37:1), allora vale la pena farlo. Potresti scommettere al tasso di rendimento del banco (36:1, peggio) per divertimento, ma lo fai sapendo che il banco ha un vantaggio e di quanto.

Ora, immagina che la ruota sia storta. La probabilità che la pallina si fermi sul numero “1” è molto diversa dalla probabilità che si fermi sul numero “2”. Alcuni numeri potrebbero uscire il 50% delle volte, altri lo 0,1%. Tutte le probabilità si basano su probabilità nascoste. Saresti più nervoso nel piazzare qualsiasi scommessa, vero?
La maggior parte delle persone osserva la ruota il più a lungo possibile prima di piazzare qualsiasi scommessa. Se potessi ottenere i dati di 1000 giri della roulette, saresti molto più sicuro.
Questa situazione è un po’ come la pianificazione dell’inventario, ma invece dei numeri sulla roulette, abbiamo articoli in magazzino. E molti più di 36 articoli. Scegli di investire il capitale circolante limitato della tua azienda su alcuni articoli. Puoi scommettere su molti articoli, ma non puoi distribuirli troppo. Se quell’inventario si muove rapidamente al servizio del cliente, allora paga bene. Ben fatto, hai fatto una buona scommessa. Se si muove lentamente, allora non è così buono, soprattutto se hai avuto una carenza altrove. Se l’inventario finisce per essere cancellato, allora è una scommessa disastrosa. Ogni giorno, il pianificatore fa scommesse. Non vorresti sapere quali sono le probabilità di carenza ed eccesso?
La simulazione dell’inventario è come fare 1000 giri di ruota. Ma senza rischiare denaro.
Ottimizzazione dell’inventario
Vorrei soffermarmi un attimo a collegare la simulazione dell’inventario con l’ottimizzazione. In questa serie di articoli, voglio riprendere il termine “ottimizzazione dell’inventario”. Se fate una ricerca o consultate i libri di testo, l’ottimizzazione dell’inventario di solito comporta analisi di magazzino, tecniche di rifornimento e calcoli delle scorte di sicurezza. Utilizzate l’analisi ABC XYZ per segmentare i vostri componenti e poi usatela per determinare quali articoli meritano la maggiore attenzione. Questo approccio può essere utile per iniziare, ma presenta alcuni difetti importanti e presupposti errati, che affronteremo di seguito.
Tralasciando questi difetti, la verità è che non apporta alcuna vera ottimizzazione. Aiuta i professionisti della supply chain ad allocare le risorse agli articoli che ne hanno più bisogno. Tuttavia, la politica di inventario è definita con stime approssimative e regole empiriche. La politica è definita articolo per articolo, ma manca di una visione olistica di quale sia il miglior insieme di politiche per tutti gli articoli. Questo potrebbe portare a una politica sufficientemente valida e che rappresenta il modo in cui viene pianificata la maggior parte dell’inventario, ma è esagerato definirla ottimizzazione.
Nel campo della Ricerca Operativa e di altre discipline scientifiche, l’Ottimizzazione si riferisce a un processo matematico in cui si trova in modo definitivo la soluzione migliore. Oppure non si riesce a trovarla perché i vincoli non lo consentono. Ad esempio, l’amministratore delegato dell’azienda potrebbe dire: “Voglio che tu trovi la politica migliore che ci garantisca un livello di servizio > 99% con meno di 60 giorni di inventario”. Questo potrebbe essere possibile o meno, anche con le migliori politiche immaginabili. Il livello di servizio desiderato, combinato con l’incertezza della domanda e dell’offerta, determinerà un livello minimo di inventario, nel migliore dei mondi. L’ottimizzazione ti dirà se l’obiettivo è realizzabile e, in tal caso, quale sarà tale politica. Potrebbe dirti qual è il massimo che puoi ottenere se l’obiettivo dichiarato non è realizzabile.
La maggior parte delle applicazioni dell’ottimizzazione sono deterministiche. Un problema semplice con un numero limitato di variabili può essere complesso. Ad esempio, uno dei campi di applicazione dell’ottimizzazione è la schedulazione della produzione. Per n processi che devono essere schedulate in produzione, ci sono n! possibili schedulazione. 5 processi corrispondono a 5! = 1*2*3*4*5 = 120 sequenze diverse. 10 processi corrispondono a 3.628.800 possibili sequenze. 60 processi hanno più sequenze possibili di quanti atomi ci siano nell’universo conosciuto (8,3 x 10^81)! Quindi, anche con calcoli deterministici – in questo esempio, supponendo che tutti i processi vengano completati nel loro tempo standard senza variazioni – è un problema difficile da risolvere.
L’applicazione dell’ottimizzazione in condizioni di incertezza è l’ottimizzazione stocastica. Stocastica significa operare in condizioni di casualità e incertezza. E per realizzare l’ottimizzazione stocastica è praticamente necessario ricorrere alla simulazione.
Quindi, con la simulazione dell’inventario possiamo iniziare dall’esempio più semplice e arrivare fino a tecniche davvero all’avanguardia per ottimizzare l’inventario rispetto agli obiettivi finanziari e operativi. Iniziamo dal Livello 0 con una simulazione molto semplice. Questo articolo parlerà del passaggio ai Livelli 2-3. Arrivati al Livello 8, raggiungeremo l’Ottimizzazione Stocastica all’avanguardia. Ma impareremo alcune tecniche dalla scienza dell’ottimizzazione lungo il percorso, anche al Livello 3.
Simulazione dell’inventario solo in Excel
Ho fatto queste simulazioni in Excel e possono essere molto utili. Si può prendere un sistema di pianificazione completo e abbinarlo a qualcosa che generi transazioni simulate, quindi eseguirlo come se “oggi” fosse il 1° gennaio 2024, quindi aumentare il giorno di 1 e ripetere l’operazione 365 volte per simulare l’anno.
Naturalmente, anche con il Metodo Excel Veloce, uno strumento di pianificazione dell’inventario potrebbe richiedere da pochi secondi (dati di piccole dimensioni) a uno o due minuti (migliaia di SKU). Quindi, anche ripetendolo a intervalli settimanali, potrebbe richiedere un’ora. E questo è solo uno scenario. Quindi non è pratico per il metodo Monte Carlo. (A questo punto, so che qualcuno cercherà di smentirmi!)
Simulazione dell’inventario in Python
In Python, è possibile velocizzare l’esecuzione in pochi secondi. Quindi, può avere senso ripetere un anno di domanda 1000 volte. E poi ripetere tutto per 100 diverse combinazioni di policy per scegliere la migliore.
Inoltre, possiamo iniziare in modo semplice e sviluppare gradualmente, senza dover sviluppare sistemi complessi. La modellazione della supply chain può essere sviluppata e testata in ogni fase.

Nel webinar, ho mostrato come realizzare una semplice simulazione di inventario Monte Carlo, utilizzando Python in Excel (il prodotto Microsoft 365). L’ho fatto senza scrivere codice. Ho richiesto un po’ di copia e incolla da un Large Language Model (LLM) di intelligenza artificiale generativa. Ma siamo riusciti a ottenere il risultato iniziale (tutt’altro che perfetto, ma funzionante) nell’arco di 10 minuti.
Vorrei discutere di come potremmo ampliare questo aspetto per portarlo al livello successivo.
Livello 0 – Simulazione Monte Carlo semplice
Ecco le caratteristiche di questo semplice modello:
- Un singolo SKU (Stock Keeping Unit, un articolo di inventario in una posizione).
- Domanda giornaliera che varia con una distribuzione normale (parametri per definire la media e una deviazione standard).
- Scorte disponibili che si esauriscono in base alla domanda giornaliera.
- Le scorte disponibili vengono rifornite tramite un semplice punto di riordino e una quantità d’ordine fissa.
- Il rifornimento avviene in base alle scorte disponibili.
- Anche i tempi di consegna sono variabili. Utilizziamo una distribuzione gamma (parametri per definire media e forma – ne parleremo più avanti).
- Gli ordini di fornitura possono essere in sospeso solo uno alla volta. Questo li limita agli articoli con tempi di consegna brevi.
Dopo aver illustrato i parametri del modello e le relative limitazioni, spero che possiate già vedere dove può essere migliorato e reso più realistico. Immagino che qualsiasi professionista della supply chain vorrebbe vedere più realismo e sofisticatezza per renderlo utile. Quindi, aspettatevi una dimostrazione live low-code di 10 minuti!
Livello 1 – Simulazione Monte Carlo di base
Analizziamo nel dettaglio ciascuna delle modifiche che potresti voler apportare e poi possiamo stabilire le priorità da includere nel livello successivo.
Un singolo articolo SKU
Questa è solitamente la prima lacuna che si nota. Non possiamo gestire i nostri elementi uno alla volta, ce ne sono troppi. Una volta che il modello funziona per un elemento, potremmo facilmente eseguire un programma per ciclare su tutti gli elementi. Questa è una modifica semplice, dal punto di vista della programmazione. Tuttavia, suggerisco che la simulazione di base si concentri prima sulla gestione di un singolo elemento. Il motivo è che dobbiamo gestire più parametri in modo da poter definire esattamente come i diversi elementi differiscono nel modello. Non ha senso eseguire la stessa simulazione con più elementi se questi elementi non differiscono in un modo significativo. Suggerirò ciò che conta di più e questi nuovi parametri verranno definiti di seguito.
Domanda giornaliera che varia con una distribuzione normale

Questa ipotesi deve essere corretta. Poche catene di approvvigionamento hanno una domanda distribuita normalmente. Ma aspetta! Le formule per le scorte di sicurezza non presuppongono forse la normalità, utilizzando una deviazione standard per la variabilità della domanda? Sì, e questo è uno dei motivi per cui potrebbero non funzionare nella pratica. Nella maggior parte dei casi, la domanda non è distribuita normalmente.
Senza addentrarci nella teoria statistica, possiamo chiarire questo punto in un paio di modi. Innanzitutto, notiamo che una distribuzione normale è valida per risultati influenzati da un numero elevato di fattori indipendenti. L’esempio classico è una tavola di Galton, con un carico di palline che cadono a cascata attraverso una serie di birilli.
Questi birilli sono indipendenti: la probabilità che la pallina vada a sinistra o a destra è sempre 1/2. La domanda della catena di approvvigionamento, d’altra parte, è influenzata da un elevato numero di fattori, ma è improbabile che siano tutti indipendenti. Possiamo immaginare molte ragioni per cui molteplici fattori di domanda potrebbero essere correlati con l’economia, la concorrenza, la crescita della clientela, i prodotti interdipendenti e così via.
Un altro motivo per sospettare di una distribuzione normale è illustrato di seguito. Osservate l’immagine di una distribuzione normale, media = 10 e deviazione standard = 5. Questa è solo una variabilità media: il CoV (coefficiente di variabilità, DEV.ST/MEDIA = 0,5, non è un valore elevato, relativamente parlando).
Si osservi che alcuni risultati sono negativi, ma la domanda non può essere negativa. Diremmo che ha un limite inferiore pari a zero. Quindi abbiamo bisogno di una distribuzione che restituisca solo valori positivi. E questo limite inferiore pari a zero sarebbe vero se la media fosse 100 o 1000, perché la CoV è un rapporto. Qualsiasi distribuzione limitata a un’estremità ma aperta all’altra sarà asimmetrica. Più simile alla Gamma o alla Lognormale di seguito.

Per modellare la domanda della catena di approvvigionamento, una distribuzione gamma potrebbe essere più adatta. Oppure, per variazioni con un intervallo di valori più ampio, una distribuzione lognormale. Entrambe hanno l’equivalente di una distribuzione standard, quindi è possibile definire il livello di variabilità.
Non soffermatevi sulle statistiche e sui dettagli di come farlo. Sia in Python che in Excel, generare queste distribuzioni è un’unica formula o una singola riga di codice, facilmente sostituibile. Ciò che è importante sapere è che dovreste misurare la variazione e la forma della distribuzione a partire dai dati effettivi della domanda e allocare ogni articolo alla distribuzione più adatta. Parlare di statistiche sulla catena di approvvigionamento significa essere prudenti. Quindi, affermerò l’ovvio: la distribuzione qui si riferisce alla distribuzione statistica e non ha nulla a che fare con la logistica e la movimentazione delle merci.
La variabilità della domanda e la forma della distribuzione possono essere parametri, insieme alla media e alla forma/deviazione standard. È importante sapere che una distribuzione normale potrebbe non essere la migliore e può generare una domanda negativa, il che è naturalmente indesiderabile.
Si noti che sussistono ancora seri limiti nell’utilizzo della sola variazione della domanda come indicatore di incertezza. Le ragioni per cui la domanda aumenta o diminuisce possono essere molteplici e non tutte prevedibili. Ne parleremo più avanti.
L’inventario disponibile viene esaurito solo dalla domanda giornaliera
Un’ipotesi valida, suggerirei di lasciar perdere. La domanda potrebbe non essere presente tutti i giorni, o addirittura tutte le settimane. Quando la domanda è zero per quel giorno, non si verifica alcuna variazione; quando la domanda è diversa da zero, si riduce di quella quantità. Non stiamo modellando la durata di conservazione, le perdite o altri modi in cui le scorte si esauriscono. Si noti che la domanda potrebbe essere del cliente o derivante dalla produzione, come domanda dipendente.
L’inventario disponibile viene rifornito con un semplice punto di riordino e una quantità d’ordine fissa
Questo è un aspetto semplicistico. Uno scenario più realistico potrebbe essere un sistema min-max con un punto di riordino e un punto di ordine massimo. Potresti anche dover includere quantità minime d’ordine, e queste sono semplici da aggiungere.
Vale la pena notare che tutte queste politiche devono essere applicate automaticamente nella pratica. Se i pianificatori prendono decisioni manuali basate sul giudizio personale e su dati qualitativi, il modello non sarà di grande utilità. La simulazione dovrebbe essere utilizzata per creare politiche solide in grado di generare raccomandazioni basate su regole. Se si desidera adottare un approccio non basato sui dati, la simulazione non ha senso perché non abbiamo modo di modellare il processo.
Potremmo anche voler modellare una politica di revisione periodica in cui i requisiti vengono verificati e gli ordini vengono inoltrati ogni n settimane. Questo può ridurre i costi di pianificazione e amministrazione, a fronte di un compromesso accettabile in termini di reattività.
Il rifornimento viene effettuato in base all’inventario disponibile
L’alternativa è impostare la politica in base alla domanda prevista. Consiglierei di impostare una previsione semplice basata su una media mobile. Questo è un punto di riferimento piuttosto valido e sarebbe sufficiente per questo livello di sofisticazione. Per modelli più complessi, esiste una gamma di altri metodi di previsione che potrebbero essere inclusi e Python è un ottimo punto di accesso ad alcuni modelli di livello mondiale. Se costruiamo correttamente il modello di simulazione, dovremmo essere in grado di cambiare il metodo di previsione in seguito semplicemente modificando un parametro o poche righe di codice.
Tempi di consegna per la fornitura con distribuzione Gamma
Questo è sensato da mantenere. Proprio come con la domanda, è possibile misurare i tempi di consegna effettivi che si ottengono dai fornitori e impostare di conseguenza il lead time effettivo. Come con la domanda, non si può avere un lead time negativo o nullo.
Gli ordini di fornitura possono essere in sospeso solo uno alla volta
Nel modello semplice, un ordine di fornitura viene emesso quando le scorte raggiungono il punto di riordino. Da quel momento in poi, non ci sarà più fornitura finché non verrà ricevuto quell’ordine. In pratica, per articoli con tempi di consegna lunghi, potremmo avere una pipeline di fornitura e non possiamo aspettare che venga ricevuto il primo ordine prima di effettuarne un altro. Questo è sicuramente un aspetto da modificare per questo livello. E qualsiasi proiezione delle scorte dovrebbe tenere conto delle tempistiche in sospeso.
Livello 1 – Riepilogo
Questo modello di base definisce alcuni aspetti fondamentali del comportamento di un articolo in magazzino. Possiamo scegliere il modello di domanda corretto, selezionare tra le politiche di inventario di base (Quantità Fissa, Min-Max, Revisione Periodica), progettare con una previsione di riferimento e modellare una fornitura realistica con ritardi e gestire la fornitura su lead time lunghi. Funziona ancora su un singolo articolo, ma ora sono disponibili più parametri per poterlo eseguire su qualsiasi articolo nell’elenco target.
Questa discussione fornisce uno scheletro di specifiche che, con qualche dettaglio in più, potrebbe essere pronto per l’implementazione. Il webinar mostra un esempio di come questo possa essere fatto senza una formazione in programmazione Python, utilizzando LLM per generare il codice. La logica finora adottata dovrebbe essere semplice da usare per un programmatore intermedio senza assistenza. Queste specifiche e questo processo di pensiero sono fondamentali per fornire istruzioni chiare sia a un programmatore che a un LLM. Le tecniche di programmazione, sia da zero che con assistenza, sono un argomento per un altro articolo. Organizzerò futuri webinar e corsi video che illustreranno l’implementazione del Livello 1.
È meglio raggiungere il Livello 1 e acquisire esperienza con il modello e i diversi scenari prima di specificare i dettagli del livello successivo. Più si procede, maggiore è la complessità e, probabilmente, più il modello viene vincolato a una situazione specifica e a un insieme di scenari. Tuttavia, ecco di seguito alcuni commenti su possibili aree di miglioramento una volta che il Livello 1 sarà stabile e testato.
Considerazioni di livello 2+ su ciò che verrà dopo
Articoli multipli e SKU – Livello 3
È allettante pensare che il livello successivo potrebbe essere un’analisi approfondita di tutti gli elementi, applicando i parametri più appropriati. Tuttavia, ragionando sul progetto in questo modo, possiamo identificare i motivi per cui questo potrebbe non essere consigliabile.
In primo luogo, è importante considerare quali siano le differenze principali tra le simulazioni di articoli di prodotto e le simulazioni di scenario. Quando eseguiamo simulazioni con lo stesso articolo, applichiamo una variazione casuale alla domanda e all’offerta. Tuttavia, la distribuzione di tale domanda e i valori medi sono fissi. Quando eseguiamo simulazioni di articoli diversi, abbiamo bisogno che il modello applichi una distribuzione, una politica di ordine e valori medi adatti all’articolo.
È qui che entra in gioco la classificazione. Prima di eseguire il modello su più articoli, dovremmo misurare lo storico della domanda nell’area target e suddividerli in classi in base al loro andamento della domanda. Non sarebbe necessario eseguire una simulazione per ogni articolo, poiché ogni articolo nella stessa classe produrrebbe lo stesso risultato. Scegliete le classi nel modo più adatto al vostro business target.
Un’opzione per la classificazione è il metodo SBC (Syntetos Boylan Croston), che raggruppa gli articoli in: Erratico, Disomogeneo, Regolare e Intermittente. Tuttavia, questo framework si basa su due misure: l’intervallo medio tra gli ordini e il coefficiente di variazione al quadrato. Questo modello ignora le componenti della domanda che hanno un segnale e sono prevedibili, ovvero trend e stagionalità. Potrebbe essere opportuno approfondire questo aspetto prima, soprattutto se la domanda presenta una stagionalità e/o un trend significativi, come accade nella maggior parte dei casi.
In questo caso, è necessaria una discreta analisi della domanda e un ulteriore lavoro sul modello del singolo articolo contribuirebbe notevolmente a informare il processo. Pertanto, lo collocheremmo al Livello 3.
Modelli di domanda – Livello 2
Il modello di base presuppone che la domanda media sia piatta. Presuppone inoltre che la previsione non sia in grado di rilevare alcuna stagionalità o andamento di tendenza che potrebbe essere evidente nella pratica. Pertanto, mentre ci prepariamo a modelli di previsione più sofisticati della media mobile, potremmo dover considerare la scomposizione. È possibile prendere in considerazione uno storico della domanda di 2 anni o più e scomporlo in tre componenti: errore, trend e stagionalità. Trend e stagionalità sono segnali, l’errore è rumore.
Un modello ETS può quindi aiutare a studiare la domanda target e a scomporla in modo da poterla ricostruire per il modello. Gli articoli che presentano una forte stagionalità o un trend possono essere modellati come tali, e ci si aspetterebbe un fabbisogno di inventario inferiore rispetto agli articoli con una forte componente di rumore. Allo stesso modo, possiamo utilizzare una previsione ETS come quella di Holt-Winters da utilizzare nel modello. ARIMA offre un metodo alternativo di previsione e scomposizione. Non dobbiamo preoccuparci troppo della selezione delle previsioni: Python offre accesso a molti modelli di previsione open source predefiniti. È utile conoscere le opzioni e l’approccio generale, per poi imparare applicandoli e confrontandoli.
È anche possibile utilizzare la cronologia della domanda in modo più diretto. Da un lato, non è possibile utilizzare semplicemente la cronologia effettiva, poiché ciò equivarrebbe a tornare a un modello deterministico. Si finirebbe per sovraadattare la politica di inventario a una cronologia che non si ripeterà mai. Esiste però una tecnica chiamata “bootstrapping”, che modifica la cronologia in modo casuale, rappresentando l’incertezza sottostante ma ottenendo le stesse misure aggregate nel complesso. Ad esempio, la domanda in un dato giorno sarebbe diversa da quella effettivamente ottenuta, ma nel corso dell’anno la media e la variabilità rimarrebbero le stesse.
Combinando questo con la scomposizione, è possibile rispondere a domande come: cosa accadrebbe se avessimo la stessa variabilità, ma con un trend diverso? O se avessimo i nuovi prodotti E, F e G che si comportassero come A, B e C, ma con una rampa di crescita più ripida e maggiore incertezza? O se la domanda esplodesse improvvisamente per il 20% dei nostri prodotti e crollasse per un altro 20%?
BOMS, produzione e domanda dipendente – Livello 2
La simulazione dell’inventario può essere utilizzata per prodotti finiti, componenti prodotti o parti acquistate. Il modo più semplice sarebbe quello di analizzare la domanda di prodotto con la distinta base e ottenere la domanda totale per ogni articolo. A questo punto possiamo ignorare completamente la distinta base e trattare ogni articolo come se la sua domanda fosse indipendente. Si potrebbe scoprire che la domanda di componenti comuni è più prevedibile man mano che le variazioni nella domanda di prodotto vengono livellate. Questo approccio è sufficiente per il Livello 2. Potrebbero esserci alcune considerazioni per un modello più sofisticato, come la variabilità nei tempi di produzione (che influenzano il profilo di domanda relativo al momento in cui l’articolo figlio è richiesto) e l’interdipendenza tra articoli, ad esempio prodotti finiti e componenti e pezzi di ricambio che li compongono. Ma possiamo lasciare queste considerazioni per un livello superiore.
Selezione della politica – Livello 2
Una volta considerate le considerazioni sulla domanda di cui sopra, potrebbe essere il momento di aggiornare il modello per effettuare una valutazione delle politiche. Ad esempio, supponiamo di avere 2 parametri che determinano la quantità di copertura delle scorte che otterremo: il punto di riordino e il punto di ordine completo, ovvero Min e Max. Finora, abbiamo applicato valori numerici basati sull’esperienza, su stime o su qualche equazione per la gestione delle scorte di sicurezza. Ora potrebbe essere il momento di avviare la simulazione per trovare la combinazione più probabile.
Immaginate i due parametri, Min e Max, a 90 gradi, che formano una griglia. Questo fornisce un insieme di tutte le possibili combinazioni. Possiamo eseguire gli stessi scenari di simulazione per ogni casella della griglia. Avremmo bisogno di un modo per misurare le prestazioni di ciascuna combinazione. Potrebbe trattarsi di una funzione di costo che attribuisce un costo a ogni unità di inventario nel tempo e anche il costo di una rottura di stock. L’azienda deve dare priorità a queste due dimensioni e il costo potrebbe variare per articoli diversi. Quindi facciamo eseguire alla simulazione lo scenario impostato per ogni cella della griglia, calcoliamo il costo e passiamo alla cella successiva.
Questo metodo è noto come ricerca a griglia e, con un intervallo ragionevole tra righe e colonne, possiamo arrivare alla risposta più probabile.
È anche possibile valutare la politica stessa, con implicazioni sui costi per gli articoli controllati quotidianamente, rispetto a quelli con un ciclo settimanale o plurisettimanale di controllo e inserimento ordini; per articoli stabili e prevedibili, un periodo di revisione più lungo tra gli ordini potrebbe rivelarsi più conveniente rispetto a un controllo più frequente che avrebbe una latenza minore.
Shock dell’offerta – Livello 2-3
Proprio come la domanda può variare in modo imprevedibile, lo stesso può accadere all’offerta. L’epidemia di COVID, il blocco del canale di Suez, gli scioperi portuali, gli tsunami e molti altri rischi “a lungo termine” possono raddoppiare o triplicare i tempi di consegna. O addirittura richiedere di trovare altri fornitori con costi unitari e condizioni di fornitura diversi. La simulazione può affrontare questi rischi modellando esattamente i cambiamenti. Forse potremmo definire più fonti per lo stesso articolo o accelerare i costi che si innescano quando le carenze lo richiedono.
Il mio suggerimento è di modellare adeguatamente il rischio di ritardi di consegna in condizioni normali. E poi di valutare cosa accadrebbe se quei tempi di consegna diventassero meno prevedibili. E cosa accadrebbe se si passasse a tempi di consegna più lunghi e più prevedibili. Adattando gli scenari in modo che dimostrino tempi di consegna reali, una simulazione può essere più realistica di un processo di pianificazione reale che prevede tempi di consegna irraggiungibili!
Sommario
Questo articolo ha delineato un possibile percorso per passare da una semplicissima simulazione di inventario Monte Carlo a una in grado di aggiungere realmente valore a un’attività complessa di supply chain. L’obiettivo è stato quello di fornire una panoramica del processo di pensiero che dovrebbe precedere la scrittura di qualsiasi riga di codice. Con una chiara visione del successo e una comprensione approfondita dei requisiti, questa simulazione potrebbe essere portata al Livello 2 in pochi giorni o settimane.
Se ti è piaciuto e vuoi saperne di più, compila questo breve sondaggio. Se lo hai già compilato e desideri modificarlo dopo aver letto questo articolo, fallo allo stesso indirizzo email, menzionandolo nei commenti e utilizzeremo il tuo contributo successivo.