You are on page 1of 26

Arboles

Programacin en Tiempo Real Elabora: Jos Manuel Snchez Morales


1. Def. de un rbol 2. Arboles de expansin mnima 3. Arboles binarios 4. Recorridos de un rbol 5. Arboles de decisin y El tiempo mnimo para el ordenamiento

rbol

Definicin: Sea G=(V,E) un grafo no dirigido sin lazos. El gafo G es un rbol si G es conexo y no contiene ciclos.

Propiedades:
Si G = (V,A) es un rbol de n vrtices, entonces: a) Para todo par de vrtices x e y existe un nico camino de x a y. b) Todas las aristas de G son puentes. c) A = n - 1. d) Todo rbol tiene al menos dos hojas (vrtices de grado uno).

Terminologa y caracterizacin:

Se usara una terminologa de relaciones familiares para describir las relaciones entre los nodos.

Hijos y Padres:
Hijo: X es hijo de Y, s y solo s el nodo X es apuntado por Y. Tambin se dice que X es descendiente directo de Y. Padre: X es padre de Y s y solo s el nodo X apunta a Y. Tambin se dice que X es antecesor de Y. Hermano: Dos nodos sern hermanos si son descendientes directos de un mismo nodo. Hoja: Se le llama hoja o terminal a aquellos nodos que no tienen ramificaciones (hijos).

Nodo Interior: Es un nodo que no es raz ni terminal. Grado: Es el nmero de descendientes directos de un determinado nodo. Grado del rbol: Es el mximo grado de todos los nodos del rbol. Nivel de un vrtice: Es el nmero de arcos que deben ser recorridos para llegar a un determinado nodo. Por definicin la raz tiene nivel 1. Es la longitud del camino simple de la raz al nodo. Altura: Es el nmero mximo de nivel, de todos los nodos, que aparece en el rbol. Peso: Es el nmero de nodos del rbol sin contar la raz. Longitud de Camino: Es el nmero de arcos que deben ser recorridos para llegar desde la raz al nodo X. Por definicin la raz tiene longitud de camino 1, y sus descendientes directos longitud de camino 2 y as sucesivamente.

Definicin:

Sea T un rbol con raz v0. Suponga que x, y y z son

vrtices en T y que (v0, v1, ..., vn) es un camino simple en T. Entonces: a) Vn-1 es el padre de vn

b) v0, v1, ..., vn-1 son ancestros de vn.


c) Vn es un hijo de vn-1. d) Si x es un ancestro de y, y es un descendiente de x. e) Si x y y son hijos de z, x y y son hermanos.

f) Si x no tiene hijos, x es vrtice terminal (o una hoja)


g) Si x no es un vrtice terminal, x es un vrtice interno (o una rama). h) El subrbol de T con raz en x es la grfica con conjunto de vrtices V y conjunto de aristaE, donde V es x junto con los descendientes de xy

Arboles de Expansin:
Dado un grafo conexo, no dirigido G. Un rbol de expansin es un rbol compuesto por todos los vrtices y algunas (posiblemente todas) de las aristas de G. Al ser creado un rbol no existirn ciclos, adems debe existir una ruta entre cada par de vrtices. Un grafo puede tener muchos rboles de expansin ejemplo:

Arboles de Expansin Mnima:


Dado un grafo conexo, no dirigido y con pesos en las aristas, un rbol de expansin mnima es un rbol compuesto por todos los vrtices y cuya suma de sus aristas es la de menor peso. Al ejemplo anterior le agregamos pesos a sus aristas y obtenemos los arboles de expansiones siguientes:

De la imagen anterior el rbol de expansin mnima seria el primer rbol de expansin cuyo peso total es 6. El problema de hallar el rbol de Expansin Mnima (MST) puede ser resuelto con varios algoritmos, los mas conocidos con Prim y Kruskal ambos usan tcnicas voraces (greedy).

Algoritmo de Kruskal
Para poder comprender el algoritmo de kruskal ser necesario revisar primer el tutorial de Union-Find. Como trabaja:

