Hardware Evolutivo

[Repostagem; desatualizado]

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.

FPGA e hardware reconfigurável

Dispositivos lógico-programáveis, especialmente os FPGAs ("Field-Programmable Gate Arrays"), são a tecnologia-chave empregada no desenvolvimento de aplicações em hardware evolutivo. FPGAs são circuitos integrados (CIs) (da classe dos VLSIs ("Very Large Scale Integration")) sem função pré-determinada, apresentando recursos eletrônicos independentes que podem ser configurados via software (XILINX, 1991).

Fisicamente, um FPGA consiste em um arranjo bidimensional de blocos lógico-programáveis, conectados entre si por meio de uma estrutura de interconexões . A função lógica implementada por cada elemento – definida pelos estados das chaves transistorizadas que compõem o elemento -, bem como as conexões entre os blocos funcionais, são determinadas por vetores binários de configuração, que podem ser transferidos para o FPGA, repetidamente, a partir de uma fonte externa. Também é permitida a programação em mais de um nível: instruções para configuração das entradas e saídas dos blocos podem ser incluídas nos vetores binários.

O comportamento global de um FPGA depende das instruções que são carregadas no seu registrador de configuração. Do ponto de vista biológico, essa relação descreve o problema da obtenção do genótipo – a especificação genética – correspondente ao fenótipo desejado – o organismo maduro. Na engenharia, esse problema costuma ser resolvido com o auxílio de ferramentas convencionais de projeto, de natureza analítica ou empírica. A proposta do hardware evolutivo é, dado o comportamento fenotípico, reservar a um algoritmo evolucionário a tarefa de desenvolver o genótipo.

Outros dispositivos eletrônicos, inclusive circuitos analógicos configuráveis, também vêm sendo usados em aplicações de hardware evolutivo, com destaque para os HDPLDs ("High-Density Programmable Logic Devices") (YORK, 1993).

Evolução extrínseca x intrínseca

Os primeiros circuitos FPGA não eram adequados para implementar aplicações de hardware evolutivo, pois não aceitavam instruções de configuração aleatórias. Além disso, algumas arquiteturas não eram públicas e o tempo gasto para reconfigurar um circuito podia ser inviavelmente alto. A simulação da evolução diretamente no hardware teria pouco êxito, dado esse conjunto de desvantagens. Naquele momento, as aplicações de hardware evolutivo giravam em torno de uma evolução simulada ou evolução extrínseca (DE GARIS, 1999). Uma simulação em software do FPGA, executada com o auxílio de uma HDL ("Hardware Description Language"), é submetida a um algoritmo evolucionário, e apenas a configuração mais adaptada à tarefa em questão é carregada no hardware. A maior parte da evolução é externa ao circuito integrado.

Apenas em 1995, com o advento da série 6200 do FPGA Xilinx, o paradigma evolutivo pôde ser incorporado diretamente ao hardware. Sua robustez a configurações aleatórias, a redução do tempo necessário para reconfigurar o circuito e uma arquitetura de domínio público fizeram com que o FPGA 6200 se tornasse a ferramenta ideal para a aplicação do conceito de evolução intrínseca (DE GARIS, 1999). A cada ciclo, o algoritmo evolucionário gera um novo conjunto de instruções, que é usado para reconfigurar o próprio hardware – cada combinação podendo ser avaliada diretamente na execução de sua tarefa. Desse modo, as restrições naturais impostas pelo hardware são observadas automaticamente e todas as suas características – algumas difíceis de simular – podem ser exploradas (THOMPSON, 1995; SIPPER e RONALD, 2000).

Posteriormente, foram criados circuitos especialmente voltados para o hardware evolutivo, alguns deles incorporando todas as etapas evolutivas, característica fundamental em aplicações em tempo real. De fato, esse último tipo de adaptação é essencial em tarefas que exigem interações com ambientes dinâmicos, em que não se pode utilizar dispositivos totalmente pré-programados (SIPPER e RONALD, 2000).

Hardware Evolutivo: Motivações

Nesta seção são abordadas algumas das motivações existentes para a idéia de aplicar processos evolutivos no projeto de sistemas de hardware, na visão de Thompson (1995).

