SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
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
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.

Weitere ähnliche Inhalte

Was ist angesagt?

Explaining the idea behind automatic relevance determination and bayesian int...
Explaining the idea behind automatic relevance determination and bayesian int...Explaining the idea behind automatic relevance determination and bayesian int...
Explaining the idea behind automatic relevance determination and bayesian int...Florian Wilhelm
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門Miyoshi Yuya
 
Aula 1 introdução e estatística descritiva
Aula 1   introdução e  estatística descritivaAula 1   introdução e  estatística descritiva
Aula 1 introdução e estatística descritivaRodrigo Rodrigues
 
Aula 01 09-15-graficos_estatisticos
Aula 01 09-15-graficos_estatisticosAula 01 09-15-graficos_estatisticos
Aula 01 09-15-graficos_estatisticosThamiris Frade
 
Rでノンパラメトリック法 1
Rでノンパラメトリック法 1Rでノンパラメトリック法 1
Rでノンパラメトリック法 1itoyan110
 
距離と分類の話
距離と分類の話距離と分類の話
距離と分類の話考司 小杉
 
Apostila de-estatistica-experimental-3
Apostila de-estatistica-experimental-3Apostila de-estatistica-experimental-3
Apostila de-estatistica-experimental-3edjane_gf
 
Provas de Estatística (com resoluções) - Prof MSc Uanderson Rebula
Provas de Estatística (com resoluções) - Prof MSc Uanderson RebulaProvas de Estatística (com resoluções) - Prof MSc Uanderson Rebula
Provas de Estatística (com resoluções) - Prof MSc Uanderson RebulaProf MSc Uanderson Rebula
 
Previsão de demanda
Previsão de demandaPrevisão de demanda
Previsão de demandaclilson
 
PROMISの取り組み(IRTを使った項目バンク作成)
PROMISの取り組み(IRTを使った項目バンク作成)PROMISの取り組み(IRTを使った項目バンク作成)
PROMISの取り組み(IRTを使った項目バンク作成)Senshu University
 
Serie aula03 estatistica
Serie aula03 estatisticaSerie aula03 estatistica
Serie aula03 estatisticaPsicologia_2015
 
Estatística Para Engenharia - Correlação e Regressão Linear - Exercícios.
Estatística Para Engenharia - Correlação e Regressão Linear - Exercícios.Estatística Para Engenharia - Correlação e Regressão Linear - Exercícios.
Estatística Para Engenharia - Correlação e Regressão Linear - Exercícios.Jean Paulo Mendes Alves
 
Estatística aplicada à gestão de recursos humanos
Estatística aplicada  à gestão de recursos humanosEstatística aplicada  à gestão de recursos humanos
Estatística aplicada à gestão de recursos humanosaurelio2machado
 
査読コメントに回答する時の、3つの黄金律
査読コメントに回答する時の、3つの黄金律査読コメントに回答する時の、3つの黄金律
査読コメントに回答する時の、3つの黄金律英文校正エディテージ
 
Gestao De Estoques
Gestao De EstoquesGestao De Estoques
Gestao De Estoquesogerente
 

Was ist angesagt? (20)

Explaining the idea behind automatic relevance determination and bayesian int...
Explaining the idea behind automatic relevance determination and bayesian int...Explaining the idea behind automatic relevance determination and bayesian int...
Explaining the idea behind automatic relevance determination and bayesian int...
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
 
Estatistica descritiva
Estatistica descritiva Estatistica descritiva
Estatistica descritiva
 
Amostragem
AmostragemAmostragem
Amostragem
 
Aula 1 introdução e estatística descritiva
Aula 1   introdução e  estatística descritivaAula 1   introdução e  estatística descritiva
Aula 1 introdução e estatística descritiva
 
Aula 01 09-15-graficos_estatisticos
Aula 01 09-15-graficos_estatisticosAula 01 09-15-graficos_estatisticos
Aula 01 09-15-graficos_estatisticos
 
Rでノンパラメトリック法 1
Rでノンパラメトリック法 1Rでノンパラメトリック法 1
Rでノンパラメトリック法 1
 
距離と分類の話
距離と分類の話距離と分類の話
距離と分類の話
 
Bab xx peluang
Bab xx peluangBab xx peluang
Bab xx peluang
 
Apostila de-estatistica-experimental-3
Apostila de-estatistica-experimental-3Apostila de-estatistica-experimental-3
Apostila de-estatistica-experimental-3
 
Provas de Estatística (com resoluções) - Prof MSc Uanderson Rebula
Provas de Estatística (com resoluções) - Prof MSc Uanderson RebulaProvas de Estatística (com resoluções) - Prof MSc Uanderson Rebula
Provas de Estatística (com resoluções) - Prof MSc Uanderson Rebula
 
Previsão de demanda
Previsão de demandaPrevisão de demanda
Previsão de demanda
 
PROMISの取り組み(IRTを使った項目バンク作成)
PROMISの取り組み(IRTを使った項目バンク作成)PROMISの取り組み(IRTを使った項目バンク作成)
PROMISの取り組み(IRTを使った項目バンク作成)
 
Estatistica Basica para Saude Aula 1
Estatistica Basica para Saude Aula 1Estatistica Basica para Saude Aula 1
Estatistica Basica para Saude Aula 1
 
Serie aula03 estatistica
Serie aula03 estatisticaSerie aula03 estatistica
Serie aula03 estatistica
 
Estatística Para Engenharia - Correlação e Regressão Linear - Exercícios.
Estatística Para Engenharia - Correlação e Regressão Linear - Exercícios.Estatística Para Engenharia - Correlação e Regressão Linear - Exercícios.
Estatística Para Engenharia - Correlação e Regressão Linear - Exercícios.
 
Estatística aplicada à gestão de recursos humanos
Estatística aplicada  à gestão de recursos humanosEstatística aplicada  à gestão de recursos humanos
Estatística aplicada à gestão de recursos humanos
 
査読コメントに回答する時の、3つの黄金律
査読コメントに回答する時の、3つの黄金律査読コメントに回答する時の、3つの黄金律
査読コメントに回答する時の、3つの黄金律
 
Aula 5
Aula 5Aula 5
Aula 5
 
Gestao De Estoques
Gestao De EstoquesGestao De Estoques
Gestao De Estoques
 

Andere mochten auch

Mecánica del corte 2º Parte- Lic. Edgardo Faletti- 2014
Mecánica del corte 2º Parte- Lic. Edgardo Faletti- 2014Mecánica del corte 2º Parte- Lic. Edgardo Faletti- 2014
Mecánica del corte 2º Parte- Lic. Edgardo Faletti- 2014INSPT-UTN
 
Verificação, validação e teste de software ágil
Verificação, validação e teste de software ágilVerificação, validação e teste de software ágil
Verificação, validação e teste de software ágilGilberto Gampert
 
Gameficação para negócios
Gameficação para negóciosGameficação para negócios
Gameficação para negóciosMarcel Cohn
 
CIDADES INTELIGENTES – PRINCÍPIOS, TECNOLOGIAS E APLICAÇÕES
CIDADES INTELIGENTES – PRINCÍPIOS, TECNOLOGIAS E APLICAÇÕESCIDADES INTELIGENTES – PRINCÍPIOS, TECNOLOGIAS E APLICAÇÕES
CIDADES INTELIGENTES – PRINCÍPIOS, TECNOLOGIAS E APLICAÇÕESGilberto Gampert
 
Por onde vamos? O engajamento, a colaboração e o crowdsourcing no aplicativo ...
Por onde vamos? O engajamento, a colaboração e o crowdsourcing no aplicativo ...Por onde vamos? O engajamento, a colaboração e o crowdsourcing no aplicativo ...
Por onde vamos? O engajamento, a colaboração e o crowdsourcing no aplicativo ...Heitor Albernaz
 
Aula 01 introdução a anatomia - posição, planos, cortes e divisões do corpo...
Aula 01   introdução a anatomia - posição, planos, cortes e divisões do corpo...Aula 01   introdução a anatomia - posição, planos, cortes e divisões do corpo...
Aula 01 introdução a anatomia - posição, planos, cortes e divisões do corpo...Hamilton Nobrega
 
Aula01:INTRODUÇÃO AO ESTUDO DE ANATOMIA
Aula01:INTRODUÇÃO AO ESTUDO DE ANATOMIAAula01:INTRODUÇÃO AO ESTUDO DE ANATOMIA
Aula01:INTRODUÇÃO AO ESTUDO DE ANATOMIALeonardo Delgado
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017Drift
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheLeslie Samuel
 

Andere mochten auch (13)

Mecánica del corte 2º Parte- Lic. Edgardo Faletti- 2014
Mecánica del corte 2º Parte- Lic. Edgardo Faletti- 2014Mecánica del corte 2º Parte- Lic. Edgardo Faletti- 2014
Mecánica del corte 2º Parte- Lic. Edgardo Faletti- 2014
 
Crowdsourcing
CrowdsourcingCrowdsourcing
Crowdsourcing
 
Verificação, validação e teste de software ágil
Verificação, validação e teste de software ágilVerificação, validação e teste de software ágil
Verificação, validação e teste de software ágil
 
Estiagem
EstiagemEstiagem
Estiagem
 
Gameficação para negócios
Gameficação para negóciosGameficação para negócios
Gameficação para negócios
 
CIDADES INTELIGENTES – PRINCÍPIOS, TECNOLOGIAS E APLICAÇÕES
CIDADES INTELIGENTES – PRINCÍPIOS, TECNOLOGIAS E APLICAÇÕESCIDADES INTELIGENTES – PRINCÍPIOS, TECNOLOGIAS E APLICAÇÕES
CIDADES INTELIGENTES – PRINCÍPIOS, TECNOLOGIAS E APLICAÇÕES
 
Internet das Coisas
Internet das CoisasInternet das Coisas
Internet das Coisas
 
Por onde vamos? O engajamento, a colaboração e o crowdsourcing no aplicativo ...
Por onde vamos? O engajamento, a colaboração e o crowdsourcing no aplicativo ...Por onde vamos? O engajamento, a colaboração e o crowdsourcing no aplicativo ...
Por onde vamos? O engajamento, a colaboração e o crowdsourcing no aplicativo ...
 
Apostila de-artes-visuais
Apostila de-artes-visuais Apostila de-artes-visuais
Apostila de-artes-visuais
 
Aula 01 introdução a anatomia - posição, planos, cortes e divisões do corpo...
Aula 01   introdução a anatomia - posição, planos, cortes e divisões do corpo...Aula 01   introdução a anatomia - posição, planos, cortes e divisões do corpo...
Aula 01 introdução a anatomia - posição, planos, cortes e divisões do corpo...
 
Aula01:INTRODUÇÃO AO ESTUDO DE ANATOMIA
Aula01:INTRODUÇÃO AO ESTUDO DE ANATOMIAAula01:INTRODUÇÃO AO ESTUDO DE ANATOMIA
Aula01:INTRODUÇÃO AO ESTUDO DE ANATOMIA
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Problema de corte bidimensional

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