sequenciamento da produÇÃo em job-shops com o...
TRANSCRIPT
SEQUENCIAMENTO DA PRODUÇÃO
EM JOB-SHOPS COM O AUXÍLIO DE
GRIDS COMPUTACIONAIS
Luiz Rossi de Souza (CEFET)
Diego Moreira de Araujo Carvalho (CEFET)
Rafael Garcia Barbastefano (CEFET)
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
XXXII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO Desenvolvimento Sustentável e Responsabilidade Social: As Contribuições da Engenharia de Produção
Bento Gonçalves, RS, Brasil, 15 a 18 de outubro de 2012.
XXXII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO Desenvolvimento Sustentável e Responsabilidade Social: As Contribuições da Engenharia de Produção
Bento Gonçalves, RS, Brasil, 15 a 18 de outubro de 2012.
2
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
XXXII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO Desenvolvimento Sustentável e Responsabilidade Social: As Contribuições da Engenharia de Produção
Bento Gonçalves, RS, Brasil, 15 a 18 de outubro de 2012.
3
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 t0 até o término do processamento da última tarefa na última máquina tn; (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
XXXII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO Desenvolvimento Sustentável e Responsabilidade Social: As Contribuições da Engenharia de Produção
Bento Gonçalves, RS, Brasil, 15 a 18 de outubro de 2012.
4
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 job-
shop 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 job-
shop. 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.
XXXII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO Desenvolvimento Sustentável e Responsabilidade Social: As Contribuições da Engenharia de Produção
Bento Gonçalves, RS, Brasil, 15 a 18 de outubro de 2012.
5
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:
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,
XXXII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO Desenvolvimento Sustentável e Responsabilidade Social: As Contribuições da Engenharia de Produção
Bento Gonçalves, RS, Brasil, 15 a 18 de outubro de 2012.
7
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 NP-
completos, 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
XXXII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO Desenvolvimento Sustentável e Responsabilidade Social: As Contribuições da Engenharia de Produção
Bento Gonçalves, RS, Brasil, 15 a 18 de outubro de 2012.
8
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 job-
shop 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, pode-
se 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 job-
shop 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.
XXXII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO Desenvolvimento Sustentável e Responsabilidade Social: As Contribuições da Engenharia de Produção
Bento Gonçalves, RS, Brasil, 15 a 18 de outubro de 2012.
9
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. Estes computadores solicitam a transferência do pacote Industry@Grid a partir de um
servidor, identificado automaticamente.
iii. 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.
iv. 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.
XXXII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO Desenvolvimento Sustentável e Responsabilidade Social: As Contribuições da Engenharia de Produção
Bento Gonçalves, RS, Brasil, 15 a 18 de outubro de 2012.
10
Servidor
( i )
( i )
( i )
( ii )
( ii )
( ii )
( iii )
( iii )
( iii )
( v )
( iv )
( iv )
( 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 é Cmax =
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 Cmax = 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.
XXXII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO Desenvolvimento Sustentável e Responsabilidade Social: As Contribuições da Engenharia de Produção
Bento Gonçalves, RS, Brasil, 15 a 18 de outubro de 2012.
11
min = 1443
Q1 = 1539
média = 1572
Q3 = 1597
max = 1865
desv.pad = 46.09
Resumo
Fre
quên
cia
0
200
400
600
800
1000
1200
Makespan
1500 1600 1700 1800
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.
XXXII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO Desenvolvimento Sustentável e Responsabilidade Social: As Contribuições da Engenharia de Produção
Bento Gonçalves, RS, Brasil, 15 a 18 de outubro de 2012.
12
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.