ES2278516A1 - Circuito digital que implementa un algoritmo genetico para la configuracion de circuitos de proposito general. - Google Patents
Circuito digital que implementa un algoritmo genetico para la configuracion de circuitos de proposito general. Download PDFInfo
- Publication number
- ES2278516A1 ES2278516A1 ES200502088A ES200502088A ES2278516A1 ES 2278516 A1 ES2278516 A1 ES 2278516A1 ES 200502088 A ES200502088 A ES 200502088A ES 200502088 A ES200502088 A ES 200502088A ES 2278516 A1 ES2278516 A1 ES 2278516A1
- Authority
- ES
- Spain
- Prior art keywords
- circuit
- genetic
- random number
- number generator
- algorithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Genetics & Genomics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Physiology (AREA)
- Feedback Control In General (AREA)
Abstract
Circuito digital que implementa un algoritmo genético para la configuración de circuitos de propósito general. Circuito digital que implementa un algoritmo genético para configurar circuitos de propósito general, que proporciona una nueva configuración en cada unidad de tiempo y estima el grado de adaptación de dicho circuito, y que comprende un circuito de generación de algoritmos genéticos y un circuito de evaluación, caracterizado por el hecho de que dicho circuito de generación de algoritmos genéticos comprende al menos un generador de números aleatorios, una función lógica XOR, un primer multiplexor, un registro y un segundo multiplexor, y dicho circuito de evaluación comprende al menos un circuito de estimación de adaptación, un multiplexor, un registro y un comparador.
Description
Circuito digital que implementa un algoritmo
genético para la configuración de circuitos de propósito
general.
La presente invención se refiere a un circuito
digital que implementa un algoritmo genético para la configuración
de circuitos de propósito general. Dicha invención está optimizada
para aplicaciones en tiempo real.
John Holland describió la idea de usar la
genética como modelo para resolver problemas informáticos, en su
monografía de 1975 titulada "Adaptation in natural and Artificial
Systems", en castellano "Adaptación en sistemas naturales y
artificiales".
Holland sugería que partiendo de varios
conjuntos de genes (cromosomas) elegidos aleatoriamente y a partir
de una metodología para determinar si un cromosoma es mejor que
otro, se puede obtener una solución óptima a partir de mecanismos de
cruce, mutación y selección de los genes de esos cromosomas.
La programación utilizando algoritmos genéticos
está pues basada en los procesos de selección natural en donde el
código genético de cada nueva generación de individuos posee ciertos
genes mutados que hacen que el nuevo individuo no sea idéntico al
anterior. Solamente aquellos que más se adapten al medio serán los
que se seleccionen para la siguiente generación.
Los algoritmos genéticos proporcionan un método
eficaz para converger hacia soluciones en un gran universo de
posibles valores. La ventaja que proporcionan sobre cualquier otro
mecanismo de optimización es que se pueden aplicar a cualquier tipo
de sistema o de métrica de valoración sin necesidad de cambiar los
procedimientos del
algoritmo.
algoritmo.
Los algoritmos genéticos son ampliamente
aplicados en la computación evolutiva, que es un campo de rápido
crecimiento dentro de la inteligencia artificial. Se caracterizan
por ser superiores a los algoritmos secuenciales de prueba y error
en lo que respecta a tiempo de computación, de ahí el interés en
utilizar algoritmos genéticos en la programación de sistemas que
operan en tiempo real.
La mayoría de arquitecturas genéticas que se
conocen utilizan el software para la programación genética de redes
neuronales u otro tipo de sistemas (como en el artículo de Schemmel
J, y col. "A VLSI Implementation of an Analog Neural Network
suited for Genetic Algorithms", 4^{th} International Conference
on Evolvable Systems ICES'01). Estos sistemas de aplicación de los
algoritmos basados en software presentan la gran desventaja de su
lentitud, así como la falta de fiabilidad por el hecho de ser un
proceso secuencial. Así pues, un programa compilado en un
procesador que ejecuta secuencialmente las instrucciones presentes
en una memoria es susceptible de fallar radicalmente si algún bit de
su memoria cambia de valor de forma no deseada (procesos conocidos
como SEU o Single Event Upset). Estos SEU puede ser debidos a la
exposición del circuito a la radiación del entorno y son un problema
creciente en aplicaciones espaciales, dispositivos electrónicos a
bordo de vuelos comerciales o incluso en los dispositivos fabricados
usando las tecnologías actuales (con longitudes típicas inferiores a
los cien nanómetros) aún cuando éstas estén funcionando a nivel del
mar. Otro inconveniente de los sistemas que utilizan software para
la programación genética de redes neuronales es que se pierden parte
de las características de redundancia y tolerancia a fallos del
cómputo en paralelo de la red que tienen que configurar al depender
de un proceso de aprendizaje secuencial.
También existen varias propuestas de
implementación de algoritmos genéticos en hardware con la intención
de acelerar la velocidad de procesado de dichos dispositivos. En la
patente US5970487 de J. Barry Shackleford y col. "Genetic
Algorithm Machine and its Production Method, and Method for
Executing a Genetic Algorithm" se presenta una implementación
hardware a nivel de puertas lógicas con todas las funciones propias
de un algoritmo genético (creación, memorización, selección, cruce,
mutación, evaluación de los genes). En la patente WO02071209 de
Peter Martin "Evolutionary Programming of Configurable Logic
Devices" se presenta la implementación de un algoritmo genético
en un lenguaje de descripción hardware (Handel-C)
que luego es compilado en una FPGA (Field Programable Gate Array).
Pese a todo, las arriba mencionadas implementaciones hardware no
están optimizadas para aplicaciones en tiempo real.
Con el circuito digital de la invención se
consiguen resolver los inconvenientes citados.
El circuito digital de la invención, es del tipo
que implementa un algoritmo genético para configurar circuitos de
propósito general (CPG), que proporciona una nueva configuración en
cada unidad de tiempo y estima el grado de adaptación de dicho
circuito, y comprende un circuito de generación de algoritmos
genéticos (CGAG) y un circuito de evaluación (CE). Está
caracterizado porque dicho CGAG comprende al menos un generador de
números aleatorios (GNA), una función lógica XOR, un primer
multiplexor, un registro y un segundo multiplexor y porque dicho CE
comprende por lo menos un circuito de estimación de adaptación
(CEA), un multiplexor, un registro y un
comparador.
comparador.
La ventaja de esta invención (respecto a las
implementaciones hardware mencionadas anteriormente) es la mayor
rapidez de ejecución al implementar un algoritmo genético
simplificado. Dicho circuito digital está optimizado para una sola
configuración (o cromosoma) el cual se muta, se evalúa el ajuste (o
adaptación) y se compara con la mejor configuración conseguida hasta
el momento.
Al utilizar un solo individuo no se realizan los
procesos de cruce, selección o utilización de una memoria para el
almacenamiento de todos los individuos (una población típica puede
rondar los cien individuos) como en la patente US5970487 ya
mencionada. De esta manera se minimiza el hardware utilizado, se
evita la necesidad de utilizar memorias RAM con lo que la ejecución
del algoritmo es más veloz y mucho menos sensible a entornos de
radiación como los ya mencionados (minimizando así el impacto de los
SEU). Se presenta una solución pensada para aprovechar al máximo
las propiedades de alta velocidad y fiabilidad derivadas del
paralelismo presente en las redes neuronales o los autómatas
celulares, las cuales son posibles ejemplos de aplicaciones para
dicha invención. Se trata por tanto de una solución optimizada para
aplicaciones que necesitan funcionar en tiempo real.
La operación global del circuito digital es el
siguiente: La configuración del CPG es cambiada por una igual a la
mejor obtenida hasta el momento excepto en algunos valores
seleccionados aleatoriamente por un GNA.
El comportamiento de la nueva generación es
evaluado en el circuito de evaluación CE que compara el nuevo
comportamiento con el esperado. Cuando el CE encuentra que la nueva
configuración es mejor, entonces el valor de ajuste es almacenado en
un registro y el circuito de generación de algoritmos genéticos CGAG
almacena la nueva configuración en substitución de la anterior.
La arquitectura puede ser programada para
trabajar en el modo de operación (con una configuración fija) o en
el modo de aprendizaje (utilizando mutaciones de la mejor
configuración seleccionadas cada cierta unidad de tiempo).
La arquitectura propuesta puede ser usada para
la programación de redes neuronales, autómatas celulares, FPGAs o
incluso de microprocesadores. Las redes neuronales y los autómatas
celulares consisten en un conjunto de elementos interconexionados en
donde cada elemento realiza una operación sencilla, pero que puestos
a trabajar en cooperación realizan funciones complejas como el
reconocimiento de patrones, tratamiento de imágenes en tiempo real,
identificación de series temporales, etc. En principio no existe una
metodología establecida para la programación de dichas redes (no
ocurre lo mismo con los procesadores que sí tienen una metodología
bien establecida). Una opción factible es la aplicación de
algoritmos genéticos a la configuración de la red. La arquitectura
propuesta también puede ser aplicada para cambiar el programa
almacenado en la memoria de un microprocesador.
Preferiblemente el circuito digital de la
presente invención se caracteriza porque el comparador del CE
implique cualquier tipo de desigualdad del tipo
f(A)>g(B), donde A es el valor de ajuste de la
nueva configuración, B es el valor de ajuste de la configuración
mejor, mientras que f y g son dos funciones cualesquiera.
Escogiendo funciones adecuadas al comparar los
valores de ajuste de las configuraciones se consigue reducir la
probabilidad de caer en mínimos locales, es decir se consigue
reducir la probabilidad de acabar en soluciones alejadas de la
solución óptima (o mínimo global).
Para mayor comprensión de cuanto se ha expuesto
se acompañan unos dibujos en los que, esquemáticamente y sólo a
título de ejemplo no limitativo, se representa un caso práctico de
realización.
En dichos dibujos:
la figura 1 es un diagrama de estados del
circuito digital propuesto;
la figura 2 es un esquema del circuito digital
propuesto;
la figura 3 es un diagrama de bloques del
circuito digital propuesto;
las figuras 4 y 5 corresponden a una función
ejemplo, donde se representa todo el conjunto de configuraciones que
pueden ser utilizadas en el CPG y sus correspondientes valores de
ajuste.
Como se muestra en la figura 2, el circuito
digital 6 que implementa el algoritmo genético consiste en dos
bloques básicos, el circuito de generación de algoritmos genéticos
(CGAG) 9 y el circuito de evaluación (CE) 10.
Como se muestra en la figura 3, el CGAG 9 genera
una nueva configuración (o cromosoma) partiendo de la mejor
encontrada hasta el momento (número binario almacenado en la salida
del registro 14). Usando un generador de números aleatorios 11 que
puede ser un "Linear Feedback Shift Register" (LFSR) o un
circuito caótico, realiza una función lógica 12 (que puede ser la
función XOR) con la mejor configuración obtenida hasta el momento.
El resultado es una nueva configuración (salida binaria del bloque
XOR 12) que es igual a la anterior excepto en esos casos en los que
el GNA 11 proporciona un valor alto de tensión (en el caso de que 12
sea un bloque XOR). La nueva configuración (cromosoma mutado) es
aplicada al CPG 7 cuando la señal de control 20 del multiplexor 15
tiene un valor alto de tensión (selección del modo aprendizaje).
En la figura 1 se muestra un diagrama de estados
del modo aprendizaje para clarificar la secuencia de funciones
ejecutadas. El último mejor cromosoma guardado en la memoria 1 es
mutado aleatoriamente 2 y su ajuste evaluado 3, se compara el valor
de ajuste del cromosoma mutado con el valor de ajuste del último
mejor cromosoma 4 y finalmente se selecciona el cromosoma con mayor
valor de ajuste 5.
Cuando la señal 20 es una tensión baja (modo
operación) la mejor configuración que haya sido encontrada hasta el
momento (y que se almacena en la salida del registro 14) es cargada
al CPG 7. En el momento en el que el circuito de evaluación 10
encuentra que la nueva configuración es mejor que la anterior, el
cromosoma mutado sobrescribe el valor previo de mejor configuración.
Esto es realizado mediante un multiplexor 13 que es controlado por
el CE 10. El reloj global 31 controla el tiempo durante el cual cada
nueva configuración es evaluada.
El CE 10 evalúa el nivel de adaptación
experimentado por el CPG 7. Un circuito de estimación de la
adaptación (CEA) 16 compara el comportamiento del CPG 7 con el
esperado (a elegir por el diseñador). El resultado de esta
evaluación es comparado con el valor de ajuste obtenido de la mejor
configuración conseguida hasta el momento y que está almacenada en
el registro 18. Cuando la nueva configuración es mejor, la salida
del comparador 19 indica a los multiplexores 13 y 17 que tienen que
cambiar los antiguos valores de mejor configuración y mejor ajuste
por los nuevos valores. Al final del tiempo de configuración
(controlado por el reloj 31) los valores proporcionados a la salida
de los multiplexores se almacenan en los registros 14 y 18.
En los algoritmos genéticos se utiliza una
reproducción sexual (cruce de dos cromosomas escogidos de una
población) para intentar evitar caer en mínimos locales, es decir,
soluciones no óptimas al problema en cuestión. La invención
presentada no utiliza cruce de cromosomas con la idea de simplificar
la implementación del algoritmo, por lo que la probabilidad de caer
en mínimos locales debería ser mayor que en los algoritmos donde se
utiliza el cruce (ya que no se utiliza una población de cromosomas
diversa y localizada en distintos puntos del espacio de búsqueda).
Para solventar este inconveniente se debe utilizar un tipo de
comparación en (19) bastante flexible del tipo
f(A)>g(B), donde A es el valor de ajuste de la
nueva configuración, B es el valor de ajuste de la configuración
mejor, mientras que f y g son dos funciones cualesquiera.
En las figuras 4 y 5 se describe una propuesta
concreta de función de comparación donde 22 representa todo el
conjunto de configuraciones que pueden ser utilizadas en el CPG y 21
representa sus correspondientes valores de ajuste. Si se está en un
mínimo local 23 y la configuración actual B no cambia hasta que el
valor de ajuste de la configuración nueva A es mejor que el valor
de ajuste de B, entonces la probabilidad de salto 28 (gracias a la
mutación) del mínimo local al mínimo global 24 es pequeña (ya que
las mutaciones se producen siempre a partir de una única
configuración). Por otro lado, si se tolera un cierto empeoramiento
en el valor de ajuste B, es decir, una desigualdad del tipo
A>B-X (donde X 27 designa el grado de
tolerancia), entonces la probabilidad de salto 29 desde el mínimo
local al global aumentan (ya que las mutaciones se producen a partir
de varias configuraciones y el cono de atracción del mínimo global
es mayor).
Claims (5)
1. Circuito digital (6) que implementa un
algoritmo genético para configurar circuitos de propósito general
(7), que proporciona una nueva configuración en cada unidad de
tiempo y estima el grado de adaptación de dicho circuito (7), y que
comprende un circuito de generación de algoritmos genéticos (9) y un
circuito de evaluación (10);
caracterizado por el hecho de que dicho
circuito de generación de algoritmos genéticos (9) comprende al
menos un generador de números aleatorios (11), una función lógica
XOR (12), un primer multiplexor (13), un registro (14) y un segundo
multiplexor (15);
y dicho circuito de evaluación (10) comprende al
menos un circuito de estimación de adaptación (16), un multiplexor
(17), un registro (18) y un comparador (19).
2. Circuito digital (6) según la reivindicación
1, caracterizado por el hecho de que el generador de números
aleatorios (11) es un "Linear Feedback Shift Register".
3. Circuito digital (6) según la reivindicación
1, caracterizado por el hecho de que el generador de números
aleatorios (11) es un circuito caótico.
4. Circuito digital (6) según las
reivindicaciones 1, 2 ó 3, caracterizado por el hecho de que
la salida del generador de números aleatorios (11) y la mejor
configuración son combinados con cualquier tipo de circuito lógico
con el objetivo de obtener una mutación de la configuración
inicial.
5. Circuito digital (6) según las
reivindicaciones 1, 2, 3 ó 4, caracterizado por el hecho de
que el comparador (19) del circuito de evaluación (10) implique
cualquier tipo de desigualdad del tipo f(A)>g(B),
donde A es el valor de ajuste de la nueva configuración, B es el
valor de ajuste de la configuración mejor, mientras que f y g son
dos funciones cualesquiera.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ES200502088A ES2278516B1 (es) | 2005-08-24 | 2005-08-24 | Circuito digital que implementa un algoritmo genetico para la configuracion de circuitos de proposito general. |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ES200502088A ES2278516B1 (es) | 2005-08-24 | 2005-08-24 | Circuito digital que implementa un algoritmo genetico para la configuracion de circuitos de proposito general. |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| ES2278516A1 true ES2278516A1 (es) | 2007-08-01 |
| ES2278516B1 ES2278516B1 (es) | 2008-06-16 |
Family
ID=38330998
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES200502088A Expired - Fee Related ES2278516B1 (es) | 2005-08-24 | 2005-08-24 | Circuito digital que implementa un algoritmo genetico para la configuracion de circuitos de proposito general. |
Country Status (1)
| Country | Link |
|---|---|
| ES (1) | ES2278516B1 (es) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5970487A (en) * | 1996-11-19 | 1999-10-19 | Mitsubishi Denki Kabushiki Kaisha | Genetic algorithm machine and its production method, and method for executing a genetic algorithm |
| JP2000181895A (ja) * | 1998-12-18 | 2000-06-30 | Nagoya Industrial Science Research Inst | 遺伝的アルゴリズムの処理装置 |
| US6578176B1 (en) * | 2000-05-12 | 2003-06-10 | Synopsys, Inc. | Method and system for genetic algorithm based power optimization for integrated circuit designs |
| US20040059955A1 (en) * | 1999-03-29 | 2004-03-25 | Agency Of Industrial Science & Technology | Timing adjustment of clock signals in a digital circuit |
-
2005
- 2005-08-24 ES ES200502088A patent/ES2278516B1/es not_active Expired - Fee Related
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5970487A (en) * | 1996-11-19 | 1999-10-19 | Mitsubishi Denki Kabushiki Kaisha | Genetic algorithm machine and its production method, and method for executing a genetic algorithm |
| JP2000181895A (ja) * | 1998-12-18 | 2000-06-30 | Nagoya Industrial Science Research Inst | 遺伝的アルゴリズムの処理装置 |
| US20040059955A1 (en) * | 1999-03-29 | 2004-03-25 | Agency Of Industrial Science & Technology | Timing adjustment of clock signals in a digital circuit |
| US6578176B1 (en) * | 2000-05-12 | 2003-06-10 | Synopsys, Inc. | Method and system for genetic algorithm based power optimization for integrated circuit designs |
Non-Patent Citations (1)
| Title |
|---|
| Extraída de la base de datos PAJ en EPODOC & JP 2000181895 A (INST NAGOYA IND SCIENCE RES; RINNAI KK) 30.06.2000, resumen; figuras * |
Also Published As
| Publication number | Publication date |
|---|---|
| ES2278516B1 (es) | 2008-06-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10248675B2 (en) | Method and apparatus for providing real-time monitoring of an artifical neural network | |
| Dembo | On the capacity of associative memories with linear threshold functions | |
| Cai et al. | Harnessing intrinsic noise in memristor hopfield neural networks for combinatorial optimization | |
| CN104240753A (zh) | 突触阵列、脉冲整形电路和神经形态系统 | |
| Kornijcuk et al. | Recent Progress in Real‐Time Adaptable Digital Neuromorphic Hardware | |
| Zyarah et al. | Neuromorphic system for spatial and temporal information processing | |
| US10147045B2 (en) | Self-organized critical CMOS circuits and methods for computation and information processing | |
| Tsipas et al. | Unconventional computing with memristive nanocircuits | |
| ES2278516B1 (es) | Circuito digital que implementa un algoritmo genetico para la configuracion de circuitos de proposito general. | |
| US20070005521A1 (en) | Method and system for conditioning of numerical algorithms for solving optimization problems within a genetic framework | |
| Cahill | Catastrophic forgetting in reinforcement-learning environments | |
| Nehaniv | Self-replication, evolvability and asynchronicity in stochastic worlds | |
| Thoma et al. | Self-replication mechanism by means of self-reconfiguration | |
| Ediger et al. | Effectively evolving finite state machines compared to enumeration | |
| ES3037407T3 (en) | Control sequence for quantum computer | |
| Edwards | Circuit morphologies and ontogenies | |
| Higuchi et al. | Applying evolvable hardware to autonomous agents | |
| Upegui et al. | Dynamic routing on the ubichip: Toward synaptogenetic neural networks | |
| Paulin et al. | Bayesian head state prediction: computing the dynamic prior with spiking neurons | |
| Ortega-Sanchez | Embryonics: a bio-inspired fault-tolerant multicellular system. | |
| Upegui et al. | Neural development on the ubichip by means of dynamic routing mechanisms | |
| Zhou | Memristive Spiking Neural Network for Neuromorphic Computing | |
| Sakhuja | Incorporating prior knowledge to efficiently design deep learning accelerators | |
| Pena et al. | Evolutionary graph models with dynamic topologies on the ubichip | |
| Hoffmann et al. | Evolving multi-creature systems for all-to-all communication |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EC2A | Search report published |
Date of ref document: 20070801 Kind code of ref document: A1 |
|
| FG2A | Definitive protection |
Ref document number: 2278516B1 Country of ref document: ES |
|
| FD2A | Announcement of lapse in spain |
Effective date: 20250829 |