20.04.2013 Views

Applying a Parallel Genetic Algorithmic to Fitting ... - FISIOCOMP

Applying a Parallel Genetic Algorithmic to Fitting ... - FISIOCOMP

Applying a Parallel Genetic Algorithmic to Fitting ... - FISIOCOMP

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

fisiocomp<br />

LABORATÓRIO DE FISIOLOGIA COMPUTACIOAL<br />

www.fisiocomp.ufjf.br


Aplicação de um AG paralelo para<br />

Sponsors:<br />

fisiocomp<br />

LABORATÓRIO DE FISIOLOGIA COMPUTACIOAL<br />

aproximação de função<br />

Daves Martins<br />

<br />

09.09.2005


Capítulo 1<br />

Algoritmo Genético<br />

“Esta área é inspirada na observação e na simulação computacional<br />

de processos naturais do mundo real.”<br />

Principal inspiração: Teoria da evolução natural de Darwin<br />

Principais Aplicações: Problemas complexos de otimização


Capítulo 1<br />

Teoria da Evolução Natural<br />

Algoritmo Genético<br />

A vida na terra é o resultado de um processo de seleção, pelo meio<br />

ambiente, dos mais ap<strong>to</strong>s e adaptados, e por is<strong>to</strong> mesmo com mais<br />

chances de reproduzir-se.<br />

Evolução - organismos se modificam com o passar do tempo, alguns<br />

organismos desapareceram do planeta e são substituídos por<br />

outros organismos que não existiam antes.


Capítulo 1<br />

Teoria da Evolução Natural<br />

Algoritmo Genético<br />

• O indivíduo mais adaptado sobrevive por mais tempo<br />

• As características, codificadas nos genes são transmitidas para os<br />

filhos e tendem a se propagar nas novas gerações<br />

• Na reprodução sexual, os cromossomos dos filhos são uma mistura<br />

dos cromossomos de seus pais<br />

• As características dos filhos são herdadas parcialmente de seus pais<br />

e parcialmente do resultados de novos genes criados durante o<br />

processo de reprodução


Capítulo 1<br />

Analogia com a Natureza - Terminologia<br />

Algoritmo Genético


Capítulo 1<br />

Analogia com a Natureza - Terminologia<br />

Algoritmo Genético


Capítulo 1<br />

Analogia com a Natureza - Terminologia<br />

Individuo<br />

0 1 0 1 0 0<br />

Cromossomo<br />

Gene<br />

Alelo desse gene 0 ou 1<br />

Locus é a posição desse gene<br />

População<br />

Algoritmo Genético<br />

Genótipo:010100, significa cor de olhas azuis<br />

Fenótipo: é o resultado do genótipo


Capítulo 1<br />

Analogia com a Natureza - Terminologia<br />

Algoritmo Genético<br />

A seleção natural atua de forma a privilegiar organismos cujas<br />

variações resultam num maior grau de adaptabilidade ao<br />

ambiente.<br />

Sendo assim, a evolução pode ser comparada a um processo de busca<br />

que visa otimizar (através dos processos de reprodução com<br />

herança genética, variação e seleção natural) a estrutura orgânica<br />

dos seres vivos a seus ambientes.


Capítulo 1<br />

Características dos Algoritmos Genéticos (AG)<br />

Algoritmo Genético<br />

AGs são indicados em problemas complexos de otimização:<br />

• mui<strong>to</strong>s parâmetros e variáveis;<br />

• mal estruturados: com condições e restrições, difíceis de serem<br />

modelados matematicamente;<br />

• grandes espaços de busca;<br />

• objetivos múltiplos.


Capítulo 1<br />

Características dos Algoritmos Genéticos (AG)<br />

Algoritmo Genético<br />

•Operam com uma codificação das possíveis soluções (espaço<br />

genotípico) e não com as próprias soluções (espaço fenotípico)<br />

•o AG’s fazem busca sobre uma população de pon<strong>to</strong>s e não sobre um<br />

único pon<strong>to</strong><br />

