• Nenhum resultado encontrado

IMPLEMENTAÇÃO DE SISTEMAS DE CONTROLE SUPERVISÓRIO BASEADOS EM MÁQUINA DE ESTADOS

N/A
N/A
Protected

Academic year: 2021

Share "IMPLEMENTAÇÃO DE SISTEMAS DE CONTROLE SUPERVISÓRIO BASEADOS EM MÁQUINA DE ESTADOS"

Copied!
36
0
0

Texto

(1)

IMPLEMENTAÇÃO DE SISTEMAS DE CONTROLE SUPERVISÓRIO BASEADOS EM MÁQUINA DE ESTADOS

MOACYR C. POSSAN JR.(1), ANDRÉ B. LEAL (2)*

(1)Whirlpool Latin America, Rua Dona Francisca, 7200, Distrito Industrial, 89219-600, Joinville, SC, Brasil (2)Grupo de Pesquisa em Automação de Sistemas e Robótica, Dpto. de Eng. Elétrica, Universidade do Estado de

Santa Catarina – UDESC, Campus Universitário Prof. Avelino Marcante s/n, 89223-100, Joinville, SC, Brasil E-mails: moacyr_c_possan@whirlpool.com, leal@joinville.udesc.br Abstract  This paper presents a new methodology for the implementation of control systems based on the Supervisory Control Theory (SCT). It consists on a technique where an algorithm is proposed to obtain a Mealy finite state machine from an automa-ton of the supervisor obtained by the Supervisory Control Theory. This machine may be simplified further in order to have a re-duced number of state transitions. This machine is a template for the implementation in Programmable Logic Controller (PLC) using Ladder language. A manufacturing system is presented to exemplify such methodology. Besides, another contribution of this work refers to the possibility of treating more than one event in the same scan cycle of the Programmable Logic Controller. Keywords  Discrete Event Systems, Supervisory Control Theory, Manufacturing Systems, Modular Local Theory, State Ma-chines, Programmable Logic Controllers, Ladder Language.

Resumo  Este trabalho apresenta uma nova metodologia para implementação de sistemas de controle baseados na Teoria de Controle Supervisório (TCS). Consiste em uma técnica onde um algoritmo é proposto para, a partir do autômato do supervisor obtido pela Teoria de Controle Supervisório, construir uma máquina de estados de Mealy. Esta máquina pode ser simplificada em seguida para reduzir o número de transições entre estados. Essa máquina serve como base para implementação em Controla-dor Lógico Programável (CLP) usando linguagem Ladder. Um sistema de manufatura é apresentado para exemplificar essa me-todologia. Além disso, outra contribuição deste trabalho refere-se à possibilidade de tratamento de mais de um evento dentro do mesmo ciclo de execução do Controlador Lógico Programável.

Palavras-chave Sistemas a Eventos Discretos, Teoria de Controle Supervisório, Sistemas de Manufatura, Máquinas de Esta-do, Controladores Lógicos Programáveis, Linguagem Ladder.

1. Introdução

Nos últimos anos, a indústria tem se defrontado cada vez mais com a necessidade de uso de métodos efica-zes para o controle de Sistemas a Eventos Discretos (SEDs), dentre os quais se inclui grande parte dos sistemas de manufatura. Um SED é um sistema de estados discretos dirigido a eventos, isto é, sua evo-lução de estado depende da ocorrência de eventos discretos assíncronos no tempo (Cassandras e Lafor-tune, 1999).

A Teoria de Controle Supervisório (TCS) de Ramadge e Wonham (1989) é uma metodologia bas-tante conhecida e apropriada para a síntese de contro-ladores para SEDs. Entretanto, apesar de sua reco-nhecida importância no meio acadêmico, a TCS não é difundida no âmbito industrial, de forma que, em geral, a resolução de problemas de controle supervi-sório nas indústrias é feita sem a utilização de um procedimento formal. Na indústria, os projetos são geralmente baseados no conhecimento do projetista, ficando atrelados à sua experiência em programação. Segundo Fabian e Hellgren (1998), um motivo im-portante para este afastamento entre teoria e prática consiste nas dificuldades encontradas na implementa-ção da soluimplementa-ção obtida por intermédio da TCS.

Neste trabalho, apresenta-se um algoritmo para transformar o autômato do supervisor obtido por in-termédio da TCS em uma máquina de estados finita. Além disso, no intuito de minimizar as dificuldades normalmente encontradas na etapa de implementação da estrutura de controle, é proposta uma metodologia de implementação de controle supervisório para CLPs que se baseia nesta máquina de estados finita. Uma vantagem desta metodologia se comparada com outras encontradas na literatura, como a proposta em (Queiroz e Cury, 2002), consiste na possibilidade de tratamento de diversos eventos em um mesmo ciclo de execução do CLP.

Este trabalho está dividido da seguinte forma: na seção 2 apresenta-se uma visão geral da metodologia proposta e a seção 3 apresenta o algoritmo proposto para converter o autômato do supervisor em uma máquina de estados; a seção 4 mostra um exemplo motivador para ilustrar a metodologia proposta, a seção 5 descreve como simplificar esta máquina de estados, enquanto a seção 6 ilustra como implementar a máquina de estados em linguagem Ladder para CLP. Para finalizar, a seção 7 trata das conclusões.

(2)

proposta. Primeiro é realizada a síntese de um super-visor monolítico baseado na TCS. O autômato deste supervisor serve como parâmetro de entrada para o algoritmo de conversão para obter a máquina de es-tados. A máquina é então simplificada para reduzir o número de transições. A máquina simplificada, por sua vez, representa um modelo para gerar o código para um controlador (CLP, microcontrolador ou al-guma outra unidade de processamento).

Síntese do Supervisor usando a TCS Modelo das Plantas Especificações

Obtenção da Máquina de Estados Simplificação da Máquina de Estados Geração de Código para Controlador Figura 1. Metodologia Proposta

3. Algoritmo Para Gerar a Máquina de Estados A máquina de estados obtida com o algoritmo pro-posto consiste em uma máquina de Mealy (Mealy, 1955). Nesta topologia, uma transição pode ter uma ou mais ações de saída e qualquer ação de saída pode ser usada em mais do que uma transição. As ações de saída estão associadas com as transições e não com os estados, que são passivos. Sendo assim, as ações podem ser associadas com mais do que um estado.

Um exemplo simples de uma máquina de Mealy de dois estados é mostrado na figura 2. Partindo do estado 1, a transição 1 faz a máquina ir desse estado para o estado 2 e toma a ação 1; partindo do estado 2, a transição 1 mais a transição 2 faz a máquina ir do estado 2 para o estado 1 e a ação 2 é tomada.

Estado 1

Transição 1 / Ação 1

Estado 2

Transição 1, Transição 2 / Ação 2

Figura 2. Exemplo de máquina de Mealy

O algoritmo proposto para obter a máquina de estados finita funciona de forma iterativa, varrendo os dados de entrada para obter os estados, transições e ações que compõem esta máquina. A máquina esta-rá completa quando todos os dados de entrada forem processados. O algoritmo é mostrado na figura 3.

ENQUANTO Lista de Estados > 0

Cria Estado Inicial (Planta, Supervisor e Desabilitações = 0)

Cria Lista de Estados

PARA Lista de Trasições FAÇA

Estado já existe? No Yes Sc Evoluiu? Não Sim Lê Estado Cria Lista de Transições Ev. Não-Controláveis da Planta (Gu) Ev. Não-Controláveis do Supervisor (Su) Desabilitações Ev. Controláveis da Planta (Gc) Ev. Controláveis do Supervisor (Sc)

Cria um Novo Estado

Não Faz Nada

Adiciona Estado na Lista de Estados Máquina de Estados Fim Fim Figura 3. Algoritmo para Obtenção da Máquina de Estados

Os dados de entrada para o algoritmo são os au-tômatos da planta e do supervisor e as desabilitações, enquanto os dados de saída são os estados, as transi-ções e as atransi-ções que compõem a máquina de estados.

No processo de transformação do autômato do supervisor para a máquina de Mealy os eventos não-controláveis na TCS equivalem às transições entre os estados, enquanto os eventos controláveis equivalem às ações de saída na máquina de Mealy. A transição entre dois estados na máquina de Mealy pode ocorrer por meio de um ou mais eventos não-controláveis no autômato. Para cada transição, uma ação de saída pode ser gerada ou não.

(3)

representan-do a condição onde a operação representan-do processo físico ainda não começou.

O próximo passo é criar uma lista de estados. A lista é necessária para armazenar os estados que vão sendo obtidos iterativamente para serem tratados assim que o tratamento do estado atual é finalizado. A lista consiste em uma estrutura FIFO (First In, First Out). Enquanto ainda existirem estados na lista, haverá um processo iterativo para o seu tratamento. Um loop While é utilizado para esta finalidade.

Para cada estado, uma lista de transições é cria-da com o intuito de tratar tocria-das as transições válicria-das para aquele estado específico. Para cada transição saindo de um determinado estado, será feito um pro-cessamento iterativo até que todas as transições se-jam tratadas para todos os estados. Um loop For é utilizado para isto.

A fim de criar a lista de transições válidas para cada estado da máquina, é necessário primeiro dividir a planta e o supervisor em duas partes, de acordo com a controlabilidade dos eventos referentes às suas transições de estado. Define-se por Gu a parte da planta cujas transições se dão devido a eventos não-controláveis e por Gc a parte da planta cujas transi-ções se devem a eventos controláveis. De forma se-melhante, Su é a parte do supervisor cujas transições se dão por eventos não controláveis e Sc a parte cujas transições são devido a eventos controláveis.

A lista de transições equivale aos eventos não-controláveis que criam evoluções de estado em Gu e Su. A combinação de mais do que um evento não-controlável também é considerada uma transição.

Após a parte devido a eventos não-controláveis ser tratada, a parte devido a eventos controláveis é processada. Após a ocorrência de uma transição, o estado resultante em Su é analisado para verificar quais eventos controláveis são desabilitados por esse estado. Enquanto os eventos desabilitados estão proi-bidos de ocorrer, os remanescentes podem dar ori-gem às ações. As ações válidas para um dado estado são os eventos controláveis que não estão desabilita-dos no supervisor e que causam evolução de estadesabilita-dos em Gc e em Sc.

Quando uma ação ocorre, o algoritmo verifica se Sc evoluiu. Em caso afirmativo, então os eventos desabilitados para o estado destino são analisados a fim de verificar se alguma outra ação pode ocorrer. Este passo assegura que todas as ações possíveis de ocorrer para uma mesma transição são processadas. Isso significa que mais do que uma ação pode ocorrer para a mesma transição.

Caso Sc não tenha evoluído, então um novo es-tado é criado. Este eses-tado é comparado com os outros estados e, caso já exista, é descartado. Caso contrá-rio, é adicionado à fila de estados para ser tratado posteriormente.

Para cada transição devido a eventos não-controláveis, Gu e Su obtidos a partir da TCS evolu-em. O mesmo ocorre para a parte controlável na o-corrência de uma ação. Esta metodologia é

consisten-te com a definição de máquina de Mealy, onde as saídas (ações) dependem do estado atual e das entra-das válientra-das (transições).

Após o término do procedimento de criar uma transição e as ações correspondentes o algoritmo trata as demais transições presentes na fila de transições. Quando todas as transições na fila são tratadas, o algoritmo analisa o próximo estado disponível na fila de estados. Estes processos iterativos são efetuados até que a fila de estados se torne vazia. Isto significa que a máquina de estados finita está completa.

4. Um Exemplo Motivador

Com o intuito de demonstrar a metodologia proposta considera-se um sistema de manufatura composto por 3 máquinas e 2 buffers intermediários de capacidade um entre as máquinas, conforme ilustrado na figura 4. As máquinas são representadas por Mi, onde i = 1,2,3 e os buffers são representados por Bj, onde j = 1,2.

M1 B1 M2 B2 M3

a1 b1 a2 b2 a3 b3

Figura 4. Sistema de Manufatura

A modelagem da planta e das especificações é feita por intermédio de autômatos de estados finitos, seguindo a TCS. Para modelagem da planta, são con-sideradas apenas as máquinas. Os buffers são levados em conta somente no modelo das especificações.

Os eventos controláveis que correspondem ao início de operação das máquinas são representados por ax, onde x = 1,2,3, enquanto os eventos não-controláveis que correspondem ao fim de operação das máquinas são representados por bx. O compor-tamento discreto das máquinas é modelado pelo au-tômato da figura 5.

0 1

ax

bx

Figura 5. Modelo das Plantas

As especificações de controle para o sistema são restrições de coordenação para evitar overflow (so-brecarga) ou underflow (retirada de peças de um buf-fer vazio) nos bufbuf-fers. Estas restrições expressam a idéia de que se devem alternar os eventos bx e ax+1, iniciando-se pelos eventos bx. O autômato que mode-la estas especificações é mostrado na figura 6.

0 bx

1

ax+1

(4)

O cálculo do supervisor minimamente restritivo e não bloqueante baseia-se num processo iterativo que identifica e elimina “maus estados” no autômato que modela a linguagem-alvo (Cury, 2001). O super-visor monolítico para este problema possui 18 esta-dos e 32 transições e pode ser obtido com o auxílio da ferramenta Grail (Reiser et al., 2006).

Utilizando o algoritmo proposto neste trabalho, obtêm-se, a partir do autômato do supervisor, dados para criar a máquina de estados ilustrada na figura 7, que é composta por 8 estados e 22 transições.

Os estados estão nomeados de acordo com as máquinas que estão ligadas em um determinado mo-mento e os buffers que estão cheios. As transições são devido aos eventos não-controláveis e as ações, se houver, são separadas das transições por uma barra (/). Os eventos desabilitados são representados por traços. Observa-se que neste modelo as transições podem ocorrer devido a mais do que um evento não-controlável e as ações podem ser devido a mais do que um evento controlável.

M1 /a1 M1 M2 b1/ a1,a2 M2 Buf 1 b1 M1 M3 b2/a3 b1,b3/ a1,a2 b3 b1/ a1,a2 b2,b3/ a3 b3 M1 M2 M3 M1 M3 Buf 2 b2 M3 Buf 1,2 b1,b2 b1 b3/a3 M2 M3 Buf 1 b1 b1,b3 b1,b2,b3/ a1,a2,a3 b3 b2,b3/ a1,a2,a3 b2 b3/ a1,a2,a3 b2/ a1,a2,a3 b1,b3/ a1,a2,a3 b1,b2/ a1,a2,a3 a2,a3 a3 a1,a3 a2 a1 a2 a1,a2 1 2 3 4 5 6 7 8

Figura 7. Máquina de Estados de Mealy

5. Simplificação da Máquina de Estados A garantia de tratamento de mais do que um evento não-controlável dentro da mesma transição tem a desvantagem de resultar em um crescimento expo-nencial das transições, de acordo com o número de plantas presentes no modelo e quantas dessas podem ser habilitadas ao mesmo tempo. O número de transi-ções criadas para um dado estado é da ordem de 2n-1, onde n é o número de eventos não-controláveis váli-dos para aquele estado. Desta forma, para sistemas de grande porte, o tamanho de código para uma deter-minada implementação seria afetado significativa-mente para satisfazer essa condição. Uma solução alternativa para isso é considerar uma máquina de estados simplificada onde somente as transições de-vido a um único evento não-controlável são conside-radas. Transições resultantes da combinação de mais do que um evento não-controlável são removidas do modelo.

A figura 8 mostra a máquina simplificada para o sistema de manufatura. Esta máquina ainda possui 8 estados, porém o número de transições foi reduzido para 14, se comparado com o modelo da figura 7.

M1 /a1 M1 M2 b1/ a1,a2 M2 Buf 1 b1 M1 M3 b2/a3 b3 b1/ a1,a2 b3 M1 M2 M3 M1 M3 Buf 2 b2 M3 Buf 1,2 b1 b3/a3 M2 M3 Buf 1 b1 b3 b2 b3/ a1,a2,a3 b2/ a1,a2,a3 a2,a3 a3 a1,a3 a2 a1 a2 a1,a2 1 2 3 4 5 6 7 8

Figura 8. Máquina de Estados Simplificada

Esta solução garante economia de espaço em memória para uma implementação em CLP, por e-xemplo. Além disso, essa solução não restringe que mais do que um evento não-controlável seja tratado dentro do mesmo ciclo de execução. Se mais do que um evento não-controlável ocorrer, esses podem ser tratados ou não, dependendo da ordem em que os rungs são implementados em linguagem Ladder. Uma prática comum é nomear os estados da máquina em ordem crescente (1, 2, 3, e assim por diante) à medida que as transições são implementadas nos rungs. Caso um evento resulte em uma transição de um estado menor para um maior (estado 3 para o estado 12, por exemplo), esse evento será tratado; caso um evento resulte em uma transição de estado maior para um menor (estado 8 para o estado 5, por exemplo), o fluxo do programa permitirá que tal e-vento seja tratado somente no próximo ciclo de exe-cução do CLP.

6. Geração de Código para CLPs

(5)

Sinais elétricos

dos sensores para os atuadoresSinais elétricos Supervisor

Planta Eventos

Não-controláveis ControláveisEventos

Unidade de Controle

Processo a Controlar

Figura 9. (a) Esquema de Supervisão RW (b) Esquema de Controle normalmente empregado na prática.

Com a transformação do autômato do supervisor em uma máquina de Mealy, obtém-se um modelo que mais se aproxima da forma do controlador apresenta-do por Malik (2002), isto é, da estrutura de controle mostrada na figura 9-b. Sendo assim, a geração da lógica de controle para o CLP fica mais intuitiva que aquela obtida a partir de autômatos.

A seguir, discute-se sobre alguns aspectos relati-vos à implementação da máquina de estados em CLP, cujo ciclo de execução do programa obedece ao se-guinte funcionamento: leitura das entradas, execução da lógica de controle e escrita nas saídas.

Esta característica do CLP obriga que as saídas sejam atualizadas somente no fim do ciclo de execu-ção. Devido a isso, a ativação dos atuadores requer um tratamento especial. Olhando para a estrutura da máquina de estados, pode acontecer que ao final de operação de um equipamento ele pode ser requisitado para um novo início de operação dentro do mesmo ciclo de execução. O CLP não reconhece o processo de fim/início de operação, mantendo sua saída física ativa o tempo inteiro ao longo do mesmo ciclo de execução. A fim de evitar isso, variáveis são necessá-rias para representar a evolução das plantas e garantir o sincronismo durante a dinâmica do sistema. Estas variáveis são chamadas Planta i, com i variando de 1 até n onde n é o número de plantas no sistema. Esta variável é setada toda vez que um equipamento ter-mina sua operação. Este procedimento garante que o equipamento não seja requisitado para iniciar sua operação novamente dentro de um mesmo ciclo de execução. Ele será ligado somente no próximo ciclo de execução.

Assim como no modelo, as variáveis bx repre-sentam os eventos não-controláveis (transições) en-quanto as variáveis ax (ações) representam os even-tos controláveis na implementação.

O código Ladder pode ser dividido em cinco blocos: Inicialização, Entradas, Transições/Ações, Desabilitações e Saídas.

Inicialização: inicia a máquina de estados para o estado inicial e seta o evento controlável a1 a fim de iniciar o processo, como mostrado na figura 10. Ou-tras variáveis, tais como os demais eventos controlá-veis ax, os eventos não-controlácontrolá-veis bx e a evolução

das plantas Planta i, são resetadas. As variáveis rese-tadas não são mostradas na figura 10.

Entradas: as variáveis de transição bx serão ati-vadas no controlador somente quando um trigger ocorrer nas entradas correspondentes. Assim, um detector de pulso é necessário para cada entrada a fim de capturar tal evento, como mostra a figura 11.

Transições/Ações: o requisito para uma transição ocorrer é a máquina estar em um dado estado e um evento não-controlável válido ocorrer. Caso estes requisitos sejam atendidos, um novo estado é setado e o estado anterior é resetado. O evento não-controlável é resetado para garantir que um evento não-controlável seja responsável por somente uma transição durante o ciclo de execução, evitando assim o risco do Efeito Avalanche (Fabian e Hellgren, 1998). Caso uma planta evolua, a variável correspon-dente Planta i é setada para evitar que a ação corres-pondente para aquela planta seja tomada durante o mesmo ciclo de execução, sendo tratada somente no próximo ciclo de execução. Isto é devido ao trata-mento especial necessário para as ações, como des-crito previamente nesta seção. As ações, se houver, são setadas para permitir que a planta correspondente seja ativada no mesmo ciclo de execução ou no pró-ximo ciclo se for proibida de ocorrer no ciclo corren-te. A figura 12 mostra a parte inicial desse bloco para o sistema de manufatura.

