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

Tamanho: px
Começar a partir da página:

Download "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"

Transcrição

1 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 CONSTRUTIVAS PARA PROGRAMAÇÃO DE OPERAÇÕES EM SISTEMAS DE PRODUÇÃO FLOWSHOP PERMUTACIONAL: CLASSIFICAÇÃO DE SUAS FASES CONSTRUTIVAS São Carlos 2011

2 UNIVERSIDADE DE SÃO PAULO ESCOLA DE ENGENHARIA DE SÃO CARLOS DEPARTAMENTO DE ENGENHARIA DE PRODUÇÃO TRABALHO DE CONCLUSÃO DE CURSO II ELTON KÔJI KAZAMA Nº USP HEURÍSTICAS CONSTRUTIVAS PARA PROGRAMAÇÃO DE OPERAÇÕES EM SISTEMAS DE PRODUÇÃO FLOWSHOP PERMUTACIONAL: CLASSIFICAÇÃO DE SUAS FASES CONSTRUTIVAS Trabalho apresentado ao Departamento de Engenharia de Produção da Escola de Engenharia de São Carlos - Universidade de São Paulo, como Trabalho de Conclusão de Curso em Engenharia de Produção Mecânica. Disciplina: SEP Trabalho de Conclusão de Curso II Orientador: Prof. Dr. Marcelo Seido Nagano São Carlos 2011

3 Faça o que for necessário para ser feliz. Mas não esqueça que a felicidade é um sentimento simples, Você pode encontrá-la e deixá-la ir embora por não perceber a sua simplicidade. (Mário Quintana)

4 Dedico este trabalho a minha amada, Tássia Marques.

5 AGRADECIMENTOS Agradeço primeiramente a Deus, por todas as oportunidades a mim concedidas, pela saúde e pelas pessoas que Ele colocou em minha vida. Gostaria de agradecer também ao meu orientador, professor Dr Marcelo Seido Nagano, pelo conhecimento e orientação dados que foram muito além deste trabalho, que perdurou pelo longo e valoroso trajeto da faculdade. Agradeço imensamente a minha família, e em especial aos meus pais Kiyoji e Massae, por todo o apoio que possibilitou a concretização de um grande sonho me formar em uma renomada escola. Agradeço pelo amor, carinho e dedicação que pude contar desde os meus primeiros segundos de vida até o presente momento. Agradeço a todos que indiretamente contribuíram para a conclusão desta fase de minha vida. E por fim, agradeço ao meu grande amor, Tássia, que esteve comigo em todos os momentos da confecção deste trabalho, com seu suporte e carinho que foram fundamentais para a finalização deste ciclo. Muito obrigado!

6 KAZAMA, E.K. Heurísticas construtivas para programação de operações em sistemas de produção flowshop permutacional: classificação de suas fases construtivas. São Carlos, pág. Trabalho de Conclusão de Curso Escola de Engenharia de São Carlos, Universidade de São Paulo. RESUMO Este trabalho se propõe a classificar os melhores métodos heurísticos da literatura que tratam da programação de operações em ambiente flowshop permutacional para minimização da duração total da programação (makespan). Tal classificação é feita segundo a proposta de Framinan, Gupta e Leisten (2004). Inicialmente foi feita uma análise bibliográfica das heurísticas construtivas que tratam do tema em questão. Posteriormente, procedeu-se à classificação de suas fases de construção e à elaboração de exemplos numéricos ilustrados de cada uma. Com isso, a pesquisa busca facilitar a localização de heurísticas simples ou compostas dentro de um quadro mais amplo, permitindo a identificação de combinações entre elas que possam melhorar seus resultados individuais em trabalhos futuros. Palavras-chave: Flowshop permutacional. Programação da produção. Métodos heurísticos construtivos. Makespan.

7 ABSTRACT The proposal of this work is to classify the best heuristics methods from the literature that deal with the Permutation Flowshop scheduling problem with the objective of minimizing the total flow time of jobs (makespan) according to Framinan, Gupta and Leisten (2004) classification system. The first step done was a literature review and analysis of the best constructive heuristics that deal with makespan minimization. Subsequently, this work proceeded with the classification of the constructive phases for each heuristic and the numeric illustration of the application for better understanding. In this way, this research seeks to facilitate the choice of simple or composed heuristics in the literature, enabling the identification of combination between them in order to improve individual results for future research. Key-words: Permutation flowshop. Scheduling. Constructive heuristics. Makespan.

8 LISTA DE FIGURAS Figura 1 - Programação da produção em função dos prazos solicitados. Fonte: Gigante (2010) Figura 2 - Sequência ótima. Regra de Johnson Figura 3 - Gráfico de Gantt da sequência obtida por Palmer Figura 4 - Gráfico de Gantt da sequência obtida utilizando o método CDS Figura 5 - Gráfico de Gantt da sequência parcial obtida J1 - J Figura 6 - Gráfico de Gantt da sequência parcial obtida J3 - J Figura 7 - Gráfico de Gantt da sequência parcial obtida J3 - J1 - J Figura 8 - Gráfico de Gantt da sequência parcial obtida J3 - J2 - J Figura 9 - Gráfico de Gantt da sequência parcial obtida J2 - J3 - J Figura 10 - Gráfico de Gantt da sequência obtida J3 - J1 - J2 - J Figura 11 - Gráfico de Gantt da sequência obtida J3 - J1 - J4 - J Figura 12 - Gráfico de Gantt da sequência obtida J3 - J4 - J1 - J Figura 13 - Gráfico de Gantt da sequência obtida J4 - J3 - J1 - J Figura 14 - Gráfico de Gantt da sequência parcial obtida J5 - J Figura 15 - Gráfico de Gantt da sequência parcial obtida J2 - J Figura 16 - Gráfico de Gantt da sequência parcial obtida J4 - J2 - J Figura 17 - Gráfico de Gantt da sequência parcial obtida J2 - J4 - J Figura 18 - Gráfico de Gantt da sequência parcial obtida J2 - J5 - J Figura 19 - Gráfico de Gantt da sequência parcial obtida J1 - J2 - J4 - J Figura 20 - Gráfico de Gantt da sequência parcial obtida J2 - J1 - J4 - J Figura 21 - Gráfico de Gantt da sequência parcial obtida J2 - J4 - J1 - J Figura 22 - Gráfico de Gantt da sequência parcial obtida J2 - J4 - J5 - J Figura 23 - Gráfico de Gantt da sequência obtida J3 - J1 - J2 - J4 - J Figura 24 - Gráfico de Gantt da sequência obtida J1 - J3 - J2 - J4 - J

9 Figura 25 - Gráfico de Gantt da sequência obtida J1 - J2 - J3 - J4 - J Figura 26 - Gráfico de Gantt da sequência obtida J1 - J2 - J4 - J3 - J Figura 27 - Gráfico de Gantt da sequência obtida J1 - J2 - J4 - J5 - J Figura 28 - Gráfico de Gantt da sequência obtida J4 - J5 - J6 - J8 - J2 - J3 - J9 - J10 - J1 - J Figura 29 - Gráfico de Gantt da sequência obtida J4 - J8 - J6 - J2 - J9 - J3 - J10 - J7 - J5 - J Figura 30 - Gráfico de Gantt da sequência obtida J1 - J Figura 31 - Gráfico de Gantt da sequência obtida J5 - J Figura 32 - Gráfico de Gantt da sequência obtida J2 - J1 - J Figura 33 - Gráfico de Gantt da sequência obtida J1 - J2 - J Figura 34 - Gráfico de Gantt da sequência obtida J1 - J5 - J Figura 35 - Gráfico de Gantt da sequência obtida J4 - J1 - J2 - J Figura 36 - Gráfico de Gantt da sequência obtida J1 - J4 - J2 - J Figura 37 - Gráfico de Gantt da sequência obtida J1 - J2 - J4 - J Figura 38 - Gráfico de Gantt da sequência obtida J1 - J2 - J5 - J Figura 39 - Gráfico de Gantt da sequência obtida J3 - J4 - J1 - J2 - J Figura 40 - Gráfico de Gantt da sequência obtida J4 - J3 - J1 - J2 - J Figura 41 - Gráfico de Gantt da sequência obtida J4 - J1 - J3 - J2 - J Figura 42 - Gráfico de Gantt da sequência obtida J4 - J1 - J2 - J3 - J Figura 43 - Gráfico de Gantt da sequência obtida J4 - J1 - J2 - J5 - J Figura 44 - Gráfico de Gantt da sequência obtida J6 - J3 - J4 - J1 - J2 - J Figura 45 - Gráfico de Gantt da sequência obtida J3 - J6 - J4 - J1 - J2 - J Figura 46 - Gráfico de Gantt da sequência obtida J3 - J4 - J6 - J1 - J2 - J Figura 47 - Gráfico de Gantt da sequência obtida J3 - J4 - J1 - J6 - J2 - J Figura 48 - Gráfico de Gantt da sequência obtida J3 - J4 - J1 - J2 - J6 - J

10 Figura 49 - Gráfico de Gantt da sequência obtida J3 - J4 - J1 - J2 - J5 - J Figura 50 - Gráfico de Gantt da sequência parcial obtida J5 - J Figura 51 - Gráfico de Gantt da sequência parcial obtida J1 - J Figura 52 - Gráfico de Gantt da sequência parcial obtida J2 - J5 - J Figura 53 - Gráfico de Gantt da sequência parcial obtida J5 - J2 - J Figura 54 - Gráfico de Gantt da sequência parcial obtida J5 - J1 - J Figura 55 - Gráfico de Gantt da sequência parcial obtida J3 - J2 - J1- J Figura 56 - Gráfico de Gantt da sequência parcial obtida J2 - J3 - J1- J Figura 57 - Gráfico de Gantt da sequência parcial obtida J2 - J1- J3 - J Figura 58 - Gráfico de Gantt da sequência parcial obtida J2 - J1- J5- J Figura 59 - Gráfico de Gantt da sequência obtida J4- J2 - J1- J5 - J Figura 60 - Gráfico de Gantt da sequência obtida J2 - J4 - J1- J5 - J Figura 61 - Gráfico de Gantt da sequência obtida J2 - J1- J4- J5 - J Figura 62 - Gráfico de Gantt da sequência obtida J2 - J1- J5 - J4 - J Figura 63 - Gráfico de Gantt da sequência obtida J2 - J1- J5 - J3 - J Figura 64 - Gráfico de Gantt da sequência obtida pelo método FRB Figura 65 - Componentes do Makespan Figura 66 - Gráfico de Gantt da sequência obtida J4 - J2 - J1 - J5 - J Figura 67 - Gráfico de Gantt da sequência obtida J4 - J5 - J1 - J2 - J Figura 68 - Gráfico de Gantt da sequência obtida J4 - J2 - J5 - J1 - J Figura 69 - Tempo total para executar uma programação permutacional (Makespan M(σ)) Figura 70 - Demonstração da propriedade LBY Figura 71 - Gráfico de Gantt da sequência obtida J2 J10 J1 J3 J5 J7 J8 J9 J4 J

11 Figura 72 - Gráfico de Gantt da sequência obtida J2 J8 J10 J7 J5 J9 J3 J1 J6 J Figura 73 - Quadro Geral de Classificação das Fases Construtivas

12 LISTA DE TABELAS Tabela 1 - Tempos de processamento para a Regra de Johnson50 Tabela 2 -Tempos de processamento para a heurística Palmer Tabela 3 - Tempos de processamento para a heurística CDS Tabela 4 - Tempo de processamento para k= Tabela 5 - Tempo de processamento para k= Tabela 6 - Quadro resumo até a k-ésima sequência Tabela 7 - Tempos de processamento para a heurística NEH Tabela 8 - Tempos de processamento para o método NEHKK Tabela 9 - Tempos de processamento 10 tarefas - heurística NEHKK Tabela 10 - Tempos de processamento heurística NEH-D Tabela 11 Tempos de processamento heurística FRB Tabela 12 - Tempos de Processamento heurística HC Tabela 13 - Cálculo do gap d 1 ij Tabela 14 - Cálculo do gap d 2 i.j Tabela 15 - Cálculo do gap d 3 i,j Tabela 16 - Gaps ajustados d R i,j Tabela 17 - Tempos de Processamento heurística N&M

13 SUMÁRIO Resumo Abstract 1 INTRODUÇÃO OBJETIVOS MÉTODO DE PESQUISA REVISÃO BIBLIOGRÁFICA PLANEJAMENTO E PROGRAMAÇÃO DA PRODUÇÃO VISÃO GERAL SOBRE PROGRAMAÇÃO DA PRODUÇÃO (SCHEDULING) O AMBIENTE FLOWSHOP PERMUTACIONAL TIPOS DE MODELOS PARA FLOWSHOP Algoritmo Exato Heurísticas HEURÍSTICAS CONSTRUTIVAS CLASSIFICAÇÕES EXISTENTES DE HEURÍSTICAS DE FLOWSHOP PERMUTACIONAL CLASSIFICAÇÃO PROPOSTA POR FRAMINAN, GUPTA E LEISTEN (2004) Fase I: Desenvolvimento do índice Fase II: construção da solução Fase III: melhoramento da solução Estratégias para cada fase de classificação das heurísticas RESULTADOS E DISCUSSÃO HEURÍSTICAS SIMPLES Regra de Johnson (1954) Palmer (1965) Campbell, Dudek e Smith (1970) Dannenbring (1977) Nawaz, Enscore e Ham (1983) Moccellin (1995) Kalczynski e Kamburowski (2008) Dong, Huang e Chen(2009) Rad, Ruiz e Boroojerdian (2009) HEURÍSTICAS COMPOSTAS Ho e Chang (1991)... 90

14 4.2.2 Nagano e Moccellin (2002) QUADRO DE CLASSIFICAÇÃO CONSIDERAÇÕES FINAIS REFERÊNCIAS BIBLIOGRÁFICAS

15 14 1. INTRODUÇÃO Os tipos de problemas de programação de operações em máquinas vêm sendo caracterizados por diversos autores como Baker (1974), French (1982), Blazewicz et al. (1996) e Pinedo (2008). Problemas complexos podem surgir na programação de operações nas máquinas disponíveis. As restrições tecnológicas determinadas pelo fluxo das tarefas nas máquinas e a medida de desempenho da programação devem ser especificadas. Maccarthy e Liu (1993) classificam os problemas de programação de operações do seguinte modo: Flowshop todas as tarefas possuem o mesmo fluxo de processamento em todas as máquinas; Jobshop as tarefas possuem um roteiro específico de processamento, determinado para cada uma em particular; Openshop não há roteiros de processamento pré-estabelecidos para as tarefas; Flowshop permutacional flowshop onde a ordem de processamento das tarefas é a mesma para todas as máquinas; Máquina única máquina única disponível para a execução das tarefas; Máquinas paralelas duas ou mais máquinas disponíveis que podem executar qualquer tarefa, onde a tarefa só é executada em uma máquina; Jobshop com máquinas múltiplas é um jobshop no qual existem ki máquinas idênticas em cada estágio i (i= 1, 2,..., m). Em cada estágio, cada tarefa é processada apenas por uma máquina. Flowshop com máquinas múltiplas é um flowshop onde as tarefas são processadas em múltiplos estágios seguindo a mesma ordem em cada um deles. É possível variar a quantidade por estágio e as tarefas são processadas em apenas uma máquina por estágio. Os problemas de programação da produção remetem à área de otimização combinatória. No início da década de 70, Cook (1971) elaborou a base da teoria da complexidade computacional para problemas dessa área considerados intratáveis. Um problema de otimização intratável é aquele que não apresenta algoritmo em tempo polinomial para sua solução. Esta categoria de problemas enquadra-se na classe NPhard, cuja definição pode ser encontrada em Garey e Johnson (1979). A partir da década

16 15 de 80, demonstrou-se que a maioria dos problemas de programação da produção enquadram-se nesta classe NP-hard (LAWLER et al. 1993; BLAZEWICZ et al. 1996). Com isso, os pesquisadores voltaram-se para métodos heurísticos de resolução desses problemas, buscando uma solução de boa qualidade em tempo computacional baixo situação desejável no cenário da produção, onde o tempo de tomada de decisão é curto, geralmente um dia ou um turno (GIGANTE, 2010). A pesquisa aborda o problema de programação de operações em ambiente flowshop permutacional, onde o número de soluções viáveis é (n!), sendo n o número de tarefas a serem programadas independentemente do número de máquinas do sistema. Para resolver problemas de programação flowshop permutacional, as principais abordagens na literatura incluem programação matemática, métodos heurísticos e metaheurísticos. Métodos heurísticos construtivos podem fornecer boas soluções, uma vez que apresentam o melhor trade-off entre a qualidade da solução e o custo computacional. Desta forma, o objeto de estudo deste trabalho são os métodos heurísticos construtivos voltados para ambientes de flowshop permutacional, com o objetivo de redução do tempo total de fluxo (makespan). Dentre os fatores a serem considerados durante a programação em ambientes flowshop, a minimização do tempo de conclusão máximo (Cmáx) ou makespan são diretamente relacionados à maximização do rendimento e da utilização dos recursos. Portanto, não é surpresa que a maioria das pesquisas referente às ultimas décadas se concentraram sobre a minimização do makespan. Um ambiente flowshop consiste de n tarefas que devem ser processadas em m máquinas na mesma ordem (Fm). O problema de programação em ambientes flowshop em encontrar uma sequência de tarefas para cada máquina de acordo com determinada(s) medida(s) de desempenho. Além disso, para muitas situações, assume-se que todas as sequências de tarefas serão as mesmas em todas as máquinas (flowshop permutacional - prmu). Este é um assunto relevante para o dinâmico ambiente de produção atual, e tem atraído atenção de muitos pesquisadores nos últimos anos. De fato, houve um crescimento exponencial de heurísticas do tipo Fm/prmu/Cmax a partir da década de Um certo número de abordagens foi sugerido (SZWARC, 1971; LAGEWEG et al, 1978; POTTS, 1980, ou CARLIER; REBAI,1996), considerando o problema do tipo NP-hard para três ou mais máquinas, mas a maioria dos esforços se concentraram em propor procedimentos heurísticos que produzam boas soluções (e não necessariamente

17 16 ótimas) dentro de intervalos relativamente curtos, tais como aqueles requeridos na tomada de decisões de programação e seqüenciamento. Como o número de heurísticas disponíveis para estes tipos de problema estava aumentando, tornou-se claro que nem todos eles eram da mesma natureza, apresentando várias propriedades diferentes, tais como ordem de complexidade, tempo de processamento computacional ou memória requerida. Por exemplo, Widemer e Hertz (1991) ou Moccellin (1995) apresentaram heurísticas que requerem uma solução inicial (obtidas em ambos os casos por uma analogia ao problema do caixeiro viajante) seguida de uma busca-tabu que, a princípio, poderia ser empregada como uma solução inicial para qualquer outra solução heurística. Atualmente, portanto, existem diversas heurísticas disponíveis que tratam do problema citado, Fm/prmu/Cmax, contudo, embora muitas tentativas de classificação já tenham sido realizadas por exemplo, Gupta (1971), Pinedo (2008), ou Lourenço (1996), não existe nenhum quadro de classificação aprofundado sobre essas heurísticas. Tal quadro é fundamental para conduzir possíveis pontos de pesquisas futuras. Ao analisar estas heurísticas de acordo com uma classificação comum, é possível entender o modo como elas são construídas estruturalmente, e assim enxergar combinações de duas ou mais heurísticas para obter uma heurística composta que leve a soluções de melhor qualidade. 1.1 OBJETIVOS O trabalho tem como objetivo uma classificação das fases de heurísticas construtivas para o ambiente de flowshop permutacional. A heurística pode ser definida como um método desenvolvido através de um modelo cognitivo, usualmente através de regras baseadas na experiência dos desenvolvedores. Heurísticas construtivas são assim denominadas por construírem a solução de um problema de maneira incremental, a partir do zero. Devido ao fato de os problemas de flowshop permutacional com n-tarefas e m- máquinas pertencerem aos problemas NP-hard, (Johnson e Montgomery, 1974), os requisitos computacionais para obter soluções ótimas, que aumentam exponencialmente à medida que aumenta o tamanho do problema, tornam-se importantes na resolução de problemas de flowshop permutacional. Heurísticas construtivas foram desenvolvidas sob esta situação. Embora a meta-heurística melhore muito a qualidade das soluções, os

18 17 requisitos computacionais e a complexidade de implementação também aumentam, que é uma desvantagem quando se aplica na prática. Encontrar uma heurística construtiva eficaz e computacionalmente viável traz contribuições tanto para a prática quanto para a literatura, pois os resultados podem ser usados como inicialização para as metaheurísticas, como por exemplo, para o algoritmo genético híbrido, e Busca Tabu (REEVES, 1993), o Algoritmo Genético (CHEN et al, 1995), etc. Inicialmente, portanto, busca-se identificar e analisar os principais métodos heurísticos relacionados ao tema, para, posteriormente, estabelecer uma classificação de suas fases. Com isso, procura-se disponibilizar uma síntese das ferramentas heurísticas utilizadas para otimizar a programação das operações em Flowshop permutacional, fornecendo um panorama geral sobre o que existe na área e facilitando a combinação destas heurísticas para a resolução de problemas. 1.2 MÉTODO DE PESQUISA O trabalho envolveu pesquisa bibliográfica sobre o tema abordado e levantamentos e sistematização de informações, obtidas através de pesquisa em teses, artigos e livros relacionados ao tema, e em ferramentas disponíveis no meio eletrônico. A pesquisa bibliográfica abrangeu, além do material específico sobre os métodos heurísticos a serem estudados, materiais sobre programação da produção e sobre resolução de problemas de programação com flowshop permutacional. Esse instrumental teórico forneceu subsídios às investigações dos dados específicos sobre o objeto de estudo, permitindo balizar e analisar as informações obtidas. A princípio, foi estabelecido um processo de leitura de modo a identificar os principais métodos heurísticos construtivos voltados ao problema de programação de Flowshop permutacional. A segunda etapa desse processo consistiu em estabelecer uma metodologia de classificação das fases necessárias para a aplicação dos métodos. Feita a classificação dos principais métodos heurísticos estudados a partir da metodologia sistematizada por Framinan, Gupta e Leisten (2004), elaborou-se um quadro-resumo das fases de cada um, permitindo melhor visualização e comparação dos dados. A ilustração das heurísticas analisadas foi feita através do software LEKIN (Flexible Job-Shop Scheduling System), desenvolvido pela Stern School of Business (NYU).

