SEQUENCIAMENTO DA PRODUÇÃO EM JOB-SHOPS COM O AUXÍLIO DE GRIDS COMPUTACIONAIS

Documentos relacionados
Sistemas de Produção em Fluxo

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

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

Otávio Moura do Nascimento Leandro de Moraes

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

Um Estudo do Comportamento dos Tempos de Makespan, Atraso e Setup no Problema de Escalonamento do Job-shop

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

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

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

1.1 Descrição do problema A programação genética (PG) é uma meta-heurística utilizada para gerar programas de computadores, de modo que o computador

Implementação de um escalonador de processos em GPU

Sequenciamento de Tarefas

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

Pesquisa Operacional Aplicada à Mineração

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

Problemas de otimização

Heurística Shifting Bottleneck

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

Algoritmos de Caminho Mínimo Parte 1

4 Cálculo de Equivalentes Dinâmicos

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

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

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

Análise do Comportamento das Estratégias de Escalonamento Considerando n Máquinas de Produção

4 Métodos Existentes. 4.1 Algoritmo Genético

Um Modelo Baseado na Busca Tabu Aplicado ao Problema do Escalonamento do Job-shop com Setup e Data de Entrega

3 Extensões dos modelos matemáticos

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

Algoritmos Genéticos. Pontos fracos dos métodos tradicionais. Características de alguns problemas. Tamanho do espaço de busca- Ex. caixeiro viajante:

UMA ABORDAGEM MULTIAGENTE PARA A SOLUÇÃO DE PROBLEMAS DO TIPO JOBSHOP

2 Problemas de Escalonamento

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

Otimização Combinatória - Parte 3

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

Estratégias de Escalonamento em um Ambiente de Job-shop

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

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

1-1 PESQUISA OPERACIONAL INTRODUÇÃO

DESENVOLVIMENTO DE UM MÓDULO DE PROGRAMAÇÃO LINEAR NO PROGRAMA OPTIMI

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

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

1 Introdução Motivação

MPE(S)- Metodologias de Planeamento e Escalonamento Planning and Scheduling Methodologies

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

Tratamento de um problema de escalonamento considerando datas de entrega, turnos de produção e trocas de ferramentas via Busca Tabu

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

Prof. Lorí Viali, Dr.

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

INTERPOLAÇÃO LINEAR E BILINEAR: APLICAÇÃO EM TRANSFORMAÇÕES GEOMÉTRICAS DE IMAGEM INTRODUÇÃO

PCC173 - Otimização em Redes

Prática 00. Total 04. Pré-requisitos. No. De Créditos 04

MODELAGEM E SIMULAÇÃO

Computação Evolucionária: Conceitos Básicos de Otimização

Uma Introdução à Busca Tabu André Gomes

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

Algoritmos Genéticos e Evolucionários

Nuno Miguel Duarte Sequeira André VARIABLE NEIGHBOURHOOD SEARCH

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

Programação Linear/Inteira

SEQUENCIAMENTO DE LINHAS DE MONTAGEM MÚLTIPLAS NO AMBIENTE DE PRODUÇÃO ENXUTA UM ESTUDO SIMULADO PARA MINIMIZAR O RISCO DE PARADAS

Programação Linear Aplicada em Redes de Telecomunicações. Prof. Rodrigo de Souza Couto

Flexibilidade de Sequenciamento

3 Satisfação de Restrições

Algoritmo Genético e Busca Local para o problema Justin-Time Job-Shop Scheduling

Disc. Scientia. Série: Ciências Naturais e Tecnológicas, S. Maria, v. 7, n. 1, p ,

Aula 12: Programação Inteira

Linear para o Problema de Escalonamento de Workflows em Múltiplos Provedores de Nuvem

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

SEQUENCIAMENTO DE TAREFAS COM RESTRIÇÕES DE COMPATIBILIDADE EM MÁQUINAS PARALELAS COM TEMPOS DE PREPARAÇÃO DEPENDENTES DA SEQUÊNCIA

INVESTIGAÇÃO OPERACIONAL EM AÇÃO

FORMULAÇÕES COM VARIÁVEIS CONTENDO ÍNDICE DE TEMPO PARA O PROBLEMA DO FLOW SHOP EM DUAS MÁQUINAS COM PENALIDADES POR ATRASO NAS TAREFAS

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

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

