UMA HEURÍSTICA VNS MULTIOBJETIVO PARA O PROBLEMA DE SEQUENCIAMENTO DE TAREFAS EM UMA MÁQUINA COM PENALIDADES POR ANTECIPAÇÃO E ATRASO E FLUXO TOTAL

Documentos relacionados
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

UM MÉTODO HEURÍSTICO HÍBRIDO PARA A RESOLUÇÃO DO PROBLEMA DE SEQÜENCIAMENTO EM UMA MÁQUINA COM PENALIDADES POR ANTECIPAÇÃO E ATRASO DA PRODUÇÃO

ALGORITMO VNS MULTI-OBJETIVO PARA UM PROBLEMA DE PROGRAMAÇÃO DE TAREFAS EM UMA MÁQUINA COM JANELAS DE ENTREGA


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

RESUMO. Área principal: Metaheurísticas (MH)

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

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

Problema de Seqüenciamento em uma Máquina com Penalidades por Antecipação e Atraso: Modelagem e Resolução

PALAVRAS-CHAVE. Algoritmos Genéticos, GRASP, Metaheurísticas, Reconexão por caminhos, Sequenciamento em uma máquina

4 Métodos Existentes. 4.1 Algoritmo Genético

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

Palavras-chaves: Sequenciamento em uma Máquina, Algoritmo Genético Adaptativo, Metaheurística

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

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

Minimização do custo de antecipação e atraso para o problema de sequenciamento de uma máquina com tempo de preparação dependente da sequência.

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

Sistemas de Produção em Fluxo

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

5 VNS com Filtro e Reconexão por Caminhos

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

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

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

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

Pesquisa Operacional Aplicada à Mineração

MÉTODOS DE OTIMIZAÇÃO MULTIOBJETIVO

Iterated Local Search. Helena R. Lorenço, Olivier Martinz and THOMAS STUTZLE

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

UMA HEURÍSTICA HÍBRIDA PARA O PROBLEMA DE SEQUENCIAMENTO DE TAREFAS EM MÁQUINAS PARALELAS NÃO RELACIONADAS

Nuno Miguel Duarte Sequeira André VARIABLE NEIGHBOURHOOD SEARCH

Introdução aos Problemas de Roteirização e Programação de Veículos

Uma Heurística GRASP Híbrida para um Problema de Otimização Combinatória Multiobjetivo

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

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

HEURÍSTICAS GRASP E ILS PARA O PROBLEMA NO-WAIT FLOWSHOP SCHEDULING MULTIOBJETIVO

UM ALGORITMO HEURÍSTICO PARA O PROBLEMA DE GERENCIAMENTO DE ESCALA OPERACIONAL DE CONTROLADORES DE TRÁFEGO AÉREO

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

UMA HEURÍSTICA GRASP PARA O PROBLEMA DE PROGRAMAÇÃO FLOWSHOP MULTICRITÉRIO

Problemas de otimização

A HYBRID HEURISTIC ALGORITHM FOR JOB SCHEDULING PROBLEM ON A SINGLE-MACHINE

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

Otimização Combinatória - Parte 4

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

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

MÉTODOS EXATO E HEURÍSTICO PARA O PROBLEMA DE LOCALIZAÇÃO DAS P-MEDIANAS COM DOIS OBJETIVOS

Sequenciamento de Tarefas

RESOLUÇÃO DO PROBLEMA DAS P-MEDIANAS POR MEIO DE ALGORITMOS BASEADOS EM GRASP, ILS E MULTI-START

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

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

Ummétodohíbridoparaescalonar turnosdeenfermeiras

HEURÍSTICAS PARA O PROBLEMA DE SEQUENCIAMENTO EM UMA MÁQUINA COM PENALIDADES

Uma Introdução à Busca Tabu André Gomes

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

HEURÍSTICAS PARA O PROBLEMA DE SEQUENCIAMENTO EM UMA MÁQUINA COM PENALIDADES POR ANTECIPAÇÃO E ATRASO

METAHEURÍSTICA Encontrar soluções boas ou até mesmo ótima

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

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

GRASP para o Problema do Caixeiro Viajante com Limite de Calado

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

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

Uma solução exata para o Problema de Localização de Concentradores com Alocação Múltipla

3 Aprendizado por reforço

OTIMIZAÇÃO DO SEQUENCIAMENTO DE PRODUÇÃO COM ABORDAGEM JUST- IN-TIME E TEMPOS DE SETUP DEPENDENTES DA SEQUÊNCIA EM UMA USINA SIDERÚRGICA

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

Multi disciplinar REGRA DE PRIORIDADE PARA O PROBLEMA DE FLOWSHOP HÍBRIDO COM MÁQUINAS PARALELAS NÃO RELACIONADAS. Científica

ALGORITMO GENÉTICO COM BUSCA LOCAL APLICADO AO PROBLEMA DE JUST-IN-TIME JOB-SHOP SCHEDULING

Escalonamento usando múltiplos períodos

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

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

SEQUENCIAMENTO EM UMA MÁQUINA:

Rio de Janeiro- Brasil, 05 e 06 de agosto de ISSN SPOLM 2009

Um estudo das heurísticas Simulated Annealing e VNS aplicadas ao problema de programação de tripulações

4 Implementação Computacional

ANA AMÉLIA DE SOUZA PEREIRA METAHEURÍSTICAS PARA O PROBLEMA DE FLOWSHOP FLEXÍVEL COM PENALIDADES DE ADIANTAMENTO E ATRASO

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

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

Algoritmos genéticos para o problema de programação de tarefas em máquinas paralelas idênticas com dois critérios

SEQUENCIAMENTO DE TAREFAS EM MÁQUINAS PARALELAS COM TEMPOS DE PREPARAÇÃO E PRECEDÊNCIA ENTRE AS TAREFAS: MODELAGEM E HEURÍSTICAS CONSTRUTIVAS

3 Extensões dos modelos matemáticos

INFORMAÇÕES GERAIS DO TRABALHO

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

MÉTODOS NEWTON E QUASE-NEWTON PARA OTIMIZAÇÃO IRRESTRITA

SOBRE ESCALONAMENTO EM MÁQUINAS PARALELAS COM CAPACIDADES DISTINTAS

GBT: GRASP + BUSCA TABU EM PROBLEMAS DE SCHEDULING

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

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

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

