Arboles Como Grafos

35
ARBOLES COMO GRAFOS JEFFERSON RODRIGUEZ 20111020083 MAURICIO RINCON 20102020077 Grupo 81 Consulta de investigación Julio Cesar Flórez Báez Docente de Ciencias de la computación II UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA PROYECTO CURRICULAR DE INGENIERÍA DE SISTEMAS 1

description

Trabajo Ciencias 2

Transcript of Arboles Como Grafos

Page 1: Arboles Como Grafos

ARBOLES COMO GRAFOS

JEFFERSON RODRIGUEZ

20111020083

MAURICIO RINCON

20102020077

Grupo 81

Consulta de investigación

Julio Cesar Flórez Báez

Docente de Ciencias de la computación II

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD DE INGENIERÍA

PROYECTO CURRICULAR DE INGENIERÍA DE SISTEMAS

BOGOTÁ D.C.

ABRIL DE 2015

TABLA DE CONTENIDO

1

Page 2: Arboles Como Grafos

Pág.

INTRODUCCIÓN 3

OBJETIVOS 4

1. ARBOLES COMO GRAFOS 51.1. DEFINICIÓN Y PROPIEDADES 51.2. DISTANCIAS MÍNIMAS EN UN GRAFO DIRIGIDO 10

1.2.1. Algoritmo de Dijkstra 111.2.2. Algoritmo de Floyd 12

1.3. EXCENTRICIDAD 121.4. CENTRALIDAD 121.5. CENTRO DE UN ARBOL 15

2. ARBOLES DE EXPANSIÓN 152.1. ARBOLES DE EXPANSIÓN 152.2. DISTANCIA ENTRE DOS ARBOLES DE EXPANSIÓN 162.3. VÉRTICE CENTRAL EN ÁRBOL DE EXPANSIÓN 16

2.3.1. Promedio de ocupación 162.3.2. Vértice central 16

2.4. DEFINICIÓN DE RANGO Y NULIDAD 172.5. CIRCUITOS FUNDAMENTALES 172.6. ARBOLES DE EXPANSIÓN DE UN GRAFO PONDERADO 17

2.6.1. Grafo Ponderado 172.6.2. Árbol de expansión del árbol ponderado 18

2.7. ALGORITMO DE PRIM Y KRUSKAL 192.7.1. Algoritmo de Prim 192.7.2. Algoritmo de Kruskal 21

3. CONJUNTO DE CORTE 233.1. DEFINICIÓN 233.2. CARACTERÍSTICAS 233.3. PROPIEDADES 233.4. VÉRTICES DE CORTE 243.5. CONECTIVIDAD 243.6. SEPARABILIDAD 253.7. BICONECTIVIDAD 25

3.7.1. Propiedades 253.7.2. Vértices de separación 26

CONCLUSIONES 27BIBLIOGRAFÍA 28

INTRODUCCIÓN

2

Page 3: Arboles Como Grafos

En el siguiente trabajo se dan a conocer las vinculaciones de los grafos con los árboles y demás representaciones, así como arboles de expansión, su definición, conceptos claves y algunos algoritmos que se usan en estos casos y por último conjunto de corte, así como su definición, características, propiedades y otros conceptos importantes.

Además el conocimiento de sus soluciones según el caso en el que se presenten será de utilidad para el mejoramiento y/o desarrollo de sistemas de información al permitir una mejor organización de la misma.

OBJETIVOS

3

Page 4: Arboles Como Grafos

GENERALES

Actualizar y reestructurar los conocimientos acerca de la representación de los grafos como arboles

Aprender algunas formas de representación de los grafos y las aplicaciones de los mismos.

ESPECÍFICOS

Presentar de forma ordenada y coherente los conceptos para facilitar el entendimiento de los mismos por parte del lector.

Representar con ejemplos los posibles casos presentados en las clases de solución de colisiones según su tipo.

1. ARBOLES COMO GRAFOS

1.1. Definición y Propiedades:

4

Page 5: Arboles Como Grafos

Los árboles son una clase de grafos. Un claro ejemplo de un árbol es el siguiente:

Consideremos cuatro parejas de chismosos {a, A, b, B, c, C, d, D} donde a, b, c y d son los esposos y A, B, C y D son sus esposas respectivamente. Supongamos que a llama a su esposa para contarle algún chisme, entonces ella llama a las otras señoras para difundir el chisme, y cada una de ellas a su vez llama a su esposo para comunicárselo. El siguiente grafo muestra la propagación del chisme:

Figura 1. Grafo propagación chisme

Un árbol es un grafo no dirigido conexo que no contiene circuitos, es decir que no existen dos o más paseos sobre un par de vértices.

Un conjunto de árboles disjuntos es llamado bosque. Un vértice de grado 1 en un árbol se llama hoja o un nodo terminal, y un vértice de grado mayor que 1 recibe el nombre de rama o nodo interno. Por ejemplo, son hojas: b, c, d y los vértices a, A, B, C, D son nodos rama.

Las propiedades de los árboles son: Existe un único paseo entre dos vértices cualesquiera de un árbol. El número de vértices es mayor en uno al número de aristas de un árbol. Un árbol con dos o más vértices tiene al menos dos hojas.

Un árbol T (libre) es una gráfica simple que satisface lo siguiente; si v y w son vértices en T, existe una trayectoria simple única de v a w. Se muestra un ejemplo:

Figura 2. Árbol Libre

Un árbol con raíz es un árbol en el que un vértice específico se designa como raíz, se presenta un ejemplo:

5

Page 6: Arboles Como Grafos

Figura 3. Árbol con raíz

Como la trayectoria simple de la raíz a cualquier vértice dado es única, cada vértice está en un nivel determinado de manera única. Así, el nivel de la raíz es el nivel 0, los vértices que están debajo de la raíz están en el nivel 1, y así sucesivamente. Por lo tanto podemos decir que: el nivel de un vértice v es la longitud de la trayectoria simple de la raíz a v.

La altura de un árbol con raíz es el número máximo de nivel que ocurre.

Ejemplo:

Tomando como referencia el gráfico del árbol con raíz determine el nivel del vértice a, b, g y determine también la altura del árbol.

Para el vértice a su nivel es 0Para el vértice b su nivel es 1Para el vértice g su nivel es 2

La altura del árbol es de 2.

Árboles De Expansión

Un árbol T es un árbol de expansión de una gráfica G si T es una subgráfica de G que contiene a todos los vértices de G. Una gráfica G tiene un árbol de expansión si y solo si G es conexa. El árbol de expansión para la gráfica G que se presenta, se muestra con línea seguida.

Figura 4. Árbol de expiación

6

Page 7: Arboles Como Grafos

Existen dos métodos para encontrar el árbol de expansión de una gráfica G:

1. Por búsqueda a lo ancho: permite procesar todos los vértices en un nivel dado antes de moverse al nivel más alto que lo sigue; primero se selecciona un orden de los vértices, considerando el primer vértice de ese orden como raíz.

2. Por búsqueda en profundidad: o conocido también como de regreso.

Ejemplo

Utilice la búsqueda a profundidad con el orden h, g, f, e, d, c, b, a de los vértices para determinar un árbol de expansión de la gráfica G.

Tomado h como vértice raíz tenemos:

Figura 5. Árbol de expansión 2

Árboles De Expansión Mínimo

Un árbol de expansión comprende un grafo que posee nodos, arcos cada uno con longitud (peso) no negativa. Para encontrar el árbol de expansión mínima se debe recorrer todos los vértices del árbol en el que la suma de los pesos de sus aristas sea mínima, no se incluyen ciclos en la solución.

Un árbol de expansión mínima de G es un árbol de expansión de G con peso mínimo.

Algoritmo de la ruta más corta en un árbol

Se lo obtiene aplicando el algoritmo de Dijkstra, al recorrer el árbol se lo hace desde un Vo a un Vf por las aristas cuyos pesos sean menores y la suma del recorrido sea menor, no es necesario que se abarque todos los vértices.

Ejemplo:

Determine el árbol de expansión mínimo para la gráfica de la página 405 del texto base ejercicio 4.

7

Page 8: Arboles Como Grafos

Utilizando el algoritmo de la ruta más corta.

Luego de haber recorrido las diferentes alternativas de la gráfica propuesta en el texto básico obtenemos como resultado la que se muestra:

Figura 6. Árbol con ruta más corta

Si realizamos la suma de sus pesos es de 35; sumatoria mínima.

Árboles Binarios

Están entre los tipos de árboles binarios especiales con raíz, su característica es que todo vértice tiene cuando mucho dos hijos. Donde cada hijo se designa como un hijo izquierdo o un hijo derecho, además, su posición en el árbol los identifica.

Formalizando se dice que un árbol binario es un árbol con raíz en el que cada vértice tiene ningún hijo, un hijo o dos hijos. Si el vértice tiene un hijo se designa como un hijo izquierdo o como derecho (pero no ambos). Si un vértice tiene dos hijos, un hijo se designa como hijo izquierdo y el otro como hijo derecho.

Un árbol binario completo es un árbol binario en el que cada vértice tiene dos o cero hijos.

Ejemplo

Figura 7. Árbol binario completo

La altura de este árbol es de 2.

Recorrido De Un Árbol

8

Page 9: Arboles Como Grafos

Existen tres métodos extras que permiten recorrer un árbol, ellos son:

Recorrido pre orden: considera para el recorrido del árbol el siguiente orden (raíz - izquierda - derecha)

Recorrido entre orden: considera para el recorrido del árbol el siguiente orden (izquierda -raíz - derecha)

Recorrido postorden: considera para el recorrido del árbol el siguiente orden (izquierda – derecha - raíz)

Figura 8. Recorrido de un Árbol

Respuesta:

PREORDEN: * - + A B - * C D / E F A ENTREORDEN: A + B – C * D – E / F * A POSTORDEN: A B + C D * E F / - - A *

Isomorfismos De Árboles

Dos graficas simples G1 y G2 son isomorfas si y solo si existe una función f uno a uno y sobre del conjunto de vértices de G1 al conjunto de vértices de G2 que preserva la relación de adyacencia en el sentido de que los vértices vi y vj son adyacentes en G1 si y solo si los vértices f(vi) y f(vj) son adyacentes en G2.

Ejemplos

Figura 9. T2 es árbol isomorfo a T1

Existe isomorfismo porque:

9

Page 10: Arboles Como Grafos

f(a) = 1, f(b) = 3, f(c) = 2 , f(d) = 4, f(e) = 5

Figura 10. Explicación del isomorfismo existente en T1 y T2

1.2. Distancias Mínimas en un Grafo Dirigido

En este problema los rótulos de los arcos se interpretan como distancias. La distancia (o largo) de un camino es la suma de los largos de los arcos que lo componen.

El problema de encontrar los caminos más cortos tiene dos variantes:

Caminos más cortos desde un nodo "origen": Encontrar los n caminos más cortos desde un nodo dado s hasta todos los nodos del grafo.

Todos los caminos más cortos: Encontrar los n2 caminos más cortos entre todos los pares de nodos (origen, destino). Esto se puede resolver resolviendo n veces el problema anterior, cambiando cada vez de nodo origen, pero puede ser más eficiente encontrar todos los caminos de una sola vez.

1.2.1. Algoritmo de Dijkstra para los caminos más cortos desde un nodo "origen"

La idea del algoritmo es mantener un conjunto A de nodos "alcanzables" desde el nodo origen e ir extendiendo este conjunto en cada iteración.

Los nodos alcanzables son aquellos para los cuales ya se ha encontrado su camino óptimo desde el nodo origen. Para esos nodos su distancia óptima al origen es conocida. Inicialmente A={s}.

Para los nodos que no están en A se puede conocer el camino óptimo desde s que pasa sólo por nodos de A. Esto es, caminos en que todos los nodos intermedios son nodos de A. Llamemos a esto su camino óptimo tentativo. En cada iteración, el algoritmo encuentra el nodo que no está en A y cuyo camino óptimo tentativo tiene largo mínimo. Este nodo se agrega a A y su camino óptimo tentativo se convierte en su camino óptimo. Luego se actualizan los caminos óptimos tentativos para los demás nodos.

El algoritmo es el siguiente:

10

Page 11: Arboles Como Grafos

Implementaciones:

Usando una cola de prioridad para la tabla D el tiempo es O(m log n). Usando un arreglo con búsqueda secuencial del mínimo el tiempo es O(n2).

Ejemplo:

Figura 11. Camino más corto con algoritmo de Dijkstra

1.2.2. Algoritmo de Floyd para todas las distancias más cortas

Para aplicar este algoritmo, los nodos se numeran arbitrariamente 1,2,...n. Al comenzar la iteración k-ésima se supone que una matriz D[i,j] contiene la distancia mínima entre i y j medida a través de caminos que pasen sólo por nodos intermedios de numeración <k.

Estas distancias se comparan con las que se obtendrían si se pasara una vez por el nodo k, y si de esta manera se obtendría un camino más corto entonces se prefiere este nuevo camino, de lo contrario nos quedamos con el nodo antiguo.

11

Page 12: Arboles Como Grafos

Figura 12. Algoritmo de Floyd

Al terminar esta iteración, las distancias calculadas ahora incluyen la posibilidad de pasar por nodos intermedios de numeración <=k, con lo cual estamos listos para ir a la iteración siguiente.

Para inicializar la matriz de distancias, se utilizan las distancias obtenidas a través de un arco directo entre los pares de nodos (o infinito si no existe tal arco). La distancia inicial entre un nodo y sí mismo es cero.

El tiempo total que demora este algoritmo es O(n3)

1.3. Excentricidad

