Una fabbrica è un sistema complesso nel quale, per far funzionare la catena produttiva al meglio, è necessario coordinare, organizzare e pianificare la produzione e le varie attività e processi.
Normalmente si cerca sempre di fare previsioni su periodi futuri in modo da anticipare alcune soluzioni e strategie di gestione di ordini di produzione.
A volte ci sono però decisioni di pianificazione della produzione che devono essere studiate in poco tempo e che servono solo per un breve periodo come nel caso di aziende che eseguono alcune lavorazioni su commessa, definita come scheduling.
In particolare si vuole cercare di preventivare al meglio i tempi reali di consegna al cliente e/o di organizzare le varie operazioni da eseguire in modo efficiente per rispettare il tempo di consegna imposto.
A tal fine, per una corretta pratica, è necessario studiare delle tattiche di scheduling.
Come pianificare la produzione: lo scheduling
Con il termine scheduling si intende una vasta classe di problemi, molto diversi tra loro per complessità e struttura. Diversi autori hanno tentato una sistematizzazione e una sintesi di tali problemi e ciò ha consentito di classificare molti modelli in modo organico e di unificare alcuni approcci algoritmici.
Tuttavia, per i problemi di scheduling più difficili, non è possibile indicare un unico approccio nettamente preferibile rispetto agli altri, per la loro soluzione.
Possiamo definire problemi di scheduling tutti quei problemi decisionali in cui riveste importanza il fattore tempo, visto come risorsa scarsa da allocare in modo ottimo a determinate attività. I problemi di scheduling hanno un orizzonte di breve e medio periodo e possono essere sviluppati giornalmente.
Nei problemi di scheduling, l’obiettivo è quello di assegnare certe attività alle risorse disponibili in modo da ottimizzare una determinata funzione obiettivo che dipende dal problema specifico.
Risorse ed attività vengono indicate con i termini macchina e task, mentre il termine job si riferisce in genere ad insiemi di task tecnologicamente legati tra loro (ad esempio, i tre task necessari a produrre uno stesso sacchetto di carta formano un job).
Ottenere la schedule con l’ausilio di uno schedulatore
La soluzione di un problema di scheduling prende il nome di schedule. In termini generali, uno schedule è una descrizione completa dell’utilizzo temporale delle macchine da parte dei job che devono essere eseguiti. Il concetto di sequenza è diverso da quello di schedule. La sequenza, infatti, specifica solo l’ordine in cui i job devono essere eseguiti da ciascuna macchina, mentre lo schedule ne specifica anche gli istanti di inizio, ovvero è una sequenza temporizzata.
Varie informazioni possono essere associate a un job: tipo i tempi di processo sulle macchine, i tempi di rilascio, i tempi di consegna…
Oltre alle caratteristiche relative ai job, vi sono quelle relative al sistema produttivo, che rappresentano il modo in cui le macchine sono tra loro collegate all’interno del sistema di produzione:
- Macchina singola, in questo caso i job richiedono tutti la stessa risorsa per essere eseguiti. Se esistono più macchine, abbiamo il caso di macchine parallele (identiche o meno) ed i job devono passare su una sola di esse. In questo caso bisogna occuparsi prima dell’assegnamento dei job alle macchine e quindi del sequenziamento dei job su ogni macchina (scheduling).
Le soluzioni più comuni sono basate su regole di priorità per le quali ad ogni job è assegnato un peso in base alla funzione obiettivo.
- Flow shop, in questo caso il sistema consiste di m macchine disposte in serie e ciascun job deve essere eseguito da ciascuna delle m macchine successivamente. Parliamo di flow shop puro se tutti i job passano su tutte le macchine della linea mentre parliamo di flow shop generale se i job possono passare solo su alcune macchine della linea.
Algoritmi più comuni puntano a minimizzare il massimo tempo di completamento: algoritmo di Johnson per problemi di flow shop a due macchine (o job shop a 2 macchine) e algoritmo di Campbell, il quale è un implementazione dell’algoritmo di Johnson per problemi di flow shop con più di 2 macchine.
- Job shop, anche qui vi sono m macchine, ma ciascun job può visitare un diverso insieme di macchine (al limite tutte le m macchine) in un ordine diverso da ogni altro job nel sistema.
I problemi di job shop sono tra i più complessi e possono essere risolti con metodi ad hoc, oppure utilizzando una tra le regole di priorità per ogni macchina del job shop separatamente. Esistono inoltre alcuni algoritmi sviluppati appositamente per problemi particolari di job shop.
Questo problema può essere risolto attraverso l’utilizzo di strumenti creati con scopo di aiutare i responsabili di produzione a pianificare la produzione: gli schedulatori.
Possiamo ulteriormente distinguere tra schedulatore statico, in cui tutti i job sono disponibili all’inizio del processo di schedulazione, e schedulatore dinamico, in cui nuovi job possono arrivare nel tempo.
Individuata la sequenza ottimale una rappresentazione visiva (diagramma di Gantt) può aiutare ad identificare meglio la soluzione.