• Nenhum resultado encontrado

ALGORITMO MEMÉTICO PARALELO APLICADO A PROBLEMAS DE SEQÜENCIAMENTO EM MÁQUINA SIMPLES

N/A
N/A
Protected

Academic year: 2021

Share "ALGORITMO MEMÉTICO PARALELO APLICADO A PROBLEMAS DE SEQÜENCIAMENTO EM MÁQUINA SIMPLES"

Copied!
11
0
0

Texto

(1)

ALGORITMO MEMÉTICO PARALELO APLICADO A PROBLEMAS DE

SEQÜENCIAMENTO EM MÁQUINA SIMPLES

Vinícius Jacques Garcia Alexandre de Sousa Mendes

Paulo Morelato França Pablo Alberto Moscato

Departamento de Engenharia de Sistemas Faculdade de Engenharia Elétrica e de Computação

Universidade Estadual de Campinas CP. 6101, Cep. 13083-970 Campinas SP

{jacques, smendes, franca, moscato}@densis.fee.unicamp.br

Resumo

Este trabalho propõe um modelo de algoritmo memético paralelo aplicado à resolução do problema de Seqüenciamento em Máquina Simples. Modelos clássicos de algoritmos evolutivos paralelos são discutidos assim como a estrutura geral dos algoritmos meméticos. Os testes referentes à eficiência da abordagem paralela são realizados em um conjunto de oito instâncias; quatro com 71 tarefas e quatro com 100 tarefas.

Palavras-chave: algoritmos genéticos, algoritmos meméticos, problemas de seqüenciamento, computação paralela.

Abstract

This work proposes Parallel Memetic Algorithm model applied to the Single Machine Scheduling problem. Classical models of Parallel Evolution Algorithms and the general structure of memetic algorithms are also discussed. Computational tests related to the efficiency of the parallel approach were done using a set of eight instances, four with 71 jobs and four with 100 jobs.

Key-words: genetic algorithms, memetic algorithms, scheduling problems, parallel computing.

1

Introdução

Desde o aparecimento dos seus fundamentos teóricos, baseados na teoria evolucionista de Darwin e enunciados por Holland [14], os Algoritmos Genéticos (AGs) têm experimentado uma enorme evolução e ganharam grande popularidade para solucionar uma ampla gama de problemas de várias áreas da ciência. Uma contribuição importante, bastante utilizada na área de otimização combinatória, são os AGs híbridos, que utilizam operadores de busca local para fazer com que indivíduos da população evoluam autonomamente (ou seja, sem sofrer mutações ou recombinações com outros indivíduos) para ótimos locais. Uma generalização dessa idéia foi apontada por Moscato [18] através da criação do termo Algoritmo Memético (AM) onde é previsto que indivíduos possam evoluir autonomamente acrescentando unidades de informação cultural (memes).

(2)

Várias aplicações de AM têm demonstrado que, a despeito de um maior esforço computacional despendido pelos operadores de busca local, a adoção de tais operadores fornecem resultados melhores quando comparados àqueles produzidos com os AGs (Buriol et al. [2], França et al. [8], França et al. [9] e Mendes et al. [17]).

A eficiência dos AMs pode ser comprovada pelos experimentos de Buriol et al. [2], França et al. [8], França et al. [9] e Mendes et al. [17]. O desempenho encontrado em todos estes trabalhos se deve a um bom procedimento de busca local, geralmente específico para o problema que se quer resolver, a uma representação adequada para o cromossomo e ao operador de recombinação utilizado.

Um grande desafio para esses algoritmos é o emprego de bons operadores de busca local para grandes instâncias devido ao tamanho da vizinhança associada. Uma das formas de contornar esse problema é o emprego de técnicas para redução de vizinhança. Há, contudo, outros casos em que, mesmo com uma boa redução, a exploração da vizinhança resultante continua bastante custosa. Fica, então, perfeitamente justificável o desenvolvimento de algoritmos que explorem técnicas paralelas de execução, deixando-os literalmente paralelos (algoritmos evolutivos paralelos).

