Acessibilidade / Reportar erro

Um problema de programação da produção numa fundição automatizada

A production scheduling problem in an automated cast

Resumos

Este trabalho apresenta a modelagem de um problema particular de Programação da Produção numa Fundição Automatizada e sua resolução por um algoritmo de busca heurística, que explora a estrutura do problema.

otimização; programação da produção; programação linear inteira mista; métodos de decomposição; enumeração implícita; fundição


This paper presents a mathematical model of a particular Planning and Control Production Problem and its resolution using a heuristic search algorithm, which explores the structure of the problem.

optimization; mixed integer linear programming; decomposition methods; implicit enumeration; production scheduling; cast


Um problema de programação da produção numa fundição automatizada

A production scheduling problem in an automated cast

Andréa Carla Gonçalves ViannaI; Marcos ArenalesII

IDepartamento de Computação Universidade Estadual Paulista - 17.033-360 - Bauru - SP e.mail: UEBRUDC@FPSP.FAPESP.BR

IIDepartamento de Computação e Estatística Universidade de São Paulo - 13.560-970 - São Carlos - SP e.mail: Arenales@ICMSC.USP.BR

RESUMO

Este trabalho apresenta a modelagem de um problema particular de Programação da Produção numa Fundição Automatizada e sua resolução por um algoritmo de busca heurística, que explora a estrutura do problema.

Palavras-chave: otimização, programação da produção, programação linear inteira mista, métodos de decomposição, enumeração implícita, fundição.

ABSTRACT

This paper presents a mathematical model of a particular Planning and Control Production Problem and its resolution using a heuristic search algorithm, which explores the structure of the problem.

Key-words: optimization, mixed integer linear programming, decomposition methods, implicit enumeration, production scheduling, cast.

1. Introdução

Os processos de fundição consistem em fabricar moldes, preparar e fundir metais, vazar o metal dentro do molde, limpar as peças fundidas e recuperar a areia para reutilização. O produto da fundição é uma peça que pode variar consideravelmente em peso, como também em composição, isto é, diferentes metais devem ser fundidos (RESENDE, 1992).

A Figura 1 fornece uma representação esquemática e simplificada das principais atividades de uma fundição em areia.


Os equipamentos de uma fundição são basicamente um forno de fusão, um conjunto de máquinas de moldagem e um conjunto de máquinas de preparação de areia. O forno é alimentado por matérias primas (em geral, lingotes de fundidos obtidos após um processo de refino de minérios, sucatas e outros) e tem uma capacidade máxima de produção, em toneladas por hora, isto é, a cada hora (ciclo do forno) o forno pode produzir uma quantidade máxima de certa liga e, uma vez terminado o vazamento da liga, é então realimentado para a produção de um novo tipo de liga. A operação de preparação do forno, para o caso estudado neste artigo, é irrelevante. É interessante observar que a alimentação do forno por matérias primas para a obtenção de uma liga, com percentuais previamente especificados de ferro, carbono, silício, manganês, enxofre e outros, consiste no conhecido "problema da mistura", um dos mais clássicos exemplos da programação linear.

A liga produzida pelo forno é então vazada em moldes de areia, os quais são preparados segundo projetos que especificam todos os detalhes de contornos, canais de vazamento, etc., bem como o tipo da liga adequada. Os moldes de areia, por sua vez, são produtos de máquinas de moldagem que têm capacidades de produção também conhecidas, isto é, é sabida a quantidade máxima de moldes por hora para cada tipo de peça. Essas máquinas de moldagem podem trabalhar uma parte da hora na produção de um tipo de molde e outras partes na produção de outros tipos. Para o caso estudado neste trabalho, os tempos de preparação dessas máquinas são também irrelevantes.

Vale também observar que a areia a ser utilizada no molde é também uma mistura de diferentes tipos de areias com grãos de tamanhos variados. Isto é, a areia ideal, com os percentuais dos diversos tamanhos dos grãos especificados, é obtida pela mistura de areias obtidas em depósitos naturais. Isto sugere a resolução do clássico problema da mistura, similar àquele resolvido na obtenção da liga.