La excentricidad de un vértice u E V (G) es la máxima de las distancias entre u y los otros vértices de G. Desde este punto de vista, el diámetro del grafo también se puede definir como la máxima de las excentricidades. Por otra parte, la mínima de las excentricidades

de los vértices del grafo , se llama radio. El centro del grafo, Z (G), es el conjunto de vértices con excentricidad igual a r.

1.4. Centralidad

En un grafo, en general G(V, X): La distancia d(u, v) entre dos puntos u, v V es el largo de la trayectoria más corta que los une, si es que la hay; en caso contrario, d(u, v) = .La excentricidad e(v) de un punto v en un grafo conexo G es max d(u, v), para todo u en G. El radio r(G) es la excentricidad mínima de los puntos. Un punto v es un punto central si e(v) = r(G), y el centro de G es el conjunto de todos los puntos centrales.

Ejemplo. Excentricidades de cada punto.

12

Page 13: Arboles Como Grafos

Figura 13. Ejemplo de centralidad

En este ejemplo, el radio es 4 y el centro consiste de dos puntos, u y v, cada uno con excentricidad mínima 4 Teorema. Cada árbol tiene un centro consistente de uno o dos puntos adyacentes.

Una rama en un punto u de un árbol T es un subárbol maximal que contiene u como un vértice final ("hoja"). Así, el número de ramas en u es grad u.

El peso en un punto u de T (T árbol) es el número máximo de líneas en cualquier rama de u.

Los pesos en los puntos n-hojas se muestran en este ejemplo:

Figura 14. Pesos en puntos n-hojas

Un punto v es un punto centroide de un árbol T si v tiene mínimo peso, y el centroide de T consiste de todos estos puntos.

Teorema. Todo árbol tiene un centroide que consiste de uno o dos puntos adyacentes.

La definición de centro y centroide nos permite modelar la solución de varios problemas de centralidad en árboles. Por ejemplo:

Suponga que varias ciudades están conectadas por un árbol de caminos. El problema es dónde ubicar un local de pizzas, de modo de servir a todas estas ciudades, y minimizar las distancias recorridas de modo que las pizzas siempre lleguen calientes, independientemente de a dónde haya que despacharlas.

En el caso general, cada arco tiene una distancia asociada, y el problema es encontrar el centro.

La excentricidad de cada vértice v es definida como: e(v) = maxx V {d(v, x)}

1.5. Centro de un Árbol

El centro de un grafo G es el subgrafo inducido por el conjunto de vértices de excentricidad mínima.

13

Page 14: Arboles Como Grafos

Figura 15. El parque de bomberos se debe instalar en un vértice del centro

¿Cómo se halla el centro de un grafo?¿Cómo se calculan las distancias en un grafo?

Propiedades:

1. Si G es un grafo conexo entonces: rad(G) ≤ diam(G) ≤ 2rad(G)2. Todo grafo G es el centro de un grafo conexo

Figura 16. Grafo G siendo el centro de un grafo conexo

El centro de un árbol T está formado por uno o dos vértices de T

Figura 17. Centros de dos árboles T

Algoritmo para obtener el centro de un árbol

Entrada: Un árbol TSalida: El centro del árbol C(T)Paso 1. Hacer H=TPaso 2. Si H= K1 ó K2, entonces C(T)=H. Paso 3. En caso contrario borrar todas las hojas de H para obtener un árbol H’. Hacer H’=H y volver al paso 2

14

Page 15: Arboles Como Grafos

2. ÁRBOLES DE EXPANSIÓN

2.1. Arboles de expansión

Se dice que un árbol T es un árbol de expansión de un grafo G si el árbol T es un sub grafo que contiene todos los vértices de G.

Figura 18. Grafo G a generar un árbol de expansión

Figura 19. Árbol de expansión del grafo G

2.2. Distancia entre dos árboles de expansión

Se define la distancia entre dos vértices (u, v) de un grafo como el camino más corto que hay entre ellos, en caso de no haber uno entonces se dice que la distancia es infinita.

Ejemplo

Sea G el grafo mostrado en la figura 30, hallar la distancia entre los vértices entre los vértices 1 y 9.

Como se puede observar solo existen dos caminos entre los vértices {1, 3, 11, 9} y {1,2, 12, 10, 7, 5, 9} entonces se dice que la distancia entre los vértices es la mostrada en el camino {1, 3, 11, 9}.

En caso de decir, hallar la distancia entre los vértices 1 y 4, se concluye que la distancia en total es infinita.

2.3. Vértice central en árbol de expansión

15

Page 16: Arboles Como Grafos

Uno ha de pensar que de tantos vértices en el árbol de expansión hay uno que puede ser catalogado como el vértice central donde no solo se puede hallar el vértice central sino el promedio de ocupación.

