Open-access Dimensionamento de lotes e programação do forno numa fundição automatizada de porte médio

Resumos

Este trabalho consiste no estudo de um problema prático que ocorre numa fundição que tem apenas um forno em operação por período, consistindo no gargalo do processo produtivo, e várias máquinas de moldagem que produzem diferentes tipos de itens com demandas conhecidas que devem ser feitos com diferentes ligas. Em cada período, a programação da produção envolve dois níveis importantes de decisão que estão inter-relacionados: 1) qual liga deve ser produzida no forno; 2) a quantidade de cada item a ser produzida em cada máquina de moldagem. Num estudo anterior, foi proposto um modelo de dimensionamento de lotes monoestágio, com restrições de capacidade, máquinas paralelas e múltiplos itens. Neste trabalho foram realizadas extensões do modelo e do método de solução, considerando-se custos de preparação e admitindo-se atrasos na data de entrega. Esta abordagem fornece ao decisor possíveis rearranjos na demanda, caso não seja possível o atendimento sem atraso.

programação inteira mista; planejamento e programação da produção; fundições


This work consists of studying a practical problem that arises from a foundry, which has only one furnace operating at each period, which is the production bottleneck. Several moulding machines produce moulds for a known demand of different types of items, which must be made with different alloys. For each period, the production programming has two important and linked decision levels: 1) which alloys should be produced in the furnace, and 2) the quantity of each item to be produced in each moulding machine. In an earlier study, a single-level, multi-item, capacitated, parallel machine lot-sizing model was proposed. In this work, that model has been extended considering setup cost and backlog of orders, as well as the solution method. This approach provides the decision maker with possible arrangements on demand, in case of backlogging.

mixed integer programming; lot sizing and scheduling; foundries


Dimensionamento de lotes e programação do forno numa fundição automatizada de porte médio

Silvio Alexandre de AraujoI; Marcos Nereu ArenalesII, *

IDepartamento de Informática, Universidade Estadual de Maringá, Maringá – PR, silvio@din.uem.br

IIICMC – Inst. de Ciências Matemáticas e de Computação, Universidade de São Paulo – Campus de São Carlos, São Carlos – SP, arenales@icmc.usp.br

RESUMO

Este trabalho consiste no estudo de um problema prático que ocorre numa fundição que tem apenas um forno em operação por período, consistindo no gargalo do processo produtivo, e várias máquinas de moldagem que produzem diferentes tipos de itens com demandas conhecidas que devem ser feitos com diferentes ligas. Em cada período, a programação da produção envolve dois níveis importantes de decisão que estão inter-relacionados: 1) qual liga deve ser produzida no forno; 2) a quantidade de cada item a ser produzida em cada máquina de moldagem. Num estudo anterior, foi proposto um modelo de dimensionamento de lotes monoestágio, com restrições de capacidade, máquinas paralelas e múltiplos itens. Neste trabalho foram realizadas extensões do modelo e do método de solução, considerando-se custos de preparação e admitindo-se atrasos na data de entrega. Esta abordagem fornece ao decisor possíveis rearranjos na demanda, caso não seja possível o atendimento sem atraso.

Palavras-chave: programação inteira mista; planejamento e programação da produção; fundições.

ABSTRACT

This work consists of studying a practical problem that arises from a foundry, which has only one furnace operating at each period, which is the production bottleneck. Several moulding machines produce moulds for a known demand of different types of items, which must be made with different alloys. For each period, the production programming has two important and linked decision levels: 1) which alloys should be produced in the furnace, and 2) the quantity of each item to be produced in each moulding machine. In an earlier study, a single-level, multi-item, capacitated, parallel machine lot-sizing model was proposed. In this work, that model has been extended considering setup cost and backlog of orders, as well as the solution method. This approach provides the decision maker with possible arrangements on demand, in case of backlogging.

Keywords: mixed integer programming; lot sizing and scheduling; foundries.

1. Introdução

O setor de fundição caracteriza-se como uma importante indústria primária que fornece bens intermediários para diversas outras, tais como, automotivas, siderúrgicas, construção, dentre outras. No Brasil o setor produziu, de janeiro a março de 2002, 445.696 toneladas e, no mesmo período de 2003, 540.015 toneladas representando um crescimento de 21,2%, gerando cerca de 45.000 empregos diretos (ABIFA, 2003).

A grande maioria da produção brasileira de fundidos é consumida pelas indústrias automotivas e siderúrgicas (fundições cativas), ficando apenas uma pequena parcela para os setores da indústria mecânica e da infra-estrutura (fundições de mercado). Esta demanda relativamente baixa e a ausência de uma política de mercado caracterizam as fundições de mercado como empresas de pequeno ou médio porte, carentes de uma estrutura gerencial organizada. Entretanto, nos últimos anos, as fundições de mercado vêm registrando um grande crescimento, e a prática gerencial baseada apenas no bom senso e na experiência do administrador de processo não tem sido suficiente.

A fundição que serviu de base para este trabalho foi primeiramente estudada por Santos-Meza et al. (2002). O processo produtivo (Figura 1) caracteriza-se por um forno que é alimentado por matérias-primas (em geral, lingotes fundidos obtidos após um processo de refino de minérios, sucatas e outros) produzindo determinado tipo de liga. O forno tem uma limitação de capacidade por hora podendo produzir uma quantidade máxima de uma certa liga. Uma vez determinada a liga que deve ser produzida, deve-se determinar a melhor mistura de matéria-prima, de acordo com a composição química, de forma a minimizar o custo da liga, ou seja, tem-se que resolver o clássico problema da mistura. Após fundida, a liga é vazada em moldes de areia e o forno é então realimentado para a produção de um novo (ou mesmo) tipo de liga.