Henrique Daniel Oliveira Lopes

Teoria da Decisão. Otimização Vetorial. Prof. Lucas S. Batista. lusoba

TWTJSSP-ILS: UM ALGORITMO HEURÍSTICO PARA RESOLVER O PROBLEMA JOB-SHOP SCHEDULING COM PENALIDADE PELO TEMPO DE ATRASO

2 Problemas de Escalonamento

7. Resultados. 7 MATLAB é um produto da The MathWorks, Inc.

Algoritmos Combinatórios: Introdução

Algoritmo heurístico para agrupamento de ordens de serviço em concessionárias de distribuição de energia elétrica considerando priorização

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

ILS com reconexão de caminhos entre ótimos locais para um problema clássico de escalonamento com antecipação e atraso

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

Proposta de um algoritmo para o problema de sequenciamento em máquina única com tempos de setup

Transcrição:

XXX ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO Maturidade e desafios da Engenharia de Produção: competitividade das empresas, condições de trabalho, meio ambiente. São Carlos, SP, Brasil, 12 a15 de outubro de 2010. UMA HEURÍSTICA VNS MULTIOBJETIVO PARA O PROBLEMA DE SEQUENCIAMENTO DE TAREFAS EM UMA MÁQUINA COM PENALIDADES POR ANTECIPAÇÃO E ATRASO E FLUXO TOTAL Adao Egas Castro Paiva (UFV) adaoegas.paiva@gmail.com JOSE ELIAS CLAUDIO ARROYO (UFV) jose.e.arroyo@gmail.com Rafaela dos Santos Ottoni (UFV) voviz.ottoni@gmail.com Para sobreviver no mercado atual, as empresas precisam oferecer não somente uma grande variedade de produtos a preços acessíveis, mas também cumprir o prazo de entrega destes. Assim, muitas organizações têm dirigido seus esforços para a Proogramação da Produção, com o intuito de realizar a fabricação e entrega dos produtos dentro do prazo e com o menor custo possível. Nesse sentido, este trabalho tem como objetivo avaliar a aplicação da heurística MOVNS (Multi-objective Variable Neighborhood Search) para a resolução do problema de seqüenciamento de tarefas em uma máquina, de forma a minimizar as penalidades por atrasos e adiantamentos, assim como o tempo de fluxo total. Para tal, foram testadas duas versões: a primeira, proposta por Liang e Lo (2007), e a segunda, constituída a partir do acréscimo de uma fase de intensificação na versão original. Neste estudo, são usadas também as regras EDD (Earliest Due Date) e SPT (Shortest Processing Time) para gerar as soluções iniciais e um algoritmo para a determinação das datas ótimas de início de processamento das tarefas (WAN & WEN, 2002). Experimentos computacionais realizados com um conjunto de 72 problemas-teste, gerados aleatoriamente, indicaram que a versão da heurística proposta neste trabalho apresenta um melhor desempenho na obtenção de soluções dominantes de Pareto. Palavras-chaves: Metaheurísticas, Programação de tarefas, Otimização Combinatória

1. Introdução Atualmente, com a crescente necessidade de reduzir os custos e também de conquistar novos clientes, é cada vez mais importante tornar a linha de produção mais flexível e capaz de atender às necessidades dos mesmos, tanto em relação à quantidade a ser produzida quanto ao prazo de entrega exigido. Neste contexto, assim como o planejamento, a programação da produção torna-se fundamental para a tomada de decisões relativas ao chão de fábrica. A programação da produção consiste em, a partir de um planejamento, fazer a alocação e a programação de tarefas a serem realizadas em cada máquina, decidindo assim a sequencia e o momento em que cada uma será executada. A forma como os recursos produtivos são alocados no tempo e a ordem de realização das tarefas, quando bem definidas, aumentam o grau de eficiência com o qual as organizações gerenciam sua capacidade produtiva. Assim, uma programação bem realizada torna-se sinônimo de maior competitividade. Inserido neste contexto de programação, o sequenciamento da produção tem a finalidade de definir qual é a melhor sequencia de execução das ordens pendentes, de forma a permitir o melhor aproveitamento dos recursos e a entrega dos bens dentro do prazo estipulado. Dentre as muitas situações possíveis, é adotado para estudo neste trabalho o problema do sequenciamento de tarefas em uma máquina (ST1M), sujeitas a penalidades por antecipação e atraso. Este é um modelo bastante simples, porém de grande utilização em situações nas quais os sistemas produtivos operam com uma única máquina e também em sistemas produtivos nos quais uma estação de trabalho depende da outra, como por exemplo, na fabricação de chapas metálicas nos laminadores (BUSTAMANTE, 2006). No problema ST1M, as datas de entrega de cada tarefa podem ser comuns ou distintas. Em algumas situações ainda, pode-se adotar ao invés de uma data única, um intervalo de tempo, definido como janela de entrega, na qual operações finalizadas dentro desse intervalo não apresentam custos adicionais para a empresa. Segundo Wan e Yen (2002), essa situação é comum em casos nos quais existem incertezas ou tolerâncias com relação à entrega do item produzido. Segundo a filosofia just in time, os produtos devem estar disponíveis no momento exato em que são requeridos. Atrasos e adiantamentos de produção são assim situações que devem ser evitadas. Com a antecipação, a produção é finalizada antes da data de entrega, devendo então ser armazenada, o que eleva os custos de estocagem. Já com o atraso, existe a perda de confiança por parte do consumidor, fator este de custo inestimável, além do pagamento de multas, o que prejudica a imagem da empresa. Desta forma, ambas as situações devem ser minimizadas na resolução do problema de sequenciamento. No presente trabalho o problema ST1M é abordado numa versão bi-objetivo. O primeiro objetivo é composto pela soma de antecipações e atrasos, fator este de importância já explicitada acima. O segundo objetivo é dado pelo tempo de fluxo total, que corresponde à soma dos instantes de término das tarefas e mede o estoque em processamento (ARENALES et al., 2007). Como estes são objetivos conflitantes, a otimização dos mesmos deve levar em consideração o trade - off caracterizado pela minimização de múltiplos objetivos, no qual a melhoria de um causa a deterioração do outro. O problema é denotado por ST1M-Bi. A solução deste problema consiste de um conjunto de soluções denominadas Pareto-ótimas ou eficientes. Neste conjunto, nenhuma solução é melhor que a outra (soluções não dominadas). 2

