Problema de las N Reinas. Resolución paralela

Problema de las N Reinas Resolución paralela Indice Introducción al problema Representación y Soluciones Resolución secuencial Resolución paralela C

1 downloads 40 Views 4MB Size

Recommend Stories


Bases del concurso para elección de reinas de las fiestas
Bases del concurso para elección de reinas de las fiestas BASES ELECCION DE REINA DE LAS FIESTAS DEL AYUNTAMIENTO DE LA VILLA DE LA MATANZA DE ACENTEJ

PLANTEAMIENTO DEL PROBLEMA DE INVESTIGACIO N
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE CIENCIAS MÉDICAS UNIDAD DIDÁCTICA DE INVESTIGACIÓN I PLANTEAMIENTO DEL PROBLEMA DE INVESTIGACION I

Story Transcript

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

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.