É interessante observar aqui que, embora as máquinas de moldagem possam ser repreparadas para a produção de diferentes moldes dentro de uma hora, a liga produzida pelo forno pode ser alterada somente na mudança de períodos, os quais podem ser de várias horas (um período adotado, por questões de organização da empresa é, em geral, de 6 horas). Assim, as mudanças na produção de moldes estão restritas às peças que utilizam a mesma liga metálica. Isso mostra que a programação da produção na fundição tem dois momentos importantes e interligados: a programação do forno (em que é definida a liga a ser produzida num período) e a programação das máquinas de moldagem ou carga de máquinas (em que são definidos os moldes a serem produzidos).

Na seção 2 são focalizadas as atividades de uma fundição, que serão objeto de atenção neste trabalho, e é proposta uma modelagem matemática para o problema de programação da produção na fundição. Na seção 3 um método heurístico de resolução do modelo matemático é proposto, e o algoritmo é apresentado na seção 4. Algumas experiências numéricas obtidas com a implementação do algoritmo são relatadas na seção 5 e, finalmente, as conclusões e perspectivas futuras são apresentadas na seção 6.

2. Definição e Modelagem Matemática do Problema

O problema a ser estudado neste artigo foi motivado por uma situação particular de uma fundição automatizada de porte médio, do interior paulista. Naturalmente, diferentes características podem ser encontradas em outras fundições (muitas vezes impostas por circunstâncias de demanda, além da tecnologia instalada, veja RESENDE, 1992, para uma variedade de fornos e tipos de moldagens), de modo que as variáveis importantes a serem determinadas, bem como as restrições, podem ser definidas de modo diverso do aqui considerado.

O esquema na Figura 2 resume as principais atividades numa fundição automatizada, a qual deve ser programada para atender a uma demanda de peças, isto é, vários tipos de peças devem ser fundidos em quantidades (toneladas) especificadas.


A demanda total exige as programações do forno e das máquinas por vários períodos. Um período é aqui entendido como sendo um intervalo de tempo de algumas horas (um período típico tem 6 horas). Embora o ciclo do forno seja de uma hora, a mudança de liga somente será permitida no início de um novo período. Supõe-se um custo de produção de cada peça por período (podendo representar a urgência da produção de uma peça).

O problema consiste em programar o forno e as máquinas, em cada período, de modo a minimizar o custo total de produção.

São fornecidos os seguintes dados:

L: número de ligas

M: número de máquinas

T: número de períodos

P: número de tipos de peça

aim: quantidade de peças do tipo i possível de ser produzida na máquina m, por hora (tf/h)

Ft: quantidade máxima de liga produzido pelo forno, por hora, no período t (tf/h) bi : demanda de peças do tipo i (tf)

ht : número de horas no período t (h)

Lj: conjunto das peças que utilizam a liga j

Lj: conjunto das peças que não utilizam a liga j

cit : custo de produção de peça do tipo i no período t ($)

Por exemplo, considerando um conjunto de P = 12 peças e 6 ligas, sejam L1 = {3,5,8}, L2 = {4,6,8,12}, L3 = {1,3,4,5,7,9}, L4 = {2,10,11,12}, L5 = {3,10} e L6 = {11}. O conjunto L1 indica que as peças dos tipos 3, 5 e 8 podem ser produzidas pela liga 1. Observe que a peça 8 pode ser produzida também pela liga 2. Observe também que se o coeficiente tecnológico de uma máquina de moldagem for nulo, isto é, aim = 0, isto significa que moldes de peça i não podem ser produzidos pela máquina m.

