SlideShare ist ein Scribd-Unternehmen logo
1 von 9
UNIVERSIDAD NACIONAL
DE Trujillo
FACULTAD : Ciencias Físicas y Matemáticas
CURSO : Programación lógica
PROFESOR : Arturo Díaz Pulido
SECCIÓN : Mañana
ALUMNOS : Barreto Valderrama Lizbeth
Cam Urquizo Daniel
Gutiérrez Romero Fabio
CICLO : VII
Índice
Dedicatoria…………………………………………………………………………………..1
Introducción………………………………………………………………………………….3
Marco Teórico……………………………………………………………………………….4
Capitulo I Planteamiento del problema…………………………………………...5
Capítulo II Solución con búsqueda con retroceso Backtracking……………….5
Capítulo III Pseudocódigo del algoritmo y explicación del código(PROLOG)...6
Capítulo IV Código…………………………………………………………………. 9
Conclusiones………………………………………………………………………………. 10
Referencias Linkográficas……………………………………………………………….. 10
Dedicatoria
El presente trabajo titulado “El Problema de las 8 Reinas” esta dedicado a todas aquellas
personas interesadas en aprender acerca de este algoritmo. El cual es un tema muy interesante
que utiliza la lógica y nos ayuda a desarrollar nuestra capacidad de razonamiento.
Esta dedicado a todos los estudiantes y en especial a aquellos que estudien la materia
Programación Lógica, pues podrán obtener información valiosa que les ayudará a tener una
mayor comprensión y a saber un poco más acerca de este interesante tema.
También esta dedicado a nuestro profesor de curso, quien nos dio las debidas orientaciones y
nociones básicas del curso, para poder hallar la solución apropiada a dicho problema.
Introducción
Los problemas que no tienen solución determinista que se ejecutan en tiempo polinomial se
denominan problemas de tipo NP. Debido a su elevada complejidad (O(2^n) o O(n!)), deben ser
resueltas en una cantidad de tiempo razonable empleando métodos heurísticos.
El problema fue originalmente propuesto en 1848 por el ajedrecista Max Bezzel, y durante los
años, muchos matemáticos, incluyendo a Gauss y a Georg Cantor, han trabajado en este
problema y lo han generalizado a n-reinas. Las primeras soluciones fueron ofrecidas por Franz
Nauck en 1850. Nauck también se abocó a las n-reinas (en un tablero de nxn de tamaño
arbitrario). En 1874, S. Günther propuso un método para hallar las soluciones usando
determinantes, y J.W.L. Glaisher redefinió su aproximación.
Edsger Dijkstra usó este problema en 1972 para ilustrar el poder de la llamada programación
estructurada. Él publicó una descripción altamente detallada del desarrollo del algoritmo de
backtracking, "depth-first".
Este acertijo apareció en el popular juego de computadora de los '90 llamado "The 7th Guest".
Consiste en la manera de situar 8 reinas en un tablero de ajedrez, sin que puedan "amenazarse",
es decir, que ninguna esté en la misma fila, columna o diagonal que la otra.
Es interesante estudiar esta problemática que ha sido resuelta de varias maneras, pero siempre
con una premisa por delante, usar una estrategia heurística para resolverla. La fórmula más
común consiste en el Backtracking. Este procedimiento consiste en ir ubicando las piezas
recordando la posición de las anteriores. Si por algún motivo una no puede ser ubicada, volver
hacia movimientos anteriores para seguir tratando por otro camino.
El Problema de las 8 Reinas
Marco Teórico
Capitulo I Planteamiento del problema
El problema original de ocho reinas es intentar encontrar un forma de colocar a ocho reinas en un
tablero de ajedrez de modo que no se vean amenazadas una a la otra. Es decir que un tablero de
8x8, ninguna de las reinas comparta un fila, columna o diagonal debido a que cada reina puede
amenazar a todas las reinas que estén en la misma fila, columna o diagonal.
Existen 92 soluciones a este problema, de las cuales 12 tienen un patrón distinto. Cada una de
las 92 soluciones puede ser transformada en una de estos 12 patrones, utilizando rotaciones y
reflexiones.
En el ajedrez, la reina puede moverse en la medida de lo que le plazca, en horizontal, vertical o
diagonal. Un tablero de ajedrez tiene 8 filas y 8 columnas. El estándar del problema Reina 8x8 le
pregunta cómo colocar 8 reinas en un tablero de ajedrez ordinario de manera que ninguno de
ellos puede tocar cualquier otra en un movimiento.
Podemos representar las 8 reinas mediante un vector[1-8], teniendo en cuenta que cada índice
del vector representa una fila y el valor una columna. Así cada reina estaría en la posición (i,
v[i]) para i = 1-8.
Capítulo II Solución con búsqueda con retroceso Backtracking
El paradigma Backtracking es un método más eficiente que el paradigma de generación y prueba.
Consiste en que las variables se instancian secuencialmente y tan pronto como las variables
relevantes a una restricción están instanciadas, se comprueba la validez de esa restricción. Si una
instanciación parcial viola una restricción, se hace marcha atrás (backtracking) reconsiderando la
última decisión tomada en el proceso de búsqueda, es decir, la variable que se ha instanciado más
recientemente y que aún dispone de valores alternativos disponibles, se instancia a otro valor
posible.
El paradigma backtracking es capaz de eliminar un subespacio de todos los valores del producto
cartesiano de los dominios de las variables. Aun así tiene un coste exponencial.
La principal causa de ineficiencia del paradigma de backtracking es que la búsqueda en diferentes
partes del espacio falla debido al nodo-inconsistencia. El nodo-inconsistencia se da cuando un valor
de un dominio de una variable no satisface la restricción unaria de la variable, con lo cual la
instanciación de esa variable a ese valor siempre resulta en un fallo inmediato. El nodo-consistencia
puede conseguirse eliminando los valores del dominio de la variable que no satisfagan la restricción
unaria.
Un estado puede dividirse en otros estados fijando otro elemento de la tupla, generando un proceso
de ramificación que parte de un estado inicial y que induce el árbol de estados.
El estado inicial es la raíz del árbol de estados y contiene implícitamente todo el espacio de
soluciones.
Si el árbol de estados tiene un n´umero elevado de nodos, ser´a imposible construirlo
explícitamente antes de aplicar una de las técnicas de recorrido. Se puede utilizar un “árbol
implícito”, en el sentido de que se van construyendo sus parte relevantes a medida que avanza el
proceso de recorrido.
Capítulo III Pseudocódigo del algoritmo y explicación del código(PROLOG)
Sabemos que el problema consiste en ubicar las reinas en el tablero de ajedrez de manera que
ningún par de ellas se amenace.Necesitamos una representación para la solución, usaremos
una lista de la siguiente forma:
donde el par [i,Yi] representan las coordenadas de la reina i en el tablero, claramente no puede
haber más de una reina por columna.
El siguiente predicado genera/1 genera las distintas configuraciones del tablero.
Ahora necesitamos un predicado para determinar si una configuración es tal que las reinas no
se ataquen, lo hacemos verificando la lista por partes de izquierda a derecha
Esta regla establece que en la configuración las reinas no se atacan si la primera reina
no ataca a las restantes (no ataca(X,L)) y las restantes no se atacan. El caso base es
una configuración vacía.
Ahora generamos y comprobamos
Esto da solución al problema, pero no es muy eficiente, de hecho comprobamos en PROLOG
el tiempo de ejecución.
Entonces como hay muchas configuraciones que estamos generando sabemos q las reinas
siempre están en distintas filas entonces podemos descartar a priori modificando el predicado
genera/1.
Ahora medimos el tiempo en la misma máquina.
206 veces más rápido, 99.515% del tiempo anterior.
Calculamos la cantidad de soluciones que deberían ser 92 por lo antes mencionado con el
siguiente predicado cantidadSol/1.
Capítulo IV Código
Conclusiones
❏ El problema de las 8 Reinas es un problema NP-completo que se puede también ser para
una cantidad mayor de reinas N reinas a partir de N = 4 en un tablero de NxN.
❏ El problema puede ser resuelto con algoritmos de backtracking o vuelta atrás, de forma
que recorra el árbol en búsqueda en anchura.
❏ Se soluciona el algoritmo con el lenguaje de programación Prolog, usando la
programación lógica
Referencias Linkográficas
● http://psmheuristica.webnode.com.ve/ejemplos-didacticos/ocho-reinas/
● http://www.it.uc3m.es/jvillena/irc/practicas/06-07/06.pdf
● http://users.dsic.upv.es/~rparedes/teaching/t7eda.pdf
● http://dis.um.es/~domingo/apuntes/AlgProPar/0809/reinas.pdf
● http://iiuji.googlecode.com/hg/Prolog/Tema8.pdf

