• Nenhum resultado encontrado

EHW APLICADO A SÍNTESE DE CIRCUITOS DIGITAIS USANDO REPRESENTAÇÃO POR PORTAS LÓGICAS

N/A
N/A
Protected

Academic year: 2022

Share "EHW APLICADO A SÍNTESE DE CIRCUITOS DIGITAIS USANDO REPRESENTAÇÃO POR PORTAS LÓGICAS"

Copied!
11
0
0

Texto

(1)

EHW APLICADO A SÍNTESE DE CIRCUITOS DIGITAIS USANDO REPRESENTAÇÃO POR PORTAS LÓGICAS

Edilton Furquin Goulart Sobrinho

Universidade Estadual Paulista - UNESP - Faculdade de Engenharia de Ilha Solteira –FEIS Departamento de Engenharia Elétrica- DEE

CP – 31 CEP – 15385-000 Ilha Solteira, SP, Brasil ediltonsobrinho@gmail.com

Suely Cunha Amaro Mantovani

Universidade Estadual Paulista - UNESP - Faculdade de Engenharia de Ilha Solteira-FEIS Departamento de Engenharia Elétrica- DEE

Fax:+551837431150

CP – 31 CEP – 15385-000 Ilha Solteira, São Paulo, Brasil suely@dee.feis.unesp.br

RESUMO

Evoluir circuitos por intermédio de algoritmos evolutivos usando como plataforma os dispositivos reconfiguráveis, apresenta-se como uma nova metodologia de projeto de circuitos digitais ou analógicos. A esta técnica dá-se o nome de Circuito Evolutivo (Evolvable Hardware – EHW), onde cada circuito representa um cromossomo em um processo evolucionário, podendo evoluir através de operações genéticas para um circuito desejado. EHW, tornou-se possível com o desenvolvimento em grande escala dos dispositivos reconfiguráveis, cuja arquitetura e função são determinadas por programação. Baseado no conceito de circuitos evolutivos, propõe-se uma metodologia para síntese e otimização de circuitos digitais combinacionais de baixa e média complexidade, utilizando o algoritmo genético (AG). O AG, utiliza os conceitos da seleção natural para evoluir programas. Através desta técnica, implementa-se alguns exemplos que envolvem a codificação do problema em strings (cromossomos) de números inteiros que representam as portas lógicas dos circuitos e mostram o seu desempenho para a representação, fitness e operadores.

PALAVRAS CHAVE- Algoritmo Genético, Hardware Evolutivo, Sínteses de Circuitos.

ABSTRACT

Circuits synthesis’ through evolutionary algorithms using as platforms reconfigurable devices to show up as a new project methodology in the digital or analogic circuits. This technique is called Evolvable Hardware (EHW), where each circuit represents as a chromosome within an evolutionary process, evolving through genetic algorithms for a given circuit. EHW, became a reality due to the large scale development of reconfigurable devices, whose architecture and function can be determined by programming. In this work, a methodology for the synthesis and optimization of low-and-medium-complexity combinatorial digital circuits is proposed, based on the concept of evolutionary circuits, using a genetic algorithm (GA). The GA utilizes natural selection to evolving programs. Applying this methodology, some examples are implemented that consider the problem coding by strings (chromosomes) of integer numbers that represents the logical gates of circuits and shows its performance to representation, fitness and operators.

KEYWORDS -.Genetic Algorithms, Evolvable Hardware, Circuits Synthesis .

(2)

1. Introdução

A Inteligência Artificial tem servido de apoio direto a otimização de diferentes aspectos de projetos, através de seus algoritmos inteligentes, como Redes Neurais, Algoritmos Evolutivos, Lógica Fuzzy dentre outros, aplicados às diversas áreas do conhecimento humano.

Os algoritmos evolutivos como Algoritmo Genético - Genetic Algorithms(GA), Programação Genética - PG, Programação Evolutiva - PE, Estratégia Evolutiva - EE, inspirados na evolução biológica, são atualmente utilizados na otimização de sistemas, juntamente com os dispositivos reconfiguráveis projetados nos anos 1980. Esta técnica originou o desenvolvimento de uma nova tecnologia de projeto de circuitos, os circuitos evolutivos, do inglês Evolvable Hardware (EHW). Denomina-se EHW por ser um tipo de hardware que tem sua arquitetura e funções modificadas de maneira dinâmica e autônoma de forma a adaptar-se às mudanças no meio, diferindo do hardware tradicional cuja estrutura e funções são fixadas quando de sua fabricação. EHW fornece a idéia principal da adaptação de hardware para sistemas que têm comportamento dinâmico como os robôs, tornando-se viável com o desenvolvimento em grande escala dos dispositivos reconfiguráveis, FPGA’s (Field Programmable Logic Arrays), CPLD’s (Complex Programmable Logic Devices), etc. Os dispositivos reconfiguráveis, podem ter sua arquitetura e função determinadas por algoritmos evolutivos, basta para isso fazer uma codificação adequada de suas portas lógicas em forma de cromossomos. Os primeiros estudos em síntese de circuitos digitais foram mostrados em Zebulum et. al. (1997).

Neste artigo mostra-se a viabilidade da aplicação de sintetizar e otimizar circuitos digitais, usando a teoria do EHW e o Algoritmo Genético como técnica evolutiva. Para isso, serão apresentados os fundamentos teóricos utilizados na evolução de circuitos, a teoria de síntese de circuitos e a modelagem proposta para o EHW. Para validar o desempenho e eficiência computacional do modelo e da técnica de solução são mostrados três exemplos de síntese de circuitos digitais combinacionais. Finaliza-se o artigo com algumas considerações sobre a metodologia desenvolvida e implementada.

2. Fundamentos Teóricos 2.1. Hardware Evolutivo

Hardware Evolutivo é uma teoria que está baseada em algoritmos evolutivos e dispositivos lógicos programáveis e vem sendo usada no desenvolvimento de projeto de circuitos analógicos ou digitais por serem sistemas que necessitam de poucas informações na formulação do problema.

Na literatura destacam-se alguns trabalhos relevantes abordando o tema EHW, mostrando a abrangência do campo de aplicação:

• Campos et al (2004) desenvolveu um EHW que utiliza como algoritmo evolutivo a programação genética e cromossomos formados por expressões simbólicas LISP com comprimentos variáveis, para a obtenção de projetos de circuitos lógicos combinacionais simples, como detectores de números primos de 4 e 6 bits.

• Hereford (2004) utiliza a técnica EHW, para a detecção de falhas em sensores de temperatura. O algoritmo genético básico implementado usa recombinação, mutação, e seleção por roleta.

• Tyrrel et al (2004) mostra um algoritmo evolutivo aplicado no controle direcional de um robô, adaptando seu hardware conforme aconteça colisões ou falhas acusadas por seus sensores.

Para o entendimento e organização desta teoria Zebulum et. al (1997) propõe uma classificação que basicamente vem sendo seguida pela maioria dos pesquisadores nesta área.

Nesta classificação os tópicos mais importantes são:

Algoritmos evolutivos: Diversos algoritmos evolutivos podem ser usados, como o algoritmo genético - GA, a programação genética - GP, programação evolutiva - EP e a estratégia evolutiva - EE. A diferença entre eles se apresenta no tipo de representação e nos operadores utilizados. A escolha por um deles depende das características do modelo do problema a ser otimizado;

(3)

Processo de validação do hardware: Para validar o hardware, é necessário um ambiente para a avaliação do cromossomo, podendo ser de forma intrínseca ou extrínseca. No modo intrínseco ou on-line a evolução e a avaliação são realizados no dispositivo reprogramável. Os cromossomos de cada geração são avaliados em hardware. Por não necessitar de nenhum modelo de simulação este tipo de validação tem como vantagem ser mais rápida. No processo extrínseco ou off-line a evolução é feita via software em outro ambiente e ao término do processo de evolução é repassado somente o melhor cromossomo ao PLD (Programmable Logic Device);

Plataforma para a evolução: Como plataforma de programação, o EHW se utiliza de circuitos lógicos programáveis, como FPGA’s, CPLD’s ou componentes de uso específico como ASIC’s (Application-Specific Integrated Circuit) e mais recentemente o FPTA (Field- Programmable Transistor Arrays) e FPAA (Field-Programmable Analog Array) usados em síntese de circuitos analógicos;

Unidades Básicas: A evolução de um circuito se baseia em diferentes blocos construtivos ou unidades básicas que formam as conexões internas dos circuitos, que podem ser componentes, portas ou funções lógicas.

Com esta metodologia torna-se possível a execução de uma grande quantidade de tarefas além de Síntese de Circuitos Digitais, tais como, Reconhecimento de Padrões, Higuchi et. al. (1996.), Controle Adaptativo, Murata et. al. (2005), Tolerância à falhas, Hereford (2004), Circuitos Integrados VLSI (Very large Scale Integration), Zebulum et. al. (1997 e 2002).

2.2. Algoritmo Genético

Os GA’s desenvolvidos por John Holand e seu grupo de pesquisa na Universidade de Michigan em meados de 1970, Goldberg (1989), têm sido aplicados a uma variedade de problemas, sendo uma importante ferramenta em máquina de aprendizagem e otimização de funções. É utilizado em várias áreas e faz uso de estratégias inteligentes de busca. Na área de síntese de circuitos tem-se mostrado eficiente para obtenção correta de circuitos digitais combinacionais.

Os GA’s são baseados no princípio da seleção natural, onde os indivíduos melhores dotados têm maiores chances de sobreviver a um ambiente competitivo. As características específicas definidas pelo conteúdo genético (gene) do indivíduo determinam sua capacidade de sobrevivência. No processo de reprodução, os indivíduos melhores adaptados transmitem aos descendentes os melhores genes; por outro lado, os indivíduos menos adaptados não sobrevivem ao processo de competição. A evolução acontece quando os cromossomos de dois indivíduos bem dotados se juntam durante a reprodução formando novos indivíduos.

Para utilizar o GA em problemas de otimização, é necessário um conjunto de configurações (população de indivíduos) que representam uma das possíveis soluções do problema. Estas configurações geralmente são codificadas em cadeias ou strings binários. Todos os indivíduos da população são classificados pela qualidade de sua correspondente função objetivo ou função de fitness. Cada elemento melhor qualificado (alto fitness) tem maior probabilidade para gerar os elementos da nova população. A nova população é obtida através de operadores genéticos chamados de recombinação e mutação.

Na recombinação ou cruzamento de indivíduos, ocorre uma troca de material genético entre as melhores configurações, formando novos indivíduos. Após a escolha de dois cromossomos a aplicação ou não da recombinação é probabilística, ou seja, dois novos filhos podem ser produzidos ou então permanecem os dois indivíduos (pais) inicialmente selecionados.

A taxa de aplicação de recombinação geralmente é alta.

Na mutação natural produz-se a regeneração da perda de material genético. No algoritmo genético, a mutação produz uma modificação esporádica e aleatória de algum gene de um indivíduo da população. Este operador é aplicado a cada bit do cromossomo com uma taxa de probabilidade muito baixa.

Tanto a recombinação quanto a mutação, dependem das características físicas do problema estudado e dos parâmetros de controle do algoritmo utilizado tais como, tamanho da

(4)

população e número de gerações. Este processo é repetido várias vezes até que seja obedecido um critério de parada. Após satisfazer um critério de parada, o “melhor” indivíduo é apresentado como uma solução do problema, Michalewicz (1996).

3. Síntese de Circuitos

O aumento da complexidade dos projetos dos atuais circuitos exige ferramentas cada vez mais eficientes não somente para a minimização do circuito e implementação de funções desejadas, mas também na otimização de fatores como tempo de execução do projeto e consumo de energia. Os circuitos evolutivos, que congregam dispositivos reconfiguráveis e técnicas modernas de otimização fornecem uma alternativa interessante na área de projetos.

Os métodos tradicionais para projetar circuitos lógicos combinacionais minimizados, dentre eles, Mapas de Karnaugh, Karnaugh (1953) e Quine-McCluskey, McCluskey (1956) realizam a síntese a partir de uma tabela verdade, fornecendo circuitos otimizados em número de portas e variáveis de entrada para as portas. O primeiro é um método de auxilio a minimização de funções booleanas que utiliza uma representação gráfica. É bastante didático, mas limitado a 5 ou 6 variáveis, tornando-se uma tarefa árdua e com grandes chances de erros ao minimizar funções acima de 6 variáveis. O método Quine-McCluskey, minimiza as funções em forma de soma de produtos através de um processo tabular, servindo de base para a construção de ferramentas computacionais. Sua busca baseia-se na geração de todos os implicantes, o que aumenta exponencialmente a sua complexidade conforme aumentam as variáveis de entrada, além disso, são limitados a obter circuitos do tipo SOP – Soma de produtos, ou circuitos AND-OR. Os dois métodos podem servir como base de comparação para os testes realizados nesta pesquisa.

Neste trabalho avalia-se o desempenho do hardware evolutivo extrínseco aplicado à síntese de circuitos digitais combinacionais básicos.

O problema consiste em obter um circuito lógico combinacional minimizado que realize uma determinada função, a partir de uma tabela verdade ou expressão lógica equivalente , usando um algoritmo genético.

4. Modelagem do EHW 4.1 Codificação do Circuito

A codificação é um fator crítico para o bom desempenho do algoritmo. Originalmente cada cromossomo tem a forma de um vetor (string) binário que representa as variáveis do problema, que neste caso são portas lógicas e o cromossomo deve representar as entradas do circuito e as funções realizadas por cada porta. Inicialmente, utilizou-se uma codificação binária, mas, tendo em vista a redução do espaço de busca e o tempo de convergência do algoritmo, optou-se por uma codificação de números inteiros, conforme tabela 1. e em forma matricial linear numérica (Fig. 1.) baseada em Coello, (1999) e Louis (1993) que permite também, a variação do comprimento do cromossomo de modo a se obter um circuito correto e minimizado. A codificação da tabela 1. indica o significado para cada gene. Na coluna 1, os três primeiros bits da esquerda para a direita definem a porta a ser utilizada, e o quarto bit determina como serão realizadas as conexões da porta (restringe-se o modelo a portas de duas entradas). Na coluna 2 mostra-se o número decimal associado e na coluna 3 os tipos de portas que estão sendo utilizadas.

Encontra-se na literatura de síntese de circuitos, mais de um modelo de representação, como funções booleanas, (Zebulum et. al.,1997), mapa de fusíveis utilizando o GA, (Mantovani, 2004) e expressões simbólicas Lisp, para uso em programação genética, (Campos, 2004).A escolha do modelo pode ser baseada na complexidade do circuito que se deseja projetar.

(5)

Tabela 1. Codificação das Portas Lógicas.

Binário Decimal Representação 000 0 e 000 0 FIO(ausência de porta) 100 0 e 100 1 NOT

001 0 2 AND Segunda entrada 010 0 3 OR Segunda entrada 011 0 4 XOR Segunda entrada 001 1 5 AND Segunda entrada 010 1 6 OR Segunda entrada 011 1 7 XOR Segunda entrada

Figura 1. Representação Matricial do Circuito.

Nesta representação a matriz é bidimensional e cada elemento da matriz é uma porta lógica limitada a no máximo duas entradas ou fio de ligação. O circuito é estruturado de forma que uma porta receba nas suas entradas qualquer porta da coluna anterior. Formalizando esta representação, tem-se:

Se uma porta S está na posição Si,j, onde j indica o nível da porta (coluna), uma entrada é proveniente da posiçãoSi,j1 (mesma linha e coluna anterior); a outra entrada vem deSi+1,j1 (coluna anterior e uma linha abaixo) ou Si1,j1 , (coluna anterior e uma linha acima).

Com exceção para os extremos, ou seja, para elementos da primeira S1,j e última linha Sn,j. Nestas condições para os elementos da primeira linha a primeira entrada vem da posição S1,j1 e a segunda entrada vem da posição Sn,j1. Para elementos da última linha Sn,j, a primeira entrada vem da posiçãoSn,j1, e a segunda entrada é obtida de qualquer posição S1,j1 para i= 1, ...,n e j=1,..,k, onde n e k são números inteiros e não necessariamente diferentes um do outro.

4.2 Parâmetros e Restrições.

Tamanho da população e Número de iterações

O tamanho da população e o número de iterações (gerações) , dependem do espaço de busca do problema em questão e ambos são fatores determinantes do tempo de CPU consumido

(6)

pelo algoritmo .O número de iterações serve também, de critério de parada para o GA.

Função de adaptação (avaliação)

Com o objetivo de achar um circuito lógico otimizado (correto e minimizado), a função avaliação é realizada em duas etapas. A primeira perfaz a soma de acertos da seqüência de saída de uma tabela verdade ou expressão booleana, de acordo com a equação matemática:

( )

=

l

i

xi

x

f (1)

onde, a função f(x) indica o número de acertos na tabela verdade do caso sobre estudo; xi=0, falso; xi=1, verdadeiro e l é o número de linhas da tabela verdade para i=0, 1,... l.

Na segunda etapa, tendo o circuito que execute a tabela verdade (factível), é iniciado o processo de minimização em termos de entradas das portas e o número de portas lógicas no circuito. Para isso trocam-se as portas lógicas por fios, até que o desempenho especificado pela tabela verdade do circuito seja mantido. Desta forma, aumentando o número de fios obtém-se uma função w(x) que é um valor inteiro igual à quantidade de fios adicionados ao circuito. Este procedimento, de adicionar fios no lugar de componentes, equivale a minimizar o circuito em termos de portas lógicas (Coello, 1999) e ( Louis, 1993). A função de adaptação, fa, para este caso pode ser reescrita como:

( )

x f x w

( )

x

fa = ( )+ (2)

4.3 Operadores Genéticos Seleção

O operador seleção determina quais indivíduos participarão da recombinação, sendo aplicada a seleção por torneio. Juntamente com este operador, fez-se uso do elitismo, que tem como objetivo repassar as melhores configurações às próximas gerações. No elitismo implementado separam-se, com base no fitness, os 20% melhores indivíduos em um subconjunto A e os 80% restantes em outro subconjunto B. A seleção por torneio é realizada para os indivíduos do subconjunto B, através de “n” jogos. Neste esquema são selecionados aleatoriamente cinco indivíduos do subconjunto B e o melhor deles é escolhido. O outro indivíduo que vai participar da recombinação junto com este, é selecionado aleatoriamente entre os indivíduos do subconjunto de elite A.

Recombinação

A partir das configurações selecionadas, devem-se formar os pares de indivíduos e realizar o cruzamento, gerando dois novos descendentes. Implementou-se a “recombinação de um simples ponto” que consiste em determinar um ponto de cruzamento de maneira aleatória entre 1 e (k – 1), para uma configuração de k elementos, e trocar as parcelas à direita do ponto de cruzamento entre as duas configurações.

Este processo só é realizado se um outro número gerado aleatoriamente for menor que a taxa de recombinação “tr” definida pelo usuário. Caso contrário, os indivíduos selecionados serão apenas repassados para a próxima geração. A taxa de recombinação especifica de forma aleatória, a porcentagem de configurações que devem ser cruzadas.

Mutação

O operador de mutação é importante porque mantém a diversidade da população e a variabilidade dinâmica dos programas em evolução. A mutação aplicada nos exemplos é do tipo indutiva, recomendada quando se trata de representação numérica dos elementos (genes) que formam o cromossomo. Neste tipo de mutação, toma-se um cromossomo e aleatoriamente é alterado somente um elemento através de acréscimo ou redução de uma unidade. A quantidade de

(7)

genes a serem alterados é definida conforme a taxa de mutação “tm”, que é determinada de forma estocástica.

5. Resultados

Baseada na modelagem proposta são mostrados três exemplos de circuitos combinacionais. Os resultados obtidos são comparados a uma minimização realizada através de mapa de Karnaugh. Em todos os exemplos, diversos testes foram realizados visando a calibração dos parâmetros.

5.1. Primeiro exemplo

Consiste em um circuito combinacional de três entradas e uma saída, dado pela expressão booleana:

= (3,5,6)

1 ABC

F ;

onde, a população inicial é gerada de forma aleatória; matriz: 5X5 ou seja, tamanho do cromossomo (string numérico) de 25 genes. Os parâmetros de controle utilizados são: tamanho da população, 500; número máximo de iterações, 500; taxa de recombinação, 50%; taxa de mutação, 5 %.

EHW encontrado:

( )

[

A BC

]

AB

F1 = ⊕ +

4 portas lógicas : 2 AND’s, 1 XOR, 1 OR Obtido pelo Mapa de Karnaugh:

(

A B

) (

B A C

)

C

F1 = ⊕ + ⊕

5 portas lógicas: 2 AND’s, 1 OR, 2 XOR’s.

Neste exemplo, manteve-se constante a quantidade de indivíduos e iterações, sendo rápida sua convergência, mostrando o desempenho do GA com a redução de portas (mantendo a função do circuito), conforme o gráfico da figura 2. Para obter o circuito correto e minimizado, neste caso n=8 número de linhas da tabela verdade ou número de acertos.

Para um número de execuções igual a 10 vezes, o esforço computacional foi de aproximados 2,8 s, (consumo em média, 1MB de RAM).

Figura 2. Convergência do EHW (exemplo 1).

5.2. Segundo exemplo

O segundo exemplo é um circuito combinacional de quatro entradas e uma saída:

= (0,1,3,6,7,8,10,13)

2 ABCD

F

(8)

O cromossomo foi mantido com 25 genes definindo uma matriz bidimensional de 5x5.

População inicial aleatória, tamanho da população, 200; número de iterações, 400; taxa de recombinação, 50 %; taxa de mutação, 5 %;

EHW:

( )

[ ] ( )( )

{

'

}

'

2 A AC D B C CD

F = + ⊕ ⊕

9 portas lógicas: 4 AND’s, 2 XOR’s, 2 NOT’s, 1 OR Mapa de Karnaugh:

( ) ( )

[

' ' '

] [ ( )(

' '

) ]

2 AC DB CD C B

F = ⊕ + ⊕

11 portas lógicas: 4 AND’s, 4 NOT’s , 2 XOR’s, 1 OR.

Na figura 3., observa-se o desempenho do GA para este segundo exemplo, com a obtenção do circuito minimizado, aproximadamente na geração 300.

Figura 3. Convergência do EHW (exemplo 2).

5.3 Terceiro exemplo

O terceiro exemplo é um somador completo (circuito combinacional ) fig.4., que realiza a soma entre dois números binários (A e B) de um bit cada um . Comparam-se os resultados obtidos através da minimização usando Mapa de Karnaugh, fig.5, com os resultados obtidos pelo EHW fig.6.

A B Cin S Cout

0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

Figura 4. Tabela Verdade para o somador

onde , através do Mapa de Karnaugh , S = ABCin e Cout =BCin +ACin +AB, para Cin o vai um de entrada e Cout o vai um de saída.

(9)

Figura 5. Circuito somador minimizado pelo Mapa de Karnaugh.

Neste exemplo, baseado na proposta do circuito evolutivo, o cromossomo foi mantido com 25 genes definindo uma matriz bidimensional de 5x5. População inicial aleatória, tamanho da população, 500; número de iterações, 300; taxa de recombinação, 50 %; taxa de mutação, 3 %;

Na figura 6.(a) e (b), mostra-se o cromossomo gerado e o circuito obtido, respectivamente. Observa-se o desempenho do GA na fig.7 e a sua convergência para o resultado esperado na geração 100, aproximadamente.

b. Circuito obtido.

0 4 0 0 0 4 5 0 0 3 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a. Cromossomo gerado.

Figura 6. Somador

Figura 7. Convergência do EHW (terceiro exemplo).

(10)

6. Conclusões

Neste trabalho foi utilizado a teoria de EHW aplicado à síntese e minimização de projeto de circuitos digitais com uma representação alternativa matricial numérica inteira.

Inicialmente utilizou-se a representação por portas lógicas com uma codificação binária, mas visando um melhor desempenho do algoritmo Genético optou-se pela codificação em números inteiros. A codificação inteira, reduz o espaço de busca e o esforço computacional. As mudanças realizadas no GA básico resultaram em uma população mais diversificada facilitando a convergência do algoritmo.

As simulações dos exemplos mostram a confiabilidade da metodologia e indicam que circuitos mais complexos podem ser implementados . A validação dos circuitos encontrados é obtida através do ambiente de síntese da Altera, Quartus II versão 5.1, em linguagem C ++ de programação onde é gerado o código em VHDL e aplicado ao dispositivo da família MAX7000S, EPM7128SLC84-7, que comporta pequenos e médios projetos de circuitos combinacionais. O computador usado no desenvolvimento para os três exemplos é um laptop Compaq R4012US, CPU de 64 bits, 2 GHz de clock e 512 MB de memória RAM.

Agradecimentos

À Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES) pelo apoio financeiro.

Referências Bibliográficas

Campos, T. J., Oliveira, J. R., Jungbech, M. (2004), Programação Genética Aplicada ao Desenvolvimento de Hardware Evolutivo, In: Anais do XV Congresso Brasileiro de Automática - CBA2004, CD-V.1,Gramado – RS.

