computação natural: genótipo e fenótipo genética elementar ... · para as proteínas ou rna...

7
Computação Natural: Genética Elementar e Computação Evolucionária Prof. Dr. Rafael Stubs Parpinelli E-mail : [email protected] Programa de Pós-Graduação em Computação Aplicada - UDESC Genótipo e Fenótipo Genótipo Conjunto de genes que um organismo possui Os genes existem no DNA, em toda célula do organismo DNA codifica um 'plano' para o desenvolvimento do organismo Fenótipo É a expressão física do genótipo, incluindo: Morfologia do organismo Seu comportamento O fenótipo de um organismo é produto da expressão de seu genótipo e sua interação com seu ambiente Genótipo e Fenótipo Dogma Central da Biologia O dogma central da Biologia é que a informação contida no DNA é transferida para moléculas de RNA durante a transcrição e para proteínas durante a tradução Como a Vida é Estruturada DNA Quatro nucleotídeos que formam os blocos construtivos da maioria dos organismos vivos Gene Unidade de hereditariedade que possui a codificação para as proteínas ou RNA Genoma Todo o DNA de um organismo Cromossomo Estrutura filiforme que contém as moléculas de DNA Espécies Grupo de organismos que podem se acasalar e gerar descendentes férteis População Grupos de organismos vivendo em uma mesma área Organismo Coleções de células que colaboram para formar uma entidade maior como um animal ou planta Célula A menor unidade de Vida Comunidade Populações de diferentes espécies que vivem em uma mesma área e interagem via relações simbióticas Ecossistema Comunidades que interagem entre si e com o ambiente

Upload: hoangthuan

Post on 10-Nov-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Computação Natural:Genética Elementar e Computação

Evolucionária

Prof. Dr. Rafael Stubs ParpinelliE-mail: [email protected]

Programa de Pós-Graduaçãoem Computação Aplicada - UDESC

Genótipo e Fenótipo

Genótipo Conjunto de genes que um organismo possui

Os genes existem no DNA, em toda célula do organismo

DNA codifica um 'plano' para o desenvolvimento do organismo

Fenótipo É a expressão física do genótipo, incluindo:

Morfologia do organismo

Seu comportamento

O fenótipo de um organismo é produto da expressão de seu genótipo e sua interação com seu ambiente

Genótipo e FenótipoDogma Central da Biologia

O dogma central da Biologia é que a informação contida no DNA é transferida para moléculas de RNA durante a transcrição e para proteínas durante a tradução

Como a Vida é EstruturadaDNA

Quatro nucleotídeos que formam os

blocos construtivosda maioria dos

organismos vivos

GeneUnidade de

hereditariedade que possui a codificação para as proteínas ou

RNA

GenomaTodo o DNA

de umorganismo

CromossomoEstrutura filiforme

que contém as moléculas

de DNA

EspéciesGrupo de

organismosque podem se

acasalar e gerar descendentes

férteis

PopulaçãoGrupos de organismosvivendo em

umamesma área

OrganismoColeções de célulasque colaboram paraformar uma entidade

maior como um animal ou planta

CélulaA menor unidade de Vida

ComunidadePopulações de

diferentes espéciesque vivem em uma

mesma área e interagem via

relações simbióticas

EcossistemaComunidades que interagem

entre si e com o ambiente

O que é Evolução?

É a modificação nos traços hereditários de uma população de organismos através de sucessivas gerações.

O que ela requer? Características ou traços precisam ser

hereditários Genótipos são copiados de pai para filho

Não somente hereditariedade, ou descendência, mas descendência com modificação.

Elementos Essenciais para Evolução

Três forças fundamentais no processo evolutivo: Variação genética: uma maneira para as características dos

indivíduos na população variarem

Seleção Natural: uma maneira para os indivíduos se reproduzirem em diferentes taxas, como resultado de suas características. Indivíduos mais bem adaptados ao ambiente possuem maiores chances de produzir mais descendentes

Migração: Processo pelo qual genes ou variações genéticas se transferem de uma população para outra

O que é o processo evolutivo? Um erro comum é acreditar que a evolução tem uma meta ou

algum plano

Nada mais é do que uma sequência de variações aleatórias, com seleção por características adaptadas a um dado ambiente

Variações GenéticasMutação:

