TESIS-MAG-0201.pdf
TESIS-MAG-0201.pdf
TESIS-MAG-0201.pdf
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
denominan hermanos. Si un hijo a su vez tiene descendientes constituye un subárbol,<br />
en caso contrario a dicho nodo se le denomina hoja. Por lo tanto, en un árbol de<br />
búsqueda las hojas son estados completos pertenecientes al espacio de la heurística y la<br />
raíz del árbol corresponde al estado de nivel 0, es decir, aquel estado donde no ha sido<br />
asignada ninguna variable.<br />
Los dos algoritmos principales 2 para recorrer árboles son los algoritmos de<br />
la figura 1.8. El primero de ellos (figura 1 .8a) se conoce como de búsqueda en anchura<br />
(breadthfirst search) y el segundo de ellos como búsqueda en profundidad (depthfirst<br />
search) [Cormen 90].<br />
a) procedure BFS(raíz, 2)<br />
begin<br />
Q:ø<br />
lnserter(raíz,Q)<br />
while (not Vacío(Q))<br />
u := Extraer (Q)<br />
for (w E Hijo (u))<br />
lnsertar(w, Q)<br />
end while<br />
end BFS<br />
b) procedure DFS(raíz, 1)<br />
begin<br />
dfs(raíz)<br />
endDFS<br />
procedure dfs(v)<br />
begin<br />
for (w E Hjo(v))<br />
dfs(w)<br />
enddfs<br />
Figura 1.8 : Algoritmos de búsqueda en árboles.<br />
Si el nivel de un nodo y es k el procedimiento HU0(v) genera un estado de<br />
nivel k+l. En el algoritmo de la figura 1 .8a, Q es una estructura de datos denominada<br />
cola que posee dos operaciones : Insertar(w, Q) y Extraer(w, Q) que ingresan y sacan un<br />
2 Estos algoritmos corresponde a la forma general de recorrer grafos y un árbol es sólo<br />
un caso particular de un grafo.