UNIVERSIDADE DE SÃO PAULO ESCOLA DE ENGENHARIA DE SÃO CARLOS DEPARTAMENTO DE ENGENHARIA DE PRODUÇÃO FÁBIO JOSÉ CERON BRANCO

Documentos relacionados
Soluções de alto desempenho para a programação da produção flow shop

REDUÇÃO DO ESTOQUE EM PROCESSAMENTO EM SISTEMAS DE PRODUÇÃO FLOW SHOP

Programação da produção em sistema no-wait flow shop com minimização do tempo total de fluxo

Minimização da duração total da programação em sistemas de produção flowshop, sem interrupção de execução e tarefas

Sistemas de Produção em Fluxo

HEURÍSTICA CONSTRUTIVA PARA A PROGRAMAÇÃO DE OPERAÇÕES FLOW SHOP

ESTÁGIOS DOMINANTES FLEXÍVEIS EM SISTEMAS DE PRODUÇÃO FLOW SHOP HÍBRIDOS

Métodos de alto rendimento e baixa complexidade em flowshop

UNIVERSIDADE DE SÃO PAULO

Avaliação de métodos heurísticos em sistemas de produção no-wait flow shop

PROGRAMAÇÃO DA PRODUÇÃO FLOW SHOP PERMUTACIONAL COM MINIMIZAÇÃO DO TEMPO MÉDIO DE FLUXO

PROGRAMAÇÃO DA PRODUÇÃO EM SISTEMAS POR BATELADAS: UM ESTUDO PARA A OTIMIZAÇÃO DO MAKESPAN

Gestão & Produção, v.17, n.2, p ,

Universidade de São Paulo Escola de Engenharia de São Carlos - EESC Departamento de Engenharia de Produção GUILHERME BARQUETE ZUCCOLOTTO

Problemas de otimização

1_1 1_2 2_1 1_ _ _ Fonte: Autor

ANÁLISE COMPARATIVA DE HEURÍSTICAS PARA MINIMIZAÇÃO DE ADIANTAMENTOS E ATRASOS EM FLOW SHOP COM TEMPOS DE SETUP

4 Métodos Existentes. 4.1 Algoritmo Genético

PROGRAMAÇÃO FLOW SHOP PERMUTACIONAL COM TEMPOS DE SETUP ASSIMÉTRICOS E DEPENDENTES DA SEQÜÊNCIA POR MEIO DE ANÁLISE DA FLUTUAÇÃO DO GARGALO

PROGRAMAÇÃO DA PRODUÇÃO EM SISTEMAS FLOWSHOP UTILIZANDO UM MÉTODO HEURÍSTICO HÍBRIDO ALGORITMO GENÉTICO-BUSCA TABU

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE INFORMÁTICA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO BERNARDO HENRIQUE OLBERTZ NETO

Buscas Informadas ou Heurísticas - Parte III

COMPARAÇÃO ENTRE HEURÍSTICAS PARA AMBIENTES FLOW SHOP COM MINIMIZAÇÃO DO MAKESPAN

METAHEURÍSTICAS: 1 SIMULATED ANNEALING (S.A) 1.1 INTRODUÇÃO

MÉTODOS HEURÍSTICOS PARA PROGRAMAÇÃO DE FLOW SHOP BICRITÉRIO COM DATAS DE LIBERAÇÃO E SETUP INDEPENDENTE

Pesquisa Operacional Aplicada à Mineração

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

UM EFICIENTE MÉTODO HEURÍSTICO CONSTRUTIVO PARA O PROBLEMA NO-WAIT FLOWSHOP COM TEMPOS DE SETUP DEPENDENTES DA SEQÜÊNCIA

MINIMIZAÇÃO DO TEMPO TOTAL DE ATRASO NO PROBLEMA DE FLOWSHOP COM BUFFER ZERO ATRAVÉS DE BUSCA TABU

Sequenciamento de Tarefas

ESTUDO DE REGRAS DE SEQUENCIAMENTO PARA MINIMIZAÇÃO DO ATRASO EM AMBIENTE FLOW SHOP COM TEMPOS DE SETUP

UMA HEURÍSTICA CONSTRUTIVA PARA O PROBLEMA DE MINIMIZAÇÃO DO ATRASO TOTAL NO AMBIENTE FLOWSHOP COM BUFFER ZERO

MODELO DE PROGRAMAÇÃO LINEAR INTEIRA MISTA PARA MINIMIZAÇÃO DOS ADIANTAMENTOS E ATRASOS EM FLOW SHOP COM SETUP DEPENDENDE DA SEQUÊNCIA

Algoritmos Branch e Bound para o problema de sequenciamento em uma única máquina

Otimização Combinatória - Parte 4

1. Computação Evolutiva

MÉTODOS HEURÍSTICOS CONSTRUTIVOS PARA PROGRAMAÇÃO DA PRODUÇÃO EM SISTEMAS FLOW SHOP

HÉLIO YOCHIHIRO FUCHIGAMI

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO DE ENGENHARIA DE PRODUÇÃO CURSO DE ENGENHARIA DE PRODUÇÃO EDUARDO TOMIO KEMURA KUMAGAI

UNIVERSIDADE FEDERAL DO PARANÁ ALINE KIESKOSKI

NOVAS REGRAS DE SEQUENCIAMENTO PARA PROGRAMAÇÃO DE FLOW SHOP COM DATAS DE LIBERAÇÃO E TEMPOS DE SETUP

UNIVERSIDADE DE SÃO PAULO ESCOLA DE ENGENHARIA DE SÃO CARLOS DEPARTAMENTO DE ENGENHARIA DE PRODUÇÃO TRABALHO DE CONCLUSÃO DE CURSO ELTON KÔJI KAZAMA

HEURÍSTICAS GRASP PARA A MINIMIZAÇÃO DO ATRASO TOTAL NO PROBLEMA DE PROGRAMAÇÃO DE TAREFAS EM UMA MÁQUINA COM SETUP TIME

2 Problemas de Escalonamento

AVALIAÇÃO E ADAPTAÇÃO DE MÉTODOS HEURÍSTICOS PARA O PROBLEMA DE PROGRAMAÇÃO NO-IDLE FLOW SHOP COM FUNÇÃO OBJETIVO BI-CRITÉRIO

Algoritmos Combinatórios: Introdução

ANÁLISE DA FLUTUAÇÃO DO GARGALO EM FLOW SHOP PERMUTACIONAL COM TEMPOS DE SETUP ASSIMÉTRICOS E DEPENDENTES DA SEQÜÊNCIA

4 Cálculo de Equivalentes Dinâmicos

UNIVERSIDADE DE SÃO PAULO ESCOLA DE ENGENHARIA DE SÃO CARLOS DEPARTAMENTO DE ENGENHARIA DE PRODUÇÃO AUGUSTO ALMEIDA DA SILVA

4 Implementação Computacional

Escalonamento usando múltiplos períodos

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016

6 Experimentos realizados

Um Estudo Empírico de Métodos Hiper-Heurísticos

3. Resolução de problemas por meio de busca

ANÁLISE DE DESEMPENHO DE REGRAS DE PRIORIDADE PARA PROGRAMAÇÃO EM SISTEMAS FLOW SHOP HÍBRIDO E TEMPOS DE SETUP DEPENDENTES DA SEQUÊNCIA

UM ITERATED LOCAL SEARCH PARA A MINIMIZAÇÃO DO MAKESPAN EM SISTEMAS DE PRODUÇÃO FLOWSHOP COM EXECUÇÃO CONTÍNUA DAS TAREFAS

Paradigmas de Projetos de Algoritmos

UM ALGORITMO GENÉTICO HÍBRIDO PARA O PROBLEMA NO- WAIT FLOWSHOP COM MAKESPAN E ATRASO MÁXIMO

Formulações de Programação Matemática para o Problema de Seqüenciamento em uma Máquina com Janelas de Entrega Distintas e Tempo de Preparação

Alocação de Unidades via Relaxação Lagrangeana

