• Nenhum resultado encontrado

Otimização por algoritmos genéticos do sequenciamento de ordens de produção em ambientes Job Shop.

N/A
N/A
Protected

Academic year: 2021

Share "Otimização por algoritmos genéticos do sequenciamento de ordens de produção em ambientes Job Shop."

Copied!
127
0
0

Texto

(1)UNIVERSIDADE NOVE DE JULHO PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA DE PRODUÇÃO. OTIMIZAÇÃO POR ALGORITMOS GENÉTICOS DO SEQUENCIAMENTO DE ORDENS DE PRODUÇÃO EM AMBIENTES JOB SHOP.. FLÁVIO GRASSI. SÃO PAULO 2014.

(2) FLÁVIO GRASSI. OTIMIZAÇÃO POR ALGORITMOS GENÉTICOS DO SEQUENCIAMENTO DE ORDENS DE PRODUÇÃO EM AMBIENTES JOB SHOP. Dissertação de mestrado apresentada ao Programa de Pós-Graduação em Engenharia de Produção da Universidade Nove de Julho, como requisito parcial para a obtenção do grau de Mestre em Engenharia de Produção. Prof. Fabio Henrique Pereira, Dr. – Orientador.. SÃO PAULO 2014.

(3) Grassi, Flávio. Otimização por algoritmos genéticos do sequenciamento de ordens de produção em ambientes job shop. /Flávio Grassi 2014. 126 f. Dissertação (mestrado) – Universidade Nove de Julho, São Paulo, 2014. Orientador (a): Prof. Dr. Fabio Henrique Pereira. 1. Job shop. 2. Algoritmo genético. 3. Otimização. 4. Sequenciamento da produção. I. Pereira, Henrique Fabio. II. Título CDU 658.5.

(4)

(5) Dedico este trabalho aos meus pais, por todo o esforço e dedicação que tiveram para que me tornasse uma pessoa de bem, e ao meu filho Miguel, que desde seu nascimento tem sido minha fonte de inspiração para tudo que realizo..

(6) AGRADECIMENTOS Deixo aqui meus agradecimentos à todos que contribuíram para que esse trabalho fosse realizado, aos meus colegas de mestrado, aos professores do Programa de Pós-Graduação em Engenharia de Produção, e à UNINOVE, tanto pela bolsa de estudos – que permitiu com que eu participasse desse programa de mestrado, quanto pela qualidade do programa: sem dúvida superou em muito minhas expectativas (e fez com que eu tivesse que estudar bastante para acompanha-lo). Dentre eles, gostaria de agradecer especialmente à meu orientador, Fabio Henrique Pereira, pelas valiosas contribuições e conselhos ao longo desse trabalho. Sem dúvida não fosse sua dedicação e comprometimento, esse trabalho não teria o mesmo valor; bem como ao professor Sidnei Alves de Araújo, que à exemplo do professor Fabio, prova a cada aula que ainda existem educadores apaixonados pelo que fazem, e que de fato se preocupam com nossa educação. Espero que no futuro eu possa ser um professor e pesquisador tão bom quanto eles, pois são exemplos à serem seguidos, tanto pelo profundo conhecimento das áreas em que atuam, quanto pela humildade que permite com que passem esse conhecimento adiante de uma forma excepcional. Deixo também um agradecimento especial ao professor Pedro Henrique Triguis Schimit, pela valiosa contribuição com relação à adaptação da função de avaliação para linguagem C. Agradeço ao professor Reinaldo Morabito Neto pelas valiosas considerações durante a defesa desta dissertação, bem como as sugestões do professor Leonardo Junqueira. Agradeço também à compreensão da minha esposa Andréa, que por inúmeras vezes ficou em segundo plano enquanto eu me dedicava ao mestrado, e ao nosso filho, Miguel Ladeira Grassi, que mesmo sem saber, renovava minhas energias a cada vez que me agraciava com seu carinho. Sem dúvida o amor à um filho é um amor incondicional. Agradeço também ao meu amigo Flávio Moreira da Costa: sem dúvida é mais uma amizade boa que vou levar além dessa etapa. E finalmente, agradeço ao nosso Pai Celestial, por permitir que eu vencesse mais essa etapa..

(7) “A educação é a arma mais poderosa que você pode usar para mudar o mundo.” (Nelson Mandela).

(8) RESUMO A otimização de processos produtivos é tema de grande relevância na indústria, sendo portanto tratado por diversos pesquisadores ao redor do mundo, há mais de cinquenta anos. Dentre os problemas a serem solucionados, tem grande destaque a questão do sequenciamento de ordens de produção devido à sua vasta aplicabilidade como, por exemplo, no aumento da produtividade de veículos em indústrias automobilísticas ou na melhoria do desempenho de processadores em computadores. No presente trabalho foram abordados estudos envolvendo a otimização de problemas determinísticos de sequenciamento de ordens de produção em ambientes Job Shop através do uso de algoritmos genéticos. Os problemas testados pertencem à um grupo de exemplares disponíveis em uma biblioteca de problemas de pesquisa operacional, largamente utilizada por pesquisadores neste contexto, sendo que nesses exemplares todas as ordens de produção estão disponíveis para alocação no instante zero e os tempos de processamento são fixos. A função de avaliação das soluções geradas durante a otimização foi desenvolvida em linguagem C. O algoritmo genético adotado utiliza operadores genéticos convencionais e representação binária, promovendo melhorias em relação à pesquisas que também se baseiam nesses operadores, através da escolha da população inicial, que é realizada adotando um conceito de semente dinâmica desenvolvido nesta dissertação. Inicialmente a semente geradora da população do algoritmo genético adota uma regra simples de sequenciamento baseada na sequência das ordens de produção em relação à sua rota, que é definida pelo problema, e posteriormente novas sementes são utilizadas, considerando aquelas que geraram os melhores indivíduos das gerações anteriores. Conforme apresentado na seção de resultados, esse conceito de semente dinâmica efetivamente gera um número maior de soluções factíveis. Os resultados qualitativos demonstram que a abordagem desenvolvida se mostra competitiva em relação à outras representações clássicas de ambientes de Job Shop, gerando soluções em tempos aceitáveis para esse tipo de problema. Palavras-chave: Job Shop, Algoritmo genético, Otimização, Sequenciamento da produção..

(9) ABSTRACT The optimization of processes is a highly relevant topic in the industry, and therefore treated by many researchers around the world for more than fifty years. Among the problems to be solved, must highlight the issue of sequencing of the production scheduling due its wide applicability, such as increasing productivity of vehicles in automobile industry or improving the performance of processors in computers. In the present work were conducted studies involving scheduling of production orders of deterministic problems in Job Shop environments through the use of genetic algorithms. The problems tested belong to a group available from an operations research library, widely used by researchers in this context, and in such instances all production orders are available for allocation since the instant zero, and processing times are fixed. The fitness function of the solutions generated during optimization was developed in C language. The adopted genetic algorithm uses conventional. genetic. operators. and. binary. representation,. and. promotes. improvements in relation to research which are also based on these operators, through the choice of the initial population, which is performed by adopting a concept of dynamic seed developed in this dissertation. Initially the generating seed of the population in the genetic algorithm adopts a simple sequencing rule based on the sequence of the production orders in relation to its route, which is defined by the problem, and then new seeds are used, which are those that generated the best individuals of previous generations. As presented in the results section, this concept of dynamic seed effectively generates a larger number of feasible solutions. The qualitative results show that the developed approach is competitive in relation to other classic representations of Job Shop environments, providing solutions in acceptable time for this sort of problem. Keywords: scheduling.. Job. Shop,. Genetic. algorithms,. Optimization,. Production.