19 18 2 REVISÃO BIBLIOGRÁFICA 2.1 PLANEJAMENTO E PROGRAMAÇÃO DA PRODUÇÃO A função da atividade de Planejamento e Controle da Produção (PCP) é garantir, de forma correta e eficaz, a execução, controle e planejamento de todo o processo produtivo. Fala-se em processo produtivo porque, segundo Gigante (2010), a produção de bens ou serviços pode ser considerada como um conjunto de processos, ou um processo único, no qual ocorre a transformação de insumos em produtos e serviços. O objetivo final do PCP é atingir tempo e quantidade de produção adequados, além de proporcionar produtos de qualidade aos clientes. Para um melhor entendimento sobre o PCP, é importante diferenciarmos planejamento e controle, uma vez que as atividades envolvidas nessa disciplina relacionam-se à gestão da capacidade de execução de uma certa operação com as demandas que ela exige (SLACK, 2002). De acordo com Gigante (2010), planejamento é o detalhamento do que se intenciona fazer em um determinado período de tempo. Já controle é o processo de ajustes necessários para que operações e atividades sejam feitas de acordo com o estabelecido. Slack (2002) destaca ainda que, uma vez que planejamento e controle é a técnica de conciliar demanda e fornecimento, a tomada de decisões para planejar e controlar uma operação produtiva dependerá da natureza da demanda e do fornecimento da operação em questão. O gerenciamento de processos produtivos feito pelo PCP deve levar em conta as restrições tecnológicas do ambiente e ajustar a produção ao tempo de execução das atividades e aos volumes de demanda, suprindo suas necessidades. E para conciliar volume e tempo são necessárias três atividades integradas, porém de caráter distinto: carregamento, sequência e programação (GIGANTE, 2010). Carregamento pode ser definido como a quantidade de trabalho colocada em determinado centro de trabalho. Tal quantidade pode ser fixa para um certo período de tempo, ou contínua, com variação da quantidade de trabalho de acordo com a saída das atividades acabadas. Sequenciamento é o ordenamento de execução das operações. Trata-se de uma atividade bastante complexa. Pode ser exemplificada da seguinte forma: uma máquina possui o sequenciamento de cinco atividades independentes, sendo 5! sequências

20 19 distintas para a execução dessas atividades ou 120 soluções possíveis de ordenamento. Em um caso que apresente dez atividades, o número de alternativas cresce para problema ainda pequeno em comparação ao que ocorre em ambientes reais (GIGANTE, 2010). Por fim, programação é o conjunto de atividades que definem os volumes de cada produto, datas de início e término de produção e os equipamentos usados para sua fabricação. Seu objetivo, segundo Rodammer e White Jr. (1981), é encontrar um modo adequado de distribuir e sequenciar o uso de recursos compartilhados de forma que atenda às restrições da produção e minimize os custos. Segundo Nambiar et al (1981), a programação da produção está no nível mais baixo na hierarquia de um sistema de planejamento da produção. Nessa hierarquia, o primeiro nível é determinado pelo programa mestre, elaborado com base nas decisões agregadas sobre produção e capacidade. Uma vez fixado o programa mestre de produção, temos o segundo nível da hierarquia, onde se determinam as quantidades a serem produzidas (ou compradas) dos diferentes componentes. O terceiro e último nível encontra-se após a definição das quantidades e datas de entrega dos diferentes componentes, e compreende os programas de produção e as alocações dos recursos necessários. Para o autor, portanto, o objetivo de uma programação é atribuir e seqüenciar a utilização desses recursos compartilhados, minimizando os custos e atendendo às restrições de produção. De modo geral, a programação da produção envolve um conjunto de tarefas a serem processadas, e cada tarefa, por sua vez, compreende um conjunto de operações distintas. As operações requerem máquinas, recursos humanos e recursos materiais e devem ser executadas de acordo com uma sequência tecnológica viável. A programação é influenciada, portanto, por diversos fatores: prioridade de tarefas, prazos de entrega, restrições de custos, níveis de produção, restrições quanto aos tamanhos dos lotes, disponibilidade e capacidade de máquinas, precedências de operações, requerimentos de recursos e disponibilidade de recursos. O programa gerado seleciona uma seqüência adequada de operações que resultará na conclusão de todas as tarefas do conjunto no menor tempo possível. No nível da programação de produção, as decisões tomadas não apresentam importância de forma individual. O conjunto de decisões tomadas em um período de tempo, contudo, possuem enorme influência nos planos elaborados nos níveis superiores da hierarquia, podendo comprometer o desempenho de um dado ambiente de

21 20 programação. Uma programação de baixa qualidade pode ocasionar desperdício de recursos e materiais, atrasos nas datas de entregas, baixa qualidade de produtos, baixa lucratividade, entre outros. Para Graves (1981), o problema de programação da produção abrange um conjunto de tarefas a serem realizadas e os critérios de realização, que podem determinar, por exemplo, um término adiantado ou prolongado dessas tarefas. A programação da produção e os estoques acomodam a demanda pelos produtos. Entretanto, há variáveis controláveis externas, como o nível de estoque e cargamáquina, que influenciam o desempenho do sistema produtivo. Assim, tais fatores também devem ser considerados na programação da produção, bem como os fatores internos, ambos levando a estratégias distintas. Quanto à orientação externa, a programação busca atender a influência da demanda, representada pelas solicitações dos clientes em quantidade e prazo. Já a orientação externa, ligada à produtividade, envolve o uso eficiente dos recursos. A programação da produção orientada aos fatores externos abrange a consideração de prazos, isto é, estabelecer os tempos de execução ou duração, bem como as tolerâncias de fabricação, a partir de um prazo de entrega ou data de término. Deste modo são obtidas as datas de início de fabricação ou execução das atividades. Prazos podem ser estabelecidos de diversas maneiras, de acordo com os aspectos específicos de cada processo produtivo. Abaixo, tem-se um exemplo: Figura 1 - Programação da produção em função dos prazos solicitados. Fonte: Gigante (2010)

22 21 A situação ilustrada em (a) aplica-se aos casos onde já estão disponíveis as matérias-primas a serem usadas na fabricação. O prazo para início da função é obtido subtraindo-se o tempo de execução da função do prazo solicitado pelo cliente, ou do prazo dado pela reposição do estoque. O tempo de execução da função pode complementar tempos de espera caso haja indisponibilidade de equipamentos devido à fabricação de demais produtos da empresa, entre outros. Na situação (b), onde não há disponibilidade de matéria-prima (ou outros recursos), ocorre um atraso no pedido do cliente, que só é processado após a obtenção dos recursos. Assim, além de coordenar a programação, é preciso coordenar também a obtenção dos recursos necessários. Pode ocorrer ainda uma terceira situação, na qual o pedido do cliente marca o início da função. Nesse caso, o prazo de entrega ou término é dado pela duração da função ou atividade. Recebido o pedido do cliente, o início da função depende apenas da disponibilidade de recursos. A programação da produção voltada aos fatores internos procura uma utilização eficiente da capacidade, como por exemplo, a máxima utilização das máquinas, através da coordenação das atividades simultâneas que ocorrem internamente. Assim, a programação da produção orientada externamente busca atender critérios de serviços ao cliente, enquanto a orientada internamente busca atingir a produtividade dos recursos. Apesar do fato de que a estratégia de programação da produção dependa da prática de cada empresa, alguns objetivos básicos são preservados: entrega dos produtos fabricados nas datas compromissadas ou estabelecidas; distribuição da carga de trabalho para obter máxima utilização dos recursos; garantia de disponibilidade da matéria-prima e componentes quando solicitados pela fabricação; impedimento de grande concentração de trabalho em poucas máquinas; previsão da ociosidade da capacidade produtiva; estabelecimento de sequências de produção que minimizem o tempo de equipamento sem trabalho. Os problemas de capacidade e de estoques estão fortemente ligados aos problemas de programação da produção, tanto ligados aos aspectos externos como aos internos. A programação se torna mais complexa nas situações em que não há estoques de produtos acabados e as decisões de programação são influenciadas pela demanda imposta pelos clientes, pois o grau de competitividade das tarefas é baixo, o que demanda um alto controle na programação.

23 22 Já nas situações em que há estoque, a programação deve analisar três estágios do sistema: o prazo para o produto final entrar no estoque, o início da fabricação do produto e a disponibilidade de matérias-primas para a fabricação. Apesar de envolver mais estágios e ser tecnicamente mais complexa, nesta situação a determinação dos prazos é mais simples porque se volta para a demanda do estoque, e não para o cliente (GIGANTE, 2010). De modo geral, um nível alto de demanda está ligado à padronização de produtos e serviços, o que acarreta uma repetitividade da função e a existência de recursos com finalidades específicas. Um nível baixo de demanda, por sua vez, pode estar associado à variedade de produtos e serviços não padronizados, que gera baixa repetitividade das tarefas e exige máquinas e equipamentos de uso geral. A eficiência da programação da produção pode ser avaliada por parâmetros ligados a aspectos internos e externos. São parâmetros de orientação interna: nível de produtos acabados ou trabalhos em andamento/progresso; porcentagem de faltas nos estoques; e tempo parado por outros motivos (quebras, falta de uso, etc). São parâmetros de orientação externa: porcentagem das ordens entregues antes do prazo ou no prazo e tempo de espera do cliente. E há, ainda, parâmetros de origem externa e interna: porcentagem de utilização dos recursos, quantidade de clientes perdidos e tempo de preparação das máquinas. Técnicas e métodos com finalidades específicas foram desenvolvidos para executar a programação da produção de acordo com seus objetivos, tanto para atender aos aspectos externos como para cumprir orientações internas. Entre os mais difundidos estão os Gráficos de Gantt, o Diagrama de Montagem, as Técnicas de Redes (CPM e PERT) e diversos métodos heurísticos que determinam o melhor seqüenciamento da produção. 2.2 VISÃO GERAL SOBRE PROGRAMAÇÃO DA PRODUÇÃO (SCHEDULING) Um sistema de scheduling, ou programação da produção, segundo Morton e Pentico (1993), se refere a procedimentos dinâmicos para tomar decisões relacionando atividades de uma tarefa ou projeto com os recursos que as executam, de modo que os objetivos sejam atingidos, ou seja, as atividades sejam executadas pontualmente e com alta qualidade e, simultaneamente, o volume de produção seja maximizado e os custos

24 23 operacionais diretos minimizados. Já Sipper e Bulfin Jr. (1997) definem scheduling como o processo de organizar, escolher e temporizar o uso de recursos na realização de todas as atividades necessárias para produzir saídas nos momentos necessários. O scheduling deve satisfazer um grande número de restrições de tempo e de relações entre as atividades e os recursos. Caso os recursos sejam ilimitados, um problema de scheduling não existe (FERNANDES; FILHO, 2010). Considerando uma máquina que processe 32 tarefas, o número de sequências possíveis seria de 32! = 2,5x10 35, número excepcionalmente grande (SIPPER; BULFIN JR, 1997). Utilizando um computador sofisticado para avaliar todas as alternativas, este processo levaria centenas de anos. Portanto, verifica-se a necessidade de algoritmos para reduzir este universo de possibilidades de modo a obter as melhores sequências. De modo geral, podemos afirmar que a programação da produção ou scheduling é um processo de decisão onde o objetivo é a otimização da produção e onde o uso dos recursos está sujeito a uma série de restrições. Portanto, esta programação diz respeito à alocação de recursos limitados para tarefas ao longo do tempo. As formas de recursos e tarefas podem ser diferentes, dada a variedade de indústrias e seus objetivos. Em um sistema de manufatura, os pedidos devem ser liberados e traduzidos em tarefas, com suas respectivas datas de entregas. Tais tarefas devem ser processadas por máquinas em centros de trabalhos em uma determinada ordem ou sequência, e podem ter que esperar ou adiantar seu processamento caso as máquinas estejam ocupadas ou quando tarefas de alta prioridade precisam ser processadas antecipadamente. O planejamento detalhado das tarefas a serem executadas em um sistema de produção é necessário para manter a eficiência e o controle das operações. A programação é um importante processo de tomada de decisão existente na maioria dos sistemas de manufatura e produção, em ambientes de processamento de informações, de transporte e distribuição e outros tipos de indústrias de serviços. A programação da produção tem diferentes focos, desde o ponto de vista técnico até o da implementação. Na academia, os trabalhos científicos dão destaque para problemas de programação são semelhantes aos modelos de otimização combinatória e modelagem estocástica. As dificuldades que ocorrem durante a implementação na indústria, contudo, são de um tipo diferente e estão relacionados com a modelagem dos problemas de programação do mundo real e recuperação da informação (PINEDO, 2008). De fato, a programação da produção tem sido objeto de estudo altamente explorado pelas comunidades acadêmicas nas últimas décadas. Trata-se de uma das

25 24 áreas com mais publicações em conferências e revistas especializadas. No entanto, é também uma das áreas onde há uma enorme distância entre a teoria e o que se consegue aplicar na prática industrial. Embora considerada relativamente simples em termos de formulação e visualização do que é requerido, esta classe de problemas apresenta alto grau de dificuldade para obter soluções ótimas até mesmo nas situações mais comuns. A maioria dos problemas reais de programação da produção é por natureza muito complexa e de difícil resolução, em termos da solução ótima. Tal constatação não implica dizer que os problemas de programação da produção do cotidiano das empresas não sejam resolvidos. O que se quer dizer é que as soluções encontradas por elas não são as soluções ótimas, mas sim soluções semi-ótimas que resolvem os problemas com a máxima eficiência possível. Existem duas maneiras de descrever os problemas de programação. Conway et al. (1967) introduziram uma notação de parâmetros A/B/C/D, em que A representa o número de tarefas, B o número de máquinas, C é o ambiente da máquina, e D é a função objetivo. Graham et al. (1979) introduziram uma notação de três parâmetros α/β/γ, amplamente utilizada na literatura atual. O campo α descreve o ambiente da máquina e contém uma única entrada. O campo β fornece detalhes das características de processamento e as restrições, e pode não conter entradas, uma entrada única, ou múltiplas entradas. O campo γ contém o objetivo a ser minimizado e, geralmente, contém uma única entrada. Existem cinco principais categorias de ambiente de máquina em problemas de programação: máquina única, máquinas paralelas, flowshop, jobshop e openshop. Alguns deles podem ser quebrados em subcategorias. O caso de uma única máquina é apresentado no campo α=1 e é o mais simples de todos os ambientes de máquinas possível. Pm descreve o ambiente de m máquinas idênticas paralelas. A tarefa j requer uma única operação e pode ser processada em qualquer uma das m máquinas ou em qualquer uma pertencente a um dado subconjunto. Qm descreve o ambiente de máquinas paralelas uniformes, em que m máquinas em paralelo possuem velocidades diferentes, mas a relação de velocidade é conhecida. O ambiente de máquinas paralelas é generalizado usando as letras Rm para representar máquinas paralelas não relacionadas, no qual as velocidades das máquinas são diferentes e a relação das velocidades são desconhecidas. Os exemplos de possíveis dados de entrada no campo β são: data de liberação (r j ), os tempos de set up dependentes da seqüência (s jk ), interrupções (prmp), restrições de

26 25 precedência (prec), avarias (brkdwn), restrições de elegibilidade de máquina (M j ), permutações (prmu), bloqueio (block), sem-espera (nwt) e recirculação (recrc). Exemplos de possíveis dados de entrada no campo γ são: data de término (C ij ), tempo de fluxo (F j ), atraso da tarefa (L j ), tempo de atraso da tarefa (T j ), makespan o tempo para completar todas as tarefas (C max ), atraso máximo (L max ), atraso ponderado ( ), tempo de término total ponderado ( ), número ponderado de tarefas atrasadas ( ), etc. O objetivo é determinado pela exigência da operação e gestão. O ambiente Fluxoshop (Fm) descreve o ambiente em que m máquinas estão em série. Cada tarefa tem que ser processada em cada uma das m máquinas. Todas as tarefas têm as mesmas sequências. Após a conclusão em uma máquina, uma tarefa precisa esperar na fila caso a próxima máquina esteja ocupada. Se todas as filas são assumidas para operar sob o regime first in first out (FIFO), o flowshop é conhecido como Flowshop permutacional. O Flowshop flexível é uma generalização do ambiente de flowshop e de máquinas paralelas, e é denotado por FFs. 2.3 O AMBIENTE FLOWSHOP PERMUTACIONAL Em muitas linhas de fabricação e montagem, várias operações necessitam ser realizadas em todas as tarefas. Muitas vezes, essas operações têm de ser realizadas em todas as tarefas na mesma ordem, o que implica que essas tarefas devem seguir a mesma sequência. Assume-se que as máquinas estão instaladas em série e o ambiente referido é o flowshop. Em um problema de programação flowshop permutacional, há um conjunto de n tarefas para serem processadas em um conjunto de m máquinas, o ambiente assumido dispões de m máquinas instaladas em série e cada tarefa é processada exatamente na mesma ordem. O objetivo é encontrar uma sequência, entre as n! possíveis, para o processamento das tarefas nas máquinas, de modo que alguma funçãoobjetivo previamente estabelecida seja minimizada. Neste trabalho, o objetivo é a minimização do tempo total da programação ou makespan, que é o critério mais comum citado na literatura (RUIZ e MAROTO, 2005). Os tempos de processamento necessários para as tarefas nas máquinas são representados por t ij, onde i = 1,... n, e j = 1,..., m. Os tempos de processamento são fixos, conhecidos previamente, e não negativos. Baker (1974) lista várias premissas que são comumente feitas sobre esse problema:

27 26 Cada tarefa i pode ser processada no máximo em uma máquina j por vez; Cada máquina m pode processar apenas uma tarefa i por vez; Após o início da operação, não são permitidas as interrupções; Cada operação tem no máximo uma precedente e uma sucessora, isto é, possuem fluxo unidirecional; os tempos de set-up são insignificantes e portanto podem ser ignorados; as máquinas estão continuamente disponíveis; estoque em processo é permitido, entre outros. 2.4 TIPOS DE MODELOS PARA FLOWSHOP Algoritmo Exato As primeiras pesquisas sobre flowshop eram extremamente teóricas. A maioria dos pesquisadores considerava as abordagens de programação matemática para os problemas de programação flowshop, tais como a programação linear inteira (MANNE, 1960). Soluções branch and bound (LOMNICK 1965; MCMAHON E BURTON, 1967) foram desenvolvidas na década de 1960 para obter soluções ótimas. Entretanto, estas técnicas funcionam bem apenas em casos de pequenas dimensões. À medida que o tamanho do problema aumenta, elas se tornam ineficientes. Johnson (1954), por exemplo, propôs um algoritmo de otimização para o problema de flowshop com duas máquinas e tarefas, e mostrou que a mesma permutação de tarefas pode ser aplicada em ambas as máquinas. Seu método provou ser ideal quando o número de máquinas é igual a dois ou três, sob determinadas condições, mas ele se torna ineficiente quando o número de máquinas é superior a três (JOHNSON, 1954) Heurísticas Uma heurística é um procedimento desenvolvido através de um modelo cognitivo, usualmente através de regras baseadas na experiência dos desenvolvedores. Ao contrário dos métodos exatos, que buscam encontrar uma forma algorítmica de achar uma solução ótima através da combinação ou busca de todas as soluções possíveis, as heurísticas normalmente tendem a apresentar um certo grau de conhecimento acerca do

28 27 comportamento do problema, gerando um número muito menor de soluções. Diante da dificuldade em encontrar uma solução ótima para o problema de flowshop, métodos heurísticos englobam estratégias, procedimentos e métodos aproximativos com o objetivo de encontrar uma boa solução, mesmo que não seja a ideal, em um tempo computacional razoável (FERNANDES; FILHO, 2010). Quanto à forma de obtenção da solução, a literatura classifica os métodos heurísticos em construtivos e melhorativos. Os métodos construtivos consistem em construir a solução de um problema a partir do zero, de forma incremental, e que será o resultado final do problema (PALMER, 1965; CAMPBELL et al., 1970; DANNENBRING, 1977; KOULAMAS, 1998; DAVOUD POUR, 2001; NAGANO e MOCCELLIN, 2002; KALCZYNSKI e KAMBUROWSKI, 2007; DONG; HUANG e CHENG, 2008; KALCZYNSKI e KAMBUROWSKI, 2008; RAD; RUIZ e BOROOJERDIAN, 2009). Este tipo de método gera uma solução factível para o problema das seguintes maneiras: A partir de geração sucessiva de sequências parciais das tarefas (subseqüências) até a obtenção de uma sequência completa, respeitando algum critério para realizar a inserção das tarefas, como citam Nagano e Moccellin (2002); Kalczynski e Kamburowski (2007); Dong; Huang e Chen (2008); Rad; Ruiz e Boroojerdian (2009); A partir da ordenação das tarefas segundo índices de prioridade calculados em função dos tempos de processamento das tarefas, por exemplo, através da heurística de Palmer (1965); Ou ainda, dado um conjunto de sequência, escolhe-se a melhor sequência utilizando-se também índices de prioridades associados a cada tarefa, como citado através de Campbell, Dudek e Smith (1970) e Hundal e Rajgopal (1988). Heurísticas melhorativas partem de uma solução factível e procuram uma solução melhor dentro de uma vizinhança, definida geralmente por meio de permutações de posições das tarefas na sequência. Uma heurística clássica melhorativa pára quando não existe nenhum vizinho melhor que a solução corrente (ótimo local), dado uma medida de desempenho adotada. Dannenbring (1977) propôs duas heurísticas melhorativas simples, o Rapid Acess com Close Order Search (RACS) e Rapid Access com Extensive Search (RAES), que começam a partir de uma solução de programação construída pela

