SÍNTESE DE CIRCUITOS ELETRÔNICOS ANALÓGICOS POR COMPUTAÇÃO EVOLUTIVA

Documentos relacionados
Luiz H. R. Peixoto, Wilian S. Lacerda Departamento de Ciência da Computação Universidade Federal de Lavras C.P Lavras, Minas Gerais, Brasil

Algoritmos genéticos Abordagem unificada de algoritmos evolutivos simples

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução

3 Algoritmos Genéticos

Metahuerísticas: Algoritmos Genéticos. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng.

Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP

Computação Evolutiva. Computação Evolutiva. Principais Tópicos. Evolução natural. Introdução. Evolução natural

Introdução aos Algoritmos Genéticos

INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO

Algoritmos Genéticos. Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008

Introdução a Algoritmos Genéticos

3 Algoritmos Genéticos

INTRODUÇÃO À INTELIGÊNCIA COMPUTACIONAL. Aula 06 Prof. Vitor Hugo Ferreira

6 Estudos de Casos Porta Lógica OU de 4 Entradas

3. Resolução de problemas por meio de busca

APLICAÇÃO DE ALGORITMOS BIO-INSPIRADOS EM CONTROLE ÓTIMO

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO

Algoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva

ALGORITMO GENÉTICO COMO REPRESENTAÇÃO DAS MUTAÇÕES NA BIOLOGIA

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid

Algoritmos Genéticos. Pontos fracos dos métodos tradicionais. Características de alguns problemas. Tamanho do espaço de busca- Ex. caixeiro viajante:

Algoritmos Genéticos e Evolucionários

Modelos Evolucionários e Tratamento de Incertezas

1.1 Descrição do problema A programação genética (PG) é uma meta-heurística utilizada para gerar programas de computadores, de modo que o computador

Otimização com Algoritmos Genéticos no MATLAB. Prof. Rafael Saraiva Campos CEFET-RJ

Tópicos Especiais em Informática Fatec Indaiatuba

Algoritmos Genéticos

1. Computação Evolutiva

Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

3 Otimização Evolucionária de Problemas com Restrição

INF 1771 Inteligência Artificial

Estratégias Evolutivas EEs. Prof. Juan Moisés Mauricio Villanueva

Codificação das variáveis: binária Iniciação da população: aleatória Avaliação: função aptidão Operadores. Critério de parada: número de gerações

Algoritmos Genéticos

Algoritmos Genéticos. Texto base: Stuart Russel e Peter Norving - Inteligência Artificial

3 Computação Evolucionária

ALGORITMOS GENÉTICOS. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Técnicas de Inteligência Artificial

Inteligência Artificial

ESTUDO DOS PARAMETROS DE UM ALGORITMO GENÉTICO PARA POSTERIOR USO NA SOLUÇÃO DE PROBLEMAS DO TIPO JOB-SHOP

ESTUDO DO EFEITO DOS PARÂMETROS GENÉTICOS DE UM ALGORITMO GENÉTICO NA SOLUÇÃO OTIMIZADA E NO TEMPO DE CONVERGÊNCIA EM UMA FUNÇÃO DE DUAS VARIÁVEIS

Inteligência Artificial

Max Pereira. Inteligência Artificial

Computação Bioinspirada PROF. PAULO SALGADO

Técnicas de Inteligência Artificial

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES

Introdução à Computação

Uso de Algoritmo Genético para a otimização do ponto de corte da probabilidade de sucesso estimada do modelo de Regressão Logística

Algoritmos Genéticos. 1 Semestre de Cleber Zanchettin UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática

Aprendizado Evolutivo: Introdução aos Algoritmos Genéticos

Aplicação da Metaheurística Algoritmos Genéticos na solução do problema das n Rainhas

IF-705 Automação Inteligente Algoritmos Evolucionários

3 Métodos de Otimização

IF-705 Automação Inteligente Sistemas de Controle - Fundamentos

Créditos. Introdução a Sistemas Inteligentes. Agenda Introdução Breve Histórico. Introdução. Introdução aos Algoritmos Evolutivos

