You are on page 1of 84

IMPLEMENTAO DE UM ALGORITMO GENTICO UTILIZANDO O MODELO DE ILHAS

Angelo Jos Moreira Silva

TESE

SUBMETIDA DO RIO

AO DE

CORPO

DOCENTE COMO

DA

COORDENAO DOS

DOS

PROGRAMAS DE PS-GRADUAO DE ENGENHARIA DA UNIVERSIDADE FEDERAL JANEIRO PARTE REQUISITOS NECESSRIOS PARA A OBTENO DO GRAU DE MESTRE EM CINCIAS EM ENGENHARIA CIVIL

Aprovada por:

Prof. Nelson Francisco Favilla Ebecken, D.Sc.

Dra. Myrian Christina de Arago Costa, D.Sc.

Prof. Mario Antonio Ribeiro Dantas, Ph.D.

Prof. Beatriz de Souza Leite Pires de Lima. D.Sc.

RIO DE JANEIRO, RJ - BRASIL AGOSTO DE 2005

MOREIRA SILVA, ANGELO JOS Implementao de um Algoritmo Gentico utilizando o Modelo de Ilhas [Rio de Janeiro] 2005 XI, 73p. 29,7 cm (COPPE/UFRJ, M.Sc., Engenharia Civil, 2005) Tese - Universidade Federal do Rio de Janeiro, COPPE 1. algoritmos genticos, otimizao, programao paralela I. COPPE/UFRJ II. Ttulo (srie)

ii

Aqueles que so iluminados nunca param de forjar a si mesmos. A realizao de tais mestres no pode ser expressa em palavras ou por teorias. As mais perfeitas aes so o eco do modelo encontrado na natureza. (Morihei Ueshiba - A Arte da Paz)

iii

Agradecimentos
Ao meu pai, esteja onde Deus o colocou, inspirao, carter e conduta no somente palavras, mas aes em toda a sua existncia. As minhas lhas Priscilla e Gabrielle por me segurarem nas quedas dos piores momentos e por me abenoarem com a ddiva de poder ser pai. A minha me, aos meus irmos e a Claudia pelo carinho e fora. Ao professor Nelson pela orientao e pelo estmulo que foi indispensvel execuo desta tese. A professora Myrian no tenho palavras que possam descrever a importncia que teve ao longo de toda esta etapa em minha vida. As discordncias serviram para aumentar o respeito, a amizade e o carinho. Aos amigos Valeriana, Leonardo e Paula pelo ajuda que no h como ser paga. Ao CNPq, que viabilizou a realizao deste trabalho.

iv

Resumo da Tese apresentada COPPE/UFRJ como parte dos requisitos necessrios para a obteno do grau de Mestre em Cincias (M.Sc.)

IMPLEMENTAO DE UM ALGORITMO GENTICO UTILIZANDO O MODELO DE ILHAS

Angelo Jos Moreira Silva Agosto/2005

Orientadores: Nelson Francisco Favilla Ebecken Myrian Christina de Arago Costa Programa: Engenharia Civil

Esta dissertao apresenta a implementao de um algoritmo gentico paralelo utilizando o modelo de ilhas. No algoritmo de ilhas, populaes aleatrias so geradas de maneira independente em cada uma das ilhas, que cam restritas a processadores especcos. A obteno de uma melhora global se d com as evolues independentes das ilhas e com a migrao de indivduos entre as mesmas a partir de critrios determinados. A troca de informaes entre as ilhas se faz atravs da biblioteca de troca de mensagens MPI. Diferentes topologias lgicas esto sendo analisadas para a fase de de migrao de indivduos entre as ilhas, sendo utilizada especicamente a topologia em anel. Resultados experimentais foram gerados com a utilizao de exemplos da literatura e analisados e comparados com outras implementaoes. O objetivo dessa dissertao a disponibilizao de uma ferramenta paralela de minerao de dados de alto de desempenho para, por exemplo, otimizar a arquitetura de uma rede neural articial, gerando um algoritmo hbrido.

Abstract of Thesis presented to COPPE/UFRJ as a partial fulllment of the requirements for the degree of Master of Science (M.Sc.)

IMPLEMENTATION OF A GENETIC ALGORITHM USING THE MODEL OF ISLAND

Angelo Jos Moreira Silva August/2005

Advisors: Nelson Francisco Favilla Ebecken Myrian Christina de Arago Costa Department: Civil Engineering

This dissertation presents the parallel genetic algorithm implementation using the island model. In the island algorithm, random populations are generated of independent manner in each of the islands that remain restricted to specic processors. The optimal solution is obtained with the independent evolution of the islands and the migration of individuals among them, using predened criterials. Communications among islands is performed using the MPI library. Different logical topologies are currently being analyzed for migration phase among islands, using specically the ring topology. Some results were generated using examples from the literature and were compared with other implementations. The objective this dissertation is developing a parallel tool for high performance data mining, for example, this tool will be used to optimize the architecture of a articial neural network, generating a hybrid algorithm.

vi

Sumrio
Lista de Figuras Lista de Tabelas 1 Introduo 1.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Otimizao de Funes e Redes Neurais Articiais . . . . . . . . . . . . . 1.3 Apresentao da Dissertao . . . . . . . . . . . . . . . . . . . . . . . . . 2 Algoritmos Genticos 2.1 Introduo . . . . . . . . . . . . 2.2 Codicao . . . . . . . . . . . 2.3 Inicializao . . . . . . . . . . . 2.4 Avaliao . . . . . . . . . . . . 2.5 Seleo . . . . . . . . . . . . . 2.5.1 Roleta . . . . . . . . . . 2.5.2 Torneio . . . . . . . . . 2.5.3 Amostragem Estocstica 2.5.4 Classicao . . . . . . 2.6 Operadores Genticos . . . . . . 2.6.1 Cruzamento . . . . . . . 2.6.1.1 Blend - . . . 2.6.2 Mutao . . . . . . . . . 2.6.2.1 Creep . . . . . 2.7 Parmetros Genticos . . . . . . 2.7.1 Tamanho da Populao . 2.7.2 Taxa de Cruzamento . . 2.7.3 Taxa de Mutao . . . . 2.7.4 Taxa de Substituio . . 2.7.5 Condio de Parada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix xi 1 3 4 6 7 7 8 10 11 13 14 16 16 16 17 17 18 18 19 19 20 20 20 20 20 22 22 23 23 23

3 Algoritmos Genticos Paralelos 3.1 Introduo sobre Paralelismo . . . . . . 3.1.1 Tipos de paralelismo . . . . . . 3.1.1.1 Paralelismo de Dados 3.1.1.2 Paralelismo Funcional vii

3.2 3.3

3.1.2 Ambiente Paralelo . . . . . . . . . . . . . 3.1.3 Obstculos no paralelismo . . . . . . . . . Message Passing Interface . . . . . . . . . . . . . Paralelismo nos Algoritmos Genticos . . . . . . . 3.3.1 Modelos de Algoritmos Genticos Paralelos 3.3.1.1 Modelo Ilha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

24 25 26 26 27 30 35 35 35 36 39 47 47 49 50 52 54 54 55 58 58 60 68 70

4 Proposta de Ferramenta no Modelo de Ilhas 4.1 Introduo . . . . . . . . . . . . . . . . . 4.2 Trabalhos Correlatos . . . . . . . . . . . 4.3 Ambiente Experimental . . . . . . . . . . 4.4 Algoritmo Baseado no Modelo de Ilhas . 4.4.1 Testes . . . . . . . . . . . . . . . 4.4.1.1 Funo De Jong1 . . . 4.4.1.2 Funo De Jong2 . . . 4.4.1.3 Funo De Jong3 . . . 4.4.1.4 Tanomaru . . . . . . . 5 Estudo de Caso 5.1 Redes Neurais Articiais . . . . . . . . 5.1.1 Introduo . . . . . . . . . . . 5.1.2 Problemas das Redes Neurais . 5.1.3 Escolha de parmetros da RNA 5.2 Estudo de Caso . . . . . . . . . . . . . 6 Concluses e trabalhos futuros Referncias . . . . .

viii

Lista de Figuras

2.1 2.2 2.3 2.4 3.1 3.2 3.3 3.4 3.5 3.6

Fluxo Geral de um Algoritmo Gentico Representaes de Cromossomos . . . . Esquema da Roleta . . . . . . . . . . . Esquema do Torneio . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

8 10 15 16 22 23 24 28 29

3.7 3.8 3.9 4.1 4.2 4.3 4.4 4.5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9

Comunicao entre processadores . . . . . . . . . . . . . . . . . . . . . . Processador executando as mesmas instrues sobre dados diferentes . . . . Comunicao entre processadores . . . . . . . . . . . . . . . . . . . . . . Esquema de um algoritmo gentico paralelo de granularidade grossa. Cada processo um simples algoritmo gentico seqncial, e h (no frequentemente) comunicao entre as subpopulaes . . . . . . . . . . . . . . . . . esquema de um algoritmo gentico paralelo de granularidade na. Esta classe de algoritmo genticos tem uma populao distribuda espacialmente. Esquema de um algoritmo gentico paralelo global (master-slave). O processo mestre armazena a populao, executa operaes de um algoritmo gentico, e distribui indivduos para os processos escravos. Os processos escravos somente avaliam a aptido dos indivduos. . . . . . . . . . . . . . . Comunicao entre processos no modelo ilha para 3 processadores . . . . . Migraao de indivduos pelo processo m1 no caso de 3 processadores . . . Modelos de Granularidade Grossa . . . . . . . . . . . . . . . . . . . . . . Fluxograma do modelo de ilhas para otimizao de uma RNA Funo De Jong1 . . . . . . . . . . . . . . . . . . . . . . . . Funo De Jong2 . . . . . . . . . . . . . . . . . . . . . . . . Funo De Jong3 em 3 dimenses . . . . . . . . . . . . . . . Funo de Tanomaru . . . . . . . . . . . . . . . . . . . . . . Arquitetura de uma RNA . . . . . Neurnio articial . . . . . . . . . Algoritmo back-propagation . . . Representao de um indivduo . . SS1 com 8 ilhas : RMS x Gerao SS2 com 8 ilhas : RMS x Gerao SS1 com 60 geraes e 50 pocas SS2 com 60 geraes e 100 pocas SS1 com 60 geraes e 150 pocas . . . . . . . . . ix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

30 31 32 34 40 47 49 50 52 55 56 57 60 63 63 64 65 66

5.10 SS2 com 60 geraes e 150 pocas . . . . . . . . . . . . . . . . . . . . . .

66

Lista de Tabelas

2.1 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8

Exemplo de seleo pelo mtodo da roleta . . . . . . . . . . . . . . . . . .

15 37 38 38 42 42 44 44 48 50 51 53 61 62 62 65 67 67

Cluster Infoserver Mercury - caracterstica geral . . . . . . . . . . . . . . . Cluster Infoserver Mercury - caracterstica por n . . . . . . . . . . . . . . SGI ALTIX 350 - caracterstica geral . . . . . . . . . . . . . . . . . . . . . Variveis e parmetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variveis alocadas dinamicamente . . . . . . . . . . . . . . . . . . . . . . Parmetros da funo objetivo . . . . . . . . . . . . . . . . . . . . . . . . Funes do Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resultados obtidos em (de Mendona, C. 2004) e SS1 e SS2 para a funo de De Jong 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.9 Resultados obtidos em (de Mendona, C. 2004) e SS1 e SS2 para a funo de De Jong 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.10 Resultados obtidos em (de Mendona, C. 2004) e SS1 e SS2 para a funo de De Jong 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.11 Resultados obtidos em (Tanomaru 1995), SS1 e SS2 para a funo f (x) = 3 | cos(20x) |x +x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 Parmetros utlizados em SS1 e SS2 . . . . . . . . . . . . . . . . . . . . . RMS do melhor indivduo, atributos utilizados e quantidade de neurnios na camada intermediria obtidos em SS1 . . . . . . . . . . . . . . . . . . . . RMS do melhor indivduo, atributos utilizados e quantidade de neurnios na camada intermediria obtidos em SS2 . . . . . . . . . . . . . . . . . . . . RMS por ilhas obtidos em SS1 e SS2 . . . . . . . . . . . . . . . . . . . . RMS por ilhas obtidos SS1 e SS2 . . . . . . . . . . . . . . . . . . . . . . . Parmetros utilizados em SS1 e SS1 . . . . . . . . . . . . . . . . . . . . .

5.1 5.2 5.3 5.4 5.5 5.6

xi

Captulo 1 Introduo
As pesquisas sobre modelos computacionais inteligentes (Tanomaru 1995) tm, nos ltimos anos, se caracterizado pela tendncia em buscar inspirao na natureza, onde existe um semnmero de exemplos vivos de processos que podem ser ditos "inteligentes". Algoritmos Genticos (AG) so as mais difundidas e estudadas tcnicas de Computao Evolucionria, pela sua exibilidade, relativa simplicidade de implementao, e eccia em realizar busca global em ambientes adversos. Vista de forma global, a evoluo natural implementa mecanismos adaptativos de otimizao embora estejam longe de serem uma forma de busca aleatria. AGs tentam dirigir a busca para regies do espao onde provvel que os pontos timos estejam. AGs possuem um paralelismo implcito decorrente da avaliao independente de cada um dos candidatos soluo, ou seja, pode-se avaliar a viabilidade de um conjunto de parmetros para soluo de problemas de otimizao. Os problemas de otimizao em sistemas de razovel complexidade no raro exigem grande capaciade de processamento devido necessidade de muitas avaliaes da funo objetivo. Estas avaliaes podem envolver longas simulaes que, para muitos casos prticos, implica na utilizao de um ou mais aplicativos de alto custo computacional e complexidade j desenvolvidos e disponveis. Apesar de muitos programas de simulao inclurem mdulos para otimizao, na prtica as restries e o clculo da funo objetivo podem envolver o uso de vrios processos. A crescente disponibilidade de redes de computadores com mquinas cada vez mais poderosas e comunicao cada vez mais rpida vem contribuindo para o aumento de aplicaes paralelas em sistemas de memria distribuda. A capacidade de processamento hoje dispo1

