Está en la página 1de 8

INVESTIGACION DE

ARBOLES Y GRAFOS

















ARBOLES Y GRAFOS

En este contexto rboles y grafos se refiere a estructuras de datos que permiten organizar y
mantener informacin en un computador. Esta forma se inspira una forma de organizar
informacin con lpiz y papel usando nodos y flechas entre los nodos (a esas flechas tambin
se les llama arcos, a los nodos tambin se les llama vrtices). Los grafos y rboles en papel
son apropiados por ejemplo para capturar slo una parte de la informacin de objetos,
situaciones y otros tipos de informacin (i.e son apropiados para abstraer).
En un computador adems de permitir organizar informacin, resultan estructuras tiles para
resolver ciertos tipos de problema (por ejemplo pueden emplearse rboles AVL para mantener
informacin ordenada de forma eficiente).
Para jugar, entender y emplear mejor grafos (y rboles) varias personas (e.g Euler) han
propuesto definiciones; a partir de estas definiciones y con ayuda de razonamientos lgicos
han demostrado propiedades. Un mnimo de definiciones y de propiedades de grafos y rboles
se presenta a continuacin.
rbol

En ciencias de la informtica, un rbol es una estructura de datos ampliamente usada que imita
la forma de un rbol (un conjunto de nodos conectados). Un nodo es la unidad sobre la que se
construye el rbol y puede tener cero o ms nodos hijos conectados a l. Se dice que un nodo
a es padre de un nodo b si existe un enlace desde a hasta b (en ese caso, tambin decimos
que b es hijo de a). Slo puede haber un nico nodo sin padres, que llamaremos raz. Un nodo
que no tiene hijos se conoce como hoja. Los dems nodos (tienen padre y uno o varios hijos)
se les conoce como rama.
Un rbol se define como un tipo de grafo que no contiene ciclos, es decir es un grafo tambin
acclico, pero a su vez es conexo. Tal es el caso de los siguientes dos grafos en donde se
puede notar que ninguno de los dos contiene repeticiones (ciclos).

Bosques de rboles.

Los bosques de rboles son un caso similar a los rboles, son acclicos, pero no son conexos.
Como ejemplo tenemos la siguiente figura.

Formalmente, podemos definir un rbol de la siguiente forma:

Caso base: un rbol con slo un nodo (es a la vez raz del rbol y hoja).
Un nuevo rbol a partir de un nodo nr y k rboles de races con elementos cada uno, puede
construirse estableciendo una relacin padre-hijo entre nr y cada una de las races de los k
rboles. El rbol resultante de nodos tiene como raz el nodo nr, los nodos son los hijos de nr y
el conjunto de nodos hoja est formado por la unin de los k conjuntos hojas iniciales. A cada
uno de los rboles Ai se les denota ahora subrboles de la raz.
Una sucesin de nodos del rbol, de forma que entre cada dos nodos consecutivos de la
sucesin haya una relacin de parentesco, decimos que es un recorrido rbol. Existen dos
recorridos tpicos para listar los nodos de un rbol: primero en profundidad y primero en
anchura. En el primer caso, se listan los nodos expandiendo el hijo actual de cada nodo hasta
llegar a una hoja, donde se vuelve al nodo anterior probando por el siguiente hijo y as
sucesivamente. En el segundo, por su parte, antes de listar los nodos de nivel n + 1 (a distancia
n + 1 aristas de la raz), se deben haber listado todos los de nivel n. Otros recorridos tpicos del
rbol son preorden, postorden e inorden:

El recorrido en preorden, tambin llamado orden previo consiste en recorrer en primer lugar la
raz y luego cada uno de los hijos en orden previo.
El recorrido en inorden, tambin llamado orden simtrico (aunque este nombre slo cobra
significado en los rboles binarios) consiste en recorrer en primer lugar A1, luego la raz y luego
cada uno de los hijos en orden simtrico.
El recorrido en postorden, tambin llamado orden posterior consiste en recorrer en primer lugar
cada uno de los hijos en orden posterior y por ltimo la raz.
Finalmente, puede decirse que esta estructura es una representacin del concepto de rbol en
teora de grafos. Un rbol es un grafo conexo y acclico (ver tambin teora de grafos y Glosario
en teora de grafos).

Tipos de rboles

