MINIMIZAÇÃO DO MAKESPAN EM FLOWSHOP HÍBRIDO E FLEXÍVEL COM TEMPO DE SETUP DEPENDENTE DA SEQUÊNCIA Neuma Eufrázio Braz Moreira, Sérgio Ricardo de Souza, Moacir Felizardo de França Filho Centro Federal de Educação Tecnológica de Minas Gerais Avenida Amazonas 7675,CEP 30510-000 Belo Horizonte, Minas Gerais, Brasil Emails: neumamoreira@dppg.cefetmg.br, sergio@dppg.cefetmg.br, franca@des.cefetmg.br Abstract This paper presents a study about Hybrid Flexible Flowshops with Sequence Dependent Setups Time, denoted HFFS-SDST. The Hybrid Flowshop mixes the characteristics of regular flowshops and parallel machine problems by considering stages with parallel machines instead of having one single machine per stage. The flexibility is because not all jobs visit all the stages. This article presents an hybrid metaheuristic, involving GRASP and ILS metaheuristics, for solving this problem. The results show the superiority of the proposed metaheuristic over the available results in the literature for the same families of instances. Keywords Scheduling, Optimization, Hybrid Flexible Flowshops, Metaheuristics. Resumo Este artigo apresenta um estudo sobre a classe de sequenciamento Flowshop Híbrido Flexível com tempos de preparação dependentes da seqüência, denominada HFFS-SDST. O Flowshop Híbrido Flexível mescla características do Flowshop regular e de máquinas paralelas, considerando que ao invés de máquinas em série existem vários estágios em série com uma ou mais máquinas em paralelo idênticas dentro de cada estágio. A flexibilidade é porque nem todas as tarefas visitam todos os estágios. Para resolver este problema, uma metaheurística híbrida envolvendo as metaheurísticas GRASP e ILS foi implementada. Os resultados mostram a superioridade da técnica desenvolvida sobre os disponíveis na literatura para as mesmas famílias de instâncias. Palavras-chave Sequenciamento de tarefas, Otimização, Flowshop Híbrido Flexível, Metaheurísticas. 1 Introdução O sequenciamento de tarefas é uma formulação para tomada de decisões e otimização dos recursos muito utilizada em empresas de manufaturas e prestação de serviços (Pinedo, 2005). Através do sequenciamento, é possível alocar recursos e tarefas em um dado período de tempo. Portanto, resolver um problema de sequenciamento consiste em definir uma sequência de tarefas a serem executadas em um conjunto de máquinas, de modo a atender um ou mais objetivos, que podem ser a minimização do tempo de conclusão da última tarefa, a minimização do número de tarefas concluídas após as respectivas datas de entrega, a minimização da soma ponderada de atrasos e avanços em relação às datas de entrega, dentre outros, sempre satisfazendo um conjunto de restrições operacionais. Nos problemas de sequenciamento, os recursos e tarefas podem assumir formas diferentes. Em uma oficina, por exemplo, os recursos podem ser máquinas; em um aeroporto, os recursos podem ser as pistas; e, em um laboratório, os recursos podem ser máquinas e pessoas. Existem vários estudos disponíveis na literatura sobre os problemas de sequenciamento. Dentre as classes de problemas de sequenciamento estudadas, Flowshop simples tem sido muito criticado na literatura, pois os ambientes operacionais reais raramente possuem somente uma máquina para cada operação, conforme aponta Naderi et al. (2010). Portanto, existe uma tendência recente em desenvolver trabalhos que se apliquem em situações reais. Considerando esta tendência, este trabalho apresenta uma variação do Flowshop, proposta por Naderi et al. (2010), denominado Flowshop Híbrido Flexível (HFFS). No Flowshop clássico, o fluxo de processamento nas máquinas é o mesmo, ou seja, todas as tarefas seguem a mesma sequência. Já no Flowshop Híbrido, ao invés de máquinas em série, considera-se a existência de estágios em série, sendo que cada estágio possui máquinas paralelas idênticas. Além destas características, no problema apresentado por Naderi et al. (2010) nem todas os estágios obrigatoriamente devem ser executados, e é esta particularidade que garante a flexibilidade do modelo. Naderi et al. (2010) ainda considera a existência de um tempo de preparação (setup) de uma máquina para receber uma tarefa, e que este tempo ainda depende da tarefa que foi processada anteriormente na máquina(sequence Dependent Setups Time - SDST). O critério de otimização considerado neste trabalho é o de minimizar o maior tempo de conclusão das máquinas, denominado makespan (C max ). Considerando que este problema é visto como NP - Difícil (Naderi et al., 2010), neste trabalho é proposta uma implementação híbrida das metaheurísticas GRASP Greedy Randomized Adaptive Search Procedure e ILS Iterated Local Search para resolvê-lo. O restante deste artigo está organizado da seguinte forma: na Seção 2 é apresentado um levantamento bibliográfico dos problemas de sequenciamento associados a este trabalho. 4286
Na Seção 3, o problema abordado é formulado e exemplificado. A Seção 4 apresenta a representação computacional do problema, a estrutura de vizinhança utilizada, a técnica de busca local aplicada e o algoritmo proposto. A Seção 5 apresenta as características de cada instância utilizada para teste e os resultados obtidos para cada uma das instâncias e, por, na Seção 6, são apresentadas as conclusões do trabalho e propostas para futuras pesquisas. 2 Revisão Bibliográfica Os modelos de sequenciamento de tarefas são classificados de acordo com o número de operações necessárias para processar uma tarefa e o número de máquinas disponíveis para cada operação (Gholami et al., 2009). Pinedo (2005) apresenta os problemas de sequenciamento como um tripla α β γ, em que: α descreve o ambiente de máquinas; β fornece as características das tarefas; e γ descreve o critério de avaliação de desempenho, ou seja, a função objetivo. Em relação ao ambiente de máquinas, os modelos de sequenciamento podem ser classificados em: máquinas simples, flowshop permutacional, openshop, máquinas paralelas, flowshop híbrido e jobshop flexível (Pinedo, 2005) e (Gholami et al., 2009). Segundo Ruiz and Maroto (2006), os trabalhos de sequenciamento surgiram na década de 1950 com o artigo de Johnson (1954). Desde então, emergiram diversos estudos na literatura, sempre existindo, no entanto, um gap entre e teoria e a aplicação real dos problemas de sequenciamento, pois os pesquisadores simplificam as características reais que deveriam ser consideradas (Ruiz et al., 2005), (Ruiz and Maroto, 2006) e (Zandieh et al., 2010). O problema de Flowshop é amplamente estudado, devido a sua ampla aplicação na indústria. O Flowshop consiste em um fluxo de tarefas unidirecional, contínuo e ininterrupto, em que tarefas devem ser processadas, na mesma sequência, em máquinas distintas disponíveis em série. Ruiz et al. (2005) considerou o Flowshop com tempo de setup (preparação) dependente da sequência e propôs a utilização de algoritmos genéticos para a solução do problema, com o objetivo de minimização do makespan (C max ). Gupta and Tunc (1991) define o Flowshop Híbrido, que é uma variação do Flowshop, como um conjunto de estágios em série, sendo que cada estágio possui uma ou mais máquinas paralelas. De acordo com Gholami et al. (2009), os trabalhos de pesquisa sobre o modelo de sequenciamento Flowshop Híbrido Flexível surgiram na década de 1970. O Flowshop Híbrido é aplicado em muitas situações práticas (Yaurima et al., 2009). Processos industriais como automotivos, químicos, petróleo, tabaco, têxtil e papel podem ser modelados como Flowshop Híbrido (Gholami et al., 2009). Um dos primeiros trabalhos com este modelo foi apresentado por Salvador (1973), que o utilizou para o sistema de produção em uma indústria de fibras sintéticas. Lina and Liao (2003) também apresentaram uma aplicação do Flowshop Híbrido, para modelar o sequenciamento da produção de etiquetas autocolantes. Para a solução deste problema proposto por Lina and Liao (2003), foram aplicadas heurísticas com o objetivo de minimizar o atraso máximo ponderado. Ziaeifar et al. (2011) e Yaurima et al. (2009) apresentaram uma modelagem matemática do problema Flowshop Híbrido para linhas de montagem de placas de circuito. Os dois trabalhos tiveram como objetivo a minimização do makespan e utilizaram Algoritmos Genéticos. Para resolver o problema HFFS-SDST com o objetivo de minimização do makespan, Kurz and Askin (2004) faz uso da programação inteira. Devido à dificuldade de resolver o problema com a programação inteira, eles também propõem a utilização de heurísticas baseadas em métodos gulosos e algoritmos genéticos. Kurz and Askin (2003) utilizam regras de despachoenaderiet al.(2010),alémdasregras de despacho, propõem a utilização da metaheurística Iterated Local Search (ILS) para solucionar o mesmo problema. Defersha(2010) faz uma revisão sobre os gaps existentes nas pesquisas sobre Flowshop e propõe o uso de programação matemática para resolver o HFFS. Ruiz et al. (2008), além de propor uma modelagem utilizando programação inteira, também propõe o uso de heurísticas. Os dois trabalhos apresentam, como critério de otimização, a minimizaçãodomakespan. Gholamietal.(2009)eMirabi et al. (2013) consideraram em seus trabalhos que nem sempre todas as máquinas estão disponíveis em todos os instantes de tempos, pois existe a possibilidade de quebra. Para resolver este problema, Gholami et al. (2009) propôs a utilização de algoritmos genéticos e Mirabi et al. (2013) a utilização de heurísticas. 3 Formulação do Problema A formulação adotada no presente trabalho para o HFFS-SDST é a mesma proposta por Naderi et al. (2010). Assim, considera-se um conjunto N = {1,2,3,...,n}de tarefas, que devem ser executadas em um conjunto M = {1,2,3,...,m} de estágios. Para cada estágio i M, existe um conjunto de M i = {1,2,3,...,m i } máquinas idênticas. Todas as máquinas em todos os estágios estão habilitadas para processar todas as tarefas. Neste formulação, i representa um dado estágio; j representa uma dada tarefa; P ij : representa o tempo de processamento da tarefa j no estágio i; S ijk representa o tempo de preparação de uma 4287
tarefa j para uma tarefa k dentro de um estágio i; C j representa o instante de tempo de término de processamento no último estágio da tarefa j; C max representa o valor máximo de término de processamento de tarefas ou o tempo de processamento da última tarefa. Pode ser visto como C max = max j {C j }; F j é o conjunto de estágios que a tarefa j deve visitar, considerando que 1 F j m. O objetivo do problema é a minimização do C max e algumas premissas devem ser consideradas: (i) todas as tarefas são independentes e estão disponíveis para serem processadas no instante 0 (zero) no primeiro estágio; (ii) todas as máquinas estão disponíveis; (iii) cada máquina só pode processar uma tarefa de cada vez e uma tarefa só pode ser processada em uma máquina por vez; (iv) o processamento de uma tarefa não pode ser interrompido; (v) a tarefa deve esperar uma máquina ser liberada, caso ela tenha que ser processada nesta máquina. Tabela 1: Exemplo de Instância HFFS-SDST Linha 1 n = 3 0 0 Linha 2 m = 2 0 0 Linha 3 m 0 = 1 m 1 = 2 0 Linha 4 P 00 = 5 P 10 = 7 0 Linha 5 P 01 = 9 P 11 = 4 0 Linha 6 P 02 = 0 P 12 = 3 0 Linha 7 S 000 = 2 S 001 = 1 S 002 = 0 Linha 8 S 010 = 3 S 011 = 2 S 012 = 0 Linha 9 S 020 = 1 S 021 = 1 S 022 = 0 Linha 10 S 100 = 4 S101 = 3 S 102 = 4 Linha 11 S 110 = 2 S 111 = 1 S 112 = 2 Linha 12 S 120 = 4 S 121 = 1 S 122 = 3 3.1 Exemplo Ilustrativo Para representar o problema HFFS-SDST, considera-se uma instância que contém o número de tarefas, o número de estágios, o número de máquinas idênticas dentro de cada estágio, quais as tarefas que são processadas em cada estágio, o tempo de processamento de cada tarefa dentro de cada estágio e o tempo de preparação dentro de um estágio de uma tarefa j para uma tarefa k. O tempo de preparação de uma tarefa pode variar de acordo com a sequência. ATabela1ilustraumexemplodeumainstância para este problema, considerando todas estas informações. Na linha um, n representa o número total de tarefas, que é igual a três; na linha dois, m representa o número de estágios, que é igual a dois; na linha três, coluna dois, m 0 representa o número de máquinas do estágio 0, que, neste exemplo, é um; na linha dois, coluna três, m 1 é o número de máquinas no estágio 1, ou seja, duas máquinas; da linha quatro até a linha seis é representado o tempo de processamento p ij de cada tarefa em cada estágio. A linha quatro, coluna dois, (p 00 ), por exemplo, representa o tempo de processamento da tarefa T0 no estágio 0, que é igual a cinco unidades de tempo. A linha quatro, coluna três, (p 10 ) representa o tempo de processamento da tarefa T0 no estágio 1, que é igual a sete unidades de tempo. Considerando que, no problema tratado, nem todas as tarefas precisam visitar todos os estágios (Flexibilidade), quando o tempo de processamento de uma tarefa em um estágio for igual a zero, significa que a tarefa não visita aquele estágio. Este caso pode ser visto na linha seis, coluna dois (P02) da Tabela 1, em que a tarefa T2 não visita o estágio 0 (primeiro estágio). O valor S ijk Figura 1: Representação da instância da Tabela 1 pelo Gráfico de Gantt. é o tempo de preparação da tarefa j para a tarefa k no estágio i. Da linha sete até a linha nove são representados os tempos de preparação entre as tarefas dentro do estágio 0; da linha dez até a linha doze são representados os tempos de preparação entre as tarefas, que são processadas no estágio 1. O tempo de preparação considera o estágio ao invés da máquina, pois, para cada estágio, as máquinas são idênticas. A linha sete, coluna dois, representa o tempo de preparação no estágio 0datarefaT0paraelamesma, ouseja, nestecaso, nenhuma tarefa foi processada anteriormente à tarefa T0, mas, mesmo assim, a máquina exige um tempo de preparação de duas unidades de tempo para receber esta tarefa. Já a linha sete, coluna três, indica um tempo de preparação no estágio 0 da tarefa T0 para a tarefa T1 que, neste caso, é uma unidade de tempo. A Figura 1 mostra em Gráfico de Gantt um sequenciamento proposto para a instância apresentada na Tabela 1.Neste exemplo, o estágio 0 possui apenas uma máquina M0 e o estágio1possui duas máquinas M1 e M2. A primeira tarefa a ser sequenciada na máquina M0 é a T0. Para receber esta tarefa, são gastas 2 unidades de tempo com a preparação da máquina e o tempo de processamento desta tarefa no primeiro estágio (estágio 0) é de 5 unidades de tempo. Portanto, esta tarefa será liberada no estágio 0 no instante 7. A segunda tarefa a ser sequenciada na máquina M0 é a T1. Ela só poderá iniciar o seu processamento após esta máquina ter liberado a tarefa T0. O tempo de preparação da tarefa T0 para a T1 neste estágio é de 1 unidade de tempo. Como esta 4288
tarefa gasta 9 unidades de tempo para ser processada neste estágio, ela estará liberada no instante 17. Como pode ser visto na coluna 2 e linha 6 da Tabela 1, a tarefa T2 não visita o estágio 0 e, portanto, ela não é processada na máquina M0. 4 Metodologia Nesta seção será descrita como uma solução para o HFFS-SDST é representada computacionalmente, as estruturas de vizinhanças utilizadas, a técnica de busca local aplicada, a metodologia para construir a solução inicial e o algoritmo proposto para solucionar o problema HFFS-SDST. 4.1 Representação Computacional da Solução A solução para o problema HFFS-SDST é representada por uma matriz M, em que as linhas representam as máquinas de todos os estágios e as colunas a sequência de processamento das tarefas dentro de cada máquina pertencente a cada estágio. A Tabela 2 que representa a matriz mostra que existem três tarefas (T0,T1 e T2) para serem processadas e três máquinas, sendo M 0 pertencente ao primeiro estágio e M 1 e M 2 máquinas paralelas idênticas pertencentes ao segundo estágio. Tabela 2: Representação da Solução em forma de Matriz. M 0 T0 T1-1 M = M 1 T2 T1-1 M 2 T0-1 -1 Nesta solução, no primeiro estágio, as tarefas T0, T1 são processadas na máquina M 0. Na máquina M 0, a tarefa T0 precede a T1. No segundo estágio, as tarefas T2 e T1 são processadas na máquina M 1 e a tarefa T0 é processadana máquina M 2. As posições preenchidas com o valor -1 indicam que não existe nenhuma tarefa a ser processada na máquina nesta sequência. A tarefa T2 não aparecena maquina M 0 pois não necessita ser processada neste estágio. 4.2 Estrutura de Vizinhança A vizinhança de uma solução s é o conjunto de soluções N(s), de modo que cada solução s N(s) é obtida a partir de um movimento feito na solução corrente s. Os tipos de movimentos utilizados para este trabalho foram: (i) Troca de tarefas na mesma máquina (Troca Interna). s = (1,2,3,4) s = (4,2,3,1) (ii) Troca de tarefas na mesma posição em máquinas paralelas idênticas do mesmo estágio (Troca Externa). s = M0(1,2,3,4) M1(5,6,7,8) s = M0(5,2,3,4) M1(1,6,7,8) (iii) Realocação de tarefas dentro da mesma máquina. s = (1,2,3,4) s = (4,1,2,3) (iv) Realocação de tarefas em máquinas paralelas idênticas de um determinado estágio. s = M0(1,2,3,4)M1(5,6,7,8) s = M0(1,2,3,8,4)M1(5,6,7) (v) Troca de bloco de três tarefas na mesma máquina (Troca Interna de Bloco). s = (1,2,3,4,5,6) s = (4,5,6,1,2,3) 4.3 Busca Local A técnica de busca local utilizada neste trabalho é o Método de Descida (Best Improvement). Estemétodopartede umasoluçãoiniciale, acada passo, todos os seus possíveis vizinhos são analisados. O método só move para um outro vizinho desde que ele represente uma melhoria no valor corrente da função de avaliação. Para realizar a busca local, os tipos de movimentos são embaralhados e um deles é escolhido aleatoriamente. Somente após a definição do tipo do movimento escolhido que o método de descida é aplicado na solução corrente. 4.4 Construção O GRASP - Greedy Randomized Adaptive Search Procedure é um método iterativo, proposto por Feo and Resende (1995), que consiste na aplicação iterativa de duas fases, denominadas Construção e Refinamento, retornando a melhor das soluções obtidas ao longo da busca. O Algoritmo 1 descreve o pseudocódigo do GRASP. Na fase de Construção, é gerada uma solução parcialmente gulosa por meio de uma função adaptativa gulosa, que estima o benefício de cada um dos elementos. A aleatoriedade da construção é controlada por um parâmetro real α [0,1]. Para α = 1, tem-se uma solução totalmente aleatória; para α = 0, tem-se uma solução totalmente gulosa. Após a construção da solução, é aplicado um método de busca local. A fase de construção dograsp éapresentadano Algoritmo2. Aconstrução de uma solução no método GRASP consiste em inserir elementos, obedecendo a um valor calculado pela função adaptativa gulosa g( ) e a uma regra de seleção que contém um fator aleatório. 4289
Algoritmo 1: GRASP 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 Entrada: f(.), g(.), N(.), GRASPmax,s Saída: s início f ; para Iter=1 até GRASPmax faça Construção( g(.), k, s); Buscalocal (f(.),n(.),s); se (f(s) < f ) então s s; f f(s); s s ; Retorne s; Algoritmo 2: Construção GRASP Entrada: g(.), α,s Saída: s início s ; Inicia a lista C de itens candidatos; Ordene a lista C de acordo com g(.); enquanto C faça LRC = { lista dos k melhores itens de C}; Selecione, aleatoriamente, um item t LRC; s s {t}; Atualize a lista C de itens candidatos; Retorne s; Para construir a solução inicial do problema tratado neste artigo foi utilizado o Algoritmo 2. A função g(t) utilizada para ordenar cada candidato (tarefa) da lista C é a soma dos tempos de processamento de cada tarefa em cada estágio. Após esta ordenação, todos os candidatos t que possuem valor de função g(t) g(t min ) + α{g(t max ) g(t min )} são inseridos na lista Restrita de Candidatos LRC e selecionados aleatoriamente para serem sequenciados em cada máquina. Assim, a lista C é atualizada até que não exista nenhum candidato para ser selecionado. O valor utilizado para o parâmetro α neste trabalho foi α = 0,65. Este valor foi escolhido, pois foram feitos os testes de probabilidade empírica e de Kruskal Wallis com os valores de α = 0,15 e α = 0,85 e o valor de 0.65 atingiu o valor alvo primeiro com probabilidade de praticamente 100%, na maioria dos casos e também apresentou uma menor variabilidade dos dados. Após selecionar a tarefa a ser sequenciada, é necessário escolher a máquina responsável por processá-la. Para a escolha da máquina, foi utilizado o critério guloso, de acordo com a função de avaliação da máquina, que considera o instante de disponibilidade da máquina, o tempo de processamento de cada tarefa em cada estágio e o tempo de preparação no estágio i da tarefa anterior à tarefa escolhida para ser processada na máquina. Portanto, a máquina selecionada para processar a tarefa escolhida é a que apresenta menor instante de liberação. 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 11 12 13 Algoritmo 3: Iterated Local Search ILS Entrada: criterioparada Saída: s início s GeraSolucaoInicial(); s BuscaLocal(s ); enquanto criterioparada não satisfeito faça s Perturbação(s ); s BuscaLocal(s ); s CriterioAceitação(s ); Retorne s; Algoritmo 4: GRASP-ILS Entrada: α, criterioparada Saída: s início s ConstrucaoGRASP(α); s BuscaLocal(s); nivel 20; enquanto criterioparada não satisfeito faça s Perturbacao(s, nivel); s BuscaLocal(s); se C max(s ) < C max(s ) então s s ; Retorne s; 4.5 Iterated Local Search ILS A metaheurística Iterated Local Search ILS é um método proposto por (Lourenço et al., 2003) que gera iterativamente novas soluções no espaço de busca, através de pertubações em uma solução (ótimo local), que passam por um refinamento através da busca local. O Algoritmo 3 apresenta o pseudocódigo do ILS. A linha 2 consiste na geraçãode uma solução inicial. A linha 3 representa a etapa de refinamento da solução inicial gerada na linha 2. Após estes dois passos, o algoritmo executa um laço de repetição até que o critério de parada seja atendido. Neste laço, a solução corrente passa por um processo de perturbação (linha 5) e novamente a busca local é aplicada (linha 6). Se o critério de aceitação for atendido, a solução corrente s será atualizada com o valor de s (linha 7). 4.6 Algoritmo Proposto O Algoritmo 4 apresenta o pseudocódigo do algoritmo proposto, baseado no procedimento híbrido Greedy Randomized Adaptive Search - Iterated Local Search GRASP - ILS (Lourenço et al., 2003), apresentado na Seção 4.5, para resolver o HFFS-SDST estático. Neste Algoritmo, a etapa de geração da solução inicial (linha 2) foi feita com base no procedimento de construção do GRASP, conforme apresentado na Seção 4.4. O método de Busca Local utilizado (linha 3) foi o método de Descida (Best Improvement), descrito na seção 4.3. Das linhas 5 até 11 são aplicados procedimentos de forma iterativa até que o critério de parada seja 4290
Tabela 3: Família de Instâncias Família Qte Inst Qte Tar Qte Est 20x2 80 20 2 20x4 80 20 4 20x8 80 20 8 50x2 80 50 2 50x4 80 50 4 50x8 80 50 8 80x2 80 80 2 80x4 80 80 4 80x8 80 80 8 120x2 80 120 2 120x4 80 120 4 120x8 80 120 8 atendido. Na linha 6 é aplicado o procedimento de perturbação da solução corrente, que consiste em realizar 20 vezes os movimentos de troca interna, troca externa, realocação interna (nível de perturbação). Na linha 7 é aplicado novamente o procedimento de busca local. Após a aplicação da perturbação e busca local, se a nova solução for melhor que a solução corrente, então a solução corrente é atualizada. O critério de parada adotado foi o número de 100 iterações sem melhora. 5 Resultados Computacionais O algoritmo GRASP - ILS proposto foi implementado na linguagem C++, utilizando o Code Blocks 12.1, e testado em um computador Intel (R) Core(TM) i7-3632qm CPU @ 2.2 GHz, MemóriaRAM de 8GB, com um sistema operacional de Windows 8 64 bits. Para testar o algoritmo foram utilizadas 960 instâncias, disponibilizadas por Naderi et al. (2010), pertencentes a 12 famílias diferentes. A Tabela 3 demonstra as características de cada família. A primeira coluna identifica a instância, comdimensãom n, em quemrepresentaaquantidade de tarefas e n a quantidade de estágios. A segunda, terceira e quarta colunas informam a quantidade de instâncias por família, a quantidade de tarefas e a quantidade de estágios, respectivamente. A quantidade de máquinas dentro de cada estágio e o setup utilizado variam de instância para instância. O algoritmo foi executado 30 vezes para cada problema teste, e toda vez que o algoritmo ficava 100 iterações sem melhorar a solução corrente, a execução era interrompida. O parâmetro α utilizado para a construção GRASP foi de α = 0,65. Os resultados do algoritmo proposto foram comparados com os resultados disponibilizados por Naderi et al. (2010). Este autor apresenta três variações do algoritmo ILS (ILS-P, ILS-TRK e ILS-ORK) e, para cada instância, é calculado o desvio de cada algoritmo em relação ao menor valor de C max encontrado por algum destes três algoritmos. O desvio de cada família de instância é fornecido pela média dos desvios de cada Tabela 4: Exemplo de Cálculo do Desvio para 10 instâncias da Família 20 2 Inst ILS-PILS-TRKILS-ORKMin 1 2 3 1-20x2 634 682 652 6340,000,080,03 2-20x2 652 549 650 5490,190,000,18 3-20x2 581 625 592 5810,000,080,02 4-20x2 581 628 586 5810,000,080,01 5-20x2 491 471 488 4710,040,000,05 6-20x2 350 296 354 2960,010,020,00 7-20x2 487 350 483 3500,010,040,00 8-20x2 436 231 436 2310,000,120,02 9-20x2 457 381 470 3810,000,050,06 10-20x2 368 355 372 3550,000,140,03 instância, considerando o valor mínimo e o valor encontrado por cada algoritmo. A Tabela 4 apresenta um exemplo do cálculo do valor mínimo de C max, considerando os três algoritmos e o cálculo do desvio para a família de 80 instâncias com 20 tarefas e 2 estágios (20 2). A primeira linha desta Tabela, por exemplo, representa uma instância que teve os valores mínimos de C max iguais a 634, 682 e 652 para os algoritmos ILS-P, ILS-TRK e ILS-ORK, respectivamente. Portanto, o menor valor de C max foi de 634, obtido pelo C max. Para se obter o desvio de cada um dos algoritmos em relação ao menor valor encontrado, é feito o cálculo: 1 = 100 ILSP(1) Min Min (1) A média dos desvios de cada instância fornece o desvio da família. Assim, para o conjunto de instâncias 20 2 apresentado na Tabela 4, o desvio médio foi de 11,53%, 5,30% e 14,30% para os algoritmos ILS-P, ILS-TRK e ILS-ORK, respectivamente. O menor valor de C max e o C max médio gerado para cada instância pelo algoritmo proposto neste trabalho é comparado com o menor valorde C max encontradopara cadainstância, considerando os três algoritmos de Naderi et al. (2010). A Tabela 5 e a Figura 2 apresentamo comparativo dos desvios do algoritmo proposto (nomeado como Alg.Prop ) para cada família de instância com os desvios dos algoritmos de Naderi et al. (2010). Como pode ser observado, o desvio do algoritmo proposto é menor em 83% dos casos que os desvios dos três algoritmos propostos por Naderi et al. (2010). Isto implica que os valores de C max foram menores que os apresentados por Naderi et al. (2010). Nesta Tabela, a coluna T(s) apresenta a média em segundos da execução do algoritmo para cada família de instância. Na Tabela 6, a coluna SUP apresenta o total de instâncias que tiveram os resultados melhorados. A coluna NS(até 3%) apresenta a quantidade de instâncias que não tiveram os resultados melhorados, ficando o desvio em até 3%. Este desvio 3% foi escolhido para apresentar as instâncias que não superaram os resultados da literatura 4291
Figura 2: Análise dos Desvios das Famílias de Instâncias. Tabela 6: Número de resultados melhorados por família de instâncias usando o Algoritmo GRASP-ILS. Família SUP NS (até 3%) NS (> 3%) TOT % SUP med T(s) 20x2 6 12 62 80 8% 11,38% 0,14 20x4 54 5 21 80 68% -1,74% 0,41 20x8 78 0 2 80 98% -28,48% 1,36 50x2 68 4 8 80 85% -15,05% 0,84 50x4 57 10 13 80 71% -4,16% 2,86 50x8 79 1 0 80 99% -16,50% 22,82 80x2 47 17 16 80 59% -1,09% 3,30 80x4 46 12 22 80 58% -1,97% 9,60 80x8 76 4 0 80 95% -11,51% 39,73 120x2 45 16 19 80 56% 0,02% 24,49 120x4 31 17 32 80 39% -0,59% 28,36 120x8 36 14 30 80 45% 0,78% 157,55 Total 623 112 225 960 65% -6% 24,29 Total% 65% 12% 23% 100% Tabela 5: Desvios percentuais obtidos pelo Algoritmo Proposto Família 1 2 3 Alg.Prop T(s) 20x2 11,53 5,30 14,30 11,38 0,14 20x4 12,36 8,49 14,92-1,74 0,41 20x8 4,61 16,17 6,27-28,48 1,36 50x2 11,17 6,06 12,45-15,05 0,84 50x4 4,26 12,34 5,11-4,16 2,86 50x8 1,02 14,76 1,21-16,50 22,82 80x2 7,48 3,60 8,21-1,09 3,30 80x4 2,96 15,27 4,34-1,97 9,60 80x8 0,87 16,28 0,95-11,51 39,73 120x2 12,48 2,83 11,35 0,02 24,49 120x4 1,71 13,91 2,10-0,59 28,36 120x8 0,68 18,79 0,83 0,78 157,55 Média 5,93 11,15 6,84-5,74 24,29 mas que ficaram bem próximas de superar. A coluna NS(> 3%) demonstra a quantidade de instâncias que não tiveram os resultados melhorados com desvio acima de 3%. Por esta tabela, é possível perceber que, das 960 instâncias testadas, o algoritmo proposto neste artigo conseguiu melhorar os resultados de 65% das instâncias. Das 35% não melhoradas, 12% ficaram com um desvio de até 3% e 23% com um desvio acima de 3% em relação aos de Naderi et al. (2010). 6 Conclusões Este artigo tratou do Problema de Flowshop Híbrido Flexível com Tempo de Setup Dependente da Sequência (HFFS-SDST), que tem, como função de otimização, a minimização do makespan. Para solucionar este problema, foi utilizada a metaheurística GRASP-ILS, sendo que, para a etapa de construção da solução inicial, foi aplicado o GRASP. Este artigo buscou estudar situações reais, pois considera um problema em que existem tarefas que devem ser processadas em um conjunto de estágios dispostos em série, e que cada estágio possui uma ou mais máquinas paralelas idênticas. Além disso, nem todas as tarefas necessitam visitar todos os estágios e o tempo de setup é dependente da sequência. Para testar o algoritmo foram utilizadas 960 instâncias disponibilizadas por Naderi et al. (2010), envolvendo 20, 50, 80 e 120 tarefas para 2, 4,e 8 estágios. O algoritmo proposto neste trabalho conseguiu melhorar 65 % dos resultados de Naderi et al. (2010). Avaliando os resultados obtidos com suas respectivas análises é possível afirmar que as técnicas desenvolvidas neste trabalho contribuem de forma significativa para os estudos de sequenciamento de tarefas. Agradecimentos Os autores agradecem ao CEFET-MG, à CA- PES, à FAPEMIG e ao CNPq pelo apoio ao desenvolvimento do trabalho. 4292
Referências Defersha, F. M. (2010). A comprehensive mathematical model for hybrid flexible flow shop lot streaming problem, International Journal of Industrial Engineering Computations 2: 470 482. Feo, T. and Resende, M. (1995). Greedy randomized adaptive search, Journal of Global Optimization 3: 109 133. Gholami, M., M.Zandieh and A.Alem-Tabriz (2009). Scheduling hybrid flow shop with sequence-dependent setup times and machines with random breakdowns, Int J Adv Manuf Technol 42: 189 201. Gupta, J. N. D. and Tunc, E. A. (1991). chedules for a two-stage hybrid flow shop scheduling with parallel machines at the second stage, International Journal of Production Research 29: 1489 1502. Johnson, S. (1954). Optimal two-and three-stage production schedules with setup times included., Naval Research Logistics Quarterly 1: 61 68. Kurz, M. E. and Askin, R. G. (2003). Comparing scheduling rules for flexible flowlines, Journal of Production Economics pp. 85(3):371 88. Kurz, M. E. and Askin, R. G. (2004). Scheduling flexible flowlines with sequence-dependent setup times, European Journal of Operational Research pp. 59(1):66 82. Lina, H.-T. and Liao, C.-J. (2003). A case study in a two-stage hybrid flow shop with setup time and dedicated machines, International Journal of Productiction Economics 86: 133 143. Ruiz, R. and Maroto, C. (2006). A genetic algorithm for hybrid flow shops with sequence dependent setup times and machine eligibility, European Journal of Operational Research 169: 781 800. Ruiz, R., Maroto, C. and Alcaraz, J. (2005). Solving the flow shop scheduling problem with sequence dependent setup times using advanced metaheuristics, European Journal of Operational Research 165: 34 54. Ruiz, R., Serifoglu, F. S. and Urlings, T. (2008). Modeling realistic hybrid flexible flow shop scheduling problems, Computers & Operations Research 35: 1151 1175. Salvador, S. M. (1973). A solution to a special class of flow shop scheduling problems., Symposium on the theory of scheduling and its applications pp. p.83 91. Yaurima, V., Burtseva, L. and Tchernykh, A. (2009). Hybrid flow shop with unrelated machines, sequence-dependent setup time availability constraints and limited buffers, Computers & Industrial Engineering 56: 1452 1463. Zandieh, M., Mozaffari, E. and Gholami, M. (2010). A robust genetic algorithm for scheduling realistic hybrid flexible flow line problems, J Intell Manuf 21: 731 743. Ziaeifar, A., Tavakkoli-Moghaddam, R. and Pichka, K. (2011). Solving a new mathematical model for a hybrid flow shop scheduling problem with a processor assignment by a genetic algorithm, Int J Adv Manuf Technol 61: 339 349. Lourenço, H., Martin, O. and Stützle, T. (2003). Iterated localsearch,in F. Gloverand G. Kochenberger (eds), Handbook of Metaheuristics, Kluwer Academic Publishers, Boston, pp. 321 353. Mirabi, M., Ghomi, S. M. T. F. and Jolai, F. (2013). A two-stage hybrid flow shop scheduling problem in machine breakdown condition, J Intell Manuf 24: 193 199. Naderi, B., Ruiz, R. and Zandieh, M. (2010). Algorithms for arealistic variant of flow shop scheduling, Computers & OperationsResearch pp. 236 246. Pinedo, M. L. (2005). Scheduling: Theory, Algorithms, and Systems. 4293