Fundamentos de la teoría de grafos 3º I.T.I. de Sistemas Mª Teresa Cáceres Sansaloni 1 Tema 1: Nociones básicas • Conceptos básicos sobre grafos. • Representación de grafos. • Multigrafos, grafos dirigidos y no dirigidos. • Bucles. Pseudografos. • Valencias de entrada y salida. Propiedades. • Isomorfismos de grafos. • Conectividad. 2 ¾ Problemas de recorrido. • camión de la basura ö por aristas • autobús escolar ö por vértices ¾ Problemas de coloreado. • calendario de exámenes • acuario • reactivos químicos ¾ Problemas de emparejamiento: • comisiones de ayuntamiento • claustro • junta de facultad • asignación eficiente de tareas en empresas 3 Un grafo G(V,E) es un conjunto V(G) finito no vacío de objetos llamados vértices y un conjunto E(G) (posiblemente vacio), de parejas de vértices, llamadas aristas. V(G) es el conjunto de vértices del grafo G (vertex set) E(G) es el conjunto de aristas del grafo G (edge set). Sea G un grafo, y e = {a,b} una arista. Si no importa la dirección se denota indistintamente {a,b} o {b,a}, siendo a y b los vértices que une. A los vértices a y b se les llama sus extremos, se dice que son adyacentes en G, y se dice que la arista e es incidente con los vértices a, b. 4 Las aristas que unen el mismo par de vértices se llaman aristas múltiples.(parallel edges) Si en el grafo se permite que hayan aristas múltiples, obtenemos un multigrafo (multigraph). Las aristas {a,a} cuyos extremos son el mismo vértice se llaman lazos o bucles (loop). Si en el grafo se permite que hayan aristas múltiples, y bucles obtenemos un pseudografo (pseudograph). 5 Tipo Aristas ¿Permite Aristas multiples? ¿ Permite Bucles? Grafo simple No dirigidas NO NO Multigrafo No dirigidas SI NO Pseudografo No dirigidas SI SI • Cualquier grafo simple es multigrafo, pero no el reciproco. • Cualquier grafo o multigrafo es pseudografo, pero no el reciproco. 6 Llamamos orden (order) de un grafo a su número de vértices, |V|, y tamaño (size) de un grafo al número de sus aristas, |E|. Un grafo de orden p, y tamaño q lo denotaremos por (p,q)-grafo. Vértices Llamaremos grado o valencia de un vértice (degree of a vertex) , al número de aristas de las que es extremo. Se dice que un vértice es par (even) o impar (odd) según lo sea su grado. Vértice aislado es el que tiene grado 0. d(v) =grado de v v œV(G), el conjunto de sus vecinos (neighborhood) se define por N(v)= {u Œ V: (v u) Œ E} ⇒ d(v)= |N(v)| 7 PRIMER RESULTADO SOBRE GRAFOS Proposición.- La suma de los grados de los vértices de un grafo G(V,E) es igual al doble del número de aristas. ÂvŒV d(v) =2 |E| Consecuencia: El número de vértices impares de un grafo es siempre par. 8 Ejemplos de Grafos 1.- Grafo regular: Aquel con el mismo grado en todos los vértices. Si ese grado es k lo llamaremos kregular. Por ejemplo, el primero de los siguientes grafos es 3-regular, el segundo es 2-regular y el tercero no es regular 9 Si G es un grafo r-regular de orden p, entonces 0≤ r≤ p-1 ¿ Es cierto el reciproco? ¿Puede haber un grafo 1-regular o 3-regular de orden 5? Si r y p no son ambos impares y 0≤ r≤ p-1, entonces siempre existe un grafo r-regular de orden p 10 2.- Grafo bipartito (bipartite): Es aquel con cuyos vértices pueden formarse dos conjuntos disjuntos de modo que no haya adyacencias entre vértices pertenecientes al mismo conjunto Ejemplo.- de los dos grafos siguientes el primero es bipartito y el segundo no lo es. 11 3.- Grafo completo (complete graph): Aquel con una arista entre cada par de vértices. Un grafo completo con n vértices se denota Kn. Todo grafo completo es regular porque cada vértice tiene grado |V|-1 al estar conectado con todos los otros vértices. Un grafo regular no tiene por qué ser completo. K4 K3 K5 K6 12 4.- Un grafo bipartido completo se denota Km,n donde m, n es el grado de cada conjunto disjunto de vértices. K1,2 K3,3 K2,5 13 Dado un grafo G=(V,E) se define el complementario de G y se denota por G (V,Ē) como el grafo con el mismo conjunto de vértices y cuyas aristas son todos los pares de vértices que no pertenecen a E. Se verifica que si |V| = p, (V, E « Ē) = Kp Sea G un grafo de orden p, si v es un vértice de G de grado n, d(v) = n, entonces d(v) = p-n-1 en el grafo complementario. 14 Consecuencia: G es regular si y solo si G es regular Ejercicio Los vértices de un grafo G de orden 14 y tamaño 25 tienen grado 3 o 5. ¿Cuántos vértices tiene de grado 3? ¿Puede un grafo de orden 4 tener tres vértices de grado 3 y uno de grado 1? 15 Grafos isomorfos (Isomorphic graphs) Dos grafos G=(V,E) y G´=(V´,E´), son isomorfos entre G y G´ si existe una función biyectiva (one-to-one function) entre los conjuntos de vértices f:V → V’ tal que si {a,b}∈E ⇔ {f(a),f(b)}∈E´. Si G y G’ son isomorfos se denota por G@G’ Dos grafos G1 y G2 son iguales (equal) si lo son sus conjuntos de vértices y de aristas. Los grafos iguales son isomorfos, pero no al contrario. 16 Si G1 y G2 son grafos isomorfos, entonces tienen el mismo orden y el mismo tamaño. Además, para cada vértice v de G1 , d 1 (v) = d 2 ( f(v) ) Son invariantes: el nº de vértices, el nº de aristas, el grado de cada vértice, las adyacencias, la estructura, los caminos, ciclos, etc. Teorema: G1, G2 son grafos isomorfos si y sólo si sus complementarios son isomorfos 17 Subgrafos (Subgraphs) Dados dos grafos G=(V,E) y G’=(V’,E’) se dice que G’ es un subgrafo de G si se verifica que V’ es un subconjunto de V y E’ lo es de E. Ejemplos: K3 es subgrafo de K4 y ambos son subgrafos de K5 Sea G un grafo y φ≠SÕV(G). El subgrafo inducido (induced subgraph) por S, ·SÒ, es el subgrafo máximal de G con conjunto de vértices S, contiene las aristas de G que unen vértices de S. Un subgrafo H de un grafo G es subgrafo inducido por vértices (vertex-induced subgraph) , si H = ·SÒ para algún SÕV(G). 18 G J H F ¿J, H, F son subgrafos de G? ¿Son subgrafos inducidos? El subgrafo G-S se obtiene por la eliminación de los vértices de S à V y todas las aristas que inciden en los vértices de S. Observar que G-S = ·V(G) - SÒ Cualquier subgrafo inducido de G se obtiene por eliminación de un subconjunto de vértices de G 19 u x u x w y z v x y w z G y G-v w z G-{u,v} ¿Son subgrafos inducidos? Sea X un subconjunto no vacío de aristas de un grafo G. El subgrafo inducido (induced subgraph) por X, que se denota ·XÒ, es el subgrafo minimal de G con conjunto de aristas X. ·XÒ contiene aquellos vértices de G incidentes con al menos una arista de X. Un subgrafo H de un grafo G es subgrafo inducido por aristas (edge-induced subgraph) , si H = ·XÒ para algún XÕV(G). H es un subgrafo recubridor o soporte (spanning subgraph) de un grafo G si V(H) =V(G) 20 Si X⊂E(G), entonces G-X , es el subgrafo recubridor de G obtenido por eliminación de las aristas de X. H es un subgrafo recubridor de un grafo G si y solo si H = G-X, donde X = E(G) – E(H) u u v w x y G v x F u w v y x w y H Sea G un grafo, con uivi (i = 1,2,…, n) pares de vértices no adyacentes de G. G+{u1v1, u2v2 ,…, unvn } es el grafo obtenido al añadir a G las aristas del conjunto {u1v1, u2v2 ,…, unvn } 21 Dos grafos G y H descritos mediante diagramas. Diremos que H es subgrafo de G si es posible etiquetar los vértices de H y G de modo que H es subgrafo de G. Secuencias de grados (Degree sequences) Para cada grafo G, con V(G)={v1, v2 ,…, vp } asociamos la secuencia de grados de sus vértices d(v1), d(v2), …, d(vp), que son valores enteros no negativos y con el convenio de mantener el orden d(v1)¥d(v2) ¥ … ¥ d(vp) El mínimo grado de G, min d(G) = d(vp), es el término más pequeño. El máximo grado de G, D(G) = d(v1), es el término mayor. 22 Sea s: d1, d2, …, dp la secuencia de grados de un grafo G. Ejemplo: 5,5,3,2,1,0 Una secuencia de enteros no negativos es gráfica (graphical) si es la secuencia de grados de algún grafo. Teorema Una secuencia s : d1, d2, …, dp de enteros no negativos, con d1 ¥ d2 ¥ … ¥ dp , donde p>1 y d1 ¥ 1 es gráfica, si y solo si la secuencia s1 : d2 -1, d3-1, …, dd +1 -1, dd +2 , dd +3 , …, dp es 1 1 1 gáfica. 23 Demostración: (›) s1 es gáfica. Entonces hay un grafo G1 de orden p-1, con s1 como su secuencia de grados. Sus vértices son v2, v3,…, vp con d(vi) = di-1 para 2 § i § di +1 d(vi) = di para di + 2 § i § p Construimos un nuevo grafo G, añadiendo un vértice v1 y uniendolo a los d1 vértices vi , con 2 § i § di +1 . Así, d(vi) = di , " vi œ G y s es secuencia gráfica. (fl) s es secuencia gráfica. Hay uno o más grafos de orden p con secuencia de grados s. Sea G uno de ellos, con d(vi) = di para 1 § i § p y la suma de los grados de los vértices adyacentes a v1 máxima. Estamos exigiendo que v1 sea adyacente a d1 vértices con grados d2 , d3, …, dd +1 . El grafo G – v1 tiene secuencia de grados s1 así que s1 1 es gráfica. 24 Para determinar si una secuencia de p enteros no negativos es gráfica. • No puede contener valores mayores que p-1 •Actuamos del siguiente modo. P1. Si todos los valores son 0, la secuencia es gráfica. Si tiene valores negativos , no es gráfica; Si no tiene valores negativos seguir. P2. Reordenar los números de la secuencia, si es necesario, para que sea no creciente. P3. Eliminar el primer valor n, y restar 1, de los siguientes n valores de la secuencia. Volver al paso 1. 25 Camino (walk) en un grafo G, es una secuencia alternada P : v0, e1, v1, e2, v2, …, vn-1, en , vn (n ¥ 0) de vértices y aristas, empezando y terminando por vértices, y tal que ei = vi-1 vi para i = 1,2,…, n P tiene longitud (length) n porque contiene n aristas. Como los vértices, determinan las aristas, éstas pueden ser omitidas. P : v0, v1, v2, …, vn-1 , vn, es un v0-vn camino • un v0-vn camino es cerrado (closed), si empieza y termina en el mismo vértice, v0=vn. Es abierto (open), si v0 π vn. • recorrido (trail), un camino donde no se repiten aristas, pudiendose repetir los vértices. • camino simple (path), un camino donde no se repiten ni aristas ni vértices. Un camino simple es un recorrido, pero no todo recorrido es camino simple. 26 Teorema Cualquier simple. x-y camino en un grafo G, contiene un x-y camino Demostración Si x=y, entonces el x-y camino trivial da la solución. Supongamos x∫y . Hay dos casos a considerar: • el camino que conecta x e y no contiene vértices repetidos, entonces ya es simple. • el camino que conecta x e y tiene vértices repetidos x, v1, v2, ..., w, w1,w2, ..., wk, w, ...vp-1, vp, y donde el vértice w se repite. eliminamos todos los vértices comprendidos entre los w, y uno de ellos, resultando x, v1, v2, ..., w, ...vp-1, vp, y Procedemos de igual modo con cada vértice repetido, hasta conseguir un camino simple. 27 Nombre Tipo Camino Sí Sí Sí Sí abierto No Sí cerrado No Sí abierto No No cerrado No No walk Camino cerrado cerrado Recorrido trail Circuito circuit Camino simple ¿Admite aristas ¿Admite vértices repetidas? repetidas? path Ciclo cycle 28 • circuito (circuit), como un camino cerrado donde no se repiten aristas. • ciclo (cycle), un circuito donde no se repiten vértices. u,v œV(G), u está conectado a v si G contiene un u-v camino. Un grafo G se dice conexo (connected) si cada par de vértices están unidos al menos por un camino. Un grafo no conexo tiene al menos dos vértices sin camino que los una. Un subgrafo H de G es una componente de G si H es un subgrafo conexo maximal de G. 29 La relación v está conectado con w, es una relación de equivalencia entre vértices de G. Establece una partición V1, V2, …, Vk de los vértices de G. Los subgrafos ·ViÒ , 1 § i § k, son las componentes conexas del grafo G. k(G)=número de componentes conexas de G G es conexo si y solo si K(G) = 1 Dar un ejemplo de k(G) = min d(G) = D(G) =2 30 Un vértice v de un grafo G es un (cut-vertex) si k(G-v) > k(G) . vértice de corte Una arista e de un grafo G es una arista puente (bridge) si k(G-e) > k(G) Teorema Una arista e de un grafo conexo G es un puente de G si y solo si e no pertenece a ningún ciclo de G Ejercicio: Demostrarlo. 31 Los grafos que no tienen puentes son aquellos en los que cualquier arista pertenece a un ciclo. Un grafo conexo, no trivial, sin vértices de corte es llamado no separable (non-separable graph). Un bloque (block) B de un grafo G es un subgrafo de G, no separable y maximal. Es necesariamente un subgrafo inducido. Un grafo no separable tiene sólo un bloque. 32 Un bloque de un grafo G que contiene exactamente un vértice de corte de G se le llama bloque final (end-block) de G. Teorema Sea G un grafo conexo con al menos un vértice de corte, entonces G tiene al menos dos bloques finales. Un grafo de orden n ¥ 1 que es un camino se le llama camino de orden n y se denote por Pn Un grafo de orden n ¥ 3 que es un ciclo se le llama n-ciclo y se denote por Cn 33 Teorema Un grafo es bipartito (bipartite) si y solo si no tiene ciclos de longitud impar. Demostración (fl) Sea G bipartito. V=V1» V2 de modo que las aristas unen vertices de distintos subconjuntos. Sea C un ciclo en G. C: v1, v2, v3, ... , vn, v1 Suponemos que v1œ V1 , entonces v2 œ V2 , v3, œ V1 , y así se continúa alternando. Como el último vértice v1 œ V1 resulta que vn œ V2 , y en consecuencia n es par. 34 (›) Si G es conexo. Sea u un vértice de G. Para cualquier vértice v del grafo hay un (u-v camino) en G. Seleccionamos uno de los caminos más cortos para cada u-v camino. Consideramos V1 como el conjunto de vértices que contiene a u y a todos los que su u-v camino más corto tiene longitud par. En consecuencia V2 = V - V1 Con esta partición de vértices las aristas unen siempre vértices de los dos subconjuntos disjuntos V1 y V2 lo cual garantiza que G es bipartito. Si G no es conexo, sean G1 , ... , Gn sus componentes conexas. Por el resultado anterior cada componente es bipartito y por tanto también G es bipartito. 35 Digrafos (Digraphs) D(V,E) es un grafo dirigido (directed graph) o digrafo (digraph), donde V es un conjunto finito no vacío de vértices y E (posiblemente vacio), es el conjunto de pares ordenados de vértices, llamadas arcos (arcs). Como (u,v) es distinto a (v,u) , dos vértices pueden estar unidos por dos arcos si estos tienen direcciones opuestas Orden (order) de un digrafo es el número de vértices. El número de sus arcos su tamaño (size). El grafo subyacente (underlying graph) de un digrafo D es el grafo obtenido al reemplazar los arcos (u,v) o (v,u) por la arista uv 36 Si (v,u) œE(D), v es adyacente hacia (adjacent to) u, adyacente desde v. y u es El arco (v,u) es incidente desde (adjacent from) v y es incidente a u Grado de entrada (indegree) de v es el número de vértices adyacentes hacia v , y se denota d+(v) Grado de salida (outdegree) de v es el número de vértices adyacentes desde v , y se denota d-(v) Grado del vértice v es la suma d (v) = d-(v) + d+(v) vértice gr. salida gr. entrada u v w x grado u 1 1 2 v 2 0 2 w 1 3 4 x 1 1 2 37 Teorema Sea D un digrafo de orden p V = {v1, v2, v3, ... , vp} . Entonces p p i =1 i =1 y tamaño q, con + − δ ( v ) = δ ∑ i ∑ (vi ) = q Dos digrafos D (V,E) y D’(V’,E’), son isomorfos si existe una función biyectiva entre los conjuntos de vértices f : V(D) → V’(D’) tal que si {u,v} es un arco de D ⇔ {f(u),f(v)}es un arco de D’ Los conceptos de subdigrafos, subdigrafos inducidos se definen del mismo modo que en el caso de grafos. 38 Camino (walk) en un digrafo D, es una secuencia alternada P : v0, e1, v1, e2, v2, …, vn-1, en , vn (n ¥ 0) de vértices y arcos, empezando y terminando por vértices, y tal que ei = vi-1 vi para i = 1,2,…, n P es un v0-vn camino de longitud n porque contiene n arcos. Como los vértices, determinan los arcos, éstos pueden ser omitidas. P : v0, v1, v2, …, vn-1 , vn, Los conceptos de recorrido, camino simple, circuito, ciclo en digrafos son análogos a los de grafos, pero actuando en la dirección de los arcos. Un ciclo de longitud 2 es posible en digrafos. 39 Semicamino (semiwalk) en un digrafo es una secuencia alternada P : v0, e1, v1, e2, v2, …, vn-1, en , vn (n ¥ 0) de vértices y arcos, tal que ei = (vi-1, vi) o ei =( vi , vi-1) para cada i = 1,2,…, n. P es un v0-vn semicamino de longitud n u D v w y x P : v, (vw), w, (uw) u, (x,u), x es un v-x semicamino que no es v-x camino D no tiene ningún v-x camino 40 Dos vértices u, v de un digrafo D están conectados si D contiene un u-v semicamino. Un digrafo D es débilmente conexo (weakly connected) si cualesquiera dos vértices de D están conectados, es decir, D es conexo si su grafo subyacente es conexo. Un digrafo D es unilateralmente conexo (unilaterally connected) si para cualesquiera dos vértices u y v de D hay un u-v camino, o un v-u camino, o ambos. D es fuertemente conexo (strongly connected) si para cualesquiera dos vértices u y v de D hay ambos, un u-v camino así como un v-u camino. conexión fuerte fi conexión unilateral conexión unilateral fi conexión débil 41 Un digrafo D es r-regular si d-(v) = d+(v) = r para todos los vértices v de D Un digrafo D es simétrico (symmetric) si siempre que (u,v) es un arco en D, entonces también (v,u) es arco en D. Si D es un digrafo simétrico , entonces D = G* , donde G es el grafo en el que cada arista uv reemplaza a los dos arcos (u,v) y (v,u) de D K1*, 4 42 Un digrafo D es asimétrico (asymmetric) si siempre que exista un arco (u,v) en D, entonces (v,u) no está en D. Tipo Arcos ¿Permite arcos múltiples? Digrafo dirigidas No No Multidigrafo dirigidas Sí No Pseudodigrafo dirigidas Sí Sí ¿Permite bucles? 43 Matriz de Adyacencia de un grafo Sea G un grafo de orden p. La matriz de adyacencia de G es una matriz cuadrada pxp que denotaremos por A. Sea (aij) el elemento de la fila i columna j de A, donde aij = 1 si hay arista entre los vértices i, j aij = 0 en otro caso. En grafos no dirigidos la matriz de adyacencia siempre es simétrica porque aij = aji Listas de adyacencia. Ocupan menor espacio en memoria, son recomendables especialmente en grafos con pocas aristas. 44 Matriz de Adyacencia de un digrafo Sea D un digrafo de orden p. La matriz de adyacencia de D es una matriz cuadrada pxp que denotaremos por A. Sea (aij) el elemento de la fila i columna j de A, donde aij = 1 si hay arco desde el vértices i al j aij = 0 en otro caso. En digrafos la matriz de adyacencia es en general no simétrica. 45 Conectividad y arista conectividad Definición: Sea G una grafo conexo. Un conjunto U de aristas de G es un conjunto de aristas de corte del grafo si G-U no es conexo. Definición: Sea G una grafo conexo. Un conjunto S de vértices de G es un conjunto de vértices de corte del grafo si G-S no es conexo. v5 v1 v2 v4 v6 v3 46 Definición: Arista conectividad de un grafo, l(G), es el mínimo cardinal de un conjunto E de aristas de G tal que G-E es un grafo no conexo o trivial. Si un grafo G es no trivial, entonces l(G) es el menor cardinal de un conjunto de corte de aristas de G. l(G)=0 ⇔ G es no conexo o trivial Definición: Vértice conectividad o conectividad de un grafo, K(G), es el mínimo número de vértices tales que si se eliminan de G producen un grafo no conexo o trivial. Si G no es completo K(G) es el mínimo cardinal de un conjunto de corte de vértices de G. 47