-rbol binario

En ciencias de la computacin, un rbol binario es una estructura de datos en la cual cada
nodo siempre tiene un hijo izquierdo y un hijo derecho. No pueden tener ms de dos hijos (de
ah el nombre "binario"). Si algn hijo tiene como referencia a null, es decir que no almacena
ningn dato, entonces este es llamado un nodo externo. En el caso contrario el hijo es llamado
un nodo interno. Usos comunes de los rboles binarios son los rboles binarios de bsqueda,
los montculos binarios y Codificacin de Huffman.

Tipos de rboles binarios

Un rbol binario es un rbol con raz en el que cada nodo tiene como mximo dos hijos.
Un rbol binario lleno es un rbol en el que cada nodo tiene cero o dos hijos.
Un rbol binario perfecto es un rbol binario lleno en el que todas las hojas (vrtices con cero
hijos) estn a la misma profundidad (distancia desde la raz, tambin llamada altura).

A veces un rbol binario perfecto es denominado rbol binario completo. Otros definen un rbol
binario completo como un rbol binario lleno en el que todas las hojas estn a profundidad n o
n-1, para alguna n.

Un rbol binario es un rbol en el que ningn nodo puede tener ms de dos subrboles. En un
rbol binario cada nodo puede tener cero, uno o dos hijos (subrboles). Se conoce el nodo de
la izquierda como hijo izquierdo y el nodo de la derecha como hijo derecho.

-rbol binario de bsqueda auto-balanceable

En ciencias de la computacin, un rbol binario de bsqueda auto-balanceable o equilibrado es
un rbol binario de bsqueda que intenta mantener su altura, o el nmero de niveles de nodos
bajo la raz, tan pequeos como sea posible en todo momento, automticamente. Esto es
importante, ya que muchas operaciones en un rbol de bsqueda binaria tardan un tiempo
proporcional a la altura del rbol, y los rboles binarios de bsqueda ordinarios pueden tomar
alturas muy grandes en situaciones normales, como cuando las claves son insertadas en
orden. Mantener baja la altura se consigue habitualmente realizando transformaciones en el
rbol, como la rotacin de rboles, en momentos clave.

Tiempos para varias operaciones en trminos del nmero de nodos en el rbol n:

Operacin Tiempo en cota superior asinttica
Bsqueda O(log n)
Insercin O(log n)
Eliminacin O(log n)
Iteracin en orden O(n)
Para algunas implementaciones estos tiempos son el peor caso, mientras que para otras estn
amortizados.

Estructuras de datos populares que implementan este tipo de rbol:

rbol AVL
rbol rojo-negro


-rbol-B

En las ciencias de la computacin, los rboles-B B-rboles son estructuras de datos de rbol
que se encuentran comnmente en las implementaciones de bases de datos y sistemas de
archivos. Los rboles B mantienen los datos ordenados y las inserciones y eliminaciones se
realizan en tiempo logartmico amortizado.

B-rbol es un rbol de bsqueda que puede estar vaco o aquel cuyos nodos pueden tener
varios hijos, existiendo una relacin de orden entre ellos, tal como muestra el dibujo.

Un rbol-B de orden M (el mximo nmero de hijos que puede tener cada nodo) es un rbol
que satisface las siguientes propiedades:

1. Cada nodo tiene como mximo M hijos.
2. Cada nodo (excepto raz y hojas) tiene como mnimo M/2 hijos.
3. La raz tiene al menos 2 hijos si no es un nodo hoja.
4. Todos los nodos hoja aparecen al mismo nivel.
5. Un nodo no hoja con k hijos contiene k-1 elementos almacenados.
6. Los hijos que cuelgan de la raz (r1, , rm) tienen que cumplir ciertas condiciones:
1. El primero tiene valor menor que r1.
2. El segundo tiene valor mayor que r1 y menor que r2, etc.
3. El ltimo hijo tiene valor mayor que rm.

