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 É a modificação nos traços hereditários de uma população de organismos através de sucessivas gerações. 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 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? 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 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): 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 Onde se situa a CE Computação Natural Sistemas Dinâmicos Não-Lineares Computação de DNA Vida Artificial Autômatos Celulares Lógica Fuzzy Redes Neurais Artificiais 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 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: Sistemas Imunológicos Artificiais – 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 • 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 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 Algoritmos Evolucionários 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. AG Canônico 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 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) #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) #3 • Função de fitness – Mede o quão boa é uma solução para o problema 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