Vous êtes sur la page 1sur 25

Tema 6:

Árboles

M.A.Galán, CURSO 08-09


1
Definiciones y resultados fundamentales.

Contenidos:

Definiciones.

Árbol generador.

Árboles con raı́z.

Árboles m-arios.

Algoritmos de búsqueda. Recorridos.

Representación de expresiones. Formas Polacas.

M.A.Galán, CURSO 08-09


2
Introducción. Cierta región se ve devastada por un terremoto que destruye
todas sus carreteras. Las autoridades se plantean conseguir la normalidad
lo antes posible, haciendo que dos ciudades cualesquiera estén comunicadas
entre si. ¿Qué carreteras tendrán que reconstruir con mayor prioridad?

M.A.Galán, CURSO 08-09


3
Introducción. Cierta región se ve devastada por un terremoto que destruye
todas sus carreteras. Las autoridades se plantean conseguir la normalidad
lo antes posible, haciendo que dos ciudades cualesquiera estén comunicadas
entre si. ¿Qué carreteras tendrán que reconstruir con mayor prioridad?

Grafo conexo, sin ciclos.

M.A.Galán, CURSO 08-09


4
Ejemplo.¿Cómo reconstruir algunas carreteras entre las capitales de An-
dalucı́a, de forma que se pueda ir de una capital a otra y se reconstruya
el menor número de kilómetros?

M.A.Galán, CURSO 08-09


5
Ejemplo.¿Cómo reconstruir algunas carreteras entre las capitales de An-
dalucı́a, de forma que se pueda ir de una capital a otra y se reconstruya
el menor número de kilómetros?

M.A.Galán, CURSO 08-09


6
Existe un tipo especial de grafo conocido con el nombre de árbol. Los árboles
se emplean en el estudio de las estructuras de datos, clasificación, teorı́a de
la codificación y en los problemas de optimización.

Definición. Un árbol es un grafo no dirigido, conexo y sin ciclos.

Ejercicio.¿Puede un árbol tener lazos?

Ejercicio. Marcar los grafos que son árboles

M.A.Galán, CURSO 08-09


7
Propiedades de los árboles

Dados dos vértices cualesquiera del árbol A = (V, E), existe un único
camino simple entre ellos.

Al eliminar una arista cualquiera del árbol A = (V, E), se obtiene un


grafo con dos componentes conexas, siendo cada una de ellas un árbol.

Si A = (V, E) es un árbol entonces |V | = |E| + 1.

M.A.Galán, CURSO 08-09


8
Definición. Se llama árbol generador de un grafo G = (V, E), a cualquier
subgrafo de G que contenga a todos sus vértices y que sea un árbol.

Ejemplo. Buscar un árbol generador del grafo siguiente:

M.A.Galán, CURSO 08-09


9
Teorema. Sean A = (V, E) un árbol, x, y vértices de A. Existe un único
camino que une el vértice x con el vértice y .
Demostración. Como A es conexo, al menos hay un camino que une x con
y . Si hubiese otro, entonces podrı́amos encontrar un ciclo en A, y esto es
imposible por definición de árbol.
Teorema. Sea G = (V, E) un grafo no dirigido. G es conexo si, y sólo si,
tiene un árbol generador.
Demostración.

Si G es conexo, y no es un árbol, entonces eliminamos todos los lazos de


G. Si el subgrafo G1 de G ası́ obtenido no es un árbol, es porque contiene
ciclos. Para cada uno de esos ciclos, eliminamos una arista diferente. El
subgrafo G2 de G ası́ obtenido es conexo, no tiene ciclos y contiene a
todos los vértices de G, por ello, es un árbol generador de G.

Si G tiene un árbol generador A, dados dos vértices de G, existe un


camino que los conecta. Por tanto, G es conexo.

M.A.Galán, CURSO 08-09


10
Teorema. Sea A = (V, E) un árbol. El número de vértices A es igual al
número de aristas más uno.

Demostración. Se razona por inducción fuerte sobre el número de aristas de


A. (Grimaldi 166-167)
Definición. Se llama vértice colgante de un árbol A = (V, E), a cualquier
vértice de grado 1.