-rbol multicamino
Los rboles multicamino o rboles multirrama son estructuras de datos de tipo rbol usadas en
computacin.
Un rbol multicamino posee un grado g mayor a dos, donde cada nodo de informacin del rbol
tiene un mximo de g hijos.
Sea un rbol de m-caminos A, es un rbol m-caminos si y solo si:
A est vaco
Cada nodo de A muestra la siguiente estructura:
[nClaves,Enlace0,Clave1,...,ClavenClaves,EnlacenClaves]
nClaves es el nmero de valores de clave de un nodo, pudiendo ser: 0 <= nClaves <= g-1
Enlacei, son los enlaces a los subrboles de A, pudiendo ser: 0 <= i <= nClaves Clavei, son los
valores de clave, pudiendo ser: 1 <= i <= nClaves Clavei < g =" (V,A,j" g1 =" (V1," v1 =" {1," a1
=" {(1," g2 =" (V2," v2 =" {1," a2 =" {(1," g3 =" (V3," v3 =" {1," a3 =" {">, <2,>, <2,> }

Grficamente estas tres estructuras de vrtices y arcos se pueden representar de la siguiente
manera:


Algunos de los principales tipos de grafos son los que se muestran a continuacin:
Grafo regular: Aquel con el mismo grado en todos los vrtices. Si ese grado es k lo
llamaremos k-regular.
Grafo bipartito: Es aquel con cuyos vrtices pueden formarse dos conjuntos disjuntos de modo
que no haya adyacencias entre vrtices pertenecientes al mismo conjunto
Grafo completo: Aquel con una arista entre cada par de vrtices. Un grafo completo con n
vrtices se denota Kn.
Un grafo bipartito regular: se denota Km,n donde m, n es el grado de cada conjunto disjunto de
vrtices.

Grafo nulo: Se dice que un grafo es nulo cuando los vrtices que lo componen no estn
conectados, esto es, que son vrtices aislados.
Grafos Isomorfos: Dos grafos son isomorfos cuando existe una correspondencia biunvoca
(uno a uno), entre sus vrtices de tal forma que dos de estos quedan unidos por una arista en
comn.

Grafos Platnicos: Son los Grafos formados por los vrtices y aristas de los cinco slidos
regulares (Slidos Platnicos), a saber, el tetraedro, el cubo, el octaedro, el dodecaedro y el
icosaedro.

Grafos Eulerianos.
Para definir un camino euleriano es importante definir un camino euleriano primero. Un camino
euleriano se define de la manera ms sencilla como un camino que contiene todos los arcos
del grafo.
Teniendo esto definido podemos hablar de los grafos eulerianos describindolos simplemente
como aquel grafo que contiene un camino euleriano. Como ejemplos tenemos las siguientes
imgenes:

El primer grafo de ellos no contiene caminos eulerianos mientras el segundo contiene al menos
uno.

Grafos Conexos.
Un grafo se puede definir como conexo si cualquier vrtice V pertenece al conjunto de vrtices
y es alcanzable por algn otro. Otra definicin que dejara esto ms claro sera: "un grafo
conexo es un grafo no dirigido de modo que para cualquier par de nodos existe al menos un
camino que los une".
Recorrido de un grafo.
Recorrer un grafo significa tratar de alcanzar todos los nodos que estn relacionados con uno
que llamaremos nodo de salida. Existen bsicamente dos tcnicas para recorrer un grafo: el
recorrido en anchura; y el recorrido en profundidad.

Recorrido en anchura: El recorrido en anchura supone recorrer el grafo, a partir de un nodo
dado, en niveles, es decir, primero los que estn a una distancia de un arco del nodo de salida,
despus los que estn a dos arcos de distancia, y as sucesivamente hasta alcanzar todos los
nodos a los que se pudiese llegar desde el nodo salida.
Recorrido en profundidad: el recorrido en profundidad trata de buscar los caminos que parten
desde el nodo de salida hasta que ya no es posible avanzar ms. Cuando ya no puede
avanzarse ms sobre el camino elegido, se vuelve atrs en busca de caminos alternativos, que
no se estudiaron previamente.

