SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
Problema de las N Reinas
Resolución paralela
Indice
Introducción al problema
Representación y Soluciones
Resolución secuencial
Resolución paralela
Conclusiones
Bibliografía
2
Introducción
3
Introducción
El problema de las N reinas consiste en
situar N reinas en un tablero de ajedrez de
NxN sin que se amenacen entre ellas.
Una reina amenaza a otra si está en la
misma fila, columna o diagonal.
4
Introducción
Movimientos posibles de una reina en el
tablero:
5
Representación y Soluciones
6
Representación
Para representar el problema, se podría
plantear como una matriz de NxN
enteros, donde un 1 significa que la reina
está en esa posición, y un 0 que la casilla
está vacía.
Representación ineficiente, se usa más
espacio del necesario.
7
Representación
Otra opción es hacer uso de un vector de
N enteros, donde cada posición
corresponde a una columna del tablero, y
el entero representa la fila en la que se
encuentra la reina dentro de dicha
columna.
Más eficiente y más sencilla de usar.
8
Soluciones
Como cada posición del vector representa
una columna, no pueden situarse dos
reinas en la misma columna.
Si el vector tiene varios enteros iguales,
quiere decir que esas reinas están en la
misma fila, por lo que sería incorrecta la
solución.
Queda el problema de las diagonales.
9
Soluciones
Dos reinas están en la misma diagonal si:
Mismo valor de fila - columna
(Diagonal descendente)
Mismo valor de fila + columna
(Diagonal ascendente)
10
Soluciones
Una posible solución en un tablero de N=8:
S=(6,4,2,0,5,7,1,3)
11
Resolución secuencial
12
Resolución secuencial
La solución secuencial se podría plantear
como un backtracking.
Complejidad: O(n!)
Problema: Poco eficiente, para tamaño
grande del tablero puede tardar
demasiado.
13
Resolución secuencial
Otra posibilidad es usar una bolsa de
tareas.
Eliminamos los vectores que no sean
prometedores, es decir, que al tratar de
situar una nueva reina ésta amenace a
alguna otra.
14
Resolución secuencial
Dada una configuración inicial del
tablero, se intenta colocar una reina en
cada fila de la columna actual,
generándose nuevas configuraciones que
se insertan en la bolsa de tareas.
Esta será la versión tomada como base
para la solución paralela.
15
Resolución paralela
16
Resolución paralela
La solución inmediata en OpenMP sería
que cada hilo tomase una tarea de la
bolsa, genere las tareas correspondientes
a partir de ella, y repetir esto hasta que no
queden tareas.
17
Resolución paralela
En MPI se puede plantear de forma
similar, con gestión de tareas, solo que
habrá un nodo maestro que controle las
tareas por realizar, y los demás nodos son
los encargados de pedir tareas y enviar
las nuevas al master.
En este caso pueden darse varias
opciones:
18
Resolución paralela
El nodo maestro genera una sola
configuración inicial, y cada uno de los
nodos siguientes van generando nuevas
configuraciones e insertándolas en la
bolsa.
En este caso se producen grandes
cantidades de comunicaciones.
19
Resolución paralela
Otra opción es que el nodo maestro
genere una cantidad inicial de tareas a
resolver, y luego las reparta entre todos
los nodos.
El reparto puede ser dinámico o estático.
En este caso las comunicaciones se
reducen al principio para repartir, y al
final para obtener los resultados.
20
Conclusiones
21
Conclusiones
A priori, antes de realizar los desarrollos
y las pruebas, se pueden sacar una serie
de conclusiones interesantes.
La opción de una tarea inicial y que cada
nodo genere y añada a la bolsa parece más
interesante para OpenMP, por la cantidad de
comunicaciones que se producirían en MPI.
22
Conclusiones
Si en la versión con tareas iniciales, el reparto
es estático, se puede producir desequilibrio en
la carga de trabajo.
El reparto de las tareas de forma dinámica
puede solucionar el problema del
desequilibrio en la cantidad de tareas, pero
ampliará el número de comunicaciones entre
el nodo maestro y el resto.
23
Bibliografía
24
Bibliografía
Introducción a la Programación Paralela
http://es.wikipedia.org/wiki/Problema_de_las_ocho_reinas
http://euitio178.ccu.uniovi.es/wiki/index.php/TP:n_reinas_-
_Backtracking
http://www.lcc.uma.es/~av/Libro/CAP7.pdf
http://itaim.vtrbandaancha.net/paper/nreinas3.pdf
25

Más contenido relacionado

La actualidad más candente

Programación de nivel básico 3. c1. p3.
Programación de nivel básico 3. c1. p3.Programación de nivel básico 3. c1. p3.
Programación de nivel básico 3. c1. p3.DENIRAMIREZANDRADE
 
Exposicion de teoria2
Exposicion de teoria2Exposicion de teoria2
Exposicion de teoria2Carlos Manuel
 
Criptosistemas de cifrado en flujo
Criptosistemas de cifrado en flujoCriptosistemas de cifrado en flujo
Criptosistemas de cifrado en flujoCalzada Meza
 
