Você está na página 1de 8

XXIII Encontro Nac. de Eng.

de Produo - Ouro Preto, MG, Brasil, 21 a 24 de out de 2003


ENEGEP 2003 ABEPRO 1

Algoritmo gentico para o balanceamento de linhas de produo

Srgio Fernando Mayerle (EPS / UFSC mayerle@eps.ufsc.br)
Rodrigo Nereu dos Santos (EPS / UFSC rodns@eps.ufsc.br)

Resumo
Neste artigo discutido o problema de balanceamento de linhas de produo simples
(produto nico), o qual consiste na obteno de uma alocao de um conjunto de tarefas aos
postos (ou estaes) de trabalho, respeitando a relao de precedncia na execuo destas
tarefas. Duas situaes distintas so consideradas: reduzir o nmero de postos de trabalho,
considerando o tempo de ciclo que satisfaa a demanda e/ou reduzir o tempo de ciclo, dado o
nmero de postos de trabalho. Para cada um destes problemas apresentado um modelo de
Programao Linear Binria, os quais caracterizam a soluo tima do problema. Um
algoritmo gentico proposto para a soluo destes problemas, e aplicado na soluo de um
problema de 70 tarefas proposto por Tonge (1961), considerando distintos postos de
trabalho. Os resultados obtidos so comparados com um limite inferior, demonstrando a
eficincia do mtodo proposto.
Palavras Chave: assembly line balancing; genetic algorithmic; combinatorial optimization.