Logo, um tomador de decisão (decision maker) será o responsável pela escolha da solução mais adequada para o problema. O problema do sequenciamento de tarefas em uma máquina (ST1M) é um problema de otimização combinatória e NP-difícil (WAN & YEN, 2002). Assim, o processo de solução desse problema baseia-se no aprimoramento de métodos heurísticos desenvolvidos para a resolução do mesmo. Nesse sentido, alguns trabalhos foram desenvolvidos, muitos dos quais considerando data única de entrega e tempos de preparação (setup time), destacando-se nessa parte os trabalhos de Rabadi et al. (2004), Feldmann e Biskup (2003), entre outros. Chang (1999) tratou o problema de sequenciamento em uma máquina sujeito a penalidades por atrasos e antecipações, denotado por ST1MAA, com datas distintas de entrega, utilizando um algoritmo branch-and-bound que resolve problemas com até 45 tarefas. Esta mesma situação também foi estudada por Lee e Choi (1995), que por sua vez aplicaram para sua resolução a metaheurística Algoritmos Genéticos. Wan e Yen (2002) adotaram um método baseado na metaheurística Busca Tabu (GLOVER, 1986; HANSEN, 1986), para a resolução do ST1MAA com janelas de entrega distintas para cada tarefa. Eles também dividem o problema em dois subproblemas: determinação da sequencia ótima das tarefas e determinação da data ótima de conclusão das mesmas. Para a primeira parte utilizam um método baseado na Busca Tabu, e para a segunda, propõem um algoritmo de complexidade polinomial. Hino et al. (2005), por sua vez, apresentaram métodos baseados nas metaheurísticas Busca Tabu e Algoritmos Genéticos para a resolução do ST1MAA, com datas comuns de entrega e sem tempos ociosos. Gomes Jr. et al. (2007) propuseram um modelo de programação linear inteira mista para o ST1MAA com janelas de entrega e tempo de setup dependente da sequencia de produção. Tal modelo foi comparado com o método heurístico híbrido, também desenvolvido pelos autores, baseado nas heurísticas GRASP (Greedy Randomized Adaptive Search Procedure), ILS (Iterated Local Search) e VND (Variable Neighborhood Descent). Além disso, para cada sequencia gerada é utilizado um algoritmo para determinação das datas ótimas de início do processamento de cada tarefa. Neste artigo, para a resolução do problema ST1M- Bi com janelas de entrega distintas para cada tarefa, estando as mesmas sujeitas a penalidades por antecipação e atraso, propõe-se um algoritmo heurístico dividido em duas etapas. Na primeira são utilizadas regras construtivas para a definição das sequencias iniciais. Na segunda etapa, a fim de determinar uma aproximação do conjunto de soluções Pareto-ótimas do problema é adotada a heurística VNS (Variable Neighborhood Search), cuja implementação é baseada na heurística MOVNS (Multi-Objective Variable Neighborhood Search) proposta por Liang e Lo (2007). Além disso, é proposta neste trabalho uma melhoria do método MOVNS, melhoria esta que consiste numa intensificação da busca. Neste trabalho também é usado o algoritmo de determinação das datas ótimas de início de processamento das tarefas, baseado nos trabalhos de Wan e Yen (2002), para o posicionamento das tarefas em função da janela de entrega. A fim de avaliar a heurística proposta, a mesma é testada em 72 problemas, nos quais o número tarefas varia de 20 a 100. A definição do problema, envolvendo sua descrição e modelagem matemática, encontra-se na seção 2 deste artigo. Os detalhes da heurística MOVNS, juntamente com as regras construtivas, o algoritmo de datas ótimas estão na seção 3. Os resultados computacionais, seguido pela discussão dos mesmos e as conclusões do trabalho são apresentados nas seções 4 e 5, respectivamente. 3

2. Definição do problema e conceitos utilizados em otimização bi-objetivo O problema de sequenciamento considerado neste trabalho consiste em processar n tarefas em uma máquina, de tal forma a minimizar os custos de antecipação e de atraso da produção, além de minimizar o tempo total de fluxo. Este problema possui algumas características, as quais são detalhadas a seguir: a) A máquina deve processar um conjunto de n tarefas, disponíveis para processamento na data 0, executando no máximo uma tarefa por vez, sendo que o processamento desta não pode ser interrompido; b) Cada tarefa possui um tempo de processamento P i, uma data mais cedo De i e uma mais tarde Dt i, datas estas que delimitam o intervalo de tempo para entrega da tarefa i; c) Para cada tarefa i são conhecidas as penalidades de adiantamento (α i ) e de atraso (β i ); d) É permitida a ocorrência de tempo ocioso entre duas tarefas consecutivas; e) Uma tarefa i deve de preferência ser finalizada dentro de sua janela de entrega [De i, Dt i ]. Seja C i o tempo de finalização de uma tarefa i. Se C i [De i, Dt i ], então a tarefa i não possui atraso (T i = 0) nem adiantamento (E i = 0). Caso contrário, incorrerão sobre as mesmas penalidades de adiantamento (α i E i ) ou de atraso (β i T i ), sendo E i = De i C i e T i = C i Dt i. 2.1 Modelagem matemática O modelo matemático construído para o problema estudado foi desenvolvido com base nos trabalhos de Bustamante (2006) e Manne (1960), porém com algumas modificações. Definindo S i como a data de início do processamento (S i 0), C i como a data de finalização (C i 0), P i como o tempo de processamento, E i como a antecipação e T i como o atraso, todos estes valores individuais para cada tarefa i, e acrescentando também duas outras tarefas fictícias, 0 e n+1, de forma que a primeira anteceda a primeira tarefa da programação e a segunda suceda a última tarefa, e também admitindo que essas novas tarefas possuem P 0 e P n+1 iguais a zero, pode-se desenvolver o seguinte modelo: Sendo y ij uma variável binária, tal que: y ij 1, 0, se a tarefa Minimizar f 1 = i n Minimizar f 2 = i caso contrário n 1 1 j é sequenciada imediatamente após da tarefa i; ( E T ) (1) Ci i i i i Sujeito a: S i S j y ij M P i M i = 0, 1,..., n; j =1, 2,..., n +1 e i j (3) n 1 y 1 i = 0, 1,..., n (4) j 1, j i n i 1, j i ij y 1 j =1, 2,..., n +1 (5) ij S i + P i + E i De i i =1, 2,..., n (6) S i + P i T i Dt i i =1, 2,..., n (7) C i = S i + P i i =1, 2,..., n (8) S i 0 i = 0, 1,..., n +1 (9) E i 0; T i 0; C i 0 i =1, 2,..., n (10) y ij {0,1} i, j = 0, 1,..., n + 1 (11) (2) 4

