Computação Natural:
Uma Breve Visão Geral
Leandro N. de Castro, Ricardo J. G. B. Campello, Eduardo R. Hruschka, Marta C. Rosatelli
{lnunes,campello,erh,rosatelli@unisantos.edu.br}
P r o g r a m a d e M e s t r a d o e m I n f o r m á t i c a
U n i v e r s i d a d e C a t ó l i c a d e S a n t o s ( U n i S a n t o s )
R . D r . C a r v a l h o d e M e n d o n ç a , 1 4 4
1 1 0 7 0 - 9 0 6 , S a n t o s / S P
Abstract
A computação natural envolve todos os siste-mas computacionais desenvolvidos com inspi-ração ou utilização de algum mecanismo na-tural de processamento de informação e inclui as seguintes sub-áreas: 1) computação inspi-rada na natureza; 2) estudos sobre a natureza através da computação; e 3) computação com mecanismos naturais. Este artigo apresenta uma descrição da linha de pesquisa denomi-nada de computação natural. Cada sub-área da computação natural é explicada brevemente e seus principais componentes e aplicações são listados.
1. CONCEITOS BÁSICOS
A terminologia computação natural
vem sendo empregada na literatura para descrever todos os sistemas computa-cionais desenvolvidos com inspiração ou utilização de algum mecanismo natu-ral 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 natu-ral é constituída por novas abordagens computacionais caracterizadas por uma maior proximidade com a natureza.
Dentre os vários objetivos da com-putação natural, destacam-se:
• Desenvolver ferramentas matemáti-cas e computacionais para a solução de problemas complexos em diversas áreas do conhecimento;
• Projetar dispositivos (computacio-nais) que simulam, emulam, mode-lam e descrevem sistemas e fenôme-nos naturais;
• Sintetizar novas formas de vida, de-nominadas de vida artificial; e
conserva-ção, entropia, e zero absoluto; na mecâ-nica (leis de Newton); no eletromagne-tismo (leis de Maxwell); entre outras. A computação natural também está forte-mente ligada à natureza sob diversas perspectivas e com abordagens distin-tas. Por exemplo, o funcionamento do cérebro humano inspirou o desenvolvi-mento das redes neurais artificiais (Haykin, 1999) e o funcionamento do sistema imunológico dos vertebrados inspirou os sistemas imunológicos arti-ficiais (de Castro & Timmis, 2002).
Portanto, a computação natural po-de ser vista como uma versão computa-cional 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 sali-entar que a palavra “artificial” no con-texto 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.
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: inclui todas as estratégias desenvol-vidas a partir de ou inspiradas em algum mecanismo biológico ou na-tural. Como exemplos têm-se as re-des neurais artificiais (Haykin, 1999), a computação evolutiva
(Bäck et al., 2000a,b), a inteligência coletiva (Bonabeau et al., 1999; Kennedy et al., 2001), e os sistemas imunológicos artificiais (Dasgupta, 1999; de Castro & Timmis, 2002). É importante destacar que os próprios aspectos cognitivos e do raciocínio humano representam mecanismos naturais de fundamental importân-cia. Logo, a inteligência artificial simbólica (Russell & Norvig, 2003) e os sistemas nebulosos (fuzzy) (Pe-drycz & Gomide, 1998),
essencial-mente relacionados a estes temas, também podem inserir-se no escopo da computação natural.
2. Estudos sobre a natureza através da computação: envolve a utilização de mecanismos computacionais para a síntese de comportamentos naturais, padrões e processos biológicos. As linhas de atuação predominantes são os estudos sobre vida e organismos artificiais (Adami, 1998; Langton, 1989; 1991; Levy, 1992), e a geo-metria fractal (Mandelbrot, 1982; Peitgen et al., 1992).
3. Computação com mecanismos natu-rais: trata-se de um novo paradigma de computação onde mecanismos naturais, como, por exemplo, as ca-deias de DNA e os bits quânticos, são utilizados como estruturas de dados para o desenvolvimento de “computadores naturais”. Os produ-tos desta sub-área podem ser visprodu-tos como candidatos a substituir ou complementar os computadores digi-tais disponíveis atualmente. Seus principais representantes são a com-putação molecular (Păun et al., 1998; Gramß et al., 2001) e a com-putação quântica (Hirvensalo, 2000; Nielsen & Chuang, 2000).
2. COMPUTAÇÃO INSPIRADA NA
NATUREZA
O primeiro ramo da computação natural é também o mais antigo e bem consoli-dado. Com a descoberta de vários prin-cípios e teorias sobre a natureza e o de-senvolvimento de diversos modelos, pesquisadores de áreas como engenharia e computação perceberam que era pos-sível usar estes princípios, teorias e modelos para a implementação de sis-temas computacionais com grande po-tencial de resolver problemas. A com-putação inspirada na natureza compreende, principalmente: 1) redes neurais artificiais; 2) algoritmos evolu-tivos; 3) inteligência coletiva (swarm intelligence); 4) sistemas imunológicos artificiais; e 5) outros (modelos basea-dos em crescimento e desenvolvimento celular, modelos culturais, etc.).
Um trabalho pioneiro da computa-ção inspirada na biologia foi apresenta-do por McCulloch & Pitts (1943), in-troduzindo o primeiro modelo matemá-tico (lógico) de um neurônio. Este mo-delo, também conhecido como neurônio artificial, deu origem a uma linha de pesquisa denominada de redes neurais artificiais (Fausett, 1994; Bishop, 1996; Haykin, 1999; Kohonen, 2000).
Outra abordagem de computação motivada pela biologia surgiu em mea-dos da década de 1960 com os trabalhos de I. Rechenberg (1973), H. P. Schwe-fel (1965), L. Fogel (Fogel et al., 1966), e J. Holland (1975). Estes traba-lhos deram origem à linha de pesquisa conhecida atualmente como computação evolutiva, composta pelos algoritmos evolutivos (Goldberg, 1989; Bäck et al., 2000a,b; Fogel, 1995; Bahnzaf et al., 1998; Michalewicz, 1996; Mitchell, 1998; Beyer, 2001; Koza, 1992), que usam idéias da biologia evolutiva para desenvolver algoritmos a serem empre-gados em tarefas de busca e otimização.
A inteligência coletiva (swarm in-telligence) possui duas principais fren-tes de pesquisa: algoritmos baseados no
comportamento coletivo de insetos so-ciais (Bonabeau et al., 1999), e algo-ritmos baseados em comportamentos sócio-cognitivos humanos (Kennedy et al., 2002). No primeiro caso, o compor-tamento coletivo de formigas e outros insetos levou ao desenvolvimento de algoritmos para a solução de problemas de otimização combinatória, agrupa-mento de dados (clustering), robótica coletiva, e outros. Algoritmos baseados em sócio-cognição são eficazes para a realização de buscas em espaços contí-nuos.
Os sistemas imunológicos artifici-ais possuem suas idéias extraídas do sistema imunológico dos vertebrados e seus modelos teóricos (Dasgupta, 1999; de Castro & Timmis, 2002; Timmis et al., 2003). É uma nova linha de pesqui-sa que surgiu em meados da década de 1980. Suas aplicações vão desde a bio-logia (p. ex. bioinformática) até a robó-tica (p. ex. navegação autônoma).
Outras técnicas emergentes de computação inspirada na natureza são os algoritmos culturais, o algoritmo de
simulated annealing, os sistemas basea-dos em crescimento e desenvolvimento, os modelos baseados em células e teci-dos e vários outros (Aarts & Korst, 1989; Paton, 1994; Paton et al., 2003; Kumar & Bentley, 2003; Kochenberger & Glover, 2003).
3. ESTUDOS SOBRE A NATUREZA
ATRAVÉS DA COMPUTAÇÃO
qualificados como “naturais”. Ou seja, organismos artificiais que não possuem nenhuma similaridade com organismos conhecidos na Terra podem ser criados. A idéia é usar a computação para simu-lar e emusimu-lar fenômenos naturais de ma-neira não-determinística. O estudo da natureza através da computação possui duas frentes principais de pesquisa: 1)
vida artificial (ALife); e 2) geometria computacional (fractal) da natureza.
Como colocado por C. Langton em seu capítulo pioneiro sobre Vida Artifi-cial: “Vida Artificial é o estudo de sis-temas feitos pelo homem, mas que exi-bem comportamentos característicos de sistemas naturais vivos. A Vida Artifi-cial complementa as ciências biológicas tradicionais preocupadas com a análise
de organismos vivos através da síntese
em computadores ou outros meios arti-ficiais de comportamentos similares àqueles observados em seres vivos. A-través da extensão dos fundamentos empíricos sobre os quais a biologia está baseada para além da vida baseada em carbono que evoluiu na Terra, a Vida Artificial pode contribuir para a biolo-gia teórica localizando a vida-como-nós-a-conhecemos dentro de um contex-to maior da vida-como-ela-poderia-ser.” (Langton, 1988; p. 1). Em resumo, a Vida Artificial pode ser definida co-mo a abordagem sintética ou virtual pa-ra o estudo de padrões (formas), com-portamentos, sistemas e organismos que se assemelham à vida (Adami, 1998; Levy, 1992).
A visualização computacional de modelos (matemáticos) de estruturas e processos naturais resulta em imagens, animações e sistemas interativos úteis como ferramentas computacionais para a pesquisa, ciência e educação em en-genharia, computação, biociências e vá-rios outros domínios. O cerne da geo-metria computacional da natureza está na visualização de fenômenos naturais. Há várias técnicas que podem ser usa-das com este propósito, a dizer, autô-matos celulares (Ilachinski, 2001; Wol-fram, 1994), sistemas de partículas
(Re-eves, 1983), sistemas de Lindenmayer ou sistemas-L (Lindenmayer, 1968), sistemas de funções iterativas (Hutchin-son, 1981; Barnsley & Demko, 1985; Barnsley, 1988), movimento Browniano (Fournier et al., 1982; Voss, 1985), etc.
As aplicações desta sub-área da computação natural incluem a arquite-tura computacional de paisagens natu-rais, o projeto de novas variedades de plantas, a predição de produtividade em lavouras, o estudo de processos de cres-cimento e desenvolvimento celular, e a modelagem e síntese (e correspondente análise) de uma grande quantidade de padrões e fenômenos naturais (Mandel-brot, 1983; Flake, 2000; Peitgen et al., 1992; de Castro & Von Zuben, 2004).
4. COMPUTAÇÃO COM
MECANIS-MOS NATURAIS
Em 1965 G. Moore observou que existe um crescimento exponencial na quanti-dade de transistores que são colocados em um circuito integrado. De acordo com a “Lei de Moore”, o número de transistores em um chip dobra a cada par de anos ou ano e meio. Se esta esca-la permanecer válida, ao final desta dé-cada computadores baseados em tecno-logia de silício terão atingido seus limi-tes em termos de poder de processamen-to. Uma questão que surge, então, é qual outro tipo de material, diferente do silício, pode fornecer uma alternativa para o projeto e implementação de um dispositivo computacional?
& Păun, 2001; Păun & Cutkosky, 2002; Sienko et al., 2003). Por outro lado, as abordagens baseadas em bits quânticos constituem o que é hoje conhecido co-mo computação quântica (Hirvensalo, 2000; Nielsen & Chuang, 2000; Pitten-ger, 2000).
No primeiro caso, biomoléculas são usadas como meio para armazenar in-formação e técnicas de engenharia mo-lecular (genética) são usadas para ma-nipular estas moléculas de forma a rea-lizar processamento de informação. Cumpre observar que esta abordagem se baseia na sofisticação e eficiência das técnicas de engenharia genética. A computação quântica, por outro lado, armazena informação em bits quânticos e manipula esta informação usando princípios da mecânica quântica.
5. COMPUTAÇÃO NATURAL:
PORQUÊ E QUANDO
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 respec-tivos modelos teóricos (matemáticos); 2) modelos computacionais para a simu-lação e/ou emusimu-lação de sistemas natu-rais e processos; e 3) novos paradigmas de computação que utilizam meios, di-ferentes do silício, para armazenar e processar informação.
Embora todos os ramos da compu-tação natural sejam jovens, sob um pon-to de vista científico, muipon-tos 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 plan-tas 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 forne-cendo novas perspectivas sobre como complementar e/ou suplementar a tradi-cional tecnologia baseada em silício.
A computação natural é altamente relevante para os cientistas da computa-ção e engenheiros, pois ela fornece so-luçõ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 evi-dê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, Insti-tute of Physiscs Publishing (IOP), Bris-tol 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.
6. Banzhaf, W. & Reeves, C. (1998), Foundations of Genetic Algorithms, Morgan Kaufmann.
7. Barnsley, M. F. (1988), Fractals Eve-rywhere, 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 Evolu-tion Strategies, Springer-Verlag.
10. Bishop, C. M. (1996), Neural Networks for Pattern Recognition, Oxford Uni-versity 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), Com-puting with Cells and Atoms: An Intro-duction to Quantum, DNA, and Mem-brane 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 Bio-logically 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 Ap-proach, Springer-Verlag.
17. Fausett, L. (1994), Fundamentals of Neural Networks: Architectures, Algo-rithms, and Applications, Prentice Hall.
18. Flake, G. W. (2000), The Computa-tional 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 Philoso-phy 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 Algo-rithms 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 Com-puting, 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 Auto-mata: A Discrete Universe, World Sci-entific.
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 Program-ming: On the Programming of Com-puters by Means of Natural Selection, MIT Press.
33. Kumar, S. & Bentley, P. J. (2003), On Growth, Form and Computers, Aca-demic Press.
34. Langton, C. (1988), “Artificial Life”, in C. Langton (ed.), Artificial Life, Ad-dison-Wesley, pp. 1-47.
36. Lindenmayer, A. (1968), “Mathemati-cal Models for Cellular Interaction in Development, Parts I and II”, Journal of Theoretical Biology, 18, pp. 280-315.
37. Mandelbrot, B. (1983), The Fractal Geometry of Nature, W. H. Freemand and Company.
38. McCulloch W. & Pitts W. (1943), “A Logical Calculus of the Ideas Immanent in Nervous Activity”, Bulletin of Mathematical Biophysics, 5, pp. 115-133.
39. Michalewicz, Z. (1996), Genetic Algo-rithms + Data Structures = Evolution Programs, Springer-Verlag, 3r d Ed.
40. Mitchell, M. (1998), An Introduction to Genetic Algorithms, The MIT Press.
41. Moore, G. E. (1965), “Cramming More Components into Integrated Circuits”, Electronics, 38(8).
42. Nielsen, M. A. & Chuang, I. L. (2000), Quantum Computation and Quantum Information, Cambridge University Press.
43. Paton, R. (Ed.) (1994), Computing with Biological Metaphors, Chapman & Hall.
44. Paton, R., Bolouri, H. & Holcombe, M. (2003), Computing in Cells and Tis-sues: Perspectives and Tools of Thought, Springer-Verlag.
45. Păun, G. & Cutkosky, S. D. (2002), Membrane Computing, Springer-Verlag.
46. Păun, G., Rozenberg, G. & Saloma, A. (1998), DNA Computing, Springer-Verlag.
47. Peitgen, H.-O, Jürgens, H. and Saupe, D. (1992), Chaos and Fractals: New Frontiers of Science, Springer-Verlag.
48. Pittenger, A. O. (2000), An Introduc-tion to Quantum Computing Algo-rithms, Birkhäuser.
49. Rechenberg, I. (1973), Evolutionss-trategie: Optimierung Technischer Sys-teme Nach Prinzipien der Biologischen Evolution, Frommann-Holzboog, Stutt-gart.
50. Reeves, W. T. (1983), “Particle Sys-tems – A Technique for Modeling a Class of Fuzzy Objects”, ACM Trans-actions on Graphics, 2(2), pp. 91-108.
51. Schwefel, H. –P. (1965), Kybernetische Evolutionals Strategie der Experimen-tellen Forschung in der Stromung-stechnik, Diploma Thesis, Technical University of Berlin.
52. Sienko, T., Adamatzky, A. & Rambidi, N. (2003), Molecular Computing, MIT Press.
53. Timmis, J., Bentley, P. J. & Hart, E. (Eds.) (2003), Artificial Immune Sys-tems, Proc. of the International Confer-ence on Artificial Immune Systems (ICARIS 2003), Springer-Verlag.
54. Voss, R. F. (1985), “Random Fractals Forgeries”, In R. A. Earnshaw (ed.), Fundamental Algorithms for Computer Graphics, Springer-Verlag: Berlin, pp. 805-835.
55. Wolfram, S. (1994), Cellular Automata and Complexity, Perseus Books.
56. Yokomori, T. (2002), “Natural Compu-tation – New Computing Paradigm Learned from Life Phenomena”, IPSJ Magazine, vol. 41, pp. 08-11.