i. Velocidade de Operação

Boa parte das tentativas de se construir sistemas neurais altamente complexos – utilizados para controlar agentes autônomos – têm “esbarrado” em limites tecnológicos inerentes ao meio utilizado. Computadores de propósito geral e arquiteturas paralelas dedicadas não conseguem proporcionar a volatilidade necessária na hora de simular RNAs (Redes Neurais Artificiais) muito complexas. Segundo Thompson (1995), uma solução viável para o problema da velocidade de simulação é implementar RNAs em hardware reconfigurável e utilizar um AE (Algoritmo Evolucionário) para projetar a rede. A viabilidade dessa técnica tem sido sistematicamente avaliada (NORTHMORE, ELIAS, 1993; MURRAY, 1991).

ii. Exploração da Física Semicondutora
(Realidade Física x Abstração: Projeto eletrônico não-convencional)

"O projeto evolutivo de circuitos eletrônicos – designação válida para situações em que um AE é responsável pela produção de circuitos analógicos ou digitais – pode alcançar resultados surpreendentes, como circuitos de estrutura e funcionalidade revolucionários. Teoricamente, essa técnica pode explorar todas as características do hardware (reconfigurável), uma vez que, a cada configuração testada, pode-se avaliar as influências potenciais dos componentes do circuito no comportamento real da implementação." (THOMPSON, 1995, p. 6).

Segundo Thompson (1995), o espaço de busca utilizado em aplicações de hardware evolutivo é muito maior que o espaço disponível a um projetista humano. O projetista trabalha com modelos de alto nível, que procuram descrever, com algum grau de abstração, o comportamento dos blocos constituintes, bem como as interações entre eles. Para reduzir as conseqüências das imperfeições desses modelos na qualidade da implementação são adotadas restrições, como modularizar o projeto – impondo co-residência de funções lógicas, por exemplo – e desprezar os efeitos do transitório dos componentes no comportamento global do circuito (restrição dinâmica). Em um sistema de hardware evolutivo abre-se mão de abstrações e restrições ao projeto eletrônico. Os circuitos produzidos podem explorar propriedades do hardware até então desconhecidas, ou pequenos detalhes físicos do CI (Circuito Integrado), como variações pontuais na resistência elétrica. Visto que dois CIs do mesmo modelo não são rigorosamente idênticos, a transferência de genótipos entre dispositivos é virtualmente impraticável. Apesar disso, algumas opções para melhoria da robustez da técnica têm sido avaliadas: variar, durante a evolução, a temperatura ou a tensão de alimentação do CI (MANGE, 1993), ou fazer um ajuste fino da configuração transferida, por meio da execução de alguns ciclos evolutivos adicionais (MARCHAL et al., 1994).
 

Hardware Evolutivo: Aplicações

Hardware evolutivo online

Sipper e colegas (1997), do Swiss Federal Institute of Technology, em Lausanne, Suíça, foram os responsáveis pela primeira aplicação totalmente online de hardware evolutivo, na qual o dispositivo programável concentra todas as etapas evolutivas. O grupo usou FPGA Xilinx 4000 para criar um sistema capaz de evoluir o seu hardware, avaliar sua adaptação e executar o AE, tudo em uma única placa de circuito impresso.
O dispositivo online, chamado Firefly, foi projetado para executar uma tarefa de oscilação síncrona – do mesmo modo que um grupo de vaga-lumes emite pulsos luminosos em uníssono. A cada acionamento, o Firefly é capaz de se reconfigurar de modo a oscilar em sincronia com uma freqüência definida aleatoriamente. A técnica utilizada baseia-se nas regras de transição de estados do modelo de autômatos celulares (VON NEUMANN, 1996).

Robótica evolucionária

Thompson (1995) e sua equipe, da Universidade de Sussex, Brighton, Grã-Bretanha, criou uma aplicação simples de evolução offline, não baseada em FPGA, e demonstrou a viabilidade do emprego de técnicas de hardware evolutivo na solução de problemas reais. O experimento teve como objetivo desenvolver (evoluir) um circuito eletrônico para controlar um sistema robótico – um protótipo de duas rodas chamado Mr. Chips – cuja tarefa é se movimentar em uma arena retangular de 2,9 por 4,2 metros, sem tocar nas paredes divisórias, utilizando apenas um par de sensores fixos diametralmente posicionados.

