Top Banner
3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina
38

3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

May 01, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo

Controllo delle operazioni su una macchina

Page 2: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

controllo della successione dei tempi

((SchedulingScheduling))Sequenziamento Sequenziamento delle operazionidelle operazioni

magazzino con movimentazione interna

Ipotesi: tutti i grezzi sonodisponibili dall’inizio (ri= 0)

Page 3: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Gantt del Gantt del SequenziamentoSequenziamento

presenza dell’operazionep4 pn

cm= i pi: completamento totale

delle operazioni (makespan)1

ntempo

op1c1

p1

op2c2

p2

c3

p3

op4c4 cm

opnop3

Page 4: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

op3

presenza dell’operazione

c = i ci: completamento medio delle operazioni

1

n1n

p4

tempoop1

c1

op2c2 c3

op4c4 cm

opn

pnp1 p2 p3

i ci : somma dei tempi di completamento

1n

Page 5: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

op1

tempo

presenza dell’operazione

c1 c2 c3

op3

p3

op4c4

p4

cm

opn

pn

Minimo completamento medioMinimo completamento medio

riduce il completamento medio o la

somma dei tempi di completamento

se p2 < p1 lo scambio => c2< c2 c1= c2

c2

p1

c1

op2

p2

SPT: Shortest Process Time (first): min c S

op2 op1

Page 6: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Minimizza anche: - flusso medio F - attesa media W - num. medio p. in att. Nw

(ri= 0 => fi:= ci-ri = ci)

op2c2

p2

c3

op3

p3

op4c4

p4

cm

opn

pn

cn

SPT:

Page 7: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

ci cjckcn cy cx =cm

12

n-1

Nw = rx cr1

n1cm

+ cm- cm = n c / cm -1

Nw(t)

t

n c / cm= 1 + Nw

Page 8: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

ci cj ck cn cy cm

12

n-1

Nu(t)

t

Nu = ri (cm- cr)1

n1cm

+ cm- cm

= ( ncm- nc ) = n(1-c/ cm)1cm

SPT Massimizza

Page 9: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Lr < 0 dr

Lr > 0

cr

anticipo ritardo

cr- dr

Lr(cr)

Ritardo del pezzo r : Lr = cr-dr

dr: tempo di consegna dovuto per pezzo r

RITARDORITARDO((latenesslateness))

Page 10: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

= c -

min c <=> min L

1 n

nL =

r =1Lr

r =1

1n=

n cr- dr

1 n

r =1

ndr

Lr < 0 dr

Lr > 0

cr

anticipo ritardo

cr- dr

Lr(cr)

Page 11: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

minimo ritardo Massimominimo ritardo Massimo

Li

cj

Lk

Lj

ckdkdidj

ci

LM = Maxr Lr = Lj

min LM

S

Page 12: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Earliest Due DateEarliest Due DateEDDEDD

dati lavori J1 ...Jn

Si hanno le seguenti date di consegna:

di (2)di (1) di (3)di (4) di (l)

Page 13: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Earliest Due DateEarliest Due DateEDDEDD

Si riordinano gli indici nell’ordine delle date dovute

d2d1 d3 d4 dn

e si sequenziano i lavori nello stesso ordine

J1 J2 J3 J4 Jn

d2d1 d3 d4 dn

Page 14: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

EDD minS

n Maxi Li

1

Ji

Sott.

Jk

dk > dicick di

dk

ck’= cici

’ di

S’

JiJk

Page 15: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Max (Lk’, Li’) = Max (ci - dk, ci’- di) ci - di

EDDEDD

-dk<

- d

i

ci’<

ci

ci =

ck’

dk

ck’= cici

’ di

S’:Ji

Jk

Max (Lk, Li) Max (ck -dk, ci-di) =ci - di

Page 16: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

nmin Maxi Li

S 1

Earliest Due DateEarliest Due DateEDDEDD

:

nMax mini Ai

S 1 ci di

Ai = -Li> 0

Massimo anticipo minimo

