Acessibilidade / Reportar erro

Uma heurística simples e eficaz para resolver o problema do carregamento de paletes do produtor

A simple and effective heuristic to solve the manufacturing pallet loading problem

Resumos

Neste artigo apresentamos uma heurística simples e eficaz para resolver o problema do carregamento de paletes (PCP) com caixas de mesma dimensão, também chamado PCP do produtor. Basicamente, o problema consiste em como arranjar, sem sobreposição, o maior número de retângulos (l,w) dentro de um retângulo maior (L,W). Este problema também aparece no carregamento de paletes sobre carrocerias de caminhões e no projeto de embalagens para formar unidades de carga intermediárias. Aparentemente simples de ser resolvido otimamente, o PCP do produtor em geral é difícil do ponto de vista da teoria de complexidade, e diversos autores têm proposto métodos de solução aproximados. No presente artigo apresentamos um refinamento da heurística de Bischoff e Dowsland, de fácil implementação computacional e que foi capaz de obter a solução ótima de todos os exemplos aqui analisados.

carregamento de paletes do produtor; carga unitizada; problemas de corte e empacotamento; heurísticas


In this paper we present a simple and effective heuristic to solve the pallet loading problem (PLP) with identical boxes, namely the manufacturer's PLP. Basically, the problem consists of arranging the maximum number of rectangles (l,w) into a larger rectangle (L,W) without overlapping. This problem also arises in the loading of pallets into trucks or rail cars, and in the design of packages which will be further combined to form a unit load. Although apparently easy to be optimally solved, the manufacturer's PLP is difficult from the perspective of the complexity theory, and several authors have proposed approximate methods to treat it. In this paper we present a refinement of Bischoff and Dowsland's heuristic which is easily implementable in a computer and provided the optimal solution of all examples here analysed.

manufacturer's pallet loading; unit load; cutting and packing problems; heuristics


Uma heurística simples e eficaz para resolver o problema do carregamento de paletes do produtor

A simple and effective heuristic to solve the manufacturing pallet loading problem

Silvia Regina MoralesI; Reinaldo MorabitoII

IDepartamento de Administração, UFU. 38400-185 Uberlândia, MG

IIDepartamento de Engenharia de Produção, UFSCar. 13565-905 São Carlos, SP (morabito@power.ufscar.br)

RESUMO

Neste artigo apresentamos uma heurística simples e eficaz para resolver o problema do carregamento de paletes (PCP) com caixas de mesma dimensão, também chamado PCP do produtor. Basicamente, o problema consiste em como arranjar, sem sobreposição, o maior número de retângulos (l,w) dentro de um retângulo maior (L,W). Este problema também aparece no carregamento de paletes sobre carrocerias de caminhões e no projeto de embalagens para formar unidades de carga intermediárias. Aparentemente simples de ser resolvido otimamente, o PCP do produtor em geral é difícil do ponto de vista da teoria de complexidade, e diversos autores têm proposto métodos de solução aproximados. No presente artigo apresentamos um refinamento da heurística de Bischoff e Dowsland, de fácil implementação computacional e que foi capaz de obter a solução ótima de todos os exemplos aqui analisados.

Palavras-chave: carregamento de paletes do produtor, carga unitizada, problemas de corte e empacotamento, heurísticas.

ABSTRACT

In this paper we present a simple and effective heuristic to solve the pallet loading problem (PLP) with identical boxes, namely the manufacturer's PLP. Basically, the problem consists of arranging the maximum number of rectangles (l,w) into a larger rectangle (L,W) without overlapping. This problem also arises in the loading of pallets into trucks or rail cars, and in the design of packages which will be further combined to form a unit load. Although apparently easy to be optimally solved, the manufacturer's PLP is difficult from the perspective of the complexity theory, and several authors have proposed approximate methods to treat it. In this paper we present a refinement of Bischoff and Dowsland's heuristic which is easily implementable in a computer and provided the optimal solution of all examples here analysed.

Key words: manufacturer's pallet loading, unit load, cutting and packing problems, heuristics.

1. Introdução

O problema do carregamento de paletes (PCP) (pallet loading problem) consiste em carregar produtos (embalados em caixas) sobre um palete retangular, de maneira a otimizar o aproveitamento do palete. Supõe-se que as caixas, em geral disponíveis em grandes quantidades, devem ser arranjadas ortogonalmente, isto é, com seus lados paralelos aos lados do palete. O PCP aparece com freqüência nas atividades de armazenagem, movimentação e transporte de produtos. Devido à escala de certos sistemas logísticos, um pequeno aumento do número de produtos carregados sobre cada palete pode resultar numa economia global significativa.

Empacotar unidades (p.e., caixas) sobre unidades maiores (paletes) é similar a cortar unidades (p.e., chapas) para produzir unidades menores (chapas menores). Centenas de artigos foram publicados na literatura de pesquisa operacional e na de gestão da produção, tratando de problemas de corte e de problemas de empacotamento. Curiosamente, até o final da década de 80, poucos autores haviam de fato evidenciado (e explorado) a similaridade entre esses dois tipos de problema. A partir de DYCKHOFF (1990), os problemas de corte e empacotamento passaram a ser tratados como uma mesma classe, com estrutura lógica ainda similar à de outros problemas da literatura (MORABITO & ARENALES, 1992). Uma associação chamada SICUP (Special Interest group on CUtting and Packing problems) foi especialmente criada com a finalidade de reunir e difundir as pesquisas relacionadas com tais problemas. Atualmente, os boletins da SICUP constituem uma importante fonte de referência para o PCP.

No presente artigo apresentamos uma heurística simples e efetiva para resolver o PCP com caixas iguais, também chamado PCP do produtor (veja próxima seção). Este problema também aparece no arranjo físico de paletes sobre carrocerias de caminhões e no projeto de embalagens para formar unidades de carga intermediárias. A heurística aqui proposta, de fácil implementação em computador, é um refinamento da heurística de BISCHOFF & DOWSLAND (1982). Tal refinamento, ao contrário da heurística original, foi capaz de obter a solução ótima de todos os exemplos por nós conhecidos da literatura. É importante salientar que, aparentemente simples de ser resolvido otimamente, o PCP do produtor é em geral um problema difícil do ponto de vista da teoria de complexidade (sob certas condições, o problema de decisão associado ao PCP tem complexidade ainda desconhecida, podendo nem ser da classe NP, conforme NELISSEN (1994)).

Na próxima seção definimos o PCP do produtor, classificando-o segundo a tipologia dos problemas de corte e empacotamento introduzida por DYCKHOFF (1990). A importância prática do problema para um produtor de bens é evidenciada num nível estratégico e operacional. O problema é modelado como um programa linear 0-1, conforme BEASLEY (1985), e alguns métodos exatos conhecidos da literatura são brevemente comentados.