Otimização de horários Seminário. Clarisse Resende 25/01/2013

HEURÍSTICAS PARA A MINIMIZAÇÃO DO ATRASO TOTAL NO AMBIENTE FLOWSHOP COM MÚLTIPLOS PROCESSADORES

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

Programação Matemática

2. Problemas Abordados e Técnicas Utilizadas 3. Arquitetura do Modelo

1 Introdução. 1.1 Contextualização e motivação

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

ESTUDO DA PERFORMANCE DA PESQUISA TABU APLICADA AO PROBLEMA DE ESCALONAMENTO EM UM SISTEMA DE MANUFATURA FLEXÍVEL

Unemat Campus de Sinop Curso de Engenharia Elétrica 8º semestre. Disciplina: Introdução à Otimização Linear de Sistemas

Localização de Instalações. Projeto de Redes Logísticas. Escola Politécnica. Prof. Dr. Claudio Barbieri da Cunha.

Abordagens para Problemas Intratáveis

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

Pesquisa Operacional. Introdução à Pesquisa Operacional

Marcone Jamilson Freitas Souza

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

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

Algoritmos 3/17/ Algoritmos como área de estudo e investigação

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES

Otimização. Otimização em Redes. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia 2016/2

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

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

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

Otimização de Sistemas Hidrotérmicos por Enxame de Partículas: Uma Abordagem Orientada a Objetos

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

Um algoritmo pseudo-periférico genérico para a heurística de Snay

DESENVOLVIMENTO E APLICAÇÃO DE UMA HEURÍSICA HÍBRIDA AO PROBLEMA DE SEQUENCIAMENTO DE UMA MÁQUINA COM INDEXAÇÃO NO TEMPO

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

Transcrição:

SEQUENCIAMENTO DA PRODUÇÃO EM JOB-SHOPS COM O AUXÍLIO DE GRIDS COMPUTACIONAIS Luiz Rossi de Souza (CEFET) luizrrossi@gmail.com Diego Moreira de Araujo Carvalho (CEFET) d.carvalho@ieee.org Rafael Garcia Barbastefano (CEFET) barbastefano@gmail.com Sequenciamento da produção em ambientes job-shop é uma tarefa de difícil resolução dada a complexidade computacional enfrentada, encontrando-se entre os problemas mais difíceis de otimização combinatória. Neste trabalho é apresentado um alggoritmo híbrido de sequenciamento da produção, combinando heurísticas de priorização e busca em vizinhança, em infraestrutura de grid computacional para encontrar melhores soluções que aquelas disponíveis através do uso de apenas um computador. Palavras-chaves: sequenciamento, job-shop, grids computacionais

