Um método heurístico baseado em relaxação Lagrangiana para o problema de
carregamento de paletes do produtor
1. Introdução
Neste trabalho estudamos um caso particular dos problemas de corte e
empacotamento, denominado problema de carregamento de paletes do produtor (PCP
do produtor). Este problema é classificado como 2/B/O/C (bidimensional, seleção
de itens, único objeto, itens iguais), de acordo com a tipologia de Dyckhoff
(1990). Basicamente, o PCP do produtor consiste em arranjar sem sobreposição, o
máximo número de retângulos de dimensões (l,w) ou (w,l)(faces inferiores das
caixas), sobre um retângulo maior (L,W)(superfície do palete). Admite-se que as
caixas estão disponíveis em grandes quantidades e devem ser arranjadas
ortogonalmente, isto é, com seus lados paralelos aos lados do palete. Estes
arranjos de caixas formam camadas que são então empilhadas sobre o palete.
Devido à escala e extensão de certos sistemas logísticos, um pequeno aumento do
número de produtos carregados sobre cada palete pode resultar em economias
substanciais.
Nossa motivação para estudá-lo é que, além de ser um problema de difícil
solução exata (o problema parece ser NP-completo, embora isso ainda não tenha
sido provado, conforme Nelissen, 1995), o PCP do produtor é importante nas
atividades logísticas de armazenagem e transporte de produtos embalados em
caixas e carregados sobre paletes e caminhões (Morabito et al, 2000). Devido à
dificuldade de solução desse problema, poucos autores têm proposto métodos de
solução exatos, como Dowsland (1987), Tsai et al (1993), e Bhattacharya et al
(1998). Outros propuseram métodos heurísticos, tais como Steudel (1979), Smith
e De Cani (1980), Bischoff & Dowsland (1982), Nelissen (1994, 1995),
Arenales & Morabito (1995), Scheithauer & Terno (1996) e Morabito &
Morales (1998).
No presente trabalho, modelamos o PCP do produtor conforme um programa inteiro
0-1. O modelo pode ser visto como um caso particular do modelo proposto em
Beasley (1985) para o problema mais geral da classe 2/B/O/M (bidimensional,
seleção de itens, único objeto, vários itens diferentes). Desenvolvemos um
método heurístico baseado na aplicação de técnicas de relaxação Lagrangianae
surrogate, edo procedimento de otimização do subgradiente. Exploramos duas
variações do método: (i) o caso utilizando apenas relaxação Lagrangiana, e (ii)
o caso combinando relaxação Lagrangiana e relaxação surrogate, similarmente ao
que foi feito em Beasley (1985) para o problema mais geral de corte
bidimensional não-guilhotinado. Em ambos os casos são aplicados um método de
redução do problema e uma heurística Lagrangiana. As soluções encontradas são
comparadas com soluções produzidas por outros métodos da literatura e soluções
utilizadas em situações reais. Para isso, utilizamos dados obtidos na
literatura e dados fornecidos por uma transportadora do interior de São Paulo.
Convém salientar que no artigo de Beasley (1985) foi explorado o uso de
relaxação Lagrangiana combinada com relaxação surrogate (caso (ii)), ou seja,
não foi explorado o uso de relaxação Lagrangiana diretamente nas restrições
originais do problema (caso (i)). Além disso, o trabalho de Beasley (1985)
tratou um problema mais geral do que o PCP do produtor. Uma questão que nos
motivou para o presente trabalho é como se comportam estas duas abordagens
(casos (i) e (ii)) ao serem aplicadas num problema bem mais particular, como é
o caso do PCP do produtor.
2. Modelagem do PCP do Produtor
Um palete (L,W), de comprimento L e largura W, deve ser carregado com caixas
iguais com faces inferiores de dimensões l e w. Admitimos que L, W, l e w são
números inteiros, e que l³ w e l£ min{L,W}. Por simplicidade, definimos (l1,w1)
= (l,w) e (l2,w2) = (w,l), assim, (li,wi), i=1,2, correspondem ao comprimento e
largura da face de uma caixa com orientação i. O problema consiste em encontrar
um arranjo de caixas em camadas horizontais (padrão de carregamento
bidimensional; veja figura_3), tal que a utilização da superfície do palete
seja a máxima possível.
SejamP e Q o mínimo e o máximo número de caixas por camada, respectivamente,
que podem ser colocadas sobre o palete (0 £ P £ Q). Adotamos um sistema de
coordenadas cartesianas com origem no canto inferior esquerdo do palete.
Sabemos que as caixas podem ser colocadas em várias posições ao longo do
comprimento L e largura W do palete. Sejam: X = {p |0 £ p £ L-w, inteiro} e Y =
{q | 0 £ q £ W-w, inteiro}, os conjuntos das coordenadas (p,q),
respectivamente, para se colocar o canto inferior esquerdo da face (l,w) de uma
caixa dentro do palete. Sem perda de generalidade (Beasley, 1985), podemos
restringir os conjuntos X e Y para:
Definimos a função a que é útil para descrever restrições de sobreposição de
caixas sobre o palete, e que pode ser computada com antecedência para cada
posição (p,q), cada posição (r,s), e cada orientação i, com pÎ X tal que p £ L-
li, qÎ Y tal que q £ W-wi, rÎ X, sÎ Y, ei=1,2 (Beasley, 1985) (Figura_2.1):
Finalmente, para todo pÎ X tal que p £ L-li, qÎ Y tal que q £ W-wi,e i=1,2,
definimos a variável de decisãoxipq:
O PCP do produtor pode então ser formulado pelo seguinte programa linear 0-1
(Beasley, 1985):
Note que a restrição (2) garante que cada par (r,s) seja ocupado por no máximo
uma caixa e, desta maneira, evita sobreposição no arranjo de caixas (figura_1).
A restrição (3) garante que o número de caixas arranjadas esteja dentro do
intervalo [P,Q] (em geral temos P = 0). O problema (1)-(4) envolve O(|X)
variáveis e restrições, o que o torna em geral difícil de ser resolvido
otimamente nos casos práticos.
3. Aplicação de Relaxação Lagrangiana
3.1 Relaxação Lagrangiana Sem Relaxação Surrogate
Introduzindo os multiplicadores de Lagrange grs (³ 0) para todo rÎ X e todo sÎ
Y da expressão (2), obtemos o seguinte programa Lagrangiano do limitante
superior (note que temos |X multiplicadores):
onde . Sejam {Xipq} representando os valores
das variáveis {xipq} na solução do programa Lagrangiano (5)-(7), com valor dado
por:
que corresponde a um limitante superior para o valor ótimo do problema original
(1)-(4), para quaisquer {grs} não negativos.
Note que, dados {grs}, o programa (5)-(7) pode ser facilmente resolvido. Seja n
o número de variáveis xipq com valores Vipq estritamente positivos:
Se n ³ Q, então escolha as Q variáveis com maiores valores Vipq, e
fixe-as em 1.
Se P £ n < Q, então escolha as n variáveis com maiores valores
Vipq, e fixe-as em 1.
Se n < P, então escolha as P variáveis com maiores valores Vipq, e
fixe-as em 1.
As demais variáveis são fixadas em 0. Note que o programa Lagrangiano (5)-(7)
possui a propriedade de integralidade, uma vez que, dados {grs}, sua solução
não se altera ao trocarmos a restrição de integralidade: xipqÎ {0,1}, por sua
relaxação linear: 0 £ xipq £ 1. Isto implica que o melhor limitante superior
produzido pelo programa Lagrangiano (5)-(7) para o problema (1)-(4) não é
melhor do que o limitante superior obtido pela relaxação de programação linear
do problema (1)-(4).
3.2 Relaxação Lagrangiana Com Relaxação Surrogate
Beasley (1985), ao tratar o problema de corte mais geral, sugeriu utilizar as
duas restrições surrogate (8) e (9) apresentadas abaixo, obtidas pela soma de
todos os comprimentos possíveis rÎX, e todas as larguras possíveis sÎY,da
restrição (2).
Substituindo no problema (1)-(4) a restrição (2) pelas restrições (8) e (9), e
introduzindo os multiplicadores de Lagrange gs(³ 0) para todo sÎY em (8), e hr
(³ 0) para todo
r
ÎX em (9), obtemos o seguinte programa Lagrangiano do limitante superior (com
relaxação surrogate). Note agora que temos apenas |X|+|Y| multiplicadores, ao
invés de |X multiplicadores, como no programa (5)-(7).
onde <formula/>. Sejam {Xipq} representando os valores
das variáveis {xipq} na solução do programa Lagrangiano (10)-(12), com valor
dado por:
que corresponde a um limitante superior para o valor ótimo do problema original
(1)-(4), para quaisquer {gs} e {hr} não negativos. Note, entretanto, que este
limitante não é melhor do que o limitante produzido pelo programa (5)-(7), uma
vez que deriva de um programa Lagrangiano construído a partir de restrições
surrogate. Por outro lado, é mais fácil de ser computado, como é visto na seção
4, dado que envolve um menor número de multiplicadores de Lagrange. Na seção 6
comparamos a qualidade dos dois limitantes e o esforço computacional para obtê-
los, a partir da solução de diversos exemplos.
Assim como no programa (5)-(7), dados {gs} e {hr}, o programa (10)-(12) também
pode ser facilmente resolvido por inspeção. O mesmo procedimento anteriormente
descrito para resolver o programa (5)-(7) também pode ser aqui aplicado.
4. Método de Otimização do Subgradiente
4.1 Relaxação Lagrangiana sem Relaxação Surrogate
Para resolver o programa dual Lagrangiano: <formula/>
{programa Lagrangiano (5)-(7)}, utilizamos o método de otimização do
subgradiente, que está descrito a seguir. Para maiores detalhes do método, o
leitor pode consultar, por exemplo, Camerini et al(1975), Crowder (1976) e
Beasley (1985, 1993).
Passo_1: Gere uma solução factível, por exemplo, a solução homogênea com todas
as caixas arranjadas sob a mesma orientação. Faça ZLBigual ao valor desta
solução homogênea. Seja ITMAX o máximo número de iterações e faça it = 0. Fixe
grs = 0 para todo sÎY, e todo rÎX, como valores iniciais para os
multiplicadores.
Passo_2: Resolva o programa Lagrangiano (5)-(7) com o conjunto de
multiplicadores atual, obtendo a solução {Xipq} e valor ZUB. Faça it = it+1.
Passo_3: Teste de factibilidade: se a solução Lagrangiana é factível para o
problema original (1)-(4), então atualize ZLB, o limitante inferior para o
problema, correspondendo a uma solução factível. Atualize o menor limitante
Zmin com a parte inteira de ZUB.
Passo_4: Teste de otimalidade: pare se Zmin = ZLB; caso contrário, vá para o
Passo 5.
Passo_5: Calcule os subgradientes:
Passo_6: Defina o tamanho do passot por: <formula/>,
onde 0 < f £ 2, e atualize os multiplicadores de Lagrange por:
Passo_7: Se it = ITMAX, pare; caso contrário, vá para o Passo 2.
Existem várias maneiras de se variar o parâmetrof ao longo das iterações, para
acelerar a convergência do método. As alternativas exploradas neste trabalho
estão discutidas na seção 6. Note que, se em alguma iteração obtivermos Zmin =
ZLB no passo 4, então o procedimento acima termina com a solução ótima do
problema original (1)-(4).
4.2 Relaxação Lagrangiana com Relaxação Surrogate
O método de otimização do subgradiente para resolver o programa dual
Lagrangiano(com relaxação surrogate): <formula/>
{programa Lagrangiano (10)-(12)}, é muito similar ao da seção 4.1, com pequenas
modificações nos passos 1, 5 e 6, conforme a seguir:
Passo_1: Gere uma solução factível, por exemplo, a solução homogênea com todas
as caixas arranjadas sob a mesma orientação. Faça ZLB igual ao valor desta
solução homogênea. Seja ITMAXo máximo número de iterações e faça it = 0. Fixe
gs = 0 para todo sÎY, ehr = 0 para todo rÎX, como valores iniciais para os
multiplicadores.
Passo_5: Calcule os subgradientes:
Passo_6: Defina o tamanho do passo t por: <formula/>,
onde 0 < f £ 2, e atualize os multiplicadores de Lagrange por:
5. Redução do Problema e Heurística Lagrangiana
Durante cada iteração do método de otimização do subgradiente, podemos aplicar
alguma heurística Lagrangiana para gerar soluções factíveis para o problema
original (1)-(4), a partir da solução obtida para o programa Lagrangiano do
passo 2 (modelo (5)-(7) ou (10)-(12)). Também podemos aplicar alguma técnica de
redução do problema para tentar fixar, sem perda de generalidade, alguma
variável em 0 ou 1, e, desta maneira, reduzir o tamanho do problema (1)-(4).
Convém salientar que, tanto a definição da heurística Lagrangiana como a
redução do problema, pode ser aplicada nos métodos de otimização do
subgradiente com e sem relaxação surrogate.
5.1 Redução do Problema
Em cada iteração, seja n o número de variáveis com valor 1 na solução do
programa Lagrangiano do passo 2.
Fixando_xipq_=_0:
O seguinte limitante superior pode ser obtido quando fixamos xipq em 1 (com
Xipq = 0):
Note em (13) que Vipq é o valor do coeficiente da variável xipq fora da solução
corrente do programa Lagrangiano, e {Virs} é o conjunto dos valores dos
coeficientes das n variáveis que estão fazendo parte da solução corrente (i.e.,
Xirs = 1).
Sen = Q, então, ao colocarmos a variável xipq na solução (i.e., ao fixarmos
xipq = 1), precisamos retirar da solução atual a variável xirs(com Xirs = 1)
com mínimo valor Virs, para não ultrapassarmos a quantidade máxima de caixas Q.
Se n ¹ Q, então dividimos este caso em dois sub-casos:
(i) Se P< n < Q, então, ao colocarmos a variável xipqna solução, não
precisamos retirar da solução atual nenhuma variável xirs(com valor
Xirs= 1) de valor Virspositivo, já que não ultrapassamos a quantidade
máxima de caixas Q (i.e., n+1 £ Q). Note que, neste caso, não podemos
ter variáveis xirs com Virs negativo, dado que n > P.
(ii) Se P = n < Q, então, ao colocarmos a variável xipqna solução,
não precisamos retirar da solução atual nenhuma variável xirs (com
valor Xirs= 1) de valor Virs positivo (pelo mesmo motivo anterior),
ou precisamos retirar a variável xirscom menor valor, caso esta tenha
Virs negativo. Note que, neste caso, podemos ter variáveis xirs com
Virs negativo, dado que n= P.
Se o valor do limitante superior em (13) for menor que o valor do limitante
inferior, isto é, se Z'UB <= ZLB, então podemos fixar xipq em 0, ou seja,
reduzir o problema original ao desconsiderar a possibilidade de colocar uma
caixa na posição (p,q) sob orientação i.
Fixando_xipq=_1:
O seguinte limitante superior pode ser obtido quando fixamos xipq em 0 (com
Xipq = 1):
O leitor pode verificar que o raciocínio aqui é análogo ao do caso anterior. Se
o valor do limitante superior em (14) for menor que o valor do limitante
inferior, isto é, se Z'UB <= ZLB, então podemos fixar xipq em 1, ou seja,
reduzir o problema original ao desconsiderar a possibilidade de não colocar uma
caixa na posição (p,q) sob orientação i.
5.2 Heurística Lagrangiana
A idéia básica da heurística Lagrangiana é, partindo da solução do programa
Lagrangiano da iteração corrente, convertê-la numa solução factível para o
problema original (1)-(4). Esta solução constitui um limitante inferior para a
solução ótima deste problema.
Passo_1: Coloque todas as variáveis fixadas em 1 pela redução do problema na
solução heurística, e retire seus valores correspondentes da lista dos {Vipq}.
Ordene os {Vipq} restantesde forma decrescente, e forme uma lista F com as
variáveisxipq correspondentes aos Vipq.
Passo_2: Pare se a lista F estiver vazia, caso contrário, coloque na solução
heurística a primeira variável da lista F,e retire-a dessa lista.
Passo_3: Teste a factibilidade da solução heurística em questão. Se for
factível, mantenha a variável correspondente na solução; caso contrário,
desconsidere-a e volte para o passo 2.
Ao terminarmos este procedimento, podemos estar com uma solução factível melhor
que a da iteração anterior. Neste caso, atualizamos esse limitante inferior
ZLB. A otimalidade desta solução é testada no decorrer do método de otimização
do subgradiente.
Para maiores detalhes da redução do problema e da heurística Lagrangiana, o
leitor pode consultar Farago (1999).
6. Resultados Computacionais
Dois programas computacionais foram desenvolvidos para resolver o PCP do
produtor, o primeiro combinando relaxação Lagrangiana e surrogate (seções 3.2 e
4.2), similarmente ao que foi explorado em Beasley (1985) para o problema mais
geral de corte bidimensional não-guilhotinado, aqui denominado programa LAGSUR,
e o segundo baseado apenas em relaxação Lagrangiana (seções 3.1 e 4.1), aqui
denominado programa LAG. Ambos os programas LAGSUR e LAG utilizaram as técnicas
de redução do problema (seção 5.1) e a heurística Lagrangiana (seção 5.2). Eles
foram implementados na linguagem Pascal (compilador Delphi 4), e executados em
um microcomputador Pentium II (300 Mhz, 128 Mbytes de RAM, Windows 95).
As tabelas_1 e 2 apresentam, respectivamente, os exemplos da literatura L1-L10,
que vem sendo utilizados por diversos autores na literatura (Morabito &
Morales, 1998), e os exemplos reais R1-R30, coletados no centro de distribuição
de uma transportadora do interior de São Paulo. A transportadora utilizava o
Palete Brasil (PBR), com dimensões (L,W) = (120,100) cm. As colunas 2
(|X|+|Y|)' e 2(|X)' das tabelas_1 e 2 apresentam o número (aproximado) de
variáveis envolvidas nos modelos (10)-(12) e (5)-(7), respectivamente.
O procedimento de otimização do subgradiente foi iniciado sempre com o
parâmetro f = 2(veja passo 6 na seção 4), conforme Beasley (1985, 1993). Quatro
variações foram exploradas para reduzir o valor de f ao longo das iterações:
(i) dividirf a cada 30 iterações (Beasley, 1993), (ii) dividirf a cada 60
iterações, (iii) apenas no programa LAGSUR, fixarf = 2 para 2(|X|+|Y|)
iterações e, em seguida, dividir ambos fe o número de iterações a cada 2
(|X|+|Y|) iterações, até que o número de iterações atingisse o valor 5. A
partir daí, dividir fa cada 5 iterações (Beasley, 1985), (iv) apenas no
programa LAG, fixar f= 2 para 2(|X) iterações e, em seguida, dividir ambos
f e o número de iterações a cada 2(|X) iterações, até que o número de
iterações atingisse o valor 5. A partir daí, dividir f a cada 5 iterações. Em
todas as variações (i)-(iv), reduzimos f até os valores 0,005 (Beasley, 1985,
1993) e 0,0005 serem atingidos (note que, neste último, permitimos um maior
número máximo de iterações,ITMAX).
Ambos os programas LAGSUR e LAG obtiveram os melhores resultados utilizando a
variação (ii), isto é, dividindo f a cada 60 iterações desde 2 até 0,0005
(i.e., com ITMAX = 720 iterações), tanto para os exemplos da literatura como
para os exemplos reais. Estes resultados estão apresentados nas tabelas_3 e 4.
Por motivo de limitação de espaço, os demais resultados utilizando as variações
(i), (iii) e (iv) não foram aqui incluídos, mas podem ser encontrados em Farago
(1999). A tabela_3 também apresenta as soluções obtidas pela heurística de
Morabito & Morales (1998), e a tabela_4, as soluções utilizadas na prática
pela transportadora.
Note nas tabelas_3 e 4 que ambos os programas LAGSUR e LAG produziram
excelentes limitantes superiores para o PCP do produtor. Em todos os exemplos
da literatura L1-L10, obtivemos Zmin = Z* com ambos os programas LAGSUR e LAG.
Esta condição também foi satisfeita em quase todos os exemplos reais R1-R30
(exceto nos exemplos R16 e R22) com o programa LAG. Além disso, os programas
LAGSUR e LAG produziram soluções em geral muito boas para os exemplos reais,
mas tiveram dificuldades para resolver os (difíceis) exemplos da literatura
(veja p.e. o exemplo L4). O programa LAG superou os carregamentos reais da
transportadora em mais de 50% dos exemplos (em média, foram arranjados
0,87 caixas a mais por camada), por outro lado, não superou o método de
Morabito & Morales (1998) em nenhum dos exemplos da literatura.
O desempenho médio do programa LAG foi superior ao do programa LAGSUR, por
exemplo, o programa LAG encontrou solução ótima em 90% dos exemplos reais,
contra apenas 80% do programa LAGSUR, utilizando tempos computacionais próximos
(i.e., em média 8,45 seg contra 10,68 seg). Apenas para ilustrar, a figura_2
mostra a convergência dos limitantes superiores (ZUB e Zmin) e inferiores (ZLB)
para o exemplo R21 da tabela_4, utilizando o programa LAG, e a figura_3
apresenta o correspondente padrão ótimo de carregamento obtido. Outros
resultados podem ser encontrados em Farago (1999).
Também fizemos alguns testes quanto a aplicação ou não do método de redução do
problema proposto na seção 5.1. Por simplicidade, utilizamos somente o programa
LAG com f sendo dividido a cada 60 iterações, desde 2 até 0,0005 (o que resulta
em no máximo 720 iterações). As tabelas_5 e 6 apresentam as soluções obtidas
sem a aplicação do método de redução do problema, utilizando os exemplos L1-L10
e R1-R30, respectivamente.
Comparando as tabelas_5 e 6 com as tabelas_3 e 4, respectivamente, notamos que
os tempos computacionais para o programa LAG sem redução do problema foram
maiores ou iguais aos tempos computacionais do programa LAG com redução (p.e.,
em média de 79,18 seg para 72,90 seg nos exemplos da literatura), para as
mesmas soluções encontradas. Isso nos faz concluir que é interessante utilizar
o método de redução do problema em cada iteração do subgradiente, apesar da
economia no esforço computacional não ser substancial.
Um outro aspecto a ser investigado no método de redução do problema é saber
qual dos casos de fixação (fixar xipq = 0 ou xipq = 1) é mais efetivo. Para as
mesmas soluções, os tempos computacionais do programa LAG sem redução do
problema foram muito próximos dos tempos computacionais do programa LAG somente
para o caso de fixar xipq = 0 (sem o caso de fixar xipq = 1) (i.e., em média
79.18 seg para 80.07 seg nos exemplos da literatura, e 8,44 seg para 8,44 seg
nos exemplos reais). Podemos concluir que o método de redução do problema para
o PCP do produtor fixa um maior número de variáveis em 0 do que em 1.
7. Conclusões e Perspectivas
7.1 Conclusões
Os modelos estudados neste trabalho, baseados em relaxação Lagrangiana com e
sem relaxação surrogate (programas LAGSUR e LAG, respectivamente), produziram
excelentes limitantes superiores para o PCP do produtor. Como visto na seção
anterior, todos os limitantes superiores encontrados pelos programas LAGSUR e
LAG para os (difíceis) exemplos da literatura têm o mesmo valor das soluções
ótimas, ou seja, satisfazem Zmin = Z*. Isso também foi verificado em quase
todos os exemplos reais com o programa LAG. A qualidade destes limitantes para
o PCP do produtor foi um resultado de certa forma surpreendente e bem vindo;
convém salientar que isso não ocorreu para o problema mais geral de corte
bidimensional não guilhotinado analisado em Beasley (1985). Já os limitantes
inferiores (soluções factíveis) produzidos pelos programas LAGSUR e LAG para o
PCP do produtor, apesar de muito bons para os exemplos reais, não foram tão
bons para os exemplos da literatura. Pretendemos ainda realizar pesquisas
adicionais para tentar melhorar a qualidade destes limitantes inferiores,
eventualmente combinando LAGSUR/LAG com outros métodos. Nossa recomendação com
base nos resultados da seção anterior é dividir fa cada 60 iterações e deixá-lo
variar desde 2 até 0,0005.
Também recomendamos utilizar o método de redução do problema nos programas
LAGSUR e LAG, dado que o esforço computacional de tentar fixar variáveis ao
longo das iterações é compensatório, conforme mostram os resultados da seção
anterior e em Farago (1999). A heurística Lagrangiana, utilizada para melhorar
o limitante inferior ZLB no método de otimização do subgradiente, funcionou
melhor no programa LAG. O programa LAG melhorou as soluções factíveis e
encontrou soluções ótimas com mais freqüência do que o programa LAGSUR,
principalmente nos exemplos reais. Por exemplo, utilizando os mesmos parâmetros
e tempos computacionais muito próximos, o programa LAG encontrou 90% das
soluções ótimas dos exemplos reais, enquanto que o programa LAGSUR encontrou
80% delas. Além disso, o programa LAG superou os carregamentos reais da
transportadora em mais de 50% dos exemplos.
7.2 Perspectivas
Como perspectivas para pesquisa futura, podemos utilizar, conforme Crowder
(1976) e Camerini, Fratta & Maffioli (1975), algumas técnicas para melhorar
o desempenho do método da otimização do subgradiente. Basicamente, estas
técnicas selecionam a direção do passo do gradiente, fazendo somas ponderadas
dos gradientes anteriores, mas valorizando mais os gradientes mais recentes.
Com isso, além de podermos obter melhores soluções, poderá haver uma diminuição
nas variações dos multiplicadores de Lagrange, e o limitante superior poderá
convergir mais rapidamente.
Acreditamos que ainda seja necessário realizar pesquisa adicional na calibragem
dos parâmetros usados no procedimento de otimização do subgradiente,
principalmente com respeito a variação de fao longo das iterações. Tivemos um
caso (exemplo R16) em que o valor do limitante superior Zmin (passo 3)
encontrado pela relaxação Lagrangiana não atingiu o valor do limitante superior
encontrado pela relaxação de programação linear do problema (1)-(4), quando,
teoricamente, deveria ter atingido (dado que o programa Lagrangiano (5)-(7) tem
a propriedade de integralidade, conforme discussão na seção 3). Poderíamos
então utilizar a solução da relaxação linear para calibrar os parâmetros do
programa LAG. Uma das dificuldades deste estudo é o tamanho dos programas
lineares envolvidos, tipicamente com ordem de milhares de restrições e
variáveis. Por exemplo, o problema (1)-(4) para o exemplo L4 tem cerca de 67 x
27 = 1809 restrições de sobreposição. Algumas linguagens de modelagem poderiam
ser utilizadas para isso, como por exemplo o GAMS e o LINGO, com os solvers
CPLEX, MINOS, OSL, LINDO, etc.
Outra perspectiva para pesquisa futura é incluir os algoritmos LAGSUR e LAG
aqui estudados num procedimento exato do tipo branch-and-bound, similarmente ao
que foi feito em Beasley (1985) para o problema mais geral de corte
bidimensional não guilhotinado. Além dos excelentes limitantes superiores
gerados por estes algoritmos, também poderíamos reduzir o espaço de busca do
método branch-and-bound por meio dos limitantes inferiores gerados pela
heurística Lagrangiana. Poderíamos também combinar os algoritmos LAGSUR e LAG
com a heurística de Morabito & Morales (1998), onde utilizaríamos esta
última heurística para encontrar o limitante inferior (ZLB) inicial dos
algoritmos. Ou, inversamente, poderíamos utilizar os limitantes Zmin e ZLB dos
algoritmos, como limitantes iniciais para a heurística de Morabito &
Morales (1998). O resultado poderia ser uma poderosa heurística híbrida para o
PCP do produtor.