29 28 Rapid Access (RA). Rad, Ruiz e Boroojerdian (2009) modificaram a heurística NEH ao adicionar a abordagem da busca local após o procedimento principal. Pode-se citar ainda Taillard (1990); Widmer e Hertz (1991) e Nowicki e Smutnicki (1996). Rajedran e Ziegler (2004) apresentaram dois novos métodos baseados no ant-colony optimization (ACO). Estas heurísticas melhorativas utilizam técnicas de busca local para melhorar a qualidade da solução gerada. Apesar da vasta gama de estudos na área de programação da produção em ambiente flowshop, muitos dos métodos desenvolvidos são considerados complexos e requerem grande esforço computacional. Portanto, a busca de métodos heurísticos mais simples, eficazes e de mais fácil implementação ainda permanecem como objetos de estudos visando à melhoria contínua no ambiente produtivo. 2.5 HEURÍSTICAS CONSTRUTIVAS A seguir são apresentadas as principais heurísticas construtivas que tratam dos problemas de flowshop permutacional com critério de minimização da duração total da programação (makespan). Para tal, adotaremos as seguintes notações: Seja J={J 1, J 2, J 3,..., J j,..., J n } um conjunto de n tarefas a serem processadas em m máquinas distintas na mesma seqüência de processamento. p ij é o tempo de processamento de tarefa J j na máquina i, isto é p ij (i=1, 2, 3,..., m; j=1, 2, 3... n). Vale lembrar que mesmo que todas as tarefas obedecem à mesma seqüência, uma determinada tarefa x pode não ser processada em uma determinada máquina y, e portanto, p yx =0. Para problemas de n tarefas que sejam processadas em apenas 2 máquinas, Johnson (1954) desenvolveu um algoritmo que fornece a solução ótima de sequenciamento em ambientes flowshop com objetivo de minimização do makespan. Para problemas com n tarefas e m máquinas, encontrar uma solução ótima dentro de um tempo computacional finito ainda não foi possível. Isto se deve ao fato de que a função de complexidade do tempo computacional de problemas de flowtime é de natureza exponencial. E é então para estes casos que se faz necessário o uso de heurísticas para a resolução destes problemas com objetivo de alcançar soluções boas com esforço computacional aceitável. Campbell, Dudek, e Smith (1970) desenvolveram uma heurística que é conhecida

30 29 como CDS. Trata-se de uma heurística multi-estágio que constrói m-1 sequências, agrupa as m máquinas originais em duas máquinas artificiais e resolve o problema gerado de duas máquinas utilizando repetidamente a regra de Johnson. Os tempos de processamento da tarefa j na máquina i (i=1 ou 2) são gerados iterativamente a partir dos tempos de processamentos originais nos m-1 estágios. No estágio 1: e Em outras palavras, a Regra de Johnson é aplicada considerando apenas a primeira e a última máquinas, e as máquinas intermediárias são inicialmente ignoradas. No estágio 2: e Ou seja, a Regra de Johnson é aplicada à soma dos tempos de processamento da primeira com a segunda máquinas e da penúltima com a última máquinas. Para o estágio t=m-1, os tempos de processamento das máquinas artificiais 1 e 2 serão dadas por: Estágio t: e ( ) Para cada estágio t (t = 1, 2,..., m-1), obtém-se uma sequência de tarefas por meio da regra de Johnson. Com esta sequência, calcula-se o makespan com os tempos de processamento do problema original. Após m-1 estágios, a sequência que fornecer o menor makespan é escolhida como a melhor solução para o problema. Palmer (1965) desenvolveu uma heurística que atribui um índice para cada tarefa, o chamado slope index, e em seguida, organiza a sequência de acordo com o índice atribuído a cada tarefa. Este índice é calculado de modo a organizar as tarefas em ordem não-crescente de seus tempos de processamento. As tarefas que possuem maiores

31 30 tempos de processamento recebem maiores índices, e então, cada tarefa é organizada de modo que aquelas com os maiores slope índex (S j ) ocupam as primeiras posições na sequência de execução. Tal índice S j para a tarefa J j é dado por: ( ) ( ) ( ) ( ) ( ) ( ) Gupta propôs uma modificação do slope index de Palmer que explorava algumas semelhanças entre os problemas de programação e triagem (Gupta, 1971). Na verdade, Gupta reconheceu que o algoritmo de Johnson é na verdade um método de ordenação de tarefas em problemas com 2 ou 3 máquinas, a partir da atribuição de um índice para cada tarefa, seqüenciando-as de acordo com a ordem crescente de tais índices. Gupta então generalizou o problema mas caso em que m>= 4 máquinas. A seguir é apresentado a forma como Gupta determina os índices pra a tarefa J j. ( ) ( ) onde: { } Hundal e Rajgopal (1988) desenvolveram uma extensão da heurística de Palmer, uma vez que a Heurística de Palmer não considera a máquina (m+1)/2 quando m é impar. Este fato pode afetar a qualidade da solução. Desta forma, Hundal e Rajgopal propuseram outros dois métodos para o cálculo dos índices: ( ) ( ) A partir dos índices obtidos por este método, duas novas sequencias podem ser encontradas. Seleciona-se a sequencia que apresentar o menor makespan.

32 31 Moccellin (1995) propôs uma heurística denominada FSHOPH (flowshop heuristic), semelhante à heurística SPIRIT proposta por Widmer e Hertz (1991). A heurística FSHOPH baseia-se no problema do Caixeiro Viajante, porém o conceito de distância percorrida entre duas tarefas é muito diferente nesta heurística se comparado à SPIRIT. O cálculo da duração total da programação no problema de Programação de Operações Flowshop Permutacional de uma sequência S com n tarefas e m máquinas é dada por ( ) Onde: : tempo de processamento da j-ésima tarefa na última máquina da sequência S. : tempo transcorrido entre o término da tarefa que ocupa j-ésima posição na sequência S e o início da (j+1)-ésima tarefa, na última máquina., representa uma tarefa fictícia, com tempo de processamento nulo e que ocupa sempre a primeira posição entre as tarefas da sequência S. Se considerarmos como a distância entre as j-ésima e a (j+1)-ésima posições de S, então o problema de flowshop permutacional passar a ser tratado como um típico problema do Caixeiro Viajante. A sequência S x que minimiza o makespan M(S) é dado pela rota mais curta que abrange todas a n tarefas. Na heurística FSHOPH, a distância entre duas tarefas é baseada em uma propriedade apresentada por Moccellin (1993) que ocorre em problemas de flowshop permutacional: Considere duas tarefas arbitrárias u e v em um conjunto de n tarefas. Para cada sequência S com as tarefa u e v posicionados respectivamente nas posições j e (j+1), j=0, 1, 2,..., n-1, tem-se que: [ ( )]

33 32 Onde: é um limitante superior de (que é o intervalo de tempo de espera da máquina h que ocorre entre o término da tarefa u e o início da tarefa v). = tempo de processamento da tarefa i na máquina h. A partir dessa propriedade, tem-se: Para uma sequência S de n tarefas, o limitante superior para a duração total da programação M(S) é dada por: ( ) Se considerarmos [ ][ ] como a distância entre as tarefas nas posições j e (j+1), então o problema de programação em flowshop permutacional pode ser heuristicamente resolvido por analogia direta com o problema do caixeiro viajante (Moccellin, 1995). No primeiro passo da heurística FSHOPH, a distância entre as tarefas u e v é dada por e é procurado a rota (sequência) que minimize o limitante superior ( ). Para o segundo passo, utiliza-se técnicas de busca Tabu para melhorar a solução inicial. Dannenbring apresentou a heurística Rapid Acess (RA), que é uma mistura das idéias prévias do índice de Palmer e CDS (Dannenbring 1977). A principal idéia por trás é construir um único subproblema de duas máquinas (ao invés de m-1 subproblemas), onde os tempos de processamento de cada tarefa são determinados pelo esquema de ponderação linear. Este subproblema é resolvido usando o algoritmo de Johnson para duas máquinas. O procedimento de RA fornece uma boa solução de maneira rápida. Os pesos para as tarefas são calculados por: ( ) ( ) O desenvolvimento de heurísticas construtivas para os problemas de flowshop permutacional ocorreu principalmente nas décadas de 1960 e 1970, e proporcionou boas

34 33 soluções dentro de tempos de processamento razoáveis. No entanto, a qualidade das soluções ainda possui muitas oportunidades a serem melhoradas. Sarin e Lefoka (1993) exploraram a ideia de minimizar o tempo ocioso da última máquina, pois o aumento do tempo ocioso da última máquina se traduzirá em um aumento no tempo de conclusão total ou makespan. Portanto, a sequência é completada inserindo-se uma tarefa de cada vez, e é dada prioridade ao trabalho que resulta na mínima adição de tempo ocioso na máquina m. Nawaz, Enscore, e Ham (1983) desenvolveram uma heurística construtiva denominada NEH, que compreende duas fases simples, baseado na ideia de priorizar as tarefas em função da soma de seus tempos de processamento em todas as m máquinas. A heurística NEH é classificada como uma heurística construtiva, ao passo que exige n iteração do procedimento, que tem Ο (n2m) cálculos possíveis, de acordo com Ruiz e Maroto (2006). Devido ao bom desempenho da heurística NEH original, pesquisadores enfatizaram o aprimoramento do NEH para diferentes abordagens. As principais direções das pesquisas para a modificação do NEH na literatura de programação da produção são baseadas em quatro categorias principais, descritas a seguir: O objeto da primeira categoria é estudar o efeito da sequência inicial na fase I, na abordagem do NEH para o seu desempenho (NEH original). Framinan et al. (2003) analisaram 177 diferentes sequências iniciais, verificando mudanças nas fases iniciais (fase de indexação) do NEH, a qual os cinco melhores métodos para as funções objetivo de minimização de makespan, tempo ocioso de máquina (idletime) e tempo total de fluxo (flowtime). Foi calculado a porcentagem de desvio relativo, e os resultados mostraram que a sequência do NEH original teve o melhor desempenho para as funções objetivo de minimização do makespan e tempo ocioso. Nagano e Moccellin (2002) desenvolveram uma heurística construtiva denominada N&M, onde esta se difere da heurística NEH (1983) apenas na fase inicial de ordenação. Este processo é quebrado em duas etapas: Etapa 1: Calcular Onde: { }

35 34 = tempo de processamento da tarefa i na máquina k; n = número de tarefas; m = número de máquinas ( ( ) ) ( ( )) sendo, A tarefa u é imediatamente precedente de v. Etapa 2: Ordenar todos o I i de forma não-crescente e prosseguir os próximos passos identicamente ao método NEH. A segunda categoria foca o desempate na fase de inserção do NEH original, pois podem existir várias seqüências parciais que têm o mesmo makespan parcial nesta abordagem. A seleção aleatória pode causar maiores makespan total na próxima etapa. Kalczynski e Kamburowski (2007) mediram o desempenho do NEH com uma modificação da etapa de inserção para demonstrar o impacto sobre o desempenho no tempo de desempate. Eles criaram uma heurística denominada NEHKK, em que há uma modificação no processo de construção da sequência solução do NEH. Quando ocorre empates nas sequências parciais, há uma avaliação levando em consideração a regra de Johnson. A seguir é apresentado as fases de construção da heurística NEHKK: Etapa 1: Calcule, j J, e organize na ordem não-crescente; Etapa 2: Considere apenas as duas primeiras tarefas da seqüência obtida na etapa 1 e ordene-as de maneira a obter o menor makespan e faça ( [ ] [ ]) Etapa 3:Selecione a próxima tarefa r da ordenação inicial TP j e insira na primeira posição da sequência parcial. Assuma a sequência inicial ( [ ] [ ] [ ]) e faça l x 1. Para l de 2 até n, faça: Teste a tarefa r na posição l de e siga o seguinte critério: SE o makespan da sequência for menor que o makespan da sequência OU SE: {o makespan da sequência for igual ao makespan da sequência } E: {o makespan da sequência ( ) for menor que o makespan da

36 35 sequência ( )} Então faça: l x 1 e Uma abordagem de modificação da fase I do NEH original, proposto por Dong et al (2008) e denominado NEH-D, mostrou uma melhoria significativa ao criar uma regra de prioridade baseado na combinação linear da média (AVG j ) e do desvio padrão (DEV j ) dos tempos de processamento das tarefas, dado por: ( ) [ ] [ ( ) ] [ ( ) ] Desta forma, cada tarefa recebe um valor do esquema de ponderação dado pela combinação linear ( ). Em seguida, essas tarefas são colocadas em ordem não-crescente de acordo com esta regra de prioridade, caracterizando então a Fase I do NEH. Dong, Huang e Chen elaboraram ainda uma estratégia para o caso em que houver empate entre estes pesos dados às tarefas. A seguir, uma breve explanação sobre a metodologia:. Seja ( ) a tarefa da posição x de uma permutação Logo ( ) é o tempo de processamento de tarefa ( ) na máquina i, ( )é a primeira data de término da tarefa ( ) na máquina i, ( )é a última da de início da tarefa ( ) na máquina i. Com isso, duas medidas podem ser calculadas para a tarefa ( ): ( ) ( ) ( ) ( ) ( ) ( ( ) ( ) ( ) ( )) Para o caso em que houver empate, o desempate ocorre inserindo a tarefa na

37 36 posição x com o menor ( ). A terceira categoria na literatura de pesquisas que modificam a heurística NEH utiliza etapas adicionais para reinserir tarefas em posições vizinhas, a fim de melhor acomodar a nova tarefa. Rad et al. (2009) propuseram cinco novos métodos que superam o NEH denominados FRB1, FRB2, FRB3, FRB4 e a meta-heurística FRB5. Dentre os algoritmos construtivos, FRB3 e FRB4 foram as heurísticas com os melhores desempenho, e por tanto, a seguir eles serão detalhados. Método FRB3: Etapa 1: Calcule e coloque em ordem não-crescente de TP j e ; Etapa 2: Para l= 1 até n, testar a tarefa h, na posição l de TP j, em todas as possíveis posições de e inserir a tarefa na posição de menor makespan. Etapa 2.1: Para i=1 ate l, retire a tarefa h da posição i de e teste h em todas as posições possíveis de, e inserir a tarefa na posição de menor makespan. Para o método FRB4, a única mudança em relação ao FRB3 está no modo como é feito o processo de busca na Etapa 2.1. O FRB3 realiza a busca em l possíveis soluções, enquanto que o FRB4 busca em um intervalo definido entre o máximo de l e p k e o mínimo de l e p+k, onde p é a posição em que a tarefa foi inserida no passo 2 e k é um valor pré-definido para método e varia entre {2, 4, 6, 8, 10, 12}. O método FRB4 é apresentado a seguir: Etapa 1: Calcule e coloque em ordem não-crescente de TP j e ; Etapa 2: Para l= 1 até n, testar a tarefa h, na posição l de TP j, em todas as possíveis posições de e inserir a tarefa na posição de menor makespan. Etapa 2.1: Para i=max (i, p-k) até Mín (l, p+k), retire a tarefa h da posição i de e teste a em todas as posições possíveis de, e inserir a tarefa na posição de menor makespan. A última categoria abrange alguns outros pesquisadores que trabalham para reduzir o tempo de processamento do NEH, enquanto que a qualidade da solução não é um requisito que necessite de cuidados, se comparado com o NEH original. Jin et al.

38 37 (2007) introduziram o procedimento de poda baseado nas propriedades de bloco dos problemas de programação flowshop, que é investigado para reduzir o tempo de execução, e dentro da heurística NEH, para reduzir a complexidade computacional. Os resultados experimentais mostraram que o NEH aperfeiçoado apresenta uma grande redução do tempo de execução quando comparado com o NEH original. Gao et al. (2007) propuseram o NEH melhorado, com completos movimentos de inserções para resolver o problema de flowshop permutacional. Método para o rápido cálculo do makespan e a política de eliminação de permutações não-promissoras são introduzidos para reduzir o esforço da avaliação.

39 38 3 CLASSIFICAÇÕES EXISTENTES DE HEURÍSTICAS DE FLOWSHOP PERMUTACIONAL Framinan, Gupta e Leisten (2004) desenvolveram um trabalho onde, além de demonstrar as principais heurísticas disponíveis na literatura para o problema de minimização do makespan, estabelecem um quadro geral que engloba todas elas, classificando-as em fases de construção comuns. Nos trabalhos prévios de classificação, considerando que nem todas as heurísticas disponíveis são da mesma natureza, o termo heurística construtiva foi utilizado para um primeira delimitação. Entretanto, esta se trata de uma classificação superficial e de escopo limitado, segundo Framinan, Gupta e Leisten (2004), e o significado do termo construtivo permanece confuso (e consequentemente, o mesmo se aplica às heurísticas assim classificadas). Por exemplo, Pinedo (2008) definiu heurística construtiva como o oposto à heurística composta, que são aquelas resultantes da combinação de heurísticas simples (construtivas). Já Lourenço (1996) definiu heurística construtiva como um algoritmo que constrói sequências de tarefas e, uma vez que a decisão é tomada, não se deve alterá-la. Além disso, existiram outras tentativas de classificar as heurísticas existentes para a programação em ambientes flowshop, tal como proposto por Gupta (1971). Segundo ele, as heurísticas são classificadas em três classes: heurísticas funcionais fixas, heurísticas funcionais flutuantes e heurísticas funcionais sintéticas. A primeira classe engloba as heurísticas que exploram as características funcionais de um problema de classificação. Basicamente, consiste no desenvolvimento de alguns índices para classificar as tarefas, podendo estes índices serem baseados nos tempos de processamento do problema, por exemplo. Gupta inclui nesta classificação heurísticas como as de Palmer (1965), Campbel et al (1970), e Gupta (1971). Heurísticas funcionais flutuantes, por sua vez, geram uma função contínua para uma sequência parcial. Como exemplo o autor cita os algoritmos MINIT e MINOT de Gupta (1968; 1972). E por fim, como exemplo de uma heurística funcional sintética, pode-se citar a heurística MINMAX de Gupta (1972), baseado na programação de tarefas, ordenando primeiro as tarefas com os menores tempos de processamento, e por últimos, aquelas com os maiores tempos. No entanto, de acordo com Framinan, Gupta e Leisten (2004), todas as classificações citadas apresentam problemas. Na classificação de Pinedo (2008), seria difícil classificar algumas heurísticas que fossem tratadas tanto como heurísticas

40 39 simples quanto como uma forma de generalização de uma heurística mais simples. Por exemplo, a heurística de Campbell et al (1970) pode ser considerada uma forma generalizada da heurística de agregação de máquinas de Röck e Schmidt (1983). Na classificação sugerida por Lourenço (1996), várias heurísticas de diferentes naturezas, tais como Nawaz et al (1983) e Gupta (1971), poderiam ser agrupadas dentro do termo heurística construtiva. Porém na prática, esta última heurística seria considerada como um ponto inicial para formar a solução final. Com relação à classificação de Gupta, de um lado ela não cobre os desenvolvimentos de heurísticas recentes tais como a de Page (1961), que se baseia em buscas locais. De outro lado, desenvolvimentos relativamente novos tais como as meta-heurísticas não se encaixam nesta classificação por razões óbvias. Por fim, outros trabalhos como os de Morton e Pentico (1993), simplesmente distinguem entre heurísticas e métodos de busca local, sem fazer a relação entre eles. 3.1 CLASSIFICAÇÃO PROPOSTA POR FRAMINAN, GUPTA E LEISTEN Dando continuidade a estes estudos, Framinan, Gupta e Leisten (2004) desenvolvem um quadro geral para estender classificações anteriores de modo a abranger todas as principais heurísticas. No quadro geral proposto, o desenvolvimento de uma heurística consiste em três fases: Fase 1: desenvolvimento do índice Fase 2: construção da solução Fase 3: melhoramento da solução. Uma heurística simples pode se consistir de uma ou mais destas fases, que em geral são independentes uma da outra. Entretanto, uma heurística que consista em mais de uma destas fases deve ocorrer na ordem acima mencionada. As três fases serão explicadas com mais detalhes a seguir Fase I: Desenvolvimento do índice Na fase de desenvolvimento do índice, as tarefas são organizadas de acordo com uma certa propriedade baseada nos dados de um problema, por exemplo, os do tipo F m /prmu/c max, isto é, baseados nos tempos de processamento de cada tarefa em cada máquina. Em geral, este procedimento não necessita fazer nenhuma suposição durante o