Neste modelo, as funções objetivo são representadas pelas equações (1) e (2). A restrição (3) por sua vez, define a seqüência de tarefas executadas pela máquina, garantindo que sempre haja tempo suficiente para completar uma tarefa i antes de se iniciar outra tarefa j. Já as restrições (4) e (5) garantem que cada uma das tarefas só possua uma única tarefa antecessora e uma única sucessora. As restrições de números (6) e (7) definem os valores da antecipação e atraso, respectivamente, de acordo com a janela de entrega definida para cada tarefa, caso estes existam. Já a restrição (8) é responsável pelo cálculo do tempo de finalização. Por fim, as restrições (9) a (11) definem o tipo de cada uma das variáveis do problema apresentado. Sobre o mesmo modelo, pode-se ainda dizer que foi desenvolvido de forma que pudessem ser encontradas as datas ótimas de início, com o intuito de reduzir as penalidades com adiantamentos e atrasos. Tal fato induz as tarefas a serem processadas no momento em que realmente são necessárias, o que pode gerar entre duas tarefas consecutivas o chamado tempo ocioso, que corresponde ao intervalo de tempo em que a máquina não processará nenhuma tarefa, assim também como o surgimento de blocos durante a seqüência de execução, formados por tarefas programadas consecutivamente sem tempos ociosos entre elas. 2.2 Otimização bi-objetivo O enfoque multi-objetivo é dado em situações nas quais se possui um vetor de r funções f (s) = (f 1 (s), f 2 (s),..., f r (s)) compondo os critérios a serem otimizados. Para o caso do problema ST1M bi-objetivo, esse vetor é composto por duas funções, f 1 e f 2, que se referem, respectivamente, ao somatório das penalidades de adiantamento e atraso e ao tempo de fluxo total, e que devem ser minimizadas. Assim, para cada solução s do problema existe um ponto z no espaço objetivo Z, tal que z = f (s) = (f 1 (s), f 2 (s)). As soluções finais de um problema de otimização bi-objetivo são caracterizadas pelas seguintes definições: Definição 1 (soluções dominantes): Uma solução s 1 domina a solução s 2 se as três condições seguintes forem satisfeitas: i) f 1 (s 1 ) f 1 (s 2 ), ii) f 2 (s 1 ) f 2 (s 2 ) e iii) f 1 (s 1 ) < f 1 (s 2 ) ou f 2 (s 1 ) < f 2 (s 2 ). Isso significa que um ponto z 1 = (f 1 (s 1 ), f 2 (s 1 )) domina o ponto z 2 = (f 1 (s 2 ), f 2 (s 2 )) quando as mesmas três condições são satisfeitas. Definição 2 (conjunto de soluções Pareto-ótimas): O conjunto Pareto-ótimo é formado por todas as soluções não dominadas por nenhuma outra do espaço de soluções factíveis. Esse tipo de conjunto ocorre em problemas ditos multiobjetivos, ou seja, naqueles em que são otimizados mais de um objetivo, já que muitas vezes estes são conflitantes, não sendo possível obter valores ótimos dos dois conjuntamente. O conjunto das soluções Pareto-ótimas é aqui denotado por E. Assim, no espaço objetivo Z os pontos Pareto-ótimos determinam a fronteira Pareto-ótima, de tal forma que resolver o problema de sequenciamento corresponde então a determinar o conjunto E. 3. Metodologia de solução 3.1 Heurística Multi-objetivo VNS (MOVNS) A heurística VNS (Variable Neighborhood Search), proposta por Mladenovic e Hansen (1997), tem como objetivo principal a alteração, de forma sistemática, das vizinhanças de uma solução no processo de Busca Local, de maneira a procurar soluções de boa qualidade em 5

todo o espaço de soluções, sem se prender aos ótimos locais. Entretanto, a heurística VNS é aplicada somente em situações nas quais se otimiza uma única função objetivo (otimização mono-objetivo), o que não é o caso do problema estudado neste trabalho. Uma das primeiras extensões da heurística VNS para a resolução de problemas multiobjetivos foi proposta por Liang e Lo (2007), denominada heurística MOVNS (Multi- Objective Variable Neighborhood Search). O método MOVNS foi aplicado satisfatoriamente a dois tipos diferentes de problemas bi-objetivo, alocação de redundância (LIANG & LO, 2007) e no sequenciamento de tarefas em sistemas flow shop (GEIGER, 2008). O objetivo do método MOVNS é determinar um conjunto D de soluções dominantes (uma aproximação do conjunto Pareto-ótimo). O funcionamento do método MOVNS é detalhado a seguir. Primeiramente, gera-se uma solução aleatória que fará parte do conjunto D de soluções dominantes. Define-se também t estruturas de vizinhanças V 1, V 2,... V t, sendo V k (s), a vizinhança k da solução s, 1 k t. O processo é iniciado com a escolha aleatória de uma solução s do conjunto D e de uma estrutura de vizinhança V. Após isso, a solução s é perturbada realizando-se um movimento aleatório dentro da vizinhança V, originando uma solução s, a partir da qual serão geradas todas as soluções vizinhas. Em seguida, o conjunto D das soluções dominantes é atualizado com as soluções vizinhas s obtidas. Esse processo é repetido até que a condição de parada seja satisfeita, retornando por fim, o conjunto D obtido após todo o processo de busca. Vale ressaltar que uma solução s escolhida em uma iteração não poderá ser escolhida nas próximas (caso ela continue no conjunto D). Para isto, ela é marcada como escolhida (Mark(s) = true). Caso todas as soluções do conjunto D já tiverem sido escolhidas, então todas serão desmarcadas para o início de um novo processo, até finalizar o método. O pseudocódigo da heurística MOVNS é apresentado na Figura 1. procedimento MOVNS 1 Gere uma solução inicial aleatória s; 2 D = {s} conjunto de soluções dominantes; 3 Defina um conjunto de t vizinhanças {V 1, V 2,... V t }; 4 Enquanto condição de parada faça 5 s = escolha uma solução de D; 6 Mark (s) = true; 7 V = escolha uma vizinhança; 8 Determine uma solução s V(s); 9 Para cada vizinho s V (s ) faça 10 D = soluções dominantes de D { s }; 11 Retornar D; 12 Fim MOVNS; Figura 1: Pseudocódigo da heurística MOVNS Neste trabalho são implementadas duas versões da heurística MOVNS aplicadas ao problema de sequenciamento de tarefas em uma máquina com dois objetivos (ST1M-Bi). A primeira consiste na versão original, proposta por Liang e Lo (2007), denominada de MOVNS1. A segunda versão, definida como MOVNS2, corresponde a um melhoramento proposto neste artigo, cuja diferença principal é a presença de uma fase de intensificação. A seguir são apresentadas as etapas principais da heurística MOVNS aplicada ao problema ST1M-Bi. 6

