ALGORITMOS DE BÚSQUEDA

61
1 ALGORITMOS DE BÚSQUEDA Manuel Nicolás Ortuño Miguel Ángel Sánchez-Guerra Panadero

description

ALGORITMOS DE BÚSQUEDA. Manuel Nicolás Ortuño Miguel Ángel Sánchez-Guerra Panadero. Introducción. Definiciones del problema de la búsqueda Ejemplo 8-puzzle Estimación heurística. Definiciones del problema de la búsqueda. - PowerPoint PPT Presentation

Transcript of ALGORITMOS DE BÚSQUEDA

Page 1: ALGORITMOS DE BÚSQUEDA

1

ALGORITMOS DE BÚSQUEDA

Manuel Nicolás Ortuño

Miguel Ángel Sánchez-Guerra Panadero

Page 2: ALGORITMOS DE BÚSQUEDA

2

Introducción

• Definiciones del problema de la búsqueda

• Ejemplo 8-puzzle

• Estimación heurística

Page 3: ALGORITMOS DE BÚSQUEDA

3

Definiciones del problema de la búsqueda

• Un problema de optimización discreta se puede expresar como una tupla (S,f).– S conjunto de todas las soluciones que

satisfacen las restricciones.– f función de coste:

– f: S

• Encontrar xo talque f(xo) f(x) xS.

Page 4: ALGORITMOS DE BÚSQUEDA

4

Ejemplo 8-puzzle (I)

Estado inicial Estado final

1 2 3

4 5 6

7 8

5 2

1 8 3

4 7 6

S = Conjunto de todas las secuencias de movimientos que conducen del estado inicial al estado final.

f = Número de movimientos en la secuencia.

Page 5: ALGORITMOS DE BÚSQUEDA

5

Ejemplo 8-puzzle (y II)

5 2

1 8 3

4 7 6

1 5 2

8 3

4 7 6

1 5 2

4 8 3

7 6

1 5 2

4 8 3

7 6

1 5 2

4 3

7 8 6

1 2

4 5 3

7 8 6

1 2

4 5 3

7 8 6

1 2 3

4 5

7 8 6

1 2 3

4 5 6

7 8

Arriba Arriba Izqda. Abajo

Abajo

Izqda.ArribaArriba

Estado inicial

Estado final

Page 6: ALGORITMOS DE BÚSQUEDA

6

Estimación heurística

• l(x): Función de búsqueda. Coste de llegar del estado inicial al estado final pasando por el estado x.

• h(x): Función heurística. Coste estimado de llegar desde x al estado final.

• g(x): Coste de llegar desde el estado inicial al estado x.• l(x) = g(x) + h(x)• h(x) es admisible si es una cota inferior del coste de llegar

al estado final desde el estado x, x.• Si h es admisible entonces l(x) es una cota inferior del

coste del camino al estado final, desde el estado inicial pasando por x.

Page 7: ALGORITMOS DE BÚSQUEDA

7

Estimación heurística, 8-puzzle

• Se numerarán las casillas del puzzle por la tupla (nº fila, nº columna), siendo la casilla (1,1) la de arriba a la izquierda. Y la casilla (3,3) la de abajo a la derecha.

• Se define la distancia de Manhattan entre las casillas (i,j) y (k,l) como |i-k|+|j-l|.

• Esta distancia estima el número de movimientos para pasar de la posición inicial a la posición final.

• Si consideramos h(x) igual a la distancia de Manhattan, se cumple que h(x) es admisible.

Page 8: ALGORITMOS DE BÚSQUEDA

8

Algoritmos de búsqueda secuenciales

• Búsqueda en profundidad (DFS).

• Backtracking simple.

• Búsqueda en profundidad Branch-and-Bound (DFBB).

• IDA* (Iterative Deepening A*).

• Búsqueda mejor nodo (BFS).

Page 9: ALGORITMOS DE BÚSQUEDA

9

Búsqueda en profundidad