Note que se a máquina m trabalhar durante todo o período t (o qual tem ht horas) produzindo apenas a peça tipo i, então a produção será ht.aim toneladas de peças tipo i. Se trabalhar meio período será, então, 21 ht .aim. Esta observação sugere adotar como variável de decisão a fração de tempo do período t durante a qual a máquina m está dedicada à produção da peça i.

As variáveis de decisão consideradas são:

ximt: fração de tempo no período t utilizada para produzir peças do tipo i na máquina m

Dessa forma, ht.aim.ximt significa a quantidade, em toneladas, de peças tipo i produzida pela máquina m no período t.

O modelo matemático do problema é apresentado a seguir, no qual a função a ser minimizada define o custo total de produção, as equações (2) definem que apenas uma liga pode ser produzida por período; as inequações (3) e (4) garantem que se a liga j for utilizada no período t, apenas peças de Lj podem ser produzidas; as inequações (5) definem a capacidade de produção do forno e as inequações (6) garantem o atendimento das demandas das peças.

3. Resolução do Problema

O modelo (1)-(8) apresenta uma estrutura esparsa particular, conforme a Figura 3, que sugere a aplicação de diferentes métodos de decomposição, em especial o Método de Decomposição Híbrida encontrado em ROY (1983), no qual a Relaxação Lagrangeana e a Decomposição de Benders são combinadas.


Entretanto, as particularidades das sub-matrizes na Figura 3 sugerem outra abordagem, como será visto adiante.

As sub-matrizes Ai, B, Ci são também esparsas e apresentam estruturas muito particulares. Observa-se que as primeiras restrições (2), (3) e (4), chamadas de restrições lógicas, são necessárias apenas para definir a liga e as possíveis peças a serem produzidas em cada período de tempo. As quantidades das peças (aqui modeladas como os tempos de uso das máquinas) são definidas pelas restrições de capacidade e demanda, restrições (5) e (6) as quais têm uma estrutura de transporte generalizado. Estas observações sugerem uma busca heurística, que é discutida a seguir.

A idéia é, numa fase inicial, relaxar as restrições lógicas e usar a solução relaxada para fazer a programação do forno. Nesta fase uma seqüência de problemas de transporte é resolvida. Numa fase final é efetuada a programação das máquinas, em qual T problemas de transporte generalizado são resolvidos.

Relaxando o conjunto de peças de cada liga, ou seja, redefinindo Lj = {1,2,...,P}, j = 1,...,L (todas as ligas podem produzir todas as peças) as restrições (2), (3) e (4) tornam-se desnecessárias, bem como a variável y jt .

Além disso, a soma das ligas, índice j, é desnecessária, pois agora apenas um tipo de liga é considerado. Obtém-se então, o seguinte problema (as restrições (5) são multiplicadas por ht ):

Define-se uma nova variável z ti por:

que consiste na quantidade de peças do tipo i produzida no período t.

O problema relaxado pode ser escrito como um problema de transporte da forma:

e esquematizado pela Figura 4. Uma vez determinados os valores das variáveis z, resta o problema de determinar as variáveis ximt, que será visto a seguir.


Resolvendo este problema de transporte determina-se a quantidade de cada peça produzida em cada período. Entretanto, apenas um tipo de liga pode ser produzido por período, fazendo-se necessária a escolha da liga que será utilizada na fabricação das peças em cada período. A solução obtida fornece um limitante inferior para o problema, uma vez que se trata de relaxação, e indica a liga mais apropriada para o período, como se segue.

Para a determinação da liga que será utilizada no primeiro período da produção, é necessário verificar se é possível escolher uma liga que permita a produção do conjunto de peças dado pela solução ótima do problema de transporte, isto é, as peças i tais que z1i > 0. Em outros termos, procura-se j tal que i | z1i > 0, i = 1,...,P} ⊆ Lj . Se não houver uma liga que possa ser escolhida, adota-se a seguinte heurística: escolhe-se a liga que atende o maior número de peças do conjunto determinado pela solução ótima do problema, observando-se agora os conjuntos L j , j = 1,...,L, que haviam sido relaxados. Em outros termos, a liga a ser produzida no período 1 é obtida de forma que:

onde | S | significa cardinalidade do conjunto S. Observe que {}{} representa o conjunto das peças cuja produção foi ordenada pelo problema relaxado (problema de transporte) para o primeiro período, isto é, { i | z1i > 0} , eliminando-se aquelas peças que não podem ser produzidas, caso a liga j seja escolhida para ser produzida no primeiro período.

Para exemplificar a heurística H considere um problema com 3 períodos e 5 peças e suponha que a solução do problema de transporte seja dada pela Figura 5 (apenas os arcos com zti > 0 são representados).


Suponha:

L1 = {1,2}, L2 = {3,4}e L3 = {3,4,5}. Então,

Portanto a liga 1 será escolhida. O próximo problema de transporte, com a liga 1 escolhida para o período, os arcos que emanam do nó 1 são apenas (1,1) e (1,2). Isto inviabiliza a solução anterior pois z13 > 0.

Determinada a liga que será utilizada no primeiro período, anulam-se as variáveis que representam as quantidades das peças que não utilizam a liga escolhida. Se a escolha da liga inviabilizou a solução, isto é, havia peças produzidas no primeiro período incompatíveis com a liga escolhida, é necessário resolver novamente o problema de transporte.

Para a determinação das ligas nos demais períodos, deve-se repetir o mesmo processo, com o problema de transporte redefinido, conforme a Figura 6, no qual no período t, já estão definidas as ligas dos (t-1) períodos anteriores.


Conjectura: Se o problema de transporte, para algum t, esquematizado na Figura 6, for inviável, então o problema original também será inviável, desde que os custos sejam não-decrescentes ao longo dos períodos.

Determinadas as ligas que serão utilizadas em cada período, resta determinar como será a programação das máquinas em cada período.

Então, para cada período, resolve-se um problema de transporte generalizado, para determinar a fração de tempo utilizada em cada máquina, na produção de cada tipo de peça.

Suponha que a liga j seja produzida no período t. O problema da programação das máquinas para cada período t pode ser definido por:

e esquematizado pela Figura 7. Na figura, o arco (m,i) somente será considerado se i ∈ L, onde j é a liga produzida no período. Há um "ganho" no arco (m,i) de aim.ht.


Portanto, resolvendo-se o problema da programação das máquinas para cada período, obtém-se a fração de tempo de produção de cada peça em cada máquina. A função objetivo sugere que isto seja feito usando o menor tempo de máquinas.

As soluções possíveis do problema (1)-(8) podem ser esquematizadas pela árvore na Figura 8. O método proposto nesta seção corresponde a percorrer um único caminho na árvore, no qual é definida a programação do forno em todos os períodos, por meio da heurística H.


4. Algoritmo

Nesta seção resumem-se os passos do método proposto:

Passo 0

Se a oferta for menor que a demanda (), então não existe solução ótima. FIM. Fazer t = 1.

Passo 1

Resolver o Problema de Transporte (períodos x peças), esquematizado na Figura 4.

Se o problema de transporte for inviável, não existe solução ótima (Conjectura). FIM.

Passo 2

Determinar a liga jt que será utilizada no período t usando a heurística H, ou seja, jt é tal que

Passo 3

Fixar z ti = 0, i ∉ Ljt (eliminar os arcos (t,i), i ∉ Ljt, no problema de transporte).

Fazer t = t + 1.

Se t > T então ir para o Passo 4.

Se {i | zti > 0, i = 1,..., P} ⊆ L j , ir para o Passo 2, caso contrário ir para o Passo 1.

Passo 4

Resolver o Problema de Transporte (períodos x peças).

(As ligas j1 , j2 , ..., jT foram escolhidas para os períodos 1, 2, ..., T, respectivamente)

Para cada período t, t = 1,...,T, resolver o Problema de Transporte Generalizado (máquinas x peças), determinando ximt, a fração de tempo utilizada para produzir peças do tipo i na máquina m. FIM.