(10) LISTA DE ILUSTRAÇÕES Figura 1 – Cenário típico de sequenciamento de produção ...................................... 20 Figura 2 – Problema da Figura 1: dois sequenciamentos diferentes......................... 21 Figura 3 – Matrizes para o problema 2 × 3................................................................ 26 Figura 4 – Gráfico disjuntivo para o problema 2 × 3 .................................................. 27 Figura 5 – Gráfico de Gantt para o problema 2 × 3 ................................................... 28 Figura 6 – Gráfico conjuntivo para o problema 2 × 3 ................................................ 39 Figura 7 – Caminho crítico ........................................................................................ 40 Figura 8 – Lista de preferência para o problema 2 × 3 .............................................. 41 Figura 9 – Exemplo de cycle crossover ..................................................................... 44 Figura 10 – Exemplo de cruzamento de único ponto ................................................ 44 Figura 11 – Exemplo de mutação swap .................................................................... 45 Figura 12 – Exemplo de mutação flip bit ................................................................... 45 Figura 13 – Representação por lista de prioridades: problema FT06........................ 48 Figura 14 – Transformação das rotas em sequência de jobs por máquina ............... 49 Figura 15 – Metodologia utilizando a representação binária ..................................... 50 Figura 16 – Exemplo de situação de travamento ...................................................... 53 Figura 17 – Acoplamento entre a função de avaliação e a GAlib .............................. 54 Figura 18 – Fluxograma da abordagem final proposta .............................................. 56 Figura 19 – FT06: representação por lista de prioridades ......................................... 59 Figura 20 – FT06: semente a partir das rotas do problema ...................................... 60 Figura 21 – Gráfico da convergência para o problema LA01 .................................... 62 Figura 22 – Valores mínimos, médios e máximos de makespan obtidos .................. 65 Figura 23 – Valores mínimos, médios e máximos de desvio obtidos ........................ 65 Quadro 1 – Regras de prioridade de despacho típicas de JSSP .............................. 33 Quadro 2 – Principais elementos de um AG ............................................................. 35 Quadro 3 – Parâmetros adotados no AG .................................................................. 61.

(11) LISTA DE TABELAS Tabela 1 – Sequência tecnológica da Figura 1 ......................................................... 26 Tabela 2 – Exemplar de problema FT06 ................................................................... 30 Tabela 3 – Prioridades utilizadas na avaliação da rotina pelo LISA .......................... 58 Tabela 4 – Soluções factíveis versus não factíveis para o problema LA01 ............... 63 Tabela 5 – Valores de makespan obtidos ................................................................. 64 Tabela 6 – Desvio percentual em relação ao makespan ótimo conhecido ................ 64 Tabela 7 – Comparação das melhores soluções por representação ........................ 67.

(12) LISTA DE ABREVIATURAS E SIGLAS ABZ – Conjunto de problemas de Job Shop proposto por Adams, Balas e Zawack (1988) ACO – Ant Colony Optimization AG – Algoritmos Genéticos CX – Cycle Crossover FIFO – First In, First Out FT – Conjunto de problemas de Job Shop proposto por Fisher e Thompson (1963) GAlib – Genetic Algorithms Library JB – Job-based JSSP – Job Shop Scheduling Problem LA – Conjunto de problemas de Job Shop proposto por Lawrence (1984) LISA – Library of Scheduling Algorithms LPT – Longest Processing Time LWR – Least Work Remaining MB – Machine-based MWR – Most Work Remaining OB – Operation-based ORB – Conjunto de problemas de Job Shop proposto por Applegate e Cook (1991) OR-Library – Operations Research Library PL – Preference List-based PMX – Partially Matched Crossover PR – Priority Rule-based RK – Random Key SA – Simulated Annealing SPT – Shortest Processing Time SWV – Conjunto de problemas de Job Shop proposto por Storer, Wu e Vaccari (1992) TD – Conjunto de problemas de Job Shop proposto por Taillard (1993) TS – Tabu Search YN – Conjunto de problemas de Job Shop proposto por Yamada e Nakano (1992).

(13) SUMÁRIO 1. INTRODUÇÃO ............................................................................................... 14. 1.1. FORMULAÇÃO DO PROBLEMA................................................................... 16. 1.1.1. Considerações ............................................................................................... 16. 1.1.2. Delimitação do Estudo ................................................................................... 17. 1.1.3. Problema de Pesquisa ................................................................................... 17. 1.1.4. Hipótese de Pesquisa .................................................................................... 17. 1.2. OBJETIVO...................................................................................................... 17. 1.3. JUSTIFICATIVA E CONTRIBUIÇÕES........................................................... 18. 1.4. ESTRUTURA DO TRABALHO.......................................................................18. 2. FUNDAMENTAÇÃO TEÓRICA .................................................................... 20. 2.1. PROBLEMAS DE SEQUENCIAMENTO........................................................ 20. 2.2. OTIMIZAÇÃO DE PROBLEMAS DE SEQUENCIAMENTO.......................... 22. 2.3. CLASSIFICAÇÃO DOS PROBLEMAS DE SCHEDULING............................ 23. 2.4. REPRESENTAÇÃO DE PROBLEMAS EM JSSP......................................... 25. 2.4.1. Tabela de Sequência Tecnológica ................................................................. 25. 2.4.2. Representação por Matrizes .......................................................................... 26. 2.4.3. Gráfico Disjuntivo ........................................................................................... 26. 2.4.4. Gráfico de Gantt ............................................................................................ 27. 2.5. EXEMPLARES DE PROBLEMAS DE JOB SHOP........................................ 28. 2.6. INDICADORES DE OTIMIZAÇÃO DE UM JSSP.......................................... 30. 2.7. TÉCNICAS DE OTIMIZAÇÃO........................................................................ 31. 2.8. MÉTODOS DETERMINÍSTICOS E HEURÍSTICOS...................................... 31. 2.9. BUSCA TABU................................................................................................ 34. 2.10. SIMULATED ANNEALING............................................................................. 34. 2.11. COLÔNIA DE FORMIGAS............................................................................. 34. 2.12. ALGORITMOS GENÉTICOS......................................................................... 35. 2.12.1 Esquema Básico de um AG .......................................................................... 35 2.12.2 Representação .............................................................................................. 37 2.12.3 Seleção. ........................................................................................................ 42 2.12.4 Cruzamento ................................................................................................... 43 2.12.5 Mutação ........................................................................................................ 44.

(14) 3. METODOLOGIA ........................................................................................... 46. 3.1. METODOLOGIA ADOTADA.......................................................................... 46. 3.2. MATERIAIS E MÉTODOS............................................................................. 47. 3.2.1. Biblioteca de Algoritmo Genético .................................................................. 47. 3.2.2. Representação do Job Shop na GAlib ......................................................... 47. 3.2.3. Rotina para Cálculo da Aptidão .................................................................... 51. 3.2.4. Tratamento de Soluções Não Factíveis ........................................................ 52. 3.2.5. Fluxograma do Acoplamento da Rotina de Avaliação e a GALib ................. 53. 3.2.6. Abordagem com Laços Externos e Semente Dinâmica ............................... 55. 4. RESULTADOS E DISCUSSÕES ................................................................. 57. 4.1. RESULTADOS DA AVALIAÇÃO DA FUNÇÃO DE APTIDÃO.......................57. 4.2. ALTERAÇÃO DA REPRESENTAÇÃO DAS SOLUÇÕES NO AG................ 59. 4.3. PARÂMETROS UTILIZADOS NO AG........................................................... 60. 4.4. ABORDAGEM FINAL PROPOSTA................................................................ 61. 5. CONCLUSÕES, LIMITAÇÕES E SUGESTÕES .......................................... 68 REFERÊNCIAS ............................................................................................ 69 APÊNDICE A.................................................................................................76 ANEXO A.....................................................................................................126.

