El problema de las ocho reinas consiste en colocar ocho reinas de ajedrez en un tablero de 8x8 de manera que ninguna reina amenace a otra; por lo tanto, una solución requiere que ninguna reina comparta la misma fila, columna o diagonal. Existen 92 soluciones. El problema se planteó por primera vez a mediados del siglo XIX. En la actualidad, se utiliza con frecuencia como ejemplo para diversas técnicas de programación informática .
El problema de las ocho reinas es un caso especial del problema más general de las n reinas , que consiste en colocar n reinas que no ataquen entre sí en un tablero de ajedrez de n × n . Existen soluciones para todos los números naturales n, con la excepción de n = 2 y n = 3. Aunque el número exacto de soluciones solo se conoce para n ≤ 27, la tasa de crecimiento asintótico del número de soluciones es aproximadamente.
Historia
El compositor de ajedrez Max Bezzel publicó el problema de las ocho reinas en 1848. Franz Nauck publicó las primeras soluciones en 1850. [ 1 ] Nauck también extendió el problema al problema de las n reinas, con n reinas en un tablero de ajedrez de n × n casillas.
Desde entonces, muchos matemáticos , entre ellos Carl Friedrich Gauss , han trabajado tanto en el problema de las ocho reinas como en su versión generalizada de las n reinas. En 1874, S. Günther propuso un método que utiliza determinantes para encontrar soluciones. [ 1 ] JWL Glaisher perfeccionó el enfoque de Günther.
En 1972, Edsger Dijkstra utilizó este problema para ilustrar el poder de lo que él denominó programación estructurada . Publicó una descripción muy detallada de un algoritmo de retroceso en profundidad . [ 2 ]
Construcción y conteo de soluciones cuando n = 8
El problema de encontrar todas las soluciones al problema de las 8 reinas puede ser bastante costoso computacionalmente, ya que hay 4.426.165.368 posibles arreglos de ocho reinas en un tablero de 8×8, [ a ] pero solo 92 soluciones. Es posible usar atajos que reducen los requisitos computacionales o reglas empíricas que evitan técnicas computacionales de fuerza bruta . Por ejemplo, al aplicar una regla simple que elige una reina de cada columna, es posible reducir el número de posibilidades a 16.777.216 (es decir, 8 8 ) combinaciones posibles. Generar permutaciones reduce aún más las posibilidades a solo 40.320 (es decir, 8! ), que luego se pueden verificar para ataques diagonales.
El rompecabezas de las ocho reinas tiene 92 soluciones distintas. Si se consideran como una sola las soluciones que difieren únicamente en las operaciones de simetría de rotación y reflexión del tablero, el rompecabezas tiene 12 soluciones. Estas se denominan soluciones fundamentales ; a continuación se muestran ejemplos de cada una.
Una solución fundamental suele tener ocho variantes (incluida su forma original) obtenidas mediante una rotación de 90, 180 o 270° y la posterior reflexión de cada una de las cuatro variantes rotacionales en un espejo en posición fija. Sin embargo, una de las 12 soluciones fundamentales (solución 12 a continuación) es idéntica a su propia rotación de 180°, por lo que solo tiene cuatro variantes (ella misma y su reflexión, su rotación de 90° y la reflexión de esta). [ b ] Por lo tanto, el número total de soluciones distintas es 11×8 + 1×4 = 92.
A continuación se presentan todas las soluciones fundamentales:
La solución 10 tiene la propiedad adicional de que no hay tres reinas en línea recta .
Existencia de soluciones
Los algoritmos de fuerza bruta para contar el número de soluciones son computacionalmente manejables para, pero sería intratable para problemas de, como 20! = 2,433 × 10 18 . Si el objetivo es encontrar una única solución, se puede demostrar que existen soluciones para todo n ≥ 4 sin necesidad de búsqueda alguna. [ 3 ] [ 4 ] Estas soluciones presentan patrones escalonados, como en los siguientes ejemplos para n = 8, 9 y 10:
Los ejemplos anteriores se pueden obtener con las siguientes fórmulas. [ 3 ] Sea ( i , j ) la casilla en la columna i y la fila j en el tablero de ajedrez n × n , k un número entero.
Un enfoque [ 3 ] es
- Si el resto de dividir n entre 6 no es 2 o 3, entonces la lista es simplemente todos los números pares seguidos de todos los números impares no mayores que n .
- De lo contrario, escriba listas separadas de números pares e impares (2, 4, 6, 8 – 1, 3, 5, 7).
- Si el resto es 2, intercambia 1 y 3 en la lista impar y mueve 5 al final ( 3, 1 , 7, 5 ).
- Si el resto es 3, mueve 2 al final de la lista par y 1,3 al final de la lista impar (4, 6, 8, 2 – 5, 7, 9, 1, 3 ).
- Añade la lista impar a la lista par y coloca las reinas en las filas indicadas por estos números, de izquierda a derecha (a2, b4, c6, d8, e3, f1, g7, h5).
Para n = 8 , esto da como resultado la solución fundamental 1 mencionada anteriormente. A continuación se presentan algunos ejemplos más.
- 14 reinas (resto 2): 2, 4, 6, 8, 10, 12, 14, 3, 1, 7, 9, 11, 13, 5.
- 15 reinas (resto 3): 4, 6, 8, 10, 12, 14, 2, 5, 7, 9, 11, 13, 15, 1, 3.
- 20 reinas (resto 2): 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 3, 1, 7, 9, 11, 13, 15, 17, 19, 5.
Soluciones de conteo para otros tamaños n
Enumeración exacta
No existe una fórmula conocida para el número exacto de soluciones para colocar n reinas en un tablero n × n , es decir, el número de conjuntos independientes de tamaño n en un grafo de reinas n × n . El tablero 27×27 es el tablero de orden más alto que se ha enumerado completamente. [ 5 ] Las siguientes tablas dan el número de soluciones al problema de las n reinas, tanto fundamentales (secuencia A002562 en la OEIS ) como todas (secuencia A000170 en la OEIS ) , para todos los casos conocidos.
Se conoce el número de colocaciones en las que además no hay tres reinas en ninguna línea recta.(secuencia A365437 en el OEIS ) .
Enumeración asintótica
En 2021, Michael Simkin demostró que para números grandes n , el número de soluciones del problema de las n reinas es aproximadamente. [ 6 ] Más precisamente, el númerode soluciones tiene crecimiento asintótico dóndees una constante que se encuentra entre 1,939 y 1,945. [ 7 ] (Aquí o (1) representa la notación o minúscula ).
Si en cambio se considera un tablero de ajedrez toroidal (donde las diagonales "envuelven" desde el borde superior hasta el inferior y desde el borde izquierdo hasta el derecho), solo es posible colocar n reinas en untablero si En este caso, el número asintótico de soluciones es [ 8 ] [ 9 ]
Problemas relacionados

