2012: Computação Natural - Slides do Curso

2,668 views
2,595 views

Published on

Conjunto completo de slides usado na disciplina Computação Natural do Programa de Pós-Graduação em Engenharia Elétrica da Universidade Mackenzie. Fonte de referência: L. N. de Castro, "Fundamentals of Natural Computing: Basic Concepts, Algorithms, and Applications", CRC Press, 2006.

Published in: Technology

2012: Computação Natural - Slides do Curso

  1. 1. Fundamentos de Computação Natural Fundamentos de Computação Natural Slides do Curso Completo Copyright© 2012 by Leandro Nunes de CastroEste material foi desenvolvido com base na seguinte referência bibliográfica: DE CASTRO, L. N.Fundamentals of Natural Computing: Basic Concepts, Algorithms, and Applications. CRC Press, 2006.A primeira versão destes slides foi gerada em 2003 ainda durante a escrita da referência básica do curso,quando a disciplina “Computação Natural” foi introduzida no Programa de Pós-Graduação em EngenhariaElétrica da Unicamp. Partes deste material foram desenvolvidas em conjunto com o Prof. Fernando José VonZuben da Unicamp, a quem atribuo os devidos créditos e agradecimentos. Versões mais atuais do materialsão utilizadas em disciplinas de pós-graduação de vários programas nacionais, incluindo o Programa de Pós-Graduação em Engenharia Elétrica (PPGEE) da Universidade Presbiteriana Mackenzie, instituição sede doautor principal. O uso deste material para fins acadêmicos é livre e gratuito, desde que sejam mantidas asinformações originais de autoria. As referências citadas e não listadas podem ser encontradas no livro textoda disciplina. O Tópico 6 (Sistemas Imunológicos Artificiais) pode ser ministrado usando um ou mais dosoutros conjuntos de slides disponíveis no Slideshare do autor: http://www.slideshare.net/lndecastro. Maisinformações sobre o tema podem ser encontradas no site do Laboratório de Computação Natural (LCoN):http://www.mackenzie.br/lcon.html.Copyright© Leandro Nunes de Castro 1
  2. 2. Fundamentos de Computação Natural Sumário do CursoTópico 1: Fundamentos de Computação Natural ........................................................................ 111. Introdução............................................................................................................................ 11 1.1. Motivação ................................................................................................................... 122. Filosofia da Computação Natural e suas Subáreas ............................................................. 18 2.1. Computação Inspirada na Biologia ............................................................................ 20 2.2. Simulação e Emulação de Fenômenos Naturais ........................................................ 21 2.3. Computação com Matéria-Prima Natural .................................................................. 213. Quando Usar a Computação Natural .................................................................................. 22Tópico 2: Conceitualização .......................................................................................................... 241. A Dificuldade da Conceitualização .................................................................................... 242. Fenômenos Naturais, Modelos e Metáforas ....................................................................... 243. Da Natureza à Computação................................................................................................. 304. Conceitos Gerais ................................................................................................................. 32 4.1. Indivíduos, Entidades e Agentes ................................................................................ 32 4.2. Paralelismo e Distributividade ................................................................................... 35 4.3. Interatividade.............................................................................................................. 36 4.4. Adaptação ................................................................................................................... 40 4.5. Realimentação (Feedback) ......................................................................................... 43 4.6. Auto-Organização ...................................................................................................... 46Copyright© Leandro Nunes de Castro 2
  3. 3. Fundamentos de Computação Natural 4.7. Complexidade ............................................................................................................ 48 4.8. Vitalismo e Reducionismo ......................................................................................... 51 4.9. Abordagens Bottom-Up e Top-Down ....................................................................... 55 4.10. Determinismo, Caos e Fractais .................................................................................. 56Tópico 3: Computação Evolutiva ................................................................................................ 601. A Origem das Espécies ....................................................................................................... 602. A Ideia Perigosa de Darwin ................................................................................................ 63 2.1. A Seleção Natural como um Processo Algorítmico .................................................. 66 2.2. Espaço de Buscas (Design Space) ............................................................................. 68 2.3. Biologia é Engenharia ................................................................................................ 693. Base Biológica .................................................................................................................... 71 3.1. Hereditariedade .......................................................................................................... 71 3.2. Do Darwinismo ao Neodarwinismo .......................................................................... 75 3.3. Terminologia biológica .............................................................................................. 76 3.4. Fenótipo x Genótipo................................................................................................... 80 3.5. Adaptação evolutiva................................................................................................... 82 3.6. Reprodução assexuada e sexuada .............................................................................. 82 3.7. Mutação ...................................................................................................................... 864. Resolução de Problemas via Métodos de Busca................................................................. 895. Algoritmos Genéticos ......................................................................................................... 94 5.1. Representação (Estrutura de Dados) .......................................................................... 95Copyright© Leandro Nunes de Castro 3
  4. 4. Fundamentos de Computação Natural 5.2. Mecanismo de Seleção ............................................................................................... 96 5.3. Operador de Recombinação (Crossover Simples) ..................................................... 98 5.4. Operador de Mutação ............................................................................................... 1006. Algoritmo Genético Modificado ....................................................................................... 1027. Da Biologia para a Computação Evolutiva ...................................................................... 1048. Escopo da Computação Evolutiva .................................................................................... 105 8.1. Aplicações em Planejamento ................................................................................... 105 8.2. Aplicações em Projeto ............................................................................................. 107 8.3. Aplicações em Simulação e Identificação ............................................................... 108 8.4. Aplicações em Controle ........................................................................................... 109 8.5. Aplicações em Classificação ................................................................................... 110Tópico 4: Redes Neurais Artificiais ........................................................................................... 1111. Base Biológica .................................................................................................................. 111 1.1. O Sistema Nervoso................................................................................................... 112 1.2. Base Biológica e Física da Aprendizagem e Memória ............................................ 1222. Redes Neurais Artificiais .................................................................................................. 123 2.1. O Neurônio Genérico em RNAs .............................................................................. 128 2.2. Arquiteturas de Rede................................................................................................ 135 2.3. Paradigmas de Aprendizagem ................................................................................. 1423. Alguns Algoritmos de Aprendizado Supervisionado ....................................................... 153 3.1. Perceptron ................................................................................................................ 153Copyright© Leandro Nunes de Castro 4
  5. 5. Fundamentos de Computação NaturalTópico 5: Inteligência de Enxame ............................................................................................. 1661. Introdução.......................................................................................................................... 1662. Algumas Ideias sobre Insetos Sociais ............................................................................... 169 2.1. Curiosidades sobre as formigas ............................................................................... 1733. Colônias de Formigas........................................................................................................ 174 3.1. Coleta de Alimento pelas Formigas ......................................................................... 176 3.2. Otimização por Colônias de Formigas .................................................................... 180 3.3. Uma Simulação de Vida Artificial .......................................................................... 182 3.4. Algoritmo Simples de Otimização por Colônias de Formigas ................................ 185 3.5. Algoritmo Genérico de Otimização por Colônias de Formigas .............................. 188 3.6. Exemplo de Aplicação ............................................................................................. 191 3.7. Clusterização de Corpos e Organização de Larvas ................................................. 197 3.8. Clusterização por Colônias de Formigas ................................................................. 199 3.9. Algoritmo Simples de Clusterização (ACA) ........................................................... 200 3.10. Exemplos de Aplicação............................................................................................ 2074. Robótica de Enxame ......................................................................................................... 214 4.1. Coleta de Alimento pelas Formigas ......................................................................... 218 4.2. Clusterização de Objetos.......................................................................................... 222 4.3. Transporte Coletivo de Presas ................................................................................. 2265. Adaptação Social do Conhecimento ................................................................................. 236 5.1. Algoritmo de Otimização por Partículas ................................................................. 238Copyright© Leandro Nunes de Castro 5
  6. 6. Fundamentos de Computação Natural 5.2. Escopo de Aplicação ................................................................................................ 244 5.3. De Sistemas Sociais a Enxames de Partículas ......................................................... 245Tópico 7: Geometria Fractal da Natureza .................................................................................. 2461. Introdução.......................................................................................................................... 2482. A Geometria Fractal da Natureza ..................................................................................... 249 2.1. Autossimilaridade .................................................................................................... 251 2.2. Alguns Fractais Pioneiros ........................................................................................ 253 2.3. Dimensão e Dimensão Fractal ................................................................................. 2593. Autômatos Celulares ......................................................................................................... 266 3.1. O Exemplo Mais Simples ........................................................................................ 268 3.2. Definição Formal ..................................................................................................... 269 3.3. Escopo de Aplicação ................................................................................................ 2714. Sistemas L (L-Systems) .................................................................................................... 272 4.1. Conceitos sobre Sistemas de Produção e Gramáticas ............................................. 272 4.2. Sistemas DOL .......................................................................................................... 274 4.3. Gráfico Tartaruga (Turtle Graphics) ........................................................................ 277 4.4. Modelos de Arquiteturas de Plantas ........................................................................ 280 4.5. Escopo dos Sistemas L............................................................................................. 2845. Sistemas de Funções Iterativas ......................................................................................... 284 5.1. Fundamentos Teóricos ............................................................................................. 285 5.2. Sistemas de Funções Iterativas (IFS) ....................................................................... 288Copyright© Leandro Nunes de Castro 6
  7. 7. Fundamentos de Computação Natural 5.3. Autosimilaridade e Autoafinidade Revisitadas ....................................................... 2936. Movimento Browniano ..................................................................................................... 294 6.1. Fractais Aleatórios na Natureza e Movimento Browniano ..................................... 295 6.2. Movimento Browniano Fracionário ........................................................................ 303 6.3. Escopo do MBF ....................................................................................................... 3087. Sistemas de Partículas ....................................................................................................... 310 7.1. Conceitos Básicos .................................................................................................... 311 7.2. Modelo Básico ......................................................................................................... 313 7.3. Simulando Fogos de Artifício .................................................................................. 315 7.4. Escopo dos Sistemas de Partículas .......................................................................... 3178. Da Geometria Natural à Geometria Fractal ...................................................................... 3179. Escopo da Geometria Fractal ............................................................................................ 319Tópico 8: Vida Artificial ............................................................................................................ 3221. Introdução.......................................................................................................................... 322 1.1. Algumas Definições ................................................................................................. 322 1.2. Weak ALife × Strong ALife .................................................................................... 3252. Conceitos e Características da ALife ................................................................................ 326 2.1. ALife e Computação Inspirada na Natureza............................................................ 326 2.2. Vida e Organismos Artificiais ................................................................................. 327 2.3. Vida Artificial e Biologia......................................................................................... 330 2.4. Modelos e Características da Vida Artificial Computacional ................................. 333Copyright© Leandro Nunes de Castro 7
  8. 8. Fundamentos de Computação Natural 2.5. Vida Artificial como Sistemas Complexos Adaptativos ......................................... 3343. Exemplos de Projetos de Vida Artificial .......................................................................... 335 3.1. Coletivos: Revoadas, Grupos e Cardumes .............................................................. 335 3.2. Biomorphs (Bioformas) ........................................................................................... 338 3.3. Vírus Computacionais .............................................................................................. 343 3.4. Síntese de Comportamentos Emocionais................................................................. 346 3.5. O Robô Cachorro AIBO da Sony® .......................................................................... 350 3.6. Construção de Ninhos de Abelhas e Vespas ........................................................... 352 3.7. Criaturas ................................................................................................................... 357 3.8. Peixes Artificiais ...................................................................................................... 359 3.9. Tartarugas, Cupins e Engarrafamentos de Trânsito ................................................ 362 3.10. Simulações com Autômatos Celulares .................................................................... 363 3.11. Framsticks ................................................................................................................ 3714. Escopo da Vida Artificial .................................................................................................. 372Tópico 9: Computação de DNA ................................................................................................ 3731. Introdução.......................................................................................................................... 373 1.1. Computação de DNA x Computadores Tradicionais .............................................. 3742. Conceitos Básicos de Biologia Molecular ........................................................................ 375 2.1. A Molécula de DNA ................................................................................................ 375 2.2. Manipulando o DNA................................................................................................ 3813. Modelos Baseados em Filtragem ...................................................................................... 387Copyright© Leandro Nunes de Castro 8
  9. 9. Fundamentos de Computação Natural 3.1. O Experimento de Adleman .................................................................................... 387 3.2. A Solução de Lipton para o Problema SAT ............................................................ 396 3.3. Linguagem de Programação de Tubos de Ensaio .................................................... 4034. Um Breve Resumo dos Modelos Formais ........................................................................ 4115. Computadores Universais de DNA................................................................................... 4146. Escopo da Computação de DNA ...................................................................................... 4197. Discussão ........................................................................................................................... 421Tópico 10: Computação Quântica ............................................................................................. 4241. Princípios de Mecânica Quântica...................................................................................... 424 1.1. A Notação de Dirac .................................................................................................. 424 1.2. Superposição Quântica............................................................................................. 426 1.3. Produtos Tensores .................................................................................................... 426 1.4. Emaranhamento (Entanglement) ............................................................................. 428 1.5. Evolução (Dinâmica) ............................................................................................... 430 1.6. Medição .................................................................................................................... 432 1.7. Teorema ‘No-Cloning’............................................................................................. 4332. Informação Quântica ......................................................................................................... 435 2.1. Bits e Bits Quânticos ................................................................................................ 435 2.2. Múltiplos Bits e Qubits ............................................................................................ 437 2.3. Portas Lógicas e Portas Quânticas ........................................................................... 440 2.4. Circuitos Quânticos .................................................................................................. 446Copyright© Leandro Nunes de Castro 9
  10. 10. Fundamentos de Computação Natural3. Exemplos de Aplicação ..................................................................................................... 448 3.1. Codificação Densa ................................................................................................... 449 3.2. Teletransporte Quântico ........................................................................................... 452Copyright© Leandro Nunes de Castro 10
  11. 11. Fundamentos de Computação Natural Tópico 1: Fundamentos de Computação Natural1. Introdução• Durante os primeiros anos da humanidade os recursos naturais eram usados para alimentação e proteção.• Após algum tempo aprendemos a modificar e controlar a natureza, produzindo alimentos, criando animais, construindo artefatos, controlando o fogo, etc.• Mais recentemente passamos a observar e estudar fenômenos físicos, químicos e biológicos com o objetivo de compreender melhor o funcionamento da natureza. o Exemplo: estudos sobre as leis do movimento e gravidade nos permitiram projetar aviões.• Apesar de todos os avanços anteriores, foi o desenvolvimento tecnológico que alterou drasticamente nossa interação com a natureza.Copyright© Leandro Nunes de Castro 11
  12. 12. Fundamentos de Computação Natural• Ela permitiu o uso da natureza como fonte de inspiração (metáfora) para o desenvolvimento de técnicas de solução de problemas; simular e emular fenômenos e mecanismos naturais em computador; e utilizarmos novos materiais para computar. 1.1. Motivação• A computação natural é constituída por novas abordagens de computação caracterizadas por uma maior proximidade com a natureza.• Seus resultados e transformações já afetam nossas vidas, mesmo sem percebermos, e podem vir a ser ainda mais marcantes: o A computação natural já se encontra em máquinas de lavar roupas, trens, brinquedos, aparelhos de ar-condicionado, filmes, jogos eletrônicos, etc.• Existem várias razões para se estudar a computação natural: o Possibilidade de desenvolver novas ferramentas computacionais para a solução de problemas complexos (de engenharia);Copyright© Leandro Nunes de Castro 12
  13. 13. Fundamentos de Computação Natural o A possibilidade de projetar dispositivos (computacionais) que simulam, emulam, modelam e descrevem sistemas naturais; o A possibilidade de sintetizar novas formas de vida; e o A possibilidade de utilizar materiais e mecanismos naturais, como cadeias de DNA e dispositivos quânticos, como novos paradigmas de computação em substituição aos computadores atuais baseados em silício.• Exemplos de objetos inspirados na natureza: o Velcro (plantas); Coletes a prova de bala (teias de aranha); Sonares (morcegos); Aviões (pássaros); Submarinos (peixes); etc.• Além disso, a observação da natureza permitiu o desenvolvimento de diversas leis e teorias sobre como a natureza opera. Por exemplo, as leis da física: o Leis da termodinâmica (conservação, entropia, e zero absoluto); leis do movimento (leis de Newton); leis do eletromagnetismo (leis de Maxwell); etc.Copyright© Leandro Nunes de Castro 13
  14. 14. Fundamentos de Computação Natural• A computação natural pode ser vista como uma versão computacional do processo de extração de ideias da natureza para o desenvolvimento de sistemas “artificiais”, ou então a utilização de materiais e mecanismos naturais para realizar computação.• É importante salientar que a palavra “artificial” neste contexto significa apenas que os sistemas são desenvolvidos por seres humanos ao invés de serem resultantes de processos naturais.• A computação natural pode ser dividida em três grandes partes: o Computação inspirada na natureza: utiliza a natureza como fonte de inspiração para o desenvolvimento de novas técnicas de solução de problemas; o Simulação e emulação da natureza utilizando a computação: trata-se basicamente de um processo de síntese que objetiva criar formas, padrões e comportamentos similares àqueles conhecidos na natureza. Além disso, algumas áreas visam o desenvolvimento de organismos artificiais; eCopyright© Leandro Nunes de Castro 14
  15. 15. Fundamentos de Computação Natural o Computação com materiais naturais: corresponde ao uso de um novo tipo de matéria prima para computar. Trata-se de um novo paradigma de computação que vem com o objetivo principal de substituir a tecnologia de silício empregada atualmente. Computação Natural PARTE I PARTE II PARTE III Computação Inspirada Simulação e Emulação Computação com Novos na Natureza da Natureza Materiais Naturais Figura 1: Três principais vertentes da computação natural.Copyright© Leandro Nunes de Castro 15
  16. 16. Fundamentos de Computação Natural• Sendo assim, é possível definir a computação natural como sendo a linha de pesquisa que, baseada ou inspirada na natureza: 1) permite o desenvolvimento de novas ferramentas de computação (em software e/ou hardware) para a solução de problemas; 2) resulta em processos de síntese de padrões, formas, comportamentos e organismos; e 3) que utiliza matéria-prima natural para o desenvolvimento de novos tipos de computadores.• Portanto, a computação natural é uma linha de pesquisa que depõe contra a especialização de disciplinas.• Ela mostra, com suas três principais áreas de atuação, que o conhecimento em diversas linhas de pesquisa é necessário para uma maior compreensão da natureza, para o estudo e simulação de sistemas e processos naturais, e para o desenvolvimento de novos paradigmas de computação.• Físicos, químicos, engenheiros, matemáticos, biólogos, etc., todos contribuem e trocam ideias para o desenvolvimento da computação natural.Copyright© Leandro Nunes de Castro 16
  17. 17. Fundamentos de Computação Natural• É importante salientar que o desenvolvimento da computação natural também resulta em benefícios para as ciências naturais (biologia, química e física). o Diversas ferramentas, algoritmos e sistemas computacionais desenvolvidos em computação natural são empregadas para solucionar problemas em áreas como biologia, bioinformática, imunologia, etc., e também podem ser empregados como modelos abstratos de fenômenos naturais, podendo resultar assim em um melhor entendimento da natureza.• Este curso visa fornecer uma visão geral dos fundamentos da ampla área de computação natural, apresentando conceitos básicos, pseudocódigos para algoritmos, discussões teóricas e filosóficas sobre temas específicos, guiando os alunos para a literatura relevante e sites na Internet onde procurar informações de qualidade sobre os tópicos abordados, e propondo uma série de atividades teóricas, filosóficas e computacionais para garantir uma maior fixação dos conceitos abordados.Copyright© Leandro Nunes de Castro 17
  18. 18. Fundamentos de Computação Natural• Este curso não trata os conceitos mais avançados das áreas de computação natural estudadas.2. Filosofia da Computação Natural e suas Subáreas• Como é possível descobrir regras e mecanismos naturais que podem ser úteis sob uma perspectiva computacional?• As explicações científicas têm sido dominadas pela formulação de princípios e regras que governam o comportamento de um dado sistema (fenômeno).• A computação natural geralmente enfatiza modelos altamente simplificados e abstratos da natureza. (A lâmina de Occam – Occam’s razor)• As razões para um tratamento simplificado são várias: o Muitas simplificações são necessárias para tornar a computação tratável; o Pode ser vantajoso destacar as características mínimas de um sistema que permitem o uso de algum de seus aspectos particulares;Copyright© Leandro Nunes de Castro 18
  19. 19. Fundamentos de Computação Natural o O uso de ‘modelos’ simplificados é suficiente para atingir os objetivos esperados; e o Nem sempre são conhecidos os detalhes do fenômeno/sistema natural observado/estudado.• Foco do curso: o Extração de ideias e abstrações; o Aspectos de projeto da computação natural; e o Desenvolvimento e uso de ferramentas computacionais inspiradas na natureza.Copyright© Leandro Nunes de Castro 19
  20. 20. Fundamentos de Computação Natural Observações empíricas experimentais Síntese de Estudos fenômenos Novas formas Computação de resolver natural problemas Estudos teóricos Novos paradigmas de computação Outras linhas de pesquisa Figura 2: Integração de linhas de pesquisa para o desenvolvimento da computação natural. 2.1. Computação Inspirada na Biologia• Este curso irá abordar quatro tópicos da computação inspirada na biologia: o Computação evolutivaCopyright© Leandro Nunes de Castro 20
  21. 21. Fundamentos de Computação Natural o Inteligência de Enxame o Neurocomputação o Sistemas Imunológicos Artificiais2.2. Simulação e Emulação de Fenômenos Naturais• Tópicos a serem abordados: o Vida artificial o Geometria fractal2.3. Computação com Matéria-Prima Natural• Tópicos a serem abordados: o Computação de DNA o Computação quânticaCopyright© Leandro Nunes de Castro 21
  22. 22. Fundamentos de Computação Natural3. Quando Usar a Computação Natural• As técnicas que compõem a computação natural correspondem, quase invariavelmente, a técnicas alternativas.• Isso significa que, em muitos casos, há outras formas de resolver o mesmo problema, sintetizar o mesmo fenômeno e realizar a mesma computação.• Portanto, é necessário investigar com cuidado se há ou não a necessidade de aplicar uma técnica de computação natural a um dado problema.• Algumas dicas. A computação natural pode ser usada quando: o O problema a ser resolvido é complexo; ou seja, envolve um grande número de variáveis, uma grande quantidade de possíveis soluções, é dinâmico, etc. o Não é possível garantir que uma solução potencial encontrada é ótima, mas é possível criar medidas de comparação entre soluções candidatas; o O problema a ser resolvido não pode ser (apropriadamente) modelado, assim como problemas de reconhecimento e classificação de padrões. Em algunsCopyright© Leandro Nunes de Castro 22
  23. 23. Fundamentos de Computação Natural casos, embora não seja possível modelar o problema é possível empregar exemplos (amostras) para ‘ensinar’ o sistema a resolver o problema; o Uma única solução não é suficiente, ou seja, quando diversidade é importante; o Sistemas físicos, químicos e biológicos precisam ser modelados ou emulados com realismo. Nem sempre a geometria Euclidiana é suficiente; o Comportamentos e padrões naturais precisam ser reproduzidos com realismo; o Os limites da tecnologia computacional atual forem atingidos.Copyright© Leandro Nunes de Castro 23
  24. 24. Fundamentos de Computação Natural Tópico 2: Conceitualização1. A Dificuldade da Conceitualização• Existe uma grande quantidade de conceitos envolvidos em computação natural.• Muitos destes conceitos são conhecidos em outras linhas de pesquisa e podem ter significados diferentes.• Um dos aspectos que deve ficar claro ao estudar este tópico é a necessidade de sermos cuidadosos com a terminologia empregada em trabalhos técnicos, como textos de tese, artigos, etc.2. Fenômenos Naturais, Modelos e Metáforas• O enfoque deste curso está na utilização da natureza como fonte de inspiração para a computação natural.Copyright© Leandro Nunes de Castro 24
  25. 25. Fundamentos de Computação Natural• O termo modelo é geralmente utilizado para se referir a uma descrição (esquemática) de um sistema, uma teoria, ou um fenômeno, levando em consideração suas propriedades conhecidas ou inferidas, e que pode ser utilizado para um estudo mais aprofundado sobre suas características.• Nas ciências naturais (biologia, química e física), modelos geralmente são utilizados com vários propósitos: o Através da modelagem e identificação de um sistema é possível oferecer uma melhor descrição quantitativa dele e seus resultados experimentais; o Modelos podem ajudar na análise crítica de hipóteses e na compreensão dos mecanismos naturais envolvidos; o Modelos também podem ajudar na predição de comportamentos e no projeto de experimentos; o Modelos podem ser utilizados para simular e estimular novas abordagens para o estudo de sistemas naturais; eCopyright© Leandro Nunes de Castro 25
  26. 26. Fundamentos de Computação Natural o Modelos podem permitir recuperar informações obtidas em experimentos.• A palavra metáfora se origina do grego e significa “transferência”. Uma metáfora corresponde ao uso de uma linguagem referente a um objeto A para designar outro objeto B, de forma a utilizar B para caracterizar A. Metáforas geralmente são vistas como comparações implícitas. o Exemplo 1: ela é uma flor → significando, p. ex.: ela é bela como uma flor. o Exemplo 2: “sistemas imunológicos computacionais”.• Embora metáforas possam sugerir comparações, elas são geralmente atribuições de propriedades entre entidades. o Exemplo: “redes neurais artificiais” possuem características inspiradas no sistema neural humano.• Em termos computacionais, existe uma diferença importante entre um modelo e uma metáfora.Copyright© Leandro Nunes de Castro 26
  27. 27. Fundamentos de Computação Natural o Enquanto os modelos visam descrições quantitativas de algum fenômeno, metáforas constituem geralmente abstrações e simplificações de um sistema ou processo com o objetivo de desenvolver outro sistema ou processo.• Um experimento pode ser considerado como um procedimento realizado em um ambiente controlado, com o objetivo de coletar observações, dados, ou fatos, que demonstrem fatos conhecidos ou teorias, ou que permitam e elaboração e/ou teste de teorias e hipóteses.• Exemplo de um experimento biológico: utilização de ratos para verificação da potencialidade de algumas drogas na redução da pressão arterial.• Tradicionalmente, experimentos biológicos podem ser realizados in vitro ou in vivo. o Atualmente eles também podem ser realizados in silico utilizando modelos.• Há importantes diferenças conceituais entre os termos experimento, simulação, emulação e realização (realization).Copyright© Leandro Nunes de Castro 27
  28. 28. Fundamentos de Computação Natural• Uma simulação tem como principal objetivo predizer aspectos comportamentais de um fenômeno através da criação de um modelo aproximado deste fenômeno.• Isso pode ser feito através da criação de um modelo físico, escrevendo-se um programa computacional, utilizando-se um pacote de simulação específico, etc. o Exemplo: simulação de acidente de automóveis.• Todos os passos de uma simulação devem ser cuidadosamente verificados de forma a garantir uma fiel reprodução do fenômeno simulado.• A realização de um sistema ou organismo corresponde ao desenvolvimento de um modelo material literal que implementa certas funções do sistema ou organismo original.• Uma realização é avaliada, primariamente, pela sua fidelidade como uma implementação de uma especificação de projeto. o Um sistema ou função é usado para realizar um outro quando ele se comporta exatamente como o outro.Copyright© Leandro Nunes de Castro 28
  29. 29. Fundamentos de Computação Natural• Emular um sistema é imitar ou reproduzir suas funções usando outro sistema ou meio. o Exemplo: emular um computador através de um programa executado em outro computador.• Emulamos um sistema como uma forma de substituí-lo, enquanto simulamos um sistema se o objetivo é, por exemplo, analisá-lo ou estudá-lo.• Devido às diferenças de objetivo e níveis de detalhes incorporados, a maioria dos “modelos” propostos em computação natural é denominada metáfora, simulação, emulação, ou simplesmente abstração da natureza.• Além disso, a computação natural geralmente emprega abordagens distintas daquelas comuns nas ciências naturais.• A biologia teórica costuma desenvolver modelos baseados em equações diferencias ordinárias (EDO) e/ou simulações de Monte Carlo.Copyright© Leandro Nunes de Castro 29
  30. 30. Fundamentos de Computação Natural o Exemplo de EDO: modelo de uma colônia de formigas seguindo uma trilha de feromônio. Quanto mais feromônio uma formiga encontra, mais rápido ela anda: dx/dt = kP, onde dx/dt corresponde a velocidade (dx: espaço, dt: tempo), k é uma constante de proporcionalidade, e P é o nível de feromônio.3. Da Natureza à Computação• Na maioria dos casos, o primeiro passo para se desenvolver uma ferramenta de computação natural é observar a natureza e seus modelos teóricos objetivando encontrar algum mecanismo passível de simulação, emulação, ou implementação computacional. o Exemplo: objetivando criar um cachorro “artificial” que se comporte de forma similar a um cachorro doméstico, podemos observar comportamentos básicos e instintivos de um cachorro real.Copyright© Leandro Nunes de Castro 30
  31. 31. Fundamentos de Computação Natural• Entretanto, uma das dificuldades em se criar novas abordagens de computação natural reside no fato de que geralmente é difícil compreender de forma direta como a natureza funciona. o Exemplo: embora já conheçamos alguns mecanismos básicos de processamento e transmissão de sinais no cérebro humano, está muito longe do nosso alcance desvendar todos seus mistérios, principalmente algumas características cognitivas como amar e sentir ódio.• A utilização da natureza como fonte de inspiração gera questões importantes de ordem prática: o Será que imitar a natureza é a melhor abordagem? o Até que ponto o sistema desenvolvido deve ser fiel à sua fonte de inspiração (natureza)?• Projetar um mecanismo de computação natural não deixa de ser uma tarefa de engenharia.Copyright© Leandro Nunes de Castro 31
  32. 32. Fundamentos de Computação Natural o Propriedades e dispositivos físicos, mecânicos, estruturais e comportamentais da natureza são utilizados para desenvolver ferramentas de solução de problemas, novas formas de vida, e novos paradigmas de computação.• Embora seja muito difícil fornecer uma estrutura formal e genérica para o desenvolvimento de ferramentas de computação natural, boa parte de suas diversas linhas de pesquisa permite a especificação de um conjunto de características e procedimentos básicos de projeto.4. Conceitos Gerais4.1. Indivíduos, Entidades e Agentes• Existe uma vasta literatura sobre agentes e teoria de agentes.• Uma das principais características da computação natural está na coletividade: populações de indivíduos, colônias de insetos, revoadas de pássaros, genomas, repertórios de células, redes de neurônios, etc.Copyright© Leandro Nunes de Castro 32
  33. 33. Fundamentos de Computação Natural• Todos estes fenômenos, processos, sistemas, etc., são compostos por diversas entidades ou componentes.• Neste curso, a palavra agente será utilizada, juntamente com as palavras entidade e componente para descrever os vários elementos que compõem um determinado sistema.• Atualmente, o termo agente é utilizado para referenciar qualquer coisa entre uma mera sub-rotina de um programa computacional até um organismo inteligente.• Intuitivamente, para algo ser considerado um agente ele deve apresentar algum grau de autonomia ou identidade, ou seja, ele deve ser distinguível do seu ambiente por alguma barreira física, química ou temporal.• É interessante perceber que num sistema baseado em agentes simples, interagindo localmente, é possível observar um comportamento sinergético que resulta em comportamentos globais muito mais complexos do que aqueles observados nos agentes individuais.Copyright© Leandro Nunes de Castro 33
  34. 34. Fundamentos de Computação Natural• A teoria de agentes apresenta uma série de definições sobre o que é um agente: o “Um agente é qualquer coisa que pode perceber o ambiente através de seus sensores e atuar neste ambiente através de seus atuadores.” (Russel & Norvig, 1995) o “Um agente deve apresentar as seguintes características: autonomia, habilidade social, reatividade, pró-atividade.” (Wooldridge & Jennings, 1995) o “Um agente autônomo é um sistema situado dentro e que faz parte de um ambiente, que é capaz de sentir e atuar neste ambiente, ao longo do tempo, em busca da realização de seus próprios objetivos.” (Franklin & Graesser, 1997)• Tipos de agentes: biológicos (formigas, neurônios, etc.), físicos (robôs, etc.), virtuais (Tamagotchi, etc.), etc.Copyright© Leandro Nunes de Castro 34
  35. 35. Fundamentos de Computação Natural Figura 3: (a) Agentes naturais. (b) Agente artificial.4.2. Paralelismo e Distributividade• Existem vários exemplos conhecidos envolvendo o processamento de mais de um evento ou processo ao mesmo tempo e de forma distribuída. O processamento paralelo e distribuído compõe boa parte da natureza. o Exemplos: organismos sociais, genomas, evolução das espécies, etc.Copyright© Leandro Nunes de Castro 35
  36. 36. Fundamentos de Computação Natural4.3. Interatividade• Os componentes da maioria dos sistemas naturais possuem a capacidade de interagir com outros componentes e com o ambiente.• Podem existir diversas formas de interação entre indivíduos: reprodutiva, simbiótica, competitiva, cooperativa, parasítica, etc.• Em um nível macroscópico, um resultado desta interatividade é a disputa por uma quantidade limitada de recursos naturais, ou seja, a luta pela sobrevivência. o Indivíduos mais bem adaptados ao seu ambiente local possuem maior chances de sobrevivência e reprodução, propagando assim seu material genético.• Sistemas, organismos e comportamentos complexos são resultados da interação (dentre outros processos) entre elementos.• A interação entre elementos e partes de um sistema também permite a redistribuição de tarefas. o Exemplo: recuperação de pacientes com cérebros danificados.Copyright© Leandro Nunes de Castro 36
  37. 37. Fundamentos de Computação Natural• Existem alguns tipos particulares de interação entre elementos que são importantes para a computação natural: reprodução, sinalização molecular, interação via conexões e estigmergia.Conectividade• Sistemas conexionistas empregam um tipo de representação onde a informação é codificada através de nós e conexões de uma rede de elementos básicos, também denominados de unidades.• O termo conexionismo surgiu em meados dos anos 1980 para descrever modelos cognitivos em forma de rede, baseados nos padrões de ativação de numerosas unidades simples de processamento de informação.• Entretanto, qualquer sistema estruturado sob a forma de um grafo pode ser considerado um sistema conexionista. o Exemplos: redes neurais e redes imunológicas.• Os sistemas conexionistas possuem uma série de peculiaridades:Copyright© Leandro Nunes de Castro 37
  38. 38. Fundamentos de Computação Natural o As conexões estabelecem caminhos para a interação entre unidades: duas unidades só podem interagir através da conexão que as liga; o A conexão é geralmente um elemento ativo da interação, ou seja, ela não apenas especifica quem interage com quem, mas ela também quantifica esta interação; o A interação direta via conexão também fornece uma estrutura ou arquitetura para o sistema. Esta estrutura pode, por exemplo, refletir a estrutura do ambiente no qual a rede está inserida.Estigmergia• Grassé (1959) introduziu o conceito de estigmergia para se referir à forma coordenada de construção do ninho dos cupins do gênero Macrotermes.• Ele percebeu como os cupins atuam de forma independente em uma estrutura sem se comunicar diretamente uns com os outros.Copyright© Leandro Nunes de Castro 38
  39. 39. Fundamentos de Computação Natural• O conceito de estigmergia fornece um mecanismo geral que relaciona comportamentos individuais e globais: um comportamento individual modifica o ambiente que resulta em um novo comportamento individual modificado.• Sendo assim, o ambiente media a comunicação ou interação entre os indivíduos, ou seja, existe uma forma de interação indireta entre os indivíduos.• Meios diretos de interação entre os cupins são antenação, trofalaxia (troca de comida e/ou líquidos), contato mandibular, contato visual, etc.Copyright© Leandro Nunes de Castro 39
  40. 40. Fundamentos de Computação Natural Figura 4: Construção do ninho por cupins. Quando a quantidade de material atinge um nível crítico, o próprio processo de construção estimula o trabalho de outros cupins.4.4. Adaptação• Adaptação pode ser definida como a habilidade de um sistema ajustar sua resposta a estímulos ambientais. Adaptação é um sinônimo de mudança, variação. UmCopyright© Leandro Nunes de Castro 40
  41. 41. Fundamentos de Computação Natural agente que sofre modificação, de forma a se tornar melhor preparado para uma situação ou aplicação, torna-se mais adaptado a este novo cenário.• Existem muitas palavras que podem ser interpretadas como sinônimos da palavra adaptação, por exemplo, evolução, aprendizagem e auto-organização.• Entretanto, estes conceitos também podem ser vistos como sendo resultantes de um processo adaptativo.Aprendizagem• A aprendizagem corresponde ao ato, processo ou experiência de adquirir conhecimento, compreensão, capacidade ou abilidade, através de experiência, estudo, ou interações.• Sistemas que sofrem aprendizagem são geralmente aqueles capazes de se adaptar ou mudar seu comportamento baseado em exemplos, de forma a manipular informações.Copyright© Leandro Nunes de Castro 41
  42. 42. Fundamentos de Computação Natural• Uma virtude importante da aprendizagem baseada em adaptação é a possibilidade de resolver tarefas de processamento de informação e a capacidade de operar em ambientes dinâmicos.• A maioria dos processos de aprendizagem é gradativa, ou seja, eles não ocorrem de uma hora para outra.• Quando um sistema aprende alguma coisa, ele altera seu padrão comportamental ou alguma outra de suas características.• Existem formas de aprendizagem que não são gradativas, por exemplo, a memorização.• É importante salientar que a aprendizagem não requer consciência e nem inteligência. Animais e insetos aprendem os caminhos que devem seguir para obter comida, se reproduzir, etc.Copyright© Leandro Nunes de Castro 42
  43. 43. Fundamentos de Computação NaturalEvolução• Em sua forma mais simples, a teoria da evolução simplesmente afirma que a vida muda ao longo do tempo, com formas mais jovens descendendo de formas mais antigas.• Diferentemente da aprendizagem, a evolução requer a ocorrência de processos específicos bem definidos. Primeiramente a evolução requer uma população de indivíduos capazes de se reproduzir, sofrer variações genéticas, e seleção natural.• Na falta de qualquer uma destas características não existe evolução.4.5. Realimentação (Feedback)• Essencialmente, uma realimentação ocorre quando a resposta a um estímulo possui algum tipo de efeito sobre o próprio estímulo.• A realimentação pode ser entendida como o retorno (de uma parte) da saída de um processo ou sistema para a sua entrada, especialmente quando utilizada para manter o desempenho ou controle do sistema ou processo.Copyright© Leandro Nunes de Castro 43
  44. 44. Fundamentos de Computação Natural• A natureza da resposta determina como a realimentação é chamada: o Realimentação positiva: a resposta aumenta o estímulo original o Realimentação negativa: a resposta diminui o estímulo originalRealimentação positiva• É um tipo de processo de auto-reforço (ou crescimento) no qual quanto mais um evento ocorre, mais ele tende a ocorrer. o Exemplos: agrupamento de corpos em colônias de formigas, construção de ninhos de cupins, resposta imunológica, reprodução humana, avalanche, etc. More termites More pheromone Figura 5: Realimentação positiva no processo de construção do ninho por cupins.Copyright© Leandro Nunes de Castro 44
  45. 45. Fundamentos de Computação NaturalRealimentação negativa• A realimentação negativa opera como um regulador para a realimentação positiva de forma a manter um equilíbrio (dinâmico) do meio.• A ausência de mecanismos de realimentação negativa resultaria em sistemas instáveis ou na extinção de recursos. o Exemplos: ecossistemas, homeostase, metabolismo, termostato, etc. Too hot More cold air Pleasant temperature More hot air Too cold Figura 6: Realimentação negativa no funcionamento de um aquecedor/ar-condicionado.Copyright© Leandro Nunes de Castro 45
  46. 46. Fundamentos de Computação Natural4.6. Auto-Organização• Uma questão importante nas ciências naturais é “De onde vem a ordem que observamos na natureza?”• O mundo está cheio de sistemas, organismos, processos e fenômenos que mantêm uma grande quantidade de energia e organização interna desafiando as leis da física. o Exemplos de sistemas auto-organizados: partículas suspensas de água formando nuvens, desenvolvimento embrionário, organizações sociais, etc.• Um aspecto importante desta auto-organização é que os processos observados não estão apenas sujeitos às leis da física e à composição genética, a auto-organização é um fenômeno que emerge espontaneamente.• A auto-organização se refere a um amplo processo de formação de padrões em sistemas físicos e biológicos.Copyright© Leandro Nunes de Castro 46
  47. 47. Fundamentos de Computação Natural o Exemplos: formas em dunas de areia, ondas produzidas por uma torcida de futebol, reações químicas formando espirais, etc.• A formação de padrões em sistemas auto-organizados ocorre através de interações internas ao sistema, sem nenhuma intervenção externa direta.• No sentido adotado aqui, um padrão corresponde a um arranjo espacial e/ou temporal organizado de objetos.• O conceito de auto-organização também pode ser entendido fornecendo-se contraexemplos. o Contraexemplos: soldados marchando, homens trabalhando em uma construção, etc.• Fato interessante: abelha rainha.Características da Auto-Organização• Coletividade e interatividade, dinâmica, emergência, não linearidades, complexidade, baseada em regras, retroalimentação.Copyright© Leandro Nunes de Castro 47
  48. 48. Fundamentos de Computação NaturalAlternativas a Auto-Organização• Liderança. Ex.: um capitão em um campo de batalha.• Modelo. Ex.: partitura musical.• Receita. Ex.: receita de bolo.• Fôrma ou molde. Ex.: moldes para fabricar peças de automóveis.4.7. Complexidade• Um sistema complexo pode ser definido como aquele cujas propriedades não podem ser completamente compreendidas e nem explicadas estudando-se as partes que o compõe.• De uma forma menos genérica, um sistema complexo é aquele que possui uma grande quantidade de componentes que interagem entre si e com o meio ambiente e cujo comportamento global é não linear e geralmente apresenta processos auto- organizados.Copyright© Leandro Nunes de Castro 48
  49. 49. Fundamentos de Computação Natural o Exemplos: sistema imunológico, uma célula individual, uma formiga, um relógio, etc.• A nova linha de pesquisa denominada de complexidade sugere que a organização interna de um sistema não é condição suficiente para a compreensão de como o sistema funciona. É também preciso investigar como o sistema interage com o meio ambiente e como as diversas partes componentes do sistema interagem entre si e com o meio ambiente. o Exemplo: pleiotropia e poligenia genética.• Uma das contribuições importantes da complexidade para a ciência está na sugestão e descoberta de que vários comportamentos complexos podem ser reproduzidos e/ou descritos por uma quantidade finita e, geralmente, pequena de regras simples. o Exemplo: as leis da física.Copyright© Leandro Nunes de Castro 49
  50. 50. Fundamentos de Computação Natural• Já foram discutidas as quatro principais formas de se estudar sistemas complexos: experimentação, modelagem, simulação e emulação. A computação natural utiliza todas as quatro abordagens, com maior ou menor grau de aprofundamento.• Apesar da grande simplicidade da maioria das técnicas de computação natural, elas ainda devem ser capazes de capturar características essenciais dos processos naturais envolvidos.Sistemas Complexos Adaptativos• A diferença básica entre um sistema complexo e um sistema complexo adaptativo está na capacidade de se adaptar dos sistemas adaptativos.• Embora conceitualmente esta pareça uma pequena diferença, os sistemas complexos adaptativos (chamados de CAS – complex adaptive systems) possuem maiores capacidades de extrair e processar informações, podendo, portanto, se tornar melhores adaptados ao ambiente onde estão inseridos e realizar diversas tarefas.Copyright© Leandro Nunes de Castro 50
  51. 51. Fundamentos de Computação NaturalEmergência• O conceito de emergência está intimamente relacionado com o conceito de auto- organização.• Existem diversas propriedades de um sistema ou organismo que não estão presentes e nem são diretamente deriváveis de seus componentes. Estas propriedades são ditas emergentes. o Exemplos: uma gota d’água não é uma nuvem, um neurônio não é consciente.• Praticamente todos os sistemas complexos adaptativos apresentam comportamentos emergentes.• Uma característica importante dos sistemas emergentes é o fato deles serem governados por regras.4.8. Vitalismo e Reducionismo• As doutrinas vitalistas clássicas do século 18 eram baseadas na ideia de que a vida era devida a espíritos imateriais.Copyright© Leandro Nunes de Castro 51
  52. 52. Fundamentos de Computação Natural• Por outro lado, a visão reducionista da vida sugeria que ela poderia ser descrita por processos químicos e físicos.• Por muito tempo os cientistas acreditavam e se empolgavam com a ideia de que a vida poderia ser totalmente explicada pelo reducionismo, ou seja, através do estudo dos componentes orgânicos mais fundamentais da matéria. Exemplos: o Os físicos buscavam as partículas básicas da matéria e as forças que atuam sobre estas partículas; o Os químicos tentavam entender as ligações químicas entre os diversos elementos básicos; e o Os biólogos destrinchavam as sequências de DNA e outras estruturas moleculares com o objetivo de compreender o organismo.• Com o avanço das ciências fica cada vez mais claro que muitas das propriedades, fenômenos e comportamentos observados na natureza não podem serCopyright© Leandro Nunes de Castro 52
  53. 53. Fundamentos de Computação Natural apropriadamente e nem completamente explicados via reducionismo. Processos auto-organizados e emergentes são ubíquos na natureza.• Os pesquisadores verificaram que o reducionismo é apenas uma das ferramentas necessárias para a compreensão da vida.• (Talvez a nova “ciência” denominada de complexidade ajude-nos a compreender melhor como a estrutura básica da matéria, juntamente com os fenômenos emergentes e auto-organizados, levam a vida). Século 19 Vitalismo Reducionismo Deus é responsável por tudo Deus é responsável por tudo Alma = espíritos da vida = imaterial Alma imaterial ≠ espíritos da vida ≠ matéria Fenômenos mentais e da vida são resultado A maioria dos fenômenos pode ser descrita da alma, que não pode ser descrita por espíritos materiais de vida cientificamente A vida pode ser teleologicamente formada e Grande parte da vida é determinada de forma conduzida causal e passível de descrições físicas e químicasCopyright© Leandro Nunes de Castro 53
  54. 54. Fundamentos de Computação Natural Meados do século 20 Vitalismo Reducionismo Deus com uma pequena significância Nenhum Deus Alma ≠ (espíritos da vida = energia Nenhuma alma nervosa) Alguns fenômenos não podem ser descritos Todos os fenômenos podem ser descritos cientificamente cientificamete A vida é teleologicamente conduzida Determinismo causal Matéria inorgânica ≠ material orgânica Matéria inorgânica = material orgânicaCopyright© Leandro Nunes de Castro 54
  55. 55. Fundamentos de Computação Natural4.9. Abordagens Bottom-Up e Top-Down• Uma abordagem reducionista é, de alguma forma, uma abordagem bottom-up. Abordagens bottom-up são aquelas voltadas ao estudo das partes constituintes de um determinado fenômeno, processo ou sistema.• Entretanto, as abordagens bottom-up não sugerem, como no caso do reducionismo, que o fenômeno em estudo pode ser completamente compreendido e descrito por meio da análise de seus componentes fundamentais.• Em contraste com as técnicas clássicas de inteligência artificial, a computação natural é, em sua grande maioria, baseada em abordagens bottom-up.• O termo bottom-up também pode ser utilizado para descrever princípios de projetos de sistemas. Por exemplo, um projeto do tipo bottom-up é aquele no qual as partes do sistema vão sendo adicionadas gradativamente. o Exemplos: redes neurais, castelo de areia, evolução da vida (processo gradativo de adaptação ao ambiente).Copyright© Leandro Nunes de Castro 55
  56. 56. Fundamentos de Computação Natural• As abordagens top-down, por outro lado, são baseadas na ideia de que é possível olhar para o sistema como um todo e desvendar a forma com que ele opera. o Exemplo: as técnicas clássicas de IA tentavam modelar comportamentos inteligentes através da definição de regras específicas seguidas de mecanismos genéricos de inferência.• Assim como no caso das abordagens bottom-up, também é possível utilizar a terminologia top-down para descrever princípios de projetos. o Exemplos: redes neurais, castelo de areia, etc.4.10. Determinismo, Caos e Fractais• Originalmente considerava-se que um sistema determinístico era aquele cuja evolução temporal podia ser medida precisamente; todos os eventos são consequências inevitáveis de causas antecedentes suficientes.• Atualmente, este tipo de sistema determinístico é dito ser previsível.Copyright© Leandro Nunes de Castro 56
  57. 57. Fundamentos de Computação Natural• Quando é possível prever o desenvolvimento ou evolução temporal de um sistema para algumas condições específicas, ele é dito ser determinístico e previsível.• Sistemas com estas características inviabilizam comportamentos emergentes e, portanto, são pouco estudados em computação natural.• Por outro lado, comportamentos emergentes são geralmente imprevisíveis e, portanto, difíceis de terem seus aspectos formais estudados. o Este fato pode se tornar uma dificuldade para a aceitação destas novas técnicas por parte da comunidade em geral, principalmente quando o objetivo principal envolve a resolução de problemas e descrição de aspectos formais de sistemas.• Um dos resultados mais interessantes e excitantes do desenvolvimento científico atual, principalmente na física, está na remodelagem da relação entre determinismo e capacidade de predição.• Atualmente é de consenso que muitos sistemas determinísticos são imprevisíveis.Copyright© Leandro Nunes de Castro 57
  58. 58. Fundamentos de Computação Natural• Uma das dificuldades em se prever o comportamento de alguns sistemas determinísticos se deve à sensibilidade que estes apresentam às condições iniciais.• Juntamente com o tratamento dado por Poincaré para o “problema dos três corpos” (ele verificou um comportamento irregular na dinâmica de corpos celestes), o estudo feito por Hadamard sobre a sensibilidade a condições iniciais levou ao surgimento da “Teoria do Caos”.• Uma das consequências teóricas importantes da teoria do caos foi o divórcio entre determinismo e previsibilidade.• Exemplos de diversos sistemas caóticos: o Clima, mar, batimentos cardíacos, etc.• Existe todo um lado irregular da natureza (p.ex. a forma das nuvens, montanhas, etc.) cujas características têm sido mais fácil de serem entendidas a partir da teoria do caos.Copyright© Leandro Nunes de Castro 58
  59. 59. Fundamentos de Computação Natural• A teoria do caos criou novas técnicas de utilização dos computadores e diversos tipos de imagens gráficas capazes de descrever estruturas naturais.• A palavra fractal refere-se a uma nova forma de descrever, calcular, e raciocinar sobre formas irregulares, fragmentadas, quebradas, etc.• Um fractal pode ser definido como uma forma ou padrão geométrico que se repete indefinidamente (auto-similaridade) desenvolvido para representar formas e superfícies que não podem ser representadas pela geometria clássica. o Eles são usados especialmente na modelagem computacional de padrões e estruturas irregulares da natureza.Copyright© Leandro Nunes de Castro 59
  60. 60. Fundamentos de Computação Natural Tópico 3: Computação Evolutiva1. A Origem das Espécies• Darwin apresentou uma teoria para explicar o porque da 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.• Ao contrário do que muitos pensam, Darwin não apresentou uma teoria para a evolução do homem. Isso ele fez muitos anos depois (C. Darwin, The Descent of Man, and Selection in Relation to Sex, John Murray, London, 1871). DarwinCopyright© Leandro Nunes de Castro 60
  61. 61. Fundamentos de Computação Natural também não propôs uma teoria para a origem da primeira espécie, mas sim para o surgimento de novas espécies partindo de outras.• Darwin descreve o “uma lei geral, resultando na melhoria de todos os seres orgânicos: multiplique, varie, deixe os mais fortes sobreviverem e os mais fracos morrerem.”• Em resumo, a teoria Darwiniana propõe que a evolução é o resultado de uma (ou mais) população de indivíduos sujeita aos seguintes processos: o Reprodução com herança o Variação o Seleção natural• Darwin resume os seguintes argumentos em defesa da teoria da seleção natural: o Graduações na perfeição de qualquer órgão ou instinto existem ou poderiam ter existido;Copyright© Leandro Nunes de Castro 61
  62. 62. Fundamentos de Computação Natural o Todos os órgãos e instintos são variáveis; o Existe uma luta pela sobrevivência que leva a preservação das variações favoráveis à vida e reprodução de um organismo; o Os registros geológicos são imperfeitos.• Uma das capacidades marcantes de Darwin foi a de apresentar uma gama de argumentos que poderiam ser (certamente foram e ainda são) utilizados contra sua própria teoria: 1. É possível que animais com estruturas e hábitos completamente distintos sejam descendentes de um mesmo organismo? 2. Como órgãos apresentando extrema perfeição e complexidade (p. ex. os olhos) podem ser gerados por seleção natural? 3. Porque existem órgãos que, aparentemente, possuem pouca importância? 4. Instintos podem ser adquiridos e modificados por seleção natural? 5. Porque espécies quando cruzadas são estéreis, enquanto variedades não são?Copyright© Leandro Nunes de Castro 62
  63. 63. Fundamentos de Computação Natural 6. Se as espécies são descendentes de outras espécies por meio de inúmeras pequenas variações, por que não encontramos formas transicionais em registros geológicos?2. A Ideia Perigosa de Darwin• O filósofo Daniel Dennett é um ardente defensor da teoria Darwiniana, e seu livro Darwin’s Dangerous Idea: Evolution and the Meanings of Life é considerado um dos textos de ciência popular mais influentes da atualidade sobre o assunto.• Dennett apresentou, dentre outras coisas, uma visão de engenharia (computação) para a teoria da evolução proposta por Darwin que serve aos nossos propósitos.• Dennett inicia seu livro descrevendo alguns dos diversos pontos de vista sobre o mundo e suas origens antes da teoria Darwiniana. Por exemplo: o Ele cita a hipótese GAIA para o universo – o universo como um (super-) organismo;Copyright© Leandro Nunes de Castro 63
  64. 64. Fundamentos de Computação Natural o Ele também discute o filósofo Hume e sua teoria de que somente um Criador Inteligente seria capaz de produzir toda a vida que observamos.• Sob o ponto de vista de Dennett, Darwin provou através de sua teoria da seleção natural, como um Criador Não-Inteligente é capaz de produzir vida.• Sendo assim, a ideia de Darwin torna-se perigosa, pois ela vem confrontar não apenas as visões filosóficas e científicas sobre a vida, mas também as crenças de praticamente todo o mundo baseadas em uma entidade (p. ex. Deus) criador da terra e criaturas.• É importante ressaltar, entretanto, que não se trata de um livro que faz uma disputa entre ciência e religião. Pelo contrário, ele trás uma discussão bastante rica sobre como as duas podem caminhar juntas, sem uma ofuscar a outra e traçando limites entre o que é mais adequadamente explicado por cada uma delas:Copyright© Leandro Nunes de Castro 64
  65. 65. Fundamentos de Computação Natural o “Nem todos os cientistas e filósofos são ateus, e muitos que possuem suas crenças declaram que sua ideia de Deus pode viver em harmonia com, ou até encontrar suporte, na estrutura de ideias de Darwin. Sob o ponto de vista deles, Deus não é um criador antropomórfico, mas ainda assim um Deus que vale a pena ser adorado, capaz de dar consolo e significado a vida. Outros embasam sua preocupação em filosofias seculares, visões sobre o significado da vida que mantêm o autocontrole sem precisar do conceito de um Ser Supremo – que não seja o próprio Universo. Algo é sagrado para estes pensadores, mas eles não chamam isso de Deus; eles chamam de, talvez, Vida, ou Amor, ou Bondade, ou Inteligência, ou Beleza, ou Humanidade. O que ambos os grupos compartilham, apesar das diferenças em suas mais profundas crenças, é uma convicção de que a vida possui significado, que a bondade importa.”Copyright© Leandro Nunes de Castro 65
  66. 66. Fundamentos de Computação Natural• Dennett apresenta, dentre outras coisas, uma visão algorítmica (sob uma perspectiva de engenharia) para a teoria da evolução.• Dennett dividiu a ideia de Darwin em duas partes principais: o Uma que prova que as espécies atuais são descendentes “revisados” de espécies anteriores, ou seja, as espécies evoluem; o Outra que mostra como este processo evolutivo ocorre.2.1. A Seleção Natural como um Processo Algorítmico• Dennett define um algoritmo como um tipo de processo formal que pode ser utilizado na obtenção de um resultado sempre que executado ou instanciado.• A proposta de Darwin é dedutível a partir de um processo formal: o Se um conjunto de condições é atendido, então um certo resultado pode ser esperado.• Dennett argumenta que uma visão algorítmica de diversos processos expande seu escopo e fortalece ideias.Copyright© Leandro Nunes de Castro 66
  67. 67. Fundamentos de Computação Natural• Como exemplo, ele cita o caso do algoritmo de “simulated annealing” ou “recozimento simulado”, máquinas de Boltzmann e redes neurais de Hopfield.• Sob uma perspectiva de engenharia, um dos aspectos importantes enfatizados por Dennett é que, embora um bom conhecimento dos mecanismos detalhados de funcionamento de diversos processos naturais seja importante, as ideias básicas podem ser apresentadas de uma forma simples através de um processo abstrato e uma terminologia comum, ou seja, um algoritmo.• Para o caso da teoria da evolução através da seleção natural, os principais processos algorítmicos envolvidos são: o Reprodução com herança genética o Variação genética o Seleção natural• Antes da teoria Darwiniana, a visão da vida era, em essência, vitalista: o Deus, Mente, Projeto, Ordem, Caos, Nada.Copyright© Leandro Nunes de Castro 67
  68. 68. Fundamentos de Computação Natural• Após Darwin, esta visão deixou de ser do tipo top-down (partindo de um criador inteligente para os elementos mais simples), para uma visão bottom-up (partindo de estruturas muito simples que evoluíram até os seres “superiores” de hoje).• No intuito de justificar os processos vitais e reconciliar crença e ciência, muitos pensadores e cientistas propuseram então uma visão de um “Deus” criador de leis e processos que levam à origem e desenvolvimento da vida, ao invés de um “Deus” responsável pela criação direta da vida.2.2. Espaço de Buscas (Design Space)• Dennett utiliza a terminologia espaço de projeto ou espaço de buscas para denotar o espaço de todos os possíveis fenótipos que podem resultar a partir dos genótipos.• De acordo com a teoria de Darwin, quando a seleção natural é imposta sobre as variações ocorre uma movimentação mensurável no espaço de buscas. Esta movimentação pode ser vista como um processo de pesquisa e desenvolvimento (P&D) que pode resultar em uma busca ou acúmulo de projeto (otimização).Copyright© Leandro Nunes de Castro 68
  69. 69. Fundamentos de Computação Natural• Temos a intuição de que um trabalho de projeto é, de alguma forma, um trabalho inteligente. Darwin propôs que esta inteligência pode ser quebrada em partes tão pequenas e “estúpidas” de forma que elas não são reconhecidas como inteligentes, mas que distribuídas no espaço e tempo sob uma forma algorítmica podem resultar em estruturas extremamente complexas e perfeitas.2.3. Biologia é Engenharia• “O trabalho feito pela seleção natural é P&D, então biologia é fundamentalmente engenharia, uma conclusão que...esclarece alguns de nossos mais profundos enigmas. Ao adotarmos a perspectiva de engenharia, o conceito central em biologia de função e o conceito central em filosofia de significado podem ser explicados e unidos. Como nossa própria capacidade de responder e criar significado – nossa inteligência – está embasada no nosso status de produtos avançados de processos Darwinianos, a distinção entre inteligência artificial e natural desaparece. Há diferenças importantes, entretanto, entre os produtos daCopyright© Leandro Nunes de Castro 69
  70. 70. Fundamentos de Computação Natural engenharia humana e os produtos da evolução devido a diferenças nos processos que as geram. Apenas agora estamos começando a entender os grandiosos processos da evolução, e isso porque estamos direcionando os produtos de nossa própria tecnologia, computadores, para o entendimento das questões mais relevantes.”• Sendo assim, enxergar biologia como engenharia permite-nos relacionar função com projeto. O funcionamento de toda estrutura carrega implicitamente informações sobre o ambiente. Por exemplo: o A posição dos órgãos no corpo de uma serpente (distribuição e locomoção); o As asas de uma ave (aerodinâmica).• Como vimos, a teoria da seleção natural permite uma movimentação no espaço de buscas, mas em que direção (com qual objetivo)?Copyright© Leandro Nunes de Castro 70
  71. 71. Fundamentos de Computação Natural• Dennett, assim como Darwin, argumenta que a seleção natural atua de forma a privilegiar organismos cujas variações resultam num maior grau de adaptabili- dade ao ambiente.• Sendo assim, a evolução pode ser comparada a um processo de busca que visa otimizar (através dos processos de reprodução com herança genética, variação e seleção natural) a estrutura orgânica dos seres vivos a seus ambientes.3. Base Biológica3.1. Hereditariedade• A história da genética é fascinante, principalmente pela velocidade com que se evoluiu de observações a demonstrações experimentais dos mecanismos fundamentais envolvidos. Ideias de hereditariedade: datam de 6000 anos atrás.Copyright© Leandro Nunes de Castro 71
  72. 72. Fundamentos de Computação Natural• Por volta de 500 a.C. (tempo de Aristóteles), filósofos gregos, propuseram que “vapores” derivados de vários órgãos se uniam sob a ação vitalizadora do sêmen, interpretado como sangue altamente purificado. Esta ideia influiu sobre a cultura da humanidade por cerca de 2000 anos.• Neste período, defendia-se a ideia de que o sexo era determinado pela procedência do líquido seminal no homem: se do testículo direito ⇒ sexo masculino; se do testículo esquerdo ⇒ sexo feminino.• A mulher era vista apenas como uma “incubadeira” neste processo.• 1672: descoberta do óvulo pelo holandês Graaf → as fêmeas de mamíferos também apresentam ovulação!• 1675: descoberta do espermatozóide pelo holandês Von Leeuwenhoeck.• Homúnculo: ovistas e espermistas.Copyright© Leandro Nunes de Castro 72
  73. 73. Fundamentos de Computação Natural• Epigênese: teoria atual segundo a qual a constituição dos seres se inicia a partir de célula sem estrutura e se faz mediante sucessiva formação e adição de novas partes que, previamente, não existem no ovo fecundado.• 1866: ideias efetivas acerca da hereditariedade → monge agostiniano Gregor Mendel (República Tcheca). Ele atacou o problema de modo simples e lógico, escolheu material adequado, concentrou-se em poucas características contrastantes, desenvolveu um programa de cruzamentos controlados, tratou os resultados de forma eficiente e sugeriu fatores causais (hoje chamados de genes) como os responsáveis pelos fenômenos observados.• Ninguém havia chegado tão perto da compreensão real da hereditariedade (ficou faltando apenas elucidar os mecanismos celulares envolvidos), mas foram necessários mais de 30 anos para que a comunidade científica se desse conta da importância e eficácia destes resultados.Copyright© Leandro Nunes de Castro 73
  74. 74. Fundamentos de Computação Natural• É curioso constatar que um dos fatores que dificultou a assimilação dos resultados de Mendel foi justamente o intenso debate reinante nos meios científicos após a divulgação teoria de seleção natural de Darwin.• 1900: redescoberta das ideias de Mendel (após sua morte), feitas de forma independente por três pesquisadores.• 1a lei de Mendel: Cada caráter é condicionado por dois fatores. Eles separam-se na formação dos gametas, passando apenas um fator por gameta.Copyright© Leandro Nunes de Castro 74
  75. 75. Fundamentos de Computação Natural3.2. Do Darwinismo ao Neodarwinismo• Darwin sugeriu que para haver evolução é necessário que exista uma população de indivíduos sujeita a: 1. Reprodução com herança; 2. Variação; e 3. Seleção Natural.• Embora Darwin tenha considerado estas hipóteses como suficientes para explicar a origem das espécies, hoje elas são aceitas apenas como suficientes para explicar os processos ecológicos.• Na época de Darwin (meados de 1800), entretanto, sabia-se muito pouco sobre os processos de reprodução e, praticamente nada sobre genética. Além disso, não havia um bom entendimento sobre como operam os mecanismos de seleção natural.Copyright© Leandro Nunes de Castro 75
  76. 76. Fundamentos de Computação Natural• A união da genética com diversos conceitos e teorias sobre seleção natural leva ao que hoje é chamado de neodarwinismo.Sobre a Seleção Natural• O princípio da seleção natural indica que os indivíduos cujas variações se adaptam melhor ao ambiente terão maior probabilidade de sobreviver e se reproduzir.• A seleção natural é probabilística, e seu alvo primário é o indivíduo, embora seu efeito resultante vai se manifestar na espécie como um todo. A espécie é o beneficiário final do processo evolutivo.3.3. Terminologia biológica• A terminologia biológica a ser empregada representa uma analogia às entidades biológicas reais, em que as entidades computacionais corresponderão invariavelmente a estruturas bem mais simples que seus equivalentes biológicos.Copyright© Leandro Nunes de Castro 76
  77. 77. Fundamentos de Computação Natural Órgão Comunidade Célula Sistema População Ecossistema Organismo Nível fisiológico Nível ecológico Figura 7: Divisão hierárquica dos sistemas biológicos.• Célula: unidade estrutural básica dos seres vivos, que se compõe de numerosas partes, sendo as fundamentais a parede ou membrana, o protoplasma e o núcleo. A célula é a menor unidade de matéria viva que pode existir de maneira independente, e ser capaz de se reproduzir. Toda célula de um mesmo organismo contém o mesmo conjunto de um ou mais cromossomos. Nos seres humanos, cada célula somática (não germinativa) contém 23 pares de cromossomos.Copyright© Leandro Nunes de Castro 77
  78. 78. Fundamentos de Computação Natural• Cromossomo: estrutura nucleoprotéica formada por uma cadeia de DNA, sendo a base física dos genes nucleares, os quais estão dispostos linearmente. Cada espécie apresenta um número característico de cromossomos. Quando os cromossomos são arranjados em pares (cada cromossomo proveniente de um dos pais, embora haja exceções), os respectivos organismos são chamados diploides. Organismos cujos cromossomos não se apresentam aos pares são chamados haploides. gene gene geneFigura 8: Ampliação de um organismo para enfocar o material genético. Organismo → célula→ cromossomo → gene → DNA.Copyright© Leandro Nunes de Castro 78
  79. 79. Fundamentos de Computação Natural• Genes: blocos funcionais de DNA, os quais codificam uma proteína específica. É a denominação que damos hoje ao fator mendeliano. Cada gene está localizado em uma posição (locus) particular do cromossomo. Quando dois genes se comportam segundo a 1a lei de Mendel, são ditos alelos, e se encontram no mesmo locus de dois cromossomos homólogos. Para exemplificar, é possível pensar um gene como o responsável pela definição de uma característica do indivíduo, como a cor dos olhos. As diferentes colorações (azul, castanho, etc.) correspondem a alelos.• Como muitos organismos apresentam células com mais de um cromossomo, o conjunto de todos os cromossomos compõe o material genético do organismo, denominado genoma. Crom osomo diagram ático Locus Alelos: {A, B} A B A A B A B B A B Gene Figura 9: Ilustração pictórica de um cromossomo salientando o locus, os genes e os alelos.Copyright© Leandro Nunes de Castro 79

×