xxxvi sbpo simpósio brasileiro de pesquisa operacional são ... · problemas improváveis de serem...

80
XXXVI SBPO Simpósio Brasileiro de Pesquisa Operacional São João del Rei - MG 23 a 26 de novembro Mini curso 3 Problemas de Corte e Empacotamento Marcos N. Arenales Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - Campus de São Carlos [email protected] Reinaldo Morabito Departamento de Engenharia de Produção Universidade Federal de São Carlos [email protected] Horácio Hideki Yanasse Laboratório de Matemática Aplicada Instituto de Nacional de Pesquisas Espaciais [email protected]

Upload: nguyennhu

Post on 23-Nov-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

XXXVI SBPO Simpósio Brasileiro de Pesquisa Operacional

São João del Rei - MG 23 a 26 de novembro

Mini curso 3 Problemas de Corte e Empacotamento

Marcos N. Arenales

Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - Campus de São Carlos

[email protected]

Reinaldo Morabito Departamento de Engenharia de Produção

Universidade Federal de São Carlos [email protected]

Horácio Hideki Yanasse

Laboratório de Matemática Aplicada Instituto de Nacional de Pesquisas Espaciais

[email protected]

2691

Sumário Prefácio - 3

1. Introdução - 5

2. Problemas Básicos de Corte - 7 2.1. O Problema da Mochila - 7

2.2. Problemas de Várias Mochilas - 11 3. O Problema de Corte de Estoque Unidimensional: Modelos Matemáticos - 14

3.1. Definição do Problema de Corte de Estoque - 14 3.2. Apenas um tipo de barra em estoque: quantidade ilimitada - 17

3.3. Diversos tipos de barras em estoque: quantidades ilimitadas - 21 3.4. Diversos tipos de barras em estoque: quantidades limitadas - 22

4. Breve Revisão da Otimização Linear - 24 4.1. Definições e Resultados - 24

4.2. O Método Simplex - 25 4.3. Princípios da Geração de Colunas - 27

5. O Problema de Corte de Estoque Unidimensional: Métodos - 29 5.1. O Método Simplex com Geração de Colunas: Um tipo de barra – 29

5.2. O Método Simplex com Geração de Colunas: Diversos tipos de barra (a ser incluído) - 30

5.3. Heurísticas de Arredondamento - 30 6. O Problema de Corte de Estoque Bidimensional – 33

6.1. Geração de Padrões de Corte Bidimensionais - 34 7. Problemas Tridimensionais - 49

8. Estudos de Casos (tópico a ser incluído) - 54 9. Problemas Correlatos e Integrados – 55

9.1 Perdas × Produtividade – 55 9.2 Redução do número de Padrões de Corte – 54

9.3 Problema de Sortimento – 56 9.4 Minimização do Tempo de Corte (tópico a ser incluído) – 56

9.5 Sequenciamento de Padrões de Corte – 56 9.6 Problema Integrado de Corte de Estoque e Sequenciamento de Padrões – 58

9.7 Problema Integrado de Lote e Corte (tópico a ser incluído) - 66

10. Bibliografia - 67

2692

Prefácio

O objeto de estudo neste texto é os Problemas de corte & empacotamento, 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 cortagem, 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 cortagem 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 para a 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

2693

(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.apdio.pt/sicup> ou www.mat.uel.br/spektrum/ <http://www.mat.uel.br/spektrum/> . 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 n. 680082/95-6) e FAPESP (processo n. 1995/9522-0, n. 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.

O presente texto foi elaborado tendo como base notas ou apostilas de cursos ou minicursos sobre corte e empacotamento preparados e ministrados anteriormente pelos autores. Assim, cabe salientar que neste texto foram reproduzidos diversos trechos dessas notas e/ou apostilas, mas não nos preocupamos em fazer uma indicação explícita disto.

2694

1. Introdução O problema de empacotamento consiste, genericamente, em empacotar

unidades pequenas dentro de uma unidade grande, de forma que certo objetivo seja otimizado. Um exemplo desse problema consiste em arranjar o maior volume possível de caixas dentro de um contêiner. Por outro lado, o problema de corte, de forma genérica, consiste 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.

Cortar unidades maiores em unidades menores ou empacotar unidades menores dentro de unidades maiores são problemas idênticos, considerando que um item cortado de uma certa posição pode ser pensado como alocado àquela posição. (Obviamente, os processos de cortagem 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 cortagem. 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 lagrangiana, busca em grafos e heurísticas. Na figura 1 podemos visualizar um exemplo de plano de corte gerado em um objeto unidimensional.

Vale salientar que, dificilmente obtemos um plano de corte que utilize todo o objeto. Temos, então, uma perda como ilustrado na figura 1.

Os problemas de cortes, conforme [Garey e Johnson, 1979], pertencem a uma classe de problemas denominada NP-completos. Grosso modo, 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 puder ser resolvido em um tempo polinomial, então todos os problemas da classe terão solução em tempo polinomial, porém parece pouco provável tal obtenção. Este tem sido o motivo da pesquisa em métodos heurísticos que produzem soluções “boas”, sem garantia de otimalidade.

Quando uma quantidade elevada de itens deve ser produzida, temos um

Figura 1: Um plano de corte

Bobina

L

2695

problema em que a solução exige a cortagem 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.

Um problema é dito unidimensional quando apenas uma dimensão é relevante no processo de cortagem (veja figura 1). 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.

Suponha que um objeto (barra, bobina, etc.) deva ser cortado ao longo de seu comprimento para a produção de itens de comprimentos especificados. Cada item tem um valor associado chamado “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: como obter os itens nos tamanhos especificados, cortando-se o objeto dado de modo a obter o máximo o valor de utilidade total, dado pela soma dos valores de utilidade dos itens obtidos.

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 2, a seguir, exibe uma representação de problemas de corte em duas dimensões.

Entre os problemas bidimensionais podemos citar alguns já 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.

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 no corte de peças de vestuário.

Figura 2: Plano de corte bidimensional.

Placa Retangular

W

L

2696

Outros são problemas do tipo 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 empacotamento 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 e empacotamento são apresentados.

2697

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 cortada ao longo de seu comprimento em itens (pedaços) 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:

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 3 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, os quais podem ser produzidos em quaisquer quantidades.

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;

33 33 40 90

Perda (b)

200

(a)

Figura 3. a) Barra a ser cortada; b) Uma solução factível.

2698

• vi: valor de utilidade do item tipo i, i=1,…,m;

• li: 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 então ser formulado por:

maximizar φ = v1x1 + v2x2 + …+ vmxm (1.1) sujeito a: l1x1 + l2x2 + …+ lmxm ≤ L, (1.2)

xi ≥ 0 e inteiro, i=1,…,m. (1.3)

O problema (1.*) é 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 R$ li, i=1,…,m. O valor total da compra não pode ultrapassar R$ 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.*). 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: l1x1+l2x2 + …+ lmxm ≤ L, (2.2) 0 ≤ xi ≤ bi e inteiro, i=1,…,m. (2.3)

O problema (2.*) é 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 = 10

, ;, .

se o item i for cortadocaso contrario

i=1,…,m.

e o problema é formulado por:

maximizar φ = v1x1 + v2x2 + …+ vmxm (3.1)

sujeito a: l1x1+l2x2 + …+ lmxm ≤ L, (3.2)

xi=0 ou 1, i=1,…,m. (3.3)

2699

Este é 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 li unidades da capacidade da máquina.

Limitações no número de facas Outras restrições podem ainda surgir decorrentes do processo de cortagem. Por exemplo, suponha que a quantidade total de itens cortados seja limitada por F. Portanto uma nova restrição deve ser incluída (considere o problema (1.*)):

maximizar φ = v1x1 + v2x2 + …+ vmxm (4.1)

sujeito a: l1x1 + l2x2 + …+ lmxm ≤ L, (4.2)

x1 + x2 + … + xm ≤ F-1, (4.3)

xi ≥ 0 e inteiro, i=1,…,m. (4.3)

Este tipo de restrição adicional ocorre no corte de bobinas de papel ou de aço, pois o processo de cortagem consiste em desenrolar cada bobina-mestre (objeto a ser cortado) que desliza sobre facas ou tesouras, cujas posições foram previamente fixadas, ilustrado na figura 4. O número das facas é limitado por F+1 (na prática, algo em torno de 8 ou 9), sendo que duas facas são utilizadas nas beiradas das bobinas para eliminar irregularidades.

Outras condições podem ainda ser necessárias, como por exemplo, suponha 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 limitadas superior e inferiormente e, além disso, a inclusão de um compartimento produz uma perda da capacidade da mochila original. Tal problema surge 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 para finalmente serem recortadas na produção de itens de mesma espessura. Este problema é chamado de Problema da Mochila Compartimentada.

Figura 4. Corte de bobina com 5 facas.

2700

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.

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;

• li: 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 =

contrário.caso0,cortada;forjbarraase1,

• xij =

contrário.caso0,j;barradacortadoforiitemose1,

Podemos então escrever o problema como:

2701

minimizar CUSTO = c yj jj

N

=∑

1

(5.1)

sujeito a:

∑=

=≤m

1ijjiji N,,1jyLxl L (5.2)

x i mijj

N

=∑ = =

1

1 1,..., (5.3)

xij = 0 ou 1, yj = 0 ou 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 os quais têm o mesmo custo c, de modo que a função objetivo (5.1) corresponde a minimizar o total de caixas.

Se houver repetições de itens, digamos, bi itens de mesmo comprimento li devem ser produzidos, então (5.3) e (5.4) são alteradas. Temos então o problema:

minimizar CUSTO = c yj jj

N

=∑

1

(6.1)

sujeito a:

∑=

=≤m

1ijjiji N,,1jyLxl L (6.2)

x b i mijj

N

i=

∑ = =1

1,..., (6.3)

xij ≥ 0 e inteiro, yj = 0 ou 1, i=1,...,m, j=1,...,N. (6.4)

Problema 2: seleção de itens (todas barras serão cortadas)

Analogamente 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. O objetivo agora será de maximizar o valor de utilidade total, que pode ser formulado por:

maximizar UTILIDADE = i

m

i ijj

N

v x==∑∑

11

(7.1)

sujeito a:

l x L j Ni ij ji

m

≤ ==∑ 1

1

, ,L (7.2)

x i mijj

N

=∑ ≤ =

1

1 1, ,L (7.3)

xij = 0 ou 1, i=1,...,m, j=1,...,N. (7.4)

2702

A repetição de itens pode ser considerada pela alteração conveniente das restrições (7.3) e (7.4), analogamente ao problema (6). Observe que se bi (a quantidade máxima de repetições do item de comprimento li) 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 a seguir.

2703

3. O 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 (p.ex., barras de comprimentos 210 cm., 215 cm. etc.) podendo haver ou não limitação de estoque. Diferentes objetivos podem também ser definidos. Todos estes casos estão descritos e modelados a seguir

A solução deste problema terá muitos objetos igualmente cortados, o que sugere uma modelagem matemática alternativa àquela descrita na seção 2.2 (problema (6.*)). Inicialmente consideramos os dados relativos à demanda, comum a todos os casos.

Dados de demanda:

• m: número de tipos de itens;

• li: 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á: dii

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 30cm (d1=1000, l1=30);

• 1250 peças de comprimento 42 cm (d2=1250, l2=42) e

• 2000 peças de comprimento 45 cm (d3=2000, l3=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 2.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, , ,L m ),

2704

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, , ,L 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):

l l l Le eiros

m m

m

1 1 2 2

1

8 10 0 8 2

α α αα α

+ + + ≤≥ ≥

L

L

, ( . ), , int . ( . )

supondo que o comprimento do objeto seja L.

Exemplo 2.1. Considere um objeto de comprimento L=120 cm a ser cortado para a produção de 3 tipos de itens de comprimentos: l1=30 cm, l2=42 cm e l3=45 cm. A seguir damos alguns possíveis padrões de cortes (o pedaço pintado é considerado perda):

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 5 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 2.1 o comprimento do objeto fosse L=121, então o padrão 1 seria factível.

Padrão 1: 30 30 30 30 ⇒ a1 = (4, 0, 0)T

Padrão 2: 42 42 36 ⇒ a2 = (0, 2, 0)T

Padrão 3: 3045 45 ⇒ a3 = (0, 0, 2)T

Padrão 4: 3045 45 ⇒ a4 = (1, 0, 2)T

Figura 5. Padrões de corte e vetores associados.

30 30 30 30

121

0,3 0,3 0,3

Figura 5a. Padrão de corte com perda intrínseca

2705

Para construir padrões de corte factíveis, os dados no sistema (8.*) devem ser alterados, pela inclusão da perda intrínseca (largura da serra), que denotamos por: σ, no comprimento do item, ou seja, o item deve ser considerado de comprimento: li+σ. Observe, entretanto, que um corte a mais é computado no último item. Para contornar esta dificuldade, basta aumentar o comprimento do objeto: L+σ.

De outra maneira, considerando li, 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) mmll αα ++L11 é o comprimento total dos itens no padrão;

b) mαα ++L1 é o número de itens;

c) 11 −++ mαα L é o total de cortes realizados e,

d) σ×( 11 −++ mαα L ) é a perda decorrente da largura da serra.

Portanto, a desigualdade (8.1) deve ser modificada para:

mmll αα ++L11 + σ×( 11 −++ mαα L ) ≤ L,

ou equivalentemente,

σασασ +≤++++ Lll mm )()( 11 L .

Definição 2.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 2.1 os padrões 1, 2 e 3 são homogêneos, produzindo a matriz diagonal:

B=[a1 a2 a3] =4 0 00 2 00 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 2.2. Considere os dados do exemplo 2.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

2706

d1=1000, d2=1250 e d3=2000. Sejam x1, x2, x3, ... o número de vezes que os padrões 1, 2, 3, ... serão utilizados, respectivamente. Assim:

a1x1+a2x2+a3x3+a4x4+...=d ⇒ 400

x1 + 020

x2 + 002

x3 +102

x4 + ... = 100012502000

.

Observe que 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 xj ≥ 0 e inteiro, j=1,2,.... Qualquer solução do sistema linear acima, cujas componentes sejam inteiras e não-negativas, fornece uma solução factível para o problema de corte de estoque. A exigência de integralidade sobre as variáveis xj torna o problema de atender as demandas 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 (entretanto, este problema final de cortar os itens restantes é importante do ponto de vista operacional).

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 li, i=1,...,m) pode ser da ordem de vários milhões ou bilhões. Isto inviabiliza a aplicação pura do procedimento acima 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.

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 é R$ 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 (8.*):

l l l Leiros

m m

m

1 1 2 2

1 20 0 0α α α

α α α+ + + ≤

≥ ≥ ≥L

L

,, , , , int .

Suponha n as possíveis soluções:

a1 =

αα

α

11

21

1

M

m

, a2 =

αα

α

12

22

2

M

m

, …, an =

αα

α

1

2

n

n

mn

M

.

• Seja xj= número de vezes que o objeto é cortado usando o padrão j. Resolva o seguinte problema de otimização linear:

2707

minimizar f(x) = c(x1+x2+...+xn) (9.1)

sujeito a:

a1x1+ a2x2+ ... +anxn = d (9.2)

x1 ≥ 0, x2 ≥ 0, ..., xn ≥ 0. (9.3)

A condição de integralidade sobre as variáveis xj, como já observado anteriormente, será abandonada. Em notação matricial o problema (9.*) é escrito por:

minimizar f(x) = cTx (10.1)

sujeito a: Ax = d, x ≥ 0. (10.2)

em que cada coluna da matriz A ∈Rmxn é um vetor associado a um padrão de corte e

cT = (c, c, … ,c) ∈Rn. 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, (11)

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 )] (12)

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 2.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 (13.1)

sujeito a: d − ≤ Ax ≤ d + , x ≥ 0. (13.2)

Por conveniência da aplicação do método primal-simplex (como veremos na seção 4), o problema 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 (14.1)

sujeito a: Ax+y = d + , x ≥ 0, 0 ≤ y ≤ d + - d − . (14.2)

2. A função objetivo custo (proporcional ao número de objetos cortados), definida até então, pode ser substituida pela função objetivo perda total. Para isto, basta definir:

cj=L- ( )α α α1 1 2 2j j mj ml l l+ + +L , (15)

2708

a perda no padrão de corte j, cujo vetor associado é aj = (α α α1 2j j mj, , ,L ), 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 objetivos podem ser escritas, procurando evitar tal inconveniente. Por exemplo, a função perda relativa:

perda relativa=(perda total)/(número de objetos cortados)