CAPÍTULO 1. Conceitos sobre Planeamento e Escalonamento

Gustavo Simão Rodrigues

HEURÍSTICA BUSCA LOCAL ITERADA PARA O SEQUENCIAMENTO DE TAREFAS EM UMA MÁQUINA COM TEMPOS DE PREPARAÇÃO DEPENDENTES DA FAMÍLIA

Tópicos em Métodos Heurísticos META-HEURÍSTICAS

UM MODELO DE PROGRAMAÇÃO INTEIRA MISTA PARA A PROGRAMAÇÃO DA PRODUÇÃO EM FLOWSHOP HÍBRIDO COM BUFFERS LIMITADOS

Algoritmo busca tabu para a minimização do tempo de processamento e atrasos de entrega em sistemas de produção flowshop permutacional

O PROBLEMA DE SEQUENCIAMENTO DA PRODUÇÃO EM UM AMBIENTE FLOWSHOP COM LINHAS SEMI- PARALELAS E OPERAÇÃO DE SINCRONIZAÇÃO FINAL

LIMITANTE INFERIOR PARA O PROBLEMA DE MINIMIZAR O NÚMERO DE TROCAS DE FERRAMENTAS

DETERMINAÇÃO DE FUNÇÕES DE TRANSFERÊNCIA DE PROCESSOS QUÍMICOS ATRAVÉS DO MÉTODO DE EVOLUÇÃO DIFERENCIAL UTILIZANDO O SCILAB

Escalonamento em uma máquina

Um Algoritmo Genético para o Problema de Roteamento de Veículos com Janelas de Tempo

Exemplo do jogo dos fósforos Terça-feira, 9 de maio. Exemplo para o Problema do Corpo de Bombeiros. Exemplo: Localidade do Corpo de Bombeiros

PCC104 - Projeto e Análise de Algoritmos

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

ALGORITMOS AVANÇADOS UNIDADE I Análise de Algoritmo - Notação O. Luiz Leão

Projeto e Análise de Algoritmos

3. Resolução de problemas por meio de busca

UM MÉTODO HEURÍSTICO APLICADO AO PROBLEMA DE PROGRAMAÇÃO DE SONDAS DE PRODUÇÃO. Miguel Angel Fernández Pérez

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução

INVESTIGANDO O PROBLEMA DA MOCHILA IRRESTRITA EM SUA VERSÃO BIDIMENSIONAL

FLOW SHOP HÍBRIDO COM ESTÁGIOS GARGALOS. João Vitor Moccellin. Marcelo Seido Nagano

XLVI Pesquisa Operacional na Gestão da Segurança Pública

METAHEURÍSTICA HÍBRIDA ALGORITMO GENÉTICO-CLUSTERING SEARCH PARA A REDUÇÃO DO ESTOQUE EM PROCESSAMENTO EM SISTEMAS DE PRODUÇÃO FLOW SHOP PERMUTACIONAL

Heurística Iterated Greedy para o Problema de Sequenciamento de Lotes de Tarefas em Máquinas Paralelas

REDUÇÃO DO ESTOQUE EM PROCESSAMENTO EM SISTEMAS DE PRODUÇÃO FLOW SHOP PERMUTACIONAL

Pedro Tiago Barbosa do Couto. Resolução de problemas de transporte rodoviário de cargas utilizando programação inteira DISSERTAÇÃO DE MESTRADO

Branch-and-Bound para problemas de Otimização Combinatória

Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Desenvolvimento de Aplicações Paralelas

DESENVOLVIMENTO E ANÁLISE DE REGRAS DE SEQUENCIAMENTO DA PRODUÇÃO PARA MINIMIZAÇÃO DE MEDIDAS DE ATRASO EM FLOW SHOP COM TEMPOS DE SETUP

5 ESTUDO DE CASOS 5.1 CATEGORIZAÇÃO

Planejamento para fundições: uma aplicação do método das K-melhores mochilas. 1 Introdução

Um Estudo Empírico de Hiper-Heurísticas

4. O Makespan com Tempos de Preparação de Máquina Dependentes da Sequência

Análise da Performance de um Modelo de Escalonamento Baseado em Pesquisa Tabu Aplicado em um Sistema de Manufatura Flexível

5 VNS com Filtro e Reconexão por Caminhos

Algoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO

Utilizando o solver para resolver problemas de programação da produção com o método de programação inteira

UMA ABORDAGEM AO PROBLEMA DE SEQUENCIAMENTO EM UMA MÁQUINA COM PENALIDADES POR ANTECIPAÇÃO E ATRASO DA PRODUÇÃO POR MEIO DE ALGORITMOS EVOLUTIVOS

Transcrição:

UNIVERSIDADE DE SÃO PAULO ESCOLA DE ENGENHARIA DE SÃO CARLOS DEPARTAMENTO DE ENGENHARIA DE PRODUÇÃO FÁBIO JOSÉ CERON BRANCO Um novo método heurístico construtivo de alto desempenho para o problema no- idle flow shop São Carlos 2011

FÁBIO JOSÉ CERON BRANCO Um novo método heurístico construtivo de alto desempenho para o problema no- idle flow shop São Carlos 2011

FÁBIO JOSÉ CERON BRANCO Um novo método heurístico construtivo de alto desempenho para o problema no- idle flow shop Tese apresentada à Escola de Engenharia de São Carlos, Universidade de São Paulo, para obtenção do título de Doutor em Engenharia de Produção. Área de concentração: Processos e gestão de d operações. Orientador: Prof. Dr. Marcelo Seido Nagano São Carlos 2011 Trata-se da versão corrigida da Tese. A versão original se encontra disponível na EESC/USP que aloja o Programa de Pós-Graduação de Engenharia de Produção.

AUTORIZO A REPRODUÇÃO E DIVULGAÇÃO TOTAL OU PARCIAL DESTE TRABALHO, POR QUALQUER MEIO CONVENCIONAL OU ELETRÔNICO, PARA FINS DE ESTUDO E PESQUISA, DESDE QUE CITADA A FONTE. F Ficha catalográfica preparada pela Seção de Tratamento da Informação do Serviço de Biblioteca EESC/USP Branco, Fábio José Ceron. B816n Um novo método heurístico construtivo de alto desempenho para o problema no-idle flow shop. / Fábio José Ceron Branco; orientador Marcelo Seido Nagano. São Carlos, 2011. Tese (Doutorado-Programa de Pós-Graduação em Engenharia de Produção e Área de Concentração em Processos e Gestão de Operações) - Escola de Engenharia de São Carlos da Universidade de São Paulo, 2011. 1. Programação da produção. 2. Programação flow shop permutacional. 3. Métodos heurísticos. 4. No-idle. 5. Makespan. I. Título.

FOLHA DE JULGAMENTO Se chorei ou se sorri O importante É que emoções eu vivi... (Roberto Carlos / Erasmo Carlos)

Aos meus pais Paulo e Luiza, minhas irmãs Ana Cristina e Juliana, cunhados Claudiney e Alexandre, sobrinhos João Gabriel e José Artur, e ao meu amor, Carolina Maria.

Agradecimentos Em primeiro lugar, agradeço a Deus por me conceder saúde e paz para a conclusão deste trabalho. Gostaria de agradecer ao meu orientador, Professor Marcelo Seido Nagano, pela amizade sincera, ensinamentos e paciência durante todos estes anos. Ao Professor João Vitor Moccellin que me ajudou e incetivou durante todo meu período na Pós-Graduação neste Departamento. Ao casal de amigos Fernanda e Vinicius Sobreiro, pela amizade e companheirismo. A todos aqueles que contribuíram direta e indiretamente para a conclusão do doutorado. A Escola de Engenharia de São Carlos e a CAPES pela bolsa que me foi concedida durante 1 ano do meu estudo. Minha eterna gratidão a minha família, representada por meus pais Paulo e Luiza, fundamentais pela minha formação e caráter. Ao meu grande amor, Carolina, fonte de apoio e de alegrias.

