CAPITOLO 6 La programmazione operativa (operations scheduling)
Contenuti Le funzioni della PO Gli obiettivi della PO Il job loading Il metodo dell assegnazione Il job sequencing Regole e tecniche di priorità Lo scheduling n lavorazioni su 1 macchina n lavorazioni su 2 macchine Il diagramma di Gantt
Funzioni della PO Fa riferimento al breve periodo e si articola in tre momenti principali :! loading Destinare ordini ai centri di lavorazione. sequencing Stabilire la sequenza di lavorazione degli ordini su un centro di lavorazione. scheduling Avviare l esecuzione dell attività programmata. Controllo di officina.
Fase di loading Nella fase di allocazione (loading) delle operazioni sulle singole risorse disponibili, nota l entità di ciascun ordine e, quindi, il relativo fabbisogno di macchine e di attrezzature, si verifica la possibilità di soddisfare tale fabbisogno con le risorse disponibili ripartendo l insieme degli ordini tra le singole stazioni di lavoro In sintesi Significa l assegnare i job ai centri di processamento. Una corretta assegnazione è tale da minimizzare i costi, l idle time ed i tempi di completamento
Fase di sequencing Nella fase di sequencing si ricerca, per ogni centro di lavoro, la sequenza secondo la quale conviene che vengano eseguiti gli ordini in precedenza attribuiti a tale centro
Fase di scheduling Nella fase di scheduling vero e proprio, a ciascun ordine, oramai assegnato ad uno specifico centro ed al quale compete una specifica posizione nella sequenza produttiva, viene associato un istante di inizio ed uno di fine lavorazione
IN PRATICA Non sempre è necessario affrontare tutte le fasi sopra riportate. Ad esempio è evidente che se il sistema è costituito da un unica macchina, la fase 1 non esiste!!!
Obiettivi della PO Rispettare le date di consegna Minimizzare i lead time Minimizzare i costi e i tempi di set-up Minimizzare le scorte in corso lavorazione Massimizzare l utilizzo di macchine e forza lavoro.
Tempo di completamento Per tempo di completamento C j si intende il tempo a cui l ultimo task del job j (e, di conseguenza, l intero job j) termina.
Makespan Si definisce massimo tempo di completamento o makespan il valore massimo dell insieme C max = max {C 1, C 2,., C n }, ossia il tempo di completamento del job che termina per ultimo; esso rappresenta la misura (rispetto al tempo di riferimento iniziale t 0 ) del tempo necessario ad ultimare tutte le attività.
Flow time (F j ) o tempo di attraversamento del job j è il tempo che trascorre dall inizio del primo job (I j ) sulla prima macchina fino al completamento del job j (C j ) F j = C j -I j
Due Date Il tempo di consegna (anche detto due date) d j indica l istante di tempo rispetto sempre ad un istante iniziale t 0 =0 entro il quale l esecuzione del job j dovrebbe essere terminata. In genere, la violazione della data di consegna, determinata da un overtime di produzione comporta dei costi per penale, per perdita di fiducia da parte del cliente, di immagine, ecc Si comprende che, mentre i costi per penale sono noti per contratto di fornitura, i restanti costi non sono facilmente ed immediatamente determinabili ma risultano, in genere, abbastanza cospicui più che della stessa penale.
Ritardo: LATENESS Si riferisce alla differenza tra il tempo di completamento del job e la sua data di consegna e può essere MAGGIORE oppure MINORE di 0 L i = C i - D i!
Ritardo positivo: TARDINESS È il valore maggiore fra zero e la differenza tra il tempo di completamento (Flow time) e la data di consegna (Due Date) di un job
Criteri più comuni per misurare le prestazioni o la bontà di un algoritmo In relazione al completion time: Max flow time: FM = max { F j } Max completion time: CM = max { C j } Mean flow time: Fm = Σ F j / n Mean completion time: Cm = Σ C j / n In relazione alle due date: Max lateness: LM = max { L j } Max tardiness: TM = max { T j } Mean lateness: Lm = Σ L j / n Mean tardiness: Tm = Σ T j / n Numero di job in ritardo: Nt = Σ U(T j ) con U(T j ) =1 se T j >0; =0 se T j =0 Ritardo medio dei job in ritardo: Rm=T j / Nt
Algoritmi di loading Metodo dell assegnazione Rappresenta una tipica applicazione di programmazione lineare. Esso può essere applicato in quelle particolari situazioni in cui c è una coincidenza del numero di job con il numero di macchine o di persone a cui assegnare i suddetti job Obiettivo minimizzare o massimizzare alcune misure di efficienza
Metodo dell assegnazione Condizioni Ci sono n job da distribuire su n macchine Ogni job deve essere assegnato ad una ed una sola destinazione Solo un criterio può essere utilizzato (minimizzazione dei costi, massimizzazione dei profitti, o minimizzazione del tempo di completamento, per esempio)
Metodo dell assegnazione Si consideri un problema di minimizzazione (minim. dei costi o dei tempi di processamento) C ij rappresenta il tempo o il costo richiesto dalla persona o dalla macchina i per il job j X ij =1 se la persona o la macchina i sono assegnati al job j X ij = 0 se la persona o la macchina i non sono assegnati al job j Funzione obiettivo min Σ i Σ j x ij c ij Vincoli: Σ i x ij = 1 Σ j x ij = 1
Metodo dell assegnazione I due vincoli indicano che una persona o una macchina sono assegnate ad un unico job ed ogni job è processato da un unica macchina o un unica persona Il modello dell assegnazione può essere anche espresso da una tabella in cui le righe rappresentano i job e le colonne rappresentano le macchine o i lavoratori a cui associare tali job. I valori interni alla tabella rappresentano il costo o il tempo impiegato per l esecuzione di quel lavoro su quella macchina o per quel lavoratore
Metodo dell assegnazione Step 1) Sottrarre il numero più piccolo in ogni riga per ogni numero di quella riga e poi sottrarre il numero in ogni colonna per ogni numero in quella colonna. Questo step ha l effetto di ridurre i numeri nella tabella fino ad ottenere una serie di zero, significando possibilità di costi zero. 2) Tracciare il numero minimo di linee verticali e orizzontali necessari a coprire tutti gli zeri della tabella. Se il numero di linee equivale al numero di righe o di colonne presenti nella tabella allora è possibile ottenere già la soluzione finale (procedere allo step 4). Se, invece, il numero di linee è minore del numero di righe o colonne, procedere allo step 3. 3) Sottrarre il numero più piccolo non coperto da una linea per ogni altro numero non coperto e aggiungere esso ai numeri presenti all intersezioni delle due linee. 4) L assegnazione ottima sarà sempre localizzata nello zero. Per una valida assegnazione selezionare una riga o una colonna che contiene solo uno zero. L assegnazione sarà eseguita relativamente alla riga e alla colonna che si intersecano in quello zero. Questo processo continuerà fin quando non sarà completata l assegnazione di ogni job a persone o macchine
Metodo dell assegnazione ESEMPIO Step 1a. Sottrarre il numero più piccolo in ogni riga per ogni numero della riga stessa
Metodo dell assegnazione Step 1b. Eseguire la stessa operazione per le colonne
Metodo dell assegnazione Step 2. Tracciare il minimo numero di linee per coprire tutti gli zeri presenti in tabella. Nel caso in esame sono solo due le linee ad essere tracciate per cui la soluzione ottima ancora non è determinata
Metodo dell assegnazione Step 3. Sottrarre il numero più piccolo non coperto (2 nella tabella) ad ogni altro numero non coperto ed aggiungere esso al numero presente all intersezione delle due righe
Metodo dell assegnazione Ritornare allo step 2. Coprire gli zeri con un numero minimo di righe Risultato finale L assegnazione ottimale sarà in corrispondenza degli zeri, per cui partendo dal job S-66, l unica assegnazione possibile sarà quella alla macchina B. Di conseguenza l unica assegnazione possibile per T-50 sarà quella alla macchina A, e quella per R-34 sarà C. Quella trovata sarà la soluzione che minimizza i tempi, ed il tempo totale sarà di 25, pari alla somma di 6, 10, e 9, ovvero i tre termini corrispondenti alle tre assegnazioni
Il job sequencing Regole di priorità 1 FIFO (first-in, first-out). Primo ad arrivare, primo a essere lavorato. Le lavorazioni vengono processate secondo l ordine con cui giungono al reparto. 2 SPT (shortest processing time). Tempo di processo minore. Per prima si esegue la lavorazione a tempo di completamento minore, poi quella immediatamente più lunga ecc. Talvolta questa regola è detta SOT (shortest operating time). Spesso è usata in combinazione con una regola sul ritardo, per scongiurare eccessivi ritardi delle lavorazioni con i tempi più lunghi. 3 EDD (earliest due date). Data di consegna. Per prima si esegue la lavorazione con la data di scadenza più prossima. 4 STR (slack time remaining). Tempo residuo. Si calcola il tempo rimanente alla data di consegna meno il tempo di processo rimanente. Gli ordini a slack minore (STR) vengono evasi per primi.
Il job sequencing Regole di priorità 5 STR/OP (slack time remaining per operation). Tempo residuo per operazione. Gli ordini a slack minore per numero di operazioni vengono evasi per primi (STR/OP=STR/numero di operazioni rimanenti). 6 CR (critical ratio). Rapporto critico. Il rapporto critico è la differenza fra la data di consegna e la data attuale diviso tempo residuo di lavorazione. Gli ordini con il CR inferiore vengono evasi per primi. 7 LIFO (last-in, first-out). Ultimo ad arrivare, primo a essere lavorato. Spesso applicata inconsapevolmente, non da espresse disposizioni. Al loro arrivo, i materiali di lavorazione vengono messi in cima e di solito l operatore preleva i materiali a cominciare dall alto. 8 Ordine casuale o random. Sovente supervisori e operatori scelgono a loro piacimento quale lavorazione effettuare.
Esempio di job sequencing: FIFO Supponete di dover effettuare le quattro lavorazioni (A, B, C, D) su un unica macchina. Com è il programma FIFO? Lavorazioni (in ordine di arrivo) Tempo di processo. (gg.) Data consegna (gg. da oggi) A 4 5 B 7 10 C 3 6 D 1 4 Tutte le lavorazioni vengono eseguite in tempo? Risposta: programma FIFO Lavorazioni (in ordine di arrivo) Tempo di processo. (gg.) Data consegna (gg. da oggi) A 4 5 B 7 10 C 3 6 D 1 4 Tempo di flusso (gg.) 4 11 14 15 No, le lavorazioni B, C e D saranno eseguite in ritardo.
Esempio di job sequencing: SPT Supponete di dover effettuare le quattro lavorazioni (A, B, C, D) su un unica macchina Lavorazioni (in ordine di arrivo) Tempo di processo. (gg.) Data consegna (gg. da oggi) A 4 5 B 7 10 C 3 6 D 1 4 Com è il programma SPT? Risposta: programma SPT Tutte le lavorazioni vengono eseguite in tempo? Lavorazioni (in ordine di arrivo) Tempo di processo. (gg.) Data consegna (gg. da oggi) D 1 4 C 3 6 A 4 5 B 7 Tempo di flusso (gg.) 1 4 8 10 15 No, le lavorazioni A e B saranno eseguite in ritardo.
Esempio di job sequencing: EDD Supponete di dover effettuare le quattro lavorazioni (A, B, C, D) su un unica macchina Com è il programma earliest due date first? Lavorazioni (in ordine di arrivo) Risposta: programma EDD Tempo di processo. (gg.) Data consegna (gg. da oggi) A 4 5 B 7 10 C 3 6 D 1 4 Tutte le lavorazioni vengono eseguite in tempo? Lavorazioni (in ordine di arrivo) Tempo di processo. (gg.) Data consegna (gg. da oggi) D 1 4 A 4 5 C 3 6 B 7 Tempo di flusso (gg.) 1 5 8 10 15 No, le lavorazioni C e B saranno eseguite in ritardo.
Esempio di job sequencing: Metodo CR (rapporto critico) Supponete di dover effettuare le quattro lavorazioni (A, B, C, D) su un unica macchina. Com è il programma CR? Lavorazioni (in ordine di arrivo) Per stilare questo programma si calcola il rapporto critico (CR) per ogni lavorazione. Posto che oggi sia il Giorno 1, e che per completare il lavoro siano previsti altri 1 giorni per A, 2 per B, 2 per C e 3 per D, ne deriva il seguente programma: CR(A)=5/(1+4)=1 (Eseguire questa per prima, insieme a D) CR(B)=10/(7+2)=1.1 (Eseguire questa dopo A e D) CR(C)=6/(3+2)=1.2 (Eseguire questa per ultima) CR(D)=4/(1+3)=1 (Eseguire questa per prima, insieme a A) Tempo di processo. (gg.) Data consegna (gg. da oggi) A 4 5 B 7 10 C 3 6 D 1 4 Tutte le lavorazioni vengono eseguite in tempo? No, solo la prima sarà eseguita in tempo.
Esempio di job sequencing: LIFO Supponete di dover effettuare le quattro lavorazioni (A, B, C, D) su un unica macchina Com è il programma LIFO? Lavorazioni (in ordine di arrivo) Tempo di processo. (gg.) Data consegna (gg. da oggi) A 4 5 B 7 10 C 3 6 D 1 4 Tutte le lavorazioni vengono eseguite in tempo? Risposta: programma LIFO Lavorazioni (in ordine di arrivo) Tempo di processo. (gg.) Data consegna (gg. da oggi) D 1 4 C 3 6 B 7 10 A 4 Tempo di flusso (gg.) 1 4 11 5 15 No, le lavorazioni B e A saranno eseguite in ritardo.
Esempio di job sequencing: la regola di Johnson (Parte 1) Supponete di dover svolgere le seguenti cinque lavorazioni, caratterizzate da diversi tempi operativi nelle due fasi di produzione. Qual è la sequenza di lavorazione secondo la regola di Johnson? Tempo in ore Lavoraz. Fase 1 Fase 2 A 1,50 1,25 B 2,00 3,00 C 2,50 2,00 D 1,00 2,00
Esempio di job sequencing: la regola di Johnson (Parte 2) Selezionare la lavorazione dal tempo operativo più breve in entrambe le fasi. Si tratta di D, che prevede il tempo più breve nella prima fase. Posizionate D il prima possibile nella sequenza dei lavori da effettuare (sotto). Time in Hours Jobs Stage 1 Stage 2 A 1.50 1.25 B 2.00 3.00 C 2.50 2.00 D 1.00 2.00 Eliminata D, scegliete il successivo tempo più breve (A) e ponetelo al quarto posto nella sequenza delle lavorazioni. Eliminata A, scegliete il successivo tempo più breve. C è un legame a due fasi per due diverse lavorazioni. In questo caso, collocate la lavorazione con il tempo più breve il prima possibile nella sequenza dei lavori da effettuare. Quindi collocate la lavorazione con il tempo più breve nella seconda fase il più tardi possibile nella sequenza dei lavori da effettuare. Job Sequence 1 2 3 4 Job Assigned D B C A
Diagramma di Gantt MACCHINA 1 I J MACCHINA 2 I J MACCHINA 1 MACCHINA 2 J I J I
Tecniche di scheduling Una differenziazione riguardante le tecniche di scheduling è quella relativa alla differenza esistente fra forward scheduling e backward scheduling.
Forward Scheduling Metodologia di schedulazione secondo la quale lo schedulatore comincia con una prestabilita data di inizio per la prima operazione e procede con le operazioni successive, calcolando i tempi in avanti rispetto alla data da cui si è partiti Vantaggioso quando il consumatore, esterno o interno, chiede il minimo tempo di approvvigionamento per un particolare ordine
Backward Scheduling Metodologia di schedulazione secondo la quale lo schedulatore comincia con una data prestabilita della fine dell ultima operazione e da questa calcola le date delle operazioni precedenti effettuando un calcolo all indietro fino a giungere alla prima operazione della lista Vantaggio si può rinviare il più possibile il rilascio di un ordine cominciando la sua lavorazione solo quando un ulteriore rinvio potrebbe compromettere il rispetto della data di consegna dell ordine stesso si evita il sovraccarico dell impianto di produzione evitando di effettuare una lavorazione prima del necessario