- Dimensiones superiores
- Encuentra el número de reinas no atacantes que se pueden colocar en un espacio de ajedrez d- dimensional de tamaño n . Se pueden colocar más de n reinas en algunas dimensiones superiores (el ejemplo más pequeño son cuatro reinas no atacantes en un espacio de ajedrez de 3×3×3), y de hecho se sabe que para cualquier k , existen dimensiones superiores donde n k reinas no son suficientes para atacar todos los espacios. [ 10 ] [ 11 ]
- Utilizar piezas distintas a las reinas
- En un tablero de 8×8 se pueden colocar 32 caballos , o 14 alfiles , 16 reyes u 8 torres , de manera que ninguna pieza ataque a otra. En el caso de los caballos, una solución sencilla es colocar uno en cada casilla de un color determinado, ya que solo se mueven al color opuesto. La solución también es sencilla para las torres y los reyes. Se pueden colocar dieciséis reyes en el tablero dividiéndolo en cuadrados de 2×2 y colocando los reyes en puntos equivalentes en cada casilla. Las colocaciones de n torres en un tablero de n × n se corresponden directamente con matrices de permutación de orden n .
- Variaciones del ajedrez
- Se pueden plantear problemas similares para variantes del ajedrez como el shogi . Por ejemplo, el problema de los n + k reyes dragón consiste en colocar k peones de shogi y n + k reyes dragón que no se atacan mutuamente en un tablero de shogi de n × n . [ 12 ]
- placas no estándar
- Pólya estudió el problema de las n reinas en un tablero toroidal ("en forma de rosquilla") y demostró que existe una solución en un tablero n × n si y solo si n no es divisible por 2 o 3. [ 13 ]
- Dominación
- Dado un tablero de n × n , el número de dominación es el número mínimo de reinas (u otras piezas) necesarias para atacar u ocupar cada casilla. Para n = 8, el número de dominación de la reina es 5. [ 14 ] [ 15 ]
- Reinas y otras piezas
- Entre las variantes se incluye la mezcla de reinas con otras piezas; por ejemplo, colocar m reinas y m caballos en un tablero de n × n de manera que ninguna pieza ataque a otra [ 16 ] o colocar reinas y peones de manera que ninguna reina ataque a otra. [ 17 ]
- cuadrados mágicos
- En 1992, Demirörs, Rafraf y Tanik publicaron un método para convertir algunos cuadrados mágicos en soluciones de n -reinas, y viceversa. [ 18 ]
- cuadrados latinos
- En una matriz n × n , coloque cada dígito del 1 al n en n posiciones de la matriz de manera que no haya dos instancias del mismo dígito en la misma fila o columna.
- Cobertura exacta
- Consideremos una matriz con una columna primaria para cada una de las n filas del tablero, una columna primaria para cada una de las n columnas y una columna secundaria para cada una de las 4 n − 6 diagonales no triviales del tablero. La matriz tiene n 2 filas: una para cada posible colocación de la reina, y cada fila tiene un 1 en las columnas correspondientes a la fila, columna y diagonales de esa casilla, y un 0 en todas las demás columnas. Entonces, el problema de las n reinas es equivalente a elegir un subconjunto de las filas de esta matriz de tal manera que cada columna primaria tenga un 1 en exactamente una de las filas elegidas y cada columna secundaria tenga un 1 en como máximo una de las filas elegidas; este es un ejemplo de un problema de cobertura exacta generalizado , del cual el sudoku es otro ejemplo.
- finalización de n -reinas
- El problema de completación plantea si, dado un tablero de ajedrez de n × n en el que ya hay algunas reinas colocadas, es posible colocar una reina en cada fila restante de manera que ninguna reina ataque a otra. Este problema y otros relacionados son NP-completos y #P-completos . [ 19 ] Cualquier colocación de como máximo n /60 reinas puede completarse, mientras que existen configuraciones parciales de aproximadamente n /4 reinas que no pueden completarse. [ 20 ]
- arreglos de Costas
- Una matriz de Costas de reinas no atacantes o NAQCA es una matriz de Costas que también es una solución al problema de las n reinas. La única NAQCA conocida es el caso trivial de 1×1, y se conjetura que no existen otras. [ 21 ]
Ejercicio de diseño de algoritmos