(15) 14. INTRODUÇÃO. Devido à crescente competitividade de mercado, a melhora dos processos produtivos no ambiente industrial tem sido objeto de estudo e pesquisa nas mais diversas áreas de conhecimento, como em gestão de negócios, economia, logística, entre outras; sendo mais notoriamente estudada dentro da engenharia de produção (KUNNATHUR;. SUNDARARAGHAVAN;. SAMPATH,. 2004;. HEINONEN;. PETTERSSON, 2007). Segundo Qing-dao-er-ji e Wang (2012), um dos problemas que mais demandaram pesquisas nas últimas décadas foram os problemas de sequenciamento das ordens de produção, conhecidos na literatura estrangeira como scheduling problems. Sequenciamento pode ser entendido como o processo de atribuir um ou mais recursos para execução de determinadas atividades, cujo processamento irá demandar certa quantidade de tempo (LUKASZEWICZ, 2005). Esses recursos em um ambiente industrial podem ser associados à máquinas, sendo que as atividades que serão processadas em uma máquina são conhecidas como operações ou tarefas. Assim, uma ordem de produção (job) é um conjunto de uma ou mais tarefas. Problemas de sequenciamento são difíceis de solucionar no ambiente real devido à influência de diversas restrições, o que é especialmente válido em ambientes industriais, nos quais o tempo de parametrização (setup) das máquinas, espaço e disposição físicas, e uma série de outros fatores necessitam ser levados em consideração (BRUCKER; BURKE; GROENEMEYER, 2012). Isso talvez justifique o fato de que desde o surgimento das teorias acerca de sequenciamento em ambientes produtivos na década de 50, esse assunto tenha tão grande destaque nos campos de otimização e pesquisa operacional. Ao longo de mais de meio século têm sido desenvolvidas diferentes técnicas para solução de problemas de sequenciamento, visando reduzir os custos de produção e melhorar os processos produtivos. Ao trabalhar na otimização desses processos, muitos fatores precisam ser avaliados para se chegar em uma solução satisfatória, como por exemplo a melhor forma de representação de um ambiente de produção específico, a melhor técnica de otimização a ser adotada para chegar à uma solução em um tempo aceitável, bem como se a solução encontrada poderá de fato ser aplicada no cenário real de.

(16) 15. um sistema produtivo. Esses são alguns dos principais pontos que o pesquisador precisa levar em consideração. Historicamente, os problemas de sequenciamento de ordens de produção em cenários do tipo Job Shop (JSSP) têm sido tratados por meio de métodos de otimização exatos – que visam encontrar a solução ótima – dentre os quais o Branch and Bound (LAGEWEG; LENSTRA; KAN, 1977; CALIER; PINSON, 1989; BRUCKER; JURISCH; SIEVERS, 1994; JAIN; MEERAN, 1999) e o Shifiting Bottleneck (ADAMS; BALAS; ZAWACK, 1988). Embora relativamente desatualizado, foi compilado um estudo sobre as várias abordagens para a resolução dos problemas de Job Shop por Jain e Meeran (1999). Nos últimos anos, entretanto, os chamados métodos metaheurísticos têm sido largamente utilizados na resolução desse tipo de problema. Dentre esses métodos, os que possuem maior destaque na literatura são a Busca Tabu (NOWICKI; SMUTNICKI, 1996; CHAMBERS, 1996; PONNAMBALAM; ARAVINDAN; RAJESH, 2000), Simulated Annealing (VAN LAARHOVEN; AARTS; LENSTRA, 1992; KOLONKO, 1999; SATAKE et. al., 1999; AYDIN; FOGARTY, 2004), Algoritmos Genéticos (CROCE; TADEI; VOLTA, 1995; WANG; ZHENG, 2002; GONÇALVES; MENDES; RESENDE, 2005) e Colônia de Formigas (VENTRESCA; OMBUK, 2004; ZHANG et. al., 2006; MONTGOMERY; FAYAD; PETROVIC, 2006; HUANG; LIAO, 2008). Desde então tem se trabalhado em avanços de cada técnica, a fim de aperfeiçoá-las, visando diminuir os tempos computacionais do processo de otimização por meio da modificação de certos operadores específicos de cada técnica, ou associando-as a fim de criar técnicas híbridas. É interessante notar que essa mudança de paradigma quanto as técnicas de otimização à serem adotadas, que passou de técnicas determinísticas para técnicas heurísticas, se deve basicamente ao custo computacional (LUKASZEWICZ, 2005). Conforme. Pinedo. (2008),. os. métodos. exatos. –. conhecidos. como. determinísticos – não consideram o tempo para encontrar uma solução ótima, o que é um fator importante quando se trata de um ambiente de produção real. Ainda segundo o autor, não é interessante encontrar um sequenciamento ótimo para um determinado conjunto de máquinas e pedidos de produção específicos (que estão muitas vezes sujeitos a alterações ao longo do dia, devido à diferentes demandas dos clientes) se essa solução levar muito tempo para ser identificada. Os métodos.

(17) 16. heurísticos se baseiam em certas hipóteses e podem, a partir delas, encontrar uma solução quase tão boa quanto a solução ótima, mas em um tempo bem menor, permitindo, por exemplo, a adoção dessa técnica em um software que crie sequenciamentos para diversas condições de máquinas e pedidos de produção de maneira dinâmica. Sendo assim, percebe-se que ainda há bastante espaço para pesquisas em JSSP, tanto no sentido da busca pela melhor forma de representação da função que avalia as soluções de alguma técnica heurística, quanto no sentido de descobrir pontos chave na otimização de um JSSP que interfiram na qualidade e agilidade em obter um solução satisfatória. Além de não haver um consenso de qual técnica heurística seja a mais adequada para tratar esse tipo de problema, uma vez definida a técnica de otimização a ser utilizada, existem diferentes representações de JSSP, e ainda não está claro qual delas é a melhor (WERNER, 2013). 1.1. FORMULAÇÃO DO PROBLEMA. ESTA SEÇÃO DISCORRE SOBRE O PROBLEMA DE PESQUISA. Considerações Os trabalhos que utilizam algoritmos genéticos convencionais, alterando somente o tipo de representação, parecem ter atingido seu limite, sendo que as representações clássicas para problemas de Job Shop datam de mais de quinze anos (CHENG; GEN; TSUJIMURA, 1996). Atualmente tem tido enfoque técnicas híbridas, que são mais sofisticadas, fazendo uso de operadores genéticos especializados e, não raro, dependem do ajuste de parâmetros muitas vezes de maneira empírica sendo que, em geral, seus valores estão intimamente relacionados à um problema específico de JSSP, e para outro problema, novos valores precisam ser identificados, o que pode não ser adequado para aplicação em problemas reais, onde os tempos de processamento não são fixos e os jobs são dinâmicos e, portanto, encontrar valores adequados para esses parâmetros seria difícil. Qing-daoer-ji e Wang (2012), por exemplo, propuseram um eficiente algoritmo genético híbrido, que supera os resultados obtidos por vários outros pesquisadores, mas que depende da escolha de operadores específicos de busca local, entre outros parâmetros..