Desabilitações: este bloco é responsável por de-sabilitar eventos controláveis em cada estado da má-quina. Isso significa que se a máquina alcançar um dado estado, os eventos controláveis relativos a este estado não serão permitidos de ocorrer. Isso é feito por intermédio de resetar as variáveis de ações seta-das durante as transições. A figura 13 mostra o bloco de desabilitações para o exemplo analisado.

Saídas: uma saída será permitida de ocorrer so-mente se a ação correspondente for tomada e sua variável correspondente Planta i não estiver setada, como mostrado na figura 14. Caso isso aconteça, a bobina Qi que representa a saída física do CLP será ativada. Ainda, no final do programa todas as variá-veis Planta i serão resetadas a fim de retornar para uma condição inicial antes de um novo ciclo de exe-cução. Start P S Estado 1 S a1

Figura 10. Bloco de Inicialização

P I1 S b1 P I2 S b2 P I3 S b3

(6)

Estado 1 S Estado 2 b1 R Estado 1 R b1 S Planta 1 S a1 S a2 Estado 2 S Estado 3 b1 R Estado 2 R b1 S Planta 1 Estado 2 S Estado 4 b2 R Estado 2 R b2 S Planta 2 S a3

Figura 12. Parte Inicial do Bloco de Transições/Ações

Estado 3 R a1 Estado 7 Estado 8 Estado 1 R a2 Estado 4 Estado 6 Estado 8 Estado 1 R a3 Estado 2 Estado 3

Figura 13. Bloco de Desabilitações

a3 Planta 3 Q3 R Planta 1 R Planta 2 R Planta 3 a2 Planta 2 Q2 a1 Planta 1 Q1

Figura 14. Bloco de Saídas

7. Conclusões

Este artigo apresenta um algoritmo para transformar o autômato de um supervisor obtido a partir da Teo-ria de Controle Supervisório (TCS) em uma máquina de estados finita, sua simplificação e conseqüente implementação em linguagem Ladder para Controla-dores Lógico Programáveis (CLPs). O código para efetuar o procedimento de controle é dividido em cinco blocos. Diversos eventos podem ser tratado no mesmo ciclo de execução do CLP dependendo da evolução das transições e das ações requeridas, res-pectivamente. Este trabalho serve como ponto de partida para o desenvolvimento de ferramentas auto-máticas para geração de código e de uma metodolo-gia similar à apresentada aqui, mas baseada na Teoria de Controle Modular Local (Queiroz e Cury, 2002), abordagem que explora a natureza modular do siste-ma a ser controlado, criando supervisores específicos para partes específicas da planta modelada.

Agradecimentos

Os autores agradecem a FAPESC e ao CNPq pelo apoio financeiro (Contrato CON04504/2008-7) e à Whirlpool Latin America pelo incentivo à realização deste trabalho.

Referências Bibliográficas

Cassandras, C.G; Lafortune, S. (1999). Introduction to Discrete Event Systems. 2nd Ed.

Massachussetts, Kluwer Academic Publishers. Cury, J.E.R. (2001). Teoria de Controle Supervisório

de Sistemas a Eventos Discretos. In: V Simpósio Brasileiro de Automação Inteligente (SBAI). Fabian, M. e Hellgren, A. (1998). PLC-based

implementation of supervisory control for discrete systems. In: 37th IEEE Conference on Decision and Control, v. 3, pp. 3305-3310. Malik, P. (2002). Generating controllers from

discrete-event models. In: F. Cassez, C. Jard, F. Laroussinie, M. D. Ryan, Proc. of the MOVEP. Mealy, George H. (1955). A Method to Synthesizing

Sequential Circuits. Bell Systems Technical Journal. pp. 1045–1079.

Queiroz, M. H. e Cury J. E. R. (2002). Synthesis and implementation of local modular supervisory control for a manufacturing cell. Proc. of 6th WODES.

Ramadge, P. J.; Wonham, W. M. (1989). The control of discrete event systems. In: Proceedings of IEEE, Special Issue on Discrete Event Dynamics Systems, 77(1):81-98.

(7)

UMA ABORDAGEM EVOLUTIVA ADAPTATIVA PARA O PROBLEMA DE

SEQUENCIAMENTO EM UMA M ´AQUINA COM PENALIDADES POR

ANTECIPA ¸C ˜AO E ATRASO DA PRODU ¸C ˜AO

F´abio Fernandes Ribeiro∗, Marcone Jamilson Freitas Souza, S´ergio Ricardo de Souza∗ ∗Centro Federal de Educa¸c˜ao Tecnol´ogica de Minas Gerais

CEFET/MG – Campus II

CEP: 30.510-000 – Belo Horizonte – MG – Brasil

Universidade Federal de Ouro Preto - ICEB

Campus Universit´ario – UFOP CEP 35.400-000 – Ouro Preto – MG – Brasil

Emails: fabiobh@gmail.com, marcone@iceb.ufop.br, sergio@dppg.cefetmg.br

Abstract— This paper deals with the Single Machine Scheduling Problem with Earliness and Tardiness Penal-ties, considering distinct due windows and sequence-dependent setup time. Due to the complexity of this problem, an adaptive evolutive method is proposed for solving it. This method is based on Classical Genetic Algorithm being the crossover operator chosen according to the success among five operators in a previous search. Compu-tational results shows the effectiveness of the proposed algorithm.

Keywords— Genetic Algorithm, GRASP, Metaheuristics, Path Relinking, Single Machine Scheduling Resumo— Este trabalho trata do problema de sequenciamento em uma m´aquina com penalidades por anteci-pa¸c˜ao e atraso da produ¸c˜ao, considerando janelas de entrega e tempo de prepara¸c˜ao de m´aquina dependente da sequˆencia de produ¸c˜ao. Em vista da complexidade combinat´oria do problema, um m´etodo evolutivo adaptativo ´

e proposto para resolvˆe-lo. Este m´etodo baseia-se nos princ´ıpios do Algoritmo Gen´etico Cl´assico, sendo que o operador de cruzamento ´e escolhido dentre cinco operadores implementados, em fun¸c˜ao da qualidade das solu¸c˜oes produzidas em buscas pregressas. Testes computacionais mostram a efetividade do algoritmo proposto. Palavras-chave— Algoritmos Gen´eticos, GRASP, Metaheur´ısticas, Reconex˜ao por caminhos, Sequenciamento em uma m´aquina

1 Introdu¸c˜ao

O problema de programa¸c˜ao da produ¸c˜ao objeto de estudo deste trabalho ´e relativo ao sequenci-amento em uma m´aquina com minimiza¸c˜ao das penalidades por antecipa¸c˜ao e atraso da produ-¸c˜ao (Single Machine Scheduling for Minimizing Earliness and Tardiness Penalties), denominado PSUMAA. No problema abordado, considera-se a existˆencia de janelas de entrega e tempos de pre-para¸c˜ao de m´aquina dependentes da sequˆencia de produ¸c˜ao. O objetivo ´e determinar a sequˆencia na qual as tarefas ser˜ao processadas numa deter-minada m´aquina, durante um per´ıodo de tempo, e o momento em que elas ser˜ao processadas, de modo a minimizar os custos por antecipa¸c˜ao ou atraso na entrega. Para a resolu¸c˜ao deste blema, um Algoritmo Gen´etico Adaptativo ´e pro-posto. A popula¸c˜ao inicial deste algoritmo ´e ge-rada aplicando-se a fase de constru¸c˜ao GRASP (Feo and Resende, 1995), tendo como fun¸c˜ao guia cinco regras de despacho (Montevechi et al., 2002): Tardiness Due Date (TDD), Earliest Due Date (EDD), Shortest Processing Time (SPT), Weight Shortest Processing Time (WSPT) e Longest Pro-cessing Time (LPT). O cruzamento utiliza um m´etodo adaptativo baseado na qualidade dos in-div´ıduos gerados por cada operador crossover ao longo da evolu¸c˜ao, ou seja, ap´os um certo n´umero de gera¸c˜oes (no caso, cinco), o fator de escolha

do operador a ser aplicado ´e atualizado de acordo com a qualidade dos indiv´ıduos formados por cada um deles nas gera¸c˜oes anteriores.A popula¸c˜ao so-brevivente ´e composta pelos cinco melhores indiv´ı-duos refinados desses operadores, pelo melhor in-div´ıduo encontrado at´e ent˜ao e por 89 inin-div´ıduos escolhidos por elitismo. Outros cinco indiv´ıduos s˜ao escolhidos aleatoriamente da gera¸c˜ao corrente e submetidos a muta¸c˜ao, por meio de troca en-tre duas tarefas, para assegurar a diversidade da popula¸c˜ao. A popula¸c˜ao evolui at´e que o crit´erio de parada seja atingido. A Reconex˜ao por Ca-minhos (Glover, 1996) ´e tamb´em aplicada a cada cinco gera¸c˜oes, e foi implementada caminhando-se do melhor indiv´ıduo produzido pelo algoritmo at´e ent˜ao em dire¸c˜ao ao melhor indiv´ıduo produzido por cada operador crossover. O restante deste tra-balho est´a estruturado como segue. Na Se¸c˜ao 2 ´e feita uma breve apresenta¸c˜ao de trabalhos relaci-onados. As caracter´ısticas do problema estudado s˜ao detalhadas na Se¸c˜ao 3. Na Se¸c˜ao 4 ´e descrito o Algoritmo Gen´etico Adaptativo desenvolvido para resolu¸c˜ao do PSUMAA abordado. Na Se¸c˜ao 5 s˜ao apresentados e discutidos os resultados computa-cionais. A Se¸c˜ao 6 conclui o trabalho.

2 Trabalhos relacionados

(8)

total como crit´erio de otimiza¸c˜ao, ´e NP-dif´ıcil (Du and Leung, 1990).(Lee and Choi, 1995) usaram Al-goritmos Gen´eticos (AG) para a resolu¸c˜ao do pro-blema com datas de entrega distintas. Esses au-tores desenvolveram um algoritmo espec´ıfico, de complexidade polinomial, para determinar a data ´otima de conclus˜ao de processamento de cada ta-refa da sequˆencia produzida pelo AG. (Wan and Yen, 2002) trataram o PSUMAA considerando ja-nelas de entrega, ao inv´es de datas de entrega. Em (Gomes Jr. et al., 2007) trata-se o PSUMAA mais gen´erico, considerando al´em das janelas de entrega, tamb´em tempos de setup dependentes da sequˆencia. Esses ´ultimos autores desenvolve-ram uma formula¸c˜ao de programa¸c˜ao matem´atica para o problema, bem como um algoritmo heur´ıs-tico para resolver problemas-teste de dimens˜oes mais elevadas. Segundo (Matias, 2008), o con-trole dos parˆametros e operadores dos Algoritmos Gen´eticos durante a sua execu¸c˜ao ´e de fundamen-tal importˆancia, pois permite um ajuste autom´ a-tico em tempo de execu¸c˜ao. Este autor propˆos uma t´ecnica de adapta¸c˜ao autom´atica dos prin-cipais operadores dos Algoritmos Gen´eticos base-ada no desempenho do algoritmo e na distribui¸c˜ao dos indiv´ıduos da popula¸c˜ao no espa¸co de busca. A t´ecnica estudada permite ao Algoritmo Gen´e-tico ajustar o valor dos operadores, de forma a privilegiar aqueles que podem produzir resultados melhores em um determinado momento da busca.