Várias formas clássicas de algoritmos evolutivos paralelos são encontradas na literatura, como demonstra Cantú-Paz [3] e mais recentemente Cantú-Paz e Goldberg [5]. Moscato [18], em seu trabalho pioneiro em AMs, também observou a importância de tais métodos, exemplificados no trabalho de Gorges-Schleuter [10], onde é proposto um AG com uma população na forma de uma matriz. Cada indivíduo é atribuído a uma unidade de processamento e ocupa uma posição neste espaço bi-dimensional. Seleção e recombinação são feitos de forma independente através do estabelecimento de uma vizinhança limitada.

Fazendo-se algumas generalizações em relação às funcionalidades, pode-se caracterizar três classes principais de algoritmos evolutivos paralelos:

Algoritmos Evolutivos Paralelos Globais (AEPG);

Algoritmos Evolutivos Paralelos Multi-Populacionais (AEPMP);

Algoritmos Evolutivos Paralelos Híbridos (AEPH).

Os primeiros são assim chamados porque os operadores de seleção, reprodução e mutação são aplicados à população inteira. A implementação geralmente é realizada com programas mestre-escravo; uma unidade (mestre) atribui certas funções do algoritmo a outras (escravos), que realizam a tarefa e retornam o resultado.

Nos AGs, a tarefa comumente distribuída para os escravos é a avaliação dos indivíduos, por ser independente para cada um. Dessa forma, uma fração da população é atribuída a cada escravo e a comunicação ocorre quando a mesma é enviada ou recebida. Quando a unidade mestre espera pelas respostas de todas as unidades escravo o algoritmo é dito AEPG síncrono, preservando todas as características do comportamento evolutivo do algoritmo seqüencial porém com melhor desempenho. Outra possibilidade é fazer com que a unidade mestre não mais espere por todas as respostas, o que caracteriza os AEPG assíncronos. Neste caso ocorre uma diferenciação em relação às propriedades do algoritmo seqüencial: indivíduos de uma geração passam para as próximas como se houvessem migrado, o que modifica o comportamento evolutivo do algoritmo.

Os AEPGs não requerem uma arquitetura computacional específica, podem ser implementados eficientemente em computadores com memória compartilhada ou distribuída. No primeiro caso, a população é deixada na memória compartilhada e cada unidade do sistema multiprocessado tem acesso à parte que lhe cabe. No outro, a população reside em uma unidade que é responsável pelo envio dos indivíduos aos demais e pela coleta dos resultados. Em ambos há um custo associado à comunicação, resultando num compromisso entre número de unidades escravo e eficiência. Cantú-Paz [4] analisa detalhadamente este compromisso, fornecendo resultados que indicam a existência de um número ótimo de unidades escravo que minimiza o tempo de execução do algoritmo. A Figura 1 ilustra o diagrama básico de um AEPG.

(3)

Figura 1: Diagrama básico de um AEPG Mestre-Escravo.

A próxima classe, os Algoritmos Evolutivos Paralelos Multi-Populacionais (AEPMP), caracteriza-se principalmente pela migração de indivíduos entre populações. Duas abordagens são estudadas em Cantú-Paz [3]: a primeira emprega poucas populações com tamanho “médio/grande”; a segunda adota muitas populações com tamanho “pequeno”.

O primeiro caso recebe a denominação de Algoritmos Evolutivos distribuídos ou modelo de ilhas devido, principalmente, à baixa taxa de comunicação e à semelhança com o modelo natural usado para descrever populações isoladas geograficamente. A idéia central é dividir a população principal em várias populações, sendo cada uma atribuída a uma unidade do sistema multiprocessado. Cada uma dessas unidades, por sua vez, executa um algoritmo evolutivo seqüencial, restrito a sua população. A troca de material genético é realizada através migração. Projetar de forma eficiente este modelo é bastante penoso porque envolve muitos parâmetros inter-relacionados, como por exemplo tamanho e número de populações, organização ou topologia entre as populações e critérios de migração. O estudo de Cantú-Paz [6] traz uma análise completa desses parâmetros, sinalizando algumas direções promissoras. A figura a seguir descreve graficamente este modelo.

Figura 2: Diagrama básico de um AEPMP Distribuído.

