• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

Share "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"

Copied!
12
0
0

Texto

(1)

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

claudio@dcc.ufla.br 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

oliveiralukas@yahoo.com.br 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

renatorro@comp.ufla.br Deisemara Ferreira

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

deise@dep.ufscar.br

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.

(2)

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.

(3)

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 3 Lote 4

b b

1 2 3

Lote 1 Lote 2 Lote 4

Tanque

Linha

Lote 3

a b

2

(4)

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: sklI custo de troca do xarope k para o xarope l; sijIIcusto de troca do produto i para j; bklI tempo de troca do xarope k para o xarope l; bijII tempo de troca do produto i para j;amjII tempo de processamento de uma unidade do item j na máquina m; KmI capacidade do tanque m em litros; KmtII = capacidade em unidade de tempo da máquina m no período t; rjl quantidade do xarope l necessária para a produção de uma unidade do produto j; I+j0 estoque inicial do produto j;

0 I

y

ml , 1 se no tanque m está preparado com o xarope l no início do horizonte de planejamento;

0 II

y

mj 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:

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

Ijt = quantidade não produzida de j ao final do período t;

II

xmjt = quantidade do item j produzida na máquina m no micro-período s;

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

yIImjs= 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 N

I I II II

j jt j jt kl mkls ij mijs

j m s k l m s i j

Min h I g I s z s z

θ θ δ δ

+

= = = = ∈ = = ∈

+ + +

∑∑ ∑∑ ∑ ∑ ∑∑∑ ∑

(1)

Sujeito a:

I I ls mls

q y

ml

II jl mjs j

r x

ω

K ymI mlsI , m=1...M l, ∈θm,s=1,..., ;N (2)

( 1)

m m

I I

ml s mls

l l

y y

θ θ

m=1,...,M; t=1,...,T; s∈ −St

{ }

Pt ; (3)

( 1) 1

I I I

mkls mk s mls

zy +y m=1,...,M k l; , ∈θm; s=1,...,N; (4) St

(5)

( 1) 1

mk

I II I

mkls mj s mls

j

z y y

ω

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

1

m m

I mkls

k l

z

θ θ

∑ ∑

m=1,...,M; t =1,...,T; sSt; (6)

+(t1)

Ij +Ijt+

j t

II mjs

m s S

x

ρ

∑ ∑

=I+jt+Ij(t1)+djt, j=1,...,J, t =1,...,T; (7)

m t m m t t

II II II II II II

mj mjs ij mijs ms mt

j s S i j s S s S

a x b z v K

δ δ δ

+ + ≤

∑ ∑ ∑ ∑ ∑ ∑

, m=1,...,M; t=1,...,T; (8)

m m m m

II I I II II

ms kl mkls ij mijs

k l i j

v b z b z

θ θ δ δ

≥ ∑ ∑ − ∑ ∑

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

II II mjs j

II II mt

mjs y

a

xK , m=1,...,M; j∈δm; t =1,...,T; sSt; (10)

1

m

II mjs j

y

δ

=

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

II

zmijsymiII(s1)+ymjsII -1, m=1,...,M;i j, ∈δm; s=1,...,N; (12)

m m

II mijs

i j

z

δ δ

∑ ∑

1, m=1,...,M ; s=1,...,N; (13)

+

Ijt, Ijt ≥0, j=1,..., , J t=1,...,T; xmjsII , vmsII , zmijsII , zmklsI ≥0; ymjsII , m=1,...,M,

e m, e m,