2.3.1. Promedio de ocupación

El promedio de ocupación es hallado por una operación aritmética de la forma:

2.3.2. Vértice central

Para poder hallar el vértice central del grafo se pueden recurrí a muchos métodos arbitrarios, aunque los mejores candidatos pueden hallarse por los siguientes criterios:

- Es el vértice que tiene más nodos conectados, esto es, el vértice con más vecinos, aquel con el grado más alto. - Es aquel cuya suma de coeficientes de correlación de los vértices vecinos es máxima. - Es el vértice que produce el valor más bajo del promedio de ocupación, el centro de masa por así decirlo.

2.4. Definición de rango y nulidad

Se define en una matriz A, el rango como el número máximo de filas o columnas de A linealmente independientes denotado por rang(A).Se define nulidad como el espacio nulo hallado en la matriz A. si A es una matriz de dimensión m x n. entonces el rango de A más la nulidad de A es igual al número de columnas de A.

Rang (A) + V(A) = n.

Ejemplo

Figura 20. Matriz de incidencia del grafo en la parte derecha

16

Page 17: Arboles Como Grafos

Haciendo el cálculo del rango de la matriz con GAUSS se puede observar que el rango de la matriz es rang(I) = 6. Como el número de columnas es 8, entonces la nulidad es 2.

2.5. Circuitos fundamentales

Cuando un árbol es generado a partir de un grafo se puede obtener el circuito fundamental de este, se añade un arco de grafo no perteneciente a este así se obtiene m – (n - 1) circuitos distintos.

Una de las aplicaciones del circuito fundamental es cuando se usa este elemento para poder obtener una matriz de circulación (m – c + 1) x m c = (cij) donde:

Cij = +1 si ei está en el circuito fundamental j-ésimo y las orientaciones coinciden, -1 si ei está en el circuito fundamental j- ésimo y las orientaciones no coinciden o 0 si ei no está en el circuito fundamental j-ésimo.

2.6. Arboles de expansión de un grafo ponderado

2.6.1 grafo ponderado

Un grafo G se dice ponderado se esté grafo posee en cada arista un numero asociado no negativo al cual a este se le denomina peso o longitud de este, por lo cual se dice que en un grafo hay peso o distancia entre los vértices.

Ejemplo

Figura 21. Grafo ponderado con distancias entre vértices

Los grafos ponderados poseen problemas al conectar todos los nodos de manera a minimizar o maximizar el costo o la ganancia (este puede ser un problema particular como al diseñar una red de metro).

2.6.2. Árbol de expansión del árbol ponderado

17

Page 18: Arboles Como Grafos

El árbol de expansión de un grafo ponderado cumple exactamente todas las reglas de un árbol de expansión con cualquier otro grafo así como se mostrara en la siguiente figura:

Figura 22. Árbol de expansión A Y B del grafo ponderado de la figura anterior.

Como se puede apreciar en las imágenes antes vistas, ambos grafos son conexos, toman todos los vértices del grafo ponderado original además de que todavía guardan la información asociada en cada aristas a la que estos grafos han sido asignados; como consecuencia de estos los grafos A y B son árboles generados del grafo ponderado visto anteriormente.

La gran diferencia entre estos árboles es que aunque los dos árboles tengan la misma cantidad de vértices en la misma posición, estos árboles tienen distinto conjunto de aristas y por consiguiente distinto conjunto de distancias.

Si se tomara la distancia entre estos conjuntos entonces el grafo A tendría como resultado:

∑ Distancias de aristasde A=2+4+3+3+1=13

Mientras que con el árbol de expansión del grafo B:

∑ Distancias de aristasde B=2+3+3+1+2=11

Como se aprecia el árbol de expansión B es más ligera que el árbol de expansión A, por lo que se dice que este árbol es corto aunque no se tiene la garantía de que sea el más corto que se pueda hacer.

2.7. Algoritmo de PRIM y KRUSKAL para arboles generadores más cortos

Una de las utilidades de un grafo es la generación de árboles de sí mismo, específicamente un árbol de costo mínimo, es importante destacar que un árbol de expansión es un árbol de expansión mínimo cuando se recuren a menos aristas para conectar todos los vértices del grafo original para poder hallarlos se recurrirán a distintos algoritmos mencionados a continuación.

2.7.1 ALGORITMO DE PRIM

18

Page 19: Arboles Como Grafos

Como su nombre lo dice es un algoritmo (serie de pasos secuenciales) donde utiliza un grafo G y genera un Árbol M, donde con todos los vértices del árbol original se usan la cantidad mínima de lados que generan al nuevo grafo el termino de Árbol.

