• No se han encontrado resultados

Síntesis automática de circuitos analógicos utilizando algoritmos evolutivos

N/A
N/A
Protected

Academic year: 2020

Share "Síntesis automática de circuitos analógicos utilizando algoritmos evolutivos"

Copied!
192
0
0

Texto completo

(1)

Síntesis Automática de Circuitos

Analógicos Utilizando Algoritmos

Evolutivos

Por

Miguel Aurelio Duarte Villaseñor

Maestro en Ciencias

Tesis sometida como requisito parcial para

obtener el grado de

Doctor en Ciencias en la especialidad

de Electrónica

en el

Instituto Nacional de Astrofísica

Óptica y Electrónica.

Diciembre, 2010

Tonantzintla, Puebla

Supervisada por:

Dr. Esteban Tlelo-Cuautle

Investigador Titular del INAOE

©INAOE 2010

Derechos Reservados

El autor otorga al INAOE el permiso de

reproducir y distribuir copias de esta tesis en su

totalidad o en partes.

(2)
(3)

S´ıntesis Autom´

atica de Circuitos Anal´

ogicos

utilizando Algoritmos Evolutivos

Miguel Aurelio Duarte Villase˜nor Resumen

Se presenta una metodolog´ıa de codificaci´on binaria, la cual ha sido imple-mentada como un sistema autom´atico para sintetizar circuitos anal´ogicos, tales como: seguidores de voltaje (VF), espejos de voltaje (VM), seguidores de corriente (CF) y espejos de corriente (CM); estas cuatro celdas de ganancia unitaria se combinan para realizar la s´ıntesis de current conveyors (CC), CC-inversos (ICC) y amplificadores operacionales retroalimentados en corriente (CFOA). El m´etodo de s´ıntesis se program´o utilizando algoritmos evolutivos (EA), los cuales son t´ecnicas de b´usqueda basadas en los mecanismos de la selecci´on natural de Darwin y en la gen´etica biol´ogica de Mendel.

Se comparan algunas herramientas de s´ıntesis con el m´etodo realizado en este trabajo. Adem´as se describe brevemente el EA, resaltando las opera-ciones gen´eticas y los tres tipos de EAs: algoritmos gen´eticos (GA), estrate-gias evolutivas (ES) y programaci´on gen´etica (GP). Las operaciones gen´eticas aplicadas son selecci´on, cruza, mutaci´on y elitismo.

Para realizar los algoritmos evolutivos se utilizo MatLab. Se muestra el es-quema del algoritmo propuesto y como fue realizada la comprobaci´on de funcionamiento de ´este. Se recurre a SPICE para evaluar el comportamien-to de las comportamien-topolog´ıas obtenidas con tecnolog´ıa de circuicomportamien-tos integrados CMOS. De esta manera, el m´etodo selecciona s´olo los circuitos m´as apropiados. El par´ametro de evaluaci´on para la selecci´on de los circuitos es calculado seg´un la respuesta de los circuitos en las simulaciones en SPICE.

Como resultado, la principal aportaci´on de esta tesis es la propuesta del nuevo m´etodo de codificaci´on gen´etica para circuitos anal´ogicos y la s´ıntesis de nuevas topolog´ıas para el dise˜no de VFs, VMs, CFs, CMs. Finalmente se muestra que la combinanci´on de estas celdas anal´ogicas genera el c´odigo gen´etico de circuitos con m´as terminales, tales como los CCs, ICCs y CFOAs.

Palabras Clave: Automatizaci´on del Dise˜no Electr´onico, Algoritmo Evolutivo, Algoritmo Gen´etico, nullor, s´ıntesis de circuitos, seguidor de volta-je, seguidor de corriente, espejo de voltavolta-je, espejo de corriente, current conveyor, CFOA.

(4)
(5)

.

Dedicatorias

A mi mam´a, Magdalena Villase˜nor

que sobrepasando su obligaci´on como madre me proporcion´o m´as de lo que le correspondia

A la memoria de mi abuelita Evita, le doy garcias por tanto cari˜no y por el el ejemplo que me dio.

(6)
(7)

.

Agradecimientos

Mi agradecimiento al Dr. Esteban Tlelo Cuautle por su orientaci´on, sus con-sejos y por todo el apoyo brindado para el desarrollo de esta tesis, gracias.

A mis sinodales Dr. Francisco Fern´andez, Dr. Arturo Sarmiento, Dr. Alejan-dro D´ıaz, Dr. Luis Hern´andez y Dr. Carlos Reyes. Agradezco sus sugerencias para mejorar la calidad de este trabajo.

A mi familia, a mi esposa, a mis amigos y a todas las personas que me apoyaron en la culminaci´on de esta tesis.

Este trabajo fue financiado por CONACyT con la beca para estudios de doc-torado No. 160533. Adem´as la tesis forma parte del proyecto No. 48396-Y. “Electr´onica evolutiva: s´ıntesis autom´atica de circuitos integrados anal´ ogi-cos”.

(8)
(9)

´

Indice general

1. Introducci´on 1

1.1. Antecedentes . . . 1

1.2. Motivaci´on . . . 3

1.3. Objetivos y metas . . . 4

1.4. Organizaci´on de la Tesis . . . 6

2. Marco Te´orico 7 2.1. Herramientas de s´ıntesis de circuitos anal´ogicos . . . 7

2.1.1. S´ıntesis de circuitos anal´ogicos usando EAs . . . 8

2.1.2. Herramientas de generaci´on de topolog´ıas . . . 11

2.2. Algoritmos Evolutivos . . . 13

2.2.1. Genotipo y Fenotipo . . . 15

2.2.2. Operadores gen´eticos . . . 16

2.2.3. Algoritmos Gen´eticos . . . 26

2.2.4. Estrategias Evolutivas . . . 30

2.2.5. Programaci´on Gen´etica . . . 32

3. M´etodo de s´ıntesis propuesto 35 3.1. Introducci´on . . . 35

3.2. El elemento nullor . . . 36

3.3. Algoritmo Gen´etico realizado . . . 38

3.3.1. Diagrama de Flujo . . . 38

3.3.2. Pruebas al GA realizado . . . 42

3.3.3. Medida de aptitud para los UGC . . . 47

3.4. Codificaci´on gen´etica de los circuitos . . . 53

3.4.1. Genotipo y fenotipo de un VF . . . 54

3.4.2. Genotipo y fenotipo de un CF . . . 60

3.4.3. Genotipo y fenotipo de un CM . . . 62

3.4.4. Genotipo y fenotipo de un VM . . . 68

3.5. Genotipo y fenotipo de las uniones entre dos UGCs . . . 73

(10)

3.5.2. Duplicar salida . . . 76

3.5.3. Duplicar salida intermedia . . . 79

3.5.4. Creaci´on del nodo Z . . . 81

3.5.5. Combinaci´on de nullators-norators . . . 82

3.5.6. Genotipo y fenotipo de un CFOA . . . 85

4. Resultados 89 4.1. Introducci´on . . . 89

4.2. Topolog´ıas de VF generadas . . . 91

4.3. Topolog´ıas de CF generadas . . . 95

4.4. Topolog´ıas de CM generadas . . . 98

4.5. Topolog´ıas de VM generadas . . . 101

4.6. Topolog´ıas de CCII generadas . . . 103

4.7. Topolog´ıas de CFOAs generadas . . . 106

5. Conclusiones 109 5.1. Conclusiones . . . 109

5.2. Ideas para trabajos a futuro . . . 112

A. Par´ametros de simulaci´on 113 A.1. Par´ametros de 0.35µm, AMI Semiconductor . . . 113

A.2. Par´ametros de 0.50µm, AMI Semiconductor . . . 114

A.3. Par´ametros de 0.18µm, Taiwan Semiconductor (TSMC) . . . . 116

A.4. Par´ametros de 0.25µm, Taiwan Semiconductor (TSMC) . . . . 117

A.5. Par´ametros de 0.35µm, Taiwan Semiconductor (TSMC) . . . . 118

A.6. Par´ametros de 0.18µm, IBM Semiconductor . . . 120

A.7. Par´ametros de 0.25µm, IBM Semiconductor . . . 121

A.8. Par´ametros de 0.35µm, IBM Semiconductor . . . 122

A.9. Par´ametros de 0.50µm, IBM Semiconductor . . . 124

B. Publicaciones 127 B.1. Publicaciones en congresos . . . 127

B.2. Publicaciones en revistas . . . 127

B.3. Publicaciones en cap´ıtulo de libro . . . 128

C. Manual de usuario 129 C.1. Descripci´on de los archivos contenidos de la carpeta SBGU . . 129

C.2. Antes de ejecutar el programa . . . 130

C.3. Ejecuci´on del programa CM. . . 131

C.4. Ejecuci´on del programa VF. . . 131

(11)

C.5. Ejecuci´on del programa CF. . . 132 C.6. Ejecuci´on del programa VM. . . 133 C.7. Notas Extras . . . 133

(12)
(13)

Cap´ıtulo 1

Introducci´

on

1.1.

Antecedentes

Actualmente, las herramientas clave para manipular la complejidad en el proceso de dise˜no de Circuitos Integrados CMOS son generadas por la industria de la Automatizaci´on del Dise˜no Electr´onico (EDA). Este tipo de herramientas permiten acelerar el proceso de dise˜no ya que pretenden re-presentarlo como una metodolog´ıa estructurada [1, 2, 3, 4, 5]. En el proceso de dise˜no de circuitos integrados, las herramientas EDA se enfocan en au-tomatizar muchas de las tareas que son de rutina y repetitivas en el dise˜no anal´ıtico.

