• Nenhum resultado encontrado

UM ALGORITMO DE BUSCA GENÉTICA HÍBRIDA PARA O PROBLEMA DE PROGRAMAÇÃO DE TAREFAS EM JOB SHOP DINÂMICO

N/A
N/A
Protected

Academic year: 2021

Share "UM ALGORITMO DE BUSCA GENÉTICA HÍBRIDA PARA O PROBLEMA DE PROGRAMAÇÃO DE TAREFAS EM JOB SHOP DINÂMICO"

Copied!
9
0
0

Texto

(1)

UM ALGORITMO DE BUSCA GENÉTICA HÍBRIDA PARA O PROBLEMA DE

PROGRAMAÇÃO DE TAREFAS EM JOB SHOP DINÂMICO

Antonio Costa de Oliveira

Universidade Federal do Piauí costa@ufpi.br

Tamio Shimizu

Universidade de São Paulo tmshimiz@usp.br

RESUMO

O problema de programação de tarefas em um job shop dinâmico não determinístico (ou DJSP – dynamic job shop scheduling problem) consiste na programação de tarefas (jobs) que chegam aleatoriamente ao sistema (shop) para serem processadas em máquinas de modo a otimizar alguma medida de desempenho. A chegada aleatória das tarefas ao sistema torna necessária uma reprogramação periódica da seqüência de processamento das mesmas. O DJSP é um novo tipo de problema complexo, pois pode ser representado através da ocorrência de vários problemas de programação de tarefas em um job shop clássico estático (denominado abreviadamente JSP – job shop scheduling problem) no decorrer do tempo. Neste trabalho, um algoritmo de busca genética híbrida para o DJSP com o objetivo de minimizar o atraso total das tarefas é apresentado. Para executar cada reprogramação são desenvolvidas duas versões de uma busca genética híbrida baseadas em uma estrutura combinada de heurísticas do tipo algoritmo genético e busca tabu. As duas versões desta busca genética híbrida diferem quanto à escolha da população inicial de soluções no instante de cada reprogramação. Uma versão utiliza sempre uma população inicial de soluções gerada aleatoriamente, enquanto a outra versão utiliza sempre uma população inicial de soluções que aproveita algum trabalho de programação executado anteriormente.Testes e resultados computacionais obtidos são apresentados. Os resultados destas duas versões da busca genética híbrida são favoráveis quando comparados com as regras de despacho mais utilizados para o DJSP encontradas na literatura. Tal fato encoraja o uso do algoritmo em ambientes mais complexos e realísticos de DJSP, considerando outros eventos estocásticos.

Palavras chaves: programação da produção, dynamic job shop scheduling, algoritmo genético.

ABSTRACT

In a Dynamic Job Shop Problem ( DJSP) jobs arrive to the shop at previously known fixed instants ( deterministic DJSP) or, the arrival time of each job is not known in advance, and we have a problem known as non-deterministic DJSP. Non-deterministic DJSP is considered as being a new type of complex problem, because it may be represented as a sequence of classical static job shop problems (JSP) , while the time runs. This work deals with non deterministic DJSP with the objective of minimizing the total tardiness of jobs. Two versions of a hybrid algorithm, combining genetic and tabu search algorithms, are presented. Computational results of these two versions of hybrid genetic algorithm are compared with the well known dispatching rules used for DJSP, showing that these two heuristics, despite the use of higher CPU times, presented an average of 30% better quality solutions. This result encourages us the use of these hybrid heuristics in a more complex and realistic dynamic scheduling problems, which consider other stochastic events, such as machine break-downs, change of due dates, non-deterministic operation processing times, etc., leading to the analysis of more efficient scheduling procedure in a job shop environment.

(2)

1. Introdução

O problema em job shop clássico estático (JSP) pode ser definido por um conjunto de M máquinas e um conjunto de N tarefas, com cada tarefa consistindo de uma seqüência ordenada de M operações. Cada operação é processada em uma única máquina e preempção não é permitida. Cada máquina pode processar somente uma operação de cada vez, e as operações diferentes da mesma tarefa devem ser processadas em máquinas diferentes. O problema consiste em determinar uma programação, isto é, uma alocação das operações a certos intervalos de tempos nas máquinas de modo a minimizar uma ou mais medida de desempenho.

Definição. O atraso Ti de uma tarefa ji é calculado através da seguinte fórmula:

Ti = max { (Ci – Di), 0 }, onde Ci é o instante de conclusão e Di a data de entrega (due date) da tarefa ji.

O atraso total T é:

n T = Σ Ti . i=1

O JSP clássico estático descreve um processo de produção bastante simplificado. Na realidade, a produção é uma atividade executada continuadamente, no sentido que as tarefas chegam ao shop em lotes (batch) ou bateladas, e no JSP estamos analisando um lote de cada vez, e a natureza da programação da produção real é mais dinâmica do que estática. Em um job shop denominado dinâmico, as tarefas não estão disponíveis em lotes ou bateladas no processo de programação e as tarefas vão chegando aleatoriamente ao sistema. Ou seja, cada tarefa ji tem um instante ou tempo de chegada Ei no sistema, que é instante mais cedo para que a tarefa ji possa começar a ser processada. Quando os instantes de chegada das tarefas são conhecidos a priori, temos o problema de programação de tarefas em um job shop dinâmico determinístico (JSP dinâmico determinístico). Em um ambiente job shop real, em geral, a chegada de uma tarefa ao sistema é um evento estocástico. Conseqüentemente, nem os instantes de chegada das tarefas, nem suas seqüências de operações nas máquinas são conhecidos a priori. Portanto, a programação da produção é não determinística e define um horizonte de tempo aberto. Isto caracteriza o problema de programação de tarefas em um job shop dinâmico não determinístico, que será denominado abreviadamente por DJSP (dynamic job shop scheduling problem). Este modelo ocorre com muita freqüência em aplicações reais nas áreas: industrial, transportes, automação, computação, etc. O controle da seqüência das tarefas processadas em um job shop dinâmico não determinístico é denominado reprogramação, porque eventos estocásticos freqüentemente exigem revisões na programação. Na literatura, o DJSP é geralmente tratado como se fosse uma seqüência de problemas do tipo JSP dinâmico determinístico (Bierwirth et al. 1995; Bierwirth e Mattfeld, 1999 ; Raman e Talbot, 1989).

O makespan de uma programação não depende diretamente dos instantes de chegada das tarefas, mas somente do instante de conclusão da última tarefa. Portanto, esta medida de desempenho não é relevante para ambientes job shop dinâmico. Além disso, em muitos ambientes reais de job shop, especialmente aqueles que produzem sob encomenda, o objetivo principal a ser satisfeito é cumprir a data de entrega das tarefas. Dessa forma, a minimização de uma medida de desempenho, como o atraso, que leve em consideração os instantes de conclusão das tarefas e suas respectivas datas de entrega, é de relevância mais prática do que o makespan. Até o momento poucas pesquisas foram orientadas para desenvolver métodos eficientes de solução para os problemas de programação em job shop dinâmico, tendo como objetivo a minimização do atraso total das tarefas.

A finalidade deste trabalho consiste em mostrar: a) As vantagens de uma heurística genética híbrida em relação às regras de despacho mais eficientes para problemas de job shop com o objetivo de minimizar o atraso total das tarefas, b) Verificar a influência da qualidade da população inicial no desempenho da heurística genética híbrida. Este artigo está dividido em 5 seções. Na seção 2 são apresentados os fundamentos de algoritmos genéticos. Na seção 3 é apresentada a heurística

(3)

desenvolvida para o DJSP. Os testes e resultados computacionais são discutidos na seção 4, enquanto na seção 5 são apresentadas as conclusões finais.

2. Algoritmos Genéticos

Diferente dos algoritmos convencionais de busca local que são baseados na manipulação de uma solução viável, um algoritmo genético inicia o processo de busca com um conjunto de soluções iniciais chamada população. Cada indivíduo na população é chamado um cromossomo, representando uma solução do problema. Um cromossomo é usualmente, um string ou seqüência de genes representados por símbolos, que podem ser bits ou outros símbolos representativos. Os cromossomos evoluem através de sucessivas iterações, chamada gerações. Durante cada geração, os cromossomos são avaliados usando uma função de adequação, também chamada fitness. Para criar a próxima geração, novos cromossomos chamados proles (offsprings) são formados:

a) Combinando dois cromossomos da população presente usando um operador de cruzamento (crossover); ou

b) Modificando um cromossomo usando um operador de mutação. Uma nova população é formada:

a) Selecionando indivíduos com os melhores valores da função de adequação entre os pais e as proles; e

b) Rejeitando outros de modo a manter o tamanho da população constante.

Cromossomos com valores altos para as funções de adequação possuem probabilidades maiores de serem selecionados, no caso de problemas de maximização. Depois de diversas gerações, o algoritmo converge para o melhor individuo ou cromossomo, o qual espera-se que represente uma solução ótima ou sub ótima para o problema (Gen e Cheng, 1997).

3. Heurística para o DJSP

A busca genética híbrida desenvolvida para o DJSP é composta de duas fases. Na fase I uma boa solução é obtida através da aplicação de um algoritmo genético. Esta solução é refinada na fase II através de uma busca tabu.

3.1. Projeto do Algoritmo Genético

As pesquisas sobre algoritmos genéticos para o DJSP não são numerosas. Bierwirth et al. (1995) e Bierwirth e Mattfeld (1999), desenvolveram um algoritmo genético para o DJSP tendo como medida de desempenho o tempo médio de fluxo (mean flowtime). Este algoritmo utiliza uma representação baseada em operação, e um operador de cruzamento que sempre gera proles viáveis. O referido algoritmo se mostrou uma alternativa eficiente para o JSP com makespan e em DJSP com mean flowtime. Fang et al. (1996) desenvolveram um algoritmo genético para o JSP dinâmico determinístico. Neste algoritmo cada gene no cromossomo representa a codificação de um par de valores (Método, Heurística), o qual denota o método que deve ser usado para obter o conjunto conflitante de operações programáveis na iteração k, e a heurística a ser usada para selecionar uma operação do referido conjunto. Os resultados obtidos foram promissores. Entretanto, eles afirmam que são necessárias algumas modificações no algoritmo, para torná-lo mais eficiente.

O algoritmo genético desenvolvido para o DJSP com o objetivo de minimizar o atraso total das tarefas consiste dos seguintes elementos:

Codificação: A codificação usada é a representação baseada em lista de preferência (prioridade).

Ou seja, um cromossomo é formado por m listas de preferência (subcromossomos), sendo uma lista para cada máquina. A ordem das operações dentro de cada subcromossomo é interpretada como uma seqüência de operações, examinadas da esquerda para direita no processo de decodificação.

A programação é definida implicitamente pelos cromossomos. Para determinar a programação real de um dado cromossomo, é necessário executar uma simulação do sistema.

(4)

Cruzamento: Em problemas de job shop as posições relativas de dois genes são importantes, porque

durante o processo de decodificação de cromossomos, as prioridades entre duas operações são determinadas de acordo com as suas posições relativas no cromossomo. Esta informação deve ser passada com o objetivo de produzir prole competitiva. O operador de cruzamento usado é o LOX (Linear Order Crossover) proposto por Falkenauer e Boufpovix (1991). Este operador procura preservar o máximo possível as posições relativas entre os genes e as posições absoluta relativas as extremidades dos cromossomos. As extremidades correspondem às operações de mais alta e de mais baixa prioridade.

Mutação: O operador de mutação usado é o de permutação, que consiste em permutar as posições de

dois genes escolhidos aleatoriamente.

Decodificação dos cromossomos: Os cromossomos podem ser decodificados em programações:

semi-ativa, ativa ou non delay. Estes três tipos de programações são gerados incorporando no processo de decodificação conhecimentos específicos sobre o problema.

De acordo Baker (1998), as programações ativas formam o menor conjunto dominante de problemas em job shop com medida de desempenho regular. Portanto, o nosso esquema de decodificação gerará somente programações ativas, ou seja, o nosso algoritmo genético realizará a busca no espaço de programações ativas. Isto garantirá que a programação (solução) ótima está sendo levada em consideração no processo de busca.

3.2. Projeto da Busca Tabu

Busca Tabu é uma metaheurística baseada em busca local desenvolvida por Glover (1989) para resolver problemas de otimização combinatória e tem sido aplicada com sucesso a uma variedade de problemas (Glover e Laguna, 1997). Iniciando de uma solução viável, a busca move de uma solução para outra escolhendo a melhor solução na vizinhança da atual solução, através de um movimento que não esteja na lista tabu (lista de movimentos proibidos). Movimentos com certos atributos podem ser proibidos para evitar o fenômeno da ciclagem, e também para guiar o processo de busca em direção a regiões ainda não exploradas. Os principais componentes de uma busca tabu são a memória adaptativa e a estratégia de busca. A memória adaptativa pode ser dividida em memória de curto e de longo prazo, e serve para armazenar informações sobre a evolução da busca, enquanto que, a estratégia de busca usa estas informações para guiar a busca da melhor maneira possível.

A codificações de soluções é baseada no modelo de grafo disjuntivo para o problema. Usando como solução inicial à solução obtida pelo algoritmo genético, é possível construir um grafo acíclico orientado, e então calcular o caminho critico de cada uma das tarefas. Usando a informação dos caminhos críticos, uma tentativa é feita para encontrar novas soluções através da inversão dos arcos pertencentes aos caminhos críticos das tarefas. O arco a ser invertido é aquele que gera o menor atraso total. Scricth e Armentano (2000) mostraram que a inversão de um arco disjuntivo pertencente ao caminho critico de uma tarefa não causa ciclos no grafo, e que a inversão de arcos disjuntivos que não pertençam aos caminhos críticos das tarefas, se resultar em soluções viáveis, não causa melhoria na medida de desempenho.

3.3. Decomposição Temporal de um DJSP

O processo de produção é tipicamente suposto durar além da conclusão de qualquer das tarefas conhecidas. Portanto, a programação da produção trata com um horizonte aberto de tempo. Por esta razão, na prática a programação da produção é freqüentemente baseada em simulações guiadas por eventos estocásticos, usando regras de despacho para alocação das máquinas. Na aplicação do nosso algoritmo genético híbrido no DJSP, seguimos uma abordagem proposta por Raman e Talbot (1989), para lidar com situações onde as tarefas chegam não determinísticamente ao sistema. Esta abordagem decompõe um problema de programação de tarefas em um job shop dinâmico não

(5)

Durante toda a aplicação da busca genética híbrida manteremos sempre populações de soluções. Em to=0, início do horizonte total de planejamento, teremos um problema Po formado por todas as tarefas com tempo de chegada 0. Formaremos a população inicial de soluções So usando regras de despacho, e refinamos So usando uma busca genética híbrida composto pelo algoritmo genético e busca tabu. A melhor solução encontrada é implementada até a ocorrência de um evento estocástico em t1 > 0. A resolução de Po nos leva a uma tabela com os tempos de início para todas as operações envolvidas.

Para construir o novo problema P1, removemos todas as operações Oij de Po com tempos de início tij < t1. Isto é executado modificando as tarefas ji de Po que tenham operações iniciando no período de to até t1.

Finalmente adicionamos a tarefa jn+1 que chegou ao sistema no tempo t1 = En+1, à programação modificada. Esta programação modificada resulta em um novo problema dinâmico determinístico P1. Agora o problema P1 pode ser resolvido usando uma busca genética híbrida, obtendo-se dessa forma uma reprogramação do sistema.

Até a ocorrência de outro evento estocástico em t2, todas as operações com tempos de início antes de t2, são implementadas no sistema de manufatura. Repetindo este procedimento sempre que ocorra um evento estocástico, o job shop é re-programado periodicamente.

3.4. Reprogramação

A maneira mais simples de se usar uma busca genética híbrida para reprogramação é tomar um instantâneo t do sistema de manufatura correspondendo à chegada de uma nova tarefa e formular o correspondente JSP dinâmico determinístico, com as tarefas existentes até esse instantâneo t. Iniciando com uma população gerada aleatoriamente, a busca genética híbrida resolve o referido problema e retorna a melhor solução encontrada. Esta solução é implementada no sistema de manufatura até a chegada de uma nova tarefa. Dessa maneira a busca genética híbrida é reiniciada a cada chegada de uma nova tarefa.

Uma abordagem mais sofisticada é aproveitar algum trabalho já feito. Quando chega uma nova tarefa ao sistema no instante t, um novo problema DJSP é formulado como já foi citado acima. Entretanto, a população inicial de cada busca genética híbrida é agora obtida da população final da busca genética híbrida prévia, através do ajuste desta população às exigências do novo problema. Este ajuste segue os passos apresentados no item 3.3. Em outras palavras, é dado um viés no processo de busca através da geração da população inicial usando como semente uma população otimizada referente à aplicação da busca genética prévia.

Grefenstett (1987) afirma que uma boa população inicial freqüentemente leva a uma convergência mais rápida de um algoritmo genético, o que por sua vez resultará em considerável economia de tempo de CPU. Esta afirmação será investigada para o DJSP através de experimentos computacionais.

4. Testes e Resultados Computacionais

Nos experimentos computacionais são feitos implementações de quatro regras de despacho e de duas versões da heurística genética híbrida. Estas duas versões serão denominadas HGS – hybrid genetic search e HGS + IS – hybrid genetic search + initial seed. A heurística HGS sempre inicia com uma população gerada aleatoriamente, enquanto que a heurística HGS+IS sempre aproveita os fragmentos de soluções da população otimizada referente à aplicação da busca genética prévia.

Os resultados obtidos através das heurísticas HGS e

HGS + IS são comparados entre si e também com os resultados obtidos através da aplicação das

regras de despacho MDD e MOD (Baker e Kanet, 1983), CR + SPT e S/RPT + SPT (Anderson e Nyrenda, 1990) no mesmo problema DJSP. Estas regras de despacho foram escolhidas devido a sua simplicidade e eficiência em problemas de job shop que envolvem atraso. Estas regras de despacho são descritas abaixo. A seguinte notação é usada:

(6)

k - k-ésima operação da tarefa ji;

Pj - tempo requerido pelas operações restantes da tarefa j, a partir do instante t;

M - número total de operações de cada tarefa;

pij - tempo de processamento da operação i da tarefa ji; Ej - instante de chegada da tarefa ji ao sistema;

dkj – data de entrega da operação k da tarefa ji;

MDD (modified due date): seleciona a operação associada com a tarefa que possui a data de entrega

modificada mais cedo. Define-se a data de entrega modificada da tarefa ji da seguinte maneira: Dj’ = max { Dj, t + Pj}

MOD (modified operation due date): é a versão da MDD considerando-se como base às operações e

não a tarefa. A data de entrega da k-ésima operação da tarefa ji é definida da seguinte maneira: dkj’ = max { dkj, t + pkj }

a data de entrega da operação k, é calculada através da seguinte fórmula recursiva: m

dkj = dk-1,j + (Dj – Ej).pkj/ Σ pij, doj = Ej

i=1

CR + SPT: combinação de “critical ratio” (CR) com “shortest processing time” (SPT). Nesta regra a

data de entrega da k-ésima operação da tarefa ji é definida como: dkj = max { t + β(t).pkj, t + pkj } com

β(t) = aj(t)/Pj e aj(t) = Dj – t; .

S/RPT + SPT: combinação de “slack per remaining processing time” (S/RPT) com SPT. Esta regra

difere da anterior, pois no lugar de CR usa-se S/RPT e, neste caso, a data de entrega da k-ésima operação é definida como:

dkj = max { t + γ(t).pkj, t + pkj } com γ(t) = (Dj – (t + Pj)) / Pj = β(t) -1

As heurísticas HGS, HGS + IS e as regras de despacho MDD, MOD, CR+SPT e S/RPT +

SPT foram implementadas em linguagem C++, e os testes realizados em um computador Pentium

III/733 Mhz. Foi também desenvolvido um programa gerador de DJSP´s para a realização destes testes.

Os DJSP´s (problemas testes) usados neste trabalho para os testes computacionais foram gerados baseados na literatura sobre simulação de sistemas de manufatura (Holthaus e Rajendran, 1997). A modelagem do processo de chegada das tarefas no sistema de manufatura é um fator importante nos testes computacionais de heurísticas para o DJSP. Isto se deve ao fato de que o intervalo entre os instantes de chegada das tarefas influi no workload do sistema de manufatura. O workload é definido como o número de operações no sistema que aguardam processamento.