O sistema de controle escolhido baseia-se na arquitetura Dynamic State Machine (DSM) – criada pelo grupo de Sussex – que, ao contrário da solução convencional que utiliza Finite State Machines (FSMs), aproveita características dinâmicas dos sinais. Esse arranjo DSM evolutivo, esquematizado na figura, toma como entradas diretas os sinais dos sensores e produz, como saída, sinais de controle para os motores das rodas. Uma importante característica da arquitetura DSM é a possibilidade de associar variáveis de estado assíncronas e síncronas – de acordo com uma freqüência determinada por um AG -, o que permite ao sistema exibir uma vasta gama de comportamentos dinâmicos.

No experimento descrito por Thompson (1995) foram utilizadas apenas duas variáveis de estado – os sinais de controle dos motores. A carga genotípica foi definida como 32 bits de RAM (que correspondem às duas variáveis de estado), 16 bits para o período do contador e XX bits para definir a condição de sincronia de cada variável envolvida no controle. O melhor indivíduo de cada geração foi avaliado no problema real. Após 35 gerações, o AG conseguiu produzir um circuito de desempenho satisfatório. Como primeiro experimento real em robótica evolucionária, Thompson (1995) apresentou resultados importantes, ao propor uma arquitetura mais simples que a FPGA, as que pode executar uma tarefa com recursos mínimos.

Entre outros interesses do grupo da Universidade de Sussex estão a evolução de circuitos tolerantes a falhas (THOMPSON, 1997) e o projeto automático de circuitos eletrônicos com múltiplas restrições (THOMPSON, 1996).

Modelo FEO e embriônica: hardware ontogenético

Sipper e colegas (SIPPER et al., 1997) desenvolveram também um modelo unificado para identificação dos aspectos biológicos que podem ser replicados em sistemas de engenharia. O modelo, conhecido como Filogenia, Epigenesia e Ontogenia (FEO), procura classificar o tipo de relevância biológica de um sistema segundo três direções distintas.

A filogenia – história evolucionária de uma espécie – é encontrada em sistemas em que vetores binários (genoma) evoluem ao longo do tempo, através de um AE. Outro exemplo de exploração de mecanismos filogenéticos são programas de vida artificial, utilizados para simular processos evolucionários, em que indivíduos (programas) procuram sobreviver em um ambiente de recursos limitados (memória e/ou tempo de processamento). Nesse caso, é importante ressaltar que alguns resultados vêm mostrando a emergência espontânea de estratégias de sobrevivência biologicamente relevantes, como parasitismo (SIPPER, 1995). Por outro lado, o próprio hardware evolutivo, como descrito até agora, também possui inspiração filogenética.

Sistemas de IA e RNA, implementados em software ou em hardware, têm inspiração na epigenesia – teoria biológica segundo a qual a constituição de seres vivos se inicia a partir de células não-estruturadas e se faz mediante sucessiva formação e adição de partes que não existiam na unidade inicial. Considerando que um ser humano adulto é formado por cerca de 6×1013 células, formadas a partir de um genoma composto por 3×109 bases nitrogenadas, não possuindo, portanto, informação suficiente para descrever todo o organismo, fica claro que o aumento na complexidade é promovido por um mecanismo extracelular. Ou seja, o desenvolvimento de um organismo deve ser influenciado pelo ambiente, que atua como fonte de informação adicional. Na engenharia, esse conceito encontra contrapartida em problemas de aprendizagem, surgindo, aí, sua aplicação em IA.

A terceira fonte de inspiração e a menos explorada, trata do desenvolvimento biológico de um organismo, do zigoto à fase adulta: a ontogenia. Sistemas de inspiração ontogenética devem implementar processos correspondentes à divisão celular – que permite a formação de um sistema multicelular, que trabalha paralelamente – e à diferenciação celular – que permite a uma célula, que possui todo o genoma do organismo, assumir uma função específica (“rodar” um trecho do código).

