Computação Natural: Genética Elementar e Computação Evolucionária Prof. Dr. Rafael Stubs Parpinelli 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 E-mail: [email protected] Fenótipo Programa de Pós-Graduação em Computação Aplicada - UDESC Genótipo e 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 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 Gene Quatro nucleotídeos que formam os blocos construtivos da maioria dos organismos vivos Unidade de hereditariedade que possui a codificação para as proteínas ou RNA Espécies Grupo de organismos que podem se acasalar e gerar descendentes férteis Genoma Todo o DNA de um organismo População Grupos de organismos vivendo em uma mesma área O que é Evolução? Cromossomo Estrutura filiforme que contém as moléculas de DNA Organismo Coleções de células que colaboram para formar uma entidade maior como um animal ou planta É a modificação nos traços hereditários de uma população de organismos através de sucessivas gerações. Célula A menor unidade de Vida O que ela requer? 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 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? 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. Variações Genéticas Mutaçã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): 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 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, ... Recapitulando... Adaptabilidade ou Fitness 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: Fitness = Habilidade de sobrevivência + Habilidade reprodutiva O que é Computação Evolucionária (CE)? 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 ● ● ● ● 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 vs. Algoritmos Evolutivos Evolução Natural Algoritmos Evolucionários Quantidade observada: efeito a posteriori das rotinas de seleção e reprodução. Quantidade definida a priori que direciona a seleção e reprodução. Onde se situa a CE Fitness Computação Natural 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 Tipicamente é um procedimento parametrizado ou ambiente. transformação matemática simples. Variabilidade Descendentes são criados a partir de um pai (reprodução Transferência vertical de genes sem restrições. assexuada) ou dois pais (reprodução sexuada). Transferência Descendentes podem ser gerados de qualquer horizontal de genes pode acumular genes de mais de um número de pais: um, dois, ou muitos. indivíduo. Execução Paralela e descentralizada; eventos de nascimento e morte não Tipicamente centralizado com eventos de nascimento são sincronizados. 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. 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 Vida Artificial Autômatos Celulares Sistemas Dinâmicos Não-Lineares Lógica Fuzzy Redes Neurais Artificiais Computação de DNA Inteligência Computacional Computação Evolucionária Soft-Computing -Neuro-fuzzy -Neuro-evolutivo -Neuro-imune Inteligência Artificial Clássica -Métodos de Busca -Inferência Lógica -Sistemas Especialistas Computação Quântica Inteligência de Enxame Sistemas Imunológicos Artificiais 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 • Modularizá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 Ingredientes de um Algoritmo Evolucionário (AE) 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 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. Algoritmos Evolucionários Algoritmos Genéticos Evolução Diferencial Estratégias Evolutivas Hardware Evolutivo Programação Genética Programação Evolutiva Programação por Expressão Gênica Transgenética Computacional AG Canônico Algoritmo Evolucionário (AG) #1 • Fenótipo x Genótipo 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 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