Está en la página 1de 9

UNIVESIDAD MAYOR DE SAN SIMON

FACULTAD DE CIENCIAS Y TECNOLOGIA

INTEGRANTES:|

Baltazar Llusco Ever


Castro Arnez Juan Manuel
Choque Roberto
Huarayo Condori Silverio

DOCENTE: Lic. Garca Prez Carmen Rosa


MATERIA: Inteligencia Artificial

Lic. Garca Prez Carmen Rosa

Pgina 1

Definicin
Que es una bsqueda bidireccional?
La bsqueda bidireccional es un algoritmo de bsqueda no informada, que tiene como
propsito encontrar el camino ms corto en dos nodos (inicio y fin)
El objetivo de una bsqueda bidireccional es encontrar su objetivo en el menor tiempo
posible y esto se logra haciendo dos bsquedas simultneas, una descendente desde el
nodo inicial y otra ascendente desde el nodo meta. Al menos una de estas dos bsquedas
debe ser en anchura para que el recorrido ascendente y descendente pueda encontrarse
en algn momento. Cuando se llegue a un nodo que ya haba sido explorado con el otro
tipo de bsqueda, termina la bsqueda. El camino solucin es la suma de los caminos
hallados por cada bsqueda desde el nodo mencionado hasta el nodo inicial y hasta el
nodo meta.
Para que se pueda realizar este tipo de bsqueda se tienen que cumplir dos condiciones:

Los operadores han de ser reversibles.- Lo fcil es que se determine el nodo padre
en una sola operacin (podra darse el caso de requerir ms de una para ello, en
cuyo caso se complica la equiparacin de manera notable).
Que la meta se explcita.- Si para un problema hay varias metas distintas, habr
que hacer una bsqueda para cada una de ellas.

Combinacin
1
2
3
4

Inicial
Anchura
Anchura
Profundidad
Profundidad

Meta
Anchura
Profundidad
Anchura
Profundidad

Valida
SI
SI
Si
NO

Para la combinacin 4 es posible que nunca encuentre la meta.

Lic. Garca Prez Carmen Rosa

Pgina 2

Algoritmo
Tenemos que considerar los siguientes factores:

Las dos bsquedas son en amplitud.


Se comprobara en ambas bsquedas si el nodo a generar ya est siendo explorado por
otro.
Se usaran rboles para bsqueda para ambos casos.
Se usaran listas para guardar las fronteras de estos rboles.
Y se tendr una variable que controle el nivel del rbol en el que nos encontramos.

Con esto claro el algoritmo se desarrolla de la siguiente manera:

INICIALIZAR un rbol Partida, donde el nodo raz ser el estado inicial del problema.
Adems aadimos el nodo a la lista [P].

INICIALIZAR un rbol Meta, donde el nodo raz ser el estado meta del problema. Adems
aadimos el nodo a la lista [M].

INICIALIZAR Nivel(0)

HASTA encontrar solucin o [P] vaca o [M] vaca.

PARA cada nodo de Partida en Nivel, eliminar el nodo en [P] y generar sucesores de
tal forma que

SI el nodo a generar esta en [M]

Aadir en Partida y en [P] y devolver solucin.

SINO

Aadir en Partida y en [P].

//Fin para cada nodo de Partida

Si no hay solucin

PARA cada nodo de Meta en Nivel, eliminar el nodo en [M] y generar


sucesores de tal forma que

SI el nodo a generar esta en [P]

SINO

Aadir en Meta y en [M] y devolver solucin.

Aadir en Meta y en [M].

//Fin para cada nodo de Meta

Lic. Garca Prez Carmen Rosa

Pgina 3

//Fin sino no hay solucin

//Fin hasta encontrar solucin.

Devolver solucin

Devolver el camino desde la raz hasta la meta pasando Partida y Meta por un
estado comn de las 2 bsquedas.

Explicacin del algoritmo:


Se inicializan 2 rboles de bsqueda (Partida y Meta) donde sus nodos iniciales son el
planteamiento del problema y la solucin que se busca.
Adems se crearan listas donde se aaden ambos nodos, esto por que el rbol Partida buscara
encontrar un elemento de la lista [M] y viceversa.
Se iniciara un ciclo hasta encontrar una solucin o hasta que alguna de las listas ([P] o [M]) estn
vacas. Que una de las los listas este vaca significara que el rbol no puede generar ms nodos
hijos y no existira una solucin.
Dentro de este ciclo se genera otro donde primero se generan nodos hijos en partida, se aaden
estos a la lista y se elimina el padre de la lista [P]. Se compara si los nodos generados estn en la
lista [M].
Si no hay solucin se genera otro ciclo donde esta vez se generan los hijos de Meta, se aaden
estos a la lista y se borra el padre de la lista, se compara si alguno de los nodos generados est en
la lista [P].
Se repetirn estos 2 ciclos hasta que se encuentre una solucin o alguna de las 2 listas este vaca.
La solucin ser devolver el camino desde la raz hasta la meta con los arboles generados, estos
deben coincidir en un nodo comn, que es donde se encontraran.

Lic. Garca Prez Carmen Rosa

Pgina 4

Aplicacin a problemas
Problema: Se Pide llegar de Cobija a Potos.

