Está en la página 1de 3

Eléctricos y Electrónicos en Israel

2012 IEEE 27ª Convención de Ingenieros Eléctricos y Electrónicos en Israel

Acerca de la implementación FPGA de una genética


Algoritmo para resolver rompecabezas de Sudoku

Nonel Thirer

GOLPEAR - Holon Institute of Technology


Holón, Israel
Tirer_n@hit.ac.il

Resumen - En los últimos años, varios documentos presentan algoritmos para Un problema como "resolver rompecabezas de Sudoku" requiere un algoritmo de implementación
resolver y generar acertijos de Sudoku. Algunos estudios prueban y confirman la específico, orientado al problema, debido a las restricciones dependientes del carácter del
posibilidad de utilizar el algoritmo genético (GA) para resolver y evaluar los acertijos problema.
de Sudoku. Los resultados son que GA puede resolver acertijos de Sudoku, pero no
Las principales etapas de la AG [9, 10] son: Inicialización de la población. - construir
de manera muy efectiva. Otros estudios prueban la posibilidad de una implementación
un banco inicial aleatorio de cromosomas. Cálculo de aptitud - calcula el " Puntuación
FPGA de un algoritmo "Solucionador de Sudoku" y se utilizan métodos de "fuerza
de aptitud " para cada cromosoma en el banco de cromosomas actual. El puntaje
bruta" debido a la necesidad de recursos excesivos para la implementación de otros
de aptitud de un cromosoma es la cantidad de ajustes necesarios para resolver el
algoritmos. Nuestro artículo analiza la posibilidad de una implementación FPGA de la
AG para resolver los acertijos. El artículo presenta algunas posibles adaptaciones del problema. Si se encuentra un cromosoma que resuelve el problema, el GA se
algoritmo general de GA, detiene. Selección - el GA elige varios cromosomas del banco actual, con respecto
a su puntaje de condición física calculado. Transversal - dos o más de los
sobre la población y cromosomas elegidos cambian aleatoriamente sus bits y forman un nuevo
definiciones de cromosomas, crossover y fases de mutación y cálculo de la función de cromosoma. Mutación - uno (o más) bits aleatorios se alterna en el cromosoma
aptitud para esta implementación de FPGA. recién construido.

Términos del Índice — Algoritmo genético, implementación de FPGA,


Rompecabezas de Sudoku

Las etapas se repiten hasta que se construye un nuevo banco de


I. INTRODUCCIÓN
cromosomas (población) y el proceso continúa con la nueva población.
El rompecabezas de Sudoku se compone de un cuadrado de 9 * 9 dividido en
nueve sub cuadrados de 3 * 3. La solución del rompecabezas. - un problema de Nuestro problema requiere algunas adaptaciones del algoritmo genético
optimización combinatoria: es tal que cada fila, columna y subcuadrado contiene cada general, en relación con las definiciones de población y cromosomas, las fases de
número entero del 1 al 9 una vez y solo una vez. En los últimos años, varios cruce y mutación y el cálculo de las funciones de aptitud para una implementación
documentos presentan algoritmos para resolver, calificar y también para generar de FPGA.
rompecabezas de Sudoku. Algunos estudios prueban y confirman la posibilidad de Una buena implementación de algoritmo debe proporcionar una solución de alta
utilizar el algoritmo genético (GA) para resolver y evaluar la dificultad de los velocidad y los recursos FPGA ' optimización, mediante el uso de tubería [6, 11] o métodos
rompecabezas de Sudoku. Los resultados son que GA puede resolver acertijos de de procesamiento en paralelo [6].
Sudoku, pero la tasa de éxito y el número promedio de generaciones requeridas para
resolver dependen de la dificultad del rompecabezas. [1,2]
II IMPLEMENTACIÓN DE RESTRICCIONES DEL PUZZLE Las
restricciones del rompecabezas deben reflejarse en la definición de
También se analiza la posibilidad de una implementación FPGA de algoritmos de cromosomas y en la implementación de cada paso de la AG.
"solucionador de Sudoku" y se utilizan algunos métodos de "fuerza bruta" debido a
los requisitos de recursos excesivos (como tamaño de memoria o lógica) para la
implementación de otros algoritmos [3, 4]
A. El cromosoma

