Está en la página 1de 1

Implementacin del problema de las N-Reinas en Prolog (programacin lgica)

Una implementacin sencilla del problema de las n-reinas en Prolog consiste en tres simples pasos:

Generar un tablero de dimensin n.


Generar una permutacin sobre ese tablero.
Comprobar si ese tablero cumple la condicin de que todas las reinas colocadas no se amenacen
entre s.
Gracias al backtracking de Prolog podemos volver a preguntar por un resultado cuando nos muestra
una solucin, y as poder generar todas las posibles soluciones.

Implementacin

nreinas (+N,?Sol). El primer predicado y el cual llamamos desde el intrprete de Prolog . Se


satisface si Sol es la solucin al problema de las N-Reinas en un tablero de tamao N.

nreinas(N,Sol):- generarTablero(N,Tablero),
permutar(Tablero,Sol),
buenTablero(Sol).

Este predicado generar un tablero de dimensin N, generar una permutacin de ese tablero y por
ltimo comprueba si esa permutacin contiene reinas es posiciones que no se amenacen unas a
otras.

generarTablero(+X,?Y). se verifica si Y es una lista de X elementos que contiene los naturales


comprendidos entre 1 y X, ambos inclusive. Ntese que:

Como cada reina habr de ocupar una columna distinta, el tablero (o tableros) solucin ser (sern)
una permutacin de un tablero as generado.

También podría gustarte