Accessibility / Report Error

Otimização da programação de cargas de forno em uma fábrica de fundição em aço-inox

Optimizing the scheduling of furnace loadings in a inox-steel foundry

Resumos

Neste trabalho apresenta-se uma abordagem para otimizar a programação de cargas de forno em fundições de mercado de pequeno porte. Tal abordagem consiste, basicamente, em definir a programação dos fornos para produzir uma carteira de pedidos composta de diversas peças em ligas metálicas variadas, de maneira a maximizar a produtividade (ou a margem de contribuição ao lucro) e satisfazer prazos de entrega e restrições de processo. O procedimento proposto é baseado na teoria dos problemas de corte e empacotamento; ele combina uma heurística construtiva gulosa com o clássico problema da mochila. Para validá-lo, um estudo de caso foi realizado numa fundição em aço-inox localizada em São Carlos, SP. Os resultados da simulação de duas semanas de produção da empresa mostraram que o procedimento é capaz de produzir soluções melhores do que as utilizadas pela empresa.

programação da produção; fundição em aço-inox; cargas de fornos; problemas de corte e empacotamento; heurísticas


This study presents an approach to optimize the scheduling of furnace loadings in small size foundries. The approach consists of determining a furnace scheduling to produce all ordered items in such a way as to maximize productivity (or profit contribution) and satisfy due dates and process restraints. It is based on the theory of cutting and packing problems; it combines a greedy constructive heuristic and the classical knapsack problem. To validate the approach, a case study was developed in a inox-steel foundry located in São Carlos, SP. The results obtained simulating two weeks of the company production showed that the procedure is able to generate better solutions than the ones used by the company.

production scheduling; steel foundry; furnace loadings; cutting and packing problems; heuristics


Otimização da programação de cargas de forno em uma fábrica de fundição em aço-inox

Optimizing the scheduling of furnace loadings in a inox-steel foundry

Raida de Jesus SilvaI; Reinaldo MorabitoII

IDepartamento de Engenharia Mecânica, Universidade de Twente, Holanda, e-mail: R.J.Silva@ctw.utwente.nl

IIDepartamento de Engenharia de Produção, Universidade Federal de São Carlos, C.P. 676, CEP 13565-905, e-mail: morabito@power.ufscar.br

RESUMO

Neste trabalho apresenta-se uma abordagem para otimizar a programação de cargas de forno em fundições de mercado de pequeno porte. Tal abordagem consiste, basicamente, em definir a programação dos fornos para produzir uma carteira de pedidos composta de diversas peças em ligas metálicas variadas, de maneira a maximizar a produtividade (ou a margem de contribuição ao lucro) e satisfazer prazos de entrega e restrições de processo. O procedimento proposto é baseado na teoria dos problemas de corte e empacotamento; ele combina uma heurística construtiva gulosa com o clássico problema da mochila. Para validá-lo, um estudo de caso foi realizado numa fundição em aço-inox localizada em São Carlos, SP. Os resultados da simulação de duas semanas de produção da empresa mostraram que o procedimento é capaz de produzir soluções melhores do que as utilizadas pela empresa.

Palavras-chave: programação da produção, fundição em aço-inox, cargas de fornos, problemas de corte e empacotamento, heurísticas.

ABSTRACT

This study presents an approach to optimize the scheduling of furnace loadings in small size foundries. The approach consists of determining a furnace scheduling to produce all ordered items in such a way as to maximize productivity (or profit contribution) and satisfy due dates and process restraints. It is based on the theory of cutting and packing problems; it combines a greedy constructive heuristic and the classical knapsack problem. To validate the approach, a case study was developed in a inox-steel foundry located in São Carlos, SP. The results obtained simulating two weeks of the company production showed that the procedure is able to generate better solutions than the ones used by the company.

Key words: production scheduling, steel foundry, furnace loadings, cutting and packing problems, heuristics.

1. Introdução

O setor de fundição caracteriza-se pela produção de bens intermediários, ou seja, a grande maioria das peças fundidas é fornecida para indústrias diversas e apenas uma parcela reduzida dessas peças segue diretamente para o consumidor final. No Brasil, as fundições estão presentes em quase todas as regiões, gerando mais de 45 mil empregos diretos e produzindo desde peças simples de uso doméstico até peças mais sofisticadas, como autopeças e partes de máquinas e equipamentos de uso industrial (Abifa, 2002). A diversidade no uso de metais fundidos é resultado das vantagens funcionais e benefícios econômicos que a indústria de fundição oferece, comparada a outros métodos de conformação de metais. Os benefícios de um componente fundido estão diretamente relacionados à versatilidade inerente aos processos de fundição (Kanicki, 1988). Duas etapas básicas compõem o processo de fundição: moldagem e fusão. A combinação dessas duas etapas gera inúmeras variações no processo. Além disso, diversos tipos de metais podem ser fundidos (Campos & Davies, 1978; Chiaverini, 1986).

Entre as fundições existem as que se dedicam exclusivamente às vendas para terceiros, chamadas fundições de mercado, e as fundições cativas, que, em geral, são departamentos de empresas cuja produção destina-se basicamente para consumo próprio. A maior parte da produção brasileira é consumida pelas indústrias automotivas e siderúrgicas (fundições cativas), ficando apenas uma pequena parte para os setores da indústria mecânica e infra-estrutura (fundições de mercado). Para um exame das fundições de mercado no interior do Estado de São Paulo, o leitor pode consultar Fernandes & Leite (2002). Demanda relativamente baixa e ausência de política de mercado estável caracterizam as fundições de mercado como empresas de pequeno ou médio porte, em geral carentes de estrutura gerencial bem organizada. Com as oscilações de demanda e o volume de produção é comum ocorrerem problemas como falta de material, atraso na entrega dos pedidos, sobrecarga de alguns equipamentos e ociosidade de outros.

Parte desses problemas são devidos à falta de uma programação mais adequada da produção das fornadas. As peças encomendadas em carteira precisam ser combinadas de maneira a maximizar o aproveitamento da capacidade dos fornos. Essa combinação deve levar em conta, para cada peça, o material, o peso, a quantidade, o prazo de entrega, a margem de contribuição, entre outros. Além da restrição de capacidade de cada forno, podem aparecer outras restrições menos usuais, por exemplo, limitações no número de fornos que podem estar ligados ao mesmo tempo. Isso tudo caracteriza um interessante problema de otimização combinatória que o programador da produção tem dificuldade de resolver de maneira eficaz.

