Tema VIII. Grafos Grafos 1 2007 Carmen Moreno Valencia 1. Grafos, digrafos y multigrafos 2. Grafos eulerianos 3. Matrices de adyacencia e incidencia 4. Exploración de grafos pesados 1. Grafos, digrafos y multigrafos Definición. Un grafo G es un par ordenado G=(V,A), donde V es un conjunto cuyos elementos se llaman vértices y A es el conjunto de aristas que conectan dichos vértices. u,v V : adyacentes : uv A u v Ejemplo 1 e i : empleados de una fábrica, i=1,2,3,4,5 t j : tareas, j=1,2,3,4 e i t j A : empleado e i está capacitado para realizar la tarea t j
Grafos 2 V={e 1, e 2, e 3, e 4, e 5, t 1, t 2, t 3, t 4 } A={e 1 t 1, e 2 t 1, e 2 t 3, e 3 t 1, e 3 t 2, e 3 t 3, e 4 t 2, e 5 t 3, e 5 t 4 } Multigrafo Es un grafo que puede contener más de una arista entre dos vértices. V={v 1, v 2, v 3 }, A={v 1 v 2,v 1 v 2, v 2 v 3, v 1 v 3, v 1 v 3 } Pseudografo V={v 1, v 2, v 3 } A={v 1 v 1, v 1 v 2,v 2 v 2, v 2 v 3 }
Digrafo ó grafo dirigido A cada arista se le asigna un orden de sus extremos (flechas). v 1 v 1 Grafos 3 v 2 v 3 v 2 v 3 G=(V,A) G =(V,A ) V=V ={v 1, v 2, v 3 }. A={v 1 v 2, v 2 v 3, v 3 v 1 }, A ={v 2 v 1, v 3 v 1, v 2 v 3 } Grado de un vértice G=(V,A). Se llama grado del vértice u V al número de aristas que tienen a u por extremo. Isomorfismo de grafos Sean G=(V,A) y G =(V,A ). Un isomorfismo de G en G es una aplicación f: VÆV biyectiva que cumple: uv A f(u)f(v) A f preserva la adyacencia C.N: G y G deben tener el mismo nº vértices
Grafos 4 Los grafos G y G son isomorfos: y u 1 u 2 z x G=(V,A) f : V V t x f( x) = u y f( y) = u z f( z) = u t f() t = u u 4 u 3 G =(V,A ) Proposición. Si los grafos G y G son isomorfos y u V, entonces gr(u)=gr(f(u)) f preserva el grado 1 2 3 4 G no isomorfo a G
Grafos 5 G no isomorfo a G Teorema.(Primer teorema de la teoría de grafo Sean G=(V,A) un grafo y V={v 1,..., v p } el conjunto de sus vértices. Entonces i= p i = 1 gr( v ) = 2 car( A) i (cantidad par) El nº de vértices de grado impar de un grafo es cero o un número par Grafo Regular Todos sus vértices tienen el mismo grado k (k-regular) Un isomorfismo de grafos conserva la regularidad.
Grafos 6 Grafo Completo Cada par de vértices son adyacentes. Dos grafos completos con el mismo nº de vértices son isomorfos. Grafo completo de n vértices (y sus isomorfos) K n : K 3 K 4 K 5 Todo grafo completo es regular. 2. Grafos eulerianos Camino C= (v 0, v 0 v 1, v 1, v 1 v 2, v 2,.., v n-1 v n, v n ) Conecta v o con v n C= (v 0, v 1,..., v n ) Longitud =nº aristas Cerrado : v 0 =v n Simple: No repite vértices
Grafos 7 Circuito Camino cerrado que no repite aristas Grafo conexo Para cada par de vértices, existe un camino que los conecta. (Una componente conexa) Circuito Euleriano Camino cerrado/ Todas las aristas/ Sin repetir Camino Euleriano Camino / Todas las aristas/ Sin repetir Grafo Euleriano Grafo que contiene un circuito euleriano. Los siete Puentes de Königsberg C A B D (s. XVIII) Leonard Euler (1736)
Grafos 8 Trataban de encontrar un circuito euleriano en el grafo G Teorema 1 Sea G un grafo conexo. G posee un circuito euleriano (G es euleriano) si y sólo si todos sus vértices tienen grado par. Teorema 2 Sea G un grafo conexo. G posee un camino euleriano si y sólo si tiene exactamente dos vértices de grado impar. Búsqueda de un circuito euleriano Construir un circuito inicial en G Insertar en él nuevos circuitos, hasta recorrer todas las aristas
Es G euleriano?. Encontrar un circuito euleriano en G. j Grafos 9 e b i a c f d h g G=(V, A) 1) Circuito g=(a, b, c, d, a) Borramos las aristas recorridas por g: j e b i a c f g d h G =(V, A ) A π
2) En G construimos un circuito g que comience por un vértice de g (vertice b) Grafos 10 g =(b, i, c, h, d, f, a, e, b) Y lo insertamos en g=(a, b, c, d, a) : g g =g 1 = (a, [b, i, c, h, d, f, a, e, b ], c, d, a) Borramos las aristas recorridas por g 1 j e f a b d c i h g G =(V,A ) A π 3) En G construimos un circuito g que comience por un vértice de g (vertice i)
Grafos 11 g =(i, h, g, f, e, j,i) Y lo insertamos en g 1 =(a, [b, i, c, h, d, f, a, e, b ], c, d, a): g 1 g =g 2 = (a, [b, [i, h, g, f, e, j,i ], c, h, d, f, a, e, b ],c,d,a) Borramos las aristas recorridas por g 2 : j e a b c i f d h g g 2 : Circuito euleriano G =(V,A ) A =
Grafos 12 3. Matriz de adyacencia y de incidencia Matriz de adyacencia de un grafo G=(V, A), V={v 1, v 2,..., v p }. M=(a ij ) M p dada por: a ij 1 si viv j A ( adyacentes) = 0 si viv j A ( No adyacentes) v 1 v 4 0 1 1 1 1 0 1 0 v 3 v M = 2 1 1 0 0 1 0 0 0 Matriz de adyacencia de un digrafo M=(a ij ) M p aij = 1 si vv i j A y vi vj 0 si vv A o vv A, pero v v i j i j j i
v 1 Grafos 13 v 3 v 2 v 4 M 0 1 0 0 0 0 1 0 = 1 0 0 0 1 0 0 0 Matriz de adyacencia de un multigrafo a ij indica el número de aristas que conectan el vértice i con el j. El valor c ij de M n indica el nº de caminos de longitud n que conectan el vértice v i con v j. Matriz de incidencia vértice-arista de un Grafo G=(V,A), V= {v 1, v 2,..., v p }, A={a 1, a 2,..., a r } Z=(z ij ) M pxr 1 la arista a j incide enel vertice vi zij = 0 en otro caso
Matriz de incidencia de un Digrafo Grafos 14 z Z=(z ij ) M pxr 1 vi es vertice inicial de la arista a = 1 v es vertice final de la arista a 0 en otrocaso ij i j j a v 5 1 v v 2 3 a 2 v 4 1 0 1 1 1 a 1 a a 4 0 1 1 1 0 3 Z = 1 1 0 0 0 0 0 0 0 1 a 1 v 3 v 1 a 2 a 4 1 0 1 1 v 4 a 0 1 1 0 3 Z = 1 1 0 0 0 0 0 1 v 2
4. Exploración en grafos pesados Grafos pesados. Optimización Árbol de Expansión Mínimo Ruta más corta: Algoritmo de DIJKSTRA Flujo máximo Grafos 15 Algoritmo del Árbol de Expansión Mínimo Árbol: Grafo conexo y sin ciclos Dado dos vértices, existe un único camino simple que los conecta Ejemplo: Red de ferrocarril Árbol de expansión de un grafo: árbol que contiene todos los vértices del grafo Árbol de expansión mínimo en un grafo pesado: árbol que contiene todos los vértices del grafo y cuyo peso sea mínimo. Algoritmo V S Conectados enun arbol A = S sin conectar En cada iteración se describe el estado: S, A, S
Inicio Fin Grafos 16 S = (Conectados Arbol) S = V (Sin conectar) S=V (Conectados Arbol Exp.Min.) S = (Sin conectar) Criterio: En cada iteración se transfiere a S el vértice de más próximo al arbol - bloque Ej. S