Resumos
O problema de minimização de troca de ferramentas (MTSP) busca uma sequência de processamento de um conjunto de tarefas, de modo a minimizar o número de trocas de ferramentas requeridas. Este trabalho apresenta uma nova heurística para o MTSP, capaz de produzir bons limitantes superiores para um algoritmo enumerativo. Esta heurística possui duas fases: uma fase construtiva que é baseada em um grafo em que os vértices correspondem a ferramentas e existe um arco k = (i, j) que liga os vértices i e j se e somente se as ferramentas i e j são necessárias para a execução de alguma tarefa k; e uma fase de refinamento baseada na meta-heurística Busca Local Iterativa. Resultados computacionais mostram que a heurística proposta tem um bom desempenho para os problemas testados, contribuindo para uma redução significativa no número de nós gerados de um algoritmo enumerativo.
Sequenciamento; Troca de ferramentas; Heurística; Grafo; Meta-heurísticas
The minimization of tool switches problem (MTSP) seeks a sequence to process a set of jobs so that the number of tool switches required is minimized. This study presents a new heuristic for the MTSP. This heuristic has two phases: a constructive phase, based on a graph where the vertices correspond to tools and there is an arc k = (i, j) linking vertices i and j if and only if the tools i and j are required to execute some job; and an improvement phase, based on an Iterated Local Search. Computational results show that the proposed heuristic has a good performance on the instances tested contributing to a significant reduction in the number of nodes generated by an enumerative algorithm.
Scheduling; Tool switches; Heuristic; Graph; Metaheuristic
Uma nova heurística para o problema de minimização de trocas de ferramentas
A new heuristic for the minimization of tool switches problem
Antônio Augusto ChavesI; Edson Luiz França SenneII; Horacio Hideki YanasseIII
IInstituto de Ciência e Tecnologia ICT, Universidade Federal de São Paulo UNIFESP, Rua Talim, 330, CEP 12231-280, São José dos Campos, SP, Brasil, e-mail: antonio.chaves@unifesp.br
IIUniversidade Estadual Paulista UNESP, Av. Ariberto Pereira da Cunha, 333, CEP 12516-410, Guaratinguetá, SP, Brasil, e-mail: elfsenne@feg.unesp.br
IIIInstituto Nacional de Pesquisas Espaciais INPE, Av. dos Astronautas, 1758, CEP 12227-010, São José dos Campos, SP, Brasil, e-mail: horacio@lac.inpe.br
RESUMO
O problema de minimização de troca de ferramentas (MTSP) busca uma sequência de processamento de um conjunto de tarefas, de modo a minimizar o número de trocas de ferramentas requeridas. Este trabalho apresenta uma nova heurística para o MTSP, capaz de produzir bons limitantes superiores para um algoritmo enumerativo. Esta heurística possui duas fases: uma fase construtiva que é baseada em um grafo em que os vértices correspondem a ferramentas e existe um arco k = (i, j) que liga os vértices i e j se e somente se as ferramentas i e j são necessárias para a execução de alguma tarefa k; e uma fase de refinamento baseada na meta-heurística Busca Local Iterativa. Resultados computacionais mostram que a heurística proposta tem um bom desempenho para os problemas testados, contribuindo para uma redução significativa no número de nós gerados de um algoritmo enumerativo.
Palavras-chave: Sequenciamento. Troca de ferramentas. Heurística. Grafo. Meta-heurísticas.
ABSTRACT
The minimization of tool switches problem (MTSP) seeks a sequence to process a set of jobs so that the number of tool switches required is minimized. This study presents a new heuristic for the MTSP. This heuristic has two phases: a constructive phase, based on a graph where the vertices correspond to tools and there is an arc k = (i, j) linking vertices i and j if and only if the tools i and j are required to execute some job; and an improvement phase, based on an Iterated Local Search. Computational results show that the proposed heuristic has a good performance on the instances tested contributing to a significant reduction in the number of nodes generated by an enumerative algorithm.
Keywords: Scheduling. Tool switches. Heuristic. Graph. Metaheuristic.
1 Introdução
Considere um ambiente produtivo em que se tem um conjunto de tarefas T = {1, ..., N} a serem processadas sequencialmente e sem interrupção em uma única máquina flexível de manufatura e um conjunto de ferramentas F = {1, ..., M}. Seja Tf o conjunto de tarefas que requerem a ferramenta f ∈ F. Cada tarefa t ∈ T requer um subconjunto de ferramentas Fte só é possível processá-la quando todo este subconjunto de ferramentas está na máquina. Considere que a máquina é capaz de conter no máximo C ferramentas de cada vez, em que C ≥ maxt{|Ft|}. Admite-se que a capacidade C de armazenamento de ferramentas da máquina seja inferior ao número total de ferramentas necessário para processar todas as tarefas. Isto porque, do contrário, o problema é trivial, pois todas as ferramentas podem ser carregadas na máquina e todas as tarefas podem então ser processadas sem que sejam necessárias trocas de ferramentas. Sendo a capacidade inferior ao número total de ferramentas, trocas serão necessárias. Uma troca de ferramentas consiste em remover uma ferramenta da máquina e incluir outra em seu lugar. Considera-se neste trabalho que a ordem das ferramentas na máquina é irrelevante. O problema de minimizar o número de trocas de ferramentas (MTSP, do inglês Minimization of Tool Switches Problem) consiste em determinar uma sequência de processamento das tarefas de modo a minimizar o número total de trocas de ferramentas.
O MTSP é classificado como um problema NP-difícil (CRAMA et al., 1994). Este problema foi estudado por alguns autores que, em sua maioria, propuseram heurísticas. A seguir, uma revisão bibliográfica de alguns destes trabalhos é realizada.
Tang e Denardo (1988) mostram que o problema de minimizar o número de trocas de ferramentas para uma dada sequência de tarefas pode ser resolvido em tempo polinomial por uma política conhecida como KTNS (Keep Tool Needed Soonest). Esta política estabelece que, quando trocas de ferramentas são necessárias, as primeiras ferramentas requeridas para uma próxima tarefa devem ser as primeiras a serem mantidas na máquina.
Crama et al. (1994) propuseram heurísticas construtivas e de refinamento para resolver o MTSP baseadas em heurísticas clássicas do problema do caixeiro viajante. Para tal, faz-se uma associação entre um exemplar do MTSP e um exemplar do caixeiro viajante. Hertz et al. (1998) também apresentam e comparam várias heurísticas baseadas no problema do caixeiro viajante, porém utiliza-se uma definição mais adequada para a "distância" a ser minimizada entre ferramentas. Tal melhoria proporciona um desempenho superior às heurísticas propostas em Crama et al. (1994).
Matzliach and Tzur (1998) apresenta três heurísticas para o MTSP com tamanhos não uniformes de ferramentas em um ambiente dinâmico. As duas primeiras heurísticas são baseadas no problema estático e definem regras para remoção de ferramentas quando necessário. A primeira heurística remove as ferramentas que foram inseridas mais recentemente na máquina. A segunda heurística remove as ferramentas com menor probabilidade de serem usadas no futuro. Em ambas, essas informações precisam ser atualizadas a cada iteração. A terceira heurística leva em consideração um ambiente dinâmico, no qual a distribuição de demanda das ferramentas muda durante o processo. Desta forma, no momento de atualizar as probabilidades de cada ferramenta, esta heurística atribui um peso maior para as novas estimativas e um peso menor para as estimativas antigas.
Shirazi e Frizelle (2001) avaliam a eficiência de métodos para resolver o MTSP empregados por sete empresas de manufatura e os comparam com algumas heurísticas disponíveis na literatura.
Fathi e Barnette (2002) propõem três heurísticas para resolver o problema de sequenciamento de um conjunto de tarefas com determinado tempo de processamento e ferramentas requeridas em m máquinas paralelas idênticas. A primeira heurística é um algoritmo de busca local multi-start e considera várias estruturas de vizinhança e estratégias de busca. A segunda heurística é uma variação da list-processing routine que é comumente usada para o problema de máquinas paralelas. Finalmente, a última heurística é uma adaptação de uma clássica heurística construtiva para o problema do caixeiro viajante.
Ghrayeb, Phojanamongkolkij e Finch (2003) consideram o problema de sequenciamento de placas de circuito impresso visando minimizar o número total de trocas de fitas de entrada necessárias para produzi-las. Os autores apresentam um modelo matemático e uma heurística computacionalmente rápida para o problema. A heurística proposta é eficaz em reduzir o número de trocas de fitas e pode ser usada para o MTSP.
Al-Fawzan e Al-Sultan (2002) apresentam um algoritmo Busca Tabu para resolver o MTSP. O algoritmo utiliza o conceito de memória de curto prazo e inicializa com uma sequência aleatória de tarefas. Utilizando esta sequência gera-se um conjunto de vizinhos trocando duas tarefas de posição e seleciona-se a melhor sequência não tabu. O atributo associado a esta sequência é armazenado na lista tabu. Os autores também propuseram algumas extensões para a Busca Tabu, utilizando duas estratégias para gerar sequências aleatórias, memória de longo prazo e estratégias de oscilações probabilísticas. Os testes computacionais com problemas-teste gerados aleatoriamente apresentam bons resultados.
Propostas de métodos exatos são escassos (LAPORTE; SALAZAR; SEMET, 2004; YANASSE; LAMOSA, 2005; YANASSE; RODRIGUES, 2007; YANASSE; RODRIGUES; SENNE, 2009) e têm aplicabilidade prática na solução apenas de exemplares relativamente pequenos. Laporte, Salazar e Semet (2004) relatam sucesso na resolução de apenas alguns exemplares, com certas particularidades, de problemas com 25 tarefas. Yanasse, Rodrigues e Senne (2009) apresentam um novo esquema enumerativo baseado em ordenamentos parciais que obtém melhores resultados em exemplares em que o algoritmo de Laporte, Salazar e Semet (2004) falha.
Este trabalho apresenta uma nova heurística visando obter um bom limitante superior para o MTSP. Esta heurística tem uma fase construtiva, a qual é baseada em um grafo no qual os vértices correspondem às ferramentas e existe um arco k = (i, j) que conecta os vértices i e j se e somente se as ferramentas i e j são necessárias para a execução de alguma tarefa k ∈ T, e uma fase de refinamento baseada na meta-heurística Busca Local Iterativa (ILS, do inglês Iterated Local Search) (STÜTZLE, 1999; LOURENÇO; MARTIN; STUTZLE, 2003). O limitante superior obtido por esta heurística é utilizado no método enumerativo proposto por Yanasse, Rodrigues e Senne (2009) para obter uma diminuição do número de nós visitados, possibilitando resolver um maior número de exemplares do MTSP.
O restante do trabalho está organizado da seguinte forma. Na seção 2 descreve-se a heurística construtiva proposta, e na seção 3 apresenta-se a implementação da heurística de refinamento proposta. Na seção 4, apresentam-se os resultados computacionais, com a utilização do limitante superior obtido pela heurística proposta no método enumerativo de Yanasse, Rodrigues e Senne (2009). Na seção 5, são apresentadas algumas conclusões deste trabalho.
2 Heurística construtiva
Este trabalho apresenta um método heurístico para determinar uma solução para o MTSP que possui duas fases: uma fase construtiva e uma fase de refinamento. Na primeira fase propõe-se uma nova heurística construtiva para o MTSP, e na segunda fase implementa-se a meta-heurística Busca Local Iterativa (ILS), objetivando melhorar a solução construída.
Na heurística construtiva, inicialmente gera-se um grafo G = (V, A) em que o conjunto de vértices V = {1, 2,..., m} corresponde ao conjunto de ferramentas e o conjunto de arcos A = {1, 2,..., na} é tal que existe um arco k = (i, j) ligando os vértices i e j se e somente se as ferramentas i e j são necessárias para a execução da tarefa k ∈ T. Neste grafo pode haver mais de um arco entre um mesmo par de vértices. Para ilustrar, apresenta-se a seguir uma aplicação desta heurística a um pequeno exemplar do MTSP.
Seja o exemplar Teste do problema MTSP, cujos dados estão apresentados na Tabela 1. Este exemplar tem N = 5, M = 5, C = 3.
Para este exemplar, tem-se o grafo da Figura 1.
O algoritmo construtivo trabalha com a ideia de que devem ser selecionados os arcos (tarefas) tal que a retirada do arco produza vértices isolados (ferramentas que podem ser retiradas da máquina, pois não precisam mais voltar). Neste caso, os vértices de menor grau são os vértices 1 e 5. Deve-se selecionar um deles para iniciar o procedimento de retirada de arcos. A ideia é retirar todos os arcos correspondentes a uma determinada tarefa (observe que existem, no máximo, C arcos para cada tarefa e, portanto, sempre será possível retirar do grafo todos os arcos de uma tarefa. Isto, no máximo, irá requerer trocar todas as ferramentas existentes na máquina). Inicialmente, seleciona-se o vértice 1 e removem-se os arcos correspondentes à tarefa 1. Isto implica em incluir na caixa as ferramentas 1, 2 e 3 necessárias para a realização desta tarefa. Desta forma, tem-se uma nova solução parcial e um novo grafo (Figura 2).
Em seguida, o arco rotulado como 3 é selecionado para ser retirado (note que, dentre as ferramentas presentes na caixa, o vértice 1 é o de menor grau) produzindo um vértice isolado. Isso implica em incluir na caixa a ferramenta 4. Porém, como a caixa está com sua capacidade completa, para incluir a ferramenta 4 deve-se retirar a ferramenta 2 (vértice de maior grau). Com isso, tem-se a Figura 3.
Em seguida, como dentre os vértices 3 e 4 (ferramentas que estão na caixa), o vértice 3 têm o menor grau, deve-se escolher, dentre os arcos rotulados como 4 e 5 (arcos que saem do vértice 3), o arco a ser retirado. O arco 4 implica em 1 troca (incluir a ferramenta 5 no lugar da ferramenta 1). O arco 5 implica em 1 troca (incluir a ferramenta 2 no lugar da ferramenta 1). Mas, como a escolha pelo arco 5 implica em reduzir mais o número de arcos do grafo, deve-se escolher o arco 5. Com isso, tem-se a Figura 4.
Em seguida, dentre as ferramentas 2, 3 e 4 que estão na caixa, a de menor grau é 3 e, portanto, deve-se retirar o arco rotulado como 4. Seja a ferramenta 2 escolhida para sair da caixa (aleatoriamente, pois os vértices 2 e 4 possuem o mesmo grau). Com isso, tem-se a Figura 5.
Finalmente, incluindo a ferramenta 2 no lugar da ferramenta 3 na caixa, o arco 2 pode ser retirado do grafo, o que implica na solução do exemplar (Figura 6).
Este exemplo ilustra a heurística construtiva para o MTSP, sempre privilegiando a retirada de arcos (inclusão de uma tarefa na sequência) que poderá resultar em um vértice isolado (ferramenta que não será mais utilizada em tarefas que ainda não foram executadas). A cada iteração, é necessário verificar se há alguma tarefa que pode ser realizada sem a necessidade de realizar trocas. Caso haja, basta retirar os arcos correspondentes do grafo e atualizar a sequência de tarefas.
O pseudocódigo da heurística construtiva é apresentado na Figura 7, sendo s a solução construída, C a caixa de ferramentas, G o grafo com m vértices e na arestas, v o vértice com menor grau e t a tarefa adicionada à solução a cada iteração. A função CriaGrafo () constrói o grafo entre ferramentas e tarefas. A função AtualizaCaixa () adiciona as ferramentas que não estão na caixa C e que serão utilizadas pela tarefa t. Caso a capacidade da caixa seja ultrapassada, removem-se as ferramentas que não serão mais utilizadas (vértice com grau zero) e as ferramentas não utilizadas pela tarefa t que ainda serão utilizadas pelo maior número de tarefas (vértice com maior grau) até que a capacidade da caixa seja atingida. A função AtualizaGrafo () remove as arestas do grafo que pertencem a tarefa t. A função ExaminaCaixa () verifica se há tarefas que podem ser adicionadas à solução sem realizar trocas na caixa de ferramentas.
3 Heurística de refinamento
Uma solução do MTSP pode ser representada por um vetor que armazena a sequência de tarefas a serem realizadas. A Figura 8 ilustra a representação de uma solução com 5 tarefas.
Para realizar o cálculo da função objetivo de uma solução do MTSP, ou seja, o número total de trocas de ferramentas necessário para processar as tarefas em uma dada sequência, foi implementado o algoritmo KTNS (Keep Tool Needed Soonest) de Tang e Denardo (1988).
Neste trabalho, optou-se por utilizar a meta-heurística Busca Local Iterativa (ILS) que faz uso da solução gerada pela heurística construtiva apresentada anteriormente como sendo a solução inicial do processo de busca. O ILS consiste em um processo iterativo, no qual uma solução é perturbada, gerando novas soluções de partida para um método de busca local.
O algoritmo ILS parte de uma solução inicial para o MTSP (s0). Em seguida, é aplicada uma heurística de busca local obtendo uma solução ótima local (Ŝ) segundo este processo de busca. A partir dessa solução, inicializa-se um processo iterativo até que o critério de parada seja satisfeito. A cada iteração, realiza-se um procedimento de perturbação aleatória da solução, produzindo um novo ponto de partida para a busca local (s'). A heurística de busca local é então aplicada sobre s', encontrando a solução ótima local desta região (Ŝ') segundo este processo de busca.
Para realizar a perturbação da solução corrente, define-se um movimento que consiste em trocar a sequência de duas tarefas, escolhidas aleatoriamente, modificando a ordem de execução destas tarefas. A intensidade da perturbação (quantidade de movimentos realizados) varia a cada iteração. Uma porcentagem β relacionada com o número de tarefas de cada problema-teste define a quantidade de movimentos realizados. Neste trabalho, adotou-se a porcentagem β variando de 20 a 40%.
A heurística de busca local DescidaDoisTroca foi aplicada para obter um ótimo local para a solução s' segundo este processo de busca. Essa heurística consiste em examinar as possíveis trocas entre duas tarefas da solução s', examinando a qualidade da solução a cada troca. Se a solução gerada pela troca for melhor que a solução anterior, continua-se a busca a partir desta solução. Caso contrário, a troca é desfeita e continua-se a busca. A heurística é encerrada quando todas as trocas entre pares de tarefas foram pesquisadas. Ao final, a heurística retorna a melhor solução encontrada.
O critério de aceitação compara a solução Ŝ' com a solução Ŝ e aceita a melhor como a nova solução corrente. O critério de parada do ILS foi definido como o número máximo de iterações. Neste trabalho foram geradas 3000 iterações.
A Figura 9 apresenta o pseudocódigo do ILS aplicado ao MTSP.
Neste trabalho, a heurística apresentada na Figura 9 foi executada 20 vezes para cada exemplar testado. O valor da função objetivo da melhor solução encontrada nas 20 execuções foi utilizado no método enumerativo proposto por Yanasse, Rodrigues e Senne (2009) como sendo o limitante superior inicial. Com isto, foi possível remover da lista ativa todos os nós com número de trocas maior ou igual ao limitante superior e, assim, diminuir o número de nós a serem visitados e acelerar o método enumerativo. No trabalho de Yanasse, Rodrigues e Senne (2009), utiliza-se um valor inteiro grande (como representação de ∞) como limitante superior inicial.
4 Resultados computacionais
O método heurístico proposto e o método enumerativo (YANASSE; RODRIGUES; SENNE, 2009) foram codificados na linguagem C e os testes computacionais foram executados em um microcomputador com processador Pentium 4 de 2,6 GHz e memória de 1 GB. Os experimentos foram empreendidos com o objetivo de evidenciar a qualidade dos resultados da heurística, proporcionando um bom limitante superior, de tal forma, que o método enumerativo se torne mais competitivo para resolver o MTSP.
Os experimentos computacionais foram conduzidos em cinco grupos de exemplares gerados aleatoriamente por Yanasse, Rodrigues e Senne (2009), como indicado em Crama et al. (1994): dadas as quantidades mínima e máxima de ferramentas requeridas por qualquer tarefa, gera-se aleatoriamente um número dentro deste intervalo para estabelecer a quantidade de ferramentas requeridas para cada tarefa. As ferramentas requeridas são, então, estabelecidas aleatoriamente. Em todos os exemplares utilizados para os testes, todas as ferramentas são utilizadas pelas tarefas e, portanto, não existem tarefas dominadas. A Tabela 2 apresenta as características dos cinco grupos de exemplares. Estes exemplares estão disponíveis no endereço http://www.feg.unesp.br/~elfsenne/instances.
Os resultados computacionais para o método heurístico são apresentados nas Tabelas 3 a 7, sendo agrupados por exemplares com características similares de cada grupo. Estas tabelas contêm:
N: número de tarefas;
M: número de ferramentas;
C: capacidade de carregamento de ferramentas na máquina;
NT*: menor número de trocas de ferramentas encontrado;
NT: número total médio de trocas de ferramentas em 20 execuções;
TC*: tempo computacional médio para encontrar a melhor solução, em segundos;
TC: tempo computacional total médio, em segundos.
O método heurístico proposto (Fase construtiva + Fase de refinamento) encontra boas soluções para todos os exemplares testados, como será observado na comparação com os testes realizados com o método enumerativo. Para os grupos A e B, o método heurístico proposto encontra todas as soluções ótimas, e para os grupos C e E em apenas 2 e 1 exemplares, respectivamente, a solução ótima não foi obtida. Para o grupo D em 12 exemplares, a solução encontrada pelo método enumerativo foi melhor que a obtida pelo método heurístico proposto. Além disso, o método heurístico mostrou ser robusto nos casos testados, uma vez que o desvio percentual médio total da melhor solução encontrada, em relação à solução média, foi de 0,031.
Pelos resultados mostrados nas Tabelas 3 a 7, pode-se observar que a heurística construtiva obtém boas soluções iniciais para o MTSP em um tempo computacional significativamente baixo. Em comparação com a melhor solução encontrada pela meta-heurística ILS, a heurística construtiva obtém soluções com um gap médio de 12% para o grupo A, 15% para os grupos B e E e 20% para os grupos C e D.
A Figura 10 apresenta uma comparação entre o ILS iniciando a busca a partir da solução obtida pela heurística construtiva (HC+ILS) e a partir de uma solução gerada aleatoriamente (Aleatório+ILS). Neste gráfico, é apresentada a porcentagem do tempo computacional total necessária para obter a melhor solução em ambos os casos.
Observa-se que a qualidade da solução inicial ajudou a melhorar o processo de convergência da meta-heurística usada na fase de refinamento. Em média, o ILS encontra a melhor solução em menos de 1% do tempo total de execução do método para exemplares do grupo A. Para exemplares do grupo B, este percentual também é inferior a 1%. Para a metade dos exemplares do grupo C, este percentual é de 5%, e para os demais exemplares deste grupo, é de menos de 15%. Para os exemplares do grupo D, este percentual é inferior a 5% na maioria dos exemplares e menor que 20% nos demais exemplares, e para o grupo E, este percentual é inferior a 5% para praticamente todos os exemplares.
Os resultados computacionais obtidos com o método enumerativo de Yanasse, Rodrigues e Senne (2009), utilizando a melhor solução encontrada pelo método heurístico como limitante superior, encontram-se nas Tabelas 8 a 12. Estas tabelas contêm, além das colunas N, M e C apresentadas anteriormente, as seguintes colunas:
Min: quantidade mínima de ferramentas requeridas por uma tarefa;
Max: quantidade máxima de ferramentas requeridas por uma tarefa;
NT: número total de trocas de ferramentas;
NG: número de nós gerados na árvore de busca;
TC: tempo computacional, em segundos;
NP: número de exemplares resolvidos dentro do limite de tempo;
LS: limitante superior obtido com o método heurístico.
Em cada linha destas tabelas, apresenta-se o resultado da resolução de 10 exemplares, limitando o tempo de execução em 3600 segundos. Os valores das colunas NT, NG, TC e LS destas tabelas referem-se à média dos exemplares resolvidos dentro do limite de tempo estabelecido. Nestas tabelas, a coluna YRS reproduz os resultados de Yanasse, Rodrigues e Senne (2009), que utiliza ∞ como limitante superior inicial, e na coluna YRS-LS tem-se os resultados obtidos pelo algoritmo enumerativo de Yanasse, Rodrigues e Senne (2009), utilizando os resultados do método heurístico (coluna LS) como limitante superior inicial.
Pelos resultados mostrados nas Tabelas 8 e 9, compostas por exemplares dos grupos A e B respectivamente, pode-se observar que os métodos enumerativos YRS e YRS-LS resolvem todos os exemplares. Porém, há uma pequena diminuição no número de nós gerados na árvore de busca pelo método YRS-LS (3,43% na Tabela 8 e 7,46% na Tabela 9). Observa-se também que o método heurístico proposto encontra a solução ótima para todos os exemplares destas tabelas.
Na Tabela 10, são apresentados exemplares do grupo C e observa-se uma redução significativa (aproximadamente 80%) do número de nós gerados pelo método YRS-LS. Além disso, há uma diminuição de 83% do tempo computacional. Deve-se observar também que o algoritmo YRS-LS é capaz de resolver todos os exemplares da Tabela 10, enquanto que o algoritmo enumerativo original YRS deixou de resolver 3 exemplares. Observa-se também que o método heurístico proposto obtém a solução ótima de 337 dos 340 exemplares, e que nos três exemplares para os quais a solução encontrada não é ótima, a diferença foi de apenas uma troca de ferramenta.
A Tabela 11 corresponde aos maiores exemplares testados neste trabalho, grupo D. Nesta tabela, também pode-se observar uma redução do número de nós gerados e do tempo computacional no método enumerativo YRS-LS em comparação com o método enumerativo original (34 e 48%, respectivamente). O método enumerativo original é capaz de resolver apenas 109 dos 260 exemplares, enquanto que o método YRS-LS é capaz de resolver 189 dos 260 exemplares, ou seja, um aumento de 73% no número de exemplares resolvidos. Observa-se também que o método heurístico proposto obtém a solução ótima de 177 dos 189 exemplares para os quais a solução ótima é conhecida. Além disso, em apenas 12 dos 260 exemplares, a solução da heurística é pior que a do método enumerativo, sendo que, em 11 destes exemplares, a diferença é de apenas uma troca de ferramenta.
Na Tabela 12, pode-se observar que ambos os métodos enumerativos são capazes de resolver todos os exemplares do grupo E. Porém, no método enumerativo YRS-LS há uma redução de 74% do número de nós gerados e 76% do tempo computacional. Para este grupo, observa-se que o método heurístico proposto não obtém a solução ótima para apenas um exemplar.
Por fim, a Tabela 13 apresenta os limitantes superior (LS) e inferior (LI) para os 71 exemplares do grupo D que não foram resolvidos pelo método enumerativo com o limitante superior fornecido pelo método heurístico (com o tempo computacional limitado em 3600 segundos). O limitante inferior para o MTSP é obtido de acordo com o sugerido em Yanasse e Rodrigues (2007), resolvendo-se de maneira ótima exemplares obtidos do exemplar original eliminando-se uma ou mais tarefas. Qualquer solução ótima de um exemplar de MTSP que tenha que processar apenas um subconjunto das tarefas do exemplar original fornece um limitante inferior para o exemplar original. A coluna NTS apresenta o número de tarefas no subconjunto de cada um dos 71 exemplares resolvidos. Pode-se observar que o gap, diferença entre o número de trocas do limitante superior e inferior, é pequeno para todos os exemplares. Estes limitantes mostram que o método heurístico proposto é eficiente para resolver o problema de minimização de troca de ferramentas.
5 Conclusão
Este trabalho propõe um método heurístico para gerar bons limitantes superiores para o problema de minimização do número de trocas de ferramentas (MTSP) em uma máquina flexível de manufatura. Estes limitantes superiores são utilizados no método enumerativo proposto por Yanasse, Rodrigues e Senne (2009), fazendo com que haja uma diminuição no tamanho da árvore de busca gerada pelo método.
O método heurístico proposto é composto por uma heurística construtiva que gera uma boa solução inicial para a meta-heurística ILS. A heurística construtiva utiliza um grafo no qual os vértices representam as ferramentas e os arcos são as tarefas. Neste grafo, para cada tarefa, existem arcos rotulados com o número da tarefa interligando as ferramentas necessárias para sua execução. A ideia da heurística é produzir vértices isolados por meio da retirada de arcos do grafo, uma vez que um vértice isolado corresponde a uma ferramenta que não será mais utilizada e, portanto, se retirada da caixa não necessita mais voltar à caixa. Esta heurística obtém boas soluções iniciais para todos os exemplares testados, sendo um bom ponto de partida para o processo de busca da meta-heurística ILS.
Os experimentos computacionais mostram que a utilização do limitante superior obtido pelo método heurístico proposto no método enumerativo de Yanasse, Rodrigues e Senne (2009) gera reduções significativas tanto do número de nós gerados na árvore de busca, como do tempo computacional, possibilitando resolver exemplares do problema que antes não havia sido possível. Estes resultados validam a utilização do método heurístico como bom gerador de limitantes superiores para o método enumerativo aplicado ao MTSP. Além disso, o método heurístico proposto mostrou-se eficiente, obtendo a solução ótima para a grande maioria dos exemplares para os quais esta é conhecida.
Um possível alvo de estudos futuros é a utilização de outras regras de seleção de tarefas a serem inseridas e de ferramentas a serem trocadas na heurística construtiva. Pretende-se também, utilizar a meta-heurística ILS como geradora de soluções para um método híbrido conhecido como Busca por Agrupamentos (CS, do inglês Clustering Search) (CHAVES; LORENA, 2008, 2009). Além disso, a realização de testes com exemplares maiores do problema também será objeto de investigação futura.
Agradecimentos
Os autores agradecem aos revisores anônimos as valiosas sugestões, que muito contribuíram para a melhoria deste trabalho.
Recebido em 13/6/2011
Aceito em 21/11/2011
Suporte financeiro: CNPq e FAPESP.
- AL-FAWZAN, M. A.; AL-SULTAN, K. S. A tabu search based algorithm for minimizing the number of tool switches on a flexible machine. Computers & Industrial Engineering, v. 44, p. 35-47, 2002. http://dx.doi.org/10.1016/S0360-8352(02)00183-3
- CHAVES, A. A.; LORENA, L. A. N. Hybrid metaheuristic for the prize collecting traveling salesman problem. Lecture Notes in Computers Science, v. 4972, p. 123-134, 2008. http://dx.doi.org/10.1007/978-3-540-78604-7_11
- CHAVES, A. A.; LORENA, L. A. N. Clustering search algorithm for the capacitated centred clustering problem. Computers & Operations Research, v. 37, p. 552-558, 2009. http://dx.doi.org/10.1016/j.cor.2008.09.011
- CRAMA, Y. et al. Minimizing the number of tool switches on a flexible machine. International Journal ofFlexible Manufacturing Systems, v. 6, p. 33-54, 1994. http://dx.doi.org/10.1007/BF01324874
- FATHI, Y.; BARNETTE, K. W. Heuristic procedures for the parallel machine problem with tool switches. International Journal of Production Research, v. 40, p. 151-164, 2002. http://dx.doi.org/10.1080/00207540110076115
- GHRAYEB, O. A.; PHOJANAMONGKOLKIJ, N.; FINCH, P. R. A mathematical model and heuristic procedure to schedule printed circuit packs on sequence. International Journal of Production Research, v. 41, p. 3849-3860, 2003. http://dx.doi.org/10.1080/0020754031000118071
- HERTZ, A. et al. Heuristics for minimizing tool switches when scheduling part types on a flexible machine. IEE Transactions, v. 30, 689-694, 1998. http://dx.doi.org/10.1080/07408179808966514
- LAPORTE, G.; SALAZAR, J. J.; SEMET, F. Exact Algorithms for the Job Sequencing and Tool Switching Problem. IIE Transactions, v. 36, p. 37-45, 2004. http://dx.doi.org/10.1080/07408170490257871
- LOURENÇO, H.; MARTIN, O.; STUTZLE, T. Iterated local search. In: GLOVER, F.; KOCHENBERGER, G. A. (Eds.). Handbook of Metaheuristics New York: Springer, 2003. p. 320-353.
- MATZLIACH, B.; TZUR, M. The online tool switching problem with non-uniform tool size. International Journal of Production Research, v. 36, p. 3407-3420, 1998.
- SHIRAZI, R.; FRIZELLE, G. D. M. Minimizing the number of tool switches on a flexible machine: an empirical study. International Journal of Production Research, v. 39, p. 3547-3560, 2001.
- STÜTZLE, T.Iterated local search for the quadratic assignment problem 1999. Tese (Doutorado)-TU Darmstadt, 1999.
- TANG, C. S.; DENARDO, E. V. Models Arising from a Flexible Manufacturing Machine, Part I: Minimization of the Number of Tool Switches. Operations Research, v. 36, p. 767-777, 1988. http://dx.doi.org/10.1287/opre.36.5.767
- YANASSE, H. H.; LAMOSA, M. J. P. An application of the generalized travelling salesman problem: the minimization of tool switches problem. In: INTERNATIONAL ANNUAL SCIENTIFIC CONFERENCE OF THE GERMAN OPERATIONS RESEARCH SOCIETY, 2005, Bremen, Germany. Proceedings..Bremen, 2005. p. 90.
- YANASSE, H. H.; RODRIGUES, R. C. M. A partial ordering enumeration scheme for solving the minimization of tool switches problem. In: INFORMS ANNUAL MEETING SEATTLE, 2007, Seattle, Washington. Proceedings.. Seattle, 2007. p. 299-299.
- YANASSE, H. H.; RODRIGUES, R. C. M.; SENNE, E. L. F. Um algoritmo enumerativo baseado em ordenamento parcial para resolução do problema de minimização de trocas de ferramentas. Gestão e Produção, v. 16, n. 3, p. 370-381, 2009.
Datas de Publicação
-
Publicação nesta coleção
26 Abr 2012 -
Data do Fascículo
2012
Histórico
-
Recebido
13 Jun 2011 -
Aceito
21 Nov 2011