Resumo Branco, F. J. C. Um novo método heurístico construtivo de alto desempenho para o problema no-idle flow shop.. São Carlos, 2011. 111 pág. Tese (Doutorado) - Escola de Engenharia de São Carlos, Universidade de São Paulo. Este trabalho é direcionado ao problema de Programação de Operações No-Idle Flow Shop Permutacional. Uma propriedade do problema, oriunda de estudo sobre a sua característica, é apresentada e utilizada para o desenvolvimento de um novo método heurístico construtivo, com o objetivo de minimizar a Duração Total da Programação (makespan). O novo método é comparado com os melhores heurísticos construtivos reportados na literatura, conhecidos por IG, KK e FRB3. Os resultados da experimentação computacional mostraram o melhor desempenho do método proposto, denominado BHBN, para os problemas testes de Ruiz et al. (2008) e Taillard (1993), quanto à qualidade da solução, apresentando também eficiência computacional. Palavras-chave: Programação da produção, programação flow shop permutacional, métodos heurísticos, no-idle, makespan.

Abstract This work is addressed to the No-Idle Flow Shop Sequencing problem. As a result of an investigation on the problem characteristics it is presented a property of this scheduling problem, which is used for the development of a new constructive heuristic with the objective of minimizing the Total Time to complete the schedule (makespan). The new method is compared with the best constructive heuristics reported in the literature, named IG, KK and FRB3. Results from computational experience showed the best performance of the proposed method, denoted by BHBN, for the instances of Ruiz et al. (2008) and Taillard (1993), as to the quality of the solution, and also computational efficiency. Keywords: Production scheduling, Flow-Shop sequencing, heuristics, no-idle, makespan.

Lista de figuras Figura 1: Relação entre as classes de problemas (adaptação apresentada por Moccellin e Nagano, 2003, a partir da figura apresentada por MacCarthy e Liu, 1993)... 4 Figura 2: Etapas da Fotolitografia (Sedra e Smith, 2007)... 10 Figura 3: Solução ótima para o problema NIFS (exemplo apresentado por Ruiz et al., 2008)... 13 Figura 4: Distância Di,j da programação no-idle da tarefa i seguida da tarefa j (Saadani et al., 2005, p.13)... 17 Figura 5: Ilustração da duração total da programação (D) no problema NIFS... 29 Figura 6: Propriedades e para o problema flow shop clássico, conforme apresentado em Nagano e Moccellin (2002)... 31 Figura 7: Gráficos comparativos da Porcentagem de Sucesso (%), Desvio Relativo Médio (%) e Tempo Médio de Computação (ms) para os métodos IG, KK e FHBN e α=0,60 a α=0,75 referentes à tabela 2, para os problemas testes de Ruiz et al. (2008)... 47 Figura 8: Gráficos comparativos da Porcentagem de Sucesso (%), Desvio Relativo Médio (%) e Tempo Médio de Computação (ms) para os métodos IG, KK e FHBN e α=0,80 a α=0,95 referentes à tabela 3, para os problemas testes de Ruiz et al. (2008)... 48 Figura 9: Gráficos comparativos da Porcentagem de Sucesso (%), Desvio Relativo Médio (%) e Tempo Médio de Computação (ms) para os métodos IG, KK e FHBN e α=1,00 a α=5,00 referentes à tabela 4, para os problemas testes de Ruiz et al. (2008)... 49 Figura 10: Porcentagem de Sucesso (%) do método FHBN com a variação do parâmetro α para os problemas testes de Ruiz et al. (2008)... 50 Figura 11: Desvio médio relativo (%) do método FHBN com a variação do parâmetro α para os problemas testes de Ruiz et al. (2008)... 51 Figura 12: Gráficos comparativos da Porcentagem de Sucesso (%), Desvio Relativo Médio (%) e Tempo Médio de Computação (ms) para os métodos IG, KK e FHBN e α=0,60 a α=0,85 referentes à tabela 5, para os problemas testes de Taillard (1993)... 55

Figura 13: Gráficos comparativos da Porcentagem de Sucesso (%), Desvio Relativo Médio (%) e Tempo Médio de Computação (ms) para os métodos IG, KK e FHBN e α=0,90 a α=5,00 referentes à tabela 6, para os problemas testes de Taillard (1993)... 56 Figura 14: Porcentagem de Sucesso (%), do método FHBN com a variação do parâmetro α para os problemas testes de Taillard (1993)... 58 Figura 15: Desvio médio relativo (%), do método FHBN com a variação do parâmetro α para os problemas testes de Taillard (1993)... 59 Figura 16: Gráfico comparativo da Porcentagem de Sucesso (%) entre os métodos FRB3, KK, BHBN e FHBN0,80 referente à tabela 7, para os problemas testes de Ruiz et al. (2008)... 63 Figura 17: Gráfico comparativo do Desvio Relativo Médio (%) entre os métodos FRB3, KK, BHBN e FHBN0,80 referente à tabela 7, para os problemas testes de Ruiz et al. (2008)... 63 Figura 18: Gráfico comparativo do Tempo Médio de Computação (ms) entre os métodos FRB3, KK, BHBN e FHBN0,80 referente à tabela 7, para os problemas testes de Ruiz et al. (2008)... 64 Figura 19: Gráfico comparativo da Porcentagem de Sucesso (%) entre os métodos FRB3, KK, BHBN e FHBN0,80 referente à tabela 8, para os problemas testes de Taillard (1993)... 66 Figura 20: Gráfico comparativo do Desvio Relativo Médio (%) entre os métodos FRB3, KK, BHBN e FHBN0,80 referente à tabela 8, para os problemas testes de Taillard (1993).... 66 Figura 21: Gráfico comparativo do Tempo Médio de Computação (ms) entre os métodos FRB3, KK, BHBN e FHBN0,80 referente à tabela 8, para os problemas testes de Taillard (1993)... 67

Lista de Tabelas Tabela 1: Tempos de processamento de um problema NIFS de cinco tarefas e quatro máquinas... 12 Tabela 2: Comparação entre os métodos IG, KK e FHBN com a variação de α=0,60 a 0,75, para os problemas testes de Ruiz et al. (2008)... 43 Tabela 3: Comparação entre os métodos IG, KK e FHBN com a variação de α=0,80 a 0,95, para os problemas testes de Ruiz et al. (2008)... 44 Tabela 4: Comparação entre os métodos IG, KK e FHBN com a variação de α=1,00 a 5,00, para os problemas testes de Ruiz et al. (2008)... 45 Tabela 5: Comparação entre os métodos IG, KK e FHBN com a variação de α=0,60 a 0,85, para os problemas testes de Taillard (1993)... 53 Tabela 6: Comparação entre os métodos IG, KK e FHBN com a variação de α=0,90 a 5,00, para os problemas testes de Taillard (1993)... 54 Tabela 7: Comparação entre os métodos FRB3, KK e FHBN0,80 e BHBN, para os problemas testes de Ruiz et al. (2008)... 62 Tabela 8: Comparação entre os métodos FRB3, KK e FHBN0,80 e BHBN, para os problemas testes de Taillard (1993)... 65

Sumário 1. Introdução... 1 1.1. Programação de operações... 2 1.2. O problema de programação flow shop... 5 1.3. O problema no-idle flow shop... 8 2. Revisão da Literatura... 15 3. Proposição de um novo método heurístico construtivo... 28 3.1. Uma propriedade do problema de programação de operações NIFS... 28 3.2. Concepção dos novos métodos heurísticos para o NIFS... 32 3.2.1. Novo método heurístico FHBN... 34 3.2.2. Novo método heurístico BHBN... 36 4. Experimentação computacional e análise dos resultados... 39 4.1. Análise dos resultados dos métodos IG, KK e FHBN... 41 4.1.1. Análise dos resultados dos métodos IG, KK e FHBN para os problemas testes de Ruiz et al. (2008)... 42 4.1.2. Análise dos resultados dos métodos IG, KK e FHBN com os problemas testes de Taillard (1993)... 52 4.2. Análise dos resultados dos métodos FRB3, KK e BHBN... 61 4.2.1. Análise dos resultados dos métodos FRB3, KK, BHBN e FHBN0,80 para o os problemas testes de Ruiz et al. (2008)... 61 4.2.2. Análise dos resultados dos métodos FRB3, KK, BHBN e FHBN0,80 para os problemas testes de Taillard (1993)... 65 5. Considerações finais... 68 Referências bibliográficas... 70