3 Problema de sequenciamento abordado O problema objeto deste trabalho ´e o de sequenci-amento em uma m´aquina (PSUMAA), com tempo de prepara¸c˜ao dependente da sequˆencia de produ-¸c˜ao e janelas de entrega. Considera-se que uma m´aquina deve processar um conjunto de n tarefas e que cada tarefa possui um tempo de processa-mento Pi, uma data inicial Eie uma data final Ti,

desejadas para o t´ermino do processamento. Al´em disso, a m´aquina executa no m´aximo uma tarefa por vez e, uma vez iniciado o processamento de uma tarefa, a mesma dever´a ser finalizada, n˜ao sendo permitida a interrup¸c˜ao do processamento. Admite-se que todas as tarefas estejam dispon´ı-veis para processamento na data 0. Considera-se, tamb´em, que quando uma tarefa j ´e sequenciada imediatamente ap´os uma tarefa i, sendo estas per-tencentes a diferentes fam´ılias de produtos, ´e ne-cess´ario um tempo Sij para a prepara¸c˜ao da m´

a-quina. Tempos de prepara¸c˜ao de m´aquina nulos (Sij = 0) levam a produtos da mesma fam´ılia.

Considera-se, ainda, que a m´aquina n˜ao ne-cessita de tempo de prepara¸c˜ao inicial. Permite-se, neste trabalho, tempo ocioso entre a execu-¸c˜ao de duas tarefas consecutivas. Considera-se, al´em disso, que tarefas devem ser finalizadas den-tro da janela de tempo [Ei, Ti], denominada janela

de entrega. Caso a tarefa seja finalizada antes de Ei, h´a, ent˜ao, uma penaliza¸c˜ao por antecipa¸c˜ao.

Caso a tarefa seja finalizada ap´os Ti, ent˜ao

ocor-rer´a uma penaliza¸c˜ao por atraso. As tarefas que forem finalizadas dentro da janela de entrega n˜ao proporcionar˜ao nenhum custo. Por fim, admite-se que custos unit´arios por antecipa¸c˜ao e atraso da produ¸c˜ao sejam dependentes das tarefas, ou seja, cada tarefa i possui um custo unit´ario de anteci-pa¸c˜ao αi e um custo unit´ario de atraso βi. O

ob-jetivo do problema ´e a minimiza¸c˜ao do somat´orio dos custos de antecipa¸c˜ao e atraso da produ¸c˜ao.

4 Metodologia heur´ıstica 4.1 Representa¸c˜ao de um indiv´ıduo

Um indiv´ıduo (sequˆencia de tarefas) ´e represen-tado por um vetor v de n genes (tarefas). A po-si¸c˜ao de cada gene indica sua ordem de produ¸c˜ao. Por exemplo, no indiv´ıduo v = {7, 1, 5, 6, 4, 3, 2}, a tarefa 7 ´e a primeira a ser processada e a tarefa 2, a ´ultima.

4.2 Avalia¸c˜ao dos indiv´ıduos

Todos os indiv´ıduos da popula¸c˜ao s˜ao avaliados pela pr´opria fun¸c˜ao objetivo do problema, dada pela equa¸c˜ao (1), onde s˜ao considerados mais adaptados aqueles que obtiverem o menor valor.

min Z =

n

X

i=1

(αiei+ βiti) ; (1)

4.3 Constru¸c˜ao de uma popula¸c˜ao inicial A popula¸c˜ao inicial do Algoritmo Gen´etico Adap-tativo (AGA) proposto ´e gerada aplicando-se a fase de constru¸c˜ao GRASP (Feo and Resende, 1995), tendo como fun¸c˜ao guia cinco regras de des-pacho (EDD, TDD, SPT, WSPT e LPT). Para cada constru¸c˜ao (GRASP + Regra de despacho) s˜ao gerados 200 indiv´ıduos. Em seguida, estes s˜ao ordenados, do melhor para o pior segundo a fun-¸c˜ao de avalia¸c˜ao. A popula¸c˜ao inicial ´e, ent˜ao, composta pelos 100 melhores indiv´ıduos gerados. 4.3.1 Regras de despacho

(9)

e a sua prioridade de processamento. Finalmente, a regra de despacho LPT elabora a sequˆencia de tarefas, criando uma ordem tal que a tarefa com tempo de processamento mais longo seja proces-sada antes daquela com o tempo de processamento mais curto, ou seja, as tarefas com processamento mais longo s˜ao as primeiros a serem processadas. A escolha dessas regras ´e associada ao seu baixo custo computacional (Montevechi et al., 2002). 4.3.2 Fase de constru¸c˜ao GRASP

O procedimento de constru¸c˜ao segue as id´eias da fase de constru¸c˜ao do algoritmo GRASP (Feo and Resende, 1995). Neste procedimento, um indiv´ı-duo ´e formado gene a gene, de acordo com um crit´erio g de sele¸c˜ao. Para estimar o benef´ıcio da inser¸c˜ao de cada gene (tarefa), utiliza-se uma das regras de despacho descritas na se¸c˜ao anterior, re-gra essa que ´e escolhida de forma aleat´oria, mas ´e fixa durante toda a constru¸c˜ao. A cada inser-¸c˜ao, os pr´oximos genes candidatos a formarem o indiv´ıduo s˜ao colocados em uma lista de candida-tos, respeitando o crit´erio de sele¸c˜ao. Os melho-res candidatos s˜ao, ent˜ao, colocados em uma Lista Restrita de Candidatos (LRC). A seguir, um des-ses candidatos ´e escolhido randomicamente e colo-cado no indiv´ıduo em constru¸c˜ao. O procedimento ´e encerrado quando todos os genes s˜ao alocados, situa¸c˜ao na qual o indiv´ıduo est´a completamente formado. Um parˆametro γ, 0 ≤ γ ≤ 1, ´e

utili-AlgoritmoAGA(maxger,numind,aaa ); 1 t ← 0;

2 Gere a popula¸c˜ao inicial P (t); 3 Avalie P (t);

4 enquanto (t ≤ maxger) fa¸ca 5 t ← t + 1;

6 Gere P (t) a partir de P (t − 1); 7 enquanto (i ≤ numind) fa¸ca

8 i ← 1;

9 cross ←N´umero aleat´orio at´e 100; 10 se (cross ≤ probcrossover ) fa¸ca 11 Selecionar indiv´ıduo;

12 Cruzar;

13 fim-se;

14 Avaliar P (t);

15 fim-enquanto (i ≤ numind) fa¸ca 16 Definir a popula¸c˜ao sobrevivente; 17 se (t mod 5 = 0) fa¸ca

18 Atualizar probabilidade de escolha de cada operador (p(Oi));

19 Executar Busca local;

20 Aplicar Reconex˜ao por Caminhos; 21 fim-se;

22 fim-enquanto; fimAGA;

Figura 1: Pseudoc´odigo do Algoritmo Gen´etico Adaptativo

zado para controlar o tamanho da LRC. Empirica-mente, foram gerados preliminarmente 10.000 in-div´ıduos para cada um dos seguintes valores de γ: 0, 02; 0, 04; 0, 06; 0, 08; 0, 10; 0, 12; 0, 14; 0, 16; 0, 18; 0, 20. Tendo-se como base um problema-teste en-volvendo 20 tarefas e as cinco regras de despa-cho, cada qual escolhida aleatoriamente em cada execu¸c˜ao, o melhor comportamento foi observado para γ = 0, 20.

4.4 Algoritmo gen´etico adaptativo aplicado ao PSUMAA