En algunos casos en el dise˜no de sistemas anal´ogicos se pueden identificar bloques funcionales, tales como: amplificadores, seguidores de voltaje, espe-jos de corriente, entre otros. Los cuales pueden repetirse y adem´as pueden sintetizarse autom´aticamente aplicando metodolog´ıas del EDA [1, 2, 3, 5]. De esta manera, las herramientas EDA incrementan la productividad en el dise˜no, a´un para bloques de circuitos que no sean repetitivos. Por ello, el EDA anal´ogico tiene un papel importante en el proceso de dise˜no. Sin em-bargo, la automatizaci´on del dise˜no anal´ogico es m´as compleja compar´andola con el dise˜no digital, porque las relaciones entre sus especificaciones son m´as

(14)

complejas.

Adem´as, a´un para los dise˜nadores no ha sido posible automatizar todos los niveles de abstracci´on y la s´ıntesis de circuitos desde un dise˜no de al-to nivel [1, 3, 4]. Esal-to se debe principalmente a que el dise˜no anal´ogico requiere de experiencia, intuici´on y creatividad; ya que se trabaja con un gran n´umero de par´ametros y de algunas interacciones complejas entre ellos. Asimismo, debido a la gran variedad de circuitos anal´ogicos, se busca de al-guna manera automatizar ciertas tareas de dise˜no, tantas como sea posible [1, 2, 3, 4, 5, 6, 7, 8, 9].

En los ´ultimos a˜nos se han presentado algunos m´etodos para la s´ıntesis de circuitos anal´ogicos. Por ejemplo en [1] se muestran trabajos enfocados al dise˜no de circuitos pasivos. Asimismo, con el fin de obtener nuevas topolog´ıas de circuitos anal´ogicos se han desarrollo herramientas como ACACIA [15] y ASTRX/OBLX [16]; adem´as de trabajos como el de Grimbleby [17] y Hajime Shibata con Nobuo Fuji [18]. De esta manera, ya sea para gene-rar nuevos circuitos u optimizarlos, para encontgene-rar mejoras a topolog´ıas de circuitos o para dimensionar ciertas topolog´ıas conocidas, las herramientas EDA han utilizado algoritmos inteligentes como los algoritmos evolutivos (EA) [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21]. Por lo tanto, el dise˜no de circuitos anal´ogicos es muy adaptable para t´ecnicas evolutivas y es un problema que se esta trabajando, como se demuestra en distintas publicaciones [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21].

En esta Tesis, se propone un m´etodo de codificaci´on gen´etica capaz de sin-tetizar celdas de ganancia unitaria (UGC), tales como: seguidores de voltaje (VFs) [19, 22, 23, 24], seguidores de corriente (CFs) [8, 24, 25], espejos de voltaje (VMs) [24, 26, 27] y espejos de corriente (CMs) [24, 25, 28]. Estas celdas se combinan para realizar la s´ıntesis de circuitos m´as complejos o con

(15)

1.2. MOTIVACI ´ON 3

m´as terminales como los current conveyors (CCs) [25, 29, 30], CC inversos (ICCs) [25, 27, 30, 31] y amplificadores operacionales retroalimentados en corriente (CFOAs) [25, 32]; cuyas ecuaciones caracter´ısticas y s´ımbolos se muestran en la figura 1.1.

Figura 1.1: (a) VF, (b) CF, (c) VM, (d) CM, (e) CCII+, (f) CFOA.

El proceso de s´ıntesis propuesto en esta Tesis esta basado en la apli-caci´on de algoritmos evolutivos (EA), principalmente para la generaci´on de UGCs, CCs y CFOAs. Los EAs son t´ecnicas fundadas en los mecanismos de selecci´on natural y gen´etica biol´ogica operando sobre el principio de sobre-vivencia del m´as apto. As´ı que los EAs tienen la capacidad de generar nuevos dise˜nos de soluci´on para una poblaci´on de soluciones existentes y descar-tan las soluciones que tienen una medida de aptitud inferior a la deseada [2, 33, 34, 35, 36, 37].

Cabe mencionar que la principal aportaci´on de este trabajo es el desarrollo del c´odigo gen´etico para la representaci´on de VFs, VMs, CFs, CMs, CCs, ICCs y CFOAs; adem´as de realizar la b´usqueda de nuevas topolog´ıas.

1.2.

Motivaci´

on

Los circuitos anal´ogicos como por ejemplo filtros y osciladores han ido evolucionando al paso de los a˜nos [6, 7, 14, 25, 29, 31, 38, 39, 40, 41, 42].

(16)

Esto debido a la b´usqueda de modificar una o m´as cualidades de los circuitos anteriores y es un progreso que no se ha detenido. De igual forma ha existido una evoluci´on en las topolog´ıas de los circuitos OPAMP, OTA, UGC y CC entre otros [1, 2, 3, 4, 18, 19, 20, 21, 22, 25, 29, 31]. Esta es una evoluci´on que contin´ua en estos d´ıas, con el fin de encontrar cada vez topolog´ıas que se acerquen m´as a las especificaciones ideales de estos circuitos.

Asimismo, en los ´ultimos a˜nos se han presentado m´etodos para la s´ıntesis de circuitos anal´ogicos aplicando sistemas inteligentes; como se muestra en los trabajos de Gielen y Rutenbar [1], Salem [2], Mazumder [4], Mattiussi [6], entre otros [7, 8, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21]. En su mayor´ıa son tra-bajos enfocados al dise˜no de circuitos pasivos o circuitos con amplificadores operacionales.

En la actualidad, no hay m´etodos autom´aticos gen´ericos para el dise˜no de topolog´ıas en circuitos anal´ogicos. En dise˜no digital las celdas b´asicas son las compuertas NAND, NOR, NOT, con las cuales se pueden generar bloques m´as complejos. En dise˜no anal´ogico, es posible generar bloques m´as com-plejos a partir de celdas de ganancia unitaria (UGCs). De esta manera, el dise˜no de un sistema que permita la s´ıntesis autom´atica de topolog´ıas tales como VFs, VMs, CFs y CMs facilitar´a la b´usqueda de nuevas topolog´ıas de circuitos anal´ogicos con m´as terminales, tales como los CCs y los CFOAs. Algunas de las aplicaciones de las UGCs est´an reportadas en [38, 39, 40]. Asimismo, existen cuantiosas aplicaciones con CCs [29, 41, 42] y CFOAs [32].

1.3.

Objetivos y metas

El objetivo principal de la tesis es la propuesta de un c´odigo gen´etico para la representaci´on de circuitos anal´ogicos, tales como las UGCs. A

(17)

par-1.3. OBJETIVOS Y METAS 5

tir de estas UGCs se propone la combinaci´on de c´odigos gen´eticos para la representaci´on de bloques con m´as terminales como los CCs y CFOAs. El uso de los c´odigos gen´eticos dentro de un procedimiento de s´ıntesis basado en la aplicaci´on de algoritmos evolutivos, permitir´a la generaci´on de nuevas topolog´ıas de circuitos anal´ogicos.

Como metas secundarias se tiene:

Proponer una codificaci´on gen´etica que represente topolog´ıas de UGCs.

Desarrollar un EA para generar topolog´ıas conocidas y nuevas de UGCs. Para esto es necesario:

• Realizar los algoritmos de operaciones gen´eticas: selecci´on, cruza, mutaci´on y elitismo para este tipo de circuitos.

• Realizar el algoritmo de la operaci´on de evaluaci´on para el EA, con el objetivo de elegir a las topolog´ıas funcionales seg´un su simu-laci´on en SPICE.

Encontrar nuevas topolog´ıas de UGCs: VF, CF, VM y CM.

Proponer una codificaci´on gen´etica que represente topolog´ıas de CCs, ICCs y CFOAs.

Desarrollar un EA para generar topolog´ıas conocidas y nuevas de CCs, ICCs y CFOAs. Obtener nuevas topolog´ıas de CCIIs, ICCIIs y CFOAs.

Desarrollar un algoritmo que pueda evolucionar las UGCs a circuitos con m´as terminales; tales como: CCs y CFOAs.

(18)

1.4.

Organizaci´

on de la Tesis

En el cap´ıtulo 2 se describen las herramientas de s´ıntesis de topolog´ıas de circuitos anal´ogicos, muchas de estas utilizan algoritmos evolutivos (EA). Se comparan estas herramientas con el m´etodo propuesto en esta Tesis. Adem´as, se describe brevemente los conceptos de EA, resaltando las opera-ciones gen´eticas y los tres tipos de EA: algoritmos gen´eticos (GA), estrategias evolutivas (ES) y programaci´on gen´etica (GP). Las operaciones gen´eticas de los EA son selecci´on, cruza, mutaci´on y elitismo.

En el cap´ıtulo 3 se describe el m´etodo de s´ıntesis propuesto, desde el planteamiento de la representaci´on ideal de los circuitos por medio de ele-mentos nullor hasta la descripci´on a bloques del sistema final a desarrollar. En el cap´ıtulo tres se muestran los cromosomas de UGCs y CCs propuestos. Se presenta como se elabor´o un GA que sirve para realizar la b´usqueda de las topolog´ıas de UGCs, CCs y CFOAs. Tambi´en en el cap´ıtulo tres se describen las pruebas de funcionamiento del GA realizado.

Los circuitos obtenidos se muestran en el cap´ıtulo 4. Las conclusiones se muestran en el cap´ıtulo 5. Para finalizar, en el anexo A se muestran los par´ametros de las tecnolog´ıas utilizadas en esta Tesis, el anexo B muestra el listado de publicaciones derivadas de este trabajo y en el anexo C se muestra elmanual de usuario de la herramienta realizada.

(19)

Cap´ıtulo 2

Marco Te´

orico

2.1.

Herramientas de s´ıntesis de circuitos

anal´

ogicos

Ex´ısten varios trabajos previos acerca de herramientas de s´ıntesis de cir-cuitos y sistemas anal´ogicos, como por ejemplo: IDAC, OPASYN, OASYS, O-ISAAC, STATIC, ARCHGEN, DARWIN, AMGIE o ANACONDA recopi-lados en [1]. Algunos de estos dimensionan los MOSFET de los circuitos [47]; otros mejoran alg´un par´ametro en los dominios de CD, CA y/o tiempo de una cierta topolog´ıa o circuito conocido [61]; y otros realizan filtros o encuen-tran funciones anal´ogicas con circuitos CMOS [63].

