Académique Documents
Professionnel Documents
Culture Documents
Resumo
Neste artigo é discutido o problema de balanceamento de linhas de produção simples
(produto único), o qual consiste na obtenção de uma alocação de um conjunto de tarefas aos
postos (ou estações) de trabalho, respeitando a relação de precedência na execução destas
tarefas. Duas situações distintas são consideradas: reduzir o número de postos de trabalho,
considerando o tempo de ciclo que satisfaça a demanda e/ou reduzir o tempo de ciclo, dado o
número de postos de trabalho. Para cada um destes problemas é apresentado um modelo de
Programação Linear Binária, os quais caracterizam a solução ótima do problema. Um
algoritmo genético é proposto para a solução destes problemas, e aplicado na solução de um
problema de 70 tarefas proposto por Tonge (1961), considerando distintos postos de
trabalho. Os resultados obtidos são comparados com um limite inferior, demonstrando a
eficiência do método proposto.
Palavras Chave: assembly line balancing; genetic algorithmic; combinatorial optimization.
1. Introdução
O problema de balanceamento de linhas de produção (LBP) refere-se à alocação das
atividades de transformação em postos de trabalho, de modo que se obtenha o menor número
de postos capaz de satisfazer a demanda e, ainda, que o tempo de ciclo seja o menor possível,
de modo a aumentar a produtividade. Este problema é formulado a partir de um conjunto de
tarefas a serem alocadas, para as quais são conhecidos os tempos padrões de execução. O
balanceamento de linhas também propicia, dentre outras vantagens, a recuperação mais rápida
do investimento inicial e o aumento da capacidade de atendimento à demanda.
Considerando n tarefas a serem executadas, existem n ! possíveis permutações entre as
mesmas, de modo que a busca da solução por métodos de enumeração explícita torna-se
impossível para a maioria dos casos práticos, remetendo a solução deste problema ao uso de
meta-heurísticas tais como: tabu search, simulated annealing e genetic algorithm (GA).
Diversos trabalhos já foram desenvolvidos na otimização de problemas combinatoriais com a
utilização destas meta-heurísticas, incluindo variações dos problemas clássicos de job shop e
flow shop, bem como outros problemas de igual complexidade.
Mais especificamente, o problema de balanceamento de linhas de produção foi discutido por
Tonge (1961 e 1965), Moodie e Young (1965), Nevins (1972), Talbot et ali (1986), que
comparam diversas técnicas heurísticas, e Baybars (1986), que apresenta uma revisão dos
principais algoritmos exatos disponíveis. Mais recentemente Anderson & Ferris (1994)
apresentam um GA para este mesmo problema.
2. Caracterização do problema e formulação matemática
Considere uma linha de produção simples (produto único) contendo um conjunto de postos de
trabalho, denotado por I = {1,2,...,m } , aos quais devem ser alocadas tarefas de um conjunto
J = {1,2,...,n } . Para o produto em questão, considere que para cada tarefa k ∈ J existe um
s.a: ∑x
i ∈I
ij =1 ∀j ∈ J (2.2)
∑t
j ∈J
j ⋅ x ij ≤ T o ∀i ∈ I (2.3)
∑i ⋅ x
i ∈I
ij ≤ ∑i ⋅ x
i ∈I
ik ∀k ∈ J ; j ∈ J k (2.4)
x ij ∈ { 0,1} ∀i ∈ I ; j ∈ J (2.5)
No modelo acima, a equação (2.2) garante que cada tarefa seja atribuída a exatamente um
posto de trabalho, e as inequações (2.3) e (2.4) garantem, respectivamente, que nenhum posto
de trabalho receba um subconjunto de tarefas cujo tempo de execução exceda o tempo de
ciclo T o e que as relações de precedência entre tarefas sejam obedecidas. Neste modelo,
como se pode observar, a função objetivo (2.1) é construída de modo a penalizar o incremento
do número de postos de trabalho.
Para a formulação do modelo acima, o número mínimo de postos de trabalho, m , poderá ser
estimado a partir da construção de uma solução inicial usando um método heurístico qualquer.
No pior caso poderá ser adotado m = n , 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 duração.
Para o problema (2.1)-(2.5), tem-se como resultado uma solução viável, isto é, que obedece a
relação de precedência entre as atividades e o tempo de ciclo que garante o atendimento da
demanda, com o menor número de postos de trabalho. Este número mínimo de postos de
trabalho poderá ser determinado por:
m = max i , j i ⋅ x ij ( ) (2.6)
e a partir desta solução, um segundo problema de programação linear binária poderá ser
formulado para a obtenção do menor tempo de ciclo T , considerando que as tarefas serão
alocadas em m postos:
∑t
j ∈J
j ⋅ x ij ≤ T ∀i = 1,...,m (2.9)
m m
∑i ⋅ x
i =1
ij ≤ ∑i ⋅ x
i =1
ik ∀k ∈ J ; j ∈ J k (2.10)
x ij ∈ { 0,1} ∀i ∈ I ; j ∈ J (2.11)
Pode-se observar que os modelos apresentados acima se diferenciam, basicamente, quanto à
função objetivo. Enquanto o primeiro trata de obter o menor número de postos de trabalho
para um tempo máximo de ciclo definido pelo problema, o segundo busca determinar o menor
tempo de ciclo, dado o número de postos obtidos através da solução do primeiro modelo.
Apesar da relativa simplicidade dos modelos acima apresentados, as soluções destes são de
difícil obtenção através da utilização de algoritmos clássicos de programação linear inteira,
especialmente para o caso de problemas que apresentam grande número de tarefas.
3. Algoritmo proposto
Para solução dos problemas LBP-1 e LBP-2, foram desenvolvidos dois GA’s, diferenciados
quanto à avaliação do fitness, cujos aspectos serão tratados posteriormente. Os GA’s são
procedimentos heurísticos baseados no princípio da evolução das espécies enunciado por
Darwin em 1879. A idéia de utilizar tal princípio na solução de problemas matemáticos,
notadamente os de otimização, foi desenvolvida inicialmente por John Holland, no início da
década de 70. Apesar deste processo de evolução não ser totalmente conhecido pelos
biólogos, alguns aspectos referentes ao mesmo são bem aceitos. Em primeiro lugar, sabe-se
que a evolução se processa por meio de dispositivos biológicos denominados de
cromossomos, os quais armazenam as características dos indivíduos. Através de um processo
de seleção natural, indivíduos mais bem adaptados ao meio (maior fitness) conseguem se
reproduzir com maior freqüência, transmitindo suas características genéticas aos
descendentes. A reprodução é a chave pela qual a evolução se processa. Através da
combinação dos materiais genéticos dos ancestrais, novos cromossomos são produzidos, os
quais, eventualmente passam por um processo denominado de mutação. Através deste
processo, os descendentes poderão vir a apresentar características distintas de seus ancestrais.
Eventualmente, tais características permitem que o indivíduo gerado venha a ter uma maior
capacidade de adaptação ao meio. Os GA’s apresentam uma estrutura similar ao que se
observa na natureza, conforme descrito, e seus passos principais podem ser assim delineados:
Dentro desta perspectiva, os aspectos relevantes, que passarão a ser discutidos, são: a
estrutura do cromossomo, a avaliação do fitness e os processos de seleção natural, de
cruzamento e de mutação.
3 4 2 6 1 7 9 8 5 10
Para formação de uma população inicial contendo K soluções aleatórias, denotada por
π = {S1,...,Sr ,...,S K } , pode-se tomar inicialmente, para cada uma destas soluções, a
seqüência de tarefas S = (1,2,...,n ) , e realizar sucessivas trocas de posições (aleatória) entre
pares de elementos. Seja Sr = (sr 1, sr 2 ,..., srn ) o vetor resultante deste procedimento de trocas.
Note-se que a aplicação deste procedimento não garante que as relações de precedência entre
tarefas sejam satisfeitas. Contudo este aspecto poderá ser devidamente considerado através de
funções de penalidade apropriadas, quando da avaliação do fitness de cada indivíduo, como
será visto mais à frente.
Para caracterização completa da solução, é necessário identificar em qual posto encontra-se
cada tarefa, como poderá ser visto em mais detalhes no algoritmo que será apresentado
posteriormente.
Assim, com base nos valores f (Sr ) , calculados para todo Sr pode-se ordenar os indivíduos
de π , de modo que f (S1 ) ≥ f (S 2 ) ≥ ... ≥ f (S K ) .
procedimento CalculaParametrosFitness ( Sr );
início
i ← 1; // inicializar número do posto
NI r ← 0 ; // inicializar número de inviabilidades
Tac ← 0 ; // inicializar tempo acumulado
zr ← 0 ; // inicializar a função objetivo
v ← 0; // inicializar índice da tarefa
repetir
v ← v + 1;
k ←1; // inicializar índice tarefas predecessoras
enquanto k < v
faça início
se srv ∈ J (srk ) então NI r ← NI r + 1 ; // incrementar número de inviabilidades
k ← k + 1; // tomar a próxima tarefa
fim;
se t (srv ) + Tac ≤ T 0 então Tac ← Tac + t (srv ) // incrementar tempo acumulado
senão início
i ← i + 1; // incrementar número do posto
Tac ← t (srv ) ; // redefinir o tempo acumulado
fim;
zr ← zr + Pi // incrementar a função objetivo
Posto (srv ) = i ; // alocar tarefa srv ao posto i
até que v = n ;
Retornar NI r , z r e a lista de tarefas com os respectivos postos;
fim.
Quadro I – Procedimento utilizado para cálculo dos parâmetros da função de fitness
3.4. Mutação
A mutação nos seres vivos é um fenômeno raro no processo de reprodução, e consiste em
modificar de forma aleatória algum gene no cromossomo do indivíduo descendente gerado.
Entretanto, no algoritmo proposto ela está presente na concepção de qualquer novo indivíduo.
Assim, ocorre que neste algoritmo a mutação é projetada a dar preferência ao preenchimento
dos postos de trabalho, mantida a ordem de precedência entre tarefas, e observadas as
disponibilidades de tempo para execução da tarefa no posto, conforme apresentado no Quadro
III. Em outras palavras, na geração de cada indivíduo é considerada a possibilidade de trocar a
ordem das tarefas, desde que isto possibilite a melhor utilização de ociosidades existentes em
postos de trabalho de menor índice, desde que esta troca não viole alguma restrição adicional
de precedêcia já satisfeita.
procedimento Cruzamento ( Sr , Sq );
início
para k = 1 até n faça // para todos os genes do cromossomo
se srk = sqk então sdk = srk ; // se forem iguais, manter descendente
se srk a sqk então início // se srk precede sqk
sdk = srk ; // executar antes srk
Trocar ( Sq , srk , sqk ); // permutar posição dos genes em Sq
fim;
se sqk a srk então início // se sqk precede srk
sdk = sqk ; // executar antes sqk
Trocar ( Sr , srk , sqk ); // permutar posição dos genes em Sr
fim;
se Not (srk a sqk ) e Not (sqk a srk ) // se srk e sqk não se precedem
então início
p = Random ( q,r ); // escolha aleatória entre q e r
sdk = s pk ; // executar antes s pk (aleatório)
se p = q então Trocar ( Sr , srk , sqk ) // permutar posição dos genes em Sr
senão Trocar ( S q , srk , sqk ); // permutar posição dos genes em Sq
fim;
fim;
Retornar S d ;
fim.
Quadro II – Procedimento utilizado para realização da operação de cruzamento entre dois indivíduos.
procedimento Mutação ( Sr );
Início
m =0; // inicializar o número de postos
para i = 1 até n faça Slack (i ) = T o ; // inicializar folga do posto
para k = 1 até n faça First (k ) = 1 ; // inicializar primeiro posto para tarefa
para k = 1 até n faça Posto (k ) = 0 ; // inicializar primeiro posto para tarefa
para k = 1 até n faça // para todos genes do cromossomo
início
i = First (k ) ; // começando pela 1a. possibilidade
enquanto Slack (i ) < t (srk ) faça i = i + 1; // incrementar posto até encontrar folga
Posto (srk ) = i ; // alocar tarefa srk ao posto i
se i > m então m = i ; // corrigir número de postos, se necessário
Slack (i ) = Slack (i ) − t (srk ) ; // descontar o tempo de srk na folga de i
para j = 1 até n faça
se Posto (srj ) = 0 e srk a srj e First (srj ) < i // revisar a 1a. possibilidade de alocação
então First (srj ) = i ; // das atividades sucessoras de srk
fim;
Reordenar os elementos de Sr = (sr 1, sr 2 ,..., srn ) por ordem crescente de Posto (srk ) ;
Retornar Sr ;
fim.
Quadro III – Procedimento utilizado para realização da mutação em um indivíduo.
4. Resultados numéricos
Dos diversos problemas de balanceamento de linhas de produção já consagrados na literatura
tomou-se como exemplo numérico, para fins de comparação, o clássico 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 eletrônica; e
numerosos autores o solucionaram por diferentes métodos e heurísticas (Tonge em 1965,
LI =
∑t j
(2.12)
m
Assim, para distintos postos de trabalho, obteve-se os seguintes resultados:
Tabela 1 – Resultados obtidos com a aplicação do algoritmo proposto ao problema de Tonge (1961).
Ressalta-se, todavia, que o limite inferior calculado pela expressão 2.12 é um valor teórico,
dificilmente alcançável, tendo em vista as restrições de precedência 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. Conclusões e recomendações
Embora, não se tenha realizado testes exaustivos com o algoritmo proposto, seu desempenho
ficou muito próximo da otimalidade, quando aplicado ao problema de Tonge, inclusive com
performance razoável de tempo de processamento.
Portanto, uma vez que o algoritmo não se restringe à busca do menor número de postos de
trabalho, mas, também, introduz a procura pelo menor tempo de ciclo para um dado número
de postos de trabalho, verifica-se que o algoritmo apresenta grande potencial de aplicabilidade
nas linhas de produção reais.
Por outro lado, quanto às recomendações, sugere-se, em primeiro lugar, que seja ampliado o
número de testes realizados com o algoritmo, incluindo outros problemas que tenham
soluções por outros métodos heurísticos encontrados na literatura.
Sugere-se, também, contemplar, no algoritmo proposto, o problema de balanceamento de
linhas de produção 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 também desenvolver uma interface gráfica ao algoritmo, que de forma
didática seria utilizada como ferramenta de ensino de engenharia.
6. Bibliografia
BAYBARS, I. (1986). A Survey of Exact Algorithms for the Simple Assembly Line
Balancing Problem. Management Science. No. 32, p.909-932.
NEVINS, A. J. (1972). Assembly Line Balancing Using Best Bud Search. Management
Science 18, 9, p.530.
68 44 45 46 47
72 06 13 26 43 30 83 89
88 134 42
01 02 03 04 08 12 23 25 35 36 37 38 39 40 42 43 50
17 66 54 52 128 21 73 152 35 40 2 1 3 13 25 21 43
27
70 07 14 45 61 65
27 21 135 25 15
21 28
50 74
69 09 10 11 62 63 64 66
23 68 70 85 22
27 156 28 26
40 29
18 20 26 67
319 54 18
tarefa
15 16 17 19 57 58 59 60
tempo 94 90 59 19 22 7 16 32