1. Introduo
O problema de balanceamento de linhas de produo (LBP) refere-se alocao das
atividades de transformao em postos de trabalho, de modo que se obtenha o menor nmero
de postos capaz de satisfazer a demanda e, ainda, que o tempo de ciclo seja o menor possvel,
de modo a aumentar a produtividade. Este problema formulado a partir de um conjunto de
tarefas a serem alocadas, para as quais so conhecidos os tempos padres de execuo. O
balanceamento de linhas tambm propicia, dentre outras vantagens, a recuperao mais rpida
do investimento inicial e o aumento da capacidade de atendimento demanda.
Considerando n tarefas a serem executadas, existem ! n possveis permutaes entre as
mesmas, de modo que a busca da soluo por mtodos de enumerao explcita torna-se
impossvel para a maioria dos casos prticos, remetendo a soluo deste problema ao uso de
meta-heursticas tais como: tabu search, simulated annealing e genetic algorithm (GA).
Diversos trabalhos j foram desenvolvidos na otimizao de problemas combinatoriais com a
utilizao destas meta-heursticas, incluindo variaes dos problemas clssicos de job shop e
flow shop, bem como outros problemas de igual complexidade.
Mais especificamente, o problema de balanceamento de linhas de produo foi discutido por
Tonge (1961 e 1965), Moodie e Young (1965), Nevins (1972), Talbot et ali (1986), que
comparam diversas tcnicas heursticas, e Baybars (1986), que apresenta uma reviso dos
principais algoritmos exatos disponveis. Mais recentemente Anderson & Ferris (1994)
apresentam um GA para este mesmo problema.
2. Caracterizao do problema e formulao matemtica
Considere uma linha de produo simples (produto nico) contendo um conjunto de postos de
trabalho, denotado por } ,..., 2 , 1 { m I = , aos quais devem ser alocadas tarefas de um conjunto
} ,..., 2 , 1 { n J = . Para o produto em questo, considere que para cada tarefa J k existe um

XXIII Encontro Nac. de Eng. de Produo - Ouro Preto, MG, Brasil, 21 a 24 de out de 2003
ENEGEP 2003 ABEPRO 2

subconjunto de tarefas predecessoras, J J
k
e um tempo de execuo
k
t . Considere, ainda,
que seja conhecido o maior tempo de ciclo
o
T com o qual possvel atender a demanda
existente. Ento, o menor nmero de postos de trabalho que contenha todas as tarefas do
conjunto J , pode ser determinado pela soluo do seguinte modelo de programao linear
binria:
LBP-1 Min


=
I i J j
ij i
x P z
1
(2.1)
s.a: J j x
I i
ij
=

1 (2.2)
I i T x t
J j
o
ij j

(2.3)

k
I i
ik
I i
ij
J j J k x i x i


; (2.4)
J j I i x
ij
; } 1 , 0 { (2.5)
onde: 1 =
ij
x caso a tarefa j seja alocada ao posto i , e 0 =
ij
x em caso contrrio; e
i
i
n P = uma penalidade associada ativao do i -simo posto de trabalho.
No modelo acima, a equao (2.2) garante que cada tarefa seja atribuda a exatamente um
posto de trabalho, e as inequaes (2.3) e (2.4) garantem, respectivamente, que nenhum posto
de trabalho receba um subconjunto de tarefas cujo tempo de execuo exceda o tempo de
ciclo
o
T e que as relaes de precedncia entre tarefas sejam obedecidas. Neste modelo,
como se pode observar, a funo objetivo (2.1) construda de modo a penalizar o incremento
do nmero de postos de trabalho.
Para a formulao do modelo acima, o nmero mnimo de postos de trabalho, m, poder ser
estimado a partir da construo de uma soluo inicial usando um mtodo heurstico qualquer.
No pior caso poder ser adotado n m = , ou seja, que em cada posto seja alocado exatamente
uma tarefa e, ainda, que o tempo de ciclo total seja estabelecido pela tarefa de maior durao.
Para o problema (2.1)-(2.5), tem-se como resultado uma soluo vivel, isto , que obedece a
relao de precedncia entre as atividades e o tempo de ciclo que garante o atendimento da
demanda, com o menor nmero de postos de trabalho. Este nmero mnimo de postos de
trabalho poder ser determinado por:
( )
ij j i
x i m =
,
max (2.6)
e a partir desta soluo, um segundo problema de programao linear binria poder ser
formulado para a obteno do menor tempo de ciclo
T
, considerando que as tarefas sero
alocadas em m postos:

XXIII Encontro Nac. de Eng. de Produo - Ouro Preto, MG, Brasil, 21 a 24 de out de 2003
ENEGEP 2003 ABEPRO 3

LBP-2 Min T z =
2
(2.7)
s.a: J j x
m
i
ij
=

=
1
1
(2.8)
m i T x t
J j
ij j
,..., 1 =

(2.9)

k
m
i
ik
m
i
ij
J j J k x i x i

= =
;
1 1
(2.10)
J j I i x
ij
; } 1 , 0 { (2.11)
Pode-se observar que os modelos apresentados acima se diferenciam, basicamente, quanto
funo objetivo. Enquanto o primeiro trata de obter o menor nmero de postos de trabalho
para um tempo mximo de ciclo definido pelo problema, o segundo busca determinar o menor
tempo de ciclo, dado o nmero de postos obtidos atravs da soluo do primeiro modelo.
Apesar da relativa simplicidade dos modelos acima apresentados, as solues destes so de
difcil obteno atravs da utilizao de algoritmos clssicos de programao linear inteira,
especialmente para o caso de problemas que apresentam grande nmero de tarefas.
3. Algoritmo proposto
Para soluo dos problemas LBP-1 e LBP-2, foram desenvolvidos dois GAs, diferenciados
quanto avaliao do fitness, cujos aspectos sero tratados posteriormente. Os GAs so
procedimentos heursticos baseados no princpio da evoluo das espcies enunciado por
Darwin em 1879. A idia de utilizar tal princpio na soluo de problemas matemticos,
notadamente os de otimizao, foi desenvolvida inicialmente por John Holland, no incio da
dcada de 70. Apesar deste processo de evoluo no ser totalmente conhecido pelos
bilogos, alguns aspectos referentes ao mesmo so bem aceitos. Em primeiro lugar, sabe-se
que a evoluo se processa por meio de dispositivos biolgicos denominados de
cromossomos, os quais armazenam as caractersticas dos indivduos. Atravs de um processo
de seleo natural, indivduos mais bem adaptados ao meio (maior fitness) conseguem se
reproduzir com maior freqncia, transmitindo suas caractersticas genticas aos
descendentes. A reproduo a chave pela qual a evoluo se processa. Atravs da
combinao dos materiais genticos dos ancestrais, novos cromossomos so produzidos, os
quais, eventualmente passam por um processo denominado de mutao. Atravs deste
processo, os descendentes podero vir a apresentar caractersticas distintas de seus ancestrais.
Eventualmente, tais caractersticas permitem que o indivduo gerado venha a ter uma maior
capacidade de adaptao ao meio. Os GAs apresentam uma estrutura similar ao que se
observa na natureza, conforme descrito, e seus passos principais podem ser assim delineados:

Gerar uma populao inicial
Avaliar o fitness dos indivduos da populao
Repetir
Selecionar ancestrais da populao
Gerar descendentes atravs do cruzamento gentico entre os ancestrais selecionados
Realizar uma eventual mutao nos descendentes gerados
Avaliar o fitness dos descendentes gerados
Substituir alguns indivduos da populao (ou todos) pelos descendentes gerados
At que uma soluo satisfatria tenha sido encontrada

Dentro desta perspectiva, os aspectos relevantes, que passaro a ser discutidos, so: a
estrutura do cromossomo, a avaliao do fitness e os processos de seleo natural, de
cruzamento e de mutao.

XXIII Encontro Nac. de Eng. de Produo - Ouro Preto, MG, Brasil, 21 a 24 de out de 2003
ENEGEP 2003 ABEPRO 4

3.1. Estrutura do cromossomo e gerao da populao inicial
Uma soluo vivel para o problema de balanceamento de linhas de produo simples
corresponde a uma permutao das tarefas a serem alocadas, de modo a satisfazer as relaes
de precedncia e o tempo de ciclo estabelecido. Neste contexto, a caracterizao de uma
soluo em particular pode ser realizada por meio de um vetor de inteiros, onde cada
elemento corresponde ao ndice de uma tarefa. Neste vetor no pode haver repetio de
ndices de tarefa, j que cada tarefa deve ser alocada a um e somente um posto. Na figura 1,
pode-se observar a representao grfica desta estrutura para um problema com 10 tarefas, na
qual a primeira tarefa a ser realizada a de ndice 3, a segunda de ndice 4, e assim
sucessivamente, at a ltima tarefa (ndice 10).
3 4 2 6 1 7 9 8 5 10

Figura 1 - Esquema de representao do cromossomo, para o problema de balanceamento de linhas de produo.
Para formao de uma populao inicial contendo K solues aleatrias, denotada por
} ,..., ,..., {
1 K r
S S S = , pode-se tomar inicialmente, para cada uma destas solues, a
seqncia de tarefas ) ,..., 2 , 1 ( n S = , e realizar sucessivas trocas de posies (aleatria) entre
pares de elementos. Seja ) ,..., , (
2 1 rn r r r
s s s S = o vetor resultante deste procedimento de trocas.
Note-se que a aplicao deste procedimento no garante que as relaes de precedncia entre
tarefas sejam satisfeitas. Contudo este aspecto poder ser devidamente considerado atravs de
funes de penalidade apropriadas, quando da avaliao do fitness de cada indivduo, como
ser visto mais frente.
Para caracterizao completa da soluo, necessrio identificar em qual posto encontra-se
cada tarefa, como poder ser visto em mais detalhes no algoritmo que ser apresentado
posteriormente.
3.2. Avaliao do fitness
O fitness de um cromossomo representa a capacidade do indivduo adaptar-se ao meio. No
caso dos algoritmos genticos, quando aplicados sobre problemas de otimizao
combinatorial, a medida de fitness costuma relacionar-se com o valor da funo objetivo.
Para um indivduo ) ,..., , (
2 1 rn r r r
s s s S = , o nmero de inviabilidades
r
NI na relao de
precedncia entre tarefas e o valor da funo objetivo
r
z , podero ser calculados,
considerando o tempo de ciclo
o
T e as notaes ) (

t t e ) (

J J , atravs do
procedimento CalculaParametrosFitness apresentado no Quadro I. Aps a aplicao deste
procedimento, o valor de fitness poder ser calculado usando qualquer funo ) (
r
S f que
satisfaa as seguintes condies:
i) Se
q r
NI NI < , ento ) ( ) (
q r
S f S f > ;
ii) Se
q r
NI NI = e
q r
z z < , ento ) ( ) (
q r
S f S f > .
Assim, com base nos valores ) (
r
S f , calculados para todo
r
S pode-se ordenar os indivduos
de , de modo que ) ( ... ) ( ) (
2 1 K
S f S f S f .

XXIII Encontro Nac. de Eng. de Produo - Ouro Preto, MG, Brasil, 21 a 24 de out de 2003
ENEGEP 2003 ABEPRO 5


procedimento CalculaParametrosFitness (
r
S );
incio
1 i ; // inicializar nmero do posto
0
r
NI
; // inicializar nmero de inviabilidades

0
ac
T
; // inicializar tempo acumulado

0
r
z
; // inicializar a funo objetivo
0 v ; // inicializar ndice da tarefa
repetir
1 + v v ;
1 k ; // inicializar ndice tarefas predecessoras
enquanto v k <
faa incio
se
) (
rk rv
s J s
ento 1 +
r r
NI NI ; // incrementar nmero de inviabilidades
1 + k k ; // tomar a prxima tarefa
fim;
se
0
) ( T T s t
ac rv
+
ento
) (
rv ac ac
s t T T +
// incrementar tempo acumulado
seno incio
1 + i i ; // incrementar nmero do posto
) (
rv ac
s t T ; // redefinir o tempo acumulado
fim;

i r r
P z z +
// incrementar a funo objetivo
i s Posto
rv
= ) ( ; // alocar tarefa
rv
s ao posto i
at que n v = ;
Retornar
r
NI ,
r
z
e a lista de tarefas com os respectivos postos;
fim.
Quadro I Procedimento utilizado para clculo dos parmetros da funo de fitness
3.3. Seleo natural e cruzamento (crossover)
No GA proposto para a soluo do problema de balanceamento de linhas de produo
simples, a operao de cruzamento realiza-se entre dois indivduos, denotados por
) ,..., , (
2 1 rn r r r
s s s S = e ) ,..., , (
2 1 qn q q q
s s s S = , escolhidos aleatoriamente e com igual
probabilidade na populao , a fim de gerar um novo descendente ) ,..., , (
2 1 dn d d d
s s s S = , a
ser includo na populao, em substituio a
K
S , caso ) ( ) (
K d
S f S f > . O procedimento de
cruzamento proposto ocorre de modo que as restries de precedncia, denotadas por a
(leia-se precede ), sejam privilegiadas, conforme apresentado no Quadro II. Note-se que
na seleo realizada, apesar de ser utilizada uma distribuio uniforme, os indivduos mais
promissores acabam permanecendo por mais tempo na populao e, consequentemente, sendo
escolhidos com maior freqncia para a realizao da operao de cruzamento.
3.4. Mutao
A mutao nos seres vivos um fenmeno raro no processo de reproduo, e consiste em
modificar de forma aleatria algum gene no cromossomo do indivduo descendente gerado.
Entretanto, no algoritmo proposto ela est presente na concepo de qualquer novo indivduo.
Assim, ocorre que neste algoritmo a mutao projetada a dar preferncia ao preenchimento
dos postos de trabalho, mantida a ordem de precedncia entre tarefas, e observadas as
disponibilidades de tempo para execuo da tarefa no posto, conforme apresentado no Quadro
III. Em outras palavras, na gerao de cada indivduo considerada a possibilidade de trocar a
ordem das tarefas, desde que isto possibilite a melhor utilizao de ociosidades existentes em
postos de trabalho de menor ndice, desde que esta troca no viole alguma restrio adicional
de precedcia j satisfeita.

XXIII Encontro Nac. de Eng. de Produo - Ouro Preto, MG, Brasil, 21 a 24 de out de 2003
ENEGEP 2003 ABEPRO 6

procedimento Cruzamento (
r
S
,
q
S
);
incio
para 1 = k at n faa // para todos os genes do cromossomo
se
qk rk
s s =
ento
rk dk
s s = ; // se forem iguais, manter descendente
se
qk rk
s s a
ento incio // se
rk
s precede
qk
s


rk dk
s s =
; // executar antes
rk
s
Trocar (
qk rk q
s s S , ,
); // permutar posio dos genes em
q
S

fim;
se
rk qk
s s a
ento incio // se
qk
s
precede
rk
s

qk dk
s s =
; // executar antes
qk
s

Trocar (
qk rk r
s s S , ,
); // permutar posio dos genes em
r
S

fim;
se
) (
qk rk
s s Not a
e
) (
rk qk
s s Not a
// se
rk
s e
qk
s
no se precedem
ento incio

= p
Random (
r q,
); // escolha aleatria entre
q
e r

pk dk
s s =
; // executar antes
pk
s
(aleatrio)
se
q p =
ento Trocar (
qk rk r
s s S , ,
) // permutar posio dos genes em
r
S

seno Trocar (
qk rk q
s s S , ,
); // permutar posio dos genes em
q
S

fim;
fim;
Retornar
d
S ;
fim.
Quadro II Procedimento utilizado para realizao da operao de cruzamento entre dois indivduos.

procedimento Mutao (
r
S
);
Incio
0 = m ; // inicializar o nmero de postos
para 1 = i at n faa ( )
o
T i Slack =
; // inicializar folga do posto
para 1 = k at n faa ( ) 1 = k First
; // inicializar primeiro posto para tarefa
para 1 = k at n faa ( ) 0 = k Posto ; // inicializar primeiro posto para tarefa
para 1 = k at n faa // para todos genes do cromossomo
incio
) (k First i = ; // comeando pela 1
a
. possibilidade
enquanto ( ) ) (
rk
s t i Slack <
faa ; 1 + = i i // incrementar posto at encontrar folga
; ) ( i s Posto
rk
= // alocar tarefa
rk
s ao posto i
se m i > ento ; i m = // corrigir nmero de postos, se necessrio
( ) ( ) ) (
rk
s t i Slack i Slack =
; // descontar o tempo de
rk
s na folga de i
para 1 = j at n faa
se
0 ) ( =
rj
s Posto
e
rj rk
s s a
e
i s First
rj
< ) (
// revisar a 1
a
. possibilidade de alocao
ento
i s First
rj
= ) (
; // das atividades sucessoras de
rk
s
fim;
Reordenar os elementos de ) ,..., , (
2 1 rn r r r
s s s S = por ordem crescente de ) (
rk
s Posto ;
Retornar
r
S ;
fim.
Quadro III Procedimento utilizado para realizao da mutao em um indivduo.
4. Resultados numricos
Dos diversos problemas de balanceamento de linhas de produo j consagrados na literatura
tomou-se como exemplo numrico, para fins de comparao, o clssico problema de
balanceamento de linhas elaborado por Tonge (1961), apresentado no anexo. Este exemplo foi
escolhido devido a dois motivos: um problema real proveniente da industria eletrnica; e
numerosos autores o solucionaram por diferentes mtodos e heursticas (Tonge em 1965,

XXIII Encontro Nac. de Eng. de Produo - Ouro Preto, MG, Brasil, 21 a 24 de out de 2003
ENEGEP 2003 ABEPRO 7

Moodie e Young tambm em 1965, Nevins em 1972 e Baybars em 1981).
Neste contexto, para avaliar o algoritmo proposto, comparou-se o valor do tempo de ciclo
obtido pela aplicao do GA, com o limite inferior calculado como se o balanceamento da
carga de trabalho fosse ideal, isto :

m
t
LI
j
= (2.12)
Assim, para distintos postos de trabalho, obteve-se os seguintes resultados:



Tabela 1 Resultados obtidos com a aplicao do algoritmo proposto ao problema de Tonge (1961).
Ressalta-se, todavia, que o limite inferior calculado pela expresso 2.12 um valor terico,
dificilmente alcanvel, tendo em vista as restries de precedncia entre tarefas, e as
dificuldades de se realizar o empacotamento perfeito das tarefas alocadas aos postos de
trabalho, dentro do tempo de ciclo estabelecido por este limite.
5. Concluses e recomendaes
Embora, no se tenha realizado testes exaustivos com o algoritmo proposto, seu desempenho
ficou muito prximo da otimalidade, quando aplicado ao problema de Tonge, inclusive com
performance razovel de tempo de processamento.
Portanto, uma vez que o algoritmo no se restringe busca do menor nmero de postos de
trabalho, mas, tambm, introduz a procura pelo menor tempo de ciclo para um dado nmero
de postos de trabalho, verifica-se que o algoritmo apresenta grande potencial de aplicabilidade
nas linhas de produo reais.
Por outro lado, quanto s recomendaes, sugere-se, em primeiro lugar, que seja ampliado o
nmero de testes realizados com o algoritmo, incluindo outros problemas que tenham
solues por outros mtodos heursticos encontrados na literatura.
Sugere-se, tambm, contemplar, no algoritmo proposto, o problema de balanceamento de
linhas de produo para multi-produtos, nos quais considera-se que a linha sirva diversos
modelos do mesmo tipo de produto ou, at mesmo, diferentes produtos.
Por fim, poder-se-ia tambm desenvolver uma interface grfica ao algoritmo, que de forma
didtica seria utilizada como ferramenta de ensino de engenharia.
6. Bibliografia
ANDERSON, E. J. & FERRIS, M. C. (1994). Genetic Algorithms for Combinatorial
Optimization: The Assembly Line Balancing Problem. ORSA Journal of Computing. Vol. 6,
No. 2, p.161-173.
Tempos de Ciclo (seg.)
m
LI T
%
11 334,82 341 1,85
10 368,30 373 1,28
9 409,22 414 1,17
8 460,38 464 0,79
7 526,14 532 1,11
6 613,83 617 0,52
Desvio mdio em relao ao limite inferior (%) 1,12

XXIII Encontro Nac. de Eng. de Produo - Ouro Preto, MG, Brasil, 21 a 24 de out de 2003
ENEGEP 2003 ABEPRO 8

BAYBARS, I. (1986). A Survey of Exact Algorithms for the Simple Assembly Line
Balancing Problem. Management Science. No. 32, p.909-932.
McMULLEN, P.R. & FRAZIER, G. V. (1998). Using Simulated Annealing to Solve a
Multiobjective Assembly Line Balancing Problem With Parallel Work Stations. International
Journal of Productions Research 31 (10), 2717-2741.
MOODIE, C. L. & YOUNG, H. H. (1965). A Heuristic Method of Assembly Line Balancing
for Assumptions of Constant of or Variable Work Element Times. Journal of Industrial
Engineering 16, 23-29.
NEVINS, A. J. (1972). Assembly Line Balancing Using Best Bud Search. Management
Science 18, 9, p.530.
TALBOT, F. B.; PATTERSON, J. H. & GEHRLEIN, W. V. (1986). A Comparison of
Heuristic Line Balancing Techniques. Management Science 32, 430-454.
TONGE, F. M. (1961). A Heuristic Program of Assembly Line Balancing. Management
Science 7, 21-42.
TONGE, F. M. (1965). Assembly Line Balancing Using Probabilistic Combinations of
Heuristics. Management Science 11, 727-735.
7. Anexo
tarefa
tempo
01
17
02
66
03
54
05
6
19
19
20
54
21
50
04
52
06
88
07
21
08
128
12
21
09
68
10
70
11
85
13
134
14
135
15
94
16
90
17
59
18
319
22
40
23
73
24
12
25
152
26
42
27
45
28
74
30
11
44
43
45
30
46
83
29
26
31
31
32
50
33
102
37
2
34
46
35
35
36
40
38
1
39
3
40
13
41
16
42
25
43
21
47
89
48
56
49
59
50
43
51
11
52
26
53
44
55
38
69
23
70
27
54
121
56
68
57
22
58
7
62
27
59
16
60
32
61
25
63
156
64
28
65
15
66
26
67
18
68
72

Figura 2 Diagrama de precedncia do problema proposto por Tonge (1961).

Você também pode gostar