A Figura 1 apresenta o pseudoc´odigo do Algo-ritmo Gen´etico Adaptativo (AGA) proposto. As fases desse algoritmo s˜ao, a seguir, detalhadas. M´etodo de sele¸c˜ao de indiv´ıduos Ap´os a avalia¸c˜ao de toda a popula¸c˜ao, os indiv´ıduos s˜ao selecionados por meio do m´etodo da roleta, cujo principal objetivo ´e permitir que os indiv´ıduos mais adaptados tenham maior probabilidade de serem selecionados. Para este problema, a apti-d˜ao dos indiv´ıduos (fitness) ´e uma fun¸c˜ao linear decrescente com rela¸c˜ao `a fun¸c˜ao de avalia¸c˜ao. Cruzamento Ap´os a avalia¸c˜ao de toda a po-pula¸c˜ao, os indiv´ıduos s˜ao selecionados para re-produ¸c˜ao atrav´es do m´etodo de sele¸c˜ao de indiv´ı-duos j´a descrito. Os operadores crossover utili-zados s˜ao o One Point Crossover (OX), o Simi-lar Job Order Crossover (SJOX), o Relative Job Order Crossover (RRX), o Based Order Uniform Crossover (BOUX) e o Partially Mapped Crosso-ver (PMX) por apresentarem alta eficiˆencia para o PSUMAA (Lee and Choi, 1995). A probabili-dade de escolha de um operador crossover espec´ı-fico varia de acordo com a qualidade das solu¸c˜oes produzidas em gera¸c˜oes passadas. Assim, sejam Oi, i = 1, · · · , 5, os cinco operadores crossover.

Inicialmente, cada operador crossover Oi tem a

mesma probabilidade de ser escolhido, no caso, p(Oi) = 1/5. Seja f (s∗) a melhor solu¸c˜ao

encon-trada at´e ent˜ao e Ai o valor m´edio das solu¸c˜oes

encontradas por cada operador Oi desde a ´ultima

atualiza¸c˜ao. Caso o operador n˜ao tenha sido esco-lhido nas ´ultimas cinco gera¸c˜oes, faz-se Ai = 1.

Seja qi = f (s∗) = Ai e p(Oi) = qi/P5j=1qj,

i = 1, · · · , 5. Observe que quanto melhor a so-lu¸c˜ao, maior o valor de qi e, portanto, maior a

probabilidade p(Oi) de se escolher o operador Oi.

Logo, durante a evolu¸c˜ao do algoritmo, o melhor operador tem sua chance de escolha incrementada. Este procedimento foi inspirado no algoritmo Re-active GRASP (Prais and Ribeiro, 2000).

(10)

aleatoriamente duas tarefas, trocando-as de posi-¸c˜ao. Se esse novo vizinho for melhor que o an-terior segundo a fun¸c˜ao de avalia¸c˜ao, ele ´e aceito e passa a ser a solu¸c˜ao corrente; caso contr´ario, outro vizinho ´e escolhido aleatoriamente. Se du-rante MRDmax nenhuma melhor solu¸c˜ao for ge-rada, ent˜ao passa-se a usar movimentos de realo-ca¸c˜ao. Havendo melhora com este tipo de movi-mento, retorna-se `a utiliza¸c˜ao de movimentos de troca; caso contr´ario, encerra-se a busca local de-corridas MRDmax itera¸c˜oes sem melhora. Esse m´etodo foi escolhido por apresentar alta eficiˆencia computacional, pois n˜ao requer a explora¸c˜ao de toda a vizinhan¸ca (Mladenovic and Hansen, 1997). Reconex˜ao por Caminhos A Reconex˜ao por Caminhos (Path Relinking) ´e um procedimento que integra estrat´egias de intensifica¸c˜ao e diver-sifica¸c˜ao durante o processo de busca (Rossetti, 2003). Ele gera novas solu¸c˜oes explorando traje-t´orias que ligam solu¸c˜oes de alta qualidade. Dado um par de solu¸c˜oes, come¸ca-se a busca com uma delas, dita solu¸c˜ao base, e chega-se `a outra, dita solu¸c˜ao guia, adicionando-se gradualmente atribu-tos da solu¸c˜ao guia `a solu¸c˜ao base. No problema em quest˜ao, durante o processo evolutivo forma-se um grupo com os cinco melhores indiv´ıduos obti-dos por cada operador crossover. Periodicamente (a cada cinco gera¸c˜oes), aciona-se a Reconex˜ao por Caminhos, tendo-se, como solu¸c˜ao base, o melhor indiv´ıduo encontrado pelo algoritmo at´e ent˜ao e, como solu¸c˜ao guia, cada um dos melhores indiv´ı-duos formados por cada operador crossover. O procedimento aplicado ´e a Reconex˜ao por Cami-nhos Regressiva Truncada (Truncated Backward Path Relinking), no qual interrompe-se a busca quando 75% dos atributos da solu¸c˜ao guia forem inseridos na solu¸c˜ao base. A escolha deste m´e-todo ´e justificada pela sua eficiˆencia e pelo baixo custo computacional (Rossetti, 2003). Considera-se como atributo a posi¸c˜ao da tarefa na sequˆen-cia de produ¸c˜ao. Para cada tarefa candidata `a inser¸c˜ao, aplica-se o m´odulo de Busca Local des-crito anteriormente, n˜ao permitindo a movimen-ta¸c˜ao da tarefa candidata. A tarefa efetivamente inserida ´e aquela que produzir o melhor valor para a fun¸c˜ao de avalia¸c˜ao.

Sobrevivˆencia de indiv´ıduos A popula¸c˜ao sobrevivente ´e composta por indiv´ıduos mais adaptados, selecionados por elitismo, pela melhor solu¸c˜ao gerada por cada um dos operadores cros-sover e pela melhor solu¸c˜ao produzida pela m´e-todo at´e ent˜ao.

Crit´erio de parada Como crit´erio de parada, adota-se o n´umero m´aximo de gera¸c˜oes.

5 Resultados computacionais O Algoritmo Gen´etico Adaptativo proposto foi implementado em linguagem C, utilizando o am-biente C++ Builder 5. Seus parˆametros s˜ao apre-sentados na Tabela 1. Os testes computacio-nais foram realizados em um computador Pentium

Core 2 Duo 2,1 GHz, com 4 GB de mem´oria RAM, sob plataforma Windows Vista. Os problemas-teste utilizados s˜ao os de (Gomes Jr. et al., 2007) e envolvem n´umero de tarefas n igual a 8, 9, 10, 11, 12, 15, 20, 25, 30, 40, 50 e 75. S˜ao 12 problemas-teste para cada n´umero de tarefas, totalizando 144 problemas-teste. Cada problema-teste foi resol-vido 30 vezes pelo m´etodo proposto, com exce-¸c˜ao daqueles envolvendo 75 tarefas, os quais fo-ram resolvidos apenas 20 vezes, tendo MRDmax = 2 × n, por demandar maior tempo computa-cional. A Tabela 2 mostra os resultados obtidos

Tabela 1: Parˆametros do AGA

Parˆametros Valores

Parˆametro γ constru¸c˜ao GRASP 0,20

Itera¸c˜oes da Busca Local (MRDmax ) 7 × n

Gera¸c˜oes do AG Adaptativo (maxger ) 100

Probabilidade de cruzamento 80%

Taxa de muta¸c˜ao 5%

para o AGA, bem como reproduz os de (Gomes Jr. et al., 2007), por apresentar os melhores resultados para este tipo de problema at´e a presente data. A primeira coluna mostra o n´umero de tarefas en-volvidas; a segunda e terceira colunas mostram o quanto as solu¸c˜oes m´edias de cada algoritmo (AGA e (Gomes Jr. et al., 2007), respectivamente) desviaram da melhor solu¸c˜ao conhecida referente a cada problema-teste; nas duas ´ultimas colunas mostra-se o quanto as melhores solu¸c˜oes geradas por tais algoritmos desviaram das melhores solu-¸c˜oes conhecidas. O Desvio ´e calculado pela ex-press˜ao Desvio = (RMed − MR)/MR, sendo RMed o resultado m´edio obtido pela aplica¸c˜ao do respec-tivo algoritmo e MR ´e o melhor resultado conhe-cido de cada problema-teste.

Nas tabelas 3, 4, 5 e 6 s˜ao apresentados os re-sultados detalhados para os problemas-teste com n´umero de tarefas iguais a 12, 15, 20, 25, 30, 40, 50 e 75 tarefas. A coluna “Instˆancia” apresenta o n´umero do problema-teste testado; a coluna “GAP (%)” apresenta o desvio m´edio em rela¸c˜ao `as solu-¸c˜oes m´edias; a coluna “GAP MS (%)” apresenta o desvio m´edio em rela¸c˜ao `a melhor solu¸c˜ao conhe-cida para o problema.

Tabela 2: Resultados do AGA

# Desvio sol. m´edia Desviosolu¸c˜ao

Tarefas AGA Gomes Jr. AGA Gomes Jr.

8 0,00 0,03 0,00 0,00 9 0,15 0,06 0,00 0,00 10 0,24 0,02 0,00 0,00 11 0,03 0,12 0,00 0,00 12 0,07 0,21 0,00 0,00 15 0,76 1,47 0,00 0,00 20 0,73 1,65 0,00 0,00 25 1,02 2,32 0,00 0,00 30 1,60 3,34 0,00 -0,20 40 2,15 4,38 0,25 -0,18 50 3,72 6,13 0,60 -0,28 75 4,59 10,89 1,48 -0,56

(11)

al-goritmo proposto foram sempre menores que aque-les de (Gomes Jr. et al., 2007). Este fato mostra a robustez do AGA, uma vez que produz solu¸c˜oes finais com uma menor variabilidade. Para proble-mas envolvendo 30 tarefas, o AGA gerou a melhor solu¸c˜ao conhecida em todas as execu¸c˜oes, ao passo que no algoritmo de (Gomes Jr. et al., 2007) houve um desvio de 0,20%. Para os problemas-teste en-volvendo 40, 50 e 75 tarefas, o AGA produziu so-lu¸c˜oes melhores que as de (Gomes Jr. et al., 2007). Para as instˆancias de 12 e 15 tarefas, apresentados na Tabela 3, o AGA apresentou um desvio m´edio em rela¸c˜ao `a melhor solu¸c˜ao encontrada 48% me-nor do que o algoritmo de (Gomes Jr. et al., 2007).

Tabela 3: Resultados para 12 e 15 tarefas

# GAP (%) GAP MS (%)

Instˆancia AGA Gomes Jr. AGA Gomes Jr.

1201 0,00 0,56 0,00 0,00 1202 0,07 0,10 0,00 0,00 1203 0,11 0,21 0,00 0,00 1204 0,07 0,04 0,00 0,00 1205 0,00 0,00 0,00 0,00 1206 0,00 0,00 0,00 0,00 1207 0,39 0,35 0,00 0,00 1208 0,00 0,00 0,00 0,00 1209 0,14 1,25 0,00 0,00 1210 0,10 0,06 0,00 0,00 1211 0,00 0,00 0,00 0,00 1212 0,00 0,00 0,00 0,00 1501 0,00 0,00 0,00 0,00 1502 1,10 2,93 0,00 0,00 1503 0,00 3,89 0,00 0,00 1504 0,00 0,57 0,00 0,00 1505 0,00 1,68 0,00 0,00 1506 0,00 0,28 0,00 0,00 1507 0,23 0,93 0,00 0,00 1508 7,53 5,23 0,00 0,00 1509 0,00 0,00 0,00 0,00 1510 0,24 1,29 0,00 0,00 1511 0,00 0,81 0,00 0,00 1512 0,00 0,00 0,00 0,00

