Mostrando postagens com marcador Computação Inspirada na Natureza. Mostrar todas as postagens
Mostrando postagens com marcador Computação Inspirada na Natureza. Mostrar todas as postagens

domingo, dezembro 23, 2007

Computação Coletiva

Computação Coletiva utiliza o comportamento coletivo de enxames de organismos provenientes da biologia.

Computação Neural

Computação Neural é inspirada nas estruturas neurais densamente interconectadas do sistema nervoso central.

Computação Quântica

Computação Quântica é fundamentada em física quântica para explorar paralelismo quântico.

Computação Quântica busca atuar em hardware “diferente”, no qual efeitos quânticos podem ocorrer.

Computação Molecular - Computação Biológica

Computação Molecular se baseia em paradigmas de biologia molecular.

Computação Molecular procura encontrar alternativas para o hardware de silício através da implementação de algoritmos em hardware biológico (bioware), por exemplo, usando moléculas de DNA e enzimas.

Computação Evolucionária

1) Introdução

A computação evolucionária é um ramo da ciência da computação que tem por base os mecanismos evolutivos encontrados na natureza. Esses mecanismos estão diretamente relacionados com a teoria da evolução de Darwin, onde ele afirma que a vida na Terra é o resultado de um processo de seleção, feito pelo meio ambiente, em que somente os mais aptos e adaptados possuirão chances de sobreviver e, conseqüentemente, reproduzir-se.

Computação Evolucionária emprega conceitos de mutação, recombinação e seleção natural originados na neurociência.

Algoritmos evolucionários, algoritmos neurais e algoritmos de comportamento coletivo são atualmente implementados em computadores convencionais.

Computação evolucionária é caracterizada por se inspirar no processo de evolução natural. A principal metáfora de computação evolucionária relaciona a evolução natural com uma estratégia de tentativa e erro para resolução de problemas. Nesta abordagem, o ambiente representa o problema, o individuo é um candidato a solução e a função de adaptabilidade avalia a qualidade de cada solução. O processo evolucionário deve gerar resultar nas melhores soluções.

É uma área de pesquisa interdisciplinar que compreende diversos paradigmas inspirados no princípio Darwiniano da evolução das espécies. O atual estágio de pesquisa considera, entre outros, os seguintes paradigmas:

  1. Algoritmos Genéticos (Genetic Algorithms - GA)
  2. Programação Genética (Genetic Programming - GP)
  3. Hardware Evolucionário (Evolvable Hardware - EH)
Outros paradigmas (não apresentados no diagrama da página anterior) incluem:
  1. Programação Evolucionária (Evolutionary Programming - EP);
  2. Algoritmos Evolucionários (Evolutionary Algorithms -EA);
  3. Estratégias de Evolução (Evolution Strategies - ES); e
  4. Sistemas Classificadores (Classifier Systems - CFS).

2) História

Os primeiros passos dados na área da Computação Evolucionária (CE) foram de biólogos e geneticistas. Estes tinham interesse em simular os processos vitais de um ser humano em um computador.

Dentre os cientistas destacam-se os nomes de Barricelli, Fraser, Martin e Cockerham. Na década de 60, um grupo de cientistas, em que o nome de Holland se destaca, iniciaram um estudo em que era implementada uma população de n indivíduos onde cada um possuía seu genótipo e estava sujeito a operações de seleção, recombinação e mutação.

Tal estudo foi modelado e passou a ser conhecido como algoritmo genético. Holland chegou a propor um quarto operador, a inversão. Entretanto ele não obteve destaque na comunidade científica, não vindo a ser muito utilizado. Uma das primeiras aplicações na área de CE foi relacionada a algoritmos genéticos. Bagley, em 1967, utilizou em uma parte de sua dissertação Algoritmos Genéticos para desenvolver sistemas classificadores.

3) Características básicas

