SlideShare una empresa de Scribd logo
1 de 456
Descargar para leer sin conexión
Fundamentos de Computação Natural




  Fundamentos de Computação Natural
                                Slides do Curso Completo
     Copyright© 2012 by Leandro Nunes de Castro

Este 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 Engenharia
Elétrica da Unicamp. Partes deste material foram desenvolvidas em conjunto com o Prof. Fernando José Von
Zuben da Unicamp, a quem atribuo os devidos créditos e agradecimentos. Versões mais atuais do material
sã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 do
autor principal. O uso deste material para fins acadêmicos é livre e gratuito, desde que sejam mantidas as
informações originais de autoria. As referências citadas e não listadas podem ser encontradas no livro texto
da disciplina. O Tópico 6 (Sistemas Imunológicos Artificiais) pode ser ministrado usando um ou mais dos
outros conjuntos de slides disponíveis no Slideshare do autor: http://www.slideshare.net/lndecastro. Mais
informaçõ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
Fundamentos de Computação Natural



                                               Sumário do Curso
Tópico 1: Fundamentos de Computação Natural ........................................................................ 11
1.    Introdução............................................................................................................................ 11
   1.1.     Motivação ................................................................................................................... 12
2.    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 .................................................................. 21
3.    Quando Usar a Computação Natural .................................................................................. 22
Tópico 2: Conceitualização .......................................................................................................... 24
1.    A Dificuldade da Conceitualização .................................................................................... 24
2.    Fenômenos Naturais, Modelos e Metáforas ....................................................................... 24
3.    Da Natureza à Computação................................................................................................. 30
4.    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 ...................................................................................................... 46

Copyright© Leandro Nunes de Castro                                                                                                           2
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 .................................................................................. 56
Tópico 3: Computação Evolutiva ................................................................................................ 60
1.    A Origem das Espécies ....................................................................................................... 60
2.    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 ................................................................................................ 69
3.    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 ...................................................................................................................... 86
4.    Resolução de Problemas via Métodos de Busca................................................................. 89
5.    Algoritmos Genéticos ......................................................................................................... 94
   5.1.    Representação (Estrutura de Dados) .......................................................................... 95

Copyright© Leandro Nunes de Castro                                                                                                        3
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 ............................................................................................... 100
6.    Algoritmo Genético Modificado ....................................................................................... 102
7.    Da Biologia para a Computação Evolutiva ...................................................................... 104
8.    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 ................................................................................... 110
Tópico 4: Redes Neurais Artificiais ........................................................................................... 111
1.    Base Biológica .................................................................................................................. 111
   1.1.    O Sistema Nervoso................................................................................................... 112
   1.2.    Base Biológica e Física da Aprendizagem e Memória ............................................ 122
2.    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 ................................................................................. 142
3.    Alguns Algoritmos de Aprendizado Supervisionado ....................................................... 153
   3.1.    Perceptron ................................................................................................................ 153

Copyright© Leandro Nunes de Castro                                                                                                       4
Fundamentos de Computação Natural


Tópico 5: Inteligência de Enxame ............................................................................................. 166
1.    Introdução.......................................................................................................................... 166
2.    Algumas Ideias sobre Insetos Sociais ............................................................................... 169
   2.1.     Curiosidades sobre as formigas ............................................................................... 173
3.    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............................................................................................ 207
4.    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 ................................................................................. 226
5.    Adaptação Social do Conhecimento ................................................................................. 236
   5.1.     Algoritmo de Otimização por Partículas ................................................................. 238

Copyright© Leandro Nunes de Castro                                                                                                          5
Fundamentos de Computação Natural


   5.2.     Escopo de Aplicação ................................................................................................ 244
   5.3.     De Sistemas Sociais a Enxames de Partículas ......................................................... 245
Tópico 7: Geometria Fractal da Natureza .................................................................................. 246
1.    Introdução.......................................................................................................................... 248
2.    A Geometria Fractal da Natureza ..................................................................................... 249
   2.1.     Autossimilaridade .................................................................................................... 251
   2.2.     Alguns Fractais Pioneiros ........................................................................................ 253
   2.3.     Dimensão e Dimensão Fractal ................................................................................. 259
3.    Autômatos Celulares ......................................................................................................... 266
   3.1.     O Exemplo Mais Simples ........................................................................................ 268
   3.2.     Definição Formal ..................................................................................................... 269
   3.3.     Escopo de Aplicação ................................................................................................ 271
4.    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............................................................................................. 284
5.    Sistemas de Funções Iterativas ......................................................................................... 284
   5.1.     Fundamentos Teóricos ............................................................................................. 285
   5.2.     Sistemas de Funções Iterativas (IFS) ....................................................................... 288

Copyright© Leandro Nunes de Castro                                                                                                          6
Fundamentos de Computação Natural


   5.3.     Autosimilaridade e Autoafinidade Revisitadas ....................................................... 293
6.    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 ....................................................................................................... 308
7.    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 .......................................................................... 317
8.    Da Geometria Natural à Geometria Fractal ...................................................................... 317
9.    Escopo da Geometria Fractal ............................................................................................ 319
Tópico 8: Vida Artificial ............................................................................................................ 322
1.    Introdução.......................................................................................................................... 322
   1.1.     Algumas Definições ................................................................................................. 322
   1.2.     Weak ALife × Strong ALife .................................................................................... 325