41 40 sequenciamento das tarefas. O resultado desta fase é a lista seqüenciada das tarefas para serem inseridas para a próxima fase, ou solução. Para derivar o índice, podemos usar ou não um problema análogo. Problema análogo refere-se ao uso de dados de problemas do tipo F m /prmu/c max para construir e resolver um caso de diferentes classes de problemas. Quando o último problema tiver sido resolvido por determinados meios, a solução obtida é convertida em uma sequência de tarefas para o problema original F m /prmu/c max. Talvez o exemplo mais óbvio de um problema análogo seja a analogia F 2 //C max, empregada em heurísticas como a de Campbell et al (1970). Nesta heurística, um problema F 2 //C max é construído por agregação de máquinas a partir de dados oriundos do problema F m /prmu/c max original a ser resolvido. O problema F 2 //C max então obtido é resolvido de forma ótima em tempo polinomial aplicando a regra de Johnson, e a sua solução ótima é aceita como uma solução para o problema original F m /prmu/c max. Se nenhuma analogia for usada, a propriedade deve ser simplesmente deduzida a partir de alguma forma de relacionamento assumido, que envolva o tempo de processamento das tarefas e suas posições correspondentes dentro da sequência. Nos casos onde alguns problemas análogos precisam ser empregados, as duas questões seguintes devem ser consideradas: a) A simplicidade dos problemas análogos empregados, isto é, se existem métodos polinomiais disponíveis para resolver otimamente o problema análogo, ou ao menos alguma heurística eficiente para este último; b) A correspondência entre soluções dos problemas de analogia e dos problemas F m /prmu/c max, isto é, se é possível provar que as soluções boas ou ótimas provenientes do problema análogo rendem boas (ou ótimas) soluções para o problema original. Três problemas análogos têm sido usados até agora para derivar uma ordenação das tarefas: F 2 //C max, o Problema do Caixeiro Viajante (PCV) e a analogia da Soma de Vetores, explicados a seguir. Analogia F 2 //C max Como mencionado antes, a analogia mais clara e a mais utilizada é a analogia com o problema F 2 //C max via agregação de máquinas. A agregação de máquinas refere-se a uma simplificação do problema original em relação às máquinas. Como resultado, o problema original é convertido em um novo problema denominado Aggregated

42 41 Problem Instance, com um número de máquinas fictícias denominadas m menor que o problema original. Mais especificamente, um problema com n tarefas, m máquinas é transformado em um problema com n tarefas, m máquinas, sendo m < m. Com relação às duas questões acima sobre as analogias mencionadas na seção anterior (simplicidade e correspondência), o primeiro é alcançado fixando m = 2, desde que seja possível resolver o problema F 2 //C max otimamente em tempo polinomial, de acordo com a regra de Johnson. Portanto, embora m possa valer teoricamente qualquer valor m < m, m é fixado a 2 em todas as heurísticas existentes que utilizem o procedimento de agregação de máquinas. Por outro lado, o caso de agregação de máquinas com m > 2 implica na resolução de um problema cuja complexidade é idêntica àquela do problema original. Desta forma, não é viável desenvolver uma heurística de agregação de máquinas com m > 2, a menos que abordagens heurísticas específicas sejam desenvolvidas para um determinado caso F m //C max, sendo 2 < m < m, ou exista uma heurística que apresente um desempenho extraordinariamente melhor para um determinado m > m. Finalmente, perceba que para m < 2, isto é, m = 1, qualquer sequenciamento é ótimo, logo não parece ser possível converter a solução do problema agregado correspondente em uma solução que faça sentido para o problema original. Com relação à correspondência entre soluções, nenhuma prova formal foi desenvolvida até o momento. Desde que os tempos de processamento do caso sejam envolvidos, a correspondência será dependente do caso e, portanto, boas abordagens para a agregação podem ser distinguidas de abordagens ruins apenas com base estatística, isto é, o percentual de problemas em que uma certa abordagem para designar tempos de processamento que produza casos agregados cuja solução ótima representa uma boa solução para o problema original. As principais abordagens para designar tempos de processamento para duas máquinas referem-se a Campbell et al (1970), Dannenbring (1977), Röck e Schmidt (1983), Selim e Al-Turki (1987), e Lai (1996). Todas essas abordagens resolvem otimamente o problema F 2 //C max (pela regra de Johnson) e usam essa solução como solução para o problema F m /prmu/c max, com exceção da heurística de Lai, que simplesmente classifica uma tarefa j em um dos dois grupos seguintes: U:{j:p 1 j p 2 j }, V:{j:p 1 j > p 2 j }, como na regra de Johnson. Entretanto, as tarefas em cada grupo não são classificadas mas sim sequenciadas arbitrariamente, e unidas com a única condição de que as tarefas em U devam preceder as tarefas em V. Esse procedimento permite que a heurística seja muito rápida,

43 42 apresentando uma análise do pior caso não muito diferente de outros procedimentos de agregação de máquinas. Porém, nenhum experimento computacional foi realizado para testar a performance desta heurística (FRAMINAN; GUPTA; LEISTEN, 2004). Analogia PCV A analogia do problema F m /prmu/c max com o PCV foi apontada pela primeira vez por Gupta (1968), e tem sido também estudada por Stinson e Smith (1982), Widmer e Hertz (1991) e Moccellin (1995). Nestes três artigos, a matriz de distância que define o caso PCV de n cidades é montado utilizando o tempo de processamento das máquinas (no caso do artigo de Stinson e Smith são apresentados mais de seis diferentes modos de construção da matriz de distâncias). Assim, o PCV é resolvido, e a sua solução é mantida como solução para o problema original F m /prmu/c max. Considerando que o PCV seja do tipo NP-hard, não há método disponível que garanta uma solução ótima dentro do intervalo de decisão (FRAMINAN; GUPTA; LEISTEN, 2004). Analogia da Soma de Vetores O então denominado Teorema da Soma de Vetores 43 pode ser enunciado da seguinte forma: seja V = {v 1,...,v n } um conjunto de d vetores dimensionais em que, e seja possível computá-lo em tempo polinomial uma permutação π tal que ( ) dmax j = 1,...,n v j, k = 1,..., n. Com relação às duas questões discutidas acima quando empregado um problema análogo (simplicidade e correspondência), a analogia empregada pode ser resolvida utilizando um algoritmo de tempo polinomial baseado em programação linear (LAWLER et al, 1993) Fase II: construção da solução Nesta fase, uma solução é construída de forma recursiva ao tentar inserir uma ou mais tarefas não sequenciadas em uma ou mais posições de uma sequência parcial, até que todo o sequenciamento esteja completo. Portanto, esta fase consiste de uma série limitada de tentativas (loops). Em cada loop k, o conjunto de tarefas é dividido em dois subconjuntos: o subconjunto S k de tarefas já sequenciadas e o subconjunto R k de tarefas

44 43 não-sequenciadas. Perceba que no k-ésimo loop, o subconjunto S k define uma sequência parcial de k tarefas. Em cada loop, uma tarefa é removida do subconjunto nãosequenciado e inserida no subconjunto de tarefas já sequenciadas. Nesta fase existem duas questões em qualquer loop k: a) Seleção de tarefas, isto é, definir qual tarefa j ϵ R k será inserida no subconjunto S k.. A seleção de tarefas deve ser decidida de acordo com uma das seguintes abordagens: De acordo com algum índice obtido a partir de uma aplicação da fase I, ou Várias tarefas pertencentes a R k são testadas. Neste caso, a seleção de tarefas a serem inseridas é feita de acordo com uma determinada medida de desempenho, isto é, visando minimizar alguma propriedade resultante da sequência parcial. A propriedade da sequência parcial utilizada para a seleção de tarefas deve ser a função objetivo que visa a minimização do makespan. O racional para usar esta medida é claro, desde que o makespan possa ser decomposto na soma dos tempos de processamento de todas as tarefas em todas as máquinas mais a soma desses tempos com os tempos de espera em cada máquina. Considerando que o primeiro termo da expressão (tempos de processamento) é constante, ao minimizar de alguma forma o tempo ocioso leva-se a sequências com menores makespans. b) Inserção da tarefa, isto é, definir onde será inserida a tarefa escolhida na sequência parcial S k. Com relação à inserção de tarefas, uma tarefa j pode ser inserida em uma posição fixada na sequência parcial S k, ou inúmeras posições podem ser testadas. King e Spachis (1980) distinguem entre sequências de cadeias simples e cadeias múltiplas, dependendo se uma ou várias posições são tentadas, respectivamente. Novamente, quando diversas posições são testadas, a seleção da posição deve ser feita de modo a minimizar alguma propriedade da sequência parcial resultante. Desta forma, quando várias tarefas pertencentes a R k precisam ser inseridas nas diversas posições da sequência parcial S k, a qualidade das medidas de ambas as sequências precisa ser a mesma, ou ao menos consistentes entre si. Além disso, para garantir uma boa performance desta fase, a qualidade das medidas de ambas as sequências parciais

45 44 devem coincidir ou pelo menos ser consistentes com a função objetivo (minimização do makespan). Similarmente ao caso de seleção das tarefas, deverão existir algumas regras de desempate quando múltiplas posições são testadas. Novamente, este aspecto é ignorado pela maioria das heurísticas existentes. Percebe-se que as decisões para a seleção e a inserção de tarefas (caso sejam tomadas) são tomadas usando informação parcial (local) e, portanto, apenas melhoramentos locais podem ser obtidos. Logo, não se pode garantir que a sequência resultante forneça um makespan menor que a sequência inicial desenvolvida na fase I, ou até mesmo uma sequência aleatória Fase III: melhoramento da solução Nesta fase, de acordo com Framinan, Gupta e Leisten (2004), uma solução existente é melhorada por meio de alguns procedimentos. As duas principais características desta fase são: Uma solução inicial (solução de entrada) é requerida; A qualidade da solução é sempre igual ou melhor que a solução da sequência inicial. Partindo de uma solução inicial, este procedimento procura mudar a sequência de tarefas para melhorar a solução. Isto pode ser feito em uma base individual por exemplo, duas tarefas possuem suas posições trocadas ou em uma base de grupos por exemplo, são alternadas as posições de um conjunto de tarefas adjacentes. No segundo caso, alguns procedimentos são desenvolvidos a fim de agrupar, e às vezes reagrupar, um conjunto de tarefas. Comumente, abordagens de melhoramentos são classificadas em buscas locais descendentes e meta-heurísticas (NOWICKI, 1996; STÜTZEL, 1998). Como exemplo de heurísticas que utilizam busca local descendente, cita-se Page (1961), e a fase final da heurística RAES de Dannenbring (1977), entre outros. Além da classificação em meta-heurísticas e busca local descendente, para esta última, há a necessidade de distinção entre abordagens de vizinhança geral e vizinhança específica. As abordagens de vizinhança geral são aquelas em que a vizinhança pode ser adequada para qualquer problema combinatório, enquanto que abordagens de

46 45 vizinhança específicas são aquelas em que a definição de vizinhança considera algumas características específicas para o problema F m /prmu/c max Estratégias para cada fase de classificação das heurísticas O emprego da classificação elaborada por Framinan, Gupta e Leisten (2004) é fundamental para estabelecer um parâmetro de comparação entre métodos distintos, e foi empregado em muitos trabalhos posteriores. Dentre estes, Framinan, Leisten e Ruiz- Usano (2005) desenvolveram uma investigação do problema de trabalhos seqüenciais em flowshop permutacional, visando minimizar a soma dos tempos de conclusão flowtime. No trabalho, primeiramente foi feita uma classificação e comparação entre as heurísticas existentes. Em seguida, baseado nos resultados experimentais, os autores sugeriram duas novas heurísticas compostas para solucionar o problema, comprovando, através de experimento computacional subsequente, que ambas são eficientes para o problema considerado. De acordo com Framinan, Leisten e Ruiz-Usano (2005), até o ano 2000, as melhores heurísticas construtivas disponíveis para o problema de minimização do makespan eram as heurísticas de de Rajendran e Ziegler (1997) e Woo e Yim (1998). Mais recentemente, outras abordagens heurísticas para o problema foram publicadas, como a heurística de Liu e Reeves (2001), o conjunto de heurísticas compostas de Allahverdi e Aldowaisan (2002), o trabalho de Framinan et al. (2003) na aplicação da heurística NEH para o problema F prmu C j, e a heurística de Framinan e Leisten (2003). Algumas dessas heurísticas são de naturezas distintas: de um lado, a heurística de Liu e Reeves consiste de uma primeira fase onde as tarefas são classificadas de acordo com um índice que considera o tempo ocioso, seguido de uma fase de melhoramento local. Por outro lado, o conjunto de heurísticas de Allahverdi e Aldowaisan pode ser considerada como heurísticas compostas (PINEDO, 2008), desde que contenham uma ou mais (simples) heurísticas. Mais especificamente, o conjunto de heurísticas de Allahverdi e Aldowaisan contém as heurísticas de Woo e Yim, e de Rajendran e Ziegler. Portanto, destaca-se a importância de investigar se diferentes combinações de heurísticas poderiam ser empregadas para a construção de novas heurísticas compostas, e se existem outros procedimentos de melhoramento local que poderiam ser aplicados para otimizar sua performance.

47 46 Para este trabalho, a análise concentra-se na primeira parte do estudo de Framinan, Leisten e Ruiz-Usano (2005), onde são descritas determinadas estratégias para determinação de heurísticas simples. Para classificar as heurísticas relevantes para o problema considerado, segue-se o esquema em três fases empregado por Framinan, Gupta e Leisten (2004): desenvolvimento de índices, construção da solução, e melhoramento da solução. Cada heurística pode usar uma mais ou mais dessas fases. Como as estratégias descritas valem apenas para casos de heurísticas simples, é importante destacar que Framinan, Leisten e Ruiz-Usano (2005) definem o termo heurística composta da seguinte maneira: uma heurística é considerada composta se ela empregar outra heurística para uma ou mais das três fases já mencionadas. Consequentemente, uma heurística é considerada como simples se ela não utilizar outra heurística em nenhuma das três fases. De acordo com a classificação apresentada, dentre as heurísticas simples mencionadas, existem diversas estratégias para a fase I (desenvolvimento do índice). São elas: Soma decrescente dos tempos de processamento (para NEH-flowtime); Soma decrescente das diferenças absolutas dos tempos de processamento de uma tarefa em cada máquina com todas as outras tarefas (para NEH-A); Soma ponderada decrescente dos tempos de processamento (para RZ); Cinco diferentes índices baseados em funções dependentes do tempo de processamento para as tarefas (para B5FT, ver Framinan, Leisten, Rajendran; 2003 para mais detalhes); Soma crescente dos tempos de processamento (para FL); Uma função de índice baseada no tempo ocioso total ponderado da máquina e no flowtime total artificial (para LR). Com relação à fase de construção da solução, emprega-se as seguintes estratégias: NEH-C: esta estratégia consiste na inserção da k-ésima tarefa da solução inicial em cada uma das k+1 posições possíveis da melhor solução parcial. Cada uma das sequências parciais obtidas é avaliada, e a melhor sequência parcial é mantida como a melhor solução parcial. Este processo é repetido até que toda a sequência seja construída;

48 47 RZ-C: esta estratégia consiste na inserção de cada tarefa, proveniente da solução inicial, em cada uma das posições possíveis. FL-C: esta estratégica consiste na inserção da k-ésima tarefa da solução inicial em cada uma das k+1 possíveis posições da melhor solução parcial. Cada uma das seqüências parciais até então obtidas é avaliada, e a melhor seqüencia parcial é mantida como a melhor solução parcial. A solução parcial obtida é submetida a uma tentativa de melhoramento de troca em pares entre as vizinhanças. Se uma solução melhor for obtida, esta nova solução é mantida como a melhor sequencia parcial. Este processo é repetido até que toda a programação seja construída. WY: Como já mencionado anteriormente, esta estratégia pode ser considerada como uma extensão da estratégia NEH, onde todas as (n-k) tarefas são testadas em todas as k possíveis posições. A sequencia parcial que render o menor tempo de fluxo (flowtime) é mantido como a melhor sequencia parcial para a próxima iteração. E por fim, em relação à fase melhoramento da solução, inúmeras estratégias têm sido adotadas: FPE Forward Pairwise Exchange (LIU; REEVES, 2001): Esta estratégia inicia-se a partir de uma sequencia inicial e então, testa-se a troca de posição de cada tarefa com uma quantidade definida de tarefas subsequentes. Para cada tentativa, se a sequencia obtida for melhor, então a troca é de fato realizada. Caso contrário, as duas tarefas são mantidas em suas respectivas posições originais. Após todas as tentativas serem realizadas, o processo todo se repete a partir da primeira tarefa da sequencia, e o procedimento continua até que não seja possível realizar mais nenhum melhoramento nas tentativas. BPE Backward Pairwise Exchange (LIU; REEVES, 2001): Esta estratégia é semelhante a FPE, porém agora as trocas se realizam a partir da direita para a esquerda. FPE-R Forward Pairwise Exchange (restart): Esta estratégia é utilizada em [10] sob a denominação pairwise interchange. Trata-se de uma estratégia idêntica a FPE, porém quando a troca de posições é de fato realizada ao se

49 48 encontrar uma solução melhorada, o processo de troca inicia-se a partir da primeira tarefa da nova sequencia. Além destas, há uma estratégia que segue a mesma ideia que a expressada acima: BPE-R ou Backward Pairwise Exchange (restart). Trata-se de uma estratégia semelhante a BPE, porém quando a troca de tarefas é realizada, o processo de trocas se inicia a partir da última tarefa da nova sequencia. As quatro estratégias citadas acima para a fase de melhoramento exploram a troca aos pares das vizinhanças. Embora não existam estudos específicos que abordem a minimização do flowtime, a inserção nas vizinhanças é considerada o esquema mais eficiente para busca local com o objetivo de minimização do makespan (TAILLARD, 1990).

50 49 4 RESULTADOS E DISCUSSÃO A seguir, serão descritas e classificadas as principais heurísticas encontradas na literatura cujo objetivo é a minimização do tempo total da programação (makespan). Todas estas heurísticas se encaixarão no quadro de classificação proposto por Framinan et al (2004) nas três fases seguintes: desenvolvimento (index development), construção da solução (solution construction) e melhoramento da solução (solution improvement). Na fase de desenvolvimento, o objetivo é gerar uma ordenação inicial das tarefas a serem sequenciadas, utilizando algum critério específico do problema, como por exemplo, a ordenação não-crescente dos tempos de processamento. Na fase de construção da solução ocorre a aplicação e estruturação da heurística no problema. Porém, apesar de prover a estrutura do método, não se pode garantir que nesta fase consiga-se obter uma solução melhor que aquela obtida na fase I. Por fim, a fase de melhoramento da solução procura, por meio de algum critério de busca local, obter um melhoramento do sequenciamento gerado pela fase II. Vale ressaltar que podem ocorrer combinações entre duas ou mais heurísticas para obter uma solução otimizada. Portanto, os métodos aqui descritos estão divididos em heurísticas simples e compostas. Observações quanto a notação: Seja J={J 1, J 2,..., J J,..., J n } um conjunto de n tarefas que devem ser processadas na mesma sequência, por um conjunto de m máquinas distintas. O tempo de processamento da tarefa J i na máquina i é p ij (1, 2,..., m; j = 1, 2,..., n). Se uma tarefa não tiver operação em uma determinada máquina, seu tempo de processamento é igual a zero. 4.1 HEURÍSTICAS SIMPLES Regra de Johnson (1954) O algoritmo de Johnson foi publicado em 1954 e até os dias de hoje é base para outras heurísticas devido à sua simplicidade de implementação e a sua eficácia, dado que para problemas de flowshop com n = 2máquinas, esta heurística fornece solução ótima, desde que obedecida a seguinte condição:

51 50 No problema n/2/f/m, a programação ótima é uma programação permutacional onde: A tarefa precede a tarefa se { } { }. O algoritmo de Johnson é composto pelos seguintes passos: Fase de Desenvolvimento Passo 1: Escolha a tarefa i com o menor tempo de processamento, para i = 1, 2,..., n. Desempates podem ser realizados arbitrariamente. Passo 2: Verifique se para esta tarefa, o menor tempo de processamento se encontra na primeira máquina (M1) ou na segunda (M2). Passo 3: Se esta tarefa estiver na máquina M1, coloque-a na primeira posição possível da sequência. Se estiver na máquina M2, coloque na última posição possível. Passo 4: Escolha a próxima tarefa com o menor tempo de processamento e repita o passo 1. ILUSTRAÇÃO NUMÉRICA. Para ilustrar o procedimento descrito acima, será resolvido o problema cujos os tempos de processamento são dados Tabela 1, composta por n = 5 tarefas e m = 2 máquinas. Tabela 1 - Tempos de processamento para a Regra de Johnson Tarefas (n) Máquinas (m) M1 M Passo 1. Tarefa com o menor tempo de processamento: tarefa 3 ( ); Passo 2. Esta tarefa se encontra na máquina M1.