Tambi´en existen trabajos desarrollados utlizando EAs, estos muestran una codificaci´on de circuitos en un cromosoma, como se muestra en los trabajos de Salem [2], Mattiussi [6], Kruiskamp y Leenaerts [47] entre otros [4, 5, 7, 8, 9]. Sin embargo, estas descripciones se enfocan a optimizar ciertos par´ametros de un circuito en CD, CA y/o tiempo. Por lo que sus codificaciones repre-sentan, en la mayor´ıa de trabajos, dimensiones de sus transistores y no como est´an realizadas estas topolog´ıas, ya que principalmente optimizan topolog´ıas conocidas [1, 2, 4, 6, 7, 8, 12, 13, 14, 17, 15, 16, 18]. As´ı, se tiene la necesidad de realizar una codificaci´on diferente a las ya mencionadas. De esta manera,

(20)

en la propuesta de esta Tesis se est´an buscando nuevas topolog´ıas, las cuales se sintetizan a partir de la representaci´on de los circuitos con c´odigos bina-rios.

El m´etodo de s´ıntesis propuesto utiliza Algoritmos Evolutivos, los cuales son t´ecnicas de b´usqueda basadas en los mecanismos de selecci´on natural y en la gen´etica biol´ogica. El principio desupervivencia del m´as apto es el eje central sobre el cual se desarrollan los EAs. Los EAs simulan el proceso evolutivo en una computadora con la finalidad de resolver problemas de aprendizaje, b´usqueda, clasificaci´on u optimizaci´on.

2.1.1.

S´ıntesis de circuitos anal´

ogicos usando EAs

La utilizaci´on de EAs no solo se enfoca a reproducir los cambios en los individuos biol´ogicos, sino se ha trabajado con estos algoritmos en distintas ´

areas del conocimiento, como: c´omputo [33], medicina [43], matem´aticas [44], ´

optica [45, 46], entre otras [5, 34, 35]. Algunos de los trabajos que existen acerca de las herramientas de s´ıntesis de circuitos y sistemas anal´ogicos se muestran en los cuadros 2.1 y 2.2.

Todos los algoritmos mostrados en los cuadros 2.1 y 2.2 realizan s´ıntesis de circuitos anal´ogicos y trabajan mediante alg´un tipo o m´etodo de EA. Se observa en los cuadros 2.1 y 2.2 que tipo de circuito sintetizan, cual es su m´etodo de evaluaci´on y el tipo de algoritmo evolutivo realizado en estos tra-bajos.

(21)

2.1. HERRAMIENTAS DE S´INTESIS DE CIRCUITOS ANAL ´OGICOS 9

Cuadro 2.1: Trabajos de s´ıntesis de circuitos anal´ogicos usando EAs.

REF EA Sintetiza Evaluaci´on Notas [6] GP

ES

Circuitos de volta-je de referencia, sen-sor de temperatu-ra, generadores de la funci´on ‘campana de Gauss’ y evoluci´on de una XOR a una red neuronal

Mono-objetivo. Promedio del m´ınimo de la suma de los cuadrados

Tesis de doctorado. 2005

[7] GP Amplificadores y fil-tros

16 objetivos en 5 diferentes test

Han logrado realizar m´as de 20 patentes de circuitos anal´ ogi-cos. 2004

[10] GP GA

OPAMP CMOS, Os-cilador de anillo y Compuerta XOR

Mono-objetivo. En CA, CD y Tiempo

2005

[11] GA Osciladores sinu-soidales

Mono-objetivo, por frecuencia de oscilaci´on

Utiliza bloques RLC y OPAMP. 2003

[12] GP Filtros pasa-bajas y amplificadores de voltaje

— Escoje los compo-nentes de una libre-ria y los dimensiona. 2007

[13] GP Filtros pasa-bajas, RLC

Multi-objetivo, sumatoria de la norma

2006

[14] GA Osciladores sinu-soidales

Mono-objetivo Utiliza bloques UGC y RLC. 2004

[17] GA Filtros RLC Mono-objetivo, inverso de expo-nencial

Sintetiza circuitos sencillos de realizar. 2000

[19] ES VF y CF — Solo propuesta. 2006 [20] GA Optimiza CCII que

se encuentran en una librer´ıa.

11 especificaciones Optimiza W y L. 2002

[22] ES VF — Solo propuesta. 2005 [47] GA OPAMP Mono-objetivo,

magnitud dB

DARWIN, el circuito lo entrega dimen-sionado. 1995 [48,

49]

GA OPAMP Multi-objetivo Realizan la s´ıntesis uniendo bloques y despu´es optimizan con GA (dimensio-nando los CMOS). 2003

(22)

Cuadro 2.2: Continuaci´on del cuadro 2.1.

REF EA Sintetiza Evaluaci´on Notas [50] GA Filtros pasa-altas Multi-objetivo,

suma de objetivos particulares

UMOAGA. Puede extenderse esto a otros circuitos anal´ogicos y digi-tales. 2005

[51] GA Circuitos inte-gradores

Multi-objetivo, en competencias locales y globales

MESACGA. Puede extenderse a m´as dise˜nos anal´ogicos. 2005

[52] GA Amplificadores y fil-tros RC-bipolares

Multi-objetivos, sumatoria de objetivos

Solo propuesta. 2001

[53] GA Amplificadores de voltaje con bipolares y filtros pasa-bajas

3 objetivos, sumas de respuestas cuadraticas

2007

[54] GA OPAMP Multi-objetivo MOJITO. El espacio de b´usqueda es de 3528 posibles topolog´ıas, 2007 [55] ES VF 7 objetivos,

promedio de los valores meta.

Obtienen VFs al unir varios CMOS. No son viables para CI por su complejidad. 2007 [56] GA OPAMP y

os-ciladores de anillo

Multi-objetivo, suma normailiza-da

Realizado en C++, simulan en Hspice. 2008

[57] ES Filtros RLC 2 objetivos Filtros pasa bajas, pasa banda y pasa altas. 2009

[58] GA Filtros pasa-bajas, RLC

Multi-objetivo, Inverso de la sumatoria de la norma

2010

[59] GA VF, CF, VM y CM Mono-objetivo, superar un niv-el m´ınimo en su respuesta en ganancia

Tesis de maestr´ıa de Miguel Duarte. 2007

Aqu´ı GA VF, CF, VM, CM, CCII+/-, ICCII+/-y CFOA

Multi-objetivo, sumatoria de la norma multipli-cada por pesos. 4 objetivos o menos

Este trabajo de tesis. Puede extenderse a m´as objetivos. 2010

(23)

2.1. HERRAMIENTAS DE S´INTESIS DE CIRCUITOS ANAL ´OGICOS11

2.1.2.

Herramientas de generaci´

on de topolog´ıas

Entre los trabajos que existen acerca de las herramientas de s´ıntesis de circuitos y sistemas anal´ogicos, se encuentran los enfocados a la generaci´on de topolog´ıas. Algunos de estos trabajos generadores de topolog´ıas se mues-tran en los cuadros 2.3 y 2.4. En estos se menciona que tipo de topolog´ıas sintetizan estos trabajos y el m´etodo por el cual lo hacen.

Cuadro 2.3: Herramientas de generaci´on de topolog´ıas.

REF Sintetiza M´etodo Notas [7] OPAMP, OTA GP, con 16 objetivos

en 5 diferentes test

2004

[8] CM de bajo voltaje Generaci´on de grafos por evoluci´on (EGG)

Este m´etodo con-tiene semejanzas con EA. 2007

[10] OPAMP con MOS-FET

GP-GA, mono-objetivo en CA, CD o Tiempo

2005

[18] Nuevos cir-cuitos, ejemplo:

IOU T = (IIN)3

Matrices de super-imposici´on

2001

[19] VF y CF Los circuitos crecen a partir de un em-bri´on ideal. ES

Solo es una propues-ta de s´ıntesis, no se realizo ning´un algo-ritmo. 2006

[32] CFOAs Desarrolla y opti-miza las topolog´ıas propuestas mediante dise˜no y an´alisis anal´ıtico

(24)

Cuadro 2.4: Continuaci´on del cuadro 2.3.

REF Sintetiza M´etodo Notas

[47] OPAMP GA Sintetiza y dimen-siona. 1995

[48, 49] OPAMP Migraci´on de blo-ques, GA

Mientras es realiza-da la topolog´ıa se esta dimensionando. 2003

[54] OPAMP GA multi-objetivo, 3528 posibles topolog´ıas

MOJITO. 2007

[60] OPAMP Uni´on de bloques CMOS, parecido a un GP

3 objetivos de 12 a escojer. 2002

[61] OTAs Uni´on de bloques de una libreria

1992

[62] OPAMP Uni´on de bloques CMOS y variables W/L para que el cir-cuito final este listo para usarse

6 objetivos. 1995

[63] Osciladores, filtros pasa-bajas, ADC

Uni´on de blo-ques, como: inte-gradores, seguidores, sumadores, etc.

1995

[65] CCII+, CFOA Uni´on de bloques VFs conocidos con CMs conocidos

Solo propuesta, no se programo. 2005

[59] VF, CF, VM y CM GA mono-objetivo, superar un nivel m´ınimo en su re-spuesta en ganancia

Tesis de maestr´ıa de Miguel Duarte. 2007

Aqu´ı VF, CF, VM, CM, CCII+/-, ICCII+/-y CFOA

GA multi-objetivo y con operador de elitismo. Evaluaci´on por suma de norma miltiplicada por pesos

Este trabajo de tesis. 4 objetivos a escojer. 2010

(25)

2.2. ALGORITMOS EVOLUTIVOS 13

2.2.

Algoritmos Evolutivos

