ELO-330: Programación de Sistemas
Proyecto Final
2° semestre 2019
Es un software, creado a base del algoritmo genético expuesto en el paper "GA automated design and synthesis of analog circuits with practical constraints" por C. Goh e Y. Li, que permite obtener la topología, los componentes y valores de filtros pasivos óptimos, mediante algoritmos genéticos.
Para la implementación de este sistema, se desarrolla una lógica con proyecciones a ser implementada de forma distribuida. Esto con el objetivo de mejorar los tiempos de simulación y de esta forma acelerar el proceso de optimización de los algoritmos al ejecutar la evaluación del fitness en paralelo.
Para poder utilizar este sistema, en necesario en primer lugar, tener instalado el simulador ngspice. Los pasos de su instalación pueden variar dependiendo de la distribución que utilice. Puede encontrar las instrucciones para instalarlo en su distribución particular el sitio oficial.
Para ejecutar los programas que componen el sistema que desarrollamos para este proyecto debe acceder a las carpetas particulares para cada parte del sistema, donde se encuentran los archivos .c y .java junto a los correspondientes makefiles.
El sistema que se desae implementar se muestra a continuación. Es importante mencionar que debido a temas de tiempo no se implemento la parte de interfaz, por lo que queda para una implmentación futura:
Una vez descargado el proyecto e installado los requerimientos, para compilar cada programa basta con ejecutar el make que se encuentra en cada carpeta. Para ejecutar el simulador se debe ingresar el sigueinte comando:
username@maquina1 ./simulador
Mientras que para ejecutar el Algoritmo Genético se debe ejecutar lo siguiente:
username@maquina2 make run
Por falta de tiempo no se alcanzo a implementar el ingreso de parámetros por consola, por lo que si se desea modificar uno se debe modificar el archivo AG/main.java (Todas las variables, menos k, son parámetros modificables).
Los trabajos futuros que se tienen considerados son los siguientes:
El código fuente puede obtenerse de aqui.