Mudanças nos genes de pai(s) para filho(s) Usualmente mudanças pequenas e aleatórias Podem ser benéficas, neutras ou danosas para o

organismo Uma única mutação pode ter um grande efeito mas, em

muitos casos, a mudança evolucionária (assimilação da mudança) se dá pela acumulação de inúmeras mutações

Recombinação (Crossover): Múltiplos pais podem introduzir novas combinações de

genes existentes Assim como a mutação, ele pode introduzir novas

combinações vantajosas ou quebrar tais combinações

Seleção NaturalÉ o processo pelo qual as características dos indivíduos são

selecionadas para ter influência em gerações futuras.

Exemplos de características que podem ser vantajosas:

Alta expectativa de vida, proporcionando mais tempo para dar suporte aos descendentes

Maior atratividade para potenciais companheiros

Estratégias mais seguras para cuidas dos descendentes Maior habilidade para se esconder ou fugir de predadores Maior mandíbula para matar presas, ...

Adaptabilidade ou Fitness

Fitness = Habilidade de sobrevivência + Habilidade reprodutiva

Essencialmente, é uma medida da habilidade de um indivíduo passar seus genes para gerações subsequentes.

O fitness de um indivíduo depende da interação deste com o ambiente em que está inserido e com outros indivíduos.

De maneira extremamente genérica:

Recapitulando...Elementos Essenciais:

População: Um conjunto de indivíduos, cada qual com seu genótipo que dá origem a seu fenótipo

Variabilidade: Uma maneira para as características hereditárias dos indivíduos de uma população variarem

Seleção: Uma maneira para os indivíduos se reproduzirem em diferentes taxas, como resultado de suas características. A seleção natural é probabilística

Fitness: Uma medida da habilidade de um indivíduo passar seus genes para gerações subsequentes. Depende da sua interação com o ambiente e com outros indivíduos

Processo evolutivo em diferentes níveis: Variação ocorre no nível genotípico

Seleção ocorre no nível fenotípico

O que é Computação Evolucionária (CE)?

Estudo de sistemas computacionais que são inspirados pela evolução natural.

Utilizada em otimização, aprendizado, problemas de projeto, arte, …

Não requer um rico conhecimento do domínio de aplicação mas este pode ser incorporado no sistema.

Transferindo conceitos:

Ambiente → Problema a ser resolvido

Indivíduo de uma população → Solução candidata do problema

Fitness → Qualidade da solução candidata na resolução do problema

Evolução Natural Algoritmos Evolucionários

Fitness

Quantidade observada e obtida como efeito a posteriori das rotinas de seleção e reprodução.

Quantidade definida a priori que direciona a seleção e reprodução.

Seleção

Forças complexas que se baseiam em condições ambientais, indivíduos da mesma e de diferentes espécies. Viabilidade é testada continuamente; reprodutividade é testada em tempos discretos.

Operador aleatório com probabilidades de seleção baseadas nos valores de fitness. Seleção de sobreviventes e seleção dos pais acontece em tempos discretos.

Mapeamento genótipo-fenótipo

Processo bioquímico altamente complexo influenciado pelo ambiente.

Tipicamente é um procedimento parametrizado ou transformação matemática simples.

Evolução Natural Algoritmos Evolucionários

Variabilidade

Descendentes são criados a partir de um pai (reprodução assexuada) ou dois pais (reprodução sexuada). Transferência horizontal de genes pode acumular genes de mais de um indivíduo.

Transferência vertical de genes sem restrições. Descendentes podem ser gerados de qualquer número de pais: um, dois, ou muitos.

Execução

Paralela e descentralizada; eventos de nascimento e morte não são sincronizados.

Tipicamente centralizado com eventos de nascimento e morte sincronizados.

População

Incorporação espacial que implica em populações estruturadas. O tamanho da população varia de acordo com o número relativo de eventos de nascimento e morte. Populações podem ir a extinção.

Tipicamente são populações não estruturadas e panmíticas (todos indivíduos são potenciais parceiros; distribuição uniforme dos genes entre os indivíduos). O tamanho da população é usualmente mantido constante pela sincronia do tempo e dos eventos de nascimento e morte.

InteligênciaArtificial Clássica

-Métodos Clássicos -Inferência Lógica

-SistemasEspecialistas

VidaArtificial

SistemasDinâmicos

Não-Lineares

InteligênciaComputacional

LógicaFuzzy