i j∈δ k l∈θ t =1,...,T, sSt. (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 (ymlsI

=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

ωmk

j II

s

ymj( 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 vmsII é 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

(6)

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 zmklsI 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 m=1,...,M , j∈αm, s=1,...,N faça

se xmjsII >0 então

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

=1e mlsI =1

II

mjs y

y , l∈σj

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.

(7)

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 atribuiryIImjs=1, 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 ymisI =1, 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 yIIL1,P1,S1=1,

1 1

, 1 ,

1 =

yITk A S , yIIL1,P3,S2=1, yTkI 1,A2,S2=1, yIIL1,P4,S3=1,yTkI 1,A2,S3=1. 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 =

yIIL P S e 1,

5 , 2 ,

1 =

yIIL P S ) 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

,

1 1

, 1 ,

1 =

y

TkI A S

y

IIL1,P1,S1=1,

y

ITk1,A2,S2=1,

y

IIL1,P3,S2=1,

y

ITk1,A2,S3=1,

y

IIL1,P4,S3=1

Linha 1 - Período 1 Sequência: P1-P3-P4

,

4 1

, 2 ,

1 =

y

ITk A S

y

IIL1,P3,S4=1,

y

ITk1,A1,S5=1,

y

IIL1,P2,S5=1,

y

TkI1,P2,S6=0,

y

IIL1,P2,S6=1

Linha 1 - Período 2 Sequência: P3-P2

,

1 1

, 1 ,

2 =

y

TkI A S

y

IIL2,P2,S1=1,

y

TkI 2,A1,S2=1,

y

IIL2,P2,S2=1,

y

TkI 2,A1,S3=0,

y

IIL2,P2,S3=1

Linha 2 - Período 1 Sequência: P2-P2

,

4 1

, 1 ,

2 =

y

ITk A S

y

IIL2,P1,S4=1,

y

TkI 2,A1,S5=1,

y

IIL2,P1,S5=1,

y

TkI 2,A2,S6=1,

y

IIL2,P4,S6=1

Linha 2 - Período 2 Sequência: P1-P1-P4

(8)

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 t

jt j jt

jI g I

h ce

1 1

(18)

∑ ∑ ∑ ∑

∑ ∑ ∑ ∑

= =

= = +

= N

s M

m j

II mijs II ij i

N s

M

m l

I mkls I kl

k m m

m m

z s z

s ct

1 1

1 1 β β α α (19)









−  +

+

=

∑ ∑ ∑ ∑ ∑ ∑

a x b z v K

mtII

s II ms

i j s

II mijs II ij

j s

II mjs II mj

S S

S t

m cap

t

m m t

m t δ δ

, δ 0 max ) ,

(

; ,...,

1 M

m= t=1,..., .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 verdadeiro

f

M

se v falso

+ =

=

 =

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

2

1 1

2 ( , ).

M T

m t

f ce ct

M

cap m t

= =

= + +

∑∑

(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.

(9)

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.

(10)

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

(11)

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 RA AG - Exec 1h AG - Exec 2h AG - Exec 3h AG - Exec 4h

(12)

à 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.

Referências

Documentos relacionados

* Movement based refers to any Creative work, from any artistic area, using the movement as basis of work, research or critical approach. Movement understood as the movement of

Comparando os dois modelos de carregamento de preenchimento do algoritmo genético desenvolvido, observou-se que o modelo L, M e R se mostrou bastante eficiente nas configurações

O algoritmo genético desenvolvido inspirou-se no algoritmo de HE e CHA (2002), adequado às características e ao contexto do problema real, com possibilidade de escolha entre

´e propor um modelo para o problema de cross-docking que considere simultaneamente v´arios cross- docks, v´arios tipos de produtos, estoque limitado, janelas de tempo r´ıgidas

O sistema de coordenadas planas é naturalmente usado para a representação da superfície terrestre num plano, ou seja, confunde-se com aquilo que se chama de sistema de coordenadas

Junto com a eliminação de glicose, envolve diretamente a perda de eletrólitos e água ocorrendo poliuria, polidipsia, desidratação e hemoconcentração..

Como futuros desdobramentos deste trabalho se pode: Ajustar o algoritmo proposto para trabalhar com outros tipos de atributos que não sejam somente

De forma a resolver este problema, propõe-se no presente trabalho um algoritmo que utiliza os conceitos da metaheurística algoritmo genético de chaves aleatórias