Motivado por essas dificuldades, o presente trabalho apresenta uma abordagem heurística para otimizar a programação da produção em fundições de mercado de pequeno porte. Tal abordagem baseia-se nos problemas de corte e empacotamento (PCE) unidimensionais (Morabito & Arenales, 1992; Dyckhoff et al., 1997; Arenales et al., 1999): as peças a serem fundidas correspondem às "unidades pequenas" (com dimensões iguais aos pesos das peças), os fornos correspondem às "unidades grandes" (com dimensões iguais às capacidades dos fornos), e o problema envolve cortar (ou empacotar) unidades pequenas a partir (dentro) de unidades grandes, de maneira a otimizar o aproveitamento destas.

O método proposto determina a programação da produção de diferentes ligas metálicas nos fornos, de maneira a produzir as peças de cada liga demandadas na carteira de pedidos dos clientes, dando prioridade aos programas que otimizem algum critério, por exemplo, que maximizem a produtividade do processo ou a margem de contribuição ao lucro. Para validar a abordagem, um estudo de caso foi desenvolvido em uma fundição de mercado em aço-inox localizada na cidade de São Carlos, SP. Aços inoxidáveis englobam uma família de ligas ferrosas (com pelo menos 12% de cromo) que se caracterizam por resistirem à corrosão atmosférica, embora também possam resistir à ação de outros meios gasosos e líquidos (Chiaverini, 1986). Os resultados da simulação de duas semanas reais de produção mostraram que a abordagem é capaz de produzir soluções melhores do que as utilizadas pela empresa, do ponto de vista de produtividade.

Poucas publicações são encontradas na literatura relacionadas ao presente problema, principalmente em fundições de pequeno e médio porte, conforme mostram os exames em Silva (2001) e Araujo & Arenales (2003). A maioria dos trabalhos trata do problema de programação da produção em grandes siderúrgicas (Tang et al., 2001), ou fundições de mercado de porte bem maior do que a do presente estudo de caso e/ou com características diferentes. Por exemplo, Sounderpandian & Balashanmugam (1991) estudaram um problema semelhante em termos organizacionais em uma fundição bem maior, porém, o método de solução apresentado, baseado no clássico problema de transporte, dificilmente poderia ser aplicado ao presente estudo, em razão do problema combinatório envolvido em cada programação de fornadas. O mesmo ocorre em relação aos estudos em Vianna & Arenales (1995), Santos-Meza et al. (2002) e Araujo et al. (2003), que apresentaram modelos de programação linear inteira para uma fundição automatizada, porém, a capacidade dos fornos por período é considerada de maneira agregada. Bowers et al. (1995), Hendry et al. (1996) e Gravel et al. (2000) estudaram fundições de alumínio e cobre com características diferentes da presente fundição de aço-inox, já Liang (1995) estudou um problema de carregamento de fornos em uma indústria metalúrgica, porém, o problema envolve certos arranjos dentro dos fornos que o caracterizam como um PCE bidimensional. Portanto, as abordagens propostas nesses trabalhos não podem ser diretamente aplicadas no presente estudo de caso. Já o trabalho de Voorhis et al. (2001) trata do mesmo problema deste estudo, porém, com uma visão mais abrangente, que programa as fornadas visando a diminuir o trabalho em processo (WIP) e o tempo de ciclo. Seria interessante considerar tal abordagem se a utilização da programação proposta no presente estudo gerar problemas de gargalos nas outras etapas da produção.

Este trabalho está organizado da seguinte maneira: na seção 2, descreve-se o processo de fundição do estudo de caso. Na seção 3, modela-se a programação da produção dos fornos como um PCE unidimensional e discute-se uma abordagem de solução. Na seção 4, apresenta-se em detalhes um algoritmo para resolver o problema baseado em uma heurística construtiva gulosa combinada com o clássico problema da mochila. Na seção 5, analisam-se os resultados computacionais obtidos com a aplicação do algoritmo em situações reais do estudo de caso. Finalmente, na seção 6, apresentam-se as conclusões e perspectivas para pesquisa futura.

2. Caracterização do processo de fundição

O processo de fundição em aço-inox da fábrica aqui estudada é o de moldagem manual em areia com forno de indução magnética e vazamento por gravidade. O mix de produtos da fábrica consiste em peças fundidas em diversas ligas, formas e em quantidades variadas, dependendo dos pedidos dos clientes. A Figura 1 apresenta o fluxograma para o processo de fundição dessa fábrica. Uma peça encomendada é fabricada a partir de um modelo (Figura 1) fornecido pelo próprio cliente ou confeccionado por terceiros. Com esse modelo é fabricado o molde e, se necessário, o(s) macho(s). O conjunto (molde/machos) é então preparado para ser utilizado na conformação do metal fundido na seção denominada fechamento (Figura 1). O metal fundido pode ser aço inoxidável (cerca de 80% da produção da fábrica) ou aços-liga de baixo carbono (CDH, 1973). Independentemente da composição do fundido, o molde utilizado é feito da mesma forma, sendo descartado após o resfriamento do metal dentro dele, e a areia já utilizada é recondicionada e adicionada à areia nova (Figura 1), a fim de ser reaproveitada no processo. A capacidade produtiva, neste caso, é limitada pelo forno, pois é a fonte fornecedora de matéria-prima básica para o processo.


A fábrica estudada possui três fornos, aqui denominados fornos 1, 2 e 3, com capacidades de fusão de 40, 120 e 330 kg, respectivamente (em alguns casos essas capacidades podem ser consideradas de 45, 130 e 330 kg). O forno menor (forno 1) geralmente é utilizado para fundir os aços refratários, em razão das características das peças encomendadas nesses materiais. Ou seja, como esses materiais possuem melhores propriedades e mais elementos de liga, seu custo é alto, o que leva os projetistas a fazerem os equipamentos em aços-liga (por exemplo, CF8 ou CF8M) e projetarem apenas as partes mais solicitadas em materiais de resistência mais específica e, em geral, em tamanhos (pesos) pequenos.

A matéria-prima para a confecção das peças consiste em sucata de aço e elementos de liga (Figura 1), adicionados ao forno nas proporções necessárias para a obtenção das composições exigidas pela norma da liga que está sendo fabricada. A sucata geralmente é comprada de terceiros, mas também pode ser constituída de canais de alimentação, montantes e massalotes que sobram do corte das peças depois de fundidas, ou ainda de peças refugadas depois de rebarbadas por apresentarem defeitos de solidificação (Figura 1). Em geral, há muitas formas de combinar essas diferentes matérias-primas para atingir a composição desejada de determinada liga. A utilização do clássico problema da mistura (Johnson & Montgomery, 1974; Swersey, 1994; Nahmias, 1995) gera carregamentos de forno que minimizam os custos com matéria-prima, a partir das composições das sucatas existentes e outros materiais.