2.    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 ................................. 333

Copyright© Leandro Nunes de Castro                                                                                                          7
Fundamentos de Computação Natural


   2.5.     Vida Artificial como Sistemas Complexos Adaptativos ......................................... 334
3.    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 ................................................................................................................ 371
4.    Escopo da Vida Artificial .................................................................................................. 372
Tópico 9: Computação de DNA ................................................................................................ 373
1.    Introdução.......................................................................................................................... 373
   1.1.     Computação de DNA x Computadores Tradicionais .............................................. 374
2.    Conceitos Básicos de Biologia Molecular ........................................................................ 375
   2.1.     A Molécula de DNA ................................................................................................ 375
   2.2.     Manipulando o DNA................................................................................................ 381
3.    Modelos Baseados em Filtragem ...................................................................................... 387

Copyright© Leandro Nunes de Castro                                                                                                          8
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 .................................................... 403
4.    Um Breve Resumo dos Modelos Formais ........................................................................ 411
5.    Computadores Universais de DNA................................................................................... 414
6.    Escopo da Computação de DNA ...................................................................................... 419
7.    Discussão ........................................................................................................................... 421
Tópico 10: Computação Quântica ............................................................................................. 424
1.    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’............................................................................................. 433
2.    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 .................................................................................................. 446

Copyright© Leandro Nunes de Castro                                                                                                           9
Fundamentos de Computação Natural


3.      Exemplos de Aplicação ..................................................................................................... 448
     3.1.   Codificação Densa ................................................................................................... 449
     3.2.   Teletransporte Quântico ........................................................................................... 452




Copyright© Leandro Nunes de Castro                                                                                                 10
Fundamentos de Computação Natural



   Tópico 1: Fundamentos de Computação Natural
1. 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
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
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
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; e


Copyright© Leandro Nunes de Castro                                                       14
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
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
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
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
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
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 evolutiva

Copyright© Leandro Nunes de Castro                                                           20
Fundamentos de Computação Natural


  o Inteligência de Enxame
  o Neurocomputação
  o Sistemas Imunológicos Artificiais

2.2. Simulação e Emulação de Fenômenos Naturais
• Tópicos a serem abordados:
  o Vida artificial
  o Geometria fractal

2.3. Computação com Matéria-Prima Natural
• Tópicos a serem abordados:
  o Computação de DNA
  o Computação quântica




Copyright© Leandro Nunes de Castro                                       21
Fundamentos de Computação Natural



3. 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 alguns

Copyright© Leandro Nunes de Castro                                                      22
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
Fundamentos de Computação Natural



                          Tópico 2: Conceitualização
1. 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
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; e


Copyright© Leandro Nunes de Castro                                                       25
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
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
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
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
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
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
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 Gerais
4.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
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
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
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
Fundamentos de Computação Natural


4.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
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
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
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
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. Um


Copyright© Leandro Nunes de Castro                                                          40
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
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
Fundamentos de Computação Natural


Evoluçã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
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 original
Realimentaçã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
Fundamentos de Computação Natural




Realimentaçã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
Fundamentos de Computação Natural


4.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
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
Fundamentos de Computação Natural


Alternativas 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
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
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
Fundamentos de Computação Natural


Emergê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
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 ser



Copyright© Leandro Nunes de Castro                                                       52
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ímicas

Copyright© Leandro Nunes de Castro                                                           53
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ânica




Copyright© Leandro Nunes de Castro                                                         54
Fundamentos de Computação Natural



4.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
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
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
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
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
Fundamentos de Computação Natural



                    Tópico 3: Computação Evolutiva
1. 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). Darwin

Copyright© Leandro Nunes de Castro                                                    60
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
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
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
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
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
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
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
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
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 da

Copyright© Leandro Nunes de Castro                                                     69
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
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ógica
3.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
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
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
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
Fundamentos de Computação Natural



3.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
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
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
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




                                                              gene




Figura 8: Ampliação de um organismo para enfocar o material genético. Organismo → célula
→ cromossomo → gene → DNA.

Copyright© Leandro Nunes de Castro                                                        78
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
Fundamentos de Computação Natural


3.4. Fenótipo x Genótipo
• 1909: introdução dos conceitos de genótipo e fenótipo.
• Genótipo: representa o conjunto específico de genes do genoma. Neste caso,
  indivíduos com o mesmo genoma são ditos terem o mesmo genótipo.
• Fenótipo: é a manifestação do genótipo no comportamento, fisiologia e morfologia
  do indivíduo, como um produto de sua interação com o ambiente.
• A seleção natural opera somente na expressão fenotípica do genótipo.
• Para modelar este fenômeno, foi estendido um resultado da literatura baseado no
  emprego de dois espaços de estados:
  1. G: espaço genotípico (representa a informação);
  2. P: espaço fenotípico (representa o comportamento).
• que permitem a definição de quatro funções, onde I representa um conjunto de
  efeitos do ambiente (entrada), na forma:
• f1: I × G → P (epigênese);

Copyright© Leandro Nunes de Castro                                                      80
Fundamentos de Computação Natural


•   f2: P → P (seleção);
•   f3: P → G (sobrevivência genotípica);
•   f4: G → G (variação genética).
•   A adaptação evolutiva ocorre a partir da aplicação iterativa dessas funções.

                                           g2   f4    ′
                                                     g1
                                                              Espaço genotípico G
                           g1




                                f1        f3




                                     f2
                                                            Espaço fenotípico F
                      p1                   p2



      Figura 10: Evolução explicada através de mapeamentos entre os espaços genotípico e
                                          fenotípico.
