um modelo matemÁtico para um problema …2.2 modelo two-stage multi-machine lot-scheduling...

12
ALGORITMO GENÉTICO E PROGRAMAÇÃO MATEMÁTICA NA RESOLUÇÃO DE UM MODELO MATEMÁTICO PARA UM PROBLEMA DE PROGRAMAÇÃO DA PRODUÇÃO DE BEBIDAS Claudio Fabiano Motta Toledo Departamento de Ciência da Computação – Universidade Federal de Lavras Campus Universitário, C.P. 3037, CEP 37200-000, Lavras, MG [email protected] Lucas de Oliveira Departamento de Ciência da Computação – Universidade Federal de Lavras Campus Universitário, C.P. 3037, CEP 37200-000, Lavras, MG [email protected] Renato Resende Ribeiro de Oliveira Departamento de Ciência da Computação – Universidade Federal de Lavras Campus Universitário, C.P. 3037, CEP 37200-000, Lavras, MG [email protected] Deisemara Ferreira Departamento de Engenharia de Produção, Universidade Federal de São Carlos 13565-905; São Carlos, SP [email protected] RESUMO O presente artigo propõe um algoritmo genético multi-populacional, associado à programação matemática, na resolução de um modelo de programação inteiro misto para um problema de programação da produção encontrado na indústria de refrigerantes. O algoritmo genético fixa as variáveis binárias do modelo e um método exato define valores para as variáveis contínuas. Dois tipos de população no algoritmo genético evoluem utilizando diferentes operadores genéticos e funções de avaliação. O método proposto é avaliado em um conjunto de instâncias baseadas em dados reais fornecidos por uma indústria de refrigerantes. Os resultados são comparados àqueles obtidos por outro método encontrado na literatura. PALAVRAS CHAVE. Algoritmos Genéticos. Dimensionamento de Lotes e Programação da Produção. Indústria de refrigerantes. Palavra chave. Área de classificação principal: MH Metaheurísticas ABSTRACT The present paper proposes a genetic algorithm associated with a mathematical programming applied to the resolution of a mixed integer programming model for a lot size and scheduling problem found in soft drink industries. The genetic algorithm fixes binary variables of the model and an exact method defines values for continuous variables. Two types of population evolve using different genetic operators and fitness functions. The method proposed is evaluated on a set of instances based on real data provided by a soft drink industry. The results are compared with those obtained by another method found in the literature. KEYWORDS. Genetic Algorithm. Lot size and Scheduling. Soft drink industry. Main area: Metaheuristics. XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 710

Upload: others

Post on 12-May-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UM MODELO MATEMÁTICO PARA UM PROBLEMA …2.2 Modelo Two-stage multi-machine lot-scheduling model-P2SMM Ferreira et al. (2009) propuseram um modelo matemático, modelo P2SMM, para

ALGORITMO GENÉTICO E PROGRAMAÇÃO MATEMÁTICA NA RESOLUÇÃO DE UM MODELO MATEMÁTICO PARA UM PROBLEMA DE PROGRAMAÇÃO DA

PRODUÇÃO DE BEBIDAS

Claudio Fabiano Motta Toledo Departamento de Ciência da Computação – Universidade Federal de Lavras

Campus Universitário, C.P. 3037, CEP 37200-000, Lavras, MG [email protected]

Lucas de Oliveira

Departamento de Ciência da Computação – Universidade Federal de Lavras Campus Universitário, C.P. 3037, CEP 37200-000, Lavras, MG

[email protected]

Renato Resende Ribeiro de Oliveira Departamento de Ciência da Computação – Universidade Federal de Lavras

Campus Universitário, C.P. 3037, CEP 37200-000, Lavras, MG [email protected]

Deisemara Ferreira

Departamento de Engenharia de Produção, Universidade Federal de São Carlos 13565-905; São Carlos, SP

[email protected]

RESUMO

O presente artigo propõe um algoritmo genético multi-populacional, associado à programação matemática, na resolução de um modelo de programação inteiro misto para um problema de programação da produção encontrado na indústria de refrigerantes. O algoritmo genético fixa as variáveis binárias do modelo e um método exato define valores para as variáveis contínuas. Dois tipos de população no algoritmo genético evoluem utilizando diferentes operadores genéticos e funções de avaliação. O método proposto é avaliado em um conjunto de instâncias baseadas em dados reais fornecidos por uma indústria de refrigerantes. Os resultados são comparados àqueles obtidos por outro método encontrado na literatura.

PALAVRAS CHAVE. Algoritmos Genéticos. Dimensionamento de Lotes e Programação da Produção. Indústria de refrigerantes. Palavra chave. Área de classificação principal: MH Metaheurísticas

ABSTRACT

The present paper proposes a genetic algorithm associated with a mathematical programming applied to the resolution of a mixed integer programming model for a lot size and scheduling problem found in soft drink industries. The genetic algorithm fixes binary variables of the model and an exact method defines values for continuous variables. Two types of population evolve using different genetic operators and fitness functions. The method proposed is evaluated on a set of instances based on real data provided by a soft drink industry. The results are compared with those obtained by another method found in the literature.

KEYWORDS. Genetic Algorithm. Lot size and Scheduling. Soft drink industry. Main area: Metaheuristics.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 710

Page 2: UM MODELO MATEMÁTICO PARA UM PROBLEMA …2.2 Modelo Two-stage multi-machine lot-scheduling model-P2SMM Ferreira et al. (2009) propuseram um modelo matemático, modelo P2SMM, para

1. Introdução A produção de refrigerantes no Brasil tem aumentado a cada ano. O volume produzido em

2008 ultrapassou 14 bilhões de litros, representando um aumento de 4,04% em relação ao ano de 2007. Isso levou o setor a um faturamento 9,05% maior em 2008 (ABIR, 2009). O Brasil é o terceiro maior mercado de bebidas do mundo, perdendo apenas para EUA e México. Estes dados mostram a importância do setor e a necessidade de novos métodos de resolução integrados a ferramentas computacionais que apóiem a tomada de decisão. Porém, o sistema de planejamento da produção deste setor ainda não é automatizado em muitas fábricas.