1. Introdução O sequenciamento da produção consiste em alocar e ordenar tarefas a serem executadas em recursos limitados, representando uma atividade cotidiana em muitas empresas de manufatura ou mesmo de serviços (PINEDO, 2005). Devem-se alocar os recursos disponíveis para que sejam utilizados da melhor forma possível, evitando tempos de espera e atrasos nos pedidos, bem como contribuindo para que a empresa alcance seus objetivos (atender os pedidos dos clientes dentro do prazo estabelecido, por exemplo). Problemas de sequenciamento de produção em job-shops são conhecidos entre alguns dos mais difíceis na classe dos NP- Completos (ADAMS et al, 1998). O problema de sequenciamento em job-shop é enfrentado no dia-a-dia de centenas de empresas do setor metal-mecânico do Estado do Rio de Janeiro. São usadas, em geral, heurísticas simples de resolução, com baixa eficácia. O desenvolvimento de algoritmos em malhas computacionais pode ajudar a aumentar a produtividade dessas empresas. A heurísticas são adotadas para apoiar as decisões de sequenciamento em função de limitações de tempo e recursos disponíveis. Apesar de serem capazes de fornecer soluções razoáveis em um curto espaço de tempo, acredita-se ser possível encontrar resultados de melhor qualidade utilizando técnicas de simulação computacional. O sequenciamento da produção é um problema industrial que pode ser representado por modelos de programação matemática com objetivo de reduzir atrasos na entrega de pedidos, minimizar o tempo de produção, entre outros. Esses modelos, no entanto, apresentam elevada complexidade computacional dado o grande número de soluções possíveis. Dessa forma, muitas vezes o tempo de solução dos modelos matemáticos impossibilita a sua aplicação prática no dia a dia das empresas. Malhas computacionais representam arquiteturas capazes de alcançarem altas taxas de processamento e armazenagem de dados, dividindo-se as atividades entre computadores dispersos, tanto em redes locais quanto redes de longa distância. Diversos pesquisadores em ciência da computação têm apontado as malhas computacionais como uma evolução dos sistemas computacionais atuais (ROBBINS, 2006; ABBAS, 2004). Seu uso tem sido direcionado para atividades em áreas diversas como climatologia, física de altas energias e bioinformática entre outras, mas ainda não encontra ampla utilização em aplicações industriais. O presente artigo apresenta um estudo, gridificação (adaptação e desenvolvimento programas para compatibilidade com uma infraestrutura computacional) e desenvolvimento de algoritmos híbridos envolvendo programação disjuntiva e meta-heurísticas combinatórias para resolução de problemas de sequenciamento de produção do tipo job-shop. Foram utilizados problemas disponibilizados por Éric Taillard http://bit.ly/utyzcx, um programa de sequenciamento de código aberto LiSA http://lisa.math.uni-magdeburg.de/index.php e algoritmos de controle desenvolvidos em python e bash (UNIX). Este conjunto de ferramentas compõe o módulo de sequenciamento do programa Industry@Grid, desenvolvido no CEFET- RJ. Este trabalho encontra-se organizado da seguinte forma: a seção 2 contém uma introdução ao problema de sequenciamento, apresentando o conceito e a representação gráfica do problema disjuntivo. A seção 3 trata da metodologia adotada e da implantação computacional necessária para a execução dos experimentos. Na seção 4 encontram-se os resultados dos experimentos e uma comparação com o benchmark dos problemas estudados. Por fim, a seção 5 apresenta a 2

conclusão do trabalho. 2. Sequenciamento O sequenciamento é uma atividade relacionada à administração de recursos escassos (LEUNG, 2004), designando qual atividade terá acesso aos recursos em determinado intervalo de tempo. Em ambientes industriais, determina quando e como os produtos serão fabricados, i.e., quais os recursos serão utilizados, quando cada operação será iniciada e quando deverá terminar. Dessa forma, o sequenciamento estabelece o grau de utilização dos recursos, afetando a disponibilidade de máquinas e mão de obra. Modelos de sequenciamento não se limitam a atividades produtivas, sendo encontrados na prestação de serviços, e.g., a determinação da escala de funcionários é um problema de sequenciamento, assim como a designação de pousos e decolagens de aeronaves em aeroportos, ônibus e trens em rodoviárias e estações ferroviárias e as datas de partidas de torneios esportivos como campeonatos de futebol (PINEDO, 2005). Em manufaturas, os pedidos de clientes são chamados de tarefas e o processamento de uma tarefa em uma determinada máquina é considerado uma operação. Tarefas que compartilham recursos precisam ser ordenadas em uma sequência bem definida, já que não podem ser fabricadas ao mesmo tempo. Programando a produção busca-se, atendendo às necessidades dos clientes, minimizar medidas de desempenho que avaliam os custos e o tempo de produção dos bens e serviços comercializados, de acordo com restrições operacionais e administrativas. Dentre as medidas de desempenho mais comuns podem-se destacar: (a) tempo total de processamento das tarefas (makespan), medido do início da execução da primeira tarefa no tempo inicial t 0 até o término do processamento da última tarefa na última máquina t n ; (b) atraso médio, medido através da média dos atrasos na conclusão dos pedidos; (c) atraso máximo, dado pelo pedido com maior atraso e (d) número de pedidos em atraso. Algumas das restrições existentes são, mas não se limitam a: possibilidade, ou impossibilidade, de interrupção de uma operação já iniciada para o processamento de um novo pedido que que apresenta maior urgência, datas de liberação dos pedidos, datas de entrega dos pedidos, esperas para transporte e tempo de descanso de uma peça após o término de um processamento. Há ainda fatores presentes na prática que são normalmente desconsiderados nas aplicações teóricas, como o tempo de preparação das máquinas, determinado em função da tarefa que acabou de ser processada e da tarefa a ser realizada em seguida. Decisões de sequenciamento costumam ser baseadas na resolução de modelos de otimização combinatória. Contudo, são problemas intrinsecamente difíceis de serem resolvidos de forma a encontrar o resultado ótimo, pois apresentam alta complexidade computacional, pertencendo à classe dos problemas NP-completos. Para encontrar soluções satisfatórias em um intervalo de tempo aceitável para a prática nas empresas, utilizam-se heurísticas de resolução aproximada que encontram soluções rápidas e simples, mas não garantem a solução ótima. Bons algoritmos ajudam a reduzir custos operacionais (LEUNG, 2004), contribuindo para um melhor funcionamento dos sistemas. 2.1. Job-shop Sistemas de produção do tipo job-shop oferecem uma grande flexibilidade para fabricação de uma ampla variedade de produtos. O fluxo de materiais não é unidirecional e cada tarefa tem um roteiro específico a percorrer. As tarefas são compostas por qualquer número de operações, mas é costumeiro supor que todas as tarefas devam ser processadas por todas as 3