52 51 Passo3: Como levantado no passo2, por estar na primeira máquina, esta atividade ocupará a primeira posição da sequência π: Passo 4: Próxima atividade, retorne para o passo1. Passo 1: Tarefa com o menor tempo: tarefa 2; Passo 2. Esta tarefa se encontra na máquina M2; Passo3: Por estar na segunda máquina, esta atividade ocupará a última posição da sequência π: Passo 4: Próxima atividade; Passo 1: Tarefa com o menor tempo: tarefa 1; Passo 2. Esta tarefa se encontra na máquina M1; Passo3: Por estar na primeira máquina, esta atividade ocupará a primeira posição possível da sequência π: Passo 4: Próxima atividade; Passo 1: Tarefa com o menor tempo: tarefa 5; Passo 2. Esta tarefa se encontra na máquina M2; Passo3: Por estar na segunda máquina, esta atividade ocupará a última posição possível da sequência π: Passo 4: Próxima atividade; Passo1: Única tarefa restante: tarefa 4. Completar sequência π (ótima): ( ) Figura 2 - Sequência ótima. Regra de Johnson

53 Palmer (1965) A heurística desenvolvida por Palmer (1965) é um esforço para se utilizar a regra de Johnson, a partir de um índice denominado slope índex. O slope index é calculado de modo que as tarefas cujos tempos de processamento apresentam uma tendência de crescimento em cada máquina recebem maiores valores. Isto significa que a sequência de tarefas pode ser gerada baseada em uma ordenação não-crescente dos slope índex de cada tarefa. Fase de Desenvolvimento Passo 1: Seja S(j) o slope índex da tarefa j e p ij o tempo de processamento da tarefa j na máquina i. O slope index de Palmer é calculado da seguinte forma: ( ) ( ), para j=1, 2,..., n. Passo 2: Após calcular o slope índex para todas as tarefas e montar a sequência nãocrescente, obtém-se a sequência final. ILUSTRAÇÃO NUMÉRICA Para ilustrar o procedimento descrito acima, será resolvido o problema dado na Tabela 2, de 5 tarefas e 3 máquinas. Tabela 2 -Tempos de processamento para a heurística Palmer Tarefas (n) Máquinas (m) Passo1: Calcule ( ) ( ) S 1 = -2*11 + 0*12 + 2*20 = 18; S 2 = -2*13 + 0*15 + 2*18 = 10; S 3 = -2* *10 + 2*12 = -16; S 4 = -2*9 + -0*12 + 2*20 = 22;

54 53 S 5 = -2*11 + 0*18 + 2*15 = 8; Passo2: A heurística de Palmer sequencia as tarefas em ordem não-crescente de seus slope index. Logo, para as tarefas da tabela 1, esta heurística fornece a sequência π = Utilizando esta heurística, rende-se um makespan = 106. Figura 3 - Gráfico de Gantt da sequência obtida por Palmer Campbell, Dudek e Smith (1970) Campbell, Dudek e Smith desenvolveram um dos mais importantes métodos heurísticos para problema em ambientes flowshop com o objetivo de minimização do makespan, denominado CDS. Sua eficácia se baseia em duas considerações: (i) utiliza os princípios da Regra de Johnson no estilo heurístico, e (ii) gera várias sequências a partir das quais pode-se escolher a melhor sequência. Para tal, gera-se m-1 subproblemas e a Regra de Johnson é aplicada em cada subproblema. Assim, m-1 sequências de tarefas são geradas. Como a Regra de Johnson é um algoritmo aplicado a apenas duas máquinas, um problema de m > 2 máquinas deve ser transformado em um problema de duas máquinas. Seja p ij onde i=1, 2,..., m e j=1, 2,..., n o tempo de processamento da j-ésima tarefa na i-ésima máquina de um problema de n tarefas e m máquinas. E seja k, para k m-1, uma variável auxiliar, podemos definir, para o k-ésimo problema, os seguintes tempos de processamento artificiais: p 1j = = o tempo de processamento artificial da j-ésima tarefa na máquina 1 (M1) p 2j = ( ) = o tempo de processamento artificial da j-ésima tarefa na máquina 2 (M2)

55 54 Fase de Desenvolvimento Passo 1: Estabeleça uma matriz n x m com os tempos de processamento p ij; Passo 2: Faça k=1 e calcule os tempos de processamento artificiais p 1j e p 2j para as máquinas M1 e M2, respectivamente, de todas as atividades. Faça k=k+1. Fase de Construção da Solução Passo 3: Aplique a Regra de Johnson para o estágio k utilizando os tempos de processamento p 1j e p 2j do passo 2. Passo 4: Calcule o makespan da sequência obtida da fase 3. Passo 5: Se k m-1, repita o passo 2. Passo 6: Escolha a sequência que forneça o menor makespan como a solução para o problema. ILUSTRAÇÃO NUMÉRICA Passo1: Matriz n x m com os tempos de processamento p ij Tabela 3 - Tempos de processamento para a heurística CDS Tarefas (n) Máquinas (m) Passo2: Para k=1, calcula-se os tempos artificiais p 1j e p 2j.

56 55 Tabela 4 - Tempo de processamento para k=1 Máquinas (m) k=1 M 1 M Tarefas (n) Faz-se k = k +1 = 2. Passo3: Aplicando-se a Regra de Johnson para m =2, obtém-se a seguinte sequência: Passo4: Makespan: 618. Passo5: k = 2 m-1, logo retornar passo2. Passo2: Tabela 5 - Tempo de processamento para k=2 Máquinas (m) k=2 M 1 M Tarefas (n) Faz-se k = k +1 = 3. Passo3: Aplicando-se a Regra de Johnson para m =2, obtém-se a seguinte sequência:

57 56 Passo4: Makespan: 628. Passo5: k = 3 m-1, logo fazer passo2. Este processo se repete até k=6, e como resumo, obtém-se a seguinte tabela: Tabela 6 - Quadro resumo até a k-ésima sequência k-ésima Seq. Sequência Makespan A sexta sequência encontrada apresenta o menor makespan, por isto esta sequência é selecionada: com makespan = 595. Figura 4 - Gráfico de Gantt da sequência obtida utilizando o método CDS Dannenbring (1977) Dannenbring desenvolveu um procedimento chamado Rapid Access (RA), que tenta combinar as vantagens do slope index de Palmer com o método CDS. Ao invés de resolver (m-1) problemas artificiais de duas máquinas, o método RA resolve apenas um problema artificial utilizando a Regra de Johnson, no qual os tempos de processamento são determinados a partir de esquema de ponderação, como mostrado a seguir:

58 57 ( ) ( ) Assim, para um problema de 3 máquinas, tem-se: Fase de Melhoramentos Dannenbring Heurística RACS (Rapid Access with Close Order Search) Dannenbring (1977) observou que em muitos casos uma simples transposição de tarefas adjacentes de uma sequência obtida através da heurística RA poderia trazer soluções ótimas. Por essa razão, ele sugeriu um processo de melhoria de 1-estágio. Os vizinhos da solução gerada pelo método RA são definidos como todas as possíveis combinações de sequências que se pode formar a partir da transposição de um par de tarefas adjacentes. Cada uma dessas (n -1) possíveis sequências (vizinhos) é avaliada com o objetivo de se obter o menor makespan. Heurística RAES (Rapid Access with Extensive Search) Ao invés de finalizar a busca após um conjunto de sequências testadas no método RACS, o RAES utiliza o vizinho imediatamente encontrado para gerar outro vizinho com um makespan menor. Este processo continua até que novas soluções com makespan minimizados sejam encontrados e todas as combinações sejam testadas Nawaz, Enscore e Ham (1983) O algoritmo NEH é baseado na premissa de que uma tarefa cuja soma dos seus tempos de processamento em todas as máquinas seja maior deve receber maior prioridade quando comparado a uma tarefa cuja soma de seus tempos seja menor. Partindo desta premissa, duas tarefas que apresentam as maiores somas de seus tempos de processamento são selecionadas a partir do conjunto de n tarefas. A melhor sequência encontrada a partir dessas duas tarefas tendo como critério a minimização do makespan é selecionada. Esta melhor sequência é encontrada a partir de uma busca

59 58 exaustiva, isto é, considerando as duas possíveis sequências. A posição relativa dessas duas tarefas em relação às outras é fixada nas etapas seguintes do algoritmo. Em seguida, a terceira tarefa com a maior soma de seus tempos de processamento é selecionada e as três sequências parciais são testadas, onde esta tarefa é posicionada no início, no meio e na última posição da sequência parcial encontrada na primeira etapa. A melhor sequência parcial encontrada fixará a posição relativa dessas três tarefas nas etapas seguintes. Este processo é repetido até que todas as tarefas estejam fixadas e a sequência completa seja encontrada. O número de sequências parciais e completas testadas neste algoritmo é dado por: ( ) A seguir será apresentado o passo-a-passo do procedimento NEH: Fase de Desenvolvimento Passo1: Para cada tarefa i, calcule o tempo total de processamento das tarefas, dado por: Onde é o tempo de processamento da tarefa i na máquina j. Passo2: Classifique as tarefas segundo a ordem não-crescente de. Fase de Construção da Solução Passo3: Escolha as duas tarefas que ocupam a primeira e a segunda posição do sequenciamento inicial encontrado no passo2, e encontre a melhor sequência para essas duas tarefas calculando o menor makespan para as duas sequências possíveis. Uma vez encontrada a melhor sequência parcial com duas tarefas, fixe a posição relativa dessas duas tarefas em relação às outras tarefas nos próximos passos do algoritmo. Faça i=3. Passo4: Selecione a tarefa da i-ésima posição do sequenciamento do passo2 e encontre a melhor sequência colocando-a em todas as i posições possíveis da sequência parcial encontrada até o passo anterior, e não trocando as posições relativas das tarefas encontradas até o momento. O número de tentativas possíveis neste passo é igual a i.

60 59 Passo5: Se n=i, pare. Caso contrário, faça i=i+1 e retorne ao passo4. ILUSTRAÇÃO NUMÉRICA Para ilustrar o procedimento descrito acima, será resolvido o problema dado na Tabela 7, de 4 tarefas e 5 máquinas. Tabela 7 - Tempos de processamento para a heurística NEH Tarefas (n) Máquinas (m) Passo1: T 1 = = 33 T 2 = = 31 T 3 = = 32 T 4 = = 29 Passo2: Ordem não-crescente de : 1, 3, 2, 4 Passo3: Escolhe-se as tarefas 1 e 3, e encontra-se a melhor sequência parcial para essas duas tarefas. Sequência parcial 1-3 makespan = 46: Figura 5 - Gráfico de Gantt da sequência parcial obtida J1 - J3 Sequência parcial 3-1 makespan = 42:

61 60 Figura 6 - Gráfico de Gantt da sequência parcial obtida J3 - J1 Portanto, escolhe a posição relativa 3, 1 para os próximos passos. Faça i=3. Passo4: Escolha a tarefa da terceira posição do sequenciamento do passo2 (tarefa 2) e encontre a melhor sequência parcial posicionando esta tarefa na melhor posição possível na sequencia parcial 3-1 obtido na etapa anterior. Sequência parcial makespan = 50: Figura 7 - Gráfico de Gantt da sequência parcial obtida J3 - J1 - J2 Sequência parcial makespan = 51: Figura 8 - Gráfico de Gantt da sequência parcial obtida J3 - J2 - J1 Sequência parcial makespan = 51:

62 61 Figura 9 - Gráfico de Gantt da sequência parcial obtida J2 - J3 - J1 Como verificado, a sequência parcial é a melhor, com makespan = 50. Passo5: i n, logo i = 3+1 = 4, e volte para o passo4. Passo4: Escolha a tarefa que ocupa a quarta posição do sequenciamento do passo2 (tarefa 4) e encontre a sequência ótima ao mover a tarefa 4 em todas as quatro posições possíveis na sequência parcial encontrada até agora, Sequência makespan = 58: Figura 10 - Gráfico de Gantt da sequência obtida J3 - J1 - J2 - J4 Sequência parcial makespan = 58: Figura 11 - Gráfico de Gantt da sequência obtida J3 - J1 - J4 - J2 Sequência parcial makespan = 57:

63 62 Figura 12 - Gráfico de Gantt da sequência obtida J3 - J4 - J1 - J2 Sequência parcial makespan = 54: Figura 13 - Gráfico de Gantt da sequência obtida J4 - J3 - J1 - J2 Passo5: i = n. Logo, pare. Este problema foi resolvido encontrando-se um makespan ótimo ao avaliar todas as n! = 24 sequências e a sequência é ótima. O algoritmo NEH realizou 9 testes das quais quatro foram sequências completas e cinco sequências parciais Moccellin (1995) Moccellin (1995) propôs um método heuristico denominado FSHOPH (Flowshop Heuristic), similar ao procedimento SPIRIT, proposto por Widmer e Hertz (1991). Moccellin também utiliza uma analogia com o problema do caixeiro viajante, porém apresenta algumas diferenças em relação ao SPIRIT, porém no que tange à distância entre duas tarefas a expressão utilizada é totalmente diferente daquela formulada por Wildmer e Hertz (Gigante, 2010). Para uma sequência S qualquer de n-tarefas em operações programação de operações flowshop permutacional, o makespan M(S) pode ser calculado por: ( ) [ ] [ ] ( ) Onde:

64 63 tempo de processamento da j-ésima tarefa na última máquina, da sequência S. intervalo de tempo entre o término da operação da j-ésima tarefa e o início da operação da (j + 1)-ésima tarefa na sequência S. tarefa fictícia com tempo de processamento igual a zero e que ocupa sempre a primeira posição na sequência. Se [ ] [ ] for considerado a distância entre a j-ésima e a (j+1)-ésima tarefa de S, então o problema de programação de flowshop permutacional se torna um legítimo problema de caixeiro viajante. A sequência S x que minimiza o makespan M(S) é dado pela menor rota a partir da tarefa fictícia (j = 0) até a última tarefa (j = n). Entretanto, vale ressaltar que não é possível saber os tempos ociosos [ ] [ ], pois estes dependem da sequência particular que for considerada. Desta forma, as distâncias entre as tarefas devem ser estimadas a partir dos dados do problema, isto é, dos tempos de processamento das tarefas, de maneira que a solução do problema do caixeiro viajante corresponda a uma solução heurística do problema original de programação de operações. Na heurística FSHOPH proposta por Moccellin, a distância entre duas tarefas é baseada na seguinte propriedade do problema de operação de flowshop permutacional. Seja u e v duas tarefas arbitrárias de um conjunto de n tarefas. Para qualquer sequência S que contenha as tarefas u e v ocupando respectivamente as posições j e (j+1), j = 1, 2,..., n 1, tem-se: [ ( )] ( ) Onde: limitante superior de (intervalo de tempo entre o término da operação da tarefa que ocupa a j-ésima posição na sequência S e o início da operação da tarefas que ocupa a posição j+1, na máquina h. tempo de processamento da tarefa i na máquina h.

65 64 A partir das equações (1) e (2), para uma sequência qualquer S de n tarefas, o limitante superior do seu makespan M(S) pode ser calculado por: ( ) [ ] [ ] Se considerar [ ] [ ] como a distância entre as tarefas que ocupam as posições j e (j+1), então o problema original de programação de flowshop permutacional pode ser heuristicamente resolvido por analogia direta com o Problema do Caixeiro Viajante, pela fórmula: ( ( )) Onde é um limitante superior do tempo de espera, na última máquina, entre as operações das tarefas de u e v. No primeiro passo da heurística FSHOPH, a distância da tarefa u até a tarefa v é dada por e então é buscado a rota (sequência) que minimize o limitante superior UB M(S). Para encontrar uma boa solução para o problema do caixeiro viajante, pode-se utilizar por exemplo o conhecido procedimento Farthest Insertion Travelling Salesman Procedures (FITSP). O segundo passo da heurística é a aplicação da Busca Tabú visando melhorar a solução obtida até o momento Kalczynski e Kamburowski (2008) Kalezynski e Kamburowski (2008) propuseram um novo método heurístico construtivo denominado NEHKK, baseado na heurística NEH, tido como a melhor heurística com o objetivo de minimizar o makespan em ambientes flowshop permutacional. A heurística NEH permite no passo3 a possibilidade de inserção de tarefas em qualquer posição, desde que sejam respeitadas as posições relativas das tarefas já inseridas na sequência parcial. No entanto, esta possibilidade pode causar uma queda de eficiência da heurística para problemas em que ocorrem empates (ties) ao se medir o makespan. A heurística NEHKK propõe um novo algoritmo visando eliminar este problema para quando ocorre empates, descrito a seguir:

66 65 Fase de Desenvolvimento Passo1: Calcule, e coloque em ordem não-crescente; Fase de Construção da Solução Passo2: Selecione as duas primeiras tarefas da ordenação, sequenciando-as de maneira a minimizar o makespan, e faça ( [ ] [ ]). Passo3: Insira a próxima tarefa r, da ordenação, na primeira posição da sequência parcial e assuma que a sequência atual seja ( [ ] [ ] [ ]), e faça Para de 2 até n, faça: Teste r na posição de π e avalie de acordo com o seguinte critério: SE o makespan ( ) ( ) OU SE ( ) ( ) E ( ) ( ) Então faça e. ILUSTRAÇÃO NUMÉRICA Para ilustrar a heurística NEHKK, será resolvido um problema de n=10 tarefas, m=5 máquinas utilizando tal heurística, de acordo com a Tabela 8. Tabela 8 - Tempos de processamento para o método NEHKK Tarefas (n) Máquinas (m) (4º) (2º) (5º) (3º) (1º) Passo1: Sequência inicial de acordo com a ordem não-crescente { } Passo2: Selecione as duas primeiras tarefas da ordenação, sequenciando-as de maneira a minimizar o makespan:

67 66 Sequência parcial { } makespan = 434: Figura 14 - Gráfico de Gantt da sequência parcial obtida J5 - J2 Sequência parcial { } makespan = 425: Figura 15 - Gráfico de Gantt da sequência parcial obtida J2 - J5 Portanto a sequência parcial escolhida é { }. Passo3: Insira a próxima tarefa r da sequência inicial do passo1, avaliando possíveis empates. Para, faça e { }. ( ) Figura 16 - Gráfico de Gantt da sequência parcial obtida J4 - J2 - J5 para e { }. ( ) ( )

68 67 Figura 17 - Gráfico de Gantt da sequência parcial obtida J2 - J4 - J5 Tiebreaking: ( ) ( ) Portanto: { } para e { }. ( ) Figura 18 - Gráfico de Gantt da sequência parcial obtida J2 - J5 - J4 Como ( ) ( ), { } Próxima tarefa. Para, faça e { }. ( )

69 68 Figura 19 - Gráfico de Gantt da sequência parcial obtida J1 - J2 - J4 - J5 para e { }. ( ) ( ) Figura 20 - Gráfico de Gantt da sequência parcial obtida J2 - J1 - J4 - J5 Tiebreaking: ( ) ( ) Portanto: { } para e { }. ( ) Figura 21 - Gráfico de Gantt da sequência parcial obtida J2 - J4 - J1 - J5

70 69 Como ( ) ( ), { } para e { }. ( ) Figura 22 - Gráfico de Gantt da sequência parcial obtida J2 - J4 - J5 - J1 Como ( ) ( ), { } Próxima tarefa. Para, faça e { } ( ) Figura 23 - Gráfico de Gantt da sequência obtida J3 - J1 - J2 - J4 - J5 para e { }. ( ) ( )

71 70 Figura 24 - Gráfico de Gantt da sequência obtida J1 - J3 - J2 - J4 - J5 Tiebreaking: ( ) ( ) Portanto: { } para e { }. ( ) ( ) Figura 25 - Gráfico de Gantt da sequência obtida J1 - J2 - J3 - J4 - J5 Tiebreaking: ( ) ( ) Portanto: { } para e { }. ( ) ( )

72 71 Figura 26 - Gráfico de Gantt da sequência obtida J1 - J2 - J4 - J3 - J5 Tiebreaking: ( ) ( ) Portanto: { } para e { }. ( ) Figura 27 - Gráfico de Gantt da sequência obtida J1 - J2 - J4 - J5 - J3 Como ( ) ( ), { } Portanto, utilizando a heurística NEHKK, a sequência encontrada foi { } com um makespan ( ) Comparando com a heurística NEH, onde a decisão da posição de tarefas em caso de empates é arbitrária, a sequência encontrada também foi { } e ( ) Porém para um caso com mais atividades, como a exemplificada na Tabela 9, nota-se a superioridade na heurística NEHKK:

73 72 Tabela 9 - Tempos de processamento 10 tarefas - heurística NEHKK Tarefas (n) Máquinas (m) (8º) (4º) (2º) (9º) (7º) (5º) (10º) (6º) (3º) (1º) Utilizando a heurística NEH-KK, a sequência obtida foi { }, cujo makespan foi ( ) Figura 28 - Gráfico de Gantt da sequência obtida J4 - J5 - J6 - J8 - J2 - J3 - J9 - J10 - J1 - J7 E ao utilizar a heurística NEH, verificou-se um desempenho inferior, com uma sequência obtida de { }, e um makespan de ( ) Figura 29 - Gráfico de Gantt da sequência obtida J4 - J8 - J6 - J2 - J9 - J3 - J10 - J7 - J5 - J1

74 Dong, Huang e Chen (2009) Como é sabido, a heurística NEH serviu de base para muitas outras heurísticas construtivas do tipo F m /prmu/c max. O NEH é constituído de duas fases: primeiramente as tarefas são ordenadas em ordem não-crescente da soma de seus tempos de processamento; em seguida, uma sequência de tarefas é construída inserindo tarefas oriundas da ordenação inicial proveniente da fase I avaliando o menor makespan. Durante a inserção de tarefas na fase II da heurística NEH, podem ocorrer empates (ties), isto é, podem haver várias sequências parciais que resultem no mesmo makespan. Porém, o algoritmo original NEH não possui uma estratégia para resolver estes empates. Considerando a complexidade do problema, pode-se concluir que não existe nenhuma estratégia sequer que consiga resolver estes casos otimamente, porém pode-se melhorar os resultados utilizando estratégias tie-breaking para os casos de empates. Considerando esta hipótese, Dong, Huang e Cheng (2008) propuseram a heurística NEH-D, que se diferencia da NEH ao apresentar uma estratégia de desempate visando otimizar o makespan, que será detalhado a seguir. Primeiramente, algumas notas são definidas. Para uma sequência qualquer π, considere: π(x) a tarefa que ocupe a posição x da sequência π; ( ) denota o tempo de processamento de π(x) na máquina i. ( ) denota a data mais cedo de conclusão da tarefa π(x) na máquina i. ( ) denota a data mais tarde de início da tarefa π(x) na máquina i. Como regra de prioridade que será utilizada para a ordenação inicial das tarefas, são utilizadas as médias e desvios padrão dos tempos de processamento de cada tarefa. Esta regra de prioridade é baseada na seguinte consideração: quanto maior o desvio dos tempos de processamento de uma tarefa em cada máquina, maior prioridade esta deve ter. ( )

75 74 ( ) ( ) [ ( ) ] ( ) Calculados a média e o desvio padrão de todas as tarefas, encontre o sequenciamento inicial da fase I ordenando em ordem não-crescente a soma tarefa π(x): Para os casos de empate, são utilizados dois fatores pare efeitos de desempate da ( ) ( ) ( ) ( ) e ( ) ( ) ( ( ) ( ) ( ) ( )) ( ) Note que pode haver algumas exceções. Seja ( ) igual a data mais tarde de término da tarefa π(x) na máquina i caso π(x) seja a última tarefa na sequência parcial; seja ( ) igual a data mais cedo possível de início da tarefa π(1) na máquina i; se ( ) ( ), para todas essas hipóteses, considere ( ), e assim ( ) ( ) ( ) neste caso. Com isso, ao inserir uma tarefa na sequência parcial, a posição que resultar no menor makespan é escolhida. Caso existam empates, a posição x que minimize escolhida. Caso o empate ainda persista, qualquer uma dessas posições é aceitável. A ideia base deste procedimento é a utilização da posição que resulte no balanceamento da utilização de cada máquina. A heurística NEH-D é assim explicitada: ( ) é

76 75 Fase de Desenvolvimento Passo1: Calcule e dos tempos de processamento de cada tarefa j. Ordene as tarefas em ordem não-crescente da soma Fase de Construção da Solução Passo2: Selecione a primeira tarefa da sequência inicial do passo1 e insira na sequência parcial. Passo3: Para k =2, 3,..., n, insira a k-ésima tarefa nas k posições possíveis, escolhendo aquela que minimize o makespan. Caso ocorram empates, a posição x que minimize ( ) é escolhida. ILUSTRAÇÃO NUMÉRICA Para ilustrar o procedimento descrito acima, será resolvido um problema de 4 máquinas, 5 tarefas. Os tempos de processamento para cada tarefa estão descritos na Tabela 10 Tabela 10 - Tempos de processamento heurística NEH-D Tarefas (n) Máquinas (m) ,0 2,2 8,2 (2º) ,8 1,7 7,5 (3º) ,0 1,8 5,8 (5º) ,5 2,4 6,9 (4º) ,3 3,0 9,2 (1º) ,0 2,7 5,7 (6º) Passo1: Ordem não-crescente da soma : Passo2: Sequência parcial: { }. Passo3: k=2. Próxima tarefa: Sequência parcial 1-5 makespan = 31

77 76 Figura 30 - Gráfico de Gantt da sequência obtida J1 - J5 Sequência parcial 5-1 makespan = 37 Figura 31 - Gráfico de Gantt da sequência obtida J5 - J1 Portanto { } ( ). k=3. Próxima tarefa: Sequência parcial makespan = 39 Figura 32 - Gráfico de Gantt da sequência obtida J2 - J1 - J5 Sequência parcial makespan = 37 Figura 33 - Gráfico de Gantt da sequência obtida J1 - J2 - J5

78 77 Sequência parcial makespan = 39 Figura 34 - Gráfico de Gantt da sequência obtida J1 - J5 - J2 Portanto { } ( ). k=4. Próxima tarefa: Sequência parcial makespan = 39 Figura 35 - Gráfico de Gantt da sequência obtida J4 - J1 - J2 - J5 Sequência parcial makespan = 42 Figura 36 - Gráfico de Gantt da sequência obtida J1 - J4 - J2 - J5 Sequência parcial makespan = 42 Figura 37 - Gráfico de Gantt da sequência obtida J1 - J2 - J4 - J5

79 78 Sequência parcial makespan = 47 Figura 38 - Gráfico de Gantt da sequência obtida J1 - J2 - J5 - J4 Portanto { } ( ). k=5. Próxima tarefa: Sequência parcial makespan = 43 Figura 39 - Gráfico de Gantt da sequência obtida J3 - J4 - J1 - J2 - J5 Sequência parcial makespan = 43 Figura 40 - Gráfico de Gantt da sequência obtida J4 - J3 - J1 - J2 - J5 Sequência parcial makespan = 43 Figura 41 - Gráfico de Gantt da sequência obtida J4 - J1 - J3 - J2 - J5

80 79 Sequência parcial makespan = 43 Figura 42 - Gráfico de Gantt da sequência obtida J4 - J1 - J2 - J3 - J5 Sequência parcial makespan = 47 Figura 43 - Gráfico de Gantt da sequência obtida J4 - J1 - J2 - J5 - J3 Portanto, o menor makespan encontrado foi de 43, ocorrendo empates em 4 casos: Posição x=1: { }; ( ) ( ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ) ( ) ( ) ( ) ( ( )) ( ( )) ( ( )) ( ( )) Posição x=2: { }; ( ) ( ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) )