A programação da produção de bebidas consiste no dimensionamento e seqüenciamento da produção tanto dos xaropes (matéria prima) quanto do produto final (bebida envasada) de forma sincronizada. Na literatura, os trabalhos de Rangel e Ferreira (2003), e Clark (2003) apresentam modelos de programação inteira mista para tratar apenas do dimensionamento de lotes da produção de bebidas. Em Ferreira et al. (2008a) foi estudado um problema de dimensionamento e seqüenciamento da produção de refrigerantes em uma fábrica de pequeno porte, usando um modelo de otimização baseado no General Lotsizing and Scheduling Problem. Heurísticas do tipo relax and fix foram propostas para resolver o modelo. O caso de fábricas de grande porte com dois estágios de produção (preparo do xarope e envase da bebida), várias linhas e tanques, e sincronia entre os estágios foi estudado em Toledo et al. (2007) e Ferreira et al. (2008b, 2009). Em Ferreira et al. (2008b) é apresentada uma revisão de trabalhos da literatura sobre o setor de bebidas e duas abordagens de solução do problema são comparadas, um algoritmo memético e estratégias de solução baseadas em modelos de programação inteiro mistos. Toledo et al. (2007) propõe um modelo matemático para o mesmo problema, onde instâncias de pequena e elevada dimensão são geradas e solucionadas utilizando o pacote computacional GAMS/CPLEX. Ferreira et al. (2009) apresentam estratégias baseadas em modelos de programação inteiro mistos que diferem do modelo proposto por Toledo et al. (2007) ao considerar tanques dedicados a linhas. Essa suposição reduz consideravelmente o número de variáveis e restrições nos modelos matemáticos. Heurísticas do tipo relax and fix são testadas na solução dos modelos.

O problema de fabricação de refrigerantes requer a resolução integrada de dois Problemas de Programação e Dimensionamento de Lotes Capacitado (PPDLC) como subproblemas, um nos tanques e outro nas linhas de produção. Bitran e Yanasse (1982) provaram que o problema de otimização PPDLC é NP-Difícil. Assim, diversos métodos de resolução baseados em meta-heurísticas como Algoritmos Genéticos costumam ser utilizados. Algoritmos Genéticos são métodos de computação evolutiva que simulam processos biológicos (Holland, 1975). Um algoritmo genético híbrido e multi-populacional com populações hierarquicamente estruturadas foi proposto em Buriol et al. (2004) para solucionar o problema do caixeiro viajante assimétrico. Um algoritmo genético com estrutura hierárquica de indivíduos também foi utilizado por França et al. (2001) para solucionar o Total Tardiness Single Machine Scheduling Problem. O uso de Algoritmos Genéticos e Busca Tabu também foi adotado por Toledo et al. (2008a, 2008b) para solucionar instâncias de problemas de programação da produção em fábricas de refrigerantes.

A abordagem proposta neste trabalho consiste na execução de um Algoritmo Genético multi-populacional integrado à resolução exata de um modelo linear de programação matemática. Meyr (2002) soluciona um problema de programação e dimensionamento de lotes em máquinas paralelas utilizando uma heurística de busca local (threshold accepting) para fixar variáveis binárias, deixando para um método exato determinar as demais variáveis contínuas do modelo. Defersha e Chen (2008) solucionaram um modelo não-linear com variáveis inteiras, utilizando um algoritmo genético na determinação das diversas variáveis inteiras do modelo. Isso permitiu uma remodelagem que levou à resolução exata de um modelo linear.

A próxima seção apresenta os detalhes do problema de fabricação de refrigerante, o modelo matemático relacionado e um método de resolução encontrado na literatura. A seção 3 descreve o AG multi-populacional proposto e sua integração à resolução do modelo matemático. Os resultados e conclusões são reportados nas seções 4 e 5, respectivamente.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 711

Page 3: UM MODELO MATEMÁTICO PARA UM PROBLEMA …2.2 Modelo Two-stage multi-machine lot-scheduling model-P2SMM Ferreira et al. (2009) propuseram um modelo matemático, modelo P2SMM, para

2. Problema de Fabricação de Bebidas. 2.1 Processo de produção. A produção de bebidas possui dois estágios principais que são o preparo do xarope (sabor) e

o envase da bebida pronta. O principal objetivo é determinar o dimensionamento e o sequenciamento da produção tanto dos xaropes quanto das bebidas. Há um tempo de preparo dos xaropes nos tanques mesmo entre trocas de sabores idênticos. Após o preparo, os xaropes são enviados para as linhas onde serão envasados. Cada linha de envase recebe xarope de apenas um tanque por vez, independente do número de tanques. Porém, um tanque pode enviar xarope para mais de uma linha simultaneamente, se elas estiverem envasando o mesmo sabor de bebida. A cada troca de xarope nos tanques ou produto nas linhas, se gasta um tempo de preparação (limpeza ou ajuste do maquinário) que depende da sequência da produção. A sincronia entre os estágios de preparo de xarope e envase da bebida é outro fator fundamental na programação da produção neste tipo de problema. Se o tanque não estiver com o xarope pronto para ser enviado para a linha de envase, esta deve aguardar até que o xarope esteja pronto. Do mesmo modo, o tanque só pode iniciar o envio de xarope para a linha de envase se ela estiver preparada. A Figura 1 abaixo apresenta uma programação da produção não sincronizada (a) e a mesma programação sincronizada (b).

(a) Programação não sincronizada. (b) Programação sincronizada.

Figura 1. Programações não sincronizada e sincronizada. (Adaptado de (Ferreira et al., 2009)).

Na Figura 1, os retângulos representam os tamanhos dos lotes e o espaço entre eles define os