A programação da produção dos fornos em geral é "empurrada" pelo setor de moldagem. A partir da carteira de pedidos existente é dada uma ordem de fabricação para que o setor de moldagem construa os moldes. O setor de moldagem é o fornecedor do setor de fundição e possui papel importante na ordem de produção. Pode haver um seqüenciamento da construção dos moldes de acordo com os tamanhos da peça (peças menores são mais demoradas e mais difíceis para moldar), as ligas das peças (a margem de lucro de ligas especiais é maior que das outras), os prazos de entrega e os clientes preferenciais. Porém, é comum o aparecimento de estoques intermediários de moldes de areia para serem utilizados no setor de fundição, subutilizando a capacidade desse setor.

Cada vez que se enche o forno com metal sólido e este, depois de líquido, é passado para as panelas, acontece a chamada "corrida", aqui referida como carga ou fornada. Cada forno é ligado sempre uma hora e meia antes do início do dia de trabalho, pois a primeira carga de cada forno tem tempo de preparo mais demorado, decorrente do tempo necessário para que o forno alcance a temperatura de trabalho normal. A Tabela 1 apresenta detalhes sobre as capacidades de funcionamento de cada um dos fornos. Para outros detalhes do presente processo de fundição, consultar Silva (2001).

A idéia do presente trabalho consiste em modificar o sistema de programação das cargas de forno da empresa, utilizando um modelo de otimização baseado na estrutura dos PCE, conforme descrito a seguir. O objetivo é encontrar os "melhores" carregamentos para cada forno, baseados na maximização da produtividade ou da margem de contribuição ao lucro. A partir da programação antecipada das cargas, espera-se que seja possível "puxar" a produção de moldes, empregando critérios de decisão mais efetivos do que os utilizados pela empresa.

3. Caracterização do problema como um PCE

Considere que todas as peças demandadas em carteira tenham prazo de entrega no final do planejamento da carteira, usualmente com duração de uma semana. Como o metal despejado dos fornos para a formação das peças está na forma líquida, pode-se considerar a capacidade do forno como uma barra de comprimento L, que será dividida em cargas menores de comprimento li, ou seja, o peso de cada peça i a ser produzida na fornada, mais um comprimento restante que corresponde à capacidade ociosa do forno. Dessa maneira, a soma dos pesos das peças i corresponde ao peso total da fornada, menor ou igual a L. Assim, tem-se aqui um PCE unidimensional.

A fábrica estudada possui três fornos de tamanhos diferentes. Cada forno pode ser carregado várias vezes ao dia, e podem ser necessários vários dias para atender a demanda de peças da carteira de pedidos. Assim, esse problema envolve uma seleção de unidades grandes (cargas de forno) para produzir todas as unidades pequenas (peças), podendo ser classificado conforme a tipologia de Dyckhoff (1990) como um PCE do tipo 1/V/D/M ("1" significa que o problema é unidimensional, "V" indica uma seleção de unidades grandes, no caso as cargas dos fornos, "D" indica vários fornos de tamanhos diferentes, e "M" indica muitas peças de tamanhos diferentes para serem fundidas).

Entretanto, por simplificação, decidiu-se considerar um dia de produção por vez. Em decorrência das restrições de processo, pode-se ter 15 combinações possíveis de cargas de fornos durante um dia, como, por exemplo, a combinação: 2 fornadas no forno 1, 8 fornadas no forno 2 e 0 fornadas no forno 3, com capacidade diária de 1.040 kg, conforme é discutido adiante na Tabela 2. Dessa maneira, o problema de programar as cargas de fornos em um dia passa a ser visto como um PCE do tipo 1/B/D/M (em que "B" agora indica que o problema envolve uma seleção de peças para serem produzidas a partir de certo conjunto de fornadas em um dia). Tal problema pode ser modelado como uma extensão de um problema multimochilas (Oshiro, 2001): seja Lj a capacidade (do forno) da fornada j, li e Di o peso e a demanda da peça i, respectivamente, e aik= 1, se a peça i usa a liga k e aik = 0, caso contrário, satisfazendo Skaik para todo i. As variáveis de decisão são:

• xij = número de peças i na fornada j;

• yjk = 1, se a fornada j faz a liga k, e 0, caso contrário.

O modelo de programação linear inteira é dado por:

A função objetivo (1) maximiza o peso total das peças produzidas, conseqüentemente, maximiza a produtividade dos fornos (essa função pode ser adaptada para maximizar a margem de contribuição ao lucro das peças produzidas). As restrições (2) garantem que o peso de cada fornada j não será maior que a capacidade do forno Lj, nem menor que 1/3 dessa capacidade (conforme discussão na próxima seção). As restrições (3) garantem que a quantidade produzida de peças i não será maior que a quantidade demandada Di (na fábrica estudada é comum ter-se Di = 1). As restrições (4) garantem que cada fornada j fará somente a liga k. As restrições (5) garantem que peças i que usam a liga k só podem ser produzidas na fornada j se esta estiver fazendo a liga k. Finalmente, as restrições (6) referem-se à integralidade das variáveis xij e yjk. Note que o modelo (1)-(6) é de difícil solução exata em razão do número de variáveis inteiras que ele pode envolver nas situações reais (tipicamente com dezenas de ligas, centenas de tipos de peças e várias fornadas por dia), conforme é ilustrado na seção 5.

Para resolver o problema original 1/V/D/M, utiliza-se uma heurística construtiva gulosa que, em cada dia de produção, procura pela combinação de cargas de fornos (padrões de carregamento) mais valiosa, ou seja, resolve um problema 1/B/D/M (modelo (1)-(6)). Em vez de utilizar um método exato, cada problema 1/B/D/M é resolvido aproximadamente por meio de uma seqüência de problemas da mochila (isto é, problemas do tipo 1/B/O/M, em que "O" significa que se está considerando apenas um forno por vez). Para outros detalhes sobre o problema da mochila, consultar Salkin & De Kluyver (1975) e Martello & Toth (1990). Hinxman (1980), Morabito & Garcia (1998) e Silveira & Morabito (2002) descreveram uma heurística construtiva gulosa (repeated exhaustion reduction) para o PCE basicamente como:

Enquanto a demanda não for satisfeita, faça:

• Passo 1: gere o melhor padrão de carregamento (carga de um forno).

• Passo 2: repita este padrão o máximo número de vezes possível, em função da demanda.

• Passo 3: atualize a demanda.

No caso do presente problema, os Passos 1 e 2 se fundem, pois ocorre a escolha de uma combinação de cargas de fornos (conjunto de padrões de carregamento) mais valiosa para um dia de produção, com a aplicação desses padrões uma única vez. Depois da atualização da demanda (Passo 3), uma nova combinação de cargas de fornos é gerada para o dia seguinte, e assim sucessivamente, até esgotar toda a demanda. O objetivo do problema pode estar relacionado à capacidade de produção (minimização da capacidade ociosa dos fornos ou maximização da produtividade dos fornos) ou aos custos de produção (minimização dos custos de produção ou maximização da margem de contribuição ao lucro).

4. Algoritmo de solução

A seguir apresenta-se resumidamente o algoritmo de solução baseado na abordagem descrita anteriormente (cada passo do algoritmo é detalhado logo adiante).

• Passo 1: preparo de dados.

Passo 1.1: preparo da lista de combinações de cargas: prepare a lista das possíveis combinações de fornadas, levando em conta as restrições de capacidade diária do processo. Para cada forno f, determine o número máximo de fornadas Nf, entre todas as combinações.

Passo 1.2: preparo das subcarteiras de ligas: separe a carteira de pedidos em subcarteiras, uma para cada liga diferente, contendo as peças a serem fundidas em cada liga. Faça dia d ¬ 1.

• Passo 2: associação das ligas com os fornos: para o dia d, associe as possíveis listas de subcarteiras de ligas para cada forno f, levando-se em conta as restrições de peso e capacidade mínima do forno f. Note que, neste passo, pode-se ter uma mesma subcarteira associada a mais de um forno.

• Passo 3: determinação das melhores mochilas para cada forno: determine as melhores Nf mochilas para cada forno f, admitindo-se que todas as subcarteiras associadas a este forno estão disponíveis. Armazene estas soluções em Vetorf.

• Passo 4: escolha da combinação mais valiosa para cada dia: faça combinação j ¬ 1 e valor da melhor solução encontrada até então Vmax ¬ 0. Enquanto j < Jmax, o número máximo de combinações, faça:

Passo 4.1: para a combinação j, calcule um limitante superior para o valor do lucro desta combinação utilizando as soluções armazenadas no Passo 3. Faça o valor da combinação j, Vj ¬ 0.

Passo 4.2: se este limitante for menor ou igual a Vmax, então j ¬ j + 1 e volte para o Passo 4.1. Caso contrário, vá para o Passo 4.3.

Passo 4.3: se a combinação utilizar apenas um forno f, tome as melhores mochilas para este forno computadas no Passo 3. Caso contrário, vá para o Passo 4.4. Se a solução obtida Vj for maior que Vmax, atualize Vmax. Faça j ¬ j + 1, e volte para o Passo 4.1.

Passo 4.4: como a combinação j envolve mais de um forno, para cada forno f desta combinação, armazene as Nf melhores mochilas do Passo 3 na lista Lf. Passo 4.4.1: escolha a mochila mais valiosa entre as listas e some o valor dessa mochila em Vj. Atualize a sub-carteira associada a esta mochila, debitando as peças produzidas.

Passo 4.4.2: elimine a mochila escolhida da lista correspondente e atualize as outras listas Lf contendo mochilas da mesma liga. Atualize o número de cargas restantes na combinação j, debitando uma fornada do forno da mochila escolhida. Se ainda existirem cargas disponíveis na combinação j, volte para o Passo 4.4.1. Caso contrário, a solução Vj da combinação j foi encontrada. Se Vj for maior que Vmax, atualize Vmax. Faça j ¬ j + 1, e volte para o Passo 4.1.

• Passo 5: Atualização da carteira: no final do Passo 4, tem-se a melhor combinação encontrada com valor Vmax, para o dia d. Adote esta solução para o dia d e atualize a carteira, debitando as peças que pertencem à solução. Se ainda houver peças na carteira, faça dia d ¬ d + 1 e volte para o Passo 2. Caso contrário, a programação das cargas dos fornos está terminada.

4.1 Detalhamento do algoritmo

• Passo 1: preparo de dados.

Passo 1.1: preparo da lista de combinações de cargas.

A lista de possíveis combinações de cargas contém todos os modos de ligar os fornos da fábrica em um dia de trabalho, ou seja, é uma lista com todas as possibilidades de funcionamento diário dos fornos. Cada combinação j contém o número de fornadas diárias Nfj que pode ser feito em cada forno f. Por exemplo, uma combinação j com duas fornadas no forno 1 (N1j = 2), uma fornada no forno 2 (N2j = 1) e uma fornada no forno 3 (N3j = 1). A lista das possíveis combinações encontra-se na Tabela 2, em ordem decrescente de capacidade (em peso) de produção. Note que, entre as combinações possíveis, a que utiliza o maior número de fornadas do forno 1 é a combinação 11 (isto é, N1,11 = 5); do forno 2 é a combinação 5 (isto é, N2,5 = 10); e do forno 3 é a combinação 1 (isto é, N3,1 = 6). Desta forma, o número máximo de fornadas diárias Nf de cada forno f é: N1 = 5, N2 = 10 e N3 = 6.

Para o preparo dessa lista de 15 possíveis combinações de cargas são levados em conta, além da duração da jornada de trabalho, os seguintes fatores: o forno 3, de 330 kg, não pode ser ligado simultaneamente com o forno 2, de 120 kg, pois ambos estão conectados ao mesmo painel de controle, o qual não tem capacidade para operar os dois equipamentos ao mesmo tempo. Além disso, o forno 3 também não pode ser ligado simultaneamente com o forno 1, de 40 kg. Isso porque, embora o forno 1 tenha um painel independente, a potência somada dos fornos 1 e 3 é maior que a potência do transformador existente na fábrica. Para que os fornos 1 e 2 operassem simultaneamente seria necessário baixar a potência de operação do forno 2, a fim de evitar problema semelhante ao dos fornos 1 e 3. Conseqüentemente, os tempos de operação e a capacidade diária dos fornos 2 e 3 seriam alterados, passando para, no máximo, 7 cargas por dia no forno 2 e 4 cargas por dia no forno 3.

Passo 1.2: preparo das subcarteiras de ligas.