(18) 17. Delimitação do Estudo Não é objetivo deste trabalho investigar se a técnica de otimização adotada – algoritmos genéticos – é mais eficiente do que outras técnicas de otimização para problemas de sequenciamento de Job Shop. Como ressaltado por Wolpert (1995), dificilmente existirá uma única técnica que seja melhor que todas as outras para uma grande variedade de problemas. Vale ressaltar também que a aplicação da abordagem apresentada neste trabalho em um ambiente real de produção deverá ser devidamente investigada em um trabalho futuro. Problema de Pesquisa Objetivando a aplicação prática das técnicas combinadas de representação e otimização de um ambiente de produção no chão de fábrica, como uma ferramenta de melhoria do processo produtivo, a pergunta que se busca responder com o presente trabalho é a seguinte: A otimização de problemas de Job Shop scheduling através de algoritmos genéticos com operadores convencionais não seria suficiente, considerando que tais algoritmos têm se mostrado eficazes em diversos problemas de otimização combinatória? Hipótese de Pesquisa O presente trabalho buscou validar a seguinte hipótese ao problema de pesquisa: a) É possível obter soluções satisfatórias em tempo computacional aceitável apenas atuando na escolha da população inicial e na representação das soluções, utilizando operadores genéticos convencionais. 1.2. OBJETIVO Proposição de uma representação da solução do algoritmo genético com uso. de operadores genéticos convencionais, que se mostre mais eficaz na qualidade das soluções. que. outros. métodos. de. representação. usuais. para. problemas.

(19) 18. determinísticos de JSSP, atuando na população inicial, dentro de tempos computacionais aceitáveis para esse tipo de problema. 1.3. JUSTIFICATIVA E CONTRIBUIÇÕES As pesquisas envolvendo algoritmos genéticos clássicos na solução de JSSP. datam de mais de quinze anos, mas dada a eficiência desse método em outros problemas de otimização combinatória, acredita-se ainda ser possível atingir algum ganho de desempenho. Nesse sentido, a principal contribuição deste trabalho é a proposição de uma representação da solução nos algoritmos genéticos (AG), relativamente simples de ser implementada, bem como uma metodologia associada à escolha da população inicial que visa a diminuição de soluções não factíveis, que se mostre equivalentemente eficaz para problemas determinísticos de JSSP otimizados com algoritmos genéticos quanto outras metodologias mais complexas. O sucesso dessa abordagem possibilita estudos com luz à aplicação prática no chão de fábrica, podendo ser considerada futuramente como uma ferramenta de melhoria do processo produtivo em um ambiente fabril por parte dos gestores da produção. 1.4. ESTRUTURA DO TRABALHO O capítulo 2 trata da fundamentação teórica, familiarizando o leitor com o. problema de sequenciamento de ordens de produção, apresentando os critérios de classificação dos problemas de sequenciamento, mostrando como um problema de Job Shop difere de outros problemas de scheduling; bem como as diferentes formas de representação desse tipo de problema e os exemplares de problemas disponíveis para testes. Após essa introdução ao problema, o texto discorre sobre as principais técnicas de otimização utilizadas em JSSP, apresentando desde conceitos iniciais sobre otimização, descrição de algumas das técnicas mais utilizadas de acordo com a revisão literária, até os detalhes de implementação de algoritmos genéticos, que foi a técnica utilizada nesse trabalho para resolução dos JSSP. São explicadas as principais representações desse tipo de problema com foco no AG, bem como explicações relativas aos chamados operadores genéticos..

(20) 19. No capítulo 3, discorre-se sobre os materiais e métodos adotados. Nesse capítulo é apresentada a biblioteca de algoritmos genéticos utilizada e são detalhadas as representações de solução no AG elaboradas durante o desenvolvimento do trabalho, bem como forma de alteração da população do AG através do que o autor denominou por semente dinâmica. O capítulo 4 trata da apresentação dos resultados e das discussões. Esse capítulo apresenta de forma ordenada as etapas que foram atingidas conforme o avanço dos testes, abrangendo desde o processo de verificação da função de aptidão, os motivos que levaram à formulação de uma segunda forma de representação de soluções dentro do AG, e por fim os testes realizados com problemas determinísticos, comparando o desempenho da abordagem proposta com o de outras representações de algoritmos genéticos encontradas na literatura. No capítulo 5 são apresentadas as conclusões, bem como as limitações e sugestões para continuidade e extensão dessa pesquisa..

(21) 20. FUNDAMENTAÇÃO TEÓRICA. Nesta seção é apresentada a revisão bibliográfica e fundamentação teórica para familiarizar o leitor com o tema. 2.1. PROBLEMAS DE SEQUENCIAMENTO Para entender a necessidade de encontrar uma melhor opção de. sequenciamento de ordens de produção, e assim justificar as pesquisas acerca desse tipo de problema, é apresentada na Figura 1 uma ilustração que visa elucidar um cenário típico de produção. Figura 1 – Cenário típico de sequenciamento de produção. M1. M2. M3. Fonte: Adaptado de SENAI (1999).. A figura demonstra duas sequências de produção – doravante denominadas de ordens de produção – de dois diferentes produtos. Executando uma se produz um determinado produto A, e executando a outra se produz um determinado produto B. Os elementos acima das ordens representam máquinas que executam diferentes ações, supondo que a primeira máquina é responsável por furar a matéria-prima que nela chega, a segunda máquina corta a matéria-prima que nela chega e a terceira máquina faz a gravação de um número de série na matéria-prima que nela chega. Pode-se assumir alguns sequenciamentos diferentes para execução das duas.

(22) 21. ordens em cada uma das máquinas como, por exemplo, sempre executar nas máquinas as tarefas do produto A e depois as tarefas do produto B, como na Figura 2(a), ou vice-versa, como na Figura 2(b). Supondo por exemplo que o tempo necessário para processamento da ordem do produto A na máquina 1 seja de duas unidades de tempo, e todos os demais tempos de processamento sejam de uma unidade de tempo, observa-se que a sequência assumida nas máquinas influencia no tempo total de produção das ordens, sendo que, no exemplo, citado adotar a segunda sequência (que prioriza a ordem B em relação a ordem A) seria melhor, pois a execução das duas ordens se daria em um tempo menor. Figura 2 – Problema da Figura 1: dois sequenciamentos diferentes. Máquina 1. A. B. Máquina 2. A. Máquina 3. B A. B Tempo. (a) prioriza tarefas do job A em relação às tarefas do job B. Máquina 1. B. A. Máquina 2 Máquina 3. B. A. B. A Tempo. (b) prioriza tarefas do job B em relação às tarefas do job A Fonte: O autor.. Embora seja necessário obedecer a sequência pré-determinada de cada uma das ordens para produzir os produtos conforme especificado, existem diferentes prioridades de tarefas que podem ser assumidas nas máquinas, o que pode resultar em um tempo total de produção menor. Ou seja, conhecer a melhor sequência de prioridades das ordens de produção permite que sejam produzidos os mesmos.

(23) 22. produtos em uma quantidade de tempo menor. Claro que para um problema tão pequeno quanto esse, que possui apenas duas ordens de produção (n=2) e três máquinas (m=3), ou seja, um problema 2 × 3, existem poucas possibilidades de arranjo diferentes, pois o espaço de soluções para um JSSP é formado por (n!)m sequências possíveis (LUKASZEWICZ, 2005; IVERS, 2006) e, sendo assim, um problema 2 × 3 possui apenas 8 combinações. Mas para problemas reais, tipicamente bem maiores e mais complexos, onde não é difícil encontrar ambientes de Job Shop com, por exemplo, 10 jobs e 15 máquinas, existem 2,49 x 1098 combinações, e sendo assim torna-se mais difícil avaliar as várias possibilidades e encontrar alguma solução satisfatória. Essa é a finalidade dos algoritmos que fazem a. otimização. do. sequenciamento. de. produção:. identificar. os. melhores. sequenciamentos a serem adotados nas máquinas, de forma a reduzir os tempos de produção. 2.2. OTIMIZAÇÃO DE PROBLEMAS DE SEQUENCIAMENTO Segundo Luke (2010), otimização pode ser entendida como a ação de utilizar. melhor recursos que em geral são limitados. No contexto de sequenciamento de ordens de produção, as máquinas são os recursos limitados, pois se o número de máquinas fosse ilimitado, seria possível produzir no menor tempo possível independentemente da prioridade adotada. É comum que as soluções para problemas de sequenciamento de produção (que são as definições de prioridades que as máquinas devem assumir para um conjunto de jobs) sejam identificadas pela ação de técnicas de otimização.. Em. geral, as pesquisas mesclam técnicas já existentes, gerando as chamadas técnicas híbridas ou, com menor frequência, criando uma técnica inovadora. Nesse tipo de abordagem, um cenário específico de produção ou um conjunto de cenários (quando a abordagem é robusta o bastante para permitir tal generalização) é representado por meio de expressões matemáticas, as quais nem sempre traduzem fácil e adequadamente o ambiente de produção real. Em uma proporção significativamente menor, alguns pesquisadores têm adotado simuladores de ambientes produtivos no lugar dessas expressões matemáticas, baseados em ferramentas computacionais de simulação à eventos discretos (SILVA, 2011). Tais abordagens possibilitam uma representação mais.