Copyright© Leandro Nunes de Castro                                                            81
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso
2012: Computação Natural - Slides do Curso

Más contenido relacionado

La actualidad más candente

Curso de Direito Processual Penal para Promotor de Justiça 2019
Curso de Direito Processual Penal para Promotor de Justiça 2019Curso de Direito Processual Penal para Promotor de Justiça 2019
Curso de Direito Processual Penal para Promotor de Justiça 2019Estratégia Carreira Jurídica
 
Curso de Direito Processual Civil para Promotor de Justiça 2019
Curso de Direito Processual Civil para Promotor de Justiça 2019 Curso de Direito Processual Civil para Promotor de Justiça 2019
Curso de Direito Processual Civil para Promotor de Justiça 2019 Estratégia Carreira Jurídica
 
01 introducao(3)
01 introducao(3)01 introducao(3)
01 introducao(3)Alan Scher
 
Curso de Direito Penal para Defensoria Pública Estadual 2019
Curso de Direito Penal para Defensoria Pública Estadual 2019Curso de Direito Penal para Defensoria Pública Estadual 2019
Curso de Direito Penal para Defensoria Pública Estadual 2019Estratégia Carreira Jurídica
 
Uff metodos numericos
Uff metodos numericosUff metodos numericos
Uff metodos numericosWalter Junior
 
Caderno de Estudo de Umbanda- Os Orixas
Caderno de Estudo de Umbanda- Os OrixasCaderno de Estudo de Umbanda- Os Orixas
Caderno de Estudo de Umbanda- Os Orixasguerreirosdaluz
 
ENSINO MÉDIO - 3º ANO - MODALIDADES ESPECIAIS
ENSINO MÉDIO - 3º ANO - MODALIDADES ESPECIAISENSINO MÉDIO - 3º ANO - MODALIDADES ESPECIAIS
ENSINO MÉDIO - 3º ANO - MODALIDADES ESPECIAISJakes Paulo
 
Plano de saneamento básico de itatiba do sul
Plano de saneamento básico de itatiba do sulPlano de saneamento básico de itatiba do sul
Plano de saneamento básico de itatiba do sulIvonir Santolin
 
Manual geogebra 3_2
Manual geogebra 3_2Manual geogebra 3_2
Manual geogebra 3_2cluz01
 

La actualidad más candente (17)

Curso de Direito Penal para Carreira Jurídica 2019
Curso de Direito Penal para Carreira Jurídica 2019Curso de Direito Penal para Carreira Jurídica 2019
Curso de Direito Penal para Carreira Jurídica 2019
 
Bd apost
Bd apostBd apost
Bd apost
 
Curso de Direito Penal para Magistratura Federal 2019
Curso de Direito Penal para Magistratura Federal 2019Curso de Direito Penal para Magistratura Federal 2019
Curso de Direito Penal para Magistratura Federal 2019
 
Curso de Direito Processual Penal para Promotor de Justiça 2019
Curso de Direito Processual Penal para Promotor de Justiça 2019Curso de Direito Processual Penal para Promotor de Justiça 2019
Curso de Direito Processual Penal para Promotor de Justiça 2019
 
Curso de Direito Processual Civil para Promotor de Justiça 2019
Curso de Direito Processual Civil para Promotor de Justiça 2019 Curso de Direito Processual Civil para Promotor de Justiça 2019
Curso de Direito Processual Civil para Promotor de Justiça 2019
 
01 introducao(3)
01 introducao(3)01 introducao(3)
01 introducao(3)
 
Curso de Direito Penal para Defensoria Pública Estadual 2019
Curso de Direito Penal para Defensoria Pública Estadual 2019Curso de Direito Penal para Defensoria Pública Estadual 2019
Curso de Direito Penal para Defensoria Pública Estadual 2019
 
Apostila de arquivologia
Apostila de arquivologiaApostila de arquivologia
Apostila de arquivologia
 
Uff metodos numericos
Uff metodos numericosUff metodos numericos
Uff metodos numericos
 
Apostila Java
Apostila JavaApostila Java
Apostila Java
 
Documentação - Administração e Treinador
Documentação - Administração e TreinadorDocumentação - Administração e Treinador
Documentação - Administração e Treinador
 
Caderno de Estudo de Umbanda- Os Orixas
Caderno de Estudo de Umbanda- Os OrixasCaderno de Estudo de Umbanda- Os Orixas
Caderno de Estudo de Umbanda- Os Orixas
 
Dicas de estudos_2
Dicas de estudos_2Dicas de estudos_2
Dicas de estudos_2
 
Apostila UML
Apostila UMLApostila UML
Apostila UML
 
ENSINO MÉDIO - 3º ANO - MODALIDADES ESPECIAIS
ENSINO MÉDIO - 3º ANO - MODALIDADES ESPECIAISENSINO MÉDIO - 3º ANO - MODALIDADES ESPECIAIS
ENSINO MÉDIO - 3º ANO - MODALIDADES ESPECIAIS
 
Plano de saneamento básico de itatiba do sul
Plano de saneamento básico de itatiba do sulPlano de saneamento básico de itatiba do sul
Plano de saneamento básico de itatiba do sul
 
