Está en la página 1de 61

1

ALGORITMOS DE BSQUEDA
Manuel Nicols Ortuo
Miguel ngel Snchez-Guerra Panadero
2
Introduccin

Definiciones del problema de la bsqueda

Ejemplo 8-puzzle

Estimacin heurstica
3
Definiciones del problema de la bsqueda
Un problema de optimizacin discreta se
puede expresar como una tupla (S,f).
S conjunto de todas las soluciones que
satisfacen las restricciones.
f funcin de coste:
f: S 9
Encontrar x
o
talque f(x
o
) s f(x) xeS.
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 = Nmero de movimientos en la secuencia.

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. Arriba Arriba
Estado inicial
Estado final
6
Estimacin heurstica
l(x): Funcin de bsqueda. Coste de llegar del estado
inicial al estado final pasando por el estado x.
h(x): Funcin heurstica. 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.
7
Estimacin heurstica, 8-puzzle
Se numerarn 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 nmero de movimientos
para pasar de la posicin inicial a la posicin final.
Si consideramos h(x) igual a la distancia de
Manhattan, se cumple que h(x) es admisible.

8
Algoritmos de bsqueda
secuenciales
Bsqueda en profundidad (DFS).
Backtracking simple.
Bsqueda en profundidad Branch-and-
Bound (DFBB).
IDA
*
(Iterative Deepening A
*
).
Bsqueda mejor nodo (BFS).
9
Bsqueda en profundidad
Depth-First Search (DFS).
Utilizado para bsqueda en rboles.
Inicialmente se expande el nodo inicial y se
generan sus sucesores.
En el siguiente paso se expande el nodo ms
reciente generado.
Si el nodo no tiene sucesores o no conduce a
una solucin se retrocede y se expande otro
nodo diferente.

10
Backtracking simple
Mtodo de bsqueda en profundidad.
Termina encontrando la primera solucin.
No se garantiza encontrar la solucin de mnimo
coste (optima).
No utiliza informacin heurstica para elegir el
sucesor a expandir.
Existe una variante llamada Backtracking
ordenado que si utiliza informacin heurstica.
11
Bsqueda en profundidad Branch-and-
Bound
Depth-First Branch-and-Bound (DFBB).
Contina buscando despus de encontrar una
solucin, de manera que actualiza el mejor camino
solucin.
Poda los caminos solucin que conducen a una
peor solucin.
Algoritmo muy dependiente de la funcin
heurstica. Posible poda de nodos que mejoran el
camino solucin.
12
IDA* (Iterative Deepening A*)
Utiliza la funcin l(x) = g(x) + h(x) para guiar la
bsqueda.
g es una estimacin de lo que se ha recorrido.
h (funcin heurstica) es una estimacin de lo que queda
por recorre.
l es una estimacin del camino solucin desde el nodo
inicial pasando por x.
Se garantiza solucin si cada nodo tiene un nmero de
descendiente finito.
Si la funcin h nunca sobreestima a un nodo entonces se
encuentra solucin optima.
13
Bsqueda mejor nodo (I)
Vlido para rboles y grafos.
Asigna el valor heurstico menor a los nodos ms
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
heurstico.
14
Bsqueda 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 heurstico es menor, el nodo con
mayor valor heurstico se borra. (se puede
mejorar el algoritmo recalculando el valor
heurstico de los nodos sucesores).
15
Bsqueda paralela
Para mejorar la bsqueda en los algoritmos
secuenciales podemos utilizar varios procesadores
colaborando entre ellos, cada uno de los cuales
busca en una parte del rbol de bsqueda.
Idealmente el tiempo de bsqueda se reducira en
proporcin al nmero de procesadores que
colaboran en la bsqueda.
Hay que tener en cuenta el factor de sobrecarga
introducido, por la colaboracin de los
procesadores, que reduce el Speedup.
16
Factor de sobrecarga
Se incluye sobrecarga por los siguientes
motivos:
1. Sobrecarga por la comunicacin.
2. Sobrecarga por tiempo inactivo del procesador,
debido a problemas de balanceo de la carga.
3. Problemas con la estructura de datos compartida.
(comparticin de datos, exclusin mutua, ...).
Factor de sobrecarga en la bsqueda: W
p
/W
W carga de trabajo de un procesador.
W
p
carga de trabajo de p procesadores.

17
Algoritmos paralelos de
Bsqueda

Bsqueda en profundidad paralela

Bsqueda de mejor nodo paralela
18

Bsqueda en profundidad paralela.
Problema.

