20040923

Hardware Evolucionário?

Enquanto lê este artigo, você está usando um poderoso conjunto de dispositivos - incluindo olhos, mãos e cérebro - que compartilham uma característica essencial: eles são produto de mutações aleatórias e cruzamentos genéticos bem sucedidos, como descrito pela teoria darwinista da evolução das espécies.

"A neuroanatomia em qualquer espécie - especialmente em uma espécie dominada pelo cérebro, como a nossa - é produto de um processo evolutivo relativamente 'desordenado’, 'oportunista’, simultâneo, e apenas parcialmente integrado, passado ao longo de bilhões de anos, e que deu origem a órgãos desiguais, evoluídos em animais diferentes, em eras diferentes, e com propósitos diferentes" (KONNER, 1998).

Essa sentença singular, que captura os princípios básicos da evolução natural, também contém todas as características necessárias para descrever uma “má” engenharia em termos humanos. Entretanto, entre o homem e a natureza, a última é a mais engenhosa.

Organismos biológicos, uma das mais intrincadas estruturas conhecidas pelo homem, exibem comportamento guiado pela cooperação paralela de um grande número de elementos relativamente simples: as células. As tarefas impostas a muitos sistemas computacionais atuais têm exigido o desenvolvimento de técnicas cada vez mais complexas. Como a inteligência humana oferece uma limitação natural para o nível de complexidade desses sistemas, a engenharia vem utilizando, em uma escala cada vez maior, a natureza como fonte de inspiração no projeto de sistemas de software e hardware.

A inspiração biológica no desenvolvimento de softwares já se encontra bem estabelecida. Através de algoritmos de programação genética (PG) (KOZA, 1992) pode-se implementar um processo de evolução artificial que tenha como objetivo “construir” um programa - geralmente codificado em LISP [LISt Processing] - que ofereça a melhor solução para um dado problema, segundo algum critério de avaliação.

Uma outra aplicação da PG consiste no projeto evolucionário de circuitos eletrônicos (BENNET III et al., 1997). Algoritmos de PG são apenas uma variação de um conjunto mais amplo de técnicas - algoritmos evolucionários (AE) - que procuram utilizar uma simulação da evolução em software para resolver problemas de engenharia. Outro tipo de AE, os algoritmos genéticos (AG) - comumente utilizados em problemas de otimização multidimensional -, também podem ser usados como ferramentas de projeto. Essa funcionalidade corresponde a uma mudança na ênfase tradicional dos AG, cuja indiferença em relação à complexidade permite a construção de sistemas difíceis de serem concebidos por técnicas convencionais.

Enquanto os métodos tradicionais procuram dividir os sistemas em componentes simples e então estudá-los individualmente, um AG associa componentes de maneira complexa e então testa o funcionamento de cada associação. As “boas” associações têm mais chances de serem copiadas, sofrerem mutações e cruzamentos, gerando um conjunto mais adaptado de combinações.

Nos últimos anos, abriu-se uma nova possibilidade na aplicação de conceitos biológicos à tecnologia: a construção de dispositivos capazes de evoluir, definidos como máquinas darwinianas, por De Garis (1993), ou, mais comumente, hardware evolutivo. A implementação de tais dispositivos envolve conceitos e técnicas de AE, redes neurais artificiais (RNA), vida artificial e eletrônica de circuitos reconfiguráveis, voltados para a construção de sistemas autônomos, auto-adaptáveis e tolerantes a falhas. O grande incremento dos recursos computacionais e, mais recentemente, a disponibilização de uma nova geração de dispositivos lógico-programáveis mais robustos a alterações, permitiram um avanço significativo do hardware evolutivo nos últimos cinco anos.

Para que o conceito de hardware evolutivo seja útil, é necessário satisfazer ao menos duas condições: i) os circuitos que evoluem devem ser, simultaneamente, funcionais e muito complexos para a compreensão humana, caso contrário poderiam ser projetados através das técnicas tradicionais; ii) os circuitos devem evoluir mais rápido que a evolução simulada em software, caso contrário seria mais fácil e prático realizar apenas simulações (DE GARIS, 1993).

Segundo De Garis (1993), dispositivos capazes de evoluir serão essenciais no desenvolvimento de sistemas nervosos artificiais para que robôs possam desenvolver algum tipo de aprendizado, a partir de interações com estímulos ambientais, um experimento de interesse tanto para o campo da inteligência artificial (IA) quanto para a vida artificial. Outra vantagem sugerida por De Garis (1993) é a possibilidade de criar nanodispositivos auto-associáveis e autotestáveis.

Atualmente, por sua vez, o hardware evolutivo já encontra aplicação em arquitetura de computadores, controladores para próteses médicas e impressoras fotográficas, entre outras.

-----------------
BENNET III, F.H. et al. Evolution of a 60 Decibel OP AMP Using Genetic Programming. In Evolvable Systems: From Biology To Hardware, Proceedings of the First International Conference, ICES96, Tsukuba, Japan. Lecture Notes in Computer Science, n. 1259. Springer-Verlag, 1997.

DE GARIS, H. Evolvable hardware: genetic programming of a darwin machine. In: INTERNATIONAL CONFERENCE ON ARTIFICIAL NEURAL NETWORKS AND GENETIC ALGORITHMS, Innsbruck. Proceedings... , Berlim: Springer-Verlag, 1993. p. 441-449.

KONNER, M. A piece of your mind. Science, New York, v. 281, p. 653-654, Jan. 1998.

KOZA, J.R. Genetic programming: on the programming of computers by means of natural selection. Massachusetts: MIT Press, 1992.