Para una implementación FPGA de GA para resolver varios problemas (como los
Debido a que el rompecabezas de Sudoku se compone de un cuadrado de 9 * 9
conocidos MTSP / TSP -Problemas de vendedores múltiples / viajeros, CVRP - Problema
dividido en nueve sub cuadrados de 3 * 3, la población (P) consistirá en individuos
de enrutamiento de vehículos capacitados,
(cromosomas) definidos como una matriz de 81 elementos (P (i, j), i = 1 ... 9, j = 1 ... 9),
y así sucesivamente) se presentan métodos dependientes de
matriz subdividida en nueve bloques (B (1) ... B (9)) de nueve elementos cada uno y, por lo
problemas específicos o problemas [5, 6, 7, 8].
tanto, todo el rompecabezas es:

978-1-4673-4681-8 / 12 / $ 31.00 © 2012 IEEE 2012 IEEE 27 th Convención de Ingenieros 1


B (1), B (2), B (3) B (4), Se pueden utilizar mejores definiciones para las funciones de cálculo de aptitud.
B (5), B (6) (1)
B (7), B (8), B (9) donde Un cálculo paralelo de la adecuación de las líneas y columnas requiere recursos de
evidentemente: hardware duplicados pero reduce el tiempo de ejecución.
B (1) contiene los elementos P (i, j) con i = 1 ... 3, j = 1 ... 3, B (2) contiene
los elementos P (i, j) con i = 1 ... 3, j = 4 ... 6,
... RE. Pasos cruzados y de mutación
B (9) contiene los elementos P (i, j) con i = 7 ... 9, j = 7 ... 9. Por lo tanto, cada
bloque contendrá como elementos cada número entero del 1 al 9 una vez y solo Además, las mutaciones y los pasos cruzados deben mantener las distribuciones
una vez. Para la FPGA legales en cada bloque.
implementación, cada elemento será un vector de cuatro bits con solo nueve valores Por lo tanto, la operación de cruce solo se aplica entre bloques.
legales (0001, 0010 ... 1001).
En cada rompecabezas, el cromosoma tiene elementos "estáticos" que no se Para evitar la generación de cromosomas individuales, la mutación debe
pueden generar (en el paso de inicialización de la población), no se pueden mover implementarse solo entre elementos (4 bits cada uno) y no entre bits individuales.
(en el paso de cruce) y tampoco se pueden cambiar (en el paso de mutación). Para evitar también una distribución ilegal en un bloque, la mutación se implementa
como una mutación de intercambio de elementos no estáticos dentro de un bloque.
Para esto es necesario definir una matriz auxiliar que contenga las
posiciones y los valores de estos elementos estáticos.
III. UNA APLICACIÓN FPGA

A. Módulos
SI. Paso de inicialización

La implementación de FPGA requiere módulos de hardware especiales: la


Las restricciones para el paso de inicialización aleatoria es construir un banco memoria de trabajo, el bloque de evaluación, el bloque de selección, el cruce y los
aleatorio de cromosomas con distribución legal en cada bloque (contiene cada bloques de mutación - y también unidades generales usadas por dos o más
valor de 0001 a 1001 una vez y solo una vez), de acuerdo también con los bloques especiales. La memoria de trabajo contiene la población de cromosomas
elementos estáticos. En el primer paso, cada entrada no dada de cada bloque en cada iteración y también la matriz auxiliar realizada con los valores estáticos.
se reemplaza por un número generado aleatoriamente (con respecto al
requisito: 1 a 9 una vez y solo una vez). Como ventaja de esto, el cálculo de
aptitud será necesario solo para las filas y columnas. El bloque de evaluación evalúa los cromosomas de la población (cálculos de
aptitud) para proporcionar datos para el bloque de selección. Obviamente, si se
encuentra un cromosoma que resuelve el problema principal, el proceso se
detiene. El bloque de selección elige los mejores cromosomas de la población
C. Cálculo de aptitud para ser los próximos padres.