tempos de troca. Os tipos de refrigerantes são rotulados pelos números 1, 2 e 3, e os tipos de xaropes pelas letras a e b. Os retângulos de cor preta na Figura 1(b) representam os tempos de espera. Observe na Figura 1(a) que a linha de envase iniciou a produção do item 1 usando o xarope a, porém este ainda está sendo preparado. Na primeira troca (xarope a para b e refrigerante 1 para 2), apesar do tempo de troca ser o mesmo no tanque e na linha, a produção na linha continua adiantada por não ter considerado a espera do lote anterior. Essa situação é tratada na Figura 1(b) pela inserção do tempo de espera antes da produção do item 1.

Quando um lote de bebida necessita de mais de um tanque de xarope, o tempo de preparo deste novo tanque deve ser considerado. Por exemplo, as trocas do refrigerante 2 para 2 e do xarope b para b exigem a inserção de tempo de espera (segundo retângulo de cor preta da Figura 1(b)). Há também o caso onde o tempo de troca na linha é maior que no tanque, como no caso da troca do refrigerante 2 para 3 que utilizam o mesmo xarope b da Figura 1. Nesta situação o tanque deve esperar o preparo da linha para enviar o xarope b a ser envasado. Se forem consideradas todas essas esperas, a programação sincronizada seria como na Figura 1 (b). Observe que após estabelecer a sincronia, o tempo necessário para a produção aumenta e o sequenciamento proposto ultrapassa a capacidade disponível. Por isso, há necessidade de se considerar a sincronia entre os estágios no momento em que está sendo estabelecido o dimensionamento e o sequenciamento da produção.

2.2 Modelo Two-stage multi-machine lot-scheduling model-P2SMM

Ferreira et al. (2009) propuseram um modelo matemático, modelo P2SMM, para descrever o processo de produção de bebidas apresentado na seção 2.1. O modelo P2SMM é descrito a seguir, e utiliza os parâmetros, J indexado por i e j, M indexado por m, L indexado por

Capacidade disponível para produção. linha

Capacidade disponível para produção.

a b b

1

Tanque

Linha

b

2 2 3

Lote 1 Lote 2 Lote 4 Lote 3

b b

1 2 3

Lote 1 Lote 2 Lote 4

Tanque

Linha

Lote 3

a b

2

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 712

Page 4: UM MODELO MATEMÁTICO PARA UM PROBLEMA …2.2 Modelo Two-stage multi-machine lot-scheduling model-P2SMM Ferreira et al. (2009) propuseram um modelo matemático, modelo P2SMM, para

k e l, T indexado por t, e N indexado por s, que representam respectivamente o número de itens, máquinas (tanques), períodos e micro-períodos. O horizonte de planejamento T é composto por períodos t de mesmo tamanho, cada período é dividido em um número pré-definido de micro-períodos. Esses micro-períodos correspondem aos lotes de produção de cada produto e seus tamanhos representam o tempo de produção do item naquele período, logo seus tamanhos variam. Por exemplo, tome um período de produção (uma semana) dividido em quatro micro-períodos, e três produtos a serem produzidos. Uma programação de produção destes três itens neste período seria, produzir o item 1 durante dois dias, o item 2 durante um dia e o item 3 durante três dias. Logo o micro-período 1 tem o tamanho de dois dias de produção, o micro-período 2 tem duração de 1 dia, o micro-período 3 tem duração de três dias, e para o quarto micro-período não há produção, ou seja, ele tem tamanho zero.

O conjunto no modelo representa o conjunto de micro-períodos em cada período t;

jρ é o conjunto de máquinas que podem produzir o produto j; mδ é o conjunto de itens que

podem ser produzidos na máquina (linha) m; mθ é o conjunto de xaropes que podem ser

armazenados no tanque m; mlω é o conjunto de itens que podem ser produzidos na máquina m e

utilizam o xarope l; e Pt é o primeiro micro-período do período t. Os custos de estoque e atraso do item j são dados pelos parâmetros hj e gj respectivamente. A demanda do item j no período t é dada por djt. Nos parâmetros a seguir o sobrescrito I designa os parâmetros relativos ao

estágio I e o sobrescrito II designa os parâmetros e variáveis relativos ao estágio II: Ikls custo de

troca do xarope k para o xarope l; IIijs custo de troca do produto i para j; I

klb tempo de troca do

xarope k para o xarope l; IIijb tempo de troca do produto i para j; II

mja tempo de processamento de

uma unidade do item j na máquina m; ImK capacidade do tanque m em litros; II

mtK = capacidade

em unidade de tempo da máquina m no período t; r jl quantidade do xarope l necessária para a

produção de uma unidade do produto j; +0jI estoque inicial do produto j;

0

I

mly , 1 se no tanque m

está preparado com o xarope l no início do horizonte de planejamento; 0

II

mjy igual a 1 se na

máquina m está preparada com o produto j no início do horizonte de planejamento. As variáveis do modelo são apresentadas a seguir:

jtI + = quantidade em estoque do produto j ao final do período t;

jtI − = quantidade não produzida de j ao final do período t; IImjtx = quantidade do item j produzida na máquina m no micro-período s;

=yI

mls 1, se o tanque m armazena o xarope l no micro-período s; 0 caso contrário;

=yII

mjs 1, se a máquina m produz o produto j no micro-período s; 0 caso contrário;

=zImkls 1, se há troca no tanque m do xarope k para l no micro-período s; 0 caso contrário;

=zIImijs 1, se há troca na máquina m do produto i para j no micro-período s; 0 caso contrário.

J

1 t 1 1 1 1 1

Z= ( )m m m m

T M N M NI I II II

j jt j jt kl mkls ij mijsj m s k l m s i j

Min h I g I s z s zθ θ δ δ

+ −

= = = = ∈ ∈ = = ∈ ∈+ + +∑∑ ∑∑∑∑ ∑∑∑∑ (1)

Sujeito a: I Ils mlsq y ≤

ml

IIjl mjs

j

r xω∈∑ , I I

m mlsK y≤ 1... , mm M l θ= ∈ , 1,..., ;s N= (2)

( 1)

m m

I Iml s mls

l l

y yθ θ

−∈ ∈

≥∑ ∑ ;,...,1 Mm= ;,...,1 Tt = { };t ts S P∈ − (3)

