ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES
ÁRBOL Un árbol es un grafo no dirigido, conexo, sin ciclos (acíclico), y que no contiene aristas múltiples. Por tanto un árbol es necesariamente un grafo simple. ÁRBOL ÁRBOL NO ÁRBOL NO ÁRBOL
TEOREMA UNO Un grafo no dirigido es un árbol, si y solo si hay un único camino entre cada pareja de vértices. Se puede observar en este grafo tomado del ejemplo anterior, que para cualquier par de vértices que se tomen, solo existirá un camino que los unos. Si hay mas de un camino que uno este par de vértices inmediatamente deja de ser un árbol.
RAÍCES DE ARBOLES Un árbol con raíz es un árbol en que uno de sus vértices ha sido designado como la raíz y todas la aristas están orientadas de modo que se alejan de la raíz. Raíz en A Raíz en B
SUBÁRBOLES Si a es un vértice de un árbol, el subárbol con raíz en a es el subgrafo del árbol que contiene al vértice a, a todos sus descendientes y a rodas sus aristas incidentes en dichos descendientes. Obtenemos un subárbol a partir del vértice A
EJEMPLO 1. cuales son los hijos derechos e izquierdos de vértice C 2. Cual es el nivel del árbol 3. Cuales son los nodos hermanos de C 4. Cual es el nodo padre de J 5. Cuales son los nodos hoja
REPUESTAS 1. El hijo derecho del vértice C es el nodo A y el hijo izquierdo es el nodo D. 2. El árbol es nivel 4 3. Los nodos hermanos a C son los vértices H, I, J 4. El nodo padre del vértice J es G 5. Los nodos hoja son D, E, K, L, M.
ÁRBOLES COMO MODELOS Butano Representación de organizaciones
PROPIEDADES DE LOS ARBOLES TEOREMA DOS : Un árbol de n vértices tiene n-1 aristas. El árbol consta de 13 vértices o nodos, por tanto tenemos que n = 13 aristas = n 1 aristas = 13 1 aristas = 12
TEOREMA TRES Un árbol m-ario completo con i vértices internos tiene n = mi + 1 vertices. m = grado 5 i = 3 vertices internos n = mi + 1 n = 5 3 + 1 m = 16 Árbol 5 - ario Como podemos comprobar en este ejemplo el teorema se cumple y nos da como resultado n = 16 que son la cantidad de nodos que hay en el árbol.
TEOREMA CUATRO Un árbol m ario completo con : 1. n vértices tiene i = n 1 m vértices y l = m 1 n+1 m hojas. 2. i vértices internos tiene n = mi + 1 vértices y l = m 1 i + 1. 3. l hojas tiene n = ml 1 m 1 vértices e i = l 1 m 1 vértices internos.
EJEMPLO n = 16 i = 3 l = 13 m = 5 1. i = n 1 l = 16 1 i = m m 1 n+1 m 5 = 3 vertices internos l = 4 17 5 = 13.6 nodos hoja 2. n = mi + 1 n = 5 3 + 1 = 16 vertices l = m 1 i + 1 l = 12 + 1 = 13 hojas ml 1 3. n = m 1 n = 64 = 16 vertices 4 i = l 1 m 1 i = 14 = 3.5 vertices internos 4
TEOREMA CINCO Un árbol m ario de altura h tiene a lo sumo, m h hojas. En este caso la altura es h = 3 y m = 3 por lo tanto el árbol tendrá como máximo 3 3 = 27 nodos hoja.
ARBOLES BINARIOS DE BÚSQUEDA Para hacer una búsqueda que encuentre elementos de manera mas eficiente cuando los objetos están totalmente ordenados, esto se puede lograr por medio de un árbol binario de búsqueda. Para hacer una inserción de un dato en un árbol binario se tiene en cuenta que hay una raíz, después se compara si el dato a insertar es menor que la raíz, de ser así se inserta al lado izquierdo y en caso de ser mayor se inserta al lado derecho. Y asi se puede hacer el proceso de forma recursiva por todos los niveles del árbol. Para realizar una búsqueda de un elemento se procede de la misma manera, se empieza por la raíz y se compara si es mayor o menor a esta, y así se puede avanzar a la derecha o izquierda respectivamente, este proceso se repite recursivamente hasta que se encuentre el elemento.
EJEMPLO Construya un árbol binario de búsqueda para los id : 64, 14, 44, 50, 68, 10, 16, 1. Construya un árbol binario de búsqueda para las siguientes letras: M, P, G, Z, C, B, F, R.
COMPLETADO DE ÁRBOLES Los vértices sin etiquetar están rodeados por un circulo.
ÁRBOLES DE DECISIÓN Los arboles con raíz pueden utilizarse para modelar problemas en los que una serie de decisiones llevan a una solución. Por ejemplo: un árbol binario de búsqueda que pueda emplearse para localizar elementos basándose en una serie de comparaciones, donde cada una de ella nos dice si hemos localizado o no el elemento o si debemos proceder al subárbol izquierdo o al subárbol derecho
EJEMPLO
TEOREMA Un algoritmo de ordenación basado en comparaciones binarias requiere al menos [log n!]. Comparaciones. n = 8 comparaciones = log n! comparaciones = 4,6 Este resultado nos quiere decir que como mínimo se deben hacer 5 comparaciones para insertar todos los datos en el árbol.
CÓDIGOS INSTANTÁNEOS Considerando el problema de codificar las letras del alfabeto mediante cadenas de bits, podemos hacer cadenas de longitud 5, pero para codificar datos son 5 veces el numero de caracteres por tanto se organizaron las letras en un árbol donde la letras que mas se usan están de primeras y tienen una cadena de bits mas corta y por el contrario las letras que menos se utilizan queda con una cadena mas larga E = 0 A = 10 T = 110 N = 1110 S = 11110 Como se observa, las letras menos usadas tienen una cadena de bits mas larga, por el contrario las mas usadas tienen cadenas de bits cortas.
CÓDIGOS DE HUFFMAN El algoritmo consiste en la creación de un árbol binario que tiene cada uno de los símbolos por hoja, y construido de tal forma que siguiéndolo desde la raíz a cada una de sus hojas se obtiene el código Huffman asociado. M A T E M A T I C A M A T E I C 2 10 3 10 2 10 1 10 1 10 1 10
Vamos ingresando las letras al árbol de forma ascendente de acuerdo a su probabilidad C = 0,1 I = 0,1 E = 0,1 T = 0,2 M = 0,2 A = 0,3
ÁRBOLES DE JUEGOS Los vértices de estos arboles representan los estados o posiciones en el desarrollo del juego; las aristas representan los movimientos permitidos entre dos estados cualesquiera
SISTEMA DE ETIQUETADO UNIVERSAL
RECORRIDO DE ARBOLES Pre orden (raíz, izquierda, derecha) A B E J K N O P F C D G L M H I Post orden ( izquierda, derecha, raíz) J N O P K E F B C L M G H I D A In orden (izquierda, raíz, derecha) J E N K O P B F A C L G M D H I
NOTACION INFIJA, PREFIJA Y POSTFIJA Representacion mediante árbol binario de ( x + y 2 + ( x 4 3 )
ARBOLES GENERADORES Sea G un grafo simple. Un árbol generador o recubridor de G es un subgrafo de G que es un árbol y contiene todos los vértices de G Grafo G Sub-Grafo de G
TEOREMA UNO Un grafo simple es conexo si, y sólo si, admite un árbol generador
BÚSQUEDA EN PROFUNDIDAD En lugar de construir árboles generadores eliminando aristas, los árboles generadores se pueden obtener añadiendo aristas. Elegimos un vértice arbitrario como raíz del árbol. Formamos un camino que comienza en este vértice añadiendo sucesivamente vértices y aristas, siendo cada nueva arista incidente con el ultimo vértice del camino y un vértice que no está en el camino
EJEMPLO Grafo G (a) (b) (c) (d) (e)
BÚSQUEDA EN ANCHURA (POR NIVELES) Elegimos un vértice arbitrario como raíz. Añadimos todas las aristas incidentes en ese vértice. Los nuevos vértices añadidos en esa fase forman los vértices del nivel 1 del árbol generador. Los ordenamos con un orden cualquiera. Para cada vértice del nivel 1 visitados en orden, añadimos todos los vértices incidentes con él, siempre que no formen un ciclo. Seguimos el mismo procedimiento hasta que se hayan añadido todos los vértices del árbol.
EJEMPLO Grafo G (a) (b) (c) (d)
BÚSQUEDA EN PROFUNDIDAD EN GRAFOS DIRIGIDOS Los algoritmos de búsqueda en profundidad y búsqueda en anchura se pueden modificar para que puedan aplicarse a grafos dirigidos. Sin embargo el resultado final no será necesariamente un árbol generador, sino un bosque generador. En ambos algoritmos podemos añadir una arista sólo cuando ésta se aleja del vértice en curso hacia oro que no se ha añadido aún. Si en un paso de alguno de los dos algoritmos vemos que tal arista no existe, el siguiente vértice añadido por el algoritmo pasa a ser la raíz de un nuevo árbol en el bosque generador.
EJEMPLO (a) (b) (c) (d)
ÁRBOL GENERADOR MÍNIMO Un árbol generador mínimo de un grafo ponderado es un árbol generador tal que la suma de los pesos de sus aristas es la mínima posible de entre todos los árboles generadores.
ALGORITMOS PARA ÁRBOLES GENERADORES MÍNIMOS Se puede resolver una amplia variedad de problemas mediante el cálculo de un árbol generador de un grafo ponderado tal que la suma de los pesos de las aristas del árbol sea mínima.
ALGORITMO DE PRIM Para grafos ponderados, conexo y no dirigido de n vértices. El algoritmo encuentra un subconjunto de aristas que forman un árbol con todos los vértices, donde el eso total de todas las aristas en el árbol es el mínimo posible.
ALGORITMO DE KRUSKAL Grafo ponderado, conexo y no dirigido de n vértices. Se usa para encontrar un árbol recubridor mínimo en un grafo conexo y ponderado. Es decir, busca un subconjunto de aristas que, formando un árbol, incluyen todos los vértices y donde el valor total de todas las aristas del árbol es el mínimo. Si el grafo no es conexo, entonces busca un bosque expandido mínimo
EJEMPLO Calcular mediante el algoritmo de Kruskal o Prim un Árbol generador mínimo del grafo.
ACTIVIDAD Realizar el algoritmo de Huffman para las siguientes palabras : INGENIERIA, SISTEMAS
GRACIAS