• Nenhum resultado encontrado

A maior eficiˆencia dos algoritmos mem´eticos em rela¸c˜ao aos algoritmos gen´eti- cos puros se deve a bons procedimentos de busca local, geralmente espec´ıficos para o problema que se quer resolver. Neste trabalho s˜ao relatadas v´arias aplica¸c˜oes em que a simples inclus˜ao da busca local cria um salto de desem- penho consider´avel. No entanto, o desafio neste caso ´e que para instˆancias grandes, a busca local gera um esfor¸co computacional muitas vezes proibitivo. Uma das formas de contornar esse problema ´e o emprego de t´ecnicas para redu¸c˜ao de vizinhan¸ca. H´a, contudo, outros casos em que, mesmo com uma boa redu¸c˜ao, a explora¸c˜ao da vizinhan¸ca resultante continua sendo bastante custosa. Neste caso, torna-se necess´ario o desenvolvimento de algoritmos que explorem t´ecnicas paralelas de execu¸c˜ao.

3.5.1

Tipos de arquitetura

V´arias formas cl´assicas de algoritmos evolutivos paralelos s˜ao encontradas na literatura, como demonstram os trabalhos de Cant´u-Paz [9, 11]. Em geral, podemos classificar os algoritmos evolutivos paralelos em trˆes classes principais:

• Algoritmos Evolutivos Paralelos Globais (AEPG)

• Algoritmos Evolutivos Paralelos Multi-Populacionais (AEPMP) • Algoritmos Evolutivos Paralelos H´ıbridos (AEPH)

Os AEPG s˜ao assim chamados porque os operadores de sele¸c˜ao, reprodu¸c˜ao e muta¸c˜ao s˜ao aplicados em toda a popula¸c˜ao. A implementa¸c˜ao geralmente ´e realizada utilizando a arquitetura mestre-escravo. Uma unidade mestre atribui certas fun¸c˜oes do algoritmo a outras unidades escravas, que realizam a tarefa e retornam o resultado. Nos algoritmos gen´eticos, a tarefa comumente distribu´ıda para os escravos ´e a avalia¸c˜ao dos indiv´ıduos, por ser independente para cada um. Dessa forma, uma fra¸c˜ao da popula¸c˜ao ´e atribu´ıda a cada escravo e a comunica¸c˜ao ocorre quando a mesma ´e enviada ou recebida. Quando a unidade mestre espera pelas respostas de todas as unidades escravas para ent˜ao dar prosseguimento ao algoritmo, o m´etodo ´e classificado como s´ıncrono, e preserva todas as caracter´ısticas do comportamento evolutivo do algoritmo sequencial, por´em com melhor desempenho. Outra possibilidade ´e fazer com que a unidade mestre n˜ao mais espere por todas as respostas, o que caracteriza um m´etodo ass´ıncrono. Neste caso ocorre uma diferencia¸c˜ao em rela¸c˜ao `as propriedades do algoritmo sequencial. Indiv´ıduos de uma gera¸c˜ao passam para as pr´oximas como se houvessem migrado, o que modifica o comportamento evolutivo do algoritmo. A Figura 3.13 ilustra o diagrama b´asico de um AEPG.

Figura 3.13: Arquitetura mestre-escravo.

Nos AEPG h´a um custo associado `a comunica¸c˜ao, resultando num compro- misso entre n´umero de unidades escravas e eficiˆencia do m´etodo. Cant´u-Paz [9] analisa detalhadamente este compromisso, fornecendo resultados que indicam a existˆencia de um n´umero ´otimo de unidades escravas que minimiza o tempo de execu¸c˜ao do algoritmo.

A classe dos AEPMP se caracteriza principalmente pela divis˜ao da popu- la¸c˜ao principal em v´arias popula¸c˜oes, sendo cada uma atribu´ıda a uma unidade

