Sei sulla pagina 1di 74

Lezione 15 - 26/11/20

Nozioni di base sulla variabilità (di processo)

Capiremo come la variabilità come condiziona le performance di sistema, capendo le cause e come
affrontarla, se occorre migliorarla e le conseguenze nel flusso produttivo.

Per i tempi ercheremo di riferirci al coefficiente di variazione, ossia un nuovo parametro che crea
un legame tra media e varianza.

•Una definizione formale di variabilità è la caratteristica di non uniformità di una classe di entità.

• Le dimensioni fisiche, i tempi di processamento, i tempi di guasto/riparazione della macchina, le


misure di qualità, le temperature, i tempi di messa a punto e così via sono esempi di caratteristiche
soggette a non uniformità. (ossia alla variabilità)

• La variabilità è strettamente associata (ma non identica) alla aleatorietà. Voglio quantificare
l’aleatorietà: quanto il nostro processo è soggetto a variabilità?

Contro la variabilità casuale non si può fare niente: l’unica cosa che posso fare è mettermi in
sicurezza.

1
 La media è una media aritmetica (“-“ è un cappellino e vuol dire che sto parlando di valore
campionato, poiché calcolata sul campione).

 La varianza non ha la stessa unità di misura della media. Pertanto se il mio processo ha una
media di 10 minuti, la varianza avrà un’unità di misura del tipo min 2 (ad es. se la varianza è 2 e
la media è 10, è sbagliato dire che i valori del processo variano tra 10-2 e 10+2, poiché la
varianza ha un’altra unità di misura).

Questo perché la varianza è solo una variabile statistica. Essa non ci dice quanto è grande
l’intervallo di variazione, ma solo di quanto varia un certo numero nell’intervallo di variazione.

La varianza è utile per valutare la deviazione standard (come radice quadrata della varianza).
Essa ci consente di stimare in modo approssimativo in che “zona” dell’intervallo di variazione
ricadranno gran parte dei valori analizzati: il 66% di questi (ad es.) ricadranno nell’intervallo
compreso tra [media-deviazione standard; media+deviazione standard].

Per questi motivi, i produzionisti non amano parlare di varianza, ma di tempo minimo e
massimo.

 Il coefficiente di variazione ci dice quanta variabilità ho nel processo ed è un numero che può
venire >1, ma 1 fa da spartiacque: (ad essere precisi, gli spartiacque sono 0.75 e 1.33)

- Se CV=1 viene un processo memoryless (distribuzione esponenziale) poiché


media=varianza.
Un processo memoryless è anche detto processo markoviano
- Se CV<1 ho una buona distribuzione poiché il processo è in controllo, se è di poco <1 mi fa
anche piacere poiché esiste sempre un minimo di variabilità (che chiameremo naturale).

- Se CV>1 vuol dire che ho troppa variabilità, è un problema.

2
Variabilità dei tempi di processamento

I tempi di processamento possono essere influenzati da diverse cause di variabilità (variabilità


naturale, variabilità dovuta ad interruzioni, setup, guasti, e così via). Esistono 3 classi di variabilità:

La prima (LOW) è caratterizzata da tempi di processamento senza interruzioni; la seconda (MV) ha


tempi di processamento con piccoli aggiustamenti (tempi di setup); la terza (HV) ha tempi di
processamento con lunghe interruzioni.

Quando c≤0.75 siamo nell’ambito di variabilità naturale: non posso migliorarla perché esisterà
sempre (ad es. perché gli operatori sono tutti diversi).

Una variabilità da moderata ad alta diminuisce le prestazioni del sistema, anche se il valore medio è
relativamente piccolo. Ciò è dovuto alla generazione di fenomeni di coda.

Il grafico di sinistra è la PDF (probability density function) di una distribuzione a basso


coefficiente di variazione (CV), in cui la probabilità di individuare valori di ascisse pari alla media
(20) è molto elevata (questo perché le ordinate indicano la probabilità di “pescare” l’ascissa
corrispondente; nel nostro caso l’ascissa “20” ho la probabilità più alta poiché ha l’ordinata
maggiore).

3
Il grafico di destra indica anch’esso la PDF, ma confronta due distribuzioni aventi stessa media e
differente coefficiente di variazione. Vediamo che la curva con coefficiente di variazione moderato
(a differenza di quello low) è meno stretta e più bassa: quindi, la probabilità di pescare valori
differenti al valor medio è maggiore.

I tempi di processo ad alta variabilità sono generati da fenomeni che avvengono a bassa frequenza
ma ad alta intensità (interruzioni). • In questo caso, la coda della distribuzione è significativa.

Il grafico di sinistra confronta le PDF di due distribuzioni con differente coefficiente di variazione
(basso e alto). Vediamo che per quella con coefficiente di variazione basso ho maggiore probabilità
di pescare valori differenti a quello medio.

Il grafico di destra, invece, zooma quello di sinistra ed evidenzia che per alcuni intervalli di
osservazione le distribuzioni ad elevato coefficiente di variazione hanno valori che possono essere
circa equiprobabili.

4
Cause di variabilità

• Per identificare le strategie di gestione dei sistemi di produzione a fronte della variabilità,
è importante innanzitutto comprendere le cause della variabilità.

• Le fonti di variabilità più diffuse negli ambienti di produzione sono le seguenti:

Variabilità Naturale

La variabilità naturale è insita nel tempo naturale del processo. Nella variabilità naturale metto tutte
le variabilità di cui non conosco le cause (tipo la natura di Hegel, filosofia). Essa esclude:

La variabilità naturale tiene conto di fonti di variabilità che non sono state esplicitamente
richiamate. Queste fonti sono tipicamente legate all'operatore, quindi c'è una variabilità più naturale
nei processi manuali che in quelli automatizzati. Pertanto l’azienda cerca di automatizzare i processi
per abbassare la variabilità naturale.

• Il coefficiente di variazione dei tempi naturali di processamento:

dove t0 e σ0 sono, rispettivamente, la media e la deviazione standard dei tempi naturali di


processamento

Nella maggior parte dei sistemi, i tempi naturali di processo hanno LV e pertanto c0 < 0.75.

5
Se in un processo produttivo la variabilità che calcolo ci viene maggiore di 0.75 c’è un
problema: (1) potrei aver sbagliato i conti; (2) potrei avere inserito (nel calcolo della
variabilità naturale) dei tempi che appartengono ad altre variabilità e non a quella naturale.

Come si calcola co? Ad esempio, utilizzando un cronometro e misurando il tempo che intercorre
tra quando arriva il pezzo alla macchina e quando esce. Dopo aver effettuato un buon numero di
misurazioni, calcolo il valor medio e la deviazione standard dei tempi di processamento. Fatto ciò,
ne faccio il rapporto e trovo co.

I tempi di processo naturali sono solo il punto di partenza per valutare i tempi di processo effettivi.
In qualsiasi sistema di produzione reale, le postazioni di lavoro sono soggette a vari detrattori,

– tempi di fermo macchina,


– setups,
– Indisponibilità dell’operatore,
–…
che contribuiscono ad incrementare sia la media che la varianza dei tempi effettivi del processo.

Variabilità da interruzioni preemptive (preemptive=incontrollabili)

Le interruzioni preemptive si verificano senza nessuna possibilità di controllo da parte dell’uomo, e


tipicamente sono le principali cause di variabilità nei sistemi produttivi.

Per vedere come le interruzioni della macchina causino la variabilità, consideriamo due macchine
parallele ognuna con la propria linea:

6
Supponiamo che entrambe le macchine abbiano la stessa variabilità naturale, rappresentata da una
deviazione standard σ0 = 3.35 min.

• Inoltre, entrambe le macchine sono soggette a guasti e hanno la stessa disponibilità a lungo
termine del 75%.

• Tuttavia, l'M1 ha interruzioni lunghe ma poco frequenti, mentre l'M2 ha interruzioni brevi e
frequenti.

MTTF = tempo medio al fallimento