Ai< 0

ci di

:

Page 17: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

3.2 Algoritmo di Moore per la minimizzazione dei lavori in ritardo

Page 18: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Massimo numero pezzi in tempo

Algoritmo di MooreAlgoritmo di Moore

J1 J2 J3 J4 Jn

d1 d2 d3=d4 dn

1) Si scelgono gli indici in ordine EDD

(non sempre è unico: es. J3 e J4 sopra)

Page 19: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

J3JnJ1 J2 J4

d1 d2 d3=d4 dn

1’) La sequenza ottenuta è la sequenza corrente S1 (la prima) ; si pone i=1

2) Si individua il primo lavoro in ritardo Jl(i) nella sequenza corrente, se non esiste: stop

Page 20: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

3) Si individua il lavoro più lungo Jr(i) con r l(i), nella sequenza corrente Si

4) Si ottiene una nuova sequenza corrente Si+1 escludendo Jr(i) e si torna al passo 2),

con i:= i+1

J3JnJ1 J2 J4

d1 d2 d3=d4 dn

Page 21: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Algoritmo di Moore min nT S

1968

nT numero di pezzi che vanno rifiutati(T: Tardiness)

Ipotesi di lavoro: S0 ottima

Sempre: S0: A0 R0

ammessi o in anticipo

rifiutatio in ritardo

Page 22: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Infatti se

Ja(1) Jr (k)... ... Ja (z)

... Jr ()Jr (1)

Si può posticipare Jr(k) mantenendo l’ottimalità

S0:

Sempre: S0: A0 R0

Page 23: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

S0 : A0 R0

scelti gli indici dei lavori secondo una qualsiasi S EDD

i < j di dj

Si può sempre riordinare A0 come la EDD scelta: h<k a(h) < a(k)

Infatti in A0: Lmax 0, inoltre: EDDmin Lmax SIl riordino può essere

necessario solo se di = dj

Page 24: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Algoritmo di Moore min nT S

JJr(1) r(1) : max p: max phh = p = pr(1)r(1)

h=1,l(1)h=1,l(1)

S1:J1 Ja(1) Ja(2) Jr(1) Jl(1) Ja(z) Jl(i) Jn

dl(1)

Definizione di l(1):

Page 25: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Definizione ricorsiva di Jr (k) , da k=2

Ak:Jr(k-1)-1 Jr(k)

Jr(k-1)+1 dl(k)

k i

Jl (k) ultimo lavoro in Ak; unico in ritardo

Jr (k) Ak : max ph = pr (k)

h: Jh Ak

Jl(k)

Jr (h) con h < k non ci sono in Ak

Page 26: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

presenti in A0

Ja(1)Ja(2) Jl(1) Ja(z)

1 := numero lavori di { J1 ....Jl(1) } = :A1

assenti in A0

1 > 0 (almeno uno è assente, altrimenti Jl(1) sarebbe presente e in ritardo, cosa impossibile, per definizione di A0)

assente in A0

S1

Page 27: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Algoritmo di Moore min nT S

pq(1) pr(1) Lavoro di peso massimo fra

quelli in J1 ....Jl(1) assenti in

A0

q(1) può coinciderecon r(1)

Jq(1) : max ph = pq (1)

q(1) l(1) h=1,l(1)

h a () l(1)

Page 28: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Sk: J1 Ja(1) Ja(2) Jl(k) Jn

dl(k)

Jr (h) con h < k, rifiutati al passo h, non ci sono in Sk

Definizione ricorsiva di l(k), iniziando da k=2:

Jr(k-1)-1 Jr(k-1)+1

Passo i-esimo: 1 < k i

Sk : sequenza corrente al passo k

Page 29: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

S (sequenza corrente) :J1 Ja(1) Jl() Jn

dn

Jr()-1 Jr()+1

Ultimo passo: i = S:

J1 Ja(1) Jl() Jn

dl()

Jr() Jr()+1

dnpr()

pr()pr()

Jr()-1