Primeramente ordenaremos las aristas del grafo por su peso de menor a mayor. Mediante la tcnica greedy Kruskal intentara unir cada arista siempre y cuando no se forme un ciclo, ello se realizar mediante UnionFind. Como hemos ordenado las aristas por peso comenzaremos con la arista de menor peso, si los vrtices que contienen dicha arista no estn en la misma componente conexa entonces los unimos para formar una sola componente mediante Union(x , y), para revisar si estn o no en la misma componente conexa usamos la funcin SameComponent(x , y) al hacer esto estamos evitando que se creen ciclos y que la arista que une dos vrtices siempre sea la mnima posible.

Algoritmo en Pseudocdigo
1 mtodo Kruskal(Grafo): 2 3 4 5 6 7 8 inicializamos MST como vaco inicializamos estructura unin-find ordenamos las aristas del grafo por peso de menor a mayor. para cada arista e que une los vrtices u y v si u y v no estn en la misma componente agregamos la arista e al MST realizamos la unin de las componentes de u y v

ejemplo:
Tengamos el siguiente grafo no dirigido:

Arboles Binarios:
Un rbol con raz es binario si cada vrtice u,gs(u)=0,1 o 2; es decir , u tiene cuando mucho dos hijos. Si gs(u)=0 o 2 para todo u entonces el rbol con raz es un rbol binario completo. ejemplo:

ejemplo:

En el rbol binario de la figura,

el vrtice b es el hijo izquierdo


del vrtice a y el vrtice c es el hijo derecho del vrtice a.

El vrtice d es el hijo derecho

del vrtice b; el vrtice b no tiene hijo izquierdo.

El vrtice e es el hijo izquierdo

del vrtice c; el vrtice c no tiene hijo derecho.

rbol de Bsqueda Binaria


Definicin: Un rbol de bsqueda binaria es un rbol binario T en el cual se asocian ciertos datos con los vrtices. Los datos estn ordenados de modo que, para cada vrtice v en T, cada elemento de dato en el subrbol izquierdo de v sea menor que el elemento de dato en v y cada elemento de dato en el subarbol derecho de v es mayor que el elemento de dato en v.

Construccin de un algoritmo de bsqueda binaria


Este algoritmo construye un rbol de bsqueda binaria. La entrada se lee en el orden con el cual fue enviada. Despus de leer cada palabra, sta se inserta en el rbol. Entrada: Una sucesin w1,.,wn de palabras distintas y la longitud n de la sucesin. Salida: Un rbol de bsqueda binaria T

procedure make_bin_search_tree(w,n) Sea T el rbol con un vrtice, root Guardar w1 en root Fori := 2 to n do begin v:= root search:= true //encontrar un lugar para w1 while search do begin s:= palabra en v if wi < s then if v no tiene hijo izquierdo then begin agregar un hijo izquierdo l a v HIJO guardar wi en l IZQUIERDO search:= false //fin de la bsqueda end else v:= hijo izquierdo de v else //wi > s if v no tiene hijo derecho then begin agregar un hijo derecho r a v HIJO guardar wi en r DERECHO search:= false //fin de bsqueda end else v:= hijo derecho de v end //mientras end // para return (T) end make_bin_ search_ tree

Recorrido del rbol:

Enumerar todos los elementos de un rbol es ms complicado que enumerar todos los elementos de una lista enlazada y, adems, hay varias formas de hacerlo. Decimos que la lista de los nodos de un rbol se puede recorrer si enumera cada nodo del rbol exactamente una vez. Las implementaciones de los rboles suelen constar de un iterador que enumera los elementos del rbol siguiendo una secuencia predecible.

Tipos de Recorridos:

preorder: raz, subrbol izquierdo, subrbol derecho.


inorder: subrbol izquierdo, raz, subrbol derecho. postorder: subrbol izquierdo, subrbol derecho, raz.

ejemplo:

Postorder: D E B H I F G C A Preorder: A B D E C F H I G Inorder: D B E A H F I C G

