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 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 Genoma Todo o DNA de um organismo População Grupo de organismos que podem se acasalar e gerar descendentes férteis Grupos de organismos vivendo em uma mesma área 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 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 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é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): 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 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 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 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. Fitness 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. 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. Uma possível classificação... Onde se situa CE. Computação Natural Sistemas Dinâmicos Não-Lineares Computação de DNA Vida Artificial Autômatos Celulares Membrane Computing Redes Neurais Artificiais Lógica Fuzzy Computação Quântica Inteligência Computacional Computação Evolucionária Soft-Computing -Neuro-fuzzy -Neuro-evolutivo -Neuro-imune Inteligência de Enxame Sistemas Imunológicos Artificiais Inteligência Artificial Clássica -Métodos Clássicos -Inferência Lógica -Sistemas Especialistas 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. 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