Resolucin: Se inicializan los arboles partida y meta con Cobija y Potos, en la primera iteracin se
genera Riberalta y se compara con la lista [M] (Potos), como no es la respuesta pasa a expandir el
rbol Meta con sucre Oruro y Tarija, comparan cada uno de estos con Riberalta que es el que se
encuentra en la lista [P]. Luego Partida genera a San Borja, y compara este con [Sucre, Oruro,
Tarija], despus Meta genera Cbba y La Paz, compara estos con [San Borja], como aun no encontr
el resultado, Partida genera Trinidad y La Paz, y compara esto con [Cbba, La Paz], como coinciden
ambos rboles en La Paz se genera el resultado.

Lic. Garca Prez Carmen Rosa

Pgina 5

Problema: Llegar de P a M.

Resolucin: En la grfica de abajo podemos ver los nodos que genera Partida y Meta, los nmeros
de estos nodos muestran el nivel en que cada nodo est siendo generado, podemos ver como en
el nivel 13 Meta genera el nodo 4F y en el nivel 14 Partida genera los nodos 6H, 5G y 4F. Cuando
compara estos con la lista [M] que en este caso es solo 4F. Encuentra la solucin.

Lic. Garca Prez Carmen Rosa

Pgina 6

Anlisis del Algoritmo

Completo.- El algoritmo es completo, ya que las dos estrategias son de bsquedas


en amplitud. Si se conoce la meta y el problema, siempre se encuentra la solucin.

Optimo.- Si las dos estrategias son en amplitud, el algoritmo es ptimo por serlo
tambin las anteriores.

Complejidad Temporal.-El caso peor ocurre cuando las dos bsquedas se


encuentran en la mitad del grafo, es decir a profundidad p/2. Si el factor de
ramificacin es n y la solucin est en la profundidad p, el tiempo necesario
2

p/2

para llegar a la solucin ser: 2(1+n+n +n +..+n

), ya que es el mismo

p/2

tiempo para los dos. El costo temporal est en O (n ). No se tiene en cuenta el


tiempo q tarda en comprobar la frontera de exploracin pues su costo es muy
pequeo a comparacin con el resto.

Complejidad espacial.- El caso peor tambin cuando se cruzan a profundidad.

p/2. En la estrategia en amplitud tambin vamos a almacenar 2 (nP/2)


p/2
estados. As el costo espacial tambin est en la O (n ).
Se detiene cuando ambas bsquedas se encuentren: se comprueba que el nodo
expandido de un rbol est en la frontera del otro
Su inters radica en la reduccin de la complejidad
bd2 + bd/2 << bd

Ventajas
completo:
Siempre se encuentra un nodo meta si existe
ptimo (para operadores de coste uno):
Siempre se encuentra el nodo meta menos profundo
Se reduce la complejidad (en espacio y en tiempo) de forma considerable
Complejidad temporal de O (MAX (B1d/2; B2d/2)), siendo:
b1: factor de ramificacin de la bsqueda en direccin 1.
b2: factor de ramificacin de la bsqueda en direccin 2.
d: profundidad de la solucin

Lic. Garca Prez Carmen Rosa

Pgina 7

Desventajas
Su principal problema es que requiere mucho espacio (costo de almacenamiento).
Es pocas veces aplicable.
El factor de ramificacin de la bsqueda inversa podra ser mucho mayor que el de la
directa.
Complejidad espacial de O (bid/2), siendo:
bi: factor de ramificacin de la bsqueda de la que se guarda el rbol en memoria.
Puede ser muy difcil o imposible encontrar una funcin inversa.
Varios estados meta
Factor de ramificacin del rbol inverso puede ser mayor

Variacin para el algoritmo

Para que el algoritmo funcione una de las dos estrategias ha de serlo en amplitud.

Esto es as porque es necesario conocer en todo momento todos los nodos frontera, en un
nivel determinado. De las dos fuesen en profundidad podra resultar que cada una fuese por
una rama distinta y que no se encontrasen nunca (no sera completa).

Si el factor de ramificacin es un n (para amplitud) y la solucin est en profundidad p, el


2

tiempo necesario seguir siendo el mismo, : 2(1+n+n


p/2

en O (n

+n3+..+np/2), luego est

El coste de almacenamiento cambia un poco: para la bsqueda en amplitud


p/2

tendremos que almacenar n

p/2

y en la profundidad pn; dado que n


p/2

coste de almacenamiento tambin estar en O (n

>>pn, el

).

El algoritmo ser completo, pero no optimo, ya que la rama de la bsqueda en


profundidad puede no ser la de menor coste ni la de camino ms corto.

Otras combinaciones que resulten con una de las dos estrategias en amplitud no afectan a
los costes. Por ejemplo si el algoritmo fuese una combinacin de amplitud-profundidad.

Otras variaciones posibles es que, en lugar de cambiar de direccin de bsqueda en cada nivel, se
cambiara cada vez que se genera un estado. Esta alternativa tampoco es la ms eficiente, pues lo
que se gana con la posible no expansin de nodos en la frontera se pierde con los cambios de una
u otra bsqueda, que en este caso si pueden influyen en la complejidad temporal.

Lic. Garca Prez Carmen Rosa

Pgina 8

Conclusin
Si una de las dos estrategias es en amplitud, el algoritmo es completo. La ventaja de esta
bsqueda es que reduce a la mitad el factor exponencial del coste computacional con
respecto a la bsqueda en amplitud, siendo a su vez, la principal desventaja desde el
punto de vista del coste de almacenamiento (aunque se reduce drsticamente el nmero
de nodos a almacenar, este es todava muy grande.)

Lic. Garca Prez Carmen Rosa

Pgina 9

También podría gustarte