Os moldes são preparados segundo projetos que especificam todos os detalhes dos contornos, canais de vazamento, bem como o tipo de liga adequada e são produzidos por máquinas de moldagem paralelas automatizadas que têm taxas de produtividade conhecidas. Estas máquinas podem trabalhar uma parte da hora produzindo um tipo de molde e outra parte na produção de outros tipos. No entanto, cabe observar que, para o problema em questão, embora as máquinas de moldagem possam ser re-preparadas para a produção de diferentes moldes dentro de uma hora, a liga produzida pelo forno somente pode ser alterada na mudança de turnos (6 horas). Portanto, as mudanças na produção dos moldes são restritas aos itens que utilizam a mesma liga.

Diante disso, observa-se que, a programação da produção nesta fundição tem dois momentos importantes e interligados: a programação do forno, na qual é definida a liga a ser produzida em cada período; e a programação das máquinas de moldagem, na qual é definida a quantidade de cada item a ser produzida em cada período, ou seja, deve-se dimensionar os lotes de cada item.

Pode-se definir de forma bastante simples o problema de dimensionamento de lotes como um problema de otimização que consiste em determinar a quantidade de itens a ser produzida em uma ou mais máquinas, em cada período ao longo de um horizonte de planejamento finito, de modo a atender uma certa demanda e a otimizar uma função objetivo (por exemplo, minimizar custos). Em geral, esses problemas pertencem a classe NP-difícil, fazendo com que a maioria dos métodos de solução sejam heurísticos. No caso das fundições, o problema de dimensionamento de lotes está presente na programação do setor de moldagem onde se determina a quantidade de cada item a ser produzida em cada período. Revisões bibliográficas destes problemas são encontradas em Bahl et al. (1987) e Kuik et al. (1994).

O problema de programação da produção (scheduling) é definido como um problema de otimização que consiste em programar determinadas tarefas em uma ou várias máquinas de forma a otimizar uma função objetivo (por exemplo, minimizar o tempo de processamento). As decisões tomadas são de curto prazo (nível operacional). A programação do forno em fundições, onde são definidas quais ligas devem ser produzidas em cada período, é um bom exemplo de um problema de programação da produção. Algumas revisões bibliográficas podem ser encontradas em Potts & van Wassenhove (1992), Potts & Kovalyov (2000) e Allahverdi et al. (1999).

O objetivo deste trabalho é propor um modelo matemático e um método de solução para auxiliar, principalmente as fundições de mercado, na resolução dos problemas planejamento e programação da produção. O modelo considera de forma simultânea o problema de dimensionamento de lotes para os itens e problema de programação das ligas. Drexl & Kimms (1997) apresentam uma excelente revisão bibliográfica de trabalhos que consideram problemas integrados.

Uma revisão da literatura em problemas de planejamento e programação da produção em fundições é apresentada na seção 2. A seção 3 contém o modelo matemático que pode ser caracterizado por um problema de dimensionamento de lotes monoestágio com vários itens, custo de preparação, restrição de capacidade e máquinas paralelas, sem considerar tempo de preparação e admitindo atraso no atendimento à demanda. Na seção 4 é proposto um método de solução heurístico. Na seção 5 são apresentados os resultados computacionais e, na seção 6, as conclusões.

2. Revisão Bibliográfica

Após uma ampla revisão bibliográfica foi possível constatar a escassez de trabalhos envolvendo problemas de planejamento e programação da produção especificamente voltados ao setor de fundições, principalmente, fundições de pequeno e médio porte.

Em Araujo et al. (2002) é realizado um estudo do problema de planejamento e programação da produção para um caso prático encontrado em uma fundição de porte pequeno. O processo produtivo é bastante parecido com o processo descrito na seção 1, as principais diferenças consistem no fato de que as ligas podem ser modificadas a cada fornada e, cada item pode ser produzido por uma, e somente uma, liga. Araujo et al. (2002) modelaram o problema como um problema de programação inteira mista, com restrição de capacidade, custo de preparação e considerando a possibilidade de atraso no atendimento a demanda. O objetivo principal é minimizar os atrasos e os custos de estoque. O método de solução desenvolvido consiste num método de horizonte rolante, ou seja, resolve-se o problema para um horizonte de planejamento de T períodos onde apenas o primeiro período é efetivamente implementado e os dados atualizados. Em seguida o horizonte é rolado à frente e o método é aplicado novamente para mais T períodos. Além disso, os autores utilizaram busca local para fixar algumas variáveis a cada etapa do método. São apresentados alguns resultados computacionais comparando o método de solução e o pacote Cplex 7.1.

Em Araujo (2003) foi feito um estudo de caso em uma fundição de grande porte para a qual foi proposto um modelo matemático que foi resolvido com um pacote de otimização inteira. Nesta fundição, existem vários fornos em operação que produzem apenas dois tipos principais de liga, tornando a programação dos fornos menos crítica de modo que, a programação das linhas de moldagem é que "puxa" a programação dos fornos. Os resultados computacionais foram comparados com aqueles obtidos pela empresa, mostrando expressivos ganhos de produtividade e redução de atrasos na entrega dos pedidos.

O estudo em Santos-Meza et al. (2002) é semelhante ao presente trabalho, no entanto, os autores não consideram custo de preparação e não permitem atraso no atendimento à demanda. O método de solução proposto por Santos-Meza et al. (2002) serviu de base para o método da seção 4 deste trabalho.