Manual geogebra 3_2
Manual geogebra 3_2Manual geogebra 3_2
Manual geogebra 3_2
 

Destacado

2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...
2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...
2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...Leandro de Castro
 
2016: Notas sobre Liderança
2016: Notas sobre Liderança2016: Notas sobre Liderança
2016: Notas sobre LiderançaLeandro de Castro
 
2016: Applying AI Innovation in Business
2016: Applying AI Innovation in Business2016: Applying AI Innovation in Business
2016: Applying AI Innovation in BusinessLeandro de Castro
 
2016: A Tríade da Persona Virtual - O Que as Mídias Sociais Podem Revelar sob...
2016: A Tríade da Persona Virtual - O Que as Mídias Sociais Podem Revelar sob...2016: A Tríade da Persona Virtual - O Que as Mídias Sociais Podem Revelar sob...
2016: A Tríade da Persona Virtual - O Que as Mídias Sociais Podem Revelar sob...Leandro de Castro
 
1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...
1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...
1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...Leandro de Castro
 
2015: Análise de Mercado e Plano de Marketing
2015: Análise de Mercado e Plano de Marketing2015: Análise de Mercado e Plano de Marketing
2015: Análise de Mercado e Plano de MarketingLeandro de Castro
 
2016: Metodologia da Pesquisa em Computação
2016: Metodologia da Pesquisa em Computação2016: Metodologia da Pesquisa em Computação
2016: Metodologia da Pesquisa em ComputaçãoLeandro de Castro
 
2012: O Processo de Checkout em E-commerce
2012: O Processo de Checkout em E-commerce2012: O Processo de Checkout em E-commerce
2012: O Processo de Checkout em E-commerceLeandro de Castro
 
2010: Agrupamento Evolutivo de Dados
2010: Agrupamento Evolutivo de Dados2010: Agrupamento Evolutivo de Dados
2010: Agrupamento Evolutivo de DadosLeandro de Castro
 
2012: Tutorial sobre Sistemas de Recomendação para E-commerce
2012: Tutorial sobre Sistemas de Recomendação para E-commerce2012: Tutorial sobre Sistemas de Recomendação para E-commerce
2012: Tutorial sobre Sistemas de Recomendação para E-commerceLeandro de Castro
 
2001: An Introduction to Artificial Immune Systems
2001: An Introduction to Artificial Immune Systems2001: An Introduction to Artificial Immune Systems
2001: An Introduction to Artificial Immune SystemsLeandro de Castro
 
2013: Empreendedorismo: Slides do Curso
2013: Empreendedorismo: Slides do Curso2013: Empreendedorismo: Slides do Curso
2013: Empreendedorismo: Slides do CursoLeandro de Castro
 
2012: LCoN Aplicações em Big Data
2012: LCoN Aplicações em Big Data2012: LCoN Aplicações em Big Data
2012: LCoN Aplicações em Big DataLeandro de Castro
 
2012: The Grand Challenges in Natural Computing Research
2012: The Grand Challenges in Natural Computing Research2012: The Grand Challenges in Natural Computing Research
2012: The Grand Challenges in Natural Computing ResearchLeandro de Castro
 
2010: Computação Natural - Uma Jornada Ilustrada
2010: Computação Natural - Uma Jornada Ilustrada2010: Computação Natural - Uma Jornada Ilustrada
2010: Computação Natural - Uma Jornada IlustradaLeandro de Castro
 
2012: Natural Computing - The Grand Challenges and Two Case Studies
2012: Natural Computing - The Grand Challenges and Two Case Studies2012: Natural Computing - The Grand Challenges and Two Case Studies
2012: Natural Computing - The Grand Challenges and Two Case StudiesLeandro de Castro
 
2000: Artificial Immune Systems - Theory and Applications
2000: Artificial Immune Systems - Theory and Applications2000: Artificial Immune Systems - Theory and Applications
2000: Artificial Immune Systems - Theory and ApplicationsLeandro de Castro
 
2010: Plano de Negócios e Incubação de Empresas de Base Tecnológica
2010: Plano de Negócios e Incubação de Empresas de Base Tecnológica2010: Plano de Negócios e Incubação de Empresas de Base Tecnológica
2010: Plano de Negócios e Incubação de Empresas de Base TecnológicaLeandro de Castro
 
Computação Evolucionária - Seleção por roleta
Computação Evolucionária - Seleção por roletaComputação Evolucionária - Seleção por roleta
Computação Evolucionária - Seleção por roletaMarcelo Maia
 
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquitetoFIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquitetoLeandro Daniel
 

Destacado (20)

2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...
2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...
2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...
 
2016: Notas sobre Liderança
2016: Notas sobre Liderança2016: Notas sobre Liderança
2016: Notas sobre Liderança
 
2016: Applying AI Innovation in Business
2016: Applying AI Innovation in Business2016: Applying AI Innovation in Business
2016: Applying AI Innovation in Business
 
2016: A Tríade da Persona Virtual - O Que as Mídias Sociais Podem Revelar sob...
2016: A Tríade da Persona Virtual - O Que as Mídias Sociais Podem Revelar sob...2016: A Tríade da Persona Virtual - O Que as Mídias Sociais Podem Revelar sob...
2016: A Tríade da Persona Virtual - O Que as Mídias Sociais Podem Revelar sob...
 
1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...
1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...
1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...
 
2015: Análise de Mercado e Plano de Marketing
2015: Análise de Mercado e Plano de Marketing2015: Análise de Mercado e Plano de Marketing
2015: Análise de Mercado e Plano de Marketing
 
2016: Metodologia da Pesquisa em Computação
2016: Metodologia da Pesquisa em Computação2016: Metodologia da Pesquisa em Computação
2016: Metodologia da Pesquisa em Computação
 
2012: O Processo de Checkout em E-commerce
2012: O Processo de Checkout em E-commerce2012: O Processo de Checkout em E-commerce
2012: O Processo de Checkout em E-commerce
 
2010: Agrupamento Evolutivo de Dados
2010: Agrupamento Evolutivo de Dados2010: Agrupamento Evolutivo de Dados
2010: Agrupamento Evolutivo de Dados
 
2012: Tutorial sobre Sistemas de Recomendação para E-commerce
2012: Tutorial sobre Sistemas de Recomendação para E-commerce2012: Tutorial sobre Sistemas de Recomendação para E-commerce
2012: Tutorial sobre Sistemas de Recomendação para E-commerce
 
2001: An Introduction to Artificial Immune Systems
2001: An Introduction to Artificial Immune Systems2001: An Introduction to Artificial Immune Systems
2001: An Introduction to Artificial Immune Systems
 
2013: Empreendedorismo: Slides do Curso
2013: Empreendedorismo: Slides do Curso2013: Empreendedorismo: Slides do Curso
2013: Empreendedorismo: Slides do Curso
 
2012: LCoN Aplicações em Big Data
2012: LCoN Aplicações em Big Data2012: LCoN Aplicações em Big Data
2012: LCoN Aplicações em Big Data
 
2012: The Grand Challenges in Natural Computing Research
2012: The Grand Challenges in Natural Computing Research2012: The Grand Challenges in Natural Computing Research
2012: The Grand Challenges in Natural Computing Research
 
2010: Computação Natural - Uma Jornada Ilustrada
2010: Computação Natural - Uma Jornada Ilustrada2010: Computação Natural - Uma Jornada Ilustrada
2010: Computação Natural - Uma Jornada Ilustrada
 
2012: Natural Computing - The Grand Challenges and Two Case Studies
2012: Natural Computing - The Grand Challenges and Two Case Studies2012: Natural Computing - The Grand Challenges and Two Case Studies
2012: Natural Computing - The Grand Challenges and Two Case Studies
 
2000: Artificial Immune Systems - Theory and Applications
2000: Artificial Immune Systems - Theory and Applications2000: Artificial Immune Systems - Theory and Applications
2000: Artificial Immune Systems - Theory and Applications
 
2010: Plano de Negócios e Incubação de Empresas de Base Tecnológica
2010: Plano de Negócios e Incubação de Empresas de Base Tecnológica2010: Plano de Negócios e Incubação de Empresas de Base Tecnológica
2010: Plano de Negócios e Incubação de Empresas de Base Tecnológica
 
Computação Evolucionária - Seleção por roleta
Computação Evolucionária - Seleção por roletaComputação Evolucionária - Seleção por roleta
Computação Evolucionária - Seleção por roleta
 
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquitetoFIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
 

Similar a 2012: Computação Natural - Slides do Curso

Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced ...
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced ...Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced ...
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced ...marcelobeckmann
 
Cientista da computacao usando python
Cientista da computacao usando pythonCientista da computacao usando python
Cientista da computacao usando pythonJean Lopes
 
Python
PythonPython
PythonTiago
 
Dissertação Mestrado
Dissertação MestradoDissertação Mestrado
Dissertação MestradoJoel Carvalho
 
Apostila ata informatica_julio_alves
Apostila ata informatica_julio_alvesApostila ata informatica_julio_alves
Apostila ata informatica_julio_alvesYara Grasielle
 
Ncl e Lua - desenvolvendo aplicações interativas para tv digital
Ncl e Lua - desenvolvendo aplicações interativas para tv digitalNcl e Lua - desenvolvendo aplicações interativas para tv digital
Ncl e Lua - desenvolvendo aplicações interativas para tv digitalRafael Carvalho
 
Anatomia aplicada a educaçao fisica
Anatomia aplicada a educaçao fisicaAnatomia aplicada a educaçao fisica
Anatomia aplicada a educaçao fisicaIvina Brito
 
Java basico
Java basicoJava basico
Java basicoTiago
 
Javascript
JavascriptJavascript
JavascriptTiago
 
Aprenda a Programar com C#
Aprenda a Programar com C#Aprenda a Programar com C#
Aprenda a Programar com C#Antonio Trigo
 

Similar a 2012: Computação Natural - Slides do Curso (20)

Perl
PerlPerl
Perl
 
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced ...
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced ...Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced ...
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced ...
 
Cientista da computacao usando python
Cientista da computacao usando pythonCientista da computacao usando python
Cientista da computacao usando python
 
Python
PythonPython
Python
 
Apostila de Bioestatística
Apostila de BioestatísticaApostila de Bioestatística
Apostila de Bioestatística
 
Dissertação Mestrado
Dissertação MestradoDissertação Mestrado
Dissertação Mestrado
 
Apostila ata informatica_julio_alves
Apostila ata informatica_julio_alvesApostila ata informatica_julio_alves
Apostila ata informatica_julio_alves
 