ComputaçãoEvolucionáriaRedes

NeuraisArtificiais

SistemasImunológicos

Artificiais

Inteligência deEnxame

Computação Natural

-Neuro-fuzzy-Neuro-evolutivo

-Neuro-imune

Soft-Computing

Computaçãode DNA

ComputaçãoQuântica

AutômatosCelulares

Uma possível classificação...Onde se situa CE.

MembraneComputing

CE como método de otimização

• Projeto de Otimização:– Muitos parâmetros a serem otimizados– Muitas restrições a serem satisfeitas– Complexo espaço de busca

• CE– Facilita a tarefa de projeto gerando soluções

subótimas ou mesmo ótimas

• CE emprega um método intuitivo:– Processo criativo– Refinamento iterativo e interativo

Vantagens da CE

• Não requer um conhecimento matemático profundo do problema ao qual é aplicado

• Baixo custo de implementação• Facilmente hibridizável com outras técnicas• Facilmente adaptável a muitas classes de

problemas, inclusive problemas multiobjetivos• Modulável e paralelizável• Capaz de manipular restrições (adaptável)• Trabalha com população de soluções• Pode ser a única alternativa viável

Desvantagens da CE

• Pouco embasamento teórico, ou seja, a prática se desenvolveu mais do que a teoria

• Ajustes de parâmetros: requer conhecimento prévio ou tentativa-e-erro

• Não é intrinsecamente melhor do que qualquer outro algoritmo de otimização

– No free lunch

Ingredientes de um Algoritmo Evolucionário (AE)

Representação das soluções candidatas (estrutura do genótipo)

Definição e avaliação da função de fitness

Definição do rotina de seleção

Operador de crossover

Operador de mutação

Esquema de substituição da população entre gerações

AEs são uma família de algoritmos, não um único algoritmo!

AEs são algoritmos genéricos, também conhecidos como heurísticas genéricas aleatorizadas de busca.

Visão pictórica da força evolutivaAlgoritmos Evolucionários

Algoritmos Genéticos Estratégias Evolutivas Programação Genética

Programação por Expressão Gênica

Evolução Diferencial

Hardware Evolutivo

Programação Evolutiva

Transgenética Computacional

Outro pseudo-código de um AE AG Canônico

Algoritmo Evolucionário (AG) #1• Fenótipo x Genótipo

Tipos de Codificação Binário: 1D, 2D, 3D Real Inteiro Ordem Árvore, ...

Ex de cromossomo segmentado com diferentes tipos de codificação: Um certo engenheiro precisa otimizar um projeto visando minimizar os custos. Para isso, ele deve ordenar a entrega de 20 caixas, além de decidir o volume de cada uma e se em determinada entrega ela deve ou não ser usada.

10 18 1 19 8 13 ..... ..... .....1,3 9,1 5,8 3,0 1,4 3,3 1 1 1 10 0

SEGMENTO DE ORDEM SEGMENTO REAL SEGMENTO BINÁRIO

1 Cromossomo

Algoritmo Evolucionário (AG) #2

• População de possíveis soluções– Busca paralela

Algoritmo Evolucionário (AG) #3

• Função de fitness– Mede o quão boa é uma solução para o problema

Algoritmo Evolucionário (AG) #4

• Seleção– Implementa e guia o processo evolutivo– Seleciona os indivíduos mais aptos a se reproduzir e

passar o seu material genético– Métodos probabilísticos ou determinísticos

Método de seleção:Seleção proporcional (Roulette Wheel)

• É o método clássico também conhecido como roulette wheel (roleta). Utiliza fitness relativo.

• Pode se tornar ineficiente induzindo a convergência prematura para máximos locais

i string fitness Fit. Rel. (%)

1 01101 169 14,4

2 11000 576 49,2

3 01000 64 5,5

4 10011 361 30,9

Soma 1170 100%

Algoritmo Evolucionário (AG) #5• Reprodução e operadores genéticos

– Crossover: recombinação de material genético de dois pais – realiza busca local (exploitation: aproveitamento)

– Mutação: variação aleatória – realiza busca global (exploration: investigação)

Algoritmo Evolucionário (AG) #6• Critério de parada do algoritmo

– Número pré-determinado de gerações– Quando não há mais melhoria– Quando atingiu o ótimo

Um fluxograma de um AG padrãoDefinições

• Diversidade genética