3.2 Heurística MOVNS aplicada ao problema ST1M-Bi 3.2.1 Construção de soluções iniciais Uma solução para o problema de sequenciamento é representada por um vetor s composto por n elementos, que representam as n tarefas a serem sequenciadas. A posição de cada elemento neste vetor indica a ordem em que serão processadas as tarefas. Para inicializar o conjunto D, são geradas três soluções diferentes. Estas soluções são obtidas por duas diferentes regras de prioridade. A primeira é a regra EDD (Earliest Due Date), que tem como critério para a programação das tarefas a ordenação crescente das datas de entrega. Para o problema estudado ela pode ser aplicada sobre a data mais cedo (De i ) e também sobre a data mais tarde (Dt i ), gerando duas soluções iniciais. A segunda regra, denominada SPT (Shortest Processing Time), consiste em processar as tarefas seguindo a ordem crescente dos tempos de processamento. Esta regra é a responsável por gerar a terceira solução. 3.2.2 Vizinhanças de uma solução Neste trabalho, a heurística MOVNS foi implementada usando as seguintes estruturas de vizinhança: V 1 : Vizinhança inserção: um vizinho de s é gerado inserindo uma tarefa que está na posição i, em outra posição j da sequencia, 1 i, j n, j i. Usando este movimento é possível gerar (n- 1) 2 vizinhos. V 2 : Vizinhança de troca: uma solução vizinha de s é gerada fazendo a troca de duas tarefas i e j da sequencia, 1 i, j n, i j. O número de vizinhos gerados com este movimento é n(n- 1)/2. Por exemplo, para a solução (sequencia) s = {1, 5, 3, 4, 2}, as soluções s = {5, 3, 1, 4, 2} e s = {3, 5, 1, 4, 2} são duas soluções vizinhas pertencentes à vizinhança inserção V 1 (a tarefa 1 é inserida na terceira posição) e vizinhança de troca V 2 (as tarefas 1 e 3 têm suas posições trocadas), respectivamente. 3.2.3 Procedimento de Intensificação A heurística MOVNS, a cada iteração, gera um conjunto de soluções vizinhas utilizando uma das estruturas de vizinhança. No MOVNS2, das soluções vizinhas geradas são determinadas as dominantes e elas são armazenadas no conjunto D 1. O procedimento de intensificação é feito em uma solução s escolhida de D 1. Este procedimento consiste de duas fases, destruição e reconstrução. A fase de destruição consiste em remover uma quantidade y de tarefas da solução s. Estas tarefas são armazenadas num vetor denominado TarefasRemovidas. Note que s será uma solução parcial formada por uma sequencia de n y tarefas. A fase de reconstrução consiste na reinserção gulosa das tarefas removidas da solução s. A cada passo, uma tarefa de TarefasRemovidas é inserida em todas as posições de s gerando (n y+1) soluções parciais. Estas soluções parciais são avaliadas e a melhor solução é escolhida. Tal avaliação é realizada pela função de utilidade linear f w = w 1 f 1 + w 2 f 2, onde w 1 e w 2 são pesos dos objetivos com w 1 + w 2 = 1. A melhor solução parcial é na verdade aquela que possui o menor valor de f w. Esta melhor solução é então usada no próximo passo, no qual a tarefa seguinte será inserida em todas as posições da sequencia, gerando (n y+2) soluções parciais. O procedimento finaliza após gerar n soluções completas. Dessas n soluções geradas 7

determina-se as soluções dominantes que são adicionadas ao conjunto D 1. O conjunto D a ser retornado pela heurística é atualizado com as soluções de D 1. Na Figura 2 é apresentado o pseudocódigo da heurística MOVNS2. Vale ressaltar que a primeira versão da heurística (denominada MOVNS1) não contém os passos 17 a 27. O algoritmo MOVNS2 possui dois parâmetros: condição de parada e y (número de tarefas a serem removidas na intensificação). Estes parâmetros foram ajustados através de um conjunto de testes computacionais. Bons resultados foram encontrados com condição de parada igual 600 iterações e y = 4. procedimento MOVNS2 1 Inicialização 2 s 1 = solução obtida pela heurística EDD_E i ; 3 s 2 = solução obtida pela heurística EDD_T i ; 4 s 3 = solução obtida pela heurística SPT; 5 D = conjunto de soluções dominantes {s 1, s 2,s 3 }; 6 Processo de busca 7 Enquanto condição de parada faça 8 s = escolha uma solução de D tal que Mark(s) = false; 9 Mark(s) = true; 10 V = escolha uma vizinhança; 11 Determine uma solução s V(s); 12 D 1 = ; 13 Para cada vizinho s V (s ) faça 14 D 1 = soluções dominantes de D 1 {s }; 15 //Intensificação 16 s = escolha uma solução de D 1 ; 17 Escolha aleatoriamente os pesos 0 w 1 1 e w 2 = 1-w 1 ; 18 Remova y tarefas de s ; i = 0; 19 Armazene as tarefas no vetor TarefasRemovidas; 20 Para cada tarefa t TarefasRemovidas faça 21 i = i+1; 22 Insira a tarefa t em todas as posições de s gerando (n y+i) soluções; 23 Se t é a última tarefa a ser inserida (i = y) então 24 D 1 = D 1 {soluções geradas}; 25 Senão 26 s = melhor solução parcial gerada (com relação a f w = w 1 f 1 + w 2 f 2 ) ; 27 Fim para 28 D = soluções dominantes de D D 1 ; 29 Fim enquanto 30 Retorne D; 31 Fim MOVNS2; Figura 2 Pseudocódigo da heurística MOVNS2 3.2.4 Determinação das datas ótimas de início / tempos de conclusão Dada uma sequencia de tarefas (solução), para calcular os valores das funções objetivos f 1 n n ( E T ), primeiramente deve-se calcular os instantes de inicialização = e f = i 1 i i i i 2 i 1 Ci ótimos (datas ótimas) de cada tarefa (e tempos de conclusão C i ). Para isso é utilizado o algoritmo de determinação das datas ótimas, proposto por Wan e Yen (2002) e utilizado também por Gomes Jr. et al. (2007). No método desenvolvido neste trabalho, ele é aplicado nas soluções iniciais e também a cada nova sequencia gerada durante o processo de refinamento realizado pela heurística MOVNS. 8

Para uma sequencia de tarefas s conhecida, na qual cada uma possui um tempo de conclusão C i, as datas ótimas para início do processamento correspondem àquelas datas que possibilitam a cada tarefa ser finalizada dentro de sua janela de entrega, delimitada pelas datas mais cedo, De i, e mais tarde, Dt i. Assim, a primeira tarefa deve ser programada para finalizar na data De 1 caso P 1 De 1, ou então iniciada na data 0 (finalizando na data P 1 ) se P 1 > De 1. Já as demais tarefas da sequencia devem respeitar a seguinte condição para a programação das datas: Se C k + P k+1 < De k+1, a tarefa k+1 tem então seu processamento programado para finalizar na data De k+1, ou seja, no início da janela de entrega; Caso C k + P k+1 De k+1, então a tarefa k+1 é programada para finalizar em C k + P k+1. Cabe destacar ainda que, quando as tarefas são sequenciadas consecutivamente, ou seja, sem nenhum tempo ocioso entre elas, estas constituem um bloco. Assim, um vetor s pode conter l blocos, sendo que em cada um deles existe uma tarefa denominada prim(j) e outra denominada ult(j), que correspondem respectivamente ao primeiro e último elemento do bloco B j. Torna-se então necessário verificar o posicionamento dos blocos formados. Para determinado bloco B j, o custo mínimo ocorre na data mais cedo ou na data mais tarde de uma das tarefas que compõem o mesmo (WAN & WEN, 2002; GOMES JR. et al., 2007). Como a função custo é uma função convexa, a data referente ao custo mínimo pode ser obtida através da comparação dos somatórios das penalidades de atraso e adiantamento das tarefas do bloco, em relação ao início e ao final de cada janela de entrega, considerando as penalidades por antecipação como negativas e as penalidades por atraso, positivas. Esses somatórios fornecem a inclinação da reta (m) pertencente à função custo. O custo mínimo se dá na data na qual essa inclinação m se torna maior ou igual a zero. Ao encontrar este ponto, todo o bloco deve ser movido em direção ao mesmo até que uma das condições a seguir ocorra: a) S prim(j) = 0. b) O ponto mínimo foi alcançado. c) S prim(j) tornou-se igual a C ult (j-1). Nesta última situação, a igualdade entre S prim(j) e C ult (j-1) demonstra que o bloco B j se uniu ao bloco B j-1, resultando em um novo bloco B j-1. Como outro bloco B j-1, diferente dos iniciais foi gerado, o processo deve ser repetido para ele até que um dos outros dois casos, a ou b, aconteça. Tarefas n = 5 Variáveis Tarefa 1 Tarefa 2 Tarefa 3 Tarefa 4 Tarefa 5 Tempo de Processamento (P i ) 9 15 8 12 5 Data mais cedo (De i ) 15 150 22 140 21 Data mais tarde (Dt i ) 25 170 30 180 22 Penalidade de adiantamento (α i ) 3 2 4 1 5 Penalidade de atraso (β i ) 7 6 8 4 10 Tabela 1 Dados de um problema com 5 tarefas 9

Utilizando os dados da Tabela 1 e considerando a sequencia s = {1, 5, 3, 4, 2}, com as tarefas 1 e 5 já programadas, exemplifica-se esse processo a seguir através da programação da tarefa 3. Até este momento, a tarefa 1 inicia-se na data 6 e a tarefa 5, na data 16, ambas sendo finalizadas dentro de sua janela de entrega. Para a tarefa 3, como C 5 = 21, C 5 + P 3 > De 3 (29 > 22). Dessa forma, a tarefa 3 deve ser colocada imediatamente após a tarefa 5, tendo seu início na data 21 e sua finalização na data 28. Com isso, a tarefa 3 torna-se o último elemento do bloco corrente, motivando uma nova análise sobre o ponto de mínimo do mesmo. Para isso determina-se o conjunto de possíveis datas de início do processamento do bloco, que são: 9, 16, 17. Para cada uma destas é calculado em seguida o valor da inclinação m, sendo as penalidades de adiantamento consideradas negativas e as de atraso positivas. Nessa situação, se o processamento iniciar antes da data 9, as duas tarefas, 1 e 5, estarão adiantadas e m = -8 (-3-5). Se o processamento iniciar entre as datas 9 e 16, somente a tarefa 1 estará adiantada, e m = -3. Entre as datas 16 e 17 as duas tarefas terminam dentro de suas janelas e m = 0. Portanto, 16 é a data que confere custo mínimo ao bloco. Como este já se encontra inicialmente posicionado nesta data nenhum deslocamento precisa ser feito. 4. Testes computacionais e resultados Os testes computacionais para comparação das heurísticas MOVNS1 e MOVNS2 foram realizados em um computador Intel Core 2 Quad, com 2,4 GHz e 2 GB de memória RAM, sob plataforma Windows XP. Para a elaboração dos problemas-teste foi utilizado o método pseudo-aleatório proposto nos trabalhos de Gomes Júnior (2007), com número de tarefas n iguais a 20, 30, 40, 50, 75 e 100. Seguindo este método, os tempos de processamento P i devem estar discretamente e uniformemente distribuídos entre 1 e 100, o custo por unidade de atraso (β i ), entre 20 e 100, e o custo por unidade de antecipação (α i ), entre 0 e β i. A formação das janelas de entrega é orientada por um valor central, uniformemente e integralmente distribuído dentro do intervalo [(1- FA - VRJ/2) * TTP, (1- FA + VRJ/2) *TTP], no qual TTP corresponde ao tempo total de processamento de todas as tarefas, FA é um fator de atraso, com valores iguais a 0,1; 0,2; 0,3; 0,4; e VRJ representa a variação relativa da janela de entrega, com valores iguais a 0,8; 1,0; 1,2. Os tamanhos das janelas de entrega estão uniformemente distribuídos no intervalo de [1, TTP/n], no qual n é o número de tarefas. Como são utilizados quatro valores distintos de FA e três valores diferentes de VRJ, há 12 problemas-teste para cada número de tarefas. Assim, cada uma das heurísticas foi rodada para 72 problemas. 4.1 Discussão dos resultados A fim de se verificar a eficiência do procedimento de intensificação proposto neste trabalho, são comparadas as heurísticas MOVNS1 e MOVNS2. Para cada problema resolvido, é determinado o conjunto de soluções de referência (denominado Ref) que é formado pela união dos conjuntos de soluções dominantes encontradas por cada uma das heurísticas. Sejam D 1 e D 2 os conjuntos de soluções dominantes encontradas pelas heurísticas MOVNS1 e MOVNS2, respectivamente. Então o conjunto de soluções de referência é determinado de seguinte maneira: 10