Na seção 3, revemos métodos aproximados (heurísticas de bloco) para o PCP do produtor, com ênfase na heurística de BISCHOFF & DOWSLAND (1982). Na seção 4, apresentamos uma nova heurística para o problema, baseada numa simples extensão da heurística de Bischoff e Dowsland. Na seção 5, o desempenho computacional dessa heurística é comparado com o de outros métodos para diversos exemplos conhecidos da literatura (incluindo exemplos considerados difíceis). Finalmente, na seção 6 apresentamos as conclusões e discutimos perspectivas para pesquisa futura. Uma análise com a aplicação prática desta heurística em três estudos de caso reais (nos centros de distribuição de duas grandes empresas alimentícias e de um grande atacadista) pode ser encontrada em MORALES, MORABITO & WIDMER (1997).

2. Problema do Carregamento de Paletes

HODGSON (1982), ao estudar o PCP, dividiu-o em dois possíveis casos: o PCP do produtor (manufacturer's pallet loading problem) e o PCP do distribuidor (distribuitor's pallet loading problem).

No primeiro caso, o produtor fabrica um bem que é embalado em caixas iguais de dimensões (l,w,h). Estas caixas devem ser então carregadas em camadas horizontais sobre paletes de dimensões (L,W,H) (em que H é a altura máxima tolerável do carregamento). Em cada camada, é fixada uma orientação vertical das caixas. A figura 1a ilustra um padrão de empacotamento para o PCP do produtor. Se nenhuma orientação for fixada (i.e, se as caixas puderem ser carregadas sob qualquer uma de suas faces: lw, lh e wh), tais restrições permitem decompor o PCP do produtor em dois sub-problemas: (i) para cada face das caixas, o problema bidimensional de arranjar ortogonalmente o máximo número de retângulos (i.e., faces das caixas) dentro do retângulo (L,W) (superfície do palete), e (ii) o problema unidimensional de arranjar o conjunto mais valioso de camadas ao longo da altura H do palete (em que o valor de cada camada corresponde ao número de caixas nela contidas). Note que este último é um problema da mochila (knapsack problem) com capacidade H.


No segundo caso, o distribuidor recebe vários bens de diversos fornecedores, que estão embalados em caixas diferentes, de dimensões (li,wi,hi), i=1,..,m. Essas caixas são então carregadas sobre paletes. A figura 1b ilustra um padrão de empacotamento tridimensional para o PCP do distribuidor. Note que o PCP do distribuidor pode ser visto como um problema do carregamento de contêineres (BISCHOFF & RATCLIFF, 1995, MORABITO & ARENALES, 1994). Em particular, se uma orientação vertical for fixada, por exemplo: as caixas devem ser carregadas sob a face liwi, então o PCP do distribuidor reduz-se a um problema bidimensional de arranjar ortogonalmente retângulos (li,wi) e (wi,li), i=1,..,m, dentro do retângulo (L,W), de maneira a maximizar a utilização de (L,W).

Neste artigo abordaremos somente o PCP do produtor, em particular o problema bidimensional, descrito em (i), de arranjar, sem sobreposição, retângulos (l,w) e (w,l) no retângulo (L,W). Abordagens para o PCP do distribuidor são menos freqüentes na literatura e podem ser encontradas, por exemplo, em HODGSON (1982), DOWSLAND (1993) e ARENALES & MORABITO (1995). Exames destas abordagens podem ser encontrados em DOWSLAND & DOWSLAND (1992), DYCKHOFF & FINKE (1992) e MORABITO (1992).

2.1 PCP do Produtor

Conforme acima, o PCP do produtor consiste em arranjar ortogonalmente o máximo número de faces lw sobre a superfície (L,W) do palete, resultando numa camada de altura h (padrão de empacotamento bidimensional). As faces lw das caixas podem ser arranjadas nas duas possíveis orientações horizontais em cada camada, (l,w) e (w,l), conforme ilustrado na figura 2. Supomos que não existem restrições referentes a peso, densidade, fragilidade, etc., dos materiais que compõem as caixas (produtos) e o palete.


DYCKHOFF (1990) apresentou uma tipologia para classificar os problemas de corte e empacotamento. De acordo com essa tipologia, o PCP do produtor pode ser classificado como: 2/B/O/C, onde:

Esta classificação é útil para a identificação do problema e para a busca de métodos de solução mais específicos na literatura de problemas de corte e empacotamento. Além dessa classificação, três definições utilizadas para classificar os padrões produzidos nos problemas de corte também são aqui úteis: os padrões guilhotinado, não-guilhotinado de 1ª ordem, e não-guilhotinado de ordem superior (ARENALES & MORABITO, 1995):

(i) padrão guilhotinado: um corte é chamado guilhotinado se, ao ser produzido sobre um retângulo, produz 2 novos retângulos. Um padrão obtido por sucessivos cortes guilhotinados é chamado padrão guilhotinado (figura 3a).

(ii) padrão não-guilhotinado de 1ª ordem: um corte é chamado não-guilhotinado de 1ª ordem se, ao ser produzido sobre um retângulo, produz 5 novos retângulos arranjados de maneira a não formar um padrão guilhotinado. Um padrão obtido por sucessivos cortes guilhotinados e/ou cortes não-guilhotinados de 1ª ordem é chamado padrão não-guilhotinado de 1ª ordem (figura 3b). Note que todo padrão guilhotinado também é um padrão não-guilhotinado de 1ª ordem (mas o inverso não é verdadeiro).

(iii) padrão não-guilhotinado de ordem superior: é um padrão que não pode ser obtido por sucessivos cortes guilhotinados e/ou cortes não-guilhotinados de 1ª ordem (figura 3c).


Na maioria, as abordagens encontradas na literatura para problemas de corte e empacotamento da classe 2/B/O/ geram apenas padrões guilhotinados. Dado que a solução ótima do PCP do produtor corresponde a um padrão não-guilhotinado (i.e., um padrão guilhotinado, não-guilhotinado de 1ª ordem, ou não-guilhotinado de ordem superior), uma simplificação para abordá-lo seria impor artificialmente a restrição de padrões guilhotinados. Entretanto, esta alternativa em geral não resulta em boas soluções (MORALES, 1995).

Nos anos 60 e 70 alguns autores publicaram diagramas contendo soluções para diversas instâncias do PCP do produtor. Esses diagramas, baseados na experiência humana para resolver o problema, serviam como uma base de referência de padrões de empacotamento bidimensional (DOWSLAND & DOWSLAND, 1992). Entretanto, essa metodologia tornou-se inadequada devido à crescente preocupação das empresas com o aumento da produtividade, que exige a busca de novas formas para racionalizar e tornar mais ágeis seus processos. Hoje, com a tecnologia de microcomputadores e os métodos de solução disponíveis na literatura para o problema, programas de computação eficazes podem ser desenvolvidos para desempenhar esse papel em cada empresa.

O PCP do produtor tem importância estratégica e operacional para a empresa. Na área estratégica, uma análise estatística baseada no PCP do produtor pode ser útil para escolher, dentre os paletes disponíveis, aquele que é mais adequado para a empresa, bem como projetar novos paletes (MORABITO & WIDMER, 1991). Com um eficaz programa computacional, a empresa pode, por exemplo, simular padrões de empacotamento para um conjunto de produtos e paletes, e, a partir dos resultados obtidos, escolher o palete mais adequado. Outra aplicação estratégica do PCP do produtor diz respeito ao desenvolvimento de novas embalagens de produtos, que depende de fatores logísticos e mercadológicos. Neste caso, a metodologia pode ser útil para analisar o arranjo físico das embalagens, dentro de uma unidade de carga intermediária (DOWSLAND, 1995).

Na área operacional, métodos de solução mais eficientes para o PCP do produtor permitem encontrar melhores padrões de empacotamento para armazenagem e distribuição de um produto. Além disso, com um programa eficaz, a geração de padrões para cada produto, antes centralizada na matriz da empresa, pode agora ser efetuada com rapidez e flexibilidade em cada centro de distribuição regional, junto do pessoal encarregado da montagem da carga paletizada. Ao melhorar a interação entre o processo de geração de padrões de empacotamento e a montagem física da carga, melhoramos o desempenho de atividades como testes de estabilidade da carga e análise de padrões alternativos.

O PCP do produtor também tem outras aplicações ao longo da cadeia logística. É crescente o número de empresas que buscam, cada vez mais, inserir o palete no segmento de transporte rodoviário, com o objetivo de reduzir custos e tempos de carga e descarga nos terminais. Assim, além do problema de carregar caixas sobre o palete, o PCP do produtor também pode ser aplicado para carregar paletes sobre a carroceria do caminhão (WIDMER & MORALES, 1992).

2.2 Modelagem do PCP do Produtor

A seguir modelamos o PCP do produtor como um problema de programação linear 0-1. O modelo pode ser visto como um caso especial do modelo proposto em BEASLEY (1985) para o problema de corte bidimensional não-guilhotinado (2/B/O/.).

Sem perda de generalidade, sejam l, w, L, W inteiros positivos satisfazendo: l>w, l<L e l<W. A figura 2 ilustra as duas possíveis orientações horizontais para se colocar a face lw de uma caixa sobre o palete (L,W). Por simplicidade, definimos o índice k=1,2 para indicar a orientação da face lw no palete; assim, k=1 refere-se ao retângulo (l,w) e k=2, ao retângulo (w,l). Também definimos lk e wk respectivamente como o comprimento e a largura da face lw na orientação k; assim, l1=l e w1=w, e l2=w e w2=l.

Obviamente podemos colocar a face lw de uma caixa em diversas posições ao longo do comprimento L e da largura W do palete. Adotando um sistema de coordenadas cartesianas com origem no canto inferior esquerdo do palete, seja (x,y) a posição do canto inferior esquerdo da face lw de uma caixa dentro do palete (L,W). Note que x∈X e y∈Y, onde X={x | 0<x<L-w, inteiro} e Y={y | 0<y<W-w, inteiro} (lembre-se de que l>w).

Pode ser mostrado que, sem perda de generalidade, os conjuntos X e Y podem ser reduzidos para:

X = {x | x = rl + sw, x < L-w, r,s>0 e inteiro} (1)

Y = {y | y = tw + ul, y < W-w, t,u>0 e inteiro} (2)

utilizando-se os chamados padrões normais (BEASLEY, 1985). Ou seja, a abcissa x é uma combinação linear não-negativa e inteira do comprimento l e da largura w ao longo do comprimento L (similarmente para a ordenada y). Note que, desta maneira, a decisão de colocar a face lw de uma caixa sobre o palete (L,W) está limitada às duas possíveis orientações horizontais (i.e., k=1 e k=2) e às possíveis posições (x,y), x∈X e y∈Y.

Seja m e n, respectivamente, o número de elementos do conjunto X e Y (i.e., m=|X| e n=|Y|). Por simplicidade, definimos ainda os conjuntos I={1,2,...,m}, J={1,2,...,n} e K={1,2}. Assim, xi corresponde ao i-ésimo elemento do conjunto X e yj, ao j-ésimo elemento do conjunto Y. Note que se decidirmos colocar a face lw de uma caixa na posição (xi,yj) com orientação k, i∈I, j∈J, k∈K, então não poderemos colocar outra caixa em qualquer posição (xp,yq) satisfazendo xi<xp<xi+lk-1 e yj<yq<yj+wk-1, p∈I, q∈J (veja figura 4).


Para evitar a sobreposição de caixas sobre o palete, definimos a função gijpqk como:

gijpqk = 1, se xi<xp<xi+lk-1 e yj<yq<yj+wk-1,

0, caso contrário

que deve ser computada a priori para cada posição (xi,yj), i∈I, j∈J, para cada posição (xp,yq), p∈I, q∈J, e para cada orientação k∈K. Essa função será útil para descrever as restrições de sobreposição de caixas no modelo a seguir (inequações (4)). Finalmente, para todo i∈I, j∈J e k∈K, definimos a variável de decisão aijk como:

aijk = 1, se a face (l,w) for colocada na posição (xi,yj) com orientação k,

0, caso contrário.

O PCP do produtor pode então ser formulado pelo seguinte programa linear 0-1:

(P) max ∑k∈K{i∈I | xi<L-lk}{j∈J | yj<W-wk} aijk (3)

s.a. ∑k∈K i∈Ij∈J gijpqk aijk< 1, para todo p∈I, q∈J (4)

com aijk∈{0,1}, para todo i∈I, j∈J, k∈K. (5)

Note que o problema P tem O(|I| |J| |K|) variáveis 0-1 e O(|I| |J|) restrições. A solução ótima de P pode ser um padrão não-guilhotinado de 1ª ordem, ou não-guilhotinado de ordem superior. BEASLEY (1985) sugeriu resolver P mediante de um procedimento branch-and-bound, com limitantes superiores obtidos por meio de uma relaxação Lagrangeana de P (sobre restrições surrogate), usando o método de otimização do subgradiente para obter os multiplicadores de Lagrange. Esta abordagem não será analisada aqui.

Poucos autores têm proposto na literatura métodos de solução exatos para o PCP do produtor, entre eles, DOWSLAND (1987), TSAI et al. (1993) e NELISSEN (1994). Dowsland apresentou um algoritmo exato que consiste em encontrar o máximo conjunto estável de um grafo, representando o carregamento do palete (um conjunto estável de um grafo G é definido como um subconjunto de nós de G com a condição de que não haja dois nós ligados por um arco). O algoritmo funciona bem para problemas em que o número de caixas por camada não é grande, por exemplo, é menor do que 30. TSAI et al (1993) formularam o problema como um programa 0-1 com restrições disjuntivas (múltipla escolha) e sugeriram resolvê-lo por algoritmos do tipo branch-and-bound explorando tais restrições; porém, o número dessas restrições cresce exponencialmente com o número de caixas disponíveis. NELISSEN (1994) propôs diversos limitantes para utilização em algoritmos do tipo branch-and-bound (ele também propôs uma heurística baseada num algoritmo genético para o problema).

3. Métodos Aproximados (Heurísticas)