Weitere ähnliche Inhalte

Was ist angesagt?

Algoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoAlgoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoLutzo Guzmán
 
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.Ana Castro
 
Tecnicas de busqueda en inteligencia artificial
Tecnicas de busqueda en inteligencia artificialTecnicas de busqueda en inteligencia artificial
Tecnicas de busqueda en inteligencia artificialDamelysCarrillo2
 
automatas finitos
 automatas finitos automatas finitos
automatas finitosAnel Sosa
 
BúSqueda Primero En Anchura
BúSqueda Primero En AnchuraBúSqueda Primero En Anchura
BúSqueda Primero En Anchuramapaz91
 
Prueba de poker simulacion DFD
Prueba de poker simulacion DFDPrueba de poker simulacion DFD
Prueba de poker simulacion DFDVitto Alcantara
 
Sistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMSistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMMari Cruz
 
Ejercicios de grafos
Ejercicios de grafosEjercicios de grafos
Ejercicios de grafosTere Suarez
 
Varios Algoritmos Voraces De DecisióN Y OptimizacióN
Varios Algoritmos Voraces De DecisióN Y OptimizacióNVarios Algoritmos Voraces De DecisióN Y OptimizacióN
Varios Algoritmos Voraces De DecisióN Y OptimizacióNSalvador Fernández Fernández
 