Finding all solutions to the eight queens puzzle is a good example of a simple but nontrivial problem. For this reason, it is often used as an example problem for various programming techniques, including nontraditional approaches such as constraint programming, logic programming or genetic algorithms. Most often, it is used as an example of a problem that can be solved with a recursivealgorithm, by phrasing the n queens problem inductively in terms of adding a single queen to any solution to the problem of placing n−1 queens on an n×n chessboard. The induction bottoms out with the solution to the 'problem' of placing 0 queens on the chessboard, which is the empty chessboard. This process can be made more efficient by applying the observation that each column of the chessboard must contain exactly one queen, and restricting the positions at which the algorithm tries adding the ith queen to the ith row of the chessboard, in columns that are not already attacked by other queens. These choices significantly reduce the number of placements that need to be tried, allowing the algorithm to find all solutions on an chessboard in a time so short as to appear instantaneous.[22]

An alternative to exhaustive search is an 'iterative repair' algorithm, which typically starts with all queens on the board, for example with one queen per column.[23] It then counts the number of conflicts (attacks), and uses a heuristic to determine how to improve the placement of the queens. The 'minimum-conflicts' heuristic – moving the piece with the largest number of conflicts to the square in the same column where the number of conflicts is smallest – is particularly effective: it easily finds a solution to even the 1,000,000 queens problem.[24][25]
Unlike the backtracking search outlined above, iterative repair does not guarantee a solution: like all greedy procedures, it may get stuck on a local optimum. (In such a case, the algorithm may be restarted with a different initial configuration.) On the other hand, it can solve problem sizes that are several orders of magnitude beyond the scope of a depth-first search.
As an alternative to backtracking, solutions can be counted by recursively enumerating valid partial solutions, one row at a time. Rather than constructing entire board positions, blocked diagonals and columns are tracked with bitwise operations. This does not allow the recovery of individual solutions.[26][27]
Sample program
The following program is a translation of Niklaus Wirth's solution into the Python programming language, but does without the index arithmetic found in the original and instead uses lists to keep the program code as simple as possible. By using a coroutine in the form of a generator function, both versions of the original can be unified to compute either one or all of the solutions. Only 15,720 possible queen placements are examined.[28][29]
defqueens(n:int,i:int,a:list,b:list,c:list):ifi<n:forjinrange(n):ifjnotinaandi+jnotinbandi-jnotinc:yield fromqueens(n,i+1,a+[j],b+[i+j],c+[i-j])else:yieldaforsolutioninqueens(8,0,[],[],[]):print(solution)The following program is an implementation of Donald Knuth's informal description of the solution on Page 31, Section 7.2.2 Backtrack Programming from The Art of Computer Programming, Volume 4B into the Python programming language.[30]
def propiedad ( perm : lista ) -> bool : para k en rango ( 0 , len ( perm )): para j en rango ( 0 , len ( perm )): si j < k : si perm [ k ] == perm [ j ]: retornar Falso elif abs ( perm [ k ] - perm [ j ]) == k - j : retornar Falso retornar Verdaderodef extend ( perm : list , n : int ): new_perm = [ ] for p in perm : for i in range ( 0 , n ): new_perm.append ( p + [ i ] ) return new_permdef n_queens ( n : int ) -> int : dominio = lista ( rango ( 0 , n )) perm = [[]] for i in rango ( n ): nuevo_perm = lista ( filtro ( propiedad , extender ( perm , n ))) perm = nuevo_perm return len ( perm )En la cultura popular
- En el juego El séptimo invitado , el octavo acertijo: "El dilema de la reina" en la sala de juegos de la mansión Stauf es, de facto, el acertijo de las ocho reinas. [ 31 ] : 48–49, 289–290
- En el juego Professor Layton and the Curious Village , el rompecabezas número 130: "Too Many Queens 5" (クイーンの問題5 ) es un rompecabezas de ocho reinas. [ 32 ]
Véase también
Notas
- ↑The number of combinations of 8 squares from 64 is the binomial coefficient64C8.
- ↑Other symmetries are possible for other values of n. For example, there is a placement of five nonattacking queens on a 5×5 board that is identical to its own 90° rotation. Such solutions have only two variants (itself and its reflection). If n > 1, it is not possible for a solution to be equal to its own reflection because that would require two queens to be facing each other.
References
- 12W. W. Rouse Ball (1960) "The Eight Queens Problem", in Mathematical Recreations and Essays, Macmillan, New York, pp. 165–171.
- ↑O.-J. Dahl, E. W. Dijkstra, C. A. R. HoareStructured Programming, Academic Press, London, 1972 ISBN 0-12-200550-3, pp. 72–82.
- 123Bo Bernhardsson (1991). "Explicit Solutions to the N-Queens Problem for All N". ACM SIGART Bulletin. 2 (2): 7. doi:10.1145/122319.122322. S2CID 10644706.
- ↑Hoffman, E. J.; Loessi, J. C.; Moore, R. C. (1 March 1969). "Constructions for the Solution of the m Queens Problem"(PDF). Mathematics Magazine. 42 (2): 66. doi:10.2307/2689192. JSTOR 2689192. Archived from the original on 8 November 2016. Retrieved 4 November 2024.
- ↑"The Q27 Project"– via GitHub.
- ↑Sloman, Leila (21 September 2021). "Mathematician Answers Chess Problem About Attacking Queens". Quanta Magazine. Retrieved 22 September 2021.
- ↑Simkin, Michael (28 July 2021). "The number of $n$-queens configurations". arXiv:2107.13460v2 [math.CO].
- ↑Luria, Zur (15 May 2017). "New bounds on the number of n-queens configurations". arXiv:1705.05225v2 [math.CO].
- ↑Bowtell, Candida; Keevash, Peter (16 September 2021). "The $n$-queens problem". arXiv:2109.08083v1 [math.CO].
- ↑J. Barr and S. Rao (2006), The n-Queens Problem in Higher Dimensions, Elemente der Mathematik, vol 61 (4), pp. 133–137.
- ↑Martin S. Pearson. "Queens On A Chessboard – Beyond The 2nd Dimension"(php). Retrieved 27 January 2020.
- ↑Chatham, Doug (1 December 2018). "Reflections on the n +k dragon kings problem". Recreational Mathematics Magazine. 5 (10): 39–55. doi:10.2478/rmm-2018-0007.
- ↑G. Pólya, Uber die "doppelt-periodischen" Losungen des n-Damen-Problems, George Pólya: Collected papers Vol. IV, G-C. Rota, ed., MIT Press, Cambridge, London, 1984, pp. 237–247
- ↑Burger, A. P.; Cockayne, E. J.; Mynhardt, C. M. (1997). "Domination and irredundance in the queens' graph". Discrete Mathematics. 163 (1–3): 47–66. doi:10.1016/0012-365X(95)00327-S. hdl:1828/2670. MR 1428557.
- ↑Weakley, William D. (2018). "Queens around the world in twenty-five years". In Gera, Ralucca; Haynes, Teresa W.; Hedetniemi, Stephen T. (eds.). Graph Theory: Favorite Conjectures and Open Problems – 2. Problem Books in Mathematics. Cham: Springer. pp. 43–54. doi:10.1007/978-3-319-97686-0_5. ISBN 978-3-319-97684-6. MR 3889146.
- ↑"Queens and knights problem". Archived from the original on 16 October 2005. Retrieved 20 September 2005.
- ↑Bell, Jordan; Stevens, Brett (2009). "A survey of known results and research areas for n-queens". Discrete Mathematics. 309 (1): 1–31. doi:10.1016/j.disc.2007.12.043.
- ↑O. Demirörs, N. Rafraf, and M.M. Tanik. Obtaining n-queens solutions from magic squares and constructing magic squares from n-queens solutions. Journal of Recreational Mathematics, 24:272–280, 1992
- ↑ Gent, Ian P.; Jefferson, Christopher; Nightingale, Peter (agosto de 2017). "Complejidad de la completación de n -reinas" . Journal of Artificial Intelligence Research . 59 : 815–848 . doi : 10.1613/jair.5512 . hdl : 10023/11627 . ISSN 1076-9757 . Consultado el 7 de septiembre de 2017 .
- ↑ Glock, Stefan ; Correia, David Munhá; Sudakov, Benny (6 de julio de 2022). "El problema de completación de n -reinas " . Investigación en Ciencias Matemáticas . 9 (41): 41. doi : 10.1007/s40687-022-00335-1 . PMC 9259550. PMID 35815227. S2CID 244478527 .
- ↑ Drakakis, K., Gow, R., Rickard, S. (2009). "Vectores de distancia comunes entre arreglos de Costas". Advances in Mathematics of Communications . 3 (1): 35– 52. doi : 10.3934/amc.2009.3.35 . ISSN 1930-5338 .
- ↑ Uehara, Ryuhei (2019). "5.1 El rompecabezas de las ocho reinas". Primer curso de algoritmos a través de rompecabezas . Springer Singapur. págs. 111–118 . doi : 10.1007/978-981-13-3188-6 . ISBN 9789811331886.
- ↑ Un algoritmo de tiempo polinomial para el problema de las N-reinas por Rok Sosic y Jun Gu, 1990. Describe el tiempo de ejecución para hasta 500.000 reinas, que era el máximo que podían ejecutar debido a las limitaciones de memoria.
- ↑ Minton, Steven; Johnston, Mark D.; Philips, Andrew B.; Laird, Philip (1 de diciembre de 1992). "Minimización de conflictos: un método heurístico de reparación para la satisfacción de restricciones y problemas de programación" . Inteligencia Artificial . 58 (1): 161–205 . doi : 10.1016/0004-3702(92)90007-K . hdl : 2060/19930006097 . ISSN 0004-3702 . S2CID 14830518 .
- ↑ Sosic, R.; Gu, Jun (octubre de 1994). "Búsqueda local eficiente con minimización de conflictos: un estudio de caso del problema de las n-reinas". IEEE Transactions on Knowledge and Data Engineering . 6 (5): 661– 668. Bibcode : 1994ITKDE...6..661S . doi : 10.1109/69.317698 . ISSN 1558-2191 .
- ↑ Qiu, Zongyan (febrero de 2002). "Codificación de vector de bits del problema de las n reinas". ACM SIGPLAN Notices . 37 (2): 68– 70. doi : 10.1145/568600.568613 .
- ↑ Richards, Martin (1997). Algoritmos de retroceso en MCPL usando patrones de bits y recursión (PDF) (Informe técnico). Laboratorio de Computación de la Universidad de Cambridge. UCAM-CL-TR-433.
- ↑ Wirth, Niklaus (1976). Algoritmos + Estructuras de datos = Programas . Serie Prentice-Hall en Computación Automática. Prentice-Hall. Bibcode : 1976adsp.book.....W . ISBN 978-0-13-022418-7.pág. 145
- ↑ Wirth, Niklaus (2012) [orig. 2004]. "El problema de las ocho reinas". Algoritmos y estructuras de datos (PDF) . Versión de Oberon con correcciones y modificaciones autorizadas. págs. 114–118 .
- ↑ Knuth, Donald Ervin (2023). El arte de la programación informática. Volumen 4B, parte 2: Algoritmos combinatorios . Boston, Múnich: Addison-Wesley. ISBN 978-0-201-03806-4.
- ↑ DeMaria, Rusel (15 de noviembre de 1993). El séptimo invitado: Guía de estrategia oficial (PDF) . Prima Games. ISBN 978-1-5595-8468-5Consultado el 22 de abril de 2021 .
- ↑ "ナゾ130 クイーンの問題5" .ゲームの匠(en japonés) . Consultado el 17 de septiembre de 2021 .
Lecturas adicionales
- Bell, Jordan; Stevens, Brett (2009). "Una revisión de los resultados conocidos y las áreas de investigación para n -reinas" . Matemáticas Discretas . 309 (1): 1– 31. doi : 10.1016/j.disc.2007.12.043 .
- Watkins, John J. (2004). Across the Board: The Mathematics of Chess Problems . Princeton: Princeton University Press. ISBN 978-0-691-11503-0.
- Allison, L.; Yee, CN; McGaughey, M. (1988). "Problemas de reinas NxN tridimensionales" . Departamento de Ciencias de la Computación, Universidad de Monash, Australia.
- Nudelman, S. (1995). "El problema modular de las N-reinas en dimensiones superiores" . Matemáticas Discretas . 146 ( 1–3 ): 159–167 . doi : 10.1016/0012-365X(94)00161-5 .
- Engelhardt, M. (agosto de 2010). "Der Stammbaum der Lösungen des Damenproblems (en alemán, significa El cuadro genealógico de las soluciones al problema de las 8 reinas" . Spektrum der Wissenschaft : 68– 71.
- Sobre el problema modular de la N-Reina en dimensiones superiores , Ricardo Gómez, Juan José Montellano y Ricardo Strausz (2004), Instituto de Matemáticas, Área de la Investigación Científica, Circuito Exterior, Ciudad Universitaria, México.
- Budd, Timothy (2002). «Un estudio de caso: El rompecabezas de las ocho reinas» (PDF) . Introducción a la programación orientada a objetos (3.ª ed.). Addison Wesley Longman. págs. 125-145 . ISBN 0-201-76031-2.
- Wirth, Niklaus (2004) [actualizado en 2012]. "El problema de las ocho reinas". Algoritmos y estructuras de datos (PDF) . Versión de Oberon con correcciones y modificaciones autorizadas. págs. 114–118 .
Enlaces externos
- Weisstein, Eric W. "El problema de Queens" . MathWorld .
- queens-cpm en GitHub: El rompecabezas de las ocho reinas en Turbo Pascal para CP/M
- eight-queens.py en GitHub Solución en una línea del rompecabezas de las ocho reinas en Python
- Soluciones en más de 100 lenguajes de programación diferentes (en Rosetta Code )
- Problemas matemáticos de ajedrez
- Combinatoria enumerativa
- 1848 en ajedrez
- Problemas matemáticos