Representacin de grafos en programas.
Hay tres maneras de representar un grafo en un programa: mediante matrices, mediante listas
y mediante matrices dispersas.
Representacin mediante matrices: La forma ms fcil de guardar la informacin de los nodos
es mediante la utilizacin de un vector que indexe los nodos, de manera que los arcos entre los
nodos se pueden ver como relaciones entre los ndices. Esta relacin entre ndices se puede
guardar en una matriz, que llamaremos de adyacencia.
Representacin mediante listas: En las listas de adyacencia lo que haremos ser guardar por
cada nodo, adems de la informacin que pueda contener el propio nodo, una lista dinmica
con los nodos a los que se puede acceder desde l. La informacin de los nodos se puede
guardar en un vector, al igual que antes, o en otra lista dinmica.
Representacin mediante matrices dispersas: Para evitar uno de los problemas que tenamos
con las listas de adyacencia, que era la dificultad de obtener las relaciones inversas, podemos
utilizar las matrices dispersas, que contienen tanta informacin como las matrices de
adyacencia, pero, en principio, no ocupan tanta memoria como las matrices, ya que al igual que
en las listas de adyacencia, slo representaremos aquellos enlaces que existen en el grafo.


Dgrafo (grafo dirigido).
A un grafo dirigido se le puede definir como un grafo que contiene aristas dirigidas, como en el
siguiente caso.
Aplicaciones de los dgrafos
Una de las aplicaciones mas importantes es de hallar el camino mas corto hacia un destino, ya
sea de una ciudad a otra, de unos departamentos a otros, para el recorrido de rboles, sirve
para la representacin de algoritmos, etc. Un ejemplo de esto es la tarea de frer un huevo.

Grado de un grafo.
Grado de incidencia positivo: El grado de incidencia positivo de un nodonjes el nmero de
arcos que tienen como nodo inicial anj. Ejemplo: El grado de incidencia de 1 es igual a 3.
Grado de incidencia negativo: El grado de incidencia negativo de un nodonjes el nmero de
arcos que terminan ennj. Ejemplo: El grado de incidencia negativo de 1 es igual a 1.
Grado de un nodo: Paradigrafoses el grado de incidencia positivo menos el grado de
incidencia negativo del nodo. Ejemplo: El grado de 1 es igual a 3 1 = 2, el grado del nodo 4 es
2 2 = 0. Para grafos no dirigidos es el nmero de lneas asociadas al nodo.






Ciclo de un grafo.


Ciclo: Es una cadena finita donde el nodo inicial de la cadena coincide con el nodo terminal de
la misma.
Ciclo simple: Es el ciclo que a su vez es una cadena simple.
Estructuras no lineales: Grafos
Las estructuras de datos no lineales se caracterizan por no existir una relacin de adyacencia,
entre sus elementos, es decir, un elemento puede estar relacionado con cero, uno o ms
elementos.

La estructura no lineal de datos ms general es el grafo donde sus nodos pueden relacionarse
de cualquier manera sin una relacin de orden predefinida.
Estructuras no lineales: Grafos Entre las mltiples aplicaciones que tienen estas estructuras
podemos mencionar:Para modelar diversas situaciones tales como: sistemas de aeropuertos,
flujo de trfico, y responder a preguntas como: Qu tiempo es ms corto?, Cmo es ms
barato?, o Qu camino es ms corto?. Los grafos tambin son utilizados para realizar
planificacin de actividades, tareas del computador, planificar operaciones en lenguaje de
mquinas para minimizar tiempo de ejecucin.Qu tarea debo hacer primero?. Para
representar circuitos elctricos, de aguas etc... , y preguntar, estn todas las componentes
conectadas.

Grafos Los grafos pueden ser utilizados como la estructura bsica para mltiples aplicaciones
en el rea de la Computacin. Un grafo G (N, A, f) es un conjunto no vaco, donde:N={n1, n2,
... ,nM) es el conjunto de nodos o vrticesA={a1, a2, ..., a K} es el conjunto de aristas yLa
funcin f : R indica los pares de nodos que estn relacionados.Grafos Dirigidos
(Dgrafos) En estos grafos, las aristas que comunican dos nodos tienen un nico sentido, una
arista puede ir de x a y, pero no de y a x. Se expresa grficamente con flechas que indican el
sentido de la relacin entre cada par de nodos.

GrafosGrafos no dirigidos En estos grafos, las aristas que comunican dos nodos tienen dos
sentidos. Si una arista va de x a y, la misma arista va de y a x. Se expresa grficamente por
lneas. La representacin grfica de un grafo se define con un crculo o rectngulo para los
nodos y las relaciones con lneas o flechas segn sea un grafo no dirigido o un dgrafo,
respectivamente.



















EJEMPLO DE ARBOL