Você está na página 1de 17

Aplicaao de algoritmos evolutivos em circuitos c eletrnicos o

Caio Cestari Silva Paulo Henrique Floriano Prof. Alfredo Goldman 14 de dezembro de 2009

Resumo Este trabalho tem como objetivo estudar e analisar os resultados obtidos pelo artigo Evolution of Robustness in an Electronics Design [3]. Neste, so discutidas as aplicaoes a c de algoritmos evolutivos para a criaao de um circuito eletrnico e a capacidade de tal c o abordagem de produzir circuitos cujas caracter sticas no podem ser geradas a partir a de nenhum outro mtodo. Alm disso, analisa-se a possibilidade de deixar com que a e e evoluao ignore certas restries dos padres de design digital para atingir maior eccia c co o a e robustez.

Introduo ca
Algoritmos genticos so meta-heur e a sticas utilizadas para a resoluo de problemas de ca

busca ou otimizaao. Neste mtodo, inicia-se com um conjunto de candidatos a soluao c e c (chamado populaao) e aplicam-se operadores de combinaao e mutao sobre os elemenc c ca tos deste conjunto para obter uma nova geraao, na qual s persistem solues iguais ou c o co melhores as da gerao anterior. Repetindo este processo por muitas geraes, obtemos ` ca co soluoes cada vez mais prximas da tima. c o o Diversos experimentos j foram feitos utilizando algoritmos genticos em projeto de a e circuitos eletrnicos geralmente muito complexos para se projetar manualmente. Este o processo produz resultados signicativos pois independe dos preconceitos que dirigem o pensamento humano e explora candidatos a soluo que uma pessoa poderia desconsiderar. ca A partir deste processo o artigo [2] relata que diversos circuitos patenteados no passado por mostrar boa funcionalidade foram redescobertos por algoritmos genticos que buscavam e soluoes melhores para aqueles problemas. c O trabalho estudado relata um experimento em evoluao de circuitos chamados emerc gentes, que so aqueles cujo comportamento no pode ser facilmente previsto com base a a apenas no conhecimento das componentes e suas interconexes. Este tipo de circuito no o a pode ser facilmente criado pelos mtodos convencionais devido ` necessidade de modelar e a o comportamento das componentes, porm, um algoritmo gentico, que depende apenas e e da anlise do resultado do circuito e no de seu comportamento, encontra mais facilidade. a a Desta forma, um circuito evolu pode ultrapassar o escopo dos padres atuais de design do o de circuitos eletrnicos. o O objetivo do experimento evoluir um circuito para apresentar maior robustez, ou e seja, a possibilidade de operar adequadamente sob variaoes especicadas de temperatura, c voltagem e outros fatores f sicos. A utilizaao das restrioes dos modelos tradicionais de c c circuitos facilita a obteno de robustez, caracter ca stica geralmente ignorada por circuitos evolu dos a partir de algoritmos genticos. No artigo estudado [3], mostra-se uma forma de e utilizar a evoluao para obtermos circuitos robustos e suas consequncias. Apresentaremos c e tais resultados no decorrer deste trabalho. 1

Nas prximas seoes, descrevemos em detalhes as caracter o c sticas e o funcionamento dos algoritmos genticos, bem como sua utilizao na criaao de circuitos eletrnicos. Em e ca c o seguida, detalhamos o experimento realizado no artigo estudado.

Algoritmos Genticos e
Um algoritmo gentico uma meta-heur e e stica utilizada para resoluao de problemas de c