Cabe resaltar que en este algoritmo las aristas poseerán un valor de costo cada una, donde a partir de este valor se generara el árbol de costo mínimo.

El algoritmo requiere una serie de variables a tener en cuenta como: “V” el conjunto de vértices de G: V = {1, 2, 3,…, n}. “U” el subconjunto de v, en el caso inicial u = {1}. “L” la lista de aristas que se van formando con las aristas de menor costo que se

van seleccionando, en el caso inicial l = {}.

El algoritmo trabaja de la siguiente manera:

Mientras (v distinto de u) repetir: Elegir una arista (u, v) pertenecientes a A(G) tal que su costo sea mínimo, siendo u perteneciente a U y v perteneciente a (V-U).

Agregar la arista (u, v) a L.Agregar el nodo v a U.Fin del ciclo.

Ejemplo: Sea G el grafo generado a partir de la siguiente figura.

Figura 23. Grafo original para generar un árbol de costo mínimo

Se inicializara el algoritmo con un iterador i =1, U = {A}, V = {B, C, D, E, F, G} y L = {}.

En la iteración 1 el elemento A perteneciente a U esta comunicado con B y F donde la arista más ligera es B con un lado de peso 5, por lo que i = 2, V = {A, B}, V = {C, D, E, F, G} y L = {AB}.

En la iteración 2 el elemento B perteneciente a U esta comunicado con C, E y D donde la arista más ligera es E con un lado de peso 4, por lo que i = 3, V = {A, B, E} V = {C, D, F, G} y L = {AB, BE}.

19

Page 20: Arboles Como Grafos

En la iteración 3 el elemento E perteneciente a U esta comunicado con C, G y D donde la arista más ligera es G con un lado de peso 1, por lo que i = 4, V = {A, B, E, G} V = {C, D, F} y L = {AB, BE, EG}.

En la iteración 4 el elemento G perteneciente a U esta comunicado con C, F y D donde la arista más ligera es F con un lado de peso 2, por lo que i = 4, V = {A, B, E, F} V = {C, D} y L = {AB, BE, EG, GF}.

En la iteración 5 el elemento E perteneciente a U esta comunicado con D donde la arista más ligera es D con un lado de peso 2, por lo que i = 5, V = {A, B, E, F, D} V = {C} y L = {AB, BE, EG, GF, ED}.

En la iteración 6 el elemento G perteneciente a U esta comunicado con C donde aunque este comunicado con un peso igual al que le da el vértice E este se elige por evitar ciclo, por lo tanto i = 6, V = {A, B, E, F, D, C} V = {} y L = {AB, BE, EG, GF, ED, GC}.

Por último el árbol generado resultado sería el siguiente:

Figura 24. Árbol de costo mínimo con algoritmo de PRIM.

2.7.2 ALGORITMO DE KRUSKAL

Este algoritmo parecido al de Prim es usado con el fin de hallar un árbol de costo mínimo a partir de un grafo, los pasos a usar son los siguientes:Primero es requerido hallar una serie de particiones del conjunto de vértices, con un tamaño de uno.

Las variables a tener en cuenta en el algoritmo son las siguientes: L un conjunto formado por las aristas y sus costos.

P las particionadas de v inicialmente sería p = {{1}, {2}, {3}… {n}}El algoritmo sería el siguiente:

Mientras haya vértices en P que permanezcan en particiones distintas repetir:

De L seleccionar una arista (u,v) que tenga el menor costo

20

Page 21: Arboles Como Grafos

Si (u y v se encuentran en particiones distintas) entonces unir

Fin del ciclo.

Ejemplo:

Sea G el grafo generado a partir de la Figura 53, utilizar el algoritmo de Kruskal para hallar el árbol de costo mínimo.

Selecciono la arista de menor peso junto con los vértices que la conforman con P inicializado P = {{A}, {B}, {C}, {D}, {E}, {F}, {G}}.

Estado de P Estado del árbol

Elijo la arista de costo más ligeroP = {{A}, {B}, {C}, {D}, {E}, {F, G}}.

P = {{A}, {B}, {C}, {E}, {D, F, G}}.

P = {{A}, {B}, {C}, {E, D, F, G}}.

Elijo la arista de costo más ligero que además impida el hecho de haber ciclo

P = {{A}, {B}, {C, E, D, F, G}}.

21

Page 22: Arboles Como Grafos

P = {{A}, {B, C, E, D, F, G}}.

P = {A, B, C, E, D, F, G}.

Tabla 1. Pasos del algoritmo de Kruskal para forma un árbol de costo mínimo.

3. CONJUNTO DE CORTE

3.1. DEFINICIÓN