MTTR = tempo medio alla riparazione

Dal principio le due macchine hanno la stessa capacità nominale, devono soddisfare la stessa
domanda giornaliera, devono garantire lo stesso TH (2.875) e la stessa variabilità naturale σ0
.Inoltre, dai conti fatti, hanno anche la stessa disponibilità A.

Nonostante ciò una delle 2 macchine ha un problema che dobbiamo individuare.

7
Facciamo una prima ipotesi: teniamo conto della variabilità considerando i detrattori temporali.

Il tempo effettivo di processamento di entrambe le macchine può essere calcolato, in modo da


tener conto dell'effetto medio dell'indisponibilità:

Osserviamo che le macchine erano state vendute con una capacità nominale di 4job/ora, ma
considerando i detrattori (insiti nella disponibilità) siamo già arrivati a 3 job/ora.

• Considerando solo gli effetti medi dei guasti, entrambe le macchine sembrano essere equivalenti.

Tuttavia, se includiamo gli effetti di variabilità, le postazioni di lavoro sono molto diverse. Ad
esempio, se volessimo coprire un guasto generico medio delle macchine con uno stock messo
immediatamente a valle, il WIP delle due macchine sarebbe diverso.

Il problema è insito nel MTTRM1 poiché un tempo di riparazione così lungo mi ferma i processi a
valle della macchina M1. In questo modo la linea, associata alla macchina M1, funzionerebbe a
singhiozzo. Per risolvere questo problema devo mettere più WIP in modo da accumulare del
materiale a valle della macchina M1 per far si che i processi a valle possano funzionare.

Quindi decido di accettare il guasto nella linea, ma per farlo devo garantire un WIP M1=12. In questo
modo la macchina successiva ad M1 lavorerà lo stesso e nel frattempo posso riparare M1.
Tipicamente si è soliti lavorare con un certo margine di sicurezza e bufferizzare con valori più alti
(anziché 12, preferisco approssimare a 20 per lavorare in sicurezza). Ovviamente aumentando il
WIP diminuisce il CT e sono meno competitivo sul mercato.
8
Poiché i guasti sono casuali, M1 ha bisogno di un elevato WIP per compensare gli effetti di
variabilità rispetto a M2. Il risultato è che una linea con M1 sarà meno efficiente (cioè avrà un
tempo di ciclo e WIP più elevato per ottenere la stessa produttività) rispetto alla stessa linea con
M2. Quindi, considerando gli effetti della variabilità, M2 è migliore di M1 anche se mediamente
sono equivalenti.

Facciamo un’altra ipotesi: maggiore variabilità (ci mettiamo in una situazione di memoryless, cr=1)

Supponendo che le TTF siano distribuite in modo esponenziale, possiamo ottenere alcune equazioni
per stimare la variabilità dei guasti.

MTTF
La prima equazione è banale, al denominatore abbiamo A=
MTTF+ MTTR

La seconda equazione è difficile da determinare, ma ciò che ci interessa sapere è che la varianza
effettiva può essere scritta come somma di 2 aliquote: una legata alla variabilità naturale ( σ0) ed una
alla varianza dei TTR (σr).

La terza equazione si ottiene banalmente dalle prime due.

Il coefficiente di variazione quadratico è somma di 3 aliquote: una legata a c0 , una legata al MTTR
(mr) ed una legata a cr.

Possiamo vedere che anche un tempo di riparazione deterministico causa variabilità. Ciò è
dovuto al fatto che una riparazione produce un arresto del flusso anche se il tempo di riparazione è
deterministico. Infatti ponendo cr2 = 0 (che equivale a considerare una situazione deterministica) ho

9
ancora una certa variazione poiché il coefficiente di variazione vale . Questa
variabilità è insista nella disponibilità A che include le riparazioni ed i guasti.

Ce12 più grande equivale a dire che la variabilità complessiva dei tempi di processamento della
macchina 1 è maggiore. Inoltre, qui vediamo il motivo per cui la macchina 1 ha più WIP: essendo
più variabile nei tempi, un modo per mascherare le inefficienze è riempirla di WIP.

Questa analisi porta alla conclusione che una macchina con interruzioni frequenti ma brevi è
preferibile ad una macchina con interruzioni poco frequenti ma lunghe, a condizione che le
disponibilità siano le stesse.

Tipicamente operiamo a cr=0, proprio perché è difficile da determinare: valutare cr vorrebbe dire
considerare anche tutti gli eventuali guasti ed ipoteticamente avrei una stima affidabile solo quanto
devo buttare la macchina.

Variabilità da interruzioni non-preemptive (non incrontrollabili)

• Le interruzioni non-preemptive rappresentano tempi di inattività che inevitabilmente si


verificheranno, ma per i quali abbiamo un certo controllo sul momento esatto in cui si verificano.

• Alcuni esempi sono i setup, i piccoli arresti dovuti alle ispezioni e alle normative delle macchine,
e così via.

• Quindi, in una interruzione non-preemptive, il job termina il processo prima che l’interruzione si
verifichi.

Poiché la fonte più comune di interruzioni non-preemptive è la configurazione delle macchine,


inquadreremo la nostra discussione in questi termini.

Come nel caso delle interruzioni preemptive, il calcolo della capacità media non analizza
completamente gli impatti di setup non-preemptive.

10
L'analisi della capacità media ci dice solo che le configurazioni brevi sono migliori di quelle
lunghe. Non può valutare le differenze tra una macchina lenta con setup corti e una veloce con setup
lunghi che hanno la stessa capacità effettiva.

• Supponiamo di confrontare due macchine, M1 e M2, che elaborano sequenze di job. Quando il
tipo di job cambia, è necessario un setup sulla macchina.

La macchina 1 è la più veloce, ma richiede un tempo di setup significativo.

La macchina 2 è la più lenta, ma ha una flessibilità così alta che non c'è bisogno di effettuare i setup
(cioè, il tempo di setup è 0).

Dire che il tempo di setup=0 equivale a considerare l’uomo: l’essere umano è la “macchina” più
flessibile e può passare da una parte all’altra del processo senza sostenere tempi di setup.

I parametri medi che caratterizzano le nostre macchine possono essere calcolati come segue:

Nella prima relazione sto “spalmando” i tempi di setup sul lotto.

11
ts
teM 1=t 0+
Ns

teM 2=t 0 poichè itempi di setup sono nulli

Considerando i tassi medi di processo, le due macchine


sembrano essere equivalenti.

Come fatto nel caso preemptive, analizziamo ora le due macchine dal punto di vista della
variabilità.

Se ipotizziamo che il numero medio di job processati (Ns) tra un setup e l'altro derivi da un
processo senza memoria mi libero della variabilità di Ns e possiamo ottenere:

La prima equazione è diversa da quella del caso precedente, ma anche qui ho la somma di 3
aliquote. All’aumentare di ts (tempo di setup) aumenta la varianza.

Dire che Ns deriva da un processo memoryless è un’ipotesi forte, ma non è campata in aria perché
questa quantità può essere controllata (seppur minimamente).

L'ipotesi fatta è realistica quando la media e la deviazione standard del numero di job processati tra
i setup sono uguali, quindi

𝑐𝑁𝑠 = 1

Applichiamo la formula sopra riportata al nostro caso, supponendo che M1 sia una macchina
automatica sui tempi di processamento:

12
Sia la variabilità del processo (la prima) che quella dei tempi di setup (la seconda) hanno valori
molto bassi, questo vuol dire che il processo è automatizzato.

M2 deve essere azionato manualmente, quindi il coefficiente di variazione del tempo di


processamento è superiore a quello di M1:

Questo valore rientra ancora nell’ambito della variabilità nautrale, inoltre non ho cs M2 perché il
tempo di setup della seconda macchina è nullo.

Calcoliamo ora i coefficienti di variazione al quadrato delle due macchine, ricordando che

L’ultima uguaglianza è vera perché la macchina 2 ha tempi effettivi di processamento