busca e otimizao. Por tratar-se de uma meta-heur ca stica, um algoritmo gentico pode ser e aplicado a qualquer tipo de problema que se encaixe na modelagem. Esta tcnica baseiae se no princ pio biolgico da evoluo pois modela o espao de busca atravs de populao ca c e oes com diferentes gentipos (caracter c o sticas) e suas interaes atravs de reprodues, co e co mutaoes e recombinaoes de genes. As principais etapas deste tipo de abordagem so: c c a Inicializao - Gera-se uma populaao inicial escolhida aleatoriamente; ca c Passo - A partir da populaao atual, constru c mos a prxima levando em conta os o indiv duos mais adaptados (soluoes com melhor avaliao), e; c ca Terminao - O algoritmo para quando atingimos uma populao com soluoes ca ca c aceitveis ou quando atingirmos um certo nmero de geraoes. a u c Podemos utilizar qualquer tipo de estrutura para representar uma soluo; a repreca sentaao mais comum por meio de uma sequncia de bits. Esta forma boa pois c e e e e bastante concisa e facilita a comparaao e avaliao das soluoes. c ca c Para comparar as soluoes de um dado problema, constru c mos uma funao de adaptaao c c (tness) que avalia cada indiv duo da populaao por meio de um nmero real. Quanto c u maior o valor de adaptaao, melhor a soluo. O clculo da funo de adaptaao pode c e ca a ca c levar muito tempo, dependendo da representao utilizada para as soluoes, o que torna ca c a escolha da avaliaao da populaao uma das principais diculdades na aplicao de alc c ca goritmos genticos. e Inicialmente, gera-se um conjunto aleatrio de candidatos a soluao (indiv o c duos) para formar a primeira geraao. Se for conhecida alguma informao sobre o dom que perc ca nio mita inferir o local onde as solues otimas tm maior probabilidade de serem encontradas, co e poss limitar a populao inicial a candidatos prximos deste local. e vel ca o A partir da populaao inicial e das subsequentes, temos que obter os indiv c duos da prxima geraao. Para isto, utilizam-se os processos de seleao, mutaao e reproduo, o c c c ca 3

tomando como base a funao de adaptaao aplicada a cada indiv c c duo.

O processo

de seleo consiste na escolha de certos candidatos a soluao da populaao atual para ca c c fazer parte da nova geraao. Normalmente, os indiv c duos com maior valor de funo de ca adaptaao tm maior probabilidade de serem selecionados. Nos casos em que a populao c e ca muito grande e, portanto, avaliar todas as soluoes muito custoso, pode-se colher uma e c e amostra menor para realizar a seleo. ca Alm da seleao, outra forma de compor a prxima populao atravs de mutaoes. e c o ca e e c Neste processo, so escolhidos alguns indiv a duos ao acaso (independentemente do valor da funao de adaptaao) para sofrerem pequenas modicaoes e passarem para a geraao c c c c seguinte. Se a soluo est representada por meio de um array de bits, a mutaao geralca a c mente escolhida a inverso de um destes bits. Por m, o processo de reproduo consiste e a ca em gerar indiv duos da prxima geraao atravs de um processo de combinaao gentica o c e c e entre dois ou mais indiv duos da geraao atual. A forma usual de reproduao de solues c c co (em arrays de bits) selecionando um ou dois pontos de crossover, onde ocorre a quebra e dos arrays e a devida recombinao das partes. ca Ao nal destes trs processos, teremos uma populaao nova, na qual a mdia de tness e c e geralmente maior que a da geraao anterior. Apesar disso, mantem-se uma parcela dos e c indiv duos candidatos a soluao que apresentam valores pequenos da funao de avaliaao. ` c c c Age-se desta forma pois tais candidatos podem ser modicados, ainda que ligeiramente, gerando soluoes com valores maiores de tness, superiores inclusive as que aparentavam c ` ser melhores. Exemplo: o problema da mochila (booleana) pode ser modelado e resolvido utilizandose um algoritmo gentico. Sabemos que a mochila possui capacidade mxima W , e que e a temos n produtos, indivis veis, com pesos w1 , w2 , . . . , wn e os valores v1 , v2 , . . . , vn , associados a cada produto. Toma-se um vetor x de dimenso n, onde cada a ndice i representa um produto, no qual: 1, xi = 0,

se o produto i no escolhido a e caso contrrio a

O objetivo maximizar o valor de e dade W da mochila.

n i=1

xi vi , sem que

n i=1

xi wi seja maior que a capaci-

Para modelar este problema de forma favorvel a resoluo com um algoritmo gentico, a ` ca e precisamos denir a representaao de uma soluo e uma funao de adaptao. A reprec ca c ca sentaao pode ser feita com uma sequncia de bits, na qual o i-simo bit equivalente a c e e e xi . A funo de avaliao denida da seguinte maneira: ca ca e 0,
n i=1 n i=1

f (x) =

xi v i ,

se

xi w i W

caso contrrio a

Com esta representao, podemos utilizar um algoritmo gentico para resolver o probca e lema da mochila.

Design Eletrnico Restrito e Irrestrito o


No processo de desenvolvimento de circuitos eletrnicos, existem alguns paradigmas o

que devem ser seguidos para que o comportamento desejado do produto nal seja atingido e seu funcionamento no seja facilmente afetado por ru a dos externos. Estas restrioes de c design so particularmente uteis na criaao manual de circuitos (no automatizada), pois a c a permitem uma maior facilidade em sua modelagem e avaliaao. Existem dois padres c o principais de design eletrnico: digital e analgico. o o Num circuito digital, toda vez que um sinal utilizado por uma componente, ele e e arredondado para um dos extremos de voltagem (geralmente 0 e 1). Deste modo, um sinal s pode ser transmitido de um elemento para outro do circuito se estiver em um o dos estados extremos. Esta abordagem permite que um circuito seja modelado atravs e de uma algebra booleana, podendo ignorar quase que completamente a interaao f c sica das componentes com o meio externo. Alm disso, circuitos digitais so extremamente e a tolerantes a corrupao de sinais, uma vez que este restaurado a um dos valores extremos c e em quase todas as oportunidades. Mas, estas vantagens vm com o preo das fortes e c restrioes que este modelo impe para simplicar a realidade. c o Um modelo um pouco mais complexo o analgico. Neste, os sinais no so mais e o a a arredondados; sua natureza cont nua preservada. Esta abordagem permite que uma e gama maior de circuitos sejam criados, pois as restrioes so diminu c a das consideravelmente. Porm, isto gera certas diculdades, como a grande complexidade das relaoes e c entre as componentes e a baixa tolerncia a falhas devido aos sinais cont a nuos. Por isso, o design de circuitos analgicos geralmente ca restrito ao uso de blocos pr-fabricados. o e Se considerarmos um espao de busca no dom c nio dos circuitos eletrnicos, os designs o mencionados abrangeriam apenas uma pequena parte dele. Apesar disto, muito dif e cil para um humano desenvolver circuitos fora das convenes tradicionais. Para procurar co circuitos em locais desconhecidos deste espao de busca uma tarefa que apenas uma c e ferramenta automtica de design poderia realizar. a

Evoluo no Design Eletrnico ca o


Tendo como objetivo gerar bons circuitos automaticamente para certas aplicaoes, c

surgiu a ideia de utilizar algoritmos genticos. Esta abordagem permite que uma grande e quantidade de circuitos sejam criados e testados sob diversas condies rapidamente, co permitindo que o circuito gerado alm de ter bom funcionamento, consiga uma certa e margem de tolerncia a falhas. a A evoluo muito poderosa quanto a exploraao do espao de busca. Este poder ca e c c cresce ainda mais se as restrioes de design convencionais puderem ser ignoradas no dec senvolvimento das geraes. Com a possibilidade de buscar circuitos que no poderiam co a ser gerados de nenhuma outra maneira, a evoluao irrestrita pode explorar assncronos c cujo comportamento no pode ser facilmente previsto, aumentando as chances de que seja a encontrado um circuito adequado. Como mencionado anteriormente, para se modelar um problema para que possa ser resolvido com um algoritmo gentico, devemos denir trs fatores: a representao gentica e e ca e de uma soluao, a funao de adaptaao calculada sobre cada indiv c c c duo e a forma de obtenao de uma nova gerao, a partir da populaao atual. c ca c Nos trabalhos que mostram a utilizaao de algoritmos genticos para evoluo de circ e ca cuitos eletrnicos, a representao gentica de um circuito o prprio. Esta representao o ca e e o ca no compacta, mas adequada devido a forma de clculo da funo de adaptao. Dia e e ` a ca ca ferentemente dos problemas tradicionais, a funao de tness no depende do formato das c a conexes internas do circuito, mas apenas de sua resposta a alguns padres de entrada. o o Geralmente, alimenta-se o circuito com um conjunto aleatrio de entradas e calcula-se seu o valor de adaptaao baseado nos valores da sa c da. A modelagem da transiao de geraoes varia conforme o experimento. Alguns deles c c utilizam todos os operadores j mencionados, outros deixam alguns, como o cruzamento, a de lado. No experimento estudado, apenas as mutaes foram utilizadas, pois a populao co ca utilizada possui apenas um indiv duo. Geralmente, uma mutaao consiste na mudana c c da sequncia reconhecida por um dos multiplexadores do circuito. e

O chip FPGA
Um chip costuma vir pr-programado, mas e se no for esta a necessidade do usurio e a a

para um certo aparelho? Surge a idia dos hardwares congurveis e recongurveis, e a a abrindo caminho para a programao de portas lgicas em uma estrutura conhecida ca o como FPGA, Field Programmable Gate Array. Semicondutor, criado pela Xilinx Inc., composto por: e Blocos Lgicos Congurveis: reunio de ip-ops, de 2 a 4, com lgica combio a a o nacional; Blocos de Entrada e Sa da: interface das sa das dos blocos lgicos congurveis, o a funcionando como buers, e; Chaves de Interconexes: trilhas que conectam os dois blocos em redes aproprio adas, utilizando funes lgicas. co o

Figura 1: Um chip FPGA Os circuitos que podem ser desenhados numa FGPA vo desde alguns blocos at a e grandes propores, e as clulas so capazes o suciente para implementar funoes lgicas co e a c o e rotear a comunicaao entre elas. Tal comunicao possui uma arquitetura, que posiciona c ca barramentos e chaves de interconexes de forma a abrigar os blocos lgicos, e que deve o o permitir comunicaao completa e grande densidade de portas lgicas. c o

Figura 2: Um bloco lgico de uma FPGA o Neste meio, esto envolvidos conceitos como pinos, conexes, redes, blocos de coa o mutaao, segmentos de trilhas, canais de roteamento, blocos de conexo, dentre outros, e c a sobre essa estrutura lgica do FPGA que se operou o experimento que ser descrito a e o a seguir.

6
6.1

O Experimento
Descrio e Estrutura ca

O experimento consiste em, dada uma onda quadrada de 1kHz ou 10kHz, determinar a tal frequncia da entrada pela sua tenso de sa e a da, que oscila entre extremos altos e baixos, identicando cada uma. Dada esta estrutura inicial, a partir da qual ser aplicado a o algoritmo gentico, objetiva-se que cada candidato a soluao seja testado por quatro die c ferentes chips FPGA XC6216, com diferentes fabricantes, interfaces, temperaturas, PSUs (Power Supply Units), etc. Dentre os quatro experimentos, o que apresentasse pior valor seria determinante para a avaliaao nal de tness daquela geraao. c c Uma FPGA possui 64 x 64 clulas, mas apenas 10 x 10 foram utilizadas no processo e de evoluo. Para cada chip diferente, foi utilizada uma regio distinta, apenas ativando ca a as conexes entre as clulas envolvidas no processo. Os 10 multiplexadores localizados o e nas clulas possuem a seguinte distribuiao: e c Quatro multiplexadores 4:1, entre clulas vizinhas; e Trs multiplexadores X, que selecionam as entradas para o funcionamento de cada e clula; e Dois multiplexadores 4:1, de funcionamento interno, e; Um multiplexador seletor 2:1 CS (Combinacional ou Sequencial ). Entra-se, ento, com um sinal de clock para todas as FPGAs, originado de um cristal a unico externo com frequncia nominal de 6MHz. Sabe-se que cada clula pode ser s e e ncrona ao clock, ass ncrona ao clock ou ainda mista, baseando-se na utilizao ou no da sa ca a da do ip-op; porm, no processo evolutivo no se produz um design s e a ncrono, pois no h a a regras sobre o mesmo impostas para as modicaes de uma gerao para a outra. co ca

6.2

O Algoritmo Evolutivo

Um operador de mutaao seleciona uma dentre as 100 clulas, de forma aleatria, c e o e ento um dos seus multiplexadores, tambm de forma aleatria, recongurando-o para a e o 10

selecionar uma entrada diferente. Na tcnica conhecida como Estratgia Evolutiva, aplicae e se a mutaao trs vezes a cada nova variante a ser produzida. Ento, um oscilador de um c e a milho de MHz dispara frequncias de 1kHz e 10kHz, aleatoriamente, com um intervalo a e de 100 milissegundos, de forma que haja nmeros iguais de disparo para ambas. Circuitos u anlogos integram os resultados de cada chip e calculam uma mdia para a tenso de sa a e a da nesse intervalo.

Figura 3: Chips utilizados no experimento, com suas caracter sticas nominais Seja um chip dito como integrador do circuito, denominado c, considerado ao nal do sinal de teste t, representado por ie , com (t = 1, 2, ...T ), e seja S1 o conjunto dos sinais t de 1kHz e S10 o conjunto dos sinais de 10kHz. A funao de avaliaao da conguraao de c c c c calculada como: e Ec =
1 2T c tS1 it

c tS10 it

Pc

a e ca A funao de tness F considerada como o min4 (E c ). H, alm disso, uma funo de c e c=1 penalizaao para os circuitos que apresentam ru c dos na sa (oscilaes no esperadas), da co a que considera, para cada FPGA, um contador de transioes lgicas de alto para baixo c o a cada pulso. Se esse nmero no sinal de teste t dado por N c (t), ento o contador u e a retornaria um valor dado por Rc (t), que o m e nimo entre o nmero de transioes lgicas u c o e 255, uma constante. Dessa forma, dene-se P c , para w um peso (inicialmente nulo), como: Pc = w x
1 2T T t=1

max(Rc (t) 1, 0)

A base do algoritmo a existncia de caminhos que podem no melhorar imediatamente e e a o valor de tness, mas que podem ser responsveis por grandes alteraes em geraes a co co futuras. Os pais iniciais so encontrados por meio de uma busca aleatria, com um ponto a o inicial de performance melhor que a trivial. E necessrio utilizar uma recongurao a ca 11

parcial pela mutaao pois algumas FPGAs so reconguradas por meio de uma interface c a serial lenta. O critrio de parada denido pelo usurio, e esse o ciclo do algoritmo e e a e gentico aplicado aos circuitos FPGA. e Obervaoes sobre o algoritmo: alguns valores e conguraes, como a dos pais c co iniciais, so encontrados por meio de testes aleatrios e independentes, tendo como base a o o resultado do tness. Tais conguraes provaram ser ecazes aps vrias geraes, co o a co reduzindo o nmero de ru u dos e distores na sa e eliminando os indiv co da duos considerados no adaptados. a

6.3

Resultado e Anlise do Experimento a

O circuito, surpreendentemente, funcionou bem em todos os modelos e condies difeco rentes a que foi submetido. H apenas um ponto de melhora: quando altera-se a frequncia a e de entrada, so necessrios alguns ciclos at que a sa se modique, em vez de um sima a e da ples meio-ciclo. O tempo no inuiu negativamente na robustez: aps 24 horas, no houve a o a transioes indesejadas. Nem a queda de de temperatura at o os 50o C foi suciente para c e inuir no funcionamento do circuito, que continuava intacto.

Figura 4: Parte funcional do circuito gerado Foi vericado, aps a geraao do modelo nal, se este representava algum modelo de o c operaao lgica digital conhecido, aplicando-o a um simulador amplamente utilizado, o c o PSpice. Utilizando sinais sem ru binrios, e com uma descriao da propagao interna do, a c ca 12

