Problema de corte bidimensional

1.061 visualizações

Publicada em

Este artigo contextualiza brevemente os problemas de corte e empacotamento e apresenta alternativas de solução para o Problema de Corte Bidimensional, que consiste em cortar unidade maiores em unidades menores, visando a minimização da perda ou a maximização do aproveitamento de algum material. Apresenta também um estudo de caso que propõe a solução computacional do problema através de dois estágios. O primeiro estágio utiliza Algoritmos Genéticos e o segundo utiliza a heurística construtiva First Fit Decreasing Height.

Publicada em: Software
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.061
No SlideShare
0
A partir de incorporações
0
Número de incorporações
15
Ações
Compartilhamentos
0
Downloads
44
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Problema de corte bidimensional

  1. 1. 1 Problema de Corte Bidimensional Gilberto Gampert1 Resumo: Este artigo contextualiza brevemente os problemas de corte e empacotamento e apresenta alternativas de solução para o Problema de Corte Bidimensional, que consiste em cortar unidade maiores em unidades menores, visando a minimização da perda ou a maximização do aproveitamento de algum material. Apresenta também um estudo de caso que propõe a solução computacional do problema através de dois estágios. O primeiro estágio utiliza Algoritmos Genéticos e o segundo utiliza a heurística construtiva First Fit Decreasing Height. Palavras-chave: Problema de Corte Bidimensional. Algoritmos Genéticos. Complexidade de Algoritmos. Abstract: This article briefly contextualizes the cutting and packaging problems and presents alternatives for solution to the Problem of Two-dimensional Cutting, which consists in cutting a larger unit into smaller units, aimed at minimizing the loss or the maximization of the use of any material. Also presents a case study that proposes the computational solution of the problem through two stages. The first stage uses Genetic Algorithms and the second uses the constructive heuristics First Fit Decreasing Height. Keywords: Problem of Two-dimensional Cutting. Genetic Algorithms. Complexity of Algorithms. 1 Introdução Os Problemas de Corte e Empacotamento (Cut & Packing), de forma geral, consistem em cortar unidades maiores (objetos) em unidades menores (itens), ou empacotar unidades menores (itens) em unidades maiores (recipientes) otimizando uma determinada função [1]. Como exemplos de sua utilização, temos a minimização da perda de um material (quando diz respeito a corte) ou maximização da de aproveitamento da área de um contêiner (quando diz respeito a empacotamento). Estes problemas surgem em diversos ambientes produtivos, tais como: indústrias de papel, móveis, vidro, metalúrgica, plástica, têxtil, etc. Os problemas normalmente estão relacionados com o desperdício de materiais, o planejamento de operações como armazenagem, movimentação e transporte, otimização de espaços ociosos, etc. Desta forma, o planejamento é muito importante para minimizar os problemas, como o desperdício, que aumenta os custos produtivos. Conforme Marques e Arenales [2], tanto cortar objetos grandes para a obtenção de itens menores, quanto o empacotamento de itens pequenos dentro de recipientes, são problemas idênticos, considerando que um item cortado de uma posição pode ser visto como ocupando tal posição. Por apresentar a mesma lógica, estes tipos de problema podem ser abordados com as mesmas estratégias de solução. Nesta categoria de problemas estão contidos vários casos tradicionais de pesquisa operacional, tais como os problemas da mochila, bin packing, entre outros. O objetivo deste artigo é de contextualizar, de forma breve, uma parte dos problemas de corte e empacotamento, o Problema de Corte Bidimensional, apresentar a abordagem de alguns autores para sua solução e apresentar o estudo de caso de Candido [7], utilizando Algoritmos Genéticos. 1 Programa de Pós-Graduação em Computação Aplicada. Instituto de Ciências Exatas e Geociências, UPF, Campus 1 - BR 285 - Passo Fundo (RS) - Brasil {gampert@upf.br}
  2. 2. 2 Desta forma, o artigo está organizado como segue. A seção 2 apresenta a classificação dos problemas de corte e empacotamento. A seção 3 contextualiza os Problema de Corte Bidimensional e algumas abordagens de solução. A seção 4 apresenta o estudo de caso. Por fim, as considerações finais são apresentadas na seção 5. 2 Classificação dos Problemas de Corte Os problemas de corte recebem diversas denominações, tais como: corte e estoque (cutting stock), empacotamento (bin packing, strip packing, vector packing, knapsack packing) e carregamento (vehicle loading, pallet loading, container loading, car loading). Wascher, Haubner e Schumann [3] adaptaram a proposta de Dyckoff [4] e propuseram uma classificação onde os problemas de corte são divididos em categorias, de acordo com as seguintes características:  Dimensionalidade: define o número mínimo de dimensões para descrever o padrão de corte: o Unidimensional: corte em apenas uma dimensão, por exemplo, barras de ferro ou bobinas de papel (Figura 1). Figura 1: Exemplos de problemas unidimensionais: (a) estoque; (b) demanda; (c) corte para atender a demanda o Bidimensional: corte em largura e comprimento, por exemplo, em indústrias de móveis e vidro (Figura 2). Figura 2: Exemplos de problemas bidimensionais: (a) estoque; (b) demanda; (c) corte para atender a demanda o Tridimensional: considera-se uma terceira dimensão, por exemplo, em empresas de transporte que necessitam transportar caixas nos caminhões da forma mais econômica possível (Figura 3).
  3. 3. 3 Figura 3: Exemplos de problemas tridimensionais: (a) caminhão; (b) pacotes; (c) pacotes carregados  Tipo de atribuição: o Maximização da produção: os recipientes não são suficientes, objetiva alocar o máximo de itens possível. o Maximização do consumo: objetiva alocar os itens com menor custo possível.  Sortimento dos itens: os itens a serem cortados podem apresentar a mesma forma e tamanho e ser divididos em grupos de itens idênticos e em grandes quantidades; ou podem apresentar forma e tamanhos diferentes e em pequenas quantidades.  Sortimento dos objetos: o conjunto de objetos pode ser único; composto por vários objetos, que podem ser homogêneos ou heterogêneos, assim como os itens.  Forma dos itens: os itens ainda podem ser classificados em regulares (retângulos, círculos, cubos) ou não regulares. A combinação destes critérios caracteriza os tipos de problema que existem. Wascher et al. [3] dividiu os problemas em: problemas básicos, envolvendo o tipo de atribuição e o sortimento dos itens; problemas intermediários, envolvendo o sortimento dos objetos; e problemas refinados, envolvendo ainda a forma dos itens. 2.1 Problemas Básicos A combinação dos tipos de atribuição e do sortimento dos itens deriva os tipos de problemas básicos como visto em Wascher, Haubner e Schumann [3] (Figura 4). Figura 4: Tipos de problemas básicos No caso de maximização da produção, o objetivo é alocar a maior quantidade de itens nos objetos, conforme o seu sortimento. O problema consiste em selecionar itens que serão produzidos. O Problema de Empacotamento de Itens Idênticos (IIPP – Identical Item Packing Problem) pede que sejam cortados itens idênticos de um conjunto limitado de objetos. Como são itens idênticos, não existe a necessidade de seleção de itens, e sim o arranjo dos itens nos objetos. No Problema da Alocação (PP – Placement Problem) e no Problema da Mochila (KP – Knapsack Problem), os itens fraca e fortemente heterogêneos, devem ser alocados aos objetos, maximizando a quantidade de itens. O Problema de Dimensão Aberta (ODP – Open Dimensional Problem) é um problema de minimização
  4. 4. 4 da entrada, ou seja, todos os itens devem ser alocados em um único objeto, de uma ou mais dimensões. Ele consiste em determinar a extensão das dimensões do objeto. O Problema de Corte e Estoque (CSP – Cutting Stock Problem) e Problema do Bin Packing (BPP – Bin Packing Problem), os itens fraca e fortemente heterogêneos, devem ser alocados no melhor conjunto de objetos, atendendo ao objetivo do problema. 2.2 Problemas Intermediários Somando aos problemas básicos aos critérios de sortimento dos objetos, obtêm-se os tipos de problemas intermediários. As figuras Figura 5 e Figura 6 mostram os tipos de problemas intermediários [3]. Figura 5: Problemas intermediários: maximização da produção Figura 6: Problemas intermediários: minimização do consumo
  5. 5. 5 2.3 Problemas Refinados Os problemas refinados são obtidos ao acrescentar o critério de dimensionalidade e forma dos itens a problemas bi e tridimensionais, obtendo-se assim subcategorias dos problemas intermediários. A nomenclatura dos problemas refinados é dada da seguinte forma: dimensão dos objetos, seguida da forma dos objetos, e finalizada pelo nome do problema intermediário. Por exemplo, o problema tridimensional do Bin Packing de bins de Tamanho Único, com objetos de forma regular, é denominado 3-regular-SBSBPP. A seguir serão apresentadas algumas alternativas de solução para o Problema de Corte Bidimensional. 3 O Problema de Corte Bidimensional Em 1961 Gilmore e Gomory [5], trataram o problema de corte unidimensional como um problema de programação linear inteira, onde colunas correspondentes aos padrões de corte eram geradas através da resolução de um problema da mochila. Mais tarde, esta abordagem foi estendida aos problemas bi e tridimensionais [6]. Como foi necessária uma grande quantidade de colunas, os autores restringiram ao corte do tipo guilhotinado2 , o que representa uma restrição operacional nas indústrias e também uma significativa redução na quantidade de colunas geradas até que seja encontrada a solução ótima. Outro método, para solução do problema da mochila também foi desenvolvido, utilizando técnicas de programação dinâmica, com o objetivo de acelerar a geração dos padrões de corte. No caso de corte bidimensional (e tridimensional) esta técnica ainda apresenta uma grande complexidade, sendo que a maior dificuldade se resume na geração dos padrões [7]. Determinar um padrão de corte, é considerado um problema de otimização combinatória e não apresenta tempo de solução polinomial. Um algoritmo para um determinado problema é polinomial se a quantidade de passos requeridos para resolver qualquer instância do problema for limitada por um polinômio do tamanho da entrada [8]. Como se trata de um problema np-hard, e devido a sua complexidade de solução, várias pesquisas foram feitas na tentativa de solucionar o problema. Assim, existe uma vasta literatura sobre o assunto, contemplando os métodos exatos, heurísticos e meta-heurísticos. 3.1 Métodos Exatos Como a proposta de Gilmore e Gomory [6] impunha restrições, a geração de padrões de corte foi feita em duas etapas [7]:  Inicialmente, resolve-se o problema da mochila e agrupa-se os itens em faixas (strips), considerando seu comprimento;  A seguir, resolve-se outro problema da mochila para agrupar as faixas da primeira etapa, considerando a altura das faixas. Hertz [10] apresentou uma solução exata para geração de padrões de corte guilhotinados através de uma técnica de árvore recursiva, onde os ramos equivalem aos padrões de corte existentes para o problema. De forma a limitar as ramificações, o autor criou o conceito de pontos de discretização. É definido um ponto de discretização para a largura W a partir do valor i ≤ W obtido de uma combinação linear canônica inteira de w1, w2, ..., wn, onde todos os coeficientes são números inteiros não negativos. Da mesma forma, um ponto de discretização para a altura L é obtido por uma combinação linear canônica inteira de l1, l2, ..., ln. Lodi [9] apresentou um modelo matemático para o problema, abordando o corte em dois estágios. A modelagem apresentada pelo autor favorece a solução em duas fases: primeiramente a construção de faixas (strips) e depois a combinação destas para formar o padrão de corte. Cintra [8] também utilizou a técnica de programação dinâmica para a geração de padrões de corte. O autor abordou a geração dos padrões como um problema da mochila bidimensional. O algoritmo apresentado na Figura 7, denominado pelo autor de PCGV2PD, encontra o valor ótimo que pode ser obtido num objeto com dimensões (pi, qj), com 1 ≤ i ≤ r e 1 ≤ j ≤ s, onde r e s representam a quantidade de pontos de discretização para a largura e altura, e sendo que guilhotina(i,j) indica a direção do primeiro corte guilhotinado a ser realizado (vertical ou horizontal), e posição(i, j) é a posição em que deve ser feito o corte, no eixo x ou no eixo y, dependendo da 2 O corte guilhotinado prolonga-se por toda o tamanho do objeto, dividindo-o em dois novos objetos, que podem ou não ser novamente divididos por um corte guilhotinado [7].
  6. 6. 6 orientação do corte. Quando nenhum corte puder ser feito na placa, guilhotina(i,j) = nil, e item(i,j) indica qual item deve ser alocado nela. Ao final do procedimento, a solução ótima é dada por V(r,s). Figura 7: PCGV2PD 3.2 Métodos Heurísticos A maior parte dos algoritmos descritos na literatura são do tipo gulosos, e podem ser classificados em duas famílias [9]:  Algoritmos de um estágio: empacotam diretamente os itens em bins finitos;  Algoritmos de dois estágios: começam empacotando os itens em uma única faixa (strip), ou seja, um bin tem altura W e largura infinita. No segundo estágio, a solução de separação é usada para empacotar em bins finitos. Além disso, a maior parte das abordagens são algoritmos de prateleira (shelf algorithms), isto é, o empacotamento bin/strip é obtido colocando os itens, da esquerda para a direita, em linhas que formam os níveis (prateleiras). A primeira prateleira é a parte inferior do bin/strip, e prateleiras posteriores são produzidas pela linha horizontal que coincide com a parte superior do item mais alto da prateleira inferior. Três heurísticas clássicas para a embalagem de prateleira foram derivadas de algoritmos para o caso unidimensional. Em cada caso, os itens são inicialmente classificados pela altura e empacotados na sequência correspondente. Seja j o item atual, e s a última prateleira criada:  Heurística Next-Fit Decreasing Height (NFDH): o item j é empacotado alinhado à esquerda na prateleira s, se ele se encaixa. Caso contrário, uma nova prateleira (s = s + 1) é criada, e j é é empacotado alinhado à esquerda nela;
  7. 7. 7  Heurística First-Fit Decreasing Height (FFDH): o item j é empacotado alinhado à esquerda na primeira prateleira onde ele se encaixa, se houver alguma. Se nenhuma prateleira puder acomodar j, uma nova prateleira é inicializada como em NFDH;  Heurística Best-Fit Decreasing Height (BFDH): o item j é empacotado alinhado à esquerda na prateleira, entre aquelas onde ele se encaixa, para as quais o espaço horizontal não utilizado é mínimo. Se nenhuma prateleira puder acomodar j, uma nova prateleira é inicializada como em NFDH. As heurísticas acima são ilustradas na Figura 8, mostrando o resultado final de cada uma delas. É possível observar a diferença de funcionamento e eficácia de cada abordagem. Figura 8: Técnicas de encaixa para o corte em dois estágios 3.3 Métodos Meta-heurísticos De acordo com Candido [7], uma meta-heurística é um método aproximativo, ou heurístico, para solucionar de forma genérica problemas de otimização. Na maioria dos casos, as meta-heurísticas apresentam boas soluções, com tempo de solução reduzido se comparado aos métodos exatos, e por isso têm sido aplicadas a problemas de otimização combinatória np-completos, onde incluem-se os problemas de corte e empacotamento. Hopper e Turton [11], reuniram estudos sobre a utilização de meta-heurísticas na solução do problema de corte bidimensional. O autor destaca, os Algoritmos Genéticos, Busca Tabu, Simulated Annealing e GRASP, tanto para problemas regulares quanto irregulares. No geral, as meta-heurísticas são combinadas com uma técnica de encaixe para obter padrões de corte possíveis e assim a solução para o problema (método para solução em dois estágios). Smith [12] apresentou uma das primeiras aplicações de meta-heurísticas para a geração de padrões de corte bidimensionais, o autor implementou Algoritmos Genéticos na solução de problemas de corte com orientação fixa dos itens. Para o encaixe das peças, duas diferentes heurísticas foram usadas. Já Rahmani e Ono [13] trataram o problema de corte bidimensional de forma evolucionária, utilizando Algoritmos Genéticos e uma codificação em árvore binária. Lodi [9] apresentou o algoritmo de Busca Tabu para o problema do Bin Packing Bidimensional com orientação fixa dos itens e restrição de layout guilhotinado. No método proposto, uma solução é gerada por um método heurístico simples, e depois melhorada pela Busca Tabu. Na próxima seção será apresentado um estudo de caso utilizando uma estratégia de solução em dois estágios.
  8. 8. 8 4 Estudo de Caso No estudo de caso proposto por Candido [7], o problema a ser tratado é um Problema da Mochila Única Bidimensional com itens regulares (2-regular-SKP), e consiste em determinar a melhor maneira de se cortar um objeto, de dimensões L x W (comprimento x largura), de forma a obter um conjunto {R1, R2, ..., Rn} de n itens menores, com dimensões li x wi e demanda di, com i = 1, ..., n, e otimizar uma função de interesse, por exemplo, minimizar a perda de material, ou seja, a área não utilizada. Como o 2-regular-SKP se enquadra, nos problemas cuja atribuição corresponde à maximização da produção [3], o objeto não é suficiente para satisfazer toda a demanda. Busca-se, desta forma, utilizar ao máximo o objeto. Entretanto, sobram alguns itens que não são cortados. Sendo que a qualidade de um padrão de corte é inversamente proporcional à área não utilizada da placa. Quanto menor for a perda, melhor será o padrão de corte aplicado. Existem algumas restrições operacionais na criação de um padrão de corte, e, uma delas se relaciona ao corte guilhotinado, visto que as máquinas cortam de um lado ao outro do objeto. Neste estudo de caso, os padrões de corte limitam-se a padrões que atendam a esta exigência [7]. Sendo aij a quantidade do item i a ser cortada no padrão i, então para encontrar um possível padrão de corte j, tem-se o seguinte Problema da Mochila Bidimensional: 𝑀𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 𝐿𝑊 − ∑ 𝑎𝑖𝑗 𝑙𝑖 𝑤𝑖 𝑛 𝑖=1 (1) A solução de um problema de corte e empacotamento deve contemplar, a seleção de itens e objetos, o agrupamento dos itens e a subsequente designação dos grupos de itens para os objetos e, por fim, o arranjo do grupo de itens nos objetos, respeitando-se as restrições geométricas já mencionadas [7]. 4.1 Estratégia de Resolução Para obter o conjunto de itens que maximize o aproveitamento do objeto, o problema foi resolvido através de uma estratégia em dois estágios. No primeiro estágio, utilizou-se um algoritmo genético para agrupar os itens a formar um padrão de corte. No segundo estágio, aplicou-se uma técnica de encaixe aos itens agrupados na etapa anterior, para determinar qual dos grupos de itens constitui um padrão de corte e seu arranjo geométrico. Considerou-se a geração de padrões de corte não-estagiados e em dois estágios e a permissão de rotação dos itens. Assim, ao todo foram avaliados quatro tipos de padrão de corte, sendo que os cortes não-estagiados e em dois estágios receberam técnicas de encaixe distintas [7]. 4.1.1 Etapa 1: Algoritmo Genético Conforme Linden [14], algoritmos genéticos são considerados uma meta-heurística evolutiva inspirada na Biologia. Baseados na teoria de evolução de Darwin, defendem a superioridade dos indivíduos mais aptos. Simulam os processos naturais de sobrevivência e reprodução, tornando-se uma conhecida ferramenta de inteligência computacional. O algoritmo mantém uma população de indivíduos, em que cada um destes codifica uma solução para o problema. A qualidade de cada um dos indivíduos é mensurada através de uma função de avaliação, também denominada fitness. Com base nesta avaliação, são aplicados aos indivíduos operadores genéticos. Este processo é feito de modo a simular a sobrevivência e reprodução do mais apto. A seguir são descritos alguns termos utilizados neste contexto:  Cromossomo: é a representação de uma solução, que possui todas as suas características genéticas. Normalmente, os algoritmos representam o cromossomo como um vetor.  Gene: representa uma característica genética do cromossomo. Cada cromossomo é composto por um conjunto de genes. Cada posição do vetor representa um gene.  Alelo: são as possíveis atribuições que um gene pode assumir.
  9. 9. 9  Fitness: ou função de avaliação, mensura a qualidade de cada solução da população. A partir dele, é realizada seleção para aplicação dos operadores genéticos, garantindo sobrevivência dos melhores indivíduos. De acordo com Linden [14] o funcionamento básico de um Algoritmo Genético pode ser representado como na Figura 9. Figura 9: Funcionamento de um Algoritmo Genético O valor da função de avaliação, ou fitness de um indivíduo, é determinante para a escolha dos indivíduos no módulo de seleção dos pais, que sofrerão a atuação dos operadores genéticos. As formas mais comuns de seleção são o método da roleta, torneio e ranking, descritos a seguir:  Método da Roleta: emprega a seleção proporcional à qualidade do indivíduo, isto é, à sua função de avaliação;  Método do Torneio: selecionam-se aleatoriamente indivíduos da população, formando uma subpopulação temporária. Então, escolhe-se o indivíduo que apresentar melhor fitness;  Método do Ranking: cada indivíduo recebe uma probabilidade de ser escolhido, porém de acordo com sua posição numa lista ordenada de acordo com o fitness. Aplicam-se operadores genéticos nos indivíduos selecionados, para efetuar modificações na população e, obter a convergência do algoritmo. Os operadores genéticos mais utilizados são os operadores de reprodução, cruzamento e mutação:  Reprodução: o indivíduo selecionado na população é reproduzido, ou seja, copiado para a próxima geração;  Cruzamento (crossover): os pais selecionados trocam informações genéticas para a composição dos novos indivíduos, chamados de filhos;  Mutação: altera o valor de um gene do cromossomo. Os Algoritmos Genéticos são um método iterativo e desta forma necessitam de um critério de parada para a finalização do processo. Os critérios mais utilizados são: número máximo de iterações e o incremento na qualidade da solução. Se as novas soluções encontradas a cada geração não apresentam melhora significativa, finaliza-se o algoritmo e retornando a melhor solução encontrada. No método proposto por Candido [7], o objetivo da aplicação do algoritmo genético foi selecionar itens e agrupá-los, a fim de que os mesmos constituam um padrão de corte depois de aplicada a heurística de encaixe designada para cada tratamento do problema.
  10. 10. 10 A definição da estrutura e codificação dos cromossomos e o método de avaliação é um importante fator na implementação de um Algoritmo Genético. O autor [7] representa o padrão de corte j por um vetor Aj = (a1j, a2j, ..., anj), onde cada componente aij representa a quantidade do item i a ser cortada no padrão j. A função de avaliação é dada pela área não ocupada do objeto. Assim, para cada indivíduo j o fitness é calculado da seguinte forma: 𝑓𝑗 = 𝐿𝑊 − ∑ 𝑎𝑖𝑗 𝑙𝑖 𝑤𝑖 𝑛 𝑖=1 (2) A aptidão de cada indivíduo é obtida considerando-se apenas a área ocupada, e não avalia se existe a possibilidade de arranjo dos itens sobre o objeto, o que será tratado pelas heurísticas de encaixe. Se a soma das áreas dos itens exceder a área do objeto, o padrão de corte não chega a ser incluído na população. O Algoritmo Genético utilizado foi o Steady State, criando-se dois novos indivíduos a cada iteração, que são gerados pelo operador de cruzamento. Os parâmetros do Algoritmo Genético utilizados estão resumidos na Tab. 1. Tabela 1: Parâmetros do Algoritmo Genético Tamanho da População Inicial 200 Taxa de ocorrência dos operadores genético Cruzamento 0,8 Mutação 0,2 Critérios de parada Número máximo de iterações 100 Número máximo de iterações sem melhoria 50 A Figura 10 apresenta o Algoritmo Genético utilizado pelo autor [7]. Figura 10: Algoritmo Genético para Geração de Padrões de Corte
  11. 11. 11 4.1.2 Etapa 2: Técnicas de Encaixe O Algoritmo Genético por si só não é suficiente para garantir a factibilidade de um padrão de corte. A informação mais importante, que é o arranjo geométrico dos itens, não é disponibilizada e não pode ser obtida a partir do Algoritmo Genético, pois o cromossomo fornece apenas a quantidade de cada tipo de item presente no padrão [7]. O autor utilizou duas técnicas de encaixe diferentes: uma para o corte não-estagiado e outra para o corte em dois estágios, porém neste trabalho abordaremos apenas o corte em dois estágios. O Algoritmo Genético, devido à própria estratégia Steady State, mantinha indivíduos sempre ordenados numa lista crescente de acordo com seu fitness. São submetidos nesta mesma ordem ao processo de encaixe, até que seja encontrado um padrão de corte geometricamente aceito. No corte em dois estágios, utilizou-se a heurística construtiva First Fit Decreasing Height, que cria faixas inserindo os itens na primeira faixa em que eles possam ser alocados. A Figura 11 mostra o algoritmo FFDH utilizado como técnica de encaixe para o corte em dois estágios. Figura 11: Algoritmo FFDH (First Fit Decreasing Height) 4.2 Resultados Neste trabalho, dentre as 4 abordagens elaboradas pelo autor do estudo de caso [7], selecionamos apenas a abordagem de geração de padrões de corte em dois estágios com orientação fixa de itens. O método foi testado sobre um conjunto de 12 instâncias clássicas, extraídas do trabalho de Cintra [8], pois para estas se conhece a solução ótima. O conjunto de instâncias é composto por problemas com objetos com dimensões 250x250, 500x500 e 1000x1000 unidades, e 10, 20, 30 e 50 tipos de itens, conforme mostra a Tab. 2. Tabela 2: Descrição das Instâncias Instância L x W n gcut1 (250,250) 10 gcut2 (250,250) 20 gcut3 (250,250) 30 gcut4 (250,250) 50 gcut5 (500,500) 10 gcut6 (500,500) 20 gcut7 (500,500) 30 gcut8 (500,500) 50 gcut9 (1000,1000) 10 gcut10 (1000,1000) 20 gcut11 (1000,1000) 30 gcut12 (1000,1000) 50 Por tratar-se de um método que envolve uma meta-heurística, para cada instância, o algoritmo foi executado por 10 vezes, e a melhor solução encontrada foi considerada [7].
  12. 12. 12 Os resultados para a abordagem selecionada são trazidos na Tab. 3. Tabela 3: Resultados obtidos Conforme o autor [7], a primeira coluna é o nome da instância, e as duas colunas seguintes são as dimensões do objeto e a quantidade de itens. Nas duas próximas colunas, são apresentados os valores obtidos por Cintra [8], a solução ótima, para a ocupação absoluta (A) e relativa (R) do objeto. Por fim, as três últimas colunas mostram os resultados obtidos pelo autor, mostrando as ocupações absolutas e relativas da chapa, e o tempo computacional T, medido em segundos. Pode-se observar que as instâncias gcut5 e gcut9 alcançaram a solução ótima, igualando seu resultado aos valores propostos por Cintra [8]. 5 Considerações Finais Este trabalho apresentou um estudo de caso, contendo uma proposta para a geração de padrões de corte bidimensionais guilhotinados. O estudo de caso propôs um método de resolução do problema em dois estágios. No primeiro estágio, gerando agrupamentos através de um Algoritmo Genético. No segundo estágio, foi utilizada a heurística construtiva First Fit Decreasing Height, como técnica de encaixe, a fim de encontrar qual dos agrupamentos constitui o melhor padrão de corte. Os testes computacionais realizados forneceram resultados considerados a solução ótima, conforme a literatura de referência existente, em tempo computacional muito baixo. O Algoritmo Genético mostrou-se capaz de gerar bons padrões de corte, visto que os agrupamentos reduzem o tempo de processamento necessário pela técnica de encaixe. Como trabalho futuro, poderia ser comparado o uso de Algoritmos Genéticos com outras técnicas, como por exemplo os Métodos Exatos. Referências [1] LIBERALINO, C. H. P. et al. O Problema Bin Packing Tridimensional em Contêineres: Usando Interação com o Usuário. Anais do XXXI Congresso Nacional de Matemática Aplicada e Computacional. p. 750-755, 2008. [2] MARQUES, F. P.; ARENALES, M. N. O problema da mochila compartimentada e aplicações. Pesquisa Operacional, v. 22, n. 3, p. 285-304, jul./dez. 2002. [3] WASCHER, G.; HAUBNER, H.; SCHUMANN, H. An Improved Typology of Cutting and Packing Problems. European Journal of Operational Research, v. 183, p. 1109-1130, 2007. [4] DYCKHOFF, H., 1990. A Typology of Cutting and Packing Problems. European Journal of Operational Research 44, 145–159. [5] GILMORE, P.; GOMORY, R. A Linear Programming Approach to The Cutting Stock Problem. Operations Research, v. 9, p. 849-859, 1961. [6] GILMORE, P.; GOMORY, R. Multistage Cutting Stock Problems of Two and More Dimensions. Operations Research, v. 14, p. 94-120, 1964.
  13. 13. 13 [7] CANDIDO, L. C. X. Uma Proposta para a Geração de Padrões de Corte Bidimensionais Utilizando Algoritmos Genéticos. Universidade Federal do Paraná, Curitiba, 2011. [8] CINTRA, G. F. Algoritmos para Problemas de Corte de Guilhotina Bidimensional. Universidade de São Paulo, São Paulo, 2004. [9] LODI, A. Algorithms for Two-Dimensional Bin Packing and Assignment Problems. Università Degli Studi di Bologna, Bologna, Italy, 2000. [10] HERZ, J. C. Recursive Computational Procedure for Two-Dimensional Stock Cutting. IBM Journal of Research and Development, v. 16, p. 462-469, 1972. [11] HOPPER, E.; TURTON, B. C. H. A Review of the Application of Meta-heuristic Algorithms to 2D Strip Packing Problems. Artificial Intelligence Review, v. 16, p. 257-300, 2001. [12] SMITH, D. Bin Packing With Adaptative Search. International Conference on Genetic Algorithms and Their Applications, 1985. p. 202-206. [13] RAHMANI, A. T.; ONO, N. An Evolutionary Approach to Two-dimensional Guillotine Cutting Problem. International Conference on Evolutionary Computation, 1995, p. 148-151. [14] LINDEN, R. Algoritmos Genéticos: Uma importante ferramenta da Inteligência Computacional. 2. ed. Rio de Janeiro: Brasport, 2008.

×