Uno de los paradigmas centrales de la biolog´ıa es el principio de la evolu-ci´on, por el que los seres vivos experimentan cambios en el transcurso del tiempo. Como resultado de estos cambios surgen nuevas especies de las que derivan otras nuevas y as´ı sucesivamente. Entre otras explicaciones, el prin-cipio de selecci´on natural, propuesto por Darwin, representa desde su formu-laci´on uno de los mecanismos evolutivos m´as populares [66], cuya trascen-dencia se extiende m´as all´a del ´ambito de la biolog´ıa. La simulaci´on de la evoluci´on en la PC aplicando el principio de selecci´on natural no s´olo tiene inter´es te´orico sino tambi´en pr´actico [33, 34, 35, 36, 37].

Los organismos vivos poseen una destreza consumada en la resoluci´on de problemas de adaptaci´on al medio que los rodea. Los organismos biol´ogicos obtienen sus habilidades de adaptaci´on, funcionamiento y comportamiento a trav´es de mecanismos como la evoluci´on y la selecci´on natural [34, 36, 37]. De acuerdo al modelo de Darwin de la evoluci´on de las especies, toda la vida en nuestro planeta puede ser explicada a trav´es de un conjunto de procesos, que act´uan sobre y dentro de las poblaciones, individuos y especies; como por ejemplo: la reproducci´on, herencia, mutaci´on, competencia y selecci´on de los organismos [66].

La selecci´on natural es el proceso donde los individuos mejor adaptados al medio ambiente tienen mayor probabilidad de producir descendientes, que aquellos que son menos aptos [66]. Adicionalmente a las teor´ıas de Darwin, son necesarios los planteamientos de Mendel y de la Gen´etica Matem´atica para comprender c´omo estos procesos ayudan en la selecci´on natural [67]. El principio de supervivencia del m´as apto, es el eje central sobre el cual se desarrollan t´ecnicas de aprendizaje que responden al nombre gen´erico de Al-goritmos Evolutivos (EAs) [33]. Los EAs simulan el proceso evolutivo en una

(26)

computadora con la finalidad de resolver problemas de aprendizaje, b´ usque-da, clasificaci´on u optimizaci´on. El problema a resolver puede caer dentro de una gran variedad de disciplinas, incluyendo la Biolog´ıa, Ingenier´ıa, Servicios Financieros y Ciencias Computacionales [2, 35, 44, 45, 46].

Los t´erminos de Computaci´on Evolutiva, Algoritmos Evolutivos, Algoritmos Bio-inspirados, Computaci´on Natural y Vida Artificial son relativamente re-cientes y representan un gran esfuerzo para acercar a los investigadores a seguir los diferentes aspectos de la evoluci´on [34].

Dentro de las principales t´ecnicas de los EAs se encuentran: los Algoritmos Gen´eticos (GA), las Estrategias Evolutivas (ES) y la Programaci´on Gen´etica (GP). Las cuales tienen en com´un que cada una de ellas se apoyan en la re-producci´on, la variaci´on aleatoria, la competencia y la selecci´on de individuos contendiendo dentro de una poblaci´on [34, 35]; lo cual es en s´ı la esencia de la evoluci´on. Cabe aclarar que la evoluci´on es un proceso de optimizaci´on, el cual no implica la perfecci´on. Por lo tanto, la aplicaci´on de los EAs a un con-junto de posibles soluciones para un problema, deber´ıa producir una buena soluci´on (u ´optima, en el mejor de los casos) para ese problema [2, 33]. Algunas caracter´ısticas de los EAs son [33, 34, 35]:

Trabajan con un conjunto de soluciones, que representan las soluciones al problema.

Buscan la soluci´on en una poblaci´on de posibles soluciones y no con soluciones solitarias.

Utilizan una funci´on de evaluaci´on, no utilizan funciones derivadas de esta o alg´un otro m´etodo o conocimiento auxiliar.

(27)

2.2. ALGORITMOS EVOLUTIVOS 15

Combina elementos de b´usqueda estoc´astica y directa que hace un balance notable entre exploraci´on y aprovechamiento del espacio de b´usqueda.

2.2.1.

Genotipo y Fenotipo

Si un problema puede ser representado por un conjunto de par´ametros (genes), y estos pueden ser unidos para formar una cadena de valores; a esta cadena se le llama cromosoma y a este proceso se le conoce como codificaci´on [33, 34].

Es com´un que la representaci´on de individuos a trav´es de cromosomas se haga con cadenas de d´ıgitos binarios, tal representaci´on es llamada genotipo; entonces, es necesaria la conversi´on del genotipo a los valores que pertenecen a un individuo. El individuo es llamado fenotipo [33, 34, 35, 36, 37].

Existen varios aspectos relacionados con la codificaci´on de un problema a ser tomados en cuenta en el momento de su realizaci´on:

Se debe de usar la representaci´on m´as peque˜na de los par´ametros, nor-malmente se utiliza una representaci´on binaria.

Las variables que representan los par´ametros del problema deben ser discretas para poder representar cadenas de genes.

La mayor parte de los problemas tratados con algoritmos gen´eticos son no lineales y muchas veces existen relaciones entre las variables que conforman las soluciones. Esta es la causa de que la codificaci´on puede generar genotipos invalidos, estos representan una soluci´on que no se puede (o debe) realizar fisicamente.

El tratamiento de los genotipos inv´alidos debe ser tomado en cuenta para el dise˜no de la codificaci´on.

(28)

En esta tesis se sintetizan circuitos anal´ogicos donde los genotipos son compuestos por cadenas de bits. Estos genotipos o cromosomas sintetizan a un circuito anal´ogico; la codificaci´on propuesta se muestra en el cap´ıtulo tres. Los circuitos realizados con transistores MOS son los fenotipos en los EAs realizados.

2.2.2.

Operadores gen´

eticos

Los operadores gen´eticos son los diferentes m´etodos u operaciones que se pueden realizar sobre una poblaci´on en un EA, estos se dividen en cuatro categor´ıas:

Selecci´on

Cruza o Recombinaci´on

Mutaci´on

Reemplazo, Reinserci´on o Elitismo

Los dos procesos que principalmente contribuyen a la evoluci´on son los operadores de cruza y mutaci´on. En los GA y ES el operador principal es la cruza, mientras que en la GP el principal operador gen´etico es la mutaci´on [34].

Operador de selecci´on

El operador de selecci´on es el proceso en el que se eligen a los miembros de la poblaci´on actual que ser´an utilizados para la reproducci´on o cruza. Su objetivo es dar m´as oportunidades de ser seleccionados a los miembros m´as aptos de la poblaci´on. El primer paso es la asignaci´on de una medida de aptitud a cada individuo, la cual se puede realizar por medio de una

(29)

2.2. ALGORITMOS EVOLUTIVOS 17

asignaci´on proporcional, o basada en una clasificaci´on (ranking) [34, 35]. En la asignaci´on de aptitud proporcional se convierten los valores objetivos de una poblaci´on en una medida de aptitud con un l´ımite superior conocido, este l´ımite superior es determinado por el valor de la precisi´on selectiva. Este m´etodo generalmente utiliza alguna operaci´on de escalamiento lineal [33]. En la asignaci´on de aptitud basada en la clasificaci´on (ranking) la poblaci´on es evaluada de acuerdo a su valor objetivo. La asignaci´on de aptitud para cada individuo depende solamente de su posici´on en la clasificaci´on individual y no de su valor objetivo actual. La asignaci´on de aptitud basada en la clasificaci´on puede ser lineal o no. En esta tesis la asignaci´on es lineal ya que no se utilizaran t´erminos cuadr´aticos para el c´alculo de su clasificaci´on. Los algoritmos para la clasificaci´on (lineal y no-lineal) primero ordenan los valores de la funci´on objetivo en orden descendente o ascendente. Por ejemplo: el individuo menos apto es colocado en la primera posici´on en el orden de la lista de valores objetivos y el individuo m´as apto es colocado en la posici´on N, donde N es el n´umero de individuos en la poblaci´on. Con lo cual, el valor de aptitud es asignado a cada individuo dependiendo de su posici´on en el orden de la poblaci´on [33].

Habiendo asignado la aptitud a los individuos en la poblaci´on se procede a la selecci´on de los padres; lo cual se puede realizar mediante alguno de los siguientes m´etodos [33, 34, 35]:

Selecci´on de la rueda de la ruleta.

Muestreo estoc´astico universal.

Selecci´on local.

(30)

Selecci´on por torneo.

Estos m´etodos son descritos en [33], [34] y [35], para el desarrollo de la tesis se considerar´on los m´etodos de selecci´on de la ruleta y el de truncamien-to. Ambos presentar´on resultados similares, as´ı que se eligio el que utilizo el menor tiempo de c´omputo: el m´etodo de selecci´on por truncamiento. El m´etodo de selecci´on por truncamiento es un m´etodo de selecci´on artificial. Los individuos en la selecci´on por truncamiento son sorteados de acuerdo a su aptitud y solamente los mejores individuos son seleccionados como pare-jas. En la figura 2.1 se ilustra el m´etodo de truncamiento utilizado en este trabajo; de los N individuos existentes se tienen que formar N/2 parejas. Los individuos mejor calificados se seleccionan para formar parejas hasta dos veces; mientras que los peor calificados no se utilizar´on en ninguna pareja.

Figura 2.1: (a) todos los individuos, (b) se califican del mejor al peor, (c) el m´etodo de selecci´on forma las parejas que ser´an los padres de la pr´oxima generaci´on.

(31)

2.2. ALGORITMOS EVOLUTIVOS 19

Operador de cruza

La cruza, tambi´en llamada recombinaci´on, consiste en combinar de alguna forma los cromosomas de dos padres para formar uno o m´as descendientes. Este es el operador m´as caracter´ıstico e importante de un GA, su finalidad es acelerar el proceso de b´usqueda o exploraci´on de los mejores cromosomas [33, 34, 35]. Existen diversas variaciones dependiendo del n´umero de puntos de divisi´on a emplear o de la forma de sintetizar el cromosoma. Dependiendo de la representaci´on de las variables en los cromosomas se pueden aplicar los siguientes m´etodos [33, 34]:

Recombinaci´on de par´ametros reales:

Recombinaci´on Discreta.

Recombinaci´on Intermedia.

Recombinaci´on Lineal.

Recombinaci´on Lineal Extendida.

Recombinaci´on de par´ametros binarios:

Cruza de Punto Sencillo.

Cruza de M´ultiples Puntos.

Cruza Uniforme.

Cruza Aleatoria.

Cruza con Reducci´on de Sustituto.

Estos operadores son descritos en [33, 34, 35]. La operaci´on de recombi-naci´on utilizada en este trabajo es llamada Cruza de Punto Sencillo, tam-bi´en conocida comoSobrecruzamiento con un Punto de Corte. Al comparar

(32)

la cruza de multiples puntos fijos usada anteriormente [59] con la cruza de punto sencillo, esta ´ultima apresento mejores resultados, esto es debido a que el tama˜no de cromosoma es peque˜no (unos 22 bits). La cruza de punto sencillo se ilustra en la figura 2.2; donde los desendientes estan formados con caracter´ısticas de ambos padres y el punto de corte es aleatorio.

Figura 2.2: Operador de cruza de punto sencillo.

La cruza de punto sencillo es implementada de acuerdo con el algoritmo que se describe a continuaci´on [34]:

Obtener las parejas de cromosomas padres, por alg´un operador de se-lecci´on o aleatoriamente si este no es implementado.

En cada pareja de cromosomas obtener un n´umero aleatorio entero U comprendido entre 1 y el tama˜no del cromosoma menos uno (L-1). El n´umero U ser´a el punto de corte en la pareja de cromosomas.

El cromosoma hijo es formado con los genes procedentes del cromosoma padre1 que esten ubicados antes del punto de corte y los genes del cromosoma padre2 que esten situados despu´es del punto de corte. De manera contraria se puede generar un hijo2 si se desea.

Los cromosomas hijos forman una nueva poblaci´on para ser utilizada por el operador de reinserci´on, si no existe tal operador los cromosomas hijos sustituyen a los cromosomas padres.

Un ejemplo de esta cruza con circuitos anal´ogicos se muestra en la figura 2.3; donde los padres son los circuitos (a) y (b) y los descendientes, resultado

(33)

2.2. ALGORITMOS EVOLUTIVOS 21

de la cruza, son los circuitos (c) y (d). En estos circuitos se observa que su cromosoma esta formado por una parte del cromosoma (a) y una parte del cromosoma (b).

Figura 2.3: Ejemplo de la cruza en circuitos CMOS. (a) y (b) padres, (c) y (d) descendientes.

(34)

Operador de mutaci´on

Despu´es de la operaci´on de cruza los descendientes experimentan al ope-rador de mutaci´on. El operador de mutaci´on es el operador m´as caracter´ıstico de la GP; sin embargo al ser utilizada demasiado en los GA los puede conver-tir en una b´usqueda lenta y al azar. La mutaci´on se encarga de modificar en forma aleatoria uno o m´as genes del cromosoma de un descendiente. La re-presentaci´on de las variables determinara el m´etodo de mutaci´on [33, 34, 35]; as´ı, dos de los principales m´etodos son los siguientes:

Mutaci´on de Par´ametros Binarios.

Mutaci´on de Par´ametros Reales.

Las variables de los descendientes son mutadas por la adici´on de peque˜nos valores aleatorios con una probabilidad baja, esto llamadoTama˜no de Paso de Mutaci´on en algunas referencias [2, 33]. La probabilidad de mutar una variable es puesta para ser inversamente proporcional al n´umero de variables o dimensi´on del cromosoma [33, 34, 35]; aunque puede ser un porcentaje fijo del n´umero de descendientes y se recomienda que no sea mayor a 5 %. La operaci´on de mutaci´on utilizada en este trabajo es la mutaci´on de par´ametros binarios. La cual consiste en cambiar uno o m´as bits de un cromo-soma; en este trabajo se modificar´a solo un bit. En la figura 2.4 se muestra un ejemplo de esta mutaci´on que es implementada de acuerdo con el algoritmo que se describe a continuaci´on [33]:

Obtener la descendencia del operador de cruza.

A cada cromosoma hijo se le otorga un n´umero aleatorio entre 0 y 1.

Si el n´umero asignado al cromosoma hijo es mayor al tama˜no de paso de mutaci´on, al cromosoma no se le modificara ning´un bit. En caso

(35)

2.2. ALGORITMOS EVOLUTIVOS 23

contrario se obtiene un n´umero aleatorio entero U comprendido entre 1 y L. El n´umero U ser´a el bit que cambiar´a de valor.

Los cromosomas hijos (mutados o no) forman una nueva poblaci´on para ser utilizada por el operador de reinserci´on, si no existe tal operador los cromosomas hijos sustituyen a los cromosomas padres.

Figura 2.4: Operaci´on de mutaci´on de par´ametros binarios.

Como se observo en la figura 2.4, el operador de mutaci´on actua sobre el genotipo o cromosoma. Para mostrar un ejemplo de este operador con circuitos anal´ogicos, en la figura 2.5 se muestra como fenotipo un circuito seguidor de voltaje, con su correspondiente cromosoma. Si a este cromosoma se le realiza la operaci´on de mutaci´on uno de sus bits debe cambiar de ‘0’ a ‘1’ o de ‘1’ a ‘0’. En la figura 2.6 se observan 4 posibles circuitos si se realizara la operaci´on de mutaci´on al circuito de la figura 2.5.

(36)

Figura 2.5: Circuito VF descrito con su cromosoma.

Operador de reinserci´on

El operador de reinserci´on es el m´etodo por el cual se insertan los hijos en la nueva poblaci´on; por ejemplo, mediante la eliminaci´on de los individuos m´as d´ebiles o al azar. Si el tama˜no de los descendientes es menor que el tama˜no de la poblaci´on original, los descendientes ser´an reinsertados dentro de la poblaci´on anterior. Sin embargo, si se quiere que todos los descendientes sean reinsertados se buscara alg´un otro m´etodo de reinserci´on [33, 35]. Los m´etodos de reinserci´on m´as utilizados son la reinserci´on global y la reinserci´on local, para poblaciones locales. Ambas operaciones son basadas en alg´un m´etodo de selecci´on.

La operaci´on utilizada en este trabajo ser´a un tipo de reinserci´on global conocida como reproducci´on elitista o elitismo [33, 35, 46]; que consiste en producir igual o menos descendientes que el n´umero de padres y remplazar los peores padres con los hijos m´as aptos. En otros t´erminos, los individuos padres concursan con los hijos para que solo los mejores formen la pr´oxima

(37)

2.2. ALGORITMOS EVOLUTIVOS 25

Figura 2.6: Circuitos resultantes de la operaci´on de mutaci´on al VF de la figura 2.5.

(38)

generaci´on, esto ilustrado en la figura 2.7.

Figura 2.7: Operaci´on de elitismo utilizada en esta tesis.

En esta tesis el operador de reinserci´on utilizado ser´a el elitismo y es implementada de acuerdo con el siguiente algoritmo [34, 35]:

Obtener la descendencia del operador de mutaci´on, los N cromosomas hijos.

Evaluarlos para encontrar su valor de aptitud (fitness).

A esta lista de N hijos agregarle los N cromosomas padres con su medida de aptitud.

Ordenar a todos los 2N cromosomas (hijos y padres) de acuerdo a su aptitud (fitness).

Elegir solo a los N cromosomas mejores para que estos sean la nueva generaci´on; estos ser´an los nuevos padres en la pr´oxima generaci´on.

2.2.3.

Algoritmos Gen´

eticos

Los GA son t´ecnicas estoc´asticas de b´usqueda basadas en los mecanismos de selecci´on natural y en la gen´etica biol´ogica [33, 35]. La modernizaci´on y

(39)

2.2. ALGORITMOS EVOLUTIVOS 27

simulaci´on de la evoluci´on con la PC es una de las ideas m´as atractivas en la inteligencia artificial. Esta posibilidad fue planteada por primera vez durante la d´ecada de 1950, tras la aparici´on de los primeros ordenadores, por algunos investigadores como John von Neumann y Ulam. Sin embargo, no seria has-ta la d´ecada de los a˜nos 60 cuando Fraser (1960), Fogel, Owens y Walsh (1966) realizaron los primeros experimentos de simulaci´on con poblaciones peque˜nas en las que tienen lugar mutaciones. Bagley introdujo en 1967 el t´erminoalgoritmo gen´etico. En 1975 el investigador John Holland public´o el libroAdaptation in Natural and Artificial Systems, una de las referencias m´as importantes sobre los GAs desde el punto de vista te´orico [34, 35].

Los GAs son m´etodos adaptivos que pueden ser utilizados en la b´usqueda y obtenci´on de soluciones a problemas de optimizaci´on. Estos algoritmos est´an basados en los procesos gen´eticos de los organismos biol´ogicos, codificando una posible soluci´on a un problema a trav´es de un c´odigo nombrado cromo-soma.

Los GAs utilizan una analog´ıa directa del fen´omeno de evoluci´on en la natu-raleza. Comienzan con un conjunto inicial de soluciones aleatorias llamado poblaci´on inicial. Cada individuo en la poblaci´on es llamado cromosoma y representa una posible soluci´on al problema.

Un cromosoma es una cadena de s´ımbolos llamados genes; que por lo general son representados por una cadena de d´ıgitos binarios. Los cromosomas evolu-cionan a trav´es de iteraciones llamadas generaciones. En cada generaci´on los cromosomas son evaluados, usando una medida de aptitud. A los m´as aptos se les da la oportunidad de reproducirse mediante recombinaciones con otros individuos de la poblaci´on, produciendo descendientes con caracter´ısticas de ambos padres [33, 34, 35, 37]. Los miembros menos adaptados poseen pocas probabilidades de que sean seleccionados para la reproducci´on, por lo tanto

