Post on 10-Nov-2018
Computação Natural:Genética Elementar e Computação
Evolucionária
Prof. Dr. Rafael Stubs ParpinelliE-mail: rafael.parpinelli@udesc.br
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/