Problema de las cuatro reinas

Problema de las cuatro Reinas
Información sobre la plantilla
Concepto:Este problema se define como la búsqueda de una solución a la colocación de cuatro reinas del ajedrez en un tablero de 4x4 sin que las reinas se ataquen mutuamente entre si

Problema de las cuatro Reinas

Idea del algoritmo

La idea del algoritmo consiste en colocar las fichas de manera sucesiva en las columnas. Cuando no sea posible colocar una ficha en una columna, retrocedemos y ajustamos la ficha de la columna anterior.

Algoritmo de solución mediante el retroceso o búsqueda en profundidad

Este algoritmo utiliza el retroceso para buscar un arreglo de cuatro fichas en una cuadricula de 4x4 de modo que no haya dos fichas en la misma fila, la misma columna, o en la diagonal.
Entrada: Un arreglo row de tamaño 4
Salida: true , si existe una solución o false, si no existe solución
procedure cuatro_reinas (row)
k:=1
row(1):=0
while k>0 do
begin
row(k):=row(k+1)
while row(k) <=4 and hay conflicto en la columna k, fila row(k) do
row(k)=row(k+1)
if row(k) <=4 then
if k=4 then
return (true)
else
begin
k:=k+1
row(k):=0
end
else

k:=k-1
end
return(false)
end
cuatro_reinas
La siguiente gráfica muestra el árbol generado por el algoritmo anterior en la búsqueda de una solución al problema, donde la solución aparece en el vértice 8.

Solución al problema de las cuatro reinas

Este algoritmo funciona perfectamente para n reinas con n>=4 pues para n=2 o n=3 no existe solución.
El retroceso o búsqueda a profundidad es de particular interés en problemas como el de las n reinas, donde lo único que se quiere es una solución. Como la solución aparece en un vértice terminal, al pasar a los vértices terminales lo más pronto posible, en general evita la generación de muchos vértices innecesarios.

Fuentes

  • Johnsonbaugh, Richard. Matemáticas Discretas. Volumen II,cuarta edición.Editorial Felix Varela, La Habana, 2006. Pág 396.
  • Información ofrecida por MSc. José Ramón Ávila Cruz (JC Puerto Padre V)