ALGORITMOS GENÉTICOS EM EQUAÇÕES NÃO LINEARES PARA ESTIMATIVA DA TAXA MÁXIMA DE CRESCIMENTO DO FRUTO DA LICHIA

Otimização. Algoritmos Genéticos. Teoria da Evolução. Otimização

Sistemas Inteligentes if684. Germano Vasconcelos Página da Disciplina:

Algoritmos Genéticos

1. Computação Evolutiva

Modelo de Algoritmo Genético para o Escalonamento de Tarefas em uma Arquitetura Multiprocessadora

4 Implementação Computacional

OTIMIZAÇÃO DA LIMPEZA DE REDES DE TROCADORES DE CALOR EMPREGANDO OS ALGORITMOS GENÉTICOS

Prof. André Rabelo LÓGICA DIGITAL INTRODUÇÃO

Algoritmos Evolutivos para Otimização

Implementação de controlador PID fuzzy para otimização do controle de posição de um servomotor DC

Aula 06 - Máquina Multinível e Von Neumann

INF 1771 Inteligência Artificial

GT-JeDi - Curso de Desenv. de Jogos IA para Jogos. Gustavo Pessin 2007

Síntese Evolucionária em Nanotecnologia

4 Modelos Propostos para Otimização de Planejamentos com Restrições de Precedência 4.1 Representação com Algoritmos Genéticos

LUIZ HENRIQUE ROWAN PEIXOTO SÍNTESE DE CIRCUITOS ELETRÔNICOS ANALÓGICOS/DIGITAIS POR COMPUTAÇÃO EVOLUTIVA EM PLATAFORMA PARALELA

1. Computação Evolutiva

Projeto e Implementação de um Fatorial em Hardware para Dispositivos Reconfiguráveis

de petróleo. Um novo domínio chamado computação de propósito geral em processadores gráficos (GPGPU) surgiu quando os pipelines de gráficos de

Algoritmo Genético. Teoria da Evolução Princípio seguido pelos AGs

SIMULADOR EVOLUTIVO PARA CONTROLE DE SISTEMAS DINÂMICOS 1

Breve Avaliação de Parâmetros básicos de Algoritmos Genéticos

8 Conclusões e Trabalhos Futuros

Arquitetura e Organização de computadores

Inteligência Computacional Aplicada. O que é Inteligência Computacional? Áreas de Aplicação Algoritmos Genéticos

OTIMIZAÇÃO FUNÇÕES UTILIZANDO ALGORITMOS GENÉTICOS NO APLICATIVO MS EXCEL RESUMO INTRODUÇÃO

VERIFICAÇÃO DO DECAIMENTO DE INFORMAÇÃO EM REDES NEURAIS RECORRENTES APLICADAS AO PROBLEMA DO MUNDO DE WUMPUS 1

11/1/2012. Agenda. Classe de problemas de interesse. Busca Local. Busca Local. Exemplo de Espaço de Estados

Figura 3.1: Fluxograma do algoritmo da Programação Genética.

Algoritmos Genéticos Fundamentos e Aplicações. Prof. Juan Moisés Mauricio Villanueva

4 Processo de Transformação

CONSTRUÇÃO AUTOMÁTICA DE OPERADORES MORFOLÓGICOS UTILIZANDO PROGRAMAÇÃO GENÉTICA.

Otimização. Unidade 6: Algoritmo Genético. Jaime Arturo Ramírez. 7. Teoria do processo evolutivo num GA. 8. Aspectos avançados

Hardware Evolucionário

Computação Bioinspirada: Aplicações

ESTUDO COMPARATIVO DOS MÉTODOS DE APTIDÃO PARA PROBLEMAS COM MÚLTIPLOS OBJETIVOS

GA Conceitos Básicos. Capítulo 3 Prof. Ricardo Linden

Algoritmos Genéticos em Ambientes Paralelos

PUC-Rio. Dispositivos Lógicos Programáveis

1 Introdução 1.1 Motivação