Na outra abordagem, com várias populações de tamanho pequeno, ocorre uma comunicação intensa entre elas na tentativa de disseminar boas soluções. Novamente cada unidade do sistema multiprocessado está restrita à sua população. Enquanto que não havia maiores requisitos de arquitetura computacional nos modelos anteriores, aqui ela é determinante, sendo necessárias máquinas do tipo MIMD (“multiple instruction, multiple data”). O sistema ASPARAGOS, proposto por Gorges-Schleuter [10] é um exemplo típico desta subclasse de algoritmos evolutivos paralelos. Além deste, deve-se citar Baluja [1], que desenvolveu um AG massivamente paralelo com populações sobrepostas e descreve a superioridade destes métodos em relação aos AGs seqüenciais.

Por fim tem-se os AEPH, onde a maior dificuldade está relacionada com a complexidade resultante da associação de dois ou mais modelos de algoritmos evolutivos paralelos. Os modelos mais comuns usam uma hierarquia, combinando os modelos anteriores, sendo o nível mais elevado composto pelo AEPMP distribuído. Em um nível abaixo pode haver um AEPMP massivamente paralelo, um AEPG mestre-escravo ou até mesmo o próprio AEPMP distribuído. As figuras a seguir ilustram essas possibilidades.

Pop. 3

Pop. 1 Pop. 2

Pop. 4

PHVWUH

HVFUDYR

(4)

Figura 3: AEPH com dois níveis, AEPMP distribuído e AEPMP massivamente paralelo. Gorges-Schleuter [11] atualizou o ASPARAGOS substituindo a estrutura em escada da população por um anel, devido a maior diferenciação entre os indivíduos. A nova versão mantém várias populações compostas por anéis formados por várias subpopulações, combinando, assim, a mesma estrutura com dois níveis de hierarquia.

Figura 4: AEPH com dois níveis, AEPMP distribuído e AEPG Mestre-Escravo.

Figura 5: AEPH com dois níveis do AEPMP distribuído.

Neste artigo propõe-se um modelo de AM paralelo do tipo mestre-escravo síncrono que será usado para resolver o problema de Seqüenciamento em Máquina Simples. Simula-se um computador multiprocessado com memória distribuída através de troca de mensagens entre os computadores que compõem a rede em que o algoritmo está sendo executado. A implementação foi feita em linguagem Java, plataforma 1.2 e utilizou-se uma rede padrão FastEthernet (100MBits/s) com 6 computadores padrão IBM PC, todos com processador Pentium Celeron 330 MHz e 64MB de memória RAM.

O restante deste artigo está organizado da seguinte forma: na próxima seção defini-se o problema, seguido da breve descrição do AM seqüencial na seção 3. O modelo proposto é apresentado na seção 4, seguido de resultados computacionais (seção 5), conclusões (seção 6) e bibliografia.

(5)

2

Problema de Seqüenciamento em Máquina Simples

O problema de Seqüenciamento em Máquina Simples (SMS) é um dos mais estudados problemas de otimização combinatória. O interesse particular provém da freqüência com que é encontrado em problemas práticos de engenharia industrial. Os trabalhos de Graham et al. [12] e Graves [13] são considerados pioneiros e introdutórios para esta classe de problemas na área de Seqüenciamento.

A configuração das máquinas envolvidas no seqüenciamento caracteriza o tipo de problema: uma única máquina ou múltiplas. Em se tratando de múltiplas máquinas elas podem ser idênticas ou não, em paralelo ou em shops.

Há diferentes formulações para o problema de SMS em decorrência do tipo de dados de entrada e função objetivo. Uma formulação muito comumente encontrada na literatura é o seqüenciamento de n tarefas, dado um tempo de processamento e uma data de entrega para cada uma delas. A função objetivo minimiza o atraso total, caracterizado pela soma dos atrasos em relação à data de entrega de cada tarefa.

A formulação anterior pode ser estendida com a inclusão de tempos de preparação de cada tarefa, dependentes da seqüência, restrições de precedência, etc.

O problema a ser tratado neste trabalho pode ser assim descrito:

Entrada: dado n tarefas a serem processadas em uma máquina, uma lista {t1, ...,tn} de tempos de processamento e outra {d1, ..., dn} com as datas de entrega das respectivas tarefas. Dado ainda uma matriz {sij} de tempos de preparação, onde sij é o tempo de preparação da tarefa j depois da máquina ter processado a tarefa i.