A partir da lista de peças com pedidos em carteira, é preparada uma tabela contendo as informações sobre cada peça: nome, liga, peso unitário, demanda e lucro por peça (por motivo de espaço, essas informações não foram anexadas, mas estão detalhadas em Silva (2001) nas tabelas Carteira). De acordo com a liga em que deverá ser fundida, cada peça é associada a uma subcarteira de ligas a serem fundidas. A Figura 2 mostra esquema do Passo 1.

• Passo 2: associação das subcarteiras de ligas com os fornos.


A Figura 3 ilustra a associação das k ligas e das n peças aos F fornos. Para isso, as subcarteiras criadas no passo anterior são associadas a cada um dos possíveis fornos, levando-se em conta as restrições de peso e de capacidade máxima de cada forno (CapFornof). A restrição de peso é excluir da lista daquele forno peças com peso unitário maior que sua capacidade, isto é, se o peso da peça pi for maior que CapFornof, elimina-se a peça pi da subcarteira associada ao forno f (Figura 3). Note que se pode ter uma mesma subcarteira associada a mais de um forno.


A restrição de capacidade mínima consiste em desassociar do forno uma subcarteira com peso total menor do que 1/3 de sua capacidade, isto é, se o peso total da subcarteira da liga k associada ao forno f (PesoTotkf) for menor que CapFornof/3, esta subcarteira é eliminada (Figura 3). Porém, para o forno 1, de 40 kg, essa restrição não é considerada, pois pode haver pedidos de ligas especiais com Peso Total menor do que 1/3 dos 40 kg (note que isso não foi considerado na restrição (2) do modelo (1)-(6)). Isto porque, como o Preço de Venda destas ligas é alto, é economicamente viável fazer uma carga maior do que o peso que será utilizado, respeitando o mínimo necessário para realizar o pedido e lingotar o que não for utilizado para reaproveitar em uma próxima carga do mesmo material, em vez de esperar chegar mais algum pedido da mesma liga.

• Passo 3: Determinação das melhores mochilas para cada forno

A Figura 4 representa o fluxograma do processo de seleção das melhores mochilas para cada forno.


Ao final do Passo 2, cada forno f tem uma lista com Nligasf possíveis ligas (subcarteiras), associadas às respectivas peças que podem ser nele produzidas (Figura 4). Utiliza-se então o Procedimento Mochila para calcular, para cada forno f, as Nf mochilas mais valiosas (Figura 4), a partir de suas respectivas subcarteiras. Note que, nesse passo, apesar de ser possível ter uma mesma subcarteira associada a mais de um forno, essa dependência não é considerada para determinar as melhores mochilas para cada forno. Tal procedimento resolve otimamente o seguinte problema da mochila restrito por meio de programação dinâmica (Salkin & De Kluyer, 1975; Martello & Toth, 1990):

Modelo 1/B/O/M – Problema da mochila para sub-carteira k associada ao forno de capacidade L:

em que li e Di são o peso bruto e a demanda da peça i, respectivamente, Pk é o conjunto contendo a carteira de pedidos de cada liga k, pik é o preço de venda por quilo da peça i na liga k, Ck é o custo de produção por quilo da liga k, i é o rendimento da peça i (sem os canais de alimentação). As variáveis de decisão xi representam as quantidades de peças i a serem produzidas na carga L. No caso de se desejar maximizar a utilização do forno, em vez de maximizar a margem de contribuição ao lucro, a função objetivo anterior pode ser facilmente adaptada conforme (1) do modelo (1)-(6).

Observe que o rendimento da peça i é descontado na função objetivo pelo parâmetro i, isto é, após a fusão, nas operações de corte e rebarba, são retirados os canais de vazamento e massalotes (Campos & Davies, 1978). Esses não fazem parte da peça vendida, mas precisam ser fundidos para a peça não apresentar defeitos superficiais de solidificação. Após a retirada desses canais, a peça é pesada, sendo ai a razão entre a peça sem e com canais. Por isso ai aparece no modelo da mochila anteriormente citado, em que o peso vendido é o peso bruto menos canais e massalotes (liai).

A determinação das Nf melhores mochilas para cada forno f é feita da seguinte forma: primeiramente, para cada forno f, resolve-se uma mochila para cada subcarteira k associada a este forno e o resultado da função objetivo (lucro) e as peças escolhidas são armazenadas em Mochila kf, admitindo-se que todas as peças da subcarteira k estão disponíveis (Figura 4). Essas Mochilas kf são ordenadas em ordem decrescente de lucro e as primeiras Nf mochilas são inicialmente armazenadas numa lista (Vetorf). Para as ligas da posição i = 1 até Nf – 1, resolve-se novamente um problema da mochila para a liga armazenada em Vetorfi, ou seja, da mochila que estiver na posição i de Vetorf, desconsiderando-se as peças já utilizadas na mochila anterior. Caso esta nova mochila resulte em lucro maior do que o da Nfh-ésima (com h = i + 1 até Nf) mochila da lista, esta é substituída pela nova mochila, e a lista é reordenada (Figura 4). Ao final do laço, Vetorf contém as peças mais lucrativas a serem feitas em cada forno f, se a fábrica operasse apenas com um dos fornos. Essas informações são utilizadas como solução inicial no Passo 4.

• Passo 4: escolha da combinação mais valiosa para cada dia:

A Figura 5 ilustra os procedimentos utilizados para a escolha da combinação j mais lucrativa, utilizando carteira de pedidos disponível.

Passos 4.1 e 4.2: para a combinação j = 1 até J (neste caso, J = 15) de fornadas dispostas na Tabela 2 do Passo 1, calcula-se um limitante superior para o valor do lucro dessa combinação. Esse limitante é calculado somando-se, para cada forno f, o lucro das primeiras Nfj mochilas da lista deste forno, calculada no Passo 3 e armazenadas e Vetorf, em que Nfj (Nfj < Nf) é o número de cargas do forno f na combinação j. Note que esse procedimento é um limitante superior para o lucro da combinação j, uma vez que se pode ter uma mesma peça pertencente a mais de uma das mochilas somadas, o que é infactível. Se este limitante for menor ou igual ao valor da melhor solução encontrada até então, Vmax, esta combinação pode ser desconsiderada.

Passo 4.3: caso a combinação j utilize somente um forno f (isto é, NFA = 1), a solução é facilmente obtida somando-se os lucros das primeiras Nfj mochilas do Vetorf, calculado no Passo 3. Se esta solução, de valor Vj, for maior do que a melhor solução, Vmax, atualiza-se a melhor solução, Vmax ¬ Vj. Seguindo-se para a próxima combinação j + 1.

