Centro Asociado Palma de Mallorca Lógica y Estructuras Discretas Tutor: Antonio Rivero Cuesta Tema 5 Teoría de Grafos C o n cep to s Básicos Grafo Un grafo consta de: Un conjunto de nodos, Un conjunto de aristas y Una correspondencia f del conjunto de aristas al conjunto de nodos. Arista Dirigida o Arcos Si una arista se corresponde con un par ordenado. V = {a, b,c} y E = {(a, b),(a,c),(b,c)} a b c Arista no Dirigida o Enlaces En caso contrario. V = {a,b,c} y E = {{a,b},{a,c},{b,c}} a b c Nodos adyacentes, son los pares de nodos que están conectados por una arista dentro de un grafo. Digrafo o grafo dirigido, es un grafo en el que toda arista es dirigida. Grafo no dirigido, es un grafo en el que todas las aristas son no dirigidas. Grafo mixto, si en un grafo hay aristas dirigidas y aristas no dirigidas. Sea G = (V,E) y sea e ∈ E una arista dirigida asociada al par ordenado de nodos (u,v). Se dice que la arista e sale del nodo u o comienza en el nodo u y llega al nodo v o termina en el nodo v. También se dice que los nodos u y v son los nodos inicial y final de la arista e. Una arista e ∈ E que conecte los nodos u y v tanto si es dirigida como si no se dice que es incidentes en los nodos u y v. Conceptos Avanzados Sobre Grafos En algunos grafos pueden existir ciertos pares de nodos que estén unidos por más de una arista, se denominan aristas paralelas. Todo grafo que contenga aristas paralelas se denomina multigrafo. Si no hay más de una arista entre pares de nodos se denomina grafo sencillo. Una arista que conecte un nodo consigo misma se denomina bucle o lazo. a b c d Grafos ponderados, los que los números de las aristas muestran los pesos de éstas. 3 a 4 c 4 b 3 2 d 1 Grado de entrada, es el número de aristas que tienen a v como nodo final en un grafo dirigido. Grado de salida, es el número de aristas que tienen a v como nodo inicial en un grafo dirigido. Grado total, es la suma del índice de entrada y el índice de salida del nodo v, si el grafo es dirigido. El Grado total en un grafo no dirigido es: 2m + n m: aristas con bucles, n: aristas sin bucles. Nodo aislado, es un nodo que no es adyacente a ningún otro nodo. Su grado total es 0. Grafo nulo, es un grafo que contenga solamente nodos aislados. Un grafo G = (V,E) es un subgrafo si V´ es subconjunto de V. E´ es subconjunto de E . Un grafo G = (V,E) es completo si todos sus nodos son adyacentes a todos los nodos del grafo. Un grafo G = (V,E) se denomina grafo bipartito si V se puede descomponer en dos subconjuntos V1 y V2 tales que no haya dos nodos de V1 que sean adyacentes ni tampoco dos nodos de V2. V1 = {a, b, c} V2 = {d, e, f} a d b e c f Relación de Adyacencia Sea G = (V, E) un grado dirigido. Una relación de adyacencia de G, es una relación binaria Notación: RG Matriz de Adyacencia A cada grafo se le puede asociar una matriz de adyacencia. Se denota MG. 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 a b c d Caminos y Conectividad Camino Sea G = (V,E) un grafo. Se dice que una sucesión de aristas es un camino de G si y solo si el nodo terminal de cada arista del camino es el nodo inicial de la próxima arista del camino, si lo hubiere. Un camino recorre los nodos que aparecen en la sucesión, comenzando en el nodo inicial de la primera arista y finalizando en el nodo terminal de la última arista de la sucesión. Utilizaremos para representar un camino los corchetes [ , ]. Tipos Básicos de Caminos Camino Nulo, es el camino que no contiene aristas. Camino Sencillo, un camino de un grafo en el cual todas las aristas son distintas. Camino Elemental un camino en el que todos los nodos son diferentes. El número de nodos diferentes de cualquier camino elemental de longitud k es k+1. Digrafo con Camino Elemental. e = [(1,3),(3,5),(5,6),(6,2),(2,4),(4,1)] 3 1 6 4 2 5 Ciclo, es un camino que comienza y acaba en el mismo nodo. Ciclo Sencillo si ninguna arista del ciclo aparece más de una vez en el camino. Ciclo Elemental si no pasa por ningún nodo más de una vez. Este grafo dirigido tiene un Ciclo Sencillo que recorre todos los nodos. 1 2 3 6 4 5 Un digrafo que no tenga ningún ciclo se denomina Aclíclico. G = {(0,2),(1,3),(0,1),(1,2),(2,3),(4,3)} 0 1 3 2 4 Accesibilidad o Alcanzabilidad Sea un grafo G = (V, E). Diremos que existe tal relación si se cumple que b es alcanzable desde a. La alcanzabilidad es una relación binaria sobre el conjunto de los nodos de un digrafo sencillo. La alcanzabilidad es reflexiva y transitiva, pero no necesariamente simétrica o antisimétrica. Distancias en Caminos Longitud del camino, es el número de aristas que aparecen en la sucesión de un camino. Camino mínimo o de longitud mínima, es el menor camino que hay entre dos nodos cualesquiera del grafo. La longitud de un camino de longitud mínima del nodo u al nodo v se denomina distancia y se denota como d(u,v). Se supone que d(u,u)=0 para todo nodo u. La distancia d(u,v) desde un nodo u hasta un nodo v satisface las propiedades siguientes: d(u,v) ≥ 0 d(u,u) = 0 d(u,v) + d(v,w) ≥ d(u,w) Si no puede alcanzarse v desde u se escribe: d(u,v) = ∞. Conexión en Grafos Se dice que un grafo no dirigido es conexo si para cualquier pareja de nodos del grafo se puede llegar hasta el otro nodo partiendo de cualquiera de ellos. Grafo Fuertemente Conexo Si para toda pareja de nodos del grafo se pueden alcanzar uno desde el otro. a b c d Grafo Unilateralmente Conexo Si para toda pareja de nodos del grafo al menos uno de los nodos de esa pareja se puede alcanzar desde el otro. a b c d Grafo Débilmente Conexo Si es conexo como grafo no dirigido. a b c d Si un grafo es fuertemente conexo entonces es unilateralmente conexo. Si un grafo es unilateralmente conexo entonces es débilmente conexo. Sea un grafo no dirigido: Será débilmente conexo si y sólo si es unilateralmente conexo. Será unilateralmente conexo si y sólo si es fuertemente conexo. Sea G = (V,E) un digrafo sencillo, y sea X⊂N, se dice que el subgrafo cuyos nodos están dados por el conjunto X y cuyas aristas son todas aquellas aristas de G que tengan sus nodos iniciales y finales en X es el subgrafo inducido por X. Un subgrafo G1 se denomina maximal con respecto a alguna propiedad si no hay ningún otro subgrafo que también posea esa propiedad y que incluya a G1. Para un digrafo sencillo los subgrafos maximales fuertemente conexos se denominan componentes fuertes. Un subgrafo maximal unilateralmente conexo o un subgrafo maximal débilmente conexo se denominan componente unilateral o componente débil. Llamamos componente unilateral de un grafo a un subgrafo maximal respecto a la propiedad ser unilateralmente conexo. Recorridos y Tipos Especiales de Caminos Sucesor de un Nodo Sea un grafo G = (V, E). Dos nodos x, y ∈ V. E l nodo y es sucesor de x si se cumple que: (x, y) ∈ E. {x, y} ∈ E. Raíz de un Grafo Sea G = (V, E) un grafo dirigido acíclico. Se denomina raíz de G a un nodo r tal que el resto de nodos es alcanzable desde r. Ordenación de los Nodos de un Grafo Sea G = (V, E) un grafo dirigido. La ordenación de los nodos es una secuencia de nodos donde aparecen todos los nodos de V y no se repite ninguno. Recorrido en un Grafo Sea un grafo dirigido conexo G = (V, E). Es la ordenación que indica la secuencia en que se van recorriendo los nodos del grafo desde una raíz, siguiendo aristas del grafo. Se visitan por orden. Recorrido en Profundidad Sea un grafo conexo G = (V, E). Siempre se visita un sucesor del último nodo que se ha visitado que aún tenga sucesores sin visitar. Su funcionamiento consiste en ir expandiendo todos y cada uno de los nodos que va localizando, de forma recurrente, en un camino concreto. Cuando ya no quedan más nodos que visitar en dicho camino, de modo que repite el mismo proceso con cada uno de los hermanos del nodo ya procesado. El recorrido de los nodos se almacena en una estructura de pila o LIFO (Last in Firt Out). El análisis temporal en el peor caso para el procedimiento está en O(n + m). Recorrido en Anchura Sea un grafo conexo G = (V, E). El recorrido en anchura se puede utilizar para hallar la distancia más corta entre algún nodo inicial y los nodos restantes del grafo. La búsqueda comienza en el nodo inicial, a continuación se visitan todos los nodos adyacentes al nodo inicial, repitiendo este proceso hasta recorrer todos los nodos. Durante una búsqueda en amplitud en un grafo, se sigue un árbol de camino mínimo o de expansión. Los nodos del árbol se examinan por orden creciente de número de nivel y de izquierda a derecha. El recorrido de los nodos se almacena en una estructura de cola o FIFO (First in Firt Out). El análisis temporal para el procedimiento está en O(n + m). Recorrido por Niveles Sea un grafo conexo G = (V, E). En una ordenación primero partimos de la raíz r. Continuamos con los nodos que están a una arista de distancia de r. Después los que están a 2 aristas de distancia, y así sucesivamente. Orden Topológico en un Grafo El orden topológico garantiza que un nodo siempre se visita antes que cualquiera de sus sucesores. Tipos especiales de caminos Grafo Hamiltoniano Un Camino Hamiltoniano en un grafo es una sucesión de aristas adyacentes que visita todos los vértices del grafo una sola vez. Camino Elemental. Si además el último vértice visitado es adyacente al primero, el camino es un Ciclo Hamiltoniano. Un Grafo es Hamiltoniano si contiene un ciclo hamiltoniano. Grafo Hamiltoniano Grafo Euleriano Un Camino Euleriano es un camino que pasa todas las aristas una sola vez. Camino Sencillo. Un Ciclo Euleriano es un camino cerrado que recorre cada arista exactamente una vez, siendo condición necesaria que regrese al vértice inicial de salida. Se denomina Grafo Euleriano a un grafo que contiene un ciclo euleriano. Un grafo no dirigido tiene un Camino Euleriano si y sólo si tiene a lo sumo dos vértices de grado total impar. Un grafo conexo es un Grafo Euleriano si y sólo si todos los vértices tienen grado total par. Grafo Euleriano Grafo Euleriano 1 3 6 5 2 4 Árboles Un árbol de expansión de un grafo conexo no dirigido G=(N,V) es un árbol libre si es conexo y acíclico. Todo árbol libre que contenga n nodos debe de tener n-1 aristas. Todo árbol de expansión para un grafo de n nodos contiene siempre n − 1 aristas. En un digrafo sencillo la longitud de cualquier camino elemental es menor o igual que n-1, en donde n es el número de nodos que haya en el grafo, similarmente la longitud de cualquier ciclo elemental no sobrepasará n. El número de pares distintos de vértices en un grafo con n vértices es n (n-1)/2. Este es el número máximo de arcos en un grafo no dirigido de n vértices. Un grafo completo no dirigido tiene exactamente: n (n-1)/2 arcos En el caso de un grafo dirigido de n vértices que no tiene arcos hacia sí mismo, el número máximo de arcos es n (n-1) Peso de un Árbol Es la suma de los pesos de las aristas del grafo ponderado. Árbol de Expansión Mínimo Un árbol de expansión de un grafo ponderado conexo y no dirigido en el cual la suma de los costes de sus aristas sea mínima se denomina árbol de expansión mínimo. Árbol con Raíz Tenemos: Un árbol T. Una raíz r de T. Se denomina árbol con raíz al par (T, r) Padre de un Nodo Tenemos: Un árbol con raíz (T, r). Tenemos un nodo v distinto de la raíz r. Llamamos padre de v a un nodo u que cumple que la arista {u, v} pertenece a T. u está en el recorrido del camino de T. Hijo de un Nodo Tenemos: Un árbol con raíz (T, r). Y u un nodo de T. Cualquier nodo v del grafo T tal que u sea padre de v. Nodo Hoja Tenemos un árbol con raíz (T,r). Sea u un nodo de T. Un nodo hoja es un nodo de T que no tiene hijos.