Objetivo: encontrar uma permutação que minimize o atraso total do seqüenciamento. Este atraso é

calculado da seguinte forma:

=

n k k k

d

c

1

]

,

0

[

max

, onde ck representa o instante em que a tarefa k terminou de ser processada e dk e data de entrega da mesma.

Os tempos de preparação são dependentes da seqüência em que as tarefas são processadas. Em geral sij sji.

A figura a seguir ilustra uma possível seqüência para uma instância com cinco tarefas (1-4-3-2-5), assim como a representação gráfica do atraso total.

Figura 6: Gráfico de Gantt de uma solução para o problema de SMS.

O problema de SMS mais simples, sem tempos de preparação, já é NP-hard, como demonstra Du e Leung [7]. Muitas técnicas foram propostas para sua resolução, com algumas variações em relação à formulação adotada neste trabalho. Raman et al. [20] e Lee et al. [15] usam regras de despacho no cálculo do índice de prioridade para construir uma seqüência aproximada, a ser otimizada posteriormente por um procedimento de busca local. Rubin e Ragatz [21] criaram um novo operador de recombinação e aplicaram AGs. Ainda Tan e Narasimhan [22] desenvolveram um método que utiliza Simulated Annealing. França et al. [9] propuseram um AM para resolução do SMS, com a população estruturada de forma hierárquica.

1 S14 4 S43 3 S32 2 S25 5

c2 - d2

d1 d2 d3 d4 d5

(6)

3

Algoritmo Memético Seqüencial

Os AMs foram categorizados e descritos como uma nova classe de algoritmos evolutivos por Moscato [18]. Assim como nos AGs, os AMs também se baseiam nos princípios biológicos de seleção, reprodução (recombinação) e mutação. O que os diferencia dos anteriores é o emprego da evolução cultural, onde a informação cultural é transmitida pela comunicação entre os indivíduos e não pelo mecanismo de recombinação. A busca no espaço de soluções é realizada com várias soluções (indivíduos/agentes), como em qualquer algoritmo populacional, constituindo assim um processo inerentemente paralelo.

A implementação adotada é descrita por França et al. [9]. Um pseudo-código simplificado é ilustrado a seguir.

Procedimento Algoritmo Memético baseado em Busca Local 1. Inicialize a população Pop;

2. Realize um procedimento de otimização em cada indivíduo de Pop; 3. Faça (laço das gerações):

4. Estabeleça um número de recombinações; 5. Para cada recombinação faça:

6. Selecione indivíduos para recombinação;

7. Gere um novo indivíduo a partir dos pais selecionados no passo 6; 8. Realize mutação no novo indivíduo;

9. Realize um procedimento de otimização no novo indivíduo; 10. Tente adicionar o novo indivíduo na população;

Fim;

Até que o critério de parada seja satisfeito; 11. Fim.

O detalhamento da estrutura da população e dos procedimentos básicos do algoritmo estão em França et al. [9]. Cabe salientar a independência do procedimento de otimização (busca local, para esse algoritmo) dos passos 2 e 9, sendo realizado de forma independente para cada indivíduo.

4

Algoritmo Memético Paralelo Mestre-Escravo

Como já dito na introdução, o uso de técnicas paralelas de execução de algoritmos torna-se imprescindível quando o tamanho da instância é “médio/grande”. Através de uma análise detalhada em todas as partes básicas do AM descrito na seção anterior conclui-se que há um paralelismo inerente ao modelo, bem como em alguns operadores específicos. Assumindo uma única população, as operações de avaliação e otimização são, de certa forma, independentes para cada indivíduo. Considerando o compromisso entre complexidade computacional e desempenho e a parcela de tempo que cada uma dessas operações têm em relação ao tempo total de execução do algoritmo, percebe-se que o operador de otimização é o que mais requer o uso dessas técnicas. Outro fator que aponta nessa direção é a baixa comunicação durante a otimização dos indivíduos, até mesmo nula na maior parte dos casos.

A estrutura mais simples e direta para se obter um melhor desempenho está no modelo de algoritmo evolutivo paralelo mestre-escravo. Sendo assim, propõe-se um modelo mestre-escravo síncrono para aumentar o desempenho do algoritmo descrito na seção anterior, simulando um computador multiprocessado com uma rede de computadores. Cada computador seria, assim, uma unidade da máquina multiprocessada virtual. Desta forma agrega-se mais poder de processamento sem alterar o comportamento evolutivo, conforme mencionado na introdução.

Pode-se imaginar o AM como um conjunto de duas camadas, sendo a superior incumbida de processar todas as tarefas menos a otimização dos indivíduos e a inferior somente desta última, conceitualmente o funcionamento se dá de forma análoga ao do algoritmo da seção anterior. Somente

(7)

quatro passos serão necessários para que essa funcionalidade seja agregada: a primeira seria a inicialização da camada mestre-escravo; a segunda a chamada propriamente dita para a execução da otimização de um determinado indivíduo gerado; a terceira faz com que o algoritmo não prossiga enquanto a otimização de todos os indivíduos não esteja completada e a última a finalização. O pseudo-código a seguir demonstra o funcionamento básico do algoritmo proposto.

Procedimento Algoritmo Memético Paralelo baseado em Busca Local 1. Inicialize a população Pop;

2. Realize um procedimento de otimização em cada indivíduo de Pop; 3. Iniciar camada mestre-escravo;

4. Faça (laço das gerações):

5. Estabeleça um número de recombinações; 6. Para cada recombinação faça:

7. Selecione indivíduos para recombinação;

8. Gere um novo indivíduo a partir dos pais selecionados no passo 7; 9. Realize mutação no novo indivíduo;

10. Realize um procedimento de otimização no novo indivíduo através da camada mestre-escravo;

Fim;

11. Espere até que a otimização de todos os indivíduos gerados seja completada; 12. Para cada indivíduo gerado faça:

13. Tente adicionar indivíduo gerado na população; Fim;

Até que o critério de parada seja satisfeito; 14. Finalizar camada mestre-escravo; 15. Fim.

Os passos que diferenciam esta implementação da mencionada na seção anterior são o 3, 10, 11, 12 e 13. Enquanto que lá o laço de geração de um novo indivíduo compreendia todas as funções relativas ao mesmo (geração, mutação, otimização e inserção na população), aqui ele compreende somente a geração, mutação e otimização. Um outro laço executa o passo seguinte, que é a inserção dos indivíduos na população. Isso se justifica porque a unidade principal da máquina multiprocessada virtual deve gerar todos os pedidos de otimização de indivíduos e só prosseguir depois de receber todas as respostas (indivíduos otimizados).

Esses pedidos, indivíduos a serem otimizados, são postos em uma fila de requisições. Cada escravo, que é um computador da rede, portanto uma unidade da máquina multiprocessada virtual, irá processar esses pedidos desta fila depositando a resposta em outra, chamada de fila de respostas, de onde os indivíduos serão retirados para inserção na população. A alocação pré-determinada de tarefas a escravos não existe, o que permite um balanceamento de carga de acordo com a demanda (os escravos mais rápidos processarão mais tarefas). A Figura 7 ilustra esse processo.

(8)

Figura 7: Arquitetura simplificada do algoritmo mestre-escravo proposto.

O objetivo do projeto dessa estrutura é aplicá-la na resolução do problema de SMS, comparando o ganho de desempenho em relação ao algoritmo seqüencial mencionado na seção anterior.

5

Resultados Computacionais

Deve-se escolher um critério para avaliar quantas vezes mais rápido, em termos de tempo computacional, o algoritmo paralelo é em relação ao seqüencial. Para tanto, imaginamos que ambos os algoritmos são idênticos em todos os aspectos, apenas com a diferença que o primeiro será executado em um único processador e o segundo em vários. As referências a seguir são feitas a um único algoritmo.

Deve-se salientar que o único interesse é avaliar ganhos de desempenho relativos a tempo de execução, desprezando a qualidade de soluções encontradas, visto que esse trabalho tem por objetivo propor uma técnica para aumentar o desempenho (referente ao tempo computacional) do algoritmo desenvolvido por França et al. [9].

O critério de desempenho adotado é chamado de speedup, definido em Neary e Cappello [19]. Apesar da sua precisão limitada, ele fornece uma boa aproximação para a análise prática que se quer. Tradicionalmente speedup pode ser definido como S = T1 / Tp, sendo T1 o tempo necessário para executar um algoritmo de forma seqüencial, em um processador (unidade da máquina multiprocessada virtual) e Tp o tempo para executá-lo de forma paralela em p processadores. Sendo um pouco rigoroso, essa definição se aplica para ambientes homogêneos, onde todos os processadores são idênticos (capacidade de processamento e memória) e ainda assim há fatores que complicam, como carga de processamento em cada processador. Restringir a aplicação apenas para estes ambientes é impraticável, segundo o propósito deste trabalho. Assim, define-se uma variação do conceito anterior que contempla, ao menos, ambientes heterogêneos (outros fatores como volume de tráfego na rede e volume de processamento nos processadores serão desprezados): dados M1, ... , Mk sendo k diferentes tipos de processadores, p = p1 +...+ pk o número total de processadores, T1(i) o tempo para executar o algoritmo seqüencial em um processador do tipo i e Tp o tempo para executar o algoritmo paralelo no conjunto de processadores p. O tempo médio ponderado para a execução do algoritmo em um processador, T1, e o speedup, S, são calculados conforme as equações abaixo, respectivamente.

k k k

p

p

k

T

p

T

p

p

p

T

+

+

+

+

=

...

)