Unidad no. 2 búsqueda en espacio de estados
Unidad no. 2   búsqueda en espacio de estadosUnidad no. 2   búsqueda en espacio de estados
Unidad no. 2 búsqueda en espacio de estadosMilton Klapp
 
Métodos de Búsquedas en Inteligencia Artificial
Métodos de Búsquedas en Inteligencia ArtificialMétodos de Búsquedas en Inteligencia Artificial
Métodos de Búsquedas en Inteligencia ArtificialGregorys Gimenez
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoJosé Antonio Sandoval Acosta
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño Ikaolong
 
Algoritmo divide y vencerás
Algoritmo divide y vencerásAlgoritmo divide y vencerás
Algoritmo divide y vencerásloco8888
 

Was ist angesagt? (20)

Algoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoAlgoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamiento
 
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.
 
Tecnicas de busqueda en inteligencia artificial
Tecnicas de busqueda en inteligencia artificialTecnicas de busqueda en inteligencia artificial
Tecnicas de busqueda en inteligencia artificial
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
BúSqueda Primero En Anchura
BúSqueda Primero En AnchuraBúSqueda Primero En Anchura
BúSqueda Primero En Anchura
 
Prueba de poker simulacion DFD
Prueba de poker simulacion DFDPrueba de poker simulacion DFD
Prueba de poker simulacion DFD
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Sistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMSistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUM
 
Recorrido en árboles binarios
Recorrido en árboles binariosRecorrido en árboles binarios
Recorrido en árboles binarios
 
Ejercicios de grafos
Ejercicios de grafosEjercicios de grafos
Ejercicios de grafos
 
Varios Algoritmos Voraces De DecisióN Y OptimizacióN
Varios Algoritmos Voraces De DecisióN Y OptimizacióNVarios Algoritmos Voraces De DecisióN Y OptimizacióN
Varios Algoritmos Voraces De DecisióN Y OptimizacióN
 
Unidad no. 2 búsqueda en espacio de estados
Unidad no. 2   búsqueda en espacio de estadosUnidad no. 2   búsqueda en espacio de estados
Unidad no. 2 búsqueda en espacio de estados
 
Problema de las jarras
Problema de las jarrasProblema de las jarras
Problema de las jarras
 
