Mostrando postagens com marcador Computação Natural. Mostrar todas as postagens
Mostrando postagens com marcador Computação Natural. Mostrar todas as postagens

domingo, dezembro 23, 2007

Computação com Mecanismos Naturais

Trata-se de um novo paradigma de computação onde mecanismos naturais, como, por exemplo, as cadeiasde DNA e os bits quânticos, são utilizados como estruturas de dados para o desenvolvimento de “computadores naturais”.

Os produtos desta sub-área podem ser vistos como candidatos a substituir oucomplementar os computadores digitais disponíveis atualmente. Seus principais representantes são a computação molecular (Păun et al.,1998; Gramß et al., 2001) e a computação quântica (Hirvensalo, 2000;Nielsen & Chuang, 2000).


Em 1965 G. Moore observou que existe um crescimento exponencial na quantidade 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 escala
permanecer válida, ao final desta década computadores baseados em tecnologia
de silício terão atingido seus limites em termos de poder de processamento.

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?
A última década testemunhou a proposta e desenvolvimento de diversos meios alternativos de computação e suas respectivas técnicas. Estas abordagens são basicamente de dois tipos:

1) aquelas baseadas em biomoléculas, e
2) aquelas baseadas em bits quânticos.

As abordagens baseadas em biomoléculas, como cadeias de DNA ou RNA, ou membranas, são normalmente denominadas de computação molecular (Păun et al., 1998; Gramß et al., 2001; Calude & 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 como
computação quântica (Hirvensalo, 2000; Nielsen & Chuang, 2000; Pittenger,
2000).

No primeiro caso, biomoléculas são usadas como meio para armazenar informação
e técnicas de engenharia molecular (genética) são usadas para manipular
estas moléculas de forma a realizar 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.

Computação Explicativa - Estudos sobre a natureza através da computação

Computação Explicativa compreende a realização de estudos sobre a natureza através da computação: envolve a utilização demecanismos computacionais para asíntese de comportamentos naturais,padrões e processos biológicos. Aslinhas de atuação predominantes sãoos estudos sobre vida e organismosartificiais (Adami, 1998; Langton,1989; 1991; Levy, 1992), e a geometriafractal (Mandelbrot, 1982;Peitgen et al., 1992).

Ao contrário da computação inspirada na natureza, estudar fenômenos naturais através da computação é uma abordagem sintética que objetiva reproduzir ou criar padrões, formas, comportamentos e organismos que não necessariamente se assemelham à vida como nós a
conhecemos (‘life-as-we-know-it’). Estes estudos podem resultar em fenômenos completamente novos, nunca observados na natureza, mas que possuem características suficientes para serem
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 simular e emular fenômenos naturais de maneira
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 Artificial: “Vida Artificial é o estudo de sistemas feitos pelo homem, mas que exibem comportamentos característicos de sistemas naturais vivos. A Vida Artificial 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 artificiais de comportamentos similares àqueles observados em seres vivos. Atravé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 biologia
teórica localizando a vida-como-nós-a-conhecemos dentro de um contexto
maior da vida-como-ela-poderia ser.” (Langton, 1988; p. 1).

Em resumo, a Vida Artificial pode ser definida como a abordagem sintética ou virtual para o estudo de padrões (formas), comportamentos, 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 engenharia, computação, biociências e vários outros domínios. O cerne da geometria computacional da natureza está na visualização de fenômenos naturais.

Há várias técnicas que podem ser usadas com este propósito, a dizer, autômatos celulares (Ilachinski, 2001; Wolfram, 1994), sistemas de partículas (Reeves, 1983), sistemas de Lindenmayer ou sistemas-L (Lindenmayer, 1968), sistemas de funções iterativas (Hutchinson, 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 arquitetura computacional de paisagens naturais, o projeto de novas variedades de plantas, a predição de produtividade em
lavouras, o estudo de processos de crescimento e desenvolvimento celular, e a modelagem e síntese (e correspondente análise) de uma grande quantidade de padrões e fenômenos naturais (Mandelbrot, 1983; Flake, 2000; Peitgen et al., 1992; de Castro & Von Zuben, 2004).

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 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 Inspirada na Natureza

A Computação Inspirada na Natureza, inclui todas as estratégias desenvolvidas a partir de ou inspiradas em algum mecanismo biológico ou natural.

Como exemplos têm-se as redes 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ância. Logo, a inteligência artificial simbólica (Russell & Norvig, 2003) e os sistemas nebulosos (fuzzy) (Pedrycz & Gomide, 1998), essencialmente relacionados a estes temas, também podem inserir-se no escopo
da computação natural.

Estas três sub-áreas da computação natural têm patrocinado a proposição de poderosas ferramentas computacionais para a solução de problemas complexos de engenharia e têm permitido a geração de novos paradigmas de computação (Paton, 1994; Yokomori, 2002; Paton
et al., 2003).

É importante salientar que se trata de uma linha de pesquisa promissora, não apenas porque resultados concretos e convincentes têm sido produzidos pela aplicação de ferramentas concebidas exclusivamente com base nos princípios da computação natural (Zimmermann, 1999; Dasgupta & Michalewicz, 1997), mas porque diversos aspectos da biologia podem ser melhor tratados tendo em mãos ferramentas computacionais apropriadas.

  1. Computação evolucionária emprega conceitos de mutação, recombinação e seleção natural originados na neurociência.
  2. Computação neural é inspirada nas estruturas neurais densamente interconectadas do sistema nervoso central.
  3. Computação coletiva utiliza o comportamento coletivo de enxames de organismos provenientes da biologia.
  4. Computação molecular se baseia em paradigmas de biologia molecular.
  5. Computação quântica é fundamentada em física quântica para explorar paralelismo quântico.


O primeiro ramo da computação natural é também o mais antigo e bem consolidado. Com a descoberta de vários princípios e teorias sobre a natureza e o desenvolvimento de diversos modelos, pesquisadores de áreas como engenharia e computação perceberam que era possível
usar estes princípios, teorias e modelos para a implementação de sistemas computacionais com grande potencial de resolver problemas. A computação inspirada na natureza
compreende, principalmente: 1) redes neurais artificiais; 2) algoritmos evolutivos; 3) inteligência coletiva (swarm intelligence); 4) sistemas imunológicos artificiais; e 5) outros (modelos baseados
em crescimento e desenvolvimento celular, modelos culturais, etc.).

