Lógica de Proposiciones y de Predicado Franco D. Menendez LABIA FACET - UNT
»Grafos: Definiciones y Ejemplos. Representación Matricial. Adyacencia de Nodos y Aristas. SubGrafos, Complementos e Isomorfismos de Grafos. Grado de un Vértices. Recorridos y Circuitos Eulerianos. Grafos Planos. Grafos Bipartitos. Grafos Coloreados. Aplicaciones y Ejemplos.»Árboles: Definiciones, propiedades y ejemplos. Árboles con Raíz. Árboles Binarios. Búsqueda. Árboles Recubridores. Árboles
Introducción: Qué es un Grafo? Los grafos, resultan ser un modelo matemático extremadamente útil para analizar problemas muy diversos como, por ejemplo, los siguientes:» Problemas de asignación de tareas» Construcción de redes» Problema de horarios Los grafos constituyen una herramienta básica para modelar fenómenos discretos y son fundamentales para la comprensión de las estructuras de datos y el análisis de algoritmos. Los grafos son un lenguaje, una notación, que permite representar relaciones binarias discretas es decir, entre pares de objetos en un conjunto. De una manera informal, podríamos decir que un grafo es una colección de vértices y de aristas que unen estos vértices
Introducción Qué es un Grafo? Los vértices los dibujaremos como puntos del plano o pequeños círculos, y las aristas serán líneas que unen estos puntos. Veamos ahora las definiciones formales: Figura 1.- Grafo G Grafo: Un grafo G = (V, A) es un conjunto no vacío V (de vértices) y un conjunto A (de aristas) extraído de la colección de subconjuntos de dos elementos de V. Una arista de G es pues, un subconjunto {a, b}, con a, b V, a b.
Introducción Qué es un Grafo? Para ser precisos, deberíamos decir que esta definición se refiere a lo que se conoce como un grafo simple y sin lazos. Un grafo es simple si a lo más sólo 1 arista une dos vértices cualesquiera. Esto es equivalente a decir que una arista cualquiera es el único que une dos vértices específicos. Un grafo que no es simple se denomina complejo.
Dos grafos son iguales si tienen el mismo conjunto de vértices y la misma colección de aristas. Nombraremos un grafo G mediante G = (V, A). A veces, cuando manejemos varios grafos a la vez, utilizaremos símbolos como V (G) y A(G) para recordar a qué grafo corresponden los conjuntos de vértices y aristas a las que nos estamos refiriendo.
Introducción Qué es un Grafo? Ejemplo 1 1. El problema de la asignación de tareas tiene una traducción inmediata: los vértices estarían etiquetados con los nombres de los trabajadores y de las tareas (en este tipo de problemas, generalmente se dibujan los vértices correspondientes a las tareas a un lado y los correspondientes a los trabajadores, a otro). Y dibujaremos una arista entre un vértice que represente a un trabajador y otro que represente a una tarea si efectivamente el trabajador está preparado para realizar dicha tarea.
2. Para el problema de la construcción de la red, las ciudades serían los vértices y las conexiones, las aristas. Y, por supuesto, lo que buscaremos serla unir todos los vértices con el menor número posible de aristas y de manera que la red resultante sea lo mas barata posible. 3. En el problema de horarios, representaremos las asignaturas con los vértices y las incompatibilidades entre asignaturas, con aristas. Para abordar el problema, aún nos falta ver un ingrediente: cómo se colorea un grafo. En este caso, los colores serían las horas de que dispongamos.
Introducción Qué es un Grafo? Problema Nº2 Problema Nº1
Introducción Qué es un Grafo? Ejemplo 2: Consideremos un conjunto de vértices V = {1, 2, 3}. Construyamos algunos grafos distintos con ese conjunto de vértices. Los subconjuntos de dos elementos de V son {1, 2}, {1, 3} y {2, 3}. Dos elecciones distintas de conjunto de aristas son A 1 = {{1, 2}, {2, 3}} y A 2 = {{1, 2}}, que dan lugar a los grafos G 1 y G 2 que dibujamos a continuación: Figura 2: Grafos Ejemplo 2 G1 2 G2 2 1 3 1 3
Introducción Qué es un Grafo? En muchas ocasiones, conviene considerar grafos que están incluidos dentro de otros. SubGrafo: Dado un grafo G = (V, A), formamos un grafo H = (V, A ) de G seleccionando algunos de los vértices de G (esto es, V V ). Y, de las aristas que unieran vértices del conjunto V en el grafo original G, nos quedamos con algunas de ellas (o todas). Hay que ser cuidadosos con esto: si nos limitáramos a pedir que H contuviera a algunos de los vértices y algunas de las aristas de G, podríamos llegar a situaciones sin sentido como incluir una arista pero no alguno de sus vértices (no sería un grafo verdadero)
Multigrafos Multigrafo o pseudografo: son grafos que aceptan más de una arista entre dos vértices. Estas aristas se llaman múltiples o lazos (loops en inglés). Los grafos simples son una subclase de esta categoría de grafos. También se les llama grafos no-dirigido. Multigrafo: Un multigrafo G = (V, A) consta de un conjunto no vacío V (de vértices) y de un conjunto A (de aristas) y de una función f de A en {{a, b}, con a, b V, a b}. Se dice que las aristas e 1 y e 2 son aristas múltiples si se cumple que f(e 1 ) = f(e 2 ).
Figura 3: Multigrafo G 1. Pseudografo G 2»Una red informática puede contener una línea telefónica que conecte a una computadora consigo misma (a efectos de diagnóstico). El grafo G1 es un multigrafo (aristas múltiples entre {d, c}) No podemos utilizar multigrados para representar estas redes, ya que no admiten bucles o lazos (aristas que conectan un vértice consigo mismo) en un multigrafo.
Pseudografos Pseudografo.- Un pseudografo G = (V, A) consta de un conjunto no vacío V (de vértices) y de un conjunto A (de aristas) y de una función f definida de A en {{a, b}, con a, b V, a b}. Se dice que la arista e es un bucle o lazo si se cumple que f(e) = {a, a} = {a} para algún a V. En el problema de la red informática telefónica puede ser que entre dos puntos la misma no opere en las dos direcciones. Por ejemplo, la computadora en Bs. As. Puede enviar datos a la computadora en la ciudad de Córdoba, pero no recibir datos de Córdoba. Otros tipos de redes telefónicas si funcionan en ambas direcciones. Se utiliza grafos dirigidos para modelar redes de este tipo. Las aristas de un grafo dirigido son pares ordenados, se admiten bucles, pares ordenados con los dos elementos iguales, pero no se admiten aristas múltiples en la misma dirección entre dos vértices.
Grafos Dirigidos Grafo Dirigido: Un grafo dirigido G = (V, A) consta de un conjunto no vacío V (de vértices) y de un conjunto no vacío A (de aristas) que son pares ordenados de elementos de V y de una función f definida de A en {(a, b), con a, b V}. Se dice que la arista e es un bucle o lazo si se cumple que f(e) = (a, a) = (a) para algún a V. Son grafos en los cuales se ha añadido una orientación a las aristas, representada gráficamente por una flecha. Multigrafo dirigido: Un multigrafo dirigido G = (V, A) consta de un conjunto no vacío V (de vértices) y de un conjunto no vacío A (de aristas) que son pares ordenados de elementos de V y de una función f definida de A en {(a, b), con a, b V}. Se dice que la arista e es un bucle o lazo si se cumple que f(e) = (a, a) = (a) para algún a V. Se dice que las aristas e 1 y e 2 son aristas múltiples si se cumple que f(e 1 ) = f(e 2 ).
Grafos Dirigidos Debemos observar que las aristas dirigidas múltiples están asociadas a un mismo par de vértices. No obstante, diremos que (a, b) es una arista de G = (V, A) siempre que haya al menos una arista e con f (e) = (a, b). No haremos distinción entre la arista e y el par ordenado (a, b) a no ser que la identidad de alguna de las aristas múltiples en particular sea importante. Figura 4: Grafo Dirigido G
Grafos Dirigidos La Tabla 1 resume la terminología que se emplea para los diferentes tipos de grafos. Utilizaremos la palabra grafo para describir grafos con aristas no dirigidas o dirigidas, con o sin bucles y aristas múltiples. Emplearemos los términos grafo no dirigido o pseudografo para indicar grafos no dirigidos que pueden tener aristas múltiples y bucles. Usaremos siempre el adjetivo dirigido para referirnos a grafos cuyas aristas estén asociadas a pares ordenados, como por ejemplo grafos dirigidos o dígrafos. Tabla1: Terminología en la Teoría de Grafos Tipos Aristas Arista Múltiples Bucles Grafo Simple No dirigido No No Multigrafo No dirigido Si No Pseudografo No dirigido Si Si Grafo Dirigido Dirigido No Si Multigrafo Dirigido Dirigido Si Si
SubGrafos Hay ocasiones en que solo necesitamos una parte del grafo para resolver un problema. Por ejemplo, solo estamos interesados en una parte del grafo. Podemos ignorar todas las otras partes del grafo. En el grafo completo eliminamos los vértices que corresponden a las partes no contempladas y suprimimos todas las aristas que vienen y van a esos vértices eliminados. Una vez eliminados estos vértices y aristas del grafo, sin eliminar ningún extremo de las aristas que quedan, se obtiene un grafo más pequeño. Se dice que este grafo es un subgrafo del grafo original. Subgrafo: Un subgrafo de un grafo G = (V, A) es un grafo H = (W, F) con W V y F A. Union: La unión de dos grafos simples G 1 = (V 1, A 1 ) y G 2 = (V 2, A 2 ) es un grafo simple cuyo conjunto de vértices es V 1 U V 2 y cuyo conjunto de aristas es A 1 U A 2. La unión de G 1 y de G 2 se representa por G 1 U G 2
SubGrafos Recubridor e Inducido Un par de subgrafos que serían especialmente relevantes son los siguientes: Dados un par de grafos H y G, diremos que H es un subgrafo recubridor (el ejemplo más relevante de un subgrafo recubridor lo encontraremos en el Capítulo de Arboles, cuando desarrollemos árbol recubridor) de G si H es un subgrafo de G y, además, V (H) = V (G). Es decir, si H contiene a todos los vértices de G. Diremos que H es un subgrafo inducido de G para un conjunto de vértices V V (G) si se cumple, por un lado, que V (H) = V. Y, por otro, que si v, w V y {v, w} A(G), entonces {v, w} A(H). Es decir, H tiene como conjunto de vértices a un cierto subconjunto V de los vértices de G; y como conjunto de aristas, a todas aquéllas de G cuyos extremos sean vértices de V.
Subgrafo Ejemplo 3: Consideremos el siguiente grafo G Figura 5: Grafo G del Problema 3 El conjunto de vértices de G es V(G) = {1, 2, 3, 4, 5}, mientras que el de las aristas es el siguiente conjunto A(G) = {{1, 2}, {2, 3}, {2, 4}, {2, 5}, {3, 4}, {3, 5}}. Los siguientes cuatro grafos son subgrafos de G
Figura 6: Subgrafos de G (Recubridores e Inducidos)»Los grafos H1 y H2 son, además, subgrafos recubridores de G (porque incluyen a todos los vértices de G). El grafo H3 es el subgrafo inducido de G para los vértices {2, 3, 4, 5}. Y el grafo H4, para los vértices {2, 3, 4}.
SubGrafo Los grafos H1 y H2 son, además, subgrafos abarcadores de G (porque incluyen a todos los vértices de G). El grafo H3 es el subgrafo inducido de G para los vértices {2, 3, 4, 5}. Y el grafo H4, para los vértices {2, 3, 4}. Por el contrario, los dos siguientes grafos no son subgrafos de G: Figura 7: Grafos que no son Subgrafos de G El grafo H5, porque incluye una arista, la {1, 5} que no estaba en G. Y el H6, porque su conjunto de vértices no es un subconjunto del de G.
Matrices Asociadas Una forma muy útil de representar un grafo G = (V, A) es mediante su matriz de adyacencia (o matriz de vecindades). La idea es formar una matriz de ceros y unos. Si el conjunto de vértices es V = {v 1,..., v n }, el grafo se puede describir mediante una matriz n n: v 1 V 2 V 3. V n v 1 0 1 0 1 V 2 1 0 1 1 V 3 0 1 0 0 : : : : : : V n 1 1 0 0 En la posición (vi, vj) pondremos un 1 si {vi, vj} A, y un 0 en caso contrario. La matriz tendría ceros en la diagonal (porque no permitimos lazos) y serla simétrica: si en la posición (vi, vj) aparece un 1 es porque {vi, vj} A y por tanto en la posición (vj, vi) (vj, vi) debería aparecer también un 1. Así que un grafo G simple y sin lazos con n vértices es exactamente lo mismo que una matriz n n simétrica de ceros y unos con ceros en la diagonal.
Grado de un Vértice Un concepto fundamental en un grafo es el de grado de un vértice: Los dos vértices que conforman una arista se llaman puntos finales ("endpoints", en inglés), y esa arista se dice que es incidente a los vértices. Un vértice w es adyacente a otro vértice v si el grafo contiene una arista (v,w) que los une. Vértice Adyacente: Dado un grafo G = (V, A), diremos que dos vértices v, w V son adyacentes o vecinos si {v, w} A. Si e = {v, w}, se dice que la arista e es incidente con los vértices v y w. También se dice que la arista e conecta v con w. Se dice que los vértices v y w son extremos de la arista e. Grado de Vértice.- El grado de un vértice de un grafo es el número de aristas incidentes en el, exceptuando los bucles, cada uno de los cuales contribuye con dos unidades al grado de un vértice. El grado de un vértice v se denota por δ(v). δ(v) = grado de v gr(v) = #{w V : {v, w} A(G)}.
Grado de un Vértice Si el grado de un vértice es 0, diremos que es un vértice aislado. En la matriz de adyacencia, para determinar el grado de un vértice v, basta sumar los unos que aparezcan en su fila. A la lista de los grados de los vértices de un grafo G la llamaremos la sucesión de grados: (gr(v 1 ), gr(v 2 ),..., gr(v n )). (δ(v 1 ), δ(v 2 ),..., δ(v n )). En un grafo dirigido, se puede distinguir entre grado de salida ("outdegree", número de aristas que salen del vértice) y grado de entrada ("indegree", número de aristas que llegan al vértice); un vértice fuente es un vértice con grado de entrada cero, mientras que un vértice hundido es un vértice con grado de salida cero.
Ejemplo 4: Cuáles son los grados de los vértices de los grafos de la Figura 5? Solución: en G tenemos δ(1) = 1, δ(2) = 4, δ(3) = 2, δ(4) = 3, δ(5) = 2 Pero no toda lista de n números 0 se corresponde con la sucesión de grados de un grafo con n vértices.
Grado de un Vértice TEOREMA 1: En un grafo G = (V, A) DEMOSTRACIÓN. El resultado es casi obvio, pues cada arista involucra a dos vértices. Una prueba rigurosa requiere invocar a otra matriz asociada a un grafo, la MATRIZ DE INCIDENCIA: v 1 V 2 V 3. V n a 1 1 1 0 0 a 2 1 0 1 0 a 3 0 1 0 0 : : : : : : a m 0 1 0 1
Las columnas están etiquetadas con los vértices {v1,..., vn}, y las filas, con las aristas {a 1,..., a m }. En la posición (ai, vj) colocaremos un 1 si el vértice v j es extremo de la arista ai; y un 0 en caso contrario. Apliquemos ahora un argumento de doble conteo. En la fila etiquetada por la arista a1 aparecerían sólo dos unos (sus dos extremos); lo mismo ocurre con el resto de las filas. Así que, sumando por filas, obtenemos 2m = 2 A. Al hacerlo por columnas, observamos que la columna correspondiente al vértice vj contendría tantos unos como vecinos tenga este vértice: su suma valdría justamente gr(vj ) = δ(vj). Sumando los resultados de todas las columnas, obtenemos lo que buscábamos.
DEFINICIÓN 10.- Llamaremos mínimo grado y máximo grado de un grafo a los números (G) = min. {δ(v)} para todo v V (G) Δ(G) = máx. {δ(v)} para todo v V (G) Si los dos números coinciden, por ejemplo en el valor k, entonces todos los vértices del grafo tendrían grado k, y hablaremos de un grafo k-regular. En un grafo siempre hay un número par de vértices de grado impar.»no puede existir un grafo r-regular de s vertices si r y s son impares.»el número de aristas de un grafo k-regular es (n*k)/2, y por ende, el número de aristas de un grafo completo de n vertices es (n*(n-1))/2
Grado de un Vértice TEOREMA 2: Todo grafo no dirigido G = (V, A) tiene un número par de vértices de grado impar. La terminología para grafos dirigidos refleja el hecho de que a las aristas se les asigna un sentido. DEFINICIÓN 11.- Si (v, w) es una arista de un grafo dirigido G, se dice que v es adyacente a w y que w es adyacente desde v. Al vértice v se lo denomina vértice inicial de la arista (v, w) y a w se lo denomina vértice final o terminal de la arista (v, w). Los vértices final e inicial de un bucle coinciden. Como las aristas de un grafo dirigido son pares ordenados, podemos refinar la definición de grado de un vértice a fin de reflejar el número de aristas que tienen a ese vértice como vértice inicial o como vértice final.
Grado de Entrada: En un grafo dirigido, el grado de entrada o grado negativo de un vértice v, es denotado por δ - (v), es el número de aristas que tienen a v como vértice final. Grado de Salida: El grado de salida o grado positivo de un vértice v, denotado por δ (v), es el número de aristas que tienen a v como vértice inicial. (nótese que un bucle contribuye con una unidad tanto al grado de entrada como al grado de salida del vértice correspondiente). Ejemplo 5: Cuáles son los grados de entrada y de salida los vértices de los grafos de la Figura 4? δ - (A) = 2; δ - (B) = 2; δ - (C) = 2; δ - (D) = 2; δ - (E) = 1; δ - (F) = 1 δ (A) = 1; δ (B) = 2; δ (C) = 1; δ (D) = 1; δ (E) = 2; δ (F) = 2 Grafo Regular: Un grafo no dirigido donde los vértices tienen el mismo grado se denomina grafo regular. Si δ - (v) = k para todos los vértices v V (G), entonces el grafo es k - regular.
Grado de Entrada: En un grafo dirigido, el grado de entrada o grado negativo de un vértice v, es denotado por δ - (v), es el número de aristas que tienen a v como vértice final. Grado de Salida: El grado de salida o grado positivo de un vértice v, denotado por δ (v), es el número de aristas que tienen a v como vértice inicial. (nótese que un bucle contribuye con una unidad tanto al grado de entrada como al grado de salida del vértice correspondiente). Ejemplo 5: Cuáles son los grados de entrada y de salida los vértices de los grafos de la Figura 4? δ - (A) = 2; δ - (B) = 2; δ - (C) = 2; δ - (D) = 2; δ - (E) = 1; δ - (F) = 1 δ (A) = 1; δ (B) = 2; δ (C) = 1; δ (D) = 1; δ (E) = 2; δ (F) = 2 Grafo Regular: Un grafo no dirigido donde los vértices tienen el mismo grado se denomina grafo regular. Si δ - (v) = k para todos los vértices v V (G), entonces el grafo es k - regular.
BIBLIOGRAFIA»ESTRUCTURAS DE MATEMÁTICAS DISCRETAS. Bernard Kolman. Robert Busby & Sharon Ross. 2003.»MATEMÁTICA DISCRETA Y LÓGICA. Roberto H. Fanjul 2005.»MATEMÁTICAS DISCRETAS - SEXTA EDICIÓN Richard Johnsonbaugh - PRENTICE HALL INC. 2005.»LÓGICA COMPUTACIONAL. Roberto H. Fanjul. Autor y Editor. Primera Edición 2005.»MATEMÁTICAS DISCRETA Y COMBINATORIA Ralph P. Grimaldi- Addison Wesley Longman 2001.
Preguntas? GRACIAS!» fmenendez@herrera.unt.edu.ar