Para as instˆancias envolvendo 20 e 25 tarefas (Tabela 4), o desvio m´edio em rela¸c˜ao `a melhor solu¸c˜ao encontrado pelo AGA foi 44% menor que o alcan¸cado por (Gomes Jr. et al., 2007). Em instˆancias envolvendo 30 e 40 tarefas (5), o AGA apresentou um ganho m´edio na melhor solu¸c˜ao de 0,13% enquanto (Gomes Jr. et al., 2007) apre-sentou piora de 0,19%. J´a em rela¸c˜ao ao desvio m´edio da melhor solu¸c˜ao encontrada, o resultado apresentado pelo AGA foi 48% melhor do que os de (Gomes Jr. et al., 2007). Para as maiores ins-tˆancias, de 50 e 75 tarefas apresentados na Tabela 6, os resultados atingidos pelo AGA foram ainda melhores na compara¸c˜ao com os de (Gomes Jr. et al., 2007). O percentual m´edio de melhora foi de 0,54%, ao passo que (Gomes Jr. et al., 2007) apresentou piora de 0,42%. O desvio m´edio em rela¸c˜ao ao melhor resultado foi de 31%.

6 Conclus˜oes

Este artigo teve seu foco no PSUMAA consi-derando janelas de entrega e tempo de

prepa-Tabela 4: Resultados para 20 e 25 tarefas

# GAP (%) GAP MS (%)

Instˆancia AGA Gomes Jr. AGA Gomes Jr.

2001 0,00 0,00 0,00 0,00 2002 0,37 3,05 0,00 0,00 2003 0,32 1,04 0,00 0,00 2004 0,23 1,14 0,00 0,00 2005 0,38 0,98 0,00 0,00 2006 4,74 4,52 0,00 0,00 2007 1,34 3,87 0,00 0,00 2008 0,21 0,62 0,00 0,00 2009 0,33 2,09 0,00 0,00 2010 0,27 1,09 0,00 0,00 2011 0,40 0,68 0,00 0,00 2012 0,20 0,72 0,00 0,00 2501 0,14 0,36 0,00 0,00 2502 0,22 0,54 0,00 0,00 2503 0,00 0,12 0,00 0,00 2504 0,35 0,55 0,00 0,00 2505 0,69 2,60 0,00 0,00 2506 0,02 0,21 0,00 0,00 2507 0,17 1,46 0,00 0,00 2508 0,17 1,15 0,00 0,00 2509 0,00 0,27 0,00 0,00 2510 5,78 11,20 0,00 0,00 2511 4,19 6,25 0,00 0,00 2512 0,53 3,09 0,00 0,00

(12)

Tabela 5: Resultados para 30 e 40 tarefas

# GAP (%) GAP MS (%)

Instˆancia AGA Gomes Jr. AGA Gomes Jr.

3001 0,80 2,53 0,00 0,00 3002 0,08 0,31 0,00 0,00 3003 0,47 1,93 0,00 0,00 3004 2,78 4,92 0,00 0,00 3005 2,03 2,62 0,00 0,00 3006 0,64 3,36 0,00 0,00 3007 0,29 1,40 0,00 0,00 3008 5,89 6,20 0,00 0,00 3009 0,00 1,43 0,00 0,00 3010 2,84 4,56 0,00 0,00 3011 2,18 8,42 0,00 -2,30 3012 1,18 2,42 0,00 -0,07 4001 0,35 1,16 0,00 0,00 4002 0,28 0,81 0,00 0,00 4003 0,00 0,67 0,00 0,00 4004 1,62 2,30 0,04 0,00 4005 1,27 2,45 0,00 0,00 4006 1,19 3,41 0,00 0,00 4007 2,51 7,17 1,48 0,00 4008 2,16 4,03 0,00 0,00 4009 3,97 6,77 0,00 0,00 4010 2,95 4,46 0,39 0,00 4011 5,51 12,57 1,11 -2,17 4012 3,93 6,79 0,00 0,00 Agradecimentos

Os autores agradecem ao CEFET-MG, CAPES e FAPERJ.

Referˆencias

Du, J. and Leung, J. Y. T. (1990). Minimi-zing total tardiness on one machine is np-hard, Mathematics of Operations Research 15: 483–495.

Feo, T. A. and Resende, M. G. C. (1995). Gre-edy randomized adaptive search procedures, Journal of Global Optimization 6: 109–133. Glover, F. (1996). Tabu search and adaptive

me-mory programming - advances, applications and challenges, in R. S. Barr, R. V. Helga-son and J. L. Kennington (eds), Computing Tools for Modeling, Optimization and Simu-lation: Interfaces in Computer Science and Operations Research, Kluwer Academic Pu-blishers, pp. 1–75.

Gomes Jr., A. C., Carvalho, C. R. V., Mu-nhoz, P. L. A. and Souza, M. J. F. (2007). Um m´etodo heur´ıstico h´ıbrido para resol-ver o problema de sequenciamento em uma m´aquina com penalidades por antecipa¸c˜ao e atraso, Anais do XXXIX Simp´osio Brasileiro de Pesquisa Operacional, Fortaleza, Brazil, pp. 1649–1660.

Lee, C. Y. and Choi, J. Y. (1995). A genetic algo-rithm for job sequencing problems with

dis-Tabela 6: Resultados para 50 e 75 tarefas

# GAP (%) GAP MS (%)

Instˆancia AGA Gomes Jr. AGA Gomes Jr.

5001 3,72 5,34 0,13 -0,89 5002 3,46 6,00 0,56 -1,98 5003 0,60 1,59 0,00 0,00 5004 0,00 4,73 0,00 0,00 5005 0,62 2,33 0,57 0,00 5006 0,43 1,93 0,00 0,00 5007 5,27 8,95 0,00 0,00 5008 1,10 4,04 0,78 0,00 5009 4,93 9,46 1,77 -0,02 5010 5,49 5,44 3,33 -0,45 5011 7,74 11,70 0,00 0,00 5012 7,63 12,10 0,00 0,00 7501 4,48 7,40 0,00 0,00 7502 2,34 7,01 0,00 0,00 7503 5,84 7,98 0,52 -3,30 7504 2,04 4,05 0,00 -0,45 7505 6,90 12,52 0,00 0,00 7506 2,16 7,09 0,00 0,06 7507 5,34 11,19 0,00 0,00 7508 6,67 16,62 0,00 0,00 7509 3,36 10,65 5,25 -2,84 7510 3,99 9,13 0,00 0,00 7511 12,45 24,03 0,00 0,00 7512 6,45 13,05 0,00 0,00

tinct due dates and general early-tardy pe-nalty weights, Computers and Operations Re-search 22: 857–869.

Matias, P. T. (2008). Avalia¸c˜ao comparativa de algoritmos evolutivos com operadores adap-tativos, Disserta¸c˜ao de mestrado, Programa de Engenharia Civil, UFRJ, Rio de Janeiro. Mladenovic, N. and Hansen, P. (1997). Variable

neighborhood search, Computers and Opera-tions Research 24: 1097–1100.

Montevechi, J. A., Turrioni, J. B., Almeida, A. D., Mergulh˜ao, R. C. and Leal, F. (2002). An´ a-lise comparativa entre regras heur´ısticas de sequenciamento da produ¸c˜ao aplicada em Job Shop, Produto e Produ¸c˜ao 6(2): 12–18. Prais, M. and Ribeiro, C. C. (2000). An

appli-cation to a matrix decomposition problem in tdma traffic assignment, INFORMS - Jour-nal on Computing 12: 164–176.

Rossetti, I. C. M. (2003). Estrat´egias sequenciais e paralelas de GRASP com reconex˜ao por ca-minhos para o problema de s´ıntese de redes a 2 caminhos, Tese de doutorado, Programa de P´os-Gradua¸c˜ao em Inform´atica, PUC-RJ, Rio de Janeiro, Brasil.

(13)

PRINC´IPIO DA OTIMALIDADE PR ´OXIMA APLICADO AO PROBLEMA DE

SEQUENCIAMENTO DE TAREFAS EM UMA M ´AQUINA COM PENALIDADES

POR ANTECIPA ¸C ˜AO E ATRASO DA PRODU ¸C ˜AO

Bruno Ferreira Rosa, Marcone Jamilson Freitas Souza, S´ergio Ricardo de Souza Avenida Amazonas, 7675, CEP 30.510-000

Centro Federal de Educa¸c˜ao Tecnol´ogica de Minas Gerais Belo Horizonte, Minas Gerais, Brasil

ICEB, Campus Universit´ario, CEP 35.400-000

Universidade Federal de Ouro Preto Ouro Preto, Minas Gerais, Brasil

Emails: brunofazmat@dppg.cefetmg.br, marcone@iceb.ufop.br, sergio@dppg.cefetmg.br Abstract— This work deals with the single machine scheduling problem where a sequence-dependent setup time is required for the changeover job. In the considered problem, each job has a time window in which the job must preferably be completed. The objective is to minimize the weighted sum of the tardiness and earliness. A mathematical model is proposed for the problem and also a heuristic algorithm based on GRASP, Proximate Optimality Principle and Variable Neighborhood Descent to solve it. Computational experiments performed in a set of instances of the literature suggest that the proposed algorithm is able to find good solutions and with low average divergence.

Keywords— Scheduling single machine, GRASP, Proximate Optimality Principle.

Resumo— Este trabalho trata do problema de sequenciamento em uma m´aquina, no qual h´a um tempo de prepara¸c˜ao dependente da sequˆencia de produ¸c˜ao. No problema abordado, cada tarefa possui uma janela de tempo, dentro da qual ela deve ser preferencialmente conclu´ıda. O objetivo ´e minimizar a soma ponderada dos atrasos e antecipa¸c˜oes. ´E proposto um modelo matem´atico para o problema e tamb´em um algoritmo heur´ıstico baseado em GRASP, Princ´ıpio da Otimalidade Pr´oxima e Busca em Vizinhan¸ca Vari´avel para resolvˆe-lo. Ex-perimentos computacionais realizados em um conjunto de problemas-teste da literatura sugerem que o algoritmo proposto ´e capaz de encontrar boas solu¸c˜oes e com baixo desvio m´edio.

Keywords— Sequenciamento uma m´aquina, GRASP, Princ´ıpio da Otimalidade Pr´oxima. 1 Introdu¸c˜ao

O problema de sequenciamento de tarefas em uma m´aquina com penalidades por antecipa¸c˜ao e atraso da produ¸c˜ao (PSUMAA) consiste em se-quenciar e determinar o momento em que as tare-fas devem ser executas em uma m´aquina, com o objetivo de minimizar a soma ponderada das ante-cipa¸c˜oes e dos atrasos na produ¸c˜ao de tais tarefas. H´a antecipa¸c˜ao de uma tarefa quando ela ´e con-clu´ıda antes da data desejada para sua entrega e h´a atraso quando ela ´e conclu´ıda ap´os esta data. Em ambas as situa¸c˜oes s˜ao geradas penalidades.

Segundo Liaw (1999), concluir uma tarefa com atraso pode resultar em multas contratuais, perda de credibilidade da empresa e redu¸c˜ao de vendas. Do mesmo modo, concluir uma tarefa antecipadamente pode resultar em custos finan-ceiros extras, pela necessidade de disponibilizar antecipadamente capital, necessidade de espa¸co para armazenamento ou necessidade de outros re-cursos para manter e gerenciar o estoque (Fran¸ca Filho, 2007).

Com rela¸c˜ao `as datas de entrega das tarefas, um caso pouco explorado na literatura ´e aquele no qual se considera janelas de entrega distintas (dis-tinct due windows). Isto ´e, h´a um determinado per´ıodo de tempo associado a cada tarefa, dentro