corrispondenti con quelli naturali.

Questi sono ottimi risultati, ma ci inducono a riflettere: un processo manuale non è detto che sia
peggio di quello automatizzato; in termini medi conviene quello automatico (c 0=0.25), ma in
termini variabili dipende dai dati del mio problema.

Così, la macchina M2, la macchina più variabile senza setup, ha meno variabilità complessiva
rispetto alla macchina M1, la macchina meno variabile con setup.

Naturalmente, questa conclusione è stata una conseguenza dei numeri specifici dell'esempio. Per
esempio, se M1 avesse un setup più breve (ts = 1 ore) dopo una media di Ns = 5, la capacità
effettiva rimarrebbe invariata, ma la variabilità effettiva diminuirebbe a c𝑒2 = 0.16, quindi meno di
quello di M2.

13
Solitamente quando analizziamo un processo (ad es. una macchina) prima facciamo una valutazione
sui guasti (considerando le diverse alternative d’intervento) e poi ragioniamo sui setup. Infine
decidiamo quale aspetto penalizzare in base ai costi. Impara questa tabella, sarà chiesta all’esame.

Variabilità del flusso

Il flusso si riferisce al trasferimento di lavori o parti da una stazione all'altra.

Sinora abbiamo parlato della variabilità della macchina. Ora consideriamo una linea in cui ho più
macchine le cui variabilità condizionano il rateo di arrivo finale.

Chiaramente, se una stazione di lavoro a monte ha tempi di processo altamente variabili, il flusso
che alimenta le stazioni di lavoro a valle sarà anch'esso altamente variabile (le variabilità si
cumulano)

• Pertanto, per analizzare l'effetto della variabilità sulla linea, dobbiamo caratterizzare la variabilità
dei flussi.

• Il punto di partenza per lo studio dei flussi è l'arrivo dei lavori ad una singola postazione di lavoro.
La partenza da questa postazione di lavoro sarà a sua volta l'arrivo ad altre postazioni di lavoro.

• Quindi, per caratterizzare la variabilità del flusso, dobbiamo descrivere la variabilità degli arrivi
ad una postazione di lavoro e determinare come questo influisca sulla variabilità delle partenze da
quella postazione.

Il primo indicatore degli arrivi ad una postazione di lavoro è il tasso di arrivo, ra , misurato in job
per unità di tempo. Il tasso di arrivo è il reciproco del tempo medio tra gli arrivi ta
14
Affinché la postazione di lavoro sia in grado di tenere il passo con gli arrivi, è essenziale che la
capacità superi il tasso di arrivo, quindi

𝑟𝑒 > 𝑟𝑎

Nei casi realistici, cioè in presenza di variabilità, la capacità deve essere strettamente superiore al
tasso di arrivo per evitare che la stazione si sovraccarichi.

Come per il tempo di processamento, possiamo definire la variabilità dei tempi di interarrivo
attraverso il coefficiente di variazione (CV).

Queste linee indicano le linee di produzione, i pallini rappresentano i jobs. Sopra ho un flusso più o
meno ordinato; sotto ho la situazione peggiore, poiché ci sono dei momenti in cui ho produttività
nulle ed altri in cui sono elevatissime.

Per caratterizzare le partenze dalla postazione di lavoro, possiamo utilizzare misure analoghe a
quelle utilizzate per descrivere gli arrivi (tempo medio tra le partenze td , tasso di partenza rd ).

15
In una linea di produzione in serie (o produzione a flusso), dove tutta l'uscita dalla stazione di
lavoro i diventa ingresso alla stazione di lavoro i + 1, il tasso di partenza da i deve essere uguale al
tasso di arrivo a i + 1.

• Infatti, in una linea di produzione in serie senza perdita di rendimento o rilavorazione, il tasso di
arrivo ad ogni postazione di lavoro è pari al TH della linea.

• Inoltre, in una linea seriale dove le partenze da i diventano arrivi a i + 1, il CV di partenza della
stazione di lavoro i è lo stesso del CV di arrivo della stazione di lavoro i + 1.

• L'unico problema che resta da risolvere riguardo alla variabilità dei flussi è come caratterizzare la
variabilità delle partenze da una stazione in termini di informazioni sulla variabilità degli arrivi e
dei tempi di processamento.

• La variabilità delle partenze da una stazione è il risultato sia della variabilità degli arrivi alla
stazione che della variabilità dei tempi di processamento.

• Il contributo relativo di questi due fattori dipende dall'utilizzo della postazione di lavoro

L'utilizzo di una postazione di lavoro, u, è la frazione di tempo che è occupata nel lungo periodo,
quindi, per una postazione di lavoro formata da m macchine identiche:

Poiché il limite superiore per u è 1, il tempo effettivo del processo deve soddisfare:

• Se u è vicino a 1, la stazione è quasi sempre occupata. Pertanto, in queste condizioni, gli


intertempi di partenza dalla stazione saranno essenzialmente identici ai tempi di processo. Così ci

16
aspetteremmo anche 𝑐𝑑 = 𝑐𝑒 . Una macchina ad u=1 quando si guasta rallenterà di molto le
prestazioni delle altre macchine.

• All'altro estremo, quando u è vicino a 0, la stazione è molto scarica. Praticamente ogni volta che
un job è finito, la stazione deve aspettare a lungo prima che un altro lavoro arrivi. Quindi, in queste
condizioni ci si aspetterebbe 𝑐𝑑 = 𝑐a

Un buon e semplice metodo per l'interpolazione tra questi due estremi è quello di utilizzare il
quadrato dell'utilizzo come segue:

Stiamo legando la variabilità di partenza a quella di arrivo, di processamento e al coefficiente di


utilizzazione.

Quando c'è più di una macchina in una stazione (𝑚 > 1) , il seguente è un modo ragionevole per
stimare 𝑐𝑑 2 :

La due relazioni di sopra sono approssimate: la prima è legata ad una sola macchina, la seconda si
estende a più macchine.

17
Lezione 16 – 01/12/2020

Interazione della variabilità – Queueing


• I risultati precedenti relativi alla variabilità dei tempi di processamento e alla variabilità dei flussi
sono elementi costitutivi per caratterizzare gli effetti della variabilità nell'intera linea di produzione.
• Passiamo ora al problema di valutare l'impatto di questo tipo di variabilità sulle misure chiave
delle prestazioni di una linea, ovvero WIP, tempo di ciclo e produttività.

Con la teoria delle code tireremo fuori i coefficienti (CT,TH,WIP) della linea produttiva.

• La variabilità produce tempi di attesa, che vengono spesi dai job in coda quando arrivano ad una
postazione di lavoro.

•La scienza che modella i fenomeni di accodamento è la teoria delle code.

• Un sistema di code combina i componenti che sono stati considerati finora: un processo di arrivo,
un processo di servizio (cioè di produzione) e una coda. • Il compito della teoria delle code è quello
di caratterizzare le misure di performance in termini di parametri descrittivi.

• Useremo la notazione di Kendall per definire un sistema di code:


18
b potrebbe essere anche assente, ma in generale indica il numero massimo di job nel sistema. I
valori tipici per A e B sono:

Alcune relazioni fondamentali

nella seconda uguaglianza sto soltanto esplicitando re se ho più macchine;

Il tempo di ciclo trascorso alla stazione e quello trascorso in coda:

Dove CTq=cycle time che impiego nella coda come WIP, mentre te= tempo effettivo di processamento

Se esistono due CT posso definire due WIP, sfruttando la legge di little applicata alla stazione e alla
coda:

19
WIP=wip che comprende tutto

WIPq=wip di coda; se tutto torna (e sono a regime) WIPq=WIP-m , perché potrei avere una stazione che ha
3 macchine (m=3) e di conseguenza il wip di lavorazione sarà 3.

Dove 𝑇𝐻 = 𝑟𝑎 se la coda non è limitata nelle dimensioni (𝑟𝑒 > 𝑟𝑎), altrimenti il throughput deve
essere calcolato in modo specifico.