Ncl e Lua - desenvolvendo aplicações interativas para tv digital
Ncl e Lua - desenvolvendo aplicações interativas para tv digitalNcl e Lua - desenvolvendo aplicações interativas para tv digital
Ncl e Lua - desenvolvendo aplicações interativas para tv digital
 
Tutorial java
Tutorial javaTutorial java
Tutorial java
 
Anatomia aplicada a educaçao fisica
Anatomia aplicada a educaçao fisicaAnatomia aplicada a educaçao fisica
Anatomia aplicada a educaçao fisica
 
Java basico
Java basicoJava basico
Java basico
 
Php
PhpPhp
Php
 
Taxonomias
TaxonomiasTaxonomias
Taxonomias
 
Apostila calculo i
Apostila calculo iApostila calculo i
Apostila calculo i
 
Sql
SqlSql
Sql
 
Apostila geo gebra
Apostila geo gebraApostila geo gebra
Apostila geo gebra
 
Aprenda computaocompython
Aprenda computaocompythonAprenda computaocompython
Aprenda computaocompython
 
Javascript
JavascriptJavascript
Javascript
 
Zope
ZopeZope
Zope
 
Aprenda a Programar com C#
Aprenda a Programar com C#Aprenda a Programar com C#
Aprenda a Programar com C#
 

Más de Leandro de Castro

2021: An Illustrated Journey into Natural Computing
2021: An Illustrated Journey into Natural Computing2021: An Illustrated Journey into Natural Computing
2021: An Illustrated Journey into Natural ComputingLeandro de Castro
 
2019: LCoN - Centro de Excelência em Inteligência Artificial
2019: LCoN - Centro de Excelência em Inteligência Artificial2019: LCoN - Centro de Excelência em Inteligência Artificial
2019: LCoN - Centro de Excelência em Inteligência ArtificialLeandro de Castro
 
2018: What did I learn about Innovation and Entrepreneurship in Israel
2018: What did I learn about Innovation and Entrepreneurship in Israel2018: What did I learn about Innovation and Entrepreneurship in Israel
2018: What did I learn about Innovation and Entrepreneurship in IsraelLeandro de Castro
 
2018 Academic Innovation Opportunities in Brazil
2018 Academic Innovation Opportunities in Brazil2018 Academic Innovation Opportunities in Brazil
2018 Academic Innovation Opportunities in BrazilLeandro de Castro
 
2017: Tópicos em Educação Financeira
2017: Tópicos em Educação Financeira2017: Tópicos em Educação Financeira
2017: Tópicos em Educação FinanceiraLeandro de Castro
 
2017: The Many Faces of Artificial Intelligence: From AI to Big Data - A Hist...
2017: The Many Faces of Artificial Intelligence: From AI to Big Data - A Hist...2017: The Many Faces of Artificial Intelligence: From AI to Big Data - A Hist...
2017: The Many Faces of Artificial Intelligence: From AI to Big Data - A Hist...Leandro de Castro
 
2002: Comparing Immune and Neural Networks
2002: Comparing Immune and Neural Networks2002: Comparing Immune and Neural Networks
2002: Comparing Immune and Neural NetworksLeandro de Castro
 
2011: Empreendedorismo Digital - Como Dados Viram Negócios
2011: Empreendedorismo Digital - Como Dados Viram Negócios2011: Empreendedorismo Digital - Como Dados Viram Negócios
2011: Empreendedorismo Digital - Como Dados Viram NegóciosLeandro de Castro
 

Más de Leandro de Castro (9)

2021: An Illustrated Journey into Natural Computing
2021: An Illustrated Journey into Natural Computing2021: An Illustrated Journey into Natural Computing
2021: An Illustrated Journey into Natural Computing
 
2019: Folder do LCoN
2019: Folder do LCoN2019: Folder do LCoN
2019: Folder do LCoN
 
2019: LCoN - Centro de Excelência em Inteligência Artificial
2019: LCoN - Centro de Excelência em Inteligência Artificial2019: LCoN - Centro de Excelência em Inteligência Artificial
2019: LCoN - Centro de Excelência em Inteligência Artificial
 
2018: What did I learn about Innovation and Entrepreneurship in Israel
2018: What did I learn about Innovation and Entrepreneurship in Israel2018: What did I learn about Innovation and Entrepreneurship in Israel
2018: What did I learn about Innovation and Entrepreneurship in Israel
 
2018 Academic Innovation Opportunities in Brazil
2018 Academic Innovation Opportunities in Brazil2018 Academic Innovation Opportunities in Brazil
2018 Academic Innovation Opportunities in Brazil
 
2017: Tópicos em Educação Financeira
2017: Tópicos em Educação Financeira2017: Tópicos em Educação Financeira
2017: Tópicos em Educação Financeira
 
2017: The Many Faces of Artificial Intelligence: From AI to Big Data - A Hist...
2017: The Many Faces of Artificial Intelligence: From AI to Big Data - A Hist...2017: The Many Faces of Artificial Intelligence: From AI to Big Data - A Hist...
2017: The Many Faces of Artificial Intelligence: From AI to Big Data - A Hist...
 
2002: Comparing Immune and Neural Networks
2002: Comparing Immune and Neural Networks2002: Comparing Immune and Neural Networks
2002: Comparing Immune and Neural Networks
 