⭐⭐⭐⭐⭐ RESUMEN DE PASOS EN IMPLEMENTACION DE SD (2do Parcial)
⭐⭐⭐⭐⭐ RESUMEN DE PASOS EN IMPLEMENTACION DE SD  (2do Parcial)⭐⭐⭐⭐⭐ RESUMEN DE PASOS EN IMPLEMENTACION DE SD  (2do Parcial)
⭐⭐⭐⭐⭐ RESUMEN DE PASOS EN IMPLEMENTACION DE SD (2do Parcial)Victor Asanza
 
Asignacion 3. microcomputadoras
Asignacion 3. microcomputadoras Asignacion 3. microcomputadoras
Asignacion 3. microcomputadoras AronisH12
 

La actualidad más candente (6)

Programación de nivel básico 3. c1. p3.
Programación de nivel básico 3. c1. p3.Programación de nivel básico 3. c1. p3.
Programación de nivel básico 3. c1. p3.
 
Fractales
FractalesFractales
Fractales
 
Exposicion de teoria2
Exposicion de teoria2Exposicion de teoria2
Exposicion de teoria2
 
Criptosistemas de cifrado en flujo
Criptosistemas de cifrado en flujoCriptosistemas de cifrado en flujo
Criptosistemas de cifrado en flujo
 
⭐⭐⭐⭐⭐ RESUMEN DE PASOS EN IMPLEMENTACION DE SD (2do Parcial)
⭐⭐⭐⭐⭐ RESUMEN DE PASOS EN IMPLEMENTACION DE SD  (2do Parcial)⭐⭐⭐⭐⭐ RESUMEN DE PASOS EN IMPLEMENTACION DE SD  (2do Parcial)
⭐⭐⭐⭐⭐ RESUMEN DE PASOS EN IMPLEMENTACION DE SD (2do Parcial)
 
Asignacion 3. microcomputadoras
Asignacion 3. microcomputadoras Asignacion 3. microcomputadoras
Asignacion 3. microcomputadoras
 

Destacado

Destacado (7)

Simple present examples from song cheerleader
Simple present   examples from song cheerleaderSimple present   examples from song cheerleader
Simple present examples from song cheerleader
 
Tuvales
TuvalesTuvales
Tuvales
 
Pena de muerte en México
Pena de muerte en MéxicoPena de muerte en México
Pena de muerte en México
 
Wh questions with be -3 pictures
Wh questions with be -3 picturesWh questions with be -3 pictures
Wh questions with be -3 pictures
 
Propuesta para un diseño de curso en línea
Propuesta para un diseño de curso en líneaPropuesta para un diseño de curso en línea
Propuesta para un diseño de curso en línea
 
Surabhi Saraogi
Surabhi SaraogiSurabhi Saraogi
Surabhi Saraogi
 
NiclesResume 2016
NiclesResume 2016 NiclesResume 2016
NiclesResume 2016
 

Similar a Reinas

Similar a Reinas (20)

Enfoques.
Enfoques.Enfoques.
Enfoques.
 
Enfoques
EnfoquesEnfoques
Enfoques
 
Unidad3 metodo simplex
Unidad3 metodo simplexUnidad3 metodo simplex
Unidad3 metodo simplex
 
Tarea de sistema de ecuaciones lineales
Tarea de sistema de ecuaciones linealesTarea de sistema de ecuaciones lineales
Tarea de sistema de ecuaciones lineales
 
Redes de propagación hacia delante y aprendizaje supervisado
Redes de propagación hacia delante   y aprendizaje supervisadoRedes de propagación hacia delante   y aprendizaje supervisado
Redes de propagación hacia delante y aprendizaje supervisado
 
PROGRAMACION LINEAL METODO SIMPLEX
PROGRAMACION LINEAL METODO SIMPLEXPROGRAMACION LINEAL METODO SIMPLEX
PROGRAMACION LINEAL METODO SIMPLEX
 
PROGRAMACION LINEAL "METODO SIMPLEX"
PROGRAMACION LINEAL "METODO SIMPLEX"PROGRAMACION LINEAL "METODO SIMPLEX"
PROGRAMACION LINEAL "METODO SIMPLEX"
 
Mapas de karnaugh
Mapas de karnaughMapas de karnaugh
Mapas de karnaugh
 
Procedimiento-Método Símplex
Procedimiento-Método SímplexProcedimiento-Método Símplex
Procedimiento-Método Símplex
 
Algoritmo simplex
Algoritmo simplexAlgoritmo simplex
Algoritmo simplex
 
Enfoques
EnfoquesEnfoques
Enfoques
 
Sistemas ecuaciones naudy
Sistemas ecuaciones naudySistemas ecuaciones naudy
Sistemas ecuaciones naudy
 
Vuelta Atras
Vuelta AtrasVuelta Atras
Vuelta Atras
 
Método Simplex Mercadotecnia Análisis de Decisiones Equipo 2
Método Simplex Mercadotecnia Análisis de Decisiones Equipo 2 Método Simplex Mercadotecnia Análisis de Decisiones Equipo 2
Método Simplex Mercadotecnia Análisis de Decisiones Equipo 2
 