Questa considerazione (coda non limitata) è mediamente vera, se la cosa fosse limitata il TH sarebbe
condizionato da altri parametri di performance e quello valutato in precedenza rappresenterebbe sono un
throughput potenziale.

Il modello di coda M/M/1

Questo è il modello di coda più semplice, dato che le ipotesi sono tempi di interarrivo e di processo
esponenziali, macchina singola, protocollo "first-come first-served" e spazio illimitato per i lavori
in attesa in coda.

I job mi arrivano con una distanza dei tempi esponenziale: se dico che mi arrivano con una media di 10min,
significa che ogni 10 minuti mediamente arriva un job. Quindi posso dire che in un’ora me ne arrivano 6, ma
l’inghippo è che sono solo valori medi (potrebbe capitare che mi arrivano 2 jobs a distanza ravvicinata, poi il
resto molto lontani).

- In una coda MM1 non dobbiamo porci il problema della variabilità: questo poiché quando si accetta
l’ipotesi di distribuzione esponenziale (memoryless) si può ragionare con i termini medi ed ottenere
risultati esatti (mediamente) nel lungo termine. Conoscere le performance di lungo termine è
fondamentale per dimensionare il processo, quindi questa ipotesi non è campata in aria.
- Dire che la macchina è singola, ci dice che la stazione ha una sola macchina.
- Protocollo first-come first-served: il primo che arriva è quello che viene servito (first-in, first-out). Questa
ipotesi è tipicamente quella che performa peggio, poiché mediamente questa logica va a sottostimare (il
che ci consente di metterci in sicurezza).

20
Dovemmo dire M/M/1/0 e rispettivamente equivale a dire: tempi di arrivo esponenziale/tempi di process.
esponenziali/macchina singola/coda illimitata(manca la b, ma dovremmo 0).

Guardando l’immagine di sopra impariamo a leggere un processo Markoviano: i pallini sono gli stati nella
nostra stazione. Lo stato 0 significa che la stazione non ha WIP (quindi la stazione è ferma). Lo stato 1
indica che la stazione ha 1 WIP (e quindi sta processando il job); adesso potrebbe interessarci sapere da
quanto tempo il job è allo stato 1, ma ricordiamo che la distribuzione dei tempi è di tipo memoryless, quindi
non ci interessa (poiché non ci direbbe nulla sul futuro). Nello stato 2 ha 1 job in coda ed 1 job in
processamento. Nello stato 3 ho 2 job in coda ed 1 in processamento. Nello stato n ho (n-1) job in coda e 1
job in processamento. Ho sempre un solo job in processamento poiché sto considerando una stazione a
singola macchina.

Supponiamo che ogni stato (0,1 ecc) abbia una certa probabilità di accadimento. Esiste una legge che mi
consente di passare da uno stato all’altro. Questa legge è detta di Birth and Death (nascita o arrivo, morte
o uscita). Per noi la nascita è dettata dal rateo di arrivo (ra), quando il job muore torna indietro secondo il
rateo di uscite (re).

A regime (steady-state), è possibile dire che il sistema si muove dallo stato n-1 allo stato n con
probabilità pari a:

Analogamente, il sistema ritorna dallo stato n allo stato n-1 con probabilità pari a:

Visto che il sistema è stabile (poiché è a regime), queste due probabilità non possono che essere
uguali

Le uguagliamo poiché il processo è stabile: probabilità di spostarsi tra i processi sono le stesse

Osservando che 𝑢 = 𝑟𝑎/𝑟𝑒 , possiamo dire che la probabilità di trovarmi ad un generico stato n vale:

Dalla definizione di utilizzazione, segue che la probabilità a lungo termine che la stazione non sia
utilizzata sarà pari a 𝑝𝑜 = 1 − 𝑢, pari proprio alla probabilità di trovarsi allo stato 0.

21
Vera la precedente equazione, possiamo quindi ricavare le diverse probabilità degli stati futuri,
come:

La somma di queste probabilità, essendo riferite allo stesso sistema, deve essere pari a 1:

Notiamo che se 𝑢 ≤ 1, la serie di funzioni a sinistra converge verso un valore


1 1
Da dividendo tutto per p0, ottengo (1 + u + u2 + ..) = =
p 0 1−u
=¿ ∑ un
n =1

è banalmente una media pesata con le probabilità degli stati

0∗po+1∗p 1+..+ n∗pn = 0∗po+1∗p 1+..+ n∗pn poiché


p 0+ p 1+..+ pn 1

la somma delle probabilità fa 1

(1-u) è indipendente dalla sommatoria, inoltre dopo


l’uguaglianza sto cambiando gli indici alla sommatoria (che ora parte da 1) poiché è come se
scorporassi una u.

d n
Ricordiamo che x =n x n−1
dx

22
Sostituendo, avremo che:

Per valutare il WIP mi basta l’utilizzazione u. Ricordando, però, che nell’utilizzazione sono
compresi i tempi di processamento (u=ra/re).

Le misure di performance sono:

Studiando la funzione WIPM/M/1 (con u sulle ascisse) ci rendiamo conto che tende asintoticamente ad
1. Quindi quando l’utilizzazione tende al valore unitario, il WIP M/M/1 tende a valori elevatissimi
(diverge). Questo è un problema.

• Le misure delle prestazioni sono esatte poiché il sistema è markoviano.

• Possiamo osservare che tutte le misure di performance aumentano all’aumentare di u.

• Inoltre, fissato u, CT e CTq aumentano al crescere di te . Quindi, per un dato livello di utilizzo, le
macchine più lente causano più tempo di attesa.

• Poiché le espressioni hanno il termine 1 - u nel denominatore, tutte le misure di congestione


esplodono quando ci si avvicina ad 1.

• Per esempio, consideriamo una macchina che deve soddisfare una domanda media

23
Supponiamo che sia i tempi di arrivo che quelli di processamento siano distribuiti in modo
esponenziale.
Quindi, possiamo modellare il sistema come una coda M/M/1.

Avere WIP=23 e CT=8h è tanto, in quanto avrei degli eccessivi extra-costi.


Possiamo notare che un elevato utilizzo della macchina, circa il 96%, porta ad un significativo
livello medio di WIP e tempo di ciclo. Inoltre, dobbiamo considerare che le misure di performance
calcolate rappresentano i valori medi nel lungo periodo, quindi ci sono ovviamente periodi in cui la
coda raggiunge valori più grandi rispetto alla media.

Il modello di coda G/G/1

• Questo modello permette di stimare il tempo di ciclo in un sistema caratterizzato da tempi di


arrivo generali e tempi di processamento generali (ossia quando non è verificata l’ipotesi di tempi di
arrivo e processamento esponenziali).

• Poiché il processo non è più privo di memoria, le misure di performance ottenute sono influenzate
da un'approssimazione.

• Tuttavia, le approssimazioni sono ragionevolmente accurate quando i (1) CV non superano di


molto 1 e (2) u tra 0,1 e 0,95.

24
Il tempo medio del ciclo è dato da (vedi Medhi, J., 1991. Stochastic Models in Queueing Theory.
Boston, MA: Academic Press)

Adesso ritornando i coefficienti di variazione a differenza del caso CT M/M/1; inoltre questa formula è
approssimata, in quanto riferita a tempi di processamento ed interarrivo generali (G).

Questa formulazione è chiamata equazione di Kingman, e separa chiaramente i contributi dei CV,
l'utilizzazione e il tempo effettivo di processamento.

Questa formulazione può essere ridotta all'esatta soluzione della coda M/M/1 sostituendo

e può essere derivata dall'equazione di PollaczekKhinchin.

Esempio: propagazione della variabilità in un flusso

Consideriamo una linea con due macchine che formano una serie.

Le due macchine hanno le stesse caratteristiche di quelle considerate nell'esempio delle interruzioni
preemptive: uguali in termini medi, ma con diverse variabilità.