Métodos de Búsquedas en Inteligencia Artificial
Métodos de Búsquedas en Inteligencia ArtificialMétodos de Búsquedas en Inteligencia Artificial
Métodos de Búsquedas en Inteligencia Artificial
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Proceso del Software
Proceso del Software Proceso del Software
Proceso del Software
 
Algoritmo divide y vencerás
Algoritmo divide y vencerásAlgoritmo divide y vencerás
Algoritmo divide y vencerás
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 

Andere mochten auch

Estructuras De Control Prolog
Estructuras De Control PrologEstructuras De Control Prolog
Estructuras De Control Prologguest4046188
 
Ejercicios en prolog
Ejercicios en prologEjercicios en prolog
Ejercicios en prologJeffoG92
 
Heurísticos en la resolución de problemas
Heurísticos en la resolución de problemasHeurísticos en la resolución de problemas
Heurísticos en la resolución de problemasgjmendietap
 
21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltosRoldan El Gato
 
Metodología para la elaboración de un informe
Metodología para la elaboración de un informeMetodología para la elaboración de un informe
Metodología para la elaboración de un informeliliatorresfernandez
 
Algoritmo de backtracking
Algoritmo de backtrackingAlgoritmo de backtracking
Algoritmo de backtrackingVictor Gonzalez
 

Andere mochten auch (10)

Clase de logica posbc
Clase de logica posbcClase de logica posbc
Clase de logica posbc
 
Estructuras De Control Prolog
Estructuras De Control PrologEstructuras De Control Prolog
Estructuras De Control Prolog
 
Ejercicios en prolog
Ejercicios en prologEjercicios en prolog
Ejercicios en prolog
 
Ejercicios para unidad 1 heurística
Ejercicios para unidad 1 heurísticaEjercicios para unidad 1 heurística
Ejercicios para unidad 1 heurística
 
Resolución de problemas y heurísticas
Resolución de problemas y heurísticasResolución de problemas y heurísticas
Resolución de problemas y heurísticas
 
Heurísticos en la resolución de problemas
Heurísticos en la resolución de problemasHeurísticos en la resolución de problemas
Heurísticos en la resolución de problemas
 
Solución de problemas con algoritmos
Solución de problemas con algoritmosSolución de problemas con algoritmos
Solución de problemas con algoritmos
 
21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos
 
Metodología para la elaboración de un informe
Metodología para la elaboración de un informeMetodología para la elaboración de un informe
Metodología para la elaboración de un informe
 
Algoritmo de backtracking
Algoritmo de backtrackingAlgoritmo de backtracking
Algoritmo de backtracking
 

Ähnlich wie 8 reinas

Slideshare nelson rodriguez
Slideshare nelson rodriguezSlideshare nelson rodriguez
Slideshare nelson rodrigueznelro038
 
Problema de las 8 reinas rebaza castañeda jhoser alberto
Problema de las 8 reinas  rebaza castañeda jhoser albertoProblema de las 8 reinas  rebaza castañeda jhoser alberto
Problema de las 8 reinas rebaza castañeda jhoser albertoJhoser Alberto Rebaza Castaeda
 
12 Solucion De Problemas Con Recursion
12 Solucion De Problemas Con Recursion12 Solucion De Problemas Con Recursion
12 Solucion De Problemas Con RecursionUVM
 
Backtracking (Método de Vuelta Atrás)
Backtracking (Método de Vuelta Atrás)Backtracking (Método de Vuelta Atrás)
Backtracking (Método de Vuelta Atrás)jessenmanuel
 
Int. a la Computación Evolutiva - Informe para cursada
Int. a la Computación Evolutiva - Informe para cursadaInt. a la Computación Evolutiva - Informe para cursada
Int. a la Computación Evolutiva - Informe para cursadamartinp
 
Busqueda por backtracking
Busqueda por backtrackingBusqueda por backtracking
Busqueda por backtrackingCesar Mujica
 
recursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptxrecursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptxjuan gonzalez
 
clase1_TecDiseño_2021.ppsx
clase1_TecDiseño_2021.ppsxclase1_TecDiseño_2021.ppsx
clase1_TecDiseño_2021.ppsxCesarR26
 