nvel permite que problemas de grande complexidade sejam resolvidos. Dentre muitos mtodos de otimizao hoje disponveis o uso de algoritmos genticos uma opo que oferece grande exibilidade, pois permite explorao e explotao do espao de busca aliado ao uso de variveis contnuas ou discretas, e oferece resultados satisfatrios na maioria dos casos (Cant-Paz & Goldberg 1999). Devido grande demanda computacional associada aos algoritmos genticos uma estratgia bem aceita para acelerar a convergncia a de um algoritmo gentico hbrido, por exemplo, algoritmos genticos e redes neurais articiais Dentre os muitos usos possveis das redes neurais articiais pode-se destacar a sua habilidade para aproximar funes complexas. Esta habilidade em aproximar funes sugere o seu uso aliado aos algoritmos genticos que pode oferecer algum ganho no que diz respeito a aproximar e eventualmente substituir o complexo clculo da funo objetivo e das restries. O cenrio de um problema de otimizao, com o uso de diversos programas para a avaliao das restries e da funo objetivo, com variveis contnuas e discretas e um tempo de avaliao expressivo para cada alternativa no domnio de busca faz pensar em uma implementao paralela de um AG. O desenvolvimento de aplicaes paralelas uma tarefa complexa, pois envolve, alm de todos os problemas que existem nas aplicaes seqnciais, diculdades inerentes ao paralelismo tais como criao e inicializao de processos, sincronismo na transmisso de dados entre outros (Igncio & Filho 2002). As abordagens convencionais lanam mo de bibliotecas em linguagens compiladas tipo Fortran, C ou C++ a partir das quais o programa de otimizao desenvolvido e para o ambiente paralelo pode-se usar uma biblioteca para troca de mensagens entre os processos. Normalmente, para fazer um programa para esse tipo de processamento usa-se uma biblioteca especca para passagem de mensagens. Embora nada impea que o programador use sockets diretamente, no h muito motivo para aumentar a complexidade do programa em funo de detalhes de baixo nvel. O uso de uma biblioteca permite que o programador s precise se preocupar com instrues como envie uma mensagem e no com detalhes mais especcos de como a mensagem ser enviada. Os dois grandes padres de bibliotecas de passagem de mensagens so o Parallel Virtual Machine (PVM)(Geist, Beguelin & Dongarra 1994) e o Message Passing Interface (MPI)(Pacheco 1996) (http://www.mpi-forum.org 2005) (Gropp, Lusk & Skjellum 1994). O 2

PVM o padro mais antigo e o MPI a novidade na rea, embora ambos existam h anos. Enquanto PVM realmente o nome de uma biblioteca, MPI um padro com vrias implementaes criadas principalmente por universidades e algumas suportadas comercialmente por empresas. O PVM se baseia em duas primitivas bsicas envie mensagem e receba mensagem, de fcil utilizao, mas no to poderoso quando comparado com o MPI. Este tem opes mais avanadas, como envio de mensagens broadcast (para todas as mquinas do cluster) e multicast (para um grupo especco de mquinas), assim como melhor controle sobre o tratamento que cada mensagem ter ao ser recebida por outro ponto do cluster (Geist, Kohl & Papadppoulos 1996). Para o usurio, o que ele vai precisar congurar em um cluster PVM algo como manter as mquinas o mais idnticas possvel, para facilitar a manuteno, e estabelecer alguma forma de relao de conana entre elas. Usar rhosts e rsh a forma mais simples de conseguir isso. O usurio roda o gerenciador do PVM, adiciona mquinas ao cluster e depois simplesmente executa o programa feito para PVM. A congurao do MPI depende da implementao, e algumas delas chegam a instalar front-ends para compiladores C e Fortran, mas a forma geral de uso semelhante. A biblioteca MPI oferece, atravs do paradigma de passagem de mensagens, uma grande exibilidade e portabilidade para programao distribuda. Programas que utilizam esta biblioteca podem rodar em mquinas com mltiplos processadores com memria compartilhada, clusters de computadores com memria distribuda, redes de workstation, grids ou combinaes de todos esses, assim o MPI tem se tornado um padro de comunicao para troca de mensagens e foi adotado nesta dissertao.

1.1

Objetivo

Existem diversas tcnicas que detectam padres em massas de dados, de forma automtica, adicionando inteligncia anlise dos dados e tornando-a independente do usurio. Uma das principais tcnicas utilizadas em aplicaes de minerao de dados conhecida como redes neurais articiais. As redes neurais so programas computacionais que simulam o trabalho do sistema nervoso, de forma a resolver os problemas de forma eciente e com muita tolerncia aos rudos 3

da base de dados. Entretanto existem algumas limitaes relacionadas utilizao das redes neurais, principalmente no que se refere denio da sua congurao ideal e extrao das regras incorporadas no seu modelo. Uma alternativa para a resoluo destas limitaes a utilizao de algoritmos de otimizao global, conhecidos como algoritmos genticos. Estes algoritmos se baseiam nos mecanismos de seleo natural e gentica, sendo adequados para problemas com grande espao de busca. Dentre as muitas tcnicas escolhidas para o desenvolvimento encontra-se a otimizao de rede neural articial a partir de parmetros escolhidos por um algoritmo gentico paralelo para a obteno de um melhor resultado em uma quantidade de tempo considerada satisfatria. O objetivo desta dissertao o desenvolvimento de uma ferramenta que permite a otimizao via algoritmos genticos, em ambiente paralelo, utilizando-se do modelo de ilhas. Esta abordagem permite a evoluo de diferentes populaes de forma independente e uma avaliao global para a obteno do melhor resultado.

1.2

Otimizao de Funes e Redes Neurais Articiais

Nas mais diversas reas cientcas aparecem situaes onde necessria, ou desejvel, a soluo de problemas de otimizao. Uma grande parte dos problemas cientcos pode ser formulada como problemas de busca ou otimizao. Basicamente, existe uma srie de fatores inuenciando o desempenho de um dado sistema. Tais fatores podem assumir um nmero limitado ou ilimitado de valores, e podem estar sujeitos a certas restries. O objetivo encontrar a melhor combinao de fatores, ou seja, a combinao de fatores que proporcione o melhor desempenho possvel para o sistema em questo. O conjunto de todas as combinaes possveis para os fatores constitui o chamado espao de busca. No difcil perceber que existe uma dualidade entre os conceitos de busca e otimizao, de tal modo que todo problema de busca pode ser considerado um problema de otimizao e vice-versa. Um problema, por exemplo, de otimizao poder ser denido como: 4

Minimizar dado que

f (x 1 , x 2 , . . . , x n ) g j (x 1 , x 2 , . . . , x n ) 0 xinf xi xsup i i xi X i j = 1, 2, . . . , J

hk (x1 , x2 , . . . , xn ) = 0 k = 1, 2, . . . , K

Quadro 1 - Exemplo de Otimizao No quadro 1 tem-se que a funo f denominada funo objetivo, as variveis x i so as variveis de projeto, as desigualdades gj e as igualdades hk so denominadas restries de comportamento e as restries limitando as variveis de projeto so as restries laterais. Um problema de otimizao pode no ter restries. O conjunto Xi o domnio da varivel de projeto i e pode ser qualquer. Tambm pode congurar restries laterais para o problema. Normalmente o domnio de uma varivel de projeto um intervalo de nmero reias ou inteiros ou um conjunto discreto de valores. O produto cartesiano dos domnios das variveis de projeto dene o domnio da funo objetivo. Este domnio pode ser ento dividido em dois subconjuntos: a regio vivel onde todas as restries so satisfeitas e a regio invivel onde alguma restrio no observada. Sempre que existir alguma regio vivel o problema tem soluo. A soluo do problema de otimizao, quando existe, leva a um valor timo da funo associado a um ou mais pontos de timo. Entre os principais mtodos para soluo de problemas de otimizao h os mtodos analticos e os mtodos numricos (de Campos & Saito 2004). Os mtodos analticos normalmente se baseiam no clculo diferencial ou no clculo variacional e permitem, em geral, somente a soluo de problemas simples de otimizao. Os mtodos numricos para soluo de problemas de otimizao so essencialmente classicados em mtodos de programao matemtica e mtodo probabilsticos. Os mtodos de programao matemtica so classicados em mtodos de programao linear, programao no-linear e mtodos baseados em teoria de aproximaes como programao linear seqncial e programao quadrtica seqncial. Entre os mtodos probabilsticos temos os algoritmos genticos, a programao evolucionria, as estratgias evolucionrias, o Simulated Annealing e a estratgia de colnias entre outros. A diferena essencial dos mtodos de programao matemtica para os mtodos probabilsticos que os ltimos procuram encontrar 5

o timo global do problema de otimizao tentando evitar os timos locais. J os mtodos de programao matemtica podem fornecer um mnimo local. Os mtodos probabilsticos, como o prprio nome sugere, utilizam um processo de busca randmica guiados por decises probabilsticas para obter o timo global. Alm disso, os mtodos probabilsticos so tambm ferramentas poderosas para problemas com variveis discretas.

1.3

Apresentao da Dissertao

A tese est organizada como se segue. Este captulo descreve alguns aspectos importantes sobre problemas de otimizao de funes e redes neurais, alm das solues mais utilizadas. O captulo 2 contm uma reviso sobre algoritmos genticos (codicao, inicializao, seleo e operadores genticos). So descritos alguns dos processos de seleo mais encontrados na literatura e alguns tipos de operadores de crossover e mutao. Tambm so descritos os principais parmetros de um algoritmo gentico. O captulo 3 contm uma introduo sobre as caractersticas e tipos de paralelismo e um resumo sobre a biblioteca MPI. apresentado uma classicao das tcnicas de paralelizao de algoritmos genticos e uma descrio do modelo de ilhas e do operador de migrao. Tambm descrito o Algoritmo Gentico Paralelo Epidmico e so apresentadas algumas estratgias de migrao em funo deste. O captulo 4 mostra alguns trabalhados correlatos que foram pesquisados e descreve o ambiente experimental em que foram desenvolvidos os algoritmos. mostrado a implementao de algoritmos genticos seguindo umas das estratgias de migrao descritas no captulo 3. explicado a estrutura geral do algoritmo com o operador de migrao. So analisados e comparados os resultados obtidos com resultados conhecidos na literatura para otimizao de funes. O captulo 5 contm uma introduo sobre redes neurais e os problemas encontradados para o seu treinamento, sendo apresentado uma soluo utilizando algoritmos genticos paralelos. Tambm mostrado a anlise do caso culminando com a otimizao da quantidade de neurnios na camada intermediria de uma rede neural. O captulo 6 as concluses do trabalho so expostas e futuros trabalhos so sugeridos.

Captulo 2 Algoritmos Genticos


2.1 Introduo

Algoritmos genticos so algoritmos de otimizao global, baseados nos mecanismos de seleo natural e da gentica, que exploram informaes histricas para encontrar pontos onde so esperados os melhores desempenhos. Isto feito atravs de processos iterativos, onde cada iterao chamada de gerao. Durante cada iterao, os princpios de seleo e reproduo so aplicados a uma populao de candidatos. Atravs da seleo, se determina quais indivduos conseguiro se reproduzir, gerando um nmero determinado de descendentes para a prxima gerao, com uma probabilidade determinada pelo seu ndice de aptido. Em outras palavras, os indivduos com maior adaptao relativa tm maiores chances de se reproduzir. Nos algoritmos genticos, uma populao de possveis solues para o problema em questo evolui de acordo com operadores genticos (probabilsticos) concebidos a partir de metforas biolgicas, de modo que h uma tendncia de que, na mdia, os indivduos representem solues cada vez melhores medida que o processo evolutivo continua. Embora o algoritmo gentico use um mtodo heurstico e probabilistico para obter os novos elementos, ele no pode ser considerado uma simples busca aleatria, uma vez que explora inteligentemente as informaes disponveis de forma a buscar novos indivduos ou solues capazes de melhorar ainda mais um critrio de desempenho. Os algoritmos genticos procuram privilegiar indivduos com melhores aptides, com isto tentam dirigir a busca para regies do espao de busca onde provvel que os pontos 7

timos estejam. O uxo geral de um algoritmo gentico ilustrado na gura 2.1.


Inicio

populacao inicial selecao (fitness)

pais selecionados operadores geneticos crossover mutacao

filhos gerados nao

Fim

solucao

sim

satisfeito com solucao ?

nova populacao completa ?

nao

sim nova populacao

F IGURA 2.1: Fluxo Geral de um Algoritmo Gentico

2.2

Codicao

O ponto de partida para a aplicao de algoritmos genticos a um problema qualquer (busca ou otimizao) a representao do problema a ser analisado, de maneira que os algoritmos genticos possam atuar adequadamente sobre ele. Naturalmente para cada representao deve haver operadores genticos correspondentes. Os algoritmos genticos processam populaes de indivduos ou cromossomos. O cromossomo uma estrutura de dados, geralmente vetores ou cadeia de valores binrios, reais ou combinao de ambas, que representa uma possvel soluo do problema a ser otimizado. Em geral, o cromossomo representa o conjunto de parmetros da funo objetivo cuja resposta ser otimizada (como por exemplo maximizada ou minimizada). O conjunto de todas as conguraes que o cromossomo pode assumir forma o seu espao de busca. Se o cromossomo representa n parmetros de uma funo, ento o espao de busca um espao com n dimenses. A maioria das representaes so genotpicas. O gentipo o conjunto de genes que dene a constituio gentica de um indivduo e sobre estes genes que sero 8

aplicados os operadores genticos. Essas representaes utilizam vetores de tamanho nito. Tradicionalmente, o gentipo de um indivduo representado por um vetor binrio, onde cada elemento de um vetor denota a ausncia ou presena de uma determinada caracterstica relevante para a construo de um indivduo nico. Os elementos podem ser combinados formando as caractersticas reais do indivduo, ou seja o seu fentipo. Teoricamente, essa representao independente do problema, pois uma vez encontrada a representao em vetores binrios, as operaes padres podem ser utilizadas, facilitando o seu emprego em diferentes classes de problemas (Spears, Jong, Back, Fogel & Garis 1993) (Corra 2000). A representao binria historicamente importante (Jong 1975) (Goldberg 1989), uma vez que foi utilizada nos trabalhos pioneiros de Holland (1962). Alm disso, ela ainda a representao mais utilizada, por ser de fcil utilizao e manipulao, e simples de analisar teoricamente. Contudo, se um problema tem parmetros contnuos e o usurio desejar trabalhar com maior preciso, provavelmente acabar utilizando longos cromossomos para representar solues, necessitando de uma grande quantidade de memria. Outro aspecto a ser observado a no-uniformidade dos operadores; por exemplo, se o valor real de um gene for codicado por um vetor binrio, a mutao nos primeiros valores binrios do gene afetar mais a aptido do cromossomo que a mutao nos seus ltimos valores. A representao do cromossomo usando valores reais mais naturalmente compreendida (Wright 1990) (Michalewicz 1992) pelo ser humano e requer menos memria que aquela usando uma cadeia de bits. A representao em nveis de abstrao mais altos tem sido investigada (de Oliveira 2001) e por serem mais fentipicas, facilitariam seu uso em determinados ambientes. Nesse caso, precisariam ser criados os operadores especcos para utilizar essas representaes. A grande maioria dos algoritmos genticos propostos na literatura usam uma populao de nmero xo de indivduos, com cromossomos tambm de tamanho constante. Tendo denido a reprentao cromossmica para o problema, gera-se um conjunto de possveis solues, chamadas de solues candidatas. Um conjunto de solues codicadas de acordo com a representao selecionada corresponde a uma populao de indivduos, que representa, ao longo dos ciclos de evoluo, o estgio atual da soluo do problema. Algoritmos genticos so algoritmos iterativos, e a cada iterao a populao modicada. Cada iterao de um algoritmo gentico denominada uma gerao, embora nem todos os indivduos de uma populao sejam necessariamente lhos de indivduos da populao da 9

1.2657 0.8547 3.0105 1.1154

3.8941

S G

110000 010101 101001 110100 001101

F IGURA 2.2: Representaes de Cromossomos iterao anterior. Na populao so calculados diversos valores estatsticos que servem de medida para avaliar se a busca est prxima do m. Normalmente os parmetros avaliados so o melhor indivduo, a mdia dos objetivos atingidos, o desvio padro e tambm a diversidade.

2.3

Inicializao

Como a representao do espao de busca deve ser a mais sensvel possvel, a inicializao deste requer algumas ponderaes que se representam por meio dos seguintes tipos de inicializao: Inicializao Aleatria : os indivduos da populao so gerados de forma aleatria Inicializao Determinstica : os indivduos da populao so gerados segundo uma determinada heurstica Inicializao Aleatria com Nicho : os indivduos da populao so gerados de forma que possam ser dividos em espcies, isto , indivduos com caractersticas semelhantes Na maior parte das aplicaes, a populao inicial de n indivduos gerada aleatriamente ou atravs de algum processo heurstico. Como no caso biolgico, no h evoluo sem variedade. Ou seja, a teoria da seleo natural ou lei do mais forte necessita de que indivduos tenham diferentes graus de adaptao 10

ao ambiente em que vivem. De acordo, importante que a populao inicial cubra a maior rea possvel do espao de busca. A populao inicial pode ser obtida atravs da gerao de indivduos, obedecendo condies de contorno previamente estabelecidas pelo usurio. O usurio estabelece estas condies, tendo em vista o seu conhecimento prvio do problema a ser otimizado. Quanto mais restritas forem as condies de contorno, mais rpida ser a convergncia, isso porque os valores gerados aleatoriamente estaro mais prximos da soluo desejada (Lacerda & Carvalho 1999). O nmero de indivduos que compor a populao, ainda motivo de estudos, mas existem vrias heursticas, ou seja, depende muito da experincia do usurio e do seu conhecimento prvio sobre a funo a ser otimizada (Soares 1997). claro que, quanto maior o nmero de elementos na populao, maior a probabilidade de convergncia, tendo em vista que a probabilidade da soluo desejada ser constadada entre os elementos da populao aumenta. Em contrapartida, o tempo de processamento tambm aumenta. J no caso da populao inicial ser muito pequena, ela ter o problema da perda de diversidade (R.K.Ursem 2002), isto , o espao de busca seria muito pequeno para ser avaliado. Desta forma, a soluo obtida poderia no estar dentro do timo global. Conseqentemente, a convergncia seria prematura. A populao inicial no precisa, necessariamente, ser gerada aleatriamente, tendo em vista que o objetivo gerar uma populao dentro de certo intervalo onde se acredita estar a resposta. Pode-se obter a populao inicial tambm atravs de um escalonamento do nmero de indivduos, pelo intervalo especicado, isto : se a populao de 50 indivduos e o intervalo inicial de 0 a 10, os indivduos da populao inicial devero estar distribudos uniformemente neste intervalo.

2.4

Avaliao

Algoritmos genticos necessitam de informao do valor de uma funo objetivo para cada membro da populao, que deve ser um valor no-negativo. Nos casos mais simples, usa-se justamente o valor da funo que se quer otimizar. A funo objetivo d, para cada indivduo, uma medida de quo bem adaptado ao ambiente ele est, ou seja, suas chances de sobreviver no ambiente e reproduzir-se, passando parte do seu material gentico a geraes posteriores. 11

A avaliao de cada indivduo resulta num valor denominado aptido (tness). A validao o processo de expor cada elemento da populao a funo objetivo e, ao nal, orden-los de acordo com a aptido desta funo. Na convergncia, analisa-se o desempenho da populao em relao ao objetivo. Isto pode ser feito atravs de vrios fatores, tais como: valores mximo, mnimo e mdio da funo aptido. Tambm, relativamente comum utilizar-se o desvio padro dos valores da funo de aptido, como forma de anlise da convergncia (Goldberg 1989). Como o algoritmo gentico regido por populao, se na populao inicial existir um elemento que seja a resposta exata do problema, o algoritmo ainda assim no nalizar o processo de busca da soluo, pois isto um tipo de avaliao. A nalizao ou convergncia s ocorrer quando a aptido mdia da populao estiver sucientemente estvel, ou seja, quando houver pouca variao da aptido mdia da populao atual em relao a anterior. Isto indica que a populao se adaptou ao meio, isto , os elementos da populao levam a funo ao valor otimizado (desejado) (Lacerda & Carvalho 1999). Utiliza-se memorizar o indivduo mais apto, independentemente deste fazer, ou no, parte da populao atual. Assim, ao nal, este ser o resultado esperado (Tanomaru 1995). Contudo na utilizao de algoritmos genticos pode ocorrer uma rpida convergncia para uma soluo sub-tima, porm no o esperado timo global. Este problema denominado convergncia prematura, podendo ocorrer devido a populao reduzida ou a m distribuio da populao inicial, em torno do ponto sub-timo. Ou seja, um indivduo prximo de um timo local, possui um valor de aptido superior aos demais indivduos da populao. Conseqentemente, o processo de seleo far com que este indivduo tenha grande chance de dominar a prxima gerao e, assim sucessivamente, se no aparecerem outros indivduos com melhores valores de aptido (Tanomaru 1995). Conforme pode ser visto, a convergncia prematura pode ocorrer devido a uma m distribuio dos indivduos no espao de busca. Esta m distribuio, tambm recebe a denominao de perda de diversidade (Tanomaru 1995)(Goldberg 1989). Segundo Jlio Tanomaru (Tanomaru 1995), o conceito de diversidade indica o grau em que as diversas regies esto representadas no epao de busca. Este problema pode ser amenizado atravs da escolha criteriosa do nmero de indivduos na populao, melhora da distribuio dos indivduos da populao inicial no espao de busca e, tambm, impedindo a perda de diversidade nas primeiras geraes. 12

2.5

Seleo

O princpio bsico do funcionamento dos algoritmos genticos que um critrio de seleo vai fazer com que, depois de muitas geraes, o conjunto inicial de indivduos gere indivduos mais aptos. O mecanismo de seleo em algoritmos genticos emula os processos de reproduo assexuada e seleo natural. O algoritmo gentico comea com uma populao inicial de n indivduos. Quando no existe nenhum conhecimento prvio sobre a regio do espao de busca onde se encontra a soluo do problema, os indivduos so gerados aleatoriamente. Se houver um conhecimento a priori sobre a regio em que est localizada a soluo, ou seja, forem conhecidas solues aceitveis que podem estar prximas soluo tima, os indivduos iniciais podem ser denidos de forma determinstica. Para que o processo de seleo privilegie os indivduos mais aptos, a cada indivduo da populao atribudo um valor dado por uma funo f denominada funo de aptido. Esta funo recebe como entrada os valores do gene do cromossomo (indivduo) e fornece como resultado a sua aptido. A aptido pode ser vista como uma nota na qual se avalia a soluo codicada por um indivduo. Esta aptido baseada no valor da funo objetivo, que especca para cada problema. Para alguns mtodos de seleo, desejvel que o valor de aptido de cada indivduo seja menor que 1 e que a soma de todos os valores de aptido de cada indivduo seja igual a 1. Para isso, para cada indivduo calculada a aptido relativa (f rel ). A aptido relativa para um dado indivduo obtida dividindo o valor de sua aptido pela soma dos valores de aptido de todos os indivduos da populao. Em geral, gera-se uma populao inicial de n indivduos extrados com probabilidade proporcional aptido relativa de cada indivduo na populao, ou seja, a probabilidade de seleo de um cromossomo ou indivduo x dada por f (xi )rel = f (x i )
n

(2.1)

f (x j )
j =1

onde f (xi ) a funo de aptido. 13

Usando a probabilidade acima, seleciona-se n indivduos. Neste processo, indivduos com baixa aptido tero alta probabilidade de desaparecerem da populao, ou seja, serem extintos, ao passo que indivduos com alta aptido tero grande chance de sobreviverem. Uma funo objetivo (ou funo de avaliao) geralmente uma expresso matemtica que mede o quanto uma soluo est prxima ou distante da soluo desejada (satisfaz o objetivo do problema). Muitas vezes ela inclui restries que devem ser satisfeitas pela soluo. Alguns problemas de otimizao procuram maximizar o valor da funo objetivo, isto , encontrar solues que produzam o maior valor possvel para a funo objetivo; por exemplo denir o nmero mximo de caixas que podem ser colocadas dentro de um depsito. Outros problemas procuram minimizar o valor da funo objetivo; por exemplo, encontrar a soluo mais barata. Existem ainda funes que procuram satisfazer mais de um objetivo. Essas funes so encontradas em problemas de otimizao multiobjetivo. Associada uma nota ou aptido a cada indivduo da populao, o processo de seleo escolhe ento um subconjunto de indivduos da populao atual, gerando uma populao intermediria. Vrios mtodos de seleo tm sido propostos. A maioria deles procura favorecer indivduos com maiores valores de aptido, embora no exclusivamente, a m de manter a diversidade da populao. Alguns mtodos de seleo so: roleta torneio amostragem estocstica classicao

2.5.1 Roleta
O mtodo da roleta o mtodo de seleo mais simples e tambm o mais utilizado. Os indivduos de uma gerao so selecionados para a prxima gerao utilizando uma roleta, semelhante roleta utilizada em jogos de azar. Neste mtodo, cada indivduo da populao representado na roleta conforme seu valor de aptido. Desta forma, os indivduos com elevada aptido recebero um intervalo maior na roleta, enquanto aqueles que tem mais baixa aptido recebero menor intervalo na roleta. Aps a distribuio na roleta, so gerados aleatriamente valores no intervalo entre 0 e o 14

total do somatrio da aptido de todos os indivduos da populao. gerado um determinado nmero de vezes, dependendo do tamanho da populao. O indivduo que possuir em seu intervalo o valor gerado, ser selecionado. Os indivduos selecionados so inseridos na populao intermediria. Na gura 2.3 mostrado o esquema da roleta. Na tabela 2.1 mostrado um exemplo. Na primeira coluna esto os indivduos da populao, na segunda est o valor de aptido correspondente a cada indivduo e na terceira coluna est a percentagem correspondente a cada um deles.

Indivduo Aptido Roleta I1 22 22 I2 25 47 I3 17 64 I4 7 71 I5 10 81

Aptido Relativa 0.27160493 0.30864197 0.20987654 0.08641975 0.12345679

Porcentagem 27% 31% 21% 9% 12%

TABELA 2.1: Exemplo de seleo pelo mtodo da roleta

12% 9%

27%

I5 I4 I3 I2

I1

PSfrag replacements

21%

31%

F IGURA 2.3: Esquema da Roleta

De forma simplicada, o mtodo da roleta realizado em trs passos: 1. [Soma] Calcular a soma dos valores da aptido de todos os indivduos - soma S. 15

2. [Seleo] Gerar um nmero aleatrio dentro do intervalo (0, S ) - r. 3. [Loop] Comear a somar os valores de aptido dos indivduos at atingir ou ultrapassar o valor r. Retornar o ltimo indivduo utilizado na soma.

2.5.2 Torneio
Neste mtodo n indivduos da populao so escolhidos aleatoriamente, com a mesma probabilidade. O indivduo com maior aptido dentre estes n indivduos selecionado para a populao intermediria. O processo se repete at que a populao intermediria seja preenchida. Geralmente, o valor utilizado para n 3. Na gura 2.4 apresentada a utilizao de seleo por torneio para n = 3.

Candidatos

Selecionado

I1

I2

I5

I2

PSfrag replacements

I15

I3

I5

I3

...
I8 I10 I4

I10

F IGURA 2.4: Esquema do Torneio

...

2.5.3 Amostragem Estocstica


Este mtodo uma variao do Mtodo da Roleta em que, em vez de uma nica agulha, n agulhas igualmente espaadas so utilizadas, onde n o nmero de indivduos a serem selecionados. Assim, em vez de n vezes, a roleta girada uma nica vez.

2.5.4 Classicao
Este mtodo primeiramente classica a populao, depois cada indivduo recebe um valor de acordo com esta classicao. O pior ter valor 1, o segundo pior ter valor 2 e assim sucessivamente. O melhor ter valor n igual ao nmero de indivduos da populao. Aps a classicao todos os indivduos tm chances de serem selecionados. 16

2.6

Operadores Genticos

Um algoritmo de otimizao global deve ser capaz de explorar pontos inteiramente novos dentro do espao de busca, bem como intensicar a busca em determinadas regies consideradas promissoras. Esse mecanismo de diversicao e intensicao (exploration e explotation) obtido nos algorimos genticos pela correta aplicao dos operadores genticos. Goldberg formalizou as principais caractersticas dos operadores clssicos de cruzamento (crossover), mutao e inverso, principalmente no que tange a codicao binria (Goldberg 1989). H consenso, pelo menos, que o cruzamento utiliza a informao contida em dois ou mais indivduos (pais), para gerar um ou mais novos indivduos (lhos). Esse processo tende a no acrescentar novas informaes populao, por explorar apenas a regio prxima aos indivduos pais. A mutao, por sua vez, pode ser entendida tanto como um diversicador ou como um intensicador de busca. Em algumas abordagens, como estratgias de evoluo, a mutao a nica responsvel pela evoluo e o que determina se o movimento de explorao ou intensicao so parmetros adaptveis ao longo das geraes (de Oliveira 2001) (Tanomaru 1995). A mutao diversica quando introduz uma informao inteiramente nova no indivduo e, conseqentemente populao. Por outro lado, quando apenas aplica um rudo soluo contida no indivduo, a mutao um mecanismo intensicador de busca na vizinhana dessa soluo. A seguir so apresentados alguns operadores de cruzamento e mutao encontrados na literatura e uma diviso categrica dos mesmos encontrada em (de Oliveira 2001)

2.6.1 Cruzamento
O processo de recombinao um processo sexuado - ou seja, envolve mais de um inivduo - que emula o fenmeno de crossover, a troca de fragmentos entre pares de cromossomos. Na forma mais simples, trata-se de um processo aleatrio que ocorre com probabilidade xa prec que deve ser especicada pelo usurio. 17

1. Convencionais (a) Uniforme (b) N pontos 2. Aritmticos (a) Mdia aritmtica (b) Mdia geomtrica (c) Michalewicz (d) Blend - (e) Unimodal normal distribution (f) Simulated binary (g) Simplex 3. Heursticos (ou direcionais) 2.6.1.1 Blend -

No blend crossover, que tambm chamado de BLX- so gerados dois lhos a partir de dois pais. Inicialmente gerado um nmero aleatrio com distribuio uniforme no intervalo [ , 1 + ]. Os lhos so gerados a partir das equaes abaixo. O valor de usual 0.5. Este tipo de cruzamento foi utilizado na dissertao.
1 pai2 1 ilho1 ) genepai + (genei = genepai genef i i i

(2.2)

2 1 2 ilho2 ) genepai + (genepai = genepai genef i i i i

(2.3)

2.6.2 Mutao
O processo de mutao em algoritmos genticos equivalente busca aleatria. Basicamente, seleciona-se uma posio num cromossomo e muda-se o valor do gene correspondente aleatoriamente para um outro possvel. O processo geralmente controlado por um parmetro xo pmut que indica a probabilidade de um gene sofrer mutao. 18

1. Binria 2. Aleatria (ou uniforme) 3. No-uniforme (Michalewicz) 4. Gaussiana 5. Modal discreta 6. Modal contnua 7. Mhlenbein 8. Creep 2.6.2.1 Creep

A mutao Creep (escorregamento) consiste em somar ao valor de um gene um valor gerado a partir de uma distribuio normal com mdia zero e desvio padro baixo. Uma alternativa multiplicar-se o valor do gene por um nmero aleatrio prximo a 1. Este operador aplicado no caso da representao real e no gera grande pertubao nas populaes. Isto permite que seja usado com taxas de mutao mais elevadas. O efeito da mutao creep auxilia na busca local (explotao) pois parte da idia de que se um cromossomo est perto de uma valor timo uma pequena alterao pode lev-lo ao timo (de Mendona 2004). Este tipo de mutao foi utilizado na dissertao.

2.7

Parmetros Genticos

O desempenho de um Algoritmo Gentico fortemente inuenciado pela denio dos parmetros a serem utilizados, portanto importante , analisar de que maneira alguns parmetros inuem no comportamento dos algoritmos genticos, para que se possa estabelec-los conforme as necessidades do problema e dos recursos disponveis (Cant-Paz & Goldberg 1999) (Tanomaru 1995). 19

2.7.1 Tamanho da Populao


O tamanho da populao afeta o desempenho global e a ecincia dos algoritmos genticos. Com uma populao pequena o desempenho pode cair, pois deste modo a populao fornece uma pequena cobertura do espao de busca do problema. Uma grande populao geralmente fornece uma cobertura representativa do domnio do problema, alm de prevenir convergncias prematuras para solues locais ao invs de globais. No entanto, para se trabalhar com grandes populaes, so necessrios maiores recursos computacionais, ou que o algoritmo trabalhe por um perodo de tempo muito maior.

2.7.2 Taxa de Cruzamento


Quanto maior for esta taxa, mais rapidamente novas estruturas sero introduzidas na populao. Mas se esta for muito alta, estruturas com boas aptides podero ser retiradas mais rapidamente que a capacidade da seleo em criar melhores estruturas. Com um valor baixo, o algoritmo pode se tornar lento ou estagnar.

2.7.3 Taxa de Mutao


Uma baixa taxa de mutao previne que a busca que estagnada em regies do espao de busca. Alm disso, possibilita que qualquer ponto do espao de busca seja atingido. Com uma taxa muito alta a busca se torna essencialmente aleatria.

2.7.4 Taxa de Substituio


Controla a porcentagem da populao que ser substituda durante a prxima gerao. Com um valor alto, a maior parte da populao ser substituda, mas com valores muito altos pode ocorrer perda de estruturas de alta aptido. Com um valor baixo, o algoritmo pode tornar-se muito lento.

2.7.5 Condio de Parada


Como se est tratando de problemas de otimizao o ideal seria que o algoritmo terminasse assim que o ponto timo fosse descoberto. J no caso de funes multimodais, um ponto 20

timo poder ser o suciente, mas pode haver situaes onde todos ou o maior nmero possvel de pontos timos sejam desejados. Um problema prtico que, na maioria dos casos de interesse, no se pode armar com certeza se um dado ponto timo corresponde a um timo global. Como conseqncia, normalmente usa-se o critrio do nmero mximo de geraes ou um tempo limite de processamento para parar um algoritmo gentico. Outro critrio plausvel parar o algoritmo usando a idia de estagnao, ou seja, quando no se observa melhoria da populao depois de vrias geraes consecutivas, isto , quando a aptido mdia ou do melhor indivduo no melhora mais ou quando as aptides dos indivduos de uma populao se tornarem muito parecidas. Ao conhecer a resposta mxima da funo objetivo, possvel utilizar este valor como critrio de parada.

21

Captulo 3 Algoritmos Genticos Paralelos


3.1 Introduo sobre Paralelismo

Paralelismo uma estratgia utilizada em computao para obter-se, mais rapidamente, resultados de tarefas grandes e complexas. Segundo esta estratgia, uma tarefa grande pode ser dividida em vrias tarefas pequenas, que sero distribudas entre vrios processadores e executadas simultaneamente. Os processadores se comunicam entre si para que haja sincronizao entre as tarefas em execuo.
Tarefa 1 Processador A

Tarefas Grandes e Complexas

Tarefa 2

Processador B

Tarefa 3

Processador C

F IGURA 3.1: Comunicao entre processadores Os principais objetivos do paralelismo so: Aumentar o desempenho (reduzindo o tempo) no processamento Resolver grandes desaos computacionais Fazer uso de um sistema distribudo para resoluo de tarefas Obter ganhos de performance 22

Existem complexidades pertinentes ao prprio paralelismo. Os resultados (desempenho) podem no corresponder ao esforo (programao) empregados. O programador diretamente responsvel (em ferramentas no automticas) pelo paralelismo.

3.1.1 Tipos de paralelismo


Dentre as vrias formas de classicar o paralelismo, levamos em considerao o objeto paralelizado, como segue abaixo: 3.1.1.1 Paralelismo de Dados

O processador executa as mesmas instrues sobre dados diferentes. aplicado, por exemplo, em programas que utilizam matrizes imensas e para clculos de elementos nitos. Exemplos: Resoluo de sistemas de equaes Multiplicao de matrizes Integrao numrica
Dados 1 Dados 2 Dados 3

Instruao A

F IGURA 3.2: Processador executando as mesmas instrues sobre dados diferentes 3.1.1.2 Paralelismo Funcional

O processador executa instrues diferentes que podem ou no operar sobre o mesmo conjunto de dados. aplicado em programas dinmicos e modulados onde cada tarefa ser um programa diferente. Exemplos Paradigma Produtor-Consumidor Simulao 23

Rotinas especcas para tratamento de dados (imagens)

Tarefa

Instruao A

Instruao B

Instruao C

Dados 1

Dados 2

Dados 3

F IGURA 3.3: Comunicao entre processadores

3.1.2 Ambiente Paralelo


Um ambiente paralelo possui vrios processadores interligados em rede sobre uma plataforma para manipulao de processos paralelos. A plataforma deve possuir um sistema operacional que esteja habilitado a executar este tipo de processamento alm de uma linguagem de programao que atenda as exigncias de um modelo de programao paralela. Tipos de ambientes: Message Passing : o mtodo de comunicao baseada no envio e recebimento de mensagens atravs da rede seguindo as regras do protocolo de comunicao entre vrios processadores que possuam memria prpria. O programador responsvel pela sincronizao das tarefas. Exemplos : PVM - Parallel Virtual Machine (Geist et al. 1994) MPI - Message Passing Interface (Igncio & Filho 2002) MPL - Message Passing Library (Soch & Tvrdik 1998) Data Parallel : a tcnica de paralelismo de dados, normalmente automtica ou semiautomtica, ou seja, o mtodo que se encarrega de efetuar toda a comunicao necessria entre os processos de forma que o programador no necessita entender os mtodos de comunicao. Exemplos : HPF - High Performance Fortran (Chapman & Mehrotra 1998) (Sarma, Zacharia & Miles 1998) 24

3.1.3 Obstculos no paralelismo


As tarefas executadas em paralelo, num determinado instante, aguardam a nalizao mtua para coordenar os resultados ou trocar dados e reiniciar novas tarefas em paralelo. necessrio que haja a coordenao dos processos e da comunicao entre eles para evitar que a comunicao seja maior que o processamento e que consequentemente haja uma queda no desempenho dos processos em execuo. Existem poucos compiladores e ferramentas prontas para paralelizao automtica que resolvam denitivamente o problema do paralelismo. H um considervel tempo gasto do programador em analisar o cdigo fonte para paralelizar e recodicar. Basicamente necessrio rever o programa sequencial, avaliar como ser particionado, quais os pontos de sincronizao, quais as parties que podero ser executadas em paralelo e qual a forma de comunicao que ser empregada entre as tarefas paralelas (Grama, Gupta, Karypis & Kumar 2003). necessrio que haja uma anlise do algoritmo a ser paralelizado para que seja possvel a paralelizao nos dados ou nas funes do mesmo, levando sempre em considerao a quantidade de comunicao em relao ao processamento (Jordan & Alaghband 2003). No processamento paralelo, o tempo de CPU quase sempre aumenta, no entanto pode-se reduzir o tempo total de processamento. A programao paralela utiliza multiprocessadores com arquiteturas de comunicao entre os processadores baseados em memria compartilhada (shared memory) e memria distribuda (distributed memory). Os programas adaptados a arquitetura de comunicao entre os processadores baseado em memria compartilhada no podem ser executados em uma mquina com memria distribuda, pois no utilizam os mecanismos de troca de mensagens, impossibilitando assim a portabilidade. No caso inverso, memria distribuda para memria compartilhada, seria possvel a portabilidade, porm o mecanismo de troca de mensagem seria ignorado, pois todos os dados j poderiam ser acessados pelos processadores atravs da memria compartilhada, isto apenas traria um uxo desnecessrio de comunicao. Os processos so distribudos e executados em vrios processadores simultaneamente, entretanto no existe uma forma eciente de acompanhar passo-a-passo a alterao das variveis durante a execuo do processamento das diversas tarefas paralelas. 25

3.2

Message Passing Interface

O MPI uma biblioteca com funes para troca de mensagens, responsvel pela comunicao e sincronizao de processos. Dessa forma, os processos de um programa paralelo podem ser escritos em uma linguagem de programao seqencial, tal como C ou Fortran. O principal objetivo do MPI disponibilizar uma interface que seja utilizada no desenvolvimento de programas que utilizem troca de mensagens. Alm de garantir a portabilidade dos programas paralelos, essa interface deve ser implementada ecientemente nos diversos tipos de mquinas paralelas existentes. O MPI (Message-Passing Interface) uma padronizao do paradigma da troca de mensagens, que foi sugerida por um grupo de trabalho formado por representantes da indstria, rgos governamentais e universidades. O trabalho se iniciou em 1992 e em novembro de 1993 o primeiro draft do padro MPI-1 foi apresentado. Em 1995 foi disponibilizado o MPI-1.1 com correes e algumas extenses ao padro MPI-1 com aproximadamente 150 funes. Atualmente o padro o MPI-2 que inclui uma srie de funcionalidades novas como suporte a processos dinmicos e aproximadamente 250 funes (Igncio & Filho 2002). As vantagens principais de estabelecer um padro para troca de mensagens entre processos so a portabilidade e a facilidade de utilizao. O padro tambm permite que os fabricantes de hardware e software trabalhem sobre uma base clara possibilitando que as implementaes do padro nas diversas plataformas sejam mais ecientes para o uso em mquinas paralelas de memria compartilhada ou distribuda. Mais detalhes sobre a sintaxe das chamadas de rotina e demais detalhes da biblioteca podem ser encontradas em (Pacheco 1996) (http://www.mpi-forum.org 2005) (Gropp et al. 1994)

3.3

Paralelismo nos Algoritmos Genticos

Os algoritmos genticos so habitualmente considerados algoritmos implicitamente paralelos, sendo esta caracterstica um dos seus pontos fortes. Atualmente existe uma procura cada vez maior por algoritmos que, alm de resolver os problemas de forma aceitvel, tambm os resolvam de um modo que seja paralelizvel, pois cada vez mais a tendncia est voltada para a utilizao de sistemas paralelos. Os algoritmos genticos possuem uma estrutura com26

putacional altamente paralelizvel. Assim, se analisarmos a estrutura de algoritmo gentico chegamos s seguintes concluses: Cada indivduo da populao tem uma qualidade Q, que pode ser avaliada independentemente de qualquer outro fator Cada operador e operao gentica independente pelo que podem ser aplicado em qualquer ordem, seqencial ou no, a qualquer elemento da populao. Observando mais uma vez a natureza, chegamos concluso que nela todos os processos so paralelos, ou seja, os processos seqenciais que no so naturais. Basta imaginarmos que neste momento, em qualquer parte do mundo, existem crianas nascendo, lutas pela sobrevivncia, pessoas morrendo, e muitas outras atividades, sem que exista um ponto comum de controle. Podemos interferir diretamente ou no no que se passa, mas no existe ningum com um conhecimento global do estado atual do mundo e acima de tudo ningum consegue interferir ou controlar tudo o que acontece.

3.3.1 Modelos de Algoritmos Genticos Paralelos


Uma das reas de maior investigao nos algoritmos genticos tem sido sobre o modo como podem ser efetivamente paralelizados, tendo surgido desse esforo um grande conjunto de possveis implementaes. O que todas estas diferentes implementaes tm demonstrado que o que importante no apenas o algoritmo em si, mas sim o conjunto do algoritmo, os problemas para que vai ser utilizado, a sua parametrizao e o equipamento que vai servir de base execuo do algoritmo gentico. Embora estes j fossem fatores essenciais nos algoritmos seqenciais, o que se veio a notar que surgiram muitos algoritmos que eram bons em determinadas situaes, piores em outras e com pequenas variaes de parmetros e/ou nos problemas tudo se poderia inverter. Foram ainda acrescentados mais fatores a um problema que j no era simples. Assim, poderamos ter um excelente algoritmo para executar num conjunto de transputers, que se fosse executado numa rede de workstations j no seria to bom, ou vice-versa, mas dependendo tambm da parametrizao e do problema. A idia bsica atrs da maioria dos programas paralelos dividir uma tarefa em partes e solucionar as partes simultaneamente usando mltiplos processadores. Esta abordagem de 27

dividir-e-conquistar pode ser aplicada em algoritmos genticos de muitos modos diferentes, e a literatura contm muitos exemplos de implementaes paralelas (Adamidis 1994) (Gordon & Whitley 1993) (Goodman, Lin & Punch 1994). Alguns mtodos de paralelizao usam uma nica populao, enquanto outros dividem a populao em vrias subpopulaes relativamente isoladas. Alguns mtodos podem explorar arquitetura de computadores maciamente paralelos, enquanto outros so melhores adaptados para multicomputadores com menos e elementos de processamento, mas mais potentes (Cant-Paz 1997). De acordo com (Cant-Paz & Goldberg 1999) (Adamidis 1994) (Gordon & Whitley 1993) (Goodman et al. 1994), existem trs tipos (modelos) principais de Algoritmos Genticos Paralelos: Granularidade Grossa : Neste modelo vrias subpopulaes isoladas evoluem em paralelo e periodicamente trocam informaes atravs da migrao dos seus melhores indivduos para subpopulaes vizinhas. Os indivduos competem somente na respectiva subpopulao.
Subpop1

Subpop2

Subpop6

Subpop3

Subpop5

Subpop4

F IGURA 3.4: Esquema de um algoritmo gentico paralelo de granularidade grossa. Cada processo um simples algoritmo gentico seqncial, e h (no frequentemente) comunicao entre as subpopulaes

28

Granularidade Fina : Tambm conhecido como modelo de vizinhana (neighborhood model), onde uma nica populao evolui e cada indivduo colocado em uma clula de uma grade planar. Os processos de seleo e cruzamento so aplicados somente entre indivduos vizinhos na grade (de acordo com a topologia denida).

F IGURA 3.5: esquema de um algoritmo gentico paralelo de granularidade na. Esta classe de algoritmo genticos tem uma populao distribuda espacialmente. Paralelizao Global : So essencialmente verses paralelas de algoritmos genticos seqnciais. Eles operam sobre uma populao global e so normalmente sncronos. Este modelo adequado arquiteturas paralelas com memria compartilhada. Nesta classe de algoritmos genticos paralelos a populao permanece global, e os operadores genticos so aplicados a toda populao, em paralelo. Um processador principal (mestre) mantm a populao do algoritmo gentico e envia partes desta populao aos processadores secundrios (escravos) para reproduo, mutao ou avaliao. Para ser eciente, este mtodo geralmente requer uma rede altamente conectada devido ao grande volume de comunicao necessria transferncia dos indivduos. Este processo tambm exige que o processador mestre gerencie toda a populao. Para grandes populaes, algoritmos genticos como este podem necessitar de uma grande quantidade de memria, considerada invivel (presumindo-se que toda populao ser armazenada na memria). A caracterpistica principal desta classe de algoritmo gentico que ela se comporta como um algoritmo gentico seqencial.

29

Master Seleao Aptidao

Slave 1 Cruzamento Mutaao Avaliaao

Slave 2 Cruzamento Mutaao Avaliaao

...

Slave N Cruzamento Mutaao Avaliaao

F IGURA 3.6: Esquema de um algoritmo gentico paralelo global (master-slave). O processo mestre armazena a populao, executa operaes de um algoritmo gentico, e distribui indivduos para os processos escravos. Os processos escravos somente avaliam a aptido dos indivduos. 3.3.1.1 Modelo Ilha

A observao de ambientes naturais isolados, como ilhas, tm demonstrado que algumas das espcies que surgem so especialmente adaptadas s particularidades dos seus ambientes, em contraste com populaes equivalentes mas em ambientes mais abertos, em que todos os membros tm acesso a todos os outros membros. Estas observaes levaram ao surgimento de novas arquiteturas e operadores que melhoravam os algoritmos genticos paralelos para alm do ganho puro de performance, que em conjunto com as consideraes relativas possibilidade de vrias populaes concorrentes poderem gerar uma melhor soluo do que a conseguida com apenas uma populao, levaram construo de um modelo que aproveita ambas as vantagens. Aproveita os ganhos de abilidade na obteno de solues com a melhor qualidade das solues. Este modelo o chamado Modelo Ilha, devido fonte inspiradora do conceito. Assim, o algoritmo seqencial ca dividido numa srie de ilhas (populaes), que comunicam entre si as melhores solues. No resto do tempo, esto trabalhando para melhorar as solues internas da ilha. Este modelo, entretanto, mantm a estrutura seqencial do algoritmo gentico, apenas sendo adicionados os operadores para fazer a migrao dos elementos entre as difrentes ilhas. No modelo ilha existem diversos processos trabalhando sobre subpopulaes que evoluem em paralelo. As populaes iniciais so geradas de modo idntico sua verso seqencial. 30

O modelo de paralelizao ilha introduz um operador de migrao, alm das trs etapas bsicas (seleo, cruzamento e mutao). O operador migrao usado para enviar indivduos de uma subpopulao para outra. Devido aos elevados custos de comunicao neste tipo de sistema, a freqncia de migrao no deve ser muito alta. desta forma, no modelo ilha o operador de migrao executado apenas quando existir a necessidade de uma renovao de uma subpopulao (fase de diversicao de uma populao). O critrio de terminao local dos processos baseado em uma condio global que envolve todos os processos que compem o algoritmo gentico paralelo; impedindo com isso, que um processador que ocioso enquanto os demais permaneam executando. Os processos executados por cada processador e a comunicao entre eles pode ser melhor entendido atravs da ilustrao da gura 3.7, onde cada par de processos m i e qi compartilham um mesmo processador, que comutado entre os dois para a execuo.
Processador 1
p1

Processador 2
p2

m1

m2

pi : processo que recebe uma populaao e executa um AG

similar ao sequencial

m3

PSfrag replacements

mi : processo que executa a migraao p3

Processador 3

F IGURA 3.7: Comunicao entre processos no modelo ilha para 3 processadores Inicialmente cada processo mi recebe uma populao e executa um algoritmo gentico similar ao algoritmo gentico seqencial. O processo qi tem a funo de realizar a migrao e controlar a terminao do algoritmo gentico paralelo. A estratgia adotada no algoritmo consiste em associar a cada processo m i (mdulo 31

principal), que compe o algoritmo gentico paralelo do modelo ilha, um processo q i , tal que 1 < i < n (onde n o nmero de processadores), se comunicam apenas por troca de mensagens e possuem a caracterstica descrita abaixo. O processo qi ativado pelo processo mi correspondente nos seguintes casos: 1. Quando, por um perodo de w iteraes consecutivas, no existir renovao num percentual mnimo exigido da populao, disparando neste caso o processo de migrao de indivduos, onde w um parmetro de entrada. 2. Quando o processo mi est habilitado a terminar, dando incio ao processo de terminao do algoritmo gentico. No primeiro caso, conforme gura 3.8, qi envia pedidos a todos os outros processos do tipo q para que os mesmos lhe enviem suas melhores solues correspondentes. Baseandose nas solues recebidas em resposta ao seu pedido, qi repassa as solues recebidas ao mi associado, efetuando-se deste modo a migrao de indivduos.

m2
Pedido de renovaao Melhor individuo

p2

Envio do melhor individuo Pedido de renovaao

p1
Recebimento dos melhores individuos de p2 e p3

m1

Envio do melhor individuo Pedido de renovaao


PSfrag replacements

m3
Melhor individuo

p3

F IGURA 3.8: Migraao de indivduos pelo processo m1 no caso de 3 processadores No segundo caso, quando o processo mi est habilitado a terminar, ou seja, depois de realizado um nmero k de diversicaes (de acordo com o critrio de parada do modelo seqencial), este ativa o processo qi que mantm um vetor de n elementos representando o estado do sistema (vetor de estado). Cada posio i do vetor de estado pode assumir o valor verdadeiro ou falso indicando que o processo mi est habilitado a terminar ou no. Ao ser ativado, o processo qi atualiza a posio i do vetor de estado com verdadeiro e inicia um broadcast a m de que os demais vetores representem o estado atual do sistema. Um processo mi , ainda que habilitado a terminar, continuar sua execuo at que todos os outros 32

processos tambm possam terminar. Isto impedir que um processador que ocioso enquanto os demais permaneam ativos, e ainda possibilita a melhora de sua soluo tima enquanto o sistema no termina. Um processo mi , a cada gerao do algoritmo gentico, informa a qi a sua melhor soluo gerada at o momento. Caso a nalizao seja detectada, isto , todos os elementos do vetor de estado sejam verdadeiros, mi informado a m de que possa terminar sua execuo. A estratgia descrita acima permite que o processo responsvel pela execuo do processo gentico no se ocupe com a comunicao com os demais processos, necessria para controle da migrao de indivduos, e com a nalizao do algoritmo gentico paralelo, simplicando o seu projeto e implementao. Muitos pesquisadores em Algoritmos Genticos acreditam que um Algoritmo Gentico Paralelo, com suas mltiplas subpopulaes distribudas e regras locais e iteraes, um modelo mais realstico para a evoluo de espcies na natureza que uma nica grande populao (Cant-Paz 1998) (Tanomaru 1995) (Cant-Paz 1997) (Cant-Paz 1995) (Adamidis 1994) (Levine 1994) (Schwehm 1996). Em (Sambatti, de Campos Velho, Leonardo D. Chiwiacowsky & Preto 2005) apresentado um algoritmo gentico paralelo chamado Algoritmo Gentico Paralelo Epidmico que adota a estrutura de subpopulaes (granularidade grossa). Neste trabalho foram implementadas algumas estratgias de migrao com base na chamada Estratgia Epidmica (Medeiros 2003), que por sua vez utiliza um operador gentico chamado Operador Gentico Epidmico. Esta estratgia ativa este operador quando um nmero especco de geraes alcanada sem melhoria no(s) melhor(es) indivduo(s). Ento todos os indivduos so afetados por uma a peste ou praga, e somente aqueles que tem a melhor aptido (isto , 2% com a melhor aptido na populao) sobrevivem. Os indivduos restantes morrem e so substitudos por novos indivduos com nova variabilidade, tal como imigrantes chegando, a m de evoluir a populao. Dois parmetros precisam ser escolhidos: um determina quando a estratgia ser ativada, isto , o nmero de geraes sem melhoria da melhor aptido individual, enquanto o outro parmetro determina a quantidade de indivduos que sobrevivero a peste ou praga. No Algoritmo Gentico Paralelo Epidmico as estratgias de migrao implementadas foram a island model e stepping-stone model 33

Island model : indivduos de melhor aptido podem migrar para todos os outros processos. Island-1 : denota o envio da melhor soluo de cada processo para um processo mestre que seleciona e difunde o melhor dos melhores para todos os outros processos Island-2 : denota mltiplas difuses no qual cada processo envia sua melhor soluo para todos os outros processos. Stepping-stone model : um anel lgico de processadores denido e a comunicao ocorre em etapas enquanto cada processador envia seu melhor indivduo para o(s) vizinho(s). Aps um nmero nito de etapas, todos os processadores tem a melhor soluo global. Stepping-stone1 (SS1): denota o envio da melhor soluo de cada processo para o vizinho da esquerda e da direita Stepping-stone2 (SS2): denota o envio da melhor soluo de cada processo para um vizinho.

F IGURA 3.9: Modelos de Granularidade Grossa Tecnicamente existem trs importantes caractersticas em um algoritmo gentico paralelo de granularidade grossa : a topologia que dene as conexes entre as subpopulaes, a taxa de migrao que controla quantos indivduos migram e o intervalo de migrao que indica com que freqncia a migrao ocorre (da Silva & Simoni 2001).

34

Captulo 4 Proposta de Ferramenta no Modelo de Ilhas


4.1 Introduo

Este captulo trata da implemetao de trs prottipos de software que permitem a soluo de problemas de otimizao via Algoritmos Genticos em ambiente paralelo. Um deles foi implementado por um algoritmo hibrido que utiliza redes neurais juntamente com os algoritmos genticos. Os softwares foram desenvolvidos na linguagem Fortran com uma nica rotina em C. Para permitir a troca de mensagens entre processos foi utilizada a biblioteca MPI. Durante a fase inicial de implementao do Algoritmo Gentico, de agora em diante chamado AGP, procurou-se chegar a uma implementao que fosse a mais prtica e simples possvel atendendo as caractersticas e restries do do algoritmo.

4.2

Trabalhos Correlatos

(Cant-Paz 1998) Este trabalho apresenta um estudo de algoritmos genticos paralelos com mltiplas populaes. Este estudo torna explcita a relao entre a probabilidade de obter uma soluo desejada com o tamanho da ilha, a taxa de migrao e o grau de conectividade do grafo. 35

(Sambatti et al. 2005) Um algoritmo gentico paralelo empregado para resolver problemas inversos. O PGA codicado considerando os modelos island model e stepping-stone model. O cdigo paralelo gerado usando chamadas com MPI. (Zanchettin & Ludermir 2005) Este trabalho apresenta uma tcnica que integra as heursticas tabu search, simulated annealing, algoritmos genticos e backpropagation. Esta abordagem obteve promissores resultados na otimizao simultnea da arquitetura e dos pesos de uma rede neural articial. (Loureiro, Margoto, Varejo & Queiroga 2005) Este trabalho prope uma automatizao do processo de busca de parmetros para tcnicas de classicao. Este processo automtico foi utilizado em uma aplicao particular no domnio de fraudes. (Brasileiro, de Oliveira Galvo & Brasileiro 2005) Este trabalho prope um algoritmo gentico para solucionar o problema do controle em tempo real de redes de escoamento complexas. Os resultados mostram que o AG encontra solues mais econmicas que os procedimentos ad hoc de operao da rede, com uma reduo mdia considervel. (Basgalupp, Machado, de Souza & da Silva 2005) O trabalho trata da utilizao de algoritmos genticos para melhorar a denio da arquitetura de uma rede neural MLP numa aplicao prtica de anlise de sries temporais. (Brasil, de Azevedo & Barreto 1998) Este trabalho prope a utilizao de um algoritmo gentico para determinar o nmero de neurnios da camada intermediria de uma rede neural. (Pacheco, Vellasco, Lopes & Passos 1998) Este trabalho faz um estudo da representao do cromossoma para otimizar as regras de associao em base de dados. (Michalewicz, Logan & Swaminathan 1998) Este trabalho faz um estudo sobre operadores genticos que operem sobre cromossomos com representao real. (Cant-Paz & Goldberg 1999) Este trabalho produz um guia para a escolha racional dos parmetros de um algoritmo gentico paralelo com mltiplas populaes.

4.3

Ambiente Experimental

Nesta seo apresentamos alguns aspectos relacionados ao ambiente experimental, importantes para nossos experimentos empricos. Os programas tradicionais para o clculo numrico tm sido escritos em Fortran ou C 36

com todas as vantagens e limitaes destas linguagens. A opo pela linguagem Fortran se deve ao fato desta manipular vetores e matrizes com grande praticidade. O Fortran (Formula Translation) uma linguagem de alto nvel, desenvolvida entre 1954 e 1958 por John Backus e colaboradores. Como o prrpio nome diz, ele permite uma traduo quase direta de frmulas, por meio de uma simbologia de variveis e operadores algbricos, sendo assim por excelncia uma linguagem voltada para problemas que possam ser formulados matematicamente, em particular nos campos da fsica, da engenharia, da estatstica e da prpria matemtica. Apesar de permitir a elaborao de cdigos extremamente sosticados para a resoluo de problemas de grande complexidade, o amplo sucesso do Fortran nos meios acadmicos e cientcos deve-se ao uso de uma terminologia simples OPEN, READ, STOP - aliada codicao de cima para baixo (top-down approach), linha por linha, aproximando-se bastante do procedimento manual para a resoluo desses problemas. Assim, a idia expressar de maneira simples o problema a ser resolvido. Fortran em sua verso mais recente recebeu novas bibliotecas e funes que melhoraram ainda mais o seu desempenho no tratamento de vetores e matrizes. Existem compiladores do Fortran para Linux e Windows, sendo que o utilizado nesta tese foi inicialmente o ifort 7.1 da INTEL para Linux, mas este apresentou problemas em sua rotina de gerao de nmeros aleatrios, pois no conseguia inicializar a semente para que a cada nova gerao do algoritmo gentico uma populao de indivduos fosse diferente da gerao anterior. Este problema foi constatado na fase inicial quando estava se implementando um algoritmo gentico seqncial e este estava sendo testado no cluster Infoserver-Itautec Mercury localizado no NACAD-COPPE/UFRJ com as seguintes caractersticas: Quantidade de ns 16 ns dual processados Intel Pentium III de 1GHz Memria por n 512MB RAM e cache de 256KB por CPU Memria total 8.0 Gbytes (distribuda) Rede dedicada com tecnologia Fast-Ethernet (100 MBits/s) Sistema operacional Linux distribuio RedHat 7.3 Compiladores Fortran-77, Fortran-90 e C/C++ TABELA 4.1: Cluster Infoserver Mercury - caracterstica geral O Cluster Infoserver Mercury possui alm dos 16 ns, denominados node1 a node16, 1 estao de administrao, denominada adm e 1 estao de acesso, denominada acc1. 37

Cada um dos ns, incluindo as estaes adm e acc1, uma estao de trabalho completa, com duas CPUs, memria RAM, disco local e suas prprias interfaces de rede. Os 16 ns so interligados por uma rede fast ethernet, dedicado exclusivamente para a execuo de programas paralelos. Na tabela 4.2 so mostradas as principais caractersticas de cada um dos ns ... Processor type Clock frequency Cache size RAM memory Disk storage node1 a node16 adm Pentium III Pentium III 1 Ghz 1 Ghz 256 KB 256 KB 512 MB 512 MB 18.0 GB 160 GB acc1 Xeon 1 Ghz 256 KB 512 MB 18.0 GB

TABELA 4.2: Cluster Infoserver Mercury - caracterstica por n Foi constatado que o problema estava no compilador, pois o algoritmo foi executado tambm no software Visual Studio (Fortran da Compaq) e este conseguia inicializar a semente a cada nova gerao. Este problema foi solucionado com uma nova verso do compilador da INTEL, o ifort 8.1 que foi baixado e testado em um PC e conseguiu inicializar a semente. O NACAD adquiriu um SGI ALTIX 350 da Silicon Graphic que utiliza este compilador e deste modo as implementaes foram executadas nesta mquina, sem mais problemas com a gerao de nmeros aleatrios. As caractersticas do ALTIX so : Quantidade de CPUs 14 CPUs Intel Itanium2: palavra de 64 bits Memria 28 Gbytes RAM (compartilhada - NUMA) Armazenamento em disco 360 Gbytes Sistema operacional RedHat Enterprise Linux + SGI ProPack Compiladores Intel e GNU (Fortran-90 e C/C++) com suporte OpenMP e MPI TABELA 4.3: SGI ALTIX 350 - caracterstica geral O SGI Altix-350 um sistema de memria compartilhada (tecnologia NUMA) e como o sistema operacional nativo de 64-bits (RedHat Enterprise Linux + SGI ProPack) isso implica na necessidade de recompilar cdigos nativos de 32-bits. Possui um Pico Terico de Performance de 6 GFlop/s por CPU. 38

4.4

Algoritmo Baseado no Modelo de Ilhas

Partindo da abordagem de Granularidade Grossa para Algoritmos Genticos Paralelos, foram implementados dois algoritmos em que cada um utiliza um dos processos de migrao denominados SS1 e SS2. Foi escolhida esta abordagem em virtude da estratgia de migrao island model ter um elevado custo computacional devido a macia comunicao entre as ilhas. Na estratgia SS1 e SS2 ocorre comunicao somente entre duas ou no mximo trs ilhas quando ocorrer uma migrao, com isto podemos obter um rendimento melhor no que diz respeito ao tempo de comunicao gasto entre as ilhas. Duas ou trs ilhas que estejam se comunicando aps terem terminado esta fase aguardam somente comunicao com no mximo duas ilhas. Isto j favorece um baixo custo de comunicao e um sincronismo bem melhor. As estratgias SS1 e SS2 foram implementadas com a utilizao do vetor de estados, sendo que foi feita a opo para que uma populao, ao nal de sua evoluo, pare e aguarde at que as outras populaes terminem suas evolues, o que no ocorre conforme visto na seo 3.3.1.1. Esta opo foi escolhida para se poder avaliar somente a evoluo das populaes durante uma quantidade de geraes determinada (critrio de parada). As estratgias SS1 e SS2 foram implementadas com as caractersticas de um algoritmo gentico seqncial simples, onde as nicas excees seriam os operadores de cruzamento e mutao para valores reais e o operador de migrao que natural na abordagem de algoritmos genticos paralelos de granularidade grossa. Com isso pode-se avaliar a capacidade do operador de migrao aumentar a diversidade gentica nas populaes que estagnaram. Para se conseguir resultados satisfatrios, deve haver diversidade gentica suciente no mbito da populao, durante as geraes, de tal modo a permitir que outras regies, alm da denida pelo indivduo de melhor desempenho (aptido), sejam representadas na populao. O aumento da diversidade gentica, diminui a possibilidade do algoritmo gentico car preso numa regio de timo local. Se no houver nenhum mecanismo que restaure essa diversidade, a convergncia pode car comprometida (Soares 1997) e o operador de migrao um dos mecanismo que pode restaurar essa diversidade. Um outro mecanismo seria a variao dinmica das taxas de cruzamento e mutao, no decorrer das geraes, o que no foi adotado nesta dissertao. 39

A possibilidade de se avaliar populaes que melhoraram suas aptides aps j terem alcanado a quantidade de geraes determinada, ser objeto de pesquisas em trabalhos futuros. Na gura 4.1 exibido o uxograma do modelo de ilhas para uma ilha.
INICIO

Le Arquivo de Parametros

Aloca Variaveis

Le Base de Dados

Gera Populaao Inicial

Avalia > Funao Objetivo

Armazena o Melhor

Gera Nova Populaao

Avalia > Funao Objetivo

S Populaao Estagnou ? Ativa Migraao

N Armazena o Melhor

Criterio de Parada Alcanado ?

S Seleciona o Melhor

FIM

F IGURA 4.1: Fluxograma do modelo de ilhas para otimizao de uma RNA

40

O algoritmo inicia com a leitura do arquivo que contm os parmetros necessrios para a congurao do algoritmo gentico, contendo o nome da base de dados e a quantidade de registros e atributos, alm de outros parmetros listados a seguir: tamanho da populao tamanho do cromossomo taxa de crossover taxa de mutao quantidade de geraes quantidade de indivduos que vo migrar quantidade de indivduos que indicam que a gerao estagnou quantidade de geraes que indicam que a populao estagnou nome da base de dados quantidade de registros quantidade de atributos

41

Com a leitura deste arquivo atravs da rotina readle() so carregadas as variveis da tabela 4.4 Varivel Parmetro popsize tamanho da populao cromosize tamanho do cromossoma generationsize quantidade de geraes crossoverate taxa de crossover mutationrate taxa de mutao migrationrate quantidade de indivduos que iro migrar tx_ind quantidade de indivduos estagnados que indicam que a populao na gerao estagnou tx_ger quantidade de geraes estagnadas que disparam o processo de migrao basename nome da base de dados m quantidade de registros n quantidade de atributos TABELA 4.4: Variveis e parmetros

Aps estas variveis serem carregadas ocorre a chamada da rotina alocar() que ir alocar dinamicamente as variveis necessrias para armazenar a populao e a base de dados. Esta alocao dinmica permite uma maior exibilidade do algoritmo para qualquer base de dados. Varivel popinicial(popsize,cromosize) newpop(popsize,cromosize) aptidaoatual(popsize) novaaptida(popsize) mejor(popsize) dados(m,n) Caracterstica armazena a populao inicial armazena a populao gerada a cada nova gerao armazena o ness da gerao i armazena o ness da gerao i+1 armazena o melhor tness entre todas as populaes em cada gerao armazena a base de dados

TABELA 4.5: Variveis alocadas dinamicamente A partir do momento em que uma populao gerada e todos os seus membros so avaliados, o algoritmo gentico inicia a emulao do ciclo de vida. A cada passo da iterao 42

descendentes so gerados. Os pais so combinados para reproduzirem e gerarem descendentes. Com esta idia temos que antes da primeira iterao existe uma populao inicial que gerada aleatoriamente. Quando se iniciar a primeira iterao uma nova populao ser gerada a partir da populao inicial. Ao m da primeira iterao e incio da prxima, esta nova populao ir gerar uma outra nova populao. Com isso temos que ao longo de todo processo de evoluo (da primeira iterao at a ltima) sero consideradas somente duas populaes: a nova, da iterao atual, e a antiga, da iterao anterior. Um indivduo (cromossoma) da populao inicial, nova ou anterior possui o tamanho n + 3, onde n a quantidade de atributos da base de dados e o valor 3 indica 3 parmetros que tambm so utilizados pela rede neural. Estes parmetros so: taxa de aprendizado, momentum e quantidade de neurnios na camada intermediria. A implementao adota somente uma camada intermediria para a rede neural como est denido no algoritmo da rede (Costa 1999). As n posies restantes podem assumir os valores um ou zero dependendo se o atributo da base de dados for utilizado ou no. Com isto teremos um vetor de tamanho n + 3 com as trs primeiras posies como valor real e as n posies restantes com valores tambm reais, porm manipuladas como valores binrios. Com a populao inicial gerada calcula-se a aptido da cada inidivduo utilizando-se a rotina funcobjetivo() que neste caso o erro RMS do treinamento da rede neural correspondente por uma quantidade especca de pocas. A funo objetivo uma chamada a rotina externa treinarede() que a rede neural utilizada em (Costa 1999). O cdigo fonte original da rede neural um programa feito em C, mas quando a rede neural foi utilizada no algoritmo gentico paralelo, este programa foi transformada em uma subrotina (function) que foi referenciada como uma rotina externa ao Fortran. Antes havia se pensado em reescrever todo o programa da rede neural em Fortran, mas pesquisas feitas na bibliograa e manuais sobre Fortran indicaram o uso de rotinas externas no Fortran em linguagem C ou C++. A funo objetivo utilizada denida como :
funcobjetivo(entradas,sadas,q_ entradas,q_ sadas,q_ reg,q_ indiv, indiv,q_ epocas,tness)

Na tabela 4.6 so exibidos e descritos os parmetros da funo objetivo.

43

Parmetro Caracterstica entradas matriz de entradas sadas matriz de entradas q_ entradas quantidade de entradas q_ sadas quantidade de sadas q_ reg quantidade de registros q_ indiv quantidade de indivduos a serem treinados indiv matriz de indivduos q_ pocas quantidade de pocas tness vetor de erros TABELA 4.6: Parmetros da funo objetivo A aptido de um indivduo simplesmente o erro RMS resultado do treinamento de uma rede por x pocas, com isso temos que uma populao de tamanho p indica p possveis conguraes para a rede neural a ser otimizada. Obtem-se o menor (ou maior) valor de aptido e o correspondente indivduo com o uso de duas funes do Fortran Funo MAXVAL(aptidao) MINVAL(aptidao) MAXLOC(aptidao) MINLOC(aptidao) Caracterstica retorna o maior valor no vetor aptidao retorna o menor valor no vetor aptidao retorna a posio do maior valor no vetor aptidao retorna a posio do menor valor no vetor aptidao

TABELA 4.7: Funes do Fortran Ainda nesta etapa gerado um arquivo procn_ger.txt que armazena a maior (ou menor) aptido e o correspondente indivduo na gerao. Um indivduo de uma populao possui outras caractersticas importantes, denidas por parmetros limitados de acordo com o especicado abaixo: O parmetro que fornece a quantidade de neurnios na camada intermediria sempre maior ou igual a dois e menor ou igual a trs vezes a quantidade de atributos da base de dados que treina a rede neural O momentum tem que pertencer ao intervalo [0.1,0.9] A taxa de aprendizado tem que pertencer ao intervalo [109 , 0.1] 44

Todos os indivduos da populao e as respectivas aptides so armazenados e selecionado o melhor indivduo. Os procedimentos descritos at aqui so iguais em todas as ilhas, ou seja, cada ilha tem sua prpia populao inicial (que diferente das outras), calcula a aptido, armazena a melhor aptido e o indivduo a qual est associado em um arquivo respectivo a sua ilha. Quando o uxo do programa retorna a rotina principal todos as ilhas enviam seu melhor indivduo e a respectiva aptido para um processo que seleciona o melhor entre todos, denominado processo mestre. Esta operao efetuada atravs de uma rotina especca do MPI: mpi_reduce() que faz com que todos os processos executem uma operao aritmtica, minval(valor mnimo) onde o resultado parcial de cada processo combinado e retornado para um processo mestre. O processo mestre ir armazenar o melhor par indivduo-aptido em um arquivo chamado mastern_ger.txt. Neste ponto inicia-se a contagem das geraes. Assim uma gerao iniciada e uma nova populao gerada em cada ilha com a rotina novapop() e esta por sua vez ativa trs outras rotinas: selecao(), crossover() e mutacao(). A populao anterior utilizada para gerar a nova populao como j dito acima. Para esta fase usa-se como processo de seleo o mtodo da roleta, j descrito na seo 2.5.1. Este mtodo seleciona os melhores pais de acordo com sua aptido e aplica sobre estes os operadores de cruzamento e mutao, atravs das rotinas crossover() e mutacao(). Os indivduos da populao so escolhidos dois a dois para que possa ser aplicada a operao de cruzamento e depois a mutao em cada um dos lhos gerados (nova populao). Tanto na fase de cruzamento (blend) e mutao (creep) quando estes so aplicados sobre o par de pais escolhidos e lhos gerados, as restries j descritas que um indivduo deve respeitar so testadas. Isto ocorre a cada nova populaao gerada pelo algoritmo. Aps a vericao desses requisitos calculado a aptido de cada indivduo e estes so armazenados (indivduo-aptido) e comparados atravs da rotina compara() com a aptido da populao anterior. Esta comparao serve para saber se a populao evoluiu ou no. A implementao considera que um indivduo estagnou de uma gerao para outra quando seu valor de aptido permanece o mesmo. Um indivduo no evolui quando esta estagnao 45

consecutiva ao longo de p geraes. O valor p calculado sobre o total de geraes estipuladas pelo algoritmo. Este valor o parmetro tx_ger Uma populao est estagnada de uma gerao para outra quando um percentual representativo desta, isto , y indivduos esto estagnados. Este percentual representativo o parmetro txi nd. Assim temos que uma populao no evoluiu quando a quantidade p de geraes ca estagnada. Na comparao caso a quantidade de indivduos estagnados seja igual ao parmetro tx_ind um contador incrementado e este depois comparado ao parmetro tx_ger e se for igual disparado o procedimento de migrao (SS1ou SS2) atravs da rotina migracao(). Quando isto acontece as ilhas ligadas, pela topologia de anel, ilha que no evoluiu, interrompem suas evolues e lhe enviam uma quantidade de seus melhores indivduos (taxa de migrao). Enquanto a migrao est ocorrendo com um ou mais ilhas, as ilhas que no participam da migrao continuam seu processo de evoluo. Aps o trmino da migrao as ilhas envolvidas neste procedimento retornam a sua evoluo. Novamente ocorre a chamada da rotina mpi _ reduce onde as melhores aptides so enviadas ao processo mestre e armazenada a melhor entre estas. O critrio de parada (quantidade mxima de geraes) vericado e caso seja satisfeito o melhor indivduo e correpondente aptido so armazenados. Ao nal de uma gerao cada ilha armazena os seus melhores indivduos e respectivos tness e quando a ltima ilha executa esta ao o algoritmo gentico ir armazenar o melhor indivduo e correpondente tness entre todas as ilhas naquela gerao. Como cada ilha pode evoluir de maneira distinta uma das outras (estagnou / no estagnou) utiliza-se a rotina de MPI

mpi_barrier() aps o critrio de parada ter sido alcanado, a m de sincronizar todos os processos para que o algoritmo termine sua execuo. 46

4.4.1 Testes
Para mostrar o funcionamento dos algoritmos SS1 e SS2 sero analisados problemas de minimizao conhecidos na literatura : Tanomaru, De Jong, etc... 4.4.1.1 Funo De Jong1
3

f 1 (x ) =
i=1

(xi )2 ; 5.12 xi 5.12

(4.1)

De Jong1

60 50 40 30 20 10 0 6 5 4 2 0 0 2 4 5 6 10

F IGURA 4.2: Funo De Jong1 Esta funo possui mnimo igual a 0 e ponto de mnimo em (0,0,0). uma funo em que o seu mnimo calculado com pouco esforo computacional. Na tabela 4.8 comparado os resultados obtidos em (de Mendona 2004) com as implementaes SS1 e SS2. O trabalho apresentado em (de Mendona 2004) o desenvolvimento de um sistema que permite a otimizao via algoritmos genticos em ambientes paralelos ou no, fornecendo tambm o suporte a criao, treinamento e uso de redes neurais. Este sistema se prope a servir como ferramenta para a otimizao de problemas prticos de engenharia, que pode envolver simulao atravs do uso de diversos aplicativos para o clculo das restries e da funo objetivo. Entre os testes realizados neste sistema est a otimizao das funes de De Jong os quais sero comparados aos realizados nesta dissertao. Em (de Mendona 2004) a otimizao das funes de De Jong foi obtida utilizando-se uma rede neural que calculava os valores timos e cujos parmetros eram otimizados por um 47

algoritmo gentico. Nesta dissertao foi usado somente o algoritmo gentico paralelo de granularidade grossa. Na otimizao das funes de De Jong, SS1 e SS2 utilizaram populaes maiores que em (de Mendona 2004). O tipo de seleo adotado foi o mtodo da roleta. Os operadores de cruzamento e mutao e o tamanho e tipo do cromossoma foram os mesmos que em (de Mendona 2004). Cada implementao foi executada 6 vezes para cada funo e a quantidade de ilhas adotadas foi 10. Caractersticas Gerao Mnimo Ponto de mnimo Qde. de geraes Tamanho da populao Tamanho do cromossomo Tipo de seleo Tipo de cruzamento Taxa de cruzamento Tipo de mutao Taxa de mutao Taxa de migrao Taxa de geraes Ilhas (de Mendona 2004) SS1 SS2

34 3.409e-09 (-4.8e-05 , 3.3e-05 , 4.0e-06) 200 45 3 torneio com dois indivduos blend 0.95 creep 0.20

2 0 (0,0,0) 200 1000 3 roleta blend 0.8 creep 0.20 0.2 0.2 10

2 0 (0,0,0) 200 1000 3 roleta blend 0.8 creep 0.20 0.2 0.2 10

TABELA 4.8: Resultados obtidos em (de Mendona, C. 2004) e SS1 e SS2 para a funo de De Jong 1 SS1 e SS2 conseguiram alcanar o mnimo j na 2a gerao e as variaes observadas no grau de diversidade em ambos mostrou que as populaes estavam bem prximas de um timo j na 8a gerao. A funo no apresentou grandes diculdades para o clculo do mnimo. No foram observadas estagnaes em nenhuma das populao para esta funo.

48

4.4.1.2

Funo De Jong2
2 2 2 f2 (x) = 100 (x2 1 x2 ) + (1 x1 ) ; 2.048 xi 2.048

(4.2)

De Jong2

2000 1500 1000 500 0 2 1 1 0 2 1 2 3 3 0 1 2

F IGURA 4.3: Funo De Jong2 Esta funo possui mnimo igual a 0 e ponto de mnimo em (1,1). Apesar de possuir valores simples tanto para o mnimo quanto para o ponto de mnimo esta tambem apresenta uma quantidade maior de mnimos locais. Neste aspecto os aperadores de cruzamento e mutao servem de auxilio para que se consiga escapar da convergncia prematura, isto , mnimos locais. Na tabela 4.9 so comparados os resultados obtidos em (de Mendona 2004) com as implementaes SS1 e SS2 A funo apresenta mais mnimos locais prximos do mnimo global que a funo anterior. Este fato fez com SS1 e SS2 tivessem quase o mesmo desempenho. Entre os valores encontrados, somente o calculado em SS2 foi melhor que em (de Mendona 2004). O fato de SS1 encontrar um valor ainda maior que em (de Mendona 2004) torna claro que a migrao um fator determinante para que se possa melhorar o resultado, pois em SS2 as estagnaes foram maiores, mas em virtude deste receber mais indivduos na migrao isto possibilitou a melhora na procura da soluo. Os operadores de cruzamento (blend) e mutao (creep) por tratarem valores reais, representaram um bom diferencial para que se pudesse evitar a convergncia prematura.

49

Caractersticas Gerao Mnimo Ponto de mnimo Qde. de geraes Tamanho da populao Tamanho do cromossomo Tipo de seleo Tipo de cruzamento Taxa de cruzamento Tipo de mutao Taxa de mutao Taxa de migrao Taxa de geraes Ilhas

(de Mendona 2004) 47 1.228e-06 x1 = 0.998895 x2 = 0.997783 1000 30 2 torneio com dois indivduos blend 0.95 creep 0.20

SS1 10 1.311e-06 x1 = 0.987835 x2 = 0.985565 200 1000 2 roleta blend 0.8 creep 0.20 0.2 0.2 10

SS2 10 1.179e-06 x1 = 0.999274 x2 = 0.999355 200 1000 2 roleta blend 0.8 creep 0.20 0.2 0.2 10

TABELA 4.9: Resultados obtidos em (de Mendona, C. 2004) e SS1 e SS2 para a funo de De Jong 2 4.4.1.3 Funo De Jong3
5

f 3 (x ) =
i=1

inteiro(xi ) ; 5.12 xi 5.12

(4.3)

De Jong3

2 0 2 4 6 2 0 1 0 1 2 2 3 4

F IGURA 4.4: Funo De Jong3 em 3 dimenses Esta funo como uma escada em 5 dimenses. H um patamar para os pontos (x i )i 1, 2, 3, 4, 5, xi [5.12, 5] onde o valor da funo atinge o mnimo -25. A gura 4.4 representa a funo para os pontos (xi )i 1, 2, 3. A funo apresenta plats que indicam a 50

possibilidade de convergncia prematura ou estagnao. Na tabela 4.10 so comparados os resultados obtidos em (de Mendona 2004) com as implementaes SS1 e SS2 Caractersticas Gerao Mnimo Ponto de mnimo (de Mendona 2004) 35 -25 x1 = -5.119999 x2 = -5.118405 x3 = -5.065301 x4 = -5.063194 x5 = -5.032257 50 75 5 torneio com dois indivduos blend 0.95 creep 0.20 SS1 21 -25 x1 = -5.120149 x2 = -5.105311 x3 = -5.051357 x4 = -5.065117 x5 = -5.029987 200 1000 5 roleta blend 0.8 creep 0.20 0.2 0.2 10 SS2 17 -25 x1 = -5.119588 x2 = -5.118405 x3 = -5.058691 x4 = -5.066411 x5 = -5.032857 200 1000 5 roleta blend 0.8 creep 0.20 0.2 0.2 10

Qde. de geraes Tamanho da populao Tamanho do cromossomo Tipo de seleo Tipo de cruzamento Taxa de cruzamento Tipo de mutao Taxa de mutao Taxa de migrao Taxa de geraes Ilhas

TABELA 4.10: Resultados obtidos em (de Mendona, C. 2004) e SS1 e SS2 para a funo de De Jong 3 A funo apresentou diculdades para o clculo do mnimo em virtude dos mnimos locais que se encontraram. SS1 e SS2 conseguiram o ponto de mnimo em geraes muito prximas, indicando que os operadores genticos foram mais representativos para a populao que o operador de migrao. Como SS2 recebe mais indivduos por migrao esperado que este consiga melhorar a qualidade de sua populao e conseqentemente caminhar com mais preciso e direo na busca pela soluo, isto , pode chegar mais rpido a uma boa soluo.

51

4.4.1.4

Tanomaru f (x) = cos(20x) |x | x 3 + ; 2 x 2 2 4


3

(4.4)

f(x)=cos(20x) |x|/2 + x /4

f(x)

4 2

1.5

0.5

0 x

0.5

1.5

F IGURA 4.5: Funo de Tanomaru Esta funo no-linear com 12 mximos locais e um mximo global no intervalo de interesse. Possui mximo global aproximado 1.737752 e ponto de mximo aproximado 1.88929. Por se tratar de uma funo multimodal, evidente que puros mtodos de gradiente no devem ser capazes de encontrar o timo global na maior parte das tentativas. Para esta funo, SS1 e SS2 utilizaram os mesmos operadores genticos e mtodo de seleo utilizados em (Tanomaru 1995). A populao inicialmente foi codicada como um vetor real e depois foi alterada para a codicao em binrio para que se avaliasse o desempenho de SS1 e SS2 com a mesma congurao em (Tanomaru 1995). Na tabela 4.11 so comparados os resultados obtidos em (Tanomaru 1995) com as implementaes SS1 e SS2 SS1 e SS2 tiveram desempenho melhor que o algoritmo gentico seqncial em (Tanomaru 1995). Conseguiram o ponto de mximo em geraes muito prximas e bem menores que em (Tanomaru 1995). Com a representao em binrio, os operadores genticos tiveram o mesmo desempenho e este fato mostrou que SS1 e SS2 tiveram um melhor desempenho em virtude do operador de migrao.

52

Caractersticas Gerao Mximo Ponto de mximo Qde. de geraes Tamanho da populao Tamanho do cromossomo Tipo de seleo Tipo de cruzamento Taxa de cruzamento Tipo de mutao Taxa de mutao Taxa de migrao Taxa de geraes Ilhas

(Tanomaru 1995) 48 1.88929 1.73752 50 50 16 roleta 1 ponto 0.8 aleatria 0.01

SS1 SS2 10 7 1.88966 1.88966 1.73765 1.73765 200 200 1000 1000 16 16 roleta roleta 1 ponto 1 ponto 0.8 0.8 aleatria aleatria 0.01 0.01 0.2 0.2 0.2 0.2 10 10

TABELA 4.11: Resultados obtidos em (Tanomaru 1995), SS1 e SS2 para a funo f (x) = 3 | cos(20x) |x +x 2 4

53

Captulo 5 Estudo de Caso


Neste captulo sero introduzidos conceitos sobre redes neurais e os problemas encontrados para o seu treinamento. Ser apresentado o caso estudado e sero analisados os resultados obtidos para a validao dos algoritmos implementados e tambm para vericar a eccia da combinao entre o algoritmo gentico paralelo de granularidade grossa (stepping-stone) e as redes neurais.

5.1

Redes Neurais Articiais

Existem diversas tcnicas que detectam padres em massas de dados, de forma automtica, adicionando inteligncia anlise dos dados e tornando-a independente do usurio. Uma das principais tcnicas utilizadas em aplicaes de minerao de dados conhecida como redes neurais articiais. As redes neurais so programas computacionais que simulam o trabalho do sistema nervoso, de forma a resolver os problemas de forma eciente e com muita tolerncia aos rudos da base de dados. Entretanto existem algumas limitaes relacionadas utilizao das redes neurais, principalmente no que se refere denio da sua congurao ideal e extrao das regras incorporadas no seu modelo (Haykin 2001). Uma alternativa para a resoluo destas limitaes a utilizao de algoritmos genticos (Omer 1995). 54

5.1.1 Introduo
A utilizao de redes de neurnios ou neurais no nova. Em 1943, McCulloch e Pitts j se interessavam pelo problema de representar funes lgicas, como o E ou o OU lgico, atravs de um conjunto elementar de unidades de deciso. Eles deniram desta forma o neurnio formal a partir dos resultados da neurologia e propuseram arquiteturas para a realizao de funes lgicas. Nessa poca, sabia-se implementar uma funo booleana com a ajuda de redes de neurnios, mas no se dispunha infelizmente de um algoritmo capaz de aprender uma funo booleana qualquer a partir de exemplos. Os modelos de redes neurais articiais, realizam a manipulao de informao atravs da iterao de um grande nmero de unidades bsicas de processamento, chamadas neurnios articiais. Os neurnios em uma rede neural esto organizados em camadas que se interligam, como apresentado na gura 5.1. As camadas inferiores so compostas de neurnios que se ligam com os neurnios da camada superior.

Nivel de Entrada

Nivel Escondido

Nivel de Saida

F IGURA 5.1: Arquitetura de uma RNA A rede neural apresentada na gura 5.1 possui trs camadas : a camada de entrada, a camada intermediria (ou camada escondida) e a camada de sada. Uma rede neural pode apresentar mais de uma camada intermediria e a quantidade de conexes entre os neurnios tambm pode variar. 55

A representao de um neurnio articial ou unidade de processamento j est apresentada na gura 5.2.

oi aj = f (neti)
PSfrag replacements

oi aj neti = (wji) * oi

neti wji

aj = f (neti) ui

oi

F IGURA 5.2: Neurnio articial os componentes da unidade j so: aj o valor de ativao da unidade j oi a sada da unidade i (que uma entrada da unidade j) oj o valor de sada da unidade j wji o peso da conexo entre a unidade j e a unidade i Cada unidade da rede recebe sinais das unidades anteriores. As unidades esto interligadas atravs de conexes que possuem um peso. O peso dene o efeito que a sada de uma unidade exerce sobre a entrada da unidade seguinte. A combinao das entradas, pela soma ponderada das mesmas, gera uma entrada total que serve de base para a modicao do estado interno da unidade, o seu valor de ativao. A sada de uma unidade tambm uma funo do seu valor de ativao, dada por: (5.1)

o j = f (a j )

Cada vez que uma unidade recebe entradas um novo valor de ativao gerado, assim como um novo valor de sada. 56

O grande diferencial do emprego de redes neurais articiais na soluo de problemas sua capacidade de aprender (Abdi 1994). O aprendizado ou treinamento de uma rede consiste no ajuste dos parmetros internos da rede, de forma que esta produza o resultado esperado, dada a apresentao de um conjunto de padres especcos. Os padres de treinamento da rede contm as informaes que se desja que uma rede aprenda. Os parmetros a ajustar so os pesos das conexes que interligam os neurnios. Os diversos modelos de redes neurais articiais se caracterizam pela utilizao de diferentes tcnicas de treinamento. Outros dois conjuntos de dados so: conjunto de validao e conjunto de teste. O conjunto de validao no utilizado na atualizao dos pesos da rede, e sim como mais um parmetro para avaliao do rumo do treinamento. O conjunto de teste um conjunto que deve conter somente padres que no existam no conjunto de treinamento, sendo utilizado para avaliar a capaciade da rede responder a estmulos nunca recebidos. Independente de quais sejam os conjuntos, estes devem ser os mais representativos possveis do universo de dados que a rede receber ao longo da sua fase de produo. A rede neural utilizada nesta dissertao utilizou o algoritmo de aprendizagem backpropagation. Este algoritmo um procedimento iterativo que utiliza pares de valores de entrada e sada como padres para o treinamento. Um padro apresentado na entrada da rede, atravs de seus valores de entrada, e calculada uma sada da rede. A sada calculada comparada com a sada desejada do padro e, havendo diferena, os pesos das conexes entre as unidades so modicados para que esta diferena seja minimizada. A apresentao desses pares repetida at que as diferenas atinjam um valor mnimo pr-estabelecido ou at que a quantidade de pocas percorridas, isto , a quantidade de vezes que um conjunto de treinamento apresentado rede, atinja o valor determinado.
erroj = tj aj

aj = f (netj )

PSfrag replacements

F IGURA 5.3: Algoritmo back-propagation 57

Neste algoritmo a funo de sada das unidades a funo identidade: oj = a j (5.2)

A tcnica utilizada para a minimizao do erro calcula o gradiente descendente da funo de erro nas unidades de sada, tendo sido denominada regra do delta generalizada.

5.1.2 Problemas das Redes Neurais


Para que um rede neural articial possa ser utilizada e responder de maneira eciente ao problema ao qual foi empregada existe a necessidade de saber se esta realmente esta apta a resolver este problema e mesmo esta fase sendo consolidada ainda resta o problema de ajustar a rede, ou melhor os seus parmetros para que se possa obter um bom desempenho desta. Aplicaes prticas de redes neurais envolvem etapas altamente experimentais, com cansativos e inecientes processos de tentativa e erro. Primeiro deve-se especicar a arquitetura da rede, o nmero de camadas, neurnios e o padro de conectividade entre os neurnios. Depois necessrio especicar os parmetros de aprendizagem, os pesos inicias, e ento efetuar o treino. Este processo lento, depende de sorte e procedimentos heursticos, e deve ser repetido at que o desejado grau de desempenho seja atingido. H vrios problemas bvios com tal procedimento. Para melhor-lo, algoritmos genticos tm sido propostos com trs objetivos distintos: Determinao dos pesos de uma rede de congurao conhecida Determinao da congurao para resolver um dado problema Determinao da congurao e pesos Esta dissertao aborda a utilizao de um algoritmo gentico paralelo para otimizar a arquitetura de uma rede neural (quantidade de neurnios na camada intermediria) simultaneamente com a busca dos melhores atributos de uma base de dados.

5.1.3 Escolha de parmetros da RNA


Alguns dos parmetros mais relevantes na especicao de uma rede neural so: 58

1. Quantidade de neurnios na camada escondida: Neurnios que se encontram no nvel escondido tm uma funo fundamental no treinamento de redes neurais com aprendizado atravs de back-propagation. A dimenso do nvel escondido, crucial para a determinao da capacidade de aprendizado e generalizao da rede. Uma rede de pequena dimenso pode no ser capaz de aprender um conjunto de padres maior e o treinamento se tornar indenido. Porm com o aumento da complexidade da rede, o processo de treinamento torna-se mais lento; 2. Taxa de aprendizado: A Regra de Delta Generalizada determina que a atualizao do peso da conexo de uma unidade seja funo do acrscimo de um delta (que calculado pela derivada parcial do erro medido na sada da rede) com uma constante de proporcionalidade negativa. Esta constante a taxa de aprendizado e implementa um gradiente conjugado na funo. A taxa de aprendizado determina o tamanho do passo do gradiente descendente e est diretamente relacionado com o tempo que o algoritmo vai levar para atingir um mnimo global do espao de busca da soluo; 3. Momentum: Para que se possa aumentar o desempenho do clculo pelo mtodo do gradiente descendente (que precisa que as diferenas aplicadas em cada passo sejam innitesimais) adiciona-se um termo denominado momentum, que leva em conta as contribues dos passos anteriores para o ajuste dos pesos. Com isto, a taxa de aprendizado pode ser maior e o mtodo converge mais rapidamente. Estes 3 parmetros so de fundamental importncia para a obteno de uma soluo global em um tempo considerado aceitvel. Um outro parmetro de vital importncia para o treinamento de uma rede neural a quantidade de atributos a serem considerados e a seleo destes atributos. A seleo de atributos para o uso em tarefas de minerao de dados vem sendo estudada e avaliada em relao ao desempenho dos algoritmos e a obteno de um melhor resultado, seja de classicao ou de predio. A etapa de seleo de atributos pode ser considerado um pr-processamento ou estar completamente acoplado ao algoritmo de minerao. Podem ser utilizados modelos estatsticos ou heursticas para a determinao do melhor conjunto de dados a ser utilizado no treinamento. Um dos mtodos estatsticos mais utilizados para a determinao deste conjunto a anlise de componente principal que na verdade reduz a dimensionalidade do 59

problema. Este mtodo consegue eliminar atributos que so linearmente dependentes, que atrapalham o treinamento de uma rede neural. Outros parmetros tambm importantes so : quantidade de camadas ocultas, quantidade de pocas e o tipo de conexo. Neste dissertao pretende-se utilizar algoritmos genticos para a seleo de atributos e consequente reduo da dimensionalidade do problema, e avaliao do aumento do desempenho e reduo do custo computacional do treinamento de uma rede neural.

5.2

Estudo de Caso

O algoritmo implementado foi empregado para otimizar os parmetros de uma rede neural (Costa 1999), como a quantidade de neurnios na camada intermediria, e simultaneamente escolher os atributos da base de dados utilizada. A rede neural utiliza o algoritmo de aprendizagem back-propagation, que um procedimento iterativo que utiliza pares de valores de entrada e sada como padres de treinamento. A rede totalmente conectada e possui somente uma camada intermediria. Para mais detalhes sobre a implementao da rede podem ser observados em (Costa 1999). O parmetro utilizado para avaliar o desempenho da rede foi o erro RMS e este a aptido pelo qual um indivduo da populao foi avaliado, um indivduo uma possvel congurao para a rede neural a ser otimizada com a seguinte estrutura
PSfrag replacements

X1

...

Xi

...

XN

F IGURA 5.4: Representao de um indivduo onde, A : Taxa de aprendizado B : Momentum C : Quantidade de neurnios na camada oculta X1 , XI , XN : Atributos da base de dados Na seo 5.1.3 os parmetros da rede neural foram apresentados e discutidas as caractersticas de cada um. 60

A populao inicial com 20 indivduos foi gerada aleatoriamente e o total inicial de 100 geraes foi o perodo utilizado para a evoluo. Cada indivduo, como j mencionado, representa uma possvel congurao para a rede neural, neste caso uma ilha possui 20 conguraes a serem testadas. O algoritmo SS1 foi avaliado com 4, 6 e 8 ilhas e o SS2 com 4, 6, 8 e 10 ilhas. Na tabela 5.1 so exibidos os valores para os parmetros dos modelos SS1 e SS2. Parmetros Populao Cromossomo Tipo de Cruzamento Tipo de mutao Taxa de indiv. Taxa de geraes SS1 SS2 20 20 7 7 Blend Blend Creep Creep 30% 20% 40% 30%

TABELA 5.1: Parmetros utlizados em SS1 e SS2 A escolha dos operadores genticos seguiu a anlise e os resultados em (de Oliveira 2001). A base de dados utilizada foi a base ris que possui 150 registros, 4 atributos e 3 classes. A rede utilizou 4 entradas, 1 sada e 1 camada intermediria. Em uma primeira fase foram executados os algoritmos com os seguintes valores xos para a rede neural: taxa de aprendizado : 103 momentum : 0.3 Os outros parmetros, que so os atributos da base de dados, foram variados. Testou-se a rede em 20, 40 e 60 pocas. Nas tabelas 5.2 e 5.3 so mostrados alguns resultados obtidos com as conguraes j mencionadas anteriormente. Para este caso em que os valores de taxa de aprendizado e momentum foram xados o algoritmo foi executados 6 vezes para cada implementao. Foi observado que em boa parte das execues todos os resultados sempre estavam com 3 dos 4 atributos da base e se vericou uma maior incidncia do primeiro atributo. Em relao aos demais atributos a incidncia foi bem dispersa tanto no modelo SS1 quanto SS2. 61

pocas SS1 (4 ilhas) (Atributos - Neurnios) 20 RMS = 0.313593 1,3,4 - 3 40 RMS = 0.308514 2,3,4 - 5 60 RMS = 0.300375 1,2,3,4 - 5

SS1 (6 ilhas) (Atributos - Neurnios) RMS = 0.290031 2,3,4 - 3 RMS = 0.286173 1,3,4 - 4 RMS = 0.280135 2,3,4 - 4

SS1 (8 ilhas) (Atributos - Neurnios) RMS = 0.113274 1,2,4 - 3 RMS = 0.111587 1,2,3,4 - 3 RMS = 0.110199 1,3,4 - 3

TABELA 5.2: RMS do melhor indivduo, atributos utilizados e quantidade de neurnios na camada intermediria obtidos em SS1 pocas SS2 (4 ilhas) (Atributos - Neurnios) 20 RMS = 0.315154 1,2,3,4 - 3 40 RMS = 0.303816 1,2,4 - 4 60 RMS = 0.301237 1,3,4 - 3 SS2 (6 ilhas) (Atributos - Neurnios) RMS = 0.281231 2,3,4 - 3 RMS = 0.276173 1,3,4 - 4 RMS = 0.270135 2,3,4 - 4 SS2 (8 ilhas) (Atributos - Neurnios) RMS = 0.114215 2,3,4 - 3 RMS = 0.111033 1,2,3,4 - 3 RMS = 0.110123 2,3,4 - 5

TABELA 5.3: RMS do melhor indivduo, atributos utilizados e quantidade de neurnios na camada intermediria obtidos em SS2 No modelo SS1 a variao do erro foi dentros das expectativas, pois este modelo a migrao ocorre sempre com um vizinho, isto proporcionou um grau de diversidade um pouco menor comparado a SS2. Tendo somente a variao da quantidade de neurnios na camada intermediria isto deixou liberdade para a variao dos atributos o que resultou em uma melhor observao destes. Isto serviu para que se pudesse extrair mais informaes da base com respeito a importncia de certos atributos. A quantidade de neurnios na camada intermediria apresentou sempre os melhores resultados com 3 neurnios o que no pode ser usado como justicativa ou princpio para que o nmero de neurnios na camada intermediria seja igual a quantidade de atributos, pois a base em questo, comparada a outras, no apresenta um grau muito forte de complexidade ou classicao de seus registros. Esta caracterstica da base ris tambm explica o por qu do modelo SS2 apresentar um percentual de desempenho um pouco melhor. Nas guras 5.5 e 5.6 so mostrados as evolues, em geraes, dos erros em SS1 e SS2 com 8 ilhas cada, com taxa de aprendizado igual a 103 , momentum igual 0.3 e nmero de 62

pocas igual a 20. SS1 e SS2 foram executados 6 vezes cada e os valores so os menores erros obitidos em cada gerao na melhor execuo. Neste exemplo tentou-se somente avaliar a migrao, mas em virtude das oscilaes que apareceram a longo das evolues, cou evidente que os operadores de cruzamento e mutao tiveram importante desempenho para contornar (ou tratar) o aparecimento de indivduos com material gentico que retornasse uma aptido no tima.

F IGURA 5.5: SS1 com 8 ilhas : RMS x Gerao

F IGURA 5.6: SS2 com 8 ilhas : RMS x Gerao Observa-se que em ambos os grcos as curvas so descendentes o que indica que com mais geraes pode se obter um indivduo que seja a melhor congurao da rede, deve-se ressaltar que com 80 pocas a rede j est bem treinada para esta base de dados. 63

A ocorrncia de picos com consequentes declives em ambos os grcos mostra que os operadores genticos de cruzamento (blend) e mutao (creep) conseguiram evitar que a busca se perde-se, pois a populao que apresentava indivduos com caractersticas genticas que podiam comprometer a evoluo, aps a ao destes operadores em cada gerao, conseguia retornar ao caminho em busca do timo. Os operadores genticos para variveis reais conseguiram um desempenho dentro das expectativas j comprovadas em (de Mendona 2004). Outro fator a ser observado em ambos os grcos, a ocorrncia de plats ou indcios de estagnao. Para este problema a migrao conseguiu promover a diversidade gentica o que propiciou o retorno a busca do timo. A possibilidade da quantidade de pocas ser outro parmetro a ser otimizado pelo algoritmo gentico no ser torna necessrio, pois uma anlise da base de dados a ser tratada j pode ser suciente para indicar quantas pocas sero necessrias para que se possa ter um bom treinamento. O RMS observado nas tabelas anteriores mostram que SS1 e SS2 com taxa de aprendizado e momentum xo j encontraram bons resultados. Agora segue-se SS1 e SS2 com estes parmetros aleatrios. Na gura 5.7 exibido o desempenho de SS1 em 60 geraes, 50 pocas, 4, 6 e 8 ilhas (foi escolhida a melhor rodada entre 3 rodadas executadas para cada quantidade de ilhas).
0.5 0.45 0.4 0.35 Erro RMS 0.3 0.25 0.2 0.15 0.1

4 ilhas 6 ilhas 8 ilhas

10

20

30 Quantidade de geraes

40

50

60

F IGURA 5.7: SS1 com 60 geraes e 50 pocas Na gura 5.8 exibido o desempenho de SS2 em 60 geraes, 100 pocas, 4, 6 e 8 ilhas 64

(foi escolhida a melhor rodada entre 3 rodadas executadas para cada quantidade de ilhas).
0.5 0.45 0.4 0.35 Erro RMS 0.3 0.25 0.2 0.15 0.1

4 ilhas 6 ilhas 8 ilhas

10

20

30 Quantidade de geraes

40

50

60

F IGURA 5.8: SS2 com 60 geraes e 100 pocas A tabela 5.4 contm o melhor erro RMS por ilhas e o respectivo indivduo (parmetros da rede) (Figuras 5.7 e 5.8). Modelo SS2 4 ilhas 6 ilhas RMS = 0.147895 RMS = 0.125116 Tx Aprend = 0.0195 Tx Aprend.= 0.0283 Momentum = 0.5279 Momentum = 0.3812 Atributos = 1,2,3,4 Atributos = 1,3,4 Qde neurnios = 3 Qde neurnios = 4 RMS = 0.152431 RMS = 0.152355 Tx Aprend = 0.0513 Tx Aprend.= 0.0211 Momentum = 0.8335 Momentum = 0.3255 Atributos = 1,3,4 Atributos = 1,2,4 Qde neurnios = 3 Qde neurnios = 4 8 ilhas RMS = 0.113424 Tx Aprend.= 0.0517 Momentum = 0.7115 Atributos = 2,3,4 Qde neurnios = 4 RMS = 0.147875 Tx Aprend.= 0.0219 Momentum = 0.5391 Atributos = 1,2,3,4 Qde neurnios = 3

SS1

TABELA 5.4: RMS por ilhas obtidos em SS1 e SS2 Na gura 5.9 exibido o desempenho de SS1 em 60 geraes, 150 pocas, 4, 6, 8 e 10 ilhas.

65

0.6 0.55 0.5 0.45 Erro RMS 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0 10 20 30 Quantidade de geraes 40 50

4 ilhas 6 ilhas 8 ilhas 10 ilhas

60

F IGURA 5.9: SS1 com 60 geraes e 150 pocas Na gura 5.10 exibido o desempenho de SS2 em 60 geraes, 150 pocas, 4, 6, 8 e 10 ilhas.
0.5 0.45 0.4 0.35 Erro RMS 0.3 0.25 0.2 0.15 0.1 4 ilhas 6 ilhas 8 ilhas 10 ilhas

10

20

30 Quantidade de geraes

40

50

60

F IGURA 5.10: SS2 com 60 geraes e 150 pocas A tabela 5.5 comtm o melhor erro RMS por ilhas e o respectivo indivduo (parmetros da rede) (Figuras 5.9 e 5.10). Pelos resultados que so exibidos nas tabelas anteriores o modelo SS2 teve um desempenho dentro das expectativas, j que possibilita um maior grau de diversidade nas populaes das ilhas. O aumento da quantidade de pocas e reduo da quantidade de geraes seguiu a idia de que quanto mais pocas uma rede for treinada melhor esta pode aprender. 66

Modelo SS2

SS1

4 ilhas RMS = 0.146367 T A = 0.0257 Mom = 0.4479 Atr = 2,3,4 N=3 RMS = 0.259407 T A = 0.0233 Mom = 0.6349 Atr = 1,2,3,4 N=4

6 ilhas RMS = 0.143749 T A = 0.0474 Mon = 0.7655 Atr = 1,3,4 N=3 RMS = 0.163391 T A = 0.0339 Mom = 0.5873 Atr = 1,2,4 N=3

8 ilhas RMS = 0.133582 T A = 0.0283 Mom = 0.5731 Atr = 2,3,4 N=3 RMS = 0.146513 T A = 0.0457 Mom = 0.5335 Atr = 1,2,3,4 N=4

10 ilhas RMS = 0.124704 T A = 0.0387 Mom = 0.7954 Atr = 1,3,4 N=4 RMS = 0.133582 T A = 0.0641 Mon = 0.8112 Atr = 1,3,4 N=5

TABELA 5.5: RMS por ilhas obtidos SS1 e SS2 Com esta idia, procurou-se deixar que SS1 (ou SS2) simplesmente evoluissem sobre populaes que teoricamente estariam bem aptas a serem solues, j que o indivduo a ser avaliado representa uma congurao de rede que foi treinada durante certas pocas. Quando se aumenta a quantidade de ilhas os indivduos cam com o tness melhor pois o erro RMS diminui e mais ilhas permitem uma busca mais eciente pelo espao de solues. Na tabela 5.6 so exibidos os parmetros que foram utilizados em SS1 e SS2 Parmetros Qde. geraes Populao Cromossomo Tipo de Crossover Taxa de crossover Tipo de mutao Taxa de mutao Taxa de indiv. Taxa de geraes Valor 60 20 7 Blend ( = 0.4) 0.7 Creep 0.01 30% em SS1 20% em SS1 40% em SS1 30% em SS1

TABELA 5.6: Parmetros utilizados em SS1 e SS1

67

Captulo 6 Concluses e trabalhos futuros


Nesta dissertao foi apresentada uma implementao de AG utilizando o modelo ilha para otimizar a arquitetura (quantidade de neurnios na camada intermediria) de uma rede neural simultaneamente com a busca dos melhores atributos da base de dados. O algoritmo gentico paralelo no treinou a rede neural e sim forneceu um indicativo que um certo indivduo com uma congurao especca pode levar o treinamento da rede ao sucesso. Foram estudados modelos de AG paralelo e topologias para pesquisa de um modelo que obtivesse um melhor desempenho de acordo com o problema apresentado. A obteno do melhor global ocorreu com as evolues independentes das ilhas e com a migrao de indivduos entre elas a partir de critrios pr-estabelecidos. A troca de informaes entre as ilhas se fez atravs da biblioteca MPI. Diferentes topologias lgicas foram analisadas para a fase de de migrao de indivduos entre as ilhas. Com o uso de ilhas consegui-se uma melhor distribuio do domnio do problema em questo e consequentemente ocorreram anlises e avaliaes com total independncia entre os mesmos, sendo que a migrao teve por nalidade garantir a diversidade destas ilhas no que diz respeito a subpopulao de cada um. Consegui-se com este trabalho denir caminhos e perspectivas para o operador de migrao tais como a escolha da topologia de migrao a ser adotada. O caso analisado (seo 5.2) sugere a viabilidade da otimizao da arquitetura (rede neural) e seleo dos atributos (base de dados) com erros pequenos pelo modelo steppingstone. 68

A utilizao de operadores genticos diferentes em cada ilha foi cogitada inicialmente, mas optou-se por realizar estes testes mais adiante aps a validao. O algoritmo ser utilizado no projeto ClusterMiner, alm de que sero implementados novos operadores de crossover, mutao e seleo. Nesta nova etapa pretende-se desenvolver mtodos e pesquisas que possibilitem encontrar novas heursticas sobre o operador de migrao do modelo stepping-stone. Como sugestes para futuras implementaes do sistema pode-se citar entre outras: implementao dos modelos island model 1 e island model 2; implementao de um objeto genrico para os operadores de migrao; uma interface grca para a visualizao do progresso das solues para a evoluo do treinamento das redes neurais; utilizao de biblioteca de MPI orientadas objeto.

69

Referncias
Abdi, H. (1994). A neural network primer, Journal of Biological Systems Vol 2: 247283. Adamidis, P. (1994). Review of parallel genetic algorithms bibliography, Technical report, Department of Electrical and Computer Engineering - Aristotle University of Thessaloniki. Basgalupp, M. P., Machado, M. L. M., de Souza, J. A. & da Silva, J. B. (2005). Otimizao na denio da arquitetura da rede neural mlp para anlise de sries temporais : Uma proposta utilizando algoritmos genticos, Technical report, PUC-RS, UFSC, UFPel. Brasil, L. M., de Azevedo, F. M. & Barreto, J. M. (1998). Uma arquitetura hbrida para sistemas especialistas, Technical report, Departamento de Informtica e Estatstica Universidade Federal de Santa Catarina. Brasileiro, E. V., de Oliveira Galvo, C. & Brasileiro, F. V. (2005). Otimizao em tempo real de redes de escoamento de petrleo usando algoritmos genticos, Technical report, Departamento de Sistemas e Computao - Departamento de Engenharia Civil Universidade Federal de Campina Grande. Cant-Paz, E. (1995). A summary of research on parallel genetic algorithms, Technical report, Computer Science Department and Illinois Genetic Algorithms Laboratory University of Illinois at Urbana-Champaign. Cant-Paz, E. (1997). A survey of parallel genetic algorithms, Technical report, Computer Science Department and Illinois Genetic Algorithms Laboratory - University of Illinois at Urbana-Champaign. Cant-Paz, E. (1998). Topologies, migration rates and multi-population parallel genetic algorithms, Technical report, Department of Computer Science and Illinois Genetic Algorithms Laboratory, University of Illinois at Urbana-Champaign. Cant-Paz, E. & Goldberg, D. E. (1999). Efcient parallel genetic algorithms : Theory and practice, Technical report, University of Illinois at Urbana-Champaign. Chapman, B. & Mehrotra, P. (1998). Openmp and hpf : Integrating two paradigms, Europar 98, pp. 65658. Corra, E. (2000). Algoritmos Genticos e Busca Tabu Aplicados ao Problema das PMedianas. Dissertao de M.Sc., Universidade Federal do Paran. Costa, M. (1999). Data Mining em Computadores de Alto Desempenho Utilizando-se Redes Neurais. D.Sc. thesis, COPPE-UFRJ. 70

da Silva, J. D. S. & Simoni, P. O. (2001). On a new migration scheme for the island model parallel genetic algorithm, V Simpsio Brasileiro de Automao Inteligente. de Campos, M. M. & Saito, K. (2004). Sistemas Inteligentes em Controle e Automao de Processos, Editora Cincia Moderna. de Mendona, C. E. L. R. (2004). Um Sistema Computacional Para Otimizao Atravs de Algoritmos Genticos e Redes Neurais. D.Sc. thesis, COPPE-UFRJ. de Oliveira, A. C. M. (2001). Algoritmos evolutivos para problemas de otimizao numrica com variveis reais, Monograa apresentada para o exame de qualicao do Curso de Computao Aplicada - Instituto Nacional de Pesquisas Espaciais. Geist, A., Beguelin, A. & Dongarra, J. (1994). PVM : Parallel Virtual Machine, MIT Press. Geist, G., Kohl, J. & Papadppoulos, P. (1996). Pvm and mpi : a comnparison of features, http://www.csm.ornl.gov/pvm/PVMvsMPI.ps. Goldberg, D. (1989). Genetic Algorithm in Search, Optimization and Machine Learning, Addison-Wesley Publishing Company. Goodman, E. D., Lin, S. & Punch, W. F. (1994). Coarse-grain parallel genetic algorithms: Categorization and new approach, VI IEEE Symposium on Parallel and Distributed Processing. Gordon, S. V. & Whitley, D. (1993). Serial and parallel genetic algorithms as function optimizers, V International Conference on Genetic Algorithms, Morgan Kaufmann, pp. 177183. Grama, A., Gupta, A., Karypis, G. & Kumar, V. (2003). Introduction to Parallel Computing, 2nd edn, Addison Wesley. Gropp, W., Lusk, E. & Skjellum, E. (1994). Using MPI : Portable Parallel Programming with the Message Passing Interface, Cambridge,MA,MIT. Haykin, S. (2001). Redes Neurais : princpios e prtica, 2nd edn, Bookman. http://www.mpi-forum.org (2005). Igncio, A. A. V. & Filho, V. J. M. F. (2002). Mpi : Uma ferramenta para implementao paralela, Pesquisa Operacional vol. 22(n. 1): p. 105116. Jong, K. A. D. (1975). An Analysis of the Behaviour of a Class of Genetic Adaptive Systems, PhD thesis, Universidade of Michigan. Jordan, H. F. & Alaghband, G. (2003). Fundamentals of Parallel Processing, Prentice Hall. Lacerda, E. & Carvalho, A. (1999). Introduo aos algoritmos genticos, Anais do XIX Congresso Nacional da Sociedade Brasileira de Computao, Vol. 2, pp. 51126. Levine, D. (1994). A parallel genetic algorithm for set partitioning problem, Technical report, ANL-94/23 Argonne National Laboratory. 71

Loureiro, S. M., Margoto, L. R., Varejo, F. & Queiroga, R. M. (2005). Um mecanismo automtico para busca de parmetros de tcnicas de classicao utilizando algoritmos genticos, Technical report, Centro Tecnolgico - Departamento de Informtica Universidade Federal do Esprito Santo. Medeiros, F. L. L. (2003). Algoritmo Gentico Hibrido como um Mtodo de Busca de Estados Estacionrios de Sistemas Dinmicos. Dissertao de M.Sc., INPE-CAP. Michalewicz, Z. (1992). Genetic Algorithms + Data Structures = Evolution Programs, Springer-Verlag. Michalewicz, Z., Logan, T. D. & Swaminathan, S. (1998). Evolutionary operators for continuous convex parameter spaces, Technical report, University of North Carolina. Omer, B. (1995). Genetic algorithms for neural network training on transputers, Departament of Computing Science, University of Newcastle. Pacheco, P. (1996). Parallel Programming with MPI, Morgan Kaufmann Publishers. Pacheco, M. A. C., Vellasco, M. M. R., Lopes, C. H. P. & Passos, E. P. L. (1998). Extrao de regras de associao em bases de dados por algoritmos genticos, Technical report, Departamento de Engenharia Eltrica - PUC/RJ. R.K.Ursem (2002). Diversity-guided evolutionary algorithms, Proceedings of PPSN 2002, pp. 462471. Sambatti, S. B., de Campos Velho, H. F., Leonardo D. Chiwiacowsky, S. S. & Preto, A. J. (2005). Epidemic genetic algorithm for solving inverse problems : Parallel approach, Technical report, Laboratrio Associado de Computao e Matemtica Aplicada - Instituto Nacional de Pesquisas Espaciais. Sarma, G., Zacharia, T. & Miles, D. (1998). Using hpf for parallel programming, Computers and Mathematics with Applications, Vol. 35, Elsevier Science, pp. 4157. Schwehm, M. (1996). Parallel population models for genetic algorithms. Soares, G. L. (1997). Algoritmos Genticos : Estudo, Novas Tcnicas e Aplicaes. Dissertao de M.Sc., Programa de Ps-Graduao em Engenharia Eltrica - UFMG. Soch, M. & Tvrdik, P. (1998). Performance evaluation of message passing libraries on ibm sp-2, Technical report, Department of Computer Science and Engineering, Czech Technical University. Spears, W. M., Jong, K. A. D., Back, T., Fogel, D. B. & Garis, H. (1993). An overview of evolutionary computation, European Conference on Machine Learning, pp. 442459. Tanomaru, J. (1995). Motivao, fundamentos e aplicaes de algoritmos genticos, II Congresso Brasileiro de Redes Neurais - III Escola de Redes Neurais. Wright, A. H. (1990). Genetic algorithms for real parameter optimization., FOGA, pp. 205 218. 72

Zanchettin, C. & Ludermir, T. B. (2005). Tcnica hbrida de otimizao para pesos e arquiteturas de redes neurais articiais, Technical report, Universidade Federal de Pernambuco.

73

You might also like