Ref = {soluções dominantes de (D 1 D 2 )} (12) Para cada heurística determina-se a quantidade de soluções pertencentes ao conjunto Ref. Ou seja, para MOVNS1 e MOVNS2 calculam-se Ref D 1 e Ref D 2, respectivamente. Note que, quanto maior o número de soluções de referência obtidas pela heurística, melhor será o desempenho da mesma (eficiência baseada na medida de cardinalidade). Na Tabela 2, para cada valor de n, são apresentados os valores totais de Ref, D 1, D 2, Ref D 1 e Ref D 2, obtidos na resolução de um conjunto de 12 problemas. Observa-se que os valores totais de Ref D 2 são maiores para todos os conjuntos de problemas. Do total de 72 problemas resolvidos, 34594 soluções de referência foram obtidas, das quais 10409 (30%) foram encontradas pela heurística MOVNS1 e 24204 (70%) pela heurística MOVNS2. Baseado na medida de cardinalidade, a heurística MOVNS2 mostrou ser mais eficiente. Isto mostra que o procedimento de intensificação proposto é bastante efetivo na resolução de problemas multi-objetivo. Ainda com relação à medida de cardinalidade, observa-se pela Tabela 2 que a diferença do número de soluções de referência encontradas pelas heurísticas MOVNS1 e MOVNS2 aumenta à medida que o número de tarefas aumenta. Para n = 20 tarefas, por exemplo, a diferença entre o número de soluções de referência geradas por MOVNS1 e MOVNS2 é de 316, enquanto que para n = 100 tarefas a diferença é de 5758. Na Tabela 3 mostram-se os valores totais Ref, D 1, D 2 Ref D 1 e Ref D 2 para diferentes condições de parada, isto é, número de iterações (200, 400 e 600). Note que o número de soluções cresce consideravelmente com o incremento do número de iterações. 600 iterações Problema MOVNS1 MOVNS2 (n) Ref D 1 Ref D 1 D 1 Ref D 2 20 2620 2196 1157 2347 1473 30 3618 3032 1618 3147 2002 40 4308 3719 1991 3829 2320 50 5526 4153 1829 5128 3698 75 8208 5165 1535 7900 6674 100 10314 6950 2279 9775 8037 Total 34594 25215 10409 32126 24204 Tabela 2 Número de soluções dominantes gerados em função do número de tarefas Iterações Ref MOVNS1 MOVNS2 D 1 Ref D 1 D 1 Ref D 2 200 22224 15898 5721 20760 16516 400 29464 22650 9006 27177 20470 600 34594 25215 10409 32126 24204 Tabela 3 Resumo do número de soluções geradas em função do número de iterações realizadas As heurísticas MOVNS1 e MOVNS2 também são comparadas utilizando uma medida de distância proposta por Czyzak e Jaskiewicz (1998), que mede a proximidade de um conjunto X de soluções aproximadas com relação a um conjunto de referência Ref. Assume-se que X é uma boa aproximação de Ref se as soluções de X estão bem próximas das soluções de Ref. Em outras palavras, para cada ponto z Ref existe z X tal que a distância entre z e z seja 11

