09.05.2013 Views

TESIS-MAG-0201.pdf

TESIS-MAG-0201.pdf

TESIS-MAG-0201.pdf

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!