(

...

)

1

(

)

,...,

(

1 1 1 1 1 1

)

,...,

(

)

,...,

(

1 1 1 k p k

p

p

T

p

p

T

S

=

Fila d e re q u isi çõ es Fila d e resp o s ta s Servidor 1 Servidor 2 Servidor n Escravo 1 Escravo 2 Escravo n R e de d e c o m p ut a d o res Mestre

(9)

O algoritmo proposto foi aplicado na resolução de 8 de instâncias do problema de SMS, com 71 e 100 tarefas, utilizadas do trabalho de Mendes et al. [16]. As mesmas foram construídas a partir de instâncias do Problema do Caixeiro Viajante Assimétrico (ATSP), para quais a solução ótima é conhecida na literatura. O nome da instância é composto de duas partes: a primeira é o próprio nome da instância do ATSP e a segunda é composta de duas letras. Elas indicam características como intervalo de distribuição das datas de entrega e a proporção tempo de processamento/tempo de setup.

O critério de parada foi estabelecido com sendo de 10 gerações, para todas as instâncias. Foram realizados testes considerando desde um até seis processadores. A otimização dos indivíduos, que é a tarefa a ser distribuída para os escravos, é feita por um procedimento de busca local utilizando duas vizinhanças clássicas: trocas e inserção. Para ambas utilizou-se uma redução de 50% das soluções vizinhas.

Para execução dos testes utilizou-se uma rede padrão FastEthernet (100MBits/s) com 8 computadores padrão IBM PC, todos com processador Pentium Celeron 330 MHz e 64MB de memória RAM. A Tabela 1 mostra os resultados dos testes. A coluna T1(1) contém o tempo (em segundos) para executar o algoritmo em 1 processador. A colunas referentes a cada configuração de número de processadores está dividida em duas. A primeira se refere ao speedup, expresso em número de vezes de aceleração em relação ao processamento seqüencial. A segunda se refere ao percentual do speedup em relação ao speedup máximo teórico, que é igual a p, onde p é o número de processadores.

Speedup (x) / fração do speedup máximo (%)

# de procs. 2 procs. 3 procs. 4 procs. 5 procs. 6 procs.

Instância x % x % x % x % x % T1(1)(seg.) kro124pHH 1,34 67,0 1,34 69,7 2,79 69,8 3,43 68,6 3,94 65,7 368,87 kro124pHS 1,29 64,5 1,29 67,7 2,58 64,5 3,02 60,4 3,64 60,7 345,29 kro124pLH 1,15 57,5 1,15 57,0 2,27 56,8 2,82 56,4 3,14 52,3 192,78 kro124pLS 1,12 56,0 1,12 55,3 2,40 60,0 2,70 54,0 2,95 49,2 178,26 ftv70HH 1,16 58,0 1,16 56,3 2,13 53,3 2,57 51,4 3,04 50,7 97,35 ftv70HS 1,14 57,0 1,14 59,7 2,58 64,5 2,93 58,6 3,10 51,7 104,32 ftv70LH 1,05 52,5 1,05 52,0 1,93 48,3 2,25 45,0 2,34 39,0 56,52 ftv70LS 1,11 55,5 1,11 55,3 2,03 50,8 2,29 45,8 2,43 40,5 57,82

Tabela 1: Resultados dos testes.

Figura 8: Desempenho do Algoritmo Memético Paralelo implementado.

Desempenho Alg. Memético Paralelo

0 1 2 3 4 2 3 4 5 6 Número de processadores Speedup kro124pHH kro124pLH ftv70HH ftv70LH

(10)

6

Conclusões

A aplicação de técnicas de computação paralelas para execução de algoritmos evolutivos é bastante promissora quando se avalia tempo computacional como critério de desempenho. A complexidade associada se mostrou bastante aceitável considerando o ganho de desempenho obtido.

O desempenho teórico ideal seria ter um speedup igual a p, sendo p o número de processadores em paralelo nos quais o algoritmo está sendo executado. Embora os resultados estejam um pouco distante desse limitante superior, acredita-se que os valores obtidos estejam um pouco subestimados. Isso se deve a avaliação que não é precisa no cálculo do tempo exato que cada um dos escravos consumiu no processador remoto. Mesmo assim o aperfeiçoamento do algoritmo proposto é promissor a partir destes resultados iniciais.

A Tabela 1 mostra que, na média, o speedup aumenta com o tamanho e dificuldade da instância. O melhor valor foi obtido justamente com a maior e mais difícil instância (kro124pHH), para seis processadores. Isso pode ser explicado pelo fato de que para instâncias maiores, a fração do tempo gasto com a busca local, em relação ao tempo total, é bem maior, reduzindo, assim, a proporção dos tempos de comunicação entre mestre e escravos no tempo total. Isso fica bem claro nas colunas que representam a relação speedup / speedup máximo. Para as instâncias menores, essa relação fica entre 40% e 60%. Para as instâncias maiores, o valor sobe para 50% / 70% do valor máximo teórico. Esse resultado é, por si só, muito bom e demonstra a qualidade da estrutura empregada.

Como trabalhos futuros pretende-se testar o algoritmo desenvolvido com instâncias maiores, o que provavelmente fará a relação do speedup obtido com o máximo teórico aumentar. Pode-se ainda testar a mesma abordagem com outras classes de problemas, para verificar se a tendência se mantém.

Agradecimentos

Este trabalho foi financiado pela Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES), pelo Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq) e pela Fundação de Amparo à Pesquisa do Estado de São Paulo (FAPESP). Os autores também agradecem a Eder N. Mathias pela cordialidade em proporcionar acesso ao laboratório da PUC-RS, aonde foram realizados os testes.