= [∑j L- ( )α α α1 1 2 2j j mj ml l l+ + +L ] / (∑j xj) (16)

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. Podemos ainda, em alguns casos práticos, definir uma função objetivo lucro a ser maximizada que também busca um compromisso entre baixas perdas (prejuízo) e alta produção. Suponha que conhecemos os preços de venda dos itens demandados dados por vi, i=1,...,m (muitas vezes os itens obtidos pelo processo de cortagem 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 R$ s /cm (por simplicidade usamos a unidade de comprimento, 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

= v x s L l x c xi ij jj

n

j

n

i iji

m

i

m

j jj

n

( ) ( ) ( )α α= = == =

∑ ∑ ∑∑ ∑+ − −1 1 11 1

= ( ( ) )j

n

i i iji

m

jsL v sl c x= =

∑ ∑+ − −1 1

α . (17)

Neste caso, os coeficientes da função objetivo nos modelos (10.*) ou (13.*) será:

cj= sL v sl ci i iji

m

+ − −=∑ ( )α1

(18)

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.

Na seção 5 apresentamos um estudo de caso na indústria papeleira, utilizando as funções objetivos lucro e perda relativa.

2709

5. Em muitas aplicações (p.ex., cortes de bobinas em indústrias papeleira, metalúrgica, etc.) a unidade de demanda usada é a tonelada. Portanto, o lado esquerdo das equações no modelo (9.*) precisam ser convertidas. 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 cm e mesmo diâmetro. O peso específico linear é T/L ton/cm. Assim, um item de comprimento li cm cortado do objeto pesa li(T/L) 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 li(T/L) ton, e as equações em (9.2) são alteradas para:

( / )α ij i j ij

n

l T L x d==

∑1

i=1,…,m (19)

Observe que podemos utilizar em (19) 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. Portanto, 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 da 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 em se cortar parcialmente uma bobina, tal procedimento altera significativamente a redução de perdas. 6. Uma outra particularidade da indústria de papel consiste em que muitas vezes parte da demanda é de retângulos li × wi, os quais são obtidos cortando-se inicialmente a bobina grande em sub-bobinas de comprimento li que, em seguida, é desenrolada e cortada no tamanho wi, conforme a figura 6:

Observe que o mesmo retângulo poderia ser obtido considerando-se wi × li. 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.

Figura 6. Produção de retângulos na indústria de papel.

2710

Suponha que o sentido da fibra seja irrelevante, de modo que podemos cortar a bobina grande tanto em sub-bobinas de comprimento li, como de comprimento wi. Isto significa que os padrões de corte (soluções do problema (8.*)) podem combinar 2m tamanhos: l1,…,lm,w1,…,wm ou de outra forma, definimos lm+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 (19)). O comprimento da bobina grande que será utilizado para a produção do retângulo li × wi (ou wi × li, indiferentemente) agora será dado por:

αij li + αm+i, j wi. Deste modo, a restrição (19) torna-se:

( ( ) / ),α αij i m i j i j ij

n

l w T L x d+ =+=

∑1

, i=1,…,m. (20)

Obviamente, podemos ter apenas parte dos retângulos com o sentido de fibra irrelevante, o que pode ser facilmente considerado no modelo. Deixamos ao cargo do leitor a formalização deste caso.

3.3. Diversos tipos de barra em estoque: quantidades ilimitadas Estudamos agora o caso em que o estoque é composto de vários tipos de barras e, analogamente ao caso precedente, as quantidades de cada tipo são 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 (p.ex., barras de aço na 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.

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:

l l l Lj jm m

jj1 1 2 2α α α+ + + ≤L (20.1)

α α α1 20 0 0 1j jmj e eiros j N≥ ≥ ≥ =, , , int , , , .L L (20.2)

Suponha que o sistema (20.*) tenha nj soluções, dadas por:

2711

a1j =

αα

α

11

21

1

j

j

mj

M

, a2j =

αα

α

12

22

2

j

j

mj

M

, …, anj =

αα

α

1

2

nj

nj

mnj

j

j

j

M

, 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,…) = i

n

=∑1

1c1xi1 +

i

n

=∑1

2c2xi2 + … +

i

nN

=∑1

cNxiN (21.1)

sujeito a: i

n

=∑1

1ai1xi1 +

i

n

=∑1

2ai2xi2 + … +

i

nN

=∑1

aiNxiN = d (21.2)

xij ≥ 0, i=1,…,nj, j=1,…,N. (21.3)

Note que o modelo básico (9.*), com um único tipo de objeto em estoque, é apenas um caso particular de (21.*) 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: quantidades limitadas 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, p. ex., 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.

Modelagem Matemática

O modelo matemático tem as mesmas restrições que o anterior, acrescentando-se as restrições de estoque.

2712

minimizar f(x11,x21,…) = i

n

=∑1

1c1xi1 +

i

n

=∑1

2c2xi2 + … +

i

nN

=∑1

cNxiN (22.1)

sujeito a: i

n

=∑1

1ai1xi1 +

i

n

=∑1

2ai2xi2 + … +

i

nN

=∑1

aiNxiN = d (22.2)

i

n

=∑1

1xi1 ≤ e1

i

n

=∑1

2xi2 ≤ e2

O M (22.3)

i

nN

=∑1

xiN ≤ eN

xij ≥ 0, i=1,…,nj, j=1,…,N. (22.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.

2713

4. Uma breve revisão da Otimização Linear 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 anterior. 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 dos principais conceitos da otimização linear e do 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.

4.1 Definições e Resultados 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∈Rm×n e posto(A)=m. A solução geral do sistema em (23.2) pode ser descrita da seguinte forma. Considere uma partição nas colunas de A:

A=(B,N)

tal que B∈Rm×m, formada por m colunas da matriz A, seja inversível. A mesma partição é feita no vetor das variáveis:

x=(xB, xN), e 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)

Uma escolha qualquer para as variáveis não-básicas xN em (24), temos xB bem determinado, de modo que o sistema está verificado.

Definição 4.1. A solução particular x obtida por: xB0 =B-1b, xN

0 =0, é chamada solução básica. Se xB

0 =B-1b≥0, então a solução básica é primal-factível e dizemos que a partição básica é primal-factível.

Considere também a partição nos coeficientes da função objetivo c:

cT=(cB, cN)T. Definição 4.2. Chamamos de vetor das variáveis duais ou, vetor multiplicador simplex o vetor π∈Rm, dado por:

πT= cBT B-1.

2714

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 4.1. Se uma partição básica for primal e dual factíveis, então as soluções básicas associadas (definições 4.1 e 4.2) resolvem os problemas primal e dual, respectivamente, e dizemos que a partição básica é ótima.

Teorema 4.2. Se o problema (23.*) tiver uma solução ótima, então existe uma partição básica ótima.

4.2. O Método Simplex A solução geral do sistema (24) permite escrever também a função objetivo restrita a: x tal que Ax=b, ou seja, em termos das variáveis não-básicas:

f(x)=cB xB + cN xN = cB(B-1b - B-1NxN) + cN xN

= f( x 0 ) + (cN-πTN)xN

= f( x 0 ) + ∑j∈N (cj-πTaj)xj, (25)

o que mostra como a função objetivo, restrita ao sistema Ax=b, se altera quando promovemos perturbações na solução básica.

Definição 4.3. Chamamos de Estratégia Simplex a seguinte perturbação da solução básica:

• escolha k∈N, tal que: ck-πTak<0;

• faça: xk=ε ≥ 0,

xj = 0, ∀ j∈N-{k}.

A estratégia simplex produz uma nova solução dada por:

x x yx e

B

N k

B = +

=

0 εε

, (26)

e o valor da função objetivo dado por:

f(x)=f( x 0 ) + (ck-πTak)ε, (27)

em que y= -B-1ak e ek=(0,…,1,…,0)T∈Rn-m, com 1 na k-ésima componente.

Note que a direção d∈Rn , dada por d=(dB, dN)T=(y, ek)T, define uma perturbação da solução básica e é chamada direção simplex. Se a solução básica for não-degenerada, isto é, xB

0 >0, de (26) e (27) segue que d é uma direção factível e de

2715

descida. Note ainda, que o produto escalar da direção d e o gradiente da função objetivo é cTd= ck-πTak<0.

De (26), podemos determinar o maior valor de ε, impondo xB≥0:

ε0 = - xy

B

l

l

0

= mínimo {- xy

B

i

i

0

| yi<0, i=1,…,m } (28)

em que xBi

0 é a i-ésima componente de xB0 . Naturalmente, se yi≥0, i=1,…,m, então

não há limitante para ε, f(x)→-∞ (a direção d é um raio de descida) e o problema (4.*) não tem solução ótima.

Para esta escolha de ε, a l-ésima componente de xB se anula, enquanto que apenas uma variável de xN tornou-se positiva: xk=ε0≥0. Isto sugere uma nova partição básica, conforme o seguinte teorema.

Teorema 4.3. Considere a nova partição A=(B’,N’), em que a l-ésima coluna de B’ é dada por ak∈N. A nova partição é básica primal-factível, cuja solução básica associada é dada por: x1 = xo + ε0 d.

De (27), podemos escolher qualquer k tal que ck-πTak<0. Uma heurística gulosa consiste em escolher a direção simplex com a maior taxa de descida na função objetivo, isto é:

ck-πTak = mínimo{ cj-πTaj, j=1, 2, … ,n } (29)

Assim, se ck-πTak ≥0, então pelo teorema 4.1 é uma partição básica ótima.

Desta forma, enquanto a solução básica dual for infactível, podemos repetir o procedimento acima. Isto descreve o conhecido Método Primal-Simplex.

2716

Algoritmo Primal-Simplex

fase I: Encontre uma partição básica primal-factível: A=(B,N).

{Para isto poderá ser necessário o método das variáveis artificiais}. Faça PARE=FALSO, IT = 0.

{A variável lógica PARE será FALSO até que a condição de otimalidade seja verificada e IT indica o número da iteração corrente}

fase II: Enquanto PARE=FALSO faça:

1. Determine a solução básica primal factível: xB=B-1b. 2. Teste de otimalidade:

2.1. Determine o vetor multiplicador simplex: πT= cBT B-1.

2.2. Determine menor custo relativo:

ck-πTak = mínimo{ cj-πTaj, j=1, 2, … ,n }.

2.3. Se: ck-πTak ≥0, então a solução na iteração IT é ótima. PARE=VERDADE.

Senão: 4. Determine a direção simplex: y= -B-1ak.

4.1. Se: y ≥ 0, então o problema não tem solução ótima finita. PARE=VERDADE.

Senão: 5. Determine o passo:

ε0 = - l

0B

yx

l = mínimo { - i

0B

yx

i | yi < 0, i=1,…,m }.

6. Atualize a partição básica: aBl↔ ak, IT←IT+1.

4.3. Princípios da Geração de Colunas Considere novamente o problema de otimização linear (4.*) e suponha que o número de variáveis n seja muito maior que o número de restrições m (por exemplo, m é da ordem de algumas dezenas e n da ordem de vários milhares ou milhões).

Ao aplicarmos o método primal-simplex (seção 4.1), necessitamos de uma base primal factível B, que produz a solução básica primal factível:

x=(xB,xN)T em que xB=B-1b e xN=0,

e o vetor multiplicador simplex (solução básica dual, não necessariamente dual-factível):

πT = cBB-1.

2717

Para verificar a otimalidade da solução básica x, conforme o passo 2.2 do método simplex, determinamos a variável xk com o menor custo relativo, o que sugere o seguinte subproblema:

ck-πTak = mínimo { cj-πTaj≥0, j=1,2,… }.

Em alguns problemas, as colunas da matriz A são calculadas de modo a satisfazer algumas propriedades, isto é, a é uma coluna de A se e somente se a∈X⊆Rm, bem como o correspondente coeficiente na função objetivo é determinado pelos elementos da coluna: c(a).

A enumeração completa de todas as colunas da matriz A é, para muitos problemas, um trabalho computacionalmente impossível, pois pode atingir vários milhões ou bilhões. Entretanto, sabemos da teoria da otimização linear que apenas m colunas da matriz A serão necessárias para descrever uma solução ótima, isto é, uma solução básica, conforme o teorema 4.1 da seção anterior, de modo que não necessitamos armazenar toda a matriz A.

Considere a=(α1,α2,…,αm ), uma coluna de A e suponha que coeficiente na função objetivo seja dado por:

c(a)=γ γ α01

+=∑ i ii

m

, (30)

em que γi são conhecidos. Assim, o custo relativo da variável, cuja coluna é dada por a, pode ser determinado por:

ϕ(a) = c(a)-πTa =γ γ α π α01 1

+ −= =∑ ∑i ii

m

i ii

m

= γ γ π α01

+ −=∑( )i i ii

m

(31)

e o subproblema, para determinar a coluna de A a entrar na base, pode ser rescrito por:

Minimizar ϕ(a) = γ γ π α01

+ −=∑( )i i ii

m

(32.1)

sujeito a: (α1,α2,…,αm )∈X. (32.2)

As colunas da matriz A, não estando disponíveis, serão geradas pela solução do subproblema (32.*).

Desta forma, o algoritmo simplex, descrito na seção anterior, pode ser reformulado, introduzindo-se no passo 2.2 pela resolução do subproblema (32.*). A seguir, especializamos estas idéias para o problema de corte de estoque.

2718

5. O Problema de Corte de Estoque Unidimensional: Métodos

5.1. O Método Simplex com Geração de Colunas: Um tipo de barra Consideremos inicialmente o modelo básico (9.*). Neste caso, os coeficientes na função objetivo são constantes, cj=1, j=1,…,n (veja (11)).

Propriedades das colunas da matriz A

Consideremos o problema mais simples, em que barras de comprimento L devem ser cortadas em pedaços li, i=1,…,m. As colunas da matriz A são bem determinadas por:

X = {a=(α1,α2,…,αm ) | l1α1 + l2 α2 + …lm αm ≤ L, αi≥0 e inteiro }

A 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 aii=[L/li] e [x] é o maior inteiro ≤ x (veja a figura 3). Assim, podemos construir uma base inicial:

B =

aa

amm

11

22

0 00 0

0 0

L

L

M M O M

L

. (33)

O subproblema (32.*)

Como c(a)=γ0 = 1, (γi=0, i=1,...,m), segue que o sub-problema (32.*) é escrito por:

minimizar ϕ(a)= 1 - π αi ii

m

=∑

1

(34.1)

sujeito a: l Li ii

m

α=∑ ≤

1

, (34.2)

α i e eiro i m≥ =0 1int , , , .K (34.3)

Podemos escrever o problema (34.*) equivalentemente por:

Maximizar π αi ii

m

=∑

1

(35.1)

sujeito a: l Li ii

m

α=∑ ≤

1

, (35.2)

α i e eiro i m≥ =0 1int , , , .K (35.3)

Podemos, ainda, considerar variações no modelo básico, como por exemplo, a função objetivo perda, definida segundo (15). Neste caso,

2719

c(a) = L-( li ii

m

α=∑

1

), (36)

e em (30) temos, γ0 = L, γi= - li, i=1,...,m. Portanto, a função objetivo do subproblema

é dada por: ϕ(a)= L - ( )li i ii

m

+=∑ π α

1

. O subproblema é então descrito pelo seguinte

problema da mochila:

Maximizar ( )li i ii

m

+=∑ π α

1

(37.1)

sujeito a: l Li ii

m

α=∑ ≤

1

, (37.2)

α i e eiro i m≥ =0 1int , , , .K (37.3)

Deixamos a cargo do leitor escrever o subproblema (32.*) para a função objetivo lucro, definida em (17) e quando os coeficientes da matriz A são alterados conforme (18).

5.2. O Método Simplex com Geração de Colunas: Diversos tipos de barras

(tópico a ser incluído)

As idéias contidas na seção 5.1 podem ser facilmente estendidas ao problema (22.*), o qual considera diversos tipos de barras em estoque. Duas características devem ser levadas em conta: i) cada coluna do modelo (22.*) 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).

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

2720

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

xj1 ≥ 0, xj2 ≥ 0, ..., xjm ≥ 0.

em que:

• todas as variáveis básicas que já corresponderem a valores inteiros são fixados;

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

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 freqüê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: - 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

2721

somente em freqüências nulas. Neste caso, este último problema residual é resolvido por um algoritmo de resolução do problema de bin-packing.

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 freqüê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).

2722

6. O Problema de Corte de Estoque Bidimensional Neste capítulo consideramos o problema de cortar placas retangulares para a