do sistema multiprocessado. Cada uma dessas unidades, por sua vez, exe- cuta um algoritmo evolutivo sequencial, restrito `a sua popula¸c˜ao. Em certos per´ıodos ocorre uma migra¸c˜ao, caracterizando assim um modelo de ilhas como o descrito no Cap´ıtulo 1.

J´a nos AEPH, a maior dificuldade est´a relacionada com a complexidade resultante da associa¸c˜ao de dois ou mais modelos de algoritmos evolutivos pa- ralelos. 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 mais baixo pode haver um AEPMP massivamente paralelo, um AEPG mestre-escravo ou at´e mesmo o pr´oprio AEPMP distribu´ıdo.

Estudos extensos envolvendo diferentes arquiteturas de sistemas distribu´ı- dos e suas aplica¸c˜oes a algoritmos evolutivos e problemas NP podem ser encon- trados nas referˆencias [5, 10, 31]. No momento, o NP-Opt utiliza a arquitetura AEPG, onde a tarefa distribu´ıda ´e a busca local. No entanto, tendo em vista o uso de m´ultiplas popula¸c˜oes, o pr´oximo passo l´ogico ´e a implementa¸c˜ao de um AEPMP.

3.5.2

Detalhes da implementa¸ao

Como j´a foi dito antes, a necessidade do uso de t´ecnicas paralelas de execu¸c˜ao de algoritmos depende basicamente de trˆes fatores: o tamanho da vizinhan¸ca, o tamanho da instˆancia e a quantidade de indiv´ıduos que passar˜ao pela busca local. Em todos os problemas tratados nesta tese, o tempo gasto na busca local ´e significativamente maior que o gasto nas outras etapas do algoritmo mem´etico. Assim, a busca local ´e a candidata natural para ser paralelizada.

Outro fator importante ´e que as buscas locais s˜ao independentes. A ´unica comunica¸c˜ao que ocorre ´e quando a m´aquina escrava recebe o indiv´ıduo a ser otimizado e quando ela devolve o indiv´ıduo final para a m´aquina mestre. Nesse meio tempo, a comunica¸c˜ao ´e nula.

Pode-se imaginar o algoritmo mem´etico como um conjunto de duas ca- madas, sendo a superior incumbida de processar todas as tarefas, com exce¸c˜ao da otimiza¸c˜ao dos indiv´ıduos, e a inferior somente desta ´ultima. Somente qua- tro passos s˜ao necess´arios para que essa funcionalidade seja posta em pr´atica: a primeira seria a inicializa¸c˜ao da camada mestre-escravo; a segunda a chamada propriamente dita para a execu¸c˜ao da otimiza¸c˜ao de um determinado indiv´ıduo gerado; a terceira faz com que o algoritmo n˜ao prossiga enquanto a otimiza¸c˜ao de todos os indiv´ıduos n˜ao estiver terminada e a ´ultima ´e a finaliza¸c˜ao. A Figura 3.14 mostra a implementa¸c˜ao da arquitetura mestre-escravo no NP-Opt.

Dado que o tempo necess´ario para a busca local ´e bem maior que o gasto no restante do algoritmo, pode-se imaginar que `a medida em que os indiv´ıduos v˜ao sendo criados, uma fila de espera ´e formada, aguardando que alguma m´aquina escrava seja liberada. Assim, os indiv´ıduos a serem otimizados v˜ao sendo posi- cionados em uma fila de requisi¸c˜oes. Cada escravo, que ´e um computador da rede, portanto uma unidade da m´aquina multiprocessada virtual, ir´a proces- sar os pedidos desta fila e depositar a resposta - o indiv´ıduo otimizado - em outra, chamada de fila de respostas. Os indiv´ıduos s˜ao ent˜ao retirados dessa fila de respostas e inseridos na popula¸c˜ao de novo. A fila de resposta em geral

Figura 3.14: Implementa¸c˜ao da arquitetura mestre-escravo.

tem sempre tamanho reduzido, pois a reinser¸c˜ao dos indiv´ıduos na popula¸c˜ao ´e uma opera¸c˜ao bastante r´apida. Uma caracter´ıstica positiva desta abordagem ´e que a n˜ao aloca¸c˜ao pr´e-determinada de tarefas a nenhum escravo espec´ıfico cria um melhor balanceamento de carga de acordo com a demanda, ou seja, os escravos mais r´apidos processar˜ao mais tarefas. O ponto negativo ´e que o processamento s´ıncrono pode causar uma parada total do algoritmo enquanto se aguarda a ´ultima busca local ser conclu´ıda, por exemplo. Se as buscas lo- cais tˆem sempre a mesma complexidade, indiferentemente do indiv´ıduo, esse problema ´e inexistente, mas quando isso n˜ao ´e verdade, podem ocorrer proble- mas na dinˆamica do processamento. O processamento s´ıncrono ´e tamb´em mais sens´ıvel a falhas de comunica¸c˜ao da rede, que quando demoram a ser detectadas atrasam o algoritmo como um todo.

Documentos relacionados