•AG’s fazem uso de descrições genéricas do que se quer ver presente<br />

na solução, através de funções de fitness (funções objetivo)<br />

•o AG’s utilizam regras de transição probabilísticas, e não regras<br />

determinísticas


Capítulo 1<br />

Características dos Algoritmos Genéticos (AG)<br />

Algoritmo Genético


Capítulo 1<br />

Representação – Estrutura de dados<br />

Algoritmo Genético<br />

AG clássico: Cadeias binárias de comprimen<strong>to</strong> fixo (cromossomos)<br />

(111011011)<br />

Outras estruturas de dados :<br />

• Ve<strong>to</strong>res de reais: (12.34, 7.35, 3.51, 3.4)<br />

• Ve<strong>to</strong>res de inteiros: (1,7,2,5,2,8)<br />

Um cromossomo representa da função um conjun<strong>to</strong> de parâmetros<br />

objetivo cuja resposta será maximizada ou minimizada.<br />

O conjun<strong>to</strong> de <strong>to</strong>das as configurações que o cromossomo pode<br />

assumir compõe o espaço de busca.


Capítulo 1<br />

Algoritmo Genético<br />

População inicial<br />

Atribuição aleatória dos alelos presentes no alfabe<strong>to</strong> de<br />

representação aos genes dos cromossomos.


Capítulo 1<br />

Seleção Natural<br />

Algoritmo Genético<br />

É o princípio básico para o direcionamen<strong>to</strong> da evolução de uma<br />

população<br />

A seleção é responsável por escolher os indivíduos que estão mais<br />

ap<strong>to</strong>s a se <strong>to</strong>rnarem geni<strong>to</strong>res.<br />

Utiliza uma função de avaliação para medir a aptidão de cada<br />

indivíduo.<br />

Nota associada ao indivíduo que avalia quão boa é a solução por ele<br />

representada.<br />

• Essa aptidão pode ser absoluta ou relativa<br />

– Igual a função objetivo<br />

– Resultado do escalonamen<strong>to</strong> da função objetivo.<br />

– Baseado no ranking do indíviduo da população.


Capítulo 1<br />

Algoritmo Genético<br />

Seleção Natural<br />

Função Aptidão<br />

Representa uma medida da capacidade de sobrevivência de um<br />

cromossomo no processo de evolução, e conseqüentemente a<br />

probabilidade dele se reproduzir com mais freqüência. É uma<br />

composição da função objetivo, com funções de penalidade,<br />

estabelecidas a partir das restrições do problema.<br />

• Principais mé<strong>to</strong>dos de seleção:<br />

• Roleta<br />

• Torneio<br />

• Amostragem Universal Es<strong>to</strong>cástica


Capítulo 1<br />

Algoritmo Genético<br />

Seleção Natural<br />

Após a seleção, os indivíduos armazenados na geração intermediária<br />

são submetidos ao processo de reprodução, para então formarem uma<br />

nova geração.<br />

Se uma geração é <strong>to</strong>talmente substituída por outra mais jovem, podese<br />

perder um indivíduo de boa qualidade.<br />

Para que is<strong>to</strong> não ocorra, um percentual da população que tenha um<br />

desempenho exemplar pode ser mantida na geração seguinte,<br />

copiando-se estes indivíduos diretamente.<br />

Esta prática é denominada elitismo.


Capítulo 1<br />

Algoritmo Genético<br />

Operadores Genéticos<br />

Na fase de reprodução: indivíduos selecionados submetidos a um<br />

operador genético.<br />

Formam novos indivíduos que substituirão a geração anterior: <strong>to</strong>tal<br />

ou parcialmente<br />

•Crossover: geralmente aplicado a pares de cromossomos retirados<br />

da população intermediária: formando dois novos cromossomos -<br />

“filhos”<br />

•Mutação: estes cromossomos são submetidos à troca de material<br />

genético (parte da cadeia de bits, no caso de codificação binária).


Capítulo 1<br />

Algoritmo Genético<br />

Operador: Crossover<br />