25
•Supponiamo che gli arrivi alla prima macchina siano esponenziali con un tasso medio di arrivo pari
a 2.875 job/h, quindi

Il tempo medio di attesa per i job alla M1 è

Poiché M1 ha un elevato utilizzo e un'elevata variabilità del tempo di processo, ci aspettiamo che
anche la variabilità delle partenze sia elevata.

Quindi, abbiamo

poiché ra=TH che equivale a dire ra(i)=ra(i+1)=ra(i+2)

c2d1 indica la variabilità della partenza, ed è il coefficiente di variazione quadratico della partenza.

26
• Ora possiamo ottenere i parametri del flusso che entra nella macchina M2. Quindi abbiamo

Ora possiamo calcolare il tempo medio di coda trascorso dai job in M2

Da questa equazione è evidente vedere che la variabilità di M1 influisce su quella di M2: il


numeratore, infatti, ha un termine del tipo (5.82+1).

Anche se M2 ha un tempo di processo caratterizzato da una bassa variabilità, l'alta variabilità degli
arrivi prodotti da M1 ha generato l'alto tempo di ciclo in coda a M2.

Se M2 fosse alimentato da arrivi moderatamente variabili, come ad esempio con 𝑐𝑎 = 1, allora la


sua performance sarebbe rappresentata dalla coda M/M/1, con un tempo medio di coda pari a

Da questo risultato si conclude che soltanto riducendo la variabilità di arrivo (𝑐𝑎) il CT viene scalato di 1/3 circa.

Infine, è interessante dare un'occhiata a ciò che accade nel flusso in partenza da M2

Come si può vedere, M2 mitiga la propagazione della variabilità grazie al suo tempo di processo
stabile insieme all'elevato utilizzo.

27
M2 ci consente di mitigare, infatti non è detto che la variabilità si accumuli. In questo caso si
pongono WIP elevati a monte della macchina instabile ed una macchina molto stabile (ce 2=1) a
valle della macchina instabile. Pertanto la variabilità non è sempre un male, ma bisogna conoscerla.

Il senso delle nostre analisi: nonostante i tempi di processamento siano mediamente bilanciati, il
problema è che sono più variabili su una macchina (M1) piuttosto che su un’altra (M2). Quindi non
bisogna fermarsi alle sole valutazioni medie.

Il modello di coda M/M/m queuing model

Sinora abbiamo analizzato stazioni a macchina singola (M/M/1), adesso andiamo oltre.

• Questo è il modello di coda più semplice per macchine parallele, quindi consideriamo più
macchine.

• In questo modello, tutti i lavori aspettano in un'unica coda per la prossima macchina disponibile.

• Non si tratta quindi di un parallelo di sistemi M/M/1, in cui ogni sistema avrebbe una coda
dedicata.

Parlare di sistema M/M/3 non è la stessa cosa di parlare di 3 sistemi M/M/1: per i primi si ha
un’unica coda che alimenta 3 macchine parallele; per i secondi si hanno 3 code in parallelo che
alimentano 3 macchine parallele.

Un'approssimazione in forma chiusa del tempo di attesa in coda è la seguente

Si noti che quando 𝑚 = 1, questa equazione si reduce alla formula esatta della coda M/M/1.
Sakasegawa, H. 1977. An approximation formula Lq ≃α·ρβ/(1-ρ). Annals of the Institute of Statistical Mathematics, 29 (1), 67-75.

28
Esempio: coda M/M/m

Vediamo la differenza tra una coda M/M/3 ed una 3 volte M/M/1.

• Consideriamo una stazione alimentata da un flusso memoryless con

𝑟𝑎 = 8.625 job/h

In questa stazione, ipotizziamo di aggiungere macchine che hanno un tempo di processo


esponenziale, con un tasso di produzione effettivo medio pari a

𝑟𝑒 = 3 job/h

Vogliamo sapere qual è il numero minimo di macchine necessarie nella stazione e qual è la strategia
migliore per gestire i job in entrata (coda singola o separata). Il numero minimo di machine vale:

Per quanto riguarda la gestione delle code, se progettiamo il sistema con 3 code separate, adottando
un approccio «round-robin» per distribuire i lavori in entrata, in ogni coda arriveranno job con
tempi di arrivo esponenziali e con un tasso medio di 1/3 di quello principale

Quindi, abbiamo tre code identiche che funzionano come se fossero sistemi di coda M/M/1

Un generico job che arriva alla stazione passerà, in media, 7,66 ore in coda.

• Consideriamo ora il caso in cui i job attendono in un'unica coda che serve tutte e tre le macchine.
Prima di tutto, calcoliamo l’utilizzazione della stazione:

Come ci aspettavamo, è lo stesso di quello calcolato nel caso precedente, poiché, dal punto di vista
della media, il sistema funziona allo stesso modo.

29
D’altra parte, invece, il funzionamento della coda è differente. Infatti:

Come si può vedere, il tempo medio di ciclo con un’unica coda è inferiore a quello delle tre code
separate.

Il motivo è che, quando abbiamo una sola coda, un job che richiede un lungo tempo di
processamento può essere superato dagli altri in coda, che possono così andare alle altre macchine.
Al contrario, se le code sono separate a priori, un job che possiede un tempo di processamento
molto lungo blocca tutti gli altri job in coda

Conclusione: se ho più macchine in una stazione, è sempre meglio usare una coda singola per
minimizzare il CTq.

Il modello coda G/G/m

• Un'approssimazione accettabile per il tempo di ciclo in coda in una coda G/G/m può essere
ottenuta partendo dal caso M/M/1:

Allo stesso modo, si può scrivere la seguente approssimazione

È stato dimostrato che questa approssimazione funziona bene nella maggior parte dei casi (vedi Whitt,
W. 1983. The Queueing Network Analyzer. Bell System Technology Journal, 62(9), 2779-2815).

30
Fenomeni di Bloccaggio

• Finora abbiamo considerato sistemi in cui non c'è limite a quanto grande possa crescere la coda.

• In ogni sistema che abbiamo esaminato, la coda media (e il tempo di ciclo) cresce all'infinito man
mano che l'utilizzo si avvicina al 100%. Se limito la coda ho fenomeni di bloccaggio.

• Ma nel mondo reale le code sono limitate da limiti di spazio, tempo o politica operativa. Quindi, i
valori calcolati sinora sono soltanto delle misure potenziali.

• Risulta importante avere un modello per i sistemi in cui le code sono limitate.

Il modello coda M/M/1/b

b è il limite superiore del numero di jobs; ad esempio, b=4 vuol dire che il mio sistema ammette 3
jobs in coda ed 1 è in processamento (poiché 1/b).

• In questo modello di coda i tempi di interarrivo sono esponenziali, ma c'è spazio sufficiente solo
per le unità b nel sistema (in coda e in processo).

• Questo sistema si comporta più o meno nello stesso modo della coda M/M/1, tranne che ora, ogni
volta che il sistema diventa pieno, il processo di arrivo viene fermato (ad esempio un buffer).

• Quando ciò accade, si dice che il processo a monte è bloccato.

In questo caso, il tasso di arrivo 𝑟𝑎 assume un significato diverso rispetto ai modelli coda senza
limiti. Qui rappresenta il tasso di arrivo potenziale, supponendo che il sistema non sia pieno.

Quindi, 𝑢 = 𝑟𝑎 ⋅ 𝑡𝑒 non è più la probabilità a lungo termine che la macchina sia occupata, ma
rappresenta invece l’utilizzazione potenziale, se non vi fossero blocchi.
Di conseguenza, u può essere ≥ 1 poiché con il bloccaggio sto ammettendo ra > re.

In una coda con blocco, il throughput del sistema è dato da

e non più TH=ra

dove 𝑝𝑏 rappresenta la probabilità di avere b jobs all’interno della coda e, quindi una coda piena
bloccata a monte dagli arrivi. Quindi THcoda_limitata < THcoda_illimitata.