• Depth-First Search (DFS).– Utilizado para búsqueda en árboles.– Inicialmente se expande el nodo inicial y se

generan sus sucesores.– En el siguiente paso se expande el nodo más

reciente generado.– Si el nodo no tiene sucesores o no conduce a

una solución se retrocede y se expande otro nodo diferente.

Page 10: ALGORITMOS DE BÚSQUEDA

10

Backtracking simple

• Método de búsqueda en profundidad.• Termina encontrando la primera solución.• No se garantiza encontrar la solución de mínimo

coste (optima).• No utiliza información heurística para elegir el

sucesor a expandir.• Existe una variante llamada Backtracking

ordenado que si utiliza información heurística.

Page 11: ALGORITMOS DE BÚSQUEDA

11

Búsqueda en profundidad Branch-and-Bound

• Depth-First Branch-and-Bound (DFBB).• Continúa buscando después de encontrar una

solución, de manera que actualiza el mejor camino solución.

• Poda los caminos solución que conducen a una peor solución.

• Algoritmo muy dependiente de la función heurística. Posible poda de nodos que mejoran el camino solución.

Page 12: ALGORITMOS DE BÚSQUEDA

12

IDA* (Iterative Deepening A*)

• Utiliza la función l(x) = g(x) + h(x) para guiar la búsqueda.

• g es una estimación de lo que se ha recorrido.• h (función heurística) es una estimación de lo que queda

por recorre.• l es una estimación del camino solución desde el nodo

inicial pasando por x.• Se garantiza solución si cada nodo tiene un número de

descendiente finito.• Si la función h nunca sobreestima a un nodo entonces se

encuentra solución optima.

Page 13: ALGORITMOS DE BÚSQUEDA

13

Búsqueda mejor nodo (I)

• Válido para árboles y grafos.• Asigna el valor heurístico menor a los nodos más

prometedores.• Se mantienen dos listas, abiertos y cerrados.• Al expandir un nodo sus sucesores se introducen en

la lista de abiertos.• Un nodo ya expandido se introduce en la lista de

cerrados.• La lista de abiertos se ordena por el valor heurístico.

Page 14: ALGORITMOS DE BÚSQUEDA

14

Búsqueda mejor nodo (y II)

• El sucesor de un nodo expandido se pone en la lista de abiertos si:– El sucesor no esta en la lista de abiertos ni en la

lista de cerrados.– El sucesor esta en la lista de abiertos o cerrados

pero su valor heurístico es menor, el nodo con mayor valor heurístico se borra. (se puede mejorar el algoritmo recalculando el valor heurístico de los nodos sucesores).

Page 15: ALGORITMOS DE BÚSQUEDA

15

Búsqueda paralela

• Para mejorar la búsqueda en los algoritmos secuenciales podemos utilizar varios procesadores colaborando entre ellos, cada uno de los cuales busca en una parte del árbol de búsqueda.

• Idealmente el tiempo de búsqueda se reduciría en proporción al número de procesadores que colaboran en la búsqueda.

• Hay que tener en cuenta el factor de sobrecarga introducido, por la colaboración de los procesadores, que reduce el Speedup.

Page 16: ALGORITMOS DE BÚSQUEDA

16

Factor de sobrecarga

• Se incluye sobrecarga por los siguientes motivos:

1. Sobrecarga por la comunicación.2. Sobrecarga por tiempo inactivo del procesador,

debido a problemas de balanceo de la carga.3. Problemas con la estructura de datos compartida.

(compartición de datos, exclusión mutua, ...).

• Factor de sobrecarga en la búsqueda: Wp/W– W carga de trabajo de un procesador.– Wp carga de trabajo de p procesadores.

Page 17: ALGORITMOS DE BÚSQUEDA

17

Algoritmos paralelos de Búsqueda

• Búsqueda en profundidad paralela

• Búsqueda de mejor nodo paralela

Page 18: ALGORITMOS DE BÚSQUEDA

18

Búsqueda en profundidad paralela.Problema.

• Uno de los problemas de este algoritmo es la distribución del espacio de búsqueda en cada procesador.

Fig.1 Fig.2

Page 19: ALGORITMOS DE BÚSQUEDA

19

Búsqueda en profundidad paralela.Balanceo de la carga.

• Existen dos alternativas a la hora de distribuir la carga de trabajo entre los procesadores.– Balanceo estático de la carga.

• Se particiona el árbol de búsqueda siempre de la misma forma, lo que asigna más trabajo a unos procesadores que a otros.

– Balanceo dinámico de la carga.• Inicialmente el espacio de búsqueda es asignado a un

procesador, y los otros procesadores no tienen trabajo.• Cuando un procesador está inactivo, solicita trabajo.• El procesador que tiene trabajo se llama donador, y el

procesador que solicita y recibe trabajo se llama receptor.• Un procesador puede estar en dos fases: activo o inactivo.

Page 20: ALGORITMOS DE BÚSQUEDA

20

Búsqueda en profundidad paralela.Balanceo dinámico. Parámetros importantes.

• Estrategias de particionado del trabajo.

• Esquemas de balanceo de carga.Round Robin Asincrono (ARR, Asinchronous

Round Robin).Round Robin Global (GRR, Global Round

Robin).Elección aleatoria (RP, Random Polling).

Page 21: ALGORITMOS DE BÚSQUEDA

21

Búsqueda en profundidad paralela.Balanceo dinámico. Estrategias balanceo.(I)

• El procesador donador particiona su espacio de búsqueda, y envía una parte al receptor.

• Hay que conseguir que la partición se haga en dos partes con el mismo trabajo. Es difícil particionar en espacio de búsqueda balanceadamente.

• Cada procesador tiene una pila donde almacena en orden los nodos expandidos.

Page 22: ALGORITMOS DE BÚSQUEDA

22

Búsqueda en profundidad paralela.Balanceo dinámico. Estrategias balanceo.(II)

• Estrategias:1. Nodos cerca de la cola de la pila. Se envían

grandes árboles.

2. Enviar nodos cerca de la cota profundidad (aquellos nodos que han sido descubiertos pero no expandidos).

3. Enviar la mitad de los nodos entre la cola de la pila y la cota profundidad.

Page 23: ALGORITMOS DE BÚSQUEDA

23

Búsqueda en profundidad paralela.Balanceo dinámico. Estrategias balanceo.(y III)

• Si el espacio de búsqueda es uniforme las estrategias 1 y 3 trabajan mejor.

• Si el espacio de búsqueda es muy irregular la estrategia 3 trabaja mejor.

• Si la heurística de búsqueda es buena, la estrategia 2 es mejor.

Page 24: ALGORITMOS DE BÚSQUEDA

24

Búsqueda en profundidad paralela.Balanceo dinámico. Esquemas balanceo.(I)

• Round Robin Asincrono– Cada procesador tiene una variable destino.– Cuando un procesador se queda sin trabajo usa la

variable como procesador donador, y envía una petición de trabajo, incrementando la variable módulo p.

– La variable inicialmente cada procesador la coloca a ((etiquetapropia + 1) modulo p)

– Con esta estrategia cada procesador tiene un procesador donador independiente de los demás.

– Por cada petición se incrementa la variable local ((variable + 1 ) modulo p)

Page 25: ALGORITMOS DE BÚSQUEDA

25

Búsqueda en profundidad paralela.Balanceo dinámico. Esquemas balanceo.(II)

• Round Robin Global.– Todos los procesadores comparten la misma

variable destino, contenida en el procesador P0.

– La primera petición global se realiza al procesador P0.

– Por cada petición se incrementa la variable global en 1 ((variable + 1) modulo p).

Page 26: ALGORITMOS DE BÚSQUEDA

26

Búsqueda en profundidad paralela.Balanceo dinámico. Esquemas balanceo.(y III)

• Elección Aleatoria.– Es el más simple de los esquemas.– Aleatoriamente se elige un donador con igual

probabilidad.– Asegura que las peticiones de trabajo están

distribuidas.

Page 27: ALGORITMOS DE BÚSQUEDA

27

Entorno de trabajo general para análisis del algoritmo búsqueda en profundidad paralela (I)

• Se analizará el rendimiento y la escalabilidad.• La sobrecarga de los esquemas de balanceo de la

carga se debe a la comunicación (peticiones y envío de trabajo), tiempo inactivo de procesador (en espera de trabajo), detección de la terminación y uso de recursos compartidos.

• Si el factor de sobrecarga es mayor a uno esto implica que el algoritmo paralelo realiza más trabajo que el secuencial.

Page 28: ALGORITMOS DE BÚSQUEDA

28

Entorno de trabajo general. Cálculo del factor de sobrecarga en la comunicación (II)

• El trabajo de un procesador nunca puede ser particionado en partes mas grandes que un tamaño fijo, excedido por un umbral .

• Asumimos que el trabajo w en un procesador se divide en dos partes w y (1-)w con 0 1. Existe una constante (0 < 0.5), talque w>w. es una cota inferior del balanceo de la carga.

Page 29: ALGORITMOS DE BÚSQUEDA

29

Entorno de trabajo general. Cálculo del factor de sobrecarga en la comunicación (III)

• Definimos V(p) como el mínimo número de peticiones de trabajo necesarios para que todo procesador haya recibido como mínimo una petición de trabajo.

• Inicialmente el procesador P0 tiene W unidades de trabajo, y el resto de procesadores no tienen trabajo. Después de V(p) peticiones, el máximo trabajo pendiente en un procesador es menor (1 - )W, después de 2V(p) peticiones, el máximo trabajo pendiente en un procesador es menor a (1 - )2W.

• El número total de peticiones de trabajo es O(V(p) log W)

Page 30: ALGORITMOS DE BÚSQUEDA

30

Entorno de trabajo general. Cálculo del factor de sobrecarga en la comunicación (IV)

• Asumimos que el tamaño de un mensaje de petición y de transferencia de trabajo es constante.

• Considerando tcom como el tiempo necesario para enviar una unidad de trabajo, la sobrecarga de la comunicación T0 se define como:

T0= tcom V(p) log W

• Siendo la eficiencia E:

WWpVtWTE

com /)log)((1

1

/1

1

0

Page 31: ALGORITMOS DE BÚSQUEDA

31

Entorno de trabajo general. Cálculo del factor de sobrecarga en la comunicación (y V)

• Nuestro objetivo es conseguir funciones isoeficientes para cada esquema de balanceo de carga sobre diferentes arquitecturas (hipercubo, red).

• T0 depende de tcom (determinado por cada arquitectura) y de V(p) (dependiente de cada esquema de balanceo de carga).

Page 32: ALGORITMOS DE BÚSQUEDA

32

Entorno de trabajo general. Cálculo V(p)Round Robin Asincrono.

• El peor caso ocurre cuando todos los procesadores envían peticiones de trabajo al mismo procesadores.

• Supongamos que el procesador p-1 tiene todo el trabajo y los contadores locales de todos los procesadores apuntan al procesador 0. Entonces se realizan p-2 peticiones al procesador apuntado por el contador. Esto ocurre p-1 veces, hasta que los contadores de todos apuntan al procesador p-1, que harán otras p-1 peticiones, quedando el número de peticiones total: V(p)=O(p2)

Page 33: ALGORITMOS DE BÚSQUEDA

33

Entorno de trabajo general. Cálculo V(p)Round Robin Global.

• Todos los procesadores reciben peticiones en secuencia. Después de p peticiones, cada procesador ha recibido una petición. Por tanto V(p) = p.

Page 34: ALGORITMOS DE BÚSQUEDA

34

Entorno de trabajo general. Cálculo V(p)Elección aleatoria.

• El peor caso no está acotado, por la naturaleza aleatoria de la elección del donador. Así que consideramos el caso medio.

• Se debe de calcular el número de veces que se debe de elegir a un procesador para que con una probabilidad distribuida entre todos los procesadores, se elijan a todos ellos.

• Calculando obtenemos que V(p) = (p log p)

Page 35: ALGORITMOS DE BÚSQUEDA

35

Análisis de esquemas de balanceo de la carga para hipercubo.

• Analizar rendimiento de los esquemas de balanceo de la carga.

• La distancia entre cualquier pareja de procesadores es (log p).

• Tiempo de comunicación tcom = (log p)

T0 = O(V(p) log p log W)

Page 36: ALGORITMOS DE BÚSQUEDA

36

Análisis de esquemas de balanceo de la carga. Round Robin Asíncrono.

• En el caso que el árbol de búsqueda este perfectamente balanceado:– El tamaño del problema

W = O(p2 log p log Wi)– Sustituyendo W tenemos que la función de

isoeficiencia queda como:

O(p2 log2 p)

Page 37: ALGORITMOS DE BÚSQUEDA

37

Análisis de esquemas de balanceo de la carga. Round Robin Global.

• Realizando un análisis como el anterior obtenemos:

W = O(p log2 p)• Debido a que se accede a la variable global

destino repetidamente esto puede causar una contención, simplificando tenemos que una función de isoeficiencia:

O(p2 log p)

Page 38: ALGORITMOS DE BÚSQUEDA

38

Análisis de esquemas de balanceo de la carga. Elección aleatoria.

• La sobrecarga por comunicación es:

T0 = O(p log2 p log W)

• Igualando T0 con el tamaño del problema W y simplificando se obtiene la función de isoeficiencia:

O(p log3 p)

Page 39: ALGORITMOS DE BÚSQUEDA

39

Análisis de esquemas de balanceo de la carga para red.

• Se analiza la escalabilidad de los distintos esquemas.

• Red Ethernet.• El tiempo de comunicación es constante:

Tcom = (1)• La sobrecarga por comunicación queda:

T0 = O(V(p) log W)• Hay que tener en cuenta la sobrecarga debida al

bus compartido.

Page 40: ALGORITMOS DE BÚSQUEDA

40

Análisis de esquemas de balanceo de la carga para red. Round Robin Asíncrono.

• La sobrecarga por comunicación:

T0 = O(p2 log W)• Sustituyendo W obtenemos la función de

isoeficiencia:O(p2 log p)

• Teniendo en cuenta la contención del bus, la función de isoeficiencia queda como:

O(p3 log p)

Page 41: ALGORITMOS DE BÚSQUEDA

41

Análisis de esquemas de balanceo de la carga para red. Round Robin Global.

• Realizando un análisis como el anterior obtenemos:

T0 = O(p log W)

• Igualando la sobrecarga por comunicación con el tamaño del problema, obtenemos la función de isoeficiencia:

O(p log p)

• Debido a la contención ocasionada por la variable global destino y por la contención del bus, tenemos que la función de isoeficiencia queda:

O(p2 log p)

Page 42: ALGORITMOS DE BÚSQUEDA

42

Análisis de esquemas de balanceo de la carga para red. Elección aleatoria.

• Realizando un análisis como el anterior obtenemos:

T0 = O(p log p log W)• La función de isoeficiencia queda como

O(p log2 p)• Debido a la contención del bus, la función

de isoeficiencia queda:O(p2 log2 p)

Page 43: ALGORITMOS DE BÚSQUEDA

43

Análisis de esquemas de balanceo de la carga para otras topologías.

• Se puede realizar un análisis de isoeficiencia similar al hecho anteriormente para el caso de anillo y malla

Topo.

Esquema

ARR GRR RP

Hiper O(p2 log2 p) O(p2 log p) O(p log3 p)

Red O(p3 log p) O(p2 log p) O(p2 log2 p)

Anillo O(p3 log p) O(p2 log p) O(p2 log2 p)

Malla O(p2.5 log p) O(p2 log p) O(p1.5 log2 p)

Page 44: ALGORITMOS DE BÚSQUEDA

44

Detección de la terminación de la búsqueda. Dijkstra. (I)

• Suponemos un anillo lógico. Comunicación por Tokens.

• El procesador P0 contiene el token y se lo pasa al procesador P1.

• Cuando el procesador P1 termina la computación se lo pasa al procesador P2.

• El algoritmo termina cuando el procesador P0 recibe el token.

• No se puede aplicar este esquema directamente, ya que un procesador que termine su trabajo puede recibir nuevo.

Page 45: ALGORITMOS DE BÚSQUEDA

45

Detección de la terminación de la búsqueda. Dijkstra. (II)

• Modificación del esquema para ser aplicable.– Todos los procesadores están en dos estados negro o

blanco. Inicialmente todos en blanco.– Solo se permite pasar trabajo de Pi a Pj con i<j.– Si Pj envía trabajo a Pi, Pj se marca como negro y marca

el token como negro.– Cuando el procesador P0 recibe un token blanco

finaliza.– Si el procesador P0 recibe un token negro, esto indica

que el token está atravesando el principio del anillo.

Page 46: ALGORITMOS DE BÚSQUEDA

46

Detección de la terminación de la búsqueda. Dijkstra. (y III)

• Cuando un procesador esta en espera de trabajo, el procesador P0 inicializa el algoritmo de detección. Se marca como blanco y envía un token blanco.

• Si Pi envía trabajo a Pj e i>j, Pi se convierte en negro.

• Si Pi tiene el token y está inactivo, entonces pasa el token a Pi+1. Si Pi es negro, el token se marca como negro. En otro caso el token no se modifica.

• Si Pi pasa el token a Pi+1, Pi se convierte en blanco.

Page 47: ALGORITMOS DE BÚSQUEDA

47

Detección de la terminación de la búsqueda basada en árbol.

• Inicialmente el procesador P0 tiene todo el trabajo y un peso igual a 1.

• Cuando el trabajo se particiona también se divide el peso. Tras la primera partición de trabajo para el procesador i, w0 (peso de P0) y wi son 0.5.

• Cuando un procesador termina su trabajo envía su peso al donador.

• El algoritmo termina cuando P0 tiene todo el peso.

Page 48: ALGORITMOS DE BÚSQUEDA

48

Búsqueda mejor nodo paralelo (I)

• Estrategia centralizada:– Similar al mismo algoritmo en su forma

secuencial, pero en este caso existe una lista de abiertos global.

– Expande más de un nodo al mismo tiempo, cada procesador expande un nodo distinto.

Page 49: ALGORITMOS DE BÚSQUEDA

49

Búsqueda mejor nodo paralelo (II)

• Problemas:– Criterio de terminación:

• Cuando un procesador encuentra una solución, no puede saber si esta es la solución óptima hasta que los otros procesadores han terminado de buscar, o saben que la solución que van a obtener es peor.

– Acceso a la lista de abiertos:• Todos los procesadores deben acceder a la lista de abiertos.

• Grabe problema en arquitectura de paso de mensajes y reducción del speedup en arquitecturas de memoria compartida.

Page 50: ALGORITMOS DE BÚSQUEDA

50

Búsqueda mejor nodo paralelo (III)

• Soluciones:– Cada procesador mantendrá una lista de

abiertos local, realizando la búsqueda en su lista de abiertos local.

• En un principio se divide el espacio de búsqueda entre todos los procesadores, expandiendo algunos nodos de la lista de abiertos y distribuyéndolos entre los procesadores.

• Algunos procesadores realizarán búsquedas innecesarias por tener los nodos menos prometedores.

Page 51: ALGORITMOS DE BÚSQUEDA

51

Búsqueda mejor nodo paralelo (IV)

• Estrategias de comunicación en árboles de búsqueda:

– Nuestro objetivo consiste en que los nodos más prometedores sean distribuidos entre todos los procesadores.

1. Aleatoria.

2. En anillo.

3. Caja negra.

Page 52: ALGORITMOS DE BÚSQUEDA

52

Búsqueda mejor nodo paralelo (V)

1. Estrategia de comunicación aleatoria:– Cada procesador envía algunos de sus

mejores nodos a la lista de abiertos de un procesador seleccionado aleatoriamente.

– Esta estrategia asegura que si un procesador tiene un buen espacio de búsqueda los otros procesadores obtendrán parte de él.

Page 53: ALGORITMOS DE BÚSQUEDA

53

Búsqueda mejor nodo paralelo (VI)

2. Estrategia de comunicación en anillo:– Cada procesador forma parte de un anillo

lógico.– Los procesadores intercambian

periódicamente algunos de sus mejores nodos con la lista de abiertos de sus vecinos en el anillo.

Page 54: ALGORITMOS DE BÚSQUEDA

54

Búsqueda mejor nodo paralelo (VII)

3. Estrategia de comunicación de caja negra:– Existe una estructura compartida por todos los

procesadores, llamada caja negra (blackboard).

– Tras seleccionar el mejor nodo de la lista de abiertos local, un procesador expande el nodo solo si su valor heurístico no varía mucho del mejor nodo de la caja negra.

Page 55: ALGORITMOS DE BÚSQUEDA

55

Búsqueda mejor nodo paralelo (VIII)

3. Estrategia de comunicación de caja negra:– Si el nodo seleccionado es mucho mejor que

el mejor nodo de la caja negra entonces el procesador envía algunos de sus mejores nodos antes de expandirlos.

– Si el nodo es mucho peor que el mejor nodo de la caja negra, entonces el procesador recibe algunos de los mejores nodos de la caja negra, y vuelve a seleccionar un nodo a expandir.

Page 56: ALGORITMOS DE BÚSQUEDA

56

Búsqueda mejor nodo paralelo (IX)

• Estrategias de comunicación en grafos de búsqueda:– Problema: Chequear la repetición de nodos.– Esta tarea se distribuye entre los procesadores.– Solución: Mapear cada nodo en un procesador,

de forma que cuando un nodo es generado, éste es asignado a un procesador, el cuál chequea localmente la duplicación.

– Implementación: Técnicas Hash.

Page 57: ALGORITMOS DE BÚSQUEDA

57

Búsqueda mejor nodo paralelo (X)

• Estrategias de comunicación en grafos de búsqueda:– Si un nodo ya ha sido generado, se comprueba

que el nuevo nodo no tenga mejor coste que el antiguo, en caso negativo, se debe de actualizar los costes de ese nodo y posiblemente de sus sucesores.

Page 58: ALGORITMOS DE BÚSQUEDA

58

Búsqueda mejor nodo paralelo (XI)• Anomalías en el Speedup:

– Speedup superlineal: Para un mismo espacio de búsqueda, un algoritmo secuencial DFS, expande más nodos debido a que selecciona un mal camino de búsqueda, provocado por una mala función heurística de búsqueda.

13 nodos 9 nodos

Page 59: ALGORITMOS DE BÚSQUEDA

59

Búsqueda mejor nodo paralelo (XII)

• Anomalías en el Speedup:– Speedup sublineal: Caso más usual, debido al uso de

varios procesadores, se expande al mismo tiempo el nodo más prometedor y otros también prometedores.

7 nodos 15 nodos

Page 60: ALGORITMOS DE BÚSQUEDA

60

Búsqueda mejor nodo paralelo (y XIII)

• Factor de sobrecarga:– Este factor nos identificará si el algoritmo

secuencial no es óptimo, pues al tener éste un valor inferior a uno indica que el algoritmo paralelo expande menos nodos que el secuencial.

Page 61: ALGORITMOS DE BÚSQUEDA

61

Ruegos y Preguntas