Passo 4.4: caso a combinação j utilize mais de um forno, então, para cada forno f desta combinação armazena-se as Nf melhores mochilas do Vetorf do Passo 3 numa lista Lf. Inicialmente, a mochila mais valiosa entre as listas Lf é escolhida, seu lucro é somado ao valor Vj da combinação j e suas peças são debitadas da sub-carteira correspondente. Esta mochila é, portanto, eliminada da lista Lf à que pertence, e o número de fornadas Nfj é atualizado para Nfj ¬ Nfj – 1. As demais listas dessa combinação são dessa forma atualizadas, recalculando-se as mochilas da mesma subcarteira que a mochila escolhida. Essa atualização é feita por meio de um procedimento similar ao do Passo 3, levando-se em conta a subcarteira atualizada e armazenando as melhores mochilas de cada forno em um VetorLinhaf. O Passo 4.4 é repetido até que uma solução Vj para a combinação j seja encontrada. Caso esta seja melhor que Vmax, atualize Vmax, Vmax ¬ Vj. Em seguida, vá para a próxima combinação j + 1.

• Passo 5: atualização da carteira:


Ao sair do Passo 4, tem-se a combinação mais lucrativa Vmax para o dia d. Esta solução é armazenada na tabela de Melhores Combinações (que pode ser verificada nos resultados detalhados das semanas de simulação 1 e 2 contidos em Silva, 2001), e as peças pertencentes a ela são debitadas da Carteira, passando-se ao próximo dia, d ¬ d + 1, de programação ou, se a Carteira já estiver vazia, terminando a programação das cargas dos fornos.

Convém observar que, ao final da semana de programação (isto é, d = 5), pode acontecer de sobrarem itens na carteira sem terem sido programados para serem produzidos. Isso porque as necessidades de produção da carteira podem ser maiores do que a capacidade semanal da fábrica.

Note que, de acordo com o critério do algoritmo, os itens que sobram são os menos lucrativos para a programação semanal, e são então transferidos para a carteira da próxima semana, com prazo de entrega para o final da próxima semana. Caso essas mesmas peças continuem sobrando, o programador de produção poderá decidir por suas inclusões, conforme discutido adiante.

5. Resultados computacionais

O algoritmo da seção anterior foi implementado em linguagem Delphi (Engo, 1997) em um microcomputador Pentium (com 300 MHz e 128 Mb de memória RAM). Para avaliar o desempenho da abordagem, foram utilizados dados de produção reais de duas semanas distintas da fábrica estudada, escolhidas ao acaso. Convém salientar que as análises ficaram restritas a apenas duas semanas em razão, principalmente, das dificuldades de levantamento de dados na empresa e da posterior análise dos resultados com os tomadores de decisão da empresa. Na semana 1 o número de ligas refratárias presentes é pequeno, com uma carteira de pedidos não muito variada em termos de número de ligas a serem feitas, porém com grande número de peças diferentes. Na semana 2 o número de ligas refratárias é maior, diminuindo o peso por peça (em razão dos tipos de peças que geralmente são produzidos nesses materiais). Em ambas as semanas, os prazos de entrega das peças são admitidos como sendo no final de cada semana.

A Tabela 3 apresenta um resumo da carteira de pedidos da semana 1, com 9 ligas diferentes e um total de 5.858,30 kg distribuídos em 487 peças, ou seja, um peso médio de 12,03 kg por peça. Por motivo de espaço, os demais dados da carteira de pedidos da semana 1 não foram anexados, mas estão detalhados em Silva (2001). Ao analisar a programação da produção utilizada pela fábrica (essa programação está resumida na Tabela 4, mas encontra-se detalhada em Silva, 2001), nota-se que ocorreu um problema de sobre-utilização dos fornos, isto é, há fornadas em que foi fundida mais que a capacidade do forno (compare Tabelas 4 e 1). Essa sobrecarga é possível do ponto de vista de capacidade do processo, porém não é aconselhável, pois, quando o forno opera com peso maior que sua capacidade nominal, o tempo de fusão aumenta, causando maior desgaste do material refratário do forno, maior consumo de energia e, conseqüentemente, aumento do custo de produção.

Outra irregularidade observada na solução da empresa foi a presença de dois tipos de materiais em uma mesma fornada em dois dias distintos (ver Tabela 4, dias 1 e 3). Essa prática é conhecida como "cargas transformadas". No dia 1, parte de uma fornada de CF8 foi transformada em CF-8C; no dia 3, parte da fornada de CF-8 foi transformada em CF-8M. A diferença entre as ligas CF-8 e CF-8C, e CF-8 e CF-8M está apenas na adição de cádmio (Cd) e molibdênio (Mo), respectivamente, à composição da primeira. O procedimento utilizado neste caso é fazer a carga toda em CF-8 e transformar parte dela, ao transferir o aço fundido para as panelas de vazamento, adicionando Cd (ou Mo) na quantidade adequada. Porém, durante a transferência, ocorre leve resfriamento do aço, não sendo mais possível saber, ao certo, se a temperatura do aço na panela é suficientemente quente para dissolver o Cd (ou Mo) e incorporá-lo à liga. Se isso não ocorrer, a qualidade da peça fica seriamente comprometida. Portanto, esse procedimento não é muito recomendável e, por isso, não foi considerado na abordagem aqui proposta.

O algoritmo em Delphi levou cerca de 8 minutos no microcomputador para obter uma solução e compilar relatórios para o exemplo da semana 1. A Tabela 4 e a Figura 6 comparam essa solução com a solução utilizada pela fábrica. Convém salientar que a solução do algoritmo não contém sobrecargas nos fornos, diferente da solução da fábrica. Além disso, a solução do algoritmo também não envolve cargas transformadas, o que a torna mais apropriada do que a da fábrica. Note que a solução da fábrica utilizou as combinações 1, 5 e 10 (Tabela 2), enquanto a solução do algoritmo utilizou as combinações 1, 4 e 10. A solução do algoritmo priorizou o uso do forno 3, de maior capacidade, deixando para o dia 4 a utilização do forno 1, a fim de fazer as ligas com menos peso em carteira. Nesse dia foi escolhida a combinação 10, com 4 fornadas do forno 1 e 7 do forno 2, que não foram totalmente utilizadas (compare as Tabelas 4 e 2). Dessa forma, é possível transferir a fornada do dia 5 no forno 3 para o dia 4 no forno 2, ao relaxar-se a restrição de capacidade de 120 kg do forno 2, já que a peça programada para o dia 5 pesa 124 kg.