Uno de los problemas de este algoritmo es
la distribucin del espacio de bsqueda en
cada procesador.
Fig.1 Fig.2
19
Bsqueda en profundidad paralela.
Balanceo de la carga.
Existen dos alternativas a la hora de distribuir la
carga de trabajo entre los procesadores.
Balanceo esttico de la carga.
Se particiona el rbol de bsqueda siempre de la misma forma,
lo que asigna ms trabajo a unos procesadores que a otros.
Balanceo dinmico de la carga.
Inicialmente el espacio de bsqueda 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.


20
Bsqueda en profundidad paralela.
Balanceo dinmico. Parmetros 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).
Eleccin aleatoria (RP, Random Polling).
21
Bsqueda en profundidad paralela.
Balanceo dinmico. Estrategias balanceo.(I)
El procesador donador particiona su espacio
de bsqueda, y enva una parte al receptor.
Hay que conseguir que la particin se haga
en dos partes con el mismo trabajo. Es
difcil particionar en espacio de bsqueda
balanceadamente.
Cada procesador tiene una pila donde
almacena en orden los nodos expandidos.

22
Bsqueda en profundidad paralela.
Balanceo dinmico. Estrategias balanceo.(II)
Estrategias:
1. Nodos cerca de la cola de la pila. Se envan
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.

23
Bsqueda en profundidad paralela.
Balanceo dinmico. Estrategias balanceo.(y III)
Si el espacio de bsqueda es uniforme las
estrategias 1 y 3 trabajan mejor.
Si el espacio de bsqueda es muy irregular
la estrategia 3 trabaja mejor.
Si la heurstica de bsqueda es buena, la
estrategia 2 es mejor.

24
Bsqueda en profundidad paralela.
Balanceo dinmico. 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 enva una
peticin de trabajo, incrementando la variable mdulo
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 dems.
Por cada peticin se incrementa la variable local
((variable + 1 ) modulo p)

25
Bsqueda en profundidad paralela.
Balanceo dinmico. Esquemas balanceo.(II)
Round Robin Global.
Todos los procesadores comparten la misma
variable destino, contenida en el procesador P
0
.
La primera peticin global se realiza al
procesador P
0
.
Por cada peticin se incrementa la variable
global en 1 ((variable + 1) modulo p).
26
Bsqueda en profundidad paralela.
Balanceo dinmico. Esquemas balanceo.(y III)
Eleccin Aleatoria.
Es el ms simple de los esquemas.
Aleatoriamente se elige un donador con igual
probabilidad.
Asegura que las peticiones de trabajo estn
distribuidas.
27
Entorno de trabajo general para anlisis del
algoritmo bsqueda 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 comunicacin (peticiones y
envo de trabajo), tiempo inactivo de procesador
(en espera de trabajo), deteccin de la terminacin
y uso de recursos compartidos.
Si el factor de sobrecarga es mayor a uno esto
implica que el algoritmo paralelo realiza ms
trabajo que el secuencial.
28
Entorno de trabajo general. Clculo del factor de
sobrecarga en la comunicacin (II)
El trabajo de un procesador nunca puede ser
particionado en partes mas grandes que un
tamao fijo, excedido por un umbral c.
Asumimos que el trabajo w en un
procesador se divide en dos partes vw y
(1-v)w con 0 s v s 1. Existe una constante
o (0 < o s 0.5), talque vw>ow. o es una
cota inferior del balanceo de la carga.
29
Entorno de trabajo general. Clculo del factor de
sobrecarga en la comunicacin (III)
Definimos V(p) como el mnimo nmero de peticiones de
trabajo necesarios para que todo procesador haya recibido
como mnimo una peticin de trabajo.
Inicialmente el procesador P
0
tiene W unidades de trabajo,
y el resto de procesadores no tienen trabajo. Despus de
V(p) peticiones, el mximo trabajo pendiente en un
procesador es menor (1 - o)W, despus de 2V(p)
peticiones, el mximo trabajo pendiente en un procesador
es menor a (1 - o)
2
W.
El nmero total de peticiones de trabajo es O(V(p) log W)
30
Entorno de trabajo general. Clculo del factor de
sobrecarga en la comunicacin (IV)
Asumimos que el tamao de un mensaje de
peticin y de transferencia de trabajo es constante.
Considerando t
com
como el tiempo necesario para
enviar una unidad de trabajo, la sobrecarga de la
comunicacin T
0
se define como:
T
0
= t
com
V(p) log W
Siendo la eficiencia E:

W W p V t W T
E
com
/ ) log ) ( ( 1
1
/ 1
1
0
+
=
+
=
31
Entorno de trabajo general. Clculo del factor de
sobrecarga en la comunicacin (y V)
Nuestro objetivo es conseguir funciones
isoeficientes para cada esquema de balanceo
de carga sobre diferentes arquitecturas
(hipercubo, red).
T
0
depende de t
com
(determinado por cada
arquitectura) y de V(p) (dependiente de
cada esquema de balanceo de carga).
32
Entorno de trabajo general. Clculo V(p)
Round Robin Asincrono.
El peor caso ocurre cuando todos los procesadores
envan 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 harn otras p-1 peticiones, quedando el
nmero de peticiones total: V(p)=O(p
2
)
33
Entorno de trabajo general. Clculo V(p)
Round Robin Global.

Todos los procesadores reciben peticiones
en secuencia. Despus de p peticiones, cada
procesador ha recibido una peticin. Por
tanto V(p) = p.
34
Entorno de trabajo general. Clculo V(p)
Eleccin aleatoria.
El peor caso no est acotado, por la naturaleza
aleatoria de la eleccin del donador. As que
consideramos el caso medio.
Se debe de calcular el nmero 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) = O(p log p)
35
Anlisis 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 O(log p).
Tiempo de comunicacin t
com
= O(log p)

T
0
= O(V(p) log p log W)
36
Anlisis de esquemas de balanceo de
la carga. Round Robin Asncrono.
En el caso que el rbol de bsqueda este
perfectamente balanceado:
El tamao del problema
W = O(p
2
log p log Wi)
Sustituyendo W tenemos que la funcin de
isoeficiencia queda como:
O(p
2
log
2
p)

37
Anlisis de esquemas de balanceo de
la carga. Round Robin Global.
Realizando un anlisis como el anterior
obtenemos:
W = O(p log
2
p)
Debido a que se accede a la variable global
destino repetidamente esto puede causar una
contencin, simplificando tenemos que una
funcin de isoeficiencia:
O(p
2
log p)
38
Anlisis de esquemas de balanceo de
la carga. Eleccin aleatoria.
La sobrecarga por comunicacin es:
T
0
= O(p log
2
p log W)
Igualando T
0
con el tamao del problema W
y simplificando se obtiene la funcin de
isoeficiencia:
O(p log
3
p)

39
Anlisis de esquemas de balanceo de
la carga para red.
Se analiza la escalabilidad de los distintos
esquemas.
Red Ethernet.
El tiempo de comunicacin es constante:
T
com
= O(1)
La sobrecarga por comunicacin queda:
T
0
= O(V(p) log W)
Hay que tener en cuenta la sobrecarga debida al
bus compartido.
40
Anlisis de esquemas de balanceo de la
carga para red. Round Robin Asncrono.
La sobrecarga por comunicacin:
T
0
= O(p
2
log W)
Sustituyendo W obtenemos la funcin de
isoeficiencia:
O(p
2
log p)
Teniendo en cuenta la contencin del bus, la
funcin de isoeficiencia queda como:
O(p
3
log p)
41
Anlisis de esquemas de balanceo de la
carga para red. Round Robin Global.
Realizando un anlisis como el anterior obtenemos:
T
0
= O(p log W)
Igualando la sobrecarga por comunicacin con el tamao
del problema, obtenemos la funcin de isoeficiencia:
O(p log p)
Debido a la contencin ocasionada por la variable global
destino y por la contencin del bus, tenemos que la funcin
de isoeficiencia queda:
O(p
2
log p)

42
Anlisis de esquemas de balanceo de la
carga para red. Eleccin aleatoria.
Realizando un anlisis como el anterior
obtenemos:
T
0
= O(p log p log W)
La funcin de isoeficiencia queda como
O(p

log
2
p)
Debido a la contencin del bus, la funcin
de isoeficiencia queda:
O(p
2
log
2
p)
43
Anlisis de esquemas de balanceo de
la carga para otras topologas.
Se puede realizar un anlisis de
isoeficiencia similar al hecho anteriormente
para el caso de anillo y malla


Topo.
Esquema
ARR GRR RP
Hiper
O(p
2
log
2
p) O(p
2
log p) O(p log
3
p)
Red
O(p
3
log p) O(p
2
log p) O(p
2
log
2
p)
Anillo
O(p
3
log p) O(p
2
log p) O(p
2
log
2
p)
Malla
O(p
2.5
log p) O(p
2
log p) O(p
1.5
log
2
p)
44
Deteccin de la terminacin de la
bsqueda. Dijkstra. (I)
Suponemos un anillo lgico. Comunicacin por Tokens.
El procesador P
0
contiene el token y se lo pasa al
procesador P
1
.
Cuando el procesador P
1
termina la computacin se lo pasa
al procesador P
2
.
El algoritmo termina cuando el procesador P
0
recibe el
token.
No se puede aplicar este esquema directamente, ya que un
procesador que termine su trabajo puede recibir nuevo.


45
Deteccin de la terminacin de la
bsqueda. Dijkstra. (II)
Modificacin del esquema para ser aplicable.
Todos los procesadores estn en dos estados negro o
blanco. Inicialmente todos en blanco.
Solo se permite pasar trabajo de P
i
a P
j
con i<j.
Si P
j
enva trabajo a P
i
, P
j
se marca como negro y marca
el token como negro.
Cuando el procesador P
0
recibe un token blanco
finaliza.
Si el procesador P
0
recibe un token negro, esto indica
que el token est atravesando el principio del anillo.


46
Deteccin de la terminacin de la
bsqueda. Dijkstra. (y III)
Cuando un procesador esta en espera de trabajo, el
procesador P
0
inicializa el algoritmo de deteccin.
Se marca como blanco y enva un token blanco.
Si P
i
enva trabajo a P
j
e i>j, P
i
se convierte en
negro.
Si P
i
tiene el token y est inactivo, entonces pasa
el token a P
i+1
. Si P
i
es negro, el token se marca
como negro. En otro caso el token no se modifica.
Si P
i
pasa el token a P
i+1
, P
i
se convierte en blanco.
47
Deteccin de la terminacin de la
bsqueda basada en rbol.
Inicialmente el procesador P
0
tiene todo el trabajo
y un peso igual a 1.
Cuando el trabajo se particiona tambin se divide
el peso. Tras la primera particin de trabajo para el
procesador i, w
0
(peso de P
0
) y w
i
son 0.5.
Cuando un procesador termina su trabajo enva su
peso al donador.
El algoritmo termina cuando P
0
tiene todo el peso.
48
Bsqueda 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 ms de un nodo al mismo tiempo,
cada procesador expande un nodo distinto.

49
Bsqueda mejor nodo paralelo
(II)
Problemas:
Criterio de terminacin:
Cuando un procesador encuentra una solucin, no puede saber
si esta es la solucin ptima hasta que los otros procesadores
han terminado de buscar, o saben que la solucin 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
reduccin del speedup en arquitecturas de memoria
compartida.
50
Bsqueda mejor nodo paralelo
(III)
Soluciones:
Cada procesador mantendr una lista de
abiertos local, realizando la bsqueda en su lista
de abiertos local.
En un principio se divide el espacio de bsqueda entre todos
los procesadores, expandiendo algunos nodos de la lista de
abiertos y distribuyndolos entre los procesadores.
Algunos procesadores realizarn bsquedas innecesarias por
tener los nodos menos prometedores.
51
Bsqueda mejor nodo paralelo
(IV)
Estrategias de comunicacin en rboles de
bsqueda:
Nuestro objetivo consiste en que los nodos
ms prometedores sean distribuidos entre
todos los procesadores.
1. Aleatoria.
2. En anillo.
3. Caja negra.
52
Bsqueda mejor nodo paralelo
(V)
1. Estrategia de comunicacin aleatoria:
Cada procesador enva 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 bsqueda los otros
procesadores obtendrn parte de l.
53
Bsqueda mejor nodo paralelo
(VI)
2. Estrategia de comunicacin en anillo:
Cada procesador forma parte de un anillo
lgico.
Los procesadores intercambian
peridicamente algunos de sus mejores nodos
con la lista de abiertos de sus vecinos en el
anillo.
54
Bsqueda mejor nodo paralelo
(VII)
3. Estrategia de comunicacin 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 heurstico no vara mucho del
mejor nodo de la caja negra.
55
Bsqueda mejor nodo paralelo
(VIII)
3. Estrategia de comunicacin de caja negra:
Si el nodo seleccionado es mucho mejor que
el mejor nodo de la caja negra entonces el
procesador enva 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.

56
Bsqueda mejor nodo paralelo
(IX)
Estrategias de comunicacin en grafos de
bsqueda:
Problema: Chequear la repeticin de nodos.
Esta tarea se distribuye entre los procesadores.
Solucin: Mapear cada nodo en un procesador,
de forma que cuando un nodo es generado, ste
es asignado a un procesador, el cul chequea
localmente la duplicacin.
Implementacin: Tcnicas Hash.

57
Bsqueda mejor nodo paralelo
(X)
Estrategias de comunicacin en grafos de
bsqueda:
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.
58
Bsqueda mejor nodo paralelo (XI)
Anomalas en el Speedup:
Speedup superlineal: Para un mismo espacio de
bsqueda, un algoritmo secuencial DFS, expande ms
nodos debido a que selecciona un mal camino de
bsqueda, provocado por una mala funcin heurstica
de bsqueda.

13 nodos 9 nodos
59
Bsqueda mejor nodo paralelo (XII)
Anomalas en el Speedup:
Speedup sublineal: Caso ms usual, debido al uso de
varios procesadores, se expande al mismo tiempo el
nodo ms prometedor y otros tambin prometedores.

7 nodos 15 nodos
60
Bsqueda 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.

61
Ruegos y Preguntas

También podría gustarte