(40)

sus caracter´ısticas tienden a desaparecer.

La siguiente poblaci´on se forma usando una combinaci´on de los operadores de selecci´on, cruza, mutaci´on y/o elitismo [33, 34, 35, 36, 37]. Esta nue-va generaci´on debe contener una proporci´on m´as alta de las caracter´ısticas pose´ıdas por los mejores miembros de la generaci´on anterior. De esta forma, a lo largo de varias generaciones, las mejores caracter´ısticas son difundidas en la poblaci´on mezcl´andose con otras. Favoreciendo la recombinaci´on de los individuos mejor adaptados, con esto es posible recorrer las ´areas m´as prome-tedoras del espacio de b´usqueda. Si el GA ha sido dise˜nado correctamente, la poblaci´on converger´a a una soluci´on ´optima o casi-´optima al problema [2, 33, 34, 35, 37].

Generalmente, los GAs son implementados siguiendo el ciclo mostrado en la figura 2.8. donde se pueden apreciar los pasos descritos a continuaci´on:

Se genera la poblaci´on inicial de manera aleatoria.

Se eval´ua la aptitud de todos los individuos de la poblaci´on.

Se crea una nueva poblaci´on mediante los operadores de selecci´on, cruza, mutaci´on y/o elitismo.

Se itera hasta que se encuentra una soluci´on satisfactoria.

El poder del GA proviene del hecho de que la t´ecnica es robusta y puede ser utilizada exitosamente en un amplio rango de problemas como: la op-timizaci´on de funciones num´ericas, transportaci´on, localizaci´on, en la opti-mizaci´on de la velocidad de herramientas y en algunos problemas que son dif´ıciles de resolver por otros m´etodos [2, 3, 4, 6, 33, 34, 35, 36, 37, 44, 45, 46, 59].

(41)

opti-2.2. ALGORITMOS EVOLUTIVOS 29

Figura 2.8: Estructura general de los algoritmos gen´eticos.

ma al problema pero son generalmente buenos encontrando soluciones acep-tables a problemas en corto tiempo.

Dado un individuo la funci´on de evaluaci´on le asignar´a un valor de aptitud, el cual es proporcional a la utilidad o habilidad del individuo representado. En muchos casos el desarrollo de una funci´on de evaluaci´on involucra hacer una simulaci´on; en otros casos la funci´on puede estar basada en el rendimiento y representar s´olo una evaluaci´on parcial del problema. Adicionalmente debe ser r´apida, ya que hay que aplicarla para cada individuo de cada poblaci´on en las generaciones sucesivas. Por lo cual, gran parte del tiempo de la ejecuci´on del GA se emplea en la funci´on de evaluaci´on.

Adem´as existe un problema en los algoritmos gen´eticos debido a una mala formulaci´on del modelo, en el cual los genes de unos pocos individuos rela-tivamente bien adaptados, pero no ´optimos, puede r´apidamente dominar la

(42)

poblaci´on, causando que converja a un m´ınimo o m´aximo local. Una vez que esto ocurre, la habilidad del modelo para buscar mejores soluciones es pr´acticamente eliminada, quedando s´olo la mutaci´on como v´ıa para buscar soluciones alternativas; y el GA se convierte en una b´usqueda lenta y/o al azar [33, 34, 35].

2.2.4.

Estrategias Evolutivas

A pesar de su aparente similitud con los GAs, las ES son usadas com´unmente en experimentos emp´ıricos, dif´ıciles de modelar matem´ atica-mente. Adem´as, las ES est´an basadas en el principio de la causalidad fuerte, el cual establece que causas similares, tienen efectos similares [33, 34]. Las ES fueron propuestas en 1963 en la Universidad T´ecnica de Berl´ın por Ingo Rechenberg, Peter Bienert y Hans Paul Schwefel, como m´etodo de solu-ci´on para el dise˜no ´optimo del cuerpo de objetos colocados en un flujo de aire, de tal forma que se redujera la resistencia al m´ınimo. Durante el de-sarrollo del proyecto probaron t´ecnicas ya conocidas y tradicionales como la ola del gradiente, entre otras; sin embargo, ´estas resultaron en vano, dada la complejidad del problema. Fue Ingo Rechenberg, quien propuso probar con cambios aleatorios en el conjunto de par´ametros, que defin´ıan la forma de los objetos, siguiendo el ejemplo de la mutaci´on natural. Peter Bienert construy´o un experimentador autom´atico, el cual trabajar´ıa de acuerdo a las reglas de mutaci´on y selecci´on. Por su parte, Hans-Paul Schwefel comenz´o a probar la eficiencia de los nuevos m´etodos, con la ayuda de una computadora, principalmente porque exist´ıan muchas objeciones a ´estas ‘estrategias aleato-rias’. Para simular el proceso evolutivo en una computadora se requiri´o de codificar las estructuras que se replicar´ıan, definir las operaciones que

(43)

afec-2.2. ALGORITMOS EVOLUTIVOS 31

tar´ıan a los individuos, una funci´on de aptitud y un mecanismo de selecci´on [34]. La versi´on original (1+1) usaba un solo padre y con ´el, se generaba un solo hijo. Este hijo se manten´ıa si era mejor que el padre, o de lo contrario se eliminaba. En esta versi´on, un individuo nuevo es generado por el operador de mutaci´on.

Fue en 1973 cuando, en su tesis de doctorado, Ingo Rechenberg estableci´o las bases te´oricas para las ES, defini´o los conceptos de mutaci´on y selecci´on, y agreg´o el nuevo concepto de poblaci´on en una variante de las ES propuestas inicialmente. Posteriormente, surgieron otras versiones para las ES propues-tas por Schwefel, quien introdujo el uso de m´ultiples hijos en las variantes [34].

As´ı, las ES fueron creadas como un m´etodo para resolver problemas de op-timizaci´on t´ecnica; y hasta hace relativamente poco s´olo eran conocidas en Ingenier´ıa Civil como alternativa de soluciones est´andares [34, 46]. Por lo general donde se utilizan las ES es cuando no existe una soluci´on anal´ıtica para estos problemas y por lo tanto no existe un m´etodo de soluci´on. La opti-mizaci´on con ES se basa en la hip´otesis cuya afirmaci´on es que las leyes de la herencia han sido desarrolladas para una adaptaci´on gen´etica r´apida. Las ES imitan los efectos de los procedimientos gen´eticos que act´uan directamente sobre el fenotipo, en contraste con los GAs que trabajan sobre el genotipo. Existen algunos tipos de problemas que son adecuados para aplicar ES, por ejemplo cuando el espacio de b´usqueda es demasiado grande para ser explo-rado a detalle [34]. Ya que las ES copian la evoluci´on biol´ogica, las aplica-ciones de estas estrategias tienden a eliminar a los individuos d´ebiles, y a todas las soluciones similares a ellos (o sea, sus descendientes) en las etapas tempranas de la simulaci´on. De esta forma se restringe el espacio para en-contrar una soluci´on adecuada.

(44)

2.2.5.

Programaci´

on Gen´

etica

La programaci´on gen´etica es una clase de algoritmos parecida a los GAs solo que estos no contienen el operador de cruza. En un algoritmo realiza-do con GP los individuos de la poblaci´on se reproducen asexualmente, esto significa que un ´unico individuo ser´a capaz por si solo de tener descendencia sin necesidad de la colaboraci´on de otro individuo [34]. La ausencia del ope-rador de recombinaci´on conduce a que la ´unica fuente de variabilidad de los individuos sea aquella que resulta de las mutaciones.

Figura 2.9: Estructura general de los algoritmos que se basan en GP.

En los algoritmos evolutivos de este tipo es frecuente seleccionar a un solo individuo y una vez seleccionado por su puntuaci´on o fitness la nueva generaci´on; es decir, su descendencia se obtiene por simple copia o clonaci´on de su cromosoma, mutando una o m´as posiciones en los cromosomas de los individuos de la nueva generaci´on [34].

(45)

2.2. ALGORITMOS EVOLUTIVOS 33

los algoritmos evolutivos m´as conocidos que es capaz de obtener organismos artificiales en dos dimensiones. Este algoritmo fue introducido en el libro

El reloj ciego (1986), que r´apidamente se convertir´ıa en un cl´asico de la divulgaci´on cient´ıfica. En resumen, en un GP las fases de reproducci´on y mutaci´on se repetir´an iterativamente hasta que el algoritmo encuentre el cromosoma que resuelva el problema, como se muestra en la figura 2.9.

(46)
(47)

Cap´ıtulo 3

etodo de s´ıntesis propuesto

3.1.

Introducci´

on

Existen trabajos previos acerca de herramientas de s´ıntesis de circuitos y sistemas anal´ogicos como se describi´o en el cap´ıtulo 2. En este cap´ıtulo se presenta la propuesta de un algoritmo evolutivo para la s´ıntesis de circuitos anal´ogicos. Para realizar la codificaci´on de los UGCs, CCs y CFOAs se uti-lizar´a como base el elemento nullor [68, 69]. As´ı, en este cap´ıtulo se presenta la descripci´on del nullor y sus propiedades.

Posteriormente se describe el proceso propuesto para la b´usqueda de topolog´ıas; donde se describe un GA gen´erico que ser´a el pilar del m´ eto-do propuesto. La implementaci´on de este GA se ha programado en MatLab y se utilizaron algunas funciones de prueba para verificar su funcionamiento. Las respuestas del GA a las funciones de prueba se muestran en este cap´ıtulo. Para finalizar se muestran cada una de las codificaciones gen´eticas propuestas para los distintos circuitos anal´ogicos.

(48)

3.2.

El elemento nullor

