Programação da produção usando regras heurísticas em redes de petri
Reynaldo Chile Palomino (UCS) [email protected]Resumo
A programação da produção em sistemas de produção é um problema bem complicado por natureza. No caso de sistemas produtivos flexíveis, o problema resulta sendo ainda mais complicado, sobre tudo, quando uma determinada operação pode ser executada por diversas máquinas. Nesse sentido, o presente trabalho tem por objetivo mostrar como as redes de petri em conjunto com regras heurísticas podem ser usadas para resolver problemas de programação da produção de sistemas complexos de manufatura.
Palavras Chaves: Programação da produção, Redes de petri.
1.- Introdução
Devido ao rápido desenvolvimento da automação industrial e clientes cada vez mais exigentes (no referente a custo, qualidade e rapidez) e variados, os sistemas de produção intermitente (em lotes e por encomenda), são atualmente muito usados para permitir satisfazer as necessidades da demanda deste tipo de mercado. Sendo assim, os sistemas flexíveis de produção, são indispensáveis em ambientes competitivos.
Modelar um sistema flexível não é tão simples assim, sobre tudo quando existem diversas maneiras de se produzir um produto (roteiros alternativos de produção) e quando existem operações que podem ser realizadas por várias máquinas candidatas.
Sistemas flexíveis de produção, em especial os job shop, são sistemas que permitem produzir múltiplos produtos usando diversos recursos. A produtividade deste tipo de sistema é um desafio até agora não resolvido completamente, o qual depende em muito da alocação dos diversos recursos (máquinas em geral) às operações produtivas, assim como sua ordem de operação (CÂNDIDO, 1997; DAUZÈRE-PÉRES, and LASSERRE J. B., 1999).
Por causa da complexidade dos problemas de programação, métodos analíticos são pouco usados na avaliação de sistemas de manufatura complexos (White, 1990). Por outro lado, os métodos avaliativos, tais como simulação, combinados com outras regras heurísticas estão sendo muito usados para poder tratar a complexidade dos sistemas flexíveis de manufatura (CHETTY, 1996).
Redes de petri, por sua parte, são uma ferramenta bastante apropriada para modelar a dinâmica dos sistemas de manufatura flexíveis (Al-JAAR, R. and DESROCHES A, 1988). Esta ferramenta permite-nos representar com muita facilidade cada uma das atividades, recursos assim como as restrições do sistema numa forma coerente. E pelas Redes de Petri serem uma ferramenta gráfica, qualquer pessoa com pouco treinamento pode entender e formular um problema de programação.
2.- Programação da Produção
Programação da produção consiste basicamente em determinar o tempo de inicio e termino de cada ordem de produção para dar cumprimento aos compromissos estabelecidos no Plano
Mestre de Produção. Tal determinação é conseqüência de: a) uma correta distribuição das operações necessárias aos diversos centros de trabalho (alocação de carga) e b) a determinação da ordem na qual as operações serão executadas (seqüenciamento). Estas duas questões geralmente estão sujeitas a dois tipos de restrições que são: o número de máquinas disponíveis no sistema, e as restrições tecnológicas que determinam a ordem na qual as tarefas (jobs) serão realizadas.
Problemas de programação resultam na maioria das vezes resultam sendo complexos mesmo para casos simples, e na maioria das vezes são considerados como sendo um NP-hard (SULE 1996, BAKER 1998). Isto significa que apenas algoritmos heurísticos podem ser usados para se obter programas de produção que se aproximem do ótimo (ZHOU, M. C., 1995; MAZZUCO, 1999).
3.- Programação da produção baseada em redes de petri
O problema da programação da produção será baseado numa rede RP-PPP, a qual é uma extensão do modelo de planejamento (PALOMINO 2001). Essa extensão compreende a inclusão de três tipos de lugares: a) Lugares de controle de demanda (Pe), que nos permitirão modelar a quantidade de itens de cada tipo de produto a ser produzidos (tamanho dos lotes de produção) num determinado período de trabalho; b) Lugares de controle de fluxo (Pf), que permitem controlar a quantidade de unidades de produto que são liberadas para dentro do sistema; c) Lugares de controle da produção (Pc), os quais permitem controlar a quantidade de itens que são processados em cada máquina alternativa que realiza a mesma operação e d) Lugares recurso (Pr), que irão modelar cada uma das máquinas utilizadas no sistema. No modelo baseado em RP-PPP, que representa o problema de programação, o estado inicial e final do sistema será representado pela marcação inicial e final da rede, respectivamente.
4.- Aplicação
Consideremos um sistema Job Shop formado por 5 máquinas representadas por M1, M2, M3, M4 e M5 que processam três tipos de produtos P1, P2 e P3. O processo de manufatura para cada um dos produtos é dado na tabela 1 e sua representação usando RP-PPP é mostrada figura 1.
Produto 1ra operação 2da operação 3ra operação
P1
M1 (7) M2(9)/M3(5) M5(11)P2 M2 (7)/M3 (9) M4(5)
P3 M1(11)/M2(13) M3(7) M4(9)/M5(5) Tabela 1.- Processo de manufatura para três produtos
Na figura 1, a marcação inicial dos lugares Pei irá depender do numero de unidades a serem
fabricadas de cada produto, isto é, do tamanho do lote de produção (ou demanda do produto), enquanto que o numero de fichas que aparecerão nos lugares Psi (marcação final), após um
período de tempo T, representará o número de unidades fabricadas, prontas para serem consumidas ou vendidas. A marcação de um lugar Pf será sempre igual a 1, fazendo, desse modo, com que apenas uma unidade de matéria prima seja introduzida por vez dentro do
sistema. Sendo assim, Pf torna-se um limitante da quantidade de produtos em processo. A marcação inicial dos lugares Pc, por outro lado, dependerá do resultado da etapa de planejamento. As transições que modelam o início de uma operação, a qual possui várias máquinas candidatas, estarão ligadas a um lugar Pc. Cada lugar Pm será preenchido com apenas uma ficha, o que indica que existe apenas uma única máquina do tipo ma. Finalmente,
todo lugar que modela um recurso será ligado através de arcos com cada uma das transições que modelam o início de uma operação que ocupa tal recurso.
Para uma certa demanda, conforme mostra a tabela 2, levando em consideração fatores como custos de estocagem, falta de estoque e custos operacionais de máquina, foram obtidos os resultados (usando o software de programação linear LINDO) mostrados na tabela 3, numa prévia etapa de planejamento.
Figura 2 - Modelo de Rede de Petri do job shop da figura 1
p11 pf3 pf2 pf1 pe3 pe2 pe1 t1 (0) p23 t28 (5) p21 p22 t29 (9) t25 (7) t27 (0) p19 p20 t26 (0) p21 p17 p20 p18 t24 (0) t22 (13) t23 (11) t21 (0) p9 pm2 p12 t30 (0) t16 (0) t20 (0) t18 (0) t15(7) t19 (0) t11 (0) pm4 p13 p10 p14 t13 (0) t12 (0) t17 (9) t 14(9) p8 p7 pm5 p6 p5 p4 pm1 t8 (0) t5 (0) t4 (0) t2 (0) p2 p3 p1 t10 (0) t7 (5) t9 (11) t6 (9) t3 (7) Produto 1 RP-PPP1 = Z1 Produto 2 RP-PPP2 = Z2 Produto 3 RP-PPP3 = Z3 n1 n2 n3 t21 pm1 pm1 p16 p15 pm3 ps1 ps2 ps3 t23 ( ) t27 ( ) t29 ( ) t4 ( ) t6 (0) pm2 pm2 pm4 pm3 pm3 pm4 pc1 pc2 pc3 pc4 pc5 pc6 t24 t25 pc7 pc8
Produto Demanda ⇒ Período ⇓ P1 P2 P3 K = 1 30 40 20 K = 2 20 55 30 K = 3 28 50 35 K = 4 15 55 15 K = 5 25 45 25 Total 118 245 125
Tabela 2 - Plano mestre para três produtos Período (k)
Produto: Roteiro 1 2 3 4 5 Total
P1: q11k 0 0 0 0 0 0 P1: q12k 30 20 10 33 25 118 P2: q21k 17 17 18 18 16 86 P2: q22k 23 38 32 37 29 159 P3: q31k 0 0 0 0 0 0 P3: q32k 21 28 34 17 25 125 P3: q33k 0 0 0 0 0 0 P3: q34k 0 0 0 0 0 0 Tabela 3 – Número de vezes que cada roteiro qij será ativado no período k
Os dados da tabela 3, resultado do processo de planejamento da produção, podem ser traduzidos em quantidade de disparo de transições, da rede que modela o processo de produção (figura 1), a qual servirá como base para determinar a seqüência de disparo das transições na rede, para cumprir com os objetivos da programação acima mencionados. Estes dados são mostrados na tabela a 4, onde Gik é um vetor que representa o número de vezes que cada transição que corresponde ao produto i será disparada durante o período k e, Yij representa um invariante de transição (ou roteiro de produção j do produto i).
Transição ⇒ t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
G11= 0.Y11+30.Y12 (30 30 30 0 30 0 30 30 30 30)
Transição ⇒ t11 t12 t13 t14 t15 t16 t17 t18
G21 = 17.Y21+23.Y22 (40 17 23 17 23 40 40 40)
Transição ⇒ t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 T30
G31 = 0.Y31 + 21.Y32 + 0.Y33 +
0.Y34 (21 0 21 0 21 21 21 21 0 21 0 21)
Tabela 4 – Número de vezes que cada transição dispara no primeiro período 4.- Algoritmo de programação
O resultado do problema da programação, a partir da figura 1 e os dados mostrados na tabela 4, consiste em determinar uma seqüência de disparos de transições que permitam produzir as quantidades planejadas na etapa do planejamento da produção no menor tempo possível (makespan), mantendo um mínimo de inventário de produtos em processo e obtendo a máxima ocupação das máquinas. Este objetivo é alcançado usando diversas regras heurísticas associadas a toda transição inicial.
Vetor associado a cada transição inicial da RP-PPP
Na figura 3, a informação associada a toda transição inicial é representada por:
a) O valor associado ao índice Nop (nível de operação) dependerá do número da operação realizada sobre o produto. Por exemplo, se um produto precisa de três operações para ficar pronto, a transição que modela o início da primeira operação terá associado um valor de Nop igual a 1, a segunda operação igual a 2 e assim sucessivamente.
b) O valor associado índice Fop (flexibilidade de operação) é dado pelo número de máquinas disponíveis capazes de realizar uma determinada operação. No caso da figura 6.11, por exemplo, as transições t1 t3 e t5 terão associado um valor de Fop igual a 1 pelo fato de existir apenas uma máquina capaz de realizar essas operações; por outro lado, as transições t7 e t8 terão associado um valor de Fop igual a 2, pelo fato de representarem o início das operações de duas máquinas capazes de realizar a segunda operação do produto 2.
c) No caso do tempo de ocupação das máquinas (δ), este valor será dado pelo tempo que dura a operação. Caso a transição inicial represente o tempo da transferência de uma peça sobre a máquina, então este valor será dado pela soma da transição inicial e final, respectivamente.
Para a rede mostrada na figura 2, os valores associados a cada transição que modela o início de uma operação produtiva são mostradas na tabela 2.
Algoritmo:
1.- Determine as transições habilitadas na marcação inicial Mo
2.- Verifique se existem transições habilitadas que possuam lugares de entrada em comum
SIM: Para cada grupo de transições que possuem lugares de entrada em comum
faça:
Compare os valores de seus índices Fop e pergunte: Fop é igual para todas as transições
SIM: Compare os valores dos índices Nop e pergunte:
Nop é igual para todas as transições
SIM: selecione para o disparo, as transições com menor valor de δ, e desabilite os resto das transições.
NÃO: selecione para o disparo a transição com maior valor de Nop e
desabilite as demais transições.
NÃO: selecione para o disparo as transições com maior valor do índice Nop e
desabilite as outras transições.
Junte as transições selecionadas e aquelas que não compartilham lugares de entrada para formar o vetor de disparo.
NÃO: Selecione para o disparo todas as transições habilitadas.
Figura 3 – Vetor associado a uma transição inicial
Transição
inicial Transição final
Recurso disponível Recurso ocupado [ Nop, Fop, δ ] t1 (θ1) t2 (θ2)
3) Construir o vetor de disparo
4) Disparar as transições selecionadas e ache a nova marcação. 5) Determine as transições habilitadas para a nova marcação 6)Voltar para o passo 2.
Transições (iniciais)
t2 t4 t5 t8 t12 t13 t16 t20 t21 t24 t26 t27
Nop 1 2 2 3 1 1 2 1 1 2 3 3 Fop 1 2 2 1 2 2 1 2 2 1 2 2 δ 7 9 5 11 9 7 9 13 11 7 5 9
Produto 1 Produto 2 Produto 3
Tabela 2 – Informação associada a cada transição inicial da rede da figura 6.9
O funcionamento deste algoritmo (o qual foi programado na linguagem PASCAL) leva em consideração as seguintes suposições: 1) todos os trabalhos estão disponíveis no tempo zero; 2) os tempos de setup de cada operação são incluídos nos tempos de processamento; e 3) iniciada uma operação, a mesma irá continuar até seu término sem interrupção, o que implica que as máquinas não podem ser interrompidas seja por quebra ou qualquer outro motivo. Logo após a aplicação do algoritmo de programação para a produção planejada para o primeiro período, os seguintes resultados foram obtidos para um makespan total igual a 455 minutos por dia com a seguinte seqüência de disparo de transições.
Seqüência de disparo de transições: Máquina 1: t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t2; t21; t21; t21 t21; t21; t21 t21; t21; t21 t21; t21; t21 t21; t21; t21 t21; t21; t21 t21; t21; t21. Máquina 2: t13; t13; t13; t13; t13; t13; t13; t13; t13; t13; t13; t13; t13; t13; t13; t13; t13; t13; t13; t13; t13; t13; t13. Máquina 3: t12; t5; t5; t12; t5; t5; t5; t5; t12; t5; t5; t5 t5; t5; t12; t5; t5; t5 t5; t12; t5; t5; t5 t5; t5; t12; t5; t5; t5 t5; t12; t5; t5; t5 t5; t5; t12; t5; t24; t12; t24; t24; t12; t24; t24; t12; t24; t24; t24; t12 ; t24; t24; t12; t24; t24; t12; t24; t24; t12; t24; t24; t24; t12; t24; t24; t12; t24; t24. Máquina 4: t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16; t16. Máquina 5: t8; t8; t8; t8; t8; t8; t8; t8; t8; t8; t8; t8; t8; t8; t8; t8; t8; t8; t8; t8; t26; t8; t26; t26; t8; t26; t26; t8; t26; t8; t26; t26; t8; t26; t26; t8; t26; t26; t8; t26; t26; t8; t26; t26 ; t8; t26; t8; t26.
5.- Conclusão
Este trabalho mostrou como regras heurísticas podem ser associadas com facilidade a transições de uma rede de petri, as quais são usadas para seqüenciar operações a máquinas em ambientes do tipo job shop. As regras heurísticas usadas no presente trabalho, mostraram-se eficientes nos seguintes aspectos: manter baixo estoque em processo, realizar uma boa carga e máquinas e, minimizar o makespan de produção conforme mostra o gráfico de Gantt no final do trabalho.
XI - REFERENCIAL BIBLIOGRÁFICO
Al-JAAR, Robert Y. And DESROCHES, Alan A., A survey of Petri Nets in automated Manufacturing System. Proc. 12th IMACS World Congress on Scientific Computation,vol.2, pp. 503-510, (1988).
BAKER, Kenneth R.. Elements of Sequencing and Scheduling. Wiley, New York, 1998.
CÂNDIDO,Marco Antonio B.. A hybrid genetic approach to solve real make-to-order job shop scheduling problems. Doctoral Thesis submitted at the Graduate Program in Production Engineering –UFSC, 1997. CHETTY, O. V. Krishnaiah and GNANASEKARAN, O. C.. Modelling, Simulation and Scheduling of Flexible
Assembly Systems with Coloured Petri Nets. The Int. J. Advanced Manufacturing Technology, vol. 11 pp. 430-438, 1996.
DAUZÈRE-PÉRES, Stéphane and LASSERRE Jean-Bernard. Planning and Scheduling in a multi-site enviroment. Production Planning & Control, vol. 10, nº 1, pp. 19-28, (1999).
GHOSH, Soumen. Production Planning and Scheduling in Flexible Manufacturing system Environment. Dissertation presented in partial fulfillment of the requeriment for the degree Doctor of Philosaphy in the graduate school of the Ohio State University. The Ohio Sate University 1987.
MAZZUCCO, José. Uma abordagem Híbrida do problema da programação da Produção através dos algoritmos simulated annealing e genético. Tese apresentada ao Programa de pós-Graduação em Engenharia de Produção da Universidade Federal de Santa Catarina, 1999.
PALOMINO, R.C. Um modelo baseado em redes de petri para o planejamento e a programação da produção em ambientes do tipo job shop. Tese apresentada ao Programa de pós-Graduação em Engenharia de
Produção da Universidade Federal de Santa Catarina, 2001.
RIGHINI, G., Modular Petri Nets for Simulation of Flexible Production System. Int. J. Prod. Res., vol.31, n. 10, pp. 2463-2477, (1993)
SULE, D. R. Industrial Scheduling. PWS Publishing company, ISBN 0-534-95456-1.
WHITE, K. Preston and ROGERS, Ralph V.. Job shop scheduling: limits of the binary disjuntive formulation. Int. Journal of production research, vol. 28, n° 12, 1990.
ZHOU, MENG-Chu; CHIU, Hua-Sheng and XIONG, H. Henry. Petri net scheduling of FMS using branch and bound method. IEEE 1995.
M1 M2 M3 M4 M5 p1 p1 p1 p2 p2 p2 p1 p1 p1 p1 p2 p1 p1 p1 p1 p1 p1 p1 5 10 15 20 25 30 35 40tempo45 50 55 60 65 70 75 80 85 p2 p2 p2 p2 p2 p2 p2 0 p2 p2 p1 p2 p1 p1 p1 p2 p2 p2 p2 p2 p2 p2 p1 p1 p1 p1 p1 p1 p1 p2 p2 p1 p2 p1 p2 p2 p2 p2 p2 m á q u i n a p1 p1 M1 M2 M3 M4 M5 100 tempo 90 95 5 10 15 20 25 30 35 40 45 50 55 60 65 70 p2 p2 p2 p2 p1 p1 p1 p1 p1 p1 p1 p2 p2 p2 p1 p1 p1 p1 p1 p1 p1 p1 p2 p2 p2 p2 p1 p1 p1 p2 p2 p2 p2 p2 p1 p1 p1 p1 p1 p2 p2 p1 p1 p1 p1 p2 p2 p1 p1 p2 p2 p2 p2 p2 p1 p1 m á q u i n a p2 p2 p2 p2 p1 M1 M2 M3 M4 M5 200 10 15 20 25 30 35 40 45 50 55 P3 P1 P1 P1 P1 P1 P3 P1 P2 P1 P2 P1 P1 P3 P1 P2 P1 P3 P2 P3 P3 P3 P3 P3 P1 P1 P1 tempo 75 85 90 95 5 P1 P1 P2 80 P1 m á q u i n a P1 P1 P1 P2 Diagrama de Gant M1 M2 M3 M4 M5 P3 P3 P1 P3 P1 P3 P3 P1 P3 P3 P2 P2 tempo 65 70 75 80 85 90 95 300 25 30 35 40 P2 P2 P3 P3 P3 P3 P3 P3 P2 P3 P3 P3 P3 P1 P3 5 P2 P2 60 P2 P3 P3 P3 P3 10 15 20 P3 m á q u i n a M1 M2 M3 M4 M5 P3 P1 P3 P3 P1 P3 P1 P3 P2 P3 P1 P3 P3 P1 P3 P3 P3 m á q u i n a 15 20 25 P3 P3 70 75 P3 P3 tempo 80 85 90 95 5 10 P3 45 50 55 60 65 P3 P2 P3 P3 P3 P3 P3 P2 P2 P2 P2 P3 P3 400 M1 M2 M3 M4 M5 P3 P3 P3 P2 P3 m á q u i n a tempo 30 35 40 45 50 55 P2 p3 p3 p3