A CE possui três características básicas: criação de uma população de soluções, criação de uma função de avaliação e criação dos operadores de seleção, recombinação e mutação.


  1. Criação de uma população de soluções: é necessário que haja uma população inicial de soluções possível para o problema proposto. Essa população pode ser gerada aleatoriamente ou através de alguma técnica. Cada indivíduo dessa população terá registrado em si os parâmetros que descrevem a sua respectiva solução para o problema.
  2. Criação de uma função de avaliação: a função de avaliação terá o trabalho de julgar a aptidão de cada indivíduo da população. Ela não precisará deter o conhecimento de como encontrar a solução do problema. Somente precisará julgar a qualidade da solução que está sendo apresentada por aquele indivíduo. A função é definida através da codificação das soluções para o problema para que se possa avaliar se o indivíduo está ou não apto.
  3. Criação dos operadores seleção, recombinação e mutação: é necessário gerar novas populações para que se encontre o mais apto. Essas são chamadas de gerações e são obtidas através da aplicação de três operadores: seleção, recombinação e mutação. Na seleção escolhem-se os indivíduos mais aptos para gerarem descendentes. Essa reprodução pode ocorrer de duas formas: um indivíduo gera a descendência ou um par de indivíduos geram a descendência. O primeiro caso simula uma reprodução assexuada e o segundo uma reprodução sexuada. É importante destacar que os descendentes serão diferentes de seus antecedentes. Na recombinação ocorre a troca de material genético entre o par de antecedentes definindo assim a carga genética dos descendentes. Dessa forma, cada descendente desse par herdará uma parte do material genético de seus antecedentes escolhidos de forma aleatória. E na mutação ocorrem mudanças aleatórias no material genético do indivíduo. Dessa forma o indivíduo estará mais apto dentro daquela população. A simulação da passagem de gerações ocorre na repetição deste ciclo, ou seja, a cada iteração.

4) Áreas da computação evolucionária

Os estudos relacionados a CE não pararam. Outras áreas surgiram e ganharam importância no meio científico.

Recentemente, novas concepções de meta-heurísticas emergiram e todas diretamente relacionadas com a CE, por exemplo:

  1. Formações de Cristais
  2. Colônia de Formigas
  3. Enxame de Partículas

Tais propostas também têm uma forte motivação física ou biológica tais como bandos de pássaros, cardumes, enxames, entre outros.

Fonte: Wikipedia

Computação Natural

1) Introdução

A ciência da computação vem passando recentemente por uma importante transformação que busca combinar a computação realizada em ciência da computação com a computação observada na natureza que nos cerca, estendendo o conceito de ciência da computação.

Computação Natural é um importante catalisador desta transformação, reunindo várias facetas desta abordagem.

Computação Natural é um termo geral que se refere a computação que ocorre na natureza ou é inspirado por ela.

Busca-se entender e usar processos computacionais que modelam fenômenos complexos que ocorrem na natureza.

Espera-se obter ganhos de conhecimento na Ciências Natural e na Ciência da Computação.

Utiliza características, inspiradas pela natureza, na computação projetada por seres humanos para uso metafórico de conceitos, princípios e mecanismos fundamentando sistemas naturais.

A terminologia computação natural vem sendo empregada na literatura para descrever todos os sistemas computacionais desenvolvidos com inspiração ou utilização de algum mecanismo natural ou biológico de processamento de informação (Ballard, 1999; Gramß et al., 2001; Flake, 2000; Paton et al., 2003; de Castro & Von Zuben, 2004).

Fundamentalmente, a computação natural é constituída por novas abordagens computacionais caracterizadas por uma maior proximidade com a natureza.

2) Objetivos

Dentre os vários objetivos da computação natural, destacam-se:
  1. Desenvolver ferramentas matemáticas e computacionais para a solução de problemas complexos em diversas áreas do conhecimento;

  2. Projetar dispositivos (computacionais) que simulam, emulam, modelam
    e descrevem sistemas e fenômenos naturais;

  3. Sintetizar novas formas de vida, denominadas de vida artificial; e

  4. Utilizar mecanismos naturais, como cadeias de DNA e técnicas de engenharia
    genética, como novos paradigmas de computação.

Estes novos paradigmas vêm suplementar e/ou complementar os computadores atuais baseados em tecnologia de silício e arquitetura de Von Neumman.

Existem vários exemplos de objetos (artefatos) desenvolvidos com inspiração na natureza, tais como velcro (plantas), coletes a prova de bala (teias de aranha), sonares (morcegos), aviões, pássaros), entre outros.

Além disso, a observação da natureza permitiu o desenvolvimento de diversas leis e teorias para descrever o seu comportamento.

Por exemplo, pode-se citar algumas leis da física: na termodinâmica - conservação, entropia, e zero absoluto; na mecânica (leis de Newton); no eletromagnetismo (leis de Maxwell); entre outras.


A computação natural também está fortemente ligada à natureza sob diversas perspectivas e com abordagens distintas.

Por exemplo, o funcionamento do cérebro humano inspirou o desenvolvimento das redes neurais artificiais (Haykin, 1999) e o funcionamento do sistema imunológico dos vertebrados inspirou os sistemas imunológicos artificiais (de Castro & Timmis, 2002).

Portanto, a computação natural pode ser vista como uma versão computacional dos processos de análise (extração de idéias, mecanismos, fenômenos e modelos teóricos) e síntese da natureza para o desenvolvimento de sistemas “artificiais”, ou ainda como a utilização de meios e mecanismos naturais para realizar computação.

É importante salientar que a palavra “artificial” no contexto de computação natural significa apenas que os sistemas e dispositivos resultantes são desenvolvidos por seres humanos ao invés de serem produtos diretos da evolução das espécies.

3) Especializações
Universo científico que incorpora as áreas de pesquisa: Inteligência Computacional, Vida Artificial, Sistemas Dinâmicos Não-Lineares e outros sistemas complexos.


A área de computação natural pode ser divida em três grandes sub-áreas (de
Castro & Von Zuben, 2004):




  1. Computação Inspirada na Natureza.

  2. Computação com Mecanismos Naturais.

  3. Estudos sobre a natureza através da computação

Este tipo de computação exclui computação evolucionária, computação neural, computação coletiva (inteligência de enxames), computação molecular e computação quântica.







4) Algumas características da Computação Natural:



  1. Componentes elementares respondem lentamente quando comparados a componentes de estado sólido, contudo implementam operações de alto nível de abstração.

  2. Interações microfísicas, no nível quântico, contribuem para o processamento de sinais.

  3. O papel predominante exercido por estruturas dinâmicas em funções biológicas parece ser extensível ao processamento de informações biológicas.

  4. O crescimento de suas próprias montagens em sistemas biológicos habilita-os a empregar altos ‘fan-in” e’”fan-out” e enorme densidade de interconexão.

  5. As arquiteturas naturais exploram a possibilidade de ser implementada sem der planejada. Assim, pode-se guiar as computações através da energia ou entropia do sistema ao invés de suas restrições.

5) Conclusão


A computação natural é, portanto, a terminologia empregada para se referir a três tipos de sistemas:



  1. ferramentas computacionais para resolver problemas tomando-se como inspiração fenômenos e processos naturais, e/ou seus respectivos modelos teóricos (matemáticos);

  2. modelos computacionais para a simulação e/ou emulação de sistemas naturais
    e processos; e

  3. novos paradigmas de computação que utilizam meios, diferentes do silício, para armazenar e processar informação.

Embora todos os ramos da computação natural sejam jovens, sob um ponto de vista científico, muitos deles já estão sendo usados em nossas vidas diárias. Por exemplo, atualmente existem
máquinas de lavar roupa ‘inteligentes’, jogos e brinquedos virtuais/interativos, etc; a pesquisa em vida artificial e a geometria computacional da natureza vêm permitindo a criação de modelos realistas da natureza e a simulação e/ou emulação de diversas espécies de plantas e animais, inclusive em mídias como cinema e televisão, e têm contribuído para a síntese e conseqüente estudo de fenômenos naturais; a computação com meios naturais, por sua vez, vem fornecendo
novas perspectivas sobre como complementar e/ou suplementar a tradicional tecnologia baseada em silício.


A computação natural é altamente relevante para os cientistas da computação e engenheiros, pois ela fornece soluções alternativas, algumas vezes completamente novas, para problemas
até então não resolvidos ou resolvidos de forma pouco eficiente. Ela também fornece novas formas de ver, usar, compreender e interagir com a natureza.


Obviamente, ainda há muito a ser feito e certamente muitas novas propostas irão aparecer nesta área de pesquisa ampla e jovem. Entretanto, existem evidências de que a computação natural não é apenas uma área promissora; seus vários produtos e aplicações já afetam
nossas vidas, mesmo que muitos de nós não saibamos disso. É uma era que está apenas começando.