máquinas existentes, cada uma respeitando seu roteiro. Apesar da flexibilidade, esses sistemas apresentam baixo volume se comparados com a produção efetuada em sistemas flow-shop. Job-shops são comuns na fabricação de equipamentos industriais, empresas do setor metal mecânico, e também na prestação de serviços, como hospitais, por exemplo. Os modelos de job-shop são discretos e podem ser formulados como problemas inteiros ou disjuntivos. Os modelos mais simples supõem que cada tarefa deve ser processada por cada uma das máquinas apenas uma vez. Casos em que uma tarefa necessite ser processada pela mesma máquina mais de uma vez no seu roteiro através do sistema são chamados modelos com recirculação. Nesses casos, a complexidade do problema aumenta consideravelmente (PINEDO, 2005). A existência de centros de trabalho com máquinas em paralelo caracteriza os chamados job-shops flexíveis, que são observados na indústria de semicondutores e geralmente requerem recirculação. O sequenciamento em job-shop, seja flexível ou não, com ou sem recirculação, é um problema de difícil resolução. Minimizar o makespan em um jobshop com m máquinas é NP-completo para todo caso em que m > 2. Problemas de sequenciamento em job-shop receberam crescente atenção nas últimas décadas. Os primeiros problemas estudados eram relativamente simples e algoritmos eficientes foram desenvolvidos para sua solução. À medida que os problemas tornaram-se mais complicados, pesquisadores se viram incapazes de desenvolver algoritmos eficientes, direcionando os esforços para a construção de algoritmos para resolução aproximada. Uma das heurísticas mais difundidas é a shifting bottleneck (ADAMS et al, 1988), desenvolvida para minimizar o makespan baseado no sequenciamento de máquina única (CARLIER, 1982). Consiste em sequenciar as máquinas uma a uma, escolhendo a cada iteração a máquina identificada como gargalo entre as máquinas ainda não sequenciadas. Mesmo para problemas considerados grandes, e.g., com mais de 20 máquinas e 50 tarefas, é capaz de encontrar uma solução em tempo satisfatório. Em 1989, Carlier e Pinson desenvolveram um método branch and bound, também baseado no problema de máquina única, para resolver o problema em ambientes job-shop. Contudo, o tempo de resolução aumenta rapidamente à medida que um maior número de máquinas e tarefas é considerado, dificultando sua aplicação prática. Surgiram então as regras de priorização, tornando-se uma das formas mais difundidas para resolução de problemas de sequenciamento. Holthaus e Rajendran (1997) apresentaram 5 novas regras de priorização para problemas jobshop. Realizaram comparações em relação a regras já conhecidas, como SPT, WINQ, FIFO e COVERT, utilizando simulação computacional e ressaltaram que não há uma única regra que tenha melhor desempenho para todas as medidas de performance possíveis, como atraso médio, variância do atraso e tempo médio de fluxo. Dois anos depois, Rajendran e Holthaus (1999), vieram novamente apresentar 3 novas regras de priorização em um estudo comparativo da performance de 13 regras, frente a diferentes funções objetivos. Recentemente Branke e Pickardt (2011) apresentaram um método para auxiliar no desenvolvimento de regras de priorização para problemas de sequenciamento em job-shop. Chen e Ji (2007) desenvolveram um modelo de programação inteira mista combinando decisões de planejamento da produção e sequenciamento, considerando restrições de capacidade, sequência de operações, lead times e datas de entrega. O objetivo apresentado é minimizar tanto o custo de tempo ocioso quanto penalizações de atrasos ou precocidade. 4

