SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
Ingeniería
20 V
V
V
V
Vol.
ol.
ol.
ol.
ol. 9 No
9 No
9 No
9 No
9 No.
..
.. 2
2
2
2
2 REVISTA CIENTÍFICA Y TECNOLÓGICA DE LA FACULTAD DE INGENIERÍA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS - PUBLICACIÓN ELECTRÓNICA
José M. Luna1
Christian J. Devia2
Álvaro Betancourt U.3
1
Miembro Grupo de Investigación
LAMIC, Universidad Distrital
Francisco José de Caldas.
2
Miembro Grupo de Investigación
LAMIC, Universidad Distrital
Francisco José de Caldas.
3
Director Grupo de Investigación
LAMIC, Universidad Distrital
Francisco José de Caldas.
C
i
e
n
c
i
a
I
n
v
e
s
t
i
g
a
c
ión Academia
D
e
s
a
r
r
o
l
l
o
Artículo recibido en Septiembre de 2004
Aceptado en Noviembre de 2004
RESUMEN
Este artículo describe la utilización de estrategias
bioinspiradas en el diseño de un circuito digital, que
implementa un sumador completo con acarreo de
entrada en un dispositivo lógico programable. Ade-
más, se presenta el desarrollo de una plataforma ex-
perimental en hardware evolutivo utilizada en la eje-
cución del experimento.
Palabras Clave: Algoritmos Genéticos, FPGA,
Hardware Evolutivo, Sumador Completo.
ABSTRACT
This paper describes the use of bioinspired
strategies in the design of a digital circuit, which
implements a full adder with carry input on a
programmable logic device, as well as presenting the
development of an experimental evolvable hardware
platform used in the experiment execution.
Key Words: Evolvable Hardware, Full Adder,
FPGA, Genetic Algorithms.
I. INTRODUCCIÓN
EL hardware evolutivo (Evolvable Hardware,
EHW) consiste en la aplicación de las estrategias
evolutivas de la naturaleza en la resolución de pro-
blemas de diseño electrónico de alta complejidad,
aprovechando las ventajas de autoorganización y
adaptabilidad de los sistemas evolutivos
computacionales [1].
Esta aproximación de diseño es mejor expresada
como una vista en caja negra del circuito, donde lo
realmente importante es la tarea que realiza y nó la
manera de llevarla cabo [2].
El EHW se divide en extrínseco e intrínseco [3]. En el
primer caso, el proceso evolutivo se ejecuta sobre un
modelo simulado de una matriz de celdas evolutiva.
Es decir, que un algoritmo evolutivo es ejecutado y
la evaluación de aptitud de los individuos que con-
forman la población se lleva a cabo en simulación,
lo cual presenta ventajas en cuanto a velocidad de
procesamiento de los algoritmos, generalidad y esta-
bilidad de los circuitos obtenidos. Una vez converge
la evolución, el mejor individuo es descargado en el
dispositivo lógico programable implementando el
circuito requerido.
La evolución intrínseca se lleva a cabo directamen-
te sobre el dispositivo, es decir, que durante la ejecu-
ción de un algoritmo evolutivo, cada uno de los indi-
viduos de la población es descargado en el dispositivo
configurable para la evaluación de su aptitud. Este tipo
de evolución presenta ventajas en cuanto a variables
de diseño que son muy difíciles de manejar, como
cambios de temperatura o radiaciones externas que
afectan al circuito físicamente produciendo algunos
niveles de entropía difíciles de superar por las técni-
cas de modelado tradicional. En ese sentido, los cir-
cuitos resultan muy robustos pero poco generales, ya
que dichos circuitos se ajustan muy bien al dispositivo
sobre el que se evolucionan, pero cabe la posibilidad
de que su implementación sobre otro dispositivo di-
ferente no se desempeñe de la misma manera.
En este artículo producto de un trabajo de investi-
gación y desarrollo, se evalúa el potencial del EHW
en el diseño de circuitos digitales combinacionales me-
diante la experimentación con un circuito sumador
completo de un bit con acarreo de entrada. Con el fin
de describir la metodología de experimentación, así
como los ensayos realizados, el artículo se organiza
de la siguiente manera: En la sección II se hace una
descripción general de la plataforma experimental de-
sarrollada y se exponen las principales características
de los módulos de hardware y software
implementados. En la sección III se presenta el expe-
rimento de evolución del circuito sumador completo
y se realizan comparaciones cualitativas con experi-
mentos similares registrados en la literatura. Se expo-
nen los resultados obtenidos y se ilustran estadísticas
de los procesos evolutivos llevados a cabo. En la sec-
ción IV se presentan las conclusiones.
II. PLATAFORMA EXPERIMENTAL
La plataforma experimental DEEP (del inglés
Development of an Experimental Evolvable Hardware
Platform) utilizada, se especializa en evolución intrín-
seca de hardware utilizando algoritmos genéticos (AG),
y se compone de dos módulos que operan de manera
conjunta [4]. Dichos módulos comprenden a) el desa-
rrollo de una biblioteca de instrumentos virtuales (VI,
del inglés Virtual Instruments) para AG denominada
VIGA (del inglés Virtual Instruments for Genetic
Algorithms) y b) el diseño de una unidad estructural
mínima configurable denominada celda evolutiva.
A continuación, se describen los módulos enunciados.
Diseño de un circuito sumador
completo usando evolución
intrínseca de hardware
Ingeniería
21
V
V
V
V
Vol.
ol.
ol.
ol.
ol. 9 No
9 No
9 No
9 No
9 No.
..
.. 2
2
2
2
2
REVISTA CIENTÍFICA Y TECNOLÓGICA DE LA FACULTAD DE INGENIERÍA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS - PUBLICACIÓN ELECTRÓNICA
A. Biblioteca de Instrumentos Virtuales
para Algoritmos Genéticos
Cómo se mencionó anteriormente, para la ejecu-
ción de los experimentos en evolución intrínseca de
hardware, se implementó una biblioteca de opera-
dores genéticos y evolutivos orientada al diseño y
ejecución de AG denominada VIGA. Además, se
consideró conveniente monitorear el desempeño de
los AG de manera concomitante al proceso evoluti-
vo, por lo que se escogió la herramienta de instru-
mentación virtual Labview, que ofrece una interfaz
gráfica de fácil operación para el diseñador, y ade-
más permite realizar el seguimiento del desempeño
de los algoritmos a través de gráficas de formas de
onda e indicadores digitales, que se actualizan en
pantalla mientras el ciclo evolutivo es llevado a cabo.
Dicha biblioteca consta de un grupo de 31 VI que
facilitan el proceso de diseño de un AG y la comunica-
ción por puerto paralelo tipo D con un dispositivo lógi-
coprogramable, que en este caso es una FPGA XC4000.
La herramienta no solo está limitada a resolver ex-
perimentos de evolución de hardware, sino que per-
mite solucionar una variedad de problemas clásicos
de software, entre los cuales se pueden mencionar
problemas de optimización combinatorios
(combinatorial optimization problems) como el problema
del agente viajero (TSP del inglés Traveling Salesman
Problem), problemas de estructuras de árbol como el
Estas celdas interconectadas, forman un arreglo
normalmente de tipo rectangular como el que se ilus-
tra en la Fig. 2, que se conoce como Matriz de Celdas
Evolutiva [4] - [9]. De manera previa a la ejecución de
cada experimento las conexiones entre cada celda
son configuradas por el usuario, de tal forma, que a
diferencia de los experimentos planteados por
Kalganova y Miller [10] la geometría del circuito per-
manece aparentemente constante. A esta invariancia
en la disposición geométrica se le conoce como dis-
posición homogénea del circuito.
Se decidió no variar la geometría del circuito dada
la complejidad de la celda evolutiva diseñada, pues
visualizando las marcadas diferencias entre la celda
propuesta por Miller [11] en algunos experimentos
ejecutados con evolución extrínseca, y la nuestra, se
tiene que en dichos experimentos, cada celda sola-
mente ejecuta una operación lógica combinacional a
la vez, como una compuerta AND, OR, NOT, XOR,
o un multiplexor de dos entradas.
Si se compara este funcionamiento con el de la
celda evolutiva propuesta en el presente artículo, se
tiene que en este caso, no solo se involucra la con-
ducta de una compuerta en cada celda, sino de múl-
tiples compuertas funcionando de manera conjunta
en el mismo espacio, es decir, el equivalente a tener
más de una celda de las propuestas por Miller
interconectadas en la matriz. Además, la implemen-
tación de multiplexores se lleva a cabo de manera
Figura 1. Celda Evolutiva implementada en la evolución del
circuito sumador completo de un bit con acarreo de entrada.
Nótese el elemento de almacenamiento (flip-flop) en la salida.
implícita con cada uno de los multiplexores conteni-
dos en el modelo de celda propuesto en la Fig. 1.
Esto resulta en un comportamiento semejante a la
disposición heterogénea del circuito (que en oposición a la
disposición homogénea, implica la variación ocasio-
nal de la geometría del mismo en la evolución). No
obstante, es necesario aclarar que dicha variación no
se lleva a cabo, ni se considera en el cromosoma de
control descargado a la FPGA durante el proceso
evolutivo, por lo cual, es errado afirmar que en este
ensayo la geometría cambie, puesto que esto tiene
otras implicaciones de fondo tales como cromosomas
de longitud variable, cambios fortuitos en la distri-
bución de filas y columnas de la matriz, y la modifi-
cación en el número de recursos utilizados en el cir-
cuito, que como puede notarse, no se toman en con-
sideración en el presente experimento.
Si se compara
este
funcionamiento
con el de la
celda evolutiva
propuesta en el
presente
artículo, se tiene
que en este
caso, no solo se
involucra la
conducta de
una compuerta
en cada celda,
sino de
múltiples
compuertas
funcionando de
manera
conjunta en el
mismo espacio.
MST (del inglés Minimun Spanning Tree
Problem), y el problema de la Mochila o
del Furgón (Knapsack Problem) entre otros
[1], [5]-[7]. Asimismo, permite resolver
problemas de optimización de disponi-
bilidad de dispositivos (Reliability
Optimization Problem) y problemas de se-
cuencias de máquinas (Flow-Shop
Sequencing Problem).
Fue necesario realizar una revisión de los
operadores genéticos y evolutivos más uti-
lizados y reportados en la literatura. De es-
tos operadores se seleccionaron los que se
consideraron más relevantes y se modelaron los
algoritmos de tal manera que se aprovecharan las faci-
lidades gráficas y operativas de Labview® en la comu-
nicación con la FPGA durante el proceso evolutivo.
B. Celda Evolutiva
Como antes se había mencionado, es la unidad
estructural mínima configurable, es decir, el mínimo
bloque funcional en la construcción de un circuito
electrónico digital durante el proceso evolutivo. La
celda propuesta está conformada por tres unidades
lógicas, un flip-flop tipo D como elemento de alma-
cenamiento, y un conjunto de multiplexores que de-
terminan la conectividad del circuito obtenido en
dicha celda, como se ilustra en Fig. 1 [8].
Ingeniería
22 V
V
V
V
Vol.
ol.
ol.
ol.
ol. 9 No
9 No
9 No
9 No
9 No.
..
.. 2
2
2
2
2 REVISTA CIENTÍFICA Y TECNOLÓGICA DE LA FACULTAD DE INGENIERÍA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS - PUBLICACIÓN ELECTRÓNICA
Figura 3. Circuito sumador completo convencional.
Es un circuito puramente combinacional.
Es habitual encontrar que los experimentos de
evolución intrínseca de hardware sean ser de mayor
duración que los de evolución extrínseca. Esto se
explica, porque los procesos de EHW intrínseco en
su mayoría se suelen ejecutar sobre FPGA que ad-
miten configuración parcial como la XC6200 o la
Virtex de Xilinx. Como suele trabajarse con las celdas
lógicas que dichos dispositivos tienen de fábrica, y estas
celdas son de muy bajo nivel, la implementación de
una compuerta con estos recursos compromete un
tiempo relativamente extenso en cada ciclo del AG.
Figura 2. Esquema general de la matriz de celdas evolutiva en un arreglo de
2x2. Nótese la memoria RAM en la cual se almacenan los individuos de control.
Miller [11] escribe refiriéndose a las FPGA XC6200
y Virtex: "...Estos dispositivos son conocidos como
FPGA granulares finas, lo cual, significa que cada
uno está compuesto por un arreglo grande (típica-
mente cuadrado) de celdas lógicas muy simples. Esto,
en contraposición con las mejores conocidas Xilinx
nas en la matriz, es decir, que se ejecutan dos tipos de
mutaciones independientes con un incremento en los
lapsos entre generaciones. Además, se evitan también
algunos algoritmos de reparación de conexiones in-
válidas que regularmente se obtienen a través de la
supresión o agregación de filas o columnas, que im-
primen más demora a la convergencia del proceso.
Otro factor de suma importancia, es el sesgo que
normalmente se le da a los procesos evolutivos, es
decir, que teniendo un conocimiento previo del pro-
blema, es posible ayudar al AG en el proceso de
optimización involucrando algo de dicho conocimien-
to en la solución. Es así como Gordon, Kalganova y
Miller, [2], [10], [11], aseguran de que la solución sea
de tipo combinacional evitando realimentaciones en-
tre las salidas y las entradas de celdas ya
interconectadas. Es decir, que la matriz solo permite
topologías de circuitos de tipo unidireccional en este
caso, por lo cual, es necesario un algoritmo de repara-
ción después de la ejecución de un operador de cruce,
que adiciona tiempo al proceso de convergencia.
Esta característica unidireccional en los circuitos
evolucionados es ventajosa, puesto que se evitan
posibles inconvenientes a partir de las
realimentaciones, que en ocasiones forzan a las sali-
das de los dispositivos de la celda a entregar una co-
rriente grande ocasionando un posible daño físico al
dispositivo lógico programable. Además se garanti-
za el comportamiento combinacional del sumador,
partiendo del diseño convencional de un sumador
completo, como el que se ilustra en la Fig. 3.
En la presente investigación y experimentación, se
evitan las conexiones dañinas mediante la
realimentación de la salida a la entrada de la celda, em-
pleando los multiplexores mostrados en la Fig. 1, ade-
más, las conexiones fijas entre celdas contribuyen tam-
bién a evitar realimentaciones indeseadas en la matriz.
Los sesgos implantados en la evolución operan
bajo una filosofía diferente a las propuestas por
Gordon y Kalganova [2], [10], que consiste en que
las conexiones estáticas entre celdas impuestas en la
etapa de acondicionamiento (ver Fig. 4), garanticen
XC3000 y XC4000, las cuales, son mucho más
grandes, y en consecuencia, poseen celdas más
complejas (que son conocidas como bloques
lógicos configurables o CLB)...". De donde
se concluye que los experimentos de este tipo
se prefieren sobre FPGA granulares finas ya
que las FPGA XC3000 y XC4000 son muy
densas en componentes de celdas y además
no permiten configuración parcial.
La propuesta de hacer un mapeo de nues-
tra propia celda lógica sobre la FPGA
XC4000 contrarresta el efecto de tener que
utilizar CLB de fábrica, y permite diseñar una
FPGA con celdas apropiadas para EHW in-
trínseco, reduciendo los tiempos de configu-
ración de estos dispositivos.
Una de las razones por la que se evitó al máximo la
variación en la geometría del circuito es su incidencia
sobre la duración de cada generación en el AG, pues-
to que se agrega un operador genético más en cada
iteración. Con esto, se hace innecesaria la implemen-
tación de algunos recursos evolutivos propuestos en
los experimentos de Kalganova [10], como el opera-
dor de Mutación de Geometría que existe además del
operador de Mutación del Circuito [10], y que consiste
en el cambio fortuito del número de filas o de colum-
Ingeniería
23
V
V
V
V
Vol.
ol.
ol.
ol.
ol. 9 No
9 No
9 No
9 No
9 No.
..
.. 2
2
2
2
2
REVISTA CIENTÍFICA Y TECNOLÓGICA DE LA FACULTAD DE INGENIERÍA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS - PUBLICACIÓN ELECTRÓNICA
Figura 4. Esquema general del ciclo evolutivo.
Ilustra el funcionamiento conjunto de los módulos
software y hardware de la plataforma DEEP [9].
la factibilidad del circuito sumador, con la presencia
de un número límite de compuertas en la matriz.
Dicho número debe satisfacer por lo menos uno de
los muchos circuitos conocidos diseñados por mé-
todos convencionales. Vale recalcar que a diferencia
de Kalganova y Miller [10], [11], no se desactivaron
los elementos de almacenamiento (flip-flops) en las
celdas, ni se inhibieron las conexiones de
realimentación, puesto que como se puede observar
en el modelo de la celda (ver Fig. 1) no hay peligro
de daño en el circuito, y además (aunque en los ensa-
yos realizados no se presentó), tampoco se descartó
un posible comportamiento secuencial que fuese de
utilidad en el circuito a obtener.
C. Operación Conjunta de Módulos
La operación conjunta de los módulos de hardware
y software descritos y justificados en los párrafos an-
teriores, se explica mediante lo que hemos denomi-
nado el ciclo evolutivo [9], el cual, se lleva a cabo duran-
te cada experimento y se resume en el esquema ilus-
trado de la Fig. 4.
Antes de la ejecución de un experimento, es nece-
sario establecer las condiciones correctas para la evo-
lución. Dichas fases preliminares, están relacionadas
con la selección de los parámetros apropiados del
AG, el número de celdas evolutivas y sus respectivas
conexiones.
El primer paso, es la selección del número de cel-
das a utilizar. Dicha cantidad se elige en proporción a
la complejidad del experimento. Es posible, que un
número excedente de celdas aumente el espacio solu-
ción, lo que en algunos casos resulta en muchas con-
figuraciones que implementan el mismo circuito.
Como se había mencionado antes, las conexiones
entre celdas, son planeadas de manera intuitiva o
partiendo de un conocimiento previo del problema
por parte del experimentador, y se espera, que dicho
conocimiento ayude a la obtención de la solución.
Posteriormente, se escoge la estrategia evolutiva
apropiada. Al utilizar VIGA se pueden personalizar
los pasos básicos de un AG, seleccionando los ope-
radores genéticos y evolutivos necesarios. Asimismo,
se configuran los parámetros del AG, como las pro-
babilidades de cruce, de mutación, el método de se-
lección y demás propiedades de la estrategia evoluti-
va seleccionada.
Una vez se finaliza con esta etapa inicial de acon-
dicionamiento, se procede a ejecutar el AG. Durante
la evaluación de aptitud de los cromosomas se debe
realizar la descarga de cada individuo en la FPGA.
Previo a esta descarga se hace la conversión del
genotipo a palabras de control o configuración de la
matriz de celdas evolutiva.
Posteriormente, se evalúa la salida de cada pala-
bra de control en respuesta a una excitación del cir-
cuito por entradas digitales, provenientes de una fuen-
te externa que puede ser un circuito generador de
estímulos, o señales enviadas a través del puerto pa-
ralelo. Estas salidas son confrontadas con la tarea
que el circuito debe realizar, y de acuerdo a la defini-
ción de la función aptitud que el diseñador propon-
ga, se procede a ejecutar los operadores de selec-
ción, cruce y mutación inherentes al AG.
El ciclo evolutivo se repite hasta que se cumpla la
condición de finalización que bien puede ser un nú-
mero de generaciones determinadas, un punto de
error mínimo o un máximo de una función, entre
otras opciones que el diseñador considere.
III. EVOLUCIÓN DE UN SUMADOR
COMPLETO
A continuación se describe el experimento de di-
seño de un circuito sumador completo con acarreo
de entrada, utilizando EHW intrínseco. Este circui-
to es de tipo combinacional, es decir, que es un sis-
tema sin memoria, en el cual, a cada combinación de
datos binarios de entrada, le corresponde una salida
que es independiente del estado anterior como en el
caso de la Fig. 3.
La idea básica del experimento es darle libertad a la
evolución para converger a una solución
combinacional o secuencial indistintamente. Un cir-
cuito secuencial, es un sistema con memoria donde
cada salida es producto de las combinaciones de da-
tos a la entrada y del estado inmediatamente anterior.
La configuración de la matriz de celdas evolutiva
utilizada y sus conexiones fijas se ilustran en la Fig. 5.
Obsérvese de la Fig. 5, el lugar donde se encuen-
tran conectados los operandos de entrada A y B ,
el acarreo de entrada in
C , la suma out
S y el acarreo
de salida out
C .
A. Codificación
Contrastando con los experimentos similares eje-
cutados por Kalganova y Miller [10], [11], la codifi-
cación implementada en este problema de
optimización condicionada es de tipo binaria, la cual,
La idea básica del
experimento es
darle libertad a la
evolución para
converger a una
solución
combinacional o
secuencial
indistintamente.
Ingeniería
24 V
V
V
V
Vol.
ol.
ol.
ol.
ol. 9 No
9 No
9 No
9 No
9 No.
..
.. 2
2
2
2
2 REVISTA CIENTÍFICA Y TECNOLÓGICA DE LA FACULTAD DE INGENIERÍA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS - PUBLICACIÓN ELECTRÓNICA
Figura 6. Algoritmo genético implementado en Labview



, utilizando la biblioteca VIGA.
es muy común en el AG simple. Se decidió trabajar
de esta forma, ya que las complicaciones que surgen
de imponer restricciones de tipo combinacional se
simplifican en alguna medida.
Figura 5. Matriz de celdas evolutiva utilizada en el experimento de evolución del circuito
sumador completo con acarreo de entrada. Obsérvense los enlaces fijos entre celdas.
Entre las complicaciones a las que se ha hecho
mención se tienen: impedir realimentaciones entre
compuertas, haciendo que el circuito opere de ma-
nera unidireccional, variar la geometría del circuito
de manera fortuita durante cada generación y utili-
zar una convención de codificación, en la cual, se
emplean tripletas de números enteros, de los cuales
dos números determinan las dos celdas conectadas
a las entradas de la celda bajo referencia y el tercer
término determina la operación lógica [10], [11].
En conclusión, cada celda evolutiva es controlada
por una palabra de 16 bits, y al haberse utilizado un
arreglo de 2x3 como se ilustra en la Fig. 5, la palabra
de control (cromosoma) posee una longitud de 96
bits, que difiere mucho de las longitudes de
cromosomas utilizadas por Gordon [2] con un valor
regular de 604 genes para un arreglo de celda de 2x2.
Las longitudes cortas resultan ortodoxas si se tiene
en cuenta que el teorema del esquema establece que
"...los esquemas entre menor longitud tengan, me-
nor orden y mayor aptitud, incrementan el número
de sus instancias de manera exponencial en el trans-
curso de las generaciones" [9], de donde se tiene que
si la longitud de un cromosoma es corta, cabe la
posibilidad de que la longitud del esquema también
sea corta, lo cual, favorece el proceso de selección
de esquemas útiles durante la evolución.
B. Algoritmo Genético
La Fig. 6 ilustra el AG diseñado utilizando la bi-
blioteca VIGA. Nótese la facilidad gráfica que pres-
ta Labview en el diseño de este tipo de algoritmos,
y la simplicidad del mismo en el proceso de conexión
de las variables y elementos que lo componen.
De la misma manera debe tenerse en cuenta que
el manejo de puertos resulta práctico utilizando los
VI in port y out port del menú de funciones de
Labview, por lo que el diseño de las funciones de
aptitud para cada AG es relativamente sencillo.
Describiendo el AG y la estrategia evolutiva adop-
tada se tiene en la Fig. 6 de izquierda a derecha un
primer VI denominado Generación de Cromosomas Ente-
ros, que construye una población aleatoria de indivi-
duos codificados en arreglos binarios. Esta primera
generación de individuos ingresa al ciclo For repre-
sentado por el rectángulo que contiene el resto de VI
involucrados en el AG. Posteriormente, la población
ingresa al VI Fitness EHW, que evalúa la aptitud de
cada uno de los individuos. Su operación interna se
describe en párrafos posteriores. El VI siguiente se
conoce como Ordenar Arreglo y pertenece al grupo de
VI No Operadores, puesto que su tarea no representa
un operador genético o evolutivo como tal, sin em-
bargo, en los AG es muy útil ya que organiza la pobla-
ción ya sea en orden creciente o decreciente de apti-
tud. Para este caso particular, los individuos son orga-
nizados en orden decreciente de aptitud.
Una vez ejecutado el ordenamiento, se lleva a cabo
un proceso de escalamiento dinámico denominado por
los autores como Escalamiento Exponencial Dinámico. El
término dinámico se debe a que varía la presión selecti-
va en cada generación dependiendo de la diferencia en-
tre las aptitudes del mejor y el peor individuo, de tal
forma que entre mayor sea dicha diferencia, mayor pre-
sión selectiva se imprime al proceso en dicha genera-
ción. Está basado en el Escalamiento Lineal Dinámico pro-
puesto por Grefenstette y Baker señalado en[7]. Nues-
tra propuesta es agregar un exponente α en (1):
t
k
k b
A
a
A +
×
=
' (1)
resultando (2): ( )α
t
k
k b
A
a
A +
×
=
' (2)
De esta forma se imprime un
grado de no linealidad a la fun-
ción de escalamiento, y se brin-
da un grado de libertad adicio-
nal al mismo. Entre varias
metodologías de escalamiento
implementadas en el experimen-
to, las de carácter dinámico fue-
ron las que mostraron mejor de-
sempeño en cuanto a los tiem-
pos de respuesta, y un marcado
crecimiento de la función de
evolución de aptitud.
Ingeniería
25
V
V
V
V
Vol.
ol.
ol.
ol.
ol. 9 No
9 No
9 No
9 No
9 No.
..
.. 2
2
2
2
2
REVISTA CIENTÍFICA Y TECNOLÓGICA DE LA FACULTAD DE INGENIERÍA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS - PUBLICACIÓN ELECTRÓNICA
Posteriormente, dicha población con sus funcio-
nes de aptitud escaladas, se somete a una selección
de tipo estocástica conocida como Muestreo Universal
Estocástico propuesto por Baker que se describe en
[7], y que consiste en asignar un número de copias a
cada individuo de manera proporcional a su proba-
bilidad de selección, pero imponiendo como límite
superior su valor esperado de copias, evitando así la
proliferación de "supercromosomas" y evadiendo el
posible estancamiento del AG.
Una vez realizada la selección estocástica se realiza el
cruce c
P de individuos, con una probabilidad de cruce
determinada por el usuario. El VI utilizado se denomi-
na Cruce por Puntos de Corte Aleatorio. Este VI selecciona
los padres y realiza el intercambio de genes entre ellos
aplicando un número determinado de puntos de corte
según el usuario especifique. Los lugares de los puntos
de corte se asignan de manera aleatoria, de tal forma,
que se obtiene mayor diversidad de soluciones, que si
se establecen de manera determinista, contribuyendo a
una mejor exploración del espacio solución.
En este caso particular, para imprimir una mayor
dinámica en las variaciones de la población se ha
implementado una selección de tipo determinista que
complementa la selección estocástica antes descrita, y
se conoce como Selección por Reemplazo Generacional.
Consiste en reemplazar a los peores padres de la po-
blación por los hijos obtenidos del cruce. Es decir,
que se implementan dos tipos de selección en el AG,
una de tipo estocástico y otra de tipo determinista.
Por último, se ejecuta el VI de Mutación de Cromosomas
Enteros, que consiste en que de acuerdo a una proba-
bilidad de mutación m
P determinada por el usuario
(que suele ser pequeña), un número aleatorio de genes
se escoge entre la población y se modifica su valor.
Los individuos mutados también son reemplazados.
Por último, la nueva población de individuos pasa
al siguiente ciclo a través de un registro de corrimien-
to, representado por una flecha que apunta hacia arri-
ba en el borde derecho del ciclo For. De esta manera,
se corren las iteraciones hasta cumplir con la condi-
ción de finalización , que en este caso obedece al nú-
mero de generaciones impuestas por el usuario.
IV. RESULTADOS EXPERIMENTALES
A continuación se ilustran los principales resulta-
dos experimentales obtenidos de 9 repeticiones del
experimento de diseño propuesto.
A. Parámetros Básicos del Algoritmo Genético
Los valores de los parámetros del AG se ilustran a
continuación:
• Población de individuos = 10.
• Probabilidad de cruce = 0.3%.
• Puntos de corte = 10.
• Probabilidad de mutación = 10%.
Los valores dados son inusuales, ya que los por-
centajes son muy bajos para el común de los experi-
mentos en EHW. Esto ocurre, porque la secuencia
de operadores genéticos y evolutivos, y la manera en
que se están ejecutando facilitan mucho el buen de-
sempeño del algoritmo, a tal punto que el operador
fundamental es la mutación [4], [12]. El cruce es uti-
lizado para evitar que la mutación induzca demasia-
do ruido en el proceso evolutivo.
B. Función de Aptitud
A continuación se describe la operación que cum-
ple el VI Fitness EHW en el AG descrito por la Fig. 6.
La aptitud de los individuos es evaluada de modo
proporcional al número de aciertos en la salida del
sumador al ser excitado por una secuencia aleatoria
de los operandos A, B y el acarreo de entrada in
C .
Se compara dicha salida con el valor correcto de la
suma que se encuentra previamente tabulado. La
función de aptitud se define según la ecuación (3).
∑
=
=
7
0
)
(
i
i
N
x
A (3)
Donde:
≡
)
(x
A Es la aptitud del individuo x.
≡
N Es el número de aciertos en la salida del
circuito determinado por el cromosoma x.
≡
i Es el índice de los datos aleatorios de
entrada que excitan al circuito.
Para la evaluación de aptitud del AG, se utilizó el
escalamiento exponencial dinámico descrito por la
ecuación (2) con α =2, α =1 y b =0.
Los datos de entrada se alimentan de manera alea-
toria al circuito a través del puerto paralelo tipo D, de
esta forma se evita la posibilidad de evolucionar un
circuito que solamente responda a una secuencia de
entrada determinada. Es decir, que con esto se trata
de garantizar que con cualquier secuencia de datos
posible el circuito funcionará de manera correcta.
C. Experimento
Las entradas y salidas del circuito sumador com-
pleto a evolucionar, se ilustran en la Tabla 1.
Es un circuito con tres entradas, dos salidas que
opera de modo combinacional, como puede dedu-
cirse de su función de entrada salida.
Tabla 1. Tabla de verdad del circuito sumador completo
En este caso
particular, para
imprimir una mayor
dinámica en las
variaciones de la
población se ha
implementado una
selección de tipo
determinista que
complementa la
selección
estocástica antes
descrita, y se
conoce como
Selección por
Reemplazo
Generacional.
El experimento se corrió nueve veces bajo las mis-
mas condiciones. En la Fig. 7, se ilustra una de las
Ingeniería
26 V
V
V
V
Vol.
ol.
ol.
ol.
ol. 9 No
9 No
9 No
9 No
9 No.
..
.. 2
2
2
2
2 REVISTA CIENTÍFICA Y TECNOLÓGICA DE LA FACULTAD DE INGENIERÍA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS - PUBLICACIÓN ELECTRÓNICA
gráficas de la función evolución de aptitud del mejor,
el peor y la media aritmética de toda la población.
Nótese la convergencia del experimento en la genera-
ción 832, donde la aptitud máxima sin escalar es ocho,
puesto que son ocho sumas las que deben hacerse de
manera correcta como se ilustra en la Tabla 1.
Figura 7. Función evolución de aptitud del mejor y el peor individuos a lo
largo de la evolución. También se ilustra la aptitud promedio de la
El cromosoma del mejor individuo del proceso
evolutivo en codificación hexadecimal es:
D536ABCF973F77031D6F6B9E.
En la Tabla 2 se ilustra la media aritmética de la
aptitud de los mejores individuos en la generación
774, que corresponde a la media aritmética de las
generaciones de convergencia de cada experimento.
Cabe resaltar que en la generación indicada, la dis-
persión de las aptitudes de los individuos es muy
pequeña, lo cual, da cuenta de la capacidad de con-
vergencia del AG en corto tiempo, ya que en prome-
dio una corrida de 10000 generaciones tarda cerca
de 31,64 segundos, es decir, que cada generación tar-
Tabla 2. Datos estadísticos de los mejores
individuos y de los tiempos de convergencia
da en correr aproximadamente 3,164 ms. Al cabo de
774 generaciones que toman cerca de 2,35 s, es posi-
ble afirmar que la evolución intrínseca de hardware
en el problema planteado, trabaja en tiempos que
dependiendo de la aplicación pueden llegar a ser
bastante apropiados.
No obstante, observando la dispersión existente
en las generaciones de convergencia (358,75), es
posible afirmar que el tiempo medio de convergen-
cia no establece un intervalo de confianza lo sufi-
cientemente pequeño como para limitar el número
de generaciones a un rango pequeño y confiable.
Aunque 832 parezca una cifra muy grande, debe
notarse que este experimento muestra un espacio
solución relativamente reducido, en el cual, no se trata
de hallar una salida determinada para una señal de
entrada, sino que coincidan ocho salidas para ocho
entradas diferentes aleatorias, y que el mismo circui-
to cumpla con dichas relaciones entrada-salida sin
errores. Además debe tenerse en cuenta que estas
832 generaciones tardaron 2.63 s en correr, que para
algunos propósitos específicos es poco tiempo. Debe
tenerse presente que los experimentos reportados
por Gordon, Kalganova y Miller [2], [10], [11] en
evolución extrínseca tardaron entre 1000 y 3000 ge-
neraciones promedio en converger.
Vale aclarar que sin tener en cuenta la media del
número de generaciones de convergencia, todos los
experimentos convergieron, de modo que todos los
individuos más aptos de cada ensayo presentaban una
aptitud de ocho con desviación estándar cero.
Es muy difícil establecer parámetros cuantitativos
entre evolución intrínseca y extrínseca como se ha
podido observar en el presente documento ya que
cada tipo de evolución tiene sus ventajas y desventa-
jas. Por ejemplo, según Gordon [2], al evolucionar
un circuito sumador completo de dos bits con aca-
rreo de entrada, el experimento de evolución extrín-
seca tardó cerca de cuatro minutos en converger con
arreglos de celdas lógicas de 3x3, 3x4 y 4x4 utilizan-
do un microprocesador celeron de 433 Mhz. El mis-
mo experimento fue ejecutado en evolución extrín-
seca sobre una FPGA Virtex, evitando utilizar codi-
ficación binaria y tardó cerca de 3 horas con 45 mi-
nutos en un microprocesador celeron de 433 Mhz.
Teniendo en cuenta que el salto tecnológico es
bastante grande entre el microprocesador utilizado
por Gordon en sus experimentos y el microprocesa-
dor empleado por los autores de la presente publica-
ción en la evolución del sumador completo de un bit
con acarreo de entrada, el cual, es un atlon de 1.2
Ghz, que casi triplica la velocidad de procesamiento,
no da lugar a comparaciones. Además el sumador
completo descrito por Gordon es de palabras de dos
bits de entrada, un tanto más complejo que el
sumador presentado en este documento.
En la Fig. 8, se esquematiza un diagrama de com-
puertas del circuito evolucionado. Ilustrando las fun-
ciones de salida se tiene que:
[ ]
B
C
A
C
AB
C
C
B
A
B
A
C
i
i
o
i
o
+
+
=
+
⊕
⊕
+
= )
(
)
( (4)
y
( )
i
i
C
B
A
S
C
B
A
S
⊕
⊕
=
⊕
⊕
=
(5)
Nótese que las funciones lógicas obtenidas al ser sim-
plificadas por métodos convencionales tienen el com-
portamiento del sumador completo buscado, lo cual
garantiza el correcto funcionamiento del circuito.
Ingeniería
27
V
V
V
V
Vol.
ol.
ol.
ol.
ol. 9 No
9 No
9 No
9 No
9 No.
..
.. 2
2
2
2
2
REVISTA CIENTÍFICA Y TECNOLÓGICA DE LA FACULTAD DE INGENIERÍA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS - PUBLICACIÓN ELECTRÓNICA
Figura 8. Diagrama de compuertas
del circuito sumador completo obtenido.
V. CONCLUSIÓN
Se describió el procedimiento experimental llevado
a cabo en la implementación de un circuito sumador
completo, diseñado por medio de estrategias
bioinspiradas sobre una FPGA XC4000 de Xilinx.
Se propuso una estrategia evolutiva para dicho
problema, tomando elementos de diversos experi-
mentos en evolución extrínseca reportados en la li-
teratura. Dada la diferencia insalvable existente en-
tre la evolución intrínseca y la extrínseca, muchas de
las características de complejos procesos de diseño
debieron ser optimizadas, algunas replanteadas y
otras omitidas, con el fin de minimizar los retardos
que implica la evolución intrínseca.
Uno de los puntos principales fue prescindir de la
utilización de cromosomas de longitud variable, y con
esto la variación en la geometría del circuito y el opera-
dor de mutación de geometría. El mecanismo de crear
celdas complejas con conexiones variables dejando al-
gunas conexiones entre celdas fijas, es una manera de
variar la conectividad e indirectamente la geometría del
circuito, dando buenos resultados, ya que se obtuvo una
gran diversidad de circuitos sumadores.
En cuanto a la manera de evitar circuitos
redundantes, se habilitaron matrices pequeñas que li-
mitan el número de compuertas a utilizar. Aunque esto
no garantiza la falta de redundancia de los circuitos, el
número de recursos empleados fueron reducidos. Para
trabajo futuro se implementarán funciones de penali-
zación o funciones de aptitud multiobjetivo como las
propuestas por Kalganova [10] que en resumidas cuen-
tas es un modo de penalización para los individuos
que comprometen más recursos.
A diferencia de los experimentos reportados por
Kalganova y Miller [10], [11], se puso a prueba la
capacidad de discriminación entre circuitos
secuenciales y netamente combinacionales, ya que
los elementos de almacenamiento no fueron
deshabilitados de las celdas. Sin embargo, los circui-
tos obtenidos resultaron combinacionales y todos los
flip-flops de las celdas se desactivaron de forma es-
pontánea al final de los nueve ensayos realizados.
Los tiempos de convergencia resultaron bastante
prometedores, ya que la generación promedio fue la
774, que comparada con los trabajos consultados
cuyo rango de convergencia oscila entre 1000 y 3000
generaciones dan cuenta de un buen rendimiento en
la convergencia.
REFERENCIAS BIBLIOGRÁFICAS
[1] J. MARTINEZ y S. ROJAS, Introducción a la informática evolutiva:
Un nuevo Enfoque para Resolver Problemas de Ingeniería, Santafé
de Bogotá: Universidad Nacional de Colombia., 1999, pp. 185.
[2] T. G. W. GORDON y P. J. BENTLEY, "On Evolvable Hardware,"
Soft Computing in Industrial Electronics, S. Ovaska and L.
Sztandera Eds. Physica-Verlag, Heidelberg 2002.
[3] X. YAO y T. HIGUCHI, "Promises and Challenges of Evolvable
Hardware," IEEE Trans. Systems, Man, and Cybernetics, Part
C: Applications and Reviews, 1999.
[4] J. M LUNA, C. DEVIA y A. BETANCOURT, "Divisor de Frecuen-
cias en Hardware Evolutivo," en: Revista Científica, No 5, Vol.
1, Agosto 2003, pp. 79-91.
[5] M. CERRALOZA, W. ANNICCHIARICO, Algoritmos de
optimización estructural basados en simulación genética. Cara-
cas : Universidad Central de Venezuela, 1996, pp. 163. (Colec-
ción Monografías ; no. 47)
[6] E. FALKENAUER, Genetic Algorithms and Engrouping Problems.
New York : John Wiley, 1998, pp. 220.
[7] M. GEN y R. CHENG, Genetic Algorithms and Engineering
Problems. New York : John Wiley, 1998, pp. 411.
[8] J. LUNA, C. DEVIA. Desarrollo de una Plataforma Experimental
en Hardware Evolutivo - DEEP. Bogotá DC, 2004, 154p. Tesis
(Pregrado en Ingeniería Electrónica): Universidad Distrital Fran-
cisco José de Caldas, Facultad de Ingeniería.
[9] J. LUNA, C. DEVIA. Diseño de una máquina de estados finitos
en hardware evolutivo. En: CONGRESO INTERNACIONAL DE
LA REGIÓN ANDINA. (2º : 2004 : Bogotá). Memorias del II Con-
greso Internacional de la Región Andina - ANDESCON 2004.
Bogotá : IEEE, 2004. 6p.
[10] T. KALGANOVA, J. MILLER. Evolving More Efficient Digital
Circuits By Allowing Circuit Layout Evolution and Multi-Objective
Fitness. The First NASA/DoD Workshop on Evolvable Hardware.
1999. http://citeseer.ist.psu.edu/kalganova99evolving.html
[11] J. F. MILLER, P.THOMSON, T. FOGARTY. Designing Electronic
Circuits Using Evolutionary Algorithms. Arithmetic Circuits: A
Case Study. Dept. of Computer Studies, Napier. Genetic
Algorithms and Evolution Strategy in Engineering and Computer
Science. 1997. http://citeseer.ist.psu.edu/miller97designing.html
[12] ATMAR, Wirt. Notes on the simulation of evolution. En:
Transactions on neural networks. Vol. 5, No. 1 (1994) p. 130-148.
José. M. Luna
Estudiante de Ingeniería Electrónica de la Universidad Distrital Fran-
cisco José de Caldas. Miembro del Grupo de Investigación LAMIC,
jmarcio_1@yahoo.com
Christian. J. Devia
Estudiante de Ingeniería Electrónica de la Universidad Distrital Fran-
cisco José de Caldas. Miembro del Grupo de Investigación LAMIC,
christiandevia@hotmail.com
Alvaro Betancourt Uscátegui
Ingeniero Electrónico, Universidad Distrital Especialista en Teleco-
municaciones Móviles, Universidad Distrital, Msc. Ciencias Finan-
cieras y de Sistemas, Universidad Central, Magister en Ingeniería,
Informatique Appliquée, Ecole Polytechnique Université de Montreal,
Canada, Profesor Facultad de Ingeniería, Universidad Distrital, Di-
rector del Grupo de Investigación LAMIC - U. Distrital.
abetancourt@udistrital.edu.co
La generación
promedio fue la
774, que
comparada con
otros trabajos cuyo
rango de
convergencia oscila
entre 1000 y 3000
generaciones dan
cuenta de un buen
rendimiento en la
convergencia.

Más contenido relacionado

Similar a Electrónica digital: diseño de un circuito sumador completo usando evolución intrínseca de hardware

5 Laboratorio 5 Grupo 5.pdf
5 Laboratorio 5 Grupo 5.pdf5 Laboratorio 5 Grupo 5.pdf
5 Laboratorio 5 Grupo 5.pdfNelvinCortes
 
Guia de aprendizaje circuitos
Guia de aprendizaje circuitosGuia de aprendizaje circuitos
Guia de aprendizaje circuitosAlexis Zapata
 
Electrónica: Introducción a la microelectrónica
Electrónica: Introducción a la microelectrónica Electrónica: Introducción a la microelectrónica
Electrónica: Introducción a la microelectrónica SANTIAGO PABLO ALBERTO
 
Sistema de medcions para transductores industriales
Sistema de medcions para transductores industrialesSistema de medcions para transductores industriales
Sistema de medcions para transductores industrialesmonse lara roman
 
Presentacionderobotica 090914234424-phpapp02
Presentacionderobotica 090914234424-phpapp02Presentacionderobotica 090914234424-phpapp02
Presentacionderobotica 090914234424-phpapp02IES JACARANDA
 
Curso de lab view seis horas
Curso de lab view seis horasCurso de lab view seis horas
Curso de lab view seis horasRaul Carrillo
 
Manual de prácticas arquitectura de computadoras
Manual de prácticas arquitectura de computadorasManual de prácticas arquitectura de computadoras
Manual de prácticas arquitectura de computadorasDianichiiz VaLdiivia
 
CAD PARA ELECTRÓNICA BASO EN PROTEUS.pdf
CAD PARA ELECTRÓNICA BASO EN PROTEUS.pdfCAD PARA ELECTRÓNICA BASO EN PROTEUS.pdf
CAD PARA ELECTRÓNICA BASO EN PROTEUS.pdfEdwin4321
 
Guia de electronica (3)
Guia de electronica (3)Guia de electronica (3)
Guia de electronica (3)jabejarano
 
Guia de electronica (3)
Guia de electronica (3)Guia de electronica (3)
Guia de electronica (3)YALIDYSR
 
Guia de electronica (3) (1)
Guia de electronica (3) (1)Guia de electronica (3) (1)
Guia de electronica (3) (1)yisepy blandon
 
SIALESA - Sistema de Alarma Escolar Automtizada
SIALESA - Sistema de Alarma Escolar AutomtizadaSIALESA - Sistema de Alarma Escolar Automtizada
SIALESA - Sistema de Alarma Escolar AutomtizadaElias Log
 
Atp, ATPDraw libro, alternative transientrs program
Atp, ATPDraw libro, alternative transientrs programAtp, ATPDraw libro, alternative transientrs program
Atp, ATPDraw libro, alternative transientrs programGilberto Mejía
 

Similar a Electrónica digital: diseño de un circuito sumador completo usando evolución intrínseca de hardware (20)

5 Laboratorio 5 Grupo 5.pdf
5 Laboratorio 5 Grupo 5.pdf5 Laboratorio 5 Grupo 5.pdf
5 Laboratorio 5 Grupo 5.pdf
 
Tarea 1.1
Tarea 1.1Tarea 1.1
Tarea 1.1
 
Guia de aprendizaje circuitos
Guia de aprendizaje circuitosGuia de aprendizaje circuitos
Guia de aprendizaje circuitos
 
Electrónica: Introducción a la microelectrónica
Electrónica: Introducción a la microelectrónica Electrónica: Introducción a la microelectrónica
Electrónica: Introducción a la microelectrónica
 
Compensador pid
Compensador pidCompensador pid
Compensador pid
 
Sistema de medcions para transductores industriales
Sistema de medcions para transductores industrialesSistema de medcions para transductores industriales
Sistema de medcions para transductores industriales
 
Presentacionderobotica 090914234424-phpapp02
Presentacionderobotica 090914234424-phpapp02Presentacionderobotica 090914234424-phpapp02
Presentacionderobotica 090914234424-phpapp02
 
Curso de lab view seis horas
Curso de lab view seis horasCurso de lab view seis horas
Curso de lab view seis horas
 
Manual de prácticas arquitectura de computadoras
Manual de prácticas arquitectura de computadorasManual de prácticas arquitectura de computadoras
Manual de prácticas arquitectura de computadoras
 
S3 g03
S3 g03S3 g03
S3 g03
 
CAD PARA ELECTRÓNICA BASO EN PROTEUS.pdf
CAD PARA ELECTRÓNICA BASO EN PROTEUS.pdfCAD PARA ELECTRÓNICA BASO EN PROTEUS.pdf
CAD PARA ELECTRÓNICA BASO EN PROTEUS.pdf
 
Guia de electronica (3)
Guia de electronica (3)Guia de electronica (3)
Guia de electronica (3)
 
Guia de electronica (3)
Guia de electronica (3)Guia de electronica (3)
Guia de electronica (3)
 
Guia de electronica
Guia de electronicaGuia de electronica
Guia de electronica
 
Guia de electronica (3)
Guia de electronica (3)Guia de electronica (3)
Guia de electronica (3)
 
Guia de electronica (3) (1)
Guia de electronica (3) (1)Guia de electronica (3) (1)
Guia de electronica (3) (1)
 
Curva de capacidad pushover
Curva de capacidad pushoverCurva de capacidad pushover
Curva de capacidad pushover
 
SIALESA - Sistema de Alarma Escolar Automtizada
SIALESA - Sistema de Alarma Escolar AutomtizadaSIALESA - Sistema de Alarma Escolar Automtizada
SIALESA - Sistema de Alarma Escolar Automtizada
 
Atp, ATPDraw libro, alternative transientrs program
Atp, ATPDraw libro, alternative transientrs programAtp, ATPDraw libro, alternative transientrs program
Atp, ATPDraw libro, alternative transientrs program
 
Inversores sqw
Inversores sqwInversores sqw
Inversores sqw
 

Más de SANTIAGO PABLO ALBERTO

Manual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzadaManual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzadaSANTIAGO PABLO ALBERTO
 
Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez SANTIAGO PABLO ALBERTO
 
Programación de microcontroladores PIC en C con Fabio Pereira
Programación de microcontroladores PIC en  C con Fabio PereiraProgramación de microcontroladores PIC en  C con Fabio Pereira
Programación de microcontroladores PIC en C con Fabio PereiraSANTIAGO PABLO ALBERTO
 
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...SANTIAGO PABLO ALBERTO
 
Programación de autómatas PLC OMRON CJ/CP1
Programación de  autómatas PLC OMRON CJ/CP1Programación de  autómatas PLC OMRON CJ/CP1
Programación de autómatas PLC OMRON CJ/CP1SANTIAGO PABLO ALBERTO
 
Manual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMARTManual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMARTSANTIAGO PABLO ALBERTO
 
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...SANTIAGO PABLO ALBERTO
 
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...SANTIAGO PABLO ALBERTO
 
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...SANTIAGO PABLO ALBERTO
 
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...SANTIAGO PABLO ALBERTO
 
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...SANTIAGO PABLO ALBERTO
 

Más de SANTIAGO PABLO ALBERTO (20)

secuencia electroneumática parte 1
secuencia electroneumática parte 1secuencia electroneumática parte 1
secuencia electroneumática parte 1
 
secuencia electroneumática parte 2
secuencia electroneumática parte 2secuencia electroneumática parte 2
secuencia electroneumática parte 2
 
Manual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzadaManual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzada
 
Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez
 
Programación de microcontroladores PIC en C con Fabio Pereira
Programación de microcontroladores PIC en  C con Fabio PereiraProgramación de microcontroladores PIC en  C con Fabio Pereira
Programación de microcontroladores PIC en C con Fabio Pereira
 
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
 
Arduino: Arduino de cero a experto
Arduino: Arduino de cero a expertoArduino: Arduino de cero a experto
Arduino: Arduino de cero a experto
 
Fisica I
Fisica IFisica I
Fisica I
 
Quimica.pdf
Quimica.pdfQuimica.pdf
Quimica.pdf
 
Manual básico PLC OMRON
Manual básico PLC OMRON Manual básico PLC OMRON
Manual básico PLC OMRON
 
Programación de autómatas PLC OMRON CJ/CP1
Programación de  autómatas PLC OMRON CJ/CP1Programación de  autómatas PLC OMRON CJ/CP1
Programación de autómatas PLC OMRON CJ/CP1
 
Manual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMARTManual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMART
 
Catálogo de PLC S7-200 SMART
Catálogo de PLC S7-200 SMART Catálogo de PLC S7-200 SMART
Catálogo de PLC S7-200 SMART
 
PLC: Automatismos industriales
PLC: Automatismos industrialesPLC: Automatismos industriales
PLC: Automatismos industriales
 
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
 
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...
 
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
 
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
 
PLC: Motor Dahlander
PLC: Motor DahlanderPLC: Motor Dahlander
PLC: Motor Dahlander
 
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...
 

Último

3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdfGustavoAdolfoDiaz3
 
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESCAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESJHONJAIROVENTURASAUC
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processbarom
 
portafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidenciasportafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidenciasIANMIKELMIRANDAGONZA
 
3er Informe Laboratorio Quimica General (2) (1).pdf
3er Informe Laboratorio Quimica General  (2) (1).pdf3er Informe Laboratorio Quimica General  (2) (1).pdf
3er Informe Laboratorio Quimica General (2) (1).pdfSantiagoRodriguez598818
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEduardoBriones22
 
sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstDavidRojas870673
 
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptRobertoCastao8
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALEdwinC23
 
ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................Juan293605
 
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfGUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfWILLIAMSTAYPELLOCCLL1
 
docsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbanadocsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbanaArnolVillalobos
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxjhorbycoralsanchez
 
Auditoría de Sistemas de Gestión
Auditoría    de   Sistemas     de GestiónAuditoría    de   Sistemas     de Gestión
Auditoría de Sistemas de GestiónYanet Caldas
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalaciónQualityAdviceService
 
Manual deresolucion de ecuaciones por fracciones parciales.pdf
Manual deresolucion de ecuaciones por fracciones parciales.pdfManual deresolucion de ecuaciones por fracciones parciales.pdf
Manual deresolucion de ecuaciones por fracciones parciales.pdfgonzalo195211
 
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfrefrielectriccarlyz
 
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbbTema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbbantoniolfdez2006
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptxNancyJulcasumaran
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologicaJUDITHYEMELINHUARIPA
 

Último (20)

3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
 
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESCAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 
portafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidenciasportafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidencias
 
3er Informe Laboratorio Quimica General (2) (1).pdf
3er Informe Laboratorio Quimica General  (2) (1).pdf3er Informe Laboratorio Quimica General  (2) (1).pdf
3er Informe Laboratorio Quimica General (2) (1).pdf
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
 
sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gst
 
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
 
ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................
 
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfGUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
 
docsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbanadocsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbana
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptx
 
Auditoría de Sistemas de Gestión
Auditoría    de   Sistemas     de GestiónAuditoría    de   Sistemas     de Gestión
Auditoría de Sistemas de Gestión
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalación
 
Manual deresolucion de ecuaciones por fracciones parciales.pdf
Manual deresolucion de ecuaciones por fracciones parciales.pdfManual deresolucion de ecuaciones por fracciones parciales.pdf
Manual deresolucion de ecuaciones por fracciones parciales.pdf
 
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
 
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbbTema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptx
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 

Electrónica digital: diseño de un circuito sumador completo usando evolución intrínseca de hardware

  • 1. Ingeniería 20 V V V V Vol. ol. ol. ol. ol. 9 No 9 No 9 No 9 No 9 No. .. .. 2 2 2 2 2 REVISTA CIENTÍFICA Y TECNOLÓGICA DE LA FACULTAD DE INGENIERÍA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS - PUBLICACIÓN ELECTRÓNICA José M. Luna1 Christian J. Devia2 Álvaro Betancourt U.3 1 Miembro Grupo de Investigación LAMIC, Universidad Distrital Francisco José de Caldas. 2 Miembro Grupo de Investigación LAMIC, Universidad Distrital Francisco José de Caldas. 3 Director Grupo de Investigación LAMIC, Universidad Distrital Francisco José de Caldas. C i e n c i a I n v e s t i g a c ión Academia D e s a r r o l l o Artículo recibido en Septiembre de 2004 Aceptado en Noviembre de 2004 RESUMEN Este artículo describe la utilización de estrategias bioinspiradas en el diseño de un circuito digital, que implementa un sumador completo con acarreo de entrada en un dispositivo lógico programable. Ade- más, se presenta el desarrollo de una plataforma ex- perimental en hardware evolutivo utilizada en la eje- cución del experimento. Palabras Clave: Algoritmos Genéticos, FPGA, Hardware Evolutivo, Sumador Completo. ABSTRACT This paper describes the use of bioinspired strategies in the design of a digital circuit, which implements a full adder with carry input on a programmable logic device, as well as presenting the development of an experimental evolvable hardware platform used in the experiment execution. Key Words: Evolvable Hardware, Full Adder, FPGA, Genetic Algorithms. I. INTRODUCCIÓN EL hardware evolutivo (Evolvable Hardware, EHW) consiste en la aplicación de las estrategias evolutivas de la naturaleza en la resolución de pro- blemas de diseño electrónico de alta complejidad, aprovechando las ventajas de autoorganización y adaptabilidad de los sistemas evolutivos computacionales [1]. Esta aproximación de diseño es mejor expresada como una vista en caja negra del circuito, donde lo realmente importante es la tarea que realiza y nó la manera de llevarla cabo [2]. El EHW se divide en extrínseco e intrínseco [3]. En el primer caso, el proceso evolutivo se ejecuta sobre un modelo simulado de una matriz de celdas evolutiva. Es decir, que un algoritmo evolutivo es ejecutado y la evaluación de aptitud de los individuos que con- forman la población se lleva a cabo en simulación, lo cual presenta ventajas en cuanto a velocidad de procesamiento de los algoritmos, generalidad y esta- bilidad de los circuitos obtenidos. Una vez converge la evolución, el mejor individuo es descargado en el dispositivo lógico programable implementando el circuito requerido. La evolución intrínseca se lleva a cabo directamen- te sobre el dispositivo, es decir, que durante la ejecu- ción de un algoritmo evolutivo, cada uno de los indi- viduos de la población es descargado en el dispositivo configurable para la evaluación de su aptitud. Este tipo de evolución presenta ventajas en cuanto a variables de diseño que son muy difíciles de manejar, como cambios de temperatura o radiaciones externas que afectan al circuito físicamente produciendo algunos niveles de entropía difíciles de superar por las técni- cas de modelado tradicional. En ese sentido, los cir- cuitos resultan muy robustos pero poco generales, ya que dichos circuitos se ajustan muy bien al dispositivo sobre el que se evolucionan, pero cabe la posibilidad de que su implementación sobre otro dispositivo di- ferente no se desempeñe de la misma manera. En este artículo producto de un trabajo de investi- gación y desarrollo, se evalúa el potencial del EHW en el diseño de circuitos digitales combinacionales me- diante la experimentación con un circuito sumador completo de un bit con acarreo de entrada. Con el fin de describir la metodología de experimentación, así como los ensayos realizados, el artículo se organiza de la siguiente manera: En la sección II se hace una descripción general de la plataforma experimental de- sarrollada y se exponen las principales características de los módulos de hardware y software implementados. En la sección III se presenta el expe- rimento de evolución del circuito sumador completo y se realizan comparaciones cualitativas con experi- mentos similares registrados en la literatura. Se expo- nen los resultados obtenidos y se ilustran estadísticas de los procesos evolutivos llevados a cabo. En la sec- ción IV se presentan las conclusiones. II. PLATAFORMA EXPERIMENTAL La plataforma experimental DEEP (del inglés Development of an Experimental Evolvable Hardware Platform) utilizada, se especializa en evolución intrín- seca de hardware utilizando algoritmos genéticos (AG), y se compone de dos módulos que operan de manera conjunta [4]. Dichos módulos comprenden a) el desa- rrollo de una biblioteca de instrumentos virtuales (VI, del inglés Virtual Instruments) para AG denominada VIGA (del inglés Virtual Instruments for Genetic Algorithms) y b) el diseño de una unidad estructural mínima configurable denominada celda evolutiva. A continuación, se describen los módulos enunciados. Diseño de un circuito sumador completo usando evolución intrínseca de hardware
  • 2. Ingeniería 21 V V V V Vol. ol. ol. ol. ol. 9 No 9 No 9 No 9 No 9 No. .. .. 2 2 2 2 2 REVISTA CIENTÍFICA Y TECNOLÓGICA DE LA FACULTAD DE INGENIERÍA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS - PUBLICACIÓN ELECTRÓNICA A. Biblioteca de Instrumentos Virtuales para Algoritmos Genéticos Cómo se mencionó anteriormente, para la ejecu- ción de los experimentos en evolución intrínseca de hardware, se implementó una biblioteca de opera- dores genéticos y evolutivos orientada al diseño y ejecución de AG denominada VIGA. Además, se consideró conveniente monitorear el desempeño de los AG de manera concomitante al proceso evoluti- vo, por lo que se escogió la herramienta de instru- mentación virtual Labview, que ofrece una interfaz gráfica de fácil operación para el diseñador, y ade- más permite realizar el seguimiento del desempeño de los algoritmos a través de gráficas de formas de onda e indicadores digitales, que se actualizan en pantalla mientras el ciclo evolutivo es llevado a cabo. Dicha biblioteca consta de un grupo de 31 VI que facilitan el proceso de diseño de un AG y la comunica- ción por puerto paralelo tipo D con un dispositivo lógi- coprogramable, que en este caso es una FPGA XC4000. La herramienta no solo está limitada a resolver ex- perimentos de evolución de hardware, sino que per- mite solucionar una variedad de problemas clásicos de software, entre los cuales se pueden mencionar problemas de optimización combinatorios (combinatorial optimization problems) como el problema del agente viajero (TSP del inglés Traveling Salesman Problem), problemas de estructuras de árbol como el Estas celdas interconectadas, forman un arreglo normalmente de tipo rectangular como el que se ilus- tra en la Fig. 2, que se conoce como Matriz de Celdas Evolutiva [4] - [9]. De manera previa a la ejecución de cada experimento las conexiones entre cada celda son configuradas por el usuario, de tal forma, que a diferencia de los experimentos planteados por Kalganova y Miller [10] la geometría del circuito per- manece aparentemente constante. A esta invariancia en la disposición geométrica se le conoce como dis- posición homogénea del circuito. Se decidió no variar la geometría del circuito dada la complejidad de la celda evolutiva diseñada, pues visualizando las marcadas diferencias entre la celda propuesta por Miller [11] en algunos experimentos ejecutados con evolución extrínseca, y la nuestra, se tiene que en dichos experimentos, cada celda sola- mente ejecuta una operación lógica combinacional a la vez, como una compuerta AND, OR, NOT, XOR, o un multiplexor de dos entradas. Si se compara este funcionamiento con el de la celda evolutiva propuesta en el presente artículo, se tiene que en este caso, no solo se involucra la con- ducta de una compuerta en cada celda, sino de múl- tiples compuertas funcionando de manera conjunta en el mismo espacio, es decir, el equivalente a tener más de una celda de las propuestas por Miller interconectadas en la matriz. Además, la implemen- tación de multiplexores se lleva a cabo de manera Figura 1. Celda Evolutiva implementada en la evolución del circuito sumador completo de un bit con acarreo de entrada. Nótese el elemento de almacenamiento (flip-flop) en la salida. implícita con cada uno de los multiplexores conteni- dos en el modelo de celda propuesto en la Fig. 1. Esto resulta en un comportamiento semejante a la disposición heterogénea del circuito (que en oposición a la disposición homogénea, implica la variación ocasio- nal de la geometría del mismo en la evolución). No obstante, es necesario aclarar que dicha variación no se lleva a cabo, ni se considera en el cromosoma de control descargado a la FPGA durante el proceso evolutivo, por lo cual, es errado afirmar que en este ensayo la geometría cambie, puesto que esto tiene otras implicaciones de fondo tales como cromosomas de longitud variable, cambios fortuitos en la distri- bución de filas y columnas de la matriz, y la modifi- cación en el número de recursos utilizados en el cir- cuito, que como puede notarse, no se toman en con- sideración en el presente experimento. Si se compara este funcionamiento con el de la celda evolutiva propuesta en el presente artículo, se tiene que en este caso, no solo se involucra la conducta de una compuerta en cada celda, sino de múltiples compuertas funcionando de manera conjunta en el mismo espacio. MST (del inglés Minimun Spanning Tree Problem), y el problema de la Mochila o del Furgón (Knapsack Problem) entre otros [1], [5]-[7]. Asimismo, permite resolver problemas de optimización de disponi- bilidad de dispositivos (Reliability Optimization Problem) y problemas de se- cuencias de máquinas (Flow-Shop Sequencing Problem). Fue necesario realizar una revisión de los operadores genéticos y evolutivos más uti- lizados y reportados en la literatura. De es- tos operadores se seleccionaron los que se consideraron más relevantes y se modelaron los algoritmos de tal manera que se aprovecharan las faci- lidades gráficas y operativas de Labview® en la comu- nicación con la FPGA durante el proceso evolutivo. B. Celda Evolutiva Como antes se había mencionado, es la unidad estructural mínima configurable, es decir, el mínimo bloque funcional en la construcción de un circuito electrónico digital durante el proceso evolutivo. La celda propuesta está conformada por tres unidades lógicas, un flip-flop tipo D como elemento de alma- cenamiento, y un conjunto de multiplexores que de- terminan la conectividad del circuito obtenido en dicha celda, como se ilustra en Fig. 1 [8].
  • 3. Ingeniería 22 V V V V Vol. ol. ol. ol. ol. 9 No 9 No 9 No 9 No 9 No. .. .. 2 2 2 2 2 REVISTA CIENTÍFICA Y TECNOLÓGICA DE LA FACULTAD DE INGENIERÍA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS - PUBLICACIÓN ELECTRÓNICA Figura 3. Circuito sumador completo convencional. Es un circuito puramente combinacional. Es habitual encontrar que los experimentos de evolución intrínseca de hardware sean ser de mayor duración que los de evolución extrínseca. Esto se explica, porque los procesos de EHW intrínseco en su mayoría se suelen ejecutar sobre FPGA que ad- miten configuración parcial como la XC6200 o la Virtex de Xilinx. Como suele trabajarse con las celdas lógicas que dichos dispositivos tienen de fábrica, y estas celdas son de muy bajo nivel, la implementación de una compuerta con estos recursos compromete un tiempo relativamente extenso en cada ciclo del AG. Figura 2. Esquema general de la matriz de celdas evolutiva en un arreglo de 2x2. Nótese la memoria RAM en la cual se almacenan los individuos de control. Miller [11] escribe refiriéndose a las FPGA XC6200 y Virtex: "...Estos dispositivos son conocidos como FPGA granulares finas, lo cual, significa que cada uno está compuesto por un arreglo grande (típica- mente cuadrado) de celdas lógicas muy simples. Esto, en contraposición con las mejores conocidas Xilinx nas en la matriz, es decir, que se ejecutan dos tipos de mutaciones independientes con un incremento en los lapsos entre generaciones. Además, se evitan también algunos algoritmos de reparación de conexiones in- válidas que regularmente se obtienen a través de la supresión o agregación de filas o columnas, que im- primen más demora a la convergencia del proceso. Otro factor de suma importancia, es el sesgo que normalmente se le da a los procesos evolutivos, es decir, que teniendo un conocimiento previo del pro- blema, es posible ayudar al AG en el proceso de optimización involucrando algo de dicho conocimien- to en la solución. Es así como Gordon, Kalganova y Miller, [2], [10], [11], aseguran de que la solución sea de tipo combinacional evitando realimentaciones en- tre las salidas y las entradas de celdas ya interconectadas. Es decir, que la matriz solo permite topologías de circuitos de tipo unidireccional en este caso, por lo cual, es necesario un algoritmo de repara- ción después de la ejecución de un operador de cruce, que adiciona tiempo al proceso de convergencia. Esta característica unidireccional en los circuitos evolucionados es ventajosa, puesto que se evitan posibles inconvenientes a partir de las realimentaciones, que en ocasiones forzan a las sali- das de los dispositivos de la celda a entregar una co- rriente grande ocasionando un posible daño físico al dispositivo lógico programable. Además se garanti- za el comportamiento combinacional del sumador, partiendo del diseño convencional de un sumador completo, como el que se ilustra en la Fig. 3. En la presente investigación y experimentación, se evitan las conexiones dañinas mediante la realimentación de la salida a la entrada de la celda, em- pleando los multiplexores mostrados en la Fig. 1, ade- más, las conexiones fijas entre celdas contribuyen tam- bién a evitar realimentaciones indeseadas en la matriz. Los sesgos implantados en la evolución operan bajo una filosofía diferente a las propuestas por Gordon y Kalganova [2], [10], que consiste en que las conexiones estáticas entre celdas impuestas en la etapa de acondicionamiento (ver Fig. 4), garanticen XC3000 y XC4000, las cuales, son mucho más grandes, y en consecuencia, poseen celdas más complejas (que son conocidas como bloques lógicos configurables o CLB)...". De donde se concluye que los experimentos de este tipo se prefieren sobre FPGA granulares finas ya que las FPGA XC3000 y XC4000 son muy densas en componentes de celdas y además no permiten configuración parcial. La propuesta de hacer un mapeo de nues- tra propia celda lógica sobre la FPGA XC4000 contrarresta el efecto de tener que utilizar CLB de fábrica, y permite diseñar una FPGA con celdas apropiadas para EHW in- trínseco, reduciendo los tiempos de configu- ración de estos dispositivos. Una de las razones por la que se evitó al máximo la variación en la geometría del circuito es su incidencia sobre la duración de cada generación en el AG, pues- to que se agrega un operador genético más en cada iteración. Con esto, se hace innecesaria la implemen- tación de algunos recursos evolutivos propuestos en los experimentos de Kalganova [10], como el opera- dor de Mutación de Geometría que existe además del operador de Mutación del Circuito [10], y que consiste en el cambio fortuito del número de filas o de colum-
  • 4. Ingeniería 23 V V V V Vol. ol. ol. ol. ol. 9 No 9 No 9 No 9 No 9 No. .. .. 2 2 2 2 2 REVISTA CIENTÍFICA Y TECNOLÓGICA DE LA FACULTAD DE INGENIERÍA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS - PUBLICACIÓN ELECTRÓNICA Figura 4. Esquema general del ciclo evolutivo. Ilustra el funcionamiento conjunto de los módulos software y hardware de la plataforma DEEP [9]. la factibilidad del circuito sumador, con la presencia de un número límite de compuertas en la matriz. Dicho número debe satisfacer por lo menos uno de los muchos circuitos conocidos diseñados por mé- todos convencionales. Vale recalcar que a diferencia de Kalganova y Miller [10], [11], no se desactivaron los elementos de almacenamiento (flip-flops) en las celdas, ni se inhibieron las conexiones de realimentación, puesto que como se puede observar en el modelo de la celda (ver Fig. 1) no hay peligro de daño en el circuito, y además (aunque en los ensa- yos realizados no se presentó), tampoco se descartó un posible comportamiento secuencial que fuese de utilidad en el circuito a obtener. C. Operación Conjunta de Módulos La operación conjunta de los módulos de hardware y software descritos y justificados en los párrafos an- teriores, se explica mediante lo que hemos denomi- nado el ciclo evolutivo [9], el cual, se lleva a cabo duran- te cada experimento y se resume en el esquema ilus- trado de la Fig. 4. Antes de la ejecución de un experimento, es nece- sario establecer las condiciones correctas para la evo- lución. Dichas fases preliminares, están relacionadas con la selección de los parámetros apropiados del AG, el número de celdas evolutivas y sus respectivas conexiones. El primer paso, es la selección del número de cel- das a utilizar. Dicha cantidad se elige en proporción a la complejidad del experimento. Es posible, que un número excedente de celdas aumente el espacio solu- ción, lo que en algunos casos resulta en muchas con- figuraciones que implementan el mismo circuito. Como se había mencionado antes, las conexiones entre celdas, son planeadas de manera intuitiva o partiendo de un conocimiento previo del problema por parte del experimentador, y se espera, que dicho conocimiento ayude a la obtención de la solución. Posteriormente, se escoge la estrategia evolutiva apropiada. Al utilizar VIGA se pueden personalizar los pasos básicos de un AG, seleccionando los ope- radores genéticos y evolutivos necesarios. Asimismo, se configuran los parámetros del AG, como las pro- babilidades de cruce, de mutación, el método de se- lección y demás propiedades de la estrategia evoluti- va seleccionada. Una vez se finaliza con esta etapa inicial de acon- dicionamiento, se procede a ejecutar el AG. Durante la evaluación de aptitud de los cromosomas se debe realizar la descarga de cada individuo en la FPGA. Previo a esta descarga se hace la conversión del genotipo a palabras de control o configuración de la matriz de celdas evolutiva. Posteriormente, se evalúa la salida de cada pala- bra de control en respuesta a una excitación del cir- cuito por entradas digitales, provenientes de una fuen- te externa que puede ser un circuito generador de estímulos, o señales enviadas a través del puerto pa- ralelo. Estas salidas son confrontadas con la tarea que el circuito debe realizar, y de acuerdo a la defini- ción de la función aptitud que el diseñador propon- ga, se procede a ejecutar los operadores de selec- ción, cruce y mutación inherentes al AG. El ciclo evolutivo se repite hasta que se cumpla la condición de finalización que bien puede ser un nú- mero de generaciones determinadas, un punto de error mínimo o un máximo de una función, entre otras opciones que el diseñador considere. III. EVOLUCIÓN DE UN SUMADOR COMPLETO A continuación se describe el experimento de di- seño de un circuito sumador completo con acarreo de entrada, utilizando EHW intrínseco. Este circui- to es de tipo combinacional, es decir, que es un sis- tema sin memoria, en el cual, a cada combinación de datos binarios de entrada, le corresponde una salida que es independiente del estado anterior como en el caso de la Fig. 3. La idea básica del experimento es darle libertad a la evolución para converger a una solución combinacional o secuencial indistintamente. Un cir- cuito secuencial, es un sistema con memoria donde cada salida es producto de las combinaciones de da- tos a la entrada y del estado inmediatamente anterior. La configuración de la matriz de celdas evolutiva utilizada y sus conexiones fijas se ilustran en la Fig. 5. Obsérvese de la Fig. 5, el lugar donde se encuen- tran conectados los operandos de entrada A y B , el acarreo de entrada in C , la suma out S y el acarreo de salida out C . A. Codificación Contrastando con los experimentos similares eje- cutados por Kalganova y Miller [10], [11], la codifi- cación implementada en este problema de optimización condicionada es de tipo binaria, la cual, La idea básica del experimento es darle libertad a la evolución para converger a una solución combinacional o secuencial indistintamente.
  • 5. Ingeniería 24 V V V V Vol. ol. ol. ol. ol. 9 No 9 No 9 No 9 No 9 No. .. .. 2 2 2 2 2 REVISTA CIENTÍFICA Y TECNOLÓGICA DE LA FACULTAD DE INGENIERÍA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS - PUBLICACIÓN ELECTRÓNICA Figura 6. Algoritmo genético implementado en Labview    , utilizando la biblioteca VIGA. es muy común en el AG simple. Se decidió trabajar de esta forma, ya que las complicaciones que surgen de imponer restricciones de tipo combinacional se simplifican en alguna medida. Figura 5. Matriz de celdas evolutiva utilizada en el experimento de evolución del circuito sumador completo con acarreo de entrada. Obsérvense los enlaces fijos entre celdas. Entre las complicaciones a las que se ha hecho mención se tienen: impedir realimentaciones entre compuertas, haciendo que el circuito opere de ma- nera unidireccional, variar la geometría del circuito de manera fortuita durante cada generación y utili- zar una convención de codificación, en la cual, se emplean tripletas de números enteros, de los cuales dos números determinan las dos celdas conectadas a las entradas de la celda bajo referencia y el tercer término determina la operación lógica [10], [11]. En conclusión, cada celda evolutiva es controlada por una palabra de 16 bits, y al haberse utilizado un arreglo de 2x3 como se ilustra en la Fig. 5, la palabra de control (cromosoma) posee una longitud de 96 bits, que difiere mucho de las longitudes de cromosomas utilizadas por Gordon [2] con un valor regular de 604 genes para un arreglo de celda de 2x2. Las longitudes cortas resultan ortodoxas si se tiene en cuenta que el teorema del esquema establece que "...los esquemas entre menor longitud tengan, me- nor orden y mayor aptitud, incrementan el número de sus instancias de manera exponencial en el trans- curso de las generaciones" [9], de donde se tiene que si la longitud de un cromosoma es corta, cabe la posibilidad de que la longitud del esquema también sea corta, lo cual, favorece el proceso de selección de esquemas útiles durante la evolución. B. Algoritmo Genético La Fig. 6 ilustra el AG diseñado utilizando la bi- blioteca VIGA. Nótese la facilidad gráfica que pres- ta Labview en el diseño de este tipo de algoritmos, y la simplicidad del mismo en el proceso de conexión de las variables y elementos que lo componen. De la misma manera debe tenerse en cuenta que el manejo de puertos resulta práctico utilizando los VI in port y out port del menú de funciones de Labview, por lo que el diseño de las funciones de aptitud para cada AG es relativamente sencillo. Describiendo el AG y la estrategia evolutiva adop- tada se tiene en la Fig. 6 de izquierda a derecha un primer VI denominado Generación de Cromosomas Ente- ros, que construye una población aleatoria de indivi- duos codificados en arreglos binarios. Esta primera generación de individuos ingresa al ciclo For repre- sentado por el rectángulo que contiene el resto de VI involucrados en el AG. Posteriormente, la población ingresa al VI Fitness EHW, que evalúa la aptitud de cada uno de los individuos. Su operación interna se describe en párrafos posteriores. El VI siguiente se conoce como Ordenar Arreglo y pertenece al grupo de VI No Operadores, puesto que su tarea no representa un operador genético o evolutivo como tal, sin em- bargo, en los AG es muy útil ya que organiza la pobla- ción ya sea en orden creciente o decreciente de apti- tud. Para este caso particular, los individuos son orga- nizados en orden decreciente de aptitud. Una vez ejecutado el ordenamiento, se lleva a cabo un proceso de escalamiento dinámico denominado por los autores como Escalamiento Exponencial Dinámico. El término dinámico se debe a que varía la presión selecti- va en cada generación dependiendo de la diferencia en- tre las aptitudes del mejor y el peor individuo, de tal forma que entre mayor sea dicha diferencia, mayor pre- sión selectiva se imprime al proceso en dicha genera- ción. Está basado en el Escalamiento Lineal Dinámico pro- puesto por Grefenstette y Baker señalado en[7]. Nues- tra propuesta es agregar un exponente α en (1): t k k b A a A + × = ' (1) resultando (2): ( )α t k k b A a A + × = ' (2) De esta forma se imprime un grado de no linealidad a la fun- ción de escalamiento, y se brin- da un grado de libertad adicio- nal al mismo. Entre varias metodologías de escalamiento implementadas en el experimen- to, las de carácter dinámico fue- ron las que mostraron mejor de- sempeño en cuanto a los tiem- pos de respuesta, y un marcado crecimiento de la función de evolución de aptitud.
  • 6. Ingeniería 25 V V V V Vol. ol. ol. ol. ol. 9 No 9 No 9 No 9 No 9 No. .. .. 2 2 2 2 2 REVISTA CIENTÍFICA Y TECNOLÓGICA DE LA FACULTAD DE INGENIERÍA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS - PUBLICACIÓN ELECTRÓNICA Posteriormente, dicha población con sus funcio- nes de aptitud escaladas, se somete a una selección de tipo estocástica conocida como Muestreo Universal Estocástico propuesto por Baker que se describe en [7], y que consiste en asignar un número de copias a cada individuo de manera proporcional a su proba- bilidad de selección, pero imponiendo como límite superior su valor esperado de copias, evitando así la proliferación de "supercromosomas" y evadiendo el posible estancamiento del AG. Una vez realizada la selección estocástica se realiza el cruce c P de individuos, con una probabilidad de cruce determinada por el usuario. El VI utilizado se denomi- na Cruce por Puntos de Corte Aleatorio. Este VI selecciona los padres y realiza el intercambio de genes entre ellos aplicando un número determinado de puntos de corte según el usuario especifique. Los lugares de los puntos de corte se asignan de manera aleatoria, de tal forma, que se obtiene mayor diversidad de soluciones, que si se establecen de manera determinista, contribuyendo a una mejor exploración del espacio solución. En este caso particular, para imprimir una mayor dinámica en las variaciones de la población se ha implementado una selección de tipo determinista que complementa la selección estocástica antes descrita, y se conoce como Selección por Reemplazo Generacional. Consiste en reemplazar a los peores padres de la po- blación por los hijos obtenidos del cruce. Es decir, que se implementan dos tipos de selección en el AG, una de tipo estocástico y otra de tipo determinista. Por último, se ejecuta el VI de Mutación de Cromosomas Enteros, que consiste en que de acuerdo a una proba- bilidad de mutación m P determinada por el usuario (que suele ser pequeña), un número aleatorio de genes se escoge entre la población y se modifica su valor. Los individuos mutados también son reemplazados. Por último, la nueva población de individuos pasa al siguiente ciclo a través de un registro de corrimien- to, representado por una flecha que apunta hacia arri- ba en el borde derecho del ciclo For. De esta manera, se corren las iteraciones hasta cumplir con la condi- ción de finalización , que en este caso obedece al nú- mero de generaciones impuestas por el usuario. IV. RESULTADOS EXPERIMENTALES A continuación se ilustran los principales resulta- dos experimentales obtenidos de 9 repeticiones del experimento de diseño propuesto. A. Parámetros Básicos del Algoritmo Genético Los valores de los parámetros del AG se ilustran a continuación: • Población de individuos = 10. • Probabilidad de cruce = 0.3%. • Puntos de corte = 10. • Probabilidad de mutación = 10%. Los valores dados son inusuales, ya que los por- centajes son muy bajos para el común de los experi- mentos en EHW. Esto ocurre, porque la secuencia de operadores genéticos y evolutivos, y la manera en que se están ejecutando facilitan mucho el buen de- sempeño del algoritmo, a tal punto que el operador fundamental es la mutación [4], [12]. El cruce es uti- lizado para evitar que la mutación induzca demasia- do ruido en el proceso evolutivo. B. Función de Aptitud A continuación se describe la operación que cum- ple el VI Fitness EHW en el AG descrito por la Fig. 6. La aptitud de los individuos es evaluada de modo proporcional al número de aciertos en la salida del sumador al ser excitado por una secuencia aleatoria de los operandos A, B y el acarreo de entrada in C . Se compara dicha salida con el valor correcto de la suma que se encuentra previamente tabulado. La función de aptitud se define según la ecuación (3). ∑ = = 7 0 ) ( i i N x A (3) Donde: ≡ ) (x A Es la aptitud del individuo x. ≡ N Es el número de aciertos en la salida del circuito determinado por el cromosoma x. ≡ i Es el índice de los datos aleatorios de entrada que excitan al circuito. Para la evaluación de aptitud del AG, se utilizó el escalamiento exponencial dinámico descrito por la ecuación (2) con α =2, α =1 y b =0. Los datos de entrada se alimentan de manera alea- toria al circuito a través del puerto paralelo tipo D, de esta forma se evita la posibilidad de evolucionar un circuito que solamente responda a una secuencia de entrada determinada. Es decir, que con esto se trata de garantizar que con cualquier secuencia de datos posible el circuito funcionará de manera correcta. C. Experimento Las entradas y salidas del circuito sumador com- pleto a evolucionar, se ilustran en la Tabla 1. Es un circuito con tres entradas, dos salidas que opera de modo combinacional, como puede dedu- cirse de su función de entrada salida. Tabla 1. Tabla de verdad del circuito sumador completo En este caso particular, para imprimir una mayor dinámica en las variaciones de la población se ha implementado una selección de tipo determinista que complementa la selección estocástica antes descrita, y se conoce como Selección por Reemplazo Generacional. El experimento se corrió nueve veces bajo las mis- mas condiciones. En la Fig. 7, se ilustra una de las
  • 7. Ingeniería 26 V V V V Vol. ol. ol. ol. ol. 9 No 9 No 9 No 9 No 9 No. .. .. 2 2 2 2 2 REVISTA CIENTÍFICA Y TECNOLÓGICA DE LA FACULTAD DE INGENIERÍA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS - PUBLICACIÓN ELECTRÓNICA gráficas de la función evolución de aptitud del mejor, el peor y la media aritmética de toda la población. Nótese la convergencia del experimento en la genera- ción 832, donde la aptitud máxima sin escalar es ocho, puesto que son ocho sumas las que deben hacerse de manera correcta como se ilustra en la Tabla 1. Figura 7. Función evolución de aptitud del mejor y el peor individuos a lo largo de la evolución. También se ilustra la aptitud promedio de la El cromosoma del mejor individuo del proceso evolutivo en codificación hexadecimal es: D536ABCF973F77031D6F6B9E. En la Tabla 2 se ilustra la media aritmética de la aptitud de los mejores individuos en la generación 774, que corresponde a la media aritmética de las generaciones de convergencia de cada experimento. Cabe resaltar que en la generación indicada, la dis- persión de las aptitudes de los individuos es muy pequeña, lo cual, da cuenta de la capacidad de con- vergencia del AG en corto tiempo, ya que en prome- dio una corrida de 10000 generaciones tarda cerca de 31,64 segundos, es decir, que cada generación tar- Tabla 2. Datos estadísticos de los mejores individuos y de los tiempos de convergencia da en correr aproximadamente 3,164 ms. Al cabo de 774 generaciones que toman cerca de 2,35 s, es posi- ble afirmar que la evolución intrínseca de hardware en el problema planteado, trabaja en tiempos que dependiendo de la aplicación pueden llegar a ser bastante apropiados. No obstante, observando la dispersión existente en las generaciones de convergencia (358,75), es posible afirmar que el tiempo medio de convergen- cia no establece un intervalo de confianza lo sufi- cientemente pequeño como para limitar el número de generaciones a un rango pequeño y confiable. Aunque 832 parezca una cifra muy grande, debe notarse que este experimento muestra un espacio solución relativamente reducido, en el cual, no se trata de hallar una salida determinada para una señal de entrada, sino que coincidan ocho salidas para ocho entradas diferentes aleatorias, y que el mismo circui- to cumpla con dichas relaciones entrada-salida sin errores. Además debe tenerse en cuenta que estas 832 generaciones tardaron 2.63 s en correr, que para algunos propósitos específicos es poco tiempo. Debe tenerse presente que los experimentos reportados por Gordon, Kalganova y Miller [2], [10], [11] en evolución extrínseca tardaron entre 1000 y 3000 ge- neraciones promedio en converger. Vale aclarar que sin tener en cuenta la media del número de generaciones de convergencia, todos los experimentos convergieron, de modo que todos los individuos más aptos de cada ensayo presentaban una aptitud de ocho con desviación estándar cero. Es muy difícil establecer parámetros cuantitativos entre evolución intrínseca y extrínseca como se ha podido observar en el presente documento ya que cada tipo de evolución tiene sus ventajas y desventa- jas. Por ejemplo, según Gordon [2], al evolucionar un circuito sumador completo de dos bits con aca- rreo de entrada, el experimento de evolución extrín- seca tardó cerca de cuatro minutos en converger con arreglos de celdas lógicas de 3x3, 3x4 y 4x4 utilizan- do un microprocesador celeron de 433 Mhz. El mis- mo experimento fue ejecutado en evolución extrín- seca sobre una FPGA Virtex, evitando utilizar codi- ficación binaria y tardó cerca de 3 horas con 45 mi- nutos en un microprocesador celeron de 433 Mhz. Teniendo en cuenta que el salto tecnológico es bastante grande entre el microprocesador utilizado por Gordon en sus experimentos y el microprocesa- dor empleado por los autores de la presente publica- ción en la evolución del sumador completo de un bit con acarreo de entrada, el cual, es un atlon de 1.2 Ghz, que casi triplica la velocidad de procesamiento, no da lugar a comparaciones. Además el sumador completo descrito por Gordon es de palabras de dos bits de entrada, un tanto más complejo que el sumador presentado en este documento. En la Fig. 8, se esquematiza un diagrama de com- puertas del circuito evolucionado. Ilustrando las fun- ciones de salida se tiene que: [ ] B C A C AB C C B A B A C i i o i o + + = + ⊕ ⊕ + = ) ( ) ( (4) y ( ) i i C B A S C B A S ⊕ ⊕ = ⊕ ⊕ = (5) Nótese que las funciones lógicas obtenidas al ser sim- plificadas por métodos convencionales tienen el com- portamiento del sumador completo buscado, lo cual garantiza el correcto funcionamiento del circuito.
  • 8. Ingeniería 27 V V V V Vol. ol. ol. ol. ol. 9 No 9 No 9 No 9 No 9 No. .. .. 2 2 2 2 2 REVISTA CIENTÍFICA Y TECNOLÓGICA DE LA FACULTAD DE INGENIERÍA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS - PUBLICACIÓN ELECTRÓNICA Figura 8. Diagrama de compuertas del circuito sumador completo obtenido. V. CONCLUSIÓN Se describió el procedimiento experimental llevado a cabo en la implementación de un circuito sumador completo, diseñado por medio de estrategias bioinspiradas sobre una FPGA XC4000 de Xilinx. Se propuso una estrategia evolutiva para dicho problema, tomando elementos de diversos experi- mentos en evolución extrínseca reportados en la li- teratura. Dada la diferencia insalvable existente en- tre la evolución intrínseca y la extrínseca, muchas de las características de complejos procesos de diseño debieron ser optimizadas, algunas replanteadas y otras omitidas, con el fin de minimizar los retardos que implica la evolución intrínseca. Uno de los puntos principales fue prescindir de la utilización de cromosomas de longitud variable, y con esto la variación en la geometría del circuito y el opera- dor de mutación de geometría. El mecanismo de crear celdas complejas con conexiones variables dejando al- gunas conexiones entre celdas fijas, es una manera de variar la conectividad e indirectamente la geometría del circuito, dando buenos resultados, ya que se obtuvo una gran diversidad de circuitos sumadores. En cuanto a la manera de evitar circuitos redundantes, se habilitaron matrices pequeñas que li- mitan el número de compuertas a utilizar. Aunque esto no garantiza la falta de redundancia de los circuitos, el número de recursos empleados fueron reducidos. Para trabajo futuro se implementarán funciones de penali- zación o funciones de aptitud multiobjetivo como las propuestas por Kalganova [10] que en resumidas cuen- tas es un modo de penalización para los individuos que comprometen más recursos. A diferencia de los experimentos reportados por Kalganova y Miller [10], [11], se puso a prueba la capacidad de discriminación entre circuitos secuenciales y netamente combinacionales, ya que los elementos de almacenamiento no fueron deshabilitados de las celdas. Sin embargo, los circui- tos obtenidos resultaron combinacionales y todos los flip-flops de las celdas se desactivaron de forma es- pontánea al final de los nueve ensayos realizados. Los tiempos de convergencia resultaron bastante prometedores, ya que la generación promedio fue la 774, que comparada con los trabajos consultados cuyo rango de convergencia oscila entre 1000 y 3000 generaciones dan cuenta de un buen rendimiento en la convergencia. REFERENCIAS BIBLIOGRÁFICAS [1] J. MARTINEZ y S. ROJAS, Introducción a la informática evolutiva: Un nuevo Enfoque para Resolver Problemas de Ingeniería, Santafé de Bogotá: Universidad Nacional de Colombia., 1999, pp. 185. [2] T. G. W. GORDON y P. J. BENTLEY, "On Evolvable Hardware," Soft Computing in Industrial Electronics, S. Ovaska and L. Sztandera Eds. Physica-Verlag, Heidelberg 2002. [3] X. YAO y T. HIGUCHI, "Promises and Challenges of Evolvable Hardware," IEEE Trans. Systems, Man, and Cybernetics, Part C: Applications and Reviews, 1999. [4] J. M LUNA, C. DEVIA y A. BETANCOURT, "Divisor de Frecuen- cias en Hardware Evolutivo," en: Revista Científica, No 5, Vol. 1, Agosto 2003, pp. 79-91. [5] M. CERRALOZA, W. ANNICCHIARICO, Algoritmos de optimización estructural basados en simulación genética. Cara- cas : Universidad Central de Venezuela, 1996, pp. 163. (Colec- ción Monografías ; no. 47) [6] E. FALKENAUER, Genetic Algorithms and Engrouping Problems. New York : John Wiley, 1998, pp. 220. [7] M. GEN y R. CHENG, Genetic Algorithms and Engineering Problems. New York : John Wiley, 1998, pp. 411. [8] J. LUNA, C. DEVIA. Desarrollo de una Plataforma Experimental en Hardware Evolutivo - DEEP. Bogotá DC, 2004, 154p. Tesis (Pregrado en Ingeniería Electrónica): Universidad Distrital Fran- cisco José de Caldas, Facultad de Ingeniería. [9] J. LUNA, C. DEVIA. Diseño de una máquina de estados finitos en hardware evolutivo. En: CONGRESO INTERNACIONAL DE LA REGIÓN ANDINA. (2º : 2004 : Bogotá). Memorias del II Con- greso Internacional de la Región Andina - ANDESCON 2004. Bogotá : IEEE, 2004. 6p. [10] T. KALGANOVA, J. MILLER. Evolving More Efficient Digital Circuits By Allowing Circuit Layout Evolution and Multi-Objective Fitness. The First NASA/DoD Workshop on Evolvable Hardware. 1999. http://citeseer.ist.psu.edu/kalganova99evolving.html [11] J. F. MILLER, P.THOMSON, T. FOGARTY. Designing Electronic Circuits Using Evolutionary Algorithms. Arithmetic Circuits: A Case Study. Dept. of Computer Studies, Napier. Genetic Algorithms and Evolution Strategy in Engineering and Computer Science. 1997. http://citeseer.ist.psu.edu/miller97designing.html [12] ATMAR, Wirt. Notes on the simulation of evolution. En: Transactions on neural networks. Vol. 5, No. 1 (1994) p. 130-148. José. M. Luna Estudiante de Ingeniería Electrónica de la Universidad Distrital Fran- cisco José de Caldas. Miembro del Grupo de Investigación LAMIC, jmarcio_1@yahoo.com Christian. J. Devia Estudiante de Ingeniería Electrónica de la Universidad Distrital Fran- cisco José de Caldas. Miembro del Grupo de Investigación LAMIC, christiandevia@hotmail.com Alvaro Betancourt Uscátegui Ingeniero Electrónico, Universidad Distrital Especialista en Teleco- municaciones Móviles, Universidad Distrital, Msc. Ciencias Finan- cieras y de Sistemas, Universidad Central, Magister en Ingeniería, Informatique Appliquée, Ecole Polytechnique Université de Montreal, Canada, Profesor Facultad de Ingeniería, Universidad Distrital, Di- rector del Grupo de Investigación LAMIC - U. Distrital. abetancourt@udistrital.edu.co La generación promedio fue la 774, que comparada con otros trabajos cuyo rango de convergencia oscila entre 1000 y 3000 generaciones dan cuenta de un buen rendimiento en la convergencia.