dl()

Se l() non esiste

Page 30: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Jq(k) è un lavoro di peso massimo tra i k in J1 … Jl(k) fuori da A0 , non già abbinati

J1 ....Jl(k)

A0

k : numero lavori in J1 ....Jl(k) assenti in A0

Jq(k)

Page 31: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Jq(k) : pq(k) = ph

q(k) l(k)

max h l(k)Jh

Definizione ricorsiva di Definizione ricorsiva di JJq(k)q(k) ::

abbinato a Jr(k)

J1 ....Jl(k)

A0

{Jq(1) ... Jq(k-1) }Jq(k) => A0 {Jq(1) ... Jq(k-1)}

Jq(k) => h l(k) Bk

Bk

Page 32: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Algoritmo di MooreAlgoritmo di Moore min nmin nTT

SS

Tesi: A) A) i+1 i+1 ii1 1

B) B) JJq(i+1)q(i+1) : p : pq (i+1) q (i+1) ppr r

(i+1)(i+1)

Ipotesi: i i iiJJq(1)q(1) ... J ... Jq(i)q(i) : p : pq(k)q(k)

ppr(k)r(k)

Passo i-esimo:

Page 33: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Tesi:A) A) i+1 i+1 ii1 1

B) B) JJq(i+1)q(i+1) : p : pq (i+1) q (i+1) ppr (i+1)r (i+1)

Se la tesi è dimostrata, 1 1 dimostra che l’algoritmo dà un ottimo

Page 34: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Se i >i i+1 ii1

Se i = i

iJq(1) ... Jq(i), abbinati a Jr (1) ... Jr(i)

q (k) l (k) pq(k) pr(k) k = 1,…,i

sono esattamente tutti i lavori

assenti in A0 tra J1 ... Jl(i)

Page 35: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Jl(i)

i = i

ritardati di ( ritardati di ( h h ppr (h)r (h) - - h h ppq (h)q (h)))

rispetto a Srispetto a Si+1i+1

A0

Ja(1) Ja(2) Jl(i) Ja(z)Jl(i+1)

1

i

1

i

Si

J1Ja(1) Ja(2) Jr(i) Jl(i) Ja(z)

dl(i) dl(i+1)

Jl(i+1)

J1Ja(1) Ja(2) Ja(z)

dl(i)

Jl(i+1)

Si+1

dl(i+1)

Page 36: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Tesi B) Jq(i+1) : pq (i+1) pr (i+1)

Ak:Jr (k-1)-1 Jr (k)

Jr (k-1)+1 dl(k)

Jl(k)

Jr (h) con h < k non ci sono in Ak

con l (i) < q(i+1) l (i+1)perché i = i

Page 37: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

Jr (h’) “nasconde” Jq(i+1) = Jr (h’)

A i+1 Jq (i+1)

Jq(i+1)A i+1 pq(i+1) pr(i+1)

tempo di processo massimo dei lavori in A i+1

Jq(k) è un lavoro di peso massimo tra i k

in J1 ....Jl(k) fuori da A0 ,non già abbinati

Page 38: 3.1 Sequenziamento delle operazioni a minimo: tempo di completamento medio, ritardo massimo Controllo delle operazioni su una macchina.

A i+1

Jr (i+1)

Jq (h)

pq (h) =

Jq (h’’)

pq (h’’) =

sono indicati solo i lavori rifiutati in Ak o assenti in A0

A h”

Jr (h’’)

A h’’’

Jr (h’’’)

Jq(h’) A i+1

h’’’ < h’’ < h’ i

Jq(h”) A i+1

allora Jq(h) A i+1

pq(i+1) = pq(h) pr(i+1)

Jq (h’)

pq (h’) =

A h’

pq(i+1) pq(h’) pr(h’) =

pq(i+1)

q(i+1) l(h’)

Sia h il valore per cui Jr =Jq(h)

( h sempre,perché i Jq sono più dei Jr):

pq (i+1)

Jq (i+1)

Jr (h’)