Gianluca Tempesti (1998), também do Swiss Federal Institute of Technology, descreve aplicações de hardware ontogenético, reunidas em um projeto conhecido como Embriônica (MANGE; STAUFFER, 1994) – contração das palavras embriologia e eletrônica. A característica comum nessas aplicações é a capacidade dos dispositivos de se auto-replicar (clonagem) e auto-reparar.

Os dispositivos criados no projeto Embriônica consistem em arranjos de células artificiais, implementadas por pequenos processadores de estruturas similares (o mesmo leiaute do hardware) mas funcionalidades diferentes (diferentes softwares). Cada processador armazena o código requerido para todo o arranjo e cada célula artificial seleciona, então, de acordo com sua posição no arranjo, qual a porção de código irá executar. A funcionalidade de cada processador é diferente, como no mundo biológico, porque executam diferentes partes do genoma artificial. Esta consideração vai contra as regras convencionais de projeto (que enfatizam a minimização do tamanho dos elementos), mas é útil na implementação, por exemplo, de circuitos auto-reparadores: uma vez que a célula contém o mesmo código de todas as outras do sistema, ela poderá, então, “substituir” qualquer uma delas, simplesmente executando uma parte diferente do genoma artificial. A equipe do Swiss Federal Institute of Technology criou um novo dispositivo FPGA, projetado com o propósito de implementar a auto-replicação das células diretamente no hardware.

Obviamente, esse arranjo de processadores requer uma quantidade considerável de lógica programável, o que implica que a probabilidade de ocorrerem falhas em alguma parte do circuito pode não ser insignificante. Sistemas biológicos trabalham com a mesma possibilidade e solucionam o problema substituindo células mortas por novas (cicatrização). Como a tecnologia atual ainda não permite a construção de um novo tipo de CI, equivalentes eletrônicos da cicatrização (o auto-reparo, por exemplo) terão que considerar a presença de falhas lógicas.

Evolução ao nível funcional e aplicações comerciais

O conceito de nível funcional, originalmente proposto por Murakawa e colegas (1996), do Evolvable Systems Laboratory (Electro-Technical Lab – ETL), Tsukuba, Japão, atesta que, além da evolução ao nível de portas lógicas (envolvendo, por exemplo, o controle de chaveamentos para as portas NAND, NOR etc.) pode-se evoluir ao nível de blocos funcionais (por exemplo, evolução de blocos de alto nível, tais como somadores, multiplicadores, funções seno, logarítmicas etc.), evoluindo apenas as conexões entre eles e mantendo fixas as conexões internas.

Murakawa e colegas (1996) defendem esse conceito argumentando que, na evolução ao nível de portas, o tamanho das instruções de configuração pode ser inviavelmente grande. Porém, segundo De Garis (1999), o conceito de evolução ao nível funcional não é muito flexível, uma vez que envolve a utilização apenas dos blocos já existentes no dispositivo programável. Em aplicações que exigem blocos funcionais diferentes, o código-base – que define as conexões internas ao bloco – precisa ser reescrito.

A equipe do ETL vem aplicando o conceito de hardware evolutivo em várias vertentes, buscando demonstrar a viabilidade comercial da técnica. Algumas das aplicações criadas, todas elas de evolução online, são: circuito analógico para telefonia celular, RNA implementada em um CI capaz de se reconfigurar automaticamente e CI para compressão de dados em impressoras fotográficas (HIGUCHI et al., 1999). Além de dispositivos dedicados, desenvolveram também um CI de propósito geral e o utilizaram para implementar um sistema de controle para uma mão artificial (prótese). A idéia é que o dispositivo possa se adaptar aos pulsos elétricos provenientes dos nervos do braço, o que reverte o conceito tradicional de adaptação a próteses. Ao invés do deficiente ter de se adaptar à prótese – o que normalmente envolve treinamento por período mínimo de um mês – a prótese passa a se adaptar à pessoa, com um treinamento online de duração inferior a dez minutos.

Cérebro Artificial

