UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO ALGORITMOS GENÉTICOS E SIMULATED ANNEALING APLICADOS NO ENCAIXE DE FIGURAS IRREGULARES Pesquisa Operacional por Leonardo Vitor da Silva Edson Tadeu Bez, Dr. Orientador São José (SC), dezembro de 2007 i UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO ALGORITMOS GENÉTICOS E SIMULATED ANNEALING APLICADOS NO ENCAIXE DE FIGURAS IRREGULARES Pesquisa Operacional por Leonardo Vitor da Silva Relatório apresentado à Banca Examinadora do Trabalho de Conclusão do Curso de Ciência da Computação para análise e aprovação. Orientador: Edson Tadeu Bez, Dr. São José (SC), dezembro de 2007 ii DEDICATÓRIA Aos meus pais Vitor Teófilo da Silva e Laura Maria de Souza da Silva iii AGRADECIMENTOS Registro nesta pesquisa um especial agradecimento: • ao professor Edson Tadeu Bez pelo conhecimento passado e por toda a disponibilidade e colaboração durante a execução desta pesquisa; • a professora Anita Maria da Rocha Fernandes que esteve sempre disponível para qualquer esclarecimento; e • aos meus pais pelo apoio. iv SUMÁRIO LISTA DE ABREVIATURAS................................................................. vii LISTA DE FIGURAS ..............................................................................viii LISTA DE TABELAS ............................................................................... ix LISTA DE EQUAÇÕES ............................................................................ x RESUMO .................................................................................................... xi ABSTRACT ............................................................................................... xii I INTRODUÇÃO ...................................................................................... 13 1.1 PROBLEMATIZAÇÃO ................................................................................... 14 1.1.1 Formulação do Problema ............................................................................... 14 1.1.2 Solução Proposta ............................................................................................. 15 1.2 OBJETIVOS ...................................................................................................... 15 1.2.1 Objetivo Geral ................................................................................................. 15 1.2.2 Objetivos Específicos ...................................................................................... 15 1.3 METODOLOGIA.............................................................................................. 16 1.4 ESTRUTURA DO TRABALHO ..................................................................... 16 2 FUNDAMENTAÇÃO TEÓRICA ...................................................... 18 2.1 PROBLEMAS DE CORTE E EMPACOTAMENTO................................... 18 2.1.1 Problemas de Corte e Empacotamento......................................................... 20 2.2 PROBLEMAS DE CORTE INDUSTRIAL .................................................... 23 2.3 PROBLEMA DE ENCAIXE DE FIGURAS IRREGULARES .................... 24 2.3.1 Definição do problema .................................................................................... 25 3 DESENVOLVIMENTO ...................................................................... 28 3.1 MÉTODOS UTILIZADOS PARA RESOLUÇÃO DOS PROBLEMAS DE ENCAIXE................................................................................................................... 28 3.1.1 Ordenação das figuras .................................................................................... 28 3.1.2 Encaixe das Figuras ........................................................................................ 42 3.1.3 Tratamento de Sobreposição das Figuras .................................................... 43 3.2 MODELAGEM ALGORÍTMICA .................................................................. 48 3.3 ENSAIOS NUMÉRICOS .................................................................................. 50 3.3.1 Ensaios realizados com Algoritmo Genético ................................................ 51 3.3.2 Ensaios realizados com Simulated Annealing ............................................... 54 3.3.3 Comparativo entre os resultados ................................................................... 56 4 CONCLUSÕES .................................................................................... 60 5 Trabalhos futuros ................................................................................. 62 REFERÊNCIAS BIBLIOGRÁFICAS ................................................... 63 v TIPOS DE FIGURAS UTILIZADAS NOS TESTES ........................... 66 Exemplos de encaixes de figuras ............................................................. 67 Exemplo 1 de encaixe de figuras .............................................................................. 67 Exemplo 2 de encaixe de figuras .............................................................................. 68 vi LISTA DE ABREVIATURAS AGs CX ENIAC NP-HARD OX PMX PNP SICUP TCC UNIVALI Algoritmos Genéticos Cycle Crossover Electronic Numerical Integrator And Computer Nondeterministic Polynomial-time Hard Order Crossover Partially Mapped Crossover. Ponto no Polígono Special Interest Group on Cutting and Packing Trabalho de Conclusão de Curso Universidade do Vale do Itajaí vii LISTA DE FIGURAS Figura 1. Tipos de Polígonos: (a) Polígono convexo; (b) Polígono não convexo ............................. 25 Figura 2. Tipos de Preenchimento...................................................................................................... 26 Figura 3. Estrutura do algoritmo genético .......................................................................................... 30 Figura 4. Método da roleta ................................................................................................................. 33 Figura 5. Cruzamento simples ............................................................................................................ 34 Figura 6. Cruzamento de dois pontos ................................................................................................. 34 Figura 7. Cruzamento uniforme ......................................................................................................... 34 Figura 8. Tratamento de Inconsistência por PMX ............................................................................. 35 Figura 9. Tratamento de Inconsistência por OX ................................................................................ 36 Figura 10. Mutação ............................................................................................................................ 36 Figura 11. Mutação com mudança na ordem dos genes .................................................................... 37 Figura 12. Algoritmo genético genérico ............................................................................................ 38 Figura 13. Estado desordenado das moléculas da matéria em fusão ................................................. 39 Figura 14. Estado desordenado das moléculas após a um resfriamento rápido ................................. 40 Figura 15. Estado ordenado das moléculas após a um resfriamento lento ......................................... 40 Figura 16. Simulated Annealing ......................................................................................................... 41 Figura 17. Simulated Annealing ......................................................................................................... 42 Figura 18. Left-Bottom ....................................................................................................................... 43 Figura 19. Ponto interno ao polígono ................................................................................................. 44 Figura 20. Quantidade de cruzamentos nos segmentos do polígono ................................................. 45 Figura 21. Representação de uma figura em matriz de bits ............................................................... 46 Figura 22. Exemplificação de Ponto e Reta ....................................................................................... 47 Figura 23. Intersecção das Retas AB e CD ........................................................................................ 48 Figura 24. Intersecção de segmentos de reta ...................................................................................... 50 Figura 25. Figuras utilizadas no encaixe ............................................................................................ 51 Figura 26. Definição da Taxa de Cruzamentos .................................................................................. 52 Figura 27. Definição da Taxa de Mutação ......................................................................................... 52 Figura 28. Definição do Tamanho da População ............................................................................... 53 Figura 29. Temperatura Inicial ........................................................................................................... 55 Figura 30. Decremento da Temperatura ............................................................................................. 55 Figura 31. Quantidade de Iterações .................................................................................................... 56 Figura 32. Resultado do Algoritmo Genético e Simulated Annealing ............................................... 57 Figura 33. Melhor solução com Algoritmo Genético ........................................................................ 57 Figura 34. Melhor solução com Simulated Annealing ....................................................................... 58 Figura 35. Resultado do encaixe com Algoritmo Genético ............................................................... 58 Figura 36. Resultado do encaixe com Simulated Annealing .............................................................. 59 Figura 37. Figuras utilizadas no encaixe ............................................................................................ 66 Figura 38. Exemplo 1 de encaixe de figuras ...................................................................................... 67 Figura 39. Exemplo 2 de encaixe de figuras ...................................................................................... 68 viii LISTA DE TABELAS Tabela 1. Problemas de Corte e Empacotamento ............................................................................... 20 Tabela 2. Características do problema de corte da indústria tecido ................................................... 24 Tabela 3. Variação da Quantidade de Gerações ................................................................................. 53 ix LISTA DE EQUAÇÕES Equação 1 ........................................................................................................................................... 26 Equação 2 ........................................................................................................................................... 26 Equação 3 ........................................................................................................................................... 26 Equação 4 ........................................................................................................................................... 42 Equação 5 ........................................................................................................................................... 47 Equação 6 ........................................................................................................................................... 47 x RESUMO SILVA, Leonardo Vitor. Algoritmos Genéticos e Simulated Annealing aplicados no encaixe de figuras irregulares. São José, 2007. 68f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) – Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, São José, 2007. O problema de corte e empacotamento vem sendo estudado por diversos pesquisadores que desde a metade do século passado iniciaram seus estudos em problemas de corte de retângulos. O rápido crescimento de estudos tratando do problema de corte e empacotamento aconteceu na década de 60, período onde foram publicados os três trabalhos de Gilmore e Gomory. Estes trabalhos tratavam o problema de corte industrial e se tornaram clássicos para este tipo de estudo. Os trabalhos subseqüentes focavam no estudo do problema de corte de retângulos e gradativamente alguns outros trabalhos surgiram para o encaixe de figuras irregulares, podendo citar entre estes, a solução proposta por Dias no ano de 1991 que trata o encaixe de figuras irregulares em um retângulo maior. O presente estudo apresenta um algoritmo para o encaixe de figuras irregulares em um retângulo maior. Propõe-se um modelo matemático para este problema. O problema do encaixe de figuras irregulares abordado nesta pesquisa é baseado no problema de corte da indústria têxtil, que possui em sua complexidade, figuras com formas geométricas não convexas e variáveis que permitem a manipulação destas figuras durante o processo de encaixe para se obter um melhor aproveitamento. Este trabalho considera a forma geométrica do objeto delimitador como sendo um retângulo de comprimento variável e figuras convexas e não convexas. Palavras-chave: Encaixe de figuras irregulares. Algoritmos Genéticos. Simulated Annealing. xi ABSTRACT The cutting and packing problem has been studied for many researchers which have already been studying the problems of cutting rectangles since the mid of the twenty century. The fast growing number of articles related to cutting and packing started in the 60’s, period where the articles from Gilmore and Gomony were published. These articles talked about the industrial cutting problem, and became a reference for this kind of studies. The subsequent projects were focus on the study of cutting and packing, and gradually there were some studies about the nesting of irregular shapes in a rectangle. Between these projects we can mention the solution proposed by Dias in 1991, that shows about the nesting of irregular object in a rectangle. This study presents an algorithm for the nesting of irregular object in a rectangle. A mathematical method has been proposed for this problem. The nesting of irregular shape problem in this research was based on the cutting problem in the textile industry. This problem from the textile industry has got objects with non-convex geometrical forms and many other variables which allow the manipulation of these objects during the nesting for a better progress. This research will consider the geometrical form of the object delimiter, which in this case, is a rectangle with a variable length and the objects in this research will have a geometric convex and non-convex form. Keywords: Nesting of irregular shapes, Genetic Algorithms, Simulated Annealing. xii I INTRODUÇÃO Ao longo da história é possível observar a busca por meios para se tentar diminuir esforços, obtendo mais conforto. Esta busca pela diminuição de esforços trouxe consigo várias inovações e avanços na tecnologia. A utilização de robôs na linha de montagem de automóveis ou mesmo a execução de uma folha de pagamento utilizando-se de um computador, apesar de serem trabalhos bem distintos, sofreram mudanças significativas durante os tempos e são exemplos práticos dos avanços tecnológicos. Estes avanços já se tornaram comuns à sociedade. É importante enfatizar que tudo isso se iniciou com a Revolução Industrial a partir do século XVIII. “Este provavelmente foi o mais importante acontecimento na história do mundo, pelo menos desde a invenção da agricultura e das cidades” (HOBSBAWM, 1982, p. 45). O surgimento dos computadores foi uma grande inovação e também contribui em muito para os avanços tecnológicos. Segundo Monteiro (1996, p. 09): “O primeiro computador eletrônico e digital, [...], foi denominado ENIAC (Electronic Numerical Integrator And Computer).”. As inovações tecnológicas trouxeram consigo uma mudança no processo de trabalho em muitas empresas. Trabalhos de alto risco ou de alta complexidade puderam ter soluções automatizadas. As novas tecnologias trouxeram consigo uma difusão do conhecimento, onde é possível comprar tecnologia e se tornar uma empresa atuante no mercado. Surge então, a necessidade de diminuir custos e aumentar a produtividade. Indústrias de couro, plástico, vidro, papel, metal, tecido, dentre outras, possuem em comum a necessidade pela redução do desperdício de matéria-prima (FRITSCH; VORNBERGER, 1995). Trata-se de um problema em que se faz necessário o ajuste das peças em uma área maior, área esta, referente à matéria-prima. Estes tipos de problemas denominam-se problemas de corte e empacotamento. No caso da indústria têxtil, o problema envolve o encaixe dos moldes de roupas no tecido. Análogo ao problema do corte do tecido há o problema do corte de chapas. Este problema trata peças retangulares que devem ser ajustadas em uma determinada área. O corte de peças retangulares considera a largura e altura da área onde as peças serão ajustadas. É um problema que ocorre, por exemplo, em indústrias que necessitam do corte de vidro, metal ou madeira. Outro 13 problema é o ajuste de peças em contêineres1, neste caso, considera-se a largura, a altura e a profundidade da área onde as peças serão ajustadas, é um tipo de problema tridimensional (DYCKHOFF, 1990). Todos estes problemas industriais possuem diversas variáveis que tornam as soluções bem complexas. Nesta mesma linha de estudo, este TCC (trabalho de conclusão de curso) apresentará um algoritmo para o encaixe de polígonos irregulares, baseando-se no problema do encaixe de peças no tecido. O algoritmo irá processar peças de 2 dimensões considerando a largura e a altura do polígono e ajustando-o para obter um melhor aproveitamento da área (LIU, 2005). O algoritmo que será apresentado não é uma proposta de solução para o problema da indústria têxtil. Este considera, conforme o problema do encaixe de peças no tecido, apenas a restrição de largura do tecido, sem se importar com o comprimento e outras restrições existentes da indústria têxtil. Ao considerar a largura do tecido, o algoritmo limitará sua área de encaixe em um retângulo de largura fixa e um comprimento que varia conforme a necessidade de espaço para o encaixe de todas as figuras. As demais restrições presentes no problema de encaixe da indústria têxtil podem ser exemplificadas como o fato de um molde poder ser girado, ficando fora do sentido do fio do tecido. Outras restrições presentes no problema têxtil é o fato dos moldes poderem ou não ser espelhados e ainda se estes poderão estar em qualquer posição do tecido e em posições específicas, pois alguns moldes podem ser encaixados dobrados e estes devem ficar sempre na borda do tecido. 1.1 PROBLEMATIZAÇÃO 1.1.1 Formulação do Problema O problema de encaixe de figuras irregulares é uma classe dos problemas de corte e empacotamento. É um tipo de problema de análise combinatória e computacionalmente de difícil resolução, as soluções devem ser procuradas num espaço grande de possíveis soluções, sendo enquadrado na classe de problemas NP-Hard (Nondeterministic Polynomial-time Hard) (ARAUJO, 2004). 1 Grande caixa, de dimensões e outras características padronizadas, para acondicionamento da carga geral a transportar, com a finalidade de facilitar o seu embarque, desembarque e transbordo entre diferentes meios de transporte. 14 A forma geométrica das figuras que serão encaixadas faz com que os resultados de aproveitamento do encaixe variem bastante, visto que estas figuras possuem formas irregulares. Assim ordem das figuras torna-se importante na definição da qualidade do resultado. A obtenção de um algoritmo eficiente ocorre através de um bom processo de encaixe das figuras e ordenamento das mesmas. 1.1.2 Solução Proposta Para formulação do problema serão enfatizados nesta pesquisa dois processos de fundamental importância para o encaixe. Nascimento (2006) destaca a utilização de heurísticas e metaheurísticas nas soluções recentes para o tipo problema em questão. Seguindo esta linha, esta solução propõe a utilização de metaheurísticas para a ordenação das figuras que serão encaixadas, utilizando-se para isso, Algoritmos Genéticos e Simulated Annealing. A utilização das metaheurísticas foi uma das partes importantes do processo. Outro processo de fundamental importância foi o posicionamento das figuras que utilizou left-bottom. Em conjunto com o posicionamento das figuras foi necessária a garantia de não sobreposição das figuras. 1.2 OBJETIVOS 1.2.1 Objetivo Geral O objeto principal deste estudo foi de aplicar as metaheurísticas: Algoritmos Genéticos e Simulated Annealing no encaixe de figuras irregulares, através do desenvolvimento de um algoritmo que efetuasse o mesmo, simulando assim, o problema de encaixe de peças de roupa da indústria têxtil. A restrição de problema foi a utilização de uma largura pré-fixada da área de encaixe, não se importando com o comprimento necessário para o encaixe de todas as figuras. 1.2.2 Objetivos Específicos Os objetivos específicos desta pesquisa foram: • Estudar os problemas de corte; • Estudar algoritmos propostos para resolução do problema de corte; • Selecionar os algoritmos de suporte ao problema proposto; 15 • Modelar os algoritmos selecionados para o problema, neste caso, Algoritmos Genéticos e Simulated Annealing; • Implementar computacionalmente os algoritmos selecionados para o estudo; • Realizar os testes computacionais com os algoritmos selecionados; e • Realizar uma análise comparativa dos resultados obtidos. 1.3 Metodologia A fundamentação teórica envolveu a leitura de trabalhos relacionados aos problemas de corte e empacotamento geral. Foram analisados materiais de pesquisadores que envolviam a utilização de metaheurísticas para o problema de corte e trabalhos referentes aos Algoritmos Genéticos e Simulated Annealing. A escolha do tema de pesquisa levou em consideração a maneira que o problema poderia ser tratado, neste caso, utilizando-se de metaheurísticas como parte fundamental da ordem das figuras e também a utilização da geometria analítica para o encaixe das figuras. A utilização dos Algoritmos Genéticos e do Simulated Annealing levou em consideração trabalhos recentes que utilizavam diferentes metaheurísticas. Sendo que muitos destes trabalhos não utilizavam em específico os Algoritmos Genéticos e o Simulated Annealing, o que motivou a idéia de utilizar essas metaheurísticas e então poder comprovar, ou não, a eficiência dos mesmos. O resultado desta pesquisa foi um algoritmo para o encaixe das figuras, sendo que sua implementação computacional foi necessária para testes e obtenção dos resultados para diversos tipos de figuras. A implementação ocorrida na segunda parte do projeto utilizou a linguagem C++ para programação. A escolha desta linguagem é pela familiaridade com a mesma. Esta pesquisa tem como produto final o modelo algorítmico, não um software. 1.4 Estrutura do trabalho Este documento está estruturado em quatro capítulos. O primeiro capítulo foi referente à Introdução do TCC e apresentou uma contextualização e uma visão geral do problema. O segundo capítulo refere-se à Fundamentação Teórica, é apresentada uma revisão bibliográfica dos problemas de corte e empacotamento e corte industrial, referenciando alguns trabalhos realizados na área. A Fundamentação Teórica descreveu de forma geral os problemas de corte e empacotamento, 16 problemas de corte industrial e o encaixe de figuras irregulares. O terceiro capítulo apresenta o desenvolvimento do problema proposto, descrevendo as metaheurísticas que serão utilizadas para o problema, os métodos que deram o suporte para o encaixe das figuras e os resultados obtidos com os ensaios numéricos. O quarto capítulo apresenta a conclusão desta pesquisa. 17 2 FUNDAMENTAÇÃO TEÓRICA 2.1 Problemas de Corte e Empacotamento O problema de corte e empacotamento vem sendo estudado desde a metade do século passado e durante este período, diversos pesquisadores trouxeram importantes contribuições para este tipo de problema. O problema de corte e empacotamento é conhecido na literatura inglesa como problema de Cutting and Packing (CUNHA, 1998). Este é um tipo de problema de análise combinatória e computacionalmente de difícil resolução, as soluções devem ser encontradas num espaço grande de possíveis soluções, sendo enquadrado na classe dos NP-Hard (ARAUJO, 2004). O problema de corte e empacotamento teve a primeira formulação apresentada em 1939 por Kantorovitch, um artigo escrito em russo que tratou o problema de encaixe unidimensional. Na década de 50, mais precisamente nos anos de 1955, 1956 e 1958, Paul, Walter e Vadja apresentaram formulações para problema de encaixe de retângulos (CUNHA, 1998). Segundo Dias (1991), o problema de encaixe de retângulos num retângulo maior começou a ser estudado na década de 50. Mas as maiores contribuições foram apresentadas em três artigos clássicos de Gilmore e Gomory em 1961, 1963 e 1965. E a partir desta década, vários pesquisadores têm publicado trabalhos sobre o assunto, apresentando variações tanto na formulação, como nas ferramentas usadas para solucionar o problema. Os três artigos de Gilmore e Gomory descrevem a primeira técnica que foi empregada e aplicada para problemas de tamanho médio, a clássica Técnica de Geração de Colunas (Delayed Column Generation Technique) (CUNHA, 1998). Em problemas de tamanho médio do tipo 1/V/I/R 2, a lista de pedidos possui em torno de 50 itens e a quantidade para cada item diferente fica em torno de centenas ou milhares de peças. Os autores também utilizaram o processo de Programação Dinâmica para otimização de padrões de corte multidimensionais do tipo guilhotina. Gilmore e Gomory também ressaltaram a importância do Problema de Knapsack (PISINGER, 1995) como um subproblema que ocorre em variantes do problema de corte industrial (CUNHA, 1998). 2 Segundo Dyckhoff (1990), um problema do tipo 1/V/I/R (problema de corte industrial) possui respectivamente: uma dimensão (1), tratamento de objetos selecionados de todos os itens (V), os objetos maiores são idênticos (I) e são muitos objetos com pouca diferença (R). 18 Em 1968, Haesler abordou Problemas de Corte Industrial usando uma formulação semelhante ao Problema de Knapsack. Em 1974, Dyson e Gregory trataram o problema de encaixe das indústrias de vidros usando programação linear e regras heurísticas. Em 1976, Stoyan e Gil publicaram um livro descrevendo métodos e algoritmos para o encaixe de figuras planas. Em 1997, Christofides e Whitlock utilizaram um algoritmo de enumeração para problemas de corte bidimensional, tipo guilhotina com limitação do número de vezes que uma peça entra no padrão de corte (VINADÉ, 1997; CUNHA, 1998). Segundo Cunha (1998), um passo muito importante para colaborar com a pesquisa internacional envolvendo os problemas de corte e empacotamento, foi a criação do Special Interest Group on Cutting and Packing (SICUP) por Dyckhoff e Wäscher em 1988. Um número considerável de documentos sobre problemas de corte e empacotamento foram lançados pelo SICUP em conferências internacionais. O SICUP tem uma publicação própria publicada duas vezes ao ano. Dyckhoff (1990) desenvolveu uma classificação dos problemas de corte e empacotamento com base nas características de geometria e lógica destes problemas. Seu trabalho teve como finalidade integrar os vários tipos de problema existentes na literatura, propiciando uma unificação do uso de terminologias para os mesmos. Seu trabalho considerava alguns critérios como: a dimensionalidade, a forma geométrica, o sortimento, os tipos de objetos (matérias-primas do problema estudado), a quantidade e disponibilidade das peças. A Tabela 1 mostra alguns trabalhos com aspectos especiais sobre o problema de corte e empacotamento. 19 Tabela 1. Problemas de Corte e Empacotamento Autores Brown Salkin / de Kluyver Golden Hinxman Garey / Johnson Israni / Sanders Rayward-Smith / Shing Coffman et al. Dowsland Dyckhoff et al. Israni / Sanders Berkey / Wang Dudzinski / Walukiewicz Martello / Toth Rode / Rosenberg Dyckhoff et al. Ano 1971 1975 1976 1980 1981 1982 1983 1984 1985 1985 1985 1987 1987 1987 1987 1988 Assunto Empacotamento Knapsack Corte Redução de sobras Empilhamento de caixas Leiaute Empilhamento de caixas Empilhamento de caixas Empacotamento Redução de sobras Encaixe de peças Empilhamento de caixas Knapsack Knapsack Redução de sobras Corte Área Ciência da Computação Logística Engenharia Industrial Pesquisa Operacional Otimização Fabricação Matemática Ciência da Computação Pesquisa Operacional Administração Produção Pesquisa Operacional Pesquisa Operacional Matemática Engenharia / Produção Produção Fonte: Dyckhoff (1990). Na década de 90 o trabalho de Dias (1991) tratou o problema de encaixe de figuras irregulares em uma área retangular. Ghandforoush et al. em 1992 e Macleod et al. em 1993 (CUNHA, 1998) contemplaram novas heurísticas para o problema de corte tipo guilhotina de retângulos com restrição e também métodos para obtenção da solução ótima dos problemas propostos por Oliveira e Ferreira em 1990, Viswanathan e Bachi em 1993, Christofides e Hadjiconstantinou em 1995 e Daza et al. em 1995 (CUNHA, 1998). Vinadé (1997) tratou o problema de encaixe de figuras irregulares em uma área irregular. 2.1.1 Problemas de Corte e Empacotamento O problema de corte consiste em efetuar o arranjo de peças diversas em uma região maior, com intuito de efetuar o corte dessas peças e obter o melhor aproveitamento possível da matériaprima envolvida no processo. Já o problema de empacotamento, consiste neste mesmo arranjo de peças do problema de corte, sendo que o intuito deste arranjo de peças não é o corte, e sim, obter uma melhor ocupação do espaço. O problema de empacotamento pode ser entendido como o inverso do problema de corte, onde o problema de corte trata o ajuste das peças para o corte da matéria-prima, obtendo assim, o menor desperdício e uma minimização das perdas. Já o problema de empacotamento trata o ajuste 20 das peças para uma melhor ocupação da área envolvida, neste caso a peça maior, com o intuito de uma maximização da área. Atenta-se que os objetivos dos problemas são inversos (minimização de perdas e maximização da área ocupada), mas as abordagens para solução destes problemas são as mesmas. Para que se possa obter um maior rendimento da matéria-prima, faz-se necessário um processo eficiente de agrupamento das peças envolvidas no processo. Este agrupamento é um arranjo das áreas menores em uma área maior, visando assim, uma ocupação maior do objeto delimitador, que neste caso, refere-se à área maior, citada anteriormente (DIAS, 1991). Os problemas de corte e empacotamento podem ter dimensões variadas. Segundo a tipologia definida por Dyckhoff (1990), os problemas podem ser unidimensionais, onde apenas uma dimensão é considerada; bidimensionais, onde duas dimensões são consideradas; tridimensionais, que considera três dimensões e multidimensionais, que considera mais de três dimensões. No caso dos problemas multidimensionais, são problemas com mais de três dimensões. Dyckhoff (1990) exemplifica um problema multidimensional que possui quatro dimensões. Este problema envolve o posicionamento de peças em um contêiner, neste caso um problema tridimensional, sendo que as peças devem ficar posicionadas por um tempo determinado. Neste caso, a variável tempo torna o problema com quatro dimensões. O estudo dos problemas de corte e empacotamento contribui para diversos problemas existentes nas indústrias. A cada ano, novas abordagens e propostas de soluções surgem para estes tipos de problemas, contribuindo para que indústrias de couro, plástico, vidro, papel, metal, tecido, dentre outras, possam diminuir o desperdício de matéria-prima utilizada na produção de Peças (FRITSCH; VORNBERGER, 1995). Para muitas empresas, uma alternativa para redução de custos é um melhor aproveitamento ou redução de sobras da matéria-prima utilizada. Nascimento (2006) mostrou algumas definições para o problema de corte e empacotamento, estas definições foram adaptadas do trabalho de Cunha (1998). Seguem abaixo estas definições: 1. Trim Loss Problem (Problema de Perdas por Corte): Problema referente à redução do desperdício de matéria-prima. Trata a otimização do corte de peças maiores para produção de peças menores. Este problema pode estar envolvido em complexidades unidimensional, bidimensional, tridimensional ou multidimensional. 21 2. Bin Packing Problem (Empacotamento de caixas, tiras ou faixas): Problema referente à redução de espaços vazios dentro de objetos. Trata o empilhamento de itens da uma lista de pedidos. 3. Knapsack Problem (Problema da Mochila): Segundo Nascimento (2006), O problema da mochila consiste na escolha de um subconjunto de itens, cada qual com uma correspondente utilidade e um valor (em geral denominado “peso”) que define o quanto este item utilizará da capacidade da mochila. A escolha dos itens a serem inseridos na mochila deve repercutir no maior beneficio possível, medido de acordo com a natureza do problema em estudo. 4. Vehicle Loading (Carregamento de Veículos): Problema de acomodamento de itens diversos dentro de um veículo, visando uma ocupação melhor do espaço e, diminuindo assim, o número de viagens necessárias para o transporte de todos estes itens. 5. Container and Pallet Loading (Carregamento de Paletes e Contêineres): Problema de acomodamento de itens dentro de um volume. Este volume pode ser palete ou contêiner. Trata itens com três dimensões (3D), empilhando-os de maneira a reduzir os espaços vazios (NASCIMENTO, 2006). 6. Layout Problems (Problemas de Leiaute): Segundo Nascimento (2006), Envolve a alocação de componentes em um espaço disponível, de forma que um conjunto de objetivos pré-especificados possam ser atingidos, respeitando-se restrições de espaço e performance. 7. Nesting and Partitioning Problems (Problemas de Encaixe e Particionamento): Segundo Whitwell (2004, apud NASCIMENTO, 2006), O termo “encaixe” é utilizado para representar o empacotamento de itens com duas dimensões e formato irregular, problema muito comum na indústria metal-mecânica. O arranjo proposto de itens é referenciado como um “particionamento” por este segmento da indústria. 8. Budgeting Capital Problem (Problemas de Cálculo de Capital): Problema de alocação de investimentos. Deve-se maximizar o retorno auferido dos investimentos respeitando os recursos disponíveis e o nível mínimo e máximo associado a cada investimento possível (MATHEMATICAL PROGRAM GLOSSARY, 2005 apud NASCIMENTO, 2006). 22 9. Assembly Line Balancing (Balanceamento de Linhas de Montagem): Problema da divisão do trabalho necessário para montar uma variedade de produtos ao longo de diferentes estações e linhas de montagem. O objetivo é otimizar a utilização de recursos disponíveis em uma indústria (BOCKMAYR, PISARUK, 2001 apud NASCIMENTO, 2006). 10. Multiprocessor Scheduling Problems (Problemas de Ordenamento de Tarefas com Múltiplos Processadores): Problema na programação de uma série de tarefas ao longo de um período definido, respeitando as restrições de tempo, mão-de-obra e seqüenciamento. Conforme pôde ser observado anteriormente, diversos pesquisadores contribuíram para o tratamento dos problemas de corte e empacotamento. Cada pesquisador sugeriu ou implementou técnicas novas para tentar obter os melhores resultados nos seus trabalhos. Segundo Nascimento (2006): “Nos últimos anos, vem-se dando prioridade à resolução dos problemas de corte a partir da utilização de algoritmos heurísticos e metaheurísticos, podendo-se destacar a utilização dos algoritmos genéticos.”. A utilização de algoritmos heurísticos e metaheurísticos contribuem para melhorias no sorteamento das peças envolvidas no problema. A utilização de Algoritmos Genéticos e Simulated Annealing para este tipo de problema podem ser vistos nos trabalhos de Parada, Sepúlveda & Alvarenga (1998) que utilizaram Simulated Annealing para o problema de corte guilhotina. Liang et al. (2001) tratou o problema de corte unidimensional utilizando-se Algoritmos Genéticos. Hifi, Paschos & Zissimopoulos (2004) utilizaram Simulated Annealing para o problema de corte circular. 2.2 Problemas de corte industrial O problema de corte industrial é conhecido na literatura inglesa como Cutting Stock Problem. O estudo dos problemas de corte e empacotamento contribui para que problemas industriais (indústrias de couro, tecido, metal, vidro, plástico e outras) possam ser resolvidos, visto que irão tratar o melhor arranjo das peças que serão cortadas, diminuindo o desperdício de matériaprima (NASCIMENTO, 2002). Para que se possa obter um maior rendimento da matéria-prima, faz-se necessário um processo eficiente de agrupamento das peças que a empresa irá cortar. Este agrupamento é um arranjo das áreas menores em uma área maior delimitadora, visando assim, uma ocupação maior 23 do objeto delimitador, que neste caso, refere-se à área maior citada anteriormente (DIAS, 1991). Dentre os problemas existentes na indústria, o problema de corte no segmento têxtil está relacionado ao tema proposto nesta pesquisa. Este problema consiste no ajuste de peças que serão cortadas em uma mesa do corte com o intuito de diminuir o desperdício de tecido (NASCIMENTO, 2006). A Tabela 2 mostra as características do problema do corte de tecido conforme os critérios de classificação propostos por Dyckhoff (1990). Tabela 2. Características do problema de corte da indústria tecido Critério Dimensionalidade Sistema de medidas Forma geométrica Sortimento Disponibilidade Características do problema Bidimensional Sistema de medida discreta ou inteira Formas irregulares e assimétricas Itens com figuras diferentes quanto à forma e tamanho Disponibilidade finita de itens e objetos Fonte: Nascimento (2006). Nascimento (2006) descreve o problema da indústria têxtil relacionado com a ordem de corte das peças. Esta pesquisa irá se basear no problema da indústria têxtil como sendo o encaixe de figuras irregulares e não serão tratadas as variáveis envolvidas no problema em questão. O motivo de escolha do problema da indústria têxtil é à disposição das formas geométricas das peças envolvidas e da área delimitadora. O item 2.3.1 desta pesquisa descreve a geometria das peças e da área delimitadora envolvida nesta pesquisa. A utilização de heurísticas e metaheurísticas para os problemas de corte industrial pode ser observada em trabalhos recentes como Constantino e Gomes (2002) que utilizaram Algoritmos Genéticos como técnica da otimização para o problema de corte bidimensional. Araujo (2004) propôs em seu trabalho a utilização de p-medianas e Busca Tabu para o problema de corte guilhotina bidimensional. Burke et al. (2006) utilizou Busca Tabu e Hill Climbing para o problema do encaixe bidimensional de peças irregulares. 2.3 Problema de Encaixe de figuras irregulares O problema de encaixe de figuras irregulares pode ser entendido como uma classe dos problemas de corte e empacotamento. O encaixe de figuras irregulares consiste no posicionamento das figuras em uma área maior. Este processo de posicionamento tem o intuito de obter o melhor 24 posicionamento das figuras, minimizando o desperdício do espaço que será ocupado. O processo deverá garantir que não haverá sobreposição das figuras encaixadas (DIAS, 1991). A garantia de não sobreposição das figuras deve-se ao fato de que a forma de ocupação de um espaço bidimensional classifica-se em três tipos: encaixe, cobertura e enchimento (VINADÉ, 1997). Esta pesquisa irá tratar o encaixe das figuras. O encaixe de figuras irregulares envolve qualquer polígono fechado (DIAS, 1991). Estes polígonos são figuras discretizadas em seqüências de segmentos de reta, formando o polígono. Este tipo de problema envolve como área delimitadora, ou área maior, polígonos convexos e não convexos. Na indústria, o problema pode ser encontrado em indústrias metal-mecânica, têxtil e calçadista (VINADÉ, 1997). 2.3.1 Definição do problema Para o entendimento do processo de encaixe de figuras irregulares, é necessário entender, ou conhecer, as diferenças entre polígonos convexos e não convexos. Os polígonos convexos (Figura 1-a) são formados por segmentos de retas cujo ângulo entre essas retas não ultrapassa 180°. Ao traçar qualquer reta internamente a um polígono convexo, todos os pontos da reta serão internos a este polígono. Já os polígonos não convexos (Figura 1-b), o ângulo entre os segmentos de retas poderá ser maior que 180° e retas que forem traçadas internamente a este tipo de polígono, poderá não ter todos os seus pontos internos a este polígono. A Figura 1 exemplifica polígonos convexos e não convexos respectivamente. (a) (b) Figura 1. Tipos de Polígonos: (a) Polígono convexo; (b) Polígono não convexo Fonte: Adaptado de Vinadé (1997). 25 O posicionamento das figuras poderá ser do tipo encaixe, onde não ocorrerá a sobreposição, do tipo cobertura, onde é permitida a sobreposição e do tipo enchimento, onde também não é permitida a sobreposição das figuras. No caso da cobertura e do enchimento, a área delimitadora deverá ser preenchida, sem sobrar espaços vazios. A Figura 2 mostra os tipos de encaixe descritos anteriormente (DIAS, 1991). Figura 2. Tipos de Preenchimento Fonte: Adaptado de Vinadé (1997). A eficiência do processo de posicionamento das figuras é determinada pela razão entre a soma das áreas das figuras envolvidas e a área do objeto delimitador (VINADÉ, 1997). As Equações Equação 1, Equação 2 e Equação 3 mostram os valores limites de eficiência que se podem obter no processo de encaixe, cobertura e enchimento, respectivamente. As equações se baseiam no modelo apresentado por Vinadé (1997), onde Ap refere-se a soma das áreas das figuras utilizadas no processo em questão e A refere-se a área onde as figuras serão posicionadas. 1 Equação 1 1 Equação 2 1 Equação 3 A Equação 1 determina que quanto mais próximo de 1 for o valor resultante da equação, melhor será o rendimento do processo de encaixe das figuras. Onde valores próximos de 1, significam que a soma da área das figuras encaixadas é próximo do valor da área do retângulo que delimita a área de encaixe. Fazendo que o desperdício de matéria-prima seja menor. Apesar da 26 porcentagem da área ocupada pelas figuras ser um fator de medição da qualidade do processo de encaixe, será considerado o comprimento ocupado pelas figuras encaixadas como sendo o fator de decisão de qualidade. Assim o menor comprimento das figuras encaixadas determinará o melhor encaixe. 27 3 DESENVOLVIMENTO 3.1 Métodos utilizados para resolução dos problemas de encaixe A metodologia abordada nesta pesquisa considerou uma seqüência de passos que definiram o processo de encaixe das figuras. O processo envolveu, de forma mais geral, três procedimentos: a ordenação das figuras, o encaixe das figuras e a garantia de não sobreposição destas figuras. A ordenação das figuras utilizou dois métodos metaheurísticos: Algoritmos Genéticos e Simulated Annealing. O encaixe das figuras foi feito utilizando a regra de movimento left-bottom e a garantia de sobreposição foi feita utilizando um processo de verificação se um ponto é interno a um polígono, este processo de verificação utilizou um método denominado nesta pesquisa como PNP (ponto no polígono) e uma função de verificação de intersecção entre duas retas, função esta, apresentada nos trabalhos de Dias (1991) e Vinadé (1997), denominada função D. 3.1.1 Ordenação das figuras O processo de ordenação das figuras foi o responsável por definir a ordem que cada figura deveria ser encaixada. Foram utilizados métodos metaheurísticos para a definição da ordem das figuras. Estes métodos não exigem um elevado esforço computacional, permitindo assim, a busca pela melhor ordem de encaixe das figuras durante o processo. 3.1.1.1 Algoritmos Genéticos Introdução Os Algoritmos Genéticos estão incluídos na classe de métodos evolucionários. Os métodos evolucionários pertencem a uma classe de métodos que se baseiam em mecanismos probabilísticos. Estes métodos probabilísticos se diferem de métodos determinísticos por não necessitarem de características de continuidade e diferenciabilidade. Dentro do contexto de métodos probabilísticos há os métodos estocásticos que se baseiam na classe de métodos probabilísticos (BEZ, 2005). Mesmo os Algoritmos Genéticos pertencerem à classe de algoritmos probabilísticos de busca e otimização, estes não são aleatórios. Estes se utilizam de conceitos de probabilidade, mas não de buscas aleatórias que, pelo contrário, dirigem a busca para regiões do espaço onde é “provável” que os pontos ótimos estejam (CORRÊA, 2000). 28 Os algoritmos genéticos foram introduzidos por Holland em 1975 no seu livro "Adaptation in Natural and Artificial Systems" (BEZ, 2005). Representam técnicas de buscas baseadas na seleção natural, que foi apresentada por Charles Darwin em 1858 com sua Teoria da Evolução. Os trabalhos de Holland juntamente com a publicação “Genetic Algorithms in Search, Optimization and Machine Learning” de Goldberg (1989) são considerados pioneiros sobre este tema (BEZ, 2005). Os métodos evolucionários como já citado, são baseados na teoria da evolução de Charles Darwin. A partir de uma população inicial, a busca é realizada com base na seleção do indivíduo mais apto. A aptidão de cada indivíduo é medida a cada geração que surge, onde os indivíduos mais aptos ou adaptados se destacam para uma seleção. Segundo Bez (2005), os métodos evolucionários operam sobre uma população de soluções potenciais, aplicando o princípio de sobrevivência do mais apto para produzir melhores aproximações para uma solução. Segundo Goldberg (1989 apud CORRÊA, 2000), os algoritmos genéticos possuem as seguintes características: • Operam sobre uma população, que é o equivalente a um conjunto de pontos, não a partir de um único ponto; • Operam num espaço de soluções codificadas, não no espaço de busca diretamente; • Necessitam somente de informações sobre o valor de uma função objetivo para cada membro da população, não requerendo que a função seja diferenciável ou contínua; e • Usam regras de transições probabilísticas, neste caso referente à mudança de um estado para outro, diferentes da utilização de regras determinísticas. Os algoritmos genéticos partem de uma população inicial de indivíduos. Estes indivíduos irão evoluir e se modificar através recombinação entre os indivíduos e mutações que ocorrerão em uma parcela da população. Os indivíduos mais aptos sobreviverão, sendo que a aptidão é definida através de uma função denominada justamente de função de aptidão ou avaliação. Esta função irá classificar os indivíduos pelo seu grau de aptidão (BEZ, 2005). genético pode ser vista na Figura 3. 29 A estrutura de um algoritmo Figura 3. Estrutura do algoritmo genético Fonte: Adaptado de Bez (2005). Tanomaru (1995, apud ROSÁRIO, 2002) sugere a seguinte definição para algoritmos genéticos: “Algoritmos Genéticos (AGs) são métodos computacionais de busca baseados nos mecanismos de evolução natural e na genética. Em AGs, uma população de possíveis soluções para o problema em questão evolui de acordo com operadores probabilísticos concebidos a partir de metáforas biológicas, de modo que há uma tendência de que, na média, os indivíduos representem soluções cada vez melhores à medida que o processo evolutivo continua”. Conceitos dos Algoritmos Genéticos A partir do próximo tópico, serão mostrados outros aspectos do algoritmo genético. Para isso, fazem-se necessários o entendimento de conceitos importantes presentes neste algoritmo. Segue abaixo a descrição destes conceitos com base na descrição feita por Bez (2005). • Função Aptidão: é conhecida como Fitness, trata-se do mecanismo de avaliação utilizado a cada geração processada. Cada indivíduo possui um valor desta função, valor 30 este, que irá definir o nível de adaptação deste indivíduo no ambiente. Quanto melhor o valor da função, mas são as chances do individuo sobreviver, se perpetuar e gerar descendentes. • Gene: é a representação de cada parâmetro. É através deste que as características dos indivíduos serão transmitidas. • Genótipo: é a constituição genética do indivíduo. Nos algoritmos genéticos, ele é responsável pela distribuição dos genes num cromossomo. • Fenótipo: é o cromossomo codificado. • Cromossomo: representa uma possível solução. Ele é formado por um conjunto de genes e é responsável pela informação genética do indivíduo. Representação e codificação Originalmente, os Algoritmos Genéticos possuem representação binária (zero-um), sendo que atualmente, também podem apresentar uma representação decimal ou mesmo uma representação baseada na ordem. Essa representação baseada na ordem torna-se eficaz no problema do caixeiro viajante (BEZ, 2005). Utilizando a terminologia Genética, cada indivíduo no espaço de busca, é um fenótipo correspondente a realização de um dado código, neste caso, o seu genótipo. A escolha da codificação para um determinado problema é a escolha da função ou regra que associa os elementos do espaço dos genótipos, com aqueles do espaço de busca, os fenótipos (ROSÁRIO, 2002). Ao utilizar uma representação do tipo posicional, a posição de cada gene no cromossomo influencia diretamente no fenótipo. Seja uma representação do indivíduo dada por 10110001, este indivíduo será diferente de um indivíduo com representação 10100110, isso porque a representação posicional considera a posição dos genes. O primeiro indivíduo tem o fenótipo 177 e o segundo indivíduo tem o fenótipo 166. Em uma representação não posicional, os fenótipos mostrados acima serão considerados iguais, visto que neste tipo de representação, a quantidade de genes com valor 1 é que são considerados, portanto os indivíduos possuem fenótipo 4 (BEZ, 2005). Operadores Genéticos Os operadores genéticos são de fundamental importância para os algoritmos genéticos. São estes operadores que irão evoluir os indivíduos (cromossomos) e sem eles, os indivíduos 31 permanecem inalterados. Sem a utilização dos operadores, as evoluções não ocorreriam, impossibilitando o processo de otimização. Segundo Goldberg (1989, apud BEZ, 2005), os operadores conhecidos por seleção, cruzamento e mutação apresentam bons resultados em problemas de otimização aplicando algoritmos genéticos. Estes operadores serão vistos a seguir. Seleção A seleção tem por objeto fazer com que os indivíduos mais aptos tenham uma maior probabilidade de serem inseridos na nova população. A seleção utiliza-se do valor de aptidão que cada indivíduo possui, e assim aplicar-se, conforme a técnica pré-definida, a escolha dos indivíduos que formarão nova população. Dentre os processos de determinação de uma nova população, Barbosa (1997, apud ROSÁRIO, 2002) apresenta um esquema de seleção que pode ser enquadrado em uma das seguintes categorias: • seleção estabilizante, também chamada normalizante, tende a eliminar indivíduos com valores extremos de aptidão; • seleção direcional, que tem o efeito de aumentar (ou diminuir, em caso de minimização) a aptidão média da população; • seleção perturbante, que tende a eliminar os indivíduos moderados de aptidão. Outros métodos de seleção são conhecidos, podendo-se destacar o método da roleta e o método elitista. O método da roleta consiste inicialmente em colocar os indivíduos em uma roleta atribuindo a cada um destes indivíduos uma parte proporcional à sua aptidão, sendo assim, os indivíduos mais aptos tem um valor maior na roleta, aumentando a probabilidade de estarem na nova população. Em seguida, roda-se a roleta e o indivíduo correspondente à fatia onde a agulha parar permanecerá para a próxima geração. A roleta é acionada quantas vezes forem necessárias para gerar a quantidade de indivíduos requerida para formar a população. A Figura 4 ilustra o processo de seleção pelo método da roleta, nesta, as partes possuem tamanhos diferenciados que expressão as diferentes probabilidades dos indivíduos. Já o método elitista, é um processo que previne a eliminação dos melhores indivíduos e mantendo sempre na população os indivíduos mais aptos. O método consiste 32 na ordenação de todos os indivíduos em ordem decrescente ou crescente, de acordo com o tipo do problema, do valor de aptidão. Retiram-se os n primeiros indivíduos, onde n é a quantidade de indivíduos requerida para formar a população. Figura 4. Método da roleta Fonte: Boechel (2005). Cruzamento Este operador genético é conhecido na literatura inglesa como crossover e é responsável pela reprodução dos indivíduos da população. O cruzamento irá gerar indivíduos a partir da combinação do material genéticos de pelo menos dois “pais” e irá gerar um ou dois “filhos”. A seguir serão mostrados três tipos de cruzamento, sendo eles: cruzamento simples, cruzamento de dois pontos e cruzamento uniforme. Cruzamento simples Após a seleção dos indivíduos que irão efetuar um cruzamento, é feito um sorteio de uma posição de crossover e é feita a troca de material genético entre esses indivíduos “Pais”. A Figura 5 mostra a troca do material genético entre o “Pai 1” e o “Pai 2”, resultando no “Filho 1” e ‘Filho 2”. É importante perceber que a troca dos genes foi efetuada na posição três do cromossomo. Os valores expressados nos cromossomos utilizam a notação decimal e são valores definidos sem seguir um padrão. São valores decimais sem repetição, apenas exemplificam as operações feitas sobre os cromossomos. 33 Figura 5. Cruzamento simples Fonte: Adaptado de Rosário (2002). Cruzamento de dois pontos Neste tipo de cruzamento, dois pontos são sorteados e o material genético entre esses dois pontos é recombinado. Os genes localizados entre os dois pontos sorteados serão trocados, ou seja, o “Filho1” terá os genes localizados entre os pontos sorteados do “Pai 1” e os genes que não pertencem ao intervalo sorteado do “Pai 2”. O “Filho 2” terá o seu material genético formado pelo inverso do processo realizado com o “Filho 1”. A Figura 6 ilustra o cruzamento de dois pontos. Figura 6. Cruzamento de dois pontos Fonte: Adaptado de Rosário (2002). Cruzamento uniforme Neste cruzamento é introduzida uma máscara que irá definir as posições de troca de genes. Neste caso, trata-se de uma máscara de bits (01001) com o mesmo comprimento do cromossomo que indicará a ocorrência ou não da troca de genes no ponto determinado. Uma máscara m formada por 1 0 1 0 1 indicará que as posições um, três e cinco terão trocas de genes entre os “Pais”. A Figura 7 exemplifica esta troca de genes com a utilização de uma máscara. Figura 7. Cruzamento uniforme Fonte: Adaptado de Rosário (2002) Um problema decorrente dos cruzamentos realizados entre os cromossomos é a inconsistência. Trata-se de um problema com os cromossomos filhos, onde seus genes se repetem 34 no mesmo cromossomo. Este problema pode ocorrer, por exemplo, no cruzamento simples ou de dois pontos. Para esses casos, é sorteada uma posição aleatória e a troca de genes é realizada. Neste momento, o cromossomo dos “pais” pode repetir algum gene nos filhos gerados. Esta condição não pode acontecer, assim é preciso efetuar um tratamento de inconsistência. Para o tratamento de inconsistências, podem ser aplicados diversos métodos. Entre estes métodos, há o operador PMX (Partially Mapped Crossover). Este operador funciona com o cruzamento de dois pontos, onde se percorre o cromossomo testando cada gene. Inicia-se o percurso a partir da posição de corte 2. Para cada gene é testado se o mesmo se repete, caso este gene esteja repetido, efetua-se a troca do gene na posição testada pelo gene relativo do outro filho gerado. Este teste é feito para todos os genes do cromossomo. A Figura 8 mostra o operador PMX. Os genes marcados com “*” se repetiram e foram trocados pelos genes marcados com uma seta. A troca dos genes é feita com o gene do outro filho gerado. Figura 8. Tratamento de Inconsistência por PMX Além do operador PMX, utilizam-se os operadores OX (Order Crossover), CX (Cycle Crossover) e outros para o tratamento de inconsistência (GOLDBERG, 1989). No caso do operador OX, seleciona-se um fragmento de um dos “pais” e este fragmento é adicionado ao “filho” mantendo a posição dos genes no cromossomo. Este fragmento é obtido a partir de dois pontos do cromossomo. Então os genes não preenchidos do “filho” serão completados com os genes do outro “pai”. Para isso percorre-se o segundo “pai” selecionando seus genes unitariamente. Para cada gene selecionado, verifica-se se o mesmo já existe no filho gerado, caso não se exista, este gene é adicionado ao “filho”. A Figura 9 mostra os passos da aplicação do operador OX. 35 Figura 9. Tratamento de Inconsistência por OX Fonte: Mendes (1999). Mutação Segundo Bez (2005), o operador genético de mutação tem como principal objetivo introduzir algumas características que não estão presentes na população inicial. Nesse processo, os indivíduos são escolhidos aleatoriamente. A mutação poderá proporcionar novas regiões promissoras no espaço de busca, afinal novos indivíduos com características diferentes surgirão na população. O processo de mutação é simples, basta selecionar um ou mais genes do cromossomo e então efetuar a troca destes genes. O processo de seleção dos genes é realizado através de uma escolha aleatória. A Figura 10 exemplifica o processo de mutação em um indivíduo com notação binária. Figura 10. Mutação Fonte: Adaptado de Rosário (2002). O operador de mutação não precisa se restringir a troca de apenas um gene, podem-se escolher n genes e assim efetuar a troca dos mesmos. Outro processo é a escolha de dois pontos no cromossomo e partir destes pontos, mudarem a ordem dos genes entre esses pontos conforme a Figura 11. Esta figura representa um cromossomo com notação decimal. 36 Figura 11. Mutação com mudança na ordem dos genes Parâmetros Genéticos Os algoritmos genéticos, como muitos métodos de otimização, possuem parâmetros que influenciam no seu comportamento. O número de indivíduos da população, a taxa de cruzamentos e a taxa de mutação são os parâmetros dos algoritmos genéticos. O número de indivíduos é importante para a definição do espaço de busca. A utilização de poucos indivíduos acarreta na redução deste espaço de busca e problemas de convergência prematura, já a utilização de um número maior de indivíduos resultará em uma maior cobertura do espaço de busca, prevenindo esta convergência prematura. O tamanho da população está ligado ao esforço computacional exigido pelo o algoritmo (BEZ, 2005). Quanto maior a taxa de cruzamento, mais rapidamente novos indivíduos serão introduzidos na população. Com uma taxa de mutação muito alta a busca se torna essencialmente aleatória. Bons resultados geralmente são obtidos com valores baixos para a taxa de mutação, o qual introduz e mantém a diversidade genética da população (CORRÊA, 2000 apud ROSÁRIO, 2002). O importante é perceber que os cruzamentos de cromossomos irão gerar os indivíduos com mais chances de sobrevivência, e a mutação poderá tornar esses indivíduos mais aptos na população, norteando a busca. Pseudocódigo de um AG Barbosa (1997, apud ROSÁRIO, 2002), descreve um algoritmo que consegue englobar a grande maioria dos algoritmos genéticos existentes, conforme a Figura 12. 37 Algoritmo Genético genérico 1. Inicialize a população 2. Avalie indivíduos na população Repita 3. Selecione indivíduos para reprodução 4. Aplique os operadores de recombinação e mutação 5. Selecione indivíduos para sobreviver Até critério de parada satisfeita Fim Figura 12. Algoritmo genético genérico Fonte: Adaptado de Barbosa (1997, apud ROSÁRIO, 2002). As linhas enumeradas são processos do algoritmo onde estão incluídos os operadores genéticos. O primeiro passo é a inicialização da população, que criará a primeira geração de indivíduos que será utilizada inicialmente pelo algoritmo. No segundo passo, é a avaliação inicial dos indivíduos da população, esta avaliação irá efetuar a primeira ordenação dos indivíduos conforme suas aptidões. Os próximos passos irão acontecer em um loop, cujo não irá terminar até que um critério de parada seja satisfeito. No terceiro passo é feita a seleção dos indivíduos que irão se reproduzir, a escolha poderá ser aleatória ou pelo grau de aptidão dos indivíduos, ou seja, um número n de indivíduos mais aptos serão selecionados. O quarto passo contempla o cruzamento dos indivíduos e a mutação dos mesmos, para o mesmo são aplicados os operadores de cruzamento de mutação explicados anteriormente. E no quinto passo é feita a seleção dos indivíduos que irão sobreviver. Os passos três, quatro e cinco ocorrem em um loop até que um critério de parada seja satisfeito. 3.1.1.2 Algoritmo Simulated Annealing O Simulated Annealing é uma técnica heurística que foi publicada inicialmente por Metropolis et al (1953 apud BEZ, 2005) e baseia-se no processo de recozimento que ocorre na indústria metalúrgica, no qual se busca a obtenção de um material sem impurezas (METROPOLIS et al, 1953; KIRKPATRICK et al, 1983 apud BEZ, 2005). Busseti (2001a apud GOMES, 2003) afirma sobre o Simulated Annealing que, “Sua principal vantagem sobre os outros métodos é a sua habilidade e flexibilidade para se aproximar do ótimo global. O algoritmo é bastante versátil desde que ele não dependa de alguma propriedade restritiva do modelo”. 38 Segundo Oliveira (2004), a técnica publicada por Metropolis et al. em 1953 trata de um método numérico simples que representa o estado de um conjunto de átomos em equilíbrio em uma certa temperatura. O método era análogo ao processo de recozimento (annealing) da indústria metalúrgica. Este processo trata a exposição do metal a altas temperaturas, fazendo com que os átomos do metal vibrem violentamente. Após a elevação da temperatura, o metal é esfriado gradualmente para que os átomos atinjam padrões estáveis. Com base neste processo, surgiu o algoritmo de simulação computacional Simulated Annealing ou Recozimento Simulado (OLIVEIRA, 2004). O comportamento dos átomos pode ser observado na Figura 13, Figura 14 e Figura 15. Estas figuras representam respectivamente: a desordem dos átomos durante a elevação da temperatura, onde os átomos estão se agitando por causa desta elevação na temperatura; um resfriamento brusco da temperatura, provocando assim, um estado conhecido como amorfo, onde o nível de energia via baixar rapidamente deixando este estado menos estável que o estado da Figura 15, esse resfriamento rápido estaciona os átomos; e um estado onde a temperatura foi diminuída lentamente, ao contrário da Figura 14 que teve uma diminuição brusca da temperatura. Este estado mostra um comportamento ordenado das moléculas por causa da diminuição gradativa da temperatura (NORONHA, 2000). A Figura 13 representa as moléculas se agitando, sendo as setas uma indicação do movimento das moléculas. Figura 13. Estado desordenado das moléculas da matéria em fusão Fonte: Adaptado de Noronha (2000). 39 Figura 14. Estado desordenado das moléculas após a um resfriamento rápido Fonte: Adaptado de Noronha (2000). Figura 15. Estado ordenado das moléculas após a um resfriamento lento Fonte: Adaptado de Noronha (2000). Segundo Bez (2005), “Simulated Annealing, como todo método estocástico, tem como característica uma busca exploratória estocástica, ou seja, aleatória. A origem desta técnica computacional é da mecânica estatística e tem como objetivo principal determinar soluções próximas do menor custo global para grandes problemas de otimização”. O algoritmo apresentado por Metropolis et al. (1953 , apud BEZ, 2005) tira o nome do fato que seu procedimento de otimização simula o resfriamento lento da matéria. A principal variável de controle é chamada temperatura, por analogia ao fenômeno físico. Na Figura 16 é apresentada a formulação geral do Simulated Annealing,onde s* representa a melhor solução encontrada durante a execução do algoritmo (NORONHA, 2000). 40 Início Estabelecer uma solução realizável S0; s = s0; Determine uma temperatura inicial T > 0; Enquanto o sistema não estiver resfriado faça efetuar L iterações de: escolher aleatoriamente um vizinho v ∈ v(s) ∆ = objetivo(ν) – objetivo(s) Se ∆ < 0 então s = v; Se objetivo(ν) < objetivo(s*) então s* = ν; Senão s = ν com a probabilidade Fim da Busca Interna; Reduzir a temperatura; Fim do Enquanto ∆ ; Fim Figura 16. Simulated Annealing Fonte: Adaptado de Noronha (2000). Segundo Noronha (2000), este algoritmo decompõe duas grandes buscas sobrepostas. A busca externa que controla o término do processo e é baseado na noção de estado resfriado e a busca interna que contém o processo de otimização. Durante a busca interna, para uma determinada temperatura, escolhe-se um vizinho (v) aleatoriamente. Caso v seja um vizinho melhor, neste caso seu valor objetivo deverá ser inferior ao valor objetivo da solução corrente s, v será aceito como uma nova solução. Caso a passagem de s a ν degrade o objetivo, aceita-se o movimento com uma probabilidade ligada a diferença das quantidades objetivo e a temperatura corrente. Isto é um mecanismo de aceitação condicional das “ascensões” que permitem ao método de sair dos mínimos locais. Ao fim de L iterações diminuemse a temperatura (NORONHA, 2000). Quando a temperatura se eleva, praticamente todos os movimentos serão autorizados. Quanto mais a temperatura é reduzida, mais as degradações serão penalizadas em função de lucro dos movimentos melhores, e assim, o método então convergirá para o ótimo local mais próximo (NORONHA, 2000). Será considerado que o problema está resfriado no seu estado se não houver mais chances de se achar uma melhor solução na continuação da exploração. Dentre os numerosos critérios para tomar a decisão de parar o algoritmo, um dos mais utilizados é a não melhoria do objetivo em certo número n de iterações a uma determinada temperatura (NORONHA, 2000). 41 Uma revisão do algoritmo é a administração da temperatura. Existem numerosas regras de administração da temperatura. A mais simples consiste em trabalhar a temperatura fixa (NORONHA, 2000). Um caso freqüentemente encontrado é a diminuição lenta da temperatura. Para este, existem dois parâmetros a ajustar: a temperatura inicial e a regra de diminuição da mesma. A temperatura pode ser diminuída, por exemplo, através de um valor fixo, onde é definido um valor para a diminuição e temperatura é decrementada. Hajek (1988 apud NORONHA, 2000) propôs uma diminuição logarítmica da temperatura que assegura a convergência do algoritmo. A temperatura evolui segundo a Equação 4: ln 1 Equação 4 onde Tk é a temperatura na iteração k. Hajek (1988 apud NORONHA, 2000) apresentou as regras de diminuição de “C” assegurando a convergência do algoritmo sob reserva que a vizinhança tenha boas propriedades. Na Figura 17 é apresentada uma modificação do algoritmo do Simulated Annealing que foi apresentado anteriormente para contemplar a administração da temperatura. Neste algoritmo, a função de probabilidade é modificada para contemplar o modelo de administração de temperatura. Início Estabelecer uma solução realizável S0; s* = s = s0; k = 0; Determine uma temperatura inicial T > 0; Enquanto o sistema não estiver resfriado faça k = k + 1; escolher aleatoriamente um vizinho v ∈ v(s) ∆ = objetivo(ν) – objetivo(s) Se ∆ < 0 então s = v; Se objetivo(ν) < objetivo(s*) então s* = ν; Senão s = ν com a probabilidade Reduzir a temperatura; Fim do Enquanto ∆/ ; Fim Figura 17. Simulated Annealing Fonte: Adaptado de Noronha (2000). 3.1.2 Encaixe das Figuras O encaixe consistiu no posicionamento das figuras conforme a ordem definida a partir da utilização das metaheurísticas apresentadas anteriormente. O posicionamento das figuras utilizou o processo left-bottom. O left-bottom, como o nome já diz, trata-se do movimento das figuras no 42 sentido esquerdo e inferior. Neste caso, as figuras antes de serem encaixadas, estarão posicionadas em coordenadas aleatórias que variarão conforme a criação destas figuras. O left-bottom funcionou como uma regra de encaixe, onde todas as figuras são encaixadas, ou posicionadas, seguindo a regra do sentido esquerdo e inferior. A Figura 18 mostra o sentido do encaixe por left-bottom. O responsável pela qualidade do encaixe é o processo de ordenamento das figuras. Figura 18. Left-Bottom 3.1.3 Tratamento de Sobreposição das Figuras O tratamento de sobreposição garantiu que as figuras posicionadas não ficassem sobrepostas. Foi um processo importante do algoritmo, pois a partir da ordem das figuras geradas pelas metaheurísticas, o processo de encaixe das figuras inicia o posicionamento das mesmas utilizando left-bottom. O processo de encaixe necessita de uma verificação de sobreposição e uma correção do posicionamento das figuras, que é realizado nesta parte do algoritmo. Este trabalho sugeriu um método chamado de função PNP (Ponto no polígono), trata-se de um método para verificar se um ponto é interno ou não a um polígono. Os trabalhos de Dias (1991) e Vinadé (1997) descrevem dois métodos denominados para o ajuste das figuras denominados Intersecção de Matrizes e Função D. A função D em particular, utiliza-se da geometria analítica para verificar a intersecção entre duas retas. É possível saber através do valor resultante da função, se um segmento de reta está ou não fazendo intersecção com outra reta de um polígono, podendo assim identificar uma possível 43 sobreposição entre os polígonos. A função D foi utilizada durante a verificação de sobreposição do algoritmo. 3.1.3.1 Função PNP A função PNP verifica se um ponto, neste caso se uma coordenada (x,y) é interna a um polígono. Para que isso seja possível, a função utiliza-se a idéia de traçar uma reta que cortará o polígono em questão. Esta reta poderá ter qualquer direção, sendo que a partir do ponto em questão, traça-se uma reta de uma direção única qualquer. A partir desta reta, são verificadas quantas intersecções ela possui com o polígono, esse número de intersecções ou cruzamentos é conhecido como crossing number. Caso o número de intersecções seja “par”, significará que o ponto é externo ao polígono, caso o número de intersecções seja “ímpar”, significará que o ponto é interno ao polígono (HAINES, 1994). A Figura 19 ilustra as intersecções da reta, nesta figura são utilizados polígonos não convexos para exemplificar uma maior quantidade de intersecções do ponto com os segmentos do polígono. Figura 19. Ponto interno ao polígono Alguns tratamentos são necessários durante a identificação da quantidade de cruzamentos existentes entre o ponto de verificação e o polígono em questão. A Figura 20 exemplifica alguns problemas existentes com os cruzamentos entre os segmentos do polígono. 44 Figura 20. Quantidade de cruzamentos nos segmentos do polígono O algoritmo segue algumas regras durante a verificação do ponto interno ao polígono. Conforme mostrado na Figura 20, há o problema de traçar uma reta que corte um ponto de junção entre dois segmentos ou esta reta traçar um segmento por completo, neste caso, a reta teria o mesmo ângulo do segmento traçado. Por estes casos, definiu-se que o algoritmo traçará sempre uma reta horizontal (sem ângulo ou ângulo de 0º) para a verificação da quantidade de cruzamento ocorridos, segmentos horizontais são excluídos da verificação e um segmento inclui seu ponto inicial e exclui seu ponto final da verificação. A inclusão ou exclusão do ponto inicial e final do segmento faz que quando uma reta traçar um ponto de junção entre dois segmentos seja possível definir o cruzamento de forma correta conforme definido neste problema. 3.1.3.2 Intersecção de Matrizes O método consiste na discretização da área de encaixe e das figuras que serão encaixadas em uma matriz de bits. O valor nulo desta matriz representa uma área vazia (DIAS, 1991; VINADÉ, 1997). A Figura 21 ilustra a representação de uma figura por uma matriz de bits. 45 Figura 21. Representação de uma figura em matriz de bits Fonte: Dias (2000). O posicionamento das figuras com a utilização do método de intersecção de matrizes ocorre percorrendo a área maior com a matriz de bits da figura em questão. Serão executadas rotinas para verificar a sobreposição de figuras. Para a nova posição da figura discretizada, é verificado se os pontos dos vértices estão em uma área já ocupada e uma verificação com os pontos das arestas da peça. Somente após esses passos, é definida a nova posição da figura (VINADÉ, 1997). 3.1.3.3 Método de Deslizamento e Função D Um processo de posicionamento das figuras pode ser a partir de um deslizamento das figuras no plano de encaixe. Considerando que as figuras são formadas por segmentos de retas é possível fazer uma aproximação da figura que será encaixada com as demais. Utiliza-se a definição de uma direção de deslizamento e a partir da obtenção da distancia de um ponto a uma reta o deslizamento é realizado (DIAS, 1991). Segundo Dias (1991), a técnica de posicionamento das figuras por deslizamento foi proposta por Bernardo (1987, apud DIAS, 1991). Defini-se através de um vetor V a direção que a figura será deslocada e com a utilização de uma função denominada D é possível definir quais arestas das figuras já posicionadas fazem intersecção com a figura que se deseja posicionar. Assim é possível determinar a distância de colisão entre os vértices das figuras já posicionadas e obter um conjunto de valores mínimos de deslocamento para a figura que será posicionada até o momento (DIAS, 1991). 46 A partir da função D é possível conhecer a posição relativa de um ponto com relação a uma reta. A função D é obtida a partir da equação que calcula a distância de um ponto P a uma reta AB (DIAS, 1991). A distância (d) de um ponto P a uma reta AB é dada pelas Equação 5 e Equação 6: ! " #$ ! $% & ! $ ! $" ! % ' Equação 5 onde: 2 2 ' () ! * $) ! $* Equação 6 A Figura 22 mostra os elementos de cálculo da distância entre o Ponto P e a reta AB. Figura 22. Exemplificação de Ponto e Reta Fonte: Adaptado de Dias (1991). Segundo Dias (1991), a função D é definida pelo produto de d e L. A posição relativa do ponto P em relação a reta AB é dada pelo sinal do valor resultante da função D. Dias (1991), diz que partir da função D, pode-se saber que: • P encontra-se à esquerda de AB se o valor de D > 0; • P encontra-se à direita de AB se o valor de D < 0; • P encontra-se sobre o segmento AB se o valor de D = 0; 47 O teste de intersecção das peças com a utilização da função D exige que todos os segmentos da peça sejam verificados. Para este, deve-se percorrer cada segmento de reta da figura e verificar se este segmento faz intersecção com algum outro segmento das figuras já encaixadas. A partir de dois segmentos de retas formados, por exemplo, pelos pontos AB e CD, uma possível intersecção ocorrerá se os sinais dos resultados da aplicação da função D do ponto A para o segmento CD e do ponto B para o segmento CD forem contrários. A intersecção só será confirmada se os sinais da aplicação da função D para os pontos C e D em relação ao segmento AB também forem contrários (DIAS, 19991). A Figura 23 ilustra a intersecção das retas AB e CD. Figura 23. Intersecção das Retas AB e CD Fonte: Adaptado de Dias (1991). 3.2 Modelagem algorítmica A seqüência de passos descrita anteriormente para definição do processo de encaixe das figuras envolvia os procedimentos de ordenação, encaixe e a garantia de não sobreposição destas figuras. Esta seqüência de passos possui dois modelos algorítmicos que são seguidos. Esta diferenciação se deve pelo uso de dois métodos metaheurísticos para definir a ordem das peças. O modelo que utilizou Algoritmo Genético tem a ordem de encaixe de cada figura definida pelo cromossomo. Por exemplo, em um encaixe de 10 figuras, estas figuras foram enumeradas e assim geraram-se os cromossomos. Estes possuíam 10 genes, referentes a cada figura deste exemplo. A ordem dos genes no cromossomo foi a ordem que cada figura foi encaixada. Para um 48 cromossomo com genótipo: 5 1 8 9 6 3 7 4 2 10 significam que a primeira figura encaixada foi a de número 5, a segunda figura encaixada foi a de número 1 e assim por diante. Durante a execução do Algoritmo Genético, é necessário definir os melhores indivíduos para então permitir ao algoritmo convergir para o indivíduo mais apto. O indivíduo mais apto foi o que permitiu a obtenção do menor comprimento da área utilizada para o encaixe de todas as figuras. O fitness, neste caso, a aptidão dos indivíduos foi definida, como informado anteriormente, pelo menor comprimento da área de encaixe das figuras cuja seqüência destas figuras foi definida pelo indivíduo em questão. A seleção dos melhores indivíduos necessita que este valor de aptidão de cada indivíduo já esteja calculado, assim antes de efetuar a seleção dos indivíduos é necessário efetuar o encaixe das figuras para cada indivíduo da população e assim, efetuar a seleção dos mais aptos (com menor comprimento de encaixe). O algoritmo tem como critério de parada inicial um número n de iterações. O modelo que utilizou Simulated Annealing para definição da ordem das figuras que foram encaixadas utilizou uma solução inicial s. Esta solução é definida por uma seqüência de valores que define o número da figura encaixada. Conforme o modelo que utilizou Algoritmo Genético, onde um cromossomo possuía a ordem das figuras encaixadas, a solução s utilizada no Simulated Annealing, também possui uma lista de ordens de figuras. Assim durante a execução do algoritmo, a cada solução gerada é calculado o valor objeto desta solução (neste caso o valor de objetivo é comprimento da área das figuras encaixadas). Conforme as regras do algoritmo, ao final a solução que gerar o menor comprimento da área de encaixe é escolhida. Para ambos os modelos de encaixe, o processo de posicionamento das figuras é o mesmo. As figuras são movidas no sentido esquerdo e inferior e a cada iteração de movimentação é feita uma verificação de sobreposição. Caso o movimento deixe a figura sobrepondo as demais figuras já encaixadas, este movimento é cancelado. A verificação de sobreposição foi inicialmente planejada para utilizar apenas a função PNP, sendo que também foi necessária a utilização da função D. A função PNP apenas verifica se um ponto é interno ao polígono, mas há casos em que este procedimento não é suficiente, assim sempre que a função PNP retorna a informação que não há sobreposição, é feita uma verificação com a função D para certificar que não há uma sobreposição de segmentos de retas. A Figura 24 ilustra um 49 tipo de sobreposição onde não há pontos internos aos polígonos, apenas intersecções entre os segmentos. Figura 24. Intersecção de segmentos de reta 3.3 Ensaios Numéricos A realização dos ensaios numéricos envolveu a definição de um conjunto de figuras que serviram para toda a coleta de dados que foi efetuada. Foram definidas 48 figuras com tamanhos e formas geométricas variadas. Estas figuras são exemplos de peças encontradas na indústria têxtil, portanto possuem formas geométricas não convexas. A coleta de dados para ambos os processos de encaixe, neste caso, para o processo que utilizou Algoritmo Genético e o processo que utilizou Simulated Annealing, foi realizada com a definição de diferentes valores para os parâmetros necessários para cada processo. A Figura 25 mostra as figuras que foram utilizadas durante os testes dos algoritmos. Os ensaios numéricos aplicados ao Algoritmo Genético e Simulated Annealing consideraram respectivamente como valor de Aptidão e Objetivo, o comprimento necessário para o encaixe das figuras. Não foram consideradas unidades de medidas. Os testes foram repetidos 8 vezes para cada valor diferente dos parâmetros definidos nos testes de cada metaheurística. Foram totalizadas 360 execuções do processo de encaixe. A média de 50 tempo para o processo por Algoritmo Genético variou de 293 a 1.860 segundos. O processo por Simulated Annealing teve uma variação de tempo entre 168 e 447 segundos. Figura 25. Figuras utilizadas no encaixe 3.3.1 Ensaios realizados com Algoritmo Genético Os ensaios numéricos realizados com o procedimento de encaixe que utilizou Algoritmo Genético consideraram três variáveis: o tamanho da população, a taxa de cruzamento e a taxa de mutação. O processo completo de coleta de dados necessitou de uma análise inicial dos parâmetros que deveriam ser utilizados para a definição cada parâmetro. Assim, inicialmente foram feitas combinações de valores para definir qual o tamanho da população, taxa de cruzamento e taxa de mutação deveriam ser utilizados para o inicio dos testes. Definiu-se que o tamanho inicial da população seria de 25 indivíduos e que a taxa de mutação seria de 5%. A taxa de cruzamentos que variou de 25% a 75% nos primeiros testes. A Figura 26 mostra os resultados da variação da taxa de cruzamentos. 51 Taxa de Cruzamentos 311 Valor Aptidão 310 309 308 307 306 305 Percentual de 25 35 45 55 65 75 Cruzameto Figura 26. Definição da Taxa de Cruzamentos A Figura 26 mostrou que a melhor taxa de cruzamentos foi o valor de 65% da população. O segundo parâmetro que foi analisado foi a taxa de mutação. Esta análise manteve o tamanho da população já definido de 25 indivíduos e a taxa de cruzamentos em 65% conforme definida na análise anterior. A taxa de mutação variou entre 5% a 21% da população. A Figura 27 mostra os resultados da variação da taxa de mutação. Valor de Aptidão Taxa de Mutação 310 309 308 307 306 305 304 303 302 301 5 7 9 13 17 21 Percentual de Mutação Figura 27. Definição da Taxa de Mutação A Figura 27 mostrou que a melhor taxa de mutação foi o valor de 17% da população. Com as taxas de cruzamento e mutação definidas, foi feita uma análise da quantidade de gerações para a quantidade de 25 indivíduos, que já está utilizada nos testes, e também para uma quantidade de 35 indivíduos. A Tabela 3 mostra esta variação da quantidade de gerações. É possível verificar que 52 para um população de 25 indivíduos o maior número de gerações convergiu para um melhor resultado. Já para uma população de 35 indivíduos, verifica-se o início de uma convergencia, sendo que uma quantidade maior de gerações pudesse melhorar o resultado. É importante verificar o tempo de processamento para cada situação, pois algumas situações possuem tempos elevados de processamento. Tabela 3. Variação da Quantidade de Gerações Tamanho da População 25 25 25 25 35 35 35 35 Qtd. De Gerações 30 40 50 60 30 40 50 60 Aptidão 309,564184 309,074695 308,321043 307,611869 306,565446 307,855062 309,564395 307,317809 Tempo Processamento 394 segundos 531 segundos 648 segundos 780 segundos 562 segundos 736 segundos 925 segundos 1157 segundos A variação do tamanho da população foi analisada e definiram-se valores de 20 a 70 indivíduos. A quantidade de gerações definida para a análise do tamanho da população foi de 30 gerações. Este valor foi definido devido ao resultado de aptidão e tempo de processamento que pôde ser verificado na Tabela 3. A Figura 28 mostra os resultados da variação do tamanho da população para as iterações executadas. Valor de Aptidão Tamanho da População 309 308,5 308 307,5 307 306,5 306 305,5 305 304,5 304 303,5 20 30 40 50 60 70 Tamanho da População Figura 28. Definição do Tamanho da População A Figura 28 mostrou que o melhor resultado foi obtido foi para uma população de 60 indivíduos. É importante analisar que para uma população de 20 indivíduos, o resultado foi bem 53 próximo ao melhor obtido e o tempo de processamento para este foi cerca de 3 vezes menos ao tempo da melhor solução. É importante registrar que normalmente quanto maior a quantidade de indivíduos de uma população, melhor deveria ser o resultado de aptidão do melhor indivíduo. A Figura 28 mostrou que o aumento do tamanho da população não convergiu para resultados melhores, apenas no caso da utilização de 60 indivíduos. O que pode ter acontecido é que valores maiores de população não tenham gerado soluções piores, mas sim, não conseguiram gerar soluções melhores para a quantidade de gerações definida. Durante todos os testes, verificou-se que na média os tamanhos da população próximos de 30 indivíduos e a quantidade de 30 gerações geraram bons resultados, principalmente se for considerado o tempo de processamento. 3.3.2 Ensaios realizados com Simulated Annealing Os ensaios numéricos realizados com o procedimento de encaixe que utilizou Simulated Annealing consideraram três variáveis de manipulação: a temperatura inicial, o decremento da temperatura e a quantidade de iterações do processo. O processo completo de coleta de dados necessitou de uma análise inicial dos parâmetros que deveriam ser utilizados para a definição cada parâmetro. Assim, inicialmente foram feitas combinações de valores para definir qual a temperatura inicial, o decremento da temperatura e a quantidade de iterações deveriam ser utilizados para o inicio dos testes. Definiu-se que a quantidade de iterações inicial seria de 500 e o decremento da temperatura seria de 0,3. A temperatura inicial foi de 50. A partir destes valores foram iniciadas as coletadas de dados. A Figura 29 mostra os valores obtidos para a definição de uma temperatura inicial. 54 Temperatura Inicial Valor Função Objetivo 311,5 311 310,5 310 309,5 309 308,5 308 307,5 50 100 150 230 270 320 380 450 520 Temperatura Figura 29. Temperatura Inicial Após a definição da temperatura inicial, foi necessário definir qual decréscimo de temperatura possibilitou a obtenção de uma solução. Foram geradas soluções que utilizaram diferentes valores de decremento de temperatura. A Figura 30 mostra os resultados obtidos para as diferentes variações no decremento da temperatura. Para estes testes utilizou-se uma temperatura inicial de 150. Decremento da Temperatura Valor Função Objetivo 312 311 310 309 308 307 306 305 304 0,1 0,3 0,8 1,3 1,5 1,9 2,3 2,6 3,1 Decremento da temperatura Figura 30. Decremento da Temperatura A Figura 30 mostrou que o valor que decremento da temperatura que gerou a melhor solução foi de 1,3. Já foram definidos o valor da temperatura inicial e o decremento da temperatura, sendo que o próximo valor a ser ajustado é a quantidade de iterações. A variação da quantidade de iterações variou de 300 a 1200. A Figura 31 mostra os resultados obtidos com os diferentes valores da quantidade de iterações. 55 Quantidade de Iterações Valor Função Objetivo 311 310 309 308 307 306 305 304 303 300 400 500 600 800 900 1000 1100 1200 Quantidade de Iterações Figura 31. Quantidade de Iterações É possível verificar na Figura 31 que a quantidade de iterações que gerou a solução foi de 400. Assim, a melhor temperatura inicial foi de 150, o decremento de 1,3 e 400 iterações para o processo. 3.3.3 Comparativo entre os resultados A análise realizada entre o processo de encaixe por Algoritmo Genético e Simulated Annealing, mostrou que o Algoritmo Genético retornou valores melhores que os valores retornados pelo processo por Simulated Annealing. O processo realizado com Algoritmo Genético levou mais tempo de processamento, o que pode ser um fator no momento da escolha de qual metaheurística melhor se aplica ao processo de encaixe. A Figura 32 mostra o melhor resultado gerado pelo Algoritmo Genético e pelo Simulated Annealing. 56 Resultado Comprimento do encaxie 306,5 306 305,5 305 304,5 304 303,5 303 302,5 Algoritmo Genético Simulated Annealing Figura 32. Resultado do Algoritmo Genético e Simulated Annealing O melhor resultado obtido com o Algoritmo Genético utilizou uma população de 25 indivíduos, uma taxa de cruzamento de 65%, uma taxa de mutação de 17% e foram geradas 30 gerações de indivíduos. O tempo de processamento foi de 395 segundos e o valor foi de 304,006023. A Figura 33 mostra os dados gerados durante a execução do teste. Solução com Algoritmo Genético 316 Valor de Aptidão 314 312 310 308 306 304 302 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 Gerações Figura 33. Melhor solução com Algoritmo Genético O melhor resultado obtido com o Simulated Annealing utilizou uma temperatura inicial de 150, um valor de decremento da temperatura de 1,3 e a quantidade de iterações de 400. O tempo de processamento foi de 133 segundos e o valor da solução foi de 306,072381. A Figura 34 mostra os dados gerados durante a execução do teste. 57 Solução com Simulated Annealing Valor Função Objetivo 402 382 362 342 322 302 1 16 31 46 61 76 91 106 121 136 Figura 34. Melhor solução com Simulated Annealing Ao comparar os dois resultados gerados pelas metaheurísticas, verifica-se que o Algoritmo Genético gerou a melhor solução, porém o tempo processamento de sua melhor solução é quase três vezes o tempo de processamento do encaixe com Simulated Annealing. As Figuras Figura 35 e Figura 36 mostram respectivamente o resultado do encaixe utilizando Algoritmo Genético e Simulated Annealing. É importante perceber que foi utilizado o mesmo algoritmo de encaixe das figuras, sendo que as diferentes ordens geradas pelas metaheurísticas definiram o melhor resultado. Figura 35. Resultado do encaixe com Algoritmo Genético 58 Figura 36. Resultado do encaixe com Simulated Annealing 59 4 CONCLUSÕES Esta pesquisa apresentou um problema de encaixe de figuras irregulares e propôs uma solução para o mesmo. São utilizadas metaheurísticas para definir a ordem que as figuras serão encaixadas. A opção de utilizar metheurísticas neste tipo de problema, é o foco na otimização do processo de definição da ordem em que as figuras serão encaixadas. Este foco na utilização de metaheurísticas no ordenamento das figuras ocorreu após perceber esta utilização em trabalhos pesquisados. Foram pesquisados trabalhos que trataram o problema de corte e empacotamento em geral, pesquisaram-se livros, artigos e outras publicações sobre este tipo de problema. Esta pesquisa teve dois grandes problemas para solucionar: um algoritmo eficiente para ordenação das figuras e um processo rápido e eficiente de encaixe destas figuras. As metaheurísticas utilizadas, Algoritmos Genéticos e Simulated Annealing, provaram-se eficientes quanto ao tempo de processamento para a busca de uma solução. Em contra partida, o processo de encaixe das figuras foi o responsável pelo maior consumo de processamento durante o processo de encaixe. Durante os testes com o algoritmo de encaixe, verificou-se que quando há figuras com tamanhos bem variados e com grandes diferenças nas suas áreas, a busca por soluções boas se torna mais difícil e exigiria um processo mais lento no geral. A lentidão se daria pelo número de iterações que seria necessário para buscar melhores soluções e mesmo assim não seria possível prever se o elevado número de iterações resultaria em bons resultados. O processo de encaixe implementado não efetuou nenhuma classificação e agrupamento das figuras conforme suas áreas assim couberam as metaheurísticas encontrarem boas ordens de figuras. A separação das figuras em grupos de menores e maiores pode ser observado no trabalho de Dias (1991), cujo após efetuar a separação das figuras, efetua o encaixe das peças grandes e pequenas em conjunto. É feito o encaixe de um grupo de figuras grandes, que neste caso formam uma coluna na largura definida, e as figuras menores são encaixadas para preencher espaços que podem ter ficado durante o encaixe das figuras grandes. Os resultados gerados pelas metaheurísticas mostraram que o Algoritmo Genético é mais eficiência. Este bom resultado pode ser explicado pelas próprias características dos Algoritmos 60 Genéticos, onde uma solução boa pode ser melhorada aplicando os operadores genéticos. Em contra partida, o tempo de execução do processo completo foi quase três vezes maior ao processo com Simulated Annealing. O processo com Simulated Annealing é bem aleatório e enquanto a temperatura está elevada, a possibilidade de aceitação de soluções piores é maior, visto que a função de probabilidade de aceitação varia conforme a temperatura do momento. Quando a temperatura está chegando a níveis baixos, somente novas boas soluções começam a serem aceitas, fazendo que o resultado seja uma boa solução e o processo possa convergir. 61 5 TRABALHOS FUTUROS A pesquisa realizada neste trabalho mostrou que o problema de encaixe da indústria têxtil é uma área muito interessante de ser estudada e carente de materiais com propostas de solução. É um problema que possui diversas restrições que dificultam seu tratamento, mas podem trazer bons resultados quando aplicadas. É um bom problema a ser pesquisado e junto à uma pesquisa de melhoria no processo de encaixe, seja ela com a separação das figuras em grupos de tamanhos ou mesmo com procedimentos mais eficientes para a definição da posição das figuras durante o encaixe, dariam boas linhas de estudo. Envolvendo uma complexidade tanto na área de corte e empacotamento como na área da geometria analítica. Outra linha de melhoria que pode ser seguida é a aplicação de diferentes operadores genéticos para o encaixe que utilizou Algoritmo Genético. A pesquisa considerou apenas um tipo de tratamento de inconsistência nos cruzamentos e um tipo de mutação. Assim a aplicação de outras técnicas pode resultar em resultados melhores no encaixe das figuras. Este trabalho não é uma solução para um problema em específico, assim a aplicação de procedimentos de encaixe em problemas específicos pode trazer melhores resultados, visto que o processo de encaixe poderá se especificar para o problema a ser tratado. A separação das figuras em grupos de tamanhos que possuirão prioridades no momento de encaixe, novos tratamentos geométricos para a definição da posição da peça e de verificação de sobreposição são sugestões de melhorias para o processo de encaixe. 62 REFERÊNCIAS BIBLIOGRÁFICAS ARAUJO, R. S. Uma Abordagem para o problema de corte guilhotinado bi-dimensional para peças regulares com a utilização de p-medianas e pesquisa tabu. 2004. 72f. (Monografia) – Universidade do Vale do Rio do Sinos, São Leopoldo, 2004. BEZ, E. T. Procedimento de representação de soluções em otimização global: Aplicação em modelos de interação espacial. 2005. 224f. Tese (Doutorado em Engenharia de Produção) – Universidade Federal de Santa Catarina, Florianópolis, 2005. BOECHEL, T. Algoritmo de otimização: uma abordagem híbrida utilizando o algoritmo das formigas e genético. 2005. 70 f. Dissertação (Mestrado em Ciência da Computação) – PósGraduação em Ciência da Computação. Universidade Federal de Santa Catarina. Florianópolis, 2005 BURKE, E. K.; HELLIER, R. S. R.; KENDALL, G.; WHITWELL, G. A new bottom-left fill heuristic algorithm for the two-dimensional irregular packing problem. Operations Research. v. 54, 2006. P. 587-601. CONSTANTINO, A. A.; GOMES JUNIOR, A. M.. Um algoritmo genético aplicados ao problema de corte bidimensional. Acta Scientiarum, Maringá-PR, v. 24, n. 6, p. 1727-1731, 2002. CORRÊA, E. S. Algoritmos genéticos e busca tabu aplicados ao problema das p-medianas. 2000. 102 f. Dissertação (Mestrado em Métodos Numéricos) – Universidade Federal do Paraná, Curitiba, 2000. CUNHA, R. R. M. Um Algoritmo de minimização de Sobras em Corte Unidimensional. 1998. 91 f. Dissertação (Mestrado em Engenharia Mecânica) – Pós-Graduação em Engenharia Mecânica, Universidade Federal de Santa Catarina, Florianópolis, 1998. DIAS, A. Encaixe geral de figuras planas. 1991. 127 f. Tese (Doutorado em Engenharia Mecânica) – Universidade Católica do Rio de Janeiro, Rio de Janeiro, 1991. DIAS, A. General nesting of non-convex 2-D parts. In: Flexible Automation and Intelligent Manufacturing 2000, 2000, College Park, MD - USA. Proceedings of the Tenth International FAIM Conference. Wheaton, MD - USA: Econo Printing Graphics, Inc, 2000. v. 1. p. 382-391. DYCKHOFF, H. A typology of cutting and packing problems. European Journal of Operational Research. N. 44, 1990. P. 145-159. FRITSCH, A.; VORNBERGER, O. Cutting stock by iterated matching. Operations Research Proceedings. 1995. P. 92-97. GOLDBERG, D. E. Genetic algorithms in search, optimization, and machine learning. Reading, Mass: Addison-Wesley, c1989. 412 p. HAINES, E. Point in Polygon Strategies. In: HERCKBERT, P. S. Graphics Gems IV. San Diego, 1994. cap 1. p 24 – 46. 63 HIFI, M.; PASCHOS V. T.; ZISSIMOPOULOS V. A simulated annealing approach for the circular cutting problem. European Journal of Operational Research. N. 159, 2004. P. 430-448. HOBSBAWM, E.J. A Era das revoluções: Europa: 1789-1848. Trad. Port. Rio de Janeiro: Paz e Terra, 1982. LIANG, Ko-Hsin; YAO, Xin; NEWTOWN, C.; HOFFMAN D. A new evolutionary approach to cutting stock problems with and without contiguity. Computers & Operations Research, 2001. LIU, H. Algorithm for 2D irregular-shaped nesting problem based on the NFP algorithm and lowest-gravity-center principle. Shanghai, 2005. MENDES, A. S. Algoritmos meméticos aplicados aos problemas de seqüenciamento de máquinas. 1999. 91 f. Tese (Mestrado em Engenharia Elétrica) – Universidade Estadual de Campinas, Campinas, 1999. MONTEIRO, M. A. Introdução a organização de computadores. 3. ed. Rio de Janeiro: São Paulo: Livros Técnicos e Científicos, 1996. 397p. NASCIMENTO, D. B. Otimização da programação de ordens de corte em indústrias têxteis. 2006. 215 f. Tese (Doutorado em Engenharia de Produção) – Universidade Federal de Santa Catarina, Florianópolis, 2006. NORONHA, T. F.; ALOISE, D. J.; SILVA, M. M. Uma Abordagem sobre estratégias metaheurísticas. REIC. Revista eletrônica de iniciação científica. v. 1, 2000. Disponível em <http://www.sbc.org.br/index.php?language=1&subject=101&content=article&option=pdf&aid=97 >. Acesso em: 13 maio 2007. OLIVEIRA, M. H.; STEFFEN, V. Jr. Estudo de otimização e casos utilizando algoritmos genéticos e recozimento simulado. FAMAT em Revista. N 03, 2004. P. 101-108. PARADA, V.; SEPULVEDA, M.; ALVARENGA, A. G. Solución al problema de corte de piezas mediante el algoritmo simulated annealing. Computers & Operations Research. v. 25, n. 01, 1998. PISINGER, D. Algoritms for knapsack problems.1995.200f. Ph.D. prize of the Danish Academy of Natural Sciences – University of Copenhagen, Copenhagen 1995. ROSÁRIO, R. R. L. Proposta de solução para o problema das p-medianas na localização de unidades de Saúde 24 horas. 2002. Dissertação (Mestrado em Métodos Numéricos em Engenharia) – Universidade Federal do Paraná, 2002. VINADÉ, C. A. C. Problema de encaixe de figuras não convexas em contorno não convexo. 1997. 107 f. Dissertação (Mestrado em Engenharia Mecânica) – Pós-Graduação em Engenharia Mecânica, Universidade Federal de Santa Catarina, Florianópolis, 1997. 64 APÊNDICES 65 TIPOS DE FIGURAS UTILIZADAS NOS TESTES As figuras utilizadas nos testes variaram entre figuras convexas e não convexas. Apesar destas figuras terem um resultado visual que aparenta uma figura com curvas e retas, suas curvas foram discretizadas em segmentos de retas, estas figuras são todas formadas por segmentos de retas. A Figura 37 mostra o desenho sem repetição das figuras utilizadas nos ensaios numéricos. Figura 37. Figuras utilizadas no encaixe 66 EXEMPLOS DE ENCAIXES DE FIGURAS Exemplo 1 de encaixe de figuras A Figura 38 mostra um exemplo de encaixe para figuras pequenas e de tamanhos próximos. Figura 38. Exemplo 1 de encaixe de figuras 67 Exemplo 2 de encaixe de figuras A Figura 39 mostra um exemplo de encaixe para figuras com variação de peças grandes e pequenas. Figura 39. Exemplo 2 de encaixe de figuras 68