En [68] se encuentra una recopilaci´on de metodolog´ıas de an´alisis, dise˜no y s´ıntesis de circuitos anal´ogicos usando nullors. Hanspeter Schmid [69] de-mostr´o su utilidad para modelar el comportamiento ideal de varios disposi-tivos acdisposi-tivos, tales como: amplificador operacional (OPAMP), amplificador operacional de transconductancia (OTA), current conveyor (CC), etc. El nu-llor es un dispositivo ideal de dos puertos, compuesto por un elemento O (nullator) y por un elemento P (norator); con cuatro variables asociadas. En el puerto de entrada el voltaje y corriente del nullator y en el puerto de sali-da el voltaje y la corriente del norator, como se muestra en la figura 3.1. El voltaje y la corriente de nullator son siempre cero, mientras para el norator el voltaje y la corriente son arbitrarios [30, 68, 69].

Figura 3.1: Nullor.

Las propiedades de los elementos O y P se pueden aprovechar para mode-lar el comportamiento ideal de los bloques de ganancia unitaria. Por ejemplo, para modelar el comportamiento ideal del VF se puede utilizar uno o m´as elementos O como se muestra en la figura 3.2 [19, 21]; donde se demuestra que el voltaje a la salida del VF (Vo) es igual al voltaje de entrada (Vi), por las propiedades del nullator. Dado que el voltaje y la corriente del nullator son igual a cero, el puente de cuatro nullators modela el comportamiento de uno simple.

(49)

3.2. EL ELEMENTO NULLOR 37

Figura 3.2: Modelos de VFs usando (a) uno y (b) cuatro nullators.

Para modelar un CF se utilizan celdas gen´ericas formadas por uno, o m´as norators [19, 21]. En estos circuitos las variables el´ectricas son las corrientes. Dado que la corriente que circula a trav´es del norator siempre es la misma, se cumple que la corriente de la salida (Io) es igual a la corriente de la entrada (Ii).

El modelo de un transistor MOS utilizando el nullor se muestra en la figura 3.3. De esta manera, al agregar norators a los circuitos que est´en represen-tados por nullators y al agregar nullators a las topolog´ıas que est´en repre-sentadas por norators se forman pares O-P; cada par O-P puede sintetizar un transistor MOS. Se observa en la figura 3.3 que el punto de uni´on O-P es considerado como el source (S), la terminal libre del elemento O es el gate

(G) y la terminal libre del elemento P es el drain (D) del MOSFET.

(50)

3.3.

Algoritmo Gen´

etico realizado

3.3.1.

Diagrama de Flujo

Uno de los objetivos principales de esta tesis es desarrollar un sistema capaz de sintetizar topolog´ıas conocidas y nuevas de UGCs, CCs y CFOAs. Para esto se desarrollo un programa basado en EAs. Aunque sean distintos los objetivos de s´ıntesis para cada UGC, todos se encuentran siguiendo el esquema mostrado en la figura 3.4.

El algoritmo inicia obteniendo los datos del usuario:

Variables del GA: Tama˜no de poblaci´on, Porcentaje de mutaci´on, N´umero m´aximo de generaciones y M´ınimo error buscado.

Tipo de UGC a sintetizar: VF, CF, VM, CM.

Varibles deseadas: Ganancia, Ancho de banda, Impedancia de entrada y/o salida.

Peso de los valores deseados en la funci´on de evaluaci´on.

Tipo de simulador: TOP-SPICE, H-SPICE, Tanner-SPICE. Tipo de tecnolog´ıa:

• AMI Semiconductor: 0.35µm, 0.50µm.

• IBM Semiconductor: 0.18µm, 0.25µm, 0.35µm, 0.50µm. • Taiwan Semiconductor (TSMC): 0.18µm, 0.25µm, 0.35µm.

Despu´es de obtener los datos se realiza una elecci´on de celda ideal. Este consiste en describir el UGC por medio de elementos nullators y/o norators. Por ejemplo para representar un CF existen varias celdas gen´ericas formadas por uno o m´as norators. En la figura 3.5 se muestran todas estas posibilidades con uno y dos nullators; las combinaciones con tres nullators se observan en

(51)

3.3. ALGORITMO GEN ´ETICO REALIZADO 39

Figura 3.4: Diagrama de Flujo del programa que sintetiza circuitos anal´ ogi-cos.

(52)

la figura 3.6. Al utilizar cuatro nullators para describir un CF se encuentran 15 posibilidades diferentes (figura 3.7). Entonces el m´etodo de elecci´on de celda ideal se realiza con el fin de seleccionar cualquiera de las 23 posibles descripciones ideales de CF; y no solo ocupar las tres cl´asicas: figura 3.5(a), figura 3.5(b) y figura 3.7(l). Los circuitos que se representan con estas tres celdas han sido estudiados por varios autores [8, 19, 21, 25]. Sin embargo, existen 23 posibilidades de acomodar elementos norator que idealmente des-criben un CF, las cuales no han sido estudiadas a fondo.

El m´etodo de elecci´on de celda ideal tiene el mismo objetivo para los otros tipos de UGC, explorar m´as posibilidades de circuitos ´utiles.

Figura 3.5: Modelos ideales de CFs usando uno y dos norators.

Figura 3.6: Modelos ideales de CFs usando tres norators.

Despu´es de realizar la selecci´on de celda ideal, se crean aleatoriamente algunos individuos para generar una poblaci´on inicial. Se decodifican los cro-mosomas y se generan los netlist de los circuitos para su simulaci´on en SPICE. Se simulan los archivos en SPICE con la tecnolog´ıa selecionada.

(53)

Posterior-3.3. ALGORITMO GEN ´ETICO REALIZADO 41

Figura 3.7: Modelos ideales de CFs usando cuatro norators.

mente se eval´ua a cada individuo, seg´un su repuesta en SPICE y se le asigna una medida de aptitud. Cada individuo y su medida de aptitud se guarda en memoria. Entre mejor desempe˜no muestre el circuito, mejor es el valor

(54)

calificado al cromosoma.

Una vez calificados los individuos estos ser´an los padres para un GA que itera-ra hasta un n´umero m´aximo de generaciones o hasta encontrar una topolog´ıa que pueda ser ´util. Este GA realiza las operaciones de selecci´on, cruza, mu-taci´on y elitismo descritas en el cap´ıtulo 2. Cuando finaliza el GA entrega un netlist del UGC, CC o CFOA buscado. Cabe mencionar que se espera que el GA sintetize circuitos conocidos y nuevos.

3.3.2.

Pruebas al GA realizado

En la figura 3.4 se muestra el esquema del EA a realizar, los bloques son realizados por sub-programas. Algunos de estos son particulares para cada UGC y otros sub-programas deben ser generales. Entendiendo por generales que estos ser´an utilizados al s´ıntetizar cualquier UGC, como los operadores gen´eticos de selecci´on, cruza, mutaci´on y elitismo. En conclusi´on, se deben de desarrollar estos bloques y probarlos con funciones de test est´andar para confirmar su funcionamiento. Puesto que es importante tener la seguridad del buen funcionamiento de los operadores gen´eticos y del GA que se utilizar´a. Es por esta raz´on que se realiz´o un primer GA, obedeciendo a la figura 2.8. En este se han programado las operaciones de selecci´on, cruza, mutaci´on y elitismo que se utilizar´an en el programa de la figura 3.4. MatLab le asigna una calificaci´on a cada individuo (fitness). El programa se detendr´a cuando se alcance el valor esperado por el usuario o se llegue a un n´umero m´aximo de iteraciones.

La medida de aptitud utilizada es la suma de la norma, como se observa en la ecuaci´on (3.1). Donde los valores esperados por el usuario son so1, so2, etc.; y los valores evaluados del cromosoma sonev1,ev2, etc. El programa se

(55)

3.3. ALGORITMO GEN ´ETICO REALIZADO 43

detendr´a cuando PTotal sea igual a cero (m´as una tolerancia de error) [33].

P T otal =|so1−ev1|+|so2−ev2|+|so3−ev3|+· · · (3.1)

Las funciones de test sirven para evaluar, comparar, clasificar y probar la eficiencia y efectividad del algoritmo. Existen varios tipos de funciones de test para EA mono-objetivo y multi-objetivo, como las funciones de Binh, Fonseca, Kursawe, Laumanns, Lis, Murata o Viennet, entre otras recopiladas en [33]. La prueba de funcionamiento del GA consiste en la b´usqueda de puntos de soluci´on de una o m´as ecuaciones.

Las ecuaciones utilizadas para evaluar el GA realizado son las descritas en la Ec. (3.2), todas con un espacio de b´usqueda delimitado entre x= [−1,1], y= [−1,1]. Las graficas y los contornos de las ecuaciones se muestran en las figuras 3.8, 3.9 y 3.10.

F1(x, y) = x2−2xy+ 6x+y2−6y

F2(x, y) = 10x2+ 30y2 (3.2)

F3(x, y) = 20 + 10x2+y2−10cos(2x)−10cos(2y)

Figura 3.8: (a) Gr´afica y (b) contorno de F1(x,y).

Cada ecuaci´on tiene un espacio de b´usqueda delimitado entre [−1,1] de 2R. El tama˜no de cromosoma elegido es de 34 bits, este se divide en dos

(56)

Figura 3.9: (a) Gr´afica y (b) contorno de F2(x,y).

Figura 3.10: (a) Gr´afica y (b) contorno de F3(x,y).

n´umeros de 17 bits cada uno, variando en pasos sim´etricos de 0.00001526 (2/131072). Esto genera un espacio de b´usqueda de poco m´as de 17 mil millones de posibles soluciones (17,179,869,184) para cada funci´on de prueba a utilizar. Las descripciones de las funciones de prueba (FP) utilizadas se muestran en el cuadro 3.1.

Las funciones de prueba FP1 a FP6 son mono-objetivo; es decir, el GA busca la soluci´on a una sola ecuaci´on. Las funciones FP7 a FP13 son multi-objetivo, el GA busca una soluci´on que satisfaga a dos o m´as ecuaciones. Las funciones de prueba buscan m´aximos, m´ınimos o valores particulares. En la quinta columna del cuadro 3.1 se muestra el n´umero de soluciones anal´ıticas a la funci´on de prueba. Las FP con una sola soluci´on comprueban que el EA es capaz de encontrar esa soluci´on y no se estanque en soluciones locales; el