– Medida de não-semelhança entre indivíduos de uma população. Para AGs em geral pode ser medida pela distância de Hamming entre os indivíduos.

• Pressão seletiva

– Efeito das discrepâncias de fitness entre indivíduos da população na preferência pela seleção. Quanto maiores as diferenças, maior a pressão seletiva em benefício dos valores mais altos de fitness.

Pressão seletiva x Diversidade genética

• Problema– Nas primeiras gerações ocorre convergência prematura

– Alta diversidade genética– Alta discrepância de fitness– Alta pressão seletiva– Rápida perda de diversidade genética– Convergência prematura

– Em gerações maduras ocorre “chegada lenta”– Baixa diversidade– Baixas discrepâncias de fitness– Baixa pressão seletiva– Evolução lenta ou estagnação

• Solução– Controlar pressão seletiva– Controlar a diversidade genética

Controle de pressão seletiva• É interessante que a pressão seletiva seja

baixa no início do processo evolutivo

• Nas últimas gerações é interessante aumentar a pressão seletiva

• Métodos de escalonamento– Escalonamento linear, ranking, janelamento, sigma-

truncation

– Evitam que alguns super-indivíduos dominem a população no início da busca e geralmente produzem melhores resultados na otimização de problemas multimodais

Controle de Diversidade Genética

• Nichos e espécies

– Inspiração na natureza onde espécies diferentes se agrupam num mesmo nicho ecológico competindo entre si pelos recursos naturais.

– Em AGs, se dá através da manutenção de sub-populações estáveis com baixa competição entre as mesmas.

– Dois objetivos básicos em se utilizar nichos:• Quando se deseja não apenas uma solução mas um

conjunto das melhores soluções;

• Permitir uma melhor exploração do espaço de busca para problemas multimodais.

• Manutenção da diversidade genética

• Compartilhamento (Sharing)– Transforma o fitness crú de um indivíduo em fitness

compartilhado

– A ideia é que existe uma quantidade fixa e limitada de recursos disponíveis em cada nicho. Indivíduos que ocupam o mesmo nicho terão que compartilhar estes recursos

– Diminui o nível de competição entre indivíduos que estejam distantes no espaço de busca

– A semelhança pode ser a nível de fenótipo ou de genótipo

– Quando há muitos indivíduos próximos, ocorre uma diminuição dos fitness desse grupo

– Este processo limita o crescimento indiscriminado de uma sub-população numa região do espaço de busca

• Fator de crowding (fc)

– Um novo indivíduo gerado substitui o indivíduo mais semelhante a ele na população antiga, escolhido entre fc indivíduos escolhidos aleatoriamente na população.

– Diminui a competição inter-espécies (indivíduos muito diferentes) e aumenta a competição intra-espécies.

– Melhora a exploração do espaço de busca através da manutenção da diversidade genética.

– Útil para busca de vários sub-ótimos.

• Diferenças entre gerações (Generation Gap)– Foi definido por DeJong em 1975– É uma maneira de permitir a sobreposição ou

não de duas populações consecutivas• G = 1. É o modelo tradicional sem sobreposição,

onde 100% da população é substituída a cada geração. Este é o modelo geracional (generational).

• 0 < G < 1. G novos indivíduos serão gerados para substituir parte da população. Causa uma desaceleração da velocidade de evolução. Este é o modelo de estado estável (steady-state).

Roteiro para modelagem de problemas utilizando AGs

Definir a natureza do problema:– Maximização, minimização ou multiobjetivos

Combinatorial ou não

Decidir se uma busca exaustiva ou métodos exatos são mais indicados

• Codificação– Identificar o conjunto de variáveis e o possível relacionamento entre elas– Definir o formato de codificação: binário natural, inteiro, real ou outro– Definir a precisão necessária de cada variável– Definir o tamanho de cada gene e do cromossomo

• Definir a função objetivo

• Restrições– Identificar as restrições aplicáveis às variáveis– Definir como tratar as restrições– Determinar a função e o coeficiente de penalidade

• Definir a função de fitness e sua normalização

Referências Importantes

GAlib: A C++ Library of Genetic Algorithm Componentshttp://lancet.mit.edu/ga/

Java Library for GAhttp://jenetics.io/

PyGMO: Python Parallel Global Multiobjective Optimizerhttp://esa.github.io/pygmo/