Na modelagem de um sistema dinâmico de manufatura, a média entre os instantes de chegada das tarefas ao sistema, o qual foi aqui denominado de λ, pode ser calculada através da divisão do tempo de processamento médio das tarefas, denominado aqui de P pelo produto do número de máquinas M no sistema e da taxa “desejada” de utilização do sistema, denominada U, isto é,

λ = P (1)

(7)

1. Consiste de 5 máquinas;

2. Cada tarefa consiste de 5 operações, com cada operação processada em máquinas diferentes;

3. A ordem de processamento das operações de cada tarefa nas máquinas é gerada de uma distribuição uniforme de probabilidade;

4. Os tempos de processamento das operações estão distribuídos uniformemente no intervalo [1,19]; 5. Para cada tarefa é designada uma data de entrega, que propicia a ela uma “permissão” de tempo de

fluxo no sistema (flow allowance), que é proporcional ao seu tempo de processamento (Raman e Talbot, 1993), resultando em:

Di = Ei + F*Pi, onde

Di - a data de entrega da tarefa ji;

Ei - instante de chegada da tarefa ji ao sistema;

Pi - tempo total de processamento da tarefa ji, e F - fator de “permissão” de tempo de fluxo no sistema (flow allowance) que controla a aperto ou a folga da data

de entrega da respectiva tarefa.

O valor de F usado em todas as simulações foi F = 1.5.

1. Os intervalos entre os instantes de chegada das tarefas ao sistema, foram gerados por um processo de Poisson, baseado no valor de λ e usando várias taxas de utilização U.

Os problemas testes gerados são divididos em três grupos, baseados no valor de U: Problemas testes correspondendo a sistemas com carregamento leve consistem somente de umas poucas tarefas, os quais chegam ao sistema em intervalos bastante espaçados; Os problemas testes com carregamento pesado consistem de muitas tarefas, os quais chegam ao sistema em intervalos pequenos. Um acréscimo U leva a um decréscimo de λ o qual resulta em um grande número de operações a serem programadas simultaneamente. Isto é, um valor grande de U gera problemas difíceis e vice-versa.

Os valores de U usados são:

a) taxas de utilização U ε {0.65, 0.70}, o qual representa um carregamento leve do sistema de manufatura;

b) taxas de utilização U ε {0.75, 0.80}, o qual corresponde a um carregamento moderado do sistema e.

c) taxas de utilização U ε {0.85, 0.90}, o qual produz um carregamento pesado do sistema.

Para cada valor da taxa de utilização U, foram executadas 25 simulações, consistindo cada uma delas de 200 tarefas. Portanto, foram gerados e resolvidos 150 problemas testes no total.

Foram realizados exaustivos testes para ajuste dos parâmetros da nossa busca genética. Aqueles que forneceram melhores resultados e, portanto, foram utilizados em todas as simulações do algoritmo genético foram: população de 50 indivíduos, taxa de cruzamento 0.80, taxa de mutação 0.20 e estratégia de seleção por roleta. Estratégia de substituição total da população a cada geração, juntamente com a estratégia elitista. Os problemas resolvidos a cada reprogramação possuem dimensões que variam de acordo com o número de tarefas presente no sistema. Portanto, foi usado um critério flexível de parada, que procura tirar vantagem de uma possível convergência rápida do algoritmo genético. O algoritmo pára, quando são executadas N gerações sem qualquer melhoria no valor da melhor solução, onde N é o número de tarefas no presente problema.

A nossa busca tabu é usada para refinar a melhor solução encontrada para o presente problema pelo algoritmo genético. Tendo em vista que os problemas possuem dimensões variáveis, e que está se buscando uma solução de boa qualidade a um esforço computacional razoável, foi usada uma busca tabu somente com memória de curto prazo e com N iterações, onde N é o número de tarefas no presente problema.

A regra de despacho que teve melhor desempenho foi a regra MOD, portanto ela foi escolhida para comparação detalhada com as heurísticas HGS+IS e HGS. Cada regra de despacho levou 0.10 segundos de tempo de CPU em uma reprogramação.