81 80 ( ) ( ) ( ) ( ( )) ( ( )) ( ( )) ( ( )) Posição x=3: { }; ( ) ( ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ) ( ) ( ) ( ) ( ( )) ( ( )) ( ( )) ( ( )) 0,2617 Posição x=4: { }. ( ) ( ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ) ( ) ( ) ( ) ( ( )) ( ( )) ( ( )) ( ( )) ( ) ( ) ( ) ( )

82 81 Portanto, { } ( ). k=6. Próxima tarefa: Sequência parcial makespan = 48 Figura 44 - Gráfico de Gantt da sequência obtida J6 - J3 - J4 - J1 - J2 - J5 Sequência parcial makespan = 50 Figura 45 - Gráfico de Gantt da sequência obtida J3 - J6 - J4 - J1 - J2 - J5 Sequência parcial makespan =50 Figura 46 - Gráfico de Gantt da sequência obtida J3 - J4 - J6 - J1 - J2 - J5

83 82 Sequência parcial makespan = 50 Figura 47 - Gráfico de Gantt da sequência obtida J3 - J4 - J1 - J6 - J2 - J5 Sequência parcial makespan = 50 Figura 48 - Gráfico de Gantt da sequência obtida J3 - J4 - J1 - J2 - J6 - J5 Sequência parcial makespan = 49 Figura 49 - Gráfico de Gantt da sequência obtida J3 - J4 - J1 - J2 - J5 - J6 Portanto, { } ( ) é a sequencia final escolhida Rad, Ruiz e Boroojerdian (2009) Rad, Ruiz e Boroojerdian (2009) propuseram uma série de heurísticas construtivas para minimização do makespan derivados da heurística NEH denominados FRB1, FRB2, FRB3, FRB4 e uma meta-heurística FRB5. Dentre estes procedimentos, a heurística FRB3 apresentou os melhores resultados, e portanto será detalhado a seguir.

84 83 Uma possível crítica do método NEH consiste no fato de que a partir do momento que uma tarefa é inserida na sequência parcial, a sua posição relativa em relação às tarefas já inseridas permanecem fixas. Quando se insere uma nova tarefa, muitas vezes é benéfico reconsiderar a ordem das tarefas já inseridas para melhor acomodar a nova tarefa a ser inserida. O método FRB3 é detalhada a seguir: Fase de Desenvolvimento Passo1: Calcule, e coloque em ordem não-crescente de, e faça π Fase de Construção da Solução Passo2: Para até n, testar a tarefa h da sequência do passo1 de em todas as possíveis posições de π, e inserir na posição com o menor makespan. Passo2.1: Para até l retire a tarefa da sequência π do passo2, e teste em todas as posições possíveis. Assuma π a sequência com o menor makespan. ILUSTRAÇÃO NUMÉRICA Para ilustrar o procedimento descrito acima, será resolvido um problema de 4 máquinas, 5 tarefas. Os tempos de processamento para cada tarefa estão descritos na Tabela 11. Tabela 11 Tempos de processamento heurística FRB3 Tarefas (n) Máquinas (m) (1º) (3º) (4º) (5º) (2º) Passo1: Soma dos tempos de processamento e ordenação seguindo a ordem nãocrescente, que resulta na sequência. { }

85 84 Passo2: Sequência parcial: { }. Inserindo a próxima tarefa h do passo1. -tarefa h: Sequência parcial 5-1 makespan = 26: Figura 50 - Gráfico de Gantt da sequência parcial obtida J5 - J1 Sequência parcial 1-5 makespan = 28: Figura 51 - Gráfico de Gantt da sequência parcial obtida J1 - J5 Portanto { } ( ). Passo2.1: { } ( ) { } ( ) { } ( ) { } ( ) Portanto: { } ( ) Passo2: Inserindo a próxima tarefa de. tarefa h: Sequência parcial makespan = 33:

86 85 Figura 52 - Gráfico de Gantt da sequência parcial obtida J2 - J5 - J1 Sequência parcial makespan = 34: Figura 53 - Gráfico de Gantt da sequência parcial obtida J5 - J2 - J1 Sequência parcial makespan =33: Figura 54 - Gráfico de Gantt da sequência parcial obtida J5 - J1 - J2 Portanto { } ( ). Passo2.1: { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( )

87 86 Portanto: { } ( ) Passo2: Inserindo a próxima tarefa de. tarefa h: Sequência parcial makespan = 41: Figura 55 - Gráfico de Gantt da sequência parcial obtida J3 - J2 - J1- J5 Sequência parcial makespan = 41: Figura 56 - Gráfico de Gantt da sequência parcial obtida J2 - J3 - J1- J5 Sequência parcial makespan = 41: Figura 57 - Gráfico de Gantt da sequência parcial obtida J2 - J1- J3 - J5 Sequência parcial makespan = 35: Figura 58 - Gráfico de Gantt da sequência parcial obtida J2 - J1- J5- J3

88 87 Portanto { } ( ). Passo2.1: { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) Portanto: { } ( ) Passo2: Inserindo a próxima tarefa de. tarefa h: Sequência parcial makespan = 38: Figura 59 - Gráfico de Gantt da sequência obtida J4- J2 - J1- J5 - J3

89 88 Sequência parcial makespan = 41: Figura 60 - Gráfico de Gantt da sequência obtida J2 - J4 - J1- J5 - J3 Sequência parcial makespan = 42: Figura 61 - Gráfico de Gantt da sequência obtida J2 - J1- J4- J5 - J3 Sequência parcial makespan = 45: Figura 62 - Gráfico de Gantt da sequência obtida J2 - J1- J5 - J4 - J3 Sequência parcial makespan = 47: Figura 63 - Gráfico de Gantt da sequência obtida J2 - J1- J5 - J3 - J4

90 89 Portanto { } ( ). Passo2.1: { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( ) { } ( )

91 90 Portanto: { } ( ) Figura 64 - Gráfico de Gantt da sequência obtida pelo método FRB HEURÍSTICAS COMPOSTAS Ho e Chang (1991) O algoritmo de Ho e Chang (HC) parte da ideia de que para minimizar o makespan, basta reduzir os gaps existentes entre a última tarefa da primeira máquina com as últimas das máquinas seguintes. Seja k a última tarefa da máquina M1 e seja gap1 o tempo decorrente entre o término da tarefa k da máquina M1 e o início da tarefa k na máquina M2. Similarmente, o tempo decorrido entre o término da tarefa k na máquina 2 e o início da tarefa k na máquina M3 seja denominado gap3. Assim, para um problema n/3, o makespan pode ser calculado por: ( ) (8) Isto pode ser ilustrado pela Figura 65. M1 job1 job2 job3 job4 gap1 M2 job1 job2 job3 job4 gap2 M3 job1 job2 job3 job4 t k2 t k3 Figura 65 - Componentes do Makespan

92 91 Desde que os três primeiros termos da equação (8) são constantes, a minimização do makespan é possível pela minimização da soma do gap1 e gap2. A heurística de Ho e Chang tem por objetivo minimizar estes gaps. Visando buscar capturar a essência destes gaps, a heurística utiliza-se das seguintes diferenças: ( ) Se a tarefa i precede a tarefa j na sequência, então caso que a tarefa j precise esperar na máquina k + 1 pelo menos seja positivo implica até que a tarefa i seja finalizada. Caso seja negativo, isto implica que existe um tempo ocioso de entre as tarefa i e j na máquina k + 1. Por exemplo, para gap1 e gap2, que são respectivamente e, são positivos na Figura x. No entanto, é negativo na Figura 1 e isso significa que há tempo ocioso entre as tarefas 2 e 3 na máquina 3. Com o objetivo de minimizar os gaps, deve-se posicionar os pares de tarefas com os gaps mais negativos mais próximos do final da sequência. Os valores negativos mais próximos do final auxiliam na redução de valores positivos acumulados nas primeiras posições da sequência, enquanto que os valores negativos quando próximos do começo na sequência apresenta uma alta probabilidade de serem lixos (isto é, tornarem-se tempo ocioso). Similarmente, deve-se posicionar os pares de tarefas com os maiores gaps positivos próximos do começo, pois há maiores probabilidades de compensar com gaps negativos nas tarefas posteriores. Antes de combinar, define-se um novo fator, o fator(k), para descontar os valores negativos: ( ) ( ) para k =1, 2,..., M-1 (10) Baseado neste fator, define-se a função desconto como: ( ) { } Para i, j = 1, 2,..., n e k = 1, 2,..., M-1

93 92 Ao combinar todos os com os fatores de desconto, obtém-se os gaps revisados : ( ) Para i, j = 1, 2,..., n. Baseado nos gaps revisados, a heurística de Ho e Chang é calculada de acordo com o seguinte algoritmo: Fase de Desenvolvimento Passo1: Aplique a heurística CDS para obter uma solução inicial, chamada de solução incumbente; Fase de Construção da Solução Passo2: Encontre os valores revisados de ; Passo3: Seja l (l =1, 2,..., n) as posições da solução incumbente e a posição l. Faça a = 1 e b = n. a tarefa que ocupa Passo4: Encontre o maior valor de ( de a e b. Seja u a posição de l associado a X. ) denominado X, onde l está entre os valores Passo5: Encontre o menor valor de ( ) denominado Y, onde l está entre os valore de a e b. Seja v a posição de l associado a Y. Passo6: Se (X<0), (Y>0), e ( X Y ), então vá para o passo9; Passo7: Se (X<0), (Y>0), e ( X > Y ), então vá para o passo10; Passo8: Se ( X > Y ), então vá para o passo9. Caso contrário, vá para o passo10. Passo9: Faça a=a +1, e troque as posições das tarefas cujas posições sejam a e u. Vá para o passo11; Passo10: Fala b=b-1, e troque as posições das tarefas cujas posições sejam b e v.

94 93 Passo11: Se a nova sequência for melhor que a solução incumbente em termos de performance, esta passa a ser a nova solução incumbente. Caso contrário, retorne a solução incumbente inicial; Passo12: Se b = a + 2, finalize. Senão, volte para o passo4. ILUSTRAÇÃO NUMÉRICA Para ilustrar o procedimento descrito acima, será resolvido o problema de 4 máquinas, 5 tarefas. Os tempos de processamento para cada tarefa estão na Tabela 12. Tabela 12 - Tempos de Processamento heurística HC Tarefas (n) Máquinas (m) Passo1: Utilizando a heurística CDS, encontra-se a sequência { }, com um makespan de 246. Figura 66 - Gráfico de Gantt da sequência obtida J4 - J2 - J1 - J5 - J3 Passo2: Calcular os valores para : Utilizando a equação (2), obtém-se os gaps,, mostrados nas tabelas

95 94 Tabela 13 - Cálculo do gap d 1 ij Tabela 14 - Cálculo do gap d 2 i.j Tabela 15 - Cálculo do gap d 3 i,j Pela equação (10), temos: ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) Pela equação (11), podemos computar os gaps ajustados,, mostrados na Tabela 16.

96 95 Tabela 16 - Gaps ajustados d R i,j ,5 11, ,3 2 12,1-17,6 51,6 18,6 3 1,4 10,6-33,2 25, , , , Passo3: Seja l (l =1, 2, 3, 4, 5); a=1 e b=5; Passo 4: A partir da tabela 15, o valor de X, isto é, o maior valor de = -6,40, para l=4. Logo u=4. Passo5: O menor valor Y de é igual a -380, para l = 4. Logo v = 4. Como tanto X como Y são negativos, vá para o passo8. Passo9: a = a + 1 = 2. Troque de posição as tarefas (tarefa 2) e (tarefa 5). Passo11: A nova sequência, portanto, será { }. Figura 67 - Gráfico de Gantt da sequência obtida J4 - J5 - J1 - J2 - J3 Porém esta sequência apresenta makespan = 248 (>246). Portanto mantém-se a solução incumbente inicial, { }. Passo12: Como a = 2, b = 5, e b a + 2, volte para a etapa 4. Passo4: A partir da tabela 500, o maior valor X de, onde l é a posição entre a (=2) e b (= 5), é 18,60, para l = 4 e portanto, u = 4.

97 96 Passo5: O menor valor Y de l = 4 e portanto, v = 4., onde l é a posição entre a (=2) e b (= 5), é -3,80, para Como X é positivo e Y é negativo, vá para o passo8. Passo9: a = a + 1 = 3. Troque de posição as tarefas (tarefa1) e (tarefa 5). Passo11: A nova sequência portanto será { }. Esta sequência apresenta um makespan de 213 (< 246), portanto esta sequência passa a ser a nova incumbente. Passo12: Como a = 3, b = 5, e b = a + 2, esta heurística se finaliza com a sequência encontrada { } e makespan 213. Figura 68 - Gráfico de Gantt da sequência obtida J4 - J2 - J5 - J1 - J Nagano e Moccellin (2002) Nagano e Moccellin (2002) propuseram uma heurística construtiva denominada N&M onde há uma mudança apenas na fase de ordenação inicial em relação ao NEH (1983). Para esta heurística, foi utilizada uma importante propriedade para problemas de sequenciamento em ambientes flowshop, descrita a seguir: Para uma sequência σ qualquer com n tarefas, o makespan M(σ) (Figura 69) pode ser expressado por: ( ) ( )

98 97 onde o tempo de processamento da j-ésima tarefa na máquina k da sequência ; o tempo de espera da tarefa que ocupa a posição j de, entre o final da operação na máquina k e o começo da operação na máquina (k + 1). Por lógica, não se pode conhecer o tempo de espera a menos que seja considerada uma sequência específica de tarefas. Entretanto, dado um par arbitrário de tarefas adjacentes ( ) onde precede imediatamente, pode-se calcular o limitante inferior do tempo de espera para a tarefa entre o final de sua operação na máquina k e começo da operação na máquina seguinte (k + 1), não importando a posição destas duas tarefas na sequência. Figura 69 - Tempo total para executar uma programação permutacional (Makespan M(σ)) Baseado em uma investigação feita por Nagano, pode ser afirmado que: Seja u e v duas tarefas de um conjunto de n tarefas. Para uma sequência qualquer σ contendo as tarefas u e v ocupando respectivamente as posições j e (j + 1), j=1, 2,..., n 1, tem-se: [ ( ) ] ( ) Onde: um limitante inferior para ;

99 98 tempo de espera para a tarefa v entre o final de sua operação na máquina k e o início da operação na máquina (k +1), onde a tarefa u precede imediatamente a tarefa v; tempo de processamento da tarefa v na máquina k; um limitante superior para (MOCCELLIN, 1995), dado por: [ ( )] : tempo ocioso da máquina k entre o término do processamento da tarefa u e o começo da tarefa v. A propriedade descrita acima, chamada LBY, está ilustrada na Figura 70. Ela é derivada da condição de viabilidade entre máquina e tempos ociosos das tarefas em problemas de operações em flowshop, dado por (Figura 69): a) e b) Se então, onde a tarefa t é precedente imediato da tarefa u. A heurística N&M é muito similar à heurística NEH. A única diferença entre esta e aquela está no modo como é realizada a ordenação inicial das tarefas, que ocorre nos passos 1 e 2. Veja: Figura 70 - Demonstração da propriedade LBY

100 99 Fase de Desenvolvimento Passo1: Para cada tarefa v, calcule: Onde { } Onde tempo de processamento da tarefa v na máquina k, n = número de tarefas, m = número de máquinas e o limitante inferior para, dado pela expressão (3). Passo2: Organize as tarefas de acordo com a ordem decrescente de. Os passos seguintes são idênticos aos passos do NEH. Fase de Construção da Solução Passo3: Escolha as duas tarefas que ocupam a primeira e a segunda posição do sequenciamento inicial encontrado no passo2, e encontre a melhor sequência para essas duas tarefas calculando o menor makespan para as duas sequências possíveis. Uma vez encontrada a melhor sequência parcial com duas tarefas, fixe a posição relativa dessas duas tarefas em relação às outras tarefas nos próximos passos do algoritmo. Faça i=3. Passo4: Selecione a tarefa da i-ésima posição do sequenciamento do passo2 e encontre a melhor sequência colocando-a em todas as i posições possíveis da sequência parcial encontrada até o passo anterior, e não trocando as posições relativas das tarefas encontradas até o momento. O número de tentativas possíveis neste passo é igual a i. Passo5: Se n=i, pare. Caso contrário, faça i=i+1 e vá para o passo4.

