## Print version ISSN 0101-7438

### Pesqui. Oper. vol.30 no.1 Rio de Janeiro Jan./Apr. 2010

#### https://doi.org/10.1590/S0101-74382010000100008

O problema de corte de estoque unidimensional multiperíodo

Kelly Cristina PoldiI, *; Marcos Nereu ArenalesII

IDepartamento de Ciência e Tecnologia (DCT) Universidade Federal de São Paulo (UNIFESP) São José dos Campos - SP;kelly.poldi@unifesp.br
IIInst. de Ciências Matemáticas e de Computação (ICMC) Universidade de São Paulo (USP) São Carlos - SP;arenales@icmc.usp.br

RESUMO

Palavras-chave:  problema de corte de estoque; otimização linear e inteira; geração de colunas.

ABSTRACT

The Multiperiod Cutting Stock Problem arises embedded in the production planning and programming in many industries which have a cutting process as an important stage. Ordered items have different due date over a finite planning horizon. A large scale integer linear optimization model is proposed. The model makes possible to anticipate or not the production of items. Unused objects in inventory in a period become available to the next period, added to new inventory, which are acquired or produced by the own company. The mathematical model's objective considers the waste in the cutting process, and costs for holding objects and final items. The simplex method with column generation was specialized to solve the linear relaxation. Some preliminary computational experiments showed that the multiperiod model could obtain effective gains when compared with the lot-for-lot solution, which is typically used in practice. However, in real world problems, the fractional solution is useless. So, additionally, two rounding procedures are developed to determine integer solutions for multiperiod cutting stock problems. Such procedures are based on a rolling horizon scheme, which roughly means, find an integer solution only for the first period, since this is the solution to be, in fact, carried out. Finally, we conclude that the proposed model for multiperiod cutting stock problems allows flexibility on analyzing a solution to be put in practice. The multiperiod cutting problem can be a tool that provides the decision maker a wide view of the problem and it may help him/her on making decisions.

Keywords:  cutting stock problem; linear and integer optimization; column generation.

1. Introdução

Problemas de corte de estoque consistem em cortar peças maiores (objetos) disponíveis em estoque com a finalidade de produzir peças menores (itens) para atender uma dada demanda, otimizando uma determinada função objetivo que pode ser, por exemplo, minimizar a perda de material, ou o custo dos objetos cortados. Estes problemas são essenciais no planejamento da produção em muitas indústrias, tais como indústrias de papel, vidro, móveis, metalúrgica, plástica, têxtil etc.

Com os avanços computacionais e também por motivos econômicos, as empresas têm se estimulado a tornar seus processos produtivos mais eficientes, o que induz, por sua vez, pesquisas acadêmicas de modelos de otimização para o controle e planejamento de sistemas produtivos. Surge, então, uma tendência em analisar o processo produtivo industrial de forma integrada (Hendry et al., 1996; Nonas & Thorstenson, 2000; Menon & Schrage, 2002; Correia et al., 2004). Neste contexto, o problema de corte de estoque é considerado interdependente a outros problemas de otimização no ambiente industrial, por exemplo, o problema de dimensionamento de lotes. Tipicamente na prática, lotes são definidos e um problema de corte é resolvido para cada lote, sem que as perdas no estágio de corte interfiram na formação dos lotes. Modelos que acoplam os problemas de dimensionamento de lotes e de corte foram estudados por Gramani (2001), Gramani & França (2006), Respício et al. (2002), Poltroniere et al. (2008), entre outros. Nesses trabalhos, surge um subproblema que consiste no problema de corte de estoque multiperíodo.

Farley (1988) foi, talvez, o primeiro autor a publicar um estudo sobre o problema de corte de estoque em indústrias de roupa, acoplado ao problema de planejamento e programação da produção. Apesar desse problema ser, essencialmente, um problema de corte bidimensional irregular, esta dificuldade foi contornada por definir vários padrões de corte em retângulos da largura do rolo de tecido, de diferentes comprimentos, os quais foram usados para cortar os itens ao longo do comprimento do rolo (um problema de corte unidimensional). O autor evitou trabalhar com o problema de corte embutido no processo produtivo e o problema foi formulado como um de programação da produção em um único período.

Hendry et al. (1996) estudaram o problema de corte acoplado ao problema de planejamento da produção em indústrias de cobre. A operação de fundição básica consiste em derreter pedaços de cobre numa fornalha, produzindo barras com diâmetros específicos, que são cortadas em itens menores de diâmetros e quantidades específicas. Os autores apresentam métodos de solução em dois estágios, baseados no desacoplamento dos problemas. No primeiro estágio, supõe-se conhecido o número máximo de barras de qualquer diâmetro que pode ser produzido por período, levando em conta a capacidade do forno e um problema de corte unidimensional é resolvido. Este fornece o número de barras de cada diâmetro que deve ser produzida por período. No segundo estágio, é feito um planejamento da produção para cada período.

Nonas & Thorstenson (2000) propuseram uma formulação para o problema combinado de corte de estoque e dimensionamento de lotes para uma companhia da Noruega que produz um tipo especial de caminhões. A empresa produz a maioria das partes de aço dos caminhões e, assim, grandes placas de aço têm de ser cortadas em diferentes formas e tamanhos. Surge então um problema acoplado de dimensionamento de lotes e corte de estoque, cujo objetivo principal é minimizar o custo total do processo de corte de aço.