(24) 23. natural do ambiente, principalmente pelo fato de que na modelagem se aplicam efetivamente objetos que representam máquinas, e as ordens de produção são elementos que alocam essas máquinas, demandando tempo de processamento e criando ocasionalmente filas de espera, inclusive. Esse comportamento intrínseco da simulação é a razão dessa representação ser, em geral, mais fidedigna. Pode-se então associar o modelo de simulação à técnicas de otimização, que efetivamente tratam de identificar uma melhor solução para determinado cenário produtivo. 2.3. CLASSIFICAÇÃO DOS PROBLEMAS DE SCHEDULING Os ambientes de produção formados pelas máquinas possuem diferentes. classificações, dependo do arranjo físico que essas máquinas possuem, dos tipos de atividades que as máquinas podem executar e das características da ordem de produção em relação a essas máquinas. Eles podem ser classificados como ambientes de produção de única etapa, nos quais existe apenas uma única operação para cada ordem, ou de múltiplas etapas, onde para executar uma ordem são necessárias diferentes operações em diferentes máquinas. Essa classificação foi inicialmente proposta por Graham et al. (1979). Em ambientes de uma única etapa, pode existir apenas uma única máquina para executar cada tarefa, ou podem ainda existir várias máquinas com mesma funcionalidade, executando operações em paralelo. Já em ambientes de múltiplas etapas, cada ordem necessita que operações sejam executadas em várias máquinas, e cada máquina possui diferentes funcionalidades. Segundo Mesquita et al. (2008), esse grupo é subdividido em Flow Shop, Open Shop e Job Shop. Em um Flow Shop, todas as ordens possuem as mesmas rotas, ou seja, as operações que são executadas nas diferentes máquinas são as mesmas para todas as ordens. Em um Open Shop, a rota das máquinas pode variar entre as diferentes ordens, sendo que a ordenação das tarefas é indiferente (não existem restrições de precedência). Por fim, no Job Shop – objeto deste estudo – cada ordem é única, com rotas préestabelecidas e diferentes entre si, o que o diferencia dos outros dois tipos de ambientes de scheduling apresentados. Ainda, cada tarefa é processada uma única vez nas máquinas, e possuem restrições de precedência. Pode-se listar as características e restrições de um JSSP, conforme segue (FAN; ZHANG, 2010):.

(25) 24. a). todas as máquinas estão disponíveis no instante de tempo t0 = 0;. b). cada. c). não são permitidos processos simultâneos em qualquer uma das máquinas;. d). cada. e). a sequência de tarefas para cada job é pré-definida e não pode ser alterada;. f). não é permitida preempção, ou seja, interrupção de processamento da tarefa.. job. job. pode. é. ser. processado. composto. por. em. várias. uma. tarefas. única. a. máquina. serem. por. vez;. processadas;. Considerando as características e o comportamento apresentado, o problema de sequenciamento em um ambiente de produção do tipo Job Shop é essencialmente um processo decisório, o qual busca identificar uma sequência que otimiza algum tipo de critério, como minimizar o tempo de entrega ou maximizar o uso da capacidade produtiva, pertencendo a classe de otimização combinatória, conforme Pinedo (2008). Problemas de otimização combinatória são aqueles onde se busca determinar, dentre um subconjunto de possibilidades formado pela combinação dos elementos do conjunto principal, aquele que tem o menor custo. No caso do JSSP, isso significa determinar, dentre as várias combinações de escalonamento dos jobs nas máquinas, a sequência que apresenta menor tempo total de produção. Ainda conforme Pinedo (2008), os problemas de sequenciamento ainda podem ser classificados quanto a aleatoriedade de seus parâmetros, a saber: a). estático: número de jobs são conhecidos e todos estão disponíveis no instante de. b). tempo. t0. =. 0;. determinístico: não existe aleatoriedade nos parâmetros, como tempo de processamento,. instantes. de. disponibilidade,. etc..

(26) 25. c). dinâmico: número de tarefas e instantes de disponibilidade são variáveis aleatórias, ou ainda as tarefas podem ser disponibilizadas ao longo do tempo, mas. d). em. instantes. previamente. conhecidos;. estocástico: tempo de processamento e outros parâmetros são variáveis aleatórias (por exemplo, considerar que uma máquina pode apresentar falha conforme uma certa distribuição de probabilidades). Relacionado à sua complexidade, os JSSP são em geral classificados como. problemas NP-hard, o que significa na teoria de complexidade computacional que são problemas difíceis de resolver, não podendo ser solucionados em um tempo polinomial, ou seja, o consumo de tempo para resolver essa classe de problemas não pode ser reduzido à uma função polinomial em relação do tamanho desses problemas (FAN; ZHANG, 2010). 2.4. REPRESENTAÇÃO DE PROBLEMAS EM JSSP De forma genérica, um JSSP pode ser representado na forma de n/m/G/Cmax,. onde n equivale ao número de ordens (jobs), m representa o número de máquinas, G denota problemas de Job Shop e Cmax define o objetivo – minimizar o tempo total de produção dos jobs, nesse caso (PINEDO, 2008). Entretanto, essa representação não dá informações completas para que tal problema possa ser submetido à uma técnica de otimização. Dentre as várias formas de representação completa de um JSSP, destacam-se a representação por tabela de sequência tecnológica, por matrizes e por gráfico disjuntivo. As soluções para um JSSP geralmente são apresentadas em um gráfico de Gantt, apesar de também poderem ser apresentadas em um gráfico conjuntivo (que é gerado ordenando as rotas entre mesmas máquinas, a partir do gráfico disjuntivo), ou ainda por uma matriz, também chamada de matriz solução. Essas formas de representação são apresentadas a seguir (YAMADA, 2003). 2.4.1 Tabela de Sequência Tecnológica As tabelas de sequência tecnológica são assim chamadas por apresentarem, além do tempo de processamento de cada tarefa em cada máquina, a sequência de.

(27) 26. tarefas de cada ordem, sendo uma forma fácil de apresentar os dados de um JSSP. Um exemplo representando o problema fictício abordado na seção 2.1, pg. 20, é apresentado na Tabela 1, sendo que os valores entre parênteses correspondem ao tempo de processamento daquele determinado job naquela determinada máquina. Devido à objetividade e simplicidade dessa tabela, os problemas de Job Shop em geral são apresentadas dessa forma. Tabela 1 – Sequência tecnológica da Figura 1 Job 1 2. Máquina (Tempo de Processamento) 1 (2) 2 (1) 3 (1) 1 (1) 3 (1) 2 (1) Fonte: O autor.. 2.4.2 Representação por Matrizes O problema da seção 2.1, pg. 20, também pode ser representado pelas matrizes da Figura 3. Figura 3 – Matrizes para o problema 2 × 3 {. }. [. ],{. }. [. ]. Fonte: O autor.. As matrizes de sequência de jobs e de tempo de processamento são dadas, respectivamente, por Ojm, que representa o job j sendo processado na máquina m, e por Pjm, que representa a duração do processamento do job j na máquina m. 2.4.3 Gráfico Disjuntivo O gráfico disjuntivo é uma forma de representação visual capaz de apresentar, além das informações da sequência tecnológica, as restrições ao problema, representadas pelos arcos disjuntivos, conforme Figura 4..