Tale probabilità può essere calcolata in termini esatti per il modello coda M/M/1/b.

31
Quindi, anche le altre misure di performance possono essere calcolate in termini esatti.
• Quando 𝑢 ≠ 1 noi abbiamo:

• Quando 𝑢 = 1 invece:

Per entrambi i casi, 𝑢 mantiene la stessa definizione dei modelli a coda non limitata

Possiamo usare la legge del Little per calcolare il tempo di ciclo, il tempo di coda e la lunghezza della coda

Nota: un sistema con una coda limitata ha un throughput sempre inferiore a quello di un
sistema con coda non delimitata

Tanto più è grande la coda (ossia b) e tanto minore è la riduzione di performance rispetto al
THcoda_illimitata

È chiaro che, limitando le code tra i processi (ad es. kanban) in sistemi caratterizzati da variabilità,
si ottiene una riduzione della produttività del sistema. Quindi, in un sistema JIT, lo spazio di coda e

32
il numero di kanban rilasciati devono essere dimensionati in modo da garantire la giusta copertura
dei fenomeni casuali che producono variazioni nei flussi di produzione.

Se la coda è limitata il sistema produttivo è prevedibile (poiché la variabilità è “controllata”).


Limitando le code il processo è più stabile, anche se ne perdo in produttività in termini medi.

Esempio

Consideriamo un sistema formato da due macchine disaccoppiate da un buffer con capacità


massima di 2 job.

Dal punto di vista della M2 il sistema è del tipo M/M/1/4, b=4 poiché considero i jobs di M1 ed M2
ed il buffer B=2.

I dati relativi al processo sono i seguenti:

Come si può vedere, abbiamo ipotizzato tempi di processo esponenziali. • Prima di tutto,
analizziamo il sistema a coda infinita.

Applicando il modello di coda M/M/1:

33
Analizziamo ora il caso con modello a capacità finita, adottando il modello coda M/M/1/b: prima di
tutto, dobbiamo calcolare il valore di b. Poiché nel sistema possiamo avere 1 job in ogni macchina
più due job nel buffer, la capacità massima del sistema è:

𝑏 = 1 + 2 + 1 = 4 job

Proseguiamo a calcolare il throughput

𝑊𝐼𝑃𝑃 rappresenta un WIP parziale poiché si riferisce al caso in cui M1 ha terminato l'elaborazione e
rimane bloccato poiché il buffer è pieno.

Questa è la situazione in cui M2 ha 3 job in coda, i 2 nel buffer e 1 nella macchina M1 bloccati.
Quindi, 𝑊𝐼𝑃𝑃 non include il WIP che viene elaborato alla prima macchina. In particolare, non
considera la situazione in cui ci sono 2 lavori nel buffer, e 1 nella macchina M1 in lavorazione.

Quindi, possiamo considerare che il tempo medio trascorso da un job nel sistema è il tempo
trascorso come WIP parziale alla macchina M2 più il tempo medio in processo alla macchina M1,
quindi

Un confronto tra il modello a coda infinita e i casi a coda limitata mostra che il WIP e il CT sono
costantemente ridotti, a spese di una perdita nel troughput di circa il 18%. Questo evidenzia il
motivo per cui il kanban non può essere implementato semplicemente riducendo le dimensioni del
buffer. La perdita nel throughput è tipicamente troppo grande.

Tanto più kanban metto e tanto più diminuiscono le performance, anche se il sistema è più
prevedibile: devo fare un trade-off tra le due cose. Questo sarà il compito del lean manager.
34
L'unico modo per ridurre il WIP e il CT senza sacrificare troppo il throughput è anche ridurre la
variabilità. Per farlo devo standardizzare il processo, ad esempio automatizzando (a parità di tempi
di lavorazione) posso ridurre la variabilità.

Una seconda osservazione che possiamo fare è che una coda limitata forza la stabilità,
indipendentemente dai valori di 𝑟𝑎 e 𝑟𝑒 . Il motivo è che il WIP, e di conseguenza la CT, non può
«esplodere» in un sistema con un buffer finito.

Per esempio, supponiamo che le due macchine siano state invertite nella linea, con quella più veloce
che alimenta quella più lenta. Se il buffer fosse infinito, il WIP andrebbe all'infinito (a lungo
termine), così come il CT.

Ma nel caso di buffer limitato:

Come si può vedere, il throughput non è influenzato dall'ordine delle macchine. Quest'ultimo
risultato è noto come reversibilità e vale anche per linee con più di due macchine e tempi di
processo generali.

Il WIP parziale, invece

Come si può vedere, avendo messo al primo posto la macchina più veloce, il WIP è aumentato,
quindi, come linea guida generale, in sistemi con buffer finiti, la capacità dovrebbe aumentare da
monte a valle.

Infine, possiamo calcolare il cycle time e il WIP totale come:

35
Lezione 17 - 03/12/20

La programmazione operativa

Siamo partiti da un piano aggregato di lungo periodo (cosa fare nel prossimo anno/anno e mezzo).
Una volta che ci siamo resi conto che tale panificazione era sostenibile, ci siamo occupati di
pianificare nel medio periodo con l’MPS in cui ci siamo interessati dei singoli prodotti. Verificata la
fattibilità devo realizzarlo e mi servono distinta base, lead time di produzione e stato dei magazzini.
Se ho questi elementi si procede con l’MRP. A valle della sua verifica di capacità procediamo.
L’MRP ci dava come output gli ordini di acquisto e produzione. Dopo ordini di produzione si hanno
quelli di schedualzione ed infine si ha un controllo dell’avanzamento della produzione. Negli ordini
di produzione daremo esecuzione alle ipotesi fatte dal principio.

MES (Manufacturing Exectution System) è un sistema informativo che programma, comunica,


monitora e controlla la produzione a livello di officina. Il sistema MES connette in tempo reale i
vari sistemi (supply chain, project project management, l’ERP).

36
I sistemi di esecuzione della produzione (MES) sono noti anche come sistemi di controllo in
officina (SFC). I MES, dunque, sono il punto di congiunzione tra officina ed azienda.

Il MES congiunge l’ERP, tramite il PLC (o altri software),


al resto dell’azienda (man and machines). Per un’azienda
con una logica simile si può iniziare a parlare di industria
4.0.

Con questa logica il piano di produzione arriva in officina


“cadendo” dall’alto. Con l’industria 4.0 il piano non arriva
dall’alto, ma saranno le macchine che parlano tra di loro ed
attivano un piano di produzione opportuno.
Non è detto che tutte le aziende abbiano
questo sequenziamento, però quelle che si avviano all’industria 4.0 sicuramente.

ERP – Enterprise Resource Planning – MES : Il sistema ERP può trasmettere i numeri d’ordine,
i numeri dei pezzi e le quantità fino al MES per la verifica ed il tracciamento, oppure può essere
un’interfaccio più semplice con l’ERP che riceve solo i conteggi di produzione dall’officina: così
tanti di un certo pezzo fatto in un certo centro di lavoro dall’ultimo aggiornamento.

37
LA PROGRAMMAZIONE OPERATIVA

APPLICAZIONE DELLE TECNICHE DI SCHEDULING

Nonostante l’MRP abbia detto cosa bisogna fare, si necessita di un’organizzazione sempre più
dettagliata, nello specifico nell’officina ovvero:

38
Lo scheduling è pertanto un processo di decisone che si pone in svariati contesti applicativi come ad
esempio

39
 Sistemi manufatturieri;
 Sistemi di elaborazione;
 Sistemi di distribuzione;
 Trasporti;
 Altri sistemi di servizio;

Le risorse, le attività (operazioni di un processo produttivo) e gli obiettivi (a cui far fronte nel
processo, ad ed. i costi o i tempi) di un processo di scheduling possono avere diversa natura.

Cos’è lo Schedule? Come l’MPS o l’MRP, anche lo nello schedule ho una “tabella” nella quale
vengono scanditi i tempi per le diverse attività tendendo conto delle risorse da utilizzare.