Gramani (2001) estudou a integração dos problemas de dimensionamento de lotes e de corte de estoque em indústrias de móveis. Esse problema integrado consiste em decidir a quantidade de produtos finais (móveis) a serem produzidos em cada período do horizonte de planejamento, tal que minimize não somente os custos de produção, preparação e estocagem (problema de dimensionamento de lotes), mas também o custo das placas cortadas em itens que compõem os produtos finais demandados (problema de corte de estoque). O problema de corte estudado por Gramani (2001) é bidimensional, ou seja, duas dimensões são relevantes no processo de corte. Para modelar e resolver o problema, a autora formulou um modelo matemático inteiro-misto o qual analisa o balanço entre antecipar a produção de certos lotes de produtos finais para minimizar os custos no processo de corte e preparação e o aumento dos custos de estocagem e, desenvolveu métodos heurísticos. Uma solução ótima para o problema integrado provavelmente contém soluções não-ótimas para os problemas de corte de estoque e dimensionamento de lotes quando considerados separadamente.

Respício et al. (2002) abordam o problema de corte integrado com o planejamento da produção em uma indústria papeleira. A empresa produz diferentes tipos de papel, agrupados em famílias. Bobinas-mestre de diferentes famílias são produzidas e depois cortadas em bobinas menores. A capacidade produtiva é menor que a demanda média, o que leva a atrasos na entrega dos produtos. O objetivo é encontrar um plano de produção que determine as quantidades que devem ser produzidas para cada família e evite longos atrasos na entrega. As autoras propõem um modelo de programação inteira, acoplando o problema de corte de estoque unidimensional ao problema de planejamento. O modelo é uma extensão da formulação de Gilmore e Gomory e considera demanda acumulada, restrições de conservação de estoque e restrições de capacidade.

Ainda, considerando os problemas de dimensionamento de lotes e corte de estoque de forma acoplada, Poltroniere et al. (2008) propõem um estudo com aplicação prática em indústrias de papel. A indústria produz bobinas-mestre de vários tamanhos que, posteriormente, serão cortadas em bobinas intermediárias. Parte dessas bobinas intermediárias é embalada para atender uma demanda específica e o restante é cortado, produzindo diferentes tipos de itens finais, tais como modelo carta, A4, resmas etc. Pode haver estoque de bobinas intermediárias. A disponibilidade de bobinas-mestre no problema de corte é uma variável de decisão. Portanto, as decisões de planejamento consistem em escolher quais bobinas-mestre (definidas pelo seu comprimento e sua gramatura) e em que quantidades (tamanhos dos lotes) devem ser produzidas em cada período, de forma a atender a carteira de pedidos, evitar atrasos e estoque, minimizando a perda de material durante o processo de corte. Para isso, Poltroniere et al. (2008) formularam um modelo de otimização inteira mista e desenvolveram métodos heurísticos de solução.

As modelagens e métodos de solução de maior repercussão na literatura foram os publicados por Gilmore & Gomory (1961, 1963, 1965). O modelo matemático para o problema de corte de estoque com vários tipos de objetos em estoque (diferentes comprimentos) guarda certa similaridade com o problema de corte em múltiplos períodos, já que permite melhores combinações dos itens a serem cortados nos objetos em estoque, o que faz reduzir a perda. Em caso de múltiplos períodos, a combinação de itens também pode ser melhorada por permitir que itens possam ser cortados antes do período no qual são demandados. Embora o problema com vários tipos de objetos em estoque seja bem conhecido, relativamente poucos trabalhos são encontrados na literatura (Belov & Scheithauer, 2002; e Holthaus, 2002). O problema de corte de estoque com demanda em múltiplos períodos também foi pouco explorado na literatura, apenas por Gramani & França (2006).

Na seção 2, propomos um modelo matemático baseado no modelo proposto por Gilmore & Gomory (1963), bem como um exemplo ilustrativo. A seguir, na seção 3 apresentamos um método de solução também estendendo a técnica clássica de geração de colunas. Na seção 4, são descritas duas abordagens para a obtenção de solução inteira para o problema e também um exemplo. Testes computacionais são apresentados na seção 5 e finalmente, na seção 6, consideramos algumas propostas de continuidade do trabalho.

2. Definição e formulação matemática

Neste artigo, focalizamos o problema de corte de estoque multiperíodo unidimensional, embora a abordagem possa ser estendida diretamente para problemas de corte de dimensões maiores (veja Poldi, 2007). O problema de corte de estoque multiperíodo pode ser definido da seguinte forma.

"Considere um horizonte de planejamento finito, dividido em T períodos. Esses períodos podem significar turnos de trabalho (horas), dias, ou semanas. Considere também que temos disponível em estoque K tipos de objetos (barras, bobinas etc.) de comprimento Lk, cada tipo disponível na quantidade ekt, para cada um dos períodos do horizonte de planejamento, k = 1, ..., K, t = 1, ..., T. A cada período t, itens de comprimentos ? , i = 1, ..., m, devem ser cortados, nas quantidades dit  , i = 1, ..., m, t = 1, ..., T. O problema de corte de estoque multiperíodo consiste em produzir os itens demandados a partir do corte dos objetos disponíveis em estoque em cada período do horizonte de planejamento de modo a atender a demanda sem atrasos, com o objetivo de minimizar a perda de material nos cortes bem como os custo de estocar objetos e itens."

Definição 3.1: Chamamos de padrão de corte a maneira como um objeto em estoque é cortado para a produção dos itens demandados. A um padrão de corte associamos um vetor m-dimensional que contabiliza os itens produzidos:

akt = ( α1kt, α2kt, ..., αmkt )T

em que αikt é a quantidade de itens do tipo i, no padrão de corte para o objeto tipo k, no período t.

No caso unidimensional, o vetor associado a um padrão de corte akt deve satisfazer a restrição física de capacidade de uma mochila (problemas da mochila com mais restrições são encontrados na prática como, limitação no número de facas, compartimentação etc, Gilmore & Gomory (1963), Marques & Arenales (2008), Hoto et al. (2007), Yanasse & Soma (1987)):