2011: Empreendedorismo Digital - Como Dados Viram Negócios
2011: Empreendedorismo Digital - Como Dados Viram Negócios2011: Empreendedorismo Digital - Como Dados Viram Negócios
2011: Empreendedorismo Digital - Como Dados Viram Negócios
 

2012: Computação Natural - Slides do Curso

  • 1. Fundamentos de Computação Natural Fundamentos de Computação Natural Slides do Curso Completo Copyright© 2012 by Leandro Nunes de Castro Este 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 Engenharia Elétrica da Unicamp. Partes deste material foram desenvolvidas em conjunto com o Prof. Fernando José Von Zuben da Unicamp, a quem atribuo os devidos créditos e agradecimentos. Versões mais atuais do material sã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 do autor principal. O uso deste material para fins acadêmicos é livre e gratuito, desde que sejam mantidas as informações originais de autoria. As referências citadas e não listadas podem ser encontradas no livro texto da disciplina. O Tópico 6 (Sistemas Imunológicos Artificiais) pode ser ministrado usando um ou mais dos outros conjuntos de slides disponíveis no Slideshare do autor: http://www.slideshare.net/lndecastro. Mais informaçõ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. Fundamentos de Computação Natural Sumário do Curso Tópico 1: Fundamentos de Computação Natural ........................................................................ 11 1. Introdução............................................................................................................................ 11 1.1. Motivação ................................................................................................................... 12 2. 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 .................................................................. 21 3. Quando Usar a Computação Natural .................................................................................. 22 Tópico 2: Conceitualização .......................................................................................................... 24 1. A Dificuldade da Conceitualização .................................................................................... 24 2. Fenômenos Naturais, Modelos e Metáforas ....................................................................... 24 3. Da Natureza à Computação................................................................................................. 30 4. 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 ...................................................................................................... 46 Copyright© Leandro Nunes de Castro 2
  • 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 .................................................................................. 56 Tópico 3: Computação Evolutiva ................................................................................................ 60 1. A Origem das Espécies ....................................................................................................... 60 2. 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 ................................................................................................ 69 3. 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 ...................................................................................................................... 86 4. Resolução de Problemas via Métodos de Busca................................................................. 89 5. Algoritmos Genéticos ......................................................................................................... 94 5.1. Representação (Estrutura de Dados) .......................................................................... 95 Copyright© Leandro Nunes de Castro 3
  • 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 ............................................................................................... 100 6. Algoritmo Genético Modificado ....................................................................................... 102 7. Da Biologia para a Computação Evolutiva ...................................................................... 104 8. 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 ................................................................................... 110 Tópico 4: Redes Neurais Artificiais ........................................................................................... 111 1. Base Biológica .................................................................................................................. 111 1.1. O Sistema Nervoso................................................................................................... 112 1.2. Base Biológica e Física da Aprendizagem e Memória ............................................ 122 2. 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 ................................................................................. 142 3. Alguns Algoritmos de Aprendizado Supervisionado ....................................................... 153 3.1. Perceptron ................................................................................................................ 153 Copyright© Leandro Nunes de Castro 4
  • 5. Fundamentos de Computação Natural Tópico 5: Inteligência de Enxame ............................................................................................. 166 1. Introdução.......................................................................................................................... 166 2. Algumas Ideias sobre Insetos Sociais ............................................................................... 169 2.1. Curiosidades sobre as formigas ............................................................................... 173 3. 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............................................................................................ 207 4. 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 ................................................................................. 226 5. Adaptação Social do Conhecimento ................................................................................. 236 5.1. Algoritmo de Otimização por Partículas ................................................................. 238 Copyright© Leandro Nunes de Castro 5
  • 6. Fundamentos de Computação Natural 5.2. Escopo de Aplicação ................................................................................................ 244 5.3. De Sistemas Sociais a Enxames de Partículas ......................................................... 245 Tópico 7: Geometria Fractal da Natureza .................................................................................. 246 1. Introdução.......................................................................................................................... 248 2. A Geometria Fractal da Natureza ..................................................................................... 249 2.1. Autossimilaridade .................................................................................................... 251 2.2. Alguns Fractais Pioneiros ........................................................................................ 253 2.3. Dimensão e Dimensão Fractal ................................................................................. 259 3. Autômatos Celulares ......................................................................................................... 266 3.1. O Exemplo Mais Simples ........................................................................................ 268 3.2. Definição Formal ..................................................................................................... 269 3.3. Escopo de Aplicação ................................................................................................ 271 4. 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............................................................................................. 284 5. Sistemas de Funções Iterativas ......................................................................................... 284 5.1. Fundamentos Teóricos ............................................................................................. 285 5.2. Sistemas de Funções Iterativas (IFS) ....................................................................... 288 Copyright© Leandro Nunes de Castro 6
  • 7. Fundamentos de Computação Natural 5.3. Autosimilaridade e Autoafinidade Revisitadas ....................................................... 293 6. 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 ....................................................................................................... 308 7. 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 .......................................................................... 317 8. Da Geometria Natural à Geometria Fractal ...................................................................... 317 9. Escopo da Geometria Fractal ............................................................................................ 319 Tópico 8: Vida Artificial ............................................................................................................ 322 1. Introdução.......................................................................................................................... 322 1.1. Algumas Definições ................................................................................................. 322 1.2. Weak ALife × Strong ALife .................................................................................... 325 2. 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 ................................. 333 Copyright© Leandro Nunes de Castro 7
  • 8. Fundamentos de Computação Natural 2.5. Vida Artificial como Sistemas Complexos Adaptativos ......................................... 334 3. 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 ................................................................................................................ 371 4. Escopo da Vida Artificial .................................................................................................. 372 Tópico 9: Computação de DNA ................................................................................................ 373 1. Introdução.......................................................................................................................... 373 1.1. Computação de DNA x Computadores Tradicionais .............................................. 374 2. Conceitos Básicos de Biologia Molecular ........................................................................ 375 2.1. A Molécula de DNA ................................................................................................ 375 2.2. Manipulando o DNA................................................................................................ 381 3. Modelos Baseados em Filtragem ...................................................................................... 387 Copyright© Leandro Nunes de Castro 8
  • 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 .................................................... 403 4. Um Breve Resumo dos Modelos Formais ........................................................................ 411 5. Computadores Universais de DNA................................................................................... 414 6. Escopo da Computação de DNA ...................................................................................... 419 7. Discussão ........................................................................................................................... 421 Tópico 10: Computação Quântica ............................................................................................. 424 1. 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’............................................................................................. 433 2. 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 .................................................................................................. 446 Copyright© Leandro Nunes de Castro 9
  • 10. Fundamentos de Computação Natural 3. Exemplos de Aplicação ..................................................................................................... 448 3.1. Codificação Densa ................................................................................................... 449 3.2. Teletransporte Quântico ........................................................................................... 452 Copyright© Leandro Nunes de Castro 10
  • 11. Fundamentos de Computação Natural Tópico 1: Fundamentos de Computação Natural 1. 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. 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. 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. 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; e Copyright© Leandro Nunes de Castro 14
  • 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. 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. 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. 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. 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. 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 evolutiva Copyright© Leandro Nunes de Castro 20
  • 21. Fundamentos de Computação Natural o Inteligência de Enxame o Neurocomputação o Sistemas Imunológicos Artificiais 2.2. Simulação e Emulação de Fenômenos Naturais • Tópicos a serem abordados: o Vida artificial o Geometria fractal 2.3. Computação com Matéria-Prima Natural • Tópicos a serem abordados: o Computação de DNA o Computação quântica Copyright© Leandro Nunes de Castro 21
  • 22. Fundamentos de Computação Natural 3. 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 alguns Copyright© Leandro Nunes de Castro 22
  • 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. Fundamentos de Computação Natural Tópico 2: Conceitualização 1. 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. 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; e Copyright© Leandro Nunes de Castro 25
  • 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. 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. 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. 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. 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. 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. 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 Gerais 4.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. 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. 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. 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. Fundamentos de Computação Natural 4.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. 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. 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. 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. 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. Um Copyright© Leandro Nunes de Castro 40
  • 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. 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. Fundamentos de Computação Natural Evoluçã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. 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 original Realimentaçã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. Fundamentos de Computação Natural Realimentaçã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. Fundamentos de Computação Natural 4.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. 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. Fundamentos de Computação Natural Alternativas 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. 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. 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. Fundamentos de Computação Natural Emergê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. 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 ser Copyright© Leandro Nunes de Castro 52
  • 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ímicas Copyright© Leandro Nunes de Castro 53
  • 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ânica Copyright© Leandro Nunes de Castro 54
  • 55. Fundamentos de Computação Natural 4.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. 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. 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. 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. 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. Fundamentos de Computação Natural Tópico 3: Computação Evolutiva 1. 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). Darwin Copyright© Leandro Nunes de Castro 60
  • 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. 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. 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. 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. 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. 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. 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. 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. 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 da Copyright© Leandro Nunes de Castro 69
  • 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. 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ógica 3.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. 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. 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. 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. Fundamentos de Computação Natural 3.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. 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. 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. 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 gene Figura 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. 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
  • 80. Fundamentos de Computação Natural 3.4. Fenótipo x Genótipo • 1909: introdução dos conceitos de genótipo e fenótipo. • Genótipo: representa o conjunto específico de genes do genoma. Neste caso, indivíduos com o mesmo genoma são ditos terem o mesmo genótipo. • Fenótipo: é a manifestação do genótipo no comportamento, fisiologia e morfologia do indivíduo, como um produto de sua interação com o ambiente. • A seleção natural opera somente na expressão fenotípica do genótipo. • Para modelar este fenômeno, foi estendido um resultado da literatura baseado no emprego de dois espaços de estados: 1. G: espaço genotípico (representa a informação); 2. P: espaço fenotípico (representa o comportamento). • que permitem a definição de quatro funções, onde I representa um conjunto de efeitos do ambiente (entrada), na forma: • f1: I × G → P (epigênese); Copyright© Leandro Nunes de Castro 80
  • 81. Fundamentos de Computação Natural • f2: P → P (seleção); • f3: P → G (sobrevivência genotípica); • f4: G → G (variação genética). • A adaptação evolutiva ocorre a partir da aplicação iterativa dessas funções. g2 f4 ′ g1 Espaço genotípico G g1 f1 f3 f2 Espaço fenotípico F p1 p2 Figura 10: Evolução explicada através de mapeamentos entre os espaços genotípico e fenotípico. Copyright© Leandro Nunes de Castro 81