52101.pdf
52101.pdf52101.pdf
52101.pdf
 
INF_JARCH
INF_JARCHINF_JARCH
INF_JARCH
 
8 reinas
8 reinas8 reinas
8 reinas
 
Unidad3
Unidad3Unidad3
Unidad3
 
Unidad3 (1)
Unidad3 (1)Unidad3 (1)
Unidad3 (1)
 
Resolver ecuaciones lineales y no lineales bueno
Resolver ecuaciones lineales y no lineales buenoResolver ecuaciones lineales y no lineales bueno
Resolver ecuaciones lineales y no lineales bueno
 

Último

Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 

Último (11)

Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 

Reinas

  • 1. Problema de las N Reinas Resolución paralela
  • 2. Indice Introducción al problema Representación y Soluciones Resolución secuencial Resolución paralela Conclusiones Bibliografía 2
  • 4. Introducción El problema de las N reinas consiste en situar N reinas en un tablero de ajedrez de NxN sin que se amenacen entre ellas. Una reina amenaza a otra si está en la misma fila, columna o diagonal. 4
  • 5. Introducción Movimientos posibles de una reina en el tablero: 5
  • 7. Representación Para representar el problema, se podría plantear como una matriz de NxN enteros, donde un 1 significa que la reina está en esa posición, y un 0 que la casilla está vacía. Representación ineficiente, se usa más espacio del necesario. 7
  • 8. Representación Otra opción es hacer uso de un vector de N enteros, donde cada posición corresponde a una columna del tablero, y el entero representa la fila en la que se encuentra la reina dentro de dicha columna. Más eficiente y más sencilla de usar. 8
  • 9. Soluciones Como cada posición del vector representa una columna, no pueden situarse dos reinas en la misma columna. Si el vector tiene varios enteros iguales, quiere decir que esas reinas están en la misma fila, por lo que sería incorrecta la solución. Queda el problema de las diagonales. 9
  • 10. Soluciones Dos reinas están en la misma diagonal si: Mismo valor de fila - columna (Diagonal descendente) Mismo valor de fila + columna (Diagonal ascendente) 10
  • 11. Soluciones Una posible solución en un tablero de N=8: S=(6,4,2,0,5,7,1,3) 11
  • 13. Resolución secuencial La solución secuencial se podría plantear como un backtracking. Complejidad: O(n!) Problema: Poco eficiente, para tamaño grande del tablero puede tardar demasiado. 13
  • 14. Resolución secuencial Otra posibilidad es usar una bolsa de tareas. Eliminamos los vectores que no sean prometedores, es decir, que al tratar de situar una nueva reina ésta amenace a alguna otra. 14
  • 15. Resolución secuencial Dada una configuración inicial del tablero, se intenta colocar una reina en cada fila de la columna actual, generándose nuevas configuraciones que se insertan en la bolsa de tareas. Esta será la versión tomada como base para la solución paralela. 15
  • 17. Resolución paralela La solución inmediata en OpenMP sería que cada hilo tomase una tarea de la bolsa, genere las tareas correspondientes a partir de ella, y repetir esto hasta que no queden tareas. 17
  • 18. Resolución paralela En MPI se puede plantear de forma similar, con gestión de tareas, solo que habrá un nodo maestro que controle las tareas por realizar, y los demás nodos son los encargados de pedir tareas y enviar las nuevas al master. En este caso pueden darse varias opciones: 18
  • 19. Resolución paralela El nodo maestro genera una sola configuración inicial, y cada uno de los nodos siguientes van generando nuevas configuraciones e insertándolas en la bolsa. En este caso se producen grandes cantidades de comunicaciones. 19
  • 20. Resolución paralela Otra opción es que el nodo maestro genere una cantidad inicial de tareas a resolver, y luego las reparta entre todos los nodos. El reparto puede ser dinámico o estático. En este caso las comunicaciones se reducen al principio para repartir, y al final para obtener los resultados. 20
  • 22. Conclusiones A priori, antes de realizar los desarrollos y las pruebas, se pueden sacar una serie de conclusiones interesantes. La opción de una tarea inicial y que cada nodo genere y añada a la bolsa parece más interesante para OpenMP, por la cantidad de comunicaciones que se producirían en MPI. 22
  • 23. Conclusiones Si en la versión con tareas iniciales, el reparto es estático, se puede producir desequilibrio en la carga de trabajo. El reparto de las tareas de forma dinámica puede solucionar el problema del desequilibrio en la cantidad de tareas, pero ampliará el número de comunicaciones entre el nodo maestro y el resto. 23
  • 25. Bibliografía Introducción a la Programación Paralela http://es.wikipedia.org/wiki/Problema_de_las_ocho_reinas http://euitio178.ccu.uniovi.es/wiki/index.php/TP:n_reinas_- _Backtracking http://www.lcc.uma.es/~av/Libro/CAP7.pdf http://itaim.vtrbandaancha.net/paper/nreinas3.pdf 25