SlideShare una empresa de Scribd logo
1 de 11
Problema de las 8 Reinas




 Algoritmos Computacionales
      Esteban González
 http://esteban-gzz.blogspot.
             com/
Problema de las 8 Reinas

  El problema de las ocho reinas se trata de un acertijo
 en el que se colocan ocho reinas sin que se amenacen.

 Fue propuesto por el ajedrecista alemán Max Bezzel en
     1848. En el juego de ajedrez la reina amenaza a
  aquellas fichas que se encuentren en su misma fila,
                   columna o diagonal.

  Las 8 reinas consiste en colocar sobre un tablero de
 ajedrez ocho reinas sin que estas se den jaques entre
                         ellas.
Planteamiento




      Las reinas en el ajedrez se pueden atacar
    horizontalmente, verticalmente y en diagonal.

  Se busca encontrar el acomodo de 8 reinas en un
  tablero de 8 por 8, donde ninguna reina de jaque a
                         otra.
Planteamiento

 Algoritmo:

 - Colocar la reina n en la primera casilla válida de la fila
 n

 - Si una reina no puede llegar a colocarse en ninguna
 casilla, se vuelve atrás y se cambia la posición de la
 reina n-1

 - Intentar colocar las reinas restantes en las filas que
 quedan
Problema de las n Reinas

 El problema de las ocho Reinas es generalizado por el
              problema de las n Reinas.

 El problema consiste en colocar n Reinas en un tablero
 de ajedrez de de tal manera que ninguna de las Reinas
                quede atacando a otra.

 El tamaño del tablero de ajedrez para este problema es
                     de tamaño n*n.

    Existe un algoritmo que resuelve este problema
           generalizado usando la recursión.
Algoritmo




Esta es la función recursiva para encontrar el orden para
acomodar a las Reinas. Vemos que cuando se llama a si
misma se tiene que incrementar el número de la fila en 1.
Algoritmo




 Del código anterior tenemos una condición antes de la
 llamada recursiva que es "comprobar". Lo que hace es
verificar si ya hay alguna colocada en la fila, la columna y
                        su diagonal.
Ejemplo




   En el ejemplo de corrida cuando colocamos como
argumento el valor de 8, que es tomado como el numero
     de reinas, nos imprime como queda la tabla.
Ejemplo




Así quedaría nuestro tablero para el caso clásico de las 8
                         reinas.

Comprobamos visualmente que ninguna da jaque a otra.
Existe forma iterativa

 La recursión puede evitarse si pensamos en la estrategia
de backtracking como una búsqueda en profundidad en un
árbol implícito en el que cada nodo interno es un arreglo A
  con una asignación parcial de valores para k variables.

 El parámetro k es el nivel de cada nodo y los nodos hoja
consisten en asignaciones completas de variables para A,
                 esto es k = n = length[A].

Una búsqueda iterativa puede hacerse bajando a través de
    los nodos siempre que sean prometedores, si nos
topamos con uno que no sea prometedor subimos de nivel
                    restando uno a k.
Bibliografía

http://en.wikipedia.org/wiki/Eight_queens_puzzle
http://www.slideshare.net/mejiaff/vuelta-atras
http://es.wikipedia.org/wiki/Problema_de_las_ocho_reinas

Código del algoritmo:
http://elvex.ugr.es/decsai/c/#problemas

Más contenido relacionado

La actualidad más candente

Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
Giancarlo Aguilar
 
Bitácora de base de datos
Bitácora de base de datosBitácora de base de datos
Bitácora de base de datos
Lalo Osorio
 
El Juego TicTacToe (Gato) mediante Arboles de Decisiones
El Juego TicTacToe (Gato) mediante Arboles de DecisionesEl Juego TicTacToe (Gato) mediante Arboles de Decisiones
El Juego TicTacToe (Gato) mediante Arboles de Decisiones
José Enrique Alvarez Estrada
 
Ordenamiento con árbol binario
Ordenamiento con árbol binarioOrdenamiento con árbol binario
Ordenamiento con árbol binario
Mauricio Solano
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
basilioj
 

La actualidad más candente (20)

Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Gestor de almacenamiento
Gestor de almacenamientoGestor de almacenamiento
Gestor de almacenamiento
 
Cuadro comparativo sgbd
Cuadro comparativo sgbdCuadro comparativo sgbd
Cuadro comparativo sgbd
 
Bitácora de base de datos
Bitácora de base de datosBitácora de base de datos
Bitácora de base de datos
 
Transacciones
TransaccionesTransacciones
Transacciones
 
El Juego TicTacToe (Gato) mediante Arboles de Decisiones
El Juego TicTacToe (Gato) mediante Arboles de DecisionesEl Juego TicTacToe (Gato) mediante Arboles de Decisiones
El Juego TicTacToe (Gato) mediante Arboles de Decisiones
 
8 reinas
8 reinas8 reinas
8 reinas
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretes
 