Coello, C. A. C., Christiansen, A. D., Aguirre, A. H. (1999), Towards Automated Evolutionary Design of Combinational Circuits, Lania-RI-99-03.d, Laboratorio Nacional de Informática Avanzada.

Goldberg, D. E. (1989), Genetic Algorithms in Search, Optimization and Machine Learning, Addison-Wesley Publishing Company, Inc.

Hereford, J. (2004), Robust Sensor System Using Evolvable Hardware, Proceedings of the 2004 NASA/DoD Conference on Evolution Hardware.

Higuchi, T., Iwata, M., Kajitani, I., Iba, H., Hirao,Y., Furuya, T., Manderick, B. (1996), Evolvable Hardware and its Application to Pattern Recognition and Fault - Tolerant Systems, Lecture Notes in Computer Science, vol. 1062, pp. 118-135.

Karnaugh, M. (1953), A Map Method for Synthesis of Combinational Logic Circuits, Transactions of the AIEE, Comunications and Electronics 72(I), pp. 593 - 599.

Louis, S.J.(1993), Genetic Algorithms as a Computational Tool for Design, PhD Thesis, Department of Computer Science, Indiana University, August 1993.

Mantovani, S.C.A., Oliveira, J. R.. (2004), Síntese de Circuitos Digitais por Evolução de Circuitos, In: Anais do XXXVII Simpósio Brasileiro de Pesquisa Operacional, CD-V1, pp. 1820- 1831, São João Del Rei- Minas Gerais.

McCluskey, E. J. (1956), Minimization of Boolean Functions, Bell Systems Technical Journal, 35(5) pp. 1417 - 1444.

Michalewicz, Z. (1996), Genetic Algorithms + Data Structures = Evolution Programs, 3 ed.

Heidelberg: Springer-Verlag.

Murata, N., Nosato, H., Furuya, T., Murakawa, M. (2005), Intelligent Systems Design and

(11)

Applications, ISDA '05. Proceedings 5th International Conference on 8-10 Sept. 2005 pp.546 – 551.

Tyrrel, A. M, Krohling, R. A., Zhou, Y. (2004), Evolutionary Algorithm for the Promotion of Evolvable Hardware, IEE Proc. – Computer Digital Techonogical, vol. 151, No. 4, Julho.

Zebulum, R. S., Pacheco, M. A., Pacheco, M. V. (1997), Evolvable System in Hardware Design: Taxonomy, Survey and Applications, LNSC – vol 1259,pp.344-358.

Zebulum, R. S., Pacheco, M. A., Pacheco, M. V. (2002), Evolutionary Electronics, Automatic Design of Electronic Circuits and Systems by Genetic Algorithms, The CRC Press International Series on Computational Intelligence,299.

Referências

Documentos relacionados

SÉRGIO FABIANO CESTARI – EPP, já qualificada nos autos do CUMPRIMENTO DE SENTENÇA, de número à margem, que promove em relação a BRUNO BIGLIASSI, vem, respeitosamente,

· 4.3 Indicações sobre cuidados médicos urgentes e tratamentos especiais necessários Não existe mais nenhuma informação relevante disponível.. SECÇÃO 5: Medidas de combate

O Climate Policy Initiative/ Núcleo de Avaliação de Políticas Climáticas da PUC-Rio trabalha para aprimorar políticas públicas de energia e uso da terra gerando evidências para

No Brasil, há uma forte concorrência entre o ônibus e o avião no transporte interestadual de passageiros para algumas rotas, principalmente se não houver uma diferença muito grande

Proposta de indicadores de sustentabilidade para formação do Subíndice Ambiental (SA) preenchida com dados referentes ao parque aquícola de Breu Branco III no reservatório

Núbia Ivete Monteiro de Oliveira, constituída pela Portaria nº 290/2012, publicada no DOE de 20/06/2012,alterada pela Portaria SEGESP nº 023/2013, publicada no DOE de

 Dadas as profundas mudanças que o homem causou na terra, é impossível entender, prever, ou manejar aspectos ecológicos sem entender por que e como o homem alterou esses aspectos

Nossa Diocese, em comunhão com a Igreja no Brasil, em sua nona Assembleia propôs-se a ser “uma Igreja em estado permanente de missão, casa da iniciação à vida cristã, lugar