1. Introdução Um sistema de produção pode ser definido como um processo, ou um conjunto de processos, pelo qual os produtos e serviços são gerados. Em outras palavras, sistema de produção é a transformação de insumos em produtos ou serviços, através de processos e de operações (Monks, 1992). De acordo com Slack et al. (2009), a produção deve ser o foco central para uma organização, porque é a responsável por produzir bens e serviços que são a razão de sua existência. Segundo Johnson e Montgomery (1974), os sistemas de produção podem ser classificados em: sistema contínuo, no qual poucos tipos de produtos similares são fabricados em grande volume; sistema intermitente, no qual ocorrem frequentes mudanças de um produto para outro nos estágios produtivos como consequência de uma grande variedade de produtos fabricados. Nesta classe distinguem-se dois tipos de sistemas: o flow shop, no qual os itens fabricados em uma linha ou em uma célula de manufatura têm a mesma sequência de operações nas diversas máquinas; o job shop, no qual os itens fabricados em um setor produtivo não têm o mesmo roteiro de fabricação; sistema grande projeto, no qual são produzidos itens complexos e especiais, muitas vezes únicos.

2 Dentro do sistema intermitente, um importante nível de decisão é a programação de operações, que oferece oportunidade de grandes ganhos em tempo e em aproveitamento da capacidade instalada. De acordo com MacCarthy e Liu (1993) e Yang e Liao (1999), a programação de operações pode ser definida como a alocação de recursos através do tempo para a realização de tarefas para melhor satisfazer um conjunto de critérios pré-definidos. 1.1. Programação de operações De acordo com Pinedo (2008), a programação refere-se à ordenação de tarefas a serem executadas em uma ou em diversas máquinas, considerando-se uma base de tempo, ou seja, determinando-se, principalmente, as datas de início e fim de cada tarefa. Ainda segundo Pinedo (2008), os problemas de programação de operações podem ser descritos com a notação de três parâmetros: α/β/γ. O parâmetro α descreve o ambiente das máquinas, o parâmetro β contém as características do processo e o parâmetro γ possui a função-objetivo, ou seja, o critério de avaliação da programação. A maioria dos problemas reais de programação da produção é muito complexa e de difícil solução. Além disso, cada ambiente de fabricação possui suas particularidades, apresentando diferentes tipos de problemas. De acordo com MacCarthy e Liu (1993) e discutido por Moccellin e Nagano (2003), um problema de programação é especificado em termos das restrições tecnológicas do ambiente de produção, onde as tarefas devem ser realizadas, e dos

3 objetivos de programação. Essas restrições são determinadas principalmente pelo padrão de fluxo das tarefas nas máquinas. Dessa maneira, os problemas de programação podem ser classificados conforme MacCarthy e Liu (1993): a) job shop: cada tarefa tem sua própria ordem de processamento nas máquinas; b) flow shop: todas as tarefas têm o mesmo fluxo de processamento nas máquinas; c) open shop: não há fluxo padrão especificado para nenhuma tarefa e cada estágio de produção possui apenas uma máquina; d) flow shop permutacional: um flow shop em que a ordem de processamento das tarefas em todas as máquinas é a mesma; e) máquina única: há apenas um estágio de produção com uma única máquina disponível; f) máquinas paralelas: há mais de uma máquina disponível em um único estágio de produção, no qual cada tarefa necessita de apenas uma dessas máquinas; Mais duas classificações foram incluídas por Moccellin e Nagano (2003), desta forma: g) job shop com múltiplas máquinas: job shop no qual existe um conjunto de máquinas paralelas em cada estágio de produção; h) flow shop com múltiplas máquinas: flow shop no qual existe um conjunto de máquinas paralelas em cada estágio de produção.

4 A Figura 1 a seguir ilustra a relação entre os diferentes problemas de programação. Figura 1: Relação entre as classes de problemas (adaptação apresentada por Moccellin e Nagano, 2003, a partir da figura apresentada por MacCarthy e Liu, 1993) Neste trabalho será tratado o problema de programação flow shop permutacional, com o critério de minimização da duração total da programação das tarefas (makespan), e considerada a situação em que as máquinas, uma vez inicializadas, não podem permitir interrupções entre o processamento das tarefas (no-idle). No próximo item será detalhado, de modo geral, o problema de programação flow shop e, posteriormente, será tratado o problema de programação flow shop, com a condição no-idle, suas principais características, aplicações e complexidade.

5 1.2. O problema de programação flow shop O clássico problema de programação de operações flow shop, trata-se de um problema de programação da produção no qual n tarefas devem ser processadas, na mesma sequência, em cada máquina de um conjunto de m máquinas distintas, e que, no caso específico permutacional, se mantém em cada máquina uma mesma ordem de processamento das tarefas. A solução do problema consiste em determinar dentre as sequências possíveis das tarefas (n!) aquela que otimize uma determinada medida de desempenho, sendo uma das mais utilizadas a duração total da programação (makespan). Na teoria que estuda a complexidade dos problemas de natureza combinatorial, este problema é classificado como NP-hard (Garey et al, 1976), de forma que pode ser resolvido eficientemente de maneira ótima somente em casos de pequeno porte, ou seja, que possuem até cerca de 10 tarefas. Resolver um problema de otimização combinatorial consiste em encontrar uma boa solução ou a solução ótima dentre um número finito de soluções possíveis. Por exemplo, um problema de programação flow shop permutacional envolvendo apenas 10 tarefas apresenta 3.628.800 soluções possíveis. Nas últimas décadas, um extenso esforço de pesquisa tem sido dedicado ao problema. Técnicas de programação matemática, tais como programação linear inteira (Selen e Hott, 1986) e técnicas de enumeração do tipo branch-and-bound (Ignall e Schrage, 1965), têm sido empregadas para se obter a solução ótima do problema. Entretanto, tais técnicas não são eficientes em termos computacionais em problemas de médio e grande porte. Assim, muitos métodos heurísticos têm sido propostos, os quais, de maneira geral, podem ser classificados em dois grupos: métodos construtivos e metaheurísticos.

6 Os métodos construtivos se caracterizam pelo fato de gerarem apenas uma solução final para o problema (Palmer, 1965; Campbell et al., 1970; Gupta, 1971; Dannenbring, 1977; Nawaz et al., 1983; Koulamas, 1998; Davoud Pour, 2001; Nagano e Moccellin, 2002; Kalczynski e Kamburowski, 2007 e 2008). Esta solução pode ser gerada: diretamente a partir da ordenação das tarefas segundo índices de prioridade calculados em função dos tempos de processamento das tarefas, como, por exemplo, o método de Palmer (1965); escolhendo-se a melhor sequência das tarefas a partir de um conjunto de sequências também obtidas utilizando-se índices de prioridade associados às tarefas, como o método de Campbell et al. (1970); ou ainda, a partir da geração sucessiva de sequências parciais das tarefas (subsequências) até a obtenção de uma sequência completa através de algum critério de inserção de tarefas como, por exemplo, a de Nawaz et al. (1983), a de Nagano e Moccellin (2002), a de Kalczynski e Kamburowski (2007). Dentre os métodos construtivos mais conhecidos, destaca-se o NEH, proposto por Nawaz et al. (1983), e que, de maneira geral, tem sido considerado até hoje como um importe método heurístico construtivo para minimizar o tempo total da programação em sistemas de produção flow shop permutacional, com soluções de boa qualidade e eficiência computacional. A heurística NEH é composta de duas fases. A primeira fase é de indexação das tarefas, em que as tarefas são ordenadas de acordo com os valores não-crescentes