Nos sistemas biológicos o crossover pode ocorrer durante a<br />

reprodução sexuada permitindo a troca de material genético entre<br />

dois indivíduos.<br />

O crossover é o operador principal do AG:<br />

• Responsável por gerar novos indivíduos (melhores ou piores) a<br />

partir de indivíduos já promissores<br />

• Aplicado a cada par de indivíduos com alta probabilidade ( pc):<br />

normalmente: 0,5 < pc< 1.0


Capítulo 1<br />

Operador: Crossover<br />

Algoritmo Genético


Capítulo 1<br />

Operador de Mutação<br />

Algoritmo Genético<br />

Em genética a mutação pontual é um processo no qual um alelo de<br />

um gene é alea<strong>to</strong>riamente substituído (ou modificado) por outro,<br />

resultando em um novo cromossomo.<br />

O operador de mutação tem o objetivo de melhorar a diversidade<br />

na população, impedindo problemas de convergência prematura,<br />

contudo ele destrói parte da informação contida no cromossomo.<br />

Geralmente existe uma baixa probabilidade de mutar cada gene de<br />

um cromossomo:<br />

Taxa de mutação recomendada: 0,1% < pm < 5%.


Capítulo 1<br />

Operador de Mutação<br />

Algoritmo Genético


Capítulo 1<br />

Parâmetros de controle<br />

- Tamanho da população<br />

- Número de gerações<br />

- Taxa de crossover<br />

- Taxa de mutação<br />

- Aptidão<br />

-Etc.<br />

Algoritmo Genético


Capítulo 2<br />

AGP:<br />

Algoritmo Genético Paralelo<br />

Grande vantagem dos AGs : naturalmente bem estruturados para se<br />

paralelizar.<br />

É possível dividir suas tarefas entre os processadores de sistemas<br />

computacionais paralelos e distribuídos.<br />

Vantagens:<br />

Fornece amplo poder computacional com melhora na<br />

velocidade e no desempenho do AG.<br />

Principais modelos de algoritmos genéticos paralelos (AGP):<br />

• Global (também conhecido como “mestre- escravos” )<br />

• AGP com Granularidade baixa (Modelo de ilhas)<br />

• AGP com Granularidade alta


Capítulo 2<br />

Modelo Global ou “mestre- escravos”<br />

Algoritmo Genético Paralelo<br />

O mais simples dos modelos.<br />

Uma única população é submetida a operadores de seleção,<br />

Crossover e mutação em um processador principal (mestre).<br />

O mestre envia os indivíduos para avaliação nos diversos<br />

processadores (escravos), e espera o resultado para prosseguir para<br />

as próximas gerações.


Capítulo 2<br />

Algoritmo Genético Paralelo<br />

Modelo de ilhas ou AGP com granularidade baixa<br />

Neste modelo a população é dividida em subpopulações (demes:<br />

colônias de células). A evolução é isolada, delegando assim a<br />

diversos processadores, não só a função de avaliação de indivíduos,<br />

mas também as funções de reprodução e seleção destes.<br />

Após um dado número de<br />

gerações, os demes trocam entre<br />

si os melhores indivíduos e<br />

continuam a evolução<br />

isoladamente (migração). Este<br />

processo de troca de indivíduos<br />

é repetido a cada número de<br />

gerações predeterminado.


Capítulo 2<br />

AGP com granularidade alta<br />

Algoritmo Genético Paralelo<br />

Cada indivíduo é colocado em um processador, geralmente<br />

arrumados numa malha 2-D de processadores.<br />

O processo de seleção é aplicado em cada processador, entre ele e os<br />

processadores vizinhos.<br />

O crossover é realizado<br />

localmente, apenas com<br />

indivíduos de processadores<br />

vizinhos.


Capítulo 3<br />

Problema<br />

Temos um conjun<strong>to</strong> de valores obtidos através de um<br />

experimen<strong>to</strong>, esse conjun<strong>to</strong> de valores tem as seguintes<br />

características:<br />

Valores<br />