Mapa Conceptual de Grafos
Mapa Conceptual de GrafosMapa Conceptual de Grafos
Mapa Conceptual de Grafos
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Ordenamiento con árbol binario
Ordenamiento con árbol binarioOrdenamiento con árbol binario
Ordenamiento con árbol binario
 
ALP Unidad 3: Tipos de datos estructurados y punteros
ALP Unidad 3: Tipos de datos estructurados y punterosALP Unidad 3: Tipos de datos estructurados y punteros
ALP Unidad 3: Tipos de datos estructurados y punteros
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 
Ejercicios de diagramas de flujo en raptor
Ejercicios de diagramas de flujo en raptorEjercicios de diagramas de flujo en raptor
Ejercicios de diagramas de flujo en raptor
 
Aplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafosAplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafos
 
Lista de raptor sus comandos y su función
Lista de raptor sus comandos y su funciónLista de raptor sus comandos y su función
Lista de raptor sus comandos y su función
 
Monografia ocho reinas
Monografia ocho reinasMonografia ocho reinas
Monografia ocho reinas
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
 

Más de Esteban Gonzalez (10)

Proyecto Fase 4 - PSA
Proyecto Fase 4 - PSAProyecto Fase 4 - PSA
Proyecto Fase 4 - PSA
 
Proyecto Fase 3 - PSA
Proyecto Fase 3 - PSAProyecto Fase 3 - PSA
Proyecto Fase 3 - PSA
 
Assignment 2 Practical
Assignment 2 PracticalAssignment 2 Practical
Assignment 2 Practical
 
Assignment 2 Theoretical
Assignment 2 TheoreticalAssignment 2 Theoretical
Assignment 2 Theoretical
 
Proyecto Fase 1 - PSA
Proyecto Fase 1 - PSAProyecto Fase 1 - PSA
Proyecto Fase 1 - PSA
 
Demostración final
Demostración finalDemostración final
Demostración final
 
Presentación final
Presentación finalPresentación final
Presentación final
 
Proyecto de Física Moderna
Proyecto de Física ModernaProyecto de Física Moderna
Proyecto de Física Moderna
 
Especificación técnica
Especificación técnicaEspecificación técnica
Especificación técnica
 
Presentación de proyecto
Presentación de proyectoPresentación de proyecto
Presentación de proyecto
 

Último

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 

Último (20)

Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 

Problema de las 8 reinas

  • 1. Problema de las 8 Reinas Algoritmos Computacionales Esteban González http://esteban-gzz.blogspot. com/
  • 2. Problema de las 8 Reinas El problema de las ocho reinas se trata de un acertijo en el que se colocan ocho reinas sin que se amenacen. Fue propuesto por el ajedrecista alemán Max Bezzel en 1848. En el juego de ajedrez la reina amenaza a aquellas fichas que se encuentren en su misma fila, columna o diagonal. Las 8 reinas consiste en colocar sobre un tablero de ajedrez ocho reinas sin que estas se den jaques entre ellas.
  • 3. Planteamiento Las reinas en el ajedrez se pueden atacar horizontalmente, verticalmente y en diagonal. Se busca encontrar el acomodo de 8 reinas en un tablero de 8 por 8, donde ninguna reina de jaque a otra.
  • 4. Planteamiento Algoritmo: - Colocar la reina n en la primera casilla válida de la fila n - Si una reina no puede llegar a colocarse en ninguna casilla, se vuelve atrás y se cambia la posición de la reina n-1 - Intentar colocar las reinas restantes en las filas que quedan
  • 5. Problema de las n Reinas El problema de las ocho Reinas es generalizado por el problema de las n Reinas. El problema consiste en colocar n Reinas en un tablero de ajedrez de de tal manera que ninguna de las Reinas quede atacando a otra. El tamaño del tablero de ajedrez para este problema es de tamaño n*n. Existe un algoritmo que resuelve este problema generalizado usando la recursión.
  • 6. Algoritmo Esta es la función recursiva para encontrar el orden para acomodar a las Reinas. Vemos que cuando se llama a si misma se tiene que incrementar el número de la fila en 1.
  • 7. Algoritmo Del código anterior tenemos una condición antes de la llamada recursiva que es "comprobar". Lo que hace es verificar si ya hay alguna colocada en la fila, la columna y su diagonal.
  • 8. Ejemplo En el ejemplo de corrida cuando colocamos como argumento el valor de 8, que es tomado como el numero de reinas, nos imprime como queda la tabla.
  • 9. Ejemplo Así quedaría nuestro tablero para el caso clásico de las 8 reinas. Comprobamos visualmente que ninguna da jaque a otra.
  • 10. Existe forma iterativa La recursión puede evitarse si pensamos en la estrategia de backtracking como una búsqueda en profundidad en un árbol implícito en el que cada nodo interno es un arreglo A con una asignación parcial de valores para k variables. El parámetro k es el nivel de cada nodo y los nodos hoja consisten en asignaciones completas de variables para A, esto es k = n = length[A]. Una búsqueda iterativa puede hacerse bajando a través de los nodos siempre que sean prometedores, si nos topamos con uno que no sea prometedor subimos de nivel restando uno a k.