REFERÊNCIAS



  1. Aarts, E. & Korst, J. (1989), Simulated Annealing and Boltzman Machines - A Stochastic Approach to Combinatorial Optimization and Neural Computing, John Wiley & Sons.

  2. Adami C. (1998), An Introduction to Artificial Life, Springer-Verlag / Telos.

  3. Bäck, T., Fogel, D. B. & Michalewicz, Z. (2000), Evolutionary Computation 1 Basic Algorithms and Operators, Institute of Physiscs Publishing (IOP), Bristol and Philadelphia.

  4. Bäck, T., Fogel, D. B. & Michalewicz, Z. (2000), Evolutionary Computation 2 Advanced Algorithms and Operators, Institute of Physiscs Publishing (IOP), Bristol and Philadelphia.

  5. Ballard, D. (1999), An Introduction to Natural Computation, MIT Press.

  6. Banzhaf, W. & Reeves, C. (1998), Foundations of Genetic Algorithms, Morgan Kaufmann.

  7. Barnsley, M. F. (1988), Fractals Everywhere, Academic Press.

  8. Barnsley, M. F. and Demko, S. (1985), “Iterated Function Systems and the Global Construction of Fractals”, Proc. of the Royal Soc. of London, A339, pp. 243-275.

  9. Beyer, H.-G. (2001), Theory of Evolution Strategies, Springer-Verlag.

  10. Bishop, C. M. (1996), Neural Networks for Pattern Recognition, Oxford University
    Press.

  11. Bonabeau E., Dorigo, M. & Theraulaz, T. (1999), Swarm Intelligence: From
    Natural to Artificial Systems, New York: Oxford University Press.

  12. Calude, C. S. & Păun, G. (2001), Computing with Cells and Atoms: An Introduction
    to Quantum, DNA, and Membrane Computing, Taylor & Francis.

  13. Dasgupta, D. (1999), Artificial Immune Systems and Their Applications,
    Springer-Verlag.

  14. Dasgupta, D. & Michalewicz, Z. (1997), Evolutionary Algorithms in Engineering Applications, Springer-Verlag.

  15. de Castro, L. N.; Von Zuben, F. J., (2004), “From Biologically Inspired Computing to Natural Computing”, In L. N. de Castro e F. J. Von Zuben (eds.), Recent Developments in Biologically Inspired Computing, Chapter I, Idea Group Incorporation, pp. 1-8.

  16. de Castro, L. N. & Timmis, J. I. (2002), Artificial Immune Systems: A New Computational Intelligence Approach, Springer-Verlag.

  17. Fausett, L. (1994), Fundamentals of Neural Networks: Architectures, Algorithms, and Applications, Prentice Hall.

  18. Flake, G. W. (2000), The Computational Beauty of Nature, MIT Press.

  19. Fogel, L. J., Owens, A. J. & Walsh, M. J. (1966), Artificial Intelligence
    Through Simulated Evolution, Wiley, New York.

  20. Fogel, D. B. (1998), Evolutionary Computation: Toward a New Philosophy
    of Machine Intelligence, IEEE Press.

  21. Fournier, A, Fussell, D. & Carpenter, L. (1982), “Computer Rendering of
    Stochastic Models”, Comm. of the ACM, 25, pp. 371-384.

  22. Goldberg, D. E. (1989), Genetic Algorithms in Search, Optimization, and
    Machine Learning, Addison-Wesley Pub Co.

  23. Gramß, T., Bornholdt, S., Groß, M., Mitchell, M. & Pellizzari, T. (2001),
    Non-Standard Computation, Wiley-VCH.

  24. Haykin, S. (1999), Neural Networks: A Comprehensive Foundation, Prentice
    Hall.

  25. Hirvensalo, M. (2000), Quantum Computing, Springer-Verlag.

  26. Holland, J. H. (1975), Adaptation in Natural and Artificial Systems, MIT
    Press.

  27. Hutchinson, J. (1981), “Fractals and Self-Similarity”, Indiana Jorunal of
    Mathematics, 30, pp. 713-747.

  28. Ilachinski, A. (2001), Cellular Automata: A Discrete Universe, World Scientific.

  29. Kennedy, J.; Eberhart, R. & Shi. Y. (2001), Swarm Intelligence, Morgan Kaufmann Publishers.

  30. Kochenberger, G. A. & Glover, F. (2003), Handbook of Metaheuristics,
    Kluwer Academic Publishers.

  31. Kohonen, T. (2000), Self-Organizing Maps, Springer-Verlag.

  32. Koza, J. R. (1992), Genetic Programming: On the Programming of Computers
    by Means of Natural Selection, MIT Press.

  33. Kumar, S. & Bentley, P. J. (2003), On Growth, Form and Computers, Academic
    Press.

  34. Langton, C. (1988), “Artificial Life”, in C. Langton (ed.), Artificial Life, Addison-
    Wesley, pp. 1-47.

  35. Levy, S. (1992), “Artificial Life”, Vintage Books.