Un conjunto de corte es un conjunto (mínimo) de aristas en un grafo tal que la eliminación del conjunto incrementa el número de componentes conexas en el subgrafo restante, en tanto que la eliminación de cualquier subconjunto propio de este no lo haría. De esto se tiene que en un grafo conexo, la eliminación de un conjunto de corte divide el grafo con dos partes. Este sugiere una forma alternativa de definido en conjunto de corte.

3.2. CARACTERÍSTICAS

Un conjunto de corte de vértices U en un grafo G, es un conjunto de vértices de G, tal que G-U no es conexo o trivial. Similarmente, un conjunto de corte de aristas F es un conjunto de aristas tal que G-F no es conexo.

Si los vértices de una componente conexa a un grafo se divide en dos subconjuntos, de manera que cada dos vértices en cada subconjunto estén conectados por un paseo que sólo atraviesa vértices en tal subconjunto, entonces el conjunto de aristas que una los vértices de los dos subconjuntos es un conjunto de corte.

3.3. EJEMPLO

22

Page 23: Arboles Como Grafos

Figura 25. Ejemplo conjunto de corte

Para este grafo el conjunto de aristas {e1, e5, e6, e7, e4} es un conjunto de corte, ya que su eliminación dejará un subgrafo no conexo como el siguiente.

Figura 26. Grafo isomorfo al grafo anterior

Este grafo es isomorfo al grafo anterior y se ve más claramente la división de los vértices para obtener un subgrafo no conexo como el obtenido anteriormente.

3.3. PROPIEDADES

Se dice que un vértice v es un conjunto de corte para G si G-v no es conexo. (Deforma más general, v es un conjunto de corte para cualquier grafo G si G-v tiene más componentes conexos que G.)

3.4. VÉRTICE DE CORTE

En teoría de grafos, un vértice de corte o punto de articulación es un vértice de un grafo tal que al eliminarlo de éste se produce un incremento en el número de componentes conexos. Si el grafo estaba conectado antes de retirar el vértice, entonces pasará a desconectarse. Cualquier grafo conexo con un vértice de corte tiene una conectividad de 1.

A pesar de que estén bien definidos para grafos dirigidos, los vértices de corte se usan principalmente en los grafos no dirigidos. En general, un grafo conexo, no dirigido y con n vértices, puede tener no más que n-2 vértices de corte. Naturalmente, un grafo puede no tener ningún vértice de corte.

23

Page 24: Arboles Como Grafos

Una arista de corte o puente, es una arista análoga a un vértice de corte; es decir, una que al eliminarla incrementa el número de componentes conexos del grafo.

En un árbol, cada vértice con grado mayor que 1 es un vértice de corte.

3.5. CONECTIVIDAD

La conectividad algebraica de un grafo es el segundo autovalor más pequeño no nulo de

la matriz laplaciana por ello se le signa como —. También se denomina salto espectral, gap o parámetro de Fiedler. Este autovalor es mayor que cero si y sólo si es un grafo conexo. La medida de este valor refleja la conectividad del grafo en general, y se ha utilizado para el análisis de la sincronización de nodos en redes. A medida que se hace más pequeño el grafo adquiere una estructura más modular.

En los modelos para la sincronización de nodos en redes, como el modelo de Kuramoto, la matriz laplaciana surge de manera natural (a través del laplaciano discreto), por lo que la conectividad algebraica da una idea de la facilidad con la que la red se sincronizará. Sin embargo, otras medidas, tales como la media de la distancia también se pueden utilizar, y, de hecho, la conectividad algebraica está estrechamente relacionado con el inverso de la distancia media.

3.6. SEPARABILIDAD

Es una arista que, si la quitas, separaría el grafo en que esta en dos sub-grafos desconectados. Un grafo es separable por arista cuando tiene al menos un puente. Un grafo es conectado por aristas (edge-connected) cuando no es separable. Una vez quitadas los puentes en el grafo, se obtiene sus componentes conectadas por aristas, que son sub-grafos máximos sin puentes

3.7. BICONECTIVIDAD

Un grafo es biconectado si entre cada par de vértices del grafo existen al menos dos caminos disjuntos en vértices.

Figura 27. Ejemplo de Bioconectividad

Más fuerte que la conectividad por aristas: aquí se necesita que cada vértice puedan ser conectados con caminos sin vértices en común mientras en el primer caso, se requiere caminos sin aristas en común

24

Page 25: Arboles Como Grafos

3.7.1. Propiedades

Un grafo es biconectado si no tiene vértices de separación (1) ⇒ (2) considerar dos vértices v y w que aparecerían en las componentes separadas al quitar el vértice de separación s; todos los caminos de v a w tienen que contener a s: si había un camino que no pase por s violaría el hecho de que están en componentes separadas; entonces no es biconectado. (2) ⇒ (1) más complicado...