Devido às dificuldades com os métodos exatos, diversas heurísticas têm sido propostas na literatura para resolver o PCP do produtor, principalmente as chamadas heurísticas de bloco (NELISSEN, 1993a). Cada bloco (ou área) é definido como um retângulo contendo caixas arranjadas com a mesma orientação.

Um exemplo de uma heurística de bloco foi proposta em STEUDEL (1979). O palete é dividido em até 4 blocos e, em cada um deles, as caixas são simplesmente arranjadas conforme uma orientação pré-fixada. As dimensões destes blocos são determinadas num procedimento em dois estágios: no primeiro estágio a utilização do perímetro do palete é maximizada e no segundo, possíveis modificações nestes blocos são exploradas, variando suas dimensões, numa tentativa de preencher o bloco central. O padrão escolhido é aquele que resultar no maior número de caixas dentro dos blocos.

A figura 5 apresenta padrões obtidos do exemplo de um palete (48,40) com caixas (11,7). A figura 5a ilustra o padrão obtido no primeiro estágio e a figura 5b, no segundo estágio. Note que 22 caixas foram arranjadas no palete. Se o padrão obtido no segundo estágio for composto por exatamente 4 blocos, então temos um padrão não-guilhotinado de 1ª ordem, conforme o ilustrado na figura 5b (em particular, este padrão também é guilhotinado). Caso contrário, o padrão será apenas guilhotinado.


Outro exemplo de uma heurística de bloco, semelhante à anterior, foi proposta por SMITH & DE CANI (1980). O palete também é dividido em até 4 blocos e as caixas são simplesmente arranjadas dentro dos blocos conforme uma orientação prefixada. O procedimento examina todas as possíveis modificações nesses blocos, variando suas dimensões (inclusive a possibilidade das dimensões serem nulas), e retorna o padrão que resultar no maior número de caixas dentro dos blocos. A figura 5c apresenta o padrão obtido ao aplicar este procedimento para o exemplo anterior. Este padrão, com 23 caixas, é melhor do que o padrão obtido com a heurística anterior, com apenas 22 caixas. Note que todos os padrões da figura 5 são não-guilhotinados de 1ª ordem, com 4 blocos, mas que apenas o padrão da figura 5b é também guilhotinado.

3.1 Método de B&D

Um terceiro exemplo de uma heurística de bloco é o método proposto em BISCHOFF & DOWSLAND (1982), ou simplesmente método de B&D, que pode ser visto como um refinamento da heurística de SMITH & DE CANI (1980). O palete (L,W) é inicialmente dividido em até 5 blocos, denominados blocos 1, 2, 3, 4 e 5, respectivamente, com dimensões (Li,Wi), i=1,..,5, conforme figura 6. Uma orientação é prefixada para arranjar as caixas dentro de cada bloco (veja indicação na figura), com exceção do bloco 3 (central), cuja orientação é pós-fixada. Assim, se zi é o número de caixas arranjadas no bloco i, temos que:


zi = ⌊Li/l⌋ ⌊Wi/w⌋, se i=1,5

⌊Li/w⌋ ⌊Wi/l⌋, se i=2,4

max{⌊Li/l⌋ ⌊Wi/w⌋, ⌊Li/w⌋ ⌊Wi/l⌋}, se i=3. (6)

onde ⌊k⌋ denota o maior inteiro menor ou igual a k.

Basicamente, o método examina todas as possíveis modificações nos blocos externos 1, 2, 4 e 5, variando suas dimensões (Li,Wi) (inclusive a possibilidade das dimensões serem nulas), e retorna o padrão que resultar no maior número de caixas no palete, dado por:

z = ∑i=1,..,5 zi, (7)

onde zi é definido conforme (6). Note que as dimensões dos blocos externos determinam as dimensões (L3, W3) do bloco central (veja as expressões (13) abaixo). Nos casos em que o padrão retornado tem o bloco 3 nulo ou contendo nenhuma caixa, então ele coincide com o padrão da heurística de Smith e De Cani.

Para examinar todas essas possíveis modificações, ao invés do método variar exaustivamente os comprimentos Li ao longo de {0, 1, ..., L}, e as larguras Wi ao longo de {0, 1, ..., W}, o método considera, sem perda de generalidade, apenas um subconjunto dessas dimensões, conforme a discussão nos próximos parágrafos. A figura 7 ilustra o método de B&D como um método de busca em uma árvore com apenas dois níveis. O nó raiz (nível 0) corresponde ao palete (L,W) e cada arco a partir dele conecta grupos de até 5 nós (todos no nível 1); cada grupo corresponde a uma possível modificação das dimensões dos blocos 1, 2, 3, 4 e 5. O melhor padrão obtido corresponde ao grupo de até 5 nós que resultar no máximo valor de z, conforme (7). Esse padrão pode ser observado na figura 8b



Sejam os conjuntos P e Q definidos como:

P = {(r,s) | rl + sw < L, r,s>0 e inteiro} (8)

Q = {(t,u) | tl + uw < W, t,u>0 e inteiro} (9)

Note que cada elemento (r,s)∈P define uma partição factível ao longo do comprimento L do palete. Em outras palavras, (r,s) corresponde a uma combinação linear inteira e não-negativa de r comprimentos l e s larguras w, que pode ser arranjada ao longo de L (similarmente para (t,u)∈Q e W). Em particular, sejam os subconjuntos P'⊂P e Q'⊂Q definidos como (lembre-se de que l>w):

P' = {(r,s) | rl + sw > L-w, (r,s)∈P} (10)

Q' = {(t,u) | tl + uw > W-w, (t,u)∈Q} (11)

Dizemos que cada elemento (r,s)∈P' define, além de uma partição factível, uma partição eficiente ao longo do comprimento L do palete (similarmente para (t,u)∈Q'e W). Note que se (r,s) é uma partição factível porém não eficiente, segue-se que rl+sw<L-w. Logo, temos que rl+(s+1)w<L e, portanto, (r,s+1) também é uma partição factível, porém melhor do que (r,s). Assim, se (r,s)∈P e (r,s)∉P', então sempre é possível gerar pelo menos uma partição factível melhor do que (r,s). Para ilustrar os conjuntos P'e Q', tomemos o exemplo da figura 5; temos que P'={(0,6), (1,5), (2,3), (3,2), (4,0)} e Q'={(0,5), (1,4), (2,2), (3,1)}. O padrão ilustrado na figura 5c pode ser obtido com as partições eficientes: (3,2) na borda superior e inferior, (3,1) na borda esquerda e (1,4) na borda direita do palete.

Após gerar os conjuntos P' e Q', o método de B&D examina apenas as possíveis modificações nas dimensões (Li,Wi) que podem ser obtidas por meio dos elementos de P' e Q'. Para examiná-las, o método procede da seguinte maneira:

Para todo (r1,s1)∈P', (r2,s2)∈P', (t1,u1)∈Q' e (t2,u2)∈Q':

L1=r1l, L2=s1w, L5=r2l, L4=s2w, W4=t1l, W1=u1w, W2=t2l, W5=u2w, (12)

L3=L-L1-L5, W3=W-W2-W4 (13)