Para verificar si un valor de 0001 a 1001 está presente una vez y solo una Los bloques de cruce y mutación proporcionan una nueva población generada.
vez en cada fila y cada columna, el algoritmo de aptitud verifica y penaliza si
un valor se repite en una fila o en una columna. La implementación de la AG requiere también bloques generales utilizados por dos o
más bloques especiales. Por lo tanto, un componente principal de la arquitectura de
Para reducir el tiempo de trabajo, es posible trabajar con una estructura hardware de la GA es la fuente de ruido pseudoaleatorio. El generador de números
basada en partes (subcromosomas) de todo el cromosoma (como la binarios pseudoaleatorios (PRBG) genera secuencias de bits pseudoaleatorias [8,11],
subpoblación de las poblaciones [11]) divididas en secuencias "grandes" utilizadas para seleccionar los grupos principales
Definimos 18 subcromosomas (nueve "subcromosomas de línea" y nueve (del bloque de selección) y secuencias "pequeñas" utilizadas para proporcionar los
"subcromosomas de columna"), cada subcromosoma con nueve elementos. Los elementos para el fases de cruce y mutación. Las "secuencias grandes" son larges de
elementos de cada subcromosoma de línea son: P (k, j), P (k, j + 1), P (k, j + 2), P k bits (de acuerdo con el tamaño de la población) y las secuencias "pequeñas" son
(k + 1, j), P (k + 1, j +1), P (k + 1, j + 2), P (k + 2, j), P (k + 2, j + 1), P (k + 2, j + 2) larges de 3 bits (solo los valores: 0001 a 1001). Por lo tanto, este PRBG reemplaza el
PRBG especial utilizado para cada tarea en otras implementaciones y permite la
(2) optimización de recursos de FPGA.
donde j = 1,4,7 yk = 1 para la línea 1 ... 3; k = 4 para la línea 4 ... 6, k = 7 para k = línea 7 ... 9)

De manera similar, los elementos de cada subcromosoma de la columna son P (k, j), P (k, j + 3),
P (k, j + 6), P (k + 3, j), P (k + 3, j + 3), P (k + 3, j + 6), P (k + 6, j), P (k + 6, j + 3), P (k + 6, j + 6) SI. Implementación de tubería
(3)
donde k = 1,2,3 y j = 1 para la columna 1 ... 3, j = 2 para la columna 4 ... 6: j = 3 para la Para mejorar la velocidad de ejecución del algoritmo, se deben utilizar
columna 7 ... 9 métodos de canalización, basados ​en la arquitectura modular [6] y también
También definimos la aptitud cromosómica como una función (suma) de la trabajando con partes ("subpoblaciones") de toda la población [11]. El uso de
aptitud para cada línea y para cada columna. Otro y "subpoblaciones" requiere un bloque de "transferencia" para permitir las
comunicaciones entre

2
subpoblaciones, pero permite para trabajar con un gran tamaño de El uso de un generador de números binarios pseudoaleatorios que proporciona todos
población utilizando una menor cantidad de recursos. los datos para las fases de selección, cruce y mutación de los padres requiere menos
recursos, en comparación con el uso de PRBG especial para cada tarea. Una
C. Parámetros de Implementación implementación adecuada de la tubería mejora la velocidad de ejecución y también
reduce la cantidad de recursos.
Una implementación flexible del algoritmo en un dispositivo FPGA específico requiere
que el usuario proporcione las posiciones y los valores de los elementos estáticos para Las tareas futuras son verificar la capacidad de esta implementación para
cada rompecabezas y que defina algunos parámetros de hardware como: resolver acertijos más difíciles y mejorar el método de evaluación del estado
físico.
• el tamaño de los miembros de la población