do qual a tarefa deve ser preferencialmente con-clu´ıda. Segundo (Wan and Yen, 2002), este caso ocorre quando existe tolerˆancia em torno da data desejada para a entrega de cada tarefa.

Em um grande n´umero de aplica¸c˜oes do PSUMAA, ap´os a conclus˜ao de uma tarefa ´e necess´ario preparar a m´aquina para a execu¸c˜ao da tarefa seguinte (Allahverdi et al., 1999). Isto ocorre em ind´ustrias que produzem diferentes tipos de produtos e em que existe uma troca fre-quente do tipo de tarefa executada na m´aquina. Este tempo de prepara¸c˜ao (ou tempo de setup) inclui os tempos gastos para trocar as ferramen-tas, preparar o material, limpar a m´aquina, etc. A maioria dos trabalhos em problemas de sequencia-mento assume que tais tempos s˜ao independentes da sequˆencia de produ¸c˜ao, isto ´e, que eles s˜ao des-prez´ıveis ou podem ser acrescentados aos tempos de processamento das tarefas. No entanto, em grande parte das situa¸c˜oes pr´aticas, esses tempos s˜ao dependentes da sequˆencia de produ¸c˜ao (Gupta and Smith, 2006).

(14)

a produ¸c˜ao. Outra situa¸c˜ao em que isto ocorre ´e quando a capacidade da m´aquina ´e inferior `a demanda. No entanto, h´a casos em que vale a pena manter a m´aquina parada, mesmo que exista uma tarefa dispon´ıvel para ser processada (Fran¸ca Filho, 2007).

O PSUMAA possui muitas aplica¸c˜oes pr´ati-cas em ind´ustrias metal´urgicas, tˆexteis, de tintas, dentre outras. Associado a este grande leque de aplica¸c˜oes est´a a dificuldade de resolvˆe-lo de forma ´otima, dado que se trata de um problema NP-dif´ıcil (Allahverdi et al., 1999). Esta uni˜ao entre aplicabilidade e dificuldade de resolu¸c˜ao motiva o desenvolvimento de algoritmos eficientes para resolvˆe-lo.

No presente trabalho ´e estudado o PSUMAA em sua forma mais gen´erica, isto ´e, com janelas de entrega distintas, penalidades por atraso e an-tecipa¸c˜ao das tarefas diferentes, tempo de setup dependente da sequˆencia de produ¸c˜ao, sendo per-mitidos tempos ociosos entre as execu¸c˜oes de tare-fas consecutivas. Esse problema, com todas as caracter´ısticas apontadas, tem sido pouco explo-rado na literatura. Destacam-se os trabalhos de Gomes J´unior et al. (2007) e Souza et al. (2008). No primeiro trabalho, ´e proposto um modelo de Programa¸c˜ao Inteira Mista (PLIM) para represen-tar o problema, bem como um algoritmo heur´ıs-tico baseado em GRASP, Iterated Local Search e Variable Neighborhood Descent - VND. Para cada sequˆencia de tarefas gerada por esse algo-ritmo, ´e acionado um procedimento de complex-idade polinomial para determinar a data ´otima de in´ıcio de processamento das tarefas na sequˆen-cia dada, sendo este procedimento uma extens˜ao daquele proposto por Wan and Yen (2002). No segundo trabalho ´e proposto um algoritmo heur´ıs-tico baseado em GRASP, VND, Busca Tabu e Reconex˜ao por Caminhos. Outros trabalhos cu-jas caracter´ısticas se aproximam s˜ao os de Wan and Yen (2002), mas que n˜ao consideram a e-xistˆencia de tempos de prepara¸c˜ao da m´aquina dependente da sequˆencia, e o de Bustamante (2007). Este ´ultimo n˜ao considera a existˆencia de janelas de entrega. A formula¸c˜ao de progra-ma¸c˜ao matem´atica proposta tamb´em exige que os tempos de prepara¸c˜ao satisfa¸cam `a desigualdade triangular.

O presente trabalho inclui a apresenta¸c˜ao de um novo modelo de PLIM para representar o problema e tamb´em de um algoritmo heur´ıstico baseado em GRASP (Feo and Resende, 1995), Princ´ıpio da Otimalidade Pr´oxima - POP (Glover and Laguna, 1997) e VND (Mladenovi´c and Hansen, 1997) para resolvˆe-lo.

O restante deste trabalho est´a organizado do seguinte modo. Na Se¸c˜ao 2, ´e feita uma descri¸c˜ao detalhada do problema estudado, enquanto, na Se¸c˜ao 3, ´e apresentada uma formula¸c˜ao de progra-ma¸c˜ao matem´atica para representar tal problema.

Na Se¸c˜ao 4 ´e descrito o algoritmo heur´ıstico desen-volvido para resolvˆe-lo. Na Se¸c˜ao 5 s˜ao apresenta-dos e discutiapresenta-dos os resultaapresenta-dos computacionais. A Se¸c˜ao 6 conclui o trabalho.

2 Descri¸c˜ao do problema

O PSUMAA abordado neste trabalho possui as seguintes caracter´ısticas: (i) Uma m´aquina deve processar um conjunto I de n tarefas; (ii) A cada tarefa i ∈ I est´a associado um tempo de proces-samento Pi, uma janela de entrega [Ei, Ti],

den-tro da qual a tarefa i deve ser preferencialmente conclu´ıda, um custo αi por unidade de tempo de

antecipa¸c˜ao e um custo βi por unidade de tempo

de atraso. H´a antecipa¸c˜ao de uma tarefa i ∈ I quando seu processamento ´e conclu´ıdo antes de Ei

e h´a atraso quando seu processamento ´e conclu´ıdo depois de Ti; (iii) As tarefas que forem conclu´ıdas

dentro de suas respectivas janelas de entrega n˜ao geram custo; (iv ) A m´aquina executa no m´aximo uma tarefa por vez e, uma vez iniciado o processa-mento de uma tarefa, n˜ao ´e permitida a sua inter-rup¸c˜ao; (v ) Todas as tarefas est˜ao dispon´ıveis para processamento na data 0; (vi) Entre duas tarefas i e j consecutivas ´e necess´ario um tempo Sij de

prepara¸c˜ao da m´aquina, chamado tempo de setup; (vii) Assume-se que o tempo de prepara¸c˜ao da m´aquina para o processamento da primeira tarefa na sequˆencia ´e igual a 0; (viii) ´E permitido tempo ocioso entre a execu¸c˜ao de duas tarefas consecuti-vas.

O objetivo ´e determinar a sequˆencia de pro-du¸c˜ao e as datas de in´ıcio de propro-du¸c˜ao das tarefas, de forma a minimizar a soma ponderada das an-tecipa¸c˜oes e dos atrasos.

3 Modelo matem´atico

O modelo de Programa¸c˜ao Linear Inteira Mista (PLIM) apresentado a seguir ´e baseado naquele proposto por Gomes J´unior et al. (2007). Para sua apresenta¸c˜ao, sejam si, ei e ti a data de in´ıcio do

processamento, o tempo de antecipa¸c˜ao e o tempo de atraso da tarefa i ∈ I, respectivamente. A con-tr´ario de Gomes J´unior et al. (2007), ´e utilizada apenas uma tarefa fict´ıcia, 0 (zero), para auxiliar na modelagem. A tarefa 0 ´e sequenciada duas vezes, sendo uma necessariamente na primeira e outra na ´ultima posi¸c˜ao. Considera-se que P0= 0

e que S0i= Si0= 0, ∀ i ∈ I. Deste modo, se

com-parado ao modelo daqueles autores, h´a redu¸c˜ao de 2n + 3 vari´aveis e n + 1 restri¸c˜oes, com n represen-tando o n´umero de tarefas a serem sequenciadas. Sejam yijvari´aveis que determinam a

sequˆen-cia de produ¸c˜ao, sendo yij = 1 se a tarefa j for

se-quenciada imediatamente ap´os a tarefa i e yij = 0,

(15)

min Z = n X i=1 (αiei+ βiti) (1) s.a. si+ Pi+ yij(M + Sij) − M ≤ sj ∀ i ∈ I ∪ {0}, ∀ j ∈ I e i 6= j (2) n X j=0, j6=i yij = 1 ∀ i ∈ I ∪ {0} (3) n X i=0, i6=j yij = 1 ∀ j ∈ I ∪ {0} (4) si+ Pi+ ei ≥ Ei ∀ i ∈ I (5) si+ Pi− ti ≤ Ti ∀ i ∈ I (6) si ≥ 0 ∀ i ∈ I ∪ {0} (7) ei ≥ 0 ∀ i ∈ I (8) ti ≥ 0 ∀ i ∈ I (9) yij {0, 1} ∀ i, j ∈ I ∪ {0} e i 6= j (10)

A fun¸c˜ao objetivo, representada pela equa¸c˜ao (1), busca a minimiza¸c˜ao da soma ponderada das antecipa¸c˜oes e atrasos. As restri¸c˜oes (2) garan-tem que existe garan-tempo suficiente para executar uma tarefa i antes do in´ıcio da tarefa seguinte j, ou seja, elas garantem que o processamento da tarefa j n˜ao ser´a iniciado antes do t´ermino do processa-mento da tarefa i. As restri¸c˜oes (3) e (4) garantem que cada tarefa ter´a apenas uma tarefa imediata-mente sucessora e uma tarefa imediataimediata-mente an-tecessora, respectivamente. As restri¸c˜oes (5) e (6) definem as antecipa¸c˜oes e os atrasos, de acordo com as respectivas janelas de entrega de cada tarefa. As restri¸c˜oes (7), (8), (9) e (10) dizem respeito ao tipo de vari´aveis.

4 Algoritmo proposto

O algoritmo heur´ıstico proposto, denotado por GPV, combina os procedimentos GRASP (Feo and Resende, 1995), Princ´ıpio da Otimalidade Pr´oxima - POP (Glover and Laguna, 1997) e VND (Mladenovi´c and Hansen, 1997). A Figura 1 ap-resenta seu pseudoc´odigo.

Algoritmo GPV() 1 f?← ∞; 2 Iter ← 0;