Referências Bibliográficas

[1] Baluja, S., A massively distributed parallel genetic algorithm, Technical Report No. CMU-CS-92-196R, Pittsburgh, Pennsylvania, Carnegie Mellon University, 1992.

[2] Buriol, L.S., França, P.M., Moscato, P., A New Memetic Algorithm for the Asymmetric Traveling Salesman Problem, Submitted to Journal of Heuristics, 1999.

[3] Cantú-Paz, E., A Survey of Parallel Genetic Algorithms, IlliGAL Report No. 97003, 1997. [4] Cantú-Paz, E., Designing Efficient Master-Slave Parallel Genetic Algorithms, IlliGAL Report

No. 97004, 1997.

[5] Cantú-Paz, E., Goldberg, D.E., Efficient parallel genetic algorithms: theory and practice, Computer methods in applied mechanics and engineering, 186, pp. 221-238, 2000.

[6] Cantú-Paz, E., Topologies, Migration Rates, and Multi-Population Parallel Genetic Algorithms, IlliGAL Report No. 97007, 1999.

[7] Du, J., Leung, J.Y.T., Minimizing total tardiness on one machine is NP-hard, Mathematics of Operations Research, 15, pp. 483-495, 1990.

[8] França, P.M., Gupta, J.D., Mendes, A.S., Moscato, P., Veltink, K.J., Metaheuristic Approaches for the Pure Flowshop Manufacturing Cell Problem, 7th International Workshop On Project Management and Scheduling, Osnabrück, Germany, 2000.