Computação Evolutiva. Prof. Eduardo R. Hruschka (Slides baseados nos originais do Prof. André C. P. L. F. de Carvalho)

Sintonia de um sistema PID via Algoritmos Genéticos aplicado ao controle de um manipulador robótico em forma de paralelogramo

FPGA & VHDL. Tutorial Aula 1. Computação Digital

IN-1131 Computação Evolucionária. Aluizio Fausto Ribeiro Araújo Universidade Federal de Pernambuco Centro de Informática

Transcrição:

SÍNTESE DE CIRCUITOS ELETRÔNICOS ANALÓGICOS POR COMPUTAÇÃO EVOLUTIVA LUIZ H. R. PEIXOTO, WILIAN S. LACERDA, CLAUDIO F. M. TOLEDO Departamento de Ciência da Computação - Universidade Federal de Lavras C.P. 3037 Lavras MG CEP 37.200-000 E-mails: henriquerowan@yahoo.com.br, lacerda@dcc.ufla.br, claudio@dcc.ufla.br Abstract This article investigates the use of Evolutionary Computation in the synthesis of analog electronic circuits, an area known as evolutionary electronics, and has as main objective to provide methodologies for new tools for Computer Aided Design (CAD) of analog electronic circuits. In this research, the use of evolutionary algorithms was beyond the classical operators selection, crossover and mutation, and also provides new operators, methods and strategies specific to this type of application. The experimental results obtained through the synthesis of voltage multipliers, underscored the potential of evolutionary electronics applied in the construction of basic blocks of analog systems. Therefore, the main feature of this work is to present a new design methodology: evolving instead of design. Keywords Evolutionary Electronics, Evolutionary Computation, Analog Circuits. Resumo Este artigo investiga o uso de Computação Evolutiva aplicada à síntese de circuitos eletrônicos analógicos, área conhecida como Eletrônica Evolutiva, e tem como maior objetivo oferecer uma metodologia para ferramenta de Computer Aided Design (CAD) de circuitos eletrônicos analógicos. Nesta pesquisa, a utilização de algoritmos evolutivos foi além dos clássicos operadores de seleção, cruzamento e mutação, apresentando também novos operadores, métodos e estratégias específicas para este tipo de aplicação. Os resultados experimentais obtidos, por meio da síntese de multiplicadores de tensão, ressaltam o potencial da Eletrônica Evolutiva aplicada na construção de blocos básicos de sistemas analógicos. Portanto, a principal característica desse trabalho é apresentar uma nova metodologia de projeto: evoluir ao invés de projetar. Palavras-chave Eletrônica Evolutiva, Computação Evolutiva, Circuitos Analógicos. 1 Introdução O projeto de circuitos analógicos é mais complexo do que projetos de natureza digital e depende mais da experiência e intuição do projetista (Zebulum, Pacheco e Vellasco, 2002). Assim, a complexidade desta classe de projetos caracteriza uma motivação econômica para a automação nesta área que é carente de projetistas experientes. E para poder prover uma solução automatizada de problemas que até o momento só é possível com inteligência humana, é investigado neste trabalho a utilização de computação evolutiva como forma de substituir os métodos tradicionais de construção de circuitos analógicos. Este artigo propõe a utilização de algoritmos e- volutivos implementados em linguagem de programação C++ que trabalhando em conjunto com um simulador de circuitos eletrônicos, sintetiza circuitos para aplicações específicas. Para ser possível a síntese é necessário configurar os parâmetros ideais do circuito desejado e os parâmetros de configuração da aplicação evolutiva. Este artigo está estruturado da seguinte forma: na seção 2 há uma caracterização de Computação Evolutiva; na seção 3 o conceito de Eletrônica Evolutiva é introduzido mostrando como ocorre o mapeamento genótipo-fenótipo adotado neste trabalho; na seção 4 mostram-se algumas dificuldades encontradas dentro deste trabalho e são descritas estratégias que possibilitaram efetuar a síntese de circuitos; na seção 5 é mostrado como ocorre a execução do sistema evolutivo e também são descritas as plataformas de hardware e software utilizadas nos casos estudados; na seção 6 são apresentadas três sínteses como Estudo de Casos deste trabalho e na seção 7 são revistas as principais contribuições deste artigo. 2 Computação Evolutiva Computação evolutiva é definida pela IEEE Computational Intelligence Society como um ramo da Inteligência Computacional inspirada na evolução biológica descrita por Darwin, e tenta imitar os métodos empregados pela natureza que em bilhões de anos culminaram em vida complexa na face da Terra. Baseado no paradigma Darwinista (Linden, 2006), os algoritmos evolutivos resolvem problemas computacionais considerados difíceis demais para serem resolvidos por técnicas tradicionais. Processos de evolução natural são modelados utilizando mecanismos de reprodução, mutação, recombinação, seleção natural e sobrevivência dos mais aptos para se determinar soluções adequadas ao problema em questão. Estes algoritmos utilizam, por meio dos genótipos, uma forma de aprendizado coletivo de uma população de indivíduos, levando ao paralelismo na busca por soluções (Delai, 2008). Inspirado no processo de seleção natural de seres vivos, os algoritmos evolutivos selecionam os melhores indivíduos (soluções para o problema) da população inicial para gerar descendentes (que são variantes dos pais) e através dos operadores de cruzamento e mutação executam buscas dentro do domínio de soluções. Uma população intermediária (também chamada de mating pool) é utilizada para alocar os cromossomos dos descendentes dos pais seleciona- 4767