101 100 ILUSTRAÇÃO NUMÉRICA Para ilustrar a heurística N&M, será utilizado um problema com n = 10 tarefas e m = 4 máquinas. Os tempos de processamento estão contidos na Tabela 17. Desde que n = 10 tarefas, tem-se um total de n(n 1 ) = 90 pares (u, v) de tarefas adjacentes, para os quais, deve ser calculados os limitantes inferiores para k =1, 2, 3. Seja o primeiro par (u, v) = (1, 2). Assim: [ ( ) ] Onde e [ ( )] Tabela 17 - Tempos de Processamento heurística N&M Tarefas (n) Máquinas (m) De acordo com os tempos de processamento da Tabela 1, tem-se: Para k =1 [ ( ) ] Onde Portanto [ ( ) ] = máx (0, 8) = 8; Para k =2 [ ( ) ] Onde [ ( )] Assim [ ( )] = máx (0, -8) = 0;

102 101 E portanto [ ( ) ] = máx (0, -1) = 0; Para k =3 [ ( ) ] Onde [ ( )] Assim [ ( )] = máx (0, 1) = 1; E portanto [ ( ) ] = máx (0, 4) = 4; Com isso, tem-se: Realizando este mesmo procedimento, deve-se encontrar para os pares restantes (u, v). Estes valores estão representados na matriz M1. [ ] Tendo a partir da tabela 1, e a matriz M1, calcula-se os índices para v = 1, 2,..., 9, 10:

103 102 Portanto, o arranjo inicial para as tarefas proposto pela heurística N&M é: Utilizando a heurística NEH, o arranjo inicial seria: sequência: Em seguida, após aplicar os passos 3 a 5, a heurística NEH resulta na seguinte (M=66) Figura 71 - Gráfico de Gantt da sequência obtida J2 J10 J1 J3 J5 J7 J8 J9 J4 J6 Para a heurística N&M, a sequência final é: (M=63)

104 103 Figura 72 - Gráfico de Gantt da sequência obtida J2 J8 J10 J7 J5 J9 J3 J1 J6 J4 4.3 QUADRO DE CLASSIFICAÇÃO Desta forma, as principais heurísticas construtivas voltadas para a minimização de makespan apresentam a seguinte classificação nas três fases propostas por Framinan, Gupta e Leinsten (2004) - Figura 73: Fase 1: desenvolvimento do índice Fase 2: construção da solução Fase 3: melhoramento da solução. O índice c na figura refere-se à fase construtiva da heurística em questão.

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

HEURÍSTICA CONSTRUTIVA PARA A PROGRAMAÇÃO DE OPERAÇÕES FLOW SHOP RODRIGO LUIZ GIGANTE HEURÍSTICA CONSTRUTIVA PARA A PROGRAMAÇÃO DE OPERAÇÕES FLOW SHOP PERMUTACIONAL Dissertação apresentada à Escola de Engenharia de São Carlos Universidade de São Paulo como parte dos

Leia mais

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

Soluções de alto desempenho para a programação da produção flow shop Soluções de alto desempenho para a programação da produção flow shop Marcelo Seido Nagano (EESC USP, SP, Brasil) drnagano@usp.br Av. Trabalhador Sãocarlense, 400, Centro, CEP: 13566-590, São Carlos-SP

Leia mais

Sistemas de Produção em Fluxo

Sistemas de Produção em Fluxo Uma introdução a problemas de sequenciamento em sistemas de produção em fluxo Faculdade de Ciências da Universidade do Porto 18 de Janeiro de 2012 Sumário Introdução Literatura (Makespan) Pesquisa Local

Leia mais

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

REDUÇÃO DO ESTOQUE EM PROCESSAMENTO EM SISTEMAS DE PRODUÇÃO FLOW SHOP REDUÇÃO DO ESTOQUE EM PROCESSAMENTO EM SISTEMAS DE PRODUÇÃO FLOW SHOP Marcelo Seido Nagano Departamento de Engenharia de Produção Escola de Engenharia de São Carlos, Universidade de São Paulo. Av. Trabalhador

Leia mais

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

Universidade de São Paulo Escola de Engenharia de São Carlos - EESC Departamento de Engenharia de Produção GUILHERME BARQUETE ZUCCOLOTTO Universidade de São Paulo Escola de Engenharia de São Carlos - EESC Departamento de Engenharia de Produção GUILHERME BARQUETE ZUCCOLOTTO ANÁLISE DA INFLUÊNCIA DOS TEMPOS DE PROCESSAMENTO EM HEURÍSTICAS

Leia mais

Prof. Fabrício Maciel Gomes Departamento de Engenharia Química Escola de Engenharia de Lorena EEL

Prof. Fabrício Maciel Gomes Departamento de Engenharia Química Escola de Engenharia de Lorena EEL Prof. Fabrício Maciel Gomes Departamento de Engenharia Química Escola de Engenharia de Lorena EEL Sequenciamento e Emissão de Ordens Escolhida uma sistemática de administração dos estoques, serão geradas,

Leia mais

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

COMPARAÇÃO ENTRE HEURÍSTICAS PARA AMBIENTES FLOW SHOP COM MINIMIZAÇÃO DO MAKESPAN COMPARAÇÃO ENTRE HEURÍSTICAS PARA AMBIENTES FLOW SHOP COM MINIMIZAÇÃO DO MAKESPAN Lázaro Antônio da Fonseca Júnior, Universidade Federal de Goiás, jrlazaro@ufg.br Lara Fernandes Gonçalves, Universidade

Leia mais

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

ESTÁGIOS DOMINANTES FLEXÍVEIS EM SISTEMAS DE PRODUÇÃO FLOW SHOP HÍBRIDOS ESTÁGIOS DOMINANTES FLEXÍVEIS EM SISTEMAS DE PRODUÇÃO FLOW SHOP HÍBRIDOS João Vitor Moccellin Departamento de Engenharia de Produção Escola de Engenharia de São Carlos, Universidade de São Paulo. Av. Trabalhador

Leia mais

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

PROGRAMAÇÃO DA PRODUÇÃO FLOW SHOP PERMUTACIONAL COM MINIMIZAÇÃO DO TEMPO MÉDIO DE FLUXO PROGRAMAÇÃO DA PRODUÇÃO FLOW SHOP PERMUTACIONAL COM MINIMIZAÇÃO DO TEMPO MÉDIO DE FLUXO Marcelo Seido Nagano Faculdade de Economia, Administração e Contabilidade, Universidade de São Paulo Av. dos Bandeirantes,

Leia mais

UNIVERSIDADE DE SÃO PAULO

UNIVERSIDADE DE SÃO PAULO UNIVERSIDADE DE SÃO PAULO ESCOLA DE ENGENHARIA DE SÃO CARLOS AVALIAÇÃO DE MÉTODOS HEURÍSTICOS PARA MINIMIZAÇÃO DO MAKESPAN EM AMBIENTE FLOWSHOP COM BLOQUEIO ADRIANO SEIKO KOMESU Orientador: Prof Dr Marcelo

Leia mais

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

UM MODELO DE PROGRAMAÇÃO INTEIRA MISTA PARA A PROGRAMAÇÃO DA PRODUÇÃO EM FLOWSHOP HÍBRIDO COM BUFFERS LIMITADOS UM MODELO DE PROGRAMAÇÃO INTEIRA MISTA PARA A PROGRAMAÇÃO DA PRODUÇÃO EM FLOWSHOP HÍBRIDO COM BUFFERS LIMITADOS Pedro Luis Miranda Lugo Universidade Federal de São Carlos Departamento de Engenharia de

Leia mais

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

Programação da produção em sistema no-wait flow shop com minimização do tempo total de fluxo Programação da produção em sistema no-wait flow shop com minimização do tempo total de fluxo Lucas Yamada Scardoelli (EESC/USP) scarty@terra.com.br R. General Glicério, 340, Centro, CEP 15900-000, Taquaritinga,

Leia mais

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

1_1 1_2 2_1 1_ _ _ Fonte: Autor 75 7. Resultados Os resultados aqui apresentados utilizam o modelo proposto na Seção 6.2, resolvido através do software de otimização AIMMS para os problemas com Datas prometidas. Já para o problema sem

Leia mais

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

PROGRAMAÇÃO DA PRODUÇÃO EM SISTEMAS POR BATELADAS: UM ESTUDO PARA A OTIMIZAÇÃO DO MAKESPAN PROGRAMAÇÃO DA PRODUÇÃO EM SISTEMAS POR BATELADAS: UM ESTUDO PARA A OTIMIZAÇÃO DO MAKESPAN R. P. da ROCHA 1, M. de F. MORAIS 1, M. A. da S. S. RAVAGNANI 2, C. M. G. ANDRADE 2, C. M. P. R. PARAÍSO 2 1 Universidade

Leia mais

4 Métodos Existentes. 4.1 Algoritmo Genético

4 Métodos Existentes. 4.1 Algoritmo Genético 61 4 Métodos Existentes A hibridização de diferentes métodos é em geral utilizada para resolver problemas de escalonamento, por fornecer empiricamente maior eficiência na busca de soluções. Ela pode ser

Leia mais

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

MODELO DE PROGRAMAÇÃO LINEAR INTEIRA MISTA PARA MINIMIZAÇÃO DOS ADIANTAMENTOS E ATRASOS EM FLOW SHOP COM SETUP DEPENDENDE DA SEQUÊNCIA MODELO DE PROGRAMAÇÃO LINEAR INTEIRA MISTA PARA MINIMIZAÇÃO DOS ADIANTAMENTOS E ATRASOS EM FLOW SHOP COM SETUP DEPENDENDE DA SEQUÊNCIA Cristiano Marinho Vaz, cmv02@hotmail.com Vinícius Ferreira da Silva

Leia mais

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

Gestão & Produção, v.17, n.2, p , Universidade de São Paulo Biblioteca Digital da Produção Intelectual - BDPI Departamento de Engenharia de Produção - EESC/SEP Artigos e Materiais de Revistas Científicas - EESC/SEP 2010 Métodos heurísticos

Leia mais

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

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016 NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016 Metaheurística: São técnicas de soluções que gerenciam uma interação entre técnicas de busca local e as estratégias de nível superior para criar um processo de

Leia mais

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

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE INFORMÁTICA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO BERNARDO HENRIQUE OLBERTZ NETO UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE INFORMÁTICA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO BERNARDO HENRIQUE OLBERTZ NETO ANÁLISE DE MÉTODOS HEURÍSTICOS PARA MINIMIZAÇÃO DO TEMPO

Leia mais

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

ANÁLISE COMPARATIVA DE HEURÍSTICAS PARA MINIMIZAÇÃO DE ADIANTAMENTOS E ATRASOS EM FLOW SHOP COM TEMPOS DE SETUP ANÁLISE COMPARATIVA DE HEURÍSTICAS PARA MINIMIZAÇÃO DE ADIANTAMENTOS E ATRASOS EM FLOW SHOP COM TEMPOS DE SETUP John Lennon Damas David UFG/Campus Catalão johnlennon_13@yahoo.com.br Hélio Yochihiro Fuchigami

Leia mais

HÉLIO YOCHIHIRO FUCHIGAMI

HÉLIO YOCHIHIRO FUCHIGAMI MÉTODOS HEURÍSTICOS CONSTRUTIVOS PARA O PROBLEMA DE PROGRAMAÇÃO DA PRODUÇÃO EM SISTEMAS FLOW SHOP HÍBRIDOS COM TEMPOS DE PREPARAÇÃO DAS MÁQUINAS ASSIMÉTRICOS E DEPENDENTES DA SEQÜÊNCIA HÉLIO YOCHIHIRO

Leia mais

Problemas de otimização

Problemas de otimização Problemas de otimização Problemas de decisão: Existe uma solução satisfazendo certa propriedade? Resultado: sim ou não Problemas de otimização: Entre todas as soluções satisfazendo determinada propriedade,

Leia mais

Otimização Combinatória - Parte 4

Otimização Combinatória - Parte 4 Graduação em Matemática Industrial Otimização Combinatória - Parte 4 Prof. Thiago Alves de Queiroz Departamento de Matemática - CAC/UFG 2/2014 Thiago Queiroz (DM) Parte 4 2/2014 1 / 33 Complexidade Computacional

Leia mais

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

Minimização da duração total da programação em sistemas de produção flowshop, sem interrupção de execução e tarefas Minimização da duração total da programação em sistemas de produção flowshop, sem interrupção de execução e tarefas Fábio José Ceron Branco (EESC-USP) fbranco@hotmail.com R. General Glicério, 340, Centro,

Leia mais

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

Avaliação de métodos heurísticos em sistemas de produção no-wait flow shop Avaliação de métodos heurísticos em sistemas de produção no-wait flow shop Marcelo Seido Nagano (USP) - drnagano@usp.br Lucas Yamada Scardoelli (USP) - scarty@terra.com.br João Vitor Moccellin (USP) -

Leia mais

AULA 1/4 ASSUNTOS ABORDADOS:

AULA 1/4 ASSUNTOS ABORDADOS: AULA 1/4 ASSUNTOS ABORDADOS: Gestão de sistemas de produção e operações. Planejamento, Programação e controle da produção. 27/07/2013 9:00 10:30 Assunto: Gestão de sistemas de produção e operações Classificação

Leia mais

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

UNIVERSIDADE DE SÃO PAULO ESCOLA DE ENGENHARIA DE SÃO CARLOS DEPARTAMENTO DE ENGENHARIA DE PRODUÇÃO FÁBIO JOSÉ CERON BRANCO 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-

Leia mais

Otimização Combinatória - Parte 3

Otimização Combinatória - Parte 3 Graduação em Matemática Industrial Otimização Combinatória - Parte 3 Prof. Thiago Alves de Queiroz Unidade de Matemática e Tecnologia - CAC/UFG 2/2016 Thiago Queiroz (DM) Parte 3 2/2016 1 / 23 Problemas

Leia mais

2 Problemas de Escalonamento

2 Problemas de Escalonamento 15 2 Problemas de Escalonamento O escalonamento ou programação da produção é um dos problemas operacionais que visam planejar e controlar a execução das tarefas de produção e de serviços. Ele tem como

Leia mais

Teoria da Computação. Complexidade computacional classes de problemas

Teoria da Computação. Complexidade computacional classes de problemas Teoria da Computação Complexidade computacional classes de problemas 1 Universo de problemas Problemas indecidíveis ou não-computáveis Não admitem algoritmos Problemas intratáveis Não admitem algoritmos

Leia mais

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

O PROBLEMA DE SEQUENCIAMENTO DA PRODUÇÃO EM UM AMBIENTE FLOWSHOP COM LINHAS SEMI- PARALELAS E OPERAÇÃO DE SINCRONIZAÇÃO FINAL O PROBLEMA DE SEQUENCIAMENTO DA PRODUÇÃO EM UM AMBIENTE FLOWSHOP COM LINHAS SEMI- PARALELAS E OPERAÇÃO DE SINCRONIZAÇÃO FINAL Irce Fernandes Gomes Guimaraes (UFOP) profirce@yahoo.com.br Mauricio Cardoso

Leia mais

ADMINISTRAÇÃO DE PRODUÇÃO

ADMINISTRAÇÃO DE PRODUÇÃO Unidade III ADMINISTRAÇÃO DE PRODUÇÃO E OPERAÇÕES Profa. Lérida Malagueta Planejamento e Controle de Produção (PCP) O PCP é uma função de apoio da administração de produção. Desenvolve funções de planejar

Leia mais

a) O aumento da complexidade e a rápida obsolescência dos produtos. b) Aprendizado mais rápido para eliminar falhas do processo.

a) O aumento da complexidade e a rápida obsolescência dos produtos. b) Aprendizado mais rápido para eliminar falhas do processo. 14 1. Introdução 1.1. Contexto Histórico O Sistema de Produção Just-in-Time (JIT) teve seu início no Japão no início da década de 70 e tinha como principais objetivos, além da redução de todo tipo de estoques:

Leia mais

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

ESTUDO DE REGRAS DE SEQUENCIAMENTO PARA MINIMIZAÇÃO DO ATRASO EM AMBIENTE FLOW SHOP COM TEMPOS DE SETUP ESTUDO DE REGRAS DE SEQUENCIAMENTO PARA MINIMIZAÇÃO DO ATRASO EM AMBIENTE FLOW SHOP COM TEMPOS DE SETUP Tatiane Carvalho Silva (UFG ) tatiane_economiaufg@hotmail.com Helio Yochihiro Fuchigami (UFG ) heliofuchigami@yahoo.com.br

Leia mais

Gustavo Simão Rodrigues

Gustavo Simão Rodrigues Gustavo Simão Rodrigues O Problema do Sequenciamento em Uma Única Máquina, com Tempos de Preparação Dependentes da Sequência e Penalidades por Antecipação e Atraso: Estudo de Caso de um Processo de Fabricação

Leia mais

PROGRAMAÇÃO E SEQUENCIAMENTO DA PRODUÇÃO UTILIZANDO PREACTOR APS

PROGRAMAÇÃO E SEQUENCIAMENTO DA PRODUÇÃO UTILIZANDO PREACTOR APS PROGRAMAÇÃO E SEQUENCIAMENTO DA PRODUÇÃO UTILIZANDO PREACTOR APS Considerações Iniciais Preactor APS Conceitos Básicos Modelagem - Gráfico de Gantt - Sequenciamento Prof. Dr. Mauro Enrique Carozzo Todaro

Leia mais

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

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO DE ENGENHARIA DE PRODUÇÃO CURSO DE ENGENHARIA DE PRODUÇÃO EDUARDO TOMIO KEMURA KUMAGAI UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO DE ENGENHARIA DE PRODUÇÃO CURSO DE ENGENHARIA DE PRODUÇÃO EDUARDO TOMIO KEMURA KUMAGAI AVALIAÇÃO DE MÉTODOS HEURÍSTICOS PARA PROBLEMAS FLOWSHOP PERMUTACIONAL

Leia mais

Programação Linear/Inteira

Programação Linear/Inteira Unidade de Matemática e Tecnologia - RC/UFG Programação Linear/Inteira Prof. Thiago Alves de Queiroz Aula 7 Thiago Queiroz (IMTec) Aula 7 Aula 7 1 / 25 Problemas de Caixeiro Viajante Envolvem um conjunto

Leia mais

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

NOVAS REGRAS DE SEQUENCIAMENTO PARA PROGRAMAÇÃO DE FLOW SHOP COM DATAS DE LIBERAÇÃO E TEMPOS DE SETUP NOVAS REGRAS DE SEQUENCIAMENTO PARA PROGRAMAÇÃO DE FLOW SHOP COM DATAS DE LIBERAÇÃO E TEMPOS DE SETUP Caio Soares de Araujo (UFG ) caio.ufg@gmail.com Helio Yochihiro Fuchigami (UFG ) heliofuchigami@yahoo.com.br

Leia mais

Paradigmas de Projetos de Algoritmos

Paradigmas de Projetos de Algoritmos Paradigmas de Projetos de Algoritmos Luciana Assis 9 de junho de 2016 Luciana Assis (UFVJM) 9 de junho de 2016 1 / 36 1 Introdução 2 Força Bruta 3 Abordagem Incremental ou Construtiva 4 Recursão 5 Divisão

Leia mais

Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo

Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo tmelo@uea.edu.br www.tiagodemelo.info Observações O conteúdo dessa aula é parcialmente proveniente do Capítulo 11 do livro Fundamentals of

Leia mais

Pesquisa Operacional Aplicada à Mineração

Pesquisa Operacional Aplicada à Mineração Pesquisa Operacional Aplicada à Mineração Módulo de Otimização Parte II-b Prof. Marcone J. F. Souza Prof. Túlio A. M. Toffolo marcone.freitas@yahoo.com.br tulio@toffolo.com.br Departamento de Computação

