Vai al contenuto
Gestione Aziendale

Programmazione della produzione: MRP e regole di sequenza

Pianificazione gerarchica e MRP, ottimalità di SPT ed EDD dimostrate con lo scambio, regola di Johnson per due macchine con esempio e ottimalità dimostrata.

Una fabbrica deve decidere ogni giorno che cosa produrre, in quali quantità e in quale ordine sulle macchine. La programmazione della produzione traduce gli ordini e le previsioni in piani, e la schedulazione stabilisce la sequenza dei lavori. In questa lezione vediamo la pianificazione gerarchica e la logica MRP, le regole di sequenza su una macchina con le dimostrazioni dell’ottimalità di SPT ed EDD, e la regola di Johnson per due macchine con un esempio di cui si dimostra l’ottimalità.

Dalla pianificazione alla sequenza

La programmazione procede per livelli, con orizzonti sempre più brevi:

  1. il piano aggregato (mesi): capacità, turni, livelli di magazzino per famiglie di prodotti;
  2. il piano principale di produzione (MPS, settimane): quali prodotti finiti, quanti e quando;
  3. il calcolo dei fabbisogni di materiali (MRP): partendo dall’MPS e dalla distinta base (l’elenco dei componenti di ogni prodotto, livello per livello), si calcolano per ogni componente le quantità nette da produrre o acquistare, sottraendo le scorte disponibili, e le date di rilascio degli ordini, anticipandole del tempo di approvvigionamento;
  4. la schedulazione (giorni, ore): la sequenza dei lavori su ciascuna risorsa.

Un’automobile ha migliaia di componenti; una scheda elettronica centinaia. Calcolare a mano i fabbisogni sarebbe impossibile: l’MRP è stato una delle prime grandi applicazioni dei calcolatori nelle aziende, ed è il cuore dei sistemi ERP.

Una macchina: SPT ed EDD

Si devono eseguire n lavori su una macchina, con durate p_j e date di consegna d_j. Diverse regole ottimizzano obiettivi diversi.

Teorema (SPT). Eseguire i lavori in ordine di durata crescente (shortest processing time) minimizza il tempo medio di completamento.

Dimostrazione. È lo stesso argomento di scambio della pianificazione della CPU (lezione sulla pianificazione di Sistemi operativi): se due lavori consecutivi sono in ordine “lungo prima di breve”, scambiandoli il completamento del breve anticipa della durata del lungo e quello del lungo ritarda della durata del breve, quindi la somma diminuisce; gli altri lavori non cambiano. L’ottimo non ha inversioni. ∎

Teorema (EDD). Eseguire i lavori in ordine di data di consegna crescente (earliest due date) minimizza il ritardo massimo L_{max} = \max_j(C_j - d_j).

Dimostrazione. Si considerino due lavori consecutivi i e j con d_i \gt  d_j e i prima di j, che iniziano all’istante t e finiscono entrambi entro T = t + p_i + p_j. Prima dello scambio j finisce in T, con ritardo T - d_j, che è il maggiore dei due (perché i finisce prima di T e ha scadenza più lontana). Dopo lo scambio j finisce prima di T, e i finisce in T con ritardo T - d_i \lt  T - d_j. Il massimo dei due non aumenta, e gli altri lavori non cambiano. Eliminando una a una le inversioni si arriva all’ordine EDD senza peggiorare. ∎

Nessuna delle due regole è buona per tutto: SPT può far aspettare a lungo i lavori lunghi; EDD ignora le durate. Per minimizzare il numero di lavori in ritardo esiste un algoritmo apposito (Moore-Hodgson); per obiettivi più complessi i problemi diventano rapidamente intrattabili e si usano euristiche.

Due macchine: la regola di Johnson

Ogni lavoro passa prima sulla macchina M_1 (durata a_j) e poi su M_2 (durata b_j), nello stesso ordine. Si vuole minimizzare il tempo totale (makespan). Johnson (1954) ha dato la regola ottima:

  1. i lavori con a_j \le b_j vanno all’inizio, in ordine di a_j crescente;
  2. gli altri vanno alla fine, in ordine di b_j decrescente.

L’idea è tenere M_2 occupata il prima possibile (all’inizio i lavori brevi su M_1) e non lasciarla con molto lavoro alla fine (in fondo i lavori brevi su M_2).

Esempio. Cinque lavori (a_j, b_j): J1 (3, 6), J2 (5, 2), J3 (1, 2), J4 (6, 6), J5 (7, 5). Primo gruppo, per a crescente: J3, J1, J4. Secondo gruppo, per b decrescente: J5, J2. Sequenza J3, J1, J4, J5, J2.

Sequenza di Johnson su due macchine
Sulla macchina M 1 i lavori J3, J1, J4, J5, J2 si susseguono senza pause fino all’istante 22. Sulla macchina M 2 ogni lavoro inizia quando ha finito su M 1 e M 2 è libera; l’ultimo, J2, finisce all’istante 24.

Su M_1 i lavori finiscono agli istanti 1, 4, 10, 17, 22; su M_2 a 3, 10, 16, 22, 24. Il makespan è 24.

Ottimalità nell’esempio. Qualunque sequenza deve impegnare M_1 per \sum a_j = 22, e dopo l’ultimo lavoro su M_1 serve ancora almeno la sua durata su M_2, che vale almeno \min_jb_j = 2. Quindi nessuna sequenza finisce prima di 24, e la sequenza di Johnson raggiunge il limite. (La dimostrazione generale usa ancora uno scambio tra lavori adiacenti.)

Con tre o più macchine il problema diventa NP-difficile e si usano euristiche; la regola di Johnson resta utile quando due macchine dominano, per esempio una stazione di montaggio seguita da un collaudo.

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
0
Would love your thoughts, please comment.x
()
x