A sugestão para essa maleabilidade foi dada pelo próprio pessoal encarregado da produção na fábrica. De acordo com eles, o dano causado pela sobreutilização da capacidade do forno só é relevante se essa sobreutilização for contínua, isto é, se o forno funcionar por vários dias com sobrecarga. Nesse caso, o material refratário do forno pode perder cerca de 30% de sua vida útil. Entretanto, como a distribuição de peso entre as fornadas não é constante (há cargas com mais de 120 kg e outras com até menos de 80 kg; ver Tabela 4, dia 4) e a sobrecarga é apenas para uma fornada, isso não provocaria maiores problemas. Dessa maneira, a solução do algoritmo produziria toda a carteira em apenas 4 dias, enquanto a solução da fábrica necessitou de 5 dias.

A Tabela 5 apresenta um resumo da carteira de pedidos da semana 2, com 11 ligas diferentes e um total de 5.026,8 kg distribuídos em 357 peças, ou seja, um peso médio de 14,28 kg por peça. Por motivo de espaço, os demais dados da carteira de pedidos da semana 2 não foram anexados, mas estão detalhados em Silva (2001). Ao analisar a programação da produção utilizada pela fábrica (essa programação também está detalhada em Silva, 2001), observa-se que, assim como ocorreu na semana 1, na semana 2 também ocorreu o problema da sobreutilização da capacidade dos fornos e o da utilização de cargas transformadas.

O algoritmo em Delphi consumiu cerca de 5 minutos para gerar uma solução e compilar relatórios do exemplo da semana 2. A Figura 7 compara essa solução com a solução utilizada pela fábrica. Nota-se que é possível fazer as mesmas peças e ligas com um dia a menos de produção (redução de 20%), sem ultrapassar a capacidade dos fornos ou fazer cargas transformadas. Nota-se também que as ligas refratárias, consideradas mais rentáveis, nem sempre foram a melhor opção. De acordo com a solução do algoritmo, o dia 2 mostra utilização mais eficiente em termos de lucro, produzindo apenas aços inoxidáveis não corrosivos, cujo lucro unitário não é tão alto quanto o dos aços refratários, escolhidos para serem produzidos no dia 3. De acordo com os gerentes da fábrica, eles não teriam pensado em usar tais combinações ao fazer a programação manualmente.


Outro ponto a salientar é que a solução do algoritmo produziu as mesmas peças em menos dias, principalmente em decorrência da maior utilização do forno 3 (330 kg) e da baixa produtividade do começo da semana. Considerando-se que o tempo de fusão desse forno é maior que o dos outros, isso não causa problemas em termos de mão-de-obra, pois os funcionários do setor de vazamento podem ser deslocados para o setor de moldagem, caso seja necessário (esse procedimento já vem sendo utilizado em diversas ocasiões, não representando mudança substancial nos relacionamentos de serviço ou no tipo de qualificação dos funcionários).

Em ambas as semanas simuladas, o número de cargas do forno 1 é menor na solução do algoritmo do que na da fábrica, pois a preparação do forno 1 é a mais demorada. Um exemplo é o caso do Ni-Resist da semana 2, que na solução da fábrica foi produzido em duas cargas do forno 1, e na solução do algoritmo foi produzido em apenas uma carga no forno 2, sem utilizar a capacidade total desse forno. De acordo com o pessoal da fábrica, essa é uma estratégia importante que nunca foi observada anteriormente. No entanto, eles sugerem que o algoritmo deve ser modificado para que a carga não seja inferior à metade da capacidade do forno (em vez de 1/3), pois quando o forno está fundindo e o nível de metal não atinge pelo menos metade do forno, o refratário da parte superior (que não possui metal) queima e pode aderir ao forno, deixando a bobina de indução exposta, o que poderia causar um grave acidente.

6. Conclusões e perspectivas

Neste trabalho propõe-se uma abordagem para otimizar a programação de cargas de forno em fundições de mercado de pequeno porte. A abordagem é baseada nos PCE e combina uma heurística construtiva gulosa com o clássico problema da mochila. Um estudo de caso foi realizado em uma fundição em aço-inox localizada em São Carlos, SP. A abordagem proposta foi aplicada para simular duas semanas reais de produção. As soluções obtidas foram melhores que as da fábrica do ponto de vista de produtividade dos fornos, ou seja, toda carteira de pedidos foi produzida necessitando um dia a menos de produção (redução de 20%). Isso pode resultar em grandes vantagens competitivas para fundições de mercado com dificuldades no aproveitamento da capacidade de seus fornos, apresentando, assim, atrasos constantes em seus prazos de entrega. Se for possível produzir a mesma carteira em menos dias, os atrasos nas próximas carteiras seguramente devem diminuir.

Outro aspecto positivo da abordagem é que ela é dinâmica no sentido de que permite a reprogramação da produção em função da chegada de novos pedidos ou pedidos urgentes. Por exemplo, pode-se atualizar a carteira de pedidos diariamente e utilizar a abordagem para reprogramar a produção dos próximos dias. Além disso, em casos em que os prazos de entrega são muito apertados, pode-se adaptar a abordagem para priorizar também os prazos de entrega, além da produtividade dos fornos ou da contribuição ao lucro. Essa priorização poderia ser feita, por exemplo, com auxílio de uma função de penalização ao lucro, à medida que os prazos de entrega das peças fossem se esgotando, de forma a forçar a inclusão dessas peças na programação dos próximos dias. O estudo de tal função de penalização está além do escopo do presente trabalho.

Outra perspectiva interessante para pesquisa futura é formular matematicamente o presente problema como um PCE do tipo 1/V/D/M (lembre-se de que o problema está sendo aproximado por meio de vários problemas do tipo 1/B/D/M) e tentar resolvê-lo por meio de algum método exato. Em particular, tal método poderia resultar em soluções bem melhores se a restrição de dependência entre os fornos fosse relaxada (isto é, se todos os fornos pudessem ser ligados simultaneamente). Na fábrica estudada isso poderia ser obtido com um investimento adicional para a separação dos painéis de controle dos fornos. Outra idéia a ser investigada seria estender o algoritmo aqui proposto para tratar o problema multimochilas 1/B/D/M (modelo (1)-(6)) por meio de algum método exato, em vez de aproximá-lo por meio de vários problemas da mochila 1/B/O/M. Isso poderia melhorar sensivelmente a qualidade das soluções produzidas pelo algoritmo.