Os resultados dos testes computacionais estão resumidos na tabela 1 e nos levou as seguintes conclusões:

(8)

Tabela 1 – Apresentação concisa dos resultados computacionais (valores médios).

No geral, a regra MOD foi a que apresentou um melhor resultado entre as regras de despacho, sendo que à medida que aumenta a taxa de utilização U, melhora o desempenho da regra MDD. Para sistemas com carregamento pesado (U = 0.90), as regras MDD e MOD tiveram um desempenho praticamente idêntico.

Para sistemas com carregamento leve (U = 0.65 e U = 0.70), parece ser indiferente a

escolha de HGS+IS ou HGS.. Isto pode ser devido aos fragmentos de soluções serem formados de muita poucas operações, que torna indiferente aproveitar os fragmentos de soluções da população otimizada pela busca genética prévia ou gerar uma população inicial aleatória.

Para sistemas com carregamento moderado (U = 0.75 e

U = 0.80), torna-se evidente a superioridade da heurística HGS+IS sobre HGS. Quando o sistema

possui carregamento pesado (U = 0.85 e U = 0.90), torna-se maior a superioridade de HGS+IS em relação a HGS e também maior a superioridade das heurísticas HGS+IS e HGS sobre a regra MOD. Isto pode ser visto na tabela 1 e também no gráfico 1. Disto pode ser concluído que a medida em que os fragmentos de soluções da população otimizada da busca genética prévia possuem mais operações, torna-se mais proveitoso seu aproveitamento para formar a nova população inicial para reprogramação do sistema.

Em todos os tipos de simulações realizadas (sistema leve, moderado e pesado), as heurísticas HGS+IS e HGS foram bem superiores as regras de despacho. Além disso, HGS+IS sempre convergiu em menor tempo de CPU do que HGS. Portanto, é muito provável que em todos os casos a escolha de HGS+IS seja mais proveitosa.

TOTAL TARDINESS 0 5.000 10.000 15.000 20.000 25.000 30.000 35.000 40.000 45.000 0 1 2 3 4 5 6 7 HGS+IS HGS MOD 0.65 0.70 0.7 0.80 0.85 0.90 Utilization Rate U

Gráfico 1 – Crescimento do Atraso Total em Função do Carregamento no Sistema

.

MOD HGS+IS HGS MOD HGS+IS HGS HGS+IS HGS HGS+IS HGS

0.65 8.474,26 6.074,20 6.138,42 8,68 7,74 7,77 48,83 66,69 0,74 0,98 0.70 11.663,48 8.021,02 8.281,32 10,39 8,98 9,10 57,03 83,35 0,94 1,28 0.75 16.549,36 10.844,90 11.699,22 12,81 10,51 11,05 66,93 122,29 1,59 3,03 0.80 23.771,14 15.485,52 16.827,80 16,51 14,79 16,14 88,75 228,39 3,86 7,86 0.85 32.756,06 22.360,74 24.869,02 20,82 15,61 16,51 93,73 225,08 3,63 6,56 0.90 38.484,60 25.893,34 29.171,22 23,53 19,37 21,21 127,96 395,13 12,09 29,05 TEMPO DE CPU (seg) ATRASO TOTAL TAXA DE UTILIZAÇÃO U NÚMERO DE TAREFAS NO SISTEMA NÚMERO DE GERAÇÕES

(9)

A heurística que encontra uma solução de melhor qualidade, sempre conclui em média um maior número de tarefas a cada reprogramação. A heurística que teve um melhor desempenho, em termos de qualidade da solução, se mantém superior às outras heurísticas em quase todo o período de programação. Isto se torna mais nítido a partir da chegada da tarefa 50. Para U = 0.90 as heurísticas genéticas híbridas resolveram problemas com dimensão média de 71.35 operações e fixaram 4.48 operações a cada reprogramação.

5. Conclusões Finais

Neste artigo apresentamos uma heurística genética híbrida eficiente para o problema de programação de tarefas em job shop dinâmico não determinístico com o objetivo de minimizar o atraso total das tarefas. Conhecimentos específicos sobre o problema foram usados para reduzir o espaço de busca. Uma abordagem de decomposição temporal foi usada para decompor um problema de produção não determinístico em uma seqüência de problemas dinâmicos determinísticos. As heurísticas HGS e HGS+IS mostraram, que com um esforço computacional um pouco maior em relação às regras de despacho, pode-se conseguir uma solução de qualidade média 30% superior. Em problemas reais existem outros eventos estocásticos tais como: atrasos no tempo de processamento das tarefas, quebra de máquinas e mudanças de data de entrega. Estes eventos serão tratados em trabalhos posteriores.

Referências Bibliográficas

ANDERSON, E.J.; NYRENDA, J.C. Two new rules to minimize tardiness in a job shop. International Journal of Production Research, v.28, n.12, p.2277-92, 1990.

BAKER, K. R; KANET, J.J. Job shop scheduling with modified due dates. Journal of Operations Management, v.4, n.1, p.11-22, 1983.

BAKER, K. R. Elements of sequencing and scheduling. Hanover, NH., K. R. Baker, 1998.

BIERWIRTH, C. et al. Genetic algorithm based scheduling in a dynamic manufacturing environment. IEEE NTERNATIONAL CONFERENCE ON EVOLUTIONARY COMPUTATION, Perth, Australia, 1995. Proceedings. Perth, Australia, 1995. p.439-43.

BIERWIRTH, C; MATTFELD, C.D. Production scheduling and rescheduling with genetic algorithms. Evolutionary Computation, v.3, n.1, p.1-17, 1999.

FALKENAUER, E.; BOUFFOIX J. A Genetic algorithm for job shop. In: IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION, 1991. Proceedings. Sacramento, CA, IEEE, 1991. p.824-29.

FANG, H., ROSS. P.; CORNE D. A genetic algorithm for job shop problems with various schedule quality criteria. In: ALSB Workshop. Proceedings. Berlin, Germany., Springer Verlag, p.39-49, 1996

GEN, M; CHENG. R. Genetic algorithm & engineering design. New York, John Wiley & Sons, 1997.

GLOVER, F. Tabu search, part I. ORSA Journal on Computing, v.1, n.3, p.190-206, 1989. GLOVER, F; LAGUNA, M. Tabu search. Boston, Kluwer, 1997.

GREFENSTETTE, J. Incorporating problem specific knowledge in genetic algorithms. In: DAVIS, L., ed. Genetic algorithms and simulated annealing. San Mateo, CA., Morgan Kaufmann, 1987. p.42-60.

HOLTHAUS, O. e RAJENDRAN, C. Efficient dispatching rules for scheduling in a job shop. International Journal of Production Economics, v. 48, n.1, p.87-105, 1997.

RAMAN, N.; TALBOT, F. Real time scheduling of an automated manufacturing center. European Journal of Operacional Research, v.40, p.222- 42, 1989.

RAMAN, N.; TALBOT, F. The job shop tardiness problem: a decomposition approach. European Journal of Operacional Research, v.69, p.187-99, 1993.

Referências

Documentos relacionados

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

No final, os EUA viram a maioria das questões que tinham de ser resolvidas no sentido da criação de um tribunal que lhe fosse aceitável serem estabelecidas em sentido oposto, pelo

Para analisar as Componentes de Gestão foram utilizadas questões referentes à forma como o visitante considera as condições da ilha no momento da realização do

Desde logo, a nossa compreensão e interpretação da importância funcional e ritual das lamentações públicas das carpideiras e dos carpideiros egípcios é sublinhada pelo

O Fórum de Integração Estadual: Repensando o Ensino Médio se efetiva como ação inovadora para o debate entre os atores internos e externos da escola quanto às

Na experiência em análise, os professores não tiveram formação para tal mudança e foram experimentando e construindo, a seu modo, uma escola de tempo

No capítulo 4 são abordados os principais resultados obtidos diante das restrições impostas à coleta de dados, bem como a avaliação dos dados obtidos caracterizando os períodos

Esse tipo de teste relaciona-se com este trabalho pelo fato de que o servidor OJS será instalado e configurado pelo autor deste trabalho, ou seja, informações como sistema