(28) 27. Figura 4 – Gráfico disjuntivo para o problema 2 × 3 P11 = 2. P12 = 1. P13 = 1. O11. O12. O13. 0. * O21. O23. O22. P21 = 1. P23 = 1. P22 = 1. Fonte: O autor.. O gráfico disjuntivo é composto por nós Ojm, que representam as operações de cada job j em cada máquina m, e associado a estes tem-se os elementos Pjm, que representam o tempo de processamento de cada job j em cada máquina m. São adicionados um nó inicial, representado pelo número zero, e um nó final, representado por um asterisco, e as setas contínuas, chamadas de arcos conjuntivos, representando a ordem tecnológica de cada job. As setas tracejadas, chamadas de arcos disjuntivos (que dão origem ao nome do gráfico), indicam as possibilidades de prioridades a serem adotadas pelas máquinas (seis possibilidades nesse caso), e devem ser conectadas entre operações que devem ser executadas em uma mesma máquina. 2.4.4 Gráfico de Gantt O gráfico de Gantt é uma forma visual bastante objetiva e simples de interpretar. Pela simplicidade, as soluções de um JSSP em geral são apresentadas desta forma. Ele mostra as unidades de tempo no eixo da abscissa e o número das máquinas no eixo da ordenada. Um exemplo desse tipo de gráfico para o problema 2 × 3 da seção 2.1, pg. 20, é apresentado na Figura 5..

(29) 28. Figura 5 – Gráfico de Gantt para o problema 2 × 3. Máquina 1. B. A. Máquina 2. B. Máquina 3. A. B 1. A 2. 3. 4. 5. Tempo. Fonte: O autor.. 2.5. EXEMPLARES DE PROBLEMAS DE JOB SHOP Como mostra a literatura, o estudo e aplicação de técnicas para solucionar. um JSSP é frequentemente realizado com o uso de exemplares de problemas, conhecidos. como. benchmarks.. Os. exemplares. permitem. determinar. as. capacidades e limitações de um dado método testando-o contra esses problemas (JAIN; MEERAN, 1999). Vários pesquisadores propuseram grupos de problemas de diferentes tamanhos e configurações para esse propósito. Juntos eles constituem um grupo de mais de 240 tipos de cenários de JSSP. Cada exemplar têm suas características e definições próprias, mas todas eles são prioritariamente classificados com um determinado número de tarefas versus um determinado número de máquinas, com o tempo de processamento de cada operação em cada máquina conhecido e, em geral, têm seus nomes associados às iniciais dos pesquisadores que às propuseram. Quanto ao acesso aos exemplares: FT, LA, ABZ, ORB, SWV e YN estão disponíveis na OR-Library (BEASLEY, 1990), mantida atualmente por Dirk C. Mattfeld e Rob J. M. Vaessens. Essa coleção de exemplares envolve tanto os problemas que são otimamente solucionados de maneira fácil, quanto aqueles que são ainda tidos como abertos, com apenas limites máximos e mínimos conhecidos. Curiosamente existem exemplares como o SWV 3 e 4, TD 3 à 9 ou ABZ 7 à 9, com até 300 operações, que ainda estão sem uma solução ótima, e outras com 2.000 operações que foram otimamente solucionadas em um período de tempo relativamente curto em relação a.

(30) 29. data de sua publicação. Para auxiliar na classificação desses exemplares, vários pesquisadores tentam encontrar características comuns aos problemas difíceis. Jain e Meeran (1999) sumarizaram essas pesquisas nos seguintes fatos: a). os exemplares são considerados fáceis quando a razão do número de jobs pelo. b). número. de. máquinas. é. maior. que. 4;. quando o número de jobs é maior que o número de máquinas é mais fácil encontrar o chamado gargalo do processo e assim as chances de ficar preso em. c). um. mínimo. local. é. limitada;. em vários exemplares considerados fáceis, existe mais de um sequenciamento ótimo;. d). problemas quadrados, nos quais o número de máquinas é igual ao número de jobs,. são. bastante. difíceis. de. resolver.. Jain e Meeran ainda concluem que qualquer exemplar de problema pode ser considerado difícil quando o número de operações, jobs e máquinas é maior ou igual a 200, 15 e 10 respectivamente e a razão entre o número de jobs e o número de máquinas é menor que 2,5. Uma última questão que vem à tona sobre os exemplares de problemas de Job Shop é sua adaptação à ambientes reais. Por exemplo, todos os problemas são construídos com base em tempos de processamento inteiros dos quais um pequeno percentual esteja fora de contexto de aplicabilidade real. Após analisar a complexidade dos problemas apresentados nos exemplares, Amar e Gupta (1986) indicam que problemas no mundo real são mais fáceis de resolver do que os exemplares disponíveis para teste. Inicialmente para o presente trabalho, foi utilizado o problema FT06, apresentado na Tabela 2, para construção e testes da rotina desenvolvida que avalia as soluções, que serve de função de aptidão para a técnica de otimização. Posteriormente para avaliação da metodologia em si, incluindo também uma nova representação de solução bem como uma execução.

(31) 30. otimizada do próprio algoritmo genético para JSSP, foram utilizadas os problemas do grupo LA, que aparecem em uma maior quantidade de trabalhos na literatura. Tabela 2 – Exemplar de problema FT06 Job 1 2 3 4 5 6. Máquina (Tempo de Processamento) 3 (1) 1 (3) 2 (6) 4 (7) 6 (3) 5 (6) 2 (8) 3 (5) 5 (10) 6 (10) 1 (10) 4 (4) 3 (5) 4 (4) 6 (8) 1 (9) 2 (1) 5 (7) 2 (5) 1 (5) 3 (5) 4 (3) 5 (8) 6 (9) 3 (9) 2 (3) 5 (5) 6 (4) 1 (3) 4 (1) 2 (3) 4 (3) 6 (9) 1 (10) 5 (4) 3 (1) Fonte: Adaptado de OR-Library.. A razão por inicialmente ter sido adotado o problema FT06 é por este ser o menor exemplar encontrado, com 6 jobs e 6 máquinas (36 operações), para assim poder desenvolver a rotina de avaliação das soluções de maneira mais rápida. O motivo pelo qual para os testes finais foram adotados os exemplares do grupo LA foi que dentre os trabalhos pesquisados que apresentavam resultados passíveis de comparação, vários exemplares do grupo LA estavam presentes, enquanto que problemas de outros grupos apareciam em menor proporção. O grupo LA possui um conjunto de problemas bastante diversificado, agrupando tamanhos de 10 × 5, 15 × 5, 20 × 5, 10 × 10, 15 × 10, 20 × 10, 30 × 10 e 15 × 15; variando entre problemas fáceis e difíceis, conforme classifica Jain e Meeran, e essa deve ser a razão dos trabalhos que apresentam resultados que permitam comparação terem utilizado tal grupo. 2.6. INDICADORES DE OTIMIZAÇÃO DE UM JSSP Dentre os parâmetros que servem para validar as diversas técnicas de. otimização, é possível citar o número total de ordens atrasadas, o tempo total de ordens em atraso, e o tempo total de atravessamento, dentre outros (SANTORO; MESQUITA, 2008). O tempo total de atravessamento se refere ao maior tempo necessário para completar todas as ordens que foram solicitadas, o que significa que é o tempo desde o início da primeira tarefa do primeiro job até a conclusão da última tarefa do último job (YAMADA, 2003). Esse parâmetro, conhecido como makespan, tem maior.