(57)

3.3. ALGORITMO GEN ´ETICO REALIZADO 45

Cuadro 3.1: Funciones de prueba utilizadas.

Ecuaciones Punto a Resultado N´umero de Notas encontrar aritm´etico soluciones

FP1 F1(x,y) m´ınimo -8 1 FP2 F1(x,y) m´aximo 16 1

FP3 F2(x,y) m´ınimo 0 1 El punto de soluci´on exis-te, pero no esta decodifi-cado por los cromosomas. (x,y)=(0,0)

FP4 F2(x,y) m´aximo 40 4

FP5 F3(x,y) m´ınimo 0 1 Contiene 8 m´ınimos locales, ver figura 3.10.

FP6 F3(x,y) m´aximo 40.5 4 FP7 F1(x,y) m´aximo 16 1

F2(x,y) m´aximo 40

FP8 F1(x,y) m´aximo 16 0 El mejor punto es seg´un la ec. (3.2) esta cerca de: F3(x,y) m´aximo 40.5 (x,y) = (0.5,-0.5)

FP9 F2(x,y) m´aximo 40 0 Existen 4 puntos a conver-ger:

F3(x,y) m´ınimo 0 (x,y) = (±1,±1)

FP10 F1(x,y) valor en 0 1 El punto de soluci´on existe, particular pero no esta decodificado F2(x,y) m´ınimo 0 por los cromosomas. F3(x,y) m´ınimo 0 (x,y)=(0,0)

FP11 F1(x,y) m´aximo 16 1 Verificar anal´ıticamente F2(x,y) m´aximo 40 el mejor punto (x,y)=(1,-1) F3(x,y) m´ınimo 0 para la ec.(3.2) es

demasia-do complejo.

FP12 F1(x,y) m´aximo 16 ¿? Encontrar anal´ıticamente F2(x,y) m´aximo 40 el mejor punto (x,y) para F3(x,y) m´aximo 40.5 la ec.(3.2) es demasiado

complejo.

FP13 F1(x,y) m´ınimo -8 ¿? Encontrar anal´ıticamente F2(x,y) m´ınimo 0 el mejor punto (x,y) para F3(x,y) m´ınimo 0 la ec.(3.2) es demasiado

complejo.

GA ofrecer´a una soluci´on muy parecida a la ideal cuando el cromosoma no lo puede decodificar a la soluci´on ´optima. Las FP con m´as de una soluci´on ´

(58)

estas. El conjunto de las mejores soluciones es conocido en investigaci´on de operaciones como ‘frente de Pareto’ [33, 34, 35]. El uso de EAs generalmente es en problemas donde la soluci´on anal´ıtica es muy compleja como en el caso de FP11, FP12, y FP13; en estos casos se conf´ıa que el EA sea capaz de encontrar una soluci´on ´optima o casi-´optima al problema [33].

Las pruebas fueron ejecutadas en una computadora marca eMachines modelo M2352, con procesador Mobile AMD Athlon(tm) XP 3000+ a 524 MHz, con 448MB en RAM. El n´umero m´aximo de generaciones fue de 150; el tama˜no de la poblaci´on es de 40 individuos. As´ı, el n´umero m´aximo de evaluaciones es de 6000 (150x40). El error m´ınimo pedido fue 0 %, en todas las FP se ejecutaron 10 veces por prueba.

Los resultados de las ejecuciones de las FP en el GA se muestran en el cuadro 3.2. Donde se observa el punto de soluci´on deseado y el encontrado por el GA, promedio de tiempo de c´omputo y promedio de n´umero de generaciones realizadas para encontrar la soluci´on.

En el cuadro 3.2 se observa que el GA logra encontar los puntos de ´optimos de soluci´on para FP1, FP2, FP4,FP7,FP9 y F11. Mientras que para FP3,FP5 y FP10 encuentra los puntos m´as cercanos al ´optimo, esto es porque el cro-mosoma del punto (0,0) no existe en esta codificaci´on. En FP6 el algoritmo no encuentra los puntos (±0,5,±0,5), sin embargo sus respuestas son muy cercanas a estos puntos; para lograr que el GA encuentre los puntos ´optimos vasta con aumentar el n´umero de generaciones. Para las FP8, FP12 y FP13 se presentan en el cuadro 3.2 los puntos del mejor y peor caso, los otros resultados son cercanos a esos puntos; lo que hace concluir que la soluci´on son los mejores puntos encontrados o esta pr´oxima a ellos. La proximidad en el valor para estos puntos es suficiente para concluir que el GA funciona correctamente.

(59)

3.3. ALGORITMO GEN ´ETICO REALIZADO 47

Cuadro 3.2: Resultados de las pruebas al GA realizado.

Funci´on Punto(s) de Punto(s) Promedio de Promedio de de soluci´on encontrados Tiempo de Generaciones Prueba por el AG c´omputo (seg) realizadas

FP1 (-1,1) (-1,1) 0.9634 60.5

FP2 (1,-1) (1,-1) 0.9022 55.7

FP3 (0,0) (±7.63,±7.63) 1.7323 150 x10−6

FP4 (±1,±1) (±1,±1) 0.9682 58.7 FP5 (0,0) (±7.63,±7.63) 1.6534 150

x10−6

FP6 (±0.5,±0.5) mejor(-0.4990,-0.5030) 1.7284 150 peor (0.5024,0.4989)

FP7 (1,-1) (1,-1) 1.0734 63.4

FP8 - - - mejor (0.5232,-0.5232) 1.7476 150 peor (0.5000,-0.5313)

FP9 (±1,±1) (±1,±1) 1.7164 150 FP10 (0,0) (±7.63,±7.63) 1.6873 150

x10−6

FP11 (1,-1) (1,-1) 1.6513 150 FP12 - - - mejor (0.5625,-1) 1.7014 150

peor (0.5000,-1)

FP13 - - - mejor (-0.0147,0.0137) 1.6793 150 peor (7x10−6,0.0137)

3.3.3.

Medida de aptitud para los UGC

La medida de aptitud en un EA es el resultado de la evaluaci´on de un individuo. Esta puede ser dada por alg´un m´etodo lineal, cuadr´atico, exponen-cial, l´ogica difusa, etc. En este trabajo la evaluaci´on es realizada por la suma de la norma (valor absoluto), este tipo de estimaci´on es suficiente para pro-blemas de esta ´ındole [33]. Cada circuito sintetizado se ejecutara en SPICE para obtener su comportamiento en ganancia, ancho de banda, impedancia de entrada y/o salida en AC. Dependiendo de las respuestas obtenidas se le asignar´a al circuito una medida de aptitud.

(60)

La Ec. (3.3) es la medida de aptitud que se utilizar´a en este trabajo; donde las variablesP1 aP4 son los pesos que el usuario define, para darle prioridad a alg´un parametro sobre los otros. Las funciones f(ev1) af(ev4) se calculan seg´un las ecuaciones (3.4) a (3.7). En estas ecuaciones los valores espera-dos por el usuario son: ganancia (gain), ancho de banda (BW), impedancia de entrada (Zin) e impedancia de salida (Zout). Los valores evaluados por SPICE son ev1 a ev4. P T otal es la calificaci´on dada al circuito, es decir, P T otal es la medida de aptitud del individuo; el circuito mejor calificado es el m´as cercano a cero.

P T otal=P1·f(ev1) +P2·f(ev2) +P3·f(ev3) +P4·f(ev4) (3.3)

f(ev1) =|gain−ev1| (3.4)

f(ev2) =           

|BW−ev2|

BW ev2< BW

0,01|BW−ev2|

BW ev2<10·BW

0,1 + 0,001|BWBW−ev2| ev2<100·BW 0,2 + 0,0001|BWBW−ev2| ev2<1000·BW

(3.5)

f(ev3) =

( |Z−ev3|

Z ev3< Z

0,1|Z−ev3|

Z ev3≥Z

(3.6)

f(ev4) =

( 0,1|Z−ev4|

Z ev4< Z |Z−ev4|

Z ev4≥Z

(3.7) La Ec. (3.4) es la funci´on que eval´ua a la ganancia. La figura 3.11 muestra la gr´afica de esta ecuaci´on cuando gain = 1. El circuito mejor calificado es aquel que cumpla con ev1 = 1, ya que f(ev1) = 0. La figura 3.12 muestra el comportamiento de la Ec. (3.5), donde el valor definido por el usuario es BW = 10,000.

La Ec. (3.6) califica a la impedancia que idealmente debe ser grande; como es la Zin para un VF o la Zout para un CM. La figura 3.13 muestra

(61)

3.3. ALGORITMO GEN ´ETICO REALIZADO 49

Figura 3.11: Gr´afica de la Ec. (3.4), congain= 1.

Referencias

Documento similar

Proporcione esta nota de seguridad y las copias de la versión para pacientes junto con el documento Preguntas frecuentes sobre contraindicaciones y

[r]

Y tendiendo ellos la vista vieron cuanto en el mundo había y dieron las gracias al Criador diciendo: Repetidas gracias os damos porque nos habéis criado hombres, nos

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

Sanz (Universidad Carlos III-IUNE): &#34;El papel de las fuentes de datos en los ranking nacionales de universidades&#34;.. Reuniones científicas 75 Los días 12 y 13 de noviembre

(Banco de España) Mancebo, Pascual (U. de Alicante) Marco, Mariluz (U. de València) Marhuenda, Francisco (U. de Alicante) Marhuenda, Joaquín (U. de Alicante) Marquerie,

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

Las manifestaciones musicales y su organización institucional a lo largo de los siglos XVI al XVIII son aspectos poco conocidos de la cultura alicantina. Analizar el alcance y