AVALIAÇÃO DE MÉTODOS HEURÍSTICOS SIMULATED
ANNEALING PARA PROGRAMAÇÃO DE OPERAÇÕES EM
SISTEMAS DE PRODUÇÃO FLOW SHOP
João Vitor Moccellin
Escola de Engenharia de São Carlos - Universidade de São Paulo Caixa Postal 359, 13560-970 São Carlos-SP
This paper deals with the problem of minimizing makespan in a flow shop by using Simulated Annealing. By combining different parameters we obtain alternative Simulated Annealing procedures. Starting from a common initial solution we compare the solution quality of such procedures with the same computational effort. The results from computational experience are discussed.
Key words: flow shop sequencing, heuristics, simulated annealing.
1 - Introdução
O problema de programação de operações em um ambiente Flow Shop é um problema de programação de produção no qual n tarefas (J , J1 2, ..., Jn) devem ser processadas por um conjunto de m máquinas distintas, tendo o mesmo fluxo de processamento nas máquinas.
Usualmente a solução do problema consiste em determinar uma seqüência das tarefas dentre as (n!) seqüências possíveis, que é mantida para todas as máquinas e que procura otimizar uma determinada Medida de Desempenho da programação, geralmente associada ao fator tempo. Neste trabalho adota-se como função-objetivo a Duração Total da Programação, ou seja, o intervalo de tempo entre o início de execução da primeira tarefa na primeira máquina e o término de execução da última tarefa na última máquina.
Tendo em vista que o problema é NP-hard, diversos métodos heurísticos têm sido propostos para sua solução, nos casos de médio e grande porte. Dentre os métodos denominados Melhorativos Modernos destacam-se aqueles que utilizam a técnica Simulated Annealing introduzida por Kirkpatrick, Gelatt & Vecchi [3], a qual tem despertado muita atenção devido ao seu potencial para solução de problemas de natureza combinatorial, podendo ser considerada como um procedimento heurístico melhorativo de busca aleatória na vizinhança. Exemplos de aplicação dessa técnica para o problema em questão são encontrados em Osman & Potts [10], Ogbu & Smith [8, 9] e Moccellin [6].
No estudo realizado por Osman & Potts [10], são propostos quatro métodos heurísticos denominados SA(I,O), SA(I,R) SA(S,O) e SA(S,R). Inicialmente, esses quatro algoritmos são comparados entre si, destacando-se o SA(S,R) como o de melhor desempenho. A seguir, tal algoritmo é comparado com o NEH [7] e duas variações dos algoritmos NEH, Palmer [11], CDS [1] e Dannenbring (RA) [2], denominadas NEH + DES e PCDSD + DES. Os resultados mostraram que os dois melhores algoritmos, quanto à qualidade das soluções foram, na ordem, SA(S,R) e NEH + DES.
No trabalho de Moccellin [6] foi efetuado um estudo comparativo entre o SA(S,R) de Osman & Potts e um método heurístico que foi denominado SAfshopH com o objetivo fundamental de verificar a força de uma propriedade do problema de Programação de Operações Flow Shop (Moccellin [5] ). A diferença relevante entre eles situa-se no passo básico de obtenção de uma solução inicial para o problema. O método heurístico SA(S,R) utiliza arbitrariamente a seqüência (J , J1 2, ..., Jn) como solução inicial. Por outro lado, no SAfshopH a solução inicial é obtida por um procedimento heurístico construtivo que utiliza uma analogia com o problema do Caixeiro-viajante.
A comparação do SAfshopH com o SA(S,R) foi feita de maneira similar à experiência computacional reportada por Osman & Potts [10] onde o SA(S,R) foi comparado com outros métodos, tendo apresentado um desempenho superior. Os resultados obtidos mostraram um melhor desempenho do SAfshopH, o qual obteve a melhor solução em 69,2% dos problemas testados.
A motivação para o desenvolvimento de novos métodos heurísticos utilizando a técnica Simulated Annealing é decorrente dos resultados obtidos pelo método SAfshopH na comparação com o SA(S,R), acima reportada. A idéia principal seria tentar melhorar o desempenho do SAfshopH a partir de mudanças na estrutura do procedimento Simulated Annealing de melhoria da solução inicial, ou seja, seria mantida a mesma solução inicial do SAfshopH, porém com um procedimento de melhoria diferente.
2 - Novos Métodos Heurísticos Simulated Annealing
Conforme conhecido na literatura, a eficiência de um procedimento Simulated Annealing é fortemente dependente dos valores adotados para os seus diversos parâmetros e da forma de cálculo da probabilidade de aceitação de mudança da solução atual (solução corrente a partir da qual é gerada uma outra solução pertencente à sua vizinhança). Tendo isto em mente, os métodos heurísticos desenvolvidos são diferenciados em três aspectos considerados relevantes :
• O cálculo da probabilidade de aceitação do movimento,
• Os valores das temperaturas inicial e final, e
• O número de iterações em que se mantém a mesma temperatura, mantendo-se em comum:
• A estrutura de Vizinhança de Inserção e a geração aleatória das soluções vizinhas,
• A função de variação da temperatura, e
• O número total de iterações do procedimento de melhoria da solução inicial.
Probabilidade de aceitação do movimento
São consideradas duas expressões diferentes para o cálculo da probabilidade de aceitação de mudança da solução atual: a primeira conforme a proposta original de Metropolis et al. [4] dada por e-∆/T, sendo dependente da diferença ∆ entre as medidas de desempenho ( duração total da programação) das duas soluções; e a segunda dada por e-1/T com o objetivo maior de verificar a influência da diferença de “estado” das duas soluções, o qual é representado pela duração total da programação.
Temperaturas inicial e final
Para os casos em que se usa a probabilidade de aceitação do movimento e-1/T será utilizada uma temperatura inicial T1 = 50,0 que corresponde a uma probabilidade de 98,02% e uma temperatura final TK = 0,1 correspondendo a uma probabilidade de
aceitação do movimento igual a 0,004%. Esses valores são, em princípio, adequados para o procedimento Simulated Annealing uma vez que nas primeiras iterações o método deve permitir movimentos “colina acima” com o propósito de afastar-se de algum mínimo local e nas últimas iterações as mudanças somente seriam efetuadas para melhorar a solução atual.
Número de iterações em que se mantém a mesma temperatura
No método SA(S,R) de Osman & Potts e no SAfshopH, uma vez efetuada uma iteração ocorre uma diminuição da temperatura.
Neste trabalho são propostas duas variações :
• A primeira mantém a mesma temperatura durante um determinado número fixo de iterações, calculado como uma parcela da vizinhança de cada solução (seqüência) atual. Como já mencionado, a estrutura de vizinhança utilizada é a de Inserção de forma que o número de vizinhos de cada seqüência é igual a (n-1)2 onde n representa o número de tarefas da programação. Em função de experimentação prévia foi estabelecido um valor de 5% do tamanho da vizinhança como sendo o número de iterações do processo de melhoria da solução inicial em que se mantém a mesma temperatura.
• A segunda variação considera que o número de iterações com a mesma temperatura deve ser crescente de acordo com uma progressão aritmética de primeiro termo igual a 1 e razão unitária.
É importante salientar que nas duas variações propostas, o número total de iterações do procedimento de melhoria da solução inicial é mantido igual ao do SAfshopH. Isto foi feito com o propósito de manter o mesmo esforço computacional para todos os novos métodos Simulated Annealing, a serem avaliados e comparados com o SAfshopH.
A partir de combinações das variações quanto aos três aspectos considerados, foram obtidos cinco novos procedimentos Simulated Annealing, denominados SA2, SA3, SA4, SA5 e SA6, os quais juntamente com o SAfshopH foram avaliados por meio de uma experimentação computacional. Tais procedimentos são apresentados no Quadro 1.
Probab. de aceitação e-∆/T. T1 e TK segundo Osman & Potts
Probab. de aceitação e-1/T. T1 = 50,0
TK = 0,1 Mudança de temperatura a
cada iteração. SafshopH SA2
Mudança de temperatura a cada 0,05(n-1) 2 itera-ções.
SA3 SA4
Mudança de temperatura após h iterações, com h = 1, 2, 3, ...
SA5 SA6
Quadro 1 - Novos procedimentos Simulated Annealing.
3 - Experimentação Computacional
Com o objetivo de avaliar o desempenho dos seis métodos heurísticos Simulated Annealing apresentados no Quadro 1, foram gerados aleatoriamente 150 problemas com tempos de processamento das operações provenientes de uma distribuição uniforme no intervalo [1, 100]. O número de máquinas m ∈ {4, 7, 10} e o número de tarefas n ∈ {20,
40, 60, 80, 100}, sendo gerados 10 problemas para cada combinação de valores m e n . O equipamento utilizado foi um microcomputador 486 DX4.
Os resultados principais da experiência computacional estão sumarizados nas Tabelas 1 e 2.
Na Tabela 1 são apresentadas as Porcentagens de Sucesso (PS) dos métodos, para cada classe de problema de acordo com o número de tarefas. Esta porcentagem é calculada pelo número de vezes em que o método apresentou a melhor solução (isoladamente ou não) dividido pelo número de problemas resolvidos. Os números entre parênteses na primeira coluna da Tabela 1 correspondem ao tempo médio de computação (em segundos) na solução dos problemas de cada classe, para 4, 7 e 10 máquinas, respectivamente. Conforme já mencionado, os métodos foram definidos de forma a manter o mesmo esforço computacional, variando somente com o tamanho do problema (número de máquinas e tarefas).
tarefas SAfshopH SA2 SA3 SA4 SA5 SA6
20 (0,8) (3,9) (7.5) 30,0 10,0 20,0 13,3 20,0 23,3 40 (2,8) (9,3) (17,3) 20,0 3,3 50,0 3,3 23,3 23,3 60 (5,1) (15,6) (28,2) 26,6 13,3 36,6 10,0 33,3 16,6 80 (7,6) (22,3) (39,9) 26,6 3,3 33,3 3,3 33,3 6,6 100 (10,4) (29,3) (52,1) 30,0 0,0 20,0 0,0 50,0 13,3 total 26,6% 6,0% 32,0% 6,0% 32,0% 16,6% Tabela 1 - Porcentagem de sucesso
A Tabela 2 mostra a Melhoria Relativa Porcentual Média (MR) dos procedimentos Simulated Annealing, em função do número de tarefas da programação. Tais resultados são ilustrados na Figura 1. A Melhoria Relativa MR é calculada como:
MR = (D1 - D) / D1 onde
D1 = duração total da programação correspondente à solução inicial, D = duração total da programação da melhor solução obtida pelo método.
Cabe relembrar que todos os procedimentos partem de uma mesma solução inicial.
tarefas SAfshopH SA2 SA3 SA4 SA5 SA6
20 5,9 4,2 5,4 4,4 5,6 5,4
40 6,1 4,6 6,5 4,9 6,1 5,7
60 6,5 5,7 6,5 5,1 6,7 5,9
80 5,6 4,8 5,7 4,7 5,8 5,3
100 5,9 5,3 5,8 4,8 6,0 5,6
Tabela 2- Melhoria Relativa Porcentual Média, em função do número de tarefas
0,04 0,045 0,05 0,055 0,06 0,065 0,07 20 40 60 80 100 SAfshopH SA2 SA3 SA4 SA5 SA6 número de tarefas MR
Figura 1 - Gráfico da MELHORIA RELATIVA MÉDIA com máquinas agregadas, dos seis procedimentos Simulated Annealing, em função do número de tarefas.
4 - Conclusões
As conclusões principais advindas da experiência computacional efetuada são apresentadas a seguir:
• Os resultados da Tabela 1 (porcentagens de sucesso) mostram uma superioridade da função probabilidade de aceitação do movimento e-∆/T dependente dos “estados” das soluções, em relação à função independente e-1/T . Isto é constatado pelo melhor desempenho do conjunto de métodos SAfshopH, SA3 e SA5, em relação ao conjunto dos demais (SA2, SA4 e SA6). Este fato também pode ser observado nos resultados da Tabela 2, os quais são ilustrados na Figura 1.
• As porcentagens de sucesso mostram um melhor desempenho do SAfshopH para
problemas de 20 tarefas. Nas classes de 40 e 60 tarefas destaca-se o SA3, que compartilha o melhor desempenho com o SA5 para 80 tarefas. No caso de 100 tarefas o SA5 obteve a melhor porcentagem de sucesso. Um comportamento semelhante é constatado pelas melhorias relativas MR da Tabela 2, representadas graficamente na Figura 1.
Para finalizar, em decorrência das conclusões acima, pode-se considerar como um fruto relevante deste trabalho a futura proposição de um método heurístico “adaptativo” em relação ao número de iterações em que se mantém a mesma temperatura. Assim, o método adaptativo manteria as características do SAfshopH para problemas de até n1 tarefas, com
20 < n1 < 40. Na faixa de n1 a n2 tarefas com 40 < n2 < 80, o método seria o SA3 e para
problemas com o número de tarefas entre n2 e 100 utilizar-se-ia o SA5. Os valores de n1 e
n2 podem ser obtidos por uma experimentação computacional envolvendo os métodos
SAfshopH, SA3 e SA5 para o número de tarefas entre 20 e 80.
5 - Referências Bibliográficas
1. CAMPBELL, H.G., DUDEK, R.A., and SMITH, M.L. (1970), "A Heuristic Algorithm for the n-job, M-machine Sequencing Problem", Management Science 16/B, 630-637. 2. DANNENBRING, D.G. (1977), "An Evaluation of Flow-Shop Sequencing Heuristics",
Management Science 23, 1174-1182.
3. KIRKPATRICK, S., GELATT, C.D. Jr. and VECCHI, M.P. (1983), "Optimization by Simulated Annealing", Science 220, 671-680.
4. METROPOLIS, W. et al. (1953), “Equation of State Calculations by Fast Computing Machines”, J. Chem. Phys. 21, 1087-1092.
5. MOCCELLIN, J.V. (1993), “New Properties of the Permutation Flow Shop Scheduling Problem”. Paper presented at the 36th Joint National Meeting of the ORSA/TIMS, Phoenix-AZ, USA, nov.93, Bulletin, p. 103.
6. MOCCELLIN, J.V. (1994), "Comparison of Neighbourhood Search Heuristics for the Flow Shop Sequencing Problem", Fourth International Workshop on Project Management and Scheduling, July 1994, Leuven-Belgium, Proceedings, p. 228-231. 7. NAWAZ, M., ENSCORE Jr., E.E. and HAM, I. (1983), "A Heuristic Algorithm for the
m-Machine, n-Job Flow-Shop Sequencing Problem", OMEGA 11, 91-95.
8. OGBU, F.A. and SMITH, D.K. (1990), "The Application of the Simulated Annealing Algorithm to the Solution of the n/m/Cmax Flowshop Problem", Computers and Operations Research 17, 243-253.
9. OGBU, F.A. and SMITH, D.K. (1991), "Simulated Annealing for the Permutation Flowshop Problem", OMEGA 19, 64-67.
10. OSMAN, I.H. and POTTS, C.N. (1989), "Simulated Annealing for Permutation Flow-Shop Scheduling", OMEGA 17, 551-557.
11. PALMER, D.S. (1965), "Sequencing Jobs through a Multi-stage Process in the Minimum Total Time - A Quick Method of obtaining a Near Optimum", Operational Research Quarterly 16, 101-107.