Um grupo japonês, do laboratório Human Information Processing (HIP), vinculado ao Advanced Telecommunications Research (ATR) Institute, de Kyoto, vem trabalhando com o desenvolvimento de cérebros artificiais para robôs autônomos (DE GARIS, 1996). Esse grupo, denominado Brain Builder Group (BBG), foi criado por Hugo de Garis, pesquisador que, há mais de uma década, dedica seu esforço ao desenvolvimento evolucionário de redes neurais artificiais complexas e em especial sua implementação em hardware (DE GARIS, 1990).

O principal projeto do BBG é a construção de um cérebro cuja estrutura – axônios e dendritos de suas unidades – é modelada através de um arranjo tridimensional de 450×106 autômatos celulares. Esses autômatos celulares compõem módulos neurais implementados diretamente em um conjunto de 72 FPGAs Xilinx XC6264. A reconfiguração contínua dos FPGAs garante a representação de 32768 módulos neurais diferentes, contendo 1152 neurônios cada um (37,7×106 neurônios no total). O projeto prevê uma taxa de atualização de 300 ciclos por segundo (100×109 atualizações de autômatos celulares por segundo), suficiente para aplicações de tempo real. Essa estrutura de módulos neurais, denominada CAM-Brain Machine (CBM), foi projetada através de programação genética, pela americana Genobyte, de Boulder, Colorado.

O BBG pretende utilizar a CBM, já concluída, para equipar um robô quadrúpede cujo objetivo é desenvolver um certo tipo de aprendizado – normalmente associado a atividades motoras, como andar e subir uma escada – a partir de interações com o meio ambiente (DE GARIS, 1999). O próximo objetivo do BBG é construir um cérebro artificial com mais de um bilhão de neurônios, o que é representativo considerando a referência humana (23 bilhões de neurônios).

Comentários Finais

Com este relato procurou-se alcançar os seguintes objetivos: i) classificar parte dos desenvolvimentos atuais em engenharia de acordo com a fonte de inspiração biológica e ii) oferecer um breve guia para a literatura em Hardware Evolutivo. O grande potencial do hardware evolutivo pode ser explicado pela sua natureza condizente com o conceito de “engenharia evolucionária”, isto é, o uso de conceitos evolucionários na construção de estruturas dinamicamente complexas. A complexidade interna de um sistema evolutivo é irrelevante ao algoritmo que o projeta, o que gera um ponto de partida motivador para o avanço das pesquisas. Desse modo, a engenharia evolucionária oferece a oportunidade de construir sistemas de um modo com o qual nenhuma outra técnica pode competir. Como as tradicionais técnicas top-down para projeto de circuitos eletrônicos estão usualmente limitadas por barreiras complexas (grande número de transistores em CIs ULSI, grande número de regras em sistemas baseados em fala, por exemplo), a engenharia evolucionária pode se tornar então a única alternativa viável para se alcançar avanços significativos.

 

Referências

bennet III, f.h., koza, j.r., andre, d.,AND keane, m.a. EVOLUTION OF A 60 DECIBEL OP AMP USING GENETIC PROGRAMMING. In Lecture Notes in Computer Science, no. 1259, Evolvable Systems: From Biology To Hardware, Proceedings of the First International Conference, ICES96, Tsukuba, Japan. Springer-Verlag, 1997.

DE GARIS, H. Genetic programming: building artificial nervous systems using genetically programmed neural network modules. In Porter, B.W. And Mooney, R.J. Eds., Proc. 7th International Conference on Machine Learning. Morgan Kauffman, 1990, p. 132-139.

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

DE GARIS, H. CAM-BRAIN: the evolutionary engineering of a billion neuron artificial brain by 2001 which grows/evolves at electronic speeds inside a cellular automata machine (CAM). In Towards Evolvable Hardware: The Evolutionary Engineering Approach. Sanchez, E. And Tomassini, M., eds. Lecture Notes in Computer Science, no. 1062. Springer-Verlag, 1996.

DE GARIS, H. Evolvable hardware: principles and practice. Kyoto, Japan: Evolutionary Systems Department, ATR, 1999. 10p. (Research Report).