Um trabalho pioneiro da computação inspirada na biologia foi apresentado por McCulloch & Pitts (1943), introduzindo o primeiro modelo matemático (lógico) de um neurônio. Este modelo,
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 meados da década de 1960 com os trabalhos de I. Rechenberg (1973), H. P. Schwefel (1965), L. Fogel (Fogel et al.,
1966), e J. Holland (1975). Estes trabalhos 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 empregados
em tarefas de busca e otimização.

A inteligência coletiva (swarm intelligence) possui duas principais frentes
de pesquisa: algoritmos baseados no comportamento coletivo de insetos sociais
(Bonabeau et al., 1999), e algoritmos baseados em comportamentos
sócio-cognitivos humanos (Kennedy e al., 2002). No primeiro caso, o comportamento
coletivo de formigas e outros insetos levou ao desenvolvimento de
algoritmos para a solução de problemas de otimização combinatória, agrupamento
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 artificiais 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 pesquisa
que surgiu em meados da década de 1980. Suas aplicações vão desde a biologia
(p. ex. bioinformática) até a robótica (p. ex. navegação autônoma).

Outras técnicas emergentes decomputação inspirada na natureza são os algoritmos culturais, o algoritmo de simulated annealing, os sistemas baseados em crescimento e desenvolvimento,
os modelos baseados em células e tecidos e vários outros (Aarts & Korst, 1989; Paton, 1994; Paton et al., 2003; Kumar & Bentley, 2003; Kochenberger & Glover, 2003).

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.