(32) 31. destaque na literatura, sendo utilizado como um dos principais indicadores de otimização, uma vez que consegue indicar se um determinado algoritmo de otimização atingiu o resultado (ASADZADEH; ZAMANIFAR, 2010; FREITAS; VIEIRA, 2010; ZHANG; SONG; WU, 2012). Uma vez atingido tal objetivo, podem ser avaliados outros critérios, como tempo de execução do algoritmo de otimização e facilidade de implementação, por exemplo. Na próxima seção são apresentadas as principais técnicas de otimização utilizadas em JSSP. 2.7. TÉCNICAS DE OTIMIZAÇÃO Uma técnica de otimização pode ser entendida como um programa. computacional que serve para identificar, a partir de uma função objetivo que representa o problema a ser otimizado, boas soluções ao problema (soluções subótimas), ou até a melhor solução (solução ótima), conforme Saramago e Steffen (2008). É claro que as chances de que a técnica utilizada para otimizar o problema seja bem sucedida depende de vários fatores, desde a adequada representação do problema até a escolha dos valores adequados dos parâmetros específicos de cada técnica de otimização (GOLDBARG; LUNA, 2000). Por meio da revisão literária é possível identificar quais técnicas são mais adequadas para certos tipos de problemas comparando os resultados obtidos pelos pesquisadores, embora não exista uma regra simples e universalmente válida. É importante mencionar que existe um senso-comum quanto à especificidade de uma técnica de otimização em relação ao problema a ser tratado (WOLPERT, 1995). Linden (2012) sugere que um algoritmo deve ser melhor para resolver determinado problema à medida que ele foi parametrizado em função daquele específico problema, e este tende a não ser tão eficiente à medida que tenta-se generalizar seu emprego a outros problemas. 2.8. MÉTODOS DETERMINÍSTICOS E HEURÍSTICOS Embora existam métodos exatos que, em geral, trabalham testando e. exaurindo todas as soluções possíveis na tentativa de encontrar a melhor entre elas (solução ótima), não é interessante resolver JSSP dessa forma, exceto para problemas relativamente pequenos (JAIN; MEERAN, 1999). Segundo Lukaszewicz.

(33) 32. (2005), em ambientes de produção reais, essa otimalidade não é necessariamente um critério a ser atingido. É suficiente obter resultados próximos do ótimo, mas com tempos razoáveis. Soluções próximas do ótimo (subótimas) podem ser obtidas por meio de métodos heurísticos, baseados em probabilidades, os quais podem encontrar soluções subótimas mais rapidamente por utilizar o conhecimento acerca do problema evitando a avaliação de todas as soluções possíveis. Basicamente, as técnicas ou métodos para solução de JSSP podem ser divididos em métodos exatos, como a programação linear e o Branch and Bound – que encontram a solução ótima; e métodos aproximados, que encontram soluções subótimas (ou até mesmo a ótima, embora não haja garantias disso) (PINEDO, 2008). Conforme explicado anteriormente, os métodos exatos apenas são adequados na solução de JSSP relativamente pequenos, pois para cenários maiores, o custo computacional faz com que essas técnicas não sejam as mais adequadas para solucionar problemas em tempo real no chão de fábrica (FERREIRA; ALMADA-LOBO; MORABITO, 2013; KOLHARKAR; ZANWAR, 2013). Assim, dada a complexidade dos JSSP no ambiente fabril, os métodos aproximados são os mais adequados para tais problemas. Segundo Saramago e Steffen Júnior (2008), métodos heurísticos são aqueles baseados em informações acerca do problema para auxiliar na identificação da solução sem que haja necessidade de testar todas as possibilidades Essas informações são chamadas de heurísticas. Dentre os métodos heurísticos para problemas de Job Shop, pode-se citar as regras de prioridade de despacho e os métodos metaheurísticos. As regras de prioridade de despacho são baseadas na teoria das filas, e uma explicação mais detalhada pode ser encontrada em Silva (2011), seção 2.3.3. No Quadro 1, segue um resumo das principais regras aplicadas ao Job Shop..

(34) 33. Quadro 1 – Regras de prioridade de despacho típicas de JSSP Regra. Descrição. Autores Conway et al. (1967) Baker (1974) Panwalker e Iskander (1977) Lawrence e Sewell (1997) Zhou et al. (2001) Silva et al. (2012). SPT (Shortest Processing Time). Prioriza a peça com o menor tempo de processamento no processo em análise.. LPT (Longest Processing Time). Prioriza a peça com o maior tempo de processamento no processo em análise.. Lawrence e Sewell (1997) Silva et al. (2012). MWR (Most Work Remaining). Prioriza a peça que tem o maior tempo de trabalho acumulado nos processos seguintes, incluindo o atual.. Conway et al. (1967) Baker (1974) Panwalker e Iskander (1977) Lawrence e Sewell (1997) Zhou et al. (2001) Silva et al. (2012). LWR (Least Work Remaining). Prioriza a peça que tem o menor tempo de trabalho acumulado nos processos seguintes, incluindo o atual.. Baker (1974) Lawrence e Sewell (1997) Silva et al. (2012). Fonte: Adaptado de Montevechi et al. (2002).. Conforme apresentado por Glover e Kochenberger (2003), diferentemente dos métodos exatos, os metaheurísticos permitem tratar problemas de tamanhos considerados grandes e difíceis de resolver, apresentando soluções satisfatórias – não necessariamente ótimas – em tempo computacional aceitável, através da combinação de heurísticas que, juntas, exploram de maneira mais eficiente o espaço de busca. Por outro lado, esses métodos metaheurísticos possuem a necessidade de avaliar uma solução e descobrir se ela é ou não adequada aos objetivos. Para atender esse último aspecto é necessário o uso de expressões matemáticas analíticas, avaliação lógica através de algoritmos (como o desenvolvido nessa dissertação), e até mesmo simulação computacional, para poder avaliar uma solução obtida pelo algoritmo de otimização e dizer qual a sua aptidão em relação ao problema tratado. Dentre os métodos metaheurísticos mais empregados em JSSP de acordo com a literatura, têm maior destaque a Busca Tabu, Simulated Annealing, Colônia de Formigas e Algoritmos Genéticos..

(35) 34. 2.9. BUSCA TABU A Busca Tabu (TS) é um método metaheurístico que foi inicialmente. apresentado por Glover (1986) e, resumidamente, seu funcionamento se baseia em manter uma lista das recentes soluções candidatas – lista tabu – se negando a retornar a essa lista. Quando a busca atinge um ótimo local, o algoritmo não é finalizado, ao contrário, ele continua selecionando uma solução mais próxima (vizinha). A lista tabu serve para impedir a formação de loops durante a busca. Por essa razão, essa característica também é chamada de memória de curto prazo (PONNAMBALAM; ARAVINDAN; RAJESH, 2000). 2.10 SIMULATED ANNEALING O uso do Simulated Annealing (SA) na solução de problemas de otimização combinatória também surgiu na década de 80 (KIRKPATRICK; GELATT JR.; VECCHI, 1983). O annealing é uma operação utilizada no processamento de metais, onde o metal é rapidamente aquecido até uma temperatura extremamente alta e então resfriado lentamente para obter estruturas cristalizadas com um mínimo de energia, assim as fraturas e irregularidades são minimizadas. Seu funcionamento em termos de problemas de otimização é baseado no fato de que se uma solução nova é melhor que a solução anterior, ela será substituída, mas se a solução nova é pior do que a solução anterior, ela não será necessariamente descartada, mas sim terá uma probabilidade de continuar fazendo parte do espaço de soluções, dependendo do quão pior é essa solução em relação à atual. A probabilidade de uma solução pior continuar a ser selecionada também varia em função do principal parâmetro do algoritmo, que é chamado de temperatura, e vai decrescendo ao longo das iterações (VAN LAARHOVEN, AARTS, LENSTRA, 1992). 2.11 COLÔNIA DE FORMIGAS A otimização por Colônia de Formigas (ACO) foi originalmente proposta por Dorigo (1992). A ideia é utilizar agentes (formigas) na busca de possíveis soluções no espaço de busca do problema. Existe um elemento chamado feromônio, que é maior tanto quanto a solução apresentada é mais próxima do ótimo. Como formigas tendem a caminhar por onde há maior presença de feromônio, haverá uma.

