ndice
Introduo e enquadramento do estudo ...................................................................................... 2 Job Shop Scheduling ...................................................................................................................... 5 Definio da tcnica a utilizar:The Shifting Bottleneck ............................................................ 7 Exemplo de aplicao do algoritmo escolhido ............................................................................ 10 Validao Informtica ................................................................................................................. 18 Discusso e concluso dos resultados obtidos ........................................................................... 19
Uma segunda classe de modelos incluem maquina nica , maquina paralela e modelos job shop. Nos dois primeiros modelos, um job consiste numa operao que pode ser efectuada em qualquer mquina disponvel. No modelo job shop, um job tipicamente caracterizado como sendo um nmero de operaes que tm de ser realizadas em mquinas distintas. Cada job tem o seu prprio caminho ao longo do sistema. As operaes de um job no modelo job shop devem ser calendarizadas para minimizar uma ou mais objectivos, como por exemplo o makespan. Existem ainda mais 3 classes de modelos, como modelos focados em sistemas de produo com automao, modelos com calendarizao por lotes e modelos de planeamento da cadeia de abastecimento. Alguns termos importantes: Tempo de processamento: representa o tempo disponvel para efetuar um job numa mquina. Data de lanamento: O tempo que o job demora a chegar ao sistema, ou seja o tempo mais cedo que se pode iniciar o processo. Data de vencimento: O tempo que foi proposto para entrega ou trmino da encomenda. Este tempo pode ser excedido mas com penalizaes, quando o tempo no pode de todo ser excedido denomina-se deadline. Peso: Representa o factor de prioridade, que reflete a importncia de um job relativamente a outros no sistema. Pode representar o custo de o manter no sistema por uma unidade de tempo. Tempo de inicio: O tempo em que o job comea o seu processo na mquina Tempo para concluso: O tempo que em que o job completado na mquina. Modelos de mquina nica: Muitos sistemas de produo do origem a modelos de mquina nica. Por exemplo se existe uma heurstica bottleneck num ambiente multimquina, ento a sequncia de jobs de uma heurstica bottleneck tipicamente determina a performance do sistema inteiro. Nesse caso faz sentido calendarizar a heurstica bottleneck primeiro que todas as outras operaes. Modelos de mquina paralela: Trata-se de uma generalizao do modelo de mquina nica. Muitos ambientes de produo consistem em vrios estgios ou centros de trabalho, cada com um nmero de mquinas em paralelo. As mquinas podem ser iguais, para que o job possa ser processado em qualquer mquina disponvel. Branch-and Bound : Consiste num algoritmo para optimizao especialmente combinatria. Ou seja, numa enumerao sistemtica de todos os candidatos a soluo,
3
atravs da qual grandes subconjuntos de candidatos pouco viveis so descartados utilizando limites superior e inferior do valor optimizado.
Em sistemas multi-operao, os jobs tm usualmente caminhos distintos. Trata-se de uma generalizao do modelo Flow Shop (modelos onde todo e qualquer job tem a mesma rota). O modelo mais simples assume que o job possa ser processado numa mquina particular pelo menos uma vez ao longo do sistema (ver ilustrao 1), enquanto que noutros, um job pode visitar uma mquina vrias vezes ao longo do sistema. Uma generalizao de um modelo job shop ser flexvel com centros de trabalho que tm mltiplas mquinas paralelas. So modelos predominantes na indstria onde cada pedido por parte do cliente nico com parmetros nicos. Um exemplo clssico de um modelo job shop um hospital onde os utentes so os jobs. Cada utente tem de seguir uma determinada rota e tem de ser tratado num nmero diferente de estaes ao longo do sistema. Visto os problemas de job shop com muitos jobs para optimizar serem problemas de difcil resoluo, foram muitas heursticas para ajudar a contornar essad ificuldades. Umas das mais estveis e mais bem sucedidas para minimizao do makespan, trata-se do Shifting Bottleneck heuristic.
Diminuir o makespan, que o tempo total de processamento de todas as tarefas em todas as mquinas, um dos grandes desafios da aplicao do job-shop nos sistemas produtivos. No exemplo prtico que iremos apresentar mais frente, o nosso objectivo ser obter a sequncia de tarefas em cada mquina que nos permitir bons resultados no que diz respeito minimizao do makespan. Uma das tcnicas mais eficazes na minimizao do makespan em Job Shop a heurstica Shifting Bottleneck. Esta heuristica consiste em isolar cada mquina, considerando-a como se fosse um sistema de mquina nica. A mquina que apresentar o maior delay (maior atraso) ser considerada como sendo a Bottleneck machine sendo esta a que ser analisada em primeiro lugar. O procedimento que iremos adoptar no nosso estudo ter uma pequena modificao em relao ao original. Assim, como semelhana do modelo original, cada mquina consideranderada como se fosse uma mquina nica e a que apresentar o maior minimum tardiness (maior entre os atrasos mnimos) considerada a botleneck machine e a primeira a ser analisada.
o o
Uma vez que o trabalho tenha sido atribudo, o valor do tempo de processamento de H reduzido e as penalizaes para os restantes postos de trabalho do conjunto J so recalculados. Este processo repetido at as tarefas do conjunto J serem atribuidas. 7) k = k + n 8) Se k for menor ou igual ao nmero total de tarefas, voltar ao passo 2, seno terminar e seguir para a forward phase.
Forward Phase Esta fase idntica excepto na forma de calcular as penalizaes. Ai o tempo de chegada da examinados at agora. tarefa i. CT o tempo total de concluso dos trabalhos
Inicialmente CT=0.TDi a penalizao total para a tarefa i. Comeamos pela primeira tarefa da sequncia, isto , a partir da esquerda. Se em algum momento um trabalho no chegar quando o trabalho anterior foi terminado, o prximo trabalho somente pode iniciar quando ele chegar. Assim, o tempo para a tarefa estar completa dado pela soma do tempo de processamento com o instante em que ela chega. A penalizao calculada tendo como base o seguinte: o o Se ri > CT, ento CT = ri + pi ; caso contrrio CT = CT + pi. CT- di >0, ento TDi = (CT - di )* li; caso contrrio, TDi = (di CT)* ei .
Calcular o tardiness para cada mquina, ou seja atribuir ao total de penalidades por atraso o valor 1 e por adiantamento o valor 0.
Passo 3: Seleccionar a Bottleneck machine ( a que apresenta maior penalidades)mquina k. A rede ser ento modificada adicionando-lhe arcos entre os ns (operaes) que esto a utilizar essa mesma mquina na sequncia obtida no passo 2. A mquina k ser ento a nova mquina no n inicial. Passo 4: Recalcular os tempos mais cedo e mais tarde de inicio de cada n na rede obtida. Passo 5:Verificar se os arcos entre as operaes que determinmos anteriormente ainda so os ptimos Todas as mquinas so resequenciadas para verificar se h algum melhoramento no makespan, retirando temporariamente cada mquina j. A rede modificada removendo os arcos na mquina j e calculando o T (atraso mnimo) para essa mquina com os tempos de chegada modificados e as due dates baseadas nas modificaes temporrias anteriores.
A nova sequncia de tarefas determinada para a mquina j e os arcos so construidos entre os ns associados mquina j baseado na nova sequncia. O Makespan para toda a rede calculado com base nestas novas linhas direccionais adicionadas mquina j. Se o makespan for menor ou igual ao makespan anterior as novas linhas so matidas, se no, mantm-se a sequncia original da mquina j. Este passo fica completo quando so feitas estas verificaes para todas as mquinas.
Passo 6: Adicionar a mquina k ao Mr. Se M for igual a M o procedimento pra. Se no, voltar ao passo 2.
Tarefas realizadas 1 2 3 4 5
Numa determinada fbrica, pretende-se minimizar o makespan de um sistema constituido por 5 tarefas que so processadas de diferentes formas com diferentes sequncias de mquinas. O nosso objectivo conseguir optimizar o processo de forma a encontrar a sequncia de tarefas em cada mquina que nos conduza a um menor tempo de execuo e com a menor folga possvel. Seguindo os passos descritos pelo algoritmo escolhido, comeamos por criar a nossa rede de processos. H que ter em ateno que os tempos mais cedo e mais tarde de incio no n final correspondem ao makespan Cmax. Seguindo os passos do algoritmo descrito anteriormente, obtemos a nossa rede inicial (ilustrao 2).
10
Por exemplo para a mquina n1, os tempos de processamento para as tarefas 1,3,4 e 5 so respectivamente 1,1,3 e 1. Podemos tambm dizer que os seus tempos de chegada so respectivamente 0,2,0,2. Para descobrir os due dates, por exemplo para o n 1/1, como se pode tambm ver na rede obtida, vale 4 pois o valor do tempo mais tarde de incio para o n imediatamente a seguir. Como estamos a tentar achar a bottleneck machine, os early and late penalties so respectivamente 0 e 1. Seguindo o mesmo raciocnio para todas as mquinas separadas obtemos os dados para cada tarefa ne respectiva mquina que so apresentados na tabela seguinte onde pi representa o tempo de processamento da tarefa, ri representa o tempo de chegada(arrival time), di o due date e li e ei so respectivamente os late and eraly penalties.
Iterao 1
Tabela 2 - Mquina 2, 1 iterao Mquina 2 Iterao 1 Tarefa 2 Tarefa 3 Tarefa 4 Pi ri di li ei 3 0 5 1 0 1 3 6 1 0 2 3 5 1 0 pi ri di li ei Tabela 3 - Mquina 3, 1 iterao
Mquina 3- Iterao 1
Tarefa 1 Tarefa 2 Tarefa 3 Tarefa 4 Tarefa 5
2 1 6 1 0
1 3 6 1 0
2 0 4 1 0
1 5 6 1 0
2 0 5 1 0
Para a mquina 1:
Seguindo o procedimento descrito anteriormente no passo 2, obtemos a sequncia ideal para processar nesta mquina assim como o seu Tabela 4 - Mquina 1. 1 Iterao penalty. Exemplificando: 1)C = 0; k = 1 2)ES = 0 (tempo mnimo de chegada) 3) S = max {C;ES}= 0 4)J ={1;4} ( tarefas com tempo de chegada S) 5) T = pi(1) + pi(4) = 1+3=4 ; H= T + S = 4 + 0 = 4 = C 6) (H-Di) o Tarefa 1 = 0 => T Di= (Di-H)* Ei = 0
11
Pi ri di li ei
Tarefa 5 1 2 6 1 0
o Tarefa 4 = 1 => T Di= (H-Di)* Li = 1 7) k = k + n k = 1 + 2 = 4 (n= numero de tarefas existentes em J) 8) k nmero total de tarefas voltar ao passo 2 com as tarefas que sobraram. Escolhe-se a sequncia por ordem inversa (decrescente) de penalty (T Di). Ento at agora a sequncia tarefa4-tarefa1. Voltando ao passo 2 e repetindo o procedimento para todas as tarefas que ainda no esto sequenciadas. Obtivmos C = 4; k = 4 2)ES = 2 3) S = max {C;ES}= 4 4)J ={3;5} 5) T = pi(3) + pi(5) = 1+1=2 ; H= T + S = 2 + 4 = 6 = C 6) (H-Di)<=> o Tarefa 3 = 1 => T Di= (H-Di)* Li = 1 o Tarefa 5 = 0 => T Di= (Di-H)* Ei = 0 Da mesma forma escolhem-se as prximas tarefas da sequncia: 4-1-3-5 7) k = k + n k = 4 + 2 = 6 (n= numero de tarefas existentes em J) 8) k nmero total de tarefas Passar para a Forward Phase.
Forward Phase CT inicialmente zero. o o Se ri > CT, eno CT = ri + pi ; caso contrrio CT = CT + pi. CT- di >0, ento TDi = (CT - di )* li; caso contrrio, TDi = (di CT)* ei .
Analisando pela ordem da sequncia obtida: Tarefa 4: o ri=0 CT, ento CT = CT + pi.= 0 + 3 = 3
o CT- di = 3 -3 0, ento TDi = (di CT)* ei = (3 3)*0 = 0 Proceder de igual forma para a tarefa 1; 3 e 5, pela ordem correcta e utilizando o CT obtido na tarefa anterior. Assim, chegamos ao valor de TDi = 0 para todas as tarefas, logo o penalty para a mquina 1 a soma de todos os TDi , ou seja zero.
12
De igual forma se procede para todas as outras mquinas. Os resultados obtidos encontram-se na tabela abaixo:
Tabela 5 - Sequncias e penalties, 1Iterao
Mquina Sequncia Penalty 1 4-1-3-5 0 2 2-4-3 0 3 5-3-2-4-1 2 A mquina mais penalizada, com maior penalty a mquina 3, logo a bottleneck machine. Ento, seguindo o procedimento do algoritmo, adicionamos a mquina 3 ao n inicial, sendo agora Mr = {3}. A rede recalculada assim como todos os seus tempos mais cedo e mais tarde de incio como est demonstrado na ilustrao 3.
[0]{5} [6]{6}
1/1
[0]{1}
1/3
[4]{4}
0 0
2/2
[2]{2}
3 2
2/3 1 1
[4]{6} [5]{7}
[8]{8}
M0
0 0
3/3
[0]{0}
3/1
[3]{3}
1 1 2
3/2
[5]{5}
1
1
FIM
4/1
[0]{0}
3 2
Como M-Mr = {1;2;3} - {3} = {1;2}, devemos optimizar as sequncias para a mquina 1 e 2. Iterao 2
Tabela 6 - Mquina 2, 2 Iterao Tabela 7 - Mquina 1, 2 Iterao Mquina 1 - Iterao 2 Tarefa 1 Tarefa 3 Tarefa 4 1 1 3 0 4 0 6 7 3 1 1 1 0 0 0 Da nova rede, temos novos dados para cada uma das mquinas: Mquina 2 - Iterao 2 Trabalho Trabalho Trabalho 2 3 4 3 1 2 0 5 3 4 8 5 1 1 1 0 0 0
pi ri di li ei
4/2
4/3
[2]{7}
5/3
5/1
Tarefa 5 1 2 8 1 0
pi ri di li ei
13
Fazendo os mesmo clculos que tinhamos feito na Iterao 1 mas agora apenas para a mquina 1 e 2, chegamos concluso que tanto uma como outra tm o mesmo valor de penalty e assim escolhemos ao acaso a prxima bottleneck machine. Neste caso foi escolhida a mquina n2.
Mquina 1 2
Penalty 0 0
Utilizamos a sequncia ptima para a mquina 2. Procedemos alterao da rede,ligando em sequncia as tarefas associadas mquina 2. Recalculam-se os tempos mais cedo e mais tarde de incio da operao e calculamos o novo Cmax que ser igual a 8.
[0]{5} [6]{6}
1/1
[0]{0}
1/3
[4]{4}
0 0
2/2
[2]{2}
3 2
2/3 1 1
[4]{6} [5]{7}
[8]{8}
M0
0 0
3/3
[0]{0}
2
3
3/1 2
[3]{3}
1 1 2
3/2
[5]{5}
FIM
1
1
4/1
[0]{0}
3 2
Para aplicao do passo 5, Mr={3}. A sequncia ptima encontrada anteriormente para a mquina 3 foi 5-3-2-4-1, mostrada pelos arcos da ilustrao 4. A rede ento modificada removendo as ligaes da mquina 3 ( as ligaes em arco entre as tarefas e a mquina 3) como indicado na ilustrao 5:
4/2
4/3
[2]{7}
5/3
5/1
14
Agora necessrio reclacular os tempos mais cedo e mais tarde de incio da ilustrao 4. Os dados da soluo anterior so usados para a reavaliao da mquina 3. Ao reavaliar a mquina 3, obtemos a sequncia ptima 5-3-2-4-1 com um penalty=2.
Tabela 9 - Mquina 3, 2 Iterao Mquina 3- Iterao 2 Tarefa Tarefa Tarefa 2 3 4 1 2 1 3 0 5 6 5 6 1 1 1 0 0 0
pi ri di li ei
Tarefa 1 2 1 6 1 0
Tarefa 5 2 0 5 1 0
Como a sequncia obtida na verificao foi igual sequncia obtida anteriormente, juntamos de novo as operaes correspondentes mquina 3 e obtemos uma rede como a da ilustrao 4, no havendo melhoramento pois o makespan mantm-se (Cmax=8). Adicionamos ento a mquina 2 ao conjunto Mr, ficando Mr = {2;3}.
Iterao 3
A mquina n 1 a nica que sobra no conjunto M-Mr, e vai ser resolvida para o mnimo de penalty total. Os dados para anlise so retirados da figura obtida no ltimo clculo (Ilustrao 4).
Tabela 10 - Mquina 1, 3 iterao Mquina 1-Iterao 3 Tarefa 3 Tarefa 4 1 3 4 0 7 3 1 1 0 0
pi ri di li ei
Tarefa 1 1 0 6 1 0
Tarefa 5 1 2 8 1 0
Tal como nos casos anteriores, seguimos os passos do algoritmo em busca da sequencia ptima e obtivmos um penalty = 0 para a sequncia 4-1-3-5. Seguidamente a rede modificada como ilustrado na ilustrao 6,adicionando as ligaes em arco entre as operaes e a mquina 1. Recalcula-se os tempos mais cedo e mais tarde de incio de cada n e
15
Ilustrao 6 Rede- Iterao 3
tambm o makespan que continua a ser Cmax=8. Nesta fase, como Mr = {2;3}, voltamos a resequenciar as mquinas 2 e 3 para obter o penalty total mnimo e verificarmos se existe alguma melhoria no makespan. Comemos por remover as ligaes em arco da mquina 3 (Ilustrao 7) e calcular o penalty minimo para a mesma.
[3]{3} [4]{4}
1/1
[0]{0}
1/3
[3]{5}
0 0
2/2 3
[0]{2}
3 2
2/3 1
[4]{4}
[5]{5}
[6]{6}
M0
0 0
3/3
[0]{0}
2
3
3/1 2
[3]{3}
3/2
[5]{5}
FIM
1
1
4/1
[0]{3}
4/2
pi ri di li ei
Trabalho 1 2 4 6 1 0
Procedendo de igual forma e seguindo o algoritmo proposto, chegmos a uma sequncia ptima igual que tinhamos encontrado anteriormente e com penalty=2. Como a sequncia no se alterou, o makespan continua Cmax=8.
4/3
1
[5]{5}
5/3
5/1
Trabalho 5 2 0 5 1 0
16
Ilustrao 8 - Mquina 2 removida, 3 Iterao
Voltamos ento rede anterior (ilustrao 6) e retiramos as ligaes em arco mquina 2 (ilustrao 8). Mais uma vez recalcularam-se os tempos mais cedo e mais tarde de incio de cada n e resolveu-se a mquina 2 para a obteno do penalty mnimo. Obteve-se ento a sequncia 24-3 com um penalty = 0
Tabela 12 - Mquina 2,3 Iterao Mquina 2 - Iterao 3 Trabalho Trabalho Trabalho 2 3 4 3 1 2 0 5 3 4 8 5 1 1 1 0 0 0
pi ri di li ei
Mais uma vez, como a sequncia no se alteou, o makespan mantem-se e tambm o tempo de processamento de toda a rede. A sequncia em cada mquina ento obtida seguindo os as ligaes entre cada n das tarefas a executar em cada mquina.
Tabela 13- Sequncia final e carga total em cada mquina Mquina 1 2 3 Sequncia 4-1-3-5 2-4-3 5-3-2-4-1 Carga 0+3+4+5 0+3+5+6 0+2+4+5+6+8 Carga total 12 14 25
17
Validao Informtica
Utilizmos o software Lekin para tentarmos validar a soluo encontrada analiticamente. Ao inserirmos os dados no Lekin e usando a Heurstica Shifting Bottleneck / Tmax foinos dada uma possvel sequncia para o problema inicial, que ilustrada seguidamente:
Observmos que a primeira sequncia obtida pelo Lekin no era igual sequncia por ns obtida. Com os dados obtidos, tentmos optimizar as sequncias possveis de modo a igualar aos resultados analticos. Foi possvel obter a soluo por ns proposta atravs do Lekin e, alm disso, tal como descrito na Ilustrao 9, conseguimos diminuir o nmero de tarefas atrasadas em relao proposta inicial do programa de 3 para 1 e, para alm disso, houve tambm uma reduo do total tardiness que um dos grandes objectivos a atingir quando se aplica a regra Shifting Bottleneck.
18
19