[9] França, P.M., Mendes, A. S., Moscato, P., A Memetic Algorithm for the total tardiness Single Machine Sheduling Problem, European Journal of Operational Research, 132-1, pp. 224-242, 2000.

(11)

[10] Gorges-Schleuter, M., ASPARAGOS An asynchronous Parallel Genetic Optimization Strategy, Proceedings of the Third International Conference of Genetic Algorithms, pp. 422, 1989. [11] Gorges-Schleuter, M., ASPARAGOS96 and the traveling salesman problem, Proceedings of the

Fourth International Conference on Evlutionary Computation, pp. 171-174, 1997.

[12] Graham, R.L., Lawler, E.L., Lenstra, J.K., Rinooy, Kan, A.H.G., Optimization and Approximation in deterministic sequencing and scheduling: A survey, Annals of Discrete Mathematics, 5, pp. 287-326, 1979.

[13] Graves, S.C., A review of production scheduling, Operations Research, vol. 29, pp. 646-675, 1981.

[14] Holland. J., Adaptation in Natural and Artificial Systems, The University of Michigan Press, 1975.

[15] Lee, Y.H., Bhaskaran, K., Pinedo, M., A heuristic to minimize the total weighted tardiness with sequence-dependent setups, IIE Transactions, 29, pp. 45-52, 1997.