Dati:

 Un insieme di lavori (job): ognuno costituito da una o più operazioni;


 Un insieme di risorse (macchine) che devono essere utilizzare per eseguire i lavori;

Fasi dello scheduling ed il controllo dell’attività:

Obiettivi dello Scheduling:

 Rispettare le date di consegna;


 Minimizzare i lead time; i costi; i tempi di setup; le scorte in corso di lavorazione;
 Massimizzare l’utilizzo di macchine e forza lavoro.

Studiamo lo scheduling per assicurarci sistematicamente che la maggior parte di questi obiettivi
siano soddisfatti

IPOTESI ALLA BASE DEI MODELLI DI SCHEDULING

40
41
42
43
44
45
46
47
Criteri di pianificazione

48
Job Sequencing

Il sequencing stabilisce quale lavorazione avviare per prima su una data macchina o in un dato
centro di lavorazione.

Le materie prime (sulla sinistra) devono seguire un certo percorso. Le stazioni avranno a monte una
coda e bisogna scegliere quale job devo far lavorare per primo per ottimizzare i tempi di consegna.

L’ordine giungerà così ad un centro di lavoro, provenendo da un’attività precedente, ed al suo


arrivo si stimerà una coda oppure entrerà una sorta di competizione con gli altri job per l’accesso
ad una specifica apparecchiatura presente in quel centro di lavoro.

49
Per il job sequencing si utilizzano delle regole, dette regole di priorità, ne esaminiamo 8.

FIFO (first-IN, first-OUT)

50
SPT (shortest processing time)

Spesso è usata in combinazione con una regola sul ritardo, per scongiurare eccessivi ritardi delle
lavorazioni con tempi più lunghi (rischierei di non fare mai quelli con tempi più lunghi).

EDD (earliest due date first)

51
Può succedere che per poter rispondere alle date, potrei non avere una riduzione dei costi. Può
succedere che mi arrivano nuovi lavori al centro che avranno la priorità e gli altri andranno indietro.
Sicuramente i costi non saranno quelli ottimi, pertanto devo cercare di trovare un compromesso per
soddisfare la data di consegna ed i costi.

STR – slack time remaining – Tempo residuo

Questo metodo dice che gli ordini a “slack” minore (STR) vengono evasi per primi. Si calcola:

STR = tempo rimanente alla data di consegna – tempo di processo rimanente

Inoltre si effettua un rapporto


52
Una volta fatto ciò mi vado a prendere il rapporto che ha un valore più basso di tempo residuo.

Inoltre posso definire un rapporto critico CR – critical ratio

Gli ordini con il CR inferiore vengono evasi per prima.

 CR=1 il lavoro è puntuale;


 CR<1 il lavoro è in ritardo rispetto a quanto pianificato
 CR>1 il lavoro è in anticipo rispetto alla pianificazione, ossia un job è in anticipo rispetto al suo tempo

LIFO (last-IN first-OUT). Ultimo ad arrivare, primo a essere lavorato

Al loro arrivo, i materiali di lavorazione vengono messi in cima e di solito l’operatore preleva i
materiali a cominciare dall’alto.

Ordine casuale o random

Sovente supervisori e operatori scelgono a loro piacimento quale lavorazione effettuare.

Loudest Yeller First – Logica di chi fa più rumore

Non è realmente una strategia, ma consiste nel dare priorità al cliente che si lamenta di più.
Il cliente che chiama e si lamenta riceve la priorità; il capo che chiama e fa un giro di urla porterà a
una nuova sequenza nel programma.
53
Questa “strategia” non è utile per le prestazioni complessive del sistema, ma a seconda
dell’ambiente di lavoro, potrebbe essere necessario per salvare la carriera.

Efficacia delle Regole di priorità


Per valutare l’efficacia delle regole di priorità si usano delle misure standard di performance:

54
Confrontiamo qualcuna delle otto regole in una situazione di programmazione statica con quattro
lavorazioni su un’unica macchina ovvero “m lavorazioni su macchina singola”, semplicemente
“1/m”

Esempio

 LOGICA FIFO

Il Tempo flusso sarebbe il FlowTime.

Per la lavorazione A faccio 0+3, poiché prima del processo A è come se avessi un tempo di
processo nullo.

Vado a calcolare il FlowTimeMedio = flowtimetotale/intervalli = (3+7+9+15+16)/10 = 5 giorni;

55
Da questa tabella vedo chi è puntuale e chi è in ritardo: banalmente A è puntuale, poiché devo
consegnare il giorno 5 (data di consegna) ed arriva proprio il giorno 3 (tempo di flusso); invece B,
C,D ed E sono in ritardo, poiché ho un tempo di flusso sempre superiore alla data di consegna.

Da questa tabella posso anche estrapolare il ritardo medio: sommo i ritardi di ciascuna lavorazione e
divido questo tempo per il numero di lavorazioni (ritardo = tempo di flusso – data di consegna).

In conclusione, con la logica FIFO ottengo:

Ritardo medio: 4,86 giorni; FlussoMedio: 10 giorni; Solo un lotto sarà puntuale (A).

 LOGICA SPT

Ordino in base ai tempi di processo in ordine crescente. Anche qui valgono gli stessi discorsi di
prima.

Ritardo medio: 2.76giorni FlussoMedio: 7.2giorni; Solo le lavorazioni A B e D sono in ritardo

 LOGICA EDD

Questa regola è in funzione della data di consegna più prossima. La logica è sempre la stessa.
56
Ritardo medio: 2.4 giorni; FlussoMedio: 7.8giorni

 LOGICA LIFO

La prima ad entrare è la prima ad uscire.

Ritardo medio: 4giorni; FlussoMedio: : 9.2giorni; Solo le lavorazioni A B e C sono in ritardo

 LOGICA RANDOM

L’ordine è casuale, privo di logica. Ritardo medio: 5.4giorni; FlussoMedio: : 10.6giorni;

 LOGICA STR

57
Qui viene aggiunta un’ulteriore colonna di Tempo Residuo.

Ritardo medio: 3.6giorni; FlussoMedio: : 8.6giorni;

In questo caso, la SPT risulta migliore delle altre regole.

E’ sempre così? Questo dipende dall’azienda considerata. In questo caso (m/1) SI, per di più, è
matematicamente dimostrabile che la SPT genera una soluzione ottimale quando ho m jobs che
devono andare tutti in una macchina. (1/m)

Esempio: Rapporto Critico (CR)

58
Dalla definizione di rapporto critico andiamo a scrivere

Sicuramente il lavoro C è puntuale, mentre B che ha un CR<1 è in ritardo quindi va accelerato.


Dunque, darò priorità a B che deve essere velocizzato.

Sequenziamento di due macchine: Regola di Johnson o metodo di Johnson

Sinora abbiamo parlato di 1/m, ossia m jobs su di una macchina. Potrebbe capitare che in officina
ho due o più lavorazioni (jobs) che devono essere eseguite su due macchine in sequenza. Una
tecnica che individua una soluzione ottimale secondo determinati criteri è la regola di Johnson.

Obiettivo: minimizzare il tempo di flusso dall’inizio della prima lavorazione alla conclusione
dell’ultima.

59
Esempio: programmiamo quattro jobs su due macchine

- Fase 1: analizzare i tempi operativi;

60
- Fase 2 e 3: selezionare il tempo operativo più breve e assegnare la lavorazione;

La lavorazione A è la più breve sulla macchina 2, verrà eseguita per ultima.


NB. A è schedulata, non viene più presa in considerazione nei passi successivi!

- Fase 4: ripetete le fasi 2 e 3 fino al completamento del programma

Il tempo più breve (dopo A già schedulato) è D. Quindi la lavorazione D sarà eseguita per
penultima. Adesso le assegnazioni di A e B sono definite.
Adesso mi restano B e C, il tempo più breve fra i due è quello di C ed avviene sulla prima
macchina; infine faccio B il cui processo avviene sulla prima macchina.