• el tamaño de la PRBG
• El número máximo de generaciones: detener el proceso si la
solución aún no se había logrado.
• la probabilidad de la mutación
R EFERENCIAS
Los parámetros de hardware anteriores dependen, por supuesto, de la naturaleza del
problema que necesita una solución (la dificultad del rompecabezas) y están
restringidos por las características específicas del chip FPGA. Una solución para la [1] Timo Mantere y Janne Koljonen, "Resolviendo y calificando el Sudoku
rompecabezas con algoritmos genéticos ", Nuevos desarrollos en Inteligencia
implementación es el uso de un kit de desarrollo Altera, basado en un chip FPGA Artificial y el Proceso de Web Semántica de los 12 th
Cyclone II y una RAM externa de 8 MB.
Conf. Inteligencia Artificial Finlandesa, PASO 2006, p.86-92 [2] KNDas, Sumit
Bathia, Shubbin Puri, Kusum Deep. "UNA
Recuperable Georgia para Resolviendo Sudoku Rompecabezas ",
RE. Rompecabezas de prueba www.cse.psu.edu/~sub194/papers/sudokuTechReport.pdf (dieciséis

páginas)

Para generar varios rompecabezas para probar el solucionador de Sudoku, se puede utilizar una [3] Kees van der Bok, Mottaqiallah Taouil, Panagiotis Afratis,
matriz de 9 * 9 como: Ioannis Sourdis, "The TU Delft Sudoku Solver on FPGA", IEEE Explorer, 2009,
p.526-529.
abcdefghidefghiabcghi [4] Pavlos Malakonakis, Miltiadis Smerdis, Euiripides Sotiriades,
abcdefbcaefdhigefdhig Apostolos Dollas, "Un solucionador de sudoku basado en FPGA basado en métodos
bca de recocido simulado", campo Programable
Internacional de tecnología .Conf, 2009, p.522-525 [5] N. Nedjah, LM Mourelle, "Un
problema eficiente e independiente
(4)
hardware implementación de genético algoritmo",
higbcaefdcabfdeighfde
Neurocomputing 71, 2007, p.88-94. [6] Tatshuito Tachibana, Yoshihiro Murata,
ighcabighcabfde
Naoki Shibata, Kelichi.
Yasumoto y Minoru Ito, "Implementación flexible de algoritmos genéticos en
FPGA", Proc. de la ACM / SIDA 14 th

Intl.Symp.on FPGA, EE. UU., 2006, 22-24 de febrero, 9 páginas. [7]


donde a, b, ... Soy diferentes elementos del vector de cuatro bits (0001), Tiago Carvalho Oliveira, Valfredo Pilla Jr, " Un
(0010), ... ( 1001). Implementación de Algoritmo Genético Compacto en FPGA para Hardware
extrínseco evolutivo. Transacciones IEEE en
Para definir el número y las posiciones de los elementos estáticos en cada línea o Computación evolutiva, 2006, p.1143-1146. [8] Andrey Godkin, Nonel Thirer,
"Una implementación FPGA de un
columna es posible usar el mismo PRBG presentado anteriormente.
Acelerador basado en hardware para un algoritmo genético "., Procedimiento del 26º
Congreso de IEEE sobre ingenieros eléctricos y electrónicos en Israel, 2010, p.578-580

[9] Michael Affenzeller, Stephan Winkler, Stefan Wagner, Andreas


IV. CONCLUSIONES
Beham, "Algoritmos genéticos y programación genética -
La implementación de FPGA del rompecabezas requiere un problema Conceptos modernos y aplicaciones prácticas ", CRC Press,
dependiente implementación, con respecto a todos el 2009, Estados Unidos.

fases del proceso: inicialización, estimación del estado físico, cruce y mutación. [10] Mao F.So, Angus Wu, "Implementación FPGA de cuatro pasos
Algoritmo de búsqueda genética ", Electrónica, Circuitos y Sistemas, Procedimiento de
ICECS'99, 1999, vol.2, p.1134-1146. [11] Nonel Thirer," Una implementación FPGA basada en
La definición del cromosoma como un conjunto de bloques y la definición de
canalización de un
subcromosomas permite un cálculo paralelo de funciones parciales de aptitud y,
Algoritmo genético ", ECTA 2011 Conf. Internacional sobre Teoría y Aplicaciones de
por lo tanto, mejora la velocidad del algoritmo, pero requiere recursos FPGA la Computación Evolutiva., (IJCCI 2011) París, Francia, 24-26 de octubre de 2011
adicionales. p.343-345.

También podría gustarte