Note que se tratam de O(|P'|2|Q'|2) possíveis modificações a serem percorridas (cada uma correspondendo a um grupo de até 5 nós no nível 1 da árvore da figura 7 acima). Entretanto, observe na figura 6 que se:

L1 + L5 > L e W1 + W5 > W, (14)

então a linha vertical que separa os blocos 1 e 3 ficará à direita da linha vertical que separa os blocos 3 e 5, e portanto, haverá sobreposição dos blocos 1 e 5. Similarmente, se

W2 + W4 > W e L2 + L4 > L, (15)

então haverá sobreposição dos blocos 2 e 4. Observe também que trocar duas partições eficientes entre duas bordas opostas do palete é equivalente a efetuar uma rotação de 180° no palete, ou seja, examinar uma partição (r1,s1)∈P' na borda superior e uma partição (r2,s2)∈P' na borda inferior do palete é equivalente a examinar a partição (r2,s2)∈P' na borda superior e a partição (r1,s1)∈P' na borda inferior. Portanto, se o par ((r1,s1), (r2,s2)) for examinado, então o par ((r2,s2), (r1,s1)) não precisará ser examinado.

A busca poderá ser interrompida assim que for encontrado um padrão satisfazendo a condição:

(LW) - z (lw) < lw, (16)

onde z, conforme (7), é o número de caixas arranjadas neste padrão (i.e., a área desocupada do palete é menor do que a área de uma única caixa). Neste caso o padrão encontrado é ótimo. Note que (16) é uma condição suficiente, porém não-necessária, para garantia de otimalidade (i.e., toda solução que satisfaz esta condição é ótima, porém, podemos ter uma solução ótima não satisfazendo essa condição).

Apesar de não ter sido (explicitamente) explorado em BISCHOFF & DOWSLAND (1982), o uso de limitantes inferiores e superiores para reduzir a busca pode melhorar sensivelmente o desempenho computacional do método. Sejam, por exemplo, zlb e zub dois simples limitantes (inferior e superior, respectivamente) para (L,W), definidos por:

zlb = max{⌊L/l⌋ ⌊W/w⌋, ⌊L/w⌋ ⌊W/l⌋} (17)

zub = ⌊LW / lw⌋ (18)

Durante a busca, zlb vai sendo atualizado à medida que melhores padrões vão sendo encontrados (i.e., se z>zlb, então zlb=z). Obviamente, se zlb=zub, então a busca pode ser interrompida. Note que esta condição é equivalente à condição suficiente definida em (16). Verifique que, dado que (LW)-zlb(lw)>0, segue-se que se (LW)-zlb(lw)<lw, então (LW)/(lw)>zlb e (LW)/(lw)<zlb+1 e, portanto, zlb=⌊LW/lw⌋=zub. Um limitante superior para (L,W) mais eficiente do que (18) é definido por (NELISSEN, 1994):

zub = ⌊L*W* / lw⌋ (19)

onde