61
Quindi mentre ho la lavorazione C sulla macchina 1, la macchina 2 è ferma. Poi la lavorazione
C passa alla macchina 2 e la 1 in parallelo effettua la lavorazione B ecc..

Queste fasi fanno sì che le lavorazioni più brevi siano collocate all’inizio e alla fine del
programma. Ne deriva che il tempo operativo simultaneo delle due macchine è
massimizzato, minimizzando dunque il tempo operativo complessivo detto anche
makespan, necesario a completare le lavorazioni.

Metodo dell’assegnazione

Nel caso in cui il numero di macchine aumentino (n=3) il sistema si complica molto. Tuttavia, vi è
il metodo dell’assegnazione che ci consente di programmare m jobs su m macchine m/m.

L’ipotesi da fare: avere un sistema job-shop, i quali dispongono di macchine in numero sufficiente
ad avviare tutte le lavorazioni contemporaneamente.

62
Problema: come assegnare la singola lavorazione alla singola macchina, per elaborare il miglior
programma complessivo?

Obiettivo: minimizzare o massimizzare determinate misure di efficacia.


Il metodo è adatto per assegnare le lavorazioni ai centri di lavorazione, gli addetti alle mansioni
ecc..

Questa tecnica serve a risolvere problemi con le seguenti caratteristiche:


1. Vi sono m “cose” da distribuire su m “destinazioni”.
2. Ogni “cosa” deve essere assegnata a una e una sola “destinazione”;
3. Può essere utilizzato un unico criterio (tra gli altri: costo minimo, profitto massimo, tempo
di completamento minimo).

Esempio

Fase 1. Riduzione di riga: il numero minore di ogni riga viene sottratto da se stesso e da tutti gli
altri numeri della riga

63
Fase 2. Riduzione di colonna: il numero minore di ogni colonna viene sottratto da se stesso e da
tutti gli altri numeri della colonna

Fase 3. Test di linea: il numero di linee necessario a ricoprire tutti gli zero è 4.

64
Se avessi avuto 5 linee, così come il numero richiesto, mi sarei fermato. Poiché non succede si
passa alla fase 4.

Fase 4.1 Tracciate il minor numero possibile di linee passanti per tutti gli zeri e cervcare il minore
dei numero non ricoperti dalle linee.

Fase 4.2 Sottrarre il minore dei numeri non ricoperti (con le linee della Fase 3, il minor numero
non ricoperto è 1) da se stesso e da tutti gli altri numeri non coperti e sommarlo al numero presente
in ogni intersezione di linee.

65
Ora cosa bisogna fare? Bisogna continuare e ripetere la fase 3, cancellando le righe e le colonne
dove ci sono gli 0.

Ho 5 linee, c’erano 5 lotti, quindi ho trovato il valore ottimo.

Trovato il valore ottimo vado a riprendere la matrice dei costi

66
E vado a vedere l’assegnazione ottimale tenendo conto dei costi

Non ho finito l’assegnazione, poiché ho due lotti che vengono fatti nella lavorazione I, uno solo
nella II ecc, ed intanto le lavorazioni possono ripetersi su macchine diverse (ad es. C può essere
fatto sulla macchina 1 o sulla 3). Quindi devo fare un’ulteriore ottimizzazione:

Vado a dare la priorità a quei lavori che sono stati assegnati da soli alla linea: quindi B e C devono
restare rispettivamente sulla linea II e III, ma devono essere tolti dalla I e dalla IV.

Ora mi resta E da solo nella lavorazione I, quindi resta lì. Anche D è da solo in IV, quindi
otteniamo:

67
Ecco la soluzione finale:

Programmare n lavorazioni su m macchine

I job-shop complessi sono contraddistinti dalla presenza di più centri macchina adibiti a diverse
lavorazioni, le quali giungono agli stessi centri, intervallate durante la giornata.

Se si presentano n lavorazioni per m macchine, e tutte le lavorazioni vengono effettuate su tutte le


macchine, allora esistono (n!)m programmi alternativi per questa serie di lavorazioni.

Quale regola di priorità adottare?

La maggior parte delle aziende manufatturiere può soddisfare le proprie esigenze con uno schema
di priorità abbastanza semplice, fondato sui seguenti principi:

1. Lo schema dovrebbe essere dinamico, cioè ripetutamente rielaborato durante la lavorazione,


onde riflettere le mutevoli condizioni operative.
2. Lo schema dovrebbe basarsi, in un modo o nell’altro, sul tempo residuo.

Attraverso l’Industria 4.0 si sta cercando di ottimizzare al meglio tutti i parametri.

Tecniche innovative (schedulazione interattiva)

Prevedono l’elaborazione del programma mediante un ricorso combinato della capacità decisionale
del programmatore e della simulazione.

68
Controllo di Officina

Programmare le priorità di lavorazione è solo uno degli aspetti del controllo di officina (oggi spesso
denominato controllo di produzione o shop floor control)

Il dizionario APICS definisce lo shop floor control system come:

Le principali funzioni del controllo di produzione sono:

 Assegnare le priorità a tutti gli ordini di lavorazione;


 Raccogliere le informazioni sulla quantità di scorte WIP;
 Trasmettere agli uffici le informazioni sugli ordini in officina;
 Finire i dati sugli output reali per scopi di controllo di capacità; (finalmente ho un output
effettivo)
 Calcolare le quantità – per ordine e per fase – a fini contabili e di determinazione del WIP;
 Misurare efficienza, utilizza e produttività di forza lavoro e macchinari.

Anche qui andremo ad utilizzare i Diagrammi di carico di Gantt. Nell’ambito della schedulazione
essi sono usati per pianificare i progetti e coordinare le attività. Tuttavia, questo diagramma ha
una limitazione importante: non tiene conto della variabilità della produzione, come guasti
imprevisti o errori umani che richiedono la rielaborazione di un lavoro.

Di conseguenza, il grafico deve essere aggiornato regolarmente per tener conto di nuovi lavori e di
stime temporali rivendute.

69
70
Strumenti di controllo di produzione

71
 La dispatch list quotidiana, che comunica al caporeparto quali lavorazioni debbano
essere eseguite, con quali priorità e quanto tempo occorre per ognuna.

Lo scarto in azienda è un problema: materiale lavorato non idoneo a proseguire la lavorazione; se


non è recuperabile lo butto, se è recuperabile lo ri-lavoro.

 Report di stato, e note di eccezione, fra cui:


a. Report sui ritardi previsti, stilato dal pianificatore di officina una o due volte la settimana
e revisionato dal responsabile di officina per rilevare l’eventuale presenza di ritardi gravi
che potrebbero ripercuotersi sull’MPS e l’MRP.

b. Report sugli scarti;


c. Report sulle rilavorazioni;
d. Report riassuntivo su utilizzo e rendimento, indicante il numero e la percentuale di
ordini programmati completati, ordini in ritardo o inevasi, volumi di output ecc;
e. Elenco sulle mancanze di materiali

 Un Report di controllo input/output, usato dal caporeparto per monitorare la


relazione fra carico e capacità in ogni stazione di lavoro.

72
Controllo di input/output (I/O control)
Si fonda sulla regola che l’attività input pianificata per un centro di lavorazione non superi mai
l’attività output pianificata.
E’ una tecnica che consente al personale operativo di gestire i flussi di lavoro dell’impianto.

Quando l’input supera l’output, nel centro di lavorazione si accumulano lavorazioni inevase, le
quali fanno lievitare i lead time attesi nelle operazioni a monte. Il flusso di attività verso valle
diventa discontinuo.

Ricapitolando:

73
 Identifica le condizioni di sovraccarico e sottocarico;
 Richiede un’azione manageriale per risolvere i problemi di programmazione;
 Può essere mantenuto utilizzando le schede con WIP che controllano la programmazione dei
lotti.

74

Potrebbero piacerti anche