Teorema. Sea A = (V, E) un árbol con dos o más vértices. Entonces A tiene
al menos dos vértices colgantes.

Demostración. Razona por reducción al absurdo, suponer que todos los vértices
tienen grado mayor o igual que 2, y llegar a contradicción. ( Grimaldi 463)

M.A.Galán, CURSO 08-09


11
Árboles con raı́z

Definición. Un árbol con raı́z es un árbol que tiene un vértice particular r


designado como raı́z.

Definición. Diremos que el vértice raı́z está en el nivel 0, y que sus vecinos
están en el nivel 1. Para cada k > 1, el nivel k contiene a todos los vértices
adyacentes con los del nivel k − 1, excepto los que ya hayan sido asignados
al nivel k − 2.

Definición. Un vértice de un árbol con raı́z es una hoja si está en el nivel i,


y no es adyacente a ningún vértice del nivel i + 1. Un vértice que no es una
hoja, se llama vértice interno.

M.A.Galán, CURSO 08-09


12
Definición. La altura de un árbol con raı́z es el máximo valor de k para el
cual el nivel k es no vacı́o.

En un árbol con raı́z, por ser conexo y no tener ciclos, cada vértice v del nivel
i (i > 0), es adyacente con un único vértice u del nivel i − 1. A veces se
llama padre al vértice u, e hijo al vértice v . Si varios vértices tienen el mismo
padre, se llaman hermanos. Un vértice con 0 hijos es una hoja.

M.A.Galán, CURSO 08-09


13
Ejercicio. Dibujar un árbol con raı́z y determinar los padres, hijos, hermanos,
hojas, vértices internos y número de niveles.

M.A.Galán, CURSO 08-09


14
Árboles m-arios Definición. Diremos que un árbol con raı́z es un árbol m-
ario si cada vértice interno es padre de m hijos. Cuando m = 2, se dice que
es un árbol binario, y cuando m = 3, tendremos un árbol ternario.

Ejercicio. Dibujar un árbol binario de altura 3 con 7 hojas, y uno ternario de


altura 2 con 5 hojas.

M.A.Galán, CURSO 08-09


15
Teorema. Dado un árbol m-ario, A = (V, E), donde |V | = v , h es el número
de hojas e i el número de vértices internos, se cumple que:

v = mi + 1

h = (m − 1)i + 1

h−1 v−1
i= m−1
= m

Consecuencia: Un árbol binario tiene un número impar de vértices, 2i + 1 (i


internos e i + 1 hojas)
Teorema. Dado un árbol m-ario, A = (V, E) de altura a y con h hojas, se
cumple que:

ma ≥ h

a ≥ [logmh], donde [x] es el menor entero que es mayor o igual que x.

M.A.Galán, CURSO 08-09


16
Ejemplo. Árboles de decisión. Tenemos 8 monedas idénticas en apariencia
y una balanza. Determinar la moneda falsa que es la más pesada. ¿Cuántas
pesadas necesitarı́amos con n monedas?

M.A.Galán, CURSO 08-09


17
Algoritmos de búsqueda: Alg. de búsqueda en profundidad (BEP)

Sea G un grafo conexo con los vértices ordenados v1 , v2 , . . . , vn. Este algorit-
mo determina un árbol generador utilizando el procedimiento de pasar de un
vértice a uno vecino con él.

1. [Inicialización] Tomar w := v1 y sea T el subgrafo formado por v1 , que será la raı́z del
árbol T .

2. [Agregar una arista] Tomar la arista {w, vk } con k mı́nimo, siempre que sea arista de
G, y que al añadirla a T no se forme un ciclo. Si no existe vk , pasar a 3. Y si existe,
agregar {w, vk } a T , hacer w := vk y volver al paso 2.

3. [¿Terminó?] Si w := v1 se ha terminado (T es un árbol generador). Si no, ir al paso 4.

4. [Regresar al nivel anterior] Sea x el padre de w (en T ). Tomar w := x. Volver al


paso 2.

Teorema. Sea G un grafo conexo y T el árbol obtenido mediante BEP. T es


un árbol generador de G.

M.A.Galán, CURSO 08-09