dos para cruzamento, onde a chance de um indivíduo ser selecionado para cruzamento é proporcional ao seu fitness (ou aptidão). Um algoritmo clássico é mostrado na Figura 1, onde S(t) é uma população de indivíduos na geração t. Aplicações extrínsecas são aquelas em que os circuitos são avaliados através de simuladores; por outro lado, nas aplicações intrínsecas, a avaliação é realizada com base no comportamento dos indivíduos ao serem carregados em circuitos integrados programáveis (Zebulum, 1999). A representação é uma das escolhas cruciais dentro de um projeto evolutivo, pois é a partir dela que são definidos posteriormente os operadores evolutivos. Em Eletrônica Evolutiva os operadores devem ser capazes de modificar arranjos dos circuitos, alterarem as características dos componentes eletrônicos e atuar aumentando ou diminuindo o tamanho dos circuitos. Além disso, a representação deve ser intuitiva e facilitar o mapeamento genótipo-fenótipo. Figura 1. Algoritmo evolutivo clássico. Um algoritmo evolutivo é uma metáfora de fenômenos biológicos, o que explica porque estes algoritmos possuem muitos termos originados da biologia (Lacerda e Carvalho, 1999). Para exemplificar, a Tabela 1 traz algumas analogias, feitas entre o sistema natural e a Computação Evolutiva. Tabela 1. Analogias entre a biologia e a Computação Evolutiva. Natureza Gene Cromossomo Adaptação ao meio Indivíduo Genótipo Fenótipo População Geração Computação Evolutiva Característica do problema. Possível Solução. Fitness ou aptidão, indicando a qualidade da solução. Cromossomo e sua aptidão. Informação contida no cromossomo. Decodificação do genótipo na solução (em Eletrônica Evolutiva representa um circuito eletrônico). Conjunto de possíveis soluções. Ciclo de vida de uma população. 3 Eletrônica Evolutiva A área que estuda a aplicação de algoritmos evolutivos na solução de problemas no domínio de eletrônica é denominada Eletrônica Evolutiva (Sipper, 1997). Esta área pode ser classificada de acordo com as seguintes propriedades indicadas na Tabela 2 (DeGaris, 1993). Tabela 2. Classificações em Eletrônica Evolutiva. Plataforma Evolutiva Natureza do Projeto Tipo de Projeto Extrínseca (software) Eletrônica Analógica Otimização de circuitos Intrínseca (hardware) Eletrônica Digital Síntese de circuitos 3.1 Genes O gene é a estrutura mais simples em um projeto evolutivo e neste trabalho um gene deve mapear um componente eletrônico e suas características como tipo, nós de conexão e valor (quando o tipo exigir). A Figura 2 mostra como ocorre o mapeamento do genótipo descrito por uma estrutura de dados em seu fenótipo decodificado em arquivo de descrição de circuito conhecido como netlist. Figura 2. Mapeamento genótipo-fenótipo no gene. Para os casos de estudo apresentados neste artigo os genes mapeiam resistores, capacitores, indutores, diodos e transistores NPN/PNP. Para este ultimo, o valor físico é convertido em NPN ou PNP com igual proporcionalidade. O valor físico do componente e a conexão de seus terminais deverão ser mapeados dentro de um domínio pré-estabelecido de valores. Para este projeto estes domínios são mostrados na Tabela 3. Tipo (inteiro) Tabela 3: Domínio dos valores. Componente Faixa de valor 0 Resistor 1 10k Ohm 1 Capacitor 1nF 1mF 2 Indutor 1uH 1H 3 Diodo S/Valor 4 Transistor NPN/PNP 4768