L* = max {x | x = rl + sw, (r,s)∈P'} (20)

W* = max {y | y = tl + uw, (t,u)∈Q'} (21)

Outros limitantes inferiores e superiores mais eficientes do que (17) e (19) podem ser definidos; veja discussão em NELISSEN (1994). A seguir apresentamos o algoritmo para o método de B&D; o padrão obtido por este algoritmo com parâmetros (L,W) e (l,w), ou com (W,L) e (l,w), corresponde ao melhor padrão não-guilhotinado de 1° ordem com até 5 blocos.

Algoritmo 1 - método de B&D:

1.Determine os conjuntos P' e Q' conforme (10) e (11). Seja o(r,s) a ordem do elemento (r,s) em P', e o(t,u) a ordem do elemento (t,u) em Q'. Compute zlb e zub para (L,W) conforme (17) e (19); se zlb = 0 ou zlb = zub, então vá para o passo 3, caso contrário, vá para o passo 2.

2. Para cada (r1,s1)∈P', para cada (r2,s2)∈P' tal que o(r2,s2)>o(r1,s1), para cada (t1,u1)∈Q' e para cada (t2,u2)∈Q' tal que o(t2,u2)>o(t1,u1), faça:

2.1 Determine as dimensões (Li,Wi), i=1,..,5, conforme (12) e (13).

2.2 Se não houver sobreposição (i.e., se (14) e (15) não ocorrerem), então faça:

2.2.1 Determine z, o máximo número de caixas nos blocos, conforme (7).

2.2.2 Se z>zlb, atualize zlb, o máximo número de caixas obtido até então.

2.2.3 Se zlb=zub, então vá para o passo 3.

3. Retorne a melhor solução obtida zlb. Se zlb=zub, então o padrão para (L,W) é ótimo.

A figura 8 apresenta os padrões obtidos por meio das heurísticas de Smith e De Cani (figura 8a) e do método de B&D (figura 8b) para o exemplo de um palete (100,100) com caixas (20,15). Como o palete é quadrado, P'=Q'={(0,6), (1,5), (2,4), (3,2), (4,1), (5,0)}. Note que o padrão da heurística de Smith e De Cani acomoda apenas 32 caixas, enquanto que o padrão do método de B&D acomoda 33 caixas. Além disso, ele corresponde ao padrão ótimo do problema, pois, a área restante é menor do que a área de uma única caixa. Observe que ele foi obtido usando a partição eficiente (2,4) nas quatro bordas do palete.

Outros exemplos de heurísticas de bloco com 7 e 9 blocos e solução diagonal são descritas em NELISSEN (1994). As figuras 9a e 9b abaixo ilustram exemplos de padrões com 7 blocos e solução diagonal (17 blocos!), respectivamente. Note que nenhum desses padrões pode ser obtido pelo método de B&D, capaz de gerar padrões com até 5 blocos. A seguir apresentamos um simples e efetivo refinamento dele, capaz de produzir padrões não-guilhotinados de 1ª ordem com bem mais do que 5 blocos. Como será visto, os padrões da figura 9, e muitos outros com mais de 5 blocos, podem ser obtidos por meio deste refinamento.


4. Procedimento Recursivo

O método de B&D pode ser melhorado da seguinte maneira: Durante o processo de busca, para cada nó (bloco) de um grupo de até 5 nós na árvore da figura 7, podemos aplicar novamente o método de B&D, e assim por diante, até que todos os nós resultantes correspondam a sub-blocos tão pequenos que o método de B&D não possa mais ser aplicado. Trata-se, portanto, de um simples procedimento recursivo baseado no método de B&D.

A figura 10 representa esse procedimento como um método de busca numa árvore com vários níveis (compare com a árvore de busca da figura 7, com apenas dois níveis). Cada nó corresponde a um bloco e cada arco a partir de um nó aponta para um grupo de até 5 nós, correspondendo aos 5 sub-blocos. Por exemplo, ao aplicarmos o método de B&D sobre o nó 0 (palete), examinamos todas as possíveis modificações de (até) 5 blocos do palete, em particular, os blocos 1, 2, 3, 4 e 5 representados na figura. Ao aplicarmos novamente o método de B&D sobre o nó 1 (bloco 1), examinamos todas as possíveis modificações de (até) 5 sub-blocos do bloco 1, em particular os sub-blocos 6 e 7 representados na figura. Ao aplicarmos o método de B&D sobre o nó 6 (sub-bloco 6), obtemos os sub-sub-blocos 8, 9 e 10, e assim sucessivamente, até que todos os blocos resultantes sejam menores do que uma caixa. Cada vez que aplicamos o método de B&D sobre um nó, descemos um nível na árvore. Note na figura 10, que a enumeração dos nós indica a ordem em que o método de B&D é aplicado nos nós e, portanto, a ordem em que os nós são gerados. Observe também, que ao aplicarmos o método sempre sobre o nó mais recentemente gerado, estamos percorrendo a árvore segundo a estratégia de busca em profundidade primeiro (a rigor, o procedimento recursivo utiliza a estratégia backtracking, como ficará evidente no algoritmo 2 abaixo).


Seja n o nível de um certo nó na árvore; note que a solução do algoritmo 1 da seção 3 corresponde a algum grupo de até 5 nós no nível n=1. Assim, se ao percorrermos a árvore, atualizarmos o melhor padrão obtido até então, o padrão retornado pelo procedimento recursivo será, no mínimo, tão bom quanto o padrão obtido pelo algoritmo 1. A profundidade da árvore depende da razão entre as dimensões do palete e das caixas. Nos problemas em que a profundidade da árvore é grande, podemos impor artificialmente um limitante superior N para o nível dos nós gerados na árvore, com a esperança de que isso ainda nos possibilite encontrar um bom padrão não-guilhotinado de 1° ordem. Desta maneira, o método de B&D pode ser visto como o caso particular do procedimento recursivo com N=1.

Convém fazer duas observações:

(i) o procedimento recursivo é heurístico; assim, mesmo que a árvore seja exaustivamente percorrida, o procedimento não tem garantia de encontrar o padrão ótimo do PCP do produtor.

(ii) se utilizarmos no procedimento recursivo o algoritmo 1 da maneira como foi apresentado na seção 3, perderemos a garantia de encontrar o melhor padrão não-guilhotinado de 1° ordem, mesmo redefinindo zi em (6) como:

zi = max{⌊Li/l⌋ ⌊Wi/w⌋, ⌊Li/w⌋ ⌊Wi/l⌋}, se i=1,..,5. (22)

Isso pode ser mostrado por meio do seguinte exemplo: considere um palete (42,39) e caixas (9,4). Temos que P'={(4,1), (3,3), (2,6), (1,8), (0,10)} e Q'={(4,0), (3,3), (2,5), (1,7), (0,9)}. A figura 11a ilustra o melhor padrão obtido com o procedimento recursivo, ao utilizarmos o algoritmo 1 com (22) e não limitarmos a profundidade da busca (i.e., N=∞). A figura 11b ilustra o padrão ótimo do problema. Ambos são padrões não-guilhotinados de 1° ordem; no entanto, o padrão ótimo contém uma caixa a mais. Observe que este padrão envolve percorrer, no nível n=1 da árvore de busca, um caminho com uma partição factível (r,4) na borda superior do palete (veja na figura 11b), e que nenhuma partição (r,4) é eficiente (i.e., (r,4)∉P'). Logo, este caminho não pode ser percorrido pelo procedimento recursivo utilizando o algoritmo 1.


Uma maneira de garantir que o procedimento recursivo encontre o melhor padrão não-guilhotinado de 1ª ordem, porém com um custo de computação bem maior, é modificar o algoritmo 1 da seguinte maneira: Para examinar "todas" as possíveis modificações nas dimensões dos blocos externos, ao invés do algoritmo percorrer apenas os elementos dos conjuntos P' e Q' (partições eficientes), o algoritmo deve agora percorrer todos os elementos dos conjuntos X e Y, definidos como:

X = {x | x = rl + sw, x<L, r,s>0 e inteiro} (23)

Y = {y | y = tw + ul, y<W, t,u>0 e inteiro} (24)

(note que X e Y em (23) e (24) são diferentes de X e Y em (1) e (2)). Por ilustração, para o exemplo da figura 5, temos que: X={0, 7, 11, 14, 18, 21, 22, 25, 28, 29, 32, 33, 35, 36, 39, 40, 42, 44, 46, 47} e Y={0, 7, 11, 14, 18, 21, 22, 25, 28, 29, 32, 33, 35, 36, 39, 40}. Assim, as expressões (12)-(13) utilizadas no algoritmo 1 devem ser substituídas por:

Para todo x1∈X, x2∈X, y1∈Y e y2∈Y:

L1=x1, L4=x2, W4=y1, W5=y2 (25)

L2=L-x1, L5=L-x2, W1=W-y1, W2=W-y2, L3=L-x1-L5, W3=W-W2-y1. (26)

Com a modificação (25)-(26), é fácil mostrar que o procedimento recursivo encontra o padrão ótimo da figura 11b com N>3. Além disso, ele também encontra os padrões da figura 9 com 7 blocos e solução diagonal (17 blocos) para valores de N suficientemente grandes. A seguir apresentamos o algoritmo para o procedimento recursivo com a modificação acima. Note que a rotina B&D(L, W, n) é recursiva (veja passo 2.2.1.1 no algoritmo), com parâmetros: comprimento do nó (L), largura do nó (W) e nível do nó (n) na árvore.

Algoritmo 2 - procedimento recursivo com modificação:

Inicialização:

0. Determine os conjuntos X e Y conforme (23) e (24). Faça z = B&D(L, W, 1), isto é, chame a rotina recursiva B&D inicialmente com as dimensões do palete e nível n=1. O valor retornado de z corresponde ao número máximo de caixas arranjadas no palete.

Rotina B&D(L, W, n):

1 Determine os conjuntos X'={x | x<L-w, x∈X} e Y'={y | y<W-w, y∈Y}. Seja o(x) a ordem do elemento x em X', e o(y) a ordem do elemento y em Y'. Compute zlb e zub para (L,W) conforme (17) e (19), onde agora: L* = max {x | x<L, x∈X} e W* = max {y | y<W, y∈Y}. Se zlb = 0 ou zlb = zub, então vá para o passo 3; caso contrário, vá para o passo 2.

2 Para cada x1∈X', para cada x2∈X' tal que o(x2)>o(x1), para cada y1∈Y' e para cada y2∈Y' tal que o(y2)>o(y1), faça:

2.1 Determine as dimensões (Li,Wi), i=1,..,5, conforme (25) e (26).

2.2 Se L1+L4+W4+W5>0 e se não houver sobreposição (i.e., se (14) e (15) não ocorrerem), então faça:

2.2.1 Se a profundidade da busca ainda não foi atingida (i.e., se n<N):

2.2.1.1 Então determine z = ∑i=1,..,5 B&D(Li, Wi, n+1),

2.2.1.2 Senão determine z conforme (22).

2.2.2 Se z>zlb, atualize zlb, o máximo número de caixas obtido até então.

2.2.3 Se zlb=zub, então vá para o passo 3.

3 Retorne a melhor solução obtida zlb. Se zlb=zub, então o padrão para (L,W) é ótimo.

Cabe ressaltar que o algoritmo 2 realiza uma busca cega ou não-informada (NILSSON, 1971), que percorre o espaço de soluções sem usar informações adicionais que poderiam indicar os caminhos mais promissores para serem percorridos primeiro, e assim, tornar a busca eventualmente mais eficiente. Por simplicidade, neste trabalho não pesquisamos estratégias de busca informadas, como por exemplo a busca o melhor primeiro (best-first search).

5. Resultados Computacionais

O procedimento recursivo sem a modificação (25)-(26) (aqui chamado de procedimento recursivo 1 - PR1), e o procedimento recursivo com a modificação (i.e., algoritmo 2 - aqui chamado PR2), foram implementados em linguagem Turbo-Pascal 5.5 num microcomputador PC-486-DX4, 100 MHZ, 640 Kbytes, DOS versão 6.3. Convém salientar que os algoritmos são facilmente implementáveis em linguagens que suportam recursividade, tais como Pascal e C. O método de B&D (algoritmo 1) corresponde ao procedimento recursivo com N=1.

As tabelas 1 e 2 apresentam, respectivamente, os dados dos exemplos de DOWSLAND (1984) e os resultados obtidos variando-se N=1,2 com os algoritmos PR1 e PR2. As colunas da tabela 2 apresentam o número de caixas arranjadas em cada padrão, ao lado dos tempos de processamento em segundos (entre parênteses) necessários para obtê-los.

Note que nenhuma solução ótima é encontrada com N=1. Por outro lado, a solução ótima de todos os exemplos é encontrada com N=2 pelos dois procedimentos, porém, nos exemplos E1-E4 as diferenças nos tempos de processamento são significativas. A figura 12 ilustra os padrões obtidos para o exemplo E1 por DOWSLAND (1984) (figura 12a) e pelo algoritmo PR1 (figura 12b). Ambos os padrões são equivalentes, isto é, acomodam 42 caixas. A figura 13 mostra o caminho percorrido, na árvore de busca, que corresponde ao padrão não-guilhotinado de 1ª ordem da figura 12b.



Com essas observações, surgem duas questões interessantes:

(i) Será que existe algum exemplo com padrão ótimo não-guilhotinado de ordem superior que não tenha um padrão não-guilhotinado de 1ª ordem equivalente?

(ii) Será que existe algum exemplo com padrão ótimo não-guilhotinado de 1ª ordem que não tenha um padrão não-guilhotinado de 1ª ordem equivalente com N<2?

Não temos resposta para a questão (i) mas, se ela for negativa, então o algoritmo PR2 resolve otimamente o PCP do produtor ao fazermos N suficientemente grande. Para a questão (ii), já sabemos que a resposta é sim. NELISSEN (1993b, 1994) apresentou diversos exemplos com padrões ótimos não-guilhotinados de 1ª ordem com N>2. As três primeiras colunas da tabela 3 apresentam os dados de 9 desses exemplos, e a quarta coluna apresenta as respectivas soluções ótimas publicadas em Nelissen (com o número de níveis correspondente entre parênteses). Os respectivos padrões dos exemplos 3, 4 e 9 já foram ilustrados nas figuras 9a, 11b e 9b. As demais colunas apresentam as soluções obtidas pelos algoritmos PR1 e PR2 para diferentes valores de N (o asterisco indica que a solução é ótima).

Uma vez que Nelissen publicou os padrões sem especificar as dimensões das caixas e do palete, para o propósito deste artigo, estas foram medidas manualmente por meio de uma escala. Os números entre parênteses nas duas últimas colunas da tabela 3 correspondem aos tempos de processamento (em segundos). Note nos exemplos 1 e 4 que o padrão ótimo não-guilhotinado de 1ª ordem com menor N obtido pelo algoritmo PR2 corresponde a N=3, o que responde afirmativamente a questão (ii) acima.

O algoritmo PR2 encontrou o padrão ótimo de todos os exemplos (note os asteriscos na última coluna da tabela 3). Além disso, nos exemplos 1, 2, 5, 6, 7, 8 e 9, ele também encontrou um padrão ótimo com N menor do que o padrão de NELISSEN (1993b, 1994). Nos exemplos 5, 6, 7 e 8, esse padrão chega a ter 2 níveis a menos que o padrão de NELISSEN (1993b, 1994), no exemplo 9, chega a ter 5 níveis a menos. Observe que, em alguns exemplos, o padrão ótimo é encontrado mais rapidamente ao aumentarmos N (veja exemplos 1, 3, 6 e 7).

O algoritmo PR1 só não encontrou o padrão ótimo dos exemplos 1 e 4 (note que o padrão obtido por PR1 para o exemplo 4 foi ilustrado na figura 11a). Nos exemplos 2, 5, 6, 7, 8, e 9, ele encontrou um padrão ótimo com N menor do que o padrão de NELISSEN (1993b, 1994), nos exemplos 5 e 8 esse padrão chega a ter 2 níveis a menos e no exemplo 9, chega a ter 5 níveis a menos (os padrões de Nelissen para os exemplos 3, 4 e 9 aparecem nas figuras 9 e 11b).

A figura 14 mostra o padrão ótimo do exemplo 8 publicado por NELISSEN (figura 14a), com N=3, ao lado do respectivo padrão ótimo obtido pelo PR1 (figura 14b), com N=1. Por outro lado, no exemplo 3, o PR1 somente encontra um padrão ótimo com N=3, quando o padrão ótimo de Nelissen tem N=2 (veja na tabela 5).


NELISSEN (1993b, 1994) também apresentou dois exemplos com padrões ótimos não-guilhotinados de ordem superior. A tabela 4 apresenta os dados e os resultados obtidos com os procedimentos recursivos; note que os dois exemplos têm um padrão ótimo não-guilhotinado de 1ª ordem. Tal padrão só foi obtido pelo algoritmo PR2 (note os asteriscos na última coluna da tabela 4). As figuras 15 e 16 comparam os padrões de Nelissen com os obtidos pelo PR2 para estes dois exemplos.



6. Conclusões e Perspectivas

Neste artigo apresentamos um simples, porém eficaz, refinamento da heurística de BISCHOFF & DOWSLAND (1982), que pode ser facilmente codificado em linguagens de programação que suportam recursividade, tais como Pascal e C. Duas variações foram analisadas: os algoritmos PR1 e PR2 (veja seção 5).

O algoritmo PR1 foi capaz de encontrar boas soluções num tempo de processamento relativamente baixo, para pequenos valores de N (p.e., N<2). O algoritmo PR2, apesar de em geral demandar um tempo de processamento maior que o do algoritmo PR1, e algumas vezes até proibitivo, foi capaz de encontrar a solução ótima de todos os exemplos aqui analisados. Para uma discussão da eficácia destes algoritmos para resolver na prática o PCP do produtor, veja MORALES, MORABITO & WIDMER (1997), onde três estudos de caso reais foram analisados nos centros de distribuição de duas grandes empresas alimentícias e de um grande atacadista.

Uma questão interessante foi aqui levantada e ainda permanece sem resposta (pelo menos para nós): Será que existe algum exemplo com padrão ótimo não-guilhotinado de ordem superior que não tenha um padrão não-guilhotinado de 1ª ordem equivalente? No caso da resposta ser negativa, então o algoritmo PR2 tem garantia de otimalidade para o PCP do produtor (para valores de N suficientemente grandes).

Agradecimentos:

Os autores agradecem aos cinco revisores anônimos pelos seus úteis comentários e sugestões. Esta pesquisa foi parcialmente financiada pelo CNPq (processos 522973/95-7 e 680082/95-6) e pela FAPESP (processo 9522-0).

Nota:

Após o presente artigo ter sido revisado e aceito para publicação na Gestão & Produção, os autores tomaram conhecimento de uma nova heurística chamada G4, recentemente apresentada para o PCP do produtor (SCHEITHAUER & TERNO, 1996). A heurística G4, similar à idéia da heurística aqui proposta, explora a divisão recursiva do palete em até 4 retângulos (ao invés de 5 retângulos como aqui), produzindo padrões não-guilhotinados com estrutura G4 (equivalente a redefinir o padrão não-guilhotinado de 1ª ordem para 4 retângulos, ao invés de 5). Para obter o melhor padrão com estrutura G4, Scheithauer e Terno propuseram fórmulas recursivas de programação dinâmica. Os resultados computacionais obtidos são promissores.

  • ARENALES, M. & MORABITO, R.: "An AND/OR-graph to the Solution of Two-Dimensional Non-guilhotine Cutting Problems", European Journal of Operational Research 84, pp.599-617, 1995.
  • BEASLEY, J.: "An Exact Two-Dimensional Non Guillotine Cutting Tree Search Procedure", Operations Research 33, pp.49-64, 1985.
  • BISCHOFF, E. & DOWSLAND, W.: "An Application of the Micro to Product Design and Distribution", Journal of the Operational Research Society 33, pp.271-280, 1982
  • BISCHOFF, E. & RATCLIFF, M.S.: "Loading Multiple Pallets", Journal of the Operational Research Society 46, pp.1322-1336, 1995.
  • DOWSLAND, K.: "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 Operational Research Society 35, pp. 895-905, 1984.
  • DOWSLAND, K.: "An Exact Algorithm for the Pallet Loading Problem". European Journal of Operational Research 31, pp. 78-84, 1987.
  • DOWSLAND, K.: "Some Experiments With Simulated Annealing Techniques for Packing Problems", European Journal of Operational Research 68, pp. 389-399, 1993.
  • DOWSLAND, K. & DOWSLAND, W.B.: "Packing Problems", European Journal of Operational Research 56, pp. 2-14, 1992.
  • DOWSLAND, W.B.: "Improving Palletisation Efficiency---The Theoretical Basis and Practical Application", International Journal of Production Research 33(8), 2213-2222, 1995.
  • DYCKHOFF, H.: "A Typology of Cutting and Packing Problems". European Journal of Operational Research 44, pp. 145-159, 1990.
  • DYCKHOFF, H. & FINKE, U.: Cutting and Packing in Production and Distribution: Typology and Bibliography, Springer-Verlag Co, Heidelberg, 1992.
  • HODGSON, T.: "A Combined Approach to the Pallet Loading Problem", IIE Transactions 14(3), pp.176-182, 1982.
  • MORABITO, R.: "Uma Abordagem em Grafo-E/OU para o Problema do Empacotamento: Aplicaçăo ao Carregamento de Paletes e Contęineres." Tese de Doutorado, Escola de Engenharia de Săo Carlos, Universidade de Săo Paulo, 1992.
  • MORABITO, R. & ARENALES, M.: "Um Exame dos Problemas de Corte e Empacotamento", Pesquisa Operational 12(1), pp.1-20, 1992.
  • MORABITO, R. & ARENALES, M.: "An AND/OR-Graph Approach to the Container Loading Problem", International Transactions in Operational Research 1(1), pp. 59-73, 1994.
  • MORABITO, R. & WIDMER, J.A.: "O Problema do Carregamento de Paletes - Uma Metodologia para o Carregamento com Embalagens de Dimensőes Iguais". ACN-STT 40/91, Escola de Engenharia de Săo Carlos, Universidade de Săo Paulo, 1991.
  • MORALES, S.R.: "Otimizaçăo no Carregamento de Paletes: Uma Abordagem Heurística para Resolver o Problema do Produtor". Dissertaçăo de Mestrado, Departamento de Engenharia de Produçăo, Universidade Federal de Săo Carlos, 1995.
  • MORALES, S.R.; MORABITO, R. & WIDMER, J.A.: "Otimizaçăo do Carregamento de Produtos Paletizados em Caminhőes", a aparecer na ediçăo especial em logística da Gestăo & Produçăo, 1997.
  • NELISSEN, J.: "New Approaches to the Pallet Loading Problem", Working Paper, Schriften zur Informatik und Angewandten Mathematik, Julho, Bericht no. 155, 1993a.
  • NELISSEN, J.: "How to Use Constraints to Compute an Upper Bound for the Pallet Loading Problem", Working Paper, Schriften zur Informatik und Angewandten Mathematik, 1993b.
  • NELISSEN, J.: "Solving the Pallet Loading Problem More Efficiently", Working Paper, Graduiertenkolleg "Informatik und Technik", agosto, Alemanha, 1994.
  • NILSSON, N.:Problem-Solving Methods in Artificial Intelligence, McGraw-Hill, New York, 1971.
  • SCHEITHAUER, G. & TERNO, J.: "The G4-Heuristic for the Pallet Loading Problem". Journal of the Operational Research Society 47, pp.511-522, 1996.
  • SMITH, A. & DE CANI, P.: "An Algorithm to Optimize the Layout of Boxes in Pallets", Journal of the Operational Research Society 31, pp. 573-578, 1980.
  • STEUDEL, H.: "Generating Pallet Loading Patterns: a Special Case of the Two-Dimensional Cutting Stock Problem", Management Science 10, pp.997-1004, 1979.
  • WIDMER, J.A & MORALES, S.R.: "Aspectos Dimensionais do Carregamento de Paletes em Carrocerias de Vários Tipos de Veículos Rodoviários de Carga, Trabalho apresentado na 1Ş Reuniăo de Normalizaçăo de Paletes e Contęineres promovida pela ASLOG, Dezembro, Săo Paulo, 1992.
  • TSAI, R.; MALSTROM, E. & KUO, W.: "Three Dimensional Palletization of Mixed Box Sizes", IEE Transactions 25(4), pp.64-75, 1993.

Datas de Publicação

  • Publicação nesta coleção
    31 Maio 2010
  • Data do Fascículo
    Abr 1997
Universidade Federal de São Carlos Departamento de Engenharia de Produção , Caixa Postal 676 , 13.565-905 São Carlos SP Brazil, Tel.: +55 16 3351 8471 - São Carlos - SP - Brazil
E-mail: gp@dep.ufscar.br