( 1) 1I I Imkls mk s mlsz y y−≥ + − 1,..., ; , ; 1,..., ;mm M k l s Nθ= ∈ = (4)

tS

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 713

Page 5: UM MODELO MATEMÁTICO PARA UM PROBLEMA …2.2 Modelo Two-stage multi-machine lot-scheduling model-P2SMM Ferreira et al. (2009) propuseram um modelo matemático, modelo P2SMM, para

( 1) 1mk

I II Imkls mj s mls

j

z y yω

−∈

≥ + −∑ 1,..., ; , ; 2,..., ; ;m tm M k l t T s Pθ= ∈ = = (5)

1m m

Imkls

k l

zθ θ∈ ∈

≤∑∑ ;,...,1 Mm = ;,...,1 Tt = ;ts S∈ (6)

+− )1(tjI + −

jtI +j t

IImjs

m s S

xρ∈ ∈∑ ∑ = +

jtI + −− )1(tjI + jtd , Jj ,...,1= , ;,...,1 Tt = (7)

m t m m t t

II II II II II IImj mjs ij mijs ms mt

j s S i j s S s S

a x b z v Kδ δ δ∈ ∈ ∈ ∈ ∈ ∈

+ + ≤∑∑ ∑∑∑ ∑ , ;,...,1 Mm = ;,...,1 Tt = (8)

m m m m

II I I II IIms kl mkls ij mijs

k l i j

v b z b zθ θ δ δ∈ ∈ ∈ ∈

≥ −∑ ∑ ∑ ∑ , 1,..., ; 1,..., ;m M s N= = (9)

IImjsII

j

IImtII

mjs ya

Kx ≤ , ;,...,1 Mm = mj δ∈ ; ;,...,1 Tt = ;ts S∈ (10)

1m

IImjs

j

yδ∈

=∑ , 1,..., ; 1,..., ;m M s N= = (11)

IImijsz ≥ II

smiy )1( − + IImjsy -1, ;,...,1 Mm = , mi j δ∈ ; 1,..., ;s N= (12)

m m

IImijs

i j

zδ δ∈ ∈∑ ∑ ≤1, Mm ,...,1= ; Ns ,...,1= ; (13)

+jtI , −

jtI 0≥ , 1,..., , 1,...,j J t T= = ; IImjsx , II

msv , IImijsz , I

mklsz 0≥ ; IImjsy , ,,...,1 Mm =

e , e ,m mi j k lδ θ∈ ∈ ,,...,1 Tt = tSs∈ . (14)

As restrições (2) a (6) são referentes ao estágio I (xaroparia), e as restrições (7) a (14) modelam o estágio II (envase) do processo de produção de bebidas. Os custos de atraso, estoque e troca são minimizados na função objetivo (1). As restrições (2) determinam as capacidades mínima e máxima dos tanques, caso a atribuição de xarope ao tanque efetivamente ocorra (I

mlsy

=1). As restrições (3) garantem que os micro-períodos ociosos ocorreram apenas no fim dos períodos. Para considerar as trocas entre xaropes nos tanques e produtos nas linhas são definidas as restrições (4), (5) e (12). As restrições (5) são necessárias para controlar as trocas de xaropes no início de cada período, pois o termo∑

∈−

ωmkj

II

smjy )1( é que irá determinar o último xarope

preparado no tanque no período t-1. As restrições (6) e (13) garantem que há no máximo uma troca de xarope no tanque e produto na linha em cada micro-período. As restrições (7) estabelecem a equação de balanço de estoque para produtos nas linhas e as restrições (8) definem uma restrição de capacidade para as linhas em cada período. A variável II

msv é o tempo de espera da linha pelo preparo de xarope no tanque e garante que a programação de tanques e linhas seja sincronizada. Na Figura 1 (b) da seção 2.1 esta variável é representada pelos retângulos de cor preta. Então note que o tempo de espera da linha pelo preparo do xarope deve ser considerado nesta restrição de capacidade. Esse tempo de espera é calculado na restrição (9) pela diferença entre o tempo de preparo do xarope e o tempo de preparo do item na linha. A restrição (10) é a restrição de setup nas linhas. O conjunto de restrições (11) determinam que a linha sempre está preparada para produzir exatamente um item em cada micro-período. O domínio das variáveis é estabelecido na restrição (14).

2.3 Métodos da Literatura –Relaxation Approach (RA) Ferreira et al. (2009) testam e comparam diferentes métodos de solução para resolver o

modelo P2SMM. Os melhores resultados foram obtidos pela estratégia de relaxação Relaxation Approach (RA) que considera como gargalo da produção a linha de envase. Os autores também solucionaram o modelo completo (P2SMM), mas os resultados obtidos em 4 horas de execução

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 714

Page 6: UM MODELO MATEMÁTICO PARA UM PROBLEMA …2.2 Modelo Two-stage multi-machine lot-scheduling model-P2SMM Ferreira et al. (2009) propuseram um modelo matemático, modelo P2SMM, para

não retornaram solução ótima para as instâncias avaliadas. Além disso, as melhores soluções obtidas solucionando P2SMM foram inferiores àquelas retornadas pela estratégia RA. Esta estratégia supõe que, uma vez programada a produção dos itens nas máquinas, uma programação viável dos xaropes nos tanques pode ser facilmente obtida. Desta forma, apenas as restrições de capacidade do tanque no estágio I são necessárias e o problema de sequenciamento e dimensionamento de lotes no estágio II é resolvido através do Modelo P1SMM. Esse modelo é formado pelas restrições (2), (7), (8) e (10)-(14), sendo que a restrição de capacidade não possui o termo de espera. As variáveis do modelo P1SMM são as mesmas variáveis do modelo P2SMM,

exceto pelas variáveis Imklsz que não são necessárias. Após a solução do modelo P1SMM, as

variáveis binárias associadas aos micro-periodos onde ocorre produção são fixadas. O modelo P2SMM é então resolvido obtendo uma solução viável para o problema original. O algoritmo RA é descrito na Figura 2.

Algoritmo RA Passo 1 - Resolva o modelo P1SMM. Passo 2 - Se P1SMM é viável, então Para todo 1,...,m M= , mj α∈ , 1,...,s N= faça

se 0>IImjsx então

Fixe as variáveis de preparo no modelo P2SMM de acordo com:

1 e 1 == Imls

IImjs yy , jl σ∈∀

Passo 3 - Resolva o modelo P2SMM obtido na Passo2.

( jσ é o xarope necessário para a produção do item j)

Figura 2. Algoritmo RA.

3. Algoritmo Genético Proposto O presente artigo propõe um algoritmo genético (AG) multi-populacional associado ao

modelo de programação inteiro misto P2SMM para resolver o problema de programação da produção de bebidas. Trata-se de um AG com evoluções distintas para dois tipos de populações (Figura 3).

Algoritmo Genético início Repetir iniciarPopulações(); avaliarPopulações(); Repetir {evoluir população 1} recombinarPopulação_1(); mutarPopulação_1(); avaliarPopulação_1(); reestruturarPopulação_1(); até convergência Repetir {evoluir população 2} recombinarPopulação_2(); mutarPopulação_2(); avaliarPopulação_2(); reestruturarPopulação_2(); até convergência; executarMigração(); até tempo de execução; fim

Figura 3 – Pseudocódigo do algoritmo genético AG proposto.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 715

Page 7: UM MODELO MATEMÁTICO PARA UM PROBLEMA …2.2 Modelo Two-stage multi-machine lot-scheduling model-P2SMM Ferreira et al. (2009) propuseram um modelo matemático, modelo P2SMM, para

A principal diferença entre a evolução de cada população está na resolução ou não do modelo matemático. Também há operadores genéticos distintos para cada população. O operador de migração e novas inicializações são executados toda vez que as duas populações convergem. A convergência ocorre quando novos indivíduos não são inseridos em nenhuma das populações. As próximas seções irão detalhar os diversos aspectos do AG proposto.

3.1. Indivíduos Uma matriz indexada por linhas de produção e períodos foi utilizada para representar um

indivíduo. Cada posição da matriz possui uma lista com a sequência dos produtos (bebidas) que ocupam a linha naquele período. A sequência dos xaropes nos tanques pode ser obtida a partir da sequência das bebidas nas linhas, considerando que cada produto possui apenas um único xarope como matéria prima. Desta forma, torna-se desnecessária a representação do sequenciamento dos xaropes no indivíduo. A Figura 4 abaixo exemplifica um possível indivíduo com sequências de produtos geradas em cada período.

Figura 4 – Codificação para um Indivíduo.

Um processo de decodificação da informação permite avaliar a informação contida em cada

indivíduo. O processo de decodificação consiste em atribuir1=yII

mjs, se o produto j está atribuído

à posição (micro-período) s ∈ St da linha m na sequência de produção do macro t. Nesse caso,

também é ajustado 1=yI

mis, correspondente ao xarope i (supondo i o xarope da bebida j)

armazenado no tanque m no mesmo micro-período s. Devido às restrições (11) e (12) do modelo, o processo de decodificação repete o último produto efetivamente atribuído àquele período nos demais micro-períodos não utilizados. A Figura 5 ilustra a decodificação das informações do indivíduo da Figura 4.

Figura 5 - Exemplo de decodificação do Indivíduo da Figura 4.

Vamos supor que P1 e P2 utilizem o xarope A1, enquanto P3 e P4 utilizam A2. Vamos supor também que os micro-períodos são S1={s1,s2,s3} e S2={s4,s5,s6} para St com t=1,2. Na linha 1, a sequência de produtos P1-P3-P4 no primeiro período levam a fixação das variáveis 1

1,1,1=yII

SPL,

11,1,1=yI

SATk, 1

2,3,1=yII

SPL, 1

2,2,1=yI

SATk, 1

3,4,1=yII

SPL, 1

3,2,1=yI

SATk. No segundo macro- período da

linha 1, observe que o último produto atribuído à linha, P2, tem suas variáveis yII fixadas até o último micro-período ( 1

6,2,1=yII

SPL e ,1

5,2,1=yII

SPL) atendendo às restrições (12) e (13) do modelo.

3.2 Funções de Avaliação do Algoritmo Genético

Após a inicialização das duas populações consideradas, o AG faz uma chamada ao pacote computacional AMPL/CPLEX e fornece um arquivo com os valores fixados para yI e yII. O AMPL/CPLEX resolve o modelo P2SMM, onde as variáveis yI e yII passam a ser declaradas

,11,1,1

=yI

SATk,1

1,1,1=y

II

SPL,1

2,2,1=y

I

SATk,1

2,3,1=y

II

SPL,1

3,2,1=y

I

SATk1

3,4,1=y

II

SPL Linha 1 - Período 1

Sequência: P1-P3-P4

,14,2,1

=yI

SATk,1

4,3,1=y

II

SPL,1

5,1,1=y

I

SATk,1

5,2,1=y

II

SPL,0

6,2,1=y

I

SPTk1

6,2,1=y

II

SPL Linha 1 - Período 2

Sequência: P3-P2

,11,1,2=y

I

SATk,1

1,2,2=y

II

SPL,1

2,1,2=y

I

SATk,1

2,2,2=y

II

SPL,0

3,1,2=y

I

SATk1

3,2,2=y

II

SPL Linha 2 - Período 1

Sequência: P2-P2

,14,1,2

=yI

SATk,1

4,1,2=y

II

SPL,1

5,1,2=y

I

SATk,1

5,1,2=y

II

SPL,1

6,2,2=y

I

SATk1

6,4,2=y

II

SPL Linha 2 - Período 2

Sequência: P1-P1-P4

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 716

Page 8: UM MODELO MATEMÁTICO PARA UM PROBLEMA …2.2 Modelo Two-stage multi-machine lot-scheduling model-P2SMM Ferreira et al. (2009) propuseram um modelo matemático, modelo P2SMM, para

como parâmetros. O solver retorna informações para que o AG determine os custos de estoque e atraso (Eq. 18), custos de troca (Eq. 19) e a matriz cap(m,t) (Eq. 20) com o valor da violação na capacidade de produção das linhas dentro dos períodos.

( )∑∑= =

−+ +=J

j

T

tjtjjtj IgIhce

1 1 (18)

∑ ∑ ∑∑∑ ∑ ∑∑= = ∈∈= = ∈∈

+=N

s

M

m j

IImijs

IIij

i

N

s

M

m l

Imkls

Ikl

k mmmm

zszsct1 11 1 ααββ

(19)

−++= ∑∑ ∑ ∑∑ ∑∈∈ ∈ ∈∈ ∈

Kvzbxa IImt

s

IIms

i j s

IImijs

IIij

j s

IImjs

IImj

SSStmcap

tm m tm t δ δδ,0max),(

;,...,1 Mm = 1,..., .t T= (20) Essas informações são armazenadas no indivíduo e utilizadas no cálculo da função de

avaliação de acordo com o tipo de população considerada. A função de avaliação da população 1 na Figura 3 é a função objetivo do modelo (Eq. 21). O valor lógico v indica se foi encontrada ou não uma solução factível pelo solver, onde um valor elevado M1 é atribuído ao indivíduo infactível.

1

,1

, .

ce ct se v verdadeirof

se v falsoM+ == =

(21)

Um segundo tipo de função de avaliação foi utilizada na evolução da população 2 (Eq. 22).

21 1

2 ( , ).M T

m t

f ce ct cap m tM= =

= + + ∑∑ (22)

O valor M2 corresponde a uma penalização associada à violação de capacidade cap(m,t). Exceto pela inicialização e pelas posteriores reinicializações na população 2, o AMPL/CPLEX não é mais executado na determinação da função de avaliação dos novos indivíduos dessa população. Por isso, as recombinações e mutações executadas provocam alterações apenas nas sequências de produção das linhas dentro de cada período. A idéia é não executar mudanças na configuração que levem a um recalculo dos lotes a serem produzidos. Por exemplo, nenhum operador genético troca produtos entre períodos ou máquinas diferentes. Isso poderia provocar alterações nos custos de estoque e nos tempos de produção, exigindo possíveis recálculos do tamanho dos lotes para se evitar violações nas restrições de capacidade das linhas. Por isso, os operadores executam mudanças apenas no ordenamento dos produtos dentro das sequências de uma mesma máquina em um mesmo período. Esse procedimento demanda a determinação de novos custos e tempos de troca, fazendo com que somente os termos ct e cap(m,t) sejam atualizados na Eq. 22.

3.2. Operadores genéticos Na primeira população, um operador de recombinação (crossover) de dois pontos é utilizado

para gerar novos indivíduos. A Figura 5 exemplifica este tipo de recombinação. Na segunda população, uma recombinação baseada em ordenamento é utilizada. Para cada linha m e cada período t do Pai 2, os produtos são copiados para o novo indivíduo seguindo a ordem com que esses produtos aparecem na mesma linha m, mas em um período t’ aleatoriamente selecionado no Pai 1. Quando um período t do Pai 2 não tem todos os produtos presentes no período t’ do Pai 1, os produtos ausentes são alocados no final do período do novo indivíduo. Além desse novo ordenamento das linhas, a recombinação também agrupa os lotes que produzem o mesmo produto para eliminar custos de troca. A Figura 6 exemplifica este tipo de recombinação. Os números ao lado dos pais indicam as linhas e períodos usados no reordenamento. Por exemplo, o primeiro período da linha 1 no Filho, foi estabelecido a partir das sequências da primeira linha no primeiro período de Pai 2 e da primeira linha no segundo período do Pai 1.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 717

Page 9: UM MODELO MATEMÁTICO PARA UM PROBLEMA …2.2 Modelo Two-stage multi-machine lot-scheduling model-P2SMM Ferreira et al. (2009) propuseram um modelo matemático, modelo P2SMM, para

Figura 5 - Exemplo de recombinação de dois pontos.

Figura 6 - Exemplo de recombinação de ordenamento.

Um total de quatro operadores de mutação foi definido para os indivíduos. A primeira mutação troca de posição dois produtos aleatoriamente selecionados, dentro de uma mesma linha e período. A segunda mutação seleciona aleatoriamente uma linha e um período, gerando aleatoriamente uma nova sequência a partir dos produtos da sequência atual. Essas duas mutações são executadas nos indivíduos tanto na primeira quanto na segunda população. A terceira e quarta mutação são executadas apenas na primeira população, pois exigem recálculo dos lotes. A terceira mutação insere um produto aleatoriamente selecionado de uma posição em outra posição também aleatoriamente determinada. A quarta mutação sorteia aleatoriamente uma linha e um período. Um novo número tamanho para a sequência de produtos é sorteado entre 1 e o número máximo de micro-períodos. Se esse número for menor que o tamanho atual, produtos sorteados aleatoriamente são removidos da sequência. Caso contrário, novos produtos aleatoriamente selecionados serão inseridos. Após a geração de um novo indivíduo pelo operador de recombinação, o AG seleciona aleatoriamente um valor λ∈[0,1]. Se λ<TaxaDeMultação, a mutação é aplicada sobre o novo indivíduo. A mutação a ser aplicada é selecionada aleatoriamente entre os quatro tipos de mutação apresentados.

Os indivíduos estão estruturados hierarquicamente em árvores binárias com diversos clusters. Cada cluster possui um nó líder e dois nós seguidores, onde o líder possui o melhor valor de função de avaliação. A seleção dos indivíduos para recombinação é feita sorteando um cluster e selecionando como pais o nó líder e um de seus seguidores (Figura 7(a)).

Figura 7 - Inserção de novos indivíduos e reorganização da população.

Um indivíduo é inserido na população quando sua função de avaliação supera um de seus pais. Após a inserção dos novos indivíduos, a população é reestruturada (Figura 7 (b)). Os testes computacionais realizados com instancias baseadas em dados reais são apresentados na próxima seção.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 718

Page 10: UM MODELO MATEMÁTICO PARA UM PROBLEMA …2.2 Modelo Two-stage multi-machine lot-scheduling model-P2SMM Ferreira et al. (2009) propuseram um modelo matemático, modelo P2SMM, para

4. Resultados Computacionais Os métodos foram avaliados em máquinas com 1.0 GB de RAM, 3.2 GHz e processador

Pentium Intel 4. As instâncias utilizadas nos testes computacionais do presente trabalho foram obtidas de Ferreira et al. (2009). A primeira instância (I1) foi gerada a partir dos dados associados a duas linhas de envase existentes em uma fábrica situada no interior do Estado de São Paulo. Foram geradas mais quatro instâncias (I2, I3, I4 e I5) baseadas na instância I1. A Tabela 1 resume as características dessas instâncias. Estas instâncias consideram duas linhas de envase, 23 itens sendo produzidos na linha 1 e 13 destes itens na linha 2, 18 xaropes, 3 períodos, e 25 micro-períodos por período. Além dos dados das instâncias I1-I5, também foram coletados na fábrica dados relativos à demanda de um período de 30 semanas. Estas demandas permitiram a geração de outras 10 instâncias (I6-I15). Cada uma dessas 10 instâncias está associada à demanda de três semanas consecutivas de produção na fábrica. As instâncias I6, I7, I14 e I15 correspondem a períodos de demanda mais alta do que as instâncias I8-I13, aumentando o nível de dificuldade nessas instâncias. Maiores detalhes são descritos em (Ferreira et al., 2009).

Tabela 1. Características dos exemplares I1-I5 (Ferreira et al., 2009). Instâncias Modificações I1 Dados originais fornecidos pela fábrica. I2 Custos de estoque do I1 dobrados. I3 Custos de atraso do I1 dobrados. I4 Demanda total de cada item do I1 redistribuída aleatoriamente nos três

períodos. I5 Capacidade das máquinas reduzida em 25%.

Os resultados obtidos pelo AG proposto nessas instâncias serão comparados àqueles obtidos pelo método RA, reportados em Ferreira et al (2009) e apresentados na Tabela 2. O AG foi executado 10 vezes em cada das instancias com 4 horas para cada execução. Trata-se do mesmo tempo de execução dado ao método RA em Ferreira et al (2009). Os autores daquele trabalho justificam que a programação da produção leva em torno de 4 horas para ser definida na fábrica. Eles também justificam que esse tempo foi tomado apenas como referência, por ser aceitável na opinião dos responsáveis pela produção na fábrica. As duas populações do AG foram ajustadas para estrutura binária com 7 indivíduos em cada uma delas. Na população 1, um total de 1,5 vezes o tamanho da população foi o número de recombinações executada a cada chamada do operador de recombinação. O operador de mutação nessa população foi executado com taxa de mutação de 0,45. Na população 2, um total de 20 vezes o tamanho da população foi executado a cada chamada do operador de recombinação. Esse elevado número de recombinações se justifica pela convergência prematura apresentada pela população 2 nos testes com baixas taxas de recombinação. Isso fazia com que o método executasse frequentemente novas inicializações, exigindo repetidas chamadas ao AMPL/CPLEX. As elevadas taxas de recombinação evitavam a convergência prematura ao aumentar a chance de inserção de novos indivíduos na população. Desta forma, novas inicializações eram adiadas e, consequentemente, chamadas ao AMPL/CPLEX. Uma taxa de mutação de 0.7 foi utilizada na população 2.

A Tabela 2 a seguir compara os resultados obtidos pelo AG com o método RA descrito na seção 2.3. O método RA utiliza uma abordagem exata de resolução do modelo, por isso, uma única execução se faz necessária. Por outro lado, o AG pode variar seu desempenho dependendo das inicializações e re-inicializações aleatórias. Desta forma, a Tabela 2 apresenta o valor médio considerando a melhor solução obtida pelo AG em cada execução. Também é apresentada a evolução desse valor médio a cada hora de execução. O AG consegue em média superar as soluções retornadas pelos outros métodos em 11 das 15 instancias avaliadas. Além disso, os melhores resultados foram obtidos na primeira hora de execução do AG em 10 dessas instancias. Apenas na instancia I1, o AG superou o método RA ao final de 4 horas de execução. A Figura 8 compara os métodos, considerando o valor da melhor solução encontrada pelo AG entre todas as dez execuções realizadas. Observe que o AG conseguiu superar pelo menos em uma das 10 execuções o melhor resultado obtido pelo RA, exceto na instancia I5. Considerando as 10

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 719

Page 11: UM MODELO MATEMÁTICO PARA UM PROBLEMA …2.2 Modelo Two-stage multi-machine lot-scheduling model-P2SMM Ferreira et al. (2009) propuseram um modelo matemático, modelo P2SMM, para

execuções, o AG obteve valor final melhor que RA 4 vezes nas instancias I1 e I3, 2 vezes em I2 e 6 vezes em I4. Nas demais instancias o AG supera RA em todas as 10 execuções. O melhor resultado foi obtido na maioria das vezes em 1 hora de execução.

Tabela 2. Comparação do desempenho dos métodos em I1-I15. RA AG Proposto

Instâncias Exec -4h Exec- 1h Exec –2h Exec - 3h Exec - 4h

I1 306,83 394,6 345,5 317,9 305,4 I2 276,19 419,2 346,8 328,4 319,1 I3 290,84 457 375,4 340,9 327,6 I4 314,40 422,8 363,6 337,5 317,6 I5 388,55 510,2 449,1 418,4 402,6 I6 526,47 322,7 292 282,5 276,3 I7 509,46 264,1 227,2 225 222,8 I8 509,67 229,7 202,2 200,3 198,4 I9 412,24 186,1 170,6 167,1 165,4 I10 429,87 207,7 172,3 172,3 172,3 I11 289,17 208,6 184,3 183,9 182,5 I12 491,73 215,1 187 185,9 182,3 I13 369,54 204 181,6 177,2 175,3 I14 449,51 261,4 235,4 232,9 231 I15 446,19 304,3 269,9 265,7 262,7

Figura 8 - Comparação do melhor valor obtido pelo AG com P2SMM e RA_R2 em I1-I7.

5. Conclusão O presente artigo apresentou um método que combina o uso de um algoritmo genético multi-

populacional com a resolução exata de um modelo matemático. Os indivíduos do AG fornecem diversos padrões para produção nas linhas que são utilizados na determinação das variáveis inteiras do modelo matemático. Assim, uma versão relaxada do modelo é solucionada utilizando o pacote computacional AMPL/CPLEX que determina as variáveis contínuas. Todavia, essa forma de se avaliar os indivíduos é constantemente utilizada apenas por uma das duas populações utilizadas no método. A outra população faz chamadas ao AMPL/CPLEX para avaliar os indivíduos apenas na sua inicialização e reinicialização. Durante o processo evolutivo da segunda população, os operadores genéticos geram novos indivíduos cuja avaliação é executada recalculando os valores fornecidos inicialmente pela AMPL/CPLEX. Isso limita a forma de busca por soluções a valores inicialmente fixados, mas evita novas execuções do AMPL/CPLEX. As migrações entre populações permitem trocas de informações entre os dois tipos de evoluções executadas. Assim, a combinação dessas duas abordagens em cada população conduziu o método

0,00

100,00

200,00

300,00

400,00

500,00

600,00

I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 I13 I14 I15

RAAG - Exec 1hAG - Exec 2hAG - Exec 3hAG - Exec 4h

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 720

Page 12: UM MODELO MATEMÁTICO PARA UM PROBLEMA …2.2 Modelo Two-stage multi-machine lot-scheduling model-P2SMM Ferreira et al. (2009) propuseram um modelo matemático, modelo P2SMM, para

à obtenção de melhores resultados na maior parte das instancias avaliadas. O AG não apresentou um desempenho médio superior ao método RA (Relaxation Approach) em I2, I3, I4 e I5. Isso pode indicar que o AG proposto apresenta dificuldades em estabelecer sequências para o modelo que consigam lidar com estoque (I2) e atrasos (I3) mais penalizados, ou com capacidade reduzida (I5). Apesar disso, o AG conseguiu soluções melhores que o RA nessas instancias em algumas das 10 execuções realizadas. O AG obteve uma melhoria considerável em relação aos resultados obtidos pelo RA em todas as demais instancias (I6-I15), onde a maior parte desses melhores resultados foi alcançada em média dentro de 1 hora de execução.

6. Agradecimentos Essa pesquisa foi financiada pela Fundação de Amparo à Pesquisa do Estado de Minas

Gerais (FAPEMIG), projeto CEX APQ-2271-5.01/07, e pela Fundação de Amparo à Pesquisa do Estado de São Paulo (Fapesp-04/00462-5).

7. Referências. ABIR , Associacão Brasileira das Indústrias de Refrigerantes e de Bebidas Não Alcoólicas, Dados de Mercado, disponível em http://www.abir.gov.br (último acesso: 15/04/2009). Bitran, G. R. e Yanasse, H. H. (1982), Computational complexity of the capacitated lot size problem, Management Science 28 (10), 1174-1186. Buriol, L., França, P.M. e Moscato, P. (2004), A new memetic algorithm for the asymmetric traveling salesman problem, Journal of Heuristics 10, 483-506. Clark, A. R. (2003), Hybrid heuristics for planning lot setups and sizes, Computers & Industrial Engineering, 45, 545-562. Defersha, F. M. e Chen, M. (2008), A linear programming embedded genetic algorithm for an integrated cell formation and lot sizing considering product quality, European Journal of Operational Research, 187, 46-49. Rangel, S. e Ferreira, D. (2003), Um Modelo de Dimensionamento de Lotes para uma fábrica de refrigerantes, TEMA – Tendências em Matemática Aplicada e Computacional, 4, 2, 237-246. Ferreira, D., França, P. M., Kimms, A., Morabito, R., Rangel, S. e Toledo, C. F. M., Heuristics and metaheuristics for lot sizing and scheduling in the soft drinks industry: a comparison study, Studies in Computational Intelligence, Springer-Verlag Berlin Heidelberg, 128, 169-210, 2008. Ferreira, D., Morabito, R. e Rangel, S. (2008), Um modelo de otimização inteira mista e heurísticas relax and fix para a programação da produção de fábricas de refrigerantes de pequeno porte, Produção, 18, 1, 76-88. Ferreira, D., Morabito, R. e Rangel, S. (2009), Solution approaches for the soft drink integrated production lot sizing and scheduling problem, European Journal of Operational Research, v 196 (2), 697-706. França, P. M., Mendes, A. S. e Moscato, P. (2001), A memetic algorithm for the total tardiness single machine scheduling problem, European Journal of Operational Research, 1(132), 224-242. Holland, J.H., Adaptation in natural and artificial systems, The University of Michigan Press, 1975. Meyr. H. (2002), Simultaneous lotsizing and scheduling on parallel machines, European Journal of Operational Research, 139, 277-292. Toledo, C. F. M., França, P. M., Morabito, R. e Kimms, A. (2007), Um Modelo de Otimização para o Problema Integrado de Dimensionamento de Lotes e Programação da Produção em Fábrica de Refrigerantes, Pesquisa Operacional, v. 27, 155-186.

Toledo, C. F. M., França, P. M., Morabito e R., Kimms, A. (2008a), Multi-population genetic algorithm to solve the synchronized and integrated two-level lot sizing and scheduling problem. International Journal of Production Research, 1-23. Toledo, C. F. M., França, P. M. e Ferreira, J.E. (2008b), Meta-Heuristic Approaches for a Soft Drink Industry Problem, In: 13th IEEE International Conference on Emerging Technologies and Factory Automation, 2008, Hamburg, Alemanha, 1384–1391.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 721