Já o número de nós é estipulado de tal forma que o circuito possa adquirir qualquer arranjo, desde todos os componentes em paralelo até todos os componentes em série. Para isso, o terminal do componente pode conectar desde o nó 0 até o nó N, onde N é o número máximo de componentes que um circuito pode conter. 3.2 Indivíduos Em Computação Evolutiva o indivíduo é a representação de uma possível solução que em Eletrônica Evolutiva se traduz em um circuito eletrônico, e os atributos deste indivíduo são: Um vetor de genes, ou cromossomo, representando o conjunto de componentes eletrônicos que constituem um circuito; Fitness, ou aptidão, que indica a qualidade da solução que o circuito representa; Máscara de ativação, ou vetor de binários que funcionam como chaves de liga-desliga dos genes. Este último atributo atua ativando ou desativando genes (Figura 3) e tem como finalidade definir quais componentes participam do circuito eletrônico quando ocorre a tradução do genótipo em fenótipo. Inspirado no processo biológico, a máscara de ativação faz a discriminação entre os genes que produzem fenótipo e os que não produzem, conhecido na biologia como DNA codificante e não codificante (Zebulum, 1999). Além do mais é um ótimo aliado em manter a variabilidade genética na população. A Figura 3 demonstra o mapeamento genótipofenótipo no nível de indivíduo, onde o algoritmo mapeia todos os seus genes e verifica quais são ativos para poder escrever o seu fenótipo em arquivo de descrição de circuitos para simulação. Figura 3. Mapeamento genótipo-fenótipo no indivíduo. 3.3 População A população é implementada por um vetor de tamanho fixo contendo todos os circuitos (ou indivíduos) de determinada geração. Ela possui os métodos responsáveis pela execução da evolução como avaliação geral, seleção para reprodução (utilizando o tradicional método da roleta), seleção dos circuitos considerados elites e coordenação dos operadores genéticos. 4 Estratégias Evolutivas e de Otimização Podemos destacar que a maioria das dificuldades encontradas neste trabalho foram geradas por limitações no processo de simulação de circuitos. Isso se deve ao fato de simplesmente não existir um software para simulação de circuitos eletrônicos analógicos capaz de retornar resultados mesmo em circuitos problemáticos, abortando extensos loops e evitando travamentos. A aplicação desenvolvida para síntese de circuitos parte de uma geração inicial de circuitos totalmente aleatórios que gera uma grande quantidade de circuitos não simuláveis, e que geralmente resultam em problemas na execução do simulador. A estratégia adotada para suprir esta dificuldade foi desenvolver na aplicação a capacidade de detectar estouro de tempo e finalizar a execução do software simulador dando continuidade a sua execução. E para combater a convergência prematura que se dá quando muitos circuitos têm seu fitness zerado por conta de não ter sido simulado corretamente, um método faz a troca de circuitos sem aptidão por circuitos aleatórios na geração seguinte, combatendo a dominância de poucos que ocorre principalmente nas gerações iniciais. Muita das vezes os circuitos gerados possuem alguns componentes que não estão ligados ao circuito alimentado, o que leva a um circuito não simulável e consequentemente sem aptidão, mesmo que possua ótimas características em seu genótipo. Para solucionar este impasse foi necessário implementar um operador que efetua junção de componentes ao circuito conexo de forma aleatória e assim possibilita sua simulação. Inspirado na propriedade de célulastronco repararem conexões entre tecidos danificados, esta nomenclatura foi atribuída ao novo operador. Este operador lista todos os nós conexos à alimentação e identifica quais componentes eletrônicos ativados pela máscara que não estão conexos, e por meio de sorteios de valores da lista de nós conexos, atribui novas conexões aos componentes desligados do circuito alimentado. O exemplo da Figura 4 mostra como o operador célula-tronco atua em um circuito que possui componentes desconexos da alimentação. Sem utilizar uma estratégia de pré-correção nos circuitos de forma aleatória, seria inviável executar simulações em alta escala diante da quantidade de simulações abortadas que ocorreriam, e isto justifica o emprego do operador célula-tronco nesta aplicação. Outra estratégia adotada que também contribui para a eficácia do sistema evolutivo, é desativar por meio da máscara de ativação os componentes redundantes que possuem seus terminais interconectados (em curto-circuito). 4769