2.1 Um modelo matemático para o problema de corte multiperíodo

Um modelo matemático para o problema de corte de estoque multiperíodo é apresentado a seguir e usamos a seguinte notação.

Índices:

• t = 1, ..., T : número de períodos no horizonte de planejamento;

• k = 1, ..., K : número de tipos (comprimentos) de objetos disponíveis em estoque;

• j = 1, ..., Nk : número de padrões de corte para o objeto tipo k, k = 1, ..., K;

• i = 1, ..., m : número de tipos de itens a serem cortados.

• Lk : comprimento do objeto tipo k, k = 1, ..., K;

• ekt : disponibilidade em estoque do objeto tipo k no período t, k = 1, ..., K, t = 1, ..., T (et  : vetor K dimensional cujas componentes são ekt);

• ?i : comprimento do item tipo i, i = 1, ..., m;

• dit : demanda do item i no período t, i = 1, ..., m, t = 1, ..., T (dt : vetor m-dimensional cujas componentes são dit);

αijkt : número de itens do tipo i no j-ésimo padrão de corte para o objeto tipo k, no período t (ajkt : vetor m dimensional cujas coordenadas são αijkt);

• cjkt : custo de cortar o objeto tipo k segundo o j-ésimo padrão de corte do período t, j = 1, ..., Nk, k = 1, ..., K, t = 1, ..., T;

• crit : custo de estocar item tipo i no final do período t, i = 1, ..., m, t = 1, ..., T;

• cskt : custo de estocar objeto tipo k no final do período t, k = 1, ..., K, t = 1, ..., T.

Variáveis de decisão:

• xjkt : número de objetos tipo k cortados conforme o padrão de corte j no período t;

• rit : número de itens do tipo i que são antecipados para o período t (rt : vetor m-dimensional cujas componentes são rit);

• skt : número de objetos do tipo k que sobram ao final do período t.

Sem perda de generalidade, consideramos os estoques iniciais nulos, ri0 = 0, i = 1, ..., m, e sk0 = 0, k = 1, ..., K.

Modelo matemático:

A função objetivo em (2.1) a ser minimizada consiste no custo total de material cortado de todos os objetos em todos os períodos e à estocagem de itens e de objetos.

A antecipação da produção de alguns itens pode aumentar custos de estoque de itens (crit), (a rigor, uma penalidade imposta pelo gerente de produção para traduzir a inconveniência de administrar estoques de itens); mas por outro lado, pode permitir uma melhor combinação dos itens, o que faz diminuir a perda de material. Portanto, as variáveis rit permitem ao gerente de produção analisar combinações de itens que não seriam consideradas em um modelo estático.

O modelo (2.1) - (2.4) é de grande porte com T(m+K) restrições e TK(+ 2m) variáveis. Em situações práticas, apresenta centenas de restrições e milhões de variáveis e a matriz de restrições é estruturada e esparsa. A relaxação linear fornece, em geral, uma boa aproximação para este problema, e, neste artigo, consideramos o problema de corte multiperíodo com a relaxação linear de (2.1) - (2.4). Embora os coeficientes em (2.1) possam ser genéricos, utilizamos neste artigo os custos da seguinte forma:

1. O custo associado a um padrão de corte é: cjkt = γ (Lk -li αijkt), ou seja, é a perda do j-ésimo padrão de corte para o objeto tipo k, no período t, multiplicado pelo custo unitário de material perdido: γ.

2. O custo de adiantar a produção de itens de um período para outro é definido por: crit = α ? i, em que α é o custo por comprimento de item estocado.

3. O custo de estocar objetos de um período para outro é definido por: cskt = β Lk em que β é o custo por comprimento de objeto estocado.

2.2 Um exemplo ilustrativo

Primeiramente apresentamos um exemplo pequeno de problema de corte de estoque multiperíodo, juntamente com a solução lote-por-lote (estoques de itens nulos, rit = 0), e a solução multiperíodo, relaxando-se a condição de integralidade. Na próxima seção explicamos detalhes do método multiperíodo desenvolvido.

Suponha que temos T = 3 períodos de tempo e, para cada um deles, temos K = 2 tipos de objetos em estoque cujos dados (comprimentos e disponibilidade em estoque) são dados na Tabela 1 e m = 3 tipos de itens a serem produzidos cujos dados (comprimentos e demandas) são dados na Tabela 2. Os custos de estocar itens (cr) e os custos de estocar objetos (cs) foram considerados nulos neste exemplo.

Solução lote-por-lote:

Nas Tabelas 3, 4 e 5 apresentamos a solução do problema quando cada período é tratado independentemente, ou seja, a cada período é resolvido um problema de corte de estoque.

A perda total de material na solução lote-por-lote é:

160,22 + 192,13+ 44,79 = 397,14.

Observe que a solução lote-por-lote é formada pela solução de três problemas estáticos (um por período) e para obtenção de solução inteira são comuns procedimentos heurísticos os quais tomam como base a solução relaxada para cada período. Tais procedimentos podem ser encontrados em Wascher & Gau (1996), Belov & Scheithauer (2002), Poldi (2003), Poldi & Arenales (2006, 2009), entre outros.

Solução multiperíodo:

Nas Tabelas 6, 7 e 8 apresentamos a solução do problema (2.1)-(2.4). Os valores das frequências foram truncados com apenas uma casa decimal para facilitar a exposição do exemplo.

A disponibilidade total de objetos do tipo 1 é utilizada no período 1. Neste período, também são utilizados 3,6 objetos do tipo 2. Como sua disponibilidade em estoque é de 8 unidades, a sobra de 4,4 é somada à disponibilidade de objetos do tipo 2 no período 2. A produção do item tipo 3 foi adiantada em 4,5 unidades.