Sounderpandian & Balashanmuga (1991) estudaram o problema de sequenciamento de tarefas às máquinas numa grande fundição (850 empregados), que têm como principal cliente a indústria automobilística. A fábrica produz 200 tipos de itens em 41 máquinas. Para cada máquina são atribuídos valores de 0 a 100 de acordo com a conveniência de se utilizar a máquina para fazer determinado item. O método de solução considera apenas os 100 itens principais que representam 90% da demanda e é baseado no clássico Problema de Transportes, onde cada máquina oferece uma quantidade de horas por semana e cada item demanda um certo número de horas para ser fabricado. O objetivo é a minimização do custo total da programação (que é baseado numa matriz de conveniência). Segundo os autores, o método foi implantado facilmente na empresa conseguindo reduzir os problemas encontrados.

Gravel et al. (2000) utilizaram algoritmos genéticos para resolver um problema de sequenciamento das ligas numa fundição de alumínio. O indústria possui três fornos que devem produzir diferentes tipos de ligas. Entre duas cargas do forno é possível deixar um resíduo da liga antiga para que o tempo de aquecimento da nova liga seja menor. Entretanto, dependendo da seqüência em que as ligas são feitas isto não é possível, pois a liga anterior pode ter componentes que não podem estar presentes na liga que será feita posteriormente. Neste caso, o forno tem que ser esvaziado e o tempo de preparação é muito maior. Desta forma, o tempo de preparação depende da seqüência em que as ligas são produzidas. Os autores apresentaram um algoritmo genético em duas fases. Na primeira fase as ligas são associadas aos fornos e, na segunda fase é feito o sequenciamento das ligas nos fornos. Segundo os autores, o método apresenta bons resultados e está sendo utilizado pela empresa.

Bowers et al. (1995) estudaram o problema de planejamento e programação da produção numa indústria de fabricação de lingotes de alumínio. Nesta indústria, não é permitido atraso no atendimento à demanda. Quando não existem lingotes para o atendimento da demanda, deve-se importar lingotes ou aparar lingotes mais largos para suprir a demanda. O objetivo do artigo é minimizar a quantidade de lingotes importados ou aparados. Os autores apresentaram um método de solução em duas fases aplicado de forma rolante no tempo, onde, na primeira fase uma heurística determina a programação das máquinas de moldagem para todo o horizonte de planejamento e, na segunda fase, um problema linear é resolvido para determinar a programação ótima dos fornos de acordo com a programação estabelecida na primeira fase. Os resultados computacionais apresentados mostram, segundo os autores, uma redução de 20,4% para 0,4% de lingotes importados ou aparados.

Hendry et al. (1996) estudam um problema de corte de estoque acoplado ao problema de programação da produção numa indústria de cobre. O processo produtivo pode ser dividido em três partes e consiste basicamente em fundir o metal no forno, produzir barras grandes e cortar as barras grandes em pedaços menores. O objetivo principal do estudo é a redução de custos, o que implica diretamente na redução do número de vezes que o forno é utilizado e na redução das perdas no corte das barras. Um método de solução, em dois estágios, baseado no princípio de horizonte rolante foi proposto. No primeiro estágio, um modelo matemático de programação inteira é resolvido heuristicamente determinando uma solução agregada indicando os padrões de cortes a serem utilizados minimizando a perda. No segundo estágio, outro modelo de programação inteira é resolvido por um método exato determinando um programa de produção diária para a solução agregada dada pelo primeiro estágio. Os resultados são comparados com os resultados práticos da empresa, mostrando uma redução substancial nos custos com ganhos no rendimento dos fornos e diminuição das perdas no processo de corte.

Foram encontrados alguns outros trabalhos que tratam do problema de programação da produção em grandes siderúrgicas onde o processo produtivo é um pouco diferente daquele encontrado em fundições. O processo produtivo da indústria siderúrgica é caracterizado pela inexistência do setor de moldagem, pois os itens demandados são chapas de aço de diferentes tamanhos e composições fabricadas por máquinas de laminação, onde o metal passa por cilindros rolantes distanciados de acordo com as especificações da chapa a ser fabricada.

Tang et al. (2001) fazem uma revisão bibliográfica de trabalhos de planejamento e programação da produção aplicados à indústria siderúrgica. Neste trabalho, o desenvolvimento histórico do processo produtivo é descrito, dando uma ênfase maior ao processo de produção atual, onde se integram as várias fases de produção. Além de modelagem matemática, fazem ainda uma revisão dos métodos de solução, em sua maioria desenvolvidos especificamente para grandes siderúrgicas e, por fim, apontam algumas direções para futuros trabalhos com novas modelagens e métodos de solução que podem ser desenvolvidos.

Lopes et al. (1998) enfatizam seus estudos na programação da produção do setor de laminação. Os autores modelaram o problema como um problema do caixeiro viajante com restrições do tipo mochila e propõem um método heurístico, baseado em busca tabu. Dados práticos foram utilizados para obter os resultados computacionais que mostraram uma melhoria do método proposto em relação ao plano que vinha sendo implementado na indústria.

Tang et al. (2000a) também resolvem o problema de programação da produção no setor de laminação, com uma modelagem de múltiplos caixeiros viajante, sendo que, no método de solução é feita uma relaxação para o problema de um único caixeiro viajante, o qual é resolvido utilizando algoritmos genéticos. O método foi aplicado numa grande fábrica durante um ano obtendo uma melhoria de 20% em relação ao sistema anterior.