5. Resultados Computacionais

O algoritmo da seção anterior foi implementado em linguagem Turbo Pascal 7, com aproximadamente 30 rotinas, perfazendo um total aproximado de 1100 instruções.

O programa foi desenvolvido para ser utilizado em microcomputadores compatíveis com IBM-PC, utilizando sistema operacional compatível com MS-DOS. Sua implementação, seus testes e as execuções dos exemplos foram efetuados em micro-computador PC 386 DX40 com 8MB de memória e sistema operacional DOS 6.2.

Compararam-se os resultados obtidos por meio da execução de exemplos do programa desenvolvido com os resultados de um pacote computacional que resolve Problemas de Programação Linear Inteira Mista, o MILP88 V.6.02. Este pacote apresenta uma limitação em relação ao número de restrições e variáveis, permitindo no máximo 255 restrições, 64 variáveis inteiras e 1255 variáveis reais. Pode-se então verificar, nos testes realizados com problemas pequenos, que a solução obtida pelo algoritmo foi sempre a solução ótima do problema. Naturalmente o tempo computacional apresentado pelo algoritmo foi sempre melhor que o apresentado pelo pacote, uma vez que este resolve qualquer problema de Programação Linear Inteira Mista, não explorando a estrutura do problema.

A seguir é resolvido um exemplo passo a passo, com os seguintes dados:

Número de períodos: T = 3

Número de ligas: L = 6

Número de máquinas: M = 10

Número de peças: P = 12

Demanda das peças (tf):

b1

= 160

b5

= 300

b9

= 200

b2

= 240

b6

= 320

b10

= 120

b3

= 140

b7

= 125

b11

= 350

b4

= 300

b8

= 100

b12

= 160

Conjuntos de peças que utilizam as ligas: L1 = {3,5,8}

L2 = {4,6,8,12}

L3 = {1,3,4,5,7,9}

L4 = {2,10,11,12}

L5 = {3,10}

L6 = {11}

Quantidade de peças possível de ser produzida em cada máquina:

aim = m + i - 1, i = 1,...,12, m = 1,...,10 Capacidade do forno por período (tf/h): Ft = 80, t = 1,...,3

Número de unidades de tempo por período (h):

h1 = 12 h2 = 10 h3 = 10 Custo de produção de peças do tipo i no período t ($):

cti = t, t = 1,...,3, i = 1,...,12

Resolvendo o Problema de Transporte (períodos x peças) obtém-se a solução:

A determinação da liga a ser utilizada no período 1 deve ser feita de modo que

Então,

Portanto, a liga

fixada no período 1 é a de número 3. Fixando z1i = 0, i ∉ L3, e resolvendo novamente o Problema de Transporte (períodos x peças), obtém-se a solução:

A determinação da liga a ser utilizada no período 2 deve ser feita de modo que

Portanto,

E a liga escolhida para o 2o período é a de número 2. Fixando z2i = 0, i ∉ L2, e resolvendo novamente o Problema de Transporte (períodos x peças), obtém-se a solução:

Aplicando novamente a heurística H, a liga escolhida para o período 3 é a de número 4.

Determinados os valores das variáveis zti, e fixadas as ligas a serem utilizadas em cada período, resta determinar os valores das variáveis ximt , resolvendo o problema abaixo para cada período t:

No período 1, a produção de peças utilizando a liga 3 é dada por:

com um custo de produção de $ 960,00 no período.

No período 2, a produção de peças utilizando a liga 2 é dada por:

Máquina

Peça

Tempo

Quantidade

4

12

0,7667

115,0000

5

8

0,6140

73,6777

6

6

0,7975

87,7273

6

8

0,2025

26,3223

7

6

1,0000

20,0000

8

4

0,1364

15,0000

8

6

0,8636

112,2727

9

4

1,0000

120,0000

10

4

1,0000

