Академический Документы
Профессиональный Документы
Культура Документы
aliriojas@hotmail.com, malvarezr1@unmsm.edu.pe
RESUMEN
Se presenta los conceptos de la Bsqueda Tab, su algoritmo base y su aplicacin al problema
combinatorio de las N- reinas para lo cual se desarroll un programa en lenguaje c++.
Se presenta el problema de las -reinas con fines de explicar el mtodo de bsqueda tab: sus
componentes y su algoritmo.
Se realiz 9 corridas del algoritmo con diferentes parmetros y se encontr 12 soluciones diferentes que proporcionan el ptimo (cero colisiones de las reinas).
Palabras clave: Metaheursticas, Bsqueda Tab, problema de -reinas
ABSTRACT
It presents the Tabu Search concepts, its algorithm, and a application to the N- Queen problem
developing a program in c++ language
It presents the N- Queen problem for explaining the tabu search method
It presents the result of nine replications with different parameters, it was found 12 different solutions
with zero collisions.
Keywords: Metaheuristics, Tabu search, N- Queen problem
27
1. Introduccin
Matricialmente se representa:
Columna1
Reina1
Reina3
Ubicacin en la columna
eina4
Formas de solucin
Este problema puede resolverse de varias formas:
1. Enumerando todas las posibles alternativas y evaluando si se producen colisiones, en cuyo caso se
tendra que evaluar factorial de n posibles soluciones.
2. Usando un mtodo de bsqueda local, como el
greedy. Por ejemplo, si se asigna la reina 1 a la columna 1 aunque se permute exhaustivamente las
otras 3 solo se consigue un ptimo local, es decir, el
mnimo de colisiones posibles es una colisin y ya
no se podra mejorar, (el algoritmo queda atrapado
en un ptimo local), es decir, si se fija la reina 1 en
la columna 1 nunca se encontrar una configuracin con cero colisiones.
3. Modelndolo como un problema lineal de maximizar el nmero de reinas en un tablero de ajedrez
sujeta a las restricciones de que en una fila solo
haya una reina, al igual que en cada columna y,
adems que en cada diagonal haya una y solo una
reina.
Cuando n=4 el problema tiene 16 variables y 19
restricciones, pero si n= 20 el problema tiene 400
variables y 115 restricciones.
eina3
Se trata de elegir las n celdas donde colocar a las reinas, minimizando el nmero total de colisiones.
....
eina2
El problema de las -reinas consiste en colocar n reinas en un tablero de ajedrez de n x n de tal manera
que no sea posible que dos reinas se capturen entre
s, es decir, que no estn en la misma fila, ni en la misma columna, ni en la misma diagonal. Se dice que hay
una colisin si hay dos reinas que se pueden capturar
entre s.
R3
eina1
Reina4
2. fundamentacin terica
R2
Columna4
El propsito del presente artculo es presentar las caractersticas principales de la metaheurstica Bsqueda
Tab (TABU SEARCH), sus conceptos, su metodologa
e implementar su algoritmo base en un programa computacional en c++ para la solucin del problema combinatorio de las N-reinas (N-queen problem). [5]
R1
Columna3
Reina2
Reina
Columna2
28
Una forma sencilla de construir una lista tab consiste en que cada vez que se realiza un movimiento, se
introduce el mismo en una lista circular, se considera
que tras un cierto nmero de iteraciones la bsqueda
est en una regin distinta y puede liberarse del status
tab. Su objetivo es penalizar la bsqueda para evitar
el ciclado.
El tamao de la lista tab (tabu tenure) es el tiempo o
nmero de iteraciones que un elemento (movimiento o
atributo) permanece en la lista tab.
3. Mtodo
Primero se hace una breve presentacin de conceptos tericos para contextualizar la aplicacin de
la bsqueda tab.
Luego se describe el algoritmo de la bsqueda
Tab y su implementacin computacional
A continuacin se resuelve el problema de las Nreinas usando la metaheurstica de bsqueda tab
para N = 7.
Las soluciones tab pueden dejar de ser tab, es decir, una solucin o atributo puede salir de la lista tab
antes de que se cumpla su plazo. Esto se implementa
a travs del criterio de aspiracin, que permite que
un movimiento sea admisible aunque est clasificado
como tab.
Se define un movimiento s como el mapeo definido en
un subconjunto de la regin factible.
La bsqueda Tab es un mtodo de bsqueda inteligente, la cual se caracteriza por utilizar una estrategia basada en el uso de estructuras de memoria para
escapar de los ptimos locales en los que se puede
caer al moverse de una solucin a otra en el espacio
de soluciones.[1]
El trmino tab (taboo) procede de la Polinesia[3], donde es usado por los aborgenes de la isla Tonga para
referirse a cosas que no pueden ser tocadas porque
son sagradas, una acepcin ms moderna la define
como Una prohibicin impuesta por costumbres sociales como una medida de proteccin, tambin como
marcada como que constituye un riesgo, esta acepcin es la que est ms cerca de la esencia del mtodo
donde el riesgo a ser evitado es el de seguir un camino
no productivo, incluyendo el de ser conducido a una
trampa de la que no se puede salir (ptimo local).
k
i
n
m
si la solucin x =1
Los movimientos
posibles son: (i, k) y
(i, m)
El vecindario de i es
{k, m}
El vecindario o entorno de x X (conjunto de soluciones) es el conjunto N(x), el cual contiene los movimientos s S (conjunto de movimientos posibles) que
pueden ser aplicados a la solucin x.
En la i-sima iteracin, para evolucionar hacia otras
soluciones, se selecciona stas en un vecindario reducido: (N(Xi) {Lista Tab}), evaluando cada una de
las soluciones y eligiendo la mejor.
29
La memoria basada en lo reciente es donde se almacenan los ltimos movimientos realizados, y que puede
ser utilizada para recordar aquellos movimientos que
hacen caer de nuevo en soluciones ya exploradas [4].
x0 =
R4
R5
R6
# alternativa
R7
intercambio
Colisiones
21
....
z=
Iteracin 1 El vecindario est conformado por las combinaciones de 7 elementos tomados de 2 en 2, es decir,
7!/(2!*5!) = 21. Se evalan las 21 posibles soluciones:
El espacio de soluciones est dado por todos aquellos arreglos de 7 posiciones de los nmeros {1,2,...7}
R2
R1
x=
Intercambio
30
Colisiones
x1 =
7
3
cambio
2
3
4
5
6
Iteracin 2: se intercambian las reinas 2 y 4 en x1 la funcin objetivo valdr 1, solo hay una colisin {(1,4)}. Se
contina iterando hasta llegar a la condicin de parada.
colisiones
Mejores 5 candidatos
2
El movimiento (1,7) est
penalizado durante 3
iteraciones
Iteracin 2
Solucin actual x1
31
Intercambio
2
3
1
5
6
7
FO
frecuencia
1T
2T
Rutina de inicio
32
(1)
(2)
(3)
# de orden en el
vecindario
Reina que
intercambia
Reina que
intercambia
(4)
(5)
(6)
frecuencia de
ocurrencias
Se considera como mejores a los que tienen menor valor en la funcin objetivo.
Seleccionar al mejor no tab
Dependiendo de los parmetros se usa el criterio
de aspiracin y/o la memoria de largo plazo para
modificar la seleccin dada en el paso anterior
Se actualizan las estructuras tab, las de frecuencias y la nueva solucin actual
4. Resultados
Se realizaron 9 corridas con diferentes parmetros para
hacer un anlisis de la influencia de la memoria de cor-
n=7
Solucin inicial
x0 = 4,5,3,6,7,1,2
MAXITER = 100
tabu_tenure = 2
Cantidad de candidatos
c=5
Corrida
Resultados
100
100
30
100
46
20
100
43
40
100
40
40
40
21
40
70
31
70
40
21
Lista tab + Memoria largo plazo desde iteracin 20, sin criterio
de aspiracin
100
20
17
70
20
19
Solucin j
Solucin i
Solucin j
33
Solucin i
Solucin j
5. Discusin
Se produce una mayor cantidad de soluciones diferentes cuando se utiliza el criterio de aspiracin ms tarde,
por ejemplo en la iteracin 70.
Las corridas que produjeron ms soluciones diferentes
fueron la 4 y la 7, en las cuales se implementa la memoria de largo plazo ms temprano, (las iteraciones 40
En la siguiente tabla se muestran las soluciones diferentes que se encontraron en las 9 corridas de prueba.
Soluciones diferentes:
R1
R2
Apareci en la corrida:
R3
R4
R5
R6
R7
Sol 1
Sol 2
Sol 3
Sol 4
Sol 5
Sol 6
Sol 7
Sol 8
Sol 9
Sol 10
Sol 11
Sol 12
7. Bibliografa
6. Conclusiones
Para el problema de las N-reinas con valores pequeos de n (como en este caso n=7), se puede formular como un programa lineal y encontrar una solucin
usando algn software, sin embargo haciendo un
programa computacional para el algoritmo de bsqueda tab se pueden encontrar varias soluciones
a un costo menor, pues siempre hay lenguajes de
programacin de propsito general libres de costo
en el mercado. Adems, se puede introducir modificaciones al algoritmo bsico de tal modo que el
usuario pueda aportar su conocimiento de experto.
El criterio de aspiracin utilizado desde las primeras iteraciones produce que el algoritmo se concentre en ptimos locales y se genera una cantidad
de soluciones ptimas, pero iguales, mientras que
cuando se utiliza dicho criterio luego de realizar una
gran cantidad de iteraciones o cuando no se utiliza,
se genera ms soluciones diferentes
El uso de la memoria de largo plazo permite la diversificacin, es decir se visita regiones diferentes
y en consecuencia se obtiene ms soluciones diferentes que logran cero colisiones.
34