Leia mais

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

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves CAP 254 CAP 254 Otimização Combinatória Professor: Dr. L.A.N. Lorena Assunto: Metaheurísticas Antonio Augusto Chaves Conteúdo C Simulated Annealing (2//7). C2 Busca Tabu (22//7). C3 Colônia de Formigas

Leia mais

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

PROGRAMAÇÃO DA PRODUÇÃO EM SISTEMAS FLOWSHOP UTILIZANDO UM MÉTODO HEURÍSTICO HÍBRIDO ALGORITMO GENÉTICO-BUSCA TABU PROGRAMAÇÃO DA PRODUÇÃO EM SISTEMAS FLOWSHOP UTILIZANDO UM MÉTODO HEURÍSTICO HÍBRIDO ALGORITMO GENÉTICO-BUSCA TABU João Vitor Moccellin Escola de Engenharia de São Carlos - USP Caixa Postal 359, 13560-970

Leia mais

Sequenciamento de Tarefas

Sequenciamento de Tarefas Sequenciamento de Tarefas Programa: Introdução; Sequenciamento numa única máquina; Sequenciamento em máquinas paralelas; Problemas de shop scheduling; Extensões; 1 Introdução Problemas de sequenciamento/escalonamento

Leia mais

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

MÉTODOS HEURÍSTICOS CONSTRUTIVOS PARA PROGRAMAÇÃO DA PRODUÇÃO EM SISTEMAS FLOW SHOP MÉTODOS HEURÍSTICOS CONSTRUTIVOS PARA PROGRAMAÇÃO DA PRODUÇÃO EM SISTEMAS FLOW SHOP HÍBRIDOS COM TEMPOS DE PREPARAÇÃO DAS MÁQUINAS ASSIMÉTRICOS E DEPENDENTES DA SEQÜÊNCIA Hélio Yochihiro Fuchigami Programa

Leia mais

Os Problemas de Optimização Combinatória e a Teoria da Complexidade

Os Problemas de Optimização Combinatória e a Teoria da Complexidade Metodologias de Apoio à Decisão Os Problemas de Optimização Combinatória e a Teoria da Complexidade Programação Inteira Mista Programação Linear Programação Binária Mista Programação Inteira Slide Fluxos

Leia mais

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

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 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 CANTIERE, Patricia Castoldi, IC, Fecilcam, CNPq, Engenharia de Produção

Leia mais

Capítulo 11. Programação da produção em sistema Flow Shop: análise hipotética na indústria de bicicletas. 1 Introdução

Capítulo 11. Programação da produção em sistema Flow Shop: análise hipotética na indústria de bicicletas. 1 Introdução Capítulo 11 Programação da produção em sistema Flow Shop: análise hipotética na indústria de bicicletas Nayara Macedo Vinhal 1 Gislene da Silva Fonseca 2 José dos Reis Vieira de Moura Junior 3 Resumo:

Leia mais

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

ALGORITMOS AVANÇADOS UNIDADE I Análise de Algoritmo - Notação O. Luiz Leão Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 1.1 - Algoritmo 1.2 - Estrutura de Dados 1.2.1 - Revisão de Programas em C++ envolvendo Vetores, Matrizes, Ponteiros, Registros

Leia mais

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

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO AULA 06 Algoritmos Genéticos Sumário Introdução Inteligência Artificial (IA) Algoritmos Genéticos Aplicações de

Leia mais

4 Cálculo de Equivalentes Dinâmicos

4 Cálculo de Equivalentes Dinâmicos 4 Cálculo de Equivalentes Dinâmicos 4.1. Introdução Os sistemas de potência interligados vêm adquirindo maior tamanho e complexidade, aumentando a dependência de sistemas de controle tanto em operação

Leia mais

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

Alocação de Unidades via Relaxação Lagrangeana Alocação de Unidades via Relaxação Lagrangeana Prof. Antonio Simões Costa Grupo de Sistemas de Potência EEL - UFSC Relaxação Lagrangeana: Conceitos Iniciais 2 1 Alocação de Unidades via Relaxação Lagrangeana

Leia mais

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

3. Resolução de problemas por meio de busca Inteligência Artificial - IBM1024 3. Resolução de problemas por meio de busca Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Resolução de problemas por

Leia mais

3 Decisões de Localização de Instalações

3 Decisões de Localização de Instalações 3 Decisões de Localização de Instalações Historicamente, o estudo contemporâneo dos problemas de localização foi iniciado por Alfred Weber, que estudou a localização de uma fábrica com o objetivo de minimizar

Leia mais

Modelagem em Experimentos Mistura-Processo para Otimização de Processos Industriais 15

Modelagem em Experimentos Mistura-Processo para Otimização de Processos Industriais 15 Modelagem em Experimentos Mistura-Processo para Otimização de Processos Industriais 15 1 Introdução Na indústria moderna há uma contínua busca da otimização dos níveis de produção e da melhoria da qualidade

Leia mais

Natureza do Planejamento e. Controle

Natureza do Planejamento e. Controle Natureza do Planejamento e Os consumidores percebem maior risco na compra de serviços Controle do que na compra de produtos Os consumidores usam o preço e evidências físicas como as maiores pistas da qualidade

Leia mais

Pesquisa Operacional Introdução. Profa. Alessandra Martins Coelho

Pesquisa Operacional Introdução. Profa. Alessandra Martins Coelho Pesquisa Operacional Introdução Profa. Alessandra Martins Coelho julho/2014 Operational Research Pesquisa Operacional - (Investigação operacional, investigación operativa) Termo ligado à invenção do radar

Leia mais

4 Cálculo de Equivalentes Dinâmicos

4 Cálculo de Equivalentes Dinâmicos 4 Cálculo de Equivalentes Dinâmicos 4.1 Introdução Com o elevado índice de expansão dos sistemas elétricos de potência, os freqüentes aumentos nas interligações e o alto número de variáveis que envolvem

Leia mais

Marina Andretta. 02 de agosto de 2010

Marina Andretta. 02 de agosto de 2010 Introdução Marina Andretta ICMC-USP 02 de agosto de 2010 Marina Andretta (ICMC-USP) sme0212 - Otimização não-linear 02 de agosto de 2010 1 / 19 Otimização Otimizar significa encontrar a melhor maneira

Leia mais

Resumo. Como um agente busca de seqüência de ações para alcançar seus objetivos.

Resumo. Como um agente busca de seqüência de ações para alcançar seus objetivos. Resumo Inteligência Artificial Russel e Norvig Capítulos 3,4 e 5 Prof. MsC Ly Freitas UEG Resolução de problemas por meio de busca Como um agente busca de seqüência de ações para alcançar seus objetivos.

Leia mais

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

MÉTODOS HEURÍSTICOS PARA PROGRAMAÇÃO DE FLOW SHOP BICRITÉRIO COM DATAS DE LIBERAÇÃO E SETUP INDEPENDENTE UNIVERSIDADE FEDERAL DE GOIÁS REGIONAL CATALÃO MESTRADO EM GESTÃO ORGANIZACIONAL MÉTODOS HEURÍSTICOS PARA PROGRAMAÇÃO DE FLOW SHOP BICRITÉRIO COM DATAS DE LIBERAÇÃO E SETUP INDEPENDENTE Caio Soares de

Leia mais

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 FLOW SHOP PERMUTACIONAL COM TEMPOS DE SETUP ASSIMÉTRICOS E DEPENDENTES DA SEQÜÊNCIA POR MEIO DE ANÁLISE DA FLUTUAÇÃO DO GARGALO A pesquisa Operacional e os Recursos Renováveis 4 a 7 de novembro de 2003, Natal-RN PROGRAMAÇÃO FLOW SHOP PERMUTACIONAL COM TEMPOS DE SETUP ASSIMÉTRICOS E DEPENDENTES DA SEQÜÊNCIA POR MEIO DE ANÁLISE DA

Leia mais

Sequenciamento e Controles de Ordens de Produção

Sequenciamento e Controles de Ordens de Produção Sequenciamento e Controles de Ordens de Produção O que é MES (Manufacturing Execution Systems) e SFC (Shop Floor Control)? É um sistema de chão-de-fábrica orientado para a melhoria de desempenho que complementa

Leia mais

REDE PERT - CPM DEP E A P R A TA T M A EN E TO T DE E M EC E ÂN Â IC I A C

REDE PERT - CPM DEP E A P R A TA T M A EN E TO T DE E M EC E ÂN Â IC I A C REDE PERT - CPM DEPARTAMENTO DE MECÂNICA PROGRAMA DE MANUTENÇÃO PREVENTIVA AO LONGO DO ANO PARALIZAÇÕES E TRABALHOS DE EMERGÊNCIA GRANDES TRABALHOS PROJETOS DE MODIFICAÇÕES INSPEÇÃO LUBRIFICAÇÃO DE ROTINA

Leia mais

Pesquisa Operacional

Pesquisa Operacional Faculdade de Engenharia - Campus de Guaratinguetá Pesquisa Operacional Fabrício Maciel fabricio@feg.unesp.br Departamento de Produção 1 Programação linear Sumário Modelagem e limitações da Programação

Leia mais

1 - A capacidade de fluxo que corresponde a capacidade máxima que pode passar pelo arco.

1 - A capacidade de fluxo que corresponde a capacidade máxima que pode passar pelo arco. CONCEITOS DE REDE Uma rede é formada por um conjunto de nós, um conjunto de arcos e de parâmetros associados aos arcos. Nós Arcos Fluxo Interseções Rodovias Veículos Rodoviários Aeroportos Aerovia Aviões

Leia mais

Pesquisa Operacional aplicada ao Planejamento e Controle da Produção e de Materiais Programação Linear

Pesquisa Operacional aplicada ao Planejamento e Controle da Produção e de Materiais Programação Linear Pesquisa Operacional aplicada ao Planejamento e Controle da Produção e de Materiais Programação Linear Introdução à Pesquisa Operacional Origens militares Segunda guerra mundial Aplicada na alocação de

Leia mais

Unidade III. ADMINISTRAÇÃO DAS OPERAÇÕES PRODUTIVAS O planejamento e controle da produção. Prof. Fabio Uchôas

Unidade III. ADMINISTRAÇÃO DAS OPERAÇÕES PRODUTIVAS O planejamento e controle da produção. Prof. Fabio Uchôas Unidade III ADMINISTRAÇÃO DAS OPERAÇÕES PRODUTIVAS O planejamento e controle da produção Prof. Fabio Uchôas Planejamento e controle da produção Planejamento e controle Objetiva garantir que os processos

Leia mais

Processos de software

Processos de software Processos de software 1 Processos de software Conjunto coerente de atividades para especificação, projeto, implementação e teste de sistemas de software. 2 Objetivos Introduzir modelos de processos de

Leia mais

Pesquisa Operacional Introdução. Profa. Alessandra Martins Coelho

Pesquisa Operacional Introdução. Profa. Alessandra Martins Coelho Pesquisa Operacional Introdução Profa. Alessandra Martins Coelho agosto/2013 Operational Research Pesquisa Operacional - (Investigação operacional, investigación operativa) Termo ligado à invenção do radar

Leia mais

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

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 Anais do CNMAC v.2 ISSN 1984-820X 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 Dependente da Seqüência de

Leia mais

Planejamento de Vendas e Operações (Plano Agregado de Produção)

Planejamento de Vendas e Operações (Plano Agregado de Produção) Universidade Federal do Paraná Setor de Ciências Sociais Aplicadas Departamento de Administração Geral e Aplicada Planejamento de Vendas e Operações (Plano Agregado de Produção) Eduardo Alves Portela Santos

Leia mais

CARREGAMENTO, SEQUENCIAMENTO E PROGRAMAÇÃO DA PRODUÇÃO. Prof. Dr. Mauro Enrique Carozzo Todaro

CARREGAMENTO, SEQUENCIAMENTO E PROGRAMAÇÃO DA PRODUÇÃO. Prof. Dr. Mauro Enrique Carozzo Todaro CARREGAMENTO, SEQUENCIAMENTO E PROGRAMAÇÃO DA PRODUÇÃO Prof. Dr. Mauro Enrique Carozzo Todaro CONCILIANDO VOLUME E TEMPO Quanto fazer? Carregamento Quando fazer? Programação Sequenciamento Em que ordem

Leia mais

PNV-5005 MODELAGEM E ANÁLISE DE SISTEMAS INTERMODAIS DE TRANSPORTE UTILIZANDO TÉCNICAS DE SIMULAÇÃO

PNV-5005 MODELAGEM E ANÁLISE DE SISTEMAS INTERMODAIS DE TRANSPORTE UTILIZANDO TÉCNICAS DE SIMULAÇÃO PNV-5005 MODELAGEM E ANÁLISE DE SISTEMAS INTERMODAIS DE TRANSPORTE UTILIZANDO TÉCNICAS DE SIMULAÇÃO Prof. Dr. Rui Carlos Botter e-mail: rcbotter@usp.br Fevereiro de 2017 Simulação É o processo de elaborar

Leia mais

1 Introdução 1.1 Motivação

1 Introdução 1.1 Motivação 13 1 Introdução 1.1 Motivação O planejamento de tarefas é um trabalho de resultados economicamente importantes mas de uma dificuldade computacional muito grande. Os problemas de planejamento podem ser

Leia mais

CAPÍTULO 1. Conceitos sobre Planeamento e Escalonamento

CAPÍTULO 1. Conceitos sobre Planeamento e Escalonamento CAPÍTULO 1 Conceitos sobre Planeamento e Escalonamento Eugénio Oliveira and Scheduling, FEUP/PRODEI /MIEIC 1 Planeamento e Escalonamento : Processo de tomada de decisão quanto à selecção e (sequenciação)/ordenação

Leia mais

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

METAHEURÍSTICAS: 1 SIMULATED ANNEALING (S.A) 1.1 INTRODUÇÃO 1 SIMULATED ANNEALING (S.A) 1.1 INTRODUÇÃO METAHEURÍSTICAS: É uma das primeiras metaheurísticas que foi utilizada com muito sucesso nos problemas complexos de pesquisa operacional. O S.A surgiu do campo

Leia mais

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

Análise da Performance de um Modelo de Escalonamento Baseado em Pesquisa Tabu Aplicado em um Sistema de Manufatura Flexível Análise da Performance de um Modelo de Escalonamento Baseado em Pesquisa Tabu Aplicado em um Sistema de Manufatura Flexível Antonio G. RODRIGUES, Leandro T. HOFFMANN e Arthur T. GÓMEZ Universidade do Vale

Leia mais

a complexidade no desempenho de algoritmos

a complexidade no desempenho de algoritmos capítulo 1 introdução Os algoritmos são o cerne da computação. Este capítulo introdutório procura ressaltar a importância da complexidade e dos métodos de projeto e análise de algoritmos. Partindo da ideia

Leia mais

Planejamento e Controle da Produção I

Planejamento e Controle da Produção I Planejamento e Controle da Produção I Atividades do Prof. M.Sc. Gustavo Meireles 2012 Gustavo S. C. Meireles 1 Introdução Sistemas produtivos: abrange produção de bens e de serviços; Funções básicas dos

Leia mais

Algoritmos de Escalonamento do Preactor. Algoritmos de Escalonamento do Preactor. INESC Porto Unidade de Engenharia de Sistemas de Produção

Algoritmos de Escalonamento do Preactor. Algoritmos de Escalonamento do Preactor. INESC Porto Unidade de Engenharia de Sistemas de Produção Algoritmos de Escalonamento do Preactor INESC Porto Unidade de Engenharia de Sistemas de Produção Identificação do Documento: Código do Documento Nome do Documento Nome do Ficheiro RI.03 Algoritmos de

Leia mais

NATUREZA DO PLANEJAMENTO E CONTROLE. Aula 8 e 9 - Regina Meyer Branski

NATUREZA DO PLANEJAMENTO E CONTROLE. Aula 8 e 9 - Regina Meyer Branski NATUREZA DO PLANEJAMENTO E CONTROLE Aula 8 e 9 - Regina Meyer Branski Modelo Geral da Gestão de Operações RECURSOS A SEREM TRANSFORMADOS MATERIAIS INFORMAÇÕES CONSUMIDORES AMBIENTE ESTRATÉGIA DE PRODUÇÃO

Leia mais

5 Decisão Sob Incerteza

5 Decisão Sob Incerteza 5 Decisão Sob Incerteza Os problemas de decisão sob incerteza são caracterizados pela necessidade de se definir valores de variáveis de decisão sem o conhecimento prévio da realização de parâmetros que,

Leia mais

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

UMA HEURÍSTICA CONSTRUTIVA PARA O PROBLEMA DE MINIMIZAÇÃO DO ATRASO TOTAL NO AMBIENTE FLOWSHOP COM BUFFER ZERO UMA HEURÍSTICA CONSTRUTIVA PARA O PROBLEMA DE MINIMIZAÇÃO DO ATRASO TOTAL NO AMBIENTE FLOWSHOP COM BUFFER ZERO Luís Roberto Sant Anna Henriques Débora P. Ronconi Escola Politécnica da Universidade de São

Leia mais

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

Lista de Exercícios Programação Inteira. x 2 0 e inteiros. Lista de Exercícios Programação Inteira ) Resolva os problemas a seguir usando o método B&B a) Max z = 5 x + 2 y s.a x + y 2 x + y 5 x, y 0, x e y inteiros b) Max z = 2 x + y s.a x + 2y 0 x + y 25 x, y

Leia mais

Planejamento e Análise de Sistemas de Produção

Planejamento e Análise de Sistemas de Produção Aula 24 Planejamento e Análise de Sistemas de Produção Paulo Augusto Valente Ferreira Departamento de Telemática Faculdade de Engenharia Elétrica e Computação Universidade Estadual de Campinas Conteúdo

Leia mais

Por fim, deve-se mencionar o problema da geometria 2D complexa. Segundo a MFLE, as taxas de propagação das trincas por fadiga dependem

Por fim, deve-se mencionar o problema da geometria 2D complexa. Segundo a MFLE, as taxas de propagação das trincas por fadiga dependem 1 Introdução Este trabalho trata da simulação numérica, com verificação experimental, do processo de trincamento de componentes estruturais bi-dimensionais (2D) por fadiga sob cargas de amplitude variável.

Leia mais

COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS

COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS Rosiana da Silva Lopes Danilo César Rodrigues Azevedo rosianalopes16@gmail.com danilo.azevedo@ufpi.edu.br.com

Leia mais

EEL - USP. Aula 2 Projeto do Produto, do processo e planejamento da produção. Prof. Dr. Geronimo

EEL - USP. Aula 2 Projeto do Produto, do processo e planejamento da produção. Prof. Dr. Geronimo EEL - USP Aula 2 Projeto do Produto, do processo e planejamento da produção Prof. Dr. Geronimo O processo de planejamento de instalações voltadas para a produção de montagem pode ser listado: 1. Definir

Leia mais

Escalonamento em uma máquina

Escalonamento em uma máquina Capítulo 4 Escalonamento em uma máquina Veremos neste capítulo vários problemas relacionados ao escalonamento em uma máquina. Estes problemas são importantes, pois além de fornecerem idéias para problemas

Leia mais

Programação Linear M É T O D O S : E S T A T Í S T I C A E M A T E M Á T I C A A P L I C A D A S D e 1 1 d e m a r ç o a 2 9 d e a b r i l d e

Programação Linear M É T O D O S : E S T A T Í S T I C A E M A T E M Á T I C A A P L I C A D A S D e 1 1 d e m a r ç o a 2 9 d e a b r i l d e Programação Linear A otimização é o processo de encontrar a melhor solução (ou solução ótima) para um problema. Existe um conjunto particular de problemas nos quais é decisivo a aplicação de um procedimento

Leia mais

Administração de Materiais e Recursos Patrimoniais

Administração de Materiais e Recursos Patrimoniais Administração de Materiais e Recursos Patrimoniais Empresa Deve: Ser organizada: padronização administrativa (planejamento e controle) Ter qualidade: atender a necessidade dos consumidores (prazo, preço,

Leia mais

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

MINIMIZAÇÃO DO TEMPO TOTAL DE ATRASO NO PROBLEMA DE FLOWSHOP COM BUFFER ZERO ATRAVÉS DE BUSCA TABU MINIMIZAÇÃO DO TEMPO TOTAL DE ATRASO NO PROBLEMA DE FLOWSHOP COM BUFFER ZERO ATRAVÉS DE BUSCA TABU Vinícius Amaral Armentano Faculdade de Engenharia Elétrica e Computação Universidade Estadual de Campinas

Leia mais

UNIVERSIDADE DE SÃO PAULO DEPARTAMENTO DE ENGENHARIA DE PRODUÇÃO MAURICIO IWAMA TAKANO

UNIVERSIDADE DE SÃO PAULO DEPARTAMENTO DE ENGENHARIA DE PRODUÇÃO MAURICIO IWAMA TAKANO UNIVERSIDADE DE SÃO PAULO DEPARTAMENTO DE ENGENHARIA DE PRODUÇÃO MAURICIO IWAMA TAKANO Uma contribuição para o problema de programação de operações flow shop com buffer zero e tempos de setup dependente

Leia mais

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C SISTEMAS OPERATIVOS

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C SISTEMAS OPERATIVOS UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C1203 - SISTEMAS OPERATIVOS 2º Semestre 2005/2006 27/7/2007 Resolução 1. Identifique três situações em que ocorra uma transição do modo de execução utilizador

Leia mais

Métodos de alto rendimento e baixa complexidade em flowshop

Métodos de alto rendimento e baixa complexidade em flowshop Recebido 29/05/2016 Aprovado 18/10/2016 Métodos de alto rendimento e baixa complexidade em flowshop Methods of high performance and low complexity in flowshop Fábio José Ceron Branco 1 - Univ. Tecnológica

Leia mais

Localização e arranjo físico de unidades da rede de operações

Localização e arranjo físico de unidades da rede de operações Localização e arranjo físico de unidades da rede de operações Profa. Dra. Márcia Mazzeo Grande RAD1512 Administração: gestão e logística Ambiente Estratégia de operações Estratégia Recursos de entradas

Leia mais

PESQUISA OPERACIONAL APLICADA A LOGÍSTICA

PESQUISA OPERACIONAL APLICADA A LOGÍSTICA PESQUISA OPERACIONAL APLICADA A LOGÍSTICA Pós-Graduação em Logística e Supply Chain Valdick Sales 1 APRESENTAÇÃO Valdick sales Graduado em Ciência da Computação pela UFPE. Pós-Graduado em Redes e Banco

Leia mais

UNIVERSIDADE DE SÃO PAULO

UNIVERSIDADE DE SÃO PAULO UNIVERSIDADE DE SÃO PAULO ALBERTO KOOPMAN OVANDO Avaliação de métodos de ordenação inicial para o problema de programação da produção em ambiente flowshop não permutacional com critério de minimização

Leia mais