(36) 35. tendência de encontrar soluções melhores com maior frequência (HUANG, LIAO, 2008). 2.12 ALGORITMOS GENÉTICOS Os Algoritmos Genéticos (AG) foram introduzidos por Holland (1975), sendo largamente utilizados como técnica de otimização nos mais variados tipos de problemas. Um algoritmo genético pode ser entendido como uma classe de técnicas metaheurísticas que consiste em encontrar soluções baseadas nos mecanismos de seleção natural e genética. Em linhas gerais, os algoritmos genéticos operam sobre um determinado conjunto de pontos, conhecido como população, e não sobre pontos isolados; trabalham em um espaço de soluções codificadas do problema, e não diretamente sobre o espaço de busca; e necessitam apenas da informação do valor de uma função de aptidão (fitness), usando regras probabilísticas ao invés de determinísticas (GOLDBERG, 1989). 2.12.1 Esquema Básico de um AG Os elementos de um AG em relação ao seu significado são apresentados no Quadro 2, contextualizado na resolução de problemas de otimização (LINDEN, 2012). Quadro 2 – Principais elementos de um AG Significado em Problemas de Otimização Representação de uma solução, podendo Cromossomo ser um vetor binário, um número real, etc. Uma possível solução para o problema Indivíduo tratado População Um conjunto de possíveis soluções Parte da representação de uma solução, Gene ou seja, uma variável do problema Alelo Valor que um gene pode assumir Elemento. Fonte: O autor.. Os procedimentos executados por um AG clássico se iniciam com a criação uma população e o cálculo do valor de aptidão para cada possível solução, chamado de indivíduo ou cromossomo. Operadores genéticos são então aplicados para,.

(37) 36. probabilisticamente, selecionar os indivíduos com base no seu nível de aptidão, criando uma nova geração de indivíduos. Melhores níveis de aptidão significam maiores chances de seleção. A evolução das novas gerações também é conduzida inserindo novos cromossomos na população atual utilizando os operadores genéticos de cruzamento e mutação. O cruzamento determina o mecanismo de combinação entre dois ou mais cromossomos para criar dois ou mais indivíduos novos; o operador de mutação promove mudanças aleatórias nos cromossomos, a fim de não ficar atrelado a algum máximo ou mínimo local e promovendo um maior acesso ao espaço de busca. O esquema básico de um AG pode ser descrito da seguinte forma (LINDEN, 2012): a) inicializar b). a. população. de. cromossomos;. avaliar cada cromossomo da população (fitness) de acordo com o objetivo do problema. tratado;. c) selecionar d). pais. selecionados. descartar. f) avaliar g). para. gerar. novos. cromossomos;. aplicar operadores genéticos de cruzamento (crossover) e mutação (mutation) nos. e). pais. todos. os os. para antigos. novos. gerar. novos membros. cromossomos. e. cromossomos da inseri-los. ou. filhos;. população; na. população;. se o número de iterações (chamado também de gerações) foi atingido, ou o melhor cromossomo é suficientemente satisfatório frente aos requisitos do problema, retorne o melhor cromossomo, caso contrário, voltar à etapa “c”. Existem vários aspectos e parâmetros na implementação de um AG, e nas. próximas seções serão apresentados somente aqueles que foram utilizados neste trabalho. Para aprofundamento, recomenda-se a leitura de Linden (2012) na literatura nacional, ou Eiben e Smith (2003) na literatura estrangeira..

(38) 37. 2.12.2 Representação O primeiro passo para criar um algoritmo genético é definir como será a representação de uma possível solução para o problema, com vistas a gerar um objeto que represente as soluções do problema tratado pelo AG. A forma mais típica é a representação binária, na qual uma cadeia de zeros e uns é usada na representação da solução, sofrendo normalmente uma alteração da base binária para decimal quando a solução é encontrada. Cheng, Gen e Tsujimura (1996) fizeram uma pesquisa bibliográfica acerca das principais formas de representação de JSSP especificamente para serem aplicadas em AGs, classificando-as entre representações diretas ou indiretas. Em um estudo mais recente, elaborado por Abdelmaguid (2010), foram feitas comparações de desempenho entre a maioria dessas representações. As classificações abaixo, bem como as explicações acerca de cada representação, foram baseadas no trabalho de Cheng, Gen e Tsujimura (1996). Em representações diretas, a forma com que uma possível solução é construída está estritamente ligada às variáveis do problema, e a interpretação da solução pode ser feita diretamente sobre o indivíduo gerado. Nas representações indiretas, o indivíduo do AG é um elemento que tem associação com a forma de gerar possíveis soluções para um JSSP, mas precisa passar por algum algoritmo (não de otimização, mas de tratamento) para gerar soluções propriamente ditas, uma vez que uma interpretação direta não é possível. Dentre as representações diretas, tem-se, por exemplo, a representação baseada em operações (operation-based – OB), baseada em jobs (job-based – JB) e a baseada em chaves aleatórias (random key – RK). Dentre as representações indiretas, tem-se como mais utilizadas a representação por regras de despacho (priority rule-based – PR), baseada em gráfico disjuntivo, baseada em lista de preferência (preference list-based – PL) e baseada em máquina (machine-based – MB). Na representação OB, o cromossomo possui tamanho n × m e é formado por uma permutação de n jobs com m repetições, gerando um vetor que é então embaralhado. Para evitar a geração de indivíduos não factíveis (com relação à sequência tecnológica que deve ser obedecida), é necessário adotar um certo procedimento na interpretação do cromossomo.. Como exemplo, toma-se o.

Referências

Documentos relacionados

Como o objetivo principal do presente projeto é a caracterização química de uma amostra de própolis amarela produzida no Mato Grosso do Sul e sua comparação com outros

Ocorrência de aflatoxinas e fumonisinas em produtos à base de milho e milho utilizado como ingrediente de ração para animais de companhia, comercializados na região de

Pretendo, a partir de agora, me focar detalhadamente nas Investigações Filosóficas e realizar uma leitura pormenorizada das §§65-88, com o fim de apresentar e

CONCLUSION : The pain had a negative influence on the qual- ity of life and impact on the functionality of the elderly studied in the Pain Clinic.. Keywords : Chronic pain, Health

No capítulo 4 são abordados os principais resultados obtidos diante das restrições impostas à coleta de dados, bem como a avaliação dos dados obtidos caracterizando os períodos

No Estado do Pará as seguintes potencialidades são observadas a partir do processo de descentralização da gestão florestal: i desenvolvimento da política florestal estadual; ii

No primeiro, destacam-se as percepções que as cuidadoras possuem sobre o hospital psiquiátrico e os cuidados com seus familiares durante o internamento; no segundo, evidencia-se

A tabela 7 mostra a taxa de crescimento e o tempo de duplicação da COVID-19 observados na população indígena assistida pelo SASISUS, para todos os DSEI e agrupados por região