Durante o estudo, verificaram a necessidade de cerca de 12h de processamento para resolver um problema simples e sugeriram que, devido à característica intrinsecamente complexa do problema, fosse resolvido através de meta-heurísticas. Outras iniciativas envolvem a utilização de técnicas de busca em vizinhança, variações do problema com múltiplos objetivos, problemas dinâmicos e job-shops flexíveis. O problema dinâmico de job-shop considera chegadas aleatórias de pedidos e quebras de máquinas. Adibi et al (2010) realizam o sequenciamento através de método de busca em vizinhança variável e utilizam uma rede neural artificial treinada para atualizar os parâmetros do método. Consideram medidas de performance multiobjetivo, contendo makespan e atraso total. Gao et al (2011) afirmam que o problema de sequenciamento em job-shop é conhecido como um dos problemas mais complicados de otimização combinatória. Com isso, apresentam um algoritmo que combina buscas local e global com o objetivo de minimizar o makespan enquanto atende a um número de restrições considerado satisfatório pelos autores. 2.2. Formulação O problema de sequenciamento em job-shop pode ser representado como um problema de programação disjuntiva, com função objetivo e um conjunto de restrições. Geralmente o objetivo é reduzir o tempo de atravessamento de todos os produtos (makespan), como na equação 1, reduzir o atraso médio, reduzir o atraso total ou ainda outras funções objetivos. As restrições do problema são, basicamente: (i) a sequência de máquinas para cada tarefa é conhecida e (ii) uma máquina só pode processar uma tarefa por vez. O problema pode ser escrito na forma de um problema de programação disjuntiva, e representado por um grafo como o da Figura 1, onde a escolha de arcos disjuntivos dá a sequência de operações que serão realizadas em uma máquina. Para mais detalhes, consultar Pinedo (2005). Formulação do modelo: 5

A atividade j na máquina i consiste na operação (i,j), com duração, sendo m máquinas e n tarefas. O conjunto N é o conjunto de nós, correspondendo a todas as operações (i,j) para as tarefas. O conjunto A representa as rotas das tarefas, ou seja, a precedência de operações para cada tarefa e é o tempo em que a operação (i,j) é iniciada. Fonte: Adaptado de (PINEDO, 2005) Figura 1 - Grafo disjuntivo representando problema de sequenciaamento em job-shop As arestas sólidas do grafo disjuntivo, representado pela Figura 1, são chamadas conjuntivas e representam a sequência de máquinas, i.e. roteiro, para cada tarefa. O valor da aresta é o tempo de processamento da tarefa j na máquina i, para a operação (i,j). As arestas tracejadas são disjuntivas e representam escolhas para o sequenciamento de uma máquina, ligando todas as tarefas para uma determinada máquina. Uma vez definida a orientação da aresta disjuntiva,