[16] Mendes, A., França, P., Moscato, P., Fitness landscape for the Total Tardiness Single Machine Scheduling problem, to appear in Neural Network World.

[17] Mendes, A.S., Müller, F.M., França, P.M., Moscato, P., Comparing Meta-heuristic Approaches for Parallel Machine Scheduling Problems with Sequence-Dependent Setup Times, CARS & FOF’99 – 15th Intl. Conf. on CAD/CAM Robotics & Factories of the Future, Águas de Lindóia, Brazil, 1999.

[18] Moscato, P., On evolution, search, optimization, genetic algorithms and martial arts: towards memetic algorithms, Technical Report, Caltech Concurrent Computation Program, C3P Report 826, 1989.

[19] Neary, M.O., Cappello, P., Internet-Based TSP Computation with Javelin++, Workshop on Scalable Web Services (ICPP 2000 Workshops), Toronto, Canada, August 21-24, 2000.

[20] Raman, N., Rachamadugu, R.V., Talbot, F.B., Real time scheduling of an automated manufacturing center, European Journal of Operations Research, 40, pp. 222-242, 1989.

[21] Rubin, P.A., Ragatz, G.L., Scheduling in a sequence dependent setup enviroment with genetic search, Computers and Operations Research, 22-1, pp. 85-99, 1995.

[22] Tan, K.C., Narasimhan, R., Minimizing tardiness on a simple processor with sequence-dependent setup times: a simulated annealing approach, OMEGA – International Journal of Management Science, 25-6, pp. 619-634, 1997.

Referências

Documentos relacionados

Os instrumentos de pesquisa utilizados serão: Ficha de Rastreamento das Participantes do Estudo, International Consultation on Incontinence Questionnaire – Short Form

Em síntese, no presente estudo, verificou-se que o período de 72 horas de EA é o período mais ad- equado para o envelhecimento acelerado de sementes de ipê-roxo

Neste estudo foram estipulados os seguintes objec- tivos: (a) identifi car as dimensões do desenvolvimento vocacional (convicção vocacional, cooperação vocacio- nal,

Os principais objectivos definidos foram a observação e realização dos procedimentos nas diferentes vertentes de atividade do cirurgião, aplicação correta da terminologia cirúrgica,

psicológicos, sociais e ambientais. Assim podemos observar que é de extrema importância a QV e a PS andarem juntas, pois não adianta ter uma meta de promoção de saúde se

O objetivo principal deste estudo de caso era verificar o grau de valorização da medicina popular de plantas entre o próprio povo, tendo por base uma comunidade com diferentes

Foi realizado um estudo comparativo do diagnóstico da cinomose pelas técnicas de Imunofluorescência Direta (IFD), Imunofluorescência Indireta (IFI) e Coloração de Sellers em

O objetivo deste estudo foi avaliar o comporta- mento clínico de lesões de dermatite digital bovina após tratamento cirúrgico, uso local e parenteral de oxitetraci- clina e passagem