objetos. O compilador utilizado foi MinGW ("Minimalistic GNU for Windows") em ambiente Netbeans. Os experimentos descritos na seção 6 foram realizados em processador Core 2 Duo 2.4GHz com 4GB de memória RAM executando o sistema operacional Windows XP Professional com Service Pack 3. Figura 4. Exemplo de aplicação do operador célula-tronco. 5 Sistema Evolutivo O fluxograma apresentado na Figura 5 traz a sequência de processos utilizados neste trabalho para a síntese de circuitos analógicos em plataforma extrínseca a partir de uma população inicial aleatória, permitindo através de várias gerações, o surgimento de soluções melhores que as anteriores. Primeiramente a aplicação faz a leitura de um arquivo que configura os parâmetros evolutivos como quantidade de gerações, tamanho da população, taxa de mutação, taxa de elitismo e também os parâmetros dos circuitos como alimentação, tipos de componentes, domínio de valores. Depois da leitura do arquivo de configuração, o sistema gera uma população de circuitos aleatórios que são escritos em netlist s no padrão de simulação Spice. Logo em seguida o sistema faz a chamada ao simulador passando cada netlist e recolhe o relatório de simulação para poder efetuar a avaliação de cada circuito. Quando uma geração termina de ser simulada, o sistema verifica se algum circuito obteve avaliação máxima ou se estourou o numero de gerações. Se as respostas forem falsas o sistema reconstrói a geração a partir dos melhores da geração anterior, de circuitos aleatórios e de cruzamentos dos genótipos da geração anterior, aplicando mutação em cada circuito recém-gerado. Um circuito que possui nota máxima pode nunca ser encontrado dependendo do circuito desejado porque de acordo com Delai (2008) ao lidar-se com amplos e complexos espaços de busca, uma ótima solução pode ser algo de difícil obtenção com Algoritmos Evolutivos, sendo possível obter soluções satisfatórias. Foi adotada para construção do sistema evolutivo a linguagem de programação C++, por possuir alto nível de abstração e elevado desempenho, além de ser largamente utilizada no meio acadêmico e ter todas as vantagens de uma linguagem orientada a Figura 5. Fluxograma de execução. Dentre os softwares gratuitos para simulação de circuitos eletrônicos analógicos, o adotado no sistema evolutivo foi o LTspice IV (LTspice Users Guide, 2010) desenvolvido pela Linear Technology Corporation baseado no tradicional Spice 3f4/5 que oferece bons recursos em sua interface gráfica intuitiva e na execução em modo batch, e também por ser atualizado periodicamente. 6 Estudo de Casos Esta seção investiga a síntese de circuitos multiplicadores de tensão que possibilitam obter uma tensão contínua na saída, sendo esta múltipla inteiro do valor de pico de uma tensão alternada de entrada. 6.1 Avaliação A avaliação desta natureza de circuitos deve se preocupar em encontrar dois nós no circuito gerado que entre eles haja uma tensão contínua de valor desejado. Para isto é executada no simulador uma análise transiente com um período de 100 ciclos da frequência do sinal de entrada. Então é analisada a componente contínua, apenas dos últimos 10 ciclos, de todos os nós. Isto garante que o resultado obtido será analisado após a estabilização do circuito depois que entra em funcionamento. Os dois nós que melhor se aproximarem do desejado pontuam o circuito de acordo com a aptidão (Equação 1). 4770

1 Aptidão ( N Vin Vout 1) (1) Onde: N indica o fator de multiplicidade de tensão da saída desejada em relação à entrada, Vin indica a tensão de pico da alimentação senoidal do circuito, e Vout indica a melhor componente contínua de saída entre dois nós. 6.2 Procedimentos Além da representação e das estratégias descritas nas seções anteriores, outros procedimentos foram adotados nos casos estudados nesta seção, como a utilização de crossover de 2 pontos para os cruzamentos, seleção por meio do método da roleta, além de uma taxa de mutação de 5% aplicada a todo atributo de um indivíduo recém gerado. Já a divisão da população foi definida da seguinte forma: Uma faixa de 10% é constituída das melhores soluções da geração anterior, garantindo que não haja perda das soluções ao longo das gerações; Uma segunda parte da população é constituída de indivíduos aleatórios que são inseridos para suprir os indivíduos sem aptidão da geração anterior; A terceira parte da população é obtida por meio dos operadores de cruzamento e mutação. 6.3 Resultados Nesta subseção apresentam-se os resultados obtidos nos experimentos de síntese de três classes de multiplicadores de tensão, onde cada experimento foi executado 5 vezes com 100 gerações cada um e 100 indivíduos por geração, sendo num total 50.000 circuitos simulados por experimento. Os componentes utilizados e seus domínios são descritos na Tabela 3 deste artigo. Além disso, todos os experimentos foram executados com alimentação fixa de 12 Volts de pico senoidal e apenas o número máximo de componentes do circuito e a multiplicidade da tensão desejada, o N da função de avaliação, variam de um experimento para outro. O número máximo de componentes estipulado nas três sínteses foram 8, 10 e 12 para os multiplicadores de fator 2, 3 e 4 respectivamente, devido a maior complexidade dos circuitos desejados. Com o aumento do número de componentes o espaço de busca do algoritmo evolutivo também aumenta o que resulta em mais gerações para obter soluções satisfatórias. O gráfico da Figura 6 mostra a evolução da aptidão da melhor solução ao longo das gerações na melhor execução de cada síntese. Figura 6. Aptidão do melhor indivíduo ao longo das gerações. O esquemático da Figura 7 mostra que o melhor circuito dobrador de tensão obtido é no mínimo curioso, pois durante a evolução dois terminais de um transistor foram utilizados como um diodo. Além disso, a multiplicação da tensão é acentuada devido ao processo de ressonância entre indutor e capacitor em série. Com estas características o circuito mostrado na Figura 7, apresentou em seus terminais de saída uma tensão contínua de 23,99 Volts. Figura 7. Esquemático do melhor circuito obtido nos experimentos de síntese de dobrador de tensão. O melhor circuito evolutivo sintetizado nos experimentos do triplicador de tensão apresenta em seus terminais de saída uma tensão de 35,92 Volts contínuos. Não possui nenhum componente redundante, sendo importante até o curto existente entre o coletor e o emissor do transistor Q2 que causa uma queda de tensão necessária para que a saída fique mais próxima de 36 Volts. O esquemático da Figura 8 mostra este circuito, que conseguiu ter melhor aptidão em relação ao resto da população. Figura 8. Esquemático do melhor circuito obtido nos experimentos de síntese de triplicador de tensão. 4771

Devido ao teto de 12 componentes estabelecido para a evolução do circuito quadruplicador de tensão, esta se mostrou mais custosa que os dois experimentos anteriores como pode ser visto pelo gráfico de melhor solução na Figura 6. O esquemático da Figura 9 é o melhor circuito quadruplicador de tensão obtido nos experimentos e surpreende pela simplicidade e pelo fato de possuir três componentes redundantes (C4, D11 e Q9). Nos terminais de saída apresenta 48,33 Volts contínuos. Figura 9. Esquemático do melhor circuito obtido nos experimentos de síntese de quadruplicador de tensão. É importante observar que nos três resultados há ocorrência de indutores e que geralmente estes são componentes caros, não sendo interessante sua utilização em circuitos desta natureza. Por isso pode-se limitar os componentes eletrônicos a apenas diodos e capacitores para evolução de multiplicadores de tensão e assim seriam obtidos os circuitos clássicos da literatura. 7 Conclusão Neste artigo foi apresentada uma metodologia para síntese de circuitos analógicos de forma autônoma utilizando computação evolutiva. Esta aplicação tem custo elevado de tempo e exige estratégias bem elaboradas que surgem para solucionar problemas encontrados em experimentos, tendo como objetivos: minimizar o número de circuitos não simuláveis, o tempo de simulação, a convergência prematura da população e também tratar adversidades que por ventura possam ocorrer durante o processo evolutivo. Para estudo de casos os métodos apresentados foram aplicados na síntese de circuitos multiplicadores de tensão, que são circuitos de média complexidade. Entretanto tais circuitos são dificilmente reprisados, onde é necessário re-executar a evolução para obter outro circuito com a mesma funcionalidade, porém com arquitetura e valores totalmente diferentes. Além disso, o circuito sintetizado por Computação Evolutiva deve passar por uma triagem humana onde devem ser retirados os componentes nãofuncionais que participaram da evolução. Os resultados apresentados neste trabalho demonstram que a síntese de circuitos analógicos por computação evolutiva é uma ferramenta viável que pode ser aplicada na construção de blocos básicos de sistemas analógicos. Agradecimentos Os autores agradecem a FAPEMIG e CNPq pelo apoio financeiro para execução e publicação deste trabalho de pesquisa. Referências Bibliográficas DeGaris, H. (1993). Evolvable Hardware: Genetic Programming of a Darwin Machine. In: International Conference on Artificial Neural Networks and Genetic Algorithms, Innsbruck, Austria, 441-449. Delai, A. L. (2008), Aplicação de Controlador Evolutivo a Pêndulo Servo Acionado, Dissertação de Mestrado. Campinas: Universidade Estadual de Campinas. Lacerda, E.G.M, Carvalho, A.C.P.L (1999), Introdução aos algoritmos genéticos, in Estéfane G. M. de Lacerda e André Carlos P. L. F. de Carvalho (orgs.), Sistemas inteligentes: aplicações a recursos hídricos e ciências ambientais. Porto Alegre: Ed. Universidade/UFRGS: Associação Brasileira de Recursos Hídricos, 99-150. Linden, R. (2006). Algoritmos Genéticos Uma importante ferramenta da inteligência computacional. Rio de Janeiro-RJ, Brasport. Linear Technology (2010). LTspice Users Guide. Disponível em: <http://ltspice.linear.com/software/scad3.pdf>. Acesso em 25 de fevereiro de 2010. Sipper M. (1997). EvoNet - The Network of Excellence in Evolutionary Computation: Report of the Working Group in Evolutionary Electronics (EvoElec), s. l.: Relatório Técnico, Novembro, 25. Zebulum, R. S., Pacheco, M. A. and Vellasco, M. (2002), Evolutionary Electronics Automatic Design of Electronic Circuits and Systems by Genetic Algorithms. Nova York, CRC Press. Zebulum, R. S. (1999), Síntese de circuitos eletrônicos por computação evolutiva. Tese de Doutorado. Rio de Janeiro: Pontifica Universidade Católica do Rio de Janeiro. 4772