3 enquanto (Iter < GRASPMax) fa¸ca 4 Iter ← Iter + 1; 5 v0← ConstruaSolucao(); 6 v ← VND1(v0); 7 se (f (v) < f?) ent˜ao 8 v?← v; 9 f?← f (v); 10 Iter ← 0; 11 fim-se; 12 fim-enquanto; 13 v?← VND 2(v?); 14 Retorne v?; fim GPV Figura 1: Algoritmo GPV

H´a duas fases neste algoritmo. A primeira (linhas 1 a 12 da Fig. 1) gera uma solu¸c˜ao com

base na metaheur´ıstica GRASP. A segunda (linha 13) consiste em um p´os-refinamento da solu¸c˜ao proveniente da fase anterior. Seu detalhamento ´e apresentado nas subse¸c˜oes seguintes.

4.1 Representa¸c˜ao de uma solu¸c˜ao

Uma solu¸c˜ao (sequˆencia) para o PSUMAA de n tarefas ´e representada por um vetor v de n posi¸c˜oes, em que cada posi¸c˜ao i = 1, 2, · · · , n in-dica a ordem de produ¸c˜ao da tarefa vi. Por

exem-plo, dada a sequˆencia v = {5, 3, 2, 1, 4, 6}, a tarefa 5 ´e a primeira a ser realizada e a tarefa 6 a ´ultima. 4.2 Vizinhan¸ca de uma solu¸c˜ao

Para explorar o espa¸co de solu¸c˜oes s˜ao usados trˆes tipos de movimentos: troca da ordem de processa-mento de duas tarefas da sequˆencia de produ¸c˜ao, realoca¸c˜ao de uma tarefa para outra posi¸c˜ao da sequˆencia e realoca¸c˜ao de um bloco com duas ou mais tarefas. Esses movimentos definem, respec-tivamente, as vizinhan¸cas NT, NR e NRB. 4.3 Fun¸c˜ao de avalia¸c˜ao

Como os movimentos utilizados n˜ao geram solu¸c˜oes invi´aveis, uma sequˆencia ´e avaliada pela pr´opria fun¸c˜ao objetivo, dada pela express˜ao (1) do modelo de PLIM. Para determinar os valores de eie ti, ´e utilizado o algoritmo de determina¸c˜ao

das datas ´otimas de in´ıcio de processamento (AD-DOIP) proposto por Gomes J´unior et al. (2007). 4.4 Constru¸c˜ao de uma solu¸c˜ao

(16)

Candidatos (LRC). Desta lista ´e escolhida aleato-riamente uma, a qual ´e adicionada `a solu¸c˜ao par-cial.

Para estimar o benef´ıcio da inser¸c˜ao de cada tarefa j ainda n˜ao sequenciada, em cada itera¸c˜ao i, utiliza-se uma das 4 seguintes fun¸c˜oes como crit´erio de sele¸c˜ao: (1) g1(j) = 2Ej/ max{Ek| k ∈ Fi} + 2Tj/ max{Tk| k ∈ Fi} + αj/ max{αk| k ∈ Fi} − βj/ max{βk| k ∈ Fi} + Pj/ max{Pk| k ∈ Fi} + Si−1,j/ max{Si−1,k| k ∈ Fi}, em que Fi

representa o conjunto das tarefas ainda n˜ao se-quenciadas at´e a i-´esima itera¸c˜ao (para i = 1, no lugar de Si−1,j/ max{Si−1,k| k ∈ Fi} ´e utilizado −m´edia{Skj| k ∈ I e k 6= j}/ max{Skl| k, l ∈ I e k 6= l}); (2) g2(j) = Tj; (3) g3(j) = (αjEj+ βjTj)/(αj+ βj); (4) g4(j) = Ej.

As fun¸c˜oes g’s s˜ao utilizadas seguindo-se a or-dem anterior. Nas quatro primeiras itera¸c˜oes, ou seja, na primeira vez em que cada fun¸c˜ao g ´e uti-lizada, faz-se γ = 0. Nas demais itera¸c˜oes, γ ´e selecionado aleatoriamente dentro de um conjunto Γ, onde Γ ´e um parˆametro do m´etodo.

4.5 POP aplicado ao PSUMAA

Durante a etapa de constru¸c˜ao ´e aplicado o Princ´ı-pio da Otimalidade Pr´oxima (POP). Este princ´ı-pio ´e baseado na id´eia de que boas solu¸c˜oes em um n´ıvel est˜ao pr´oximas de boas solu¸c˜oes em um n´ıvel adjacente (Glover and Laguna, 1997). As-sim, antes de se inserir uma nova tarefa na solu¸c˜ao em forma¸c˜ao, esta ´e submetida a uma busca local. A busca local utilizada consiste em uma des-cida randˆomica em rela¸c˜ao `a vizinhan¸ca NR.

Dada uma solu¸c˜ao, aleatoriamente escolhe-se uma tarefa na sequˆencia e uma nova posi¸c˜ao para ela. Se a nova sequˆencia produzir uma solu¸c˜ao com um valor menor para a fun¸c˜ao objetivo, a nova sequˆen-cia ´e aceita e passa a ser a solu¸c˜ao corrente; caso contr´ario, ´e testada outra realoca¸c˜ao. A busca ´e interrompida ap´os MRDMax realoca¸c˜oes consecu-tivas sem melhora na fun¸c˜ao objetivo.

4.6 VND1

Na etapa de busca local da primeira fase do al-goritmo (linha 6 da Figura 1), utiliza-se a Busca em Vizinhan¸ca Vari´avel (Variable Neighborhood Descent - VND). Proposto por Mladenovi´c and Hansen (1997), o VND ´e um m´etodo de busca lo-cal que consiste em explorar o espa¸co de busca atrav´es de trocas sistem´aticas de estruturas de vi-zinhan¸cas. Basicamente o procedimento utilizado consiste em trˆes passos: (1) m´etodo randˆomico de descida (MRD) com a vizinhan¸ca NT; (2)

MRD com a vizinhan¸ca NR; (3) MRD com a

vi-zinhan¸ca NRB. Cada passo ´e constituido de

ite-ra¸c˜oes que geram vizinhos aleat´orios com rela¸c˜ao `a respectiva estrutura de vizinhan¸ca. Sempre que uma solu¸c˜ao de melhora ´e encontrada, volta-se ao primeiro passo. Quando um dos MRD’s atinge MRDmax itera¸c˜oes sem melhora, passa-se para o

passo seguinte. Estando-se no ´ultimo passo, ent˜ao o procedimento ´e interrompido e a melhor solu¸c˜ao encontrada ´e retornada.

4.7 VND2

Como a solu¸c˜ao proveniente da primeira fase do algoritmo GPV (linhas 1-12 da Figura 1) n˜ao ´e necessariamente um ´otimo local com rela¸c˜ao `as vi-zinhan¸cas adotadas, ela ´e submetida a uma busca local mais efetiva, no caso, tamb´em baseada na Busca em Vizinhan¸ca Vari´avel (VND2). Nesta,

a explora¸c˜ao do espa¸co de solu¸c˜oes ´e realizada de acordo com os seguintes passos: (1) descida completa (DC) com rela¸c˜ao `a vizinhan¸ca NT; (2)

DC com rela¸c˜ao `a vizinhan¸ca NR; (3) DC na

vi-zinhan¸ca NRB. No passo (3), em que s˜ao

real-izadas realoca¸c˜oes de blocos de tarefas, inicial-mente testam-se todas as realoca¸c˜oes com blocos de duas tarefas poss´ıveis e quando n˜ao for mais poss´ıvel melhorar a solu¸c˜ao com um determinado tamanho de bloco, passa-se a explorar movimen-tos com blocos de tamanho imediatamente maior. Sempre que uma solu¸c˜ao de melhora ´e encontrada, volta-se ao passo (1). Se em um determinado passo, todos os vizinhos com rela¸c˜ao `a respec-tiva estrutura de vizinhan¸ca n˜ao s˜ao de melhora, passa-se para o passo seguinte. O procedimento ´e interrompido quando um ´otimo local com rela¸c˜ao `as trˆes vizinhan¸cas ´e encontrado.

5 Resultados computacionais Foram utilizados para teste os mesmos problemas usados em Gomes J´unior et al. (2007). Esta base de dados ´e constitu´ıda por grupos de problemas-teste de 8 a 75 tarefas e tempos de setup sim´etri-cos. Cada grupo possui 12 problemas distintos gerados de forma pseudo-aleat´oria.

O modelo matem´atico apresentado na Se¸c˜ao 3 foi implementado usando o modelador AMPL e o otimizador CPLEX, vers˜ao 10.1, da ILOG. Foram submetidos a tal otimizador os problemas com at´e 12 tarefas, sendo estipulado o limite de 3600 se-gundos para obten¸c˜ao de cada resultado. Para os problemas que atingiram esse tempo limite, a solu¸c˜ao encontrada n˜ao ´e necessariamente ´otima; por´em, ´e retornado pelo CPLEX um limite infe-rior. Este limite ´e utilizado para medir a quali-dade da solu¸c˜ao retornada por meio da equa¸c˜ao gapi = (fiCPLEX− Li)/Li, em que fiCPLEX e Li

representam o valor da solu¸c˜ao e o limite inferior encontrados pelo otimizador. Deste modo, gapi ´e

Referências

Documentos relacionados

The Development Journals are also proud to present an interview with economist and professor Wilson Cano, one of the most important proponents of Brazilian develop-

Compostos contendo as funcionalidades semicarbazona e tiossemicarbazona também são amplamente pesquisados quanto às suas atividades biológicas, e tem apresentado excelentes

Com efeito, os resultados das análises das propostas envolvendo a produção de gêneros e tipos textuais Oficina de produção e das atividades envolvendo a oralidade Sobre o texto

A formação de dois grupos referentes aos períodos seco e chuvoso dentro de Rio Formoso, supõe que as mudanças climáticas e suas consequências exercem influência nas

Esse tipo de razão está presente nas ações positivas para com os outros, por exemplo, como descrito no livro que inspirou o filme “Pay it forward” (HYDE, 2014) (tradução:

Esta pesquisa estabelece um diálogo entre O cuidado de si em Michel Foucault e a Filosofia Ubuntu: “Eu sou porque nós somos”, no âmbito das teorias contemporâneas

Tendo em vista os fatos supracitados, e com a necessidade de melhorar o processo de ensino/aprendizagem nos cursos de EaD, este trabalho justifica-se por buscar desenvolver

Para vericar a ecácia da utilização da história da matemática como recurso didático no ensino de polinômios foi realizada uma pesquisa com alunos da 1ª série do curso técnico