Tang et al. (2000b) apresentam um modelo de programação não linear que trata do conflito entre máquinas, cujo objetivo consiste na pontualidade na entrega dos pedidos e continuidade do fluxo produtivo, ou seja, minimizar o tempo de espera entre as operações da fábrica. O método de solução consiste numa reformulação do problema como um modelo de programação linear.

Lee et al. (1996) dão uma visão geral do desenvolvimento do processo de fundição e descrevem com detalhes o processo de fabricação no qual o ferro fundido é transformado em placas de aço, destacando os vários objetivos que podem ser considerados neste tipo de fundição. São relatadas várias experiências da IBM em desenvolvimento de métodos de solução para o problema de sequenciamento de tarefas entre as várias máquinas.

Outros trabalhos que tratam do problema de sequenciamento em grandes siderúrgicas são: Petersen et al. (1992), onde foi desenvolvida uma heurística gulosa e Hamana et al. (1995) que apresentaram um método de solução híbrido utilizando algoritmos genéticos.

3. Modelo Matemático

Índices:

m=1,...,M

máquinas de moldagem;

t=1,...,T

períodos de tempo

i=1,...,N

tipos de itens;

k=1,...,K

tipos de ligas.

Dados:

aim

quantidade de itens do tipo i possível de ser produzida na máquina m por hora (se aim =0, o item i não pode ser produzido pela máquina m);

Capt

quantidade máxima de liga produzida pelo forno por hora no período t;

dit

demanda de itens do tipo i no período t;

ht

número de horas no período t;

custo de estocar uma unidade do item i de um período para o próximo;

penalidade por atrasar uma unidade do item i de um período para o próximo;

csk

penalidade por preparar a liga k (é um parâmetro do problema que, por consistência futura, representa simbolicamente 'número de itens' não produzidos pela mudança de liga);

Sk

conjunto de itens que utilizam a liga k;

G

um número grande.

Variáveis de decisão:

Ximt

fração de tempo no período t utilizado para produzir itens do tipo i na máquina m;

estoque do item i no final do período t ();

quantidade atrasada do item i no final do período t ();

variável binária que indica se a liga k é produzida no período t;

variável que indica se será cobrado custo de preparação para a liga k no período t (como será explicado posteriormente, embora esta variável seja contínua, as características do modelo fazem com que ela assuma apenas valores 0 ou 1).

O problema é formulado matematicamente como:

A função objetivo (1) consiste nos custos de estoques e nas penalidades por atraso no atendimento a demanda. A restrição de balanceamento de estoque em (2) considera o estoque negativo. Observe que,

htaimXimt significa a quantidade produzida, em toneladas, de itens do tipo i no período t (em todas as máquinas). A restrição (3) define a capacidade de produção do forno em cada período t. As restrições (4) e (5) garantem que, em cada período, somente itens associados à liga escolhida possam ser produzidos. Ainda, (6) faz com que apenas um tipo de liga seja produzido em cada período t, e (7) representa a mudança de liga de um período para o outro. As demais inequações delimitam as variáveis do modelo, sendo, que a variável apesar de ser contínua, a restrição (7) em conjunto com a função objetivo (1) faz com que, na otimalidade, assuma somente valores 0 ou 1 ( =0 se = (i.e., não houve mudança de liga); e =1 se =0 e =1 (i.e., houve mudança de liga)).

Na função objetivo (1), as penalidades por atraso têm peso maior do que os custos de estoques. Além disso, a segunda parcela da função objetivo consiste nas penalidades por preparação, que, neste caso, penaliza mudanças de liga, não tendo relação com a ordem em que as ligas são feitas.

A variável funciona como uma variável artificial usada para obter uma solução factível. Se >0 para algum i (ou seja, existe atraso no último período para algum item), significa que não foi possível atender a demanda no horizonte de planejamento estabelecido com a capacidade disponível nesse horizonte. No entanto, se >0, para algum i com t ¹ T e =0 para todo i, então existe capacidade suficiente para produzir a demanda dentro do horizonte de planejamento estabelecido. Vale a pena observar que os estoques negativos correspondem a atrasos e o decisor pode, alterando os parâmetros da função objetivo (1), proibir, ou não, atrasos de certos itens. Além disso, os estoques negativos fornecem uma ferramenta para a avaliação dos prazos de entrega. Por exemplo, se di1 =30 e =10, =5, =0, significa que a demanda para o item i será totalmente atendida com 3 dias de atraso. Desta forma, é possível alertar o cliente e, se necessário, re-calibrar os parâmetros relativos a este item.

Observe que, no modelo (1)-(11), as equações (4) e (5) não podem ser simplificadas por

