Il problema nell’identificare una programmazione della produzione che rispecchi le esigenze del processo operativo di una qualsiasi azienda manifatturiera può essere ricondotto a uno dei più famosi problemi di ricerca operativa, il Job Shop Problem.
Il Job Shop Problem
Tale problema consiste nell’assegnazione di n lavori (job) che possono essere svolti su m macchine differenti, con l’obiettivo di minimizzarne il tempo totale di completamento. In questa assegnazione si dovrà tenere conto di eventuali vincoli, come ad esempio il fatto che una stessa macchina non possa svolgere più lavori contemporaneamente.
All’aumentare del valore di n e m il problema può diventare molto complesso ed è quindi stato oggetto di numerosi studi nel corso del tempo. Il primo algoritmo risolutivo è stato presentato da Johnson nel 1954 e porta a trovare la soluzione ottima del problema nel caso con 2 macchine.
Benché questa possa sembrare una semplificazione esagerata, nel 1976 è stato dimostrato che per m > 2 non esistono algoritmi che trovino l’ottimo in tempi accettabili, e le principali soluzioni benchmark di istanze del Job Shop Problem con diversi valori di n e m sono da attribuirsi a Taillard.
Dunque, è chiara la complessità di tale problema, perché quindi al giorno d’oggi è così indispensabile trovarne una soluzione negli ambienti produttivi?
Dalla teoria alla pratica
Il Job Shop Problem consiste quindi nella ricerca della schedula ottima, che possiamo rappresentare graficamente con un diagramma per pianificare attività temporali.
Considerando di avere a disposizione 2 macchine e 4 job con diverse durate e supponendo che ogni job possa essere processato su entrambe le macchine, la soluzione ottima sarà la seguente:
Naturalmente anche quest’altra soluzione sarebbe ammissibile:
Ma non sarebbe ottima, in quanto prevederebbe il completamento dei lavori mezz’ora dopo rispetto alla proposta precedente. Risulta fondamentale quindi che la soluzione non solo rispetti i vincoli, ma sia “la migliore possibile”.
Se in questo semplice esempio si vede ad occhio quale sia la strada migliore da percorrere, aumentando il numero di macchine o di job può diventare molto complesso. Esistono metodi euristici per trovare soluzioni molto buone, ma quando la complessità aumenta, la proposta migliore rimane un modello di ottimizzazione.
Inoltre, in presenza di problemi reali di schedulazione della produzione all’interno di un’azienda, dove il completamento di un job consiste nell’evasione di un ordine, possono entrare in gioco molti fattori aggiuntivi, quali:
- elevato numero di macchine e ordini
- più fasi sequenziali di produzione su diverse macchine per ogni ordine
- tempi di attrezzaggio o di manutenzione delle macchine
- gestione delle distinte basi (BOM, Bill of Materials) e tempi di approvvigionamento delle materie prime
Per questo motivo nella realizzazione di modelli che offrano una programmazione di produzione è consigliabile dividere il problema in due fasi:
- Pianificazione a lungo termine, ovvero con un orizzonte temporale anche di 6 o 9 mesi. Un modello più semplice e meno preciso può servire per avere un’informazione delle date di consegna degli ordini ai clienti.
- Schedulazione a breve termine, ovvero con un orizzonte temporale di un paio di settimane. È possibile usare un modello più complesso e più preciso che prenda in input gli ordini pianificati nelle prime due settimane dal modello di pianificazione per ottenere una schedulazione più dettagliata.
Vantaggi chiave della programmazione di produzione
L’utilità di proporre un corretto piano di produzione ha numerosi vantaggi. Tra i più importanti vi è di sicuro il rispetto delle date di consegna comunicate ai clienti e, se necessario, la loro ripianificazione, nonché la gestione dell’approvvigionamento delle materie prime (MRP).
Inoltre, pianificare il lavoro in questo framework permette anche di eseguire simulazioni con diversi scenari e what-if, utili per pianificare l’allocazione di nuove risorse ed evitare colli di bottiglia nel processo produttivo.
Queste ragioni fanno sì che la creazione di programmazioni coerenti abbia assunto un’importanza crescente nello sviluppo delle aziende manifatturiere.
Limiti dell’approccio manuale
Tuttavia, il modo in cui molte realtà aziendali realizzano tali piani si basa sulla sola esperienza umana, unita a strumenti non adatti, come ad esempio i fogli Excel. Ciò rischia di generare un dispendio di energie e di denaro per un piano che può risultare non ottimale, in quanto: più le dimensioni del problema sono grandi, meno le singole persone sono in grado di proporre un piano tale da rispettare tutti i vincoli. Per ovviare a questi problemi nell’ultimo decennio sono nate soluzione APS, ovvero software per l’Advanced Planning and Scheduling, il cui scopo è proporre un piano coerente con tutti i vincoli del problema, che fanno uso delle ultime innovazioni tecnologiche in ambiti quali l’intelligenza artificiale e lo sviluppo di modelli di ottimizzazione.
Per capire meglio i vantaggi derivanti dall’adozione di queste soluzioni, analizziamo il caso di un’azienda di medie dimensioni nell’ambito dello stampaggio plastico. L’impresa è dotata di 13 macchine e ha all’incirca un centinaio di ordini (riconducibili ai job sopracitati) da posizionare su di esse. Come possiamo facilmente intuire questo problema, logicamente semplice, dà luogo a ben 1300 combinazioni possibili! Se a questo aggiungiamo anche tutti i vincoli della produzione come, per esempio, l’uso di attrezzature specifiche che non possono essere usate in contemporanea, o la necessità di trovare una sequenza ottima per limitare il tempo di inattività della macchina tra un job e l’altro, ecco allora che viene a crearsi una complessità tale da richiedere l’utilizzo di un software di pianificazione per poter essere gestita e superata efficacemente.
Conclusioni
Nella costruzione di un algoritmo di pianificazione e schedulazione di produzione gioca un ruolo fondamentale la conoscenza del processo. Tali conoscenze sono formate sia da tutte quelle regole che devono essere seguite sia da quelle accortezze non scritte che costituiscono il patrimonio aziendale, ed è fondamentale l’integrazione di entrambe nella modellazione del processo produttivo. In questo processo le tecniche di ottimizzazione sono risorse inestimabili che permettono di gestire un’ingente mole di vincoli. Il “fattore umano” e la conoscenza del processo che si sta modellando rimangono comunque fondamentali per costruire l’insieme di regole necessarie a guidare l’applicazione di questi algoritmi nell’ambito di interesse.