7 das somas dos tempos de processamentos. A segunda fase caracteriza-se a construção da seqüência solução, em que gradativamente todas as tarefas da solução inicial são examinadas em todas as posições possíveis nas sequencias parciais, adotando aquela que leva a uma menor duração total da programação. Nagano e Moccellin (2002) propuseram uma heurística construtiva denominada N&M, que apresentou uma mudança apenas na fase de ordenação inicial em relação ao NEH. Esta alteração está baseada na ordenação das diferenças entre a soma dos tempos de processamento das tarefas nas máquinas e um limitante inferior (lower bound) desenvolvido pelos autores neste trabalho. Este método apresentou resultados iguais ou superiores com relação ao NEH (Nawaz et al.,1983). Mais recentemente, Kalezynski e Kamburowski (2007) propuseram um novo método heurístico construtivo denominado NEHKK. Este apresentou uma modificação do método NEH no processo de construção da sequência solução, na qual, em caso de empate das soluções parciais nas subsequências até então obtidas, um procedimento heurístico baseado na regra de JOHNSON (Johnson, 1954) é aplicado. Os resultados obtidos através da experimentação computacional verificaram o melhor desempenho comparados com o N&M (Nagano e Moccellin, 2002) e o NEH (Nawaz et al., 1983). Os métodos metaheurísticos, como exemplos, a busca tabu, simulated annealing, algoritmo genético, todos são métodos definidos por estratégias que exploram o espaço de soluções, respeitando sua topologia.

8 Estes métodos obtêm uma solução inicial e, posteriormente, por meio de algum procedimento iterativo (geralmente envolvendo trocas de posições das tarefas na sequência), busca-se uma sequência das tarefas melhor que a atual quanto à medida de desempenho adotada. Nesta categoria, destacam-se os procedimentos de busca em vizinhança como, por exemplo, o de Dannenbring (1977). Posteriormente, foram desenvolvidos métodos de busca em vizinhança de maior esforço computacional (busca tabu, simulated annealing, entre outros) que têm sido alvo de grande interesse na comunidade científica em função de aplicações bem sucedidas reportadas na literatura. Exemplos de aplicações dessas técnicas para o problema flow shop permutacional são encontrados em: Osman e Potts (1989); Widmer e Hertz (1989); Ogbu e Smith (1990); Taillard (1990); Reeves (1995), Moccellin (1995); Ishibuchi et al. (1995); Zegordi et al. (1995); Nowicki e Smutnicki (1996); Park e Kim (1998); Moccellin e Nagano (1998); Huang e Liao (2008) e Yagmahan e Yenisey (2008). 1.3. O problema no-idle flow shop Os problemas de programação de tarefas no-idle flow shop (NIFS), foco deste trabalho, determinam que na programação estabelecida seja considerada que nenhuma máquina permita intervalo de tempo inativo entre operações consecutivas, isto é, uma vez iniciado o processamento, as máquinas devem processar todas as operações sem permitir qualquer tempo de ociosidade até que elas estejam processadas. Esse ambiente ocorre onde o tempo de preparação (setup times) ou o custo de utilização da máquina são elevados, implicando, assim, que desligá-la ou prepará-

9 la mais vezes que o necessário provoca um processo bastante oneroso. Neste trabalho, os tempos de setup das tarefas nas máquinas são incluídos no tempo de processamento ou são considerados desprezíveis nos casos em que são muito pequenos em relação ao tempo de processamento. Exemplos desta condição no-idle são os equipamentos utilizados na produção de circuitos integrados por meio de fotolitografia, técnica que cria o molde desejado na lâmina semicondutora ou circuito integrado (CI). Sedra e Smith (2007) mostraram com mais detalhes o processo de fotolitografia, etapa em que o CI é coberto com um filme de um material fotossensível, conhecido como photoresist. A partir de então, uma máscara com áreas claras e opacas, que representam o padrão a ser transferido para o CI, é colocada sobre o material fotossensível e, por exposição à luz ultravioleta, este material é polimerizado nas regiões correspondentes às áreas claras da máscara. Retira-se a máscara e o CI é então "revelado" usando-se produtos químicos (tal como tricloroetileno), os quais dissolvem as áreas não polimerizadas. A figura 2 a seguir mostra como o processo se configura através das seguintes etapas:

10 Figura 2: Etapas da Fotolitografia (Sedra e Smith, 2007) Desta forma, o substrato de SiO2 sofre o processo desejado conforme o tempo de exposição da luz ultravioleta na máscara, e especialmente esta etapa não deve ser interrompida. Com tempos de exposição especialmente controlados, cada máquina deve continuamente processar suas tarefas sem interrupções, como caracteriza-se a programação de tarefas na condição no-idle.

11 A resolução do processo pode ser melhorada usando-se, ao invés da luz ultravioleta, raios X ou feixe de elétrons, como afirmaram Sedra e Smith (2007), porém com o mecanismo de processamento semelhante. Os autores ainda descreveram outra situação onde o problema de programação de tarefas no-idle pode ser encontrado, como na fabricação das placas de silício de circuitos integrados. A indústria moderna de semicondutores utiliza como matéria prima, em sua maioria, o disco de silício, que varia de 75mm a 150mm de diâmetro e menos de 1mm de espessura (usualmente 200μm). As placas são cortadas a partir de tarugos de cristal de silício, que aplicadas a quantidades controladas de impurezas obtém-se um cristal com as propriedades elétricas desejadas. O silício é então fundido e aquecido por indução de radiofrequência, e a temperatura é mantida em alguns graus acima da temperatura de fusão do silício (aproximadamente 1425ºC). Ela é puxada gradualmente no sentido vertical e ao mesmo tempo em que é rotacionada. A medida que a característica desejada é encontrada ocorre o resfriamento (solidificação), e o diâmetro do tarugo é determinado pelas taxas de velocidade de tracionamento e de rotação. A formação do tarugo varia de 30 a 180mm/hora. As máquinas que fazem o controle da temperatura não devem ter programações que tenham ociosidades, pois este processo sem interrupção deve ser seguido para que o material não sofra uma formação indesejada. Outro exemplo de problema de programação NIFS é o forno de cilindro de cerâmica que consome uma grande quantidade de gás natural quando em operação, isto porque a inércia térmica impossibilita parar e reiniciar seu

12 funcionamento. Entretanto, inúmeros casos poderiam ser citados onde a programação no-idle é essencial para o sucesso do processo. Em todos estes, a melhor solução é determinar um sequenciamento que considere a condição de não ociosidade nas máquinas, ilustrado no exemplo numérico a seguir, com cinco tarefas e quatro máquinas, conforme apresentados na Tabela 1. Tabela 1: Tempos de processamento de um problema NIFS de cinco tarefas e quatro máquinas J1 J2 J3 J4 J5 M1 31 39 23 23 33 M2 22 25 22 22 41 M3 25 41 47 14 27 M4 30 34 22 13 19 Fonte: Ruiz et al. (2008) No problema no-idle flow shop com o critério de minimização do makespan, as ociosidades não são permitidas nas máquinas, o que pode tornar necessário atrasar o início do processamento das tarefas a partir da segunda máquina e nas subsequentes, o que reflete no aumento do tempo total da programação. A solução ótima para o problema NIFS da Tabela 1 é, com um valor de makespan de 247, como apresentado na Figura 3.

13 Figura 3: Solução ótima para o problema NIFS (exemplo apresentado por Ruiz et al., 2008) A notação convencional proposta por Pinedo (2008) para denotar esses problemas é F/prmu,no-idle/Cmáx. Neste caso, F representa o problema flow shop; prmu,no no- idle, sua particularidade em relação ao problema permutacional com a condição no-idle; Cmáx, a função-objetivo de minimização da duração total da programação máx (makespan). Quanto à complexidade computacional, o problema F/prmu,noidle/Cmáx é classificado como do tipo NP-hard (Tanaev et al., 1994). Por este motivo e por sua aplicabilidade, como apresentado anteriormente, o problema NIFS é um tema relevante para ser estudado. Neste trabalho, o objetivo é apresentar um novo método heurístico de alta qualidade de solução e de fácil implementação, que tem como critério de otimização a minimização da duração total da programação (makespan). O trabalho está dividido em quatro seções. Na seção seguinte, será apresentada uma revisão da literatura que trata do problema NIFS, com os mais importantes