produção de itens retangulares menores em quantidades predefinidas. A demanda de itens predefinida caracteriza o problema de corte de estoque, no qual várias placas (quantidade a ser determinada) deverão ser cortadas, analogamente ao problema unidimensional, porém agora as placas e itens têm duas dimensões relevantes: comprimentos e larguras. Ou seja, as placas em estoque têm dimensões: L×W (isto é, comprimento L e largura W) devem ser cortadas para a produção de m itens retangulares: l1×w1, l2×w2,…, lm×wm. Por simplicidade de exposição, consideramos que apenas um tipo de placa em estoque esteja disponível: L×W. 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 5, são ainda válidos, diferenciando tão somente na geração de um padrão 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

m

, a2 =

αα

α

12

22

2

M

m

, …, an =

αα

α

1

2

n

n

mn

M

,

em que αij é o número de itens do tipo i (agora um item é um retângulo) no padrão de corte j devemos resolver o seguinte problema de otimização linear (relaxando-se a condição de integralidade das variáveis xj):

Minimizar f(x) = c1x1+c2x2+…+cnxn

sujeito a:

αα

α

11

21

1

M

m

x1 +

αα

α

12

22

2

M

m

x2 +…+

αα

α

1

2

n

n

mn

M

xn =

m

2

1

d

dd

M

x1 ≥ 0, x2 ≥ 0, …, xn ≥ 0.

O método simplex com geração de colunas (capítulo 5) pode ser utilizado, porém deve-se ter em mente que as colunas correspondem a padrões de corte bidimensionais. Assim, o problema (35.*):

2723

Maximizar π αi ii

m

=∑

1

sujeito a: l Li ii

m

α=∑ ≤

1

,

α i e eiro i m≥ =0 1int , , , .K

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.

6.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 6.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 (veja figura 7).

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 itens):

a = (3, 1, 2, 0, 1)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

Figura 7. Um padrão de corte bidimensional guilhotinado, setas indicando os cortes.

1 2

35

6

1 21

1 3 3

4 5

2724

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, veja corte 1 e 2 na figura 7). Em seguida, num segundo estágio, os retângulos obtidos são cortados perpendicularmente ao cortes do estágio anterior (veja cortes 3, 4 e 5 na figura 7), e assim por diante, são definidos estágios de corte. O padrão da figura 7 foi construído em três estágios.

Definição 6.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 8, que 3 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.

Note na figura 8 que há um último corte para a obtenção do item 4 dentro da segunda faixa (que abriga os itens 1 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 L×W (comprimento L e largura W) a qual deve ser cortada para a produção de m itens de dimensões li×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 L×W, isto é, αi é o número de itens do tipo i no padrão. O problema é, então, genericamente formulado por:

Figura 8. Um padrão de corte bidimensional guilhotinado 2-estágios: 1º estágio: corte vertical e 2º estágio: corte horizontal

1º estágio

2º estágio2 1

5

2 4

2725

Maximizar v1α1 + v2α2 + … + vmαm (38.1)

sujeito a:

(α1 , α2 ,…, αm) corresponde a um padrão de corte sobre a placa L×W. (38.2) No caso de padrões de corte em 2-estágios, a condição (38.2) pode ser

modelada da seguinte forma:

i) Determinar as melhores maneiras de se cortar as faixas: L×w1 , L×w2 … L×wm. Observe que na faixa L×w1 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 L×wk :

Wk = { i tal que: wi ≤ wk }. As faixas são definidas somente para larguras diferentes, pois se wk = wj então

as faixas L×wk e L×wj 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: L×w1 , L×w2 … L×wr . O exemplo a seguir torna mais claro o assunto.

Exemplo 6.1. Considere o problema de corte bidimensional, em que a placa L×W = 110×110 deva ser cortada para a produção de 4 itens cujos comprimentos, larguras e valores de utilidade estão na tabela abaixo:

i li ×wi vi

1 20×30 6

2 30×40 12

3 50×60 30

4 60×60 36

Desta forma, um padrão de corte na placa 110×110, 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: 110×30, 110×40 e 110×60. Note que neste caso, r=3, ou seja, apenas 3 tipos de faixas devem ser desenhadas. Definimos os conjuntos dos itens que podem ser cortados em cada faixa:

Faixa 1: 110×30 ⇒ W1 = { 1 }

Faixa 2: 110×40 ⇒ W2 = { 1, 2 }

Faixa 3: 110×60 ⇒ 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 110×35, então uma tira de 110×5 seria inevitavelmente perdida, pois somente conseguiríamos cortar desta faixa itens do tipo 1 de largura 30.

2726

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 L×wk (k=1,…,r), devemos resolver o seguinte problema da mochila,

∑∈

=kWi

ikik vMáximoV γ (39.1)

sujeito a: LlkWi

iki ≤∑∈

γ (39.2)

γik ≥ 0, inteiro, i=1,..,m (39.3)

em que γik é o número de itens do tipo i na faixa L×wk. Após resolvidos os r problemas da mochila (39.*), temos em mãos as melhores faixas e com elas podemos compor o padrão de corte bidimensional.

Exemplo 6.1 (continuação a). Considerando as 3 faixas: 110×30, 110×40 e 110×60 temos 3 problemas da mochila a ser resolvidos:

Faixa 1: 110×30, W1 = { 1 }

V1 = Máximo 6 γ11

sujeito a: 20 γ11 ≤ 110

γ11 ≥ 0 inteiro.

Solução: γ11 = 5, V1 = 30.

Faixa 2: 110×40, W2 = { 1, 2 }

V2 = Máximo 6 γ12 + 12 γ22

sujeito a: 20γ12 + 30γ22 ≤ 110

γ12≥0, γ22 ≥0 e inteiros.

Solução: γ12 = 1, γ22 = 3, V2 = 42.

Faixa 3: 110×60, 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.

1 1 1 1 1

L=110

12 2 2

L=110

Figura 9

Figura 10

2727

Solução: γ13 = 0, γ23 = 0, γ33 = 1, γ43 = 1, V3 = 66.

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 L×W = 110×110.

ii) Determinar quantas vezes cada faixa deve ser utilizada no padrão bidimensional.

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 V1β1 + V2β2 + …+Vrβr (40.1)

sujeito a: w1β1 + w2β2 + …+wrβr ≤ W (40.2)

β1≥0, β2 ≥0,…, βr≥0 e inteiros. (40.3)

Exemplo 6.1 (continuação b). Após a resolução das 3 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 + 66β3

sujeito a: 30β1 + 40β2 + 60β3 ≤110

β1≥0, β2 ≥0, β3≥0 e inteiros.

Solução: β1 =1, β2 = 1, β3 = 1, V = 138.

43

L=110

43

L=110

1 1 1 1 1

12 2 2 W=110

Figura 11

Figura 12

2728

Resumo do procedimento:

Solução do problema de corte bidimensional guilhotinado em 2-estágios: i) Resolva r problemas da mochila (39.*) obtendo os valores de utilidade de cada

faixa;

ii) Resolva o problema da mochila (40.*) para determinar o padrão de corte ótimo.

O vetor associado ao padrão de corte obtido pelo procedimento acima, que determina o número de itens no padrão é dado por:

a =

=

=

=

=

=

=

r

1kkmkm

r

1kkk22

r

1kkk11

βγα

βγα

βγα

M

(41)

A rigor, as somatórias em (41) são restritas às faixas que podem conter o item, isto é, αi = ∑

∈ kWi|kkik βγ , pois γik =0 se i∉Wk . O exemplo a seguir esclarece este

assunto.

Exemplo 6.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.

(veja a figura 12 do padrão de corte bidimensional)

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):

2729

α4 = γ43 β3 = 1*1 = 1.

Portanto, o vetor associado ao padrão de corte bidimensional que contabiliza os itens nele contidos é:

a =

=

1136

4

3

2

1

αααα

de modo que se cortarmos X placas conforme o padrão de corte da figura 6.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 L×wk são produzidas). Portanto, este procedimento pode ser repetido, considerando o primeiro estágio com cortes verticais para a produção das faixas lk×W, e redefinindo os conjuntos dos itens que podem ser cortados das faixas verticais: Lk = {i tal que li≤lk }, bem como os problemas (39.*) e (40.*) 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 6.1 (fig. 12) exige um 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 i∈Wk (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 (veja figura 13), então ao invés de

um único item i no problema (39), é usado um "item" que consiste em

i

k

ww itens

tipo i e seu valor de utilidade é vi

i

k

ww .

wk

li

wi

wi Faixa L×wk :

Figura 13

2730

Vejamos um exemplo para elucidar este ponto.

Exemplo 6.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 14 Porém, a "perda" provocada pela apara é na realidade um novo item 1. Em outras

palavras, temos 2 itens do tipo 1: 23060

ww

1

3 =

=

. Assim, ao resolvermos o

problema da mochila para determinarmos o melhor aproveitamento da faixa 3, podemos considerar o seguinte problema:

Faixa 3: 110×60, 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 15

γ '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 11 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

1

L=110

60

3

L=110

60

2731

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 (li,wi) e (wi, li), 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. Estendendo o procedimento em duas fases para tratar o caso restrito resulta num programa não-linear inteiro (Vianna et al., 2002). 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 padrões guilhotinados 1-grupo 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 16

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 (li, wi), i =1 ,.., m. Considere a matriz m×m Π = (πik), definida como:

=

=otherwise

wlRif kirrik 0

),(ππ

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 li é cortado ao longo de L

µk = número de vezes que a largura wk é cortada ao longo de W.

Note que o produto λiµk define o número de itens de tamanho (li,wk) no padrão. Logo, o padrão 1-grupo mais valioso é obtido resolvendo-se o seguinte

2732

programa quadrático inteiro:

Max ∑∑

= =

µλπm

1i

m

1kkiik

Llm

1iii ≤λ∑

=

Wwm

1kkk ≤µ∑

= λ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).

Padrões guilhotinados k-estágios Poucos trabalhos são encontrados na literatura apresentando modelos

matemáticos para gerar padrões guilhotinados k-estagiados. Gilmore e Gomory (1966) e Beasley (1985) apresentaram formulações baseadas em programação dinâmica para o caso irrestrito e, posteriormente, Christofides e Hadjiconstantinou (1995) as estenderam para o caso restrito. Morabito e Arenales (1996) apresentam um algoritmo de enumeração implícita, baseado numa busca em grafo E/OU, tanto para o problema estagiado como restrito.

Admite-se que os comprimentos e larguras do objeto e dos itens são números inteiros e, por simplicidade, que itens de tamanho (li,wi) sejam diferentes de itens (wi,li) (casos em que os itens podem ser rotacionados podem ser tratados por meio de simples modificações nas definições de F0 e X e Y definidos adiante).

Para desenvolver uma fórmula recursiva de programação dinâmica, considere que os cortes são produzidos em estágios. A figura 17 ilustra um padrão de corte em 3 estágios para um retângulo (x, y), em que, no primeiro estágio, um corte horizontal divide o retângulo (x, y) em 2 retângulos (superior e inferior), no segundo estágio, um corte vertical divide o retângulo superior em dois retângulos (superior esquerdo e superior direito) e dois cortes verticais dividem o retângulo inferior em três retângulos (inferior esquerdo, inferior intermediário e inferior direito), e, no terceiro estágio, um corte horizontal divide o retângulo superior esquerdo em dois retângulos e dois cortes horizontais dividem o retângulo inferior direito em três retângulos. Note que os cortes de cada estágio são sempre paralelos aos eixos x ou y, e que os cortes de dois estágios consecutivos são sempre perpendiculares entre si.

Sejam si (i = 1, ..., m) as quantidades dos tipos de itens que podem ser usadas para produzir um padrão de corte factível para o retângulo (x, y). Representa-se esses itens pela seqüência ordenada:

{ } s,...,s,sS m21xy =

2733

Figura 17. Padrão para (x,y) em 3-estágios

Note que, para a chapa (L, W), podemos usar quaisquer peças do conjunto R, e assim:

{ } b,...,b,bS m21LW = Define-se Fk(x, y, Sxy) como o valor do padrão de corte ótimo em até k-estágios, para um retângulo de tamanho (x, y), usando uma combinação factível de retângulos do conjunto Sxy, com cortes no primeiro estágio paralelos ao eixo y. Similarmente, definimos Gk(x, y, Sxy) como o valor do padrão de corte ótimo em até k-estágios, para um retângulo de tamanho (x, y), usando uma combinação factível de retângulos do conjunto Sxy, com cortes no primeiro estágio paralelos ao eixo x.

Sejam X = {1, 2, ... , L} e Y = {1, 2, ..., W}. As funções recursivas Fk(x, y, Sxy) e Gk(x, y, Sxy), para todo k ≥ 1, x∈X, y∈Y e Sxy⊆SLW, são definidas como (Christofides e Hadjiconstantinou, 1995):

( ) ( ) ( )[ ]

−−+= −