Ähnlich wie 8 reinas (20)

8 reinas
8 reinas8 reinas
8 reinas
 
Enfoques
EnfoquesEnfoques
Enfoques
 
Slideshare nelson rodriguez
Slideshare nelson rodriguezSlideshare nelson rodriguez
Slideshare nelson rodriguez
 
Problema de las 8 reinas rebaza castañeda jhoser alberto
Problema de las 8 reinas  rebaza castañeda jhoser albertoProblema de las 8 reinas  rebaza castañeda jhoser alberto
Problema de las 8 reinas rebaza castañeda jhoser alberto
 
Enfoques
EnfoquesEnfoques
Enfoques
 
12 Solucion De Problemas Con Recursion
12 Solucion De Problemas Con Recursion12 Solucion De Problemas Con Recursion
12 Solucion De Problemas Con Recursion
 
Backtracking (Método de Vuelta Atrás)
Backtracking (Método de Vuelta Atrás)Backtracking (Método de Vuelta Atrás)
Backtracking (Método de Vuelta Atrás)
 
Int. a la Computación Evolutiva - Informe para cursada
Int. a la Computación Evolutiva - Informe para cursadaInt. a la Computación Evolutiva - Informe para cursada
Int. a la Computación Evolutiva - Informe para cursada
 
Método de Vuelta Atrás (Backtracking)
Método de Vuelta Atrás (Backtracking)Método de Vuelta Atrás (Backtracking)
Método de Vuelta Atrás (Backtracking)
 
2. Recursividad
2. Recursividad2. Recursividad
2. Recursividad
 
Enfoque
EnfoqueEnfoque
Enfoque
 
Busqueda por backtracking
Busqueda por backtrackingBusqueda por backtracking
Busqueda por backtracking
 
Enfoques
EnfoquesEnfoques
Enfoques
 
Algoritmo simplex
Algoritmo simplexAlgoritmo simplex
Algoritmo simplex
 
Vuelta Atras
Vuelta AtrasVuelta Atras
Vuelta Atras
 
recursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptxrecursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptx
 
recursividad.pptx
recursividad.pptxrecursividad.pptx
recursividad.pptx
 
Matriz inversa
Matriz inversaMatriz inversa
Matriz inversa
 
Matriz inversa
Matriz inversaMatriz inversa
Matriz inversa
 
clase1_TecDiseño_2021.ppsx
clase1_TecDiseño_2021.ppsxclase1_TecDiseño_2021.ppsx
clase1_TecDiseño_2021.ppsx
 

Mehr von Daniel Cam Urquizo

Patrones de diseño y frameworks
Patrones de diseño y frameworksPatrones de diseño y frameworks
Patrones de diseño y frameworksDaniel Cam Urquizo
 
Patrones de Diseño y Frameworks
Patrones de Diseño y FrameworksPatrones de Diseño y Frameworks
Patrones de Diseño y FrameworksDaniel Cam Urquizo
 
Quadratic Sieve, algoritmos y ejemplos
Quadratic Sieve, algoritmos y ejemplosQuadratic Sieve, algoritmos y ejemplos
Quadratic Sieve, algoritmos y ejemplosDaniel Cam Urquizo
 
Tecnicas de busqueda por similitud de patrones
Tecnicas de busqueda por similitud de patronesTecnicas de busqueda por similitud de patrones
Tecnicas de busqueda por similitud de patronesDaniel Cam Urquizo
 
Dispositivos que se usan para detectar el olor y el sabor y su aplicacion en ...
Dispositivos que se usan para detectar el olor y el sabor y su aplicacion en ...Dispositivos que se usan para detectar el olor y el sabor y su aplicacion en ...
Dispositivos que se usan para detectar el olor y el sabor y su aplicacion en ...Daniel Cam Urquizo
 
Clasificacion de sistemas de informacion
Clasificacion de sistemas de informacionClasificacion de sistemas de informacion
Clasificacion de sistemas de informacionDaniel Cam Urquizo
 
Aplicacion de descriptores de sonido
Aplicacion de descriptores de sonidoAplicacion de descriptores de sonido
Aplicacion de descriptores de sonidoDaniel Cam Urquizo
 