14 trabalhos encontrados na literatura; posteriormente, será apresentada a concepção e o desenvolvimento do novo método heurístico proposto; a seção subsequente tratará do planejamento da experimentação computacional e, finalmente, serão feitas as considerações finais.

2. Revisão da literatura Adiri e Pohoryles (1982) foram os primeiros a tratar do problema no-idle. No trabalho, os autores também trataram do problema no-wait flow shop. A principal contribuição foi um algoritmo que obtém a solução ótima para o problema de minimização do tempo total de fluxo das tarefas. Eles também apresentaram resultados para problema com mais de duas máquinas, porém em casos especiais de dominância entre elas. Vachajitpan (1982) foi o primeiro a realizar um estudo com o critério de minimização do makespan. Um modelo de programação linear inteira foi proposto com características adicionais que permitissem sequências não-permutacionais. Também foi apresentado um método Branch and Bound (B&B), mas, neste caso, para a solução de problemas permutacionais de menor porte. Os métodos heurísticos para o problema no-idle flow shop com m-máquinas foram inicialmente tratados por Woollam (1986) com o critério de minimização do makespan. Basicamente, vários métodos foram selecionados na literatura, incluindo alguns como o conhecido método NEH. Cinco métodos foram adaptados e os resultados computacionais foram obtidos para problemas com até 25 tarefas e 25 máquinas (25 25), considerados de pequeno porte. No entanto, para tais casos, o método NEH adaptado para o problema NIFS produziu os melhores resultados.

16 Posteriormente, Baptiste e Hguny (1997) propuseram um método Branch-and- Bound (B&B) para o problema no-idle com m-máquinas com critério de minimização do makespan. Ainda no final da década de 90, Cepek et al. (2000) observaram resultados incoerentes no trabalho de Adiri e Pohoryles (1982). Além disso, demonstraram que, em casos de minimização do tempo total de fluxo com duas máquinas, os métodos permutacionais geram melhores soluções. Narain e Bagga (2003) estudaram o problema F3/prmu,no-idle/Cmáx. Eles mostraram um método de programação linear inteira e um algoritmo B&B com resultados computacionais limitados para problemas de pequeno porte. O mesmo problema com três máquinas foi estudado por Saadani et al. (2003). Eles propuseram um eficiente método heurístico baseado em um limitante inferior (Lower Bound) também desenvolvido pelos autores. Este método foi comparado com o método baseado no problema do caixeiro-viajante apresentado em Saadani et al. (2001), e apresentou melhores resultados. Uma observação importante foi que esse trabalho de 2001 foi posteriormente publicado em Saadani et al. (2005), como será posteriormente relatado. Kamburowski (2004) apresentou uma representação em rede do problema NIFS que proporcionou identificar paradoxos resultantes da condição no-idle de relações de dominância entre as máquinas em que o problema torna-se eficientemente resolvível.

17 Saadani et al. (2005) apresentaram uma heurística baseada em Travelling Salesman Problem (TSP) para F/prmu,no-idle/Cmáx. Basicamente, os autores modelaram sua heurística baseada em distâncias, definidas como sendo o tempo necessário de espera, na última máquina, resultante do processamento em todas as máquinas da tarefa i seguida da tarefa j. Uma representação desta distância está na Figura 4 a seguir. Figura 4: Distância Di,j da programação no-idle da tarefa i seguida da tarefa j (Saadani et al., 2005, p.13) A partir da distância mínima, ou seja, o par de tarefas que resultou no menor Di,j, a heurística aplica um método de inserção das tarefas, para as não sequenciadas, uma por uma, em todas as posições possíveis. O método tem uma complexidade O(n 3 ) e é facilmente implementável. Os autores testaram a heurística proposta comparando suas soluções a um modelo de programação linear inteira para problemas de até 17 tarefas e 30 máquinas. A heurística é composta por 4 passos conforme apresentado a seguir:

18 Passo1: calcule as distâncias Djk entre todos os pares de tarefas; Passo 2: selecione o menor Djk e destaque as tarefas j e k, nesta ordem. Armazene as tarefas em uma sequência parcial πp; Passo 3: para todas as tarefas não sequenciadas, inserir a tarefa em cada posição possível da sequência parcial. Dentre todas as sequências parciais geradas, armazene aquela de menor duração total da programação; Passo 4: volte para o passo 3 até que todas as tarefas estejam programadas. Inicialmente, a heurística de Saadani et al. (2005) pode parecer dispendiosa computacionalmente. No entanto, torna-se mais rápida se implementada com uma adaptação do Nearest Insertion Rule (NIR), de Christofides et al. (1979), que desobriga o cálculo de todos os valores de makespan. Por exemplo, ao inserir uma determinada tarefa 5 em todas as posições de πp = {1, 2, 3}, um valor L é obtido por duas simples somatórias e uma única subtração e que auxilia no cálculo do makespan. Para este exemplo, o valor L inicial é dado pela soma das distâncias que envolvem as tarefas da sequência parcial, como L = D12 + D23 + D31. Como resultado, quando inserir a tarefa 5 na segunda posição o novo L é calculado da seguinte forma: L = L D12 + D15 + D52, como segue: sequência parcial πp = {1, 2, 3}, o cálculo de resulta L = D12 + D23 + D31; sequência parcial com a tarefa 5 na segunda posição πp = {1, 5, 2, 3}, e assim, L = L D12 + D15 + D52.

19 Isto não reduz a complexidade teórica da heurística, como o passo 1 que tem uma complexidade de O(n 2 ) e o passo 3 com O(n 3 ). No entanto a inserção de tarefas modifica pouco a solução parcial e torna a heurística muito rápida. Em dois trabalhos similares, Narain e Bagga (2005a, b) estudaram o problema F2/prmu, no idle/ Cj e F/prmu,no-idle/Cmáx, respectivamente. No primeiro trabalho, os autores propuseram um método B&B de solução ótima para resolver o problema NIFS de duas máquinas apenas para o tempo total de fluxo. No segundo trabalho os autores estudaram o problema NIFS para minimização do makespan em problemas de n tarefas e m máquinas e para isso, apresentaram quatro algoritmos, que se basearam na regra de Johnson para gerar a solução inicial. Os autores apresentaram exemplos numéricos para comparar a aplicação destes quatro algoritmos. Kalczynski e Kamburowski (2005) propuseram uma heurística para F/prmu,noidle/Cmáx, que comparada com a de Saadani et al. (2005), apresentou os melhores resultados na maior parte dos problemas avaliados. Os autores apresentaram também uma adaptação do NEH para o problema no-idle e os resultados mostraram que o método proposto superou também essa heurística. O método de Kalczynski e Kamburowski (2005) é referenciado na literatura como KK e consiste nas seguintes passos: Passo 1: Através da aplicação da regra de Johnson (1954) a cada duas máquinas subsequentes, determina-se m-1 sequências.

20 Passo 2: Para cada iteração k (k=1 até n), uma tarefa i é selecionada e inserida na sequência solução corrente na posição j, até que todas as tarefas tenham sido programadas. Para se determinar a tarefa i e a posição j: Para cada uma das m-1 sequências, todas as tarefas que ainda não seqüenciadas formam a sequência solução corrente e são inseridas, uma a uma, em todas as posições possíveis. Para cada uma destas possibilidades, a duração total da programação é calculada para cada nova sequência de n tarefas e aquela sequência que minimiza o makespan, indica a tarefa i que será selecionada e a posição j onde deverá ser incluída na sequência solução corrente. A complexidade deste método é O(n 3 m). Os autores, porém, indicaram que a complexidade da heurística é O(n 2 m), pois um procedimento baseado no método de caminho crítico (Critical Path Method - CPM) pode ser aplicado para calcular o valor de makespan. No entanto, o custo para obter o CPM é O(n) e é necessário calcular novamente quando a sequência é alterada. Além disso, o número de máquinas é um fator muito influente no tempo de CPU. Há uma intensa troca de tarefas nas sequências que devem ser feitas antes do cálculo do makespan, uma vez que é necessário se conhecer a posição da tarefa excluída nas sequências de Johnson. Assim, apesar do grande esforço na implementação e após um procedimento de aceleração procedimento que reduz o tempo computacional para o cálculo do tempo total da programação de sequências parciais - de Kalczynski e Kamburowski (2005), a complexidade da heurística KK permanece em O(n 3 m). Uma importante observação é que na publicação original, os autores