⊂∈<− 'SS,y,'xxG'S,y,'xFmax,S,y,xGmax)S,y,x(F xy1kkS'S,X'x,x'xxy1kxyk

xy ( ) ( ) ( )[ ]

−−+= −

⊂∈<− 'SS,'yy,xF'S,'y,xGmax,S,y,xFmax)S,y,x(G xy1kkS'S,Y'y,y'yxy1kxyk

xy O primeiro termo do colchete da primeira fórmula corresponde ao caso em

que, no primeiro estágio do padrão ótimo em até k estágios de (x, y), não há cortes em (x, y) paralelos ao eixo y, o que implica que este padrão pode ser considerado como um padrão em até k-1 estágios, com os cortes do primeiro estágio paralelos ao eixo x, como na figura 18(a). O segundo termo do colchete da primeira fórmula corresponde ao caso em que, no primeiro estágio do padrão ótimo em até k estágios de (x, y), existe pelo menos um corte em (x, y) paralelo ao eixo y, digamos um corte vertical x’∈X, x’<x, produzindo dois retângulos (x’, y) e (x-x’, y), como na figura 18(b).

Neste caso, temos dois padrões de corte associados com estes retângulos. No primeiro, as peças pertencem ao conjunto S’, os cortes no primeiro estágio do padrão ótimo de (x’, y) são paralelos ao eixo y, e ainda há k estágios no total (dado que podem haver outros cortes verticais x”<x’ em (x’, y), que não implicam em outro estágio em (x, y)) . No segundo, as peças pertencem ao conjunto complementar Sxy -

2

3

1

2 2

3

3

2734

S’, os cortes no primeiro estágio do padrão ótimo de (x-x’, y) são paralelos ao eixo x, e há somente k-1 estágios no total (dado que cortes horizontais em (x-x’, y) implicam em outro estágio em (x, y)). Similarmente para a segunda fórmula.

Um valor para k = 0 em Fk (x, y, Sxy) ou Gk (x, y, Sxy) corresponde a uma alocação do item mais valioso (ou de maior área) do conjunto Sxy para o retângulo (x, y) (ver figura 18(c)). Os dois cortes para produzir este item a partir de (x, y) não são considerados como estágios adicionais de corte. Assim, condições iniciais são fornecidas, para todo x, y e Sxy, por:

( ) [ ] ,yw,xl|vmax,0maxS,y,xF iiiSixy0xy

≤≤=

∈ G0 (x, y, Sxy) = F0 (x, y, Sxy)

(a) (b)

(c)

Figura 18. (a) Nenhum corte neste estágio, mas um corte no estágio anterior paralelo ao eixo x; (b) corte neste estágio paralelo ao eixo y; (c) alocação de uma peça em (x,y), com k = 0.

Note que o máximo entre Fk (x, y, Sxy) e Gk (x, y, Sxy) corresponde à solução

0 x

y

0 x

y

0 x

y

x'

2735

ótima do problema guilhotinado k-estágios para o retângulo (x, y), gerado pelo uso das peças em Sxy, quando a direção dos cortes do primeiro estágio não é especificada. Em particular, max[Fk (L, W, SLW), Gk (L, W, SLW)] corresponde à solução ótima do problema k-estágios para a chapa (L,W).

Se não for especificado um número máximo de estágios (i.e., caso não-estagiado), deve-se considerar o valor de k como sendo aquele em que:

Fk (L, W, SLW) = Fk+1 (L, W, SLW) e Gk (L, W, SLW) = Gk+1 (L, W, SLW)

A principal dificuldade desta formulação é a dimensão do espaço de estados associada principalmente à variável de estado SLW. Relaxando-se SLW, obtém-se fórmulas recursivas para o caso irrestrito (Beasley, 1985b), que podem ser resolvidas para problemas com conjuntos X e Y não muito numerosos. Tais conjuntos podem ser substancialmente reduzidos sem perda de generalidade, redefinindo-os por (Herz, 1972):

}inteiro e b0 ,Lx1 ,lx|x{X iii

m

1i ii α≤α≤≤≤α== ∑ =

}inteiro e b0 ,Wy1 ,wy|y{Y iiim

1i ii α≤α≤≤≤α== ∑ = Neste caso, as fórmulas recursivas devem ser redefinidas por:

( ) ( ) ( )[ ]

−−+= −

⊂∈<− 'SS,y,'xxG'S,y,'xFmax,S,y,xGmax)S,y,x(F xy1kkS'S,X'x,x'xxy1kxyk

xy

( ) ( ) ( )[ ]

−−+= −

⊂∈<− 'SS,'yy,xF'S,'y,xGmax,S,y,xFmax)S,y,x(G xy1kkS'S,Y'y,y'yxy1kxyk

xy

em que { }}0{Xx,xx|xmaxx 111 ∪∈≤= , { }}0{Yy,yy|ymaxy 111 ∪∈≤= (estas redefinições são necessárias para garantirmos que o resultado das diferenças

'xx − e 'yy − pertençam aos conjuntos X e Y, e 0)q,y,x(G)q,y,x(F kk == se x =

0 ou y = 0 (note agora que, por causa das definições de x e y , podemos ter x = 0 ou y = 0). As fórmulas são inicializadas conforme antes.

Heurísticas para o problema guilhotinado (casos estagiado e não-estagiado, restrito e irrestrito) foram apresentadas em Herz (1972), Wang (1983), Farley (1983), Vasko (1989), Oliveira e Ferreira (1990), Morabito et al. (1992), Daza et al. (1995), Morabito e Arenales (1996), Hifi (1997), Fayard et al. (1998), Parada et al. (1998), Cung et al. (2000) e Alvarez-Valdés et al. (2002). Poucos métodos exatos além dos discutidos nesta seção são encontrados na literatura; dois exemplos aparecem em Christofides e Whitlock (1977) e Viswanathan e Bagchi (1993). Outras referências são encontradas em Dyckhoff et al. (1997), Arenales et al. (1999), Wang e Waescher (2002) e Hifi (2002).

Padrão bidimensional não-guilhotinado: Obviamente um item pode ser arranjado em diversas posições ao longo do

comprimento L e da largura W da chapa (objeto). Seja (p,q) as coordenadas do canto inferior esquerdo de um item arranjado na chapa (supõe-se que o canto inferior esquerdo da chapa é (0,0)). Note que p e q pertencem aos conjuntos

}inteiro ,lLp0|p{ 0−≤≤ e }inteiro ,wWq0|q{ 0−≤≤ , respectivamente (em que

2736

}l{minl ii0 = e }w{minw ii0 = ). Sem perda de generalidade, pode-se reduzir substancialmente estes conjuntos para os conjuntos normais (conforme antes):

}inteiro e b0 ,lLp0 ,lp|p{X iii0

m

1i ii α≤α≤−≤≤α== ∑ =

}inteiro e b0 ,wWq0 ,wq|q{Y iii0m

1i ii α≤α≤−≤≤α== ∑ = ou ainda para os conjuntos de "raster points" (Sheithauer e Terno, 1996):

}0{}Xx|xL{'X X ∪∈>−<= , }'xx,Xx|xmax{'x X ≤∈=><

}0{}Yy|yW{'Y Y ∪∈>−<= , }'yy,Yy|ymax{'y Y ≤∈=><

Note na figura 19 que ao se decidir arranjar um item do tipo i na posição (p,q), não se pode colocar outro item na posição (r,s). Para evitar a sobreposição de itens, seja aipqrs a seguinte função:

−≤−+≤≤≤−≤−+≤≤≤

=otherwise.,0

1W1wqsq0 and 1L1lprp0 if,1a ii

ipqrs

Figura 19. Função de sobreposição aipqrs: aipqrs = 1

Sejam }lLp,Xp{X ii −≤∈= e }wWq,Yq{Y ii −≤∈= (as definições de X'i e Y'i para os "raster points" são similares). Para todo p∈Xi e todo q∈Yi, i = 1, ..., m, define-se as variáveis de decisão xipq (Beasley, 1985):

.

item i

wi

li

W

L p

s

r

q

0

2737

=contrário. caso,0

)q,p( posição na arranjado é i tipodo item um se,1x ipq

Max ∑ ∑ ∑

= ∈ ∈

πm

1i Xp Yqipqi

i i

x

∑ ∑ ∑

= ∈ ∈

≤m

1i Xp Yqipqipqrs 1xa

i i , r∈X, s∈Y

∑ ∑∈ ∈

≤i iXp

iYq

ipq bx, i = 1, ..., m

xipq∈{0,1}, i=1,…,m, p∈Xi, q∈Yi.

em que πi é o valor (ou área) de um item do tipo i. A função objetivo maximiza o valor total dos itens arranjados na chapa, o primeiro conjunto de restrições evita a sobreposição dos itens em cada posição (r,s) e o segundo conjunto de restrições garante que a demanda dos itens não vai ser excedida. Este modelo tem O(m|X||Y|) 0-1 variáveis e O(|X||Y|) restrições. Dado que X e Y (ou X' e Y') podem ser grandes nos casos práticos (resultando em centenas ou milhares de variáveis e restrições), o modelo em geral é de difícil solução.

Outros modelos lineares inteiros para gerar padrões não-guilhotinados foram apresentados em Tsai et al. (1993), Hadjiconstantinou e Christodifes (1995) (Amaral e Letchford, 2001, mostraram que esta última nem sempre é válida), Chen et al. (1995) e Martins (2002). Métodos exatos do tipo branch-and-bound, baseados em relaxações linear, Lagrangeana, e surrogate, foram apresentados nestes trabalhos. Outros métodos exatos foram recentemente propostos em Caprara e Monaci (2004). Um modelo não-linear inteiro também foi discutido em Beasley (2001). Todos estes modelos são de difícil solução nos casos práticos.

Heurísticas para o problema não-guilhotinado (restrito e irrestrito) podem ser encontradas em Adamowicz e Albano (1976), Biró e Boros (1984), Israni e Sanders (1985), Berkey e Wang (1987) e Arenales e Morabito (1995) e Beasley (2001). Outras referências são encontradas em Dyckhoff et al. (1997), Arenales et al. (1999), Wang e Waescher (2002), Hifi (2002) e Lodi et al. (2002).

Padrão bidimensional não-guilhotinado com itens iguais Os modelos acima para padrões não-guilhotinados podem ser particularizados

para o caso de todos os itens serem iguais. Uma aplicação importante é no carregamento de paletes em que itens (caixas) de tamanho (l,w) podem ser arranjados nas duas orientações (l,w) ou (w,l) sobre o palete (L,W). Por simplicidade, seja (l1,w1) = (l,w) e (l2,w2) = (w,l); logo (li,wi), i = 1, 2, corresponde ao comprimento e largura de um item na orientação i. O problema consiste em encontrar o padrão com maior número de itens.

Por exemplo, o modelo não-guilhotinado de Beasley (1985) pode ser simplesmente rescrito por:

2738

Max ∑ ∑ ∑

= ∈ ∈

2

1i Xp Yqipq

i i

x

∑ ∑ ∑

= ∈ ∈

≤2

1i Xp Yqipqipqrs 1xa

i i , r∈X, s∈Y

xipq∈{0,1}, i=1, 2, p∈Xi, q∈Yi.

Note que este modelo tem O(|X||Y|) 0-1 variáveis e restrições. Dado que X e Y (ou X' e Y') podem ser grandes nos casos práticos (resultando em centenas ou milhares de variáveis e restrições), o modelo em geral também é de difícil solução.

Uma observação interessante é que o problema acima pode ser visto como o de encontrar o máximo conjunto estável num grafo finito (ou o clique maximal no grafo complementar), em que os nós representam as possíveis posições dos itens no palete, tal que dois nós são adjacentes se as posições dos itens que eles representam se sobrepõem (Dowsland, 1987).

Outra observação interessante é que se todos os itens forem iguais, mas o padrão for do tipo guilhotinado (problema 2/B/O/C guilhotinado), existem algoritmos polinomiais para resolver otimamente o problema (Tarnowski et al., 1994).

Outros modelos 0-1 para o problema não-guilhotinado podem ser adaptados de Tsai et al. (1993), Hadjiconstantinou e Christofides (1995) e Martins (2002). Além dos métodos propostos por estes autores, outros métodos exatos para resolver o problema do produtor aparecem em Dowsland (1987) e Bhattacharya et al. (1998). Entretanto, todas estas abordagens são em geral computacionalmente intratáveis nas situações práticas. Mais recentemente, Lins et al. (2003) apresentaram uma abordagem capaz de resolver problemas considerados de difícil resolução; os autores conjecturam que tal abordagem tenha garantia de otimalidade. Pesquisas com limitantes superiores para o problema também podem ser encontradas em Nelissen (1995), Letchford e Amaral (2001) e Morabito e Farago (2002).

Diversas heurísticas foram propostas para resolver o problema não-guilhotinado (carregamento de paletes do produtor). Alguns exemplos podem ser encontrados em Bischoff e Dowsland (1982), Nelissen (1995), Scheithauer e Terno (1996), Herbert e Dowsland (1996), Morabito e Morales (1998), Scheithauer e Sommerweiss (1998), G e Kang (2001), Martins (2002) e Pureza e Morabito (2003). Outras referências são encontradas em Dyckhoff et al. (1997), Arenales et al. (1999), Wang e Waescher (2002) e Hifi (2002).

7. 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 alguns modelos matemáticos 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, e (ii) quando o maior volume de uma dada carga deve ser escolhido para ser transportado em um único contêiner.

2739

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.

Conforme comentado na seção anterior, a abordagem de Gilmore e Gomory também pode ser aplicada em problemas tridimensionais. Por exemplo, considere um PCE de 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 (li,wi,hi), i = 1, ..., m. Similarmente aos modelos das seções anteriores, podemos definir o seguinte modelo tridimensional:

Min ∑ =

p

1k kx

ip

1k kik bxa ≥∑ = , i = 1, ..., m

xk≥0 e inteiro, k = 1, ..., p.

O sub-problema gerador de padrões tridimensionais (colunas) é dado por:

Max ∑ =π

m

1i ikia

(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 iii h/Hw/Wl/L , 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 (p.e., 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 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, nas abordagens a serem apresentadas discute-se brevemente como certas regras podem produzir carregamentos com maior chance de estabilidade, pois permitem um rearranjo de peças sobrepostas de modo que soluções alternativas podem ser submetidas à prática de movimentação do carregamento.

A seguir apresenta-se dois procedimentos: carregamento em camadas e

2740

carregamento em pilhas, para resolver o modelo acima (caso irrestrito). Ambos são extensões do método em duas fases de Gilmore e Gomory (1965). Ambos os procedimentos em geral produzem carregamentos estáveis.

Carregamento em camadas:

Na primeira fase, camadas horizontais são formadas arranjando-se caixas de mesma altura (i.e. no máximo m problemas bidimensionais são resolvidos) e na segunda fase, estas camadas são escolhidas para serem empilhadas ao longo da altura do contêiner (i.e. um problema da mochila unidimensional é resolvido).

Primeira fase 1:

Caixas com altura hj são escolhidas e arranjadas para formar camadas de dimensões

(L,W,hj). Sejam ijλ o número de caixas do tipo i na camada j (i.e. uma camada com dimensões (L,W,hj)) e Hj = {i | hi = hj, i = 1, ... , m}. Se hk = hj, k ≠ j, então a camada k pode ser desconsiderada. Seja Vj definido como:

∑∈

λπ=jHi

ijij maxV

(λ1j, λ2j, ..., λmj) corresponde a um padrão de carregamento bidimensional, em que

retângulos (li,wi), i∈Hj, são escolhidos e arranjados em (L,W).

Segunda fase:

Camadas j com valor Vj são escolhidas e empilhadas ao longo da altura H do contêiner . Seja µj o número de vezes que a camada j é utilizada. O seguinte problema da mochila deve ser resolvido:

∑ =µ

m

1j jjVmax

Hhm

1jjj ≤µ∑

= µj ≥ 0, inteiro, j = 1, .., m.

O valor da variável ai do modelo é finalmente obtido por:

∑=

µλ=m

1jjijia, i = 1, ..., m.

Cada problema bidimensional da primeira fase ainda pode ser resolvido (aproximadamente) por meio da solução de um conjunto de problemas da mochila. Neste caso, as duas fases envolvem apenas problemas da mochila unidimensionais.

Carregamento em pilhas: Outro procedimento em duas fases, similar ao procedimento acima, pode ser

definido para resolver o modelo. Na primeira fase, pilhas com altura máxima H do contêiner são formadas empilhando-se caixas, uma sobre a outra (i.e. vários

2741

problemas da mochila unidimensionais são resolvidos) e na segunda fase, estas pilhas são escolhidas para serem arranjadas sobre a base (L,W) do contêiner (i.e. um problema de carregamento bidimensional é resolvido). Os padrões de carregamento obtidos em geral são estáveis.

Primeira fase:

Admita sem perda de generalidade que l1 ≤ l2 ≤ ... ≤ lm. Na primeira etapa, pilhas de dimensões (lj,wk,H) são formadas com caixas (li,wi,hi), i∈LWjk, empilhadas uma sobre a outra, em que:

LWjk = {i | li ≤ lj e wi ≤ wk, i = 1, ..., m}, j = 1, ..., m, k = 1, ..., j

Note que não é preciso considerar LWjk, k>j, uma vez que as caixas do tipo i, i>j, não cabem na pilha (lj,wk,H) quando li>lj, e tal pilha não deixa de ser considerada quando li=lj.

No caso de resultarem pilhas com mesmas dimensões, apenas uma pilha é considerada. Por exemplo, se wk = wj, k < j, então a pilha (lj,wk,H) pode ser desconsiderada, uma vez que ela é igual à pilha (lj,wj,H). Se o número de pilhas ainda for muito grande, pode-se reduzi-lo sob pena de perder soluções melhores, ao considerar apenas as m pilhas (lj,wj,H), j = 1, ..., m.

Seja λijk o número de caixas do tipo i na pilha jk (i.e., uma pilha com dimensões (lj,wk,H)). Definimos Vjk como:

λπ=jkLWi

ijkijk maxV

Hh

jkLWiijki ≤λ∑

∈ λijk ≥ 0, inteiro, i = 1, ..., m.

Segunda fase:

Pilhas jk com valor Vjk são escolhidas e arranjadas sobre a base (L,W) do contêiner. Seja µjk denotando o número de vezes que a pilha jk é utilizada neste arranjo. O seguinte problema bidimensional deve ser resolvido:

∑∑

= =

µm

1j

j

1kjkjkVmax

(µjk, j=1, ..., m, k=1, ..., j) corresponde a um padrão de carregamento bidimensional, em que os retângulos (lj, wk), j=1, ..., m, k=1, ..., j, são escolhidos e arranjados em (L,W).

O valor da variável ai do modelo é finalmente obtido por:

∑∑= =

µλ=m

1j

j

1kjkijkia

, i = 1, ..., m

Os dois métodos em duas fases acima (carregamento em camadas e carregamento em pilhas) resolvem o caso irrestrito do modelo. Ambos envolvem resolver problemas unidimensionais e bidimensionais. Se os problemas bidimensionais forem aproximados por um conjunto de problemas unidimensionais, então os dois métodos envolvem resolver apenas problemas da mochila. A extensão

2742

destes métodos para tratar o caso restrito envolve um programa não-linear inteiro, o que dificulta significativamente a aplicação destes métodos.

Padrão tridimensional guilhotinado: As fórmulas recursivas de programação dinâmica apresentadas anteriormente

para o problema guilhotinado 2 estágios (casos irrestrito e restrito) também podem ser estendidas para o caso tridimensional guilhotinado (Morabito e Arenales, 1997). No entanto, os padrões tridimensionais gerados pelas fórmulas não têm garantia de estabilidade do carregamento.

Padrão tridimensional não-guilhotinado: Similarmente, o modelo não-guilhotinado de Beasley (1985) também pode ser

estendido para tratar o caso tridimensional. Sejam as variáveis de decisão xipqr:

=contrário. caso,0

)r,q,p( posição na arranjado é i tipodo item um se,1x ipqr

Max ∑ ∑ ∑∑

= ∈ ∈ ∈

πm

1i Xp Yq Zripqri

i i i

x

∑ ∑ ∑∑

= ∈ ∈ ∈

≤m

1i Xp Yq Zripqripqrstu 1xa

i i i , s∈X, t∈Y, u ∈Z

∑ ∑∑∈ ∈ ∈

≤i i iXp

iYq Zr

ipqr bx, i = 1, ..., m

xipqr∈{0,1}, i=1,…,m, p∈Xi, q∈Yi, r∈Zi.

em que Z, Zi, aipqrstu são definidos de maneira similar. Por exemplo,

}inteiro e b0 ,hHr0 ,hr|r{Z iii0m

1i ii α≤α≤−≤≤α== ∑ = Este modelo tem O(m|X||Y||Z|) 0-1 variáveis e O(|X||Y||Z|) restrições. Dado

que X, Y e Z podem ser grandes nos casos práticos (resultando em muitos milhares de variáveis e restrições), o modelo em geral é intratável computacionalmente. Além disso, a solução do modelo não tem garantia de produzir um carregamento estável.

Outro modelo linear inteiro para o problema não-guilhotinado pode ser encontrado em Tsai et al. (1993), porém, com número de variáveis e restrições que cresce exponencialmente com o número de caixas a serem carregadas e também sem garantia de produzir um carregamento estável. Outros modelos podem ser construídos estendendo-se os modelos bidimensionais de Beasley (1985), Hadjiconstantinou e Christofides (1995), Chen et al. (1995), Martins (2002) e Beasley (2001). Porém, além da dificuldade de solução exata, nenhum deles garante carregamentos estáveis. Algoritmos enumerativos exatos (baseados no método branch-and-bound) e limitantes para problemas foram propostos em Martello et al. (2000), mas também sem garantia de estabilidade do carregamento.

Estas dificuldades em parte justificam a coleção de métodos heurísticos encontrados na literatura, por exemplo, em George e Robinson (1980), Han et al.

2743

(1989), Gehring et al. (1990), Haessler e Talbot (1990), George (1992), Correia et al. (1992), Abdou e Yang (1994), Mohanty et al. (1994), Morabito e Arenales (1994), Bischoff et al. (1995), Abdou e Arghavani (1997), Gehring e Bortfeldt (1997), Miyazawa e Wakabayashi (1997, 2000), Xue e Lai (1997), Chien e Wu (1998, 1999), Davies e Bischoff (1999), Lins et al. (1999, 2002), Martello et al. (2000), Bortfeldt e Gehring (2001), Martins (2002), Cecílio e Morabito (2003) e Silva et al. (2003).

8. Estudos de Casos (tópico a ser incluído)

8.1. Indústria de Papel

8.2. Indústria de Móveis

8.3. Indústria Metalúrgica

8.4 Armazenagem em páletes

2744

9. Problemas Correlatos e Integrados

9.1. Perdas × Produtividade

Em alguns ambientes de corte, o ganho em produtividade da máquina pode compensar um possível aumento na perda de material. Estudos no sentido de verificar as possíveis perdas decorrentes do uso de padrões mais simples de serem cortados, como por exemplo os padrões 2-estágios e tabuleiro (da seção 6.1), são de interesse em ambientes industriais com alto volume de produção. Estudos deste “trade-off” podem ser encontrados, por exemplo, em Morabito e Arenales (2000) e Katsurayama (2001).

9.2 Redução no número de padrões Nem sempre o custo associado à produção está associado à perda de material.

Pode ocorrer que o número de trocas de padrões de corte pode afetar consideravelmente o tempo total de corte dos padrões. Este é particularmente o caso quando o equipamento de corte tem de ser preparado a cada novo padrão de corte; um procedimento que pode consumir um determinado tempo durante o qual o processo de corte tem de ser interrompido. Para evitar a falta de produção, devido aos tempos de preparação da máquina, a minimização do número de padrões de corte pode ser uma parcela significativa na composição de custos. A minimização do número de objetos (minimização da perda) e a minimização do número de padrões de corte (setups) são geralmente objetivos conflitantes, portanto, avaliar os efeitos de ambos os fatores em uma minimização global do custo também tem sido objeto de estudos.

O problema geral de corte de estoques com um número controlado de padrões pode ser formulado como:

Minimizar z = i

n

=∑

1

{cixi + siδ(xi)}

Sujeito a

i

n

=∑

1

aixi ≥ d

xi ≥ 0 i = 1, 2, ..., n e inteiro

δ(xi) é igual a 1 se xi > 0 e é igual a 0, caso contrário

em que si é o custo fixo para cortar o i.

Existe um número relativamente pequeno de trabalhos na literatura que tratam deste problema (Haessler (1975, 1991), Farley e Richardson (1984), Foerster e Wäscher (2000), Diegel et al. (1993), Umetami et al. (2003), Vanderbeck (2000), McDiarmid (1999), Limeira (2003), Poldi (2003), Yanasse e Limeira (2004).

2745

9.3 Problema de sortimento Em algumas ocasiões é possível escolher as dimensões do objeto que melhor

se adequam ao corte dos itens demandados. Por exemplo, um fornecedor de chapas dá ao cliente a oportunidade de especificar em que o corte de uma chapa grande deve ser feita pois ela precisa ser dividida em duas partes para poder ser entregue (vide figura 20).

Figura 20

Em outras ocasiões o fornecedor de chapas tem uma gama variada de chapas de diversos tamanhos e o cliente pode escolher dentre elas as que melhor se adequam ao corte dos items demandados. Estudos que consideram chapas de tamanhos variados podem ser encontrados em Yanasse et al. (1991, 1994), Yanasse (1994), Poldi (2003).

9.4 Minimização do tempo de corte (tópico a ser incluído)

Pode ocorrer que o caminho escolhido para a realização dos cortes de um padrão pode afetar consideravelmente o tempo total de corte dos padrões ou existem restrições na ordem em que as peças devem ser cortadas. Por exemplo, no corte de itens de uma chapa metálica (peças de avião, por exemplo), os itens não podem ser cortados seguindo uma ordem aleatória pois a chapa é presa apenas em alguns pontos. Pode ocorrer, portanto, que um pedaço interno da chapa se desprenda sem que tenhamos cortados os itens contidos nele. Em outras situações, o problema pode se reduzir a um de caminho mais curto para percorrer todas as arestas de um grafo (conhecido como o problema do carteiro chinês).

9.5 Seqüenciamento de padrões

A ordem na qual os padrões de corte são produzidos pode ser importante em alguns sistemas produtivos. Nestes casos, antes do corte dos padrões, é preciso determinar em qual seqüência os mesmos serão processados a fim de otimizar algum critério, ou seja, é preciso resolver um problema de seqüenciamento. A seqüência na qual os padrões são processados também interfere nos níveis de estoque intermediário, no manuseio de materiais, nos prazos de entrega, entre outros, uma vez

2746

que os padrões podem conter diferentes conjuntos de itens. O problema de seqüenciamento depende da solução do problema de corte de estoque (seções 3 – 6) e vice-versa, pois, os padrões de corte gerados precisam ser seqüenciáveis, do ponto de vista de algum critério.

Consideremos a situação que ocorre em indústrias de vidros. Do ponto de vista prático e administrativo, é recomendável que as peças solicitadas por um mesmo cliente sejam cortadas dentro de um tempo razoável. Isto por que o armazenamento de peças de vidro é bastante difícil; não podem ser armazenadas em pilhas grandes, tendo que ser manuseadas e armazenadas individualmente o que se torna bastante oneroso; as peças são muito frágeis, quebrando com facilidade; a medida que se aumenta o número de peças cortadas, fica difícil distinguir-se peças quase iguais pertencentes a clientes diferentes. Em alguns casos, as peças de um cliente são partes de uma conjunto maior a ser montado e pode ser difícil a reprodução exata ou a manutenção por um longo período de uma mesma qualidade/ tonalidade de vidro. É de interesse, neste caso, minimizar a “distância” entre os cortes de peças (ítens) correspondentes a um mesmo cliente, denominado de “espalhamento de ordem” (MORP- Minimization of ORder spread Problem). Estudos sobre o MORP podem ser encontrados emMadsen (1979), Foerster e Wäscher (1998), Fink e Voβ (1999).

Uma das aplicações mais importantes da minimização de espalhamento de ordem aparece em conexão com matrizes esparsas. Dada uma matriz A = (aij), n x n, encontrar uma matriz permutação P tal que todos os elementos não nulos de PTAP estão na diagonal ou em algumas das k primeiras superdiagonais ou subdiagonais. Neste contexto, o problema é conhecido como o problema de minimização de largura de banda (“bandwidth minimization”).

Figura 21

Na indústria de corte de bobinas de papel, pode ocorrer que a troca de padrões

implica em interrupção da produção para preparação das facas de corte (vide Figura 22). O tempo de interrupção depende do número de facas que precisam ser ajustadas. É de interesse, nestes casos, minimizar as descontinuidades de produção de peças (MDP).

2747

Uma descontinuidade ocorre portanto, quando uma peça que é processada no padrão de corte corrente não é processada no padrão de corte subsequente.

O MDP pode ser reduzido a um problema do caixeiro viajante (veja Madsen, 1979, 1988). Madsen (1988) utilizou o MDP para resolver o MORP. Cabe ressaltar, entretanto, que o MORP e o MDP são problemas similares, mas não equivalentes. Outros estudos sobre o MDP podem ser encontrados em Dyson and Gregory (1974), Linhares e Yanasse (2002).

bobina

l1 l2 l3 l4

L

bobina 1

bob. 2

bobina 3

bob. 4apara apara

tesouras

facasou

Corte de uma bobina

Figura 22

Em alguns processos industriais de corte, os padrões de corte não podem ser processados em qualquer ordem pois existem limitações no espaço físico ao redor do equipamento de corte, ou no caso deste equipamento possuir um número limitado de estações de descarregamento automáticas como é o caso de certas fábricas de chapas de fibra de madeira reconstituída (Belluzzo e Morabito, 2004).

O objetivo de interesse agora é a minimização do número máximo de pilhas abertas, MOSP (do inglês Minimization of Open Stack Problem). Quando o corte de um padrão é iniciado, diferentes tipos de itens são produzidos. A cada tipo de item cortado uma pilha nova é associada. Uma pilha é considerada aberta se a produção de um item foi iniciada, mas ainda não terminou. A pilha permanece aberta até que o último padrão que contenha este item seja processado. Considere que uma pilha só pode ser removida após um padrão ser completamente cortado e, desta forma, o número máximo de pilhas abertas ocorre exatamente após o processamento de um padrão e antes que qualquer pilha completa seja removida. Na maioria dos trabalhos encontrados na literatura, considera-se que pilhas acabadas só podem ser removidas

2748

após o término do corte do padrão. Pinto (2004) admite a possibilidade da remoção de pilhas acabadas durante o corte do padrão.

Como cada tipo de item abre uma nova pilha, que só é removida quando a demanda deste item for totalmente atendida, dependendo da seqüência escolhida para o corte dos padrões, pode ser preciso que algumas pilhas sejam temporariamente removidas e posteriormente trazidas de volta para serem completadas, acarretando um maior manuseio de materiais, maior dificuldade para administração dos itens e um comprometimento da produção final..

MOSP é um problema NP-difícil e é equivalente a outros problemas combinatórios que aparecem em contextos diferentes (veja Linhares e Yanasse, 2002). O primeiro modelo matemático para o MOSP foi proposto por Yanasse (1997), baseado na formulação do problema de minimização de troca de ferramentas (MTSP) proposta por Tang e Denardo (1988). Outras formulações para o problema MTSP podem ser estendidas para se modelar o MOSP, similarmente ao que foi feito em Yanasse (1997). Por exemplo, pode-se utilizar a formulação do MTSP como um problema de caixeiro viajante proposta por Laporte et al. (2002) para desenvolver um outro modelo para o MOSP. Outras formulações para o MOSP podem ser encontrada em Faggioli e Bentivoglio (1998) e Pinto (2004).

Para resolver o MOSP diferentes abordagens podem ser utilizadas, por exemplo, algoritmos branch-and-bound (Yanasse, 1997; Faggioli e Bentivoglio, 1998, Becceneri et at, 2004, Yanasse e Limeira, 2004), heurísticas (Yuen 1991, 1995; Becceneri, 1999; Fink e Voβ, 1999; Yanasse et al., 1999; Linhares et al. 1999; Ashikaga, 2001; Oliveira and Lorena, 2002; Becceneri et al, 2004), enumeração implícita (Yuen e Richardson, 1995). Caso particulares do MOSP também foram considerados em Lins (1989), Yanasse (1996) 9.6 Problema integrado de corte de estoque e seqüenciamento de padrões

Em geral, o problema de corte de estoque e o de sequenciamento dos padrões de corte são tratados, tanto na prática como na literatura, de forma independente e sucessiva. Em uma primeira etapa, resolve-se o problema de corte de estoque e, a partir da solução obtida, resolve-se o problema de seqüenciamento. Isto por que o problema de corte de estoque e o problema de seqüenciamento de padrões de corte, cada um deles, por si só, é difícil de ser resolvido de forma ótima. No caso em que o problema de sequenciamento é o MOSP, ambos os problemas são NP-difíceis e a combinação de ambos num único problema também resulta em um problema NP-difícil (vide Yanasse e Pinto, 2004).

Entretanto, com freqüência, uma boa solução para o problema de corte de estoque (p.ex., um conjunto de padrões com baixa perda de material) não resulta numa boa solução para o problema de seqüenciamento (p.ex., uma seqüência destes padrões com baixo número máximo de pilhas abertas), e vice-versa, o que evidencia objetivos conflitantes. Como os problemas são interdependentes, com dois objetivos de importância equivalente a serem resolvidos, trata-se, portanto, de um problema bi-objetivo.

Suponha, para efeito de ilustração, que o objetivo do problema de corte de estoque seja a minimização da perda (pe) gerada pelos padrões de corte e o objetivo do problema de seqüenciamento seja a minimização do número máximo de pilhas abertas (pi) (MOSP).

Tal problema bi-objetivo pode ser formulado matematicamente da seguinte maneira. Lembre-se que a1, a2, ..., ap são os possíveis p padrões de corte (colunas)

2749

para o problema de corte de estoque. Seja X o espaço de soluções factíveis do problema de corte de estoque. Note que se xj > 0 então a solução x utiliza o padrão de corte aj. Considere que x utiliza n padrões e seja s(x) = (a[1], a[2], ..., a[n]) uma seqüência destes n padrões ([k] = j indica que o padrão aj ocupa a k-ésima posição desta seqüência). Seja g(x) = mins(x)∈S(x){ h(s(x)) }, em que S(x) é o conjunto de todas as possíveis seqüências s(x) obtidas permutando-se os padrões a[1], a[2], ..., a[n], e h(s(x)) é o número máximo de pilhas abertas na seqüência s(x). Logo, chamando-se pe = f(x) e pi = g(x), tem-se o seguinte problema bi-objetivo:

(P0) Xxxxx

xgxfpipez

n ∈===),...,,(

))(),((),(min

21

em que x é uma solução para o problema de corte de estoque (X é o conjunto das soluções factíveis), cujas coordenadas positivas indicam os padrões de corte gerados a serem seqüenciados pela função g(x). Note que a cada solução x = (x1, x2, ..., xn) ∈ X corresponde z = (pe, pi). Em problemas mono-objetivos, como o problema de corte de estoque, os valores da função objetivo são completamente ordenados, isto é, dados quaisquer dois pontos x, y ∈ X, é sempre verdade que: (i) f(x) ≤ f(y), ou (ii) f(x) ≥ f(y). Em problemas bi-objetivos com objetivos conflitantes (i.e., melhorar um objetivo pode causar a piora de outro, e vice-versa), os valores da função objetivo são parcialmente ordenado, isto é, dados quaisquer dois pontos x e y ∈ X, existem três casos: (i) f(x) ≤ f(y) e g(x) ≤ g(y), (ii) f(x) ≥ f(y) e g(x) ≥ g(y), ou (iii) os dois casos anteriores não são verdadeiros. No caso (i) dizemos que x domina y.

Uma solução x* ∈ X é uma solução eficiente se não existe qualquer outra solução x∈X que domine x*. O conjunto de todas as soluções eficientes define uma curva de eficiência ou fronteira ótima, conforme ilustrado na figura 23. Em problemas com objetivos conflitantes, como é o caso do problema P0, é pouco provável que o conjunto das soluções eficientes seja unitário ou contenha poucos pontos. Existem diversos métodos para resolver problemas multi-objetivos (Cohon, 1978, Steuer, 1986). Conforme Arroyo (2002), dois aspectos importantes a serem considerados na resolução de problemas multi-objetivos são: a busca de soluções e a tomada de decisões. O primeiro refere-se ao processo de otimização no qual a região factível é direcionada para as soluções da fronteira ótima. O segundo envolve a seleção de um critério adequado para a escolha de uma solução desta fronteira, levando-se em conta o equilíbrio entre os objetivos conflitantes: ganha-se num, perde-se noutro (esta escolha em geral é feita pelo gerente ou decisor).

Alguns métodos são caracterizados pela participação do decisor antes do processo de busca de soluções (métodos a priori), isto é, antes de resolver o problema. Outros métodos são chamados a posteriori porque a participação do decisor ocorre depois do processo de busca de soluções. Primeiro a busca é feita sobre o conjunto de soluções eficientes considerando que os objetivos têm igual importância e depois o decisor escolhe a solução que achar mais adequada levando em conta o equilíbrio entre os objetivos conflitantes. Existem também métodos interativos, nos quais o decisor intervém durante a busca de soluções (processo de otimização), procurando guiar a busca para regiões onde existam soluções de interesse.

Pileggi et al. (2004) utilizam um método a posteriori baseado na minimização de um dos objetivos, sujeito à limitação do outro objetivo. A idéia desse método é que, variando-se esta limitação, é possível gerar os pontos da fronteira ótima. Por

2750

exemplo, podemos minimizar o número máximo de pilhas abertas (pi), sujeito à uma limitação ( epˆ ) para a perda de material (pe), ou seja:

(P1) X)x,...,x,x(x

ep)x(fpe)x(gpi

n ∈=≤=

=

21

min

Note que o problema P1 consiste em determinar um conjunto de padrões de corte (x) que, quando seqüenciados, abram o menor número máximo de pilhas (pi) possível, sujeito à restrição de que a perda gerada pelo corte desses padrões (pe) seja menor ou igual à perda tolerada ( epˆ ). Variando-se convenientemente a limitação epˆ é possível gerar os pontos da fronteira ótima. Alternativamente ao problema P1, pode-se minimizar a perda de material (pe), sujeito à uma limitação ( ipˆ ) para o número máximo de pilhas abertas (pi), ou seja:

(P2) X)x,...,x,x(x

ip)x(gpi)x(fpemin

n ∈=≤=

=

21

A solução do problema P2 consiste na menor perda (pe) obtida por um conjunto de padrões de corte (x), sujeito à restrição de que o número máximo de pilhas abertas (pi) obtido com o seqüenciamento desses padrões seja menor ou igual ao número máximo de pilhas abertas tolerado ( ipˆ ). Similarmente ao problema P1, variando-se a limitação ipˆ é possível gerar os pontos da fronteira óitma. Uma vantagem do problema P2 sobre P1 é que ipˆ em P2 é um número inteiro que varia discretamente (1, 2, 3, ...), enquanto que epˆ em P1 é um número real. Para melhor ilustrar esta discussão, a figura 23 abaixo apresenta uma curva de eficiência entre a perda e o número máximo de pilhas abertas.

Figura 23: Ilustração da curva de eficiência entre a perda (pe) e o número máximo de pilhas abertas (pi).

pêpe

Pilha

Perda

pi

pe

solução homogênea

solução ótimade (P3)

A

D

F

E

B

X

4

3

2

1

5 7,55,5

C

2751

pe perda mínima (isto é, limitante inferior para a perda, corresponde à solução ótima do problema de corte de estoque

pe perda máxima (isto é, limitante superior para a perda, correspondendo à solução obtida pelos padrões homogêneos - padrões com apenas um único tipo de item)

ep ˆ perda tolerada satisfazendo pe ≤ ep ˆ ≤ pe (isto é, tolerância definida pelo usuário para a perda)

pi número de pilhas máximo (isto é, limitante superior para o número de pilhas, correspondendo ao menor número de pilhas encontrado no seqüenciamento de padrões com perda igual à perda mínima)

ipˆ número de pilhas tolerado satisfazendo 1 ≤ ipˆ ≤ pi (isto é, tolerância definida pelo usuário para o número máximo de pilhas que pode ser aberto; 1 é o número máximo de pilhas abertas obtido pela solução homogênea)

Os pontos desta curva correspondem às soluções de mínima perda para diferentes valores de número máximo de pilhas abertas ou, inversamente, às soluções de mínimo número máximo de pilhas abertas para diferentes valores de perda de material. Considere as quatro soluções C, D, E e F, representadas no gráfico da figura 2. Note que as soluções C e F (sobre a curva) dominam a solução D (fora da curva), pois a perda e o número de pilhas das soluções C e F são menores ou iguais a perda e o número de pilhas da solução D. Por outro lado, as soluções C e F não dominam uma a outra, nem dominam a solução E (sobre a curva).

Como o número máximo de pilhas abertas é um número positivo e inteiro, o conjunto de pontos do eixo y (número de pilhas) do gráfico da figura 23 é discreto e, mais que isso, é finito e definido pelo intervalo [1, pi ], como é visto mais adiante. Neste caso, para cada valor do número de pilhas abertas, poderá existir uma solução eficiente que define a curva de eficiência entre a perda e o número máximo de pilhas abertas. Diz-se “uma” solução eficiente visto que é possível encontrar diferentes conjuntos de padrões de corte (i.e., diferentes soluções eficientes x*∈ X) com a mesma perda (pe) e que resultam no mesmo número máximo de pilhas abertas (pi). Como as soluções precisam satisfazer os critérios de tolerância dos problemas de corte e de seqüenciamento, os valores ipˆ (número máximo de pilhas abertas tolerado) e ep ˆ (perda máxima tolerada) delimitam a parte da curva que contém as soluções factíveis (do ponto de vista das tolerâncias estabelecidas pelo usuário). Ou seja, os pontos sobre a curva de eficiência contidos nos intervalos [1, ipˆ ] e [ pe , ep ˆ ] são os soluções alvo do equilíbrio entre minimizar a perda e minimizar o número de pilhas abertas. Em particular, o ponto A da curva de trade-off (figura 23) pode ser obtido resolvendo o problema P3,

(P3)

X)x,...,x,x(x

)x(fpe)x(gpi

n ∈=

===

21

pemin

2752

Para este problema a solução é definida por um conjunto de padrões de corte (x) que, quando seqüenciados, abram o menor número máximo de pilhas abertas (pi) e satisfaçam a restrição de que a perda gerada pelo corte desses padrões (pe) seja igual à perda mínima ( pe ). Este problema é difícil de ser resolvido de forma ótima devido à dificuldade de se examinar todos os conjuntos de padrões de corte em X com perda igual à perda mínima. Por outro lado, o ponto B da curva de eficiência pode ser facilmente obtido pela solução homogênea (padrões de corte com apenas um único tipo de item). Na prática, pode ser que não seja possível encontrar uma solução que satisfaça os critérios de tolerância de perda e de número de pilhas (ponto X da figura 23). Note que o espaço de soluções definido pelas tolerâncias pode ser vazio, isto é, pode ser que um problema não tenha uma solução que satisfaça às tolerâncias impostas.

Conforme discutido, os demais pontos da fronteira eficiente (figura 23) podem ser obtidos variando-se o valor de ep ˆ no problema P1, ou variando-se o valor de ipˆ no problema P2. De fato, por meio deste procedimento, por exemplo, fazendo-se ipˆ = 1, 2 …, pi no problema P2, obter-se-ia todos os pontos da fronteira eficiente, embora isso seja em geral computacionalmente intratável do ponto de vista prático. Em vista da dificuldade em definir a fronteira ótima para a perda e o número máximo de pilhas abertas, a procura é pelas soluções que estejam o mais próximo possível da fronteira eficiente (isto é, boas aproximações).

Em resumo, duas abordagens de solução foram descritas para tratar os problemas de geração e seqüenciamento de padrões de corte de forma integrada (problema P0). Em uma delas o problema de seqüenciamento é resolvido considerando o problema de geração como uma restrição (problema P1), e na outra, resolve-se o problema de geração considerando como restrição o problema de seqüenciamento (problema P2). Em ambos os casos, critérios de tolerância podem ser estabelecidos, a fim de que as soluções obtidas estejam dentro de limites tolerados. Tais problemas podem ser úteis para gerar curvas de eficiência aproximadas entre os critérios a serem otimizados pelos problemas de corte de estoque e seqüenciamento de padrões de corte, por exemplo, entre a perda de material e o número máximo de pilhas abertas.

Em Pileggi (2002) e Pileggi et al. (2004) são apresentadas três abordagens, inspiradas no problema P2, para resolver o problema integrado de geração e seqüenciamento de padrões de corte. As abordagens são simples, de modo que podem ser facilmente aplicadas na prática para dar apoio às decisões. A primeira abordagem, denominada Abordagem 1, consiste em resolver os dois problemas de forma seqüencial e iterativa, isto é, o problema de corte de estoque é resolvido em uma primeira etapa e o de seqüenciamento em uma segunda etapa. Em função da qualidade da solução obtida para o problema de seqüenciamento, o problema de corte de estoque é novamente resolvido, mas agora com informações adicionais que permitem que um novo conjunto de padrões seja gerado na primeira etapa, e assim sucessivamente, até que um certo número de iterações seja atingido, ou que uma solução que satisfaça as tolerâncias impostas pelo usuário seja encontrada. A Abordagem 2 também é baseada num procedimento iterativo que, por uma heurística construtiva gulosa, gera os padrões de corte em cada iteração, um após o outro, considerando a seqüência obtida. Uma solução para o problema de corte é construída, pela geração de cada um dos padrões, tendo como restrição o número máximo de pilhas que pode ser aberto com o seqüenciamento dos mesmos. Este procedimento é repetido por um certo número de

2753

vezes, variando-se os valores relativos dos itens. A terceira abordagem, Abordagem 3, consiste em resolver o problema de corte de estoque, utilizando o método simplex com um procedimento de geração de colunas, de modo que o número máximo de pilhas abertas seja considerado durante o processo de geração de colunas.

Pileggi (2002) escolheu uma das heurísticas propostas por Yuen (1995) para resolver o subproblema de sequenciamento de padrões devido à sua simplicidade e superioridade com relação às demais heurísticas propostas por este autor com relação à qualidade das soluções obtidas e ao tempo computacional, e também devido à facilidade de sua implementação computacional. Outras heurísticas também poderiam ter sido utilizadas (Pinto, 2004).

Essa heurística é baseada na medida de adequação (matching) de um padrão com as pilhas abertas. Quanto maior o número de itens em comum, melhor a adequação de um padrão com as pilhas atuais. Por outro lado, quanto maior o número de itens novos introduzidos, pior a adequação às pilhas atuais. Para medir a adequação dos padrões às pilhas abertas, considere Cj o número de tipos de itens em comum entre o padrão j e as pilhas abertas, e Nj o número de tipos de itens no padrão j que não estão incluídos nas pilhas abertas. A adequação de um padrão j, Mj, é definida como o número de itens em comum ao padrão j e às pilhas abertas, menos o número de tipos de itens novos contidos no padrão j, ou seja, Mj = Cj – Nj. A heurística de Yuen está descrita a seguir.

Enquanto ainda existirem padrões não seqüenciados, faça:

PASSO 1:Selecione o padrão ainda não seqüenciado com a maior medida de adequação, Mj;

PASSO 2: Se ocorrer um empate, selecione o padrão com o menor número de tipos de itens novos introduzidos (Nj);

PASSO 3: Em caso de novo empate, selecione o padrão que primeiro ocorre.

Para ilustração dessa heurística considere o conjunto de dados da tabela 1 (Yuen, 1991), com cada linha correspondente a um padrão de corte e, cada coluna a um item. Cada célula marcada com X indica a presença do item no padrão. Na tabela 2 a seqüência obtida com a aplicação da heurística de Yuen sobre os dados da tabela 1 é apresentada. O padrão 1 foi utilizado como padrão inicial. Nesta tabela a primeira coluna corresponde aos padrões que foram seqüenciados e a segunda coluna mostra quais as pilhas foram abertas. Aplicando a heurística sobre os dados da tabela 1 o número máximo de pilhas abertas obtido é quatro como é possível observar na tabela 2.

2754

Tabela 1: Exemplo de um conjunto de padrões de corte (YUEN, 1991).

Item

Padrão 1 2 3 4 5 6 7 8

1 X X

2 X X X X

3 X X

4 X X X

5 X X

Tabela 2: Seqüência obtida com a aplicação da heurística sobre os dados da tabela 1.

Padrões

seqüenciados

No de

pilhas abertas

Pilhas

abertas

1 2 3 e 5

1-3 3 1, 3, e 5

1-3-5 4 1, 3, 5 e 7

1-3-5-2 4 1, 2, 5 e 6

1-3-5-2-4 3 4, 5 e 8

Pinto (2004) e Yanasse e Pinto (2004) sugeriram um modelo para o problema

integrado de corte e sequenciamento de padrões com limitação no número máximo de pilhas abertas. Utilizando uma relaxação lagrangeana, o problema é decomposto em um de corte de estoque e outro de seqüenciamento de padrões. O problema de corte de estoque é resolvido relaxando-se a integralidade das variáveis e geração de colunas. O problema de sequenciamento é resolvido utilizando-se um método enumerativo. O problema dual é resolvido por um método do subgradiente modificado. Com esta decomposição, problemas de tamanhos moderados (com até 20 itens) puderam ser resolvidos, dependendo dos tamanhos relativos dos itens em relação à chapa.

Existem alguns outros trabalhos propostos na literatura que focalizam o problema de corte e de sequenciamento de padrões. Por exemplo, Dyson e Gregory (1974), Madsen (1979, 1988). No entanto, nestes trabalhos, o problema geral foi dividido em 2 problemas independentes que foram resolvidos de forma sequencial. Apenas em Armbruster (2002) pudemos observar realmente que os dois problemas foram considerados de forma integrada, como em Pileggi (2002), Pileggi et all (2004), Pinto (2004), Pinto e Yanasse (2004).

Armbruster (2002) considera um problema de corte unidimensional integrado a um problema de sequenciamento de padrões que aparece em uma indústria de aço. A dificuldade no sequenciamento se deve a compartimentos limitados existentes nas máquinas de corte em que os itens devem ser colocados separadamente até que sua demanda seja completada. Não é permitido o esvaziamento de um compartimento sem que a demanda esteja totalmente completada. O método de solução proposto por

2755

Armbruster (2002) é separado em 3 partes. Na primeira, o problema de corte de estoque é relaxado e a técnica de geração de colunas de Gilmore e Gomory (1961, 1963) é usada para gerar a solução inicial. Na segunda parte, um esquema de arredondamento é aplicado para gerar uma solução inteira. Na terceira parte, dado o conjunto de padrões, um sequenciamento viável é determinado. Para isto, uma enumeração da ordem dos itens cortados a serem colocados em cada um dos compartimentos disponíveis é realizada. Caso não seja possível encontrar-se uma ordem viável, Armbruster modifica alguns dos padrões segundo alguma regras, separando itens em padrões que ainda não foram considerados e que utilizariam novos compartimentos.

9.7 Problema integrado de lote e corte (tópico a ser inclído)

No planejamento de produção de algumas indústrias dois processos fundamentais existem e geralmente são tratados de forma independente. Um deles é o problema de dimensionamento de lotes quem que se deseja determinar a quantidade de produtos finais a serem fabricados em cada período do horizonte de planejamento. O outro problema é o de corte de estoque, ou seja, o corte de placas em peças menores que compõem os produtos finais. Em Gramani (2001) estes dois problemas são tratados de forma conjunta, a fim de tentar obter uma solução global que certamente é melhor que a composição das soluções ótimas das partes. Um modelo de programação inteira mista é sugerido e propostas para a sua solução de forma aproximada são apresentadas, relaxando algumas restrições do problema.

2756

10. Bibliografia

1. Abdou, G. e Arghavani, J. (1997). Interactive ILP Procedures for Stacking

Optimization for the 3D Palletization Problem. International Journal of Production Research, v.35, n.5, p.1287-1304.

2. Abdou, G. e Yang, M. (1994). A systematic approach for the three-dimensional palletization problem. International Journal of Production Research 32, 2381-2394.

3. Amaral, A. e Letchford, A. (2001). Comment on "An exact algorithm for general, orthogonal,two-dimensional knapsack problems". Submetido para European Journal of Operational Research.

4. Arcaro, V.F. (1988). Recorte de Estoque Unidimensional, Dissertação de Mestrado, ICMSC/USP.

5. Arenales, M. (2003). Modelos e métodos básicos dos problemas de corte. Mini-Curso, XI Regional de Informática, SBC Paraná, Universidade Estadual de Londrina, 22 a 26 de setembro de 2003.

6. Arenales, M. e Morabito, R. (1995). An and/or-graph approach to the solution of two-dimensional non-guillotine cutting problems. European Journal of Operational Research 84, 599-617.

7. Arenales, M. e Morabito, R. (1997). An overview of and/or-graph approaches to cutting and packing problems, em Decision making under conditions of uncertainty: Cutting-packing problems, The International Scientific Collection, ISBN 5-86911-161-7, UFA State Aviation Technical University, Belarus, Rússia, 207-224.

8. Arenales, M.N.; Morabito, R. (Eds.) (1997) “O Problema de Corte e Empacotamento e Aplicações Industriais”, Mini-Curso, XX CNMAC – Congresso Nacional de Matemática Aplicada e Computacional / 2 ª Oficina Nacional de Corte e e Empacotamento, Gramado, RS, de 08 a 12 de setembro de 1997, 146 p.

9. Arenales, M., Morabito, R., Yanasse, H. (eds.), 1999, Special issue: Cutting and packing problems. Pesquisa Operacional 19(2), 107-299.

10. Armbruster, M. (2002). A solution procedure for a pattern sequencing problem as part of a one-dimensional cutting stock problem in the steel industry, European Journal of Operational Research 141, 328-340.

11. Balasubramanian, R. (1992). The pallet loading problem: A survey. International Journal of Production Economics 28, 217-225.

12. Bard, J.F. (1988). A heuristic for minimizing the number of tool switches on a flexible machine, IIE Transactions 20, 382-391.

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

14. Beasley, J. (1985). Algorithms for unconstrained two-dimensional guillotine cutting. Journal of the Operational Research Society 36, 297-306.

2757

15. Beasley, J. E. (1985). An exact two-dimensional non-guillotine cutting tree search procedure. Operations Research 33, 49-64.

16. Beasley, J.E. (2001). A Population Heuristic for Constrained Two-Dimensional Non-Guillotine Cutting. Aceito para publicação no European Journal of Operational Research.

17. Becceneri, J.C., Yanasse, H.H., Soma, N.Y. (2004). A method for solving the minimisation of the maximum number of open stacks problem within a cutting process, Computers and Operations Research 31(14) 2315-2332.

18. Belluzzo, L.; Morabito, R. (2004). Otimização nos padrões de corte de chapas de fibra de madeira reconstituída: Um estudo de caso. Submetido para a Pesquisa Operacional.

19. Bischoff, E., Dowsland, W.B. (1982). An Application of the Micro to Product Design and Distribution. Operational Research Society Journal, v.33, p.271-280.

20. Bischoff, E. e M. Marriott (1990). A comparative evaluation of heuristic for container loading. Eur.J.Oper.Res. 44, 267-276.

21. Bischcoff, E. e S. W. Ratcliff (1995). Loading multiple pallets. J.Oper.Res.Soc. 46, 1322-1336.

22. Bischoff, E.E., Ratcliff, M.S.W. (1995). Issues in the Development of Approaches to Container Loading. Omega, v.23, n.4, p.377-390.

23. Bischoff, E.; F. Janetz; S. W. Ratcliff (1995). Loading pallets with non-identical items. Eur.J.Oper.Res. 84, 681-692.

24. Bischoff, E. e Waescher, G. (1995), Special issue: Cutting and packing. European Journal of Operational Research, 84(3).

25. Bhattacharya, S., Roy, R. e Bhattacharya, S. (1998). An exact depth-first algorithm for the pallet loading problem. European Journal of Operational Research 110, 610-625.

26. Bortfeldt, A., Gehring, H (2001). A Hybrid Genetic Algorithm for the Container Loading Problem. European Journal of Operational Research, v.131, p.143-161.

27. Brooke, A., Kendrick, D., Meeraus, A. e Rosenthal, R.E. (1992). GAMS: A user’s guide, Release 2.25. The Scientific Press.

28. Brown, A. (1971), Optimum Packing and Depletion. MacDonald - London and American Elsevier Inc., New York, NY.

29. Caprara, A. e Monaci, M. (2004). On the two-dimensional knapsack problem. Operations Research Letters 32, 5-14.

30. Carnieri, C., Guillermo, A., Gavinho, L. (1994), Solution procedures for cutting lumber into furniture parts. European Journal of Operational Research 73, 495-501.

31. Cecílio, F. e Morabito, R. (2003). Heurísticas para o problema de carregamento de carga dentro de contêineres. Submetido para publicação.

2758

32. Chen, C.S., Lee, S.M., Shen, Q.S. (1995). An Analytical Model for the Container Loading Problem. European Journal of Operational Research, v.80, p.68-76.

33. Chien, C.F., Wu, W.T. (1998). A Recursive Computational Procedure for Container Loading. Computers & Industrial Engineering, v.35, p.319-322.

34. Chien, C.F., Wu, W.T. (1999). A Framework of Modularized Heuristics for Determining the Container Loading Patterns. Computers & Industrial Engineering, v.37, p.339-342.

35. Christofides, N. e E. Hadjiconstantinou (1995). An exact algorithm for orthogonal 2-D cutting problems using guillotine cuts. Eur.J.Oper.Res. 83, 21-38.

36. Christofides, N. e C. Whitlock (1977). An algorithm for two-dimensional cutting problems. Oper.Res. 25, 30-44.

37. Chvatal, V. (1983). Linear Programming, W.H. Freeman.

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

39. Correia, M. H.; J. F. Oliveira; J. S. Ferreira (1992). Problemas de empacotamento tridimensional. Investigação operacional 12(2), 169-180.

40. Crama, Y., Kolen, A.W.J., Oelermans, A.G., Spieksma, F.C.R. (1994). Minimizing the number of tool switches on a flexible machine, International Journal of Flexible Manufacturing Systems 6, 33-54.

41. Davies, A.P., Bischoff, E.E. (1999). Weight Distribution Considerations in Container Loading. European Journal of Operational Research, v.114, p.509-527.

42. Daza, V. P., Alvarenga, A. G. e Diego, J. (1995). Exact solutions for constrained two-dimensional cutting problems. European Journal of Operational Research, 84, 633-644.

43. Diegel, A.; Chetty, M.; Van Schalkwyck, S.; Naidoo, S. (1993). Setup Combining in the Trim Loss Problem – 3to2 & 2to1. Working Paper, Business Administration, University of Natal, Durban, First Draft.

44. Dowsland, K. (1984). The three-dimensional pallet chart: an analysis of the factors affecting the set of feasible layouts for a class of two-dimensional packing problems. Journal of the Operational Research Society 35, 895-905.

45. Dowsland, K. (1985). Determining an upper bound for a class of rectangular packing problems. Computers & Operations Research, vol. 12, pp. 201-205.

46. Dowsland, K. (1987). An exact algorithm for the pallet loading problem. European Journal of Operational Research 31, 78-84.

47. Dowsland, K. (1993). Packing problems. European Journal of Operational Research 68, 389-399.

48. Dowsland, K. (1993). Some experiments with simulated annealing techniques for packing problems. European Journal of Operational Research 68, 389-399.

2759

49. Dowsland, K. (1996). Simple tabu Thresholding and the Pallet Loading Problem. In: Metaheuristics: theory & applications [edited by I.H. Osman and J. P. Kelly], Kluwer Academic Publishers, 378-406.

50. Dowsland, W.B (1995). Improving Palletisation Efficiency---The Theoretical Basis and Practical Application, International Journal of Production Research 33(8), 2213-2222.

51. Dowsland, K. e Dowsland, W. (1992). Packing Problems, European Journal of Operational Research, 56, 2-14.

52. Dyckhoff, H. (1981), "A New Linear Programming Approach to the Cutting Stock Problem", Operations Research 29, pp.1092-1104.

53. Dyckhoff, H. (1990). A Typology of Cutting and Packing Problems, European Journal of Operational Research, 44, 145-159.

54. Dyckhoff, H., Kruse, H.-J., Abel, D. e Gal, T. (1985). Trim Loss and Related Problems, Omega, 13, 59-72.

55. Dyckhoff, H. e Finke, U. (1992). Cutting and Packing in Production and Distribution: A Typology and Bibliography, Springler-Verlag Co, Heidelberg.

56. Dyckhoff, H., Scheithauer, G., Terno, J. (1997), Cutting and packing. In M. Amico, F. Maffioli, F., S. Martello (eds.), Annotated bibliographies in combinatorial optimisation. John Wiley & Sons, New York, NY, 393-414.

57. Dyckhoff, H. e Waescher, G. (1990), Special issue: Cutting and packing. European Journal of Operational Research, 44(2).

58. Dyson, R. e Gregory, A. (1974), "The Cutting Stock Problem in the Flat Glass Industry", Operational Research Quartely 25, pp.41-53.

59. Eilon, S. e Christofides, N. (1971), "The Loading Problem", Management Science 17, pp.259-267.

60. Faggioli, E., Bentivoglio, C.A. (1998), Heuristic and exact methods for the cutting sequencing problem. European Journal of Operational Research, v.110, n.3, p.564-575.

61. Farley, A. (1983). Trim-Loss Pattern Rearrangement and its Relevance to the Flat Glass Industry, European Journal of the Operational Research 14, 386-392.

62. Farley, A. (1983). A Note on Modifying a Two-Dimensional Trim Loss Algorithm to Deal with Cutting Restrictions, European Journal of the Operational Research 14, 393-395.

63. Farley, A. (1983), Practical adaptations of the Gilmore-Gomory approach to cutting stock problems. OR Spektrum 10, 113-123.

64. Farley, A.A.; Richardson, K.V. (1984). Fixed charge problems with identical fixed charges. European Journal of Operational Research, 18: 245-49.

65. Fayard, D., Hifi, M., Zissimopoulos, V. (1998). An efficient approach for large-scale two-dimensional guillotine cutting stock problems. Journal of the Operational Research Society 49, 1270-1277.

2760

66. Fink, A., Voss, S. (1999). Applications of modern heuristic search methods to pattern sequencing problems. Computer and Operations Research, v.26, n.1, p.17-34.

67. Foerster, H.E., Waescher, G. (1998). Simulated Annealing for Order Spread Minimization in Sequencing Cutting Patterns. European Journal of Operational Research, v.110, p.272-281.

68. Foerster, H.; Wäscher, G. (2000). Pattern reduction in one-dimensional cutting stock problem. International Journal of Production Research, 38: 1657-76.

69. Foronda, S. e Carino, H. (1991). A heuristic approach to the lumber allocation and manufacturing in hardwood dimension and furniture manufacturing. European Journal of Operational Research 54, 151-162.

70. G, Y. e Kang, M. (2001). A fast algorithm for two-dimensional pallet loading problems of large size. European Journal of Operational Research 134, 193-200.

71. Garcia, V. (1996). Geração de padrões de corte de chapas de fibra de madeira reconstituída. Dissertação de Mestrado, UFSCar, Departamento de Engenharia de Produção, São Carlos.

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

73. Garey, M.R e Johnson, D.S. (1979). Computers and Intractability A guide to the theory of NP-completeness, W.H. Freeman and Co.

74. Gau, T.; Wäscher, G. (1995). CUTGEN1: a problem generator for the standard one-dimensional cutting stock problem. European Journal of Operational Research, 84: 572-79.

75. Gehring, H., Bortfeldt, A. (1997). A Genetic Algorithm for Solving the Container Loading Problem. International Transactions in Operations Research, v.4, n.5/6, p.401-418.

76. Gehring, H., Menschner, K., Meyer, M. (1990). A Computer-Based Heuristic for Packing Pooled Shipment Containers. European Journal of Operational Research, v.44, p.277-288.

77. George, J.A. (1992). A Method for Solving Container Packing for a Single Size of Box. Journal of Operational Research Society, v.43, n.4, p.307-312.

78. George, J. e D. Robinson (1980). A heuristic for packing boxes into a container. Computers and Operations Research 7, 147-156.

79. Gilmore, P.C. e Gomory, R.E. (1961). A Linear Programming Approach to the Cutting Stock Problem. Operations Research, 9, 849-859.

80. Gilmore, P.C. e Gomory, R.E. (1963). A Linear Programming Approach to the Cutting Stock Problem, Part II. Operations Research, 11, 863-888.

81. Gilmore, P.C. e Gomory, R.E. (1965). Multistage Cutting Stock Problems of Two and More Dimensions. Operations Research, 13, 94-120.

82. Gilmore, P. e Gomory, R. (1966). The Theory and Computation of Knapsack Functions, Operations Research 14, p.1045-1074.

2761

83. Golden, B. (1976). Approaches to the Cutting Stock Problem. AIIE Transactions, 8, 265-274.

84. Gramani, M.C.N. (2001). Otimização do processo de cortagem acoplado ao planejamento da produção, Tese de Doutorado, Universidade Estadual de Campinas, Faculdade de Engenharia Elétrica e de Computação, Campinas, SP.

85. Haessler, R.W. (1975). Controlling cutting pattern changes in one-dimensional trim problems, Operations Research, 23: 483-93.

86. Haessler, R. (1980). A note on computational modifications to the Gilmore-Gomory cutting stock algorithm. Operations Research 28(4), 1001-1005.

87. Haessler, R.W. (1991). Cutting stock problems and solutions procedures, European Journal of Operational Research, 54: 141-50.

88. Haessler, R. e F. Talbot (1990). Load planning for shipments of low density products. European Journal of Operational Research 44, 289-299.

89. Haessler, R.W.; Sweeney, P.E. (1991). Cutting stock problems and solution procedures. European Journal of Operational Research, 54, p.141-150.

90. Hadjiconstantinou, E., Christofides, N. (1995). An Exact Algorithm for General, Orthogonal, Two-Dimensional Knapsack Problems. European Journal of Operational Research, v.83, p.39-56.

91. Han, C. P.; K. Knott; P. Egbelu (1989). A heuristic approach to the three-dimensional cargo loading problem. Int.J.Prod.Res. 27(5), 757-774.

92. Harjunkoski I.; Pörn R., Westerlund T.; Skifvars, H. (1997). Different strategies for solving bilinear integer non-linear programming problems with convex transformations. Computers & Chemical Engineering 21, 487-492.

93. Harris, R. (1987). An industrial application of integer programming, MSc. Thesis in Industrial Programming Technology, University of Sheffield, Sheffield.

94. Hendry, L. C. Fok, K. K. Shek, K. W. (1996). A cutting stock and scheduling problem in the copper industry. Journal of Operational Research Society, vol. 47, n.1, 38-47.

95. Herbert, A. e Dowsland, K. (1996). A family of genetic algorithms for the pallet loading problem. Annals of Operations Research 63, 415-436.

96. Herz, J. (1972). Recursive computational procedure for two-dimensional stock cutting. IBM Journal of Research and Development 16, 462-469.

97. Hifi, M. (1997). The DH/KD algorithm: A hybrid approach for unconstrained two-dimensional cutting problems. European Journal of Operational Research, 97(1), 41-52.

98. Hifi, M. (1997). An improvement of Viswanathan and Bagchi’s exact algorithm for constrained two-dimensional cutting stock. Computers and Operations Research 24(8), 727-736.

99. Hifi, M. (2002) (ed.). Special issue on cutting and packing. Studia Informatica Universalis, 2, 1-161.

2762

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

101. Hifi, M. e Zissimopoulos, V. (1996). A recursive exact algorithm for weighted two-dimensional cutting. European Journal of Operational Research 91, 553-564.

102. Hinxman, A.I. (1980). The Trim-Loss and Assortment Problems: A Survey. European Journal of Operational Research, 5, 8-18.

103. Hodgson, T. (1982). A combined approach to the pallet loading problem. IIE Transactions 14(3), 176-182.

104. Hoto, R. (2001). O problema da mochila compartimentada aplicada no corte de bobinas de aço. Tese de doutorado, COPPE/UFRJ.

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

106. Hoto, R., Maculan, N., Arenales, M. e Marques, F. (2002). Um novo procedimento para o cálculo de mochilas Compartimentadas, Investigação Operacional, 22, p. 213-234.

107. Johnson, D.S. (1973). Near optimal bin packing algorithms. Technical Report MAC TR-109, Project MAC. Massachusetts Institute of Technology, Cambridge, MA.

108. Johnson, M.P., Rennick, C., Zak, E. (1999). One dimensional cutting stock problem in just-in-time environment. Pesquisa Operacional 19, 145-158.

109. Katsurayama, D.M. (2001). Estudo sobre o efeito da utilização de padrões tabuleiro na produtividade do equipamento de cortes. Dissertação de Mestrado, Curso de Computação Aplicada, Instituto Nacional de Pesquisas Espaciais, São José dos Campos.

110. Kullick, A. (1982). Interlocking pallet pattern simulation program, Industrial Engineering, September, 22-24.

111. Laporte, G., González, J.J.S., Semet, F. (2002). Exact algorithms for the job sequencing and tool switching problem. (Downloadable from http://www.gerad.ca/es/publicaciones/cahiers_chrono.php).

112. Lasdon, L.S. (1970). Optimization Theory for Large Systems. MacMillan, New York.

113. Letchford, A. N. e Amaral, A. (2001), Analysis of Upper Bounds for the Pallet Loading Problem, European Journal Of Operational Research 3 (132), pp. 582-593.

114. Limeira, M.S. (2003). Redução do número de padrões de corte em problemas de corte de estoque. Tese de Doutorado, Curso de Computação Aplicada, Instituto Nacional de Pesquisas Espaciais, São José dos Campos.

115. Linhares, A.; Yanasse, H.H.. (2002). Connections between cutting-pattern sequencing, VLSI design, and flexible machines. Computers and Operations Research, vol.29(12):1759-1772.

2763

116. Linhares, A., Yanasse, H.H., Torreão, J.R.A. (1999). Linear gate assignment: a fast statistical mechanics approach, IEEE Transaction on Computer Aided Design of Integrated Circuits and Systems 18(12) 1750-1758.

117. Lins, S. (1989). Traversing trees and scheduling tasks for duplex corrugator machines, Pesquisa Operacional, 9(1): 40-54.

118. Lins, L., Lins, S., Morabito, R. (1999). A 9-Fold Partition Heuristic for Packing Boxes into a Container. Investigación Operativa, v.7, n.3, p.69-82.

119. Lins, L., Lins, S. e Morabito, R. (2002). An n-tet graph approach for non-guillotine packings of n-dimensional boxes into an n-container. European Journal of Operational Research 141, 421-439.

120. Lins, L., Lins, S. e Morabito, R. (2003). An L-approach for packing (l,w)-rectangles into rectangular and L-shaped pieces, Journal of the Operational Research Society, 54, 777-789.

121. Liu, F.F., Hsiao, C. (1997). A Three-Dimensional Pallet Loading Method for Single-Size Boxes. Journal of the Operational Research Society, v.48, p.726-735.

122. Lirov, Y. (1992) (ed). Special issue: Cutting stock: Geometric resource allocation, Mathematical and Computer Modelling, 16(1).

123. Lodi, A., Martello, S. e Monaci, M. (2002). Two-dimensional packing problems: a survey. European Journal of Operational Research 141, 241-252.

124. Lodi, A. e Monaci, M. (2003). Integer programming models for 2-staged two-dimensional knapsack problems. Mathematical Programming, 94, 257-278.

125. Madsen, O. (1979). Glass cutting in a Small Firm, Mathematical Programming 17, 85- 90

126. Madsen, O. (1988). An application of travelling-salesman routines to solve pattern-allocation problems in the glass industry. Journal of the Operational Research Society 39, 249-256.

127. Marcotte, O. (1985). The cutting stock problem and integer rounding, Mathematical Programming 33, 82-92.

128. Marcotte, O. (1986). An instance of the cutting stock problem for which the rounding property does not hold, Operations Research Letters 4, 239-243.

129. Marques, F. (2004), O problema da Mochila Compartimentada: Modelos, métodos e aplicações, Tese de doutorado, ICMC/USP.

130. Marques, F. e Arenales, M. (2002). O problema da mochila compartimentada e aplicações, Pesquisa Operacional, 22 (3), p. 285-304.

131. Martello, S. (1994). Special issue: Knapsack, packing and cutting, Part I: One dimensional knapsack problems. INFOR, 32(3).

132. Martello, S. (1994), Special issue: Knapsack, packing and cutting, Part II: Multidimensional knapsack and cutting stock problems. INFOR, 32(4).

133. Martello, S., Pisinger, D., Vigo, D. (2000). The Three Dimensional Bin Packing Problem. Operations Research 48, 256-267.

2764

134. Martello, S. e Toth, P. (1990). Knapsack Problems: Algorithms and Computer Implementations. J. Wiley & Sons, West Sussex.

135. Martins, G. H. (2002). Packing in two and three dimensions. PhD Dissertation. Naval Postgraduate School, Monterey, CA, EUA.

136. McDiarmid, C. (1998). Pattern minimisation in cutting stock problems. Discrete Applied Mathematics, 98: 121-30.

137. Miyazawa, F.K., Wakabayashi, Y. (1997). An Algorithm for the Three-Dimensional Packing Problem. Algorithmica, v.18, p.122-144.

138. Miyazawa, F. K., Wakabayashi, Y. (2000). Approximation Algorithms for the Orthogonal Z-Oriented 3-D Packing Problem. SIAM Journal on Computing, v.29, p.1008-1029.

139. Mohanty, B.; K. Mathur; N. Ivancic (1994). Value considerations in three-dimensional packing - A heuristic procedure using the fractional knapsack problem. Eur.J.Oper.Res. 74, 143-151.

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

141. Morabito, R. (1994). Modelos de otimização para o problema de corte nas indústrias de papel e papelão e de móveis. Gestão & Produção 1(1), 59-76.

142. Morabito, R. (2004). Problemas de corte e empacotamento. Mini-Curso, X ELAVIO – Escuela latinoamericana de verano de Investigación Operativa, Uruguai, 16 a 20 de fevereiro de 2004.

143. Morabito, R. e Arenales, M. (1992). Um exame dos Problemas de Corte e Empacotamento. Pesquisa Operacional, 12(1), 1-20.

144. Morabito, R. e Arenales, M. (1994). An AND/OR-graph approach to the container loading problem. International Transactions in Operational Research 1(1), 59-73.

145. Morabito, R. e Arenales, M. (1995). Performance of two heuristics for solving large scale two-dimensional guillotine cutting problems. INFOR 33(2), 145-155.

146. Morabito, R. e Arenales, M. (1996). Staged and constrained two-dimensional guillotine cutting problems: An and/or-graph approach, European Journal of Operational Research, 94, 548-560.

147. Morabito, R e Arenales, M. (1997). Abordagens para o Problema do Carregamento de Contêineres. Pesquisa Operacional 17(1), 29-56.

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

149. Morabito, R., Arenales, M e Arcaro, V. (1992). An AND/OR-graph approach for two-dimensional cutting problems. European Journal of Operational Research 58(2), 263-271.

2765

150. Morabito, R. e Farago, R. (2002). A tight Lagrangean relaxation bound for the manufacturer´s pallet loading problem. Studia Informatica Universalis 2(1), 57-76.

151. Morabito, R. e Garcia, V. (1998). The cutting stock problem in a hardboard industry: A case study. Computers & Operations Research 25(6), 469-485.

152. Morabito, R. e Morales, S. (1998). A simple and effective recursive procedure for the manufacturer’s pallet loading problem. Journal of the Operational Research Society 49, 819-828.

153. Morabito, R. e Morales, S. (1999). Errata: "A simple and effective recursive procedure for the manufacturers´ pallet loading problem". Journal of the Operational Research Society 50, 876.

154. Morabito, R., Morales, S. e Widmer, J.A. (2000). Loading optimization of palletized products on trucks, Transportation Research, Part E 36, 285-296.

155. Mornar, V. e Khoshnevis, B. (1997). A cutting stock procedure for printed circuit board production. Computers and Industrial Engineering 32(1), 57-66.

156. Mukhacheva, E. A. (1997) (ed). Decision making under conditions of uncertainty: cutting -packing problems. The International Scientific Collection, Ufa, Russia.

157. Nelissen, J. (1993). New Approaches to the Pallet Loading Problem, Working Paper, Schriften zur Informatik und Angewandten Mathematik, Julho, Bericht no. 155.

158. Nelissen, J. (1994). Solving the pallet loading problem more efficiently. Working Paper, Graduiertenkolleg Informatik und Technik, Aachen.

159. Nelissen, J. (1995). How to use the structural constraints to compute na upper bound for the pallet loading problem, European Journal of Operational Research 84, 662-680.

160. Oliveira, J. F. e Ferreira, J. S. (1990). An improved version of Wang’s algorithm for two-dimensional cutting problems. European Journal of Operational Research 44, 256-266.

161. Oliveira A.C.M., Lorena, L.A.N. (2002). A Constructive Genetic Algorithm for Gate Matrix Layout Problems, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 21(8) 969-974.

162. Pileggi, G.C.F. (2002). Abordagens para otimização integrada dos problemas de geração e seqüenciamento de padrões de corte. Tese de Doutorado, ICMC/USP, São Carlos, 154p.

163. Pileggi, G. C. F., Morabito, R., ARENALES, M. (2004), Abordagens para otimização integrada dos problemas de geração e sequenciamento de padrões de corte: caso unidimensional, submetido à Pesquisa Operacional.

2766

164. Pinto, M.J. (2004) Algumas contribuições a resolução do problema de corte integrado ao problema de seqüenciamento dos padrões. Tese de Doutorado em Computação e Matemática Aplicada – INPE.

165. Pisinger, D. (1995). Algorithms for knapsack problems. Thesis-DIKU, University of Copenhagen, Copenhagen. 200p.

166. Pisinger, D. (1999). A Tree Search Heuristic for the Container Loading Problem. Ricerca Operativa.

167. Pureza, V. e Morabito, R. (2003). Uma heurística de busca tabu simples para o problema de carregamento de paletes do produtor, Pesquisa Operacional 23(2), 259-378.

168. Poldi, K. C. (2003). Algumas extensões do problema de corte de estoque. Dissertação de Mestrado, ICMC - USP.

169. Riehme, J., Scheithauer, G. e Terno, J. (1996). The solution of two-stage guillotine cutting stock problems having extremely varying order demands. European Journal of Operational Research 91, 543-552.

170. Salkin, H. e De Kluyver, C. (1975). The Knapsack Problem: A Survey, Naval Research Logistics Quartely 22, pp.127-144.

171. Scheithauer, G. (2002). On a two-dimensional guillotine cutting problem. Presented at IFORS 2002, Edinburgh, UK.

172. Scheithauer, G.E., Terno, J. (1995). The modified integer round-up property of the one-dimensional cutting stock problem, European Journal of Operational Research 84, 562-571.

173. Scheithauer, G. e Terno, J. (1996). The G4-heuristic for the pallet loading problem. Journal of the Operational Research Society 47, 511-522.

174. Seth, A. (1987). Wastage Reduction in Wood Cutting, Opsearch 24, 94-105.

175. SICUP (2003). Special Interest Group on Cutting and Packing, http://www.apdio.pt/sicup/.

176. Silva, R. J. e Morabito, R. (2003). Otimização da programação de cargas de forno em uma fábrica de fundição em aço-inox”, aceito para publicação na Gestão & Produção.

177. Silva, J.L.C., Soma, N.Y., Maculan, N. (2003). A Greedy Search for the Three-Dimensional Bin Packing Problem: the Packing Static Stability Case. International Transactions in Operational Research, v.10, p.1-13.

178. Silveira, R. e Morabito, R. (2002). Um método heurístico baseado em programação dinâmica para o problema de corte bidimensional guilhotinado restrito, Gestão & Produção 9(1), 78-92.

179. Smith, A. e De Cani, P. (1980). An algorithm to optimize the layout of boxes in pallets. Journal of the Operational Research Society 31, 573-578.

180. Stadtler, H. (1990). A one-dimensional cutting stock problem in the aluminium industry and its solution, European Journal of Operational Research, 44: 209-23.

181. Steudel, H. (1979). Generating pallet loading patterns: a special case of the two-dimensional cutting stock problem, Management Science 10, 997-1004.

2767

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

183. Syslo, M.; Deo, N.; Kowalik, J. (1983), Discrete Optimization Algorithms with Pascal Programs, Prentice-Hall Inc., New Jersey.

184. Tang, C.S.; Denardo, E.V. (1988). Models arising from a flexible manufacturing machine, Part I: minimization of the number of tool switches. Operations Research, 36(5): 767-777.

185. Tarnowski, A., Terno, J. e Scheithauer, G. (1994). A polynomial-time algorithm for the guillotine pallet loading problem. INFOR 32(4), 275-287.

186. Tsai, R., Malstrom, E. e Kuo, W. (1993). Three dimensional palletization of mixed box sizes. IEE Transactions 25(4), 64-75.

187. Umetami, S.; Yagiura, M.; Ibaraki, T. (2003). One-dimensional cutting stock problem to minimize the number of different patterns. European Journal of Operational Research, 146: 388-402.

188. Valério de Carvalho, J.M. (1998). Exact solution of cutting stock problems using column generation and branch-and-bound, International Transactions in Operational Research 5, 35-44.

189. Vance, P., Barnhart, C., Johnson, E., Nemhauser, G. (1994). Solving binary cutting stock problems by column generation and branch-and-bound. Computational optimisation and applications 3, 111-130.

190. Vanderbeck, F. (2000). Exact algorithm for minimizing the number of setups in the one-dimensional cutting stock problem. Operations Research, 48: 915-26.

191. Vasco, F.J.; Wolfe, F.E.; Pflugrad, J.A. (1991). An efficient heuristic for planning mother plate requirements at Bethlehem steel, Interfaces 21/2, p.1-7.

192. Vasko, F. J. (1989). A computational improvement to Wang’s two-dimensional cutting stock algorithm. Computers and Industrial Engineering 16(1), 109-115.

193. Vianna, A. C., Arenales, M. e Gramani, M. C. (2002). Two-stage and constrained two-dimensional guillotine cutting problems. Working Paper, Universidade de São Paulo, Brazil (submitted for publication).

194. Viswanathan, K. V. e Bagchi, A. (1993). Best-first search methods for constrained two-dimensional cutting stock problems. Operations Research 41(4), 768-776.

195. Wang, P. (1983). Two algorithms for constrained two-dimensional cutting stock problems. Operations Research 31, 573-586.

196. Wang, P. e Waescher, G. (2002) (eds.). Special issue on cutting and packing problems. European Journal of Operational Research 141, 239-469.

197. Wäscher, G., Gau, T., 1996. Heuristics for the integer one-dimensional cutting stock problem: a computational study, OR Specktrum 18, 131-144.

198. Wäscher, G. e Gau, T. (1996). Heuristics for the Integer One-dimensional Cutting Stock Problem: a computational study. OR Spektrum, 18, 131-144.

2768

199. Xue, J., Lai, K.K. (1997). Effective Methods for a Container Packing Operation. Mathematical and Computer Modelling, v.25, n.2, p.75-84.

200. Yanasse, H.H. (1994). A search strategy for the one-size assortment problem. European Journal of Operational Research, 74:135-142.

201. Yanasse, H.H. (1996). Minimization of open orders – Polynomial algorithms for some special cases, Pesquisa Operacional, 16(1):1-26.

202. Yanasse, H. (1997) On a pattern sequencing problem to minimize the maximum number of open stacks. European Journal of Operational Research, v.100, n.3, p.454-463.

203. Yanasse, H.H. (1997). A transformation for solving a pattern sequencing problem in the wood cut industry, Pesquisa Operacional 17(1) 57-70.

204. Yanasse, H.H., Becceneri, J.C., Soma, N.Y. (1999). Bounds for a problem of sequencing patterns, Pesquisa Operacional 19(2) 249-277.

205. Yanasse, H.H., Becceneri, J.C., Soma, N.Y. (2002). An improved branch and bound method to solve a pattern sequencing problem based on partial orderings. IV ALIO/EURO Workshop on Applied Combinatorial Optimization, Pucón, Chile, Abstracts IV ALIO/EURO Workshop on Applied Combinatorial Optimization, p.145-146.

206. Yanasse, H.H., Katsurayama, D.M (2003). Checkerboard patterns: proposals for its generation. Forthcoming in International Transactions in Operational Research.

207. Yanasse, H.H.; Harris, R.G.; Zinober, A.S.I. (1993). Uma heurística para redução do número de ciclos da serra no corte de chapas. XIII ENEGEP - Encontro Nacional de Engenharia de Produção/ I Congresso Latino Americano de Engenharia Industrial, Florianópolis, SC, Brazil, Oct. 1993. Anais do XIII ENEGEP 1993; II: 879-85.

208. Yanasse, H.H., Limeira, M.S. (2004). Refinements on an enumeration scheme for solving a pattern sequencing problem, International Transactions in Operations Research 11, 277-292.

209. Yanasse, H.H.; Limeira, M.S. (2004). A hybrid heuristic to reduce the number of different patterns in cutting stock problems. Submitted.

210. Yanasse, H.H., Zinober, A., Harris, R. (1991). Two-dimensional cutting stock with multiple stock sizes. Journal of the Operational Research Society 42(8), 673-683.

211. Yanasse, H.H.; Zinober, A.S.I.; Harris, R.G. (1994). Cutting stock problems: position of free cut. Investigación Operativa, 4(1):69-84.

212. Yanasse, H. e Morabito, R. (2003). Linear models for one-group two-dimensional guillotine cutting problems. Submetido para publicação.

213. Yuen, B. (1991). Heuristics for sequencing cutting patterns. European Journal of Operational Research, v. 55, p.183-190.

214. Yuen, B. (1995). Improved heuristics for sequencing cutting patterns. European Journal of Operational Research 87, 57-64

2769

215. Yuen, B. e Richardson, K. (1995). Establishing the optimality of sequencing heuristics for cutting stock problems. European Journal of Operational Research 84, 590-598.