Experimentais


Capítulo 3<br />

∂<br />

Problema<br />

Nosso objetivo é aproximar a curva experimental, para isso<br />

usaremos a equação de Poisson no intervalo de 0 a 1:<br />

2<br />

∂x<br />

u =<br />

2<br />

f<br />

(<br />

x,<br />

θ )<br />

σ<br />

A função f deve ser do tipo:<br />

0 θ<br />

1<br />

Representa o pon<strong>to</strong> do pulso<br />

θ eσ<br />

são os parâmetros na qual o ag<br />

deve ajustar<br />

X 0; no pon<strong>to</strong> θ<br />

X=0, nos demais<br />

σ Representa a amplitude do pulso


Capítulo 3<br />

Porquê usamos Poisson?<br />

Problema


Capítulo 3<br />

A equação de poisson foi resolvida pelo mé<strong>to</strong>do das<br />

diferenças finitas, o que demanda de mui<strong>to</strong> tempo de<br />

processamen<strong>to</strong>:<br />

∂<br />

2<br />

∂x<br />

u =<br />

2<br />

f<br />

(<br />

x,<br />

θ )<br />

σ<br />

Problema


Capítulo 3<br />

Dificuldades Encontradas<br />

A equação de poisson foi implementada em PTEsC, um<br />

biblioteca matemática já paralelizada, mas não funcionou<br />

paralelizar a função de fitness, por isso utilizou o GSL.<br />

Tentativa de se utilizar uma biblioteca que implementa o ag<br />

em paralelo a PGAPACK.


Capítulo 4<br />

Funcionamen<strong>to</strong> e parâmetros do AGP<br />

O ag precisa otimizar dois parâmetros, o omega e o sigma,<br />

então o fitness, é a minimização do erro quadrático.<br />

( X ' X )<br />

∑ −<br />

O cromossomo, é formado por 24 gene, sendo 12 gene para<br />

o omega e 12 para o sigma.<br />

0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0<br />

5<br />

0,5<br />

0,5 * 104 4<br />

2


Capítulo 4<br />

Funcionamen<strong>to</strong> e parâmetros do AGP<br />

Tendo os parâmetros omega e sigma, utilizamos uma<br />

discretização de 100 pon<strong>to</strong>s entre 0 e 1 para acar os valores<br />

referentes a esses parâmetros, e traçamos os gráfico<br />

comparativo.<br />

Parâmetros do AG<br />

•Crossover 80 %<br />

•Mutação 10%<br />

•Critério de parada 500 gerações ou erro quadrático


Capítulo 4<br />

Funcionamen<strong>to</strong> e parâmetros do AGP<br />

individuo<br />

Escravo<br />

Recebe o cromossomo<br />

e calcula o fitness<br />

Mestre<br />

Crossover,mutação,<br />

seleção<br />

Individuo<br />

+ fitness<br />

individuo Individuo<br />

+ fitness<br />

Escravo<br />

Recebe o cromossomo<br />

e calcula o fitness


Resultados<br />

Resultados e Comparações<br />

Omega=0,29<br />

Sigma=0,81


Resultados<br />

Resultados e Comparações<br />

Experimen<strong>to</strong> realizados com 2 e 3 processadores.<br />

O algoritmo executado em 3 processadores demonstrou um<br />

resultado cerca de 15 % mais rápido.<br />

2 Processadores – 1m 15s<br />

3 Processadores – 1m 00s


Conclusões<br />

Algoritmo genético<br />

Conclusões<br />

Realiza uma explotação e uma exploração dentro do espaço<br />

de busca.<br />

Naturalmente paralelizavel.<br />

Alterações futuras:<br />

Inserção de novos parâmetros, como a largura do pulso.<br />

Melhorar representação binária.


Aplicação de um AG paralelo para<br />

Sponsors:<br />

fisiocomp<br />

LABORATÓRIO DE FISIOLOGIA COMPUTACIOAL<br />

aproximação de função<br />

Daves Martins<br />

<br />

09.09.2005

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!