No período 3, a disponibilidade do objeto tipo 1 não é alterada, pois não houve sobra deste tipo de objeto no período anterior. A disponibilidade em estoque do objeto tipo 2 é alterada (soma-se a quantidade que sobrou no período anterior) para e23 = 10 + 3,7 = 13,7. A produção de todos os itens demandados é cumprida. As sobras de objetos em estoque são: 3,5 unidades do objeto tipo 1 e 13,7 unidades do objeto tipo 2.

Procedimentos para obtenção de soluções inteiras para o problema de corte multiperíodo são apresentados na seção 4.

A perda total de material na solução multiperíodo é:

144,7 + 110,3 + 39 = 294.

Comparando as soluções lote-por-lote e multiperíodo, nota-se a solução multiperíodo reduz a perda de material em 26%.

3. Método para solução

A condição de integralidade no modelo (2.1)-(2.4) é comumente encontrada em problemas de corte na prática e torna esses problemas difíceis de serem tratados; o que exige um tempo computacional elevado, até mesmo para exemplares de médio porte. Para contornar esta dificuldade, relaxamos a condição de integralidade sobre as variáveis xjkt e resolvemos o problema de otimização linear resultante pelo método simplex com geração de colunas, o que fornece uma solução ótima contínua para o problema de corte de estoque multiperíodo. A técnica de geração de colunas, proposta por Gilmore & Gomory (1961, 1963), consiste em, a cada iteração do método simplex, substituir uma coluna da base por uma nova que melhora a solução básica atual (a menos de degeneração). Tal coluna pode não estar disponível a priori e é gerada pela solução de um subproblema, cujas restrições definem um padrão de corte e são dadas por (1.1)-(1.2), no caso unidimensional.

3.1 Matriz básica inicial

A solução inicial adotada consiste de padrões de corte homogêneos para o objeto maior e a solução lote-por-lote (estoques de itens nulos, rit = 0). Assim, além das colunas associadas aos padrões de corte homogêneos, a base é completada com as colunas associadas aos estoques dos objetos (variáveis skt), as quais são facilmente construídas. Os padrões de corte homogêneos são dados por:

em que x é o maior inteiro menor ou igual a x; e, L = max {Lk, k = 1, ..., K}. No exemplo considerado (seção 3), L = L1 = 960. Para evitar infactibilidades triviais, supomos que min Lk  > max ?i. Entretanto, pode-se ter exemplares com min Lk < max ?i e a escolha acima garante padrões de corte factíveis.

As dimensões das matrizes básicas são T(m + K) × T( m + K), em que T é o número de períodos, m é o número de itens e K é o número de tipos de objetos em estoque. No exemplo da seção 3, temos, T = 3, m = 3 e K = 2, então a dimensão da base é 3(3+2) = 15. A matriz básica inicial e o termo independente são:

em que:

• cada coluna da matriz básica tem T(m+K) elementos, agrupados em T blocos de m+K elementos;
• a coluna da variável xjkt, tem apenas o bloco t não nulo, o qual é formado pelos m elementos do vetor associado ao j-ésimo padrão de corte para o objeto tipo k no período t (veja (2.2)), seguido por zeros para os demais elementos, exceto na posição k com 1 (veja (2.3)). Por exemplo, a primeira coluna da matriz, correspondente à variável x111, tem o primeiro ( = 1) bloco não nulo de 5 elementos ( = 5), sendo que os 3 primeiros correspondem ao padrão de corte homogêneo (4 0 0)T seguido do vetor (1 0) , pois k = 1;
• a coluna da variável skt (considerando que haja sobra de objetos do tipo k no período t) tem 2 blocos não nulos: bloco t e t+1, com o elemento +1 na posição m+k do bloco t e -1 na posição m+k do bloco t+1. Por exemplo, a coluna de s21 (t = 1 e k = 2) tem os blocos 1 e 2 não nulos, com +1 na posição 5 (= m+k) do bloco 1; -1 na posição 5 do bloco 2 e zero nas demais. Caso a sobra de objetos seja negativa (skt<0), isto é, a disponibilidade de objetos do tipo k foi excedida no período t, então consideramos uma variável artificial sktª = -skt com custo M-grande, de modo que não pertença a uma solução ótima, a menos que o problema seja infactível. Por exemplo, a coluna de 11 (t = 1 e k = 1).

Além disso, utilizamos dois vetores auxiliares para facilitar a identificação de cada coluna. Cada um desses vetores possui T(m+K) componentes. Um deles é o identificador de períodos, que tem suas componentes preenchidas com o número natural correspondente ao período ao qual aquela coluna corresponde. O outro vetor, chamado de vetor id, identifica cada coluna da matriz da seguinte forma. Seja id [i] = j,

• Se j = 0, a i-ésima coluna da matriz corresponde a uma variável artificial.
• Se j > 0, a i-ésima coluna da matriz corresponde a um padrão de corte para o objeto em estoque do tipo j.
• Se -K < j < -1, a i-ésima coluna da matriz corresponde à sobra de objetos do tipo -j para o próximo período.
• Se -(K+m) < j < -K, a i-ésima coluna da matriz corresponde a antecipação da produção do tipo -(K+j).

Para a solução inicial, as variáveis xjkt são determinadas diretamente (por exemplo, x111 = 20/4), bem como as variáveis de folga dos objetos que não são utilizados (por exemplo, s21 = 8). As variáveis de folga do objeto maior, para cada período, são consequentemente calculadas (por exemplo, s11 = 10-x111 -x211-x311+s10 = -2,8). Como a variável de folga s11 tem valor negativo (i.e., a solução lote-por-lote com os padrões homogêneos é infactível), usamos a variável artificial s11ª (isto corresponde a transportar objetos do período t + 1 para o período t). Desta forma temos uma base factível. Neste exemplo, foram necessárias variáveis artificiais em todos os períodos (colunas 4, 9 e 14), pois as quantidades utilizadas de objetos tipo 1 ultrapassam as suas disponibilidades em cada período.