Un grafo es biconectado si por toda parte de vértices pasa un ciclo.

Se puede definir una relación entre aristas como: a en relación con a’ si a = a’ o existe un ciclo dentro del grafo que incluya a y a’.

La relación así definida (relación de cociclicidad) es una relación de equivalencia.

Las clases de equivalencia corresponden a las componentes biconectadas de G

3.7.2. Vértices de Separación

Algoritmo de fuerza bruta: para todos los vértices, verificar el grafo obtenido quitando el vértice y reponerlo en el grafo.

|V| pruebas que hacer

Cada prueba lleva O(|V|+|A|) o O(|V|2) (usar DFS, por ejemplo)

Total: O(|V|2+|A||V|) o |V|3

¿Cómo encontrarles por DFS?

Un vértice es de separación si existe en el árbol de DFS un subárbol enraizado en uno de los hijos de u en que no haya aristas back hacia uno de los ancestros de u.

Un vértice-hoja en el árbol no puede ser un vértice de separación

La raíz de un árbol DFS es un vértice de separación si tiene más de dos hijos de tipo tree edges.

25

Page 26: Arboles Como Grafos

Figura 28. Ejemplo vértices de separación

u es un vértice de separación si tiene un hijo v en el árbol DFS tal que Low [v]≥ord[u].

Remarcar que un puente no implica necesariamente que los dos vértices del puente sean vértices de separación.

Remarcar que un vértice de separación no pertenece necesariamente a un puente.CONCLUSIONES

De lo anterior se puede concluir que:

Un árbol binario se define como un conjunto finito de elementos llamados nodos. Se puede usar terminología de relaciones familiares para descubrir las relaciones

entre los nodos de un árbol Un árbol puede ser implementado fácilmente en una computadora. Lo que tiene que ver con los árboles: Entre las cosas que podemos mencionar se

encuentra la raíz, los nodos de un árbol y la diferencia entre nodos sucesores y nodos terminales, como se muestran en el contenido del trabajo.

Los arboles de expansión son demasiados útiles cuando se representa un costo para transportarse de un nodo en otro, ejemplo el sistema de redes eléctricos, donde para viajar de un punto a otro hay un costo de voltaje.

Si el costo para viajar de un nodo a otro no es de energía sino de tiempo así como el sistema de redes de comunicación el tema de árboles de expansión es muy útil ya que uno desea que una maquina se conecte con otra en el menor tiempo posible.

Los arboles de expansión son útiles cuando se trata de viajas de comercio, esto se debe para hallar la ruta óptima para llegar al destino con facilidad.

Un conjunto de corte de vértices U en un grafo G, es un conjunto de vértices de G, tal que G-U no es conexo o trivial.

Similarmente, un conjunto de corte de aristas F es un conjunto de aristas tal que G-F no es conexo.

Si los vértices de una componente conexa a un grafo se divide en dos subconjuntos, de manera que cada dos vértices en cada subconjunto estén

26

Page 27: Arboles Como Grafos

conectados por un paseo que sólo atraviesa vértices en tal subconjunto, entonces el conjunto de aristas que una los vértices de los dos subconjuntos es un conjunto de corte.

Una arista de corte o puente, es una arista análoga a un vértice de corte; es decir, una que al eliminarla incrementa el número de componentes conexos del grafo.

Un grafo es biconectado si entre cada par de vértices del grafo existen al menos dos caminos disjuntos en vértices.

BIBLIOGRAFÍA

CAIRÓ, Osvaldo; GUARDATI, Silvia. Estructuras de datos. 3 ed. México D.F. Mc Graw Hill.

AHO, J. ULLMAN, J. HOPCROFT, J. Estructuras de datos y algoritmos. Addison Wesley.

GRIMALDI, Ralph P. Matemáticas discretas y combinatorias. 3 Ed. 1994, Addison Wesley.

ROSEN, Kenneth H. Matemáticas discretas y sus aplicaciones. 5 Ed. 2004, Mc Graw Hill

http://www.ual.es/~fbeltran/envolvente/ http://www.ma3.upc.edu/users/pelayo/research/producto%20fuerte.pdf http://dac.escet.urjc.es/rvmaster/rvmaster/asignaturas/mga/construcciones_planas.pdf http://users.dcc.uchile.cl/~bebustos/apuntes/cc3001/Grafos/#4 http://www.franjafceia.com.ar/i/apuntes/34.pdf http://users.dcc.uchile.cl/~nbaloian/cc20a/post/redes3.html http://www.dma.fi.upm.es/grafos/3distcaminos.pdf

27