Vous êtes sur la page 1sur 6

ALGORITMOS

Elabore un algoritmo de bsqueda de un rbol binario y un


algoritmo de bsqueda usando grafos de algn juego.
RBOL BINARIO E B!"#$EA.
El rbol binario de bsqueda es una estructura sobre la cual se pueden
realizar eficientemente las operaciones de bsqueda, insercin y
eliminacin.
Formalmente se define un rbol binario de bsqueda de la siguiente
manera: Para todo nodo del rbol debe cumplirse que todos los
!alores de los nodos del subrbol izquierdo de deben ser menores o
iguales al !alor del nodo . "e forma similar, todos los !alores de los
nodos el subrbol derec#o de deben ser mayores o iguales al !alor del
nodo $.
RBOL BINARIO E B!"#$EA.
%bser!emos que si se efecta un recorrido in&orden sobre el rbol de
'squeda se obtendr una clasificacin de los nodos en forma ascendente.
El recorrido in&orden del rbol anterior produce el siguiente resultado:
(( )* +, ,+ -. /* // 0(1 0*1 0*+ 0)1
AL%ORI&'O E B!"#$EA
2 '3456E"7 89%"%, :9F%;<
2 =El algoritmo localiza un nodo en un rbol binario de bsqueda. 9%"% es una
!ariable de tipo puntero que apunta a la ra>z del rbol. :9F%; es una !ariable
que contiene la informacin que se desea localizar en el rbol. ?abe aclarar
que la primera !ez la !ariable 9%"% no puede ser !ac>a.
4i :9F%; @ 9%"%A.:9F% entonces
4i 9%"%A.:B5 C 9:DD entonces
Escribir El nodo no se encuentra en el rbol$
4ino
'3456E"7 89%"%A.:B5, :9F%;< =Dlamada recursi!aE
Fin 4i
4ino
4i :9F%; F 9%"%A.:9F% entonces
4i 9%"%A."E; C 9:DD entonces
Escribir El nodo no se encuentra en el rbol$
4ino
'3456E"7 89%"%A."E;, :9F%;< =Dlamada recursi!aE
Fin 4i
4ino
Escribir El nodo se encuentra en el rbol$
Fin 4i
Fin 4i
Fin del algoritmo
AL%ORI&'O" E B!"#$EA EN %RA(O"
Dos algoritmos de bsqueda en grafos nacen por la necesidad de crear un
mecanismo de na!egacin autnoma, bien sea de robots, coc#es, o personaGes
en un !ideoGuego. 7lgunos de los ms conocidos son 7H, DP7H, o "H.
es)ri*)i+n
6n grafo, representa un conGunto de nodos unidos en una red. 4i dos nodos
estn unidos, al !iaGar de uno a otro se considerara sucesor el nodo al que nos
mo!emos, y predecesor el nodo del que !enimos. 7dems, normalmente
eIistir un coste !inculado al desplazamiento entre nodos. 6n algoritmo de
bsqueda tratar, de encontrar un camino optimo entre dos nodos como por
eGemplo un camino que minimice el coste de desplazamiento, o el numero de
pasos a realizar. Da principal diferencia entre los algoritmos es la informacin
que guardan a cerca del grafo. 7lgunos de ellos no guardan informacin
alguna, simplemente eIpanden la bsqueda desde el nodo inicial, #asta que se
llega al nodo final, otros guardan el coste de !iaGar desde el origen #asta ese
nodo, o incluso una estimacin de lo prometedor que es un nodo para conducir
el camino a su obGeti!o. Da eIpansin de la bsqueda se realiza en forma de
rbol. Partiendo del nodo inicial, se eItender la bsqueda a sus nodos
!ecinos, de cada uno de estos nodos !ecinos, a sus respecti!os nodos !ecinos,
y as> #asta que uno de los nodos a los que se eIpande la bsqueda es el nodo
obGeti!o. En esta pgina se desarrollar un algoritmo de bsqueda lo
suficientemente general para trabaGar en la mayor>a de los grafos, y que da
paso a otros mJtodos de bsqueda ms compleGos.
Nota)i+n
El algoritmo consta de dos listas, 7bierta, y ?errada. En la lista 7bierta se
guardan los nodos que aun no se #an eIpandido para la bsqueda, que en
otras palabras, ser>an las #oGas de un rbol. En la lista ?errada, se guardan los
nodos que ya se #an procesado y eIpandido, estos nodos se guardan porque
la eIpansin de la bsqueda podr>a intentar !ol!er a pasar por uno de esos
nodos y de estar almacenados, se tiene constancia de los nodos que ya se #an
procesado. 7dems, cada nodo, almacenar informacin acerca de quiJn es su
nodo predecesor.
Ejem*lo de algoritmo sim*le
,seudo)+digo de bsqueda
E-*li)a)i+n del algoritmo
Primero se crean dos listas que almacenarn nodos, la lista 7biertos, que
contiene los nodos que se tienen que eIpandir, y la lista ?errados que contiene
los que ya #an sido eIpandidos. El nodo de origen, llamado % en este caso, se
mete en la lista de 7biertos para ser eIpandido. En este punto, se inicia la
propagacin de la bsqueda, se crea un bucle que acabar en dos posibles
ocasiones: ?uando la lista 7biertos este !ac>a, o cuando se encuentre el nodo
destino. El bucle consiste en !arios pasos: Primero se obtiene el primer nodo
de la lista 7biertos. El nodo a coger el arbitrario, en otros algoritmos se coger>a
un nodo que cumpliera ciertas propiedades, pero no es lo que se busca aqu>. 4i
esta lista est !ac>a, quiere decir que no quedan ms candidatos para la
eIpansin, y aun as> no se encontr el destino, el algoritmo #a fallado. Por otra
parte, si el nodo que cogimos de la lista 7biertos es el destino, el algoritmo
#abr acabado, ya que #emos encontrado el destino. El camino entre el origen
y el destino es un conGunto de nodos que se obtendrn guardando cada
predecesor del nodo destino. En otro caso, se seguir eIpandiendo la lista,
obteniendo una lista de sucesores del nodo actual, y guardando en la lista
7biertos, aquellos nodos que no estu!ieran antes en una lista, o con otras
palabras, aquellos nodos a los que an no se #ab>a llegado. "e esta forma, el
algoritmo acabar encontrando el destino, o recorriendo todo el mapa.
Efe)ti.idad
Nota/ Da animacin tiene un fallo, ya
que el camino deber>a de #aber
empezado en direccin norte en !ez
de en direccin oeste. Esto #a pasado
porque no se meti el cuadro destino
en la lista abierta en el momento
oportuno 8se meti dos turnos ms
tarde<. El algoritmo trata de llegar
desde el cuadro !erde 8el origen<,
#asta el cuadro roGo 8el destino<. Da
zona negra es un nodo por el que no
puede pasar. 4iguiendo el algoritmo, el nodo inicial se ira eIpandiendo,
pasando a estar el nodo actual en la lista ?errados 8color !ioleta< y metiendo
otros nodos en la lista de 7biertos 8color azul<. 7dems cada nodo almacenar
quien es su predecesor, que est simbolizado con las muescas en los bordes
de los cuadrados. 6na !ez que la eIpansin alcanza el nodo destino, se
genera un camino siguiendo la cadena de predecesores.
?omo se aprecia, la eIpansin se realiza sin orientacin alguna, a lo largo y
anc#o del espacio. Esto aumentar considerablemente el tiempo de
computacin, ya que se procesan muc#os ms nodos que si la eIpansin
estu!iera orientada en la direccin del destino. %tro factor a tener en cuenta es
que a pesar de #aber alcanzado el nodo destino, el algoritmo no finaliza #asta
que lo procesa, o en otras palabras, #asta que pasa a ser el primer nodo de la
lista 7biertos. Estas dos taras, estn relacionadas con la prioridad de
bsqueda, y en algoritmos ms a!anzados se corrige mediante el uso de
estimadores #eur>sticos como la distancia man#attan, o la distancia eluc>dela.
6sando estos estimadores el algoritmo procesar primero los nodos de la lista
abierta que tengan una menor distancia al origen, e!itando as> eIpansiones
innecesarias.