problema de corte bidimensional

13
1 Problema de Corte Bidimensional Gilberto Gampert 1 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 {[email protected]}

Upload: gilberto-gampert

Post on 06-Aug-2015

188 views

Category:

Software


2 download

TRANSCRIPT

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

{[email protected]}

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

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

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

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

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

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

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

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

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

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

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

[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.