Frederico Gadelha Guimarães [email protected] Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Natural problem solvers: (1) O cérebro humano – neurocomputação; (2) O processo evolutivo – computação evolutiva; “Living organisms are consummate problem solvers.” (John H. Holland) Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Antiguidade: Anaximandro de Mileto (610-546 AC); ◦ “Os animais nasceram do lodo marinho e os homens vieram dos peixes” Século XVIII: Pierre Maupertuis (1745); ◦ “as primeiras formas de vida apareceram por geração espontânea, a partir de combinações aleatórias de matérias inertes, moléculas ou gérmens. A partir dessas primeiras formas de vida, uma série de mutações fortuitas engendrou uma multiplicação sempre crescente de espécies.” Erasmus Darwin (1796), “Zoonomia”, abordava a transformação das espécies; Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) 1809: Jean-Baptiste Lamarck (Philosophie Zoologique); 1831: Charles Darwin parte em uma viagem de 5 anos no HMS Beagle; 1844: ensaio não publicado de Charles Darwin – formulação; 1858: Darwin recebe o manuscrito de Alfred Russel Wallace; 1859: Publicação de um artigo conjunto (Darwin e Wallace); 1859: publicação do livro A Origem das Espécies; 1865: Gregor Mendel (hereditariedade discreta, só redescoberto em 1900); 1930's: J.B.S. Haldane, Sewall Wright, and Ronald Fisher – genética populacional, reconciliação da evolução com a genética mendeliana, moderna síntese evolutiva; 1944: Oswald Avery, identificação do DNA como agente da hereditariedade; 1953: James Watson e Francis Crick – descoberta da estrutura do DNA; Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) O que Darwin realmente propôs? Darwin apresentou uma teoria para explicar a existência de uma variedade (diversidade) tão grande de seres vivos (organismos) na natureza. Sua teoria apresenta a “seleção natural” como o principal mecanismo para a manutenção das variações favoráveis à sobrevivência e reprodução de um organismo em seu ambiente. O acúmulo destas variações favoráveis através da seleção natural permite, ao longo de um grande intervalo de tempo, o aparecimento de novos organismos tão distintos de seus antecedentes a ponto de poderem ser caracterizados como uma nova espécie; Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Os organismos mais aptos a um determinado ambiente ou estilo de vida, tendem a se reproduzir mais, propagando as características que conferem essas aptidões ao indivíduo; Componentes: Reprodução, Hereditariedade, Variação, Pressão Seletiva; Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) O arcabouço da moderna teoria evolutiva descreve mecanismos naturais responsáveis pela geração de complexidade, especificamente um mecanismo de hereditariedade com variação e um mecanismo de seleção natural dos mais aptos; O aumento da complexidade e diversidade dos seres vivos ao longo dos últimos 3,5 bilhões de anos é um fato inescapável – a teoria da evolução por seleção natural é a teoria que explica esse fato, sendo suportada mutuamente por numerosas evidências independentes; Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) O papel que a teoria da evolução ocupa na biologia é indiscutível: “Nothing in biology makes sense except in the light of evolution.” (Dobzhansky, 1977) “There is no area of biology in which evolution has not served as an ordering principle.” (Mayr, 1963) “The theory of evolution by cumulative natural selection is the only theory we know of that is in principle capable of explaining the existence of organized complexity.” (Richard Dawkins) Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) “The most important scientific revolutions all include, as their only common feature, the dethronement of human arrogance from one pedestal after another of previous convictions about our centrality in the cosmos.” (Stephen Jay Gould) Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Moderna síntese darwiniana: “An organism is an integrated collection of problem solving devices - adaptations that were shaped by natural selection over evolutionary time to promote, in some specific way, the survival of the genes that directed their construction.” (Symons, 2005) Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) O genótipo e o fenótipo: evolução como um processo de otimização seleção Espaço de estados fenotípico p2 p1 epigenesis p1’ P Sobrevivência genética Espaço de estados genotípico reprodução g1 g1’ g2 G Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Otimização de uma topografia dinâmica em um espaço de fenótipos (Wright, 1932) Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) A seleção é um processo que resulta na manutenção ou aumento da aptidão (fitness) de uma população; Aptidão é definida como a habilidade de sobreviver e de se reproduzir em um ambiente específico; Gene é uma unidade de evolução biológica; Pleiotropia: um único gene pode afetar múltiplos traços fenotípicos; Poligenia: um traço fenotípico é influenciado por vários genes; Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Reprodução sexual Meiose: divisão com redução e possível crossover Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) A reprodução sexual tem o efeito de gerar maior diversidade genotípica e consequentemente diversidade fenotípica; Por exemplo, em humanos, dois pais podem produzir até 223 zigotos distintos somente considerando as combinações possíveis! A reprodução sexual leva a seleção sexual; Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) As origens da Computação evolutiva podem ser traçadas até a década de 1950 ◦ D.B. Fogel, “Evolutionary Computation: the Fossil Record”, IEEE Press, 1998; 1950: Alan Turing: “obvious connection between machine learning and evolution”; 1954: Nils Barriceli, primeiros experimentos de evolução artificial, evolução de estratégias em jogadores artificiais de poker; 1957: Alex Fraser, simulação de processos evolutivos; 1958: Friedberg, uma máquina de aprendizado de funções booleanas; 1960's: trabalhos voltados para biologia computacional, Hans Bremermann (algoritmo evolutivo para PPL e sistemas lineares – Bremermann’s disappointment); Ingo Rechenberg, Hans Paul Schwefel e Peter Bienert (estratégias evolutivas); 1970's: John Holland – algoritmos genéticos; Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) 515 345.025.251!! (Rechenberg e Schwefel) Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Maior desenvolvimento a partir da década de 1990, com a popularização dos algoritmos genéticos e da programação genética: David Goldberg, “Genetic Algorithms in Search, Optimization, and Machine Learning”, 1989; John Koza, “Genetic Programming: on the Programming of Computers by Means of Natural Selection”, 1992; Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) A Computação evolutiva é hoje uma área de pesquisa estabelecida, com dezenas de livros especializados; Conferências especializadas: ◦ ◦ ◦ ◦ IEEE CEC – Congress on Evolutionary Computation; ACM GECCO – Genetic and Evolutionary Computation Conference; EMO – International Conference on Evolutionary Multi-criterion Optimization; PPSN – Parallel Problem Solving from Nature; Periódicos dedicados: ◦ ◦ ◦ ◦ ◦ ◦ IEEE Transactions on Evolutionary Computation; MIT Evolutionary Computation; Genetic Programming and Evolvable Machines (Springer); Natural Computation; International Journal of Natural Computing (2010); International Journal of Applied Evolutionary Computation (2010); Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Famílias de algoritmos evolutivos: (1) Algoritmos genéticos: ◦ ◦ ◦ ◦ Codificação binária; Ênfase na representação; Seleção para reprodução proporcional à aptidão; Cruzamento possui papel primário enquanto a mutação é secundária; (2) Estratégias evolutivas: ◦ ◦ ◦ ◦ Codificação real; Otimização experimental; Basicamente mutação e recombinação (opcional); Adaptação de parâmetros; Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Famílias de algoritmos evolutivos: (3) Programação evolutiva: ◦ ◦ ◦ ◦ Codificação em máquinas de estados; Mutação possui papel primário; Adaptação da mutação; Problemas de predição; (4) Programação genética: ◦ Evolução de programas para determinadas tarefas; ◦ Codificação de estruturas em árvores; ◦ Cruzamento (quando possível) e mutação; Divisão meramente histórica! Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) O que é um algoritmo evolutivo? t=1 Selecão para reprodução Inicializar população Reprodução Selecão para sobrevivência Não FIM Sim Critério de parada? t = t+1 Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Questões de projeto em um algoritmo evolutivo: Como representar soluções candidatas do problema na forma de indivíduos (genótipo <> fenótipo)? Como definir operadores que produzam novas soluções quando aplicadas sobre indivíduos da população? Como escolher quais soluções serão utilizadas por esses operadores? Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Simulação do mimetismo em uma população de lagartixas (F. Campelo, 2009) Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Representação: Cromossomos com codificação quaternária, com 8 bits cada: Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) 30% dos indivíduos são mortos aleatoriamente (acidentes); Após a geração 25: 20% dos indivíduos restantes que apresentam maior contraste com o ambiente são comidos por predadores; Os 50% sobreviventes se reproduzem; Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Projeto de antenas para satélites e espaçonaves da NASA (projeto ST5) http://ti.arc.nasa.gov/projects/esg/research/antenna.htm Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Projeto de circuitos eletrônicos analógicos e digitais http://www.genetic-programming.com Duas patentes submetidas em 2002 Genetic Programming Inc. Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Arte evolucionária Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Peter Bentley, The Revolution of Evolution in Design: from coffee tables to Hospitals; Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Braço estabilizador de satélites – engenharia reversa; Otimização usando GA, 300 indivíduos, 3 semanas de computação em 11 workstation paralelas; Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Problemas de otimização não linear; Problemas de otimização combinatória; Otimização de programas e estruturas; Bioinformática; Mineração de dados; Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP) Visão geral da computação evolutiva Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP)