HEURÍSTICAS PARA O PROBLEMA DE DIMENSIONAMENTO DE
LOTES E SEQUENCIAMENTO DE MÁQUINAS
Lorena Silva Belisário Lucas Sirimarco Moreira Guedes Graduação em Engenharia de Produção Universidade Federal de Minas Gerais Av. Presidente Antônio Carlos 6627, Belo Horizonte, MG {lorenabelisario,lucasguedes1510}@gmail.com Geraldo Robson Mateus Departamento de Ciência da Computação Universidade Federal de Minas Gerais Av. Presidente Antônio Carlos 6627, Belo Horizonte, MG mateus@dcc.ufmg.br Mauricio Cardoso de Souza Departamento de Engenharia de Produção Universidade Federal de Minas Gerais Av. Presidente Antônio Carlos 6627, Belo Horizonte, MG mauricio.souza@pq.cnpq.br RESUMO O problema de dimensionamento de lotes e sequenciamento de máquinas considerado é de um único nível, com máquinas paralelas não idênticas e tempos de setup dependentes da sequência. Propomos diversas estratégias de heurísticas para o problema, baseadas em módulos de sequenciamento e dimensionamento e em relaxação linear. Apresentamos resultados numéricos comparativos com soluções obtidas com um modelo de programação inteira previamente proposto.PALAVRAS CHAVE. Dimensionamento de lotes. Heurísticas. Sequenciamento de máquina. Área de classificação principal OC – Otimização Combinatória.
ABSTRACT
The lotsizing and scheduling problem considered is a singlelevel, urelated paralel machines with sequence dependent setup times. We propose heuristic strategies for the problem based on modules dealing with the scheduling and with the lotsizing and based on linear relaxation. We report numerical results comparing the heuristics with solution obtained with an integer programming model previously proposed.
1. Introdução
O problema de dimensionamento de lotes capacitados consiste em definir, para um horizonte de tempo discretizado em períodos, as quantidades a serem produzidas em cada período de forma a atender a demanda minimizando os custos associados. Os custos considerados podem ser relacionados à preparação de máquinas – setup, à manutenção de estoques de um período para o outro, ou à postergação do atendimento da demanda – backorder, entre outros. Uma vez que as decisões de lotes foram tomadas, os lotes constituem jobs a serem sequenciados dentro de cada período. No caso de tempos de preparação de máquinas dependentes da sequência, a ordem de processamento dos jobs pode acarretar problemas de viabilidade em termos de capacidade, tornando irrealizável o plano de produção obtido como solução no dimensionamento de lotes. (Modelos do tipo small buckets contornam este problema limitando a no máximo um setup realizado por período, ao custo de um aumento significativo no número de períodos dentro do horizonte de planejamento, ver, por exemplo, Drexl e Kimms (1997) ou Pochet (2001).)
Consideramos neste trabalho o problema integrado de dimensionamento de lotes e sequenciamento, PIDS, que consiste em definir lotes de produção de forma que haja um sequenciamento destes lotes que seja possível de ser realizado dentro da capacidade de cada período. Nos concentramos em sistemas de manufatura em único nível, em que o produto é processado com uma única operação, compostos por máquinas paralelas não idênticas. Consideramos que diversos produtos devem ser processados e que cada produto pode ser alocado a qualquer uma das máquinas. No entanto, devido à heterogeneidade das máquinas, os tempos de processamento variam de uma para outra, e, além disso, os tempos de setup entre os produtos nas máquinas são dependentes da sequência e também variam de uma máquina para outra. Na prática, estes sistemas são encontrados com frequência, por exemplo, diversos tipos de indústrias de fundição, como alumínio, plástico, etc.
Diversos autores abordaram problemas integrados de dimensionamento de lotes e sequenciamento, muitos deles subdividindo os períodos de forma a limitar um setup por período. A seguir, referenciamos alguns autores: Lasserre (1992), DauzèrePéres e Lasserre (1994), Fleischmann (1994), Haase (1996), Fleischmann e Meyr (1997), Belveaux e Wolsey (2001), Zhu e Wilhelm (2006), Toledo et al. (2007), Toso, Morabito e Clark (2008), Mateus et al. (2009). Neste trabalho exploramos e comparamos em experimentos computacionais preliminares duas estratégias iterativas para a obtenção de soluções viáveis para o PIDS: (i) procedimento sequenciamentodimensionamento, e (ii) estratégia de relaxação linear de algumas variáveis. Na primeira, realizamos o sequenciamento para um período a frente e, com as informações do sequenciamento, dimensionamos os lotes de produção. Na segunda, mantemos a característica binária das variáveis de decisão para um ou mais períodos a frente e usamos a relaxação linear das variáveis para períodos posteriores. 2. Heurísticas SequenciamentoDimensionamento Propomos duas heurísticas que empregam modelos que tratam de maneira independente os problemas de dimensionamento de lotes e de sequenciamento com tempos de setup dependentes da sequência. Consideramos o horizonte dividido em t = 1, ..., T períodos. Ambas as heurísticas, em cada iteração k, executam dois módulos. O primeiro faz o sequenciamento para o período k, sendo os jobs relativos às demandas do período k ainda não cobertas por estoque ao final do período k1. O segundo módulo dimensiona os lotes para os períodos t = k, ..., T decompondo o problema por máquina com os produtos atribuídos a cada máquina segundo a alocação no sequenciamento.
na estratégia “alocaçãofolga”, além das informações de tempos de processamento e de setup, os lotes dos jobs sequenciados são fixados. Portanto, o módulo de dimensionamento de lotes tem apenas a folga, se essa existir, de capacidade no período k após serem processados os lotes dos jobs sequenciados.
Antes de detalharmos as heurísticas, apresentamos os modelos que tratam de maneira independente os problemas de dimensionamento de lotes e de sequenciamento e que foram empregados em cada um dos respectivos módulos nas heurísticas.
2.1. Modelos para os problemas de sequenciamento e dimensionamento de lotes
O modelo empregado no módulo de sequenciamento, doravante denominado UPMS, determina a alocação e a ordem que um conjunto de jobs deve seguir em máquinas paralelas não idênticas para minimizar a soma ponderada das datas de término dos jobs. São dados j = 1, ..., J jobs para serem processados e a atividade de processamento de cada job consome ejm de tempo se processado na máquina m, m = 1, ..., M. O tempo de setup
q
mji , j, i = 1, ..., J e m = 1, ..., M, expressa o tempo despendido na preparação da máquina m para processar o job i dado que o job j foi processado imediatamente antes. O UPMS foi proposto por Rocha et al. (2008) baseado no trabalho de Manne (1960). A variável binária fjm, j = 1, ..., J e m = 1, ..., M, expressa a decisão de atribuição de jobs às maquinas, i.e., fjm assume valor 1 se o job j é processado na máquina m, e valor 0 senão. A variável bináriar
mji , j, i = 1, ..., J e m = 1, ..., M, expressa a decisão de sequenciamento dos jobs j e i na máquina m, i. e.,r
mji assume valor 1 se ambos os jobs j e i são processados na máquina m e j é processadoprimeiro, e valor 0 senão. O UPMS define a data inicial lj para cada job j, e o objetivo é
minimizar a soma ponderada dos tempos finais gj de cada job j, sendo as prioridades expressas por oj. O modelo UPMS, que utiliza uma constante arbitrariamente grande K, é escrito como se segue.
(
)
(
)
(
)
(
)
(
)
(
)
{ }
0
,
1
,
,
0
,
,
(
6
)
,
)
5
(
,
,
,
1
1
)
4
(
,
,
,
1
1
1
)
3
(
,
1
)
2
(
1
.
.
)
1
(
min
1 1m
i
j
g
l
r
f
m
i
j
i
j
q
e
l
l
K
r
K
f
K
f
m
i
j
i
j
q
e
l
l
K
r
K
f
K
f
m
j
e
K
f
l
g
j
f
t
s
g
o
j j m ji jm m ij im i j m ji im jm m ji jm j i m ji im jm jm jm j j M m jm J j j j∀
≥
∈
∀
<
+
≥
−
+
+
−
+
−
∀
<
+
≥
−
+
−
+
−
+
−
∀
≥
−
+
−
∀
=
∑
∑
= =O modelo empregado no módulo de dimensionamento de lotes, doravante denominado CLSS, foi proposto por Trigeiro et al. (1989) e assume tempos de setup independentes da sequência. Visto que o módulo de dimensionamento de lotes é executado após decididas a alocação de produtos às máquinas e a ordem em que os mesmos devem ser processados, o CLSS pode ser empregado uma vez que os tempos, tanto de setup quanto de processamento, neste moment, já são conhecidos.
São fornecidas as demandas dpt para cada produto p, p = 1, ..., P, no período t, t = 1, ..., T, do
horizonte de planejamento. A operação de manufatura de uma unidade do produto p consome uma quantidade ap da capacidade wt disponível no período t, e o setup para preparar a produção
respeito ao produto p e ao período t, sobre as quantidades xpt e spt, respectivamente a serem
produzidas e mantidas em estoque, e se uma quantidade zpt ficará para backorder. A variável
binária ypt está associada a decisão de setup para a produção de um produto p no período t, ou
seja, ypt deve ser 1 se xpt > 0 e deve ser 0, caso contrário. Os custos unitários em relação ao
produto p e ao período t são hpt de manutenção de estoque, vpt de backordering, e upt de setup. O
modelo CLSS é então escrito como segue.
{ }
0
,
1
,
,
,
,
(
11
)
)
10
(
,
0
)
9
(
)
8
(
,
.
.
)
7
(
min
1 ) 1 ( ) 1 ( 1 1t
p
z
s
x
y
t
p
y
w
x
t
w
y
b
x
a
t
p
d
z
z
x
s
s
t
s
z
v
y
u
s
h
pt pt pt pt pt t pt P p t pt p pt p pt t p pt pt pt t p T t P p pt pt pt pt pt pt∀
Ν
∈
∈
∀
≤
−
∀
≤
+
∀
=
−
+
+
−
+
+
∑
∑∑
= − − = = 2.2. Estratégia Alocação A heurística executa T iterações. Cada iteração k iniciase com a obtenção de uma solução ótima para o modelo UPMS considerando apenas o período k do horizonte de planejamento – módulo de sequenciamento. Como saída, a heurística recupera a alocação dos produtos às máquinas e a sequência de produção, o que possibilita fixar os tempos de setup e de processamento. Essas informações se tornam parâmetros do problema de dimensionamento de lotes capacitado – módulo de dimensionamento. O problema é decomposto por máquina, e, para cada máquina m, m = 1, ..., M, é obtida uma solução ótima para o modelo CLSS considerando o horizonte de planejamento do período k até T. Terminado esse módulo, os valores atribuídos às variáveis do CLSS relativas ao período k são armazenadas. A solução obtida pela heurística é a junção dos resultados obtidos em cada iteração, ou seja, para cada um dos períodos.A atualização da demanda, que ocorre antes do UPMS, possibilita a passagem de informação, através das variáveis de estoque e backorder, ao longo dos períodos. O procedimento é melhor explicado pelo pseudocódigo abaixo.
Para k = 1 até T faça Para p = 1 até P faça
Seja dpk = max{0, dpk – sp(k1) + zp(k1)}} a demanda líquida pelo produto p no período k
Para k = 1 até T faça Para p = 1 até P faça
Seja dpk = max{0, dpk – sp(k1) + zp(k1)}} a demanda líquida pelo produto p no período k
Fimpara Rode UPMS para produtos com demanda dpk > 0 Faça a divisão dos produtos por máquinas de acordo com UPMS Aloque produtos com dpk = 0 seguindo critério Para m = 1 até M faça Se há folga na máquina m faça Transforme a demanda líquida em quantidade produzida Rode CLSS_folga para o horizonte de k até T sendo a capacidade no período k igual à folga Senão Se a data final de processamento da máquina ultrapassa a capacidade faça Transforme a parcela produzida além da capacidade em backorder Senão Transforme a demanda líquida em quantidade produzida Fimpara Fimpara 3. Heurísticas Baseadas em Relaxação Linear
Mateus et al. (2009) propuseram um modelo para abordar o PIDS de forma integrada, denominado ILSS. As restrições de sequenciamento originais do UPMS são adicionadas ao CLSS para modelar a utilização de capacidade e os tempos de setup em cada período. Cada par, produto p período t, gera um job a ser iniciado não antes de
∑
t=1 t−1
w
t e terminado até∑
t=1tw
t , onde wt é a capacidade do período t medida em unidades de tempo. Portanto, omodelo ILSS define conjuntamente os tamanhos dos lotes de produção e a ordem que os mesmos são processados nas máquinas. O modelo é escrito a seguir, onde
β
t=
∑
t=1tw
t .min
∑
t= 1 T∑
p= 1 Ph
pts
pt+v
ptz
pt
∑
u
ptmf
mpt12
s . t .
s
p t−1 −
s
pt+x
pt+z
pt−
z
p t−1 =d
pt∀
p, t
13
x
pt−
w
t∑
m=1 Mf
mpt≤0
∀
p, t
14
∑
m=1 Mf
mpt≤1
∀
p, t
15
l
pt
1−
∑
m=1 Mf
mpt
K ≥β
t−1∀
p, t
16
l
pt+e
pmx
pt−
1− f
mpt
K ≤β
t∀
p, t ,m
17
1− f
mpt
K+
1− f
itm
K+
1−r
mpt,it
K+l
it−
l
pt−
e
pmx
pt≥
q
mpip<i, ∀ p,i,t,m 18
1− f
mpt
K+
1− f
it m
K+r
pt,it mK+l
pt−
l
it−
e
imx
it≥
q
ipmp<i, ∀ p,i,t,m 19
f
mpt, r
pt,itm∈
{
0,1
}
, x
pt, s
pt, z
pt∈
Ν l
,
pt≥0
∀
p,i,t,m
20
inclusive para pequenas instâncias. Desta forma, se torna interessante adotar estratégias baseadas em relaxação linear. Da mesma forma que na seção anterior, a heurística baseada em relaxação linear iterage de k =1 até T. A versão ILSS1 desta estratégia mantém, numa iteração k, o domínio das variáveis como binárias e inteiras no período k e aplica relaxação linear nas variáveis referentes aos períodos posteriores (de k+1 até T). Somente a resposta relativa ao período k é armazenada, conforme o algoritmo abaixo. Para k = 1 até T faça Rode o ILSS cobrindo os períodos t = k, ..., T relaxando as variáveis a partir de k+1 Armazene os valores das variáveis de produção, estoque e backorder apenas para o período k Atualize a demanda dpt = dpt – sp(t1) + zp(t1) para p = 1, ..., P e t = k+1,...,T Fimpara Na versão ILSS2, as variáveis são tratadas na sua forma original em dois períodos (k e k+1) e relaxadas para os demais. Armazenase apenas a resposta referente ao período k, e em T1 já se obtém a solução para os dois últimos períodos. 4. Resultados Numéricos Apresentamos resultados de experimentos computacionais preliminares com as heurísticas propostas. Foram testados 6 algoritmos: heurística de sequenciamentodimensionamento estratégia “alocação”, c.f., Seção 2.2., versões HD1 e HD2; estratégia “alocaçãofolga”, c.f., Seção 2.3., versões HF1 e HF2; e heurística baseada em relaxação linear versões ILSS1 e ILSS2. Os experimentos foram rodados sobre um total de 14 instâncias divididas em dois cenários. No primeiro, foram geradas instâncias com 4 produtos e 2 máquinas; já no segundo, com 10 produtos e 4 máquinas. Em ambos os cenários, o horizonte de planejamento cobre 5 períodos. Em todas as instâncias, a capacidade de cada máquina por período é de 1680s, sendo que o primeiro produto de cada máquina sempre começa em t = 0, uma vez que o setup inicial é desconsiderado. O custo de estoque tem distribuição uniforme U(1,5), o de backorder U(20,50) e o de setup U(100,200). Os tempos de processamento e de setup seguem, respectivamente, U(1,50) e U(10,100). As instâncias foram divididas em sete classes, de acordo com a variação da demanda apresentada na Tabela 1.
Parâmetro Classe Intervalo
A relaxação linear do modelo integrado apresentou valores variando entre 0.17 e 3.57% do limite superior, e tempos de processamento desprezíveis. Por demonstrar que o modelo parte de uma solução inicial fraca, seu resultado não consta na Tabela 2, uma vez que não tem poder de comparação. Todos os experimentos mostrados na Tabela 2 foram conduzidos em um computador com processador Core 2 Quad, 2.5GHz, com 4.0 GB de memória RAM, e sistema operacional Linux Ubuntu 8.04. A linguagem C++ e o sistema de otimização CPLEX 10.2 foram utilizados para implementação dos modelos. No modelo UPMS, a prioridade foi estabelecida como sendo igual a um para todos os produtos, uma vez que não se fez a distinção entre produção para atender demanda, backordering e estoque. Foi estabelecido um limite de tempo de 1 hora de processamento total para o modelo integrado ILSS e para as heurísticas baseadas no mesmo. Para estas, estabeleceuse um limite para cada iteração, sendo de 12 minutos no ILSS1 e de 15 minutos no ILSS2. Ao atingir esse limite, definese a resposta como sendo a referente ao limite superior, e seguese para a próxima iteração. Isto ocorreu para as instâncias 2.5 e 2.6 nos dois procedimentos – ILSS1 e ILSS2 – e para a 2.4 no segundo. No caso da 2.5, o ILSS1 finalizou a primeira e a última iterações dentro do limite de tempo, e interrompeu as demais com gap variando de 4 a 16%; já o ILSS2 interrompeu todas, com 26 a 47%. Na instância 2.6, os dois procedimentos interromperam todas as iterações, porém o gap variou de 3 a 23% no primeiro e de 46 a 75% no segundo. E, na 2.4, só foi necessária a interrupção da segunda iteração.
Denotase como CLSS puro a solução obtida pelo modelo de dimensionamento de lote capacitado cobrindo todo o horizonte de planejamento, sem nenhuma informação provinda do modelo de sequenciamento. Portanto, ao executálo, definese o parâmetro de utilização de capacidade ap como a média do tempo de processamento epm de uma unidade do produto p na
máquina m para as M máquinas. Analogamente, o parâmetro de tempo de setup bp é definido
como
b
p
=
∑
m=1M∑
Pp=1∣p≠iq
mpiM P−1
. O objetivo é avaliar o impacto devido às restrições desequenciamento na solução de cada instância.
Drexl, A., e Kimms, A., (1997), Lot sizing and scheduling – Survey and extensions, European Journal of Operational Research, 99, 221235.
Fleischmann, B., (1994), The discrete lotsizing and scheduling problem, European Journal of Operational Research, 75, 395404.
Fleischmann, B., e Meyr, H., (1997), The general lotsizing and scheduling problem, OR Spektrum 19, 1121. Haase, K., (1996), Capacitated lotsizing with sequence dependent setup costs, OR Spektrum, 18, 5159. Lasserre, J.B., (1992), An integrated model for jobshop planning and scheduling, Management Science, 38, 12011211. Manne, A.S., (1960), On the jobshop scheduling problem, Operations Research, 8, 219223. Mateus, G.R., Ravetti, M.G., de Souza, M.C., e Valeriano, T.M., (2009), Capacitated lot sizing and sequence dependent setup scheduling: An iterative approach for integration, versão revisada, submetida para publicação.
Pochet, Y., (2001), Mathematical programming models and formulations for deterministic production planning problems, In: Computational Combinatorial Optimization, Jünger, M. e Naddef, D. (Editores), Springer, 57111.
Modelo Integrado ILSS1 ILSS2 HD1 HD2 HF1 HF2
Instância CLSS puro UB LB GAP Tempo GAP Tempo GAP Tempo GAP Tempo GAP Tempo GAP Tempo