18
Algoritmos de búsqueda: Alg. de búsqueda en anchura (BEA)
Sea G un grafo conexo con los vértices ordenados v1 , v2 , . . . , vn. Este algorit-
mo determina un árbol generador utilizando el procedimiento de pasar de un
vértice a todos los vecinos con él.
1. [Inicialización] Sea S una sucesión de vértices de G. S = {v1 }, y sea T el subgrafo
formado por v1 , que será la raı́z del árbol T .

2. [Agregar las aristas] Para x ∈ S en orden, añadir la arista {x, y} a T para cada vértice
y ∈ G en orden, siempre que {x, y} sea arista de G y no forme un ciclo al añadirlo a T ,
y pasar a 3. Si no se pueden agregar lados, se ha terminado (T es un árbol generador).

3. [Actualizar S ] Reemplazar S por los hijos (en T ) de S ordenados según el orden


original. Pasar a 2.

Teorema. Sea G un grafo conexo y T el árbol obtenido mediante BEA. T es


un árbol generador de G.
Nota: Si G no es conexo, los algoritmos de BEP y BEA proporcionan un
árbol generador de la componente de G que contiene al primer vértice de la
búsqueda.

M.A.Galán, CURSO 08-09


19
Ejemplo. Usar el procedimiento de BEP y el de BEA para encontrar un árbol
generador del grafo siguiente:

Los métodos BEP y BEA proporcionan dos maneras de recorrer un árbol


visitando cada vértice exactamente una vez. Veamos ahora tres métodos más
para recorrer el siguiente árbol genérico. Sea T = (V, E) un árbol con raı́z r
y con subárboles T1, T2, . . . , Tk

M.A.Galán, CURSO 08-09


20
Recorrido con Orden Inicial, Orden Previo o Preorden.
Llamaremos recP (T ) al recorrido en orden previo del árbol T . Entonces.

Si |V | = 1, entonces recP (T ) = {r}

Si |V | > 1, entonces recP (T ) = {r, recP (T1), recP (T2), . . . , recP (Tk )}

Ejemplo.

recP (T ) = {1, 2, 5, 11, 12, 13, 14, 3, 6, 7, 4, 8, 9, 10, 15, 16, 17}

M.A.Galán, CURSO 08-09


21
Recorrido con Orden Central, Simétrico, Inorden o Interorden.
Llamaremos recC (T ) al recorrido en orden central del árbol T . Entonces.

Si |V | = 1, entonces recC (T ) = {r}

Si |V | > 1, entonces recC (T ) = {recC (T1), r, recC (T2), . . . , recC (Tk )}

Ejemplo.

recC (T ) = {11, 5, 12, 13, 14, 2, 1, 6, 3, 7, 8, 4, 9, 15, 10, 16, 17}

M.A.Galán, CURSO 08-09


22
Recorrido con Orden Final o Postorden.
Llamaremos recF (T ) al recorrido en orden final del árbol T . Entonces.

Si |V | = 1, entonces recF (T ) = {r}

Si |V | > 1, entonces recF (T ) = {recF (T1), recF (T2), . . . , recF (Tk ), r}

Ejemplo.

recF (T ) = {11, 12, 13, 14, 5, 2, 6, 7, 3, 8, 9, 15, 16, 17, 10, 4, 1}

M.A.Galán, CURSO 08-09


23
Representación de expresiones
Veamos ahora árboles binarios que representan expresiones aritméticas, que
se podrán evaluar en un ordenador.
Definición. Se llama representación interfija de una expresión, aquella que
sitúa cada operador (+, −, ∗, /) entre sus operandos (las variables utilizadas).
Cuando se inserta un par de paréntesis entre cada operación, tenemos una
representación totalmente parentética de la expresión.
Ejemplo. Representar la expresión (5/x) + (3 ∗ z)

M.A.Galán, CURSO 08-09


24
Formas Polacas: Representación prefija y postfija

Definición. Dada una expresión representada mediante un árbol binario, si


se recorre dicho árbol empleando el recorrido con orden inicial, tendremos la
representación prefija (o notación Polaca) de la expresión.

Definición. Si el recorrido se hace con orden final, tendremos la repre-


sentación postfija (o notación Polaca inversa) de la expresión.

M.A.Galán, CURSO 08-09


25