METAHEURÍSTICAS APLICADAS AO PROBLEMA GERAL DE DIMENSIONAMENTO DE LOTES E PROGRAMAÇÃO DA PRODUÇÃO Claudio Fabiano Motta Toledo Departamento de Ciência da Computação Universidade Federal de Lavras Campus Universitário, C.P. 3037, CEP 37200-000, Lavras, MG claudio@dcc.ufla.br José Eurípedes Ferreira de Jesus Filho Departamento de Ciência da Computação Universidade Federal de Lavras Campus Universitário, C.P. 3037, CEP 37200-000, Lavras, MG jeferreira@comp.ufla.br Fernando Simeone Departamento de Ciência da Computação Universidade Federal de Lavras Campus Universitário, C.P. 3037, CEP 37200-000, Lavras, MG fsimeone@comp.ufla.br Gustavo Pereira Rosa Departamento de Ciência da Computação Universidade Federal de Lavras Campus Universitário, C.P. 3037, CEP 37200-000, Lavras, MG gustavo.darkness@gmail.com RESUMO O presente artigo propõe metaheuristicas para solucionar o Problema Geral de Dimensionamento de Lotes e Programação da Produção (PGDLPP) com e sem máquinas paralelas, e com penalização para demandas não atendidas. Um modelo matemático é apresentado para este caso do PGDLPP e conjuntos de instâncias são gerados, baseados em parâmetros utilizados na literatura. Essas instâncias são solucionadas por uma ferramenta de modelagem matemática cujas soluções servem para avaliação do desempenho das metaheurísticas propostas.as metaheurísticas também são comparadas a um método existente na literatura. Os resultados revelam o melhor desempenho obtido pela metaheurísticas propostas. PALAVRAS CHAVE. Programação da produção. Dimensionamento de lotes. Metaheuristica. Área de classificação principal: MH Metaheurísticas ABSTRACT The present paper proposes metaheuristics to solve the General Lot sizing and Scheduling Problem (GLSP) with and without parallel machines, and with penalties for demand shortcoming. A mathematical model is presented for this GLSP case and set of instances are generated using parameters found in the literature. These instances are solved using a mathematical modeling computational package whose solutions will be benchmarks to evaluate the metaheuristics performance. These metaheuristics are also compared with a method available in the literature. The results report the better performance found by the proposed metaheuristics. KEYWORDS. Scheduling. Lot sizing. Metaheuristic. Main area: Metaheuristics. XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 3277
1. Introdução O presente trabalho propõe metaheurísticas para solucionar o Problema Geral de Dimensionamento de Lotes e Programação da Produção (PGDLPP) com e sem máquinas paralelas. O PGDLPP estudado também considera penalização para demandas não atendidas. Um modelo matemático é estabelecido para essa variante do PGDLPP, onde a penalização para demandas não atendidas é considerada na função objetivo e nas restrições do modelo. Inicialmente, as metaheurísticas são avaliadas em instâncias do PGDLPP com uma única máquina. Essas instâncias foram criadas utilizando os mesmos parâmetros estabelecidos em Haase (1996). Os métodos também solucionam instâncias do PGDLPP com máquinas paralelas. Todas as instâncias são solucionadas primeiro utilizando uma ferramenta de modelagem matemática. As soluções obtidas servem para avaliar o desempenho das metaheurísticas. No PGDLPP com uma única máquina, as metaheurísticas também foram comparadas ao método Threshold Accepting proposto por Fleischmann e Meyr (1997). O problema de dimensionamento de lote e programação da produção é um tópico de amplo interesse que tem atraído muitos pesquisadores. Citamos Drexl e Kimms (1997) e as referências nele apresentadas para uma visão geral dessa área. Estudos considerando esse problema com máquinas paralelas são descritos em Kang et al. (1999) e Meyr (2002). O dimensionamento de lote e a programação da produção com restrição de capacidade é um problema de otimização NP Difícil (Bitran e Yanasse, 1982). O problema de dimensionamento de lotes e programação da produção multi-item também é um problema NP-Difícil (Chen e Thizy, 1990). A complexidade deste tipo de problema leva ao desenvolvimento de métodos heurísticos. Jans e Degraeve (2007) apresentam uma revisão da literatura focada no uso de metaheurísticas em problemas de dimensionamento de lote e programação da produção. As metaheurísticas Busca Tabu, Simulated Annealing e Algoritmo Genético são os métodos desenvolvidos neste trabalho para solucionar o PGDLPP proposto. Busca Tabu utiliza uma memória de curto prazo dos movimentos executados, durante o processo de busca no espaço de soluções, visando melhorar seu desempenho (Glover, 1997). Toledo et al (2008) apresentam uma aplicação de busca tabu no problema sincronizado de programação e dimensionamento de lotes na produção de bebidas. Simulated Annealing (SA) simula um processo de resfriamento dos corpos, onde soluções de qualidade inferior podem ser aceitas para se escapar de ótimos locais (Kirkpatrick et al, 1983). Uma extensão do PGDLPP que inclui tempos de preparação dependentes da seqüência e máquinas paralelas é apresentada por Meyr (2002), onde Simulated Annealing (SA) é utilizado na determinação de variáveis binárias para que um método exato possa solucionar um modelo matemático relaxado do problema. Algoritmos Genéticos (AG) são métodos de computação evolutiva que simulam processos biológicos (Holland, 1975). Um algoritmo genético com estrutura hierárquica de indivíduos foi utilizado por França et al (2001) para solucionar o total tardiness single machine scheduling problem. A próxima seção descreve o modelo matemático para o PGLDPP estudado neste trabalho. A Seção 3 apresenta as metaheurísticas propostas. Os resultados computacionais obtidos são descritos na Seção 4. As conclusões do trabalho são apresentadas na Seção 5. 2. Modelo matemático para o PGDLPP. Um modelo matemático será proposto para o PGDLPP considerando máquinas paralelas e penalização das demandas não atendidas. A formulação apresentada segue a modelagem proposta por Meyr (2002) para o PGDLPP com máquinas paralelas. A principal diferença está na inserção de variáveis que acumulam as demandas não atendidas para cada produto. Essas variáveis são incluídas na equação de balanço de estoque no primeiro período de produção e também são penalizadas na função objetivo do modelo. O problema é modelado dividindo o horizonte de planejamento em T macro-períodos. Por sua vez, cada macro-período t possui um número fixo de micro-períodos S. Um aspecto interessante neste tipo de modelagem é que o tamanho de cada micro-período s varia de forma proporcional ao tamanho do lote do produto a ele atribuído. Assim, as variáveis de dimensionamento dos lotes e de atribuição de produtos às linhas e períodos estão indexadas por produtos e micro-períodos. O modelo assume que um XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 3278
único produto é atribuído e produzido em cada micro-período. A Figura 1 apresenta um exemplo dessa situação, supondo três produtos e três micro-períodos em cada macro-período em uma linha L1. O tamanho dos micro-períodos s1, s2, s3, s4, s5 e s6 varia de forma proporcional à quantidade produzida. Por exemplo, o lote em s2 de P2 é maior que o lote de P2 em s4 na Figura 1. Assim, os micro-períodos s1, s4 e s6 ocupam 1 unidade de tempo, s2 ocupa 2 unidades e s5 ocupa 3 unidades de tempo. L1 Macro-período 1 Macro-período 2 s1 s2 s3 s4 s5 P1 P2 P1 P2 P3 s6 P1 0 1 3 5 6 9 10 Tempo Figura 1 Variação dos micro-períodos. Um total de J produtos e L linhas são considerados. Abaixo são listados os demais parâmetros do problema C t : Capacidade em unidades de tempo disponível no macro-período t. TP l,j : Tempo de processamento do produto j na linha l. Min j : Lote mínimo do produto j. H j : Custo de estoque do produto j. CT ij : Custo de troca do produto i para o produto j. D it : Demanda do produto i no macro-período t. I j0 : Estoque inicial do produto j no início do horizonte de tempo. Y l,j,0 : 1, se o produto j está ajustado inicialmente para a linha l; 0 caso contrário. M: Penalização por unidade de demanda não atendida. As variáveis do modelo são apresentadas a seguir: I jt 0: Estoque do produto j ao final do macro-período t. q ljs 0: Quantidade do produto j produzido no micro-período s da linha l. q 0 j 0: Quantidade de demanda do produto j que não foi produzida. y l,j,s : 1 Se o produto j é atribuído à linha l no micro-período s; 0 caso contrário. z lijs 0: z lijs = 1 se há troca do produto i para j no micro-período s da linha l; z ijs = 0, caso contrário. Modelo matemático para o PGLDPP com máquinas paralelas e penalização de demandas:. + =, + +. () =1,, + (1) (2) =, + + =1,,, t=1,, T (2b). () =1,,, t=1,, T (3) =1,,, j=1,, J, s=1,, T.S (4), =1,,, j=1,, J, s=1,, T.S (5) =1 =1,,, s=1,, T.S (6),, +, 1 =1,,, i=1,, J, j=1,, J, s=1,, T.S (7) XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 3279
A função objetivo minimiza os custos de estoque e os custos de troca envolvendo produtos. Os custos de troca foram considerados como dependentes da sequência dos produtos, mas independentes das linhas. As demandas não atendidas são acumuladas nas variáveis q 0 j e penalizadas na função objetivo. O estoque de cada macro-período é determinado pelas equações (2a) e (2b). Observe que a demanda não atendida é acumulada na equação de balanço de estoque do primeiro período (2a). Isso permite que as demandas não atendidas nos demais períodos continuem satisfazendo a restrição de balanço de estoque já que são acumuladas em q 0 j. Considera-se que essas demandas foram produzidas em um período t=00 com capacidade ilimitada. Esse tipo de representação foi utilizado por Toledo et al (2007) num modelo integrado de dimensionamento e programação da produção em fábricas de bebidas. A restrição (3) garante que a capacidade disponível dentro do período t não seja violada. A capacidade disponível por macro-período é a mesma para todas as linhas, mas cada linha pode ter diferentes tempos de processamento por produto (TP l,j ). O tamanho máximo do lote de um produto em um micro- produzido, caso período é dado pela restrição (4). Essa restrição também impõe que nada seja não ocorra atribuição do produto ao micro-período (y l,j,s = 0). A restrição (5) assegura que um lote mínimo será produzido quando ocorre efetivamente a atribuição de um novo produto a um micro-período (y l,j,s = 1). Por outro lado, se o mesmo produto é atribuído a dois micro-períodos consecutivos, não necessariamente haverá produção na segunda atribuição. A equação (6) permite que somente um produto seja produzido em um micro-período. As trocas de produtos são determinadas pela restrição (7). 3. Métodos propostos Inicialmente será descrita a forma como a solução é representada nos métodos, visando facilitar a determinação de boas soluções dentro do espaço de busca do problema. A mesma representação da solução será adotada por todos os métodos propostos. Em seguida, os pseudocódigos dos métodos são apresentados e detalhados. 3.1 Representação e avaliação das soluções Uma solução para o problema será representada por linhas, onde cada linha possui duas matrizes com informações sobre sua sequência de produção e a demanda dos produtos a ser atendida. A primeira matriz é a matriz de sequência de produtos do tipo t x n, onde t é o número de macro-períodos e n é o número de micro-períodos (Figura 2). Figura 2 Matriz de sequências. Cada entrada (t,n) corresponde ao produto que ocupa determinado micro-período consecutivas não podem ser ocupadas pelo mesmo produto. A dentro de um macro-período. Duas entradas única exceção ocorre para a última entrada de um macro-período e a primeira entrada do macro- sem produto período seguinte que podem ser idênticas. Também não pode haver uma entrada entre duas entradas ocupadas em um mesmo macro-período. Essa representação foi adotada por Fleischmann e Meyr (1997) para o PGDLPP com uma única linha. A segunda matriz é a matriz de demandas do tipo t x p, onde t é o número de macro-períodos e p é o número de produtos do problema (Figura 3). Toda demanda do problema é distribuída ao longo das matrizes de demanda nas linhas. Se há uma única linha no problema, a matriz de demanda irá corresponder à demanda total do problema. Por exemplo, suponha uma instância do problema com duas linhas (l = 2), três produtos (p = 3), um horizonte de planejamento com dois macro-períodos (t = 2) dividido em XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 3280
três micro-períodos (n = 3). A Tabela 1 apresenta as demandas do problema e a Figura 4 ilustra uma possível representação da solução. Figura 3 Matriz de demandas. Toda demanda do problema (Tabela 1) foi distribuída entre as matrizes de demanda das duas linhas (Figura 3). As demandas são distribuídas mantendo cada demanda dentro do seu respectivo período. Por exemplo, o produto p 1 tem 0 unidades de demanda em t 1 na matriz de demanda de l 1 e 5 unidades no mesmo período da matriz de demanda de l 2. Isso significa que a primeira linha não será utilizada na produção desta demanda. O total das demandas de p 1 em l 1 e l 2 corresponde a 5 unidades que é o total da demanda deste produto em t 1 na Tabela 1. Observe que na matriz de sequência em l 1 apenas o p 1 está alocado em t 2. Por outro lado, todos os micro- chamado greedy períodos foram ocupados em t 1. Uma vez estabelecida uma representação para a solução, um método guloso mod é utilizado para estabelecer as quantidades a serem produzidas. Esse método foi proposto por Fleischmann e Meyr (1997) para determinar os lotes a serem produzidos para o PGDLPP com uma única máquina. Em linhas gerais, o greedy mod utiliza a matriz de sequência dos produtos em cada período e a demanda dos produtos para determinar os lotes. Neste trabalho, o método proposto por Fleischmann e Meyr (1997) foi adaptado para utilizar a matriz de sequência de cada linha, associada à respectiva matriz de demanda. Primeiro o método verifica quantas vezes o produto aparece na matriz de sequência de produtos da linha. Em seguida, atribui o valor do lote mínimo (Min j ) a cada ocorrência do produto na linha, desde que a capacidade total não seja violada. A partir desse ponto, greedy mod distribui a demanda ao longo do horizonte de tempo de acordo com a matriz de demanda de cada linha. A alocação das demandas presentes na matriz de demanda da linha é feita de acordo com o total de ocorrências dos produtos na matriz de sequência da linha. A cada atribuição de lotes aos micro-períodos, a capacidade disponível na linha dentro de cada macro-período é verificada. Um pseudocódigo e detalhes sobre o método greedy-mod são apresentados em Fleischmann e Meyr (1997). As metaheurísticas propostas utilizarão a representação da solução descrita nesta seção. Além disso, todos os métodos também utilizam greedy mod na determinação dos lotes a serem produzidos em cada linha. Uma vez definida as sequências de produção e o dimensionamento dos lotes em cada linha, a qualidade da solução é avaliada pela função objetivo (1) do modelo matemático apresentado na seção 2. 3.2 Métodos de busca local Tabela 1 Demandas da instância Produtos t 1 t 2 P1 5 4 P2 2 0 P3 2 5 Figura 4 Representação de uma solução Nesta seção serão apresentados dois métodos de busca local para o PGDLPP: Busca Tabu e Simulated Annealing. A solução inicial para ambos os métodos é estabelecida de acordo com os critérios apresentados para a representação da solução na seção 3.1. XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 3281
3.2.1 Movimentos de busca Os movimentos de busca na vizinhança de uma solução podem ser classificados como: movimentos de demanda e movimentos de sequência. Os movimentos de demanda alteram a distribuição das mesmas entre as matrizes de demanda das linhas. Os movimentos de sequência alteram a ordem dos produtos na matriz de sequência das linhas. Os movimentos propostos são listados a seguir, onde os parâmetros l, t, p e n são, respectivamente, linha, macro-período, produto e micro-período: 1. Inserção de demanda: Sorteia aleatoriamente duas entradas (l, t, p) e (l, t, p) na matriz de demanda com l l. Retira uma quantidade x da demanda de (l, t, p) e insere em (l, t, p). 2. Troca de demanda: Sorteia aleatoriamente duas entradas (l, t, p) e (l, t, p) na matriz de demanda trocando as demandas dessas entradas com l l. 3. Inserção de produto: Insere um novo produto p em um micro-período n selecionados aleatoriamente. 4. Remoção de produto: Remove um produto p de um micro-período n selecionados aleatoriamente. 5. Troca de produtos: Troca dois produtos p e p localizados em dois micro-períodos n e n selecionados aleatoriamente. 6. Inversão de período: Seleciona aleatoriamente um macro-período t e inverte a sequência de produtos neste período. 7. Troca de sequência: Troca toda a sequência em um macro-período t com a sequência em outro macro-período t selecionados aleatoriamente. Os movimentos 1 e 2 são os chamados movimentos de demanda enquanto os demais movimentos são movimentos de sequência. Os movimentos 1 e 2 são executados para entradas em linhas diferentes, mas para um mesmo produto e período. Caso contrário, a demanda original do produto estaria sendo alterada. Após a execução dos movimentos, a representação da solução pode violar critérios da representação. Por isso, um método de reparo é executado (Figura 5). Figura 5 Execução de um movimento de busca e reparo da nova representação Na Figura 5, um movimento de remoção é executado na matriz de sequência. Isso leva a ocorrência de dois produtos idêntidos em posições consecutivas. Neste caso, o método de reparo remove uma das ocorrências. Da mesma forma, o método de reparo irá remover a ocorrência de posições vazias entre micro-períodos ocupados na matriz de sequência. 3.2.2 Simulated Annealing A Figura 6 apresenta o pseudocódigo do Simulated Annealing (SA) proposto. O número de iteração executadas em uma mesma temperatura (Temp) é definida pelo parâmetro SAMax. Nos testes realizados, um total de SAMax = 40 iterações foi executado. O parâmetro S* representa a melhor solução encontrada durante todo o processo. A temperatura inicial T e o parâmetro de decréscimo α foram estabelecidos, respectivamente, em 1000 e 0,95 baseado em testes realizados. O reaquecimento do sistema acontece após a temperatura atingir 0.001. A execução do método guloso sobre a solução (greedy-mod(s)) permite a determinação dos lotes para que o valor de f(s) seja calculado em seguida. XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 3282
SimulatedAnnealing () SAMax 40 α 0.95 Inicialize uma solução S S* S greedy-mod(s), f(s) f(s*) f(s) T 1000 Enquanto (tempototal ainda não atingido) Enquanto(número de iterações < SAMax) Gere um vizinho S ϵ N(S) greedy-mod(s ) ƒ(s ) ƒ(s) Se ( < 0) S S Se (ƒ(s) < ƒ(s*)) S* S Senão Tome x ϵ [0, 1] Se (x < е -/T ) S S Fim se T T * α Se (T < 0.001) T 1000 Fim Enquanto Fim Enquanto Fim SimulatedAnnealing Figura 6 Pseudocódigo Simulated Annealing 3.2.3 Busca Tabu A Figura 7 apresenta o pseudocódigo da Busca Tabu (BT) proposta. BuscaTabu () BTMax 100 numeromovimentos 7 tamanholistatabu 2 listatabu Ø Inicialize uma solução S S* S greedy-mod(s), f(s) f(s*) f(s) Enquanto (tempototal ainda não atingido) Enquanto (número de iterações < BTMax) S S modifica por m, m é o melhor movimento de N(S) e m listatabu S S ; Se (ƒ(s) < ƒ(s*)) S* S Fim se Atualize(listaTabu, m) Fim Enquanto tamanholistatabu ϵ {1, numeromovimentos} Atualize(listaTabu, tamanholistatabu) Fim Enquanto Fim BuscaTabu Figura 7 Pseudocódigo da Busca Tabu proposta Os movimentos de busca são realizados durante um número máximo de iterações (BTmax) a fim de encontrar o melhor vizinho da solução atual. A lista tabu é dinâmica, logo seu tamanho XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 3283
(tamanholistatabu) varia aleatoriamente durante a execução do método. Se o tamanho da lista é reduzido, movimentos há mais tempo na lista tabu são liberados. Caso contrário, movimentos tabu permanecem tabu por mais tempo e outros são acrescentados. Durante a determinação do melhor movimento em N(S), está implícita a execução do greedy-mod(s ) e o cálculo de f(s ) para as diversas soluções S N(S). 3.3 Algoritmo Genético A Figura 8 apresenta o pseudocódigo do Algoritmo Genético (AG) proposto. No momento da avaliação da população (avaliarpopulação()), o método greedy-mod é executado e a função de avaliação é calculada de forma semelhante o que ocorre no SA e BT. O melhor indivíduo é aquele com menor valor na função de avaliação. Algoritmo Genético início Repetir iniciarpopulações(); avaliarpopulações(); Repetir {evoluir população} recombinarpopulação(); mutarpopulação(); avaliarpopulação(); reestruturarpopulação(); até convergência até tempo de execução; fim Figura 8 Pseudocódigo do Algoritmo Genético proposto Os indivíduos são hierarquicamente estruturados em árvores ternárias. (Figura 9). Neste tipo de estrutura, os indivíduos são organizados em clusters compostos por um nó líder e três seguidores. O nó líder é aquele que apresenta melhor valor na função de avaliação. Por isso, o melhor indivíduo da população corresponde ao nó raiz da árvore ternária. Figura 9 Estrutura hierárquica dos indivíduos em árvore ternária. O desempenho superior de AG com populações estruturadas sobre populações não estruturadas em problemas de programação da produção foi reportado França et al (2001). Durante a evolução da população, os operadores genéticos (recombinarpopulação() e mutarpopulação()) geram novos indivíduos que são inseridos ou não na população, dependendo do valor da função de avaliação. Uma recombinação de 1 ponto é executada para cada linha e período dentro da matriz de demanda e matriz de sequência dos indivíduos (Figura 10). Por exemplo, há um ponto de corte na segunda posição de t 1 em l 1 e um ponto de corte na primeira posição de t 2 em l 1 na Figura 10. Isso significa que o Filho irá herdar as posições que antecedem o ponto de corte do Pai 1 e as posições posteriores ao ponto de corte do Pai 2. O mesmo ocorre na matriz de sequência das linhas, onde diferentes pontos de corte foram selecionados em cada período. Um total de α*tamanhodapopulação recombinações são executadas a cada iteração. O novo indivíduo (Filho) pode apresentar excesso ou falta de demandas para alguns produtos na matriz de demanda. Da mesma forma, a matriz de sequência pode apresentar o mesmo produto XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 3284
em posições consecutivas ou espaços não ocupados entre dois produtos. Neste caso, um algoritmo de reparo repõe ou retira as demandas em excesso na matriz de demanda, e remove os produtos repetidos ou os espaços não preenchidos na matriz de sequência. Figura 10 Operador de recombinação de 1 ponto. O operador de mutação seleciona aleatoriamente um dos movimentos de demanda ou de sequência e aplica sobre o novo indivíduo, caso λ TaxaMutação com λ [0,1]. O novo indivíduo obtido é avaliado e se for melhor que um dos pais, será inserido na população. O valor α=2,0 foi utilizado para recombinação e λ=0,4 para mutação, baseado em testes prévios realizados. Uma vez inseridos os novos indivíduos, a população é reestruturada (reestruturarpopulação()) para manter a hierarquia entre indivíduos (Figura 11). A população converge quando novos indivíduos não são inseridos. Neste momento, a população é reinicializada preservando apenas o melhor indivíduo obtido até então. Figura 11 - Inserção de novos indivíduos e reorganização da população. 4. Resultados Computacionais A Tabela 2 abaixo apresenta os parâmetros utilizados na geração de 4 conjuntos de instâncias para o PGDLPP com uma única máquina. Um total de 10 instâncias foi gerado para cada conjunto. Os parâmetros são os mesmos usados por Haase (1996), onde U(%) é a porcentagem de utilização da capacidade disponível. Tabela 2 Conjuntos de Instâncias para o PGDLPP com uma única máquina. Conjuntos Macro-Períodos (T) Micro-Períodos (S) Produtos (J) Capacidade (C t ) U(%) S1 6 4 4 200 80 S2 6 4 4 200 90 S3 5 4 4 200 90 S4 5 5 5 250 90 Todos os demais parâmetros do problema também foram ajustados pelos mesmos valores utilizados por Haase (1996): d jt {0,1,...,100}, H j =1,TP 1j =1, CT ij {100,...,200} para i j e CT ij =0 para i=j, M=10000 e Min j = 1. O modelo matemático da seção 2 e as instâncias geradas foram codificados utilizando o pacote computacional AMPL e solucionados pelo solver CPLEX 11.0 com tempo de execução de 1 hora. Para fins de comparação, também foi implementado o método Threshold Accepting (TA) proposto por Fleischmann e Meyr (1997). Esse método foi escolhido por apresentar melhor desempenho que aqueles em Haase (1996) para o PGDLPP. Todos os testes foram realizados utilizando um processador Intel Corel 2 Duo, 2,66 GHz e 1,95 GB RAM. XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 3285
As metaheurísticas foram executadas 10 vezes em cada uma das 10 instâncias de cada conjunto. Cada execução foi limitada a 0,5 h, ou seja, metade do tempo dado ao método exato. Tabela 3 Resultados obtidos para o PGDLPP com uma única máquina em S1 e S2. S1 AMPL TA S.A. BT AG S2 AMPL TA S.A. BT AG S1-0 1658* 1737,5 1658,0 1658,0 1658,0 S2-0 1729* 1948,6 1737,0 1737,0 1746,0 4,8 0,0 0,0 0,0 12,7 0,5 0,5 1,0 S1-1 1421* 1533,5 1421,0 1421,0 1421,0 S2-1 1758* 1839,3 1758,0 1758,0 1758,0 7,9 0,0 0,0 0,0 4,6 0,0 0,0 0,0 S1-2 1700* 1764,4 1700,0 1700,0 1700,0 S2-2 2162* 2243,2 2162,0 2162,0 2162,0 3,8 0,0 0,0 0,0 3,8 0,0 0,0 0,0 S1-3 1459* 1583,9 1459,0 1459,0 1459,0 S2-3 1747* 1865,0 1747,0 1747,0 1748,2 8,6 0,0 0,0 0,0 6,8 0,0 0,0 0,1 S1-4 1543* 1643,1 1543,0 1543,0 1551,4 S2-4 1638* 1800,3 1638,0 1638,0 1638,0 6,5 0,0 0,0 0,5 9,9 0,0 0,0 0,0 S1-5 1402* 1527,4 1402,0 1402,0 1402,0 S2-5 1534* 1689,9 1534,0 1534,0 1534,0 8,9 0,0 0,0 0,0 10,2 0,0 0,0 0,0 S1-6 1477* 1567,0 1480,0 1480,0 1486,5 S2-6 1533* 1568,3 1533,0 1533,0 1533,0 6,1 0,2 0,2 0,6 2,3 0,0 0,0 0,0 S1-7 1463* 1517,8 1463,0 1463,0 1463,0 S2-7 1822* 1982,2 1822,0 1822,0 1833,8 3,7 0,0 0,0 0,0 8,8 0,0 0,0 0,6 S1-8 1480* 1575,6 1487,0 1487,0 1487,0 S2-8 1863* 1910,7 1863,0 1863,0 1864,7 6,5 0,5 0,5 0,5 2,6 0,0 0,0 0,1 S1-9 1626* 1714,2 1628,0 1628,0 1633,4 S2-9 1751* 1847,6 1751,0 1751,0 1751,0 5,4 0,1 0,1 0,5 5,5 0,0 0,0 0,0 Tabela 4 Resultados obtidos para o PGDLPP com uma única máquina em S3 e S4. S1 AMPL TA S.A. BT AG S2 AMPL TA S.A. BT AG S3-0 1269* 1357,7 1269,0 1269,0 1269,0 S4-0 1833 1936,3 1837,0 1837,0 1861,5 7,0 0,0 0,0 0,0 5,6 0,2 0,2 1,6 S3-1 1491* 1573,0 1491,0 1491,0 1491,0 S4-1 1986 2164,0 1986,0 1986,0 1989,6 5,5 0,0 0,0 0,0 9,0 0,0 0,0 0,2 S3-2 1338* 1528,0 1338,0 1338,0 1338,0 S4-2 1825 1941,3 1823,0 1823,0 1827,2 14,2 0,0 0,0 0,0 6,4-0,1-0,1 0,1 S3-3 1530* 1649,8 1530,0 1530,0 1530,0 S4-3 1674 1828,3 1674,0 1674,0 1681,8 7,8 0,0 0,0 0,0 9,2 0,0 0,0 0,5 S3-4 1663* 1760,2 1663,0 1663,0 1667,8 S4-4 1974 2096,2 1974,0 1974,0 1974,0 5,8 0,0 0,0 0,3 6,2 0,0 0,0 0,0 S3-5 1542* 1612,4 1542,0 1542,0 1542,0 S4-5 1994 2118,0 1994,0 1995,5 2011,3 4,6 0,0 0,0 0,0 6,2 0,0 0,1 0,9 S3-6 1553* 1616,0 1553,0 1553,0 1553,0 S4-6 1790 2191,1 1790,0 1790,0 1793,3 4,1 0,0 0,0 0,0 22,4 0,0 0,0 0,2 S3-7 1518* 1677,3 1522,0 1522,0 1532,1 S4-7 1786 1906,1 1777,0 1777,0 1784,8 10,5 0,3 0,3 0,9 6,7-0,5-0,5-0,1 S3-8 1526* 1595,6 1526,0 1526,0 1526,0 S4-8 2150 2433,2 2175,0 2175,0 2195,4 4,6 0,0 0,0 0,0 13,2 1,2 1,2 2,1 S3-9 1441* 1563,5 1441,0 1441,0 1441,0 S4-9 1782 1920,4 1788,0 1788,0 1788,7 8,5 0,0 0,0 0,0 7,8 0,3 0,3 0,4 As Tabelas 3 e 4 listam os resultados obtidos pelo AMPL/CPLEX e o valor médio considerando a solução final obtida nas 10 execuções das metaheurísticas. Também é apresentado o desvio Desv(%)=100*(Z-Z*)/Z*, onde Z é o valor médio da solução final obtida pela metaheurística e Z* á o valor da solução final retornada pelo AMPL/CPLEX. Os valores na XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 3286
coluna AMPL com * indicam solução ótima. O AMPL/CPLEX retornou a solução ótima ao final de todas as execuções em S1, S2 e S3. No conjunto S4, o AMPL/CPLEX retornou a melhor solução factível encontrada após 1 hora de execução. As metaheurísticas S.A., TS e AG foram capazes de encontrar a solução ótima na maioria das instâncias em S1, S2 e S3. Os valores negativos de alguns desvios em S4 indicam que as metaheurísticas retornaram em média soluções melhores que aquelas encontradas pelo AMPL/CPLEX. O método TA proposto por Fleischmann e Meyr (1997) apresentou desvios acima de 1% em todos os conjuntos de instâncias, enquanto S.A., BT e AG apresentaram desvios abaixo de 1%. Três conjuntos de instâncias (P1, P2 e P3) foram gerados para avaliar o PGDLPP com máquinas paralelas. Os parâmetros utilizados foram T=6, S=4, J=4, C t =200, onde apenas o número de linhas variou com L=2 em P1, L=3 em P2 e L=4 em P4. Os demais parâmetros permaneceram como antes, exceto TP lj [0,1] e U= 80%. Um total de 5 instâncias foi gerado para cada um desses conjuntos. O AMPL/CPLEX também foi utilizado na resolução exata dessas instâncias com tempo de execução de 1 hora. Devido aos elevados desvios já apresentados em S1, S2 e S3, o método TA proposto não foi utilizado no PGDLPP com máquinas paralelas. As metaheurísticas S.A., BT e AG foram executadas por 1 hora com 10 execuções por instância. Tabela 5 Resultados obtidos para o PGDLPP com máquinas paralelas em P1 e P2. P1 AMPL SA BT AG P2 AMPL SA BT AG P1-0 5819,8 4979,6 4785,4 4869,1 P2-0 5730,2 5848,3 5143,0 4711,4-14,4-17,8-16,3 2,1-10,2-17,8 P1-1 5561,0 4798,8 4706,8 4653,4 P2-1 5364,3 5888,3 5036,6 4913,7-13,7-15,4-16,3 9,8-6,1-8,4 P1-2 4371,5 4341,3 4221,4 4052,3 P2-2 6375,3 5965,0 5593,1 5183,6-0,7-3,4-7,3-6,4-12,3-18,7 P1-3 5043,8 4753,4 4480,2 4380,5 P2-3 7045,4 6144,7 5326,1 5326,4-5,8-11,2-13,15-12,8-24,4-24,4 P1-4 4536,9 4945,1 4636,2 4411,8 P2-4 6666,0 5876,6 5417,9 5552,1 9,0 2,2-2,75-11,8-18,7-16,7 Tabela 6 Resultados obtidos em P3. P3 AMPL SA BT AG P3-0 5679,6 7691,1 6154,4 4711,4 35,4 8,4-17,0 P3-1 7713,1 7547,8 6206,2 4913,7-2,1-19,5-36,3 P3-2 7806,1 7327,7 6122,4 5183,6-6,1-21,6-33,6 P3-4 7836,7 7262,6 6110,9 5552,1-7,3-22,0-29,2 P3-5 7130,8 7220,5 5846,7 5530,8 1,3-18,0-22,4 Tabela 7 Média dos desvios. Conjuntos SA BT AG P1-5,12-9,11-11,17 P2-3,85-14,35-17,20 P3 4,21-14,56-27,71 O AMPL/CPLEX não foi capaz de retornar soluções ótimas ao final de 1 hora de execução em P1, P2 e P3. Por outro lado, as metaheurísticas propostas superaram os valores das soluções finais obtidas pelo AMPL/CPLEX na maioria das instâncias (Tabelas 5 e 6). A Tabela 7 apresenta a média dos desvios obtidos considerando as 5 instâncias de cada conjunto, onde o AG apresentou o melhor desempenho. BT também melhorou o valor médio das soluções finais obtidas em relação ao AMPL/CPLEX. O método S.A. não apresentou o mesmo desempenho, retornando desvio médio positivo em P3. XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 3287
5. Conclusões O presente trabalho estudou o Problema Geral de Dimensionamento de Lotes e Programação da Produção (PGDLPP) com e sem máquinas em paralelo, e com penalização por demandas não atendidas. Um modelo matemático foi proposto para o problema e 7 conjuntos de instâncias foram geradas. O modelo e as instâncias foram codificados e solucionados utilizando o AMPL/CPLEX. No PGDLPP com uma única máquina, os mesmos parâmetros de geração de instâncias apresentados em Haase (1996) foram utilizados. O método Threshold Accepting (TA) proposto por Fleischmann e Meyr (1997) foi implementado e comparado com as metaheurísticas SA, BT e AG propostas. As metaheurísticas superaram os resultados obtidos pelo TA, além de encontrarem soluções ótimas ou com desvios abaixo de 1%. Esses resultados foram obtidos utilizando metade do tempo de execução dado ao método exato. Nas instâncias do PGDLPP com máquinas paralelas, três conjuntos de instâncias foram geradas. As metaheurísticas conseguiram superar em média os resultados obtidos pelo AMPL/CPLEX, exceto S.A. em um dos conjuntos. O AG foi o método com melhor desempenho no PGDLPP com máquinas paralelas. De forma geral, os resultados revelam o melhor desempenho das metaheurísticas AG e BT propostas. 6. Agradecimentos Essa pesquisa foi financiada pela Fundação de Amparo à Pesquisa do Estado de Minas Gerais (FAPEMIG), projeto CEX APQ-2271-5.01/07. 7. Referências Bitran, G. R. e Yanasse, H. H. (1982), Computational complexity of the capacitated lot size problem, Management Science 28 (10), 1174-1186. Chen, W.H. e Thizy, J.M., (1990), Analysis of relaxations for the multi-item capacitated lotsizing problem, Annals of Operations Research, 26, 29-72. Drexl, A. e Kimms, A., (1997), A, Lot Sizing and scheduling - survey and extensions, European Journal of Operational Research, 99, 221-235. Fleischmann, B., Meyr, H., (1997), The general lotsizing and scheduling problem, ORSpektrum, 19, 11-21. França, P.M., Mendes, A.S., Moscato, P, (2001), A memetic algorithm for the total tardiness single machine scheduling problem, European Journal of Operational Research, 1(132), 224-242. Glover, F., Laguna, M., Tabu Search, Kluwer, Norwell, MA, 1997. Haase, K.(1996), Capacitated lot-sizing with sequence dependent setup costs, ORSpektrum, 8, 51-59. Holland, J.H., Adaptation in natural and artificial systems, The University of Michigan Press, 1975. Jans, R. e Degraeve, Z., (2007), Metaheuristics for dynamic lot sizing: A review and comparison of solution approaches, European Journal of Operational Research, 177, 1855-1875. Kang, S., Malik, K., Thomas, L.J., (1999), Lotsizing and scheduling on parallel machines with sequence-dependent setup costs, Management Science, 45, 273-289. Kirkpatrick, S., Gelatt, C. D., Vecchi, M.P.,(1983), Optimization by Simulated Annealing, Science, 220 (4598), 671-680. Meyr, H., (2002), Simultaneous lotsizing and scheduling on parallel machines, European Journal of Operational Research, 139, 277-292. Toledo, C. F. M., França, P. M., Morabito, R. e KIMMS, A. (2007), Um Modelo de Otimização para o Problema Integrado de Dimensionamento de Lotes e Programação da Produção em Fábrica de Refrigerantes, Pesquisa Operacional, v. 27, 155-186. Toledo, CFM, França,PM, Ferreira, JE, (2008a), Meta-Heuristic Approaches for a Soft Drink Industry Problem. In: 13th IEEE International Conference on Emerging Technologies and Factory Automation, Hamburg, Alemanha, 1384 1391. XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 3288