View
54
Download
2
Category
Preview:
DESCRIPTION
Sequenciamento da produção
Citation preview
17/04/2015
1
SequenciamentoSequenciamento
Michel J. Anzanello, PhD
8 - 1
Algoritmos de SequenciamentoAlgoritmos de SequenciamentoDefinio do problemaDefinio do problema
Dadas n tarefas, cada uma possui: tempo de setup,
tempo de processamento,
data de entrega pr-fixada, e/ou outros atributos.
P/ serem completadas, cada tarefa precisa passar por uma mquina ou sequncia delas.
A sequncia deve otimizar certos critrios de desempenho.
8 - 2
Critrios tpicos de desempenhoCritrios tpicos de desempenho
Atender as datas de entrega dos clientes;
Minimizar o tempo de Fluxo (makespan);
Minimizar o estoque em processo (WIP);
Minimizar o tempo ocioso dos recursos.
8 - 3
Exemplo numricoExemplo numrico Duas tarefas A e B requerem processamento
em duas mquinas M1 e M2.
Cada tarefa processada primeiro na M1 e depois na M2, com os seguintes tempos:
Tarefas M1 M2
A 8 5
B 7 10
Tempo de Processo
8 - 4
17/04/2015
2
Exemplo (Grfico de Gantt)Exemplo (Grfico de Gantt)
Tempo
M1
M2
157 17 22
tarefa B tarefa A
tarefa B tarefa A
Tempo
M1
M2
8 13 15 25
tarefa A
tarefa A tarefa B
tarefa B
A segunda sequncia minimiza o makespan(Tempo de fluxo).
Tempo total = 22
Tempo total = 25
8 - 5 IV - 6
Job Operao Tempo
necessria necessrio (h)
A 10
C 10
1 A 30
B 20
C 5
B 15
A 10
2 C 10
A 10
B 10
ExemploExemplo introdutriointrodutrio
Analisar o sequenciamento de utilizao das
operaes em um grfico de Gantt
IV - 7
Tempo, horasArranjo invivel
Tempo, horasArranjo vivel
O
p
e
r
a
o
O
p
e
r
a
o
1 1
2 2
2 2
2
1
11
1
1
1
1
1
2
2
2
2
2
Arranjo invivel. P/ observar sequncia,
mesmo recurso utilizado por mais
de um job
Arranjo vivel. Sequncia
observada e utilizaoracional de recursos.
IV - 8
Lote Operao Tempo
necessria necessrio (h)
C 5
A 10
1 B 20
C 30
B 10
C 10
A 15
2 B 5
A 20
C 5
A 5
B 20
3 A 5
B 10
C 35
Deseja-se saber qual a data mais cedo para entrega de cada um dos lotes ao lado.
ExerccioExerccio --
SequenciamentoSequenciamento
17/04/2015
3
Fatores que descrevem e classificam Fatores que descrevem e classificam um problema de sequenciamentoum problema de sequenciamento
Nmero de tarefas a serem programadas.
Nmero de mquinas envolvidas.
Tempo para liberao da tarefa (release date).
Critrio de avaliao utilizado p/ as alternativas de programao. 8 - 9
FlowFlow ShopShop
8 - 10
JobJob ShopShop
8 - 11
Problemas de Problemas de sequenciamentosequenciamento podem podem ser:ser:
8 - 12
17/04/2015
4
Descrio padro de problemas de Descrio padro de problemas de sequenciamentosequenciamento
arranjo mquinas: nica, linha, paralelo, ...
restries: liberao da tarefa, setup...
objetivos: makespan, atraso, adiantamento
8 - 13
Heursticas para programao em Heursticas para programao em ambiente ambiente flowflow shopshop::
n tarefas 1 mquina: MFT / Min setups, caixeiro viajante.
n tarefas 2 mquinas: Johnson.
n tarefas 3 mquinas: Johnson, Branch and Bound.
8 - 14
Programando n tarefas em 1 mquinaProgramando n tarefas em 1 mquina(Mean Flow Time(Mean Flow Time--MFT)MFT)
onde:Ci = Tempo para completar a tarefa i (Ci = Wi + ti):
Wi = Tempo de espera
ti= Tempo de processo
n = nmero de tarefas a serem processadas.
1
ni
iC
MFTn
==
8 - 15
ExemploExemplo
Dados os tempos de processo de quatro tarefas a serem processadas em uma mquina.
J1 J2 J3 J4
7 6 8 5Tempo de processo (ti )
Tarefa i
8 - 16
17/04/2015
5
ExemploExemplo
67 3164 4AMFT = =
67 3164 4BMFT = =
Tarefa (i ) W i ti Ci
2 0 6 6
3 6 8 14
1 14 7 21
4 21 5 26
soma 41 26 67
Seqncia B
8 - 17
ExemploExemplo
Para uma nica mquina e n tarefas, como neste caso, a regra SPT (Shortest Processing Time, ou seja, ordenar as tarefas em
ordem crescente de ti) garante o mnimo tempo mdio de escoamento.
60 154CMFT = =
8 - 18
Atividade 1Atividade 1
a) As presentes atividades so processadas em uma furadeira. Determine uma sequncia que minimize o tempo mdio de escoamento.
b) Mostre que uma sequncia aleatria aumenta o tempo de escoamento (maior do que a sugerida pelo SPT)
c) Use a regra LPT (longest processing time) e compare a mdia do tempo de escoamento para (a) e (c).
Tarefa 1 2 3 4 5 6 7
ti 10 5 8 7 5 4 8
8 - 19
Tempo de concluso ponderadoTempo de concluso ponderado
Algumas tarefas podem ter prioridade por diversos motivos;
Cada atividade recebe um peso wj
Conhecido por 1| |wjCj
Sequenciamento timo:
Ordenar wj/tj em ordem decrescentedecrescente
8 - 20
tarefa 1 2 3 4 5 6 7
wj 1 18 12 8 8 17 16
tj 3 6 6 5 4 8 9
17/04/2015
6
Programando Programando nn tarefas em 2 mquinastarefas em 2 mquinas(Mtodo ou Regra de Johnson).(Mtodo ou Regra de Johnson).
1 - Listar o tempo de operao para cada tarefa em ambas as mquinas (M1 e M2);
2 - Selecionar a tarefa com menor tempo de durao;
8 - 21
Programando Programando nn tarefas em 2 mquinastarefas em 2 mquinas(Mtodo ou Regra de Johnson).(Mtodo ou Regra de Johnson).
3 - Se o menor tempo o da M1, fazer esta tarefa primeiro. Caso contrrio (se pertencer a M2), alocar esta tarefa por ltimo;
4 - Repetir as etapas 2 e 3 para cada tarefa restante at todas as tarefas estarem alocadas.
8 - 22
Exemplo: Exemplo: (Mtodo ou Regra de Johnson).(Mtodo ou Regra de Johnson).
TarefaTempo de operao
M1
Tempo de operao
M2
A 3 2
B 6 8
C 5 6
D 7 4
1 - Listar os tempos de operao
2 e 3 - A tarefa de menor tempo a A na M2 (ento aloque por ltimo). A tarefa D a 2a de menor tempo na M2 (aloque esta por penltimo -pois a tarefa A j est alocada).
8 - 23
Exemplo: Exemplo: (Mtodo ou Regra de Johnson).(Mtodo ou Regra de Johnson).
TarefaTempo de operao
M1
Tempo de operao
M2
A 3 2
B 6 8
C 5 6
D 7 4
4 - Repetir 2 e 3 at todas serem alocadas
A seqncia fica: C B D A. Esta a seqncia de entrada das tarefas em M1.
8 - 24
17/04/2015
7
Atividade 2Atividade 2
Os tempos de uma furadeira e uma mquina rebitadora para seis tarefas so dados a seguir. Para toda a tarefa, um furo feito primeiro, seguido da colocao de um rebite.
Encontre a sequncia que minimiza o makespan para estas tarefas.
Tarefa 1 2 3 4 5 6
Furadeira 4 7 3 12 11 9
Rebitadeira 11 7 10 8 10 13
8 - 25
MinimizandoMinimizando o tempo de o tempo de adiantamentoadiantamento e e atrasoatraso de de umauma tarefatarefa
Funo objetivo: min (E+T)
T = tempo de atraso, Tj = max (Cj-dj, 0)
E = tempo de adiantamento Ej = max (dj-Cj,0)
8 - 36
AlgoritmoAlgoritmo parapara minimizarminimizar ((E+TE+T)) com com data de data de entregaentrega estranguladaestrangulada ((dd niconico))
Passo 0: Ordene as tarefas em ordem decrescente de pj;
Passo 1: Defina 1=d e 2=pj d
Inicialize k=1
Passo 2:
Se 1 > 2 insira tarefa k na primeira posio disponvel na sequncia e subtraia pk de 1.
Se 1 < 2 insira tarefa k na ltima posio disponvel na sequncia e subtraia pk de 2. 8 - 37
AlgoritmoAlgoritmo parapara minimizarminimizar ((E+TE+T)) com com data de data de entregaentrega estranguladaestrangulada
Passo 3: Se k
17/04/2015
8
ExemploExemplo
Considere a seguinte situao com 6 tarefas e data de entrega d=180.
8 - 39
tarefas 1 2 3 4 5 6
pj 106 100 96 22 20 2
tau1 tau2 Sequncia
180 166 1,*,*,*,*,*
74 166 1,*,*,*,*,2
74 66 1,3,*,*,*,2
-22 66 1,3,*,*,4,2
-22 44 1,3,*,5,4,2
-22 12 1,3,6,5,4,224
Prtica Prtica VeVe
Sequencie as seguintes tarefas com data de entrega d=30.
8 - 40
Tarefa 1 2 3 4 5 6 7 8
pj 5 8 7 6 2 7 5 4
SequenciamentoSequenciamento estocsticoestocstico
Do origem aos problemas mais complexos de sequenciamento
Tempos de processamento no mais determinsticos, mas representados por distribuies
Veremos um algoritmo atravs de um exemplo:
8 - 41
SequenciamentoSequenciamento estocstico estocstico -- ExemploExemplo
Considere 2 tarefas com datas de entrega distintas (dj) a serem processadas em 1 mquina
Datas de entrega: d1=1 e d2=4
8 - 42
17/04/2015
9
Tempos de processamento so discretosTempos de processamento so discretos Distribuio dos tempos de processamento da
tarefa 1:
P(X1=1) = P(X1=2) = P(X1=4) = 1/3
Distribuio dos tempos de processamento da tarefa 2:
P(X2=2) = P(X2=4) = 1/2
8 - 43
Exemplo (Exemplo (contcont))
Deseja-se minimizar o mximo atraso L, onde:
Lj = Cj-dj
Repare que o atraso L, diferentemente do atraso T, pode apresentar valores negativos.
8 - 44
Testando Testando sequnciasequncia 1 1 22
8 - 45
max1 , 2
= max1 , 2 |1 = 1, 2 = 2 1 = 1, 2 = 2
+ max1, 2 |1 = 1, 2 = 4 1 = 1, 2 = 4
+ max1, 2 |1 = 2, 2 = 2 1 = 2, 2 = 2
+ max1, 2 |1 = 2, 2 = 4 1 = 2, 2 = 4
+ max1, 2 |1 = 4, 2 = 2 1 = 4, 2 = 2
+ max1, 2 |1 = 4, 2 = 4 1 = 4, 2 = 4
max1, 2
= 0 + 1 + 1 + 2 + 3 + 41/6
Testando Testando sequnciasequncia 2 2 11
8 - 46
max2 , 1
= max2 , 1 |2 = 2,1 = 1 2 = 2,1 = 1
+ max2 , 1 |2 = 2, 1 = 2 2 = 2, 1 = 2
+ max2 , 1 |2 = 2, 1 = 4 2 = 2, 1 = 4
+ max2 , 1 |2 = 4, 1 = 1 2 = 4, 1 = 1
+ max2 , 1 |2 = 4, 1 = 2 2 = 4, 1 = 2
+ max2 , 1 |2 = 4, 1 = 4 2 = 4, 1 = 4
max2 , 1
= 2 + 3 + 5 + 4 + 5 + 71/6
17/04/2015
10
ExerccioExerccio Sequencie as tarefas 1 e 2 com os tempos de
processamento dados por: Tarefa 1
P(X1=3) = 1/3 e P(X1=5) = 2/3
Tarefa 2:
P(X2=4) = P(X2=7) =
d1=6 e d2=8 8 - 47
Programando Programando nn tarefas em 3 mquinastarefas em 3 mquinas
Problema uma extenso do problema anterior (n tarefas 2 mquinas).
Solues timas podem ser encontradas quando todas as tarefas forem processadas na mesma ordem em cada mquina.
8 - 48
Uma soluo tima para este tipo de problema pode ser encontrada utilizando-se:
Algoritmo de Johnson para n 2, se certas condies forem atendidas, ou
Utilizando o algoritmo do Branch & Bound.
Programando Programando nn tarefas em 3 mquinastarefas em 3 mquinas
8 - 49
Programando Programando nn tarefas em 3 mquinastarefas em 3 mquinas(Algoritmo do Branch & Bound)(Algoritmo do Branch & Bound)
Algoritmo B & B pode ser usado quando as condies do mtodo de Johnson no forem satisfeitas.
O problema representado por uma estrutura de rvore, onde cada n representa uma seqncia parcial de tarefas. Para encontrar qual a seqncia parcial a partir da
qual poderamos continuar ramificando, necessrio encontrar os limites inferiores do makespan para todos os ns (de cada seqncia parcial).
8 - 50
17/04/2015
11
Diagrama de rvoreDiagrama de rvore
0
1 2 3
141312 242321
143142134132124123
4
8 - 51
Programando Programando nn tarefas em 3 mquinastarefas em 3 mquinas(Algoritmo B & B)(Algoritmo B & B)
Segue-se ramificando a partir do n com o menor limite inferior. Processo continua at que seqncia c/ limite inferior mais baixo seja encontrada.
As tarefas devem ser processadas primeiro na M1, depois na M2 e, por ltimo, na M3. A ordem de processamento ser a mesma nas trs mquinas (como no mtodo anterior - Johnson n 3).
8 - 52
Programando Programando nn tarefas em 3 mquinastarefas em 3 mquinas(Algoritmo B & B)(Algoritmo B & B)
Considere n tarefas (1, 2, ..., n)
O limite inferior para o makespan definido da seguinte forma:
8 - 53
Programando Programando nn tarefas em 3 mquinastarefas em 3 mquinas(Algoritmo B & B)(Algoritmo B & B)
Onde:
tij= tempo de processo da tarefa i na mquina j
grupo de n - r tarefas que ainda no foram alocadas a uma posio na seqncia Jr
LB(P) = LB(Jr) = limite inferior para o makespan para qualquer nodo que emana de um nodo P.
8 - 54
17/04/2015
12
Programando Programando nn tarefas em 3 mquinastarefas em 3 mquinas(Algoritmo B & B)(Algoritmo B & B)
Aps encontrar o limite inferior dos nodos at ento existentes, continua-se ramificando a partir do nodo c/ menor limite inferior, criando novos nodos p/ todas as tarefas que ainda no foram programadas.
8 - 55
Exemplo:Exemplo: nn tarefas, 3 mquinas(Algoritmo B & B)tarefas, 3 mquinas(Algoritmo B & B)
Considere 4 tarefas e trs mquinas em um problema de programao.
Utilize o algoritmo Branch-and-Bound para encontrar a seqncia que minimiza o makespanpara todas as tarefas.
Tarefa M1 M2 M3
1 14 6 15
2 8 11 4
3 10 13 17
4 16 15 5
Tempos das Tarefas
8 - 56
Exemplo:Exemplo: nn tarefas, 3 mquinas(Algoritmo B & B)tarefas, 3 mquinas(Algoritmo B & B)
Para calcular os limites inferiores, preciso:
TIMEM1(1) = 14 TIMEM2(1) = 20 TIMEM3(1) = 35TIMEM1(2) = 8 TIMEM2(2) = 19 TIMEM3(2) = 23TIMEM1(3) = 10 TIMEM2(3) = 23 TIMEM3(3) = 40TIMEM1(4) = 16 TIMEM2(4) = 31 TIMEM3(4) = 36
TIMEM1(Jr), TIMEM2(Jr) e TIMEM3(Jr) so os tempos nos quais as mquinas M1, M2 e M3 completam a ltima tarefa da seqncia Jr.
8 - 57
Os limites inferiores so:
Tarefa M1 M2 M3
1 14 6 15
2 8 11 4
3 10 13 17
4 16 15 5
Tempos das Tarefas
8 - 58
17/04/2015
13
8 - 59
Exemplo:Exemplo: nn tarefas, 3 mquinas(Algoritmo B & B)tarefas, 3 mquinas(Algoritmo B & B)
Menor limite LB(1) = 63, ento ramifica-se a partir dele.
Na sequncia, calculam-se os tempos das seqncias parciais 1i (i = 2, 3 e 4), como mostrado a seguir:
TIMEM1(12) = TIMEM1(1) + t21 = 14 + 8 = 22 TIMEM2(12) = max (TIMEM1(12) + t22 , TIMEM2(1) + t22)
= max (22 + 11 , 20 + 11) = 33TIMEM3(12) = max (TIMEM2(12) + t23 , TIMEM3(1) + t23)
= max (33 + 4 , 35 + 4) = 39
8 - 60
Exemplo:Exemplo: nn tarefas, 3 mquinas(Algoritmo B & B)tarefas, 3 mquinas(Algoritmo B & B)
TIMEM1(13) = TIMEM1(1) + t31 = 14 + 10 = 24 TIMEM2(13) = max (TIMEM1(13) + t32 , TIMEM2(1) + t32)
= max (24 + 13 , 20 + 13 ) = 37TIMEM3(13) = max (TIMEM2(13) + t33 , TIMEM3(1) + t33)
= max (37 + 17 , 35 + 17 ) = 54
TIMEM1(14) = TIMEM1(1) + t41 = 14 + 16 = 30 TIMEM2(14) = max (TIMEM1(14) + t42 , TIMEM2(1) + t42)
= max (30 + 15 , 20 + 15 ) = 45TIMEM3(14) = max (TIMEM2(14) + t43 , TIMEM3(1) + t43)
= max (45 + 5 , 35 + 5 ) = 50
8 - 61
Exemplo:Exemplo: nn tarefas, 3 mquinas(Algoritmo B & B)tarefas, 3 mquinas(Algoritmo B & B)
Os limites inferiores so:
8 - 62
17/04/2015
14
8 - 63
Exemplo:Exemplo: nn tarefas, 3 mquinas(Algoritmo B & B)tarefas, 3 mquinas(Algoritmo B & B)
Comparando os nodos neste estgio verifica-se que o menor limite inferior LB(3) = 64. Ento continua-se ramificando a partir deste.
TIMEM1(31) = TIMEM1(3) + t11 = 10 + 14 = 24 TIMEM2(31) = max (TIMEM1(31) + t12 , TIMEM2(3) + t12)
= max (24 + 6 , 23 + 6 ) = 30TIMEM3(31) = max (TIMEM2(31) + t13 , TIMEM3(3) + t13)
= max (30 + 15 , 40 + 15 ) = 55
8 - 64
Exemplo:Exemplo: nn tarefas, 3 mquinas(Algoritmo B & B)tarefas, 3 mquinas(Algoritmo B & B)
TIMEM1(31) = TIMEM1(3) + t11 = 10 + 14 = 24 TIMEM2(31) = max (TIMEM1(31) + t12 , TIMEM2(3) + t12)
= max (24 + 6 , 23 + 6 ) = 30TIMEM3(31) = max (TIMEM2(31) + t13 , TIMEM3(3) + t13)
= max (30 + 15 , 40 + 15 ) = 55
TIMEM1(32) = TIMEM1(3) + t21 = 10 + 8 = 18 TIMEM2(32) = max (TIMEM1(32) + t22 , TIMEM2(3) + t22)
= max (18 + 11 , 23 + 11) = 34TIMEM3(32) = max (TIMEM2(32) + t23 , TIMEM3(3) + t23)
= max (34 + 4 , 40 + 4 ) = 44
8 - 65
Exemplo:Exemplo: nn tarefas, 3 mquinas(Algoritmo B & B)tarefas, 3 mquinas(Algoritmo B & B)
TIMEM1(34) = TIMEM1(3) + t41 = 10 + 16 = 26 TIMEM2(34) = max (TIMEM1(34) + t42 , TIMEM2(3) + t42)
= max (26 + 15 , 23 + 15 ) = 41TIMEM3(34) = max (TIMEM2(34) + t43 , TIMEM3(3) + t43)
= max (41 + 5 , 40 + 5 ) = 46
Novamente so calculados os limites inferiores para as sequencias 31, 32 e 34.
8 - 66
17/04/2015
15
Exemplo:Exemplo: nn tarefas, 3 mquinas(Algoritmo B & B)tarefas, 3 mquinas(Algoritmo B & B)
O menor LB LB(31) = 64. Ento ramifica-se a partir dele.
TIMEM1(312) = TIMEM1(31) + t21 = 24 + 8 = 32 TIMEM2(312) = max (TIMEM1(312) + t22 , TIMEM2(31) + t22)
= max (32 + 11 , 30 + 11 ) = 43TIMEM3(312) = max (TIMEM2(312) + t23 , TIMEM3(31) + t23)
= max (43 + 4 , 55 + 4 ) = 59
TIMEM1(314) = TIMEM1(31) + t41 = 24+ 16 = 40 TIMEM2(314) = max (TIMEM1(314) + t42 , TIMEM2(31) + t42)
= max (40 + 15 , 30 + 15 ) = 55TIMEM3(314) = max (TIMEM2(314) + t43 , TIMEM3(31) + t43)
= max (55 + 5 , 55 + 5 ) = 60
8 - 67
Exemplo:Exemplo: nn tarefas, 3 mquinas(Algoritmo B & B)tarefas, 3 mquinas(Algoritmo B & B)
Os limites inferiores so:
8 - 68
Exemplo:Exemplo: nn tarefas, 3 mquinas(Algoritmo B & B)tarefas, 3 mquinas(Algoritmo B & B)
O menor LB LB(34) = 65. Ento ramifica-se a partir dele.
TIMEM1(341) = TIMEM1(34) + t11 = 26 + 14 = 40 TIMEM2(341) = max (TIMEM1(341) + t12 , TIMEM2(34) + t12)
= max (40 + 6 , 41 + 6) = 47TIMEM3(341) = max (TIMEM2(341) + t13 , TIMEM3(34) + t13)
= max (47 + 15 , 46 + 15 ) = 62
TIMEM1(342) = TIMEM1(34) + t21 = 26 + 8 = 34 TIMEM2(342) = max (TIMEM1(342) + t22 , TIMEM2(34) + t22)
= max (34 + 11 , 41 + 11 ) = 52TIMEM3(342) = max (TIMEM2(342) + t23 , TIMEM3(34) + t23)
= max (52 + 4 , 46 + 4 ) = 56
8 - 69
Exemplo:Exemplo: nn tarefas, 3 mquinas(Algoritmo B & B)tarefas, 3 mquinas(Algoritmo B & B)
Os limites inferiores so:
O menor limite inferior da rvore LB(341) = 66. A seqncia tima 3-4-1-2 com makespan de 66 unidades de tempo
8 - 70
17/04/2015
16
Atividade Atividade B&BB&B
Quatro tarefas so processadas atravs de trs mquinas. Os presentes dados so pertinentes ao problema de programao. Encontre a seqncia tima para as tarefas tal que minimize o makespan.
Tarefa M1 M2 M3
1 7 10 8
2 5 7 9
3 11 5 9
4 8 9 8
Tempos das Tarefas
8 - 71
Recommended