Aplicación grafica para aprendizaje multimedia sobre representación de patolo...
Aplicación grafica para aprendizaje multimedia sobre representación de patolo...Aplicación grafica para aprendizaje multimedia sobre representación de patolo...
Aplicación grafica para aprendizaje multimedia sobre representación de patolo...Daniel Cam Urquizo
 
Identificacion de voz usando wavelets
Identificacion de voz usando waveletsIdentificacion de voz usando wavelets
Identificacion de voz usando waveletsDaniel Cam Urquizo
 

Mehr von Daniel Cam Urquizo (13)

OOSE
OOSEOOSE
OOSE
 
Patrones de diseño y frameworks
Patrones de diseño y frameworksPatrones de diseño y frameworks
Patrones de diseño y frameworks
 
Patrones de Diseño y Frameworks
Patrones de Diseño y FrameworksPatrones de Diseño y Frameworks
Patrones de Diseño y Frameworks
 
Quadratic Sieve, algoritmos y ejemplos
Quadratic Sieve, algoritmos y ejemplosQuadratic Sieve, algoritmos y ejemplos
Quadratic Sieve, algoritmos y ejemplos
 
Tecnicas de busqueda por similitud de patrones
Tecnicas de busqueda por similitud de patronesTecnicas de busqueda por similitud de patrones
Tecnicas de busqueda por similitud de patrones
 
Dispositivos que se usan para detectar el olor y el sabor y su aplicacion en ...
Dispositivos que se usan para detectar el olor y el sabor y su aplicacion en ...Dispositivos que se usan para detectar el olor y el sabor y su aplicacion en ...
Dispositivos que se usan para detectar el olor y el sabor y su aplicacion en ...
 
Sonido en el hombre
Sonido en el hombreSonido en el hombre
Sonido en el hombre
 
Clasificacion de sistemas de informacion
Clasificacion de sistemas de informacionClasificacion de sistemas de informacion
Clasificacion de sistemas de informacion
 
Base de datos multimedia
Base de datos multimediaBase de datos multimedia
Base de datos multimedia
 
Aplicacion de descriptores de sonido
Aplicacion de descriptores de sonidoAplicacion de descriptores de sonido
Aplicacion de descriptores de sonido
 
Aplicación grafica para aprendizaje multimedia sobre representación de patolo...
Aplicación grafica para aprendizaje multimedia sobre representación de patolo...Aplicación grafica para aprendizaje multimedia sobre representación de patolo...
Aplicación grafica para aprendizaje multimedia sobre representación de patolo...
 
Identificacion de voz usando wavelets
Identificacion de voz usando waveletsIdentificacion de voz usando wavelets
Identificacion de voz usando wavelets
 
proyeccion oblicua
proyeccion oblicuaproyeccion oblicua
proyeccion oblicua
 

Kürzlich hochgeladen

SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosBBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosNeo4j
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...FabianCruz73
 
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...Neo4j
 
Tipos de pensamiento y pensamiento lógico
Tipos de pensamiento y pensamiento lógicoTipos de pensamiento y pensamiento lógico
Tipos de pensamiento y pensamiento lógicoMaxCaldern2
 
Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfAnaRosaMontenegro
 
SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxRAMIROANTONIOGALINDO
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.CZSOTEC
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptxmaykolmagallanes012
 
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Neo4j
 

Kürzlich hochgeladen (11)

SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosBBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
 
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
 
Tipos de pensamiento y pensamiento lógico
Tipos de pensamiento y pensamiento lógicoTipos de pensamiento y pensamiento lógico
Tipos de pensamiento y pensamiento lógico
 
Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdf
 
SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptx
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptx
 
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
 