Arboles de decisin y el tiempo mnimo para el ordenamiento:


Definicin: Tcnica que permite analizar decisiones secuenciales basada en el uso de resultados y probabilidades asociadas. Los arboles de decisin se pueden usar para generar sistemas expertos, bsquedas binarias y rboles de juegos, los cuales sern explicados posteriormente.

Ventajas:
1.

Resume los ejemplos de partida, permitiendo la clasificacin de nuevos casos siempre y cuando no existan modificaciones sustanciales en las condiciones bajo las cuales se generaron los ejemplos que sirvieron para su construccin. Facilita la interpretacin de la decisin adoptada.

2.

3.
4. 5. 6.

Proporciona un alto grado de comprensin del conocimiento utilizado en la toma de decisiones.


Explica el comportamiento respecto a una determinada tarea de decisin. Reduce el nmero de variables independientes. Es una magnifica herramienta para el control de la gestin empresarial.

Isomorfismo de Arboles

Dos grficas ( G1 y G2) son isomorfas si y slo si existen una funcin, f, uno a uno y sobre el conjunto de vrtices de G1 al conjunto de vrtices de G2 que preserva la relacin de adyacencia en los sentidos de los vrtices vi y vj son adyacentes en G1 si y slo si los vrtices f(vi) y f(vj) son adyacentes en G2.

Ejemplo: La funcin f del conjunto de vrtices del rbol T1 del ejemplo anterior al conjunto de vrtices del rbol T2 est definido por la relacin. f(a)=1 ; f(b)=3 ; f(c)=2 ; f(d)=4 ; f(e)=5

ejemplo:

Los rboles T1 y T2 de la siguiente figura no son isomorfos, pues T2 tiene un vrtice (X) de grado 3, pero T1 no tiene un vrtice de grado 3.

Existen rboles no isomorfos con cinco vrtices. El rbol tiene cuatro aristas. Si tuviera un vrtice v mayor que 4, v incidira en ms de cuatro aristas. Cada vrtice en el rbol tiene 4 aristas como mximo. Determinaremos todos los rboles no isomorfos con cinco vrtices, en que el grado mximo de los vrtices sea 4. Luego determinaremos todos los rboles no isomorfos con cinco vrtices en los cuales el grado mximo de los vrtice sea tres.

rboles con Raz.


Sea T1 un rbol con raz r1 y T2 con raz r2. Los rboles de races r1 y r2 son isomorfos si existe una funcin, f, uno a uno y sobre el conjunto de vrtices de T1 en el conjunto de vrtices T2.

Siempre y cuando se cumplan las siguientes condiciones.

a) Los vrtices v1 y v2 son adyacentes en T1 si y slo si los vrtices f(vi) y f(vj) son adyacentes en T2 b) f(r1) = r2 ejemplo: rboles con raz T1 y T2, son isomorfos.

Arboles Binarios Isomorfos Sea T1 un rbol binario de raz r1y sea T2 un rbol binario con raz r, los rboles binarios T1 y T2 son isomorfos si tienen una funcin uno a uno y sobre el conjunto de vrtices T1 al conjunto de vrtices T2. a) Los vrtices v1 y v2 son adyacentes en T1 si y slo si los vrtices f(vi) y f(vj) son adyacentes en T2.

b) f(r1) = r2
c) v es un hijo izquierdo de w en T1, si y solo si f(v) es un hijo izquierdo de f(w) en 2. d) v es un hijo derecho de w en T1, si y solo si f(v) es un hijo derecho de f(w) en T2. ejemplo:

Bibliografa

Matemticas_discreta_y_combinatoria-Ralph_Grimaldi http://mit.ocw.universia.net/1.00/s02/class-sessions/lecture-26/lecture26.pdf http://www.monografias.com/trabajos36/arboles/arboles.shtml http://jariasf.wordpress.com/2012/04/19/arbol-de-expansion-minimaalgoritmo-de-kruskal/

Matemticas_discreta-Rosen

You might also like