21 não relatam os tempos de computação e, quando consultados sobre a codificação, não apresentaram os procedimentos de aceleração utilizados. Mais recentemente, o problema NIFS foi novamente estudado por Kalczynski e Kamburowski (2007), quando foram apresentadas situações especiais entre os problemas no-wait e no-idle. Os autores mostraram uma representação em redes em que os comprimentos do caminho mais longo na rede representam os makespans. As redes revelaram uma dualidade entre os dois problemas, o que foi discutido pelos autores nesse trabalho através de uma representação gráfica. Baraz e Mosheiov (2008) propuseram um método heurístico composto de duas fases para F/prmu,no idle/cmáx. Na primeira fase, as tarefas são adicionadas uma de cada vez no final da sequência corrente e a tarefa que resulta no menor makespan é inserida à sequência parcial. Esta fase é executada até que todas as tarefas estejam sequenciadas. Na segunda fase, todas as tarefas são permutadas entre si dentro da sequência obtida na fase inicial. Os autores concluíram que o tempo de execução da sua heurística é O(n 2 ). No entanto deve-se destacar que os autores não estão considerando a complexidade adicional do cálculo do makespan em cada etapa. Uma vez que este cálculo tem uma complexidade computacional O(nm), eles demonstraram a superioridade da heurística proposta em comparação com os resultados obtidos por Saadani et al. (2005), mas não apresentaram uma comparação com a heurística de Kalczynski e Kamburowski (2005). O método proposto por Baraz e Mosheiov (2008), chamado GH_BM, compõe-se pelos seguintes passos:

22 Passo 1 (greedy): Selecione a tarefa com o maior soma dos tempo de processamento em todas máquinas e a coloque na primeira posição da seqüência solução corrente. Passo 2: Para k=2 até n, acrescente à sequência solução corrente todas as tarefas ainda não seqüenciadas na posição k, uma a uma, selecionando o sequenciamento de menor makespan; na seqüência solução corrente, permute todos os pares de tarefas possíveis e selecione a sequência que minimize o makespan. Na etapa 1, n tarefas são testadas para cada iteração. No segundo passo, as permutações são realizadas para cada tarefa até que a última seja sequenciada. Em cada iteração, o makespan tem de ser calculado e, assim, a complexidade computacional, como discutido anteriormente, é O(n 3 m). Uma melhoria foi proposta para a heurística GH_BM por Ruiz et al. (2008), que foi chamada de GH_BM2; este método consiste em utilizar o NEH com procedimentos de aceleração, como feito no método de Kalczynski e Kamburowski (2005), na etapa 1, e um procedimento de inserção de tarefas na etapa 2. Pan e Wang (2008a, b), em dois trabalhos similares, propuseram um procedimento que acelera a busca na vizinhança de inserção e reduz a complexidade computacional de O(n 3 m) para O(n 2 m). Esta aceleração baseia-se em procedimentos adaptados para NIFS dos procedimentos apresentados para o problema clássico em Taillard (1990). Ambos os algoritmos utilizam um método de busca chamado Iterated Greedy IG (Ruiz e Stützle, 2007). Os autores utilizam os problemas de Taillard (1993) do flow shop clássicos para o problema no-idle. Nos dois trabalhos, foram comparados os métodos propostos com as heurísticas de

23 Kalczynski e Kamburowski (2005) e Baraz e Mosheiov (2008). Os resultados indicam a superioridade dos métodos propostos, porém não foram comparados entre eles diretamente. Ruiz e Stützle (2008) adaptaram três melhores procedimentos heurísticos que foram propostos por Rad et al. (2009) para o problema no-idle flow shop. As heurísticas consideradas foram: FRB3: trata-se de uma extensão do método NEH. Após inserir uma tarefa em uma determinada posição, todas as tarefas inseridas nas iterações anteriores são novamente reinseridas em todas as posições possíveis. Esta reinserção é motivada pelo fato de que, depois de inserir uma nova tarefa, a sequência é alterada e a busca na vizinhança de inserção pode resultar em situações ainda mais favoráveis. O FRB3 foi apresentado por Rad et al. (2009) para melhorar o desempenho do método NEH em quase 300% em média. O exemplo a seguir ilustra as sequências geradas: sequência parcial S = {1,2,3} inserção da tarefa 4 na sequência parcial S = {1,2,3,4} sequências parciais avaliadas: {1,2,3,4}, {2,1,3,4}, {2,3,1,4}, {2,3,4,1}, {1,3,2,4},{1,3,4,2},{3,1,2,4},{1,2,4,3},{4,1,2,3} e {1,4,2,3}. Pode-se observar que o número de sequências parciais geradas a cada inserção de uma nova tarefa é alto. Enfim, isso tem um custo, no caso em que a complexidade computacional aumenta para O(n 3 m).

24 FRB4k: trata-se de uma simplificação do método FRB3. Depois de inserir uma tarefa j, são reinseridas apenas as tarefas nas k posições a frente da posição onde a tarefa j foi inserida e, nas k posições anteriores. Como normalmente k é menor que n, a complexidade computacional de FRB4k é O(n 2 m). De qualquer modo, o tempo de computação é muito mais elevado que o NEH com os procedimentos de aceleração, porém menor que FRB3. Este ganho no tempo reduz a qualidade das soluções quando comparado com FRB3; FRB5: é uma extensão de FRB3. Basicamente, depois de inserida uma determinada tarefa j, uma busca local completa com vizinhança de inserção é realizada. Além disso, tarefas são extraídas em cada iteração de forma aleatória, sem repetição, e uma nova busca na vizinha de inserção é feita. Dado que o número de buscas locais não pode ser determinado, a complexidade não pode ser calculada. FRB5 foi relatado por Rad et al. (2009) e apresentou-se, em média, muito mais lento que o NEH. Os métodos FRB3, FRB4k e FRB5 adaptados para o no-idle flow shop na minimização do makespan foram comparados e os valores avaliados de k foram: 2, 4 e 12. O método FRB3 foi o que apresentou os melhores resultados em termos da qualidade da solução. No mesmo trabalho, Ruiz e Stützle (2008) adaptaram a metaheurística de Ruiz e Stützle (2007) para o problema NIFS e o método proposto foi denominado de IGLS. O método produziu melhores resultados, mas com elevado tempo de computação. Observou-se que existe uma forte tendência recente na aplicação dos métodos IG para problemas de flow shop. O método IGLS inicia-se com a solução dada pelo NEH

25 e, em seguida, uma etapa de busca local com vizinhança de inserção é implementada. Posteriormente, três fases iterativas são aplicadas até que um critério de parada seja atingido, que pode ser limitado pelo número de iterações ou pelo tempo computacional. Primeiramente, tem-se a destruição da sequência. Durante esta fase, algumas tarefas são extraídas da sequência aleatoriamente. Na segunda fase é realizada a construção com as tarefas removidas reinseridas, uma a uma, em todas as posições da sequência parcial. Cada tarefa é colocada nas possíveis posições e a sequência parcial de menor makespan é selecionada. Uma fase de reconstrução é aplicada até que uma nova sequência completa seja obtida. Por último, esta nova sequência é submetida a uma busca local com vizinhança de inserção visando à melhora na solução obtida anteriormente. Um passo importante é a busca local, que retira aleatoriamente uma tarefa da sequência e a aloca em todas as possíveis posições. É importante observar que não é uma simples busca local. Em primeiro lugar, em uma rotina de repetição interna, todas as tarefas são extraídas uma a uma, mas em vez de fazer isso em ordem, ela é feita de forma aleatória para evitar um mesmo resultado parcial. Cada tarefa é inserida em todas as posições possíveis e, se for encontrado um menor valor do makespan para a atual sequência, a solução é atualizada. O procedimento continua até que todas as tarefas tenham sido reinseridas e, se for encontrada uma melhoria, a busca recomeça novamente para todas as tarefas. A busca local é finalizada quando não há melhorias encontradas após reinserir todas as tarefas. Esta é também a busca local utilizada no método FRB5. Existem outros trabalhos relacionados com o problema no-idle, embora não como uma restrição rígida para impedir espaços ociosos nas máquinas. Por exemplo,