como na maioria dos modelos de dimensionamento de lotes. Isso decorre do fato que um mesmo item pode ser produzido por diferentes ligas. Por exemplo, sendo S1={1, 2} e S2={2, 3} o conjunto de itens que as ligas 1 e 2 podem produzir, respectivamente. Se =0 (a liga do tipo 1 não é preparada no período 1), então X1,m,1 = X2,m,1 = 0 devido a (4') (os itens 1 e 2 não podem ser produzidos no período 1), o que é um erro pois, se =1 (a liga do tipo 2 é preparada no período 1), então X2m1> 0. Isso ocorre pois o item 2 pertence aos conjuntos S1e S2.

Observa-se que (1)-(11) é um modelo de programação inteira mista e, encontrar a solução ótima para casos práticos é, na maioria das vezes, inviável. Um método de solução mais eficiente do que a otimização exata do modelo é, portanto, fundamental. Esse é o objetivo do método de solução proposto a seguir.

4. Método de Solução

Nesta seção apresentamos um método de solução heurístico que pode ser dividido em 3 fases. Na primeira fase tem-se uma relaxação do problema onde se considera que todos os itens possam ser produzidos por uma única liga. Com isso é proposto um modelo de programação linear que determina a quantidade de cada item a ser produzida em cada período. Na segunda fase, uma heurística determina a liga que deve ser produzida em cada período, levando-se em consideração as decisões do problema relaxado. Finalmente, na terceira fase tem-se a programação das máquinas de moldagem.

4.1 Relaxação

Considere o problema relaxado onde uma liga pode produzir todos os itens. Desta forma, não é necessário fazer a programação do forno e as restrições (4), (5), (6), (7), (10) e (11) podem ser desconsideradas do modelo relaxado, assim como a segunda parcela da função objetivo.

Considerando tais relaxações e definindo uma nova variável,

segue o seguinte problema relaxado:

Sujeito a:

O modelo (13)-(17) é linear e consiste num modelo de dimensionamento de lotes monoestágio com restrição de capacidade, e pode ser considerado como um problema de fluxo em redes, o qual pode ser facilmente resolvido. Neste trabalho foi utilizado o pacote Ampl/Cplex (Fourer et al., 1993 e ILOG CPLEX 7.1, 2001) para resolver esse modelo.

4.2 Heurística

Resolvendo o problema relaxado (13)-(17) o valor de Pit é obtido e consiste na quantidade de cada item a ser produzida em cada período. O próximo passo consiste na verificação da existência de alguma liga capaz de produzir todos os itens dados na solução do problema em cada período, ou seja, deve-se procurar ligas kt, t=1,...,T de forma que:

{i : Pit >0, i = 1, 2,....,N} Í

Caso não exista uma liga que produza todos os itens para algum determinado período, adota-se uma heurística para escolher a liga, período a período, isto é, quando da escolha da liga no período t, já foram escolhidas as ligas nos períodos 1, ...,t-1.

– Heurística para a escolha de uma liga em cada período t

Suponha k1,...,kt-1 são os índices das ligas já produzidas nos períodos 1,...,t-1, respectivamente (observe que os itens pertencentes aos conjuntos

, t =1, ..., t-1, podem ser produzidos antes do período t).

1. Determine o conjunto de itens At-1 que podem ser produzidos antes do período t:

2. Determine o conjunto de itens Bt com alta prioridade em t (isto é, itens demandados em algum período t =1, ..., t que não podem ser produzidos em períodos anteriores, pois suas ligas não foram previamente preparadas):

Bt = {i | i Ï At-1 e dit > 0, t = 1, 2,..., t}

3. Se Bt ¹ Æ

Então : Determine o conjunto de ligas com alta prioridade no período t:

Ct = {k: Sk Ê Bt}

Se Ct = Æ

então : escolha a liga kt para o período t tal que:

senão : escolha a liga kt para o período t tal que:

Senão: escolha a liga kt para o período t tal que:

(Obs. Em (18) – (20) o valor da variável

é dado por:
=0 se k=kt-1 e =1 se k ¹ kt-1)

Fim da heurística para a escolha da liga no período t.

Os passos 1 e 2 são de importância fundamental para o sucesso da heurística, pois a escolha da liga em determinado período é feita com base em decisões tomadas em períodos anteriores, o que é muito importante para minimizar os atrasos.

No passo 3, as equações (18), (19) e (20) determinam a liga a ser produzida com base nas decisões do problema relaxado (Pit) e em uma penalidade por trocas de ligas (csk). Nas equações (18) e (20) a escolha é feita entre todas as ligas, sendo que, em (18) é dada uma prioridade maior às ligas que produzem a maior quantidade de itens associados ao conjunto Bt. Na equação (19) a escolha é feita somente entre as ligas que produzem todos os itens associados ao conjunto Bt. Como critério de desempate nas equações (18), (19) e (20), a liga k para a qual o conjunto Sk tem maior cardinalidade será escolhida.

Cabe observar que, outras heurísticas para a escolha das ligas foram implementadas e testadas, mas os resultados computacionais foram inferiores à heurística acima. Uma delas considerava o impacto que a escolha de uma determinada liga provocaria na função objetivo do problema relaxado.

Outra heurística implementada, cujos resultados são apresentados na seção 5 (Tabela 6) e foram bastante próximos dos resultados da heurística acima, apenas substitui a equação (18) por:

A idéia desta heurística é privilegiar uma liga que possa produzir os itens sugeridos pelo problema relaxado no período t, isto é, Pit, além dos itens com grandes atrasos. Vale a pena observar que a solução Pit do problema relaxado (13)-(17) já carrega o esforço de diminuir os atrasos.

4.3 Programação das Máquinas de Moldagem

Uma vez determinadas heuristicamente as ligas que serão produzidas em cada período, deve-se fazer a programação das máquinas de moldagem, que consiste em definir a fração de tempo que cada máquina m deve ser utilizada para produzir determinado item i num período t (Ximt). Lembre-se que o total de itens do tipo i produzido na máquina m no período t é aimhtXimt. Para tanto, um problema de transporte generalizado é resolvido para cada período t.

Pode-se utilizar vários critérios para se definir a função objetivo. Por exemplo:

o qual tenta balancear a produção dos itens entre as máquinas de moldagem.

segue o seguinte modelo (o qual foi resolvido com o pacote Ampl/Cplex) para determinar a programação das máquinas em cada período t:

4.4 Algoritmo Geral

Cabe observar que, o procedimento proposto nas seções 4.1 – 4.3, produz uma solução factível (sem garantia de otimalidade) para o modelo (1)-(11). De fato, se a heurística for capaz de obter uma solução, então ao reconsiderar o modelo (1)-(11) as restrições (6) e (7) são satisfeitas pois, =1 e =0 para todo k ¹ kt. As restrições (5) são satisfeitas devido à (27) e (4) são satisfeitas devido á hipótese de que a capacidade da máquinas é folgada, de modo que Ft<1. As outras restrições do modelo (1)-(11) são consideradas no modelo (13)-(17).

– Algoritmo Geral

Faça t=1.

1 Enquanto t < T, faça:

1.1 Resolva o problema relaxado (13)-(17).

1.2 Determine, heuristicamente (seção 4.2), a liga kt para cada período t.

Se {i : Pit >0, i = 1, 2,....,N} Í

Então: t=t+1 e repita o passo 1.2

Senão: Faça Pit=0, i Ï , t=t+1 e vá para o passo 1.1

2 Resolva o problema relaxado (cabe observar que as ligas k1, k2, ..., kT já foram escolhidas para os períodos 1, 2, ..., T, respectivamente). Para cada período t, t=1, ..., T resolva o problema (23)-(27), determinando Ximt, a fração de tempo do período t utilizada para produzir itens do tipo i na máquina m. Fim.

O método de solução proposto no Algoritmo Geral acima é baseado no método proposto por Santos-Meza et al. (2002). As principais modificações estão na heurística para determinação das ligas, onde, no passo 3 o problema deixa de ser infactível caso Ct = Æ , pois, admitindo atraso no atendimento à demanda, mesmo que não exista uma liga para produzir determinado item que tem demanda positiva num período t, este item poderá ser produzido nos períodos seguintes. Além disso, as equações (18), (19) e (20) tiveram que ser adaptadas para o novo modelo que considera atraso no atendimento a demanda e custo de preparação.

5. Resultados Computacionais

Os testes computacionais foram realizados num Pentium III 500 MHz com 512 MB de RAM e os parâmetros utilizados para a geração dos exemplos são apresentados na Tabela 1:

Observa-se que os dados utilizados nos exemplos foram semelhantes aos utilizados por Santos-Meza et al. (2002). Entretanto, foram feitas algumas modificações que tornaram os exemplos mais próximos da realidade e, conseqüentemente, mais difíceis de serem resolvidos:

- demanda (dit): a demanda para todos os itens e todos os períodos, inclusive para primeiro, foi gerada aleatoriamente no intervalo [0,200] com dit=0 se dit <50.

- capacidade (Capt): foram consideradas diferentes capacidades para a geração dos exemplos. A capacidade foi alterada pelo fator multiplicativo b que em Santos-Meza et al. (2002) foi usado 1,4. Nos testes computacionais realizados aqui foram considerados os seguintes valores para b : 0,6, 1,0 e 1,4, representando capacidade apertada, normal e folgada, respectivamente. Vale observar mais uma vez que o modelo atual permite trabalhar com capacidade mais apertada, pois lida com atrasos.

- penalidade por preparação(csk): devido às características do problema prático, a penalidade por troca de ligas (preparação) é relativamente pequena quando comparada com os outros custos. No entanto, manteremos em (18), (19) e (20), os fatores relativos a decisões sobre preparações, pois assim tem-se um método mais robusto e de fácil adaptação para casos onde a penalidade por preparação é mais expressiva.

Foram gerados 10 exemplos para cada combinação de parâmetros. Cada exemplo foi resolvido diretamente pelo método branch and bound do pacote Cplex 7.1 e pelo método heurístico descrito na seção 4.

As Tabelas 2 e 3 mostram o tempo médio (em segundos) gasto pelo pacote Cplex e pelo método heurístico, respectivamente. Como é possível observar, para todos os exemplos o tempo computacional do método heurístico é significativamente inferior ao obtido pelo pacote, que só não é ainda maior devido ao fato de que foi imposta uma limitação de tempo, pois, caso contrário, o pacote Cplex levaria várias horas para rodar os exemplos, muitas vezes sem melhorar a solução. O limite de tempo estabelecido foi de 1 hora (3.600 segundos), pois, considerando um problema prático onde o programa deve ser rodado pelo menos uma vez por dia, permitir mais de 1 hora torna sua aplicação inviável.

Analisando os resultados das Tabelas 2 e 3 pode-se concluir que, para o método heurístico, o aumento do tamanho do exemplo causa um impacto suave no tempo computacional. Entretanto, isso não acontece para o pacote Cplex onde, tanto o aumento do número de itens como do número de períodos fazem com que o esforço computacional aumente de forma desproporcional.

O efeito da variação de capacidade no tempo computacional do método heurístico também é bastante suave, sendo que, para o pacote Cplex, em geral, quanto mais apertada a capacidade menor o tempo computacional. Isso ocorreu porque para exemplos com capacidade apertada, as decisões com respeito às ligas que deverão ser produzidas em cada período são mais simples, desde que, poucos itens podem ser produzidos em cada período.

A Tabela 4 fornece a porcentagem de exemplos em que o pacote conseguiu encontrar a solução ótima antes do limite de tempo (uma solução é considerada ótima se está a menos de 1% do limitante inferior). Como era de se esperar, quanto menor o tamanho do exemplo, maior a porcentagem. Para a maioria dos exemplos grandes (mais de 45 itens e 12 períodos), o limite de tempo (1 hora) foi alcançado antes da otimalidade (ver o complementar dos números da Tabela 4). Nestes casos, a melhor solução factível encontrada é apresentada.

Comparando agora a qualidade da solução, a Tabela 5 mostra a variação média entre os dois métodos, sendo que, esta variação é calculada de acordo com a seguinte fórmula:

Avaliando o desempenho do método heurístico em relação ao método branch and bound do pacote Cplex pode-se observar que, em geral, a heurística apresenta um desempenho muito bom. Observe que, na medida em que o tamanho dos exemplos cresce, o desempenho do método heurístico melhora em relação ao pacote. Isso ocorreu porque, para problemas maiores, a porcentagem de exemplos em que o Cplex obteve a solução ótima decresce (ver Tabela 4) e a qualidade das soluções factíveis encontradas pelo pacote é inferior do que as soluções encontradas pela heurística. Mesmo para problemas pequenos, onde o Cplex obteve a solução ótima, pode-se considerar que a heurística apresenta bons resultados.

Uma outra heurística foi implementada onde se utiliza a escolha da liga por (18') no lugar de (18). Os resultados computacionais são apresentados na Tabela 6 e, para os exemplos em que o Cplex chegou a otimalidade a variação média da solução heurística é de 16,63%. Portanto, em média, os resultados computacionais foram inferiores aos da heurística anterior (Tabela 5). Isso ocorreu devido a alguns exemplos (cerca de 1% do total de exemplos) onde a heurística com (18') apresentou resultados muito ruins fazendo piorar a média geral. Isso mostra que a heurística com a escolha (18) é mais robusta, enfatizando a importância de escolher ligas que produzam itens pertencentes ao conjunto Btde itens críticos.

O modelo matemático e o método de solução proposto por Santos-Meza et al. (2002) foram utilizados para tentar resolver os exemplos do presente trabalho. Entretanto, o fato de não permitir atraso no atendimento da demanda fez com que em nenhum dos exemplos o método proposto em Santos-Meza et al. (2002) conseguisse encontrar uma solução factível. Foi possível constatar que, para exemplos com capacidade apertada e normal (b =0,6 e 1,0) as infactibilidades ocorreram principalmente devido à violação das restrições de capacidade. Entretanto, para exemplos com capacidade folgada (b =1,4) a maioria das infactibilidades ocorreram devido à falta de liga capaz de produzir todos os itens demandados em cada período (Ct, para algum período t).

A Tabela 7 apresenta a porcentagem de exemplos em que a causa das infactibilidades foi a violação das restrições de capacidade. Como todos os exemplos foram infactíveis, o complementar desta porcentagem representa os exemplos em que a falta de liga foi a causa das infactibilidades.

A consideração de demanda positiva no primeiro período de planejamento tornou os exemplos difíceis de serem resolvidos sem considerar atrasos, pois no primeiro período não é possível atender a demanda pelos estoques. Tais infactibilidades não ocorreram em Santos-Meza et al. (2002), pois para realização dos testes computacionais, os autores utilizaram uma estrutura especial para a geração da demanda, ou seja, no primeiro período não existe demanda e, além disso, para exemplos maiores (mais de 45 itens), a matriz de demanda foi gerada numa estrutura de escada (por exemplo, existe demanda para os itens i=1, ..., 15 somente nos períodos t=1, 2, 3; demanda para os itens i=13, ..., 25 somente ocorrem nos períodos t=4, 5, 6...) evitando a falta de liga que produza todos os itens demandados. Os autores argumentaram que este tipo de estrutura ocorre em alguns problemas práticos, devido à formação de lotes em estágios subseqüentes.

6. Conclusão

Este artigo foi baseado num trabalho anterior desenvolvido por Santos-Meza et al. (2002) que trata de um problema prático encontrado numa fundição de médio porte. Com a intenção de tornar o modelo mais geral e mais próximo da realidade, neste trabalho é proposto um modelo estendido considerando custo de preparação e permitindo atraso no atendimento à demanda (o que, em muitos casos práticos, é inevitável). Desta forma, foi possível obter soluções mesmo com a redução da capacidade do forno.

O modelo proposto consiste num modelo de programação inteira mista de difícil resolução. Após a análise dos resultados computacionais foi possível ressaltar a importância do desenvolvimento de métodos heurísticos baseados em características específicas do problema, pois, além do baixo custo de implantação, em termos de tempo computacional o método heurístico desenvolvido se mostrou perfeitamente aplicável a problemas práticos de grande escala. Em termos de qualidade da solução o método foi bastante eficiente, principalmente quando se tem em mente que em problemas práticos, a busca pela otimalidade muitas vezes não se faz realmente necessária, pois os dados são geralmente imprecisos tais como, as penalidades por atraso e custos de estoque que são subjetivamente estimados e as previsões de demanda que nem sempre são corretas e sofrem alterações freqüentes.

Como proposta de pesquisa futura tem-se a extensão do modelo e do método de solução para casos onde se tem custo e tempo de preparação dependente da seqüência. Além disso, o modelo deverá ser testado, talvez com pequenas adaptações, em diferentes casos práticos que surgem em outros setores industriais.

Agradecimentos

Os autores agradecem as contribuições feitas pelos árbitros anônimos da revista Pesquisa Operacional, que muito melhoraram esta versão e o apoio da Fundação de Amparo à Pesquisa do Estado de São Paulo (FAPESP) e do Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq).