130,0000

com um custo de produção de $ 1600,00 no período.

No período 3, a produção de peças utilizando a liga 4 é dada por:

Máquina

Peça

Tempo

Quantidade

5

11

0,1806

27,0833

5

12

0,2813

45,0000

6

11

1,0000

160,0000

7

10

0,0417

6,6667

7

11

0,9583

162,9167

8

2

0,3333

30,0000

8

10

0,6667

113,3333

9

2

1,0000

100,0000

10

2

1,0000

110,0000

com um custo de produção de $ 2265,00 no período.

O custo total de produção das peças nos três períodos é de $ 4825,00.

A seguir são apresentados os resultados de três exemplos do problema, com o mesmo número de ligas, máquinas e peças, alterando somente o número de períodos, o tempo disponível por período, a capacidade do forno por período e os custos de produção das peças.

Os dados gerais dos três exemplos são:

Número de ligas: L = 6

Número de máquinas: M = 10

Número de peças: P = 12

Demanda das peças (tf):

b1

= 160

b5

= 300

b9

= 200

b2

= 240

b6

= 320

b10

= 120

b3

= 140

b7

= 125

b11

= 350

b4

= 300

b8

= 100

b12

= 160

Conjuntos de peças que utilizam as ligas: L1 = {3,5,8}

L2 = {4,6,8,12}

L3 = {1,3,4,5,7,9}

L4 = {2,10,11,12}

L5 = {3,10}

L6 = {11}

Quantidade de peças possível de ser produzida em cada máquina: aim = m + i - 1, i = 1,...,12, m = 1,...,10

No primeiro exemplo são utilizados os seguintes dados particulares:

Número de períodos: T = 3

Capacidade do forno por período (tf/h): Ft = 80, t = 1,...,3

Número de unidades de tempo por período (h): h1 = 12 h2 = 10 h3 = 10

Custo de produção de peças do tipo i no período t ($): cti = t, t = 1,...,3, i = 1,...,12

Executando o programa desenvolvido obtém-se o resultado que se segue.

A programação do forno (seqüência das ligas) é dada por:

A programação das máquinas é fornecida pelas tabelas abaixo:

Alterando apenas o número de períodos, o tempo disponível por período, a capacidade do forno por período e os custos de produção das peças do Exemplo 1, obtém-se o exemplo a seguir.

Número de períodos: T = 6 Capacidade do forno por período (tf/h): Ft = 40, t = 1,...,6

Número de unidades de tempo por período (h):

h1

= 12

h3

= 10

h5

= 10

h2

= 10

h4

= 12

h6

= 10

Custo de produção de peças do tipo i no período t ($):

cti = t, t = 1,...,6, i = 1,...,12

Executando o programa desenvolvido obtém-se o resultado que se segue.

A programação do forno (seqüência das ligas) é dada por:

A programação das máquinas é fornecida pelas tabelas abaixo:

Dobrando novamente o número de períodos e alterando a capacidade do forno nos períodos do primeiro exemplo, adicionando o tempo disponível por período e os custos de produção das peças, têm-se os seguintes dados para o problema.

Número de períodos: T = 12

Capacidade do forno por período (tf/h): Ft = 20, t = 1,...,12

Número de unidades de tempo por período (h):

h1

= 12

h5

= 10

h9 = 10

h2

= 10

h6

= 10

h10 = 12

h3

= 10

h7

= 12

h11

= 10

h4

= 12

h8

= 10

h12

= 10

Custo de produção de peças do tipo i no período t ($): cti = t, t = 1,...,12, i = 1,...,12

Executando o programa desenvolvido obtém-se o resultado que se segue.

A programação do forno (seqüência das ligas) neste exemplo é:

A programação das máquinas é fornecida pelas tabelas abaixo:

A tabela a seguir mostra o tempo computacional dos exemplos apresentados, com a dimensão dos problemas na sua forma original.

6. Conclusões e Perspectivas Futuras