8 reinas

  • 1. UNIVERSIDAD NACIONAL DE Trujillo FACULTAD : Ciencias Físicas y Matemáticas CURSO : Programación lógica PROFESOR : Arturo Díaz Pulido SECCIÓN : Mañana ALUMNOS : Barreto Valderrama Lizbeth Cam Urquizo Daniel Gutiérrez Romero Fabio CICLO : VII
  • 2. Índice Dedicatoria…………………………………………………………………………………..1 Introducción………………………………………………………………………………….3 Marco Teórico……………………………………………………………………………….4 Capitulo I Planteamiento del problema…………………………………………...5 Capítulo II Solución con búsqueda con retroceso Backtracking……………….5 Capítulo III Pseudocódigo del algoritmo y explicación del código(PROLOG)...6 Capítulo IV Código…………………………………………………………………. 9 Conclusiones………………………………………………………………………………. 10 Referencias Linkográficas……………………………………………………………….. 10
  • 3. Dedicatoria El presente trabajo titulado “El Problema de las 8 Reinas” esta dedicado a todas aquellas personas interesadas en aprender acerca de este algoritmo. El cual es un tema muy interesante que utiliza la lógica y nos ayuda a desarrollar nuestra capacidad de razonamiento. Esta dedicado a todos los estudiantes y en especial a aquellos que estudien la materia Programación Lógica, pues podrán obtener información valiosa que les ayudará a tener una mayor comprensión y a saber un poco más acerca de este interesante tema. También esta dedicado a nuestro profesor de curso, quien nos dio las debidas orientaciones y nociones básicas del curso, para poder hallar la solución apropiada a dicho problema.
  • 4. Introducción Los problemas que no tienen solución determinista que se ejecutan en tiempo polinomial se denominan problemas de tipo NP. Debido a su elevada complejidad (O(2^n) o O(n!)), deben ser resueltas en una cantidad de tiempo razonable empleando métodos heurísticos. El problema fue originalmente propuesto en 1848 por el ajedrecista Max Bezzel, y durante los años, muchos matemáticos, incluyendo a Gauss y a Georg Cantor, han trabajado en este problema y lo han generalizado a n-reinas. Las primeras soluciones fueron ofrecidas por Franz Nauck en 1850. Nauck también se abocó a las n-reinas (en un tablero de nxn de tamaño arbitrario). En 1874, S. Günther propuso un método para hallar las soluciones usando determinantes, y J.W.L. Glaisher redefinió su aproximación. Edsger Dijkstra usó este problema en 1972 para ilustrar el poder de la llamada programación estructurada. Él publicó una descripción altamente detallada del desarrollo del algoritmo de backtracking, "depth-first". Este acertijo apareció en el popular juego de computadora de los '90 llamado "The 7th Guest". Consiste en la manera de situar 8 reinas en un tablero de ajedrez, sin que puedan "amenazarse", es decir, que ninguna esté en la misma fila, columna o diagonal que la otra. Es interesante estudiar esta problemática que ha sido resuelta de varias maneras, pero siempre con una premisa por delante, usar una estrategia heurística para resolverla. La fórmula más común consiste en el Backtracking. Este procedimiento consiste en ir ubicando las piezas recordando la posición de las anteriores. Si por algún motivo una no puede ser ubicada, volver hacia movimientos anteriores para seguir tratando por otro camino.
  • 5. El Problema de las 8 Reinas Marco Teórico Capitulo I Planteamiento del problema El problema original de ocho reinas es intentar encontrar un forma de colocar a ocho reinas en un tablero de ajedrez de modo que no se vean amenazadas una a la otra. Es decir que un tablero de 8x8, ninguna de las reinas comparta un fila, columna o diagonal debido a que cada reina puede amenazar a todas las reinas que estén en la misma fila, columna o diagonal. Existen 92 soluciones a este problema, de las cuales 12 tienen un patrón distinto. Cada una de las 92 soluciones puede ser transformada en una de estos 12 patrones, utilizando rotaciones y reflexiones. En el ajedrez, la reina puede moverse en la medida de lo que le plazca, en horizontal, vertical o diagonal. Un tablero de ajedrez tiene 8 filas y 8 columnas. El estándar del problema Reina 8x8 le pregunta cómo colocar 8 reinas en un tablero de ajedrez ordinario de manera que ninguno de ellos puede tocar cualquier otra en un movimiento. Podemos representar las 8 reinas mediante un vector[1-8], teniendo en cuenta que cada índice del vector representa una fila y el valor una columna. Así cada reina estaría en la posición (i, v[i]) para i = 1-8. Capítulo II Solución con búsqueda con retroceso Backtracking El paradigma Backtracking es un método más eficiente que el paradigma de generación y prueba. Consiste en que las variables se instancian secuencialmente y tan pronto como las variables relevantes a una restricción están instanciadas, se comprueba la validez de esa restricción. Si una instanciación parcial viola una restricción, se hace marcha atrás (backtracking) reconsiderando la última decisión tomada en el proceso de búsqueda, es decir, la variable que se ha instanciado más recientemente y que aún dispone de valores alternativos disponibles, se instancia a otro valor posible.
  • 6. El paradigma backtracking es capaz de eliminar un subespacio de todos los valores del producto cartesiano de los dominios de las variables. Aun así tiene un coste exponencial. La principal causa de ineficiencia del paradigma de backtracking es que la búsqueda en diferentes partes del espacio falla debido al nodo-inconsistencia. El nodo-inconsistencia se da cuando un valor de un dominio de una variable no satisface la restricción unaria de la variable, con lo cual la instanciación de esa variable a ese valor siempre resulta en un fallo inmediato. El nodo-consistencia puede conseguirse eliminando los valores del dominio de la variable que no satisfagan la restricción unaria. Un estado puede dividirse en otros estados fijando otro elemento de la tupla, generando un proceso de ramificación que parte de un estado inicial y que induce el árbol de estados. El estado inicial es la raíz del árbol de estados y contiene implícitamente todo el espacio de soluciones. Si el árbol de estados tiene un n´umero elevado de nodos, ser´a imposible construirlo explícitamente antes de aplicar una de las técnicas de recorrido. Se puede utilizar un “árbol implícito”, en el sentido de que se van construyendo sus parte relevantes a medida que avanza el proceso de recorrido.
  • 7. Capítulo III Pseudocódigo del algoritmo y explicación del código(PROLOG) Sabemos que el problema consiste en ubicar las reinas en el tablero de ajedrez de manera que ningún par de ellas se amenace.Necesitamos una representación para la solución, usaremos una lista de la siguiente forma: donde el par [i,Yi] representan las coordenadas de la reina i en el tablero, claramente no puede haber más de una reina por columna. El siguiente predicado genera/1 genera las distintas configuraciones del tablero. Ahora necesitamos un predicado para determinar si una configuración es tal que las reinas no se ataquen, lo hacemos verificando la lista por partes de izquierda a derecha Esta regla establece que en la configuración las reinas no se atacan si la primera reina no ataca a las restantes (no ataca(X,L)) y las restantes no se atacan. El caso base es una configuración vacía. Ahora generamos y comprobamos Esto da solución al problema, pero no es muy eficiente, de hecho comprobamos en PROLOG el tiempo de ejecución.
  • 8. Entonces como hay muchas configuraciones que estamos generando sabemos q las reinas siempre están en distintas filas entonces podemos descartar a priori modificando el predicado genera/1. Ahora medimos el tiempo en la misma máquina. 206 veces más rápido, 99.515% del tiempo anterior. Calculamos la cantidad de soluciones que deberían ser 92 por lo antes mencionado con el siguiente predicado cantidadSol/1.
  • 9. Capítulo IV Código Conclusiones ❏ El problema de las 8 Reinas es un problema NP-completo que se puede también ser para una cantidad mayor de reinas N reinas a partir de N = 4 en un tablero de NxN. ❏ El problema puede ser resuelto con algoritmos de backtracking o vuelta atrás, de forma que recorra el árbol en búsqueda en anchura. ❏ Se soluciona el algoritmo con el lenguaje de programación Prolog, usando la programación lógica Referencias Linkográficas ● http://psmheuristica.webnode.com.ve/ejemplos-didacticos/ocho-reinas/ ● http://www.it.uc3m.es/jvillena/irc/practicas/06-07/06.pdf ● http://users.dsic.upv.es/~rparedes/teaching/t7eda.pdf ● http://dis.um.es/~domingo/apuntes/AlgProPar/0809/reinas.pdf ● http://iiuji.googlecode.com/hg/Prolog/Tema8.pdf