O vetor dos custos básicos é dado como segue:

(b) para as variáveis básicas associadas à sobra de objetos, o coeficiente é o custo de estocar objetos (no exemplo consideramos nulo);

(c) para as variáveis artificiais, o coeficiente é M (número grande).

Tendo o vetor dos custos básicos definido, basta calcular o vetor multiplicador simplex π, BTπ = c, que pode ser calculado analiticamente para a base inicial, de forma análoga ao cálculo da solução básica.

3.3 Cálculo dos custos relativos

Temos 4 tipos de variáveis não básicas:

1. rit (estoque de itens). O custo relativo é dado por:

2. skt (estoque de objetos). O custo relativo é dado por

3. skT (folga do objeto tipo k no último período T. Difere do caso anterior, pois o bloco T+1 não existe). O custo relativo é dado por

Na implementação calculamos inicialmente os custos relativos dos três primeiros tipos, pois são bem simples e escolhemos o menor deles para entrar na base. Caso seja não negativo, então calculamos os custos relativos referentes aos padrões de corte (quarto tipo), para todos os objetos disponíveis em estoque e para todos os períodos do horizonte de planejamento. Este cálculo envolve a resolução de TK problemas da mochila e consiste na fase mais árdua da geração de colunas.

A partir daqui os passos do método simplex com geração de colunas não sofrem alterações; calcula-se a direção simplex, escolhe-se a variável a sair da base e faz-se as atualizações das variáveis.

4. Abordagens para o arredondamento

As estratégias de arredondamento desenvolvidas para o problema de corte de estoque multiperíodo são baseadas nos procedimentos heurísticos desenvolvidos para o problema de corte de estoque com um período. Estes procedimentos podem ser encontrados em Poldi (2003) e Poldi & Arenales (2009). Como tratamos de um problema com vários períodos no horizonte de planejamento, as técnicas desenvolvidas são de horizonte rolante, ou seja, obtemos uma solução inteira para o primeiro período do horizonte e deixamos a solução fracionária para os próximos períodos.

Em uma segunda etapa, após o primeiro período já ter sido implementado, novos pedidos podem ser incluídos, ou pedidos podem ser cancelados. Assim, a carteira de pedidos é atualizada e temos um novo problema de corte multiperíodo, que por sua vez será resolvido e terá apenas a solução do seu primeiro período arredondada, ficando a solução dos próximos períodos, fracionárias, porém úteis para auxiliar o gerente de produção na tomada de decisões.

Duas abordagens de arredondamento foram propostas, ambas seguem a mesma estrutura geral, descrita no algoritmo a seguir. Elas diferem apenas no passo 2. Assim, o passo 2 será especificado separadamente para cada abordagem nas seções 4.1 e 4.2.

Algoritmo - Arredondamento Multiperíodo

Passo 1: Resolva o problema de corte de estoque multiperíodo e considere:

A1 : matriz com os padrões de corte do primeiro período;

x1 : vetor das frequências dos padrões de corte do primeiro período;

d1 : vetor com a demanda original do primeiro período;

e1 : vetor com a disponibilidade dos objetos em estoque no primeiro período;

r1 : vetor com a antecipação de itens para o primeiro período;

n : o número de padrões de corte no primeiro período.

Arredonde todas as componentes do vetor de antecipação de itens r1 para baixo.

Faça: dr = d1 + r1, ou seja, dr passa a ser o vetor de demanda de itens para o primeiro período.

Passo 2: Arredonde o vetor das frequências x1 (detalhes nas seções 4.1 e 4.2).

Passo3: Atualize a antecipação de itens r1 e dr.

Atualize a disponibilidade dos objetos e1.

Se r1 > 0, ou seja, a demanda original é atendida, então PARE.

Passo 4: Resolva um subproblema (1.1)-(1.2) restrito a dr para cada tipo de objeto k disponível em estoque, isto é, ek1 > 0.

Escolha o padrão de corte que apresentar o menor custo e seja a sua perda dada por Φ.

Seja ?min = min { ?1, ?2, . . . , ?m}, ou seja, o menor item demandado.

Se Φ > ?min  , ou seja, ainda cabem itens no padrão de corte, então resolva um problema da mochila (subproblema (1.1)-(1.2)) irrestrito de tamanho Φ e complete o padrão.

Seja o padrão de corte n+1 dado por an+1,k,1 = (α1,n+1,k,1, . . . , αm,n+1,k,1)T, determine a frequência do padrão:

Atualize x1, n = n+1 e vá para o passo 3.

Fim-do-algoritmo

4.1 Abordagem A

Na Abordagem A, o passo 2 é definido da seguinte forma.

Passo 2: {arredondamento do vetor das frequências x1.}

Seja n o número de padrões de corte no período t = 1.

Para j = 1, . . . , n, faça xj1 = xj1 Fim-Passo 2

4.2 Abordagem B

Na Abordagem B, o passo 2 é definido da seguinte forma.

Passo 2: {arredondamento do vetor das frequências x1.}

Seja n o número de padrões de corte no período t = 1.

Seja Φj o custo do material perdido no padrão de corte j.

Seja kj o tipo de objeto cortado segundo o padrão de corte j.

Ordene o vetor de frequências x1 em ordem não-crescente.

Para j = 1, . . . , n, faça:

Se Φj < TOLkj então xj1 = min { xj1 , e1kj };

senão xj1 = min { xj1 , e1kj };

em que TOLkj é uma tolerância para a perda em um padrão de corte. Nos testes computacionais utilizamos TOLkj = custo de 1% do comprimento do objeto do tipo kj.

Fim-Passo 2

4.3 Exemplo

Para exemplificar a Abordagem B, consideremos novamente o exemplo de problema de corte de estoque multiperíodo apresentado na seção 2.2, nas Tabelas 1 e 2.

Passo 1: Resolver o problema de corte de estoque multiperíodo. A solução para os três períodos do horizonte de planejamento são dadas nas Tabelas 6, 7 e 8, na seção 2.2. Consideramos para o arredondamento apenas a solução do 1º período, ou seja, a Tabela 6. Desta solução vemos que a demanda sugerida para o primeiro período pela solução do multiperíodo é (20  28  26,5)T. A Tabela 2 fornece a demanda original do 1º período, d1 = (20  28  22) T, ou seja, o vetor de antecipação de itens é dado por r1 = (0  0  4,5) T. As componentes deste vetor são arredondadas para o maior inteiro menor que o valor, ou seja, os valores são truncados. Assim, temos o vetor de antecipação de itens r1 = (0  0  4) T, e a nova demanda para o 1º período é dr = (20 28 26)T.

Passo 2: Arredondar as frequências do primeiro período. As frequências devem ser ordenadas de forma não-crescente, ou seja, daremos prioridade aos padrões mais utilizados para o arredondamento.

Primeiramente, arredondamos a frequência do primeiro padrão de corte: x111 = 8,2. Verificamos se este padrão satisfaz o critério de aspiração: custo da perda menor ou igual a TOL. O padrão satisfaz o critério de aspiração, então pode ser arredondado para o menor inteiro maior que ele, ou seja, "arredondar para cima". Verificamos a disponibilidade do objeto do tipo 1 no estoque, e constatamos que tal arredondamento é possível, assim, fazemos x111 = 9 e o estoque de objetos é atualizado e11 = 10 - 9 = 1.

Analisemos agora o segundo padrão de corte, cuja frequência é x211 = 1,7. Este padrão não satisfaz o critério de aspiração, pois ele produz perda com custo superior ao desejado. Assim, o seu valor deve ser truncado, ou seja, "arredondado para baixo". Com isso, x211 = 1 e o estoque de objetos atualizado é e11 = 1 - 1 = 0. Mesmo que esse padrão fosse aceito pelo critério e aspiração, sua frequência não seria arredondada para cima devido a disponibilidade do objeto no estoque ser de apenas uma unidade.

De maneira análoga, arredondamos a frequência do terceiro padrão de corte: x321 = 2,8. Este padrão não satisfaz o critério de aspiração, então o seu valor é arredondado para baixo. Assim, x321 = 2 e o estoque de objetos atualizado é e21 = 8 - 2 = 6.

Finalmente, a frequência do quarto (n = 4) e último padrão de corte é arredondada x421 = 0,8. Este padrão satisfaz o critério de aspiração, então o seu valor é arredondado para cima, desde que haja objeto disponível no estoque. Assim, fazemos x421 = 1 e o estoque de objetos atualizado é e21 = 6 - 1 = 5. No final do passo 2, temos a solução inteira parcial dada na Tabela 9.

Passo 3: Calculamos, agora a demanda residual e a nova disponibilidade de objetos em estoque. A disponibilidade de objetos em estoque atualizada é dada por e1 = (0 5)T.

A quantidade de itens produzida na solução inteira parcial dada na Tabela 9 é (21 26 25)T e a demanda para o 1º período é (20 28 26)T, conforme foi determinado no passo 1. Portanto, a produção excedente (ou seja, adiantada) é de (1 -2 -1)T, ou seja, temos 1 item do tipo 1 que é adiantado e precisamos produzir 2 itens do tipo 2 e 1 item do tipo 3 para completar a demanda do 1º período. Assim, a demanda residual é dada por (0 2 1)T.

Passo 4: Resolvemos um problema da mochila para atender a demanda residual (0 2 1)T. A rigor, deveríamos resolver um problema da mochila para cada um dos dois tipos de objetos disponíveis em estoque, porém como a disponibilidade do objeto do tipo 1 já está esgotada, resolvemos o problema da mochila apenas para o objeto do tipo 2; cuja solução é o padrão de corte (n+1 = 5) a521 = (0 2 1)T com perda igual a 155.

Voltamos ao Passo 3, reavaliamos a demanda residual e a nova disponibilidade de objetos em estoque. A disponibilidade de objetos em estoque atualizada é e1 = (0 4)T. A quantidade produzida na solução inteira parcial dada na Tabela 10 é (21  28  27)T e a demanda para o 1º período 1 é (20  28  26)T. Portanto, a produção excedente (ou seja, adiantada) é dada por (1  0  1)T. Como a demanda original do 1º período foi completamente atendida, finalizamos o algoritmo. A solução inteira para o 1º período é a solução dada na Tabela 10.

É importante notar que quantidade que foi realmente adiantada para o 1º período é dada por (0 0 4)T (obtida no passo 1) + (1 0 1)T (obtida na solução do problema residual). Ou seja o vetor de antecipação de itens, neste exemplo, é (1 0 5)T.

5. Experimentos computacionais

Para execução dos testes computacionais para problemas de corte de estoque unidimensional multiperíodo, fixamos alguns parâmetros, que estão listados a seguir:

• número de períodos: T = 3 e 6;
• número de tipos de objetos em estoque: K = 3 e 5;
• número de tipos de itens demandados: m = 10 e 20;
• custo de padrões de corte: cjkt = Γ (Lk - αijkt), com γ = 1;
• custo de estocar objetos: β Lk, com β = 0; 0,01 e 0,1;
• custo de estocar itens: α li, com α = 0; 0,01 e 0,1.
• Outros parâmetros necessários para os testes foram gerados aleatoriamente nos seguintes intervalos:
• comprimento dos objetos em estoque: Lk [300 1000];
• estoque do objeto tipo k, no período t:
• demanda dos itens: dit [10 200].

Nesta seção apresentamos resultados computacionais do problema de corte de estoque multiperíodo (2.1)-(2.4) com a condição de integralidade sobre as variáveis relaxada. Na próxima seção, apresentamos os resultados que tratam do problema multiperíodo com solução inteira. Os resultados apresentados na Tabela 12 foram obtidos considerando-se os parâmetros: custo de estocar objetos β = 0 e custo de estocar itens α = 0. Assim, a função objetivo apresentada na Tabela 12 é a perda total obtida, já que os custos de estoque são nulos.

Na Tabela 12 observamos que a proibição de estoque (solução lote-por-lote) faz crescer a perda, em média, cerca de 20%, de 104,13 para 126,71. Com isto, o gerente tem como melhor avaliar o quanto custa esta decisão. Por outro lado, os altos níveis de estoque podem desestimular a adoção da solução, apesar da redução da perda de material. Esta é uma característica típica de problemas multiobjetivos, neste caso, a perda de material versus o estoque de itens.

Outras soluções podem ser obtidas por se variar os valores de α, mantendo-se β = 0. Valores altos para β distorcem a solução, pois o modelo produzirá perdas altas para se livrar dos objetos em estoque. A manutenção deste parâmetro na função objetivo faz sentido para problemas acoplados (Poltroniere et al., 2008), o qual tende a inibir estoques de objetos (i.e., revisão na produção ou aquisição excessivas de objetos).

Na Tabela 13, para cada valor de α e β, temos dois valores, o primeiro representa a perda média e o segundo o comprimento total médio, de todos os itens, que são antecipados, ou seja, estocados (dado Γ = 1). Notamos que a dificuldade operacional com o estoque de itens, representada com valores mais altos para α, reflete em um aumento substancial na perda de material. Tipicamente, o armazenamento de itens não é permitido na prática, embora não haja estudos para analisar sua viabilidade e o modelo multiperíodo (2.1)-(2.4) permite essa análise.

Por exemplo, a segunda coluna da Tabela 13 (β = 0), em que os custos de estocagem de objetos não são considerados, vemos que a perda aumenta na medida que os custos de estocagem de itens aumentam até o limite da solução lote-por-lote, em que qualquer estoque de itens é proibido (solução obtida para α grande).

Se os estoques necessários para a solução com α = 0 são demasiadamente grandes, o gerente de produção pode variar o valor de α e analisar soluções intermediárias. Por exemplo, a solução com α = 0,01, a qual representa que uma unidade de comprimento perdido é 100 vezes mais cara que uma unidade de comprimento estocada (γ foi fixado em 1), reduz o estoque em 99,61% (de 33129,04 para 129,14), enquanto a perda aumenta em 12%.

Quanto ao tempo computacional, em média foram necessários 3,8 segundos por exemplar. Não houve variação significativa no tempo computacional entre os métodos lote-por-lote e multiperíodo.

5.3 Resultados para o problema multiperíodo com as abordagens de arredondamento

Apresentamos os testes computacionais realizados para as abordagens de arredondamento propostas. Os problemas-testes utilizados nos experimentos foram os mesmos utilizados na seção 5.1.

A antecipação de itens tende a ser grande na solução do problema de corte multiperíodo, de forma que a demanda dos itens nos períodos finais é menor. Com demanda menor, as combinações tendem a piorar o que implica no aumento da perda. Isso não acontece na solução lote-por-lote, já que há a antecipação de itens. Isso sugere que as soluções do primeiro período obtidas pelas Abordagens desenvolvidas sejam muito boas, pois têm mais possibilidades de combinação e os itens de difícil combinação tendem a ter sua produção sempre postergada.

Como apenas o primeiro período é, de fato, implementado, só ele teve sua solução arredondada. Porém, não basta termos uma solução muito boa para o primeiro e, nos próximos, não conseguirmos manter o padrão de qualidade das soluções. Como não é preciso detalhar a solução inteira para períodos futuros, calculamos duas estimativas para as perdas nos próximos períodos.

O cálculo destas estimativas foi conduzido da seguinte forma. Todas as demandas de itens e disponibilidades de objetos em todos os períodos do horizonte de planejamento foram somadas. Destes valores, foram subtraídos a produção do primeiro período, inclusive os itens que foram antecipados para o primeiro período. Desta forma, temos um "super período" que representa os períodos de 2 até T. Uma solução relaxada para o "super período" nos fornece uma estimativa para as perdas nos períodos finais.

Resolvemos o "super período" de duas maneiras. Uma delas é a solução por programação linear. A perda do primeiro período arredondada somada à perda obtida pela relaxação linear nos fornece uma estimativa para a perda total. Estes valores são dados na Tabela 14.

Outra forma foi determinar uma solução inteira para o "super período". O procedimento utilizado foram as três versões heurísticas de arredondamento em Poldi & Arenales (2006, 2009) e computamos a melhor solução dentre as três obtidas. Assim, a perda na solução arredondada do 1º período somada à perda obtida na solução inteira do "super período" fornece uma outra estimativa para a perda total. Estes valores são dados na Tabela 15.

Como podemos observar nas Tabelas 14 e 15, a Abordagem B apresenta perdas menores que os outros dois métodos estudados. Podemos concluir que é um procedimento eficiente para arredondamento da solução do problema de corte multiperíodo. Ambas as abordagens apresentaram o mesmo tempo computacional.

