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

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

Upload: francesca-gagliardi

Post on 01-May-2015

216 views

Category:

Documents


1 download

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’)