7. Agradecimentos

Os autores agradecem aos revisores anônimos pelos úteis comentários e sugestões e à Fultec pela colaboração durante o desenvolvimento desta pesquisa.

Recebido em 12/2/2003

Aceito em 9/3/2004

  • ABIFA Associação Brasileira de Fundição. Relatório anual do setor de fundição Disponível em: http://www.abifa.org.br, 2002.
  • ARAUJO, S.; ARENALES, M. Dimensionamento de lotes e programação de forno numa fundição automatizada de porte médio Notas n. 67. Instituto de Ciências Matemáticas e de Computação, Universidade de São Paulo, São Carlos, 2003.
  • ARENALES, M.; MORABITO, R.; YANASSE, H. Special issue: Cutting and packing problems. Pesquisa Operacional, Rio de Janeiro, v. 19, n. 2, 1999.
  • BOWERS, M.; KAPLAN, L.; HOOKER, T. A two-phase model for planning the production of aluminium ingot. European Journal of Operational Research, v. 81, p. 105-114, 1995.
  • CAMPOS FILHO, M. P.; DAVIES, G. J. Solidificação e fundição de metais Rio de Janeiro: Livros Técnicos e Científicos Editora S.A., 1978.
  • CDH û Casting Design Handbook. Seções steel castings e corrosion-resistant steel castings Ohio: American Society for Metals, Metals Park, 1973.
  • CHIAVERINI, V. Tecnologia mecânica Processos de fabricação e tratamento. 2. ed. São Paulo: MacGrawHill do Brasil, 1986. v. 2.
  • DYCKHOFF, H. A typology of cutting and packing problems. European Journal of Operational Research, North-Holland, 1990, p. 145-149.
  • DYCKHOFF, H.; SCHEITHAUER, G.; TERNO, J. Cutting and packing. In: AMICO, M.; MAFFIOLI, F.; MARTELLO, F. S. (Ed.). Annotated bibliographies in combinatorial optimisation. New York: John Wiley & Sons, 1997. p. 393-414.
  • ENGO, F. Como programar em Delphi 3 Tradução e revisão técnica por Alvaro Antunes. São Paulo: Makron Books, 1997.
  • FERNANDES, F. C.; LEITE, R. Automação industrial e sistemas informatizados de gestão da produção em fundições de mercado. Gestão & Produção, v. 9, n. 3, p. 313-344, 2002.
  • GRAVEL, M.; PRICE, W.; GAGNÉ, C. Scheduling jobs in an Alcan aluminium foundry using a genetic algorithm. International Journal of Production Research, v. 38, n. 13, p. 3031-3041, 2000.
  • HENDRY, L. C.; FOK, K. K.; SHEK, K. W. A cutting stock and scheduling problem in the copper industry. Journal of Operational Research Society, v. 47, n. 1, p. 38-47, 1996.
  • HINXMAN, A. I. The trim loss and assortment problems: A survey. European Journal of Operational Research, v. 5, p. 8-18, 1980.
  • JOHNSON, L. A.; MONTGOMERY, D. C. Operations research in production planning, scheduling, and inventory control John Wiley & Sons, Inc., 1974.
  • KANICKI, D. P. Casting advantages, applications and market size. Metals Handbook, cap. 1, v. 15, 1988.
  • LIANG, M. Solving a furnace loading problem. Computers and Engeneerings, v. 29, n. 1-4, p. 267-271, 1995.
  • MARTELLO, S.; TOTH, P. Knapsack problems Algorithms and computer implementations. John Wiley & Sons, Inc., 1990.
  • MORABITO, R.; ARENALES, M. N. Um exame dos problemas de corte e empacotamento. Pesquisa Operacional, Rio de Janeiro, v. 12, n. 1, p. 1-20, 1992.
  • MORABITO, R.; GARCIA, V. Uma abordagem para o problema de corte de chapas de fibra de madeira reconstituída. Pesquisa Operacional, Rio de Janeiro, v. 18, n. 1, p. 37-57, 1998.
  • NAHMIAS, S. Production and operations analysis Richard D. Irwin, Inc., 1995.
  • OSHIRO, R. M. Otimização do planejamento e programação de fornos em uma fundição de mercado 2001. Trabalho (Graduação) Departamento de Engenharia de Produção/UFSCar, São Carlos.
  • SALKIN, H.; De KLUYVER, C. The knapsack problem a survey. Naval Research Logistics Quartely, n. 22, p. 127-144, 1975.
  • SANTOS-MEZA, E.; SANTOS, M.; ARENALES, M. Lot sizing problem in an automated foundry. European Journal of Operational Research, v. 139, p. 490-500, 2002.
  • SILVA, R. J. Otimização da programação de cargas de forno em uma fábrica de fundição em aço-inox 2001. Dissertação (Mestrado) Departamento de Engenharia de Produção, Universidade Federal de São Carlos, São Carlos.
  • SILVEIRA, R.; MORABITO, R. Um método heurístico baseado em programação dinâmica para o problema de corte bidimensional guilhotinado restrito. Gestão & Produção, v. 9, n. 1, p. 78-92, 2002.
  • SOUNDERPANDIAN, J.; BALASHANMUGAM, B. Multiproduct, multifacility scheduling using the transportation model: a case study. Production and Inventory Management Journal, 4th quarter, p. 69-73, 1991.
  • SWERSEY, A. J. Handbook in OR/MS Amsterdam: Elsevier Science B. V., 1994.
  • TANG, L.; LIU, J.; RONG, A.; YANG, Z. A review of planning and scheduling systems and methods for integrated steel production. European Journal of Operational Research, v. 133, p. 1-20, 2001.
  • VIANNA, A. G.; ARENALES, M. Um problema de programação da produção numa fundição automatizada. Gestão & Produção, v. 2, n. 3, p. 244-263, 1995.
  • VOORHIS; PETERS; JOHNSON. Developing software for generating pouving schedules for steel foundries. Computers & Industrial Engineering, v. 39, p. 219-234, 2001.

Datas de Publicação

  • Publicação nesta coleção
    02 Ago 2004
  • Data do Fascículo
    Abr 2004

Histórico

  • Aceito
    09 Mar 2004
  • Recebido
    12 Fev 2003
Universidade Federal de São Carlos Departamento de Engenharia de Produção , Caixa Postal 676 , 13.565-905 São Carlos SP Brazil, Tel.: +55 16 3351 8471 - São Carlos - SP - Brazil
E-mail: gp@dep.ufscar.br