6. Considerações finais e perspectivas

Concluímos que o modelo para o problema de corte de estoque multiperíodo permite flexibilidade na análise de uma solução a ser implementada e, portanto, é uma ferramenta que permite ao gerente de produção uma visão global do problema para auxiliá-lo na tomada de decisões.

Embora o problema de corte de estoque multiperíodo seja em si uma contribuição à área de corte e empacotamento, por captar elementos da programação da produção em ambientes dinâmicos, pode também ser visto como um subproblema importante no planejamento e programação da produção. Assim, uma perspectiva natural de continuidade do trabalho é integrar esse método de solução na resolução de problemas acoplados.

A abordagem apresentada pode ser facilmente adaptada para resolver problemas de corte de estoque bidimensional (veja Poldi, 2007) e tridimensional, bem como as heurísticas de arredondamentos propostas.

Os autores agradecem aos revisores anônimos da revista Pesquisa Operacional, cujas sugestões melhoraram a qualidade do artigo. Esta pesquisa contou com o apoio financeiro da FAPESP e do CNPq.

Referências Bibliográficas

(1) Belov, G. & Scheithauer, G. (2002). A cutting plane algorithm for the one-dimensional cutting stock problem with multiple stock lengths. European Journal of Operational Research, 141, 274-294.         [ Links ]

(2) Correia, M.H.; Oliveira, J.F. & Ferreira, J.S. (2004). Reel and sheet cutting at a paper mill. Computers & Operations Research, 31, 1223-1243.         [ Links ]

(3) Farley, A.A. (1988). Mathematical programming models for cutting-stock problems in the clothing industry. The Journal of the Operational Research Society, 39, 41-53.         [ Links ]

(4) 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-579.         [ Links ]

(5) Gilmore, P.C. & Gomory, R.E. (1961). A linear programming approach to the cutting stock problem. Operations Research, 9, 848-859.         [ Links ]

(6) Gilmore, P.C. & Gomory, R.E. (1963). A linear programming approach to the cutting stock problem - Part II. Operations Research, 11, 863-888.         [ Links ]

(7) Gilmore, P.C. & Gomory, R.E. (1965). Multi-stage cutting stock problems of two and more dimensions. Operations Research, 13, 94-120.         [ Links ]

(8) Gramani, M.C.N. (2001). Otimização do processo de cortagem acoplado ao planejamento da produção. Tese de Doutorado, FEEC - UNICAMP.         [ Links ]

(9) Gramani, M.C.N. & França, P.M. (2006). The combined cutting stock and lot-sizing problem in industrial processes. European Journal of Operational Research, 174, 509-521.         [ Links ]

(10) Hendry, L.C.; Fok, K.K. & Shek, K.W. (1996). A cutting stock and scheduling problem in the copper iindustry. Journal of the Operational Research Society, 47, 38-47.         [ Links ]

(11) Holthaus, O. (2002). Decomposition approaches for solving the integer one-dimensional cutting stock problem with different types of standard lengths. European Journal of Operational Research, 141, 294-312.         [ Links ]

(12) Hoto, R.; Arenales, M. & Maculan, N. (2007). The one dimensional compartimentalised knapsack problem: a case study. European Journal of Operational Research, 183, 1183-1195.         [ Links ]

(13) Marques, F.P. & Arenales, M.N. (2008). The constrained compartimentalised knapsack problem. Computers and Operations Research, 34, 2109-2129.         [ Links ]

(14) Menon, S. & Schrage, L. (2002). Order allocation for stock cutting in the paper industry. Operations Research, 50, 324-332.         [ Links ]

(15) Nonas, S.L. & Thorstenson, A. (2000). A combined cutting stock and lot-sizing problem. European Journal of Operational Research, 120, 327-342.         [ Links ]

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

(17) Poldi, K.C. (2007). O problema de corte de estoque multiperíodo. Tese de Doutorado, ICMC - USP.         [ Links ]

(18) Poldi, K.C. & Arenales, M.N. (2006). Heurísticas para o problema de corte de estoque unidimensional inteiro. Pesquisa Operacional, 26, 473-492.         [ Links ]

(19) Poldi, K.C. & Arenales, M.N. (2009). Heuristics for the one-dimensional cutting stock problems with limited multiple stock lengths. Computers and Operations Research, 36, 2074-2081.         [ Links ]

(20) Poltroniere, S.C.; Poldi, K.C.; Toledo, F.M.B. & Arenales, M.N. (2008). Coupling Cutting Stock and Lot Sizing Problems in the Paper Industry. Annals of Operations Research, 157, 91-104.         [ Links ]

(21) Respício, A.; Captivo, M.E. & Rodrigues, A.J. (2002). A DSS for Production Planning and Scheduling in the Paper Industry. International Conference On Decision Making and Decision Support in the Internet Age, University College Cork, Cork, Ireland, 298-308.         [ Links ]

(22) Wagner, H.M. & Whitin, T.M. (1958). Dynamic version of the economic lot size model. Management Science, 5(1), 89-96.         [ Links ]

(23) Wäscher G. & Gau, T. (1996). Heuristics for the integer one-dimensional cutting stock problem: a computational study. OR Spektrum, 18, 131-144.         [ Links ]

(24) Yanasse, H.H. & Soma, N.Y. (1987). A new enumeration scheme for the knapsack problem. Discrete Applied Mathematics, 18, 235-245.         [ Links ]

Recebido em 12/2006; aceito em 07/2009 após 1 revisão
Received December 2006; accepted July 2009 after one revision

* Corresponding author / autor para quem as correspondências devem ser encaminhadas