mínima. Consideram-se as distâncias média (D med ) e máxima (D max ) definidas da seguinte maneira: 1 Dmed mind( z', z) (13) Ref z' X D max z Ref max{min d( z', z)} (14) z Ref z' X nas quais X pode ser D 1 ou D 2 e d é definido por: 1 d ( z', z) max z j z j 100, z' = ( z,..., z j 1,2 r ) X, z = (z 1 1,...,z r ) Ref (15) Δ j na qual j max f min soluções de referência). j f j, j = 1, 2 (diferença entre o maior e menor valor para f j dentre as A Tabela 4 apresenta os valores médios das distâncias D med e D max correspondentes a cada versão da heurística. Note que quanto mais próximo de zero são as distâncias D med e D max, melhor é a qualidade das soluções encontradas pela heurística. Observe que os valores médios das distâncias são bem mais próximos de zero para as soluções encontradas pela heurística MOVNS2, comprovando uma vez mais a eficiência dessa heurística. Os tempos computacionais médios (em segundos) gastos pelos algoritmos MOVNS1 e MOVNS2, na execução de 600 iterações, são mostrados também na Tabela 4. Observa-se que, os tempos de execução da heurística MOVNS2 são levemente maiores em comparação aos tempos da heurística MOVNS1. Esta pequena diferença deve-se à presença do procedimento de intensificação na heurística MOVNS2, tanto que analisando mais detalhadamente a Tabela 4, vê-se que o maior tempo de execução do MOVNS2 é compensado pelo maior número de soluções dominantes geradas. Cabe destacar também que os tempos das heurísticas crescem consideravelmente com o incremento do número de tarefas do problema, o que é justificável, já que para um crescimento linear do número de tarefas (n), o tamanho das vizinhanças usadas cresce de forma quadrática. Além disso, a quantidade de soluções dominantes do problema cresce em função de n, o que torna a manutenção do conjunto D (veja o pseudocódigo da heurística MOVNS2) computacionalmente cara. Outro procedimento que também requer grande esforço computacional é o cálculo das funções objetivo, que consiste em calcular as datas ótimas de inicio de processamento das tarefas, cálculo este de complexidade O(n 2 ). 600 iterações Problema MOVNS1 MOVNS2 (n) D med (%) D max (%) Tempo (s) D med (%) D max (%) Tempo (s) 20 0,62 3,26 4,7 0,39 3,00 6,4 30 0,75 3,93 22,4 0,46 3,61 28,5 40 0,97 5,08 79,4 0,60 3,18 95,1 50 1,64 6,99 191,1 0,25 2,33 221,2 75 2,66 9,15 1058,4 0,15 2,15 1242,2 100 3,26 9,77 3708,9 0,18 2,25 4093,9 Média 1,65 6,36 844,2 0,34 2,75 947,9 Tabela 4 Tempo total de execução e distâncias média e máxima em função do número de tarefas e da heurística utilizada 12

Dessa forma, é possível concluir a partir das tabelas acima que a heurística MOVNS2, a qual envolve o melhoramento proposto neste trabalho, localiza uma quantidade maior de soluções dominantes que a heurística MOVNS1. Além disso, a Tabela 4 evidencia o fato de que os pontos encontrados por esta segunda versão estão mais próximos da fronteira de referência. 5. Conclusões Neste artigo foi abordado o Problema de Programação de Tarefas em uma máquina, sujeitas a penalidades por antecipação e atraso, no qual são minimizados dois objetivos: a soma total das penalidades (atraso e adiantamento) e o tempo de fluxo total. Para resolver este problema foi proposta uma heurística VNS multi-objetivo (MOVNS) que inclui um procedimento eficiente de intensificação. Para avaliar a heurística proposta foram resolvidos problemas com 20, 30, 40, 50, 75 e 100 tarefas. Os resultados obtidos mostraram que a heurística proposta apresenta um melhor desempenho (em termos de número de soluções dominantes geradas e distância com relação à fronteira de referência) quando comparada a uma heurística MOVNS proposta na literatura. Agradecimentos: Esse trabalho foi financiado pelo Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq) e pela Fundação de Amparo à Pesquisa do Estado de Minas Gerais (FAPEMIG). 6. Referências bibliográficas ARENALES, M.; ARMENTANO, V.; MORABITO, R. & YANASSE, H. Pesquisa Operacional. 2ª reimpressão. Rio de Janeiro: Elsevier, 2007. 523p. BUSTAMANTE, L. M. Minimização do Custo de Antecipação e Atraso para o Problema de Seqüenciamento de uma Máquina com Tempo de Preparação Dependente da Sequencia: Aplicação em uma Usina Siderúrgica. Dissertação de mestrado, Programa de Pós-Graduação em Engenharia de Produção, UFMG, Belo Horizonte, 2006. CHANG, P. C. A Branch and Bound Approach for Single Machine Scheduling with Earliness and Tardiness Penalties, Computers & Mathematics with Applications. Vol. 37, p. 133 144, 1999. CZYZAK, P. & JASKIEWICZ, A. Pareto simulated annealing - A metaheuristic technique for multiple objective combinatorial optimization. Journal of Multicriteria Decision Analysis. Vol. 7, n. 1, p. 34-47, 1998. FELDMANN, M. & BISKUP, D. Single-Machine Scheduling for Minimizing Earliness and Tardiness Penalties by Meta-heuristic Approaches. Computers & Industrial Engineering. Vol. 44, p. 307 323, 2003. GEIGER M. J. Randomised Variable Neighbourhood Search for Multi Objective Optimisation. Proceedings of the 4th EU/ME Workshop: Design and Evaluation of Advanced Hybrid Meta-Heuristics, Nottingham, United Kingdom, p. 34-42, 2008. GLOVER, F. Future paths for Integer Programming and links to Artificial Intelligence. Computers and Operations Research. Vol. 5, p. 553 549, 1986. GOMES JR, A. C.; CARVALHO, C. R. V.; MUNHOZ, P. L. A. & SOUZA, M. J. F. Um método heurístico híbrido para a resolução do Problema de Seqüenciamento em uma máquina com penalidades por antecipação e atraso da produção. XXXIX SBPO, p. 1649-1660, 2007. HANSEN, P. The steepest ascent mildest descent heuristic for combinatorial programming. Congress on Numerical Methods in Combinatorial Optimization, Capri, Italy, 1986. HINO, C. M.; RONCONI, D.P. & MENDES, A. B. Minimizing Earliness and Tardiness Penalties in a Single- Machine Problem with a Common Due Date. European Journal of Operational Research. Vol. 160, p. 190 201, 2005. LEE, C. Y. & CHOI, J. Y. A Genetic Algorithm for Job Sequencing Problems with Distinct Due Dates and General Early-Tardy Penalty Weights. Computers and Operations Research. Vol. 22, p. 857 869, 1995. 13

LIANG, Y. C. & LO, M. H. Multi-objective redundancy allocation optimization using a variable neighborhood search algorithm. Springer, 27 junho 2009. MANNE, A. S. On the Job-shop Scheduling Problem. Operations Research. Vol. 8, p. 219 223, 1960. MLADENOVIC, N. & HANSEN, P. Variable Neighborhood Search. Computers and Operations Research. Vol. 24, p. 1097 1100, 1997. RABADI, G.; MOLLAGHASEMI, M. & ANAGNOSTOPOULOS, G.C. A Branch-and-Bound Algorithm for the Early/Tardy Machine Scheduling Problem with a Common due-date and Sequence-Dependent Setup Time. Computers & Operations Research. Vol. 31, p. 1727 1751, 2004. WAN, G. & YEN, B. P. C. Tabu Search for Single Machine Scheduling with Distinct Due Windows and Weighted Earliness/Tardiness Penalties. European Journal of Operational Research. Vol. 142, p. 129 146, 2002. 14