Neste trabalho foi estudado um problema de programação da produção numa fundição, que consiste em definir a liga que deve ser produzida e as cargas das máquinas de moldagem para cada período, no horizonte de planejamento, de modo que a demanda seja satisfeita a um custo mínimo.

Um modelo matemático foi proposto, o qual consiste num problema linear inteiro misto de grande porte, bem como um algoritmo heurístico que, por sua vez, consiste numa busca heurística no espaço de soluções.

Exemplos numéricos foram resolvidos, e o algoritmo proposto determinou soluções heurísticas em tempos inferiores a 20 segundos para problemas com aproximadamente 1500 restrições e 1500 variáveis. Exemplos pequenos foram também resolvidos por um pacote geral de programação inteira mista, produzindo-se suas soluções ótimas, as quais foram também encontradas pelo algoritmo heurístico proposto. Embora o algoritmo não tenha sido experimentado com dados reais (a empresa que motivou este estudo "terceirizou" sua produção, passando a produzir apenas um tipo de liga), os poucos exemplos resolvidos mostram sua viabilidade computacional.

O algoritmo proposto pode ser ligeiramente alterado para comportar janelas de tempo para a entrega das peças demandadas, isto é, a quantidade total de peças demandadas bi pode ser requisitada em diferentes lotes ao longo do horizonte de planejamento, como por exemplo: bi = bi1 + bi2 + ..., em que o lote de bi1 toneladas de peças do tipo i deve ser produzido, por exemplo, entre os períodos 3 e 5, o lote de bi2 entre os períodos de 10 e 12, etc. A alteração necessária seria a de considerar os diversos lotes da mesma peça como se fossem peças diferentes, gerando nos problemas de transporte (veja Figura 4 e 6) novos nós-consumidores (representando peças), os quais seriam ligados com nós-produtores (representando períodos) somente quando estes estiverem na janela de tempo estabelecida.

Quando a decisão de estocagem está envolvida, pequenas alterações devem ser feitas nesse mesmo problema.

Agradecimentos:

Os autores são gratos aos árbitros anônimos da Revista Gestão & Produção pelos comentários úteis, aos professores João Victor Moccellin e Marino Resende do departamento de Engenharia Mecânica - EESC/USP pelas valiosas sugestões na redação da introdução deste trabalho e à Maristela Oliveira pela revisão criteriosa.

Este artigo é dedicado ao professor Odelar Leite Linhares, por ocasião de seu 70o aniversário.

  • GONÇALVES-VIANNA, A. C.: "Estruturas Especiais em Programaçăo Inteira ." Dissertaçăo de Mestrado. Instituto de Cięncias Matemáticas de Săo Carlos, USP, 1994.
  • JENSEN, P. A. &  BARNES, J. W.: "Network Flow Programming" New York, John Wiley & Sons, 1980.
  • KENNINGTON, J. L. & HELGASON, R. V.:"Algorithms for Network Programming. New York, John Wiley & Sons, 1980.
  • LASDON, L. S.: "Optimization Theory for Large Systems". New York, MacMillan Publishing Company, 1970.
  • NORTON, P.; ASHLEY, R. & FERNANDEZ, J.: "Peter Norton MS DOS 6 Avançado". Makron Books do Brasil Editora Ltda., Săo Paulo, 1993.
  • OBRIEN, S. K.: "Turbo Pascal: completo e total". Makron Books do Brasil Editora Ltda., Săo Paulo, 1992.
  • RESENDE, M. O.: "Princípios de processos de produçăo". Volume I, Escola de Engenharia de Săo Carlos, Universidade de Săo Paulo, publicaçăo 016/92, 1992.
  • ROY, T. J. V.: "Cross Decomposition for Mixed Integer Programming". Mathematical Programming, 25:46-63, 1983.

Datas de Publicação

  • Publicação nesta coleção
    08 Jun 2010
  • Data do Fascículo
    Dez 1995
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