26 Liao (1993) relaxou a condição no-idle e tentou minimizar o número de intervalos ociosos sujeitos à minimização do makespan. O autor apresentou um modelo de Programação Inteira Mista e uma heurística. Um problema similar foi estudado por Saadani e Baptiste (2002) cuja condição noidle é também relaxada. Neste caso, um algoritmo de B&B foi proposto para o caso de três máquinas para um ou mais intervalos ociosos. Outras abordagens também são estudadas na literatura. Narasimhan e Panwalkar (1984) e Narasimhan e Mangiameli (1987) estudaram um flow shop híbrido de dois estágios com máquinas paralelas impedindo a ociosidade das máquinas no primeiro estágio. Problema similar foi estudado por Wang et al. (2005) mas a não ociosidade estava no segundo estágio. Problemas de máquinas dominantes e de casos especiais que exijam priorizar o processamento de algumas tarefas com o problema da não ociosidade são estudados em dois trabalhos relacionados de Cheng et al. (2007a, b). Mais recentemente, Tasgetiren et al. (2010) propuseram um algoritmo chamado vpsde (variable parameter search - differential evolution) para minimização de tarefas atrasadas (tardiness) para o problema NIFS. Trata-se de um método baseado na metaheurística do Simulated Annealing inserida no método DE, de Storn e Price (1997), baseado em funções não-lineares contínuas. O método apresentou resultados satisfatórios quando comparado com o método genético RKGA (random key genetic algorithm), de Tasgetiren et al. (2009), através dos problemas de Taillard (1993).

27 Na próxima seção será discutida e apresentada a proposição para a elaboração do novo método heurístico para o problema NIFS.

3. Propos roposição de um novo método heurístico construtivo Este capítulo está dividido em duas partes. A primeira apresenta uma propriedade que será utilizada e adaptada para o problema NIFS advinda dos estudos desenvolvidos por Moccellin (1992) e Nagano e Moccellin (2002) do problema flow shop clássico e, a segunda, apresenta a concepção de dois novos métodos heurísticos construtivos que utilizam esta propriedade. 3.1. Uma propriedade do problema de programação de operações NIFS Nesta seção é apresentada uma propriedade denominada Propriedade LBY-NIFS que provém de investigações realizadas sobre as características do problema de pesquisa. Notações: Seja n: número de tarefas a serem programadas; m: número de máquinas; σ: uma sequência qualquer (J[1], J[2],..., J[j],..., J[n]), dentre as n! sequências possíveis das tarefas, onde J[j] representa a tarefa que ocupa a j-ésima posição; pkj: tempo de processamento na máquina k, da tarefa J[j] que ocupa a j-ésima posição na sequência σ; : intervalo de tempo entre o término da operação da tarefa J[j] na máquina k e o início da operação da mesma tarefa na máquina k+1; D: duração total da programação para a sequência de tarefas σ.

29 A solução usual do problema de programação de operações NIFS consiste em determinar dentre as n! sequências possíveis das tarefas aquela que minimiza a duração total da programação. A partir das notações acima estabelecidas, pode-se escrever: A figura 5 a seguir ilustra a expressão de cálculo da duração total da programação para o problema NIFS: Figura 5: Ilustração da duração total da programação (D) no problema NIFS A expressão anterior pode ser agregada, conforme segue: A expressão acima mostra que a duração total da programação é dada pela soma de três parcelas: a primeira é a soma dos tempos de processamento das tarefas na primeira máquina, com valor constante e, portanto, independente da sequência σ; a segunda parcela corresponde à soma dos tempos de processamento da tarefa que

30 ocupa a última posição na sequência σ, a partir da segunda máquina até a máquina m; a terceira parcela é a soma dos intervalos de tempo entre as operações sucessivas da tarefa J[n], a qual, assim como a segunda parcela, depende da sequência σ que for considerada. Para a apresentação da propriedade desenvolvida neste trabalho é necessário apresentar as propriedades utilizadas e adaptadas ao problemas NIFS. Para o problema flow shop clássico, Moccellin (1992) apresentou uma propriedade chamada, que corresponde a um limitante superior do intervalo de tempo entre o término da tarefa J[j] e o início da sua tarefa adjacente J[j+1] na máquina k e é dada por:, Também para o problema flow shop clássico, Nagano e Moccellin (2002) apresentaram a propriedade, definida pela seguinte expressão: A figura 6 seguinte apresenta estas propriedades:

31 Figura 6: Propriedades e para o problema flow shop clássico, conforme apresentado em Nagano e Moccellin (2002) Pelo critério no-idle, como já apresentado, as tarefas devem ser processadas sem interrupções nas máquinas e, portanto, sem formação de intervalos (gaps) na programação. Deste fato, define-se como nulo, quando adaptado de Nagano e Moccellin (2002) ao problema NIFS. Sendo o problema de programação de operações no-idle flow shop com n 2 e m 2, σ uma sequência qualquer das n tarefas, o intervalo de tempo entre as operações sucessivas da tarefa J[j+1] nas máquinas k e k+1, então, para qualquer j, pode-se definir a propriedade como um Limitante Inferior de dado por: A expressão anterior pode ser considerada como limitante inferior para pares de tarefas já que a tarefa j+1 não pode iniciar antes que termine seu processamento

32 na máquina anterior e, portanto, mesmo que zero da expressão garante a validade da expressão. Se seja negativo, o valor for positivo, o limitante inferior é válido, pois este valor positivo é o menor possível, conforme as situações demonstradas na Figura 5. 3.2. Concepção dos novos métodos heurísticos para o NIFS Como uma primeira aplicação da propriedade, um novo método heurístico construtivo para o problema de programação de operações NIFS será apresentado. A propriedade mostra que, se do conjunto de n tarefas J={J1, J2, J3,..., Jn} for considerado um par qualquer de tarefas, por exemplo Ju e Jv, e suponha-se que, em uma determinada sequência σ das tarefas, Ju é precedente direta de Jv, então, a expressão fornece um limitante inferior do intervalo de tempo entre o término da operação da tarefa v na máquina k e o início da mesma tarefa na máquina k+1, independentemente da posição do par de tarefas (u,v) na sequência σ. Seja, então: : limitante inferior do tempo de espera da operação da tarefa v entre as máquinas k e k+1, quando a tarefa Ju é precedente direta de Jv; : tempo de processamento da operação da tarefa Ju na máquina k+1;

33 : tempo de processamento da operação da tarefa Jv na máquina k. Logo, a partir da expressão pode-se escrever: para k=1, 2, 3,..., m-1. O valor de pode, assim, ser calculado para todos os n(n-1) arranjos (pares ordenados de tarefas) do conjunto de n tarefas, tomadas duas a duas. A somatória dos para k=1, 2,..., m-1 leva a que fornece um limitante inferior da soma dos tempos de espera da tarefa Jv entre as m sucessivas máquinas no NIFS quando a tarefa Ju for a sua precedente direta. Como apresentado anteriormente, o valor de influencia diretamente no cálculo da duração total da programação para uma dada sequência σ. Desta forma, a utilização adequada do limitante inferior ( ) em uma heurística construtiva pode conduzir a soluções de alta qualidade. Portanto, baseados nesta propriedade são desenvolvidos e apresentados dois novos métodos heurísticos para o problema NIFS, sendo o primeiro comparado