tem-se a sequência de operações que serão efetuadas em uma máquina. No exemplo da Figura 1, uma seleção das arestas que ligam os nós (1,1); (1,2) e (1,3) consiste na sequência de operações para a máquina 1. Um sequenciamento possível para a máquina 1 pode ser visto na Figura 2. A ordem de processamento das tarefas na máquina 1 seria, dessa forma,. O makespan é dado pelo maior caminho do nó origem (U) ao nó destino (S) após todas as máquinas serem sequenciadas. Fonte: Adaptado de (PINEDO, 2005) Figura 2 - Grafo disjuntivo com sequenciamento da máquina 1 Para resolver problemas desse tipo pode-se trabalhar com heurísticas que são capazes de encontrar boas soluções em um curto espaço de tempo, mas que não oferecem nenhuma garantia que o ótimo será encontrado para o problema estudado. Há ainda algoritmos exatos que enumeram as soluções para encontrar o ótimo, contudo são bastante demorados e, muitas vezes, inviáveis para aplicação prática e não serão discutidas aqui. 2.3. Heurísticas Heurísticas são técnicas encontradas para resolver problemas que, de outra forma, levam uma quantidade enorme de tempo computacional para ser resolvidos. Problemas deste tipo, para os quais não se conhece uma forma eficiente de encontrar a solução, pertencem à classe dos NPcompletos, que representa a complexidade computacional para encontrar o ótimo. Os problemas de sequenciamento em job-shop pertencem a essa classe e, apesar de não poderem ser representados como problemas de programação linear, podem ser vistos muitas vezes na forma de problemas de programação inteira ou disjuntiva. Como o tempo necessário para a resolução desses problemas até o ótimo é muito grande, aceita-se utilizar outras técnicas, capazes de encontrar boas soluções não tão distantes do ótimo de forma relativamente rápida. As heurísticas disponíveis podem ser classificadas em dois grupos: (i) construtivas e (ii) iterativas. Heurísticas construtivas são capazes de resolver o problema em questão de segundos, podendo ser destacadas shifting bottleneck (ADAMS et al., 1988) e regras de priorização (BRANKE, PICKARDT, 2011; RAJENDRAN, HOLTHAUS, 1999; HOLTHAUS, RAJENDRAN, 1997). Já as heurísticas iterativas partem de uma solução inicial buscando melhorar essa solução, destacando-se aquelas de busca em vizinhança (POCHET, WOLSEY, 2009) que são capazes de, dada uma região do espaço solução, melhorar o 7

objetivo atual até chegar a ótimos locais para a função estudada sem, contudo, garantir que o resultado encontrado represente um ótimo global. O tempo de processamento das heurísticas iterativas dependerá do critério de parada na busca, podendo ser por número de iterações ou ainda baseado em percentual de incremento na solução atual mas são, em geral, rápidas. 3. Metodologia A abordagem consiste em tentar resolver o problema de sequenciamento de produção em jobshop utilizando heurísticas de regras de priorização combinadas com aquelas de busca em vizinhança. Heurísticas baseadas em priorização são bastante rápidas. Usadas com regras aleatórias, ou seja, um ordenamento viável, porém tomado ao acaso, podem ser utilizadas para criar milhares de soluções iniciais em questão de segundos. A partir dessas soluções iniciais, tenta-se encontrar soluções melhores com a utilização de heurísticas de busca em vizinhança, mais especificamente Busca Tabu (NOWICKI, SMUTNICKI, 2005; HERTZ et al., 1995). Algoritmos de busca em vizinhança são conhecidos por encontrarem ótimos locais, não garantindo o encontro do ótimo global. O espaço de solução desse tipo de problema apresenta extensas áreas com níveis de solução próximos, com pouco incremento ou redução no objetivo, além de múltiplos pontos de ótimos locais. Existem algumas técnicas que permitem que o algoritmo saia de um ótimo local para que possa testar outras soluções, aumentando-se o passo, ou distância, entre as soluções testadas. Essas técnicas, contudo, não serão discutidas aqui. Com a utilização de um grande número de soluções iniciais para um mesmo problema, podese reduzir o número de iterações do algoritmo de busca em vizinhança e comparar as soluções encontradas para os diversos pontos iniciais, selecionando-se assim, aquele com o melhor objetivo dentre os encontrados. Experimentos utilizando 100 computadores por uma hora foram capazes de encontrar soluções que se aproximam do benchmark para alguns problemas de job-shop. 3.1. Implementação Computacional Para a realização dos experimentos foram necessários o estudo e modificação do código fonte do programa LiSA e o desenvolvimento de scripts algoritmos escritos em bash, uma linguagem de programação presente em sistemas Unix que executam tarefas para administrar a utilização da infraestrutura de malha computacional. Também foi necessária a integração com o programa Industry@Grid que, como o nome sugere, é um esforço de desenvolvimento de algoritmos para propagar a utilização de malhas computacionais aplicadas para a resolução de problemas industriais, tais como estudo de mix de produtos, sequenciamento da produção, roteirização e supply chain. A abordagem consiste em explorar o espaço solução do problema de sequenciamento de jobshop a partir de um grande número de posições iniciais, aplicando um algoritmo de ordenamento aleatório. A aleatoriedade é garantida pelo uso de um gerador de números pseudo-aleatórios (PRESS et al, 2007) que, a partir de um valor inicial, chamado semente, é capaz de gerar uma sequência de números considerados aleatórios. Para uma mesma semente, a sequência se repete, possibilitando a repetição do experimento. Para que o experimento pudesse ocorrer de forma controlada e repetida, o código fonte do algoritmo de priorização contido na distribuição do LiSA foi alterado para receber sementes a partir de um arquivo de texto. Para cada solução inicial um algoritmo de Busca Tabu, é então utilizado. 8

