Diseño automático de circuitos electrónicos analógicos mediante algoritmos evolutivos
- CASTEJÓN LAPEYRA, FEDERICO
- Enrique J. Carmona Suárez Director
Universidad de defensa: UNED. Universidad Nacional de Educación a Distancia
Fecha de defensa: 15 de julio de 2020
- Antonio Óscar Garnica Alcazar Presidente/a
- Félix de la Paz López Secretario
- José Manuel Colmenar Verdugo Vocal
Tipo: Tesis
Resumen
Los circuitos electrónicos analógicos se caracterizan por utilizar un rango continuo de valores de una magnitud, tanto en su entrada como en su salida, a diferencia de los circuitos electrónicos digitales que se caracterizan por utilizar sólo dos valores discretos. Desde los años 70, los circuitos digitales han venido reemplazando a los circuitos electrónicos analógicos de forma general. Sin embargo, hay áreas en las que los circuitos analógicos o de señal mixta siguen en uso pues hay funciones que sólo pueden permanecer en el ámbito analógico. En el diseño de circuitos electrónicos analógicos no existe una metodología general ni existen herramientas automatizadas tan avanzadas como en el ámbito digital. Esto es así porque el diseño analógico tiene una mayor complejidad que su contrapartida digital, requiriendo todavía, la intervención de personal muy experto. Esta situación se ha llamado el «dilema analógico» y, por esta razón, hay un gran interés en disponer de herramientas automáticas para facilitar el diseño analógico. En el ámbito de la electrónica evolutiva existen trabajos previos basados en el uso de diferentes paradigmas evolutivos. En estos trabajos se han utilizado diferentes formas de representar las soluciones (cromosomas), así como diferentes operadores de selección (de padres y de supervivientes) y de variación (cruce y mutación). Básicamente, el problema de diseño de circuitos electrónicos analógicos consiste en sintetizar un circuito electrónico analógico que cumpla un conjunto de requisitos y consta de dos tareas: selección de la topología del circuito (qué componentes se utilizan y cómo se interconectan) y dimensionamiento (cuál es el valor de cada uno de los parámetros que definen cada componente de circuito utilizado). En esta tesis se busca obtener resultados competitivos en el problema del diseño automático de circuitos electrónicos analógicos, en relación con resultados previos obtenidos en la literatura relacionada. En particular, en esta tesis se han propuesto dos algoritmos para abordar el mencionado problema. El primero está basado en un paradigma evolutivo, ya existente en la literatura, denominado evolución gramatical (EG) y, el segundo, en una nueva variante de dicho paradigma, desarrollada en esta tesis, y que hemos denominado evolución multigramatical (EMG). Por un lado, EG es una variante de programación genética, capaz de generar código en cualquier lenguaje de programación, basada en el uso de cromosomas formados por cadenas binarias de longitud variable y en la decodificación del cromosoma mediante una gramática libre de contexto, normalmente especificada mediante notación Backus- Naur (BNF). Por otro lado, EMG es una variante de EG en el que se utiliza un enfoque modular, dividiendo el problema en subproblemas, cada uno de los cuales se aborda mediante una gramática específica. En concreto, para resolver el problema planteado, se utiliza una gramática para cada tarea del diseño de circuitos: una para la selección de la topología y otra para el dimensionamiento. En EMG se produce una división del cromosoma en particiones que, utilizadas convenientemente por operadores de cruce adecuados (operadores de cruce homólogos), permitirá mitigar el potencial efecto destructivo de los operadores de cruce tradicionales en EG. Se han desarrollado varias gramáticas para la generación directa de netlists y diferentes operadores de cruce que sacan partido del tipo de representación utilizado en cada algoritmo propuesto. Se presenta también un nuevo mecanismo de aprendizaje en EMG que permite aprender evolutivamente los parámetros deseados de las gramáticas utilizadas. En particular, dicho mecanismo se utiliza en esta tesis para aprender un parámetro importante de diseño: el máximo número de nodos (MNN) del circuito que evoluciona. Adicionalmente, se ha aplicado un mecanismo de manejo de restricciones, denominado parsimonia simple, que permite evolucionar el circuito para conseguir simultáneamente que se cumplan las especificaciones de diseño y, además, que el circuito sea lo más simple posible. Los experimentos realizados en esta tesis para validar los algoritmos propuestos se basan en la síntesis de siete circuitos de benchmarking utilizados en artículos relevantes de la bibliografía relacionada. Por un lado, los resultados con EG sobre dichos circuitos son competitivos, mejorando los resultados obtenidos por algoritmos anteriormente propuestos en la literatura. Por otro lado, los resultados obtenidos con EMG mejoran, de forma importante, los resultados ya obtenidos con EG. Adicionalmente, el mecanismo de aprendizaje del parámetro MNN ha demostrado realizar un buen ajuste de dicho parámetro durante la ejecución del algoritmo, sin necesidad de ser fijado a priori por el usuario. Finalmente, el mecanismo de parsimonia simple se ha mostrado eficaz en el compromiso de reducir el número de componentes del circuito sin que éste deje de cumplir las especificaciones de diseño.