Recebido em 10/2002; aceito em 08/2003 após 1 revisão

Received October 2002; accepted August 2003 after one revision

Referências bibliográficas

  • (1) ABIFA Associação Brasileira de Fundição (2003). Relatório anual do setor de fundição. <http://www.abifa.org.br>.
  • (2) Allahverdi, A.; Gupta, J.N.D. & Aldowaisan, T. (1999). A Review of Scheduling Research Involving Setup Considerations. Omega, International Journal of Management Science, 27, 219-239.
  • (3) Araujo, S.A. (2003). Modelos e Métodos para o Planejamento e Programação da Produção Aplicados no setor de Fundições. Tese de Doutorado, ICMC-USP/SC.
  • (4) Araujo, S.A.; Arenales, M.N. & Clark, A.R. (2002). A Lot-sizing and Scheduling Problem in a Foundry. Notas do ICMC, n. 68.
  • (5) Bahl, H.C.; Ritzman, L.P. & Gupta, J.N.D. (1987). Determining Lot Sizes and Resource Requirements: A Review. Operations Research, 35, 329-345.
  • (6) Bowers, M.R.; Kaplan, L.A. & Hooker, T.L. (1995). A Two-Phase Model for Planning the Production of Aluminum Ingot. European Journal of Operational Research, 81, 105-114.
  • (7) Drexl, A. & Kimms, A. (1997). Lot Sizing and Scheduling Survey and Extensions. European Journal of Operational Research, 99, 221-235.
  • (8) Fourer, R.; Gay, D.M. & Kernighan B.W. (1993). AMPL A Modeling Language for Mathematical Programming Boyd and Frase, Danvers, Massachusetts. <http://www.ampl.com>.
  • (9) Gravel, M.; Price, W.L. & Gagné, C. (2000). Scheduling Jobs in an Alcan Aluminium Foundry Using a Genetic Algorithm. International Journal of Production Research, 38(13), 3031-3041.
  • (10) Hamada, K.; Baba, T.; Sato, K. & Yufu, M. (1995). Hybridizing a Genetic Algorithm with Rule-based Reasoning for production Planning. IEEE Expert, 10, 60-67.
  • (11) Hendry, L.C.; Fok, K.K. & Shek, K.W. (1996). A Cutting Stock and Scheduling Problem in the Copper Industry. Journal of Operational Research Society, 47(1), 38-47.
  • (12) ILOG CPLEX 7.1 User's Manual (2001). ILOG S.A., BP 85, 9 Rue de Verdun, 94253 Gentilly Cedex, France. <http://www.ilog.com>.
  • (13) Kuik, R.; Salomom, M. & Van Wassenhose, L.N. (1994). Batching Decisions: Structure and Models. European Journal of Operational Research, 75, 243-263.
  • (14) Lee, H.S.; Murthy, S.S.; Haider, S.W. & Morse, D.V. (1996). Primary Production Scheduling at Steelmaking Industries. IBM Journal of Research and Development, 40(2), 231-252.
  • (15) Lopes, L.; Carter, M.W. & Gendreau, M. (1998). The Hot Strip Mill Production Scheduling Problem: a tabu Search Approach. European Journal of Operational Research, 106, 317-335.
  • (16) Petersen, C.M.; Sorensen, K.L. & Vidal, R.V.V. (1992). Inter-process Synchronization in the Steel Production. International Journal of production Research, 30(6), 1415-1425.
  • (17) Potts, C.N. & Van Wassenhove, L.N. (1992). Integrating Scheduling with Batching and Lot-Sizing: a Review of Algorithms and Complexity. Journal of Operational Research Society, 43(5), 395-406.
  • (18) Potts, C.N. & Kovalyov, M.Y. (2000). Scheduling with Batching: a review. European Journal of Operational Research, 120, 228-249.
  • (19) Santos-Meza, E.; Santos, M.O. & Arenales, M.N. (2002). A Lot-Sizing Problem in an Automated Foundry. European Journal of Operational Research, 139(2), 490-500.
  • (20) Sounderpandian, J. & Balashanmugam, B. (1991). Multiproduct, Multifacility scheduling Using the Transportation Model: a Case Study. Production and Inventory Management Journal, 32(4), 69-73.
  • (21) Tang, L.; Liu, J.; Rong, A. & Yang, Z. (2000a). A Multiple Traveling Salesman Problem Model for Hot Rolling Scheduling in Shanghai Baoshan Iron & Steel Complex. European Journal of Operational Research, 124, 267-282.
  • (22) Tang, L.; Liu, J.; Rong, A. & Yang, Z. (2000b). A Mathematical Programming Model for Scheduling Steelmaking-Continuous Casting Production. European Journal of Operational Research, 120, 423-435.
  • (23) Tang, L.; Liu, J.; Rong, A. & Yang, Z. (2001). A Review of Planning and Scheduling Systems and Methods for Integrated Steel Production. European Journal of Operational Research, 133, 1-20.
  • (24) Trigeiro, W.W.; Thomas, L.J. & McClain, J.O. (1989). Capacitated Lot Sizing With Setup Times. Management Science, 35, 353-366.
  • *
    Corresponding author / autor para quem as correspondências devem ser encaminhadas
  • Datas de Publicação

    • Publicação nesta coleção
      13 Fev 2004
    • Data do Fascículo
      Dez 2003

    Histórico

    • Aceito
      Ago 2003
    • Recebido
      Out 2002
    location_on
    Sociedade Brasileira de Pesquisa Operacional Rua Mayrink Veiga, 32 - sala 601 - Centro, 20090-050 , Tel.: +55 21 2263-0499 - Rio de Janeiro - RJ - Brazil
    E-mail: sobrapo@sobrapo.org.br
    rss_feed Stay informed of issues for this journal through your RSS reader
    Acessibilidade / Reportar erro