(para cada componente) de suas entradas at sua sa e da, foi poss reproduzir um bom vel funcionamento do circuito sem a necessidade de um ajuste mais no das conguraoes do c simulador. Em contrapartida, a simulao foi executada um pouco mais lentamente: em ca um Pentium 233MHz, apresentou mais de 60 mil vezes mais demora que se executado no mundo real. O mecanismo central do circuito consiste em uma oscilao diferente para cada frequncia ca e de entrada: o oscilador pode variar um nmero u mpar de vezes, dada uma entrada, terminando em um estado diferente do inicial, ou no. Tal mecanismo utiliza apenas trs a e clulas, tendo as outras o papel de atrasar a entrada realimentada, corrigindo as situaoes e c em que a sa constante para uma entrada e alternada a cada ciclo para a outra. da e

Figura 5: O mecanismo central do circuito O simulador, alm disso, tem a habilidade de apontar quando h uma falha de ip-op, e a isto , quando o sinal de entrada muda mais rapidamente que o sinal do clock, necessrio e a para produzir a sa que torna-se incerta. Apenas ocorrem falhas deste tipo na clula da e (5,0), onde h entrada realimentada. a

Concluso a
A partir deste curioso experimento, podemos perceber que nosso conhecimento so-

bre os circuitos lgicos bastante limitado. Utilizando um algoritmo bastante simples, o e implementado em uma placa com nmero pequeno de trans u stores (se comparado a um processador atual, por exemplo), foi poss a geraao de um circuito cujo comportamento vel c ainda no foi entendido por completo. a Outro ponto interessante a ser notado a ecincia dos algoritmos genticos na geraao e e e c 13

automtica de circuitos eletrnicos. Mesmo uma variante bastante rudimentar deste ala o goritmo (com apenas um indiv duo na populao e mutaoes simples) conseguiu chegar ca c a um circuito nal cujo comportamento quase perfeito para o contexto, salvo pequenos e ru dos. Esta ecincia se deve ao fato de que os algoritmos genticos no so viesados, e e a a ou seja, no priorizam uma soluao sobre outra baseando-se em fatores que no a funo a c a ca de tness. Deste modo, poss uma exploraao mais profunda do espao de busca, e vel c c encontrando soluoes em locais inacess c veis pelos mtodos convencionais de design. e Para uma busca ainda mais abrangente, utilizando a evoluao, uma estratgia utilizada c e abandonar as convenes tradicionais de design de circuitos eletrnicos. Estas, como e co o visto, impem diversas restrioes que, apesar de fundamentais para o entendimento do o c funcionamento e manuseio do circuito por um ser humano, so desnecessrias para o a a algoritmo gentico e acabam apenas limitando sua gama de possibilidades. e Em suma, ns s conseguimos entender bem uma quantidade o o nma de circuitos eletrnicos, se compararmos com o tamanho deste dom o nio. Meta-heur sticas so uma a boa escolha na abordagem de um problema deste tipo, pois so independentes de nosso a conhecimento limitado.

14

Referncias e
[1] I. Harvey and A. Thompson. Through the labyrinth evolution nds a way: A silicon ridge. Lecture Notes in Computer Science, 1259:406422, 1997. [2] J.R. Koza, F.H. Bennett III, M.A. Keane, J. Yu, W. Mydlowec, and O. Stielman. Searching for the impossible using genetic programming. In Proc. Genetic and Evolutionary Computation conference (GECCO-99), pages 10831091. [3] A. Thompson and P. Layzell. Evolution of robustness in an electronics design. In Evolvable systems: from biology to hardware: third international conference, ICES 2000, Edinburgh, Scotland, April 17-19, 2000, proceedings, page 218. Springer Verlag, 2000. [4] A. Thompson, P. Layzell, and R.S. Zebulum. Explorations in design space: Unconventional electronics design through articial evolution. IEEE Transactions on Evolutionary Computation, 3(3):167196, 1999.

15