HIGUCHI, H., MURAKAWA, M., and LIU, W. Real world applications of analog and digital evolvable hardware. In IEEE Transactions on Evolutionary Computation, special issue From Biology to Hardware and Back. 1999, p. 220-235.

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. MIT Press, Cambridge, Massachussets, 1992.

KOZA, J.R., BENNET III, J.H., ANDRE, D., and KEANE, M.A. Genetic programming III: darwinian invention and problem solving. Morgan Kauffman, San Francisco, 1999.

MANGE, D. Wetware as a bridge between computer engineering and biology. In Proceedings of the 2nd European Conference on Artificial Life (ECAL93), Brussels. p. 658-667, 1993.

MARCHAL, P., PIGUET, C., MANGE, D., STAUFFER, A., and DURAND, S. Achieving Von Neumann's dream: artifical lifwe on silicon. In Proc. o the IEEE Internatinal Conference on Neural Networks, icNN'94, vol. 4, p. 2321-2326, 1994.

MURAKAWA, S., YOSHIZAWA, S., KAJITANI, I., FURUYA, T., IWATA, M., and HIGUCHI, T. Evolvable hardware at function level. In Parallel Problem Solving from Nature – PPSN 4, Lecture Notes in Computer Science 1141, p. 62-71. Springer-Verlag, 1996.

MURRAY, A.F. Pulsed silicon neural networks – following the biologial leader. In Ramacher and Rückert, eds., VLSI Design of Neural Networks, p. 103-123. Kluwer Academic Publishers, 1991.

LIU, W., MURAKAWA, M., and HIGUCHI, T. ATM cell scheduling by function level evolvable hardware. In: INTERNATIONAL CONFERENCE ICES96, 1, 1996, Tsukuba, Japan.Lecture Notes in Computer Science, no. 1259, Evolvable Hardware Systems: FromBiology to Hardware, Proceedings… Berlin: Springer-Verlag, 1997. p. 214-221.

MANGE, D. Wetware as a bridge between computer engineering and biology. In: INTERNATIONAL CONFERENCE ON ARTIFICIAL LIFE, 2, 1993. Proceedings… p. 658-667.

MANGE, D., and STAUFFER, A. Introduction to Embryonics: Towards new self-repairing and self-reproducing hardware based on biological-like properties. In: Artificial Life and Virtual Reality. Chichester, England: John Wiley, 1994. p. 61-72.

MARCHAL, P., PIGUET, C., STAUFFER, A., and DURAND, S. Achieving Von Neumman's dream: artificial life in silicon. In: IEEE INTERNATIONAL CONFERENCE ON NEURAL NETWORKS, 3, 1994. Proceedings…, v. 4. Berlin: Springer-Verlag, 1994. p. 2321-2326.

SANCHEZ, E., and TOMASINI, M. Towards evolvable hardware: the evolutionary engineering aproach. Berlin: Springer-Verlag, 1996. Lecture Notes in Computer Science, no. 1062.

SANCHEZ, E., SIPPER, M., HAENNI, J., BEUCHAT, L., STAUFFER, A., and PÉREZ-URIBE, A. Static and dynamic configurable systems. IEEE Transactions on Computers, v. 48, no. 6, p. 556-564, 1998.

SIPPER, M. An introduction to artificial life. Explorations in Artificial Life (special issue of AI Expert), p. 4-8, september., 1995.

SIPPER, M., and RONALD, E.M.A. A new species of hardware. IEEE Spectrum, p. 59-64, march, 2000.

TEMPESTI, G. A self-repairing multiplexer-based FPGA inspired by biological processes. Lausanne: Swiss Federal Institute of Technology EPFL, 1998. (PhD Thesis).

THOMPSON, A. Evolving electronic robot controllers that exploit hardware resouces. In: EUROPEAN CONFERENCE ON ARTIFICIAL LIFE (ecal95), 3, 1995. Advances in Artificial Life, Proceedings… Berlin: Springer-Verlag, 1995. p. 640-656.

THOMPSON, A. Silicon evolution. In: GENETIC PROGRAMMING 1996 (GP96), 1, 1996. Proceedings… Boston: MIT Press, 1996. p. 444-452  

He1He2

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s