Post on 25-Nov-2018
V SMAT
Simpósio de Matemática
Presidente Prudente - SP
10 a 13 de agosto de 2010
Minicurso Introdução a Problemas de Corte de Estoque
Adriana Cristina Cherri
Departamento de Matemática - Faculdade de Ciências
Universidade Estadual Paulista - Campus de Bauru
adriana@fc.unesp.br
Andréa Carla Gonçalves Vianna Departamento de Computação - Faculdade de Ciências
Universidade Estadual Paulista - Campus de Bauru
vianna@fc.unesp.br
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
2
Sumário
Prefácio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1. Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1. Classificação dos Problemas de Corte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
2. Problemas Básicos de Corte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1. O Problema da Mochila . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2. Problemas de Várias Mochilas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3. O Problema de Corte de Estoque Unidimensional: Modelos Matemáticos . . . . . . . . . . . . . . 13
3.1. Definição do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2. Apenas um Tipo de Barra em Estoque: Quantidade Ilimitada . . . . . . . . . . . . . . . . . . . . 16
3.2.1. Modelo Básico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.2. Alterações no Modelo Básico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3. Diversos Tipos de Barras em Estoque: Quantidade Ilimitada . . . . . . . . . . . . . . . . . . . . . 19
3.4. Diversos Tipos de Barras em Estoque: Quantidade Limitada . . . . . . . . . . . . . . . . . . . . . 20
4. Conceitos Básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.1. Problema de Otimização Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.2. Transformações de Problemas na Forma Padrão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.3. Resolução Gráfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5. Método Simplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.1. Soluções Básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2. Método Simplex . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.3. Algoritmo Primal-Simplex . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6. O Problema de Corte de Estoque Unidimensional: Métodos . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.1. O Método Simplex com Geração de Colunas: Um tipo de Barra . . . . . . . . . . . . . . . . . . 33
6.2. O Método Simplex com Geração de Colunas: Diversos Tipos de Barras . . . . . . . . . . . 34
6.3. Heurísticas de Arredondamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.4. Abordagens de Padrões Básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.5. Abordagens para o Problema Residual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.6. Abordagens Compostas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
7. O Problema de Corte de Estoque Bidimensional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
7.1. Geração de Padrões de Corte Bidimensionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
8. Problemas Tridimensionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
9. Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
3
Prefácio
O objeto de estudo neste texto são os Problemas de Corte de Estoque, os quais são
essenciais para o planejamento da produção em diversas indústrias, tais como indústrias de papel,
de móveis, de vidro, metalúrgica, plástica, têxtil, etc. Nestas indústrias, a redução dos custos de
produção é frequentemente obtida pela seguinte estratégia: as matérias primas utilizadas são
inicialmente produzidas em tamanhos grandes padronizados, possivelmente estocadas e, somente
mais tarde, reduzidas a tamanhos menores para então serem usadas pela indústria, ou para atender
demandas externas de tamanhos variados, muitas vezes não padronizados.
Este procedimento desacopla, temporariamente, as produções de matérias primas e dos
produtos finais, evitando a necessidade de constantes preparações de máquinas, que seriam
necessárias caso as máquinas fossem preparadas para os tamanhos dos produtos requisitados. Esta
maneira de produção introduz, entretanto, uma nova dificuldade, pois um estágio adicional de
produção é necessário - a operação de corte, que produz inevitáveis perdas. Surge então a
necessidade de se planejar os cortes para minimizar os efeitos negativos gerados pelo desperdício
sobre os custos de produção.
O reverso dos problemas de corte são os problemas de empacotamento, os quais são
igualmente essenciais para o planejamento de operações logísticas da indústria, como a
armazenagem, movimentação ou transporte de itens produzidos.
Neste caso, os produtos deverão ser arranjados em grandes espaços de tamanhos
padronizados previamente projetados, como por exemplo, caixas de papelão ou madeira,
contêineres, paletes, etc. Entretanto, este procedimento introduz um novo estágio - a operação de
empacotamento, que nem sempre consegue preencher todos os espaços disponíveis (nas caixas,
contêineres, etc.), gerando espaços ociosos, os quais serão, consequentemente, “armazenados” e/ou
“transportados” juntamente com os itens produzidos. Surge então a necessidade de planejar o
empacotamento de modo a minimizar os espaços ociosos.
Note que o problema de corte pode ser pensado como um problema de empacotamento (e
vice-versa), pois a parte do material que será cortado para produção de um item, pode ser
identificada como o espaço ocupado por este. Por esta razão, tais problemas são referidos como
Problemas de Corte e Empacotamento e são paralelamente estudados. Obviamente, os processos de
corte e empacotamento podem introduzir restrições diferenciadas, tais como cortes em guilhotina,
de um lado, carregamento estável, de outro.
A importância econômica aliada à dificuldade de resolução de problemas de corte e
empacotamento têm motivado grande empenho da comunidade acadêmica na busca de métodos de
solução eficientes, que pode ser notado pelo volume de trabalhos publicados nos últimos anos.
Destacamos aqui os livros específicos ao tema: Brown (1971), Martello e Toth (1990), Dyckhoff e
Finke (1992), como também livros de otimização que dedicam capítulos ao tema, como Lasdon
(1970), Chvátal (1983) entre outros. Para um auxílio na pesquisa bibliográfica na identificação dos
problemas de corte e empacotamento e métodos de solução, destacamos os artigos de revisão, como
Golden (1976), Hinxman (1980), Garey e Johnson (1981), Coffman et al. (1984), Dyckhoff et al.
(1985), Dyckhoff (1990), Haessler e Sweeney (1991), Dowsland e Dowsland (1992), Sweeney e
Pasternoster (1992), Morabito e Arenales (1992). As atividades desta comunidade acadêmica, tais
como trabalhos publicados ou em preparação, congressos, etc., podem ser obtidas na rede Internet:
http://www.fe.up.pt/esicup/ ou http://www.simulab.uel.br/spek .
No Brasil, vários estudos vêm sendo realizados sobre os problemas de corte e
empacotamento desde os anos 80, gerando dissertações, teses, artigos e aplicativos computacionais.
Desde de 1995, vários pesquisadores, com o apoio do CNPq (processo no 680082/95-6) e FAPESP
(processo no 1995/9522-0, no 01/02972-2), vêm trabalhando de forma coordenada na divulgação do
tema e na busca de novos problemas, bem como na modelagem matemática, desenvolvimento e
análise de métodos de solução.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
4
Para a elaboração deste material foram utilizadas notas e apostilas de minicursos sobre corte
e empacotamento preparados e ministrados anteriormente pelos professores Dr. Marcos Arenales
(ICMC-USP), Dr. Horacio Yanasse (LAC-INPE) e Dr. Reinaldo Morabito (DEP-UFSCar).
Também foi utilizado o livro Pesquisa Operacional, que tem como autores os professores Dr.
Marcos Arenales, Dr. Vinícius Armentano (UNICAMP), Dr. Reinaldo Morabito e Dr. Horacio
Yanasse.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
5
1. Introdução
O problema de corte consiste, genericamente, em cortar uma unidade grande (objeto), que
esteja disponível, para a produção de um conjunto de unidades pequenas (itens) que estão sendo
requisitadas. As formas e medidas do objeto e dos itens são bem especificadas. Exemplos de
problemas de corte são encontrados na indústria de papel, barras metálicas, chapas de aço, vidros,
madeira, entre outros. De forma análoga, no problema de empacotamento, unidades pequenas
devem ser alocadas em uma unidade grande (por exemplo, um contêiner) de modo que o espaço
vazio do objeto seja minimizado.
Cortar unidades maiores em unidades menores ou empacotar unidades menores dentro de
unidades maiores são problemas idênticos, considerando que um item cortado em certa posição
pode ser pensado como alocado àquela posição. (Obviamente, os processos de corte e
empacotamento podem ter restrições próprias). Por isto, problemas desta classe são referidos como
problemas de corte e empacotamento.
Dependendo dos itens solicitados, podemos combiná-los dentro de um objeto de inúmeras
maneiras, respeitando-se um conjunto de restrições do processo de corte. A estas combinações
denominamos planos de corte. O plano de corte ótimo é aquele que produz, por exemplo, a menor
perda. O número de planos de corte possíveis é, na prática, muito elevado, exigindo que técnicas
bem elaboradas sejam desenvolvidas para determinar o plano ótimo. Dentre essas técnicas podemos
citar: enumeração implícita, programação dinâmica, relaxação Lagrangeana, busca em grafos e
heurísticas.
Vale salientar que, dificilmente obtemos um plano de corte que utilize todo o objeto. Neste
caso, temos um plano de corte com perda, como ilustrado na Figura 1.1.
Figura 1.1: Plano de corte unidimensional.
Os problemas de cortes, conforme Garey e Johnson (1979), pertencem a uma classe de
problemas denominada NP-completos. Assim, podemos dizer que são problemas improváveis de
serem resolvidos num tempo limitado por uma função polinomial em termos de seus dados. É
interessante observar que existem resultados teóricos afirmando que, se um problema desta classe
pode ser resolvido em um tempo polinomial, então todos os problemas da classe terão solução em
tempo polinomial. Entretanto, como a obtenção desse resultado parece pouco provável, muitas
pesquisas têm sido realizadas na busca de métodos heurísticos que produzem soluções “boas”, sem
garantia de otimalidade.
Quando uma quantidade elevada de itens deve ser produzida, temos um problema em que a
solução exige o corte de vários objetos em estoque e a repetição de vários planos de corte. Este
problema é conhecido na literatura como problema de corte de estoque e, o objetivo pode ser, entre
outros, o menor número de objetos cortados, ou o menor custo total dos objetos cortados,
considerando diferentes custos para os objetos em estoque.
1.1 Classificação dos Problemas de Corte
Para classificar os vários tipos de problemas de corte e empacotamento existentes na
literatura, Dyckhoff (1990) desenvolveu uma tipologia abrangente integrando esses problemas. A
tipologia foi fundada com base na estrutura lógica dos vários tipos de problemas de corte e
empacotamento com o objetivo de unificar o uso de diferentes notações na literatura e concentrar
mais adiante pesquisas em tipos especiais de problemas. Wäscher et. al (2007) apresentaram
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
6
modificações na tipologia de Dyckhoff e introduziram uma nova categoria que define problemas
diferentes dos apresentados anteriormente.
Utilizando apenas as dimensões dos problemas, dizemos que um problema é unidimensional
quando apenas uma dimensão é relevante no processo de corte A Figura 1.2 ilustra esse tipo de
problema.
Figura 1.2: (a) Barra; (b) Padrão de corte produzindo 4 itens e uma perda.
Como casos típicos de problemas de cortes unidimensionais, podemos citar o corte de
materiais como papel, tecido, plástico e aço para serem utilizados nos mais diversos setores.
Um problema é dito bidimensional quando duas dimensões (comprimento e largura) são
relevantes na obtenção da solução (enquanto a espessura é constante). As dificuldades aumentam
bastante para se gerar arranjos sem que ocorra sobreposição de itens nos planos de corte. A Figura
1.3 exibe uma representação de problemas de corte em duas dimensões.
Figura 1.3: (a) Placa; (b) Padrão de corte produzindo 8 itens e uma perda.
Entre os problemas bidimensionais podemos citar alguns bastante estudados, como o corte
de placas de madeira na indústria de móveis, chapas de aço, placas de vidro, entre outros.
Quando três dimensões (comprimento, largura e altura) são relevantes para a obtenção da
solução temos o problema tridimensional. Basicamente, trata-se de arranjar itens espaciais, sem
sobrepô-los, dentro de objetos maiores.
Podemos citar como exemplos de problemas tridimensionais o problema de carregamento de
contêineres, cortes em indústrias de colchões, entre outros. A Figura 1.4 ilustra este tipo de
problema.
Figura 1.4: (a) Contêiner; (b) Caixas empacotadas no contêiner.
Ainda sob o aspecto geométrico, é possível encontrar problemas do tipo 1.5-dimensional,
que são essencialmente bidimensionais, porém uma das duas dimensões consideradas é variável.
Este caso tem aplicação, por exemplo, no corte de peças de vestuário. Outros são problemas do tipo
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
7
2.5-dimensional, em que uma das três dimensões é variável. Uma aplicação é o problema de se
efetuar o carregamento de unidades dentro de caixas abertas, ou seja, as bases estão definidas, mas a
altura deverá ser definida.
Além dos problemas já expostos, problemas multi-dimensionais também podem surgir. Uma
ocorrência desse tipo de problema pode aparecer associada ao Problema de Alocação de Tarefas
(Morabito, 1992).
O objetivo principal deste texto consiste em apresentar uma visão geral de problemas de
corte e aplicações. São apresentados os principais modelos e procedimentos de solução, com ênfase
nos casos unidimensional e bidimensional. Finalmente alguns problemas práticos em associação aos
problemas de corte são apresentados.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
8
2. Problemas Básicos de Corte
Nesta seção introduzimos o clássico problema da mochila e algumas variações.
2.1 O Problema da Mochila
Suponha que um objeto (barra, bobina, etc.) deva ser cortado ao longo de seu comprimento
em itens de comprimentos especificados. Cada item tem um valor associado que chamamos de
"valor de utilidade". Itens cujos comprimentos não foram especificados são considerados perdas e
têm valores de utilidade nulos. Surge então um problema de otimização combinatória que consiste
em:
Maximizar VALOR DE UTILIDADE TOTAL.
Este problema de corte, embora simplificado, surge como um importante subproblema na
resolução de problemas de corte mais gerais, como veremos adiante. A Figura 2.1 ilustra uma barra
de comprimento 200 cm e uma solução produzindo 2 pedaços de comprimento 33 cm, 1 pedaço de
40 cm e 1 pedaço de 90 cm, resultando em uma perda de 4 cm. Aqui os comprimentos dos pedaços
(33 cm, 40 cm e 90 cm) definem 3 tipos de itens, os quais podem ser produzidos em quaisquer
quantidades.
Figura 2.1: (a) Barra a ser cortada; (b) Solução factível.
Observe que o corte é feito em apenas uma dimensão do objeto. Problemas com esta
característica são chamados Problemas de Corte Unidimensional. Problemas em que duas ou mais
dimensões são relevantes para o processo de corte (ou empacotamento) serão abordados em outras
seções.
Modelo Matemático:
O problema enunciado acima pode ser modelado como um problema de otimização linear
inteiro, como veremos a seguir.
Dados do problema:
m: número de tipos de itens;
vi: valor de utilidade do item tipo i, i = 1,…, m;
i: comprimento do item tipo i, i = 1,…, m;
L: comprimento da barra.
Variáveis de decisão:
xi: quantidade produzida de itens do tipo i, i = 1,…, m.
O problema pode ser formulado por:
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
9
maximizar = v1x1 + v2x2 + …+ vmxm (1.1)
sujeito a:
1x1 +
2x2 + …+
mxm L, (1.2)
xi 0 e inteiro, i = 1,…, m. (1.3)
O problema (1.1)-(1.3) é chamado na literatura de Problema da Mochila Inteiro ou
simplesmente Problema da Mochila. Tal motivação decorre da situação hipotética, em que um
muambeiro deseja carregar sua sacola (ou mochila) com itens, cujos valores de compra são i,
i = 1,…, m. O valor total da compra não pode ultrapassar L (por razões alfandegárias). O lucro sobre
cada item é conhecido e dado por vi, i = 1,…, m. O muambeiro deseja maximizar seu lucro total. O
modelo matemático deste problema é descrito por (1.1)-(1.3).
A restrição básica (1.2) pode ser chamada de restrição física. Alguns problemas de corte
(como também do muambeiro) podem apresentar condições adicionais, como por exemplo, a
quantidade de itens deve ser limitada por, digamos, bi, i = 1,…, m. Neste caso, as restrições (1.3)
devem ser alteradas e o modelo passa a ser descrito da seguinte forma:
maximizar = v1x1 + v2x2 + …+ vmxm (2.1)
sujeito a:
1x1 +
2x2 + …+
mxm L, (2.2)
0 xi bi e inteiro, i = 1,…, m. (2.3)
O problema (2.1)-(2.3) é chamado de Problema da Mochila Restrito.
Podemos ainda ter o caso em que apenas um único exemplar de cada item pode ser cortado.
Neste caso as variáveis de decisão são:
xi =
.contrario caso,0
cortado;for item o se,1 i i = 1,…, m.
e o problema é formulado por:
maximizar = v1x1 + v2x2 + …+ vmxm (3.1)
sujeito a:
1x1 +
2x2 + …+
mxm L, (3.2)
xi = 0 ou xi = 1, i = 1,…, m. (3.3)
O problema (3.1)-(3.3) é o conhecido Problema da Mochila 0-1 Este tipo de problema surge
como um subproblema em várias aplicações além do ambiente de corte e empacotamento, como por
exemplo, no sequenciamento da produção, em que uma máquina de capacidade L (por exemplo,
tempo disponível) pode ser carregada com m tarefas, as quais requerem i unidades da capacidade
da máquina.
Limitações no número de facas
Outras restrições podem ainda surgir decorrentes do processo de corte. Por exemplo,
suponha que a quantidade total de itens cortados seja limitada por F (número de facas de corte).
Portanto uma nova restrição deve ser incluída. Considerando o problema (1.1)-(1.3), temos:
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
10
maximizar = v1x1 + v2x2 + …+ vmxm (4.1)
sujeito a:
1x1 +
2x2 + …+
mxm L, (4.2)
x1 + x2 + … + xm F, (4.3)
xi 0 e inteiro, i = 1,…, m. (4.3)
Este tipo de restrição adicional ocorre tipicamente no corte de bobinas de papel ou de aço,
pois o processo de corte consiste em desenrolar cada bobina-mestre (objeto a ser cortado) que
desliza sobre facas ou tesouras, cujas posições foram previamente fixadas, como ilustrado na Figura
2.2. Na prática, o número das facas é algo em torno de 8 ou 9, sendo que duas facas são utilizadas
nas beiradas das bobinas para eliminar irregularidades (portanto, a largura L em (4.2) é largura da
bobina, já eliminadas as bordas irregulares).
Figura 2.2: Corte de bobina com 5 facas.
Outras condições podem ainda ser necessárias. Suponha, por exemplo, que a mochila de um
alpinista seja divida em compartimentos e somente itens de mesma característica (roupas, sapatos,
alimentos, etc.) podem estar no mesmo compartimento. Tais compartimentos têm capacidades
flexíveis, porém essas capacidades são limitadas superior e inferiormente e, além disso, a inclusão
de um compartimento produz uma perda da capacidade da mochila original. Tal problema pode
surgir no corte de bobinas de aço, em que a bobina-mestre deve ser cortada em sub-bobinas
intermediárias, as quais são laminadas (isto é, têm suas espessuras reduzidas), para finalmente
serem recortadas na produção de itens de mesma espessura. Este problema é chamado de Problema
da Mochila Compartimentada (Hoto, 2001; Hoto et al., 2003; Marques, 2004; Marques e Arenales,
2002).
2.2 Problemas de Várias Mochilas
Consideremos agora um problema que envolve a resolução simultânea de várias mochilas.
Suponha no problema de corte anterior que várias barras estejam disponíveis para serem cortadas na
produção dos vários itens. Distinguimos dois problemas: o primeiro com as barras a serem cortadas
suficientes para a produção de todos itens e, o segundo, com as barras insuficientes.
No primeiro problema todos os itens serão produzidos e temos de escolher quais barras
devem ser cortadas ou, em outras palavras, temos um problema de seleção dos objetos a serem
cortados, enquanto que no segundo problema, todos os objetos serão cortados e, como no problema
da mochila, temos a seleção de itens a serem produzidos.
Problema 1: Seleção de objetos (todos os itens serão produzidos)
Neste problema os objetos (barras) a serem selecionados têm custos associados e o objetivo
será o de minimizar o custo total dos objetos cortados.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
11
Modelo Matemático:
Inicialmente consideramos o problema em que apenas um exemplar de cada item é
produzido (lembre-se que todos os itens serão produzidos). Na seção 3 consideramos o problema
em que muitos exemplares de cada item devem ser produzidos.
Dados do problema:
m: número total de itens;
i: comprimento do item i, i = 1,…, m;
N: número de barras;
Lj: comprimento da barra j, j = 1,..., N;
cj: custo da barra j, j = 1,..., N.
Variáveis de decisão:
yj = 1,se a barra for cortada;
0,casocontrário.
j
xij = 1, se oitem for cortadoda barra ;
0, caso contrário.
i j
Podemos então escrever o problema como:
minimizar CUSTO =
N
j
jj yc1
(5.1)
sujeito a:
1
1, ,m
i ij j j
i
x L y j N
(5.2)
1
1 1,...,N
ij
j
x i m
(5.3)
xij = 0 ou xij = 1, yj = 0 ou yj = 1, i = 1,..., m, j = 1,..., N. (5.4)
Uma versão particular deste problema bastante estudada na literatura, chamada bin-packing,
consiste em empacotar em caixas (bins) de mesmo tamanho L, as quais têm o mesmo custo c, de
modo que a função objetivo (5.1) corresponde a minimizar o total de caixas.
Problema 2: seleção de itens (todas barras serão cortadas)
Análogo ao problema da mochila (Seção 2.1), consideramos um valor associado a cada
item, que chamamos de valor de utilidade, vi, i = 1,..., m. Observe agora que nem todos os itens
serão produzidos. Desta forma, o objetivo será de maximizar o valor de utilidade total e o problema
pode ser formulado por:
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
12
maximizar UTILIDADE =
N
j
iji
m
i
xv1 1
(6.1)
sujeito a:
1
1, ,m
i ij j
i
x L j N
(6.2)
mixN
j
ij ,,111
(6.3)
xij = 0 ou xij = 1, i = 1,..., m, j = 1,..., N. (6.4)
A repetição de itens pode ser considerada pela alteração conveniente das restrições (6.3) e
(6.4). Observe que se bi (a quantidade máxima de repetições do item de comprimento i) for muito
grande para todo i, então teremos N problemas de mochila independentes. Este é um caso
importante que ocorrerá como subproblema na resolução do problema de corte de estoque a ser
considerado na próxima seção.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
13
3. Problema de Corte de Estoque Unidimensional: Modelagem Matemática
3.1. Definição do Problema
O enunciado deste problema é semelhante ao problema de várias mochilas (seleção de
objetos), em que todos os itens serão produzidos. Entretanto, uma característica o distingue: muitos
itens devem ser produzidos, porém, relativamente de poucos tipos. Em outras palavras, é grande a
repetição de itens.
Além disso, objetos em estoque de mesmo tipo são disponíveis em grande quantidade, os
quais podem ser de apenas um único tipo ou de vários tipos, podendo haver ou não limitação de
estoque. Diferentes objetivos podem também ser definidos.
A solução para o problema a seguir terá muitos objetos igualmente cortados. Inicialmente
consideramos os dados relativos à demanda, comum a todos os casos.
Dados de demanda:
m: número de tipos de itens;
i: comprimento do item tipo i, i = 1,..., m;
di: demanda do item tipo i, i = 1,..., m.
Supomos neste problema que a quantidade total de itens será: d i
i
m
1
> m, enquanto que nos
problemas anteriores m denotava exatamente esta quantidade (problemas 0-1) ou da mesma ordem
de grandeza, no caso de poucas repetições de itens. Por exemplo, uma demanda de:
1000 peças de comprimento 30 cm (d1=1000, 1= 30)
1250 peças de comprimento 42 cm (d2=1250, 2= 42)
2000 peças de comprimento 45 cm (d3=2000, 3= 45),
indica que apenas m=3 tipos de peças são demandadas, num total de d1+d2+d3=4250 itens.
Como já observamos, neste tipo de problema muitos objetos em estoque deverão ser
igualmente cortados para a produção dos diferentes tipos de itens, o que sugere a definição a seguir.
Definição 3.1: Chamamos de padrão de corte a maneira como um objeto em estoque é cortado
para a produção de itens demandados. A um padrão de corte associamos um vetor m-dimensional
que contabiliza os itens produzidos:
a = ( 1 2, , , m ),
em que i = quantidade de itens do tipo i no padrão de corte. Além disso, dois padrões de corte
que tenham o mesmo vetor associado são chamados equivalentes.
Observe que um vetor a = ( 1 2, , , m ) corresponde a um padrão de corte se e somente se
satisfizer as restrições do problema da mochila (considerando apenas as restrições físicas). Supondo
que o comprimento do objeto seja L, temos:
1 1 2 2
1
, (7.1)
0, , 0 e inteiros. (7.2)
m m
m
L
Exemplo 3.1. Considere um objeto de comprimento L = 120 cm a ser cortado para a produção de 3
tipos de itens de comprimentos: 1= 30 cm,
2= 42 cm e
3= 45 cm. A Figura 3.1 apresenta alguns
possíveis padrões de cortes.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
14
Figura 3.1. Padrões de corte e vetores associados.
Perdas intrínsecas (largura da serra)
Suponha que, ao se cortar um objeto, haja uma perda inevitável, devido ao equipamento de
corte. Por exemplo, a serra utilizada consome 3 mm (típico em corte de tubos metálicos). Neste
caso, os padrões de corte 1 e 4 na Figura 3.1 seriam infactíveis, pois, no padrão 1 a perda no
processo de corte seria de 0,9 cm e, no padrão 4 a perda seria de 0,6 cm. Observe que se no
exemplo 3.1 o comprimento do objeto fosse L = 121, então o padrão 1 seria factível (Figura 3.2).
Figura 3.2. Padrão de corte com perda intrínseca.
Quando há perda intrínseca (largura da serra) durante o processo de corte, alteramos a
construção dos padrões de corte factíveis no sistema (7.1)-(7.2) adicionando o valor de σ (largura da
serra) no comprimento do item, ou seja, o item deve ser considerado de comprimento i+ σ.
Observe, entretanto, que um corte a mais é computado no último item (Figura 3.2). Para contornar
esta dificuldade, basta aumentar o comprimento do objeto: L+σ.
De outra maneira, considerando i, i = 1,..., m, os comprimentos dos itens e σ a largura da
serra, e αi o número de itens do tipo i no padrão, então
a) 1 1 m m é o comprimento total dos itens no padrão;
b) m 1 é o número de itens;
c) 1 1m é o total de cortes realizados e,
d) σ×(1 1m ) é a perda decorrente da largura da serra.
Portanto, a desigualdade (7.1) deve ser modificada para:
1 1 m m + σ×( 11 m ) L,
ou equivalentemente,
1 1( ) ( )m m L .
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
15
Definição 3.2. Um padrão de corte que produza apenas um tipo de item é chamado padrão de
corte homogêneo.
Em outras palavras, um padrão de corte é homogêneo se o vetor associado tem apenas uma
coordenada não-nula: a = (0,..., i ,...,0), i 0. Note que sempre teremos m padrões homogêneos,
cujos vetores associados definem uma matriz diagonal. No exemplo 3.1 os padrões 1, 2 e 3 são
homogêneos, produzindo a matriz diagonal:
B=[a1 a2 a3] =
4 0 0
0 2 0
0 0 2
.
A modelagem matemática do problema de corte de estoque pode ser feita em duas etapas:
1. defina todas as possíveis maneiras de cortar os objetos em estoque, isto é, defina todos os
possíveis padrões de corte;
2. decida quantas vezes cada padrão de corte será utilizado para atender a demanda.
Note que na primeira etapa temos um problema essencialmente combinatório, enquanto que
na etapa seguinte, o problema é contábil.
Exemplo 3.2. Considere os dados do Exemplo 3.1. Observe que a primeira etapa de geração de
padrões de corte pode ser realizada independente da demanda dos itens. Temos agora de decidir o
número de vezes que serão utilizados. Suponha que d1=1000, d2=1250 e d3=2000. Sejam x1, x2,
x3,... o número de vezes que os padrões de corte 1, 2, 3, ... serão utilizados, respectivamente. Assim:
a1x1+a2x2+a3x3+a4x4+...=d
0
0
4
x1 +
0
2
0
x2 +
2
0
0
x3 +
2
0
1
x4 + ... =
2000
1250
1000
.
A segunda etapa corresponde a resolver um sistema de equações lineares algébricas com m
equações e n variáveis, em que n é o número de padrões de corte gerados na primeira etapa. Além
disso, devemos exigir que xj0 e inteiro, j=1,2,...., pois representam o número de objetos cortados
de acordo com um padrão de corte. Qualquer solução desse sistema linear cujas componentes sejam
inteiras e não-negativas fornece uma solução factível para o problema de corte de estoque.
Com a exigência de integralidade sobre as variáveis xj, atender as demandas torna-se um
problema difícil, senão impossível de ser resolvido computacionalmente. Entretanto, como veremos
adiante, as soluções não-inteiras (portanto, infactíveis) “resolvem”, de certa forma, boa parte do
problema, restando poucos itens para ainda serem cortados, sendo insignificante do ponto de vista
da perda total ou custos (este problema final de cortar os itens restantes é importante do ponto de
vista operacional).
Geralmente, em problemas práticos, m (o número de tipos de itens) é da ordem algumas
dezenas, enquanto que n (o qual depende de m, L e i, i = 1,..., m) pode ser da ordem de vários
milhões ou bilhões. Este fato inviabiliza a aplicação pura do procedimento apresentado em
problemas práticos. Entretanto, veremos que a etapa 1 não precisa ser realizada integralmente
(apenas parte dos padrões de corte serão utilizados) e será feita concomitantemente com a segunda
etapa.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
16
3.2. Apenas um Tipo de Barra em Estoque: Quantidade Ilimitada
Neste caso o estoque é composto de barras de comprimento L, em quantidade suficiente para
atender toda a demanda. O custo de cada barra é c. Objetiva-se atender a demanda ao custo mínimo.
3.2.1. Modelo Básico
Conforme já introduzido anteriormente, procedemos a modelagem matemática em duas
etapas:
Defina todos os possíveis padrões de corte, isto é, determine todas as possíveis soluções
de (7.1)-(7.2):
1 1 2 2
1 2
,
0, 0, , 0, inteiros.
m m
m
L
Suponha n as possíveis soluções:
a1 =
11
21
1
m
, a2 =
12
22
2
m
, , an =
1
2
n
n
mn
.
Seja xj = número de vezes que o objeto é cortado usando o padrão j.
Resolva o seguinte problema de otimização linear:
minimizar f(x) = c(x1+x2+...+xn) (8.1)
sujeito a:
a1x1+ a2x2+ ... +anxn = d (8.2)
x10, x20, ..., xn0. (8.3)
A condição de integralidade sobre as variáveis xj, como já observado anteriormente, será
abandonada.
Observe que minimizar a função objetivo custo, neste caso, corresponde a minimizar o
número de objetos (barras) cortados:
minimizar f(x) = x1+x2+...+xn, (9)
isto é, sem perda de generalidades, podemos adotar cj = 1, j = 1,…, n.
3.2.2. Alterações no Modelo Básico
1. Uma característica do problema de corte de estoque, comum em aplicações práticas, consiste em
que as demandas dos itens podem ser atendidas com uma certa tolerância, isto é, uma demanda de
um item i, inicialmente especificada em di, pode ser qualquer valor no intervalo:
[di(1- i ), di(1+ i )] (10)
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
17
em que i é um percentual previamente fornecido (por exemplo, na indústria de papel, esta
tolerância varia de 5% a 15%). Assim, no exemplo 3.2, com 1 =0.05, a demanda do item 1 é
qualquer valor entre 950 e 1050.
Definindo os vetores de demanda mínima e máxima por d e d , cujas componentes são
di(1- i ) e di(1+ i ), i = 1,..., m, respectivamente, o problema de corte de estoque pode ser
reformulado por:
minimizar f(x) = cTx (11.1)
sujeito a:
d Ax d , x0. (11.2)
Por conveniência da aplicação do método primal-simplex (Seção 4), o problema (11.1)-
(11.2) acima com restrições canalizadas é escrito equivalentemente na forma de equações pela
introdução de variáveis de folga canalizadas:
minimizar f(x) = cTx (12.1)
sujeito a:
Ax+y = d , x0, 0y d - d (12.2)
2. A função objetivo custo (proporcional ao número de objetos cortados), definida até então, pode
ser substituída pela função objetivo perda total. Para isto, basta definir:
cj = L - )( 2211 mmjjj , (13)
como a perda no padrão de corte j, cujo vetor associado é aj = ( 1 2j j mj, , , ), j=1,..., n.
3. Embora a introdução das tolerâncias seja conveniente para a obtenção de uma solução factível (xj
inteiro), os modelos acima buscam satisfazer as demandas em seus limites inferiores (tanto para a
função custo como para a função perda), algo indesejável do ponto de vista da produção. Outras
funções objetivo podem ser escritas, procurando evitar tal inconveniente. Por exemplo, a função
perda relativa:
perda relativa = (perda total)/(número de objetos cortados)
1 1 2 2( )j j mj m
j
j
j
L
x
(14)
a ser minimizada, busca ao mesmo tempo, um numerador pequeno (perda total pequena) e um
denominador grande (maior produção). O método simplex pode ser facilmente estendido a este tipo
de não-linearidade (veja Lasdon, 1970). Observe que temos um problema multi-objetivos:
minimizar PERDA TOTAL,
maximizar PRODUÇÃO,
e a perda relativa é apenas um encaminhamento para tratar objetivos conflitantes.
4. Em alguns casos práticos, podemos definir uma função objetivo maximizar o lucro que também
busca um compromisso entre baixas perdas (prejuízo) e alta produção. Suponha que conhecemos os
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
18
preços de venda dos itens demandados dados por vi, i=1,..., m (muitas vezes os itens obtidos pelo
processo de corte não são vendidos diretamente, pois constituem partes de um produto a ser
montado, de modo que não têm preços diretamente associados). Além disso, as perdas produzidas
pelos cortes podem ser vendidas como sucata, digamos, por s (por simplicidade usamos a unidade
de comprimento cm, porém na prática é convertido em peso). Neste caso podemos definir uma
função lucro por:
lucro = venda de itens + venda de sucata- custo
= )()()(11 111
n
j
jj
m
i
m
i
iji
n
j
n
j
jiji xcxLsxv
= 1 1
( ( ) )n m
i i ij j
j i
sL v s c x
. (15)
Neste caso, os coeficientes da função objetivo nos modelos (8.1)-(8.3) ou (11.1)- (11.2) será:
cj= csvsLm
i
ijii
1
)( (16)
Observe que esta função está bem simplificada, não envolvendo todos os custos
(operacionais, por exemplo), porém, atende aos propósitos iniciais, novamente incorporando os
objetivos conflitantes.
5. Em muitas aplicações (cortes de bobinas em indústrias papeleira, metalúrgica, entre outras) a
unidade de demanda usada é a tonelada. Portanto, o lado esquerdo das equações no modelo (8.1)-
(8.3) precisa ser convertido. Suponha que todos os objetos tenham o mesmo peso, digamos T
toneladas (caso contrário, são tratados como objetos diferentes e será abordado na Seção 3.3). Em
outras palavras, estamos considerando bobinas de mesmo comprimento L (em unidade cm) e
mesmo diâmetro. O peso específico linear é T/L (em unidade ton/cm). Assim, um item de
comprimento i cm cortado do objeto pesa
i (T/L) (em unidade ton) e como num padrão j o
número de itens do tipo i é ij , segue que a tonelagem do item tipo i produzida pelo padrão j é
ij i(T/L) (em unidade ton), e as equações em (8.2) são alteradas para:
n
j
ijiij dxLT1
)/( i=1,…,m (17)
Observe que podemos utilizar em (17) a variável yj = T xj (toneladas cortadas usando o
padrão j).
Assim, uma solução com yj=3,5 tem significado, pois indica que 3,5 toneladas de material
(em bobinas de comprimento L) deverão ser cortadas segundo o padrão j. Supondo que as bobinas
sejam produzidas pela indústria (caso da indústria de papel), esta solução pode ser traduzida na
produção de 3 bobinas de 1 tonelada cada e 1 bobina de 0,5 tonelada. Em caso de bobinas
adquiridas de terceiros em pesos padrões, a solução fracionária ainda faz sentido, se as bobinas
puderem ser parcialmente desenroladas e cortadas (este é o caso das indústrias metalúrgicas que
compram e cortam bobinas de aço). Isto significa que a solução do modelo básico (sem a condição
de integralidade das variáveis) é a solução ótima do problema original, sem a necessidade de
arredondamentos. Embora possa haver algumas dificuldades operacionais para cortar parcialmente
uma bobina, tal procedimento altera significativamente a redução de perdas.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
19
6. Outra particularidade da indústria de papel é que muitas vezes parte da demanda é composta por
retângulos i wi, os quais são obtidos cortando-se inicialmente a bobina grande em sub-bobinas
de comprimento i que, em seguida, é desenrolada e cortada no tamanho wi, conforme a Figura 3.3:
Figura 3.3. Produção de retângulos na indústria de papel.
Observe que o mesmo retângulo poderia ser obtido considerando-se wi i Em alguns
casos, o sentido da fibra do papel dentro do retângulo é importante, de modo que este retângulo
pode ser inaceitável, e os modelos anteriores são adequados.
Suponha que o sentido da fibra seja irrelevante, de modo que podemos cortar a bobina
grande tanto em sub-bobinas de comprimento i, como de comprimento wi. Isto significa que os
padrões de corte (soluções do problema (7.1)-(7.2)) podem combinar 2m tamanhos:
1,…,
m,w1,…,wm ou de outra forma, definimos
m i= wi, i = 1,…, m. Note, entretanto, que ij e
m+i, j dizem respeito à mesma demanda. Considere a alteração do modelo básico em que a demanda é fornecida em toneladas (veja
(17)). O comprimento da bobina grande que será utilizado para a produção do retângulo i wi (ou
wi i) será dado por:
ij i + m+i, jwi.
Deste modo, a restrição (17) torna-se:
n
j
ijijimiij dxLTw1
, )/)(( , i=1,…,m. (18)
Obviamente, podemos ter apenas parte dos retângulos com o sentido de fibra irrelevante, o
que pode ser facilmente considerado no modelo.
3.3. Diversos Tipos de Barra em Estoque: Quantidade Ilimitada
Estudamos agora o caso em que o estoque é composto de vários tipos de barras com
quantidades de cada tipo suficientes para atender toda a demanda. Uma aplicação deste tipo de
problema ocorre em indústrias onde os objetos (bobinas) são produzidos por máquinas diferentes e
a capacidade de produção é suficientemente grande, ou ainda os objetos de vários tamanhos são
adquiridos no mercado, em que a oferta é grande (por exemplo, barras de aço para a construção
civil). Além dos dados de demanda considerados inicialmente, temos agora os dados de estoque:
N: número de tipos de barras em estoque;
Lj: comprimento das barras do tipo j, j = 1,..., N;
cj: custo da barra do tipo j, j = 1,..., N.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
20
Modelagem Matemática
O modelo matemático neste caso é análogo ao caso anterior. Entretanto, os padrões de cortes
devem ser definidos para cada barra em estoque, isto é, devem satisfazer:
jj
mmjj L 2211 (19.1)
.,,1,inteiros e0,,0,0 21 Njj
m
jj (19.2)
Suponha que o sistema (19.1)-(19.2) tenha nj soluções, dadas por:
a1j =
j
m
j
j
1
21
11
, a2j =
j
m
j
j
2
22
12
, , anj =
j
mn
j
n
j
n
j
j
j
2
1
, j = 1,…,N.
As variáveis de decisão são:
xij: número de vezes que o objeto de tipo j é cortado usando o padrão i,
i = 1,…,nj, j = 1,…,N.
O problema pode então ser formulado por:
minimizar f(x11,x21,…) =
1
1
n
i
c1xi1 +
2
1
n
i
c2xi2 + … +
Nn
i 1
cNxiN (20.1)
sujeito a:
1
1
n
i
ai1xi1 +
2
1
n
i
ai2xi2 + … +
Nn
i 1
aiNxiN = d (20.2)
xij0, i=1,…,nj, j=1,…,N. (20.3)
Note que o modelo básico (8.1)-(8.3), com um único tipo de objeto em estoque, é apenas um
caso particular de (20.1)-(20.3) com N=1. Além disso, as alterações possíveis no modelo básico
podem também ser aqui aplicadas. Observamos uma vez mais que as colunas da matriz de restrições
são os vetores associados aos padrões de corte para cada objeto.
3.4. Diversos Tipos de Barra em Estoque: Quantidade Limitada
Consideramos agora, como na Seção 3.3, vários tipos de objetos em estoque, porém em
quantidades disponíveis limitadas. Este problema ocorre em indústrias em que os objetos são
adquiridos com antecedência e estocados (muitas vezes isto é necessário devido à demora e
incerteza no prazo de entrega, por exemplo, bobinas de aço na indústria metalúrgica), ou ainda
podem ser produzidos, porém a capacidade de produção é limitada. Adicionamos o seguinte dado
sobre o estoque:
ej: disponibilidade em estoque do objeto j, j=1,…,N.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
21
Modelagem Matemática
O modelo matemático tem as mesmas restrições que o anterior, acrescentando-se as
restrições de estoque.
minimizar f(x11,x21,…) =
1
1
n
i
c1xi1 +
2
1
n
i
c2xi2 + … +
Nn
i 1
cNxiN (21.1)
sujeito a:
1
1
n
i
ai1xi1 +
2
1
n
i
ai2xi2 + … +
Nn
i 1
aiNxiN = d (21.2)
1
1
n
i
xi1 e1
2
1
n
i
xi2 e2
(21.3)
Nn
i 1
xiN eN
xij0, i = 1,…, nj, j = 1,…, N. (21.4)
Como já observado anteriormente, os modelos matemáticos formulados nesta seção
apresentam um número enorme de variáveis (uma variável para cada padrão), podendo, em
problemas práticos, ser da ordem de centenas de milhares. Felizmente, tais modelos apresentam
uma estrutura particular que permite trabalhar com estas variáveis implicitamente, como veremos
no Capítulo 5.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
22
4. Conceitos Básicos
4.1 Problema de Otimização Linear
Um problema de otimização linear na forma padrão é dado por:
minimizar f(x1, x2, ..., xn) = c1x1 + c2x2 +...+ cnxn (22.1)
sujeito a:
11 1 12 2 1 1
21 1 22 2 2 2
1 1 2 2
n n
n n
m m mm m m
a x a x a x b
a x a x a x b
a x a x a x b
(22.2)
x1 ≥ 0, x2 ≥ 0, ... xn ≥ 0 (22.3)
A função linear f em (22.1), a ser minimizada, é chamada função objetivo, o sistema de
equações lineares em (22.2) define as restrições do problema juntamente com as condições de não
negatividade das variáveis em (22.3). Qualquer problema de otimização linear pode ser escrito na
forma padrão. Em notação matricial o problema (22.1)-(22.3) é escrito por:
minimizar f(x) = cTx
sujeito a:
Ax = d
x0
em que cada coluna da matriz A Rmxn é um vetor associado a um padrão de corte e
cT = (c, c, … ,c) Rn.
Definição 4.1: (solução factível e região factível) Uma solução (x1, x2, ..., xn) é factível se
satisfaz todas as restrições (22.2) e a condição de não negatividade (22.3). O conjunto de todas
as soluções factíveis é chamado região factível.
Exemplo 4.1:
minimizar f(x1, x2, x3) = 2x1 - x2 + 4x3
sujeito a:
1 2 3
2 3
2 3
2 4
x x x
x x
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0
Em termos do modelo (22.1)-(22.3), temos que m = 2 (restrições), n = 3 (variáveis). As
variáveis deste problema (x1, x2, x3) correspondem a um vetor de três coordenadas e, portanto, o
espaço de possíveis soluções está contido no R3. A solução particular x1 =1 , x2 = 0, x3 = 2 é uma
solução factível, pois satisfaz todas as restrições do problema. Para esta solução, a função objetivo
tem valor f(1, 0, 2) = 10. Outra solução factível x1 =0,25 0, x2 = 0,5, x3 = 1,75 tem valor da função
objetivo f(0,25; 0,5; 0,75) = 7. Isso significa que esta solução é melhor que a anterior, já que o
objetivo do problema é determinar o menor valor possível para f(x1, x2, x3).
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
23
Definição 4.2: (Solução ótima) Uma solução factível que fornece o menor valor à função
objetivo f é chamada solução ótima e é denotada por * * *
1 2, ,..., nx x x . Uma solução factível
(x1, x2, ..., xn) é ótima se: f * * *
1 2, ,..., nx x x ≤ f (x1, x2, ..., xn)
No exemplo 4.1, a solução factível x1 =0,25 0, x2 = 0,5, x3 = 1,75 é melhor que a solução
factível x1 =1 0, x2 = 0, x3 = 2. Entretanto, a solução x1 = 0, x2 = 2/3, x3 = 5/3 também é uma solução
factível para o problema e f(0; 2/3; 5/3) = 6. Isso mostra que esta solução que as anteriores. Mas
ainda resta uma questão: há outra solução melhor que está? Esta solução realmente é ótima? A
resposta para estas questões será vista mais adiante.
4.2 Transformações de Problemas na Forma Padrão
Nesta seção, veremos como problemas de otimização linear que não estão na forma padrão
podem ser reescritos nesta forma.
Problemas de maximização
Encontrar uma solução ótima que maximize a função objetivo corresponde a encontrar uma
solução factível * * * *
1 2, ,..., nx x x x tal que f ( *x ) ≥ f (x) para toda solução x factível.
Multiplicando essa desigualdade por -1, temos para toda solução x factível a forma
equivalente: -f ( *x ) ≤ -f (x). Portanto, caso o problema seja de maximizar f (x), podemos considerar,
em seu lugar, o problema equivalente a minimizar -f (x).
Restrições de desigualdades
No problema (22.1)-(22.3) as restrições são formadas por equações lineares. Entretanto, as
restrições (22.2) também podem ser dadas por inequações. Neste caso, convertemos o problema na
forma padrão com o auxílio de novas variáveis, chamadas variáveis de folga. Suponha que a
restrição i seja dada por:
1 1 2 2i i in n ia x a x a x b
Para termos uma igualdade, adicionamos no lado esquerdo da inequação uma nova variável
não-negativa:
ai1x1 + ai2x2 + ...+ ainxn + xk = bi
xk ≥ 0
A variável xk representa a folga existente na equação original. Analogamente, se a restrição
for da forma:
1 1 2 2i i in n ia x a x a x b
basta subtrair uma variável xk ≥ 0 no lado esquerdo da inequação para transformá-la em igualdade
(variável de excesso). Neste caso, a desigualdade é escrita como:
ai1x1 + ai2x2 + ...+ ainxn - xk = bi
xk ≥ 0
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
24
Variáveis livres
No caso de existir uma variável xi irrestrita de sinal no problema, podemos substituir essa
variável por outras duas e obter um problema equivalente na forma padrão. Observe que qualquer
número pode ser sempre escrito como uma diferença de dois outros não-negativos, isto é, podemos
escrever uma variável livre xi como:
, com 0, 0.i i i i ix x x x x
Substituindo essa redefinição da variável livre, o problema resultante tem todas as variáveis
não-negativas.
4.3 Resolução Gráfica
A visualização de soluções de um problema matemático, quando possível e mesmo que
limitada a um desenho no R2, pode ser bastante útil para melhorar nossa intuição sobre o problema
em estudo. como vimos, resolver um problema de otimização linear consiste em encontrar uma
solução ótima para o problema. Por conveniência, consideramos o problema de otimização linear
com duas variáveis e na forma de desigualdade.
Exemplo 4.2:
maximizar f(x1, x2) = x1 + 2x2
sujeito a:
1 2
1
2
1 2
4
2
3
0, 0
x x
x
x
x x
Região factível S
Desenhando uma região factível
Como vimos anteriormente, as soluções factíveis sempre devem satisfazer todas as
restrições do problema. Considerando o Exemplo 4.2, representamos inicialmente os pontos no
plano (x1, x2) que satisfazem as condições de não-negatividade, isto é, primeiro quadrante do plano.
Para representar os pontos no plano (x1, x2) que também satisfazem a restrição x1 + x2 ≤ 4,
identificamos os pontos que satisfazem a igualdade x1 + x2 = 4. Esta equação é uma reta no plano,
sendo seus coeficientes, o vetor (1, 1)T, perpendicular à reta. Em seguida, identificamos os pontos
que satisfazem x1 + x2 < 4. Para identificar este conjunto, observe que este vetor (1, 1)T aponta no
sentido em que x1 + x2 cresce. Portanto, os pontos no plano a partir da reta opostos àqueles para o
qual o vetor (1, 1)T aponta são tais que x1 + x2 < 4. A reunião dos pontos tais que x1 + x2 = 4 e x1 +
x2 < 4 juntamente com as restrições de não-negatividade é o que queremos considerar. A Figura 4.1
ilustra esta representação.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
25
Figura 4.1: Região definida por x1 + x2 ≤ 4, x1 ≥ 0, x2 ≥ 0.
De modo semelhante, desenhamos as regiões dos pontos que satisfazem x1 ≤ 2 e x2 ≤ 3. A
intersecção de todas as regiões define a região factível representada na Figura 4.2.
Figura 4.2: Região factível S.
Determinando a solução ótima x*
A função objetivo f(x1, x2) = x1 + 2x2, definida no conjunto S, pode assumir infinitos valores.
Por exemplo, na solução factível ' '
1 2' ( ) (0,0)T Tx x x a função objetivo vale f ’ = f(x’) = 0 e todos
os pontos do plano (x1, x2) que atribuem este mesmo valor à função objetivo estão na reta x1 + 2x2 =
0. Esse conjunto de pontos é chamado de curva de nível e esta representado na Figura 4.3 pela reta
tracejada f ’ = 0.
Ao definir a região factível, o vetor dos coeficientes (1, 2)T (vetor gradiente) é perpendicular
à reta x1 + 2x2 = 0 (uma curva de nível) e aponta no sentido em que a função cresce. Com isso,
podemos visualizar na Figura 4.3 que qualquer ponto de S atribui valor maior que zero à função f.
Como queremos maximizar f, podemos concluir, graficamente, que a solução factível ' (0,0)Tx
não é uma solução ótima.
Figura 4.3: Determinando a solução ótima x* (Problema de maximização).
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
26
Quando analisamos a solução factível '' (2,0)Tx , a função objetivo f ’’ = 2. Como o vetor
gradiente não se altera, essa reta é paralela à f ’ = 0. Continuando o procedimento de identificar
pontos que atribuem valores maiores à função objetivo, chegamos a um extremo * *
1 2* ( ) (1,3)T Tx x x , para o qual f(x*) = 7. A curva de nível x1 + 2x2 = 7 nos permite observar
que todos os pontos de S atribuem valores menores que 7 à função objetivo. Portanto, a solução x*
que satisfaz todas as restrições simultaneamente e maximiza f(x) existe e é única:
1
2
1*
3
xx
x
No Exemplo 4.2 desejamos maximizar f(x), desta forma, procuramos pontos factíveis que
estivessem do lado apontado pelo vetor gradiente, partindo da curva de nível f(x)=f '. Entretanto, se
o objetivo fosse minimizar f(x), aplicamos o mesmo procedimento, porém, buscando pontos no
sentido contrário ao do vetor gradiente.
A solução ótima da Figura 4.3 é uma solução factível muito especial, chamada vértice ou
ponto extremo. Na região factível ilustrada, é possível notar que os vértices são determinados pela
intersecção de pelo menos duas retas que definem a fronteira da região factível (observe que xi = 0 é
uma equação de reta). Assim, temos que os vértices são soluções de sistemas de equações lineares.
Observe que se o vetor gradiente da função objetivo for modificado, outro vértice pode ser
uma solução ótima.
Propriedade 4.1: Se um problema de otimização linear tem uma solução ótima, então existe
um vértice ótimo.
No Exemplo 4.2, a região factível do problema é limitada e apresenta uma única solução
ótima. Entretanto, várias outras possibilidades podem ocorrer: não existência de solução ótima,
solução ótima degenerada, infinitas soluções ótimas, entre outras. A resolução gráfica de problema
de otimização linear com dimensões maiores que dois é igualmente possível.
Nesta seção, observamos que uma solução ótima, se houver, pode ser pesquisada entre os
vértices. Assim, se formos capazes de sair de um vértice para outro melhor, podemos repetir isso
um número finito de vezes até encontrar um vértice ótimo. É assim que trabalha o método simplex,
um dos mais utilizados métodos para a resolução de problemas de otimização linear. Uma breve
revisão deste método é apresentada na próxima seção.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
27
5. Método Simplex
O Método Primal-Simplex ou simplesmente Método Simplex, pode ser aplicado na resolução
dos problemas de otimização linear descritos na Seção 3. Entretanto, tais problemas apresentam
uma característica que inviabiliza a utilização de métodos numéricos diretamente: o número de
variáveis é extremamente grande. Porém, os coeficientes das variáveis, na matriz dos coeficientes,
A, podem ser calculados, uma vez que representam padrões de cortes e, por conseguinte, os
coeficientes da função objetivo.
Apresentamos neste capítulo uma breve revisão Método Simplex, como utilizá-lo em
problemas cujas colunas podem ser construídas e, finalmente, estudamos sua utilização em
problemas de corte de estoque.
5.1 Soluções Básicas
Considere o seguinte problema primal de otimização linear:
minimizar f(x) = cTx (23.1)
sujeito a:
Ax = b, (23.2)
x 0. (23.3)
em que A Rmn e posto(A)= m.
A solução geral do sistema em (23.2) pode ser obtida considerando uma partição nas
colunas de A:
A = (B, N) em que:
Bmm é a matriz básica não-singular formada por m colunas da matriz A. A matriz B é dada
por 1 2, ,...,
mB B BB a a a ;
Nm(n-m) é a matriz não-básica, formada pelas n - m colunas restantes da matriz A (colunas de
A que não estão em B). A matriz N é dada por 1 2, ,...,
n mN N NN a a a
.
Essa partição nas colunas da matriz A é chamada partição básica e introduz uma nova
partição no vetor x:
x = (xB, xN)T,
em que xB é chamado vetor de variáveis básicas e xN vetor de variáveis não-básicas (ou variáveis
livres). Assim,
Ax = b BxB + NxN = b
xB = B-1b - B-1NxN (24)
A expressão (24) é chamada solução geral do sistema, pois com ela podemos determinar
qualquer solução do sistema, bastando atribuir valores quaisquer às variáveis não-básicas xN , de
modo que as variáveis básicas em xB fiquem unicamente determinadas e a solução resultante
satisfaça o sistema Ax = b.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
28
Definição 5.1. A solução particular x obtida por: ˆBx = B-1b, ˆ
Nx = 0, é chamada solução
básica. Se ˆBx = B-1b 0, então a solução básica é primal-factível e dizemos que a partição
básica é primal-factível.
Propriedade 5.1: Considere uma região factível S = {x Rn tal que Ax = b, x ≥ 0}. Um ponto
x S é um vértice de S se e somente se x for uma solução básica factível.
Como consequência desta propriedade, temos que se um problema de otimização linear tem
solução ótima, então existe um vértice ótimo.
Nesta seção, vimos como determinar uma solução básica para um problema de otimização
linear. Na próxima seção apresentamos o Método Simplex.
5.2 O Método Simplex
O método simplex encontra um vértice ótimo pesquisando apenas um subconjunto dos K
vértices de S.
Considerando a partição básica factível, a função objetivo também pode ser expressa
considerando a partição básica:
( ) [ ]BT T T T T
B N B B N N
N
xf x c x c c c x c x
x
(25)
em que T
Bc são os coeficiente das variáveis básicas na função objetivo e T
Nc são os coeficientes das
variáveis não-básicas na função objetivo.
Substituindo (24) em (25), temos:
f(x) = T
Bc xB + T
Nc xN
= T
Bc (B-1b - B-1NxN) + T
Nc xN (26)
O primeiro termo de (26) corresponde ao valor da função objetivo em x :
f( x ) = T
Bc (B-1b) + T
Nc (0) = T
Bc (B-1b)
Definição 5.2. Chamamos de vetor das variáveis duais ou, vetor multiplicador simplex o vetor
Rm, dado por:
T = cB
T B-1.
Se a seguinte condição é verificada:
cj - Taj 0, j = 1,…, n,
então é uma solução básica dual-factível. Neste caso dizemos que a partição é dual-factível.
(Observe que, pela definição de , Taj = cj para aj B).
Teorema 5.1. Se uma partição básica for primal e dual factíveis, então as soluções básicas
associadas (definições 5.1 e 5.2) resolvem os problemas primal e dual, respectivamente, e
dizemos que a partição básica é ótima.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
29
Teorema 5.2. Se o problema (23.1)-(23.3) tiver uma solução ótima, então existe uma partição
básica ótima.
Utilizando o vetor multiplicador simplex na expressão de f(x) em (26), podemos escrever
f(x) em termos das variáveis não-básicas:
f(x)= T
Bc xB + T
Nc xN = T
Bc (B-1b - B-1NxN) + T
Nc xN
= f( x ) + ( T
Nc -TN)xN
= f( x ) + j N
(cj -Taj)xj, (27)
Considerando que:
T
Nc -TN = 1 2 1 2, ,..., , ,...,
n m n m
T
N N N N N Nc c c a a a
= 1 1 2 2
, ,...,
n m n m
T T T
N N N N N Nc a c a c a
Obtemos:
1 1 1 2 2 2ˆ( ) ( ) ( ) ( ) ... ( )
n m n m n m
T T T
N N N N N N N N Nf x f x c a x c a x c a x (28)
Definição 5.3: (custos relativos) Os coeficientes ˆ ( ) j j j
T
N N Nc c a das variáveis não básicas
na função objetivo descrita por (28) são chamados custos relativos ou custos reduzidos.
A partir da Definição 5.3, a expressão (28) pode ser escrita como:
1 1 2 2ˆ ˆ ˆ ˆ( ) ( ) ...
n m n mN N N N N Nf x f x c x c x c x (29)
Propriedade 5.2: (condição de otimalidade) Considere uma partição básica A = [B N] em que
a solução básica associada ˆBx = B-1b ≥ 0 e seja T = cB
T B-1 o vetor multiplicador simplex. Se
0j j
T
N Nc a , j = 1, ..., n-m, então a solução básica é ótima.
Definição 5.4: Chamamos de estratégia simplex a seguinte perturbação de uma solução básica
factível:
escolha k N, tal que: ck - Tak < 0;
faça: xk= 0,
xj = 0, jN-{k}.
Em outras palavras, apenas uma variável não básica,kNx , deixa de ser nula. Com isso. A
função objetivo (29) passa a valer:
1
1
ˆ ˆ ˆ ˆ( ) ( ) 0 ... ... 0
k n m
N N Nk n m
N N N
x x x
f x f x c c c
ˆ ˆ ˆ( ) ( ) kNf x c f x (30)
Como a função objetivo decresce quando cresce, determinamos o maio valor possível para
que mantém factível a solução perturbada.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
30
Tamanho do passo :
Com a alteração nos valores das variáveis não básicas pela estratégia simplex, as variáveis
básicas também devem ser alteradas, de modo que o sistema Ax=b seja satisfeito. A estratégia
simplex é equivalente a alterar as variáveis não básicas para:
10
0
k
n m
N
N N
N
x
x x k
x
(31)
portanto, as variáveis básicas são modificadas por:
1 1 1
ˆ ˆ
kB N B N B
y
x B b B Nx x B a x y (32)
em que y = 1
kNB a .
Definição 5.4: (direção simplex) Chamamos de direção simplex o vetor 1
kNy B a , o qual
fornece os coeficientes de como as variáveis básicas são alteradas pela estratégia simplex. A
direção simplex é solução do sistema de equações lineares kNBy a .
Reescrevendo a equação vetorial (32) em cada uma de suas coordenadas, e considerando a
não-negatividade das variáveis básicas, temos:
B
ˆ 0, 1,...,i iB ix x y i m . (33)
Se a solução básica for não-degenerada, isto é, ˆBx > 0, de (30) e (33) segue que temos uma
direção factível e de descida.
De (33), podemos determinar o maior valor de :
= -
y
xBˆ
= mínimo {- ˆ
iB
i
x
y | yi < 0, i=1,…,m} (34)
em que ˆiBx é a i-ésima componente de ˆ
Bx . Naturalmente, se yi 0, i = 1,…,m, então não há
limitante para , f(x)- (a direção d é um raio de descida).
Para esta escolha de , a l-ésima componente de xB se anula, enquanto que apenas uma
variável de xN torna-se positiva. A nova solução tem a seguinte característica:
1
ˆ0
( ... ... | 0... ...)m kB B B Nx x x x
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
31
Isto sugere uma nova partição básica, pois a variável kNx torna-se básica e a variável
Bx
não-básica. Assim, as matrizes básica e não-básica são alteradas por apenas uma coluna.
1 2 1, ,..., ' ,..., ,...,
m k mB B B B N B
ésima coluna
B a a a B a a a
1 2 1, ,..., ' ,..., ,...,
m n mN N N N N N
k ésima coluna
N a a a N a a a
Propriedade 5.3: A matriz B', definida anteriormente, é não-singular, de modo que A= [B', N']
é uma partição básica.
A solução básica associada à nova partição é aquela obtida pela estratégia simplex:
ˆ
,,...,1,ˆˆiB
k
i
N
iB
x
imiyxx
Assim, a estratégia simplex produz uma nova solução básica factível (isto é, um novo
vértice), para o qual a função objetivo tem um valor menor:
ˆˆ ˆ ˆ( ) ( ) ( )kNf x f x c f x
e podemos repetir o procedimento, ou seja, encontrar uma solução básica melhor a partir da solução
obtida, enquanto a condição de otimalidade não for verificada.
Isto descreve o conhecido Método Primal-Simplex. A seguir, apresentamos o algoritmo
Primal-Simplex.
5.3 Algoritmo Primal-Simplex
Considere um problema de otimização linear escrito na forma padrão.
Fase I:
Determine uma partição básica factível: A = [B,N].
{Para isto poderá ser necessário o método das variáveis artificiais}.
Faça iteração = 1.
Fase II:
{Início da iteração simplex}
Passo 1: {Cálculo da solução básica}
1
Bˆ
ˆ 0N
x B b
x
Passo 2: {Calculo dos custos relativos}
2.1 Determine o vetor multiplicador simplex: T = cB
T B-1.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
32
2.2 Determine os custos relativos: ˆ ( ) j j j
T
N N Nc c a , j = 1, 2, ..., n-m
2.3. Determine menor custo relativo (variável Nk a entrar na base):
ˆjNc = mínimo{ ˆ
jNc , j = 1, 2, … ,n-m}.
Passo 3:{teste de otimalidade}
Se ˆjNc ≥ 0 então pare (solução na iteração atual é ótima)
Passo 4: {cálculo da direção simplex}
y = -B-1ak.
Passo 5: {determinação do passo e variável a sair da base}
Se y 0, então pare, o problema não tem solução ótima finita.
Senão, determine a variável a sair da base:
= -
y
xBˆ
= mínimo {- ˆ
iB
i
x
y | yi < 0, i=1,…,m}
Passo 6: {atualização da nova partição básica}
nova matriz básica: 1 1 1... ...
k mB B N B BB a a a a a
nova matriz não básica: 1 1 1... ...
k k n mN B N B NN a a a a a
iteração = iteração + 1
Retorne ao passo 1
{Fim da iteração Simplex}
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
33
6. O Problema de Corte de Estoque Unidimensional: Métodos
6.1 Método Simplex com Geração de Colunas: Um Tipo de Barra
O Método Simplex pode ser utilizado na resolução do problema de corte de estoque.
Geralmente, em problemas práticos, o número de variáveis n (colunas), que determina o número de
padrões de corte, é muito maior que o m número de restrições (linhas). Entretanto, o método
simplex que determina, a cada iteração, uma nova coluna não básica para entrar na base dentre
todas não-básicas, torna-se um problema impraticável devido ao grande número de colunas que
devem ser investigadas. Uma técnica bastante eficiente para contornarmos este tipo de problema, é
a Geração de Colunas, proposta por Gilmore e Gomory (1961).
Este procedimento consiste em gerar uma coluna k, isto é, um novo padrão de corte
utilizando o critério de Dantizg, que procura a variável xk com o menor custo relativo (passo 2.3):
min{ , 1,2,...}T T
k k j jc a c a j (35)
Por simplicidade, consideremos o problema de otimização linear (8.1)-(8.3) com os
coeficientes na função objetivo constantes, cj= 1, j = 1,…, n.
minimizar f(x) = x1+x2+...+xn (36.1)
sujeito a:
a1x1+ a2x2+ ... +anxn = d (36.2)
x10, x20, ..., xn0. (36.3)
Propriedades das colunas da matriz A
Consideremos o problema mais simples, em que barras de comprimento L devem ser
cortadas em pedaços i, i=1,…,m. As colunas da matriz A são bem determinadas por:
X = { a = (1,2,…,m ) / 11 +
2 2 + …mm L, i 0 e inteiro }
Partição básica inicial
Como já observamos na Seção 3.1, algumas colunas da matriz A são facilmente construídas
considerando-se padrões de corte homogêneos, cujos vetores associados constituem m vetores
linearmente independentes de X:
ai = (0,...,aii,...,0), i = 1,..., m,
em que ii ia L e x é o maior inteiro menor ou igual a x.
Assim, podemos construir uma base inicial:
B =
a
a
amm
11
22
0 0
0 0
0 0
. (37)
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
34
A partir da base inicial, numa iteração qualquer do Método Simplex, calculamos a solução
básica: xB = B-1b e o vetor multiplicador simplex: T = cBB-1.
O próximo passo do Método Simplex consiste em determinar uma coluna a entrar na base
(menor custo relativo). Entretanto, como o objetivo é minimizar o total de objetos cortados (c = (1,
1, ..., 1)), calculamos:
mínimo{cj - Taj} = 1 - máximo{Taj}
Desta forma, encontrar uma coluna não-básica, digamos (1,2,…,m)T que substituirá uma
coluna básica, corresponde a resolver o problema:
g(a) = maximizar = 11 + 22 + …+ mm
sujeito a:
11 +
22 + …+
mm L,
0 ≤ i ≤ di e inteiro, i = 1,…, m.
que é o problema da mochila restrito (2.1)-(2.3). Desta forma, se o menor dos custos relativos são
não negativos, isto é, se 1 - g(a) ≥ 0, podemos garantir que a solução do problema (36.1)-(36.3)
relaxado é ótima. O valor de utilidade de cada item é o multiplicador simplex vi = i, i = 1, ..., m.
No caso em que cj=
m
i
iiL1
,ou seja, o objetivo for minimizar a perda total, a função
objetivo do subproblema é dada por: (a)= L -
m
i
iii
1
)( . O subproblema é então descrito pelo
seguinte problema da mochila:
Maximizar
m
i
iii
1
)( (38.1)
sujeito a:
,1
Lm
i
ii
(38.2)
.,1,inteiro, e0 mii (38.3)
6.2 O Método Simplex com Geração de Colunas: Diversos Tipos de Barras
As idéias contidas na Seção 6.1 podem ser facilmente estendidas ao problema (21.1)-(21.4),
o qual considera diversos tipos de barras em estoque. Entretanto, duas características devem ser
levadas em conta:
i) cada coluna do modelo (22.1)-(22.4) não é mais formada simplesmente por um padrão de
corte, mas também contém uma coluna da matriz identidade, devido às restrições (22.3);
ii) os padrões de corte homogêneos não produzem mais uma base (agora a base é formada de
m+N colunas) e simplesmente completar com as colunas das variáveis de folga das
restrições (22.3) podem levar a uma base infactível.
Para este assunto damos a seguinte referência: Poldi (2003).
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
35
6.3 Heurísticas de Arredondamento
A solução obtida pela relaxação da condição de integralidade pode não ser inteira, digamos,
x1 = 20,8, o que significaria que o padrão de corte 1 deveria ser cortado 20,8 vezes, não fazendo
sentido. Entretanto, se arredondarmos para x1 = 20 então a demanda não será atendida, enquanto que
se arredondarmos para x1 = 21 haverá produção em excesso de itens no padrão de corte 1. Alterar o
valor da variável x1 seja para o inteiro inferior ou para o inteiro superior sugere que devemos alterar
também os valores das outras variáveis para completar a demanda ou evitar excessos.
As diversas propostas discutidas na literatura seguem basicamente as abordagens descritas a
seguir e serão classificadas aqui como Abordagens de Padrões Básicos, Abordagens para o
Problema Residual e Abordagens Compostas (ver Wäscher e Gau (1996)). Elas podem ser aplicadas
a problemas de corte de uma ou mais dimensões.
6.4 Abordagens de Padrões Básicos
Procedimento B1: Arredonde todas as componentes não inteiras para o inteiro superior. Este
procedimento, apesar de extremamente rápido, freqüentemente resulta em soluções distantes
do valor ótimo da função objetivo (Wäscher e Gau (1996)).
Procedimento B2: Utilizar B1. Verificar se as freqüências xi > 0 podem ser reduzidas de uma
unidade, sem causar a violação das restrições de demanda. Tão logo uma variável xk, xk > 0,
seja identificada, xk é reduzida de uma unidade (Neumann e Morlock, 1993, cf. Wäscher e
Gau, 1996).
Procedimento B3: Determine uma solução para um problema de corte de estoque que
contenha apenas os padrões que correspondem às variáveis básicas da solução obtida. Este
problema fica definido da seguinte maneira:
minimizar f(x) = c(xj1+xj2+...+xjm)
sujeito a:
aj1xj1+ aj2xj2+ ... +ajmxjm = d
xj10, xj20, ..., xjm0
em que todas as variáveis básicas que já corresponderem a valores inteiros são fixados e a
variável xjk não inteira com maior parte fracionária é arredondada para o inteiro superior e
fixada com este valor.
Resolve-se o problema com estas restrições adicionais. Se a solução for inteira pare,
caso contrário o processo é repetido fixando-se outras variáveis similarmente ao que foi
feito. Como pelo menos uma variável é fixada em cada iteração, o procedimento termina
com uma solução inteira após m iterações, no máximo.
6.5 Abordagens para o Problema Residual
Nesta abordagem todas as componentes não inteiras são arredondadas para o inteiro inferior.
Ao se fazer isto, as frequências obtidas podem não representar uma solução factível para o
problema original, pois não satisfazem a demanda. Desta forma define-se um problema residual,
que difere do problema original somente em relação às demandas dos itens que no residual é muito
menor quando comparado com a demanda do problema original.
Variações sugeridas na literatura para resolução deste problema residual:
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
36
Procedimento R1: Resolver de maneira ótima utilizando um algoritmo exato para resolução
do problema de bin-packing.
Procedimento R2: Resolver o problema residual por uma heurística.
Procedimento R3: Resolver novamente o problema, relaxando-se a integralidade das
variáveis e utilizando o Método Simplex com geração de colunas. Ao chegar a uma solução
com variáveis não inteiras, tornamos a fazer um arredondamento para o inteiro inferior
destas variáveis, resultando em outro problema residual que será tratado da mesma forma e
assim por diante. Este processo termina quando o arredondamento para o inteiro inferior
resultar somente em frequências nulas. Neste caso, este último problema residual é resolvido
por um algoritmo de resolução do problema de bin-packing.
6.6 Abordagens Compostas
As idéias das abordagens de padrões básicos com as do problema residual são combinadas.
Dois procedimentos estão indicados em Wäscher e Gau (1996):
Procedimento C1: Gera-se uma solução viável para o problema original utilizando o
procedimento B3. Com isto um excesso de produção pode ocorrer e sua redução é tentada de
maneira iterativa. O padrão de corte que contém o maior número de itens em excesso é
identificado e sua frequência é reduzida de uma unidade. Repete-se este passo até que não
haja mais excesso. Com isto, a demanda de alguns itens pode não estar sendo atendida.
Desta forma, o problema residual é definido e é resolvido utilizando-se um algoritmo exato
para o problema de bin-packing.
Procedimento C2: Procedimento similar ao C1, mas, ao invés de um algoritmo exato, uma
heurística é aplicada ao problema residual.
Outras propostas de arredondamento podem ser obtidas em Poldi (2003).
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
37
7. O Problema de Corte de Estoque Bidimensional
Neste capítulo consideramos o problema de cortar placas retangulares com dimensões LW
(comprimento L e largura W) para a produção m itens retangulares menores 1 w1, 2
w2,…, m
wm em quantidades predefinidas. Por simplicidade de exposição, consideramos que apenas um tipo
de placa em estoque esteja disponível: LW. Entretanto, a extensão para vários tipos de placas em
estoque pode ser feita como no caso unidimensional. Aplicações deste problema podem ser
encontradas em indústrias de móveis, vidro, metalúrgica, etc.
A estratégia de modelagem utilizada no Capítulo 3 (que consiste em gerar todos os padrões
de corte e então decidir quantas vezes usar cada um deles), bem como o método de solução por
geração de colunas estudado no Capítulo 6, são ainda válidos, diferenciando tão somente na geração
dos padrões de corte, ou seja, após gerar os padrões de corte (que estudaremos a seguir), obtemos os
vetores que contabilizam o número de itens em cada padrão:
a1 =
11
21
1
m
, a2 =
12
22
2
m
, , an =
1
2
n
n
mn
,
em que ij é o número de itens do tipo i (agora um item é um retângulo) no padrão de corte j. O
seguinte problema de otimização linear (relaxando-se a condição de integralidade das variáveis xj)
deve ser resolvido:
minimizar f(x) = c1x1+c2x2+…+cnxn
sujeito a:
11
21
1
m
x1 +
12
22
2
m
x2 +…+
1
2
n
n
mn
xn =
m
2
1
d
d
d
x1 0, x2 0, …, xn 0.
O método simplex com geração de colunas (Capítulo 6) pode ser utilizado, porém deve-se
ter em mente que as colunas correspondem a padrões de corte bidimensionais. Assim, o problema:
maximizar i i
i
m
1
sujeito a:
l Li i
i
m
1
,
i e eiro i m 0 1int , , , .
Que deve ser resolvido a cada iteração do método simplex ( é o vetor multiplicador simplex da
iteração atual) não é mais válido, pois estas restrições modelam um padrão de corte unidimensional.
A seguir, veremos como o subproblema gerador de colunas pode ser resolvido para o caso de
problema de corte bidimensional.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
38
7.1. Geração de Padrões de Corte Bidimensionais
Diferentemente do caso unidimensional, algumas regras devem ser impostas aos cortes para
o caso bidimensional. A seguir, daremos duas definições dos tipos cortes que serão considerados
neste capítulo.
Definição 7.1. Um corte sobre uma placa retangular que produza dois novos retângulos é
chamado corte guilhotinado ortogonal, ou simplesmente, corte guilhotinado. Uma sequência de
cortes guilhotinados, aplicados sobre a placa e sobre os retângulos resultantes produz um padrão
de corte guilhotinado (Figura 7.1).
Figura 7.1. (a) Corte bidimensional guilhotinado; (b) Padrão de corte guilhotinado.
Observe que, como no caso unidimensional, podemos associar um vetor que contabiliza os
itens no padrão:
a = (1 2 …m),
em que i é o número de itens (retângulos) do tipo i no padrão. Para o padrão na Figura 7, o vetor
associado é (considerando m = 5 tipos de itens):
a = (1, 1, 4, 0, 2)T.
Entretanto, note que, dado um vetor associado, o problema de como alocá-los sobre a placa
original (isto é, definir um padrão de corte) não é mais trivial, seja com a exigência do padrão ser
guilhotinado ou não. (Observe que no caso unidimensional esta tarefa é fácil).
Os cortes guilhotinados podem ser organizados em estágios da seguinte forma: Num
primeiro estágio, cortes guilhotinados são feitos sobre a placa (paralelos um ao outro). Em seguida,
num segundo estágio, os retângulos obtidos são cortados perpendicularmente ao cortes do estágio
anterior, e assim por diante, são definidos estágios de corte. O padrão da Figura 7.1(b) foi
construído em quatro estágios.
Definição 7.2. Se o número permitido de estágios é limitado por k, dizemos que o padrão de
corte resultante é um padrão de corte guilhotinado em k-estágios.
Focalizaremos inicialmente os padrões de corte em 2-estágios, isto é, quando no máximo
dois estágios são permitidos. Note, na Figura 7.2, que três faixas foram produzidas, restando, para
cada faixa, a questão de cortar os itens com apenas cortes horizontais, isto é, para cada faixa temos
um problema unidimensional.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
39
Figura 7.2: Um padrão de corte bidimensional guilhotinado 2-estágios
(1º estágio: corte vertical e 2º estágio: corte horizontal).
Note na Figura 7.2 que há um último corte para a obtenção do item 4 dentro da segunda
faixa (que abriga os itens 2 e 4). Entretanto, este tipo de corte, chamado de "apara" não é relevante
para a produção de um bom padrão de corte e não é considerado como um novo estágio
(normalmente é feito à parte, em máquinas de corte menores).
O problema de corte bidimensional guilhotinado em 2-estágios
O problema aqui a ser formulado corresponde ao problema da mochila no caso
unidimensional (a literatura utiliza o termo problema da mochila bidimensional para uma classe de
problemas com duas restrições, o que não modela o problema de corte bidimensional, de modo que
optamos por designar "problema de corte bidimensional" ao problema em questão).
Considere uma placa de dimensões LW (comprimento L e largura W) que deve ser cortada
para a produção de m tipos de itens de dimensões i wi , i=1,…,m. Além disso, a cada item i está
associado um valor de utilidade vi , i=1,…,m.
Seja (1 , 2 ,…, m) o vetor associado a um padrão de corte sobre a placa LW, isto é, i é o
número de itens do tipo i no padrão. O problema é, então, genericamente formulado por:
maximizar v11 + v22 + … + vmm (39.1)
sujeito a:
(1 , 2 ,…, m) corresponde a um padrão de corte
sobre a placa LW (39.2)
No caso de padrões de corte em 2-estágios, a condição (39.2) pode ser modelada da seguinte
forma:
i) Determinar as melhores maneiras de se cortar as faixas: Lw1 , Lw2 … Lwm. Observe que na
faixa Lw1 somente podem ser cortados itens cujas larguras não excedam a w1. A mesma
observação é válida para as demais faixas, de modo que se faz necessário a definição de conjuntos
dos itens que podem ser cortados numa faixa Lwk :
Wk = { i tal que: wi wk }.
As faixas são definidas somente para larguras diferentes, pois se wk = wj então as faixas
Lwk e Lwj são iguais. Seja, portanto, r o número de larguras diferentes. Por simplicidade de
notação, supomos que as r primeiras larguras sejam as diferentes, ou seja, consideramos somente as
faixas: Lw1 , Lw2 … Lwr . O exemplo a seguir torna mais claro o assunto.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
40
Exemplo 7.1. Considere o problema de corte bidimensional, em que a placa LW = 110110
deva ser cortada para a produção de quatro itens cujos comprimentos, larguras e valores de
utilidade estão na tabela abaixo:
i i wi vi
1 2030 6
2 3040 12
3 5060 30
4 6060 36
Desta forma, um padrão de corte na placa 110110, em que os cortes no primeiro estágio são
horizontais (poderíamos, analogamente, definir cortes verticais no primeiro estágio) são obtidos
por combinar faixas: 11030, 11040 e 11060. Note que neste caso, r=3, ou seja, apenas três
tipos de faixas devem ser desenhadas. Definimos os conjuntos dos itens que podem ser cortados
em cada faixa:
Faixa 1: 11030 W1 = { 1 }
Faixa 2: 11040 W2 = { 1, 2 }
Faixa 3: 11060 W3 = { 1, 2, 3, 4 }
Observe que qualquer faixa que não tenha as larguras 30, 40 ou 60 introduziria uma tira de
perda inevitável dentro faixa e, portanto, deve ser evitada. Por exemplo, se considerássemos uma
faixa 11035, então uma tira de 1105 seria inevitavelmente perdida, pois somente
conseguiríamos cortar desta faixa itens do tipo 1 de largura 30.
Cada faixa deve ser cortada para a produção dos itens demandados. Isto deve ser feito de
modo a obter o maior valor de utilidade, ou seja, cada faixa deve ser aproveitada da melhor maneira
possível. Assim, para cada faixa Lwk (k=1,…,r), devemos resolver o seguinte problema da
mochila:
k
k i iki W
V Máximo v (40.1)
sujeito a:
Ll
kWiiki
(40.2)
ik 0, inteiro, i=1,..,m (40.3)
em que ik é o número de itens do tipo i na faixa Lwk.
Após resolvidos os r problemas da mochila (40.1)-(40.3), temos em mãos as melhores faixas
e com elas podemos compor o padrão de corte bidimensional.
Exemplo 7.1 (continuação a). Considerando as três faixas: 11030, 11040 e 11060 temos
três problemas da mochila a ser resolvidos:
Faixa 1: 11030, W1 = { 1 }
V1 = máximo 6 11
sujeito a: 20 11 110
11 0 inteiro.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
41
1 1 1 1 1
L=110
1 2 2 2
L=110
4 3
L=110
Solução: 11 = 5, V1 = 30.
Figura 7.3: Padrão de corte da Faixa 1 do Exemplo 7.1
Faixa 2: 11040, W2 = { 1, 2 }
V2 = máximo 6 12 + 12 22
sujeito a: 2012 + 3022 110
120, 22 0 e inteiros.
Solução: 12 = 1, 22 = 3, V2 = 42.
Figura 7.4: Padrão de corte da Faixa 2 do Exemplo 7.1
Faixa 3: 11060, W3 = { 1, 2, 3,4 }
V3 = máximo 6 13 + 12 23 + 30 33+ 36 43
sujeito a: 20 13 + 30 23 + 50 33 + 60 43 110
13 0, 23 0, 33 0, 43 0 e inteiros.
Solução: 13 = 0, 23 = 0, 33 = 1, 43 = 1, V3 = 66.
Figura 7.5: Padrão de corte da Faixa 3 do Exemplo 7.1
Note que assim construídos, V1 = 30, V2 = 42 e V3 = 66 são os valores de utilidade das
faixas 1, 2 e 3, respectivamente, isto é, cada vez que a faixa 1 for usada no padrão de corte
bidimensional, o valor V1=30 é obtido, pois ela carrega consigo a melhor solução com 5 itens do
tipo 1.
Segue, então, a segunda etapa da construção do melhor padrão de corte bidimensional, que
consiste em arranjar estas faixas sobre a placa LW = 110110.
ii) Determinar quantas vezes cada faixa deve ser utilizada no padrão bidimensional.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
42
4 3
L=110
1 1 1 1 1
1 2 2 2 W=110
Como cada faixa k tem largura wk e a largura da placa é W, temos então de resolver o
seguinte problema da mochila:
V= maximizar V11 + V22 + …+Vrr (41.1)
sujeito a: w11 + w22 + …+wrr W (41.2)
10, 2 0,…, r0 e inteiros. (41.3)
Exemplo 7.1 (continuação b). Após a resolução das três mochilas, que definem os valores de
utilidade para cada faixa (bem como, quais itens devem ser cortados), resta ainda o problema da
mochila que define quantas vezes as faixas devem ser utilizadas para formar o padrão de corte
bidimensional:
V = maximizar 30 1 + 42 2 + 663
sujeito a: 301 + 402 + 603 110
10, 2 0, 30 e inteiros.
Solução: 1 =1, 2 = 1, 3 = 1, V = 138.
Figura 7.6: Padrão de corte (solução) do Exemplo 7.1
Resumo do procedimento:
Solução do problema de corte bidimensional guilhotinado em 2-estágios:
i) Resolva r problemas da mochila (40.1)-(40.3) obtendo os valores de utilidade de cada faixa;
ii) Resolva o problema da mochila (41.1)-(41.3) para determinar o padrão de corte ótimo.
O vetor associado ao padrão de corte obtido pelo procedimento acima (Figura 7.6), que
determina o número de itens no padrão é dado por:
a =
r
1kkmkm
r
1kkk22
r
1kkk11
(42)
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
43
A rigor, as somatórias em (42) são restritas às faixas que podem conter o item, isto é,
i = kWi|k
kik , pois ik =0 se iWk. O exemplo a seguir esclarece este assunto.
Exemplo 7.1 (continuação c). O número de itens no padrão de corte obtido pelo procedimento
acima é facilmente obtido. Recorde que cada faixa pode ser composta dos seguintes itens:
Faixa 1: W1 = { 1 }
Faixa 2: W2 = { 1, 2 }
Faixa 3: W3 = { 1, 2, 3, 4 }
Portanto, o item 1 pode aparecer nas três faixas (é o item de menor largura), nas quantidades:
11 =5, 12 = 1 e 13 = 0 (reveja as soluções de cada faixa).
Como cada faixa é cortada nas quantidades: 1 =1, 2 = 1, 3 = 1, segue que o número de itens
do tipo 1 que aparece no padrão de corte bidimensional é dado por:
1 = 11 1 + 12 2 + 13 3 = 5*1 + 1*1 + 0*1 = 6.
Analogamente, podemos calcular o número de itens do tipo 2, 3 e 4 no padrão de corte
bidimensional (observe que o item 2 só aparece nas faixas 2 e 3):
2 = 22 2 + 23 3 = 3*1 + 0*1 = 3,
(observe que o item 3 só aparece na faixa 3):
3 = 33 3 = 1*1 = 1,
(observe que o item 4 só aparece na faixa 3):
4 = 43 3 = 1*1 = 1.
Portanto, o vetor associado ao padrão de corte bidimensional que contabiliza os itens nele
contidos é:
a =
1
1
3
6
4
3
2
1
de modo que se cortarmos X placas conforme esse padrão de corte (Figura 7.6), obteremos 6X
itens do tipo 1, 3X itens do tipo 2, etc., ou seja, cada coordenada do vetor Xa fornece o total de
itens produzidos, como já havíamos utilizado na modelagem unidimensional.
Observe que o procedimento anterior produz padrões de corte em 2-estágios, em que o
primeiro estágio é obtido por cortes horizontais (pois faixas Lwk são produzidas). Portanto, este
procedimento pode ser repetido, considerando o primeiro estágio com cortes verticais para a
produção das faixas kW, e redefinindo os conjuntos dos itens que podem ser cortados das faixas
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
44
1
L=110
60
wk
li
wi
wi
verticais: Lk = { i tal que i
k }, bem como os problemas (40.1)-(40.2) e (41.1)-(41.2)
coerentemente.
Exercício. Detalhe a construção de padrões de corte guilhotinados em 2-estágios, de modo que o
primeiro estágio é formado por cortes verticais.
Note que o padrão de corte obtido no Exemplo 7.1 (Figura 7.6) exige corte além do segundo
estágio, chamado "apara". Isto não caracteriza um padrão de corte 3-estágios, pois não há
combinação de itens após o segundo estágio, simplesmente uma apara final. Este tipo de padrão de
corte 2-estágios é também chamado inexato e tem importância prática, pois normalmente uma serra
manual menor, limitada a cortar peças pequenas, pode ser utilizada para a apara final. Caso não seja
possível esta apara final, devemos então considerar o conjunto dos itens que podem ser cortados de
cada faixa por:
Wk = { i tal que: wi = wk }.
Neste caso, os itens cortados de cada faixa têm a mesma largura e, portanto, não tem a apara
e o problema de corte em 2-estágios é chamado exato.
Algumas vezes, o equipamento de corte que faz a apara (eventualmente pode ser o mesmo
que faz o corte principal e, portanto, a apara reduz a produtividade do equipamento) é usado para
cortes adicionais simples. Por exemplo, se iWk (isto é, wi wk), porém, wi é muito menor do que
wk, de modo que vários itens do tipo i podem ser obtidos numa faixa vertical de comprimento li
(observe Figura 7.7), então ao invés de um único item i no problema (40.1)-(40.3), é usado um
"item" que consiste em
i
k
w
w itens tipo i e seu valor de utilidade é vi
i
k
w
w.
Figura 7.7: Faixa Lxwk.
Vejamos um exemplo para elucidar este ponto.
Exemplo 7.1 (continuação d). Na continuação a) do exemplo, observe que para efeito de
construção da faixa 3 de largura 60, o item 1 poderia ser incluído, já que sua largura é 30. Assim,
se o item 1 é incluído de fato na faixa 3 (ou seja, 13 > 0), então teríamos uma solução do tipo:
Figura 7.8: Padrão de corte para a Faixa 3 do exemplo 7.1.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
45
Porém, a "perda" provocada pela apara é na realidade um novo item 1. Em outras palavras,
temos 2 itens do tipo 1: 230
60
w
w
1
3
. Assim, ao resolvermos o problema da mochila para
determinarmos o melhor aproveitamento da faixa 3, podemos considerar o seguinte problema:
Faixa 3: 11060, W3 = { 1, 2, 3,4 }
V3 = máximo 12 '13 + 12 23 + 30 33+ 36 43
sujeito a: 20 '13 + 30 23 + 50 33 + 60 43 110
13 0, 23 0, 33 0, 43 0 e inteiros.
Neste caso o problema tem solução alternativa (além daquela já apresentada):
Figura 7.9: Padrão de corte para a Faixa 3 do exemplo 7.1.
'13 = 3 13 = 6 (pois o "item" 1 representa na verdade 2 itens do tipo 1), 23=0, 33=1, 43 =0.
Observe que se o valor de utilidade do item 1 fosse, digamos v1 = 7, então esta solução seria
melhor que aquela da Figura 7.5 e o valor de utilidade da faixa V3 seria 72.
Considerou-se até agora que os itens sejam cortados seguindo a orientação da chapa, isto é,
admitiu-se que os itens não sofrem rotações de 90 graus ao serem arranjados num padrão de corte.
Se isto não for válido para algum item i, então basta considerá-lo como dois itens diferentes de
dimensões (i,wi) e (wi, i
), respectivamente.
Em certas situações práticas, é necessário considerar-se o caso restrito, em que a quantidade
de um mesmo item no padrão é limitado. Outros métodos para resolver o problema guilhotinado 2-
estágios restrito podem ser encontrados em Vianna et al. (2000), Hifi e Roucairol (2001) e Lodi et
al. (2003).
São poucos os trabalhos encontrados na literatura que apresentam modelos matemáticos para
gerar padrões guilhotinados estagiados. Podemos citar Lodi et al. (2003) e Yanasse e Morabito
(2003).
Padrão bidimensional guilhotinado 1-grupo
Padrões guilhotinados 1-grupo (ou padrão tabuleiro) pertencem a uma classe especial dos
padrões 2-estágios em que os cortes do segundo estágio são realizados simultaneamente nas faixas
resultantes do primeiro estágio (Gilmore e Gomory, 1965), ou seja, os cortes do segundo estágio são
produzidos junto com os cortes do primeiro estágio, sem mover as faixas e, desta maneira,
economizando tempo de processamento da máquina (Figura 7.10).
3
L=110
60
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
46
Figura 7.10: Padrão de corte 1-grupo.
Embora estes padrões sejam mais simples que os padrões 2-estágios, uma dificuldade
adicional é introduzida porque as faixas não podem mais ser cortadas de forma independente. Seja
Ri o retângulo (i,wi), i =1 ,.., m. Considere a matriz, de ordem m, = (ik), definida como:
se
0 caso contrário
r r i k
ik
, R ( ,w )
,
em que r é o valor do retângulo Rr (p.e., a área de um item do tipo r). Note que ii=i, i = 1,...,m.
As variáveis que definem um padrão 1-grupo são:
i = número de vezes que o comprimento i é cortado ao longo de L
k = número de vezes que a largura wk é cortada ao longo de W.
Note que o produto ik define o número de itens de tamanho (i,wk) no padrão. Logo, o
padrão 1-grupo mais valioso é obtido resolvendo-se o seguinte programa quadrático inteiro:
maximizar 1 1
m m
ik i ki k
sujeito a:
1
m
i ii
L
1
m
k kk
w W
i 0, k 0, inteiros, i, k = 1, ..., m.
O modelo acima envolve dificuldades de solução. Extensões do modelo tanto para o caso
restrito quanto o caso não-exato, assim como linearizações dos mesmos, foram estudados em
Yanasse e Morabito (2003). Estes modelos também são de difícil solução.
Heurísticas para o problema 2-estágios guilhotinado 1-grupo foram apresentadas em
Gilmore e Gomory (1965), Morabito e Arenales (2000) e Yanasse and Katsurayama (2003).
Além de padrões de corte 2-estágios e 1-grupo, existem na literatura vários outros tipos de
problemas para problemas de corte bidimensionais assim como outros métodos de solução para este
problema.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
47
8. Problemas Tridimensionais
Problemas bidimensionais envolvem maiores dificuldades geométricas, comparativamente
aos problemas unidimensionais. Similarmente, problemas tridimensionais envolvem dificuldades
geométricas ainda maiores. Nesta seção discute-se um modelo matemático para PCE's
tridimensionais.
O principal problema tridimensional é o carregamento de contêineres. Para Bischoff e
Marriott (1990), na prática o problema aparece em dois casos importantes:
i) quando uma combinação de contêineres deve ser escolhida para transportar uma dada carga;
ii) quando o maior volume de uma dada carga deve ser escolhido para ser transportado em um
único contêiner.
Além do arranjo geométrico das caixas dentro de cada contêiner, pode haver outras
restrições, por exemplo: estabilidade da carga; orientação das caixas dentro do contêiner; número de
caixas que podem ser empilhadas umas sobre as outras; grupos de itens que devem ficar juntos
dentro do contêiner (por terem características semelhantes ou por serem descarregados juntos);
grupos de itens que devem permanecer separados dentro do contêiner (secos, resfriados, produtos
químicos); tecnologia dos equipamentos de manuseio (por exemplo, empilhadeira); limite de peso
suportado pelo contêiner; distribuição de peso dentro do contêiner, etc.
A abordagem de Gilmore e Gomory também pode ser aplicada em problemas
tridimensionais. Por exemplo, considere um problema de corte de estoque que consiste em
minimizar o número de contêineres (objetos) de dimensões (L, W, H) necessários para empacotar
um conjunto de caixas retangulares (itens) de dimensões (i, wi, hi), i = 1, ..., m. Similarmente aos
modelos das seções anteriores, podemos definir o seguinte modelo tridimensional:
minimizar 1
p
kkx
sujeito a:
1
p
ik k ika x b , i = 1, ..., m
xk 0 e inteiro, k = 1, ..., p.
O sub-problema gerador de padrões tridimensionais (colunas) é dado por:
maximizar 1
m
i ikia
sujeito a:
(a1k, a2k, …, amk) representa um padrão tridimensional
0 aik bi e inteiro, i = 1, ..., m.
em que i é a variável dual associada à i-ésima restrição do modelo. A abordagem de Gilmore e
Gomory pode funcionar bem quando bi é consideravelmente maior do que o produto
i i iL / W / w H / h , que corresponde ao número máximo de caixas do tipo i no contêiner (L,
W, H).
Assim como no caso bidimensional, as dificuldades para resolver o modelo são grandes, se
comparadas com um problema da mochila unidimensional, e dependem do tipo de padrão
tridimensional (por exemplo, guilhotinado ou não-guilhotinado, restrito ou irrestrito, etc.). Além das
restrições geométricas envolvidas (os empacotamentos devem caber dentro dos contêineres, e duas
caixas não podem ocupar o mesmo espaço), outras restrições devem ser eventualmente
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
48
consideradas, como a estabilidade do carregamento.
Restrições de estabilidade do carregamento são difíceis de serem modeladas. Na prática, elas
são verificadas movimentando-se o carregamento produzido. Apesar de uma definição formal de
estabilidade do carregamento estar além do escopo deste trabalho.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
49
9. Bibliografia
[1] Arenales, M., Armentano, V., Morabito, R., Yanasse, H., (2007). Pesquisa Operacional. Rio
de Janeiro: Elsevier. Editora Campus, 523p.
[2] Arenales, M. N.; Morabito, R. Yanasse, H., (Eds.) (2004) Problemas de corte e
empacotamento, Minicurso, XXXVI SBPO – Simpósio Brasileiro de Pesquisa Operacional,
São João Del Rei, MG, de 23 a 26 de novembro, 80 p.
[3] Barnes, F (1979). Packing the maximum number of m x n tiles in a large p x q rectangle.
Discrete Mathematics, vol. 26, pp. 93-100.
[4] Bischoff, E. e M. Marriott (1990). A comparative evaluation of heuristic for container
loading. Eur.J.Oper.Res. 44, 267-276.
[5] Bortfeldt, A., Gehring, H (2001). A Hybrid Genetic Algorithm for the Container Loading
Problem. European Journal of Operational Research, v.131, p.143-161.
[6] Brooke, A., Kendrick, D., Meeraus, A. e Rosenthal, R.E. (1992). GAMS: A user’s guide,
Release 2.25. The Scientific Press.
[7] Brown, A. (1971), Optimum Packing and Depletion. MacDonald - London and American
Elsevier Inc., New York, NY.
[8] Chvatal, V. (1983). Linear Programming, W.H. Freeman.
[9] Coffman, E., Garey, M. e Johnson, D. (1996). Approximation algorithms for bin packing: A
survey. In D.S. Hochbaum (ed), Approximation algorithms for NP-hard problems, PWS
Publ., Boston.
[10] Dowsland, K. e Dowsland, W. (1992). Packing Problems, European Journal of Operational
Research, 56, 2-14.
[11] Dyckhoff, H. (1981), "A New Linear Programming Approach to the Cutting Stock
Problem", Operations Research 29, pp.1092-1104.
[12] Dyckhoff, H. (1990). A Typology of Cutting and Packing Problems, European Journal of
Operational Research, 44, 145-159.
[13] Dyckhoff, H., Kruse, H.-J., Abel, D. e Gal, T. (1985). Trim Loss and Related Problems,
Omega, 13, 59-72.
[14] Dyckhoff, H. e Finke, U. (1992). Cutting and Packing in Production and Distribution: A
Typology and Bibliography, Springler-Verlag Co, Heidelberg.
[15] ESICUP - Euro Special Interest Group on Cutting and Packing. Available in:
http://www.fe.up.pt/esicup/ (accessed in 2009).
[16] Garey, M.R.; Graham, R.L.; Johnson, D.S.; Knuth, D.E. (1978). Complexity results for
bandwidth minimization, SIAM Journal of Applied Mathematics, 34(3):477-495.
[17] Garey, M.R e Johnson, D.S. (1979). Computers and Intractability A guide to the theory of
NP-completeness, W.H. Freeman and Co.
[18] Gilmore, P.C. e Gomory, R.E. (1961). A Linear Programming Approach to the Cutting
Stock Problem. Operations Research, 9, 849-859.
[19] Gilmore, P.C. e Gomory, R.E. (1963). A Linear Programming Approach to the Cutting
Stock Problem, Part II. Operations Research, 11, 863-888.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
50
[20] Gilmore, P.C. e Gomory, R.E. (1965). Multistage Cutting Stock Problems of Two and More
Dimensions. Operations Research, 13, 94-120.
[21] Gilmore, P. e Gomory, R. (1966). The Theory and Computation of Knapsack Functions,
Operations Research 14, p.1045-1074.
[22] Golden, B. (1976). Approaches to the Cutting Stock Problem. AIIE Transactions, 8, 265-
274.
[23] Haessler, R.W. (1991). Cutting stock problems and solutions procedures, European Journal
of Operational Research, 54: 141-50.
[24] Herz, J. (1972). Recursive computational procedure for two-dimensional stock cutting. IBM
Journal of Research and Development 16, 462-469.
[25] Hifi, M. and Roucairol, C. (2001). Approximate and exact algorithms for constrained
(un)weighted two-dimensional two-staged cutting stock problems. Journal of Combinatorial
Optimization 5, 465-494.
[26] Hinxman, A.I. (1980). The Trim-Loss and Assortment Problems: A Survey. European
Journal of Operational Research, 5, 8-18.
[27] Hoto, R. (2001). O problema da mochila compartimentada aplicada no corte de bobinas de
aço. Tese de doutorado, COPPE/UFRJ.
[28] Hoto, R., Maculan, N., Marques, F. e Arenales, M. (2003). Um problema de corte com
padrões compartimentados, Pesquisa Operacional, 23 (1), p. 169-187.
[29] Lasdon, L.S. (1970). Optimization Theory for Large Systems. MacMillan, New York.
[30] Lodi, A. e Monaci, M. (2003). Integer programming models for 2-staged two-dimensional
knapsack problems. Mathematical Programming, 94, 257-278.
[31] Marques, F. (2004), O problema da Mochila Compartimentada: Modelos, métodos e
aplicações, Tese de doutorado, ICMC/USP.
[32] Marques, F. e Arenales, M. (2002). O problema da mochila compartimentada e aplicações,
Pesquisa Operacional, 22 (3), p. 285-304.
[33] Martello, S. e Toth, P. (1990). Knapsack Problems: Algorithms and Computer
Implementations. J. Wiley & Sons, West Sussex.
[34] Morabito, R. (1992). Uma Abordagem em Grafo-E/OU para o Problema de
Empacotamento: Aplicação ao Carregamento de Páletes e Contêineres. Tese de Doutorado,
Escola de Engenharia de São Carlos, USP.
[35] Morabito, R. e Arenales, M. (1992). Um exame dos Problemas de Corte e Empacotamento.
Pesquisa Operacional, 12(1), 1-20.
[36] Morabito, R. e Arenales, M. (2000). Optimizing the cutting of stock plates in a furniture
company, International Journal of Production Research 38(12), 2725-2742.
[37] Poldi, K. C. (2003). Algumas extensões do problema de corte de estoque. Dissertação de
Mestrado, ICMC - USP.
[38] Sweeney, P.E. e Paternoster, E.R. (1992). Cutting and Packing Problems: A Categorized
Application-Oriented Research Bibliography. Journal of Operational Research Society, 43,
691-706.
[39] Vianna, A. C., (2000). Problemas de corte e empacotamento. Tese de Doutorado. ICMC –
USP – São Carlos, Brasil.
V Simpósio de Matemática Presidente Prudente – SP, 10-13 de agosto de 2010
51
[40] Viswanathan, K. V. e Bagchi, A. (1993). Best-first search methods for constrained two-
dimensional cutting stock problems. Operations Research 41(4), 768-776.
[41] Wäscher, G., Gau, T., 1996. Heuristics for the integer one-dimensional cutting stock
problem: a computational study, OR Specktrum 18, 131-144.
[42] Wäscher, G. e Gau, T. (1996). Heuristics for the Integer One-dimensional Cutting Stock
Problem: a computational study. OR Spektrum, 18, 131-144.
[43] Wäscher G, Haussner H, Schumann H., An improved typology of cutting and packing
problems. European Journal of Operational Research, 183:1109-1130, (2007).
[44] Yanasse, H.H., Katsurayama, D.M (2003). Checkerboard patterns: proposals for its
generation. Forthcoming in International Transactions in Operational Research.
[45] Yanasse, H. e Morabito, R. (2003). Linear models for one-group two-dimensional guillotine
cutting problems. Submetido para publicação.