O experimento ocorre da seguinte maneira: i. O usuário fornece um arquivo com o problema, um arquivo com sementes para as diferentes soluções iniciais os experimentos serão tantos quanto o número de sementes e um arquivo com os parâmetros de controle do algoritmo de busca em vizinhança que deseja utilizar, neste caso, Busca Tabu. O arquivo de sementes é dividido em 100 partes e o problema é enviado para 100 computadores, juntamente com uma das partes do arquivo de sementes e o arquivo com os parâmetros de controle. ii. iii. iv. Estes computadores solicitam a transferência do pacote Industry@Grid a partir de um servidor, identificado automaticamente. Cada computador inicia um ciclo onde uma solução inicial é produzida utilizando o algoritmo de priorização modificado. O arquivo de resultado ainda contém a descrição do problema e os parâmetros de controle são substituídos por aqueles presentes no arquivo fornecido pelo usuário. Em seguida, é executado o algoritmo de busca em vizinhança, produzindo um novo resultado. Este processo se repete até todas as sementes fornecidas terem sido utilizadas. Cada computador organiza as soluções em ordem crescente. As soluções com menor makespan são então transferidas para um servidor onde se tornarão acessíveis ao usuário. v. Por fim, o usuário executa um último algoritmo que organiza a melhor solução encontrada por cada um dos 100 computadores utilizados e retorna a melhor solução. Uma representação esquemática dessas etapas pode ser vista na Figura 3. 9

( v ) ( i ) ( iii ) ( i ) ( i ) ( iii ) ( ii ) ( iv ) ( iii ) ( iv ) ( ii ) ( ii ) Servidor ( iv ) Figura 3 - Representação esquemática da implantação computacional 4. Resultados Foram testados problemas de sequenciamento em job-shop de vários tamanhos, variando o número de máquinas e tarefas, m e n, respectivamente. Aqui encontra-se uma análise do resultado de um problema com m = 15 e n = 20, onde o melhor resultado conhecido é C max = 1357. Combinando as heurísticas de regras de priorização e Busca Tabu com a utilização de 100 computadores da malha computacional do projeto GISELA (ANDRONICO et al, 2011) por 1 hora, a melhor solução encontrada foi C max = 1443, estando a apenas 6,34% de distância do benchmark. A Figura 4 apresenta o histograma de distribuição das soluções encontradas durante o estudo. Observa-se que, conforme já discutido, a característica do espaço de soluções deste tipo de problema apresenta um grande número de valores intermediários, próximos entre si. As melhores soluções, no entanto, são poucas, como se observa na cauda à esquerda da figura Figura 4. Pode-se inferir ainda que, com a utilização desta abordagem, consegue-se um resultado em torno de 9% melhor que a média, apresentada no resumo da Figura 4. 10

Frequência XXXII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO 1200 1000 800 600 400 200 0 1500 1600 1700 1800 Makespan Resumo min = 1443 Q1 = 1539 média = 1572 Q3 = 1597 max = 1865 desv.pad = 46.09 Figura 4 - Histograma de distribuição do makespan a partir de 20.000 soluções iniciais Ressalta-se ainda que todos os problemas testados estiveram entre 5 a 10% de distância do benchmark. Para problemas com maior número de tarefas e máquinas foi preciso reduzir a quantidade de soluções iniciais testadas, buscando manter o tempo de processamento em torno de uma hora. 5. Conclusão Neste trabalho foi apresentado o problema de sequenciamento em job-shop e discutidos conceitos e técnicas existentes para sua solução. Em virtude da complexidade computacional para encontrar uma solução ótima, foram utilizadas heurísticas, já existentes, de regras de despacho e busca em vizinhança atacar problemas encontrados na literatura. Utilizando a infraestrutura computacional do projeto GISELA, foi possível criar milhares de soluções aleatórias distintas a partir das quais resultados melhores foram encontrados com o uso da heurística de busca em vizinhança Busca Tabu. Resultados próximos do benchmark conhecido foram encontrados com o uso de 100 computadores ao longo de duas horas para problemas de diferentes tamanhos. A utilização de malhas computacionais possibilita o desenvolvimento de novas formas de resolução de problemas industriais (ou de serviços), seja com a aplicação combinada de técnicas já existentes ou ainda através do desenvolvimento de novas técnicas. Para aplicação prática é preciso estudar a aceitação da metodologia por gestores de Planejamento e Controle da Produção, principalmente no que tange ao compartilhamento de recursos. Uma alternativa ao compartilhamento de recursos (computadores) com outras empresas é a utilização da capacidade ociosa das máquinas da empresa fora do horário de expediente. Os investimentos necessários são baixos, podendo trazer bons resultados para organizações que trabalham com heurísticas mais simples que, em geral, produzem piores resultados quando comparados aos encontrados com a abordagem apresentada. 11

Referências ABBAS, A. Grid Computing: Practical Guide to Technology and Applications. [S.l.]: Charles River Media, 2004. ADAMS, J.; BALAS, E. & ZAWACK, D. The Shifting Bottleneck Procedure for Job Shop Scheduling. Management Science, v.34, n. 3, p.391 401, 1988. ADIBI, M. A.; ZANDIEH, M. & AMIRI, M. Multi-objective scheduling of dynamic job shop using variable neighborhood search. Expert Systems with Applications, v.37, n.1, p.282-287, 2010. ANDRESEN, M. et al. LiSA-A Library of Scheduling Algorithms Handbook for Version 3.0. ANDRONICO, G. et al. e-infrastructures for e-science: A Global View. Journal of Grid Computing, v.9, n.2, p.155-184, 2011. BRANKE, J. & PICKARDT, C. W. Evolutionary search for difficult problem instances to support the design of job shop dispatching rules. European Journal of Operational Research, v.212, n.1, p.22 32, 2011. CARLIER, J. The one-machine sequencing problem. European Journal of Operational Research, v.11, n.1, p.42-47, 1982. CARLIER, J. & PINSON, E. An Algorithm for Solving the Job-Shop Problem. Management Science, v.35, n.2, p.164 176, 1989. CHEN, K. & JI, P. A mixed integer programming model for advanced planning and scheduling (APS). European Journal of Operational Research, v.181, n.1, p.515-522, 2007. GAO, L.; ZHANG, G.; ZHANG, L. & LI, X. An efficient memetic algorithm for solving the job shop scheduling problem. Computers & Industrial Engineering, v.60, n.4, p.699-705, 2011. GLOVER, F. Tabu Search: A Tutorial. Interfaces, Interfaces, v.20, n.4, p.74 94, 1990. HERTZ, A.; TAILLARD, E. & De Werra, D. A tutorial on tabu search. [S.l.], 1995. HOLTHAUS, O. & RAJENDRAN, C. Efficient dispatching rules for scheduling in a job shop. International Journal of Production Economics, v.48, p.87 105, 1997. LEUNG, J. Introduction and Notation. Handbook of Scheduling: Algorithms, Models, and Performance Analysis. Boca Raton: CRC Press, 2004. NOWICKI, E.; SMUTNICKI, C. An Advanced Tabu Search Algorithm for the Job Shop Problem. Journal of Scheduling, v.8, n.2, p.145 159, 2005. PINEDO, M. L. Planning and Scheduling in Manufacturing and Services. New York: Springer, 2005. POCHET, Y.; WOLSEY, L. A. Production Planning by Mixed Integer Programming. New York: Springer, 2006. PRESS, W. et al. Numerical Recipes: The Art of Scientific Computing. New York: Cambridge University Press, 2007. RAJENDRAN, C. & HOLTHAUS, O. A comparative study of dispatching rules in dynamic flowshops and jobshops. European Journal of Operational Research, v.116, n.1, p.156 170, 1999. ROBBINS, S. Lessons in grid computing: the system is a mirror. New York: Wiley, 2006. 12