






Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Matemática Discreta y Álgebra, Profesor: ppp ppp, Carrera: Ingeniería del Software, Universidad: URJC
Tipo: Ejercicios
1 / 10
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!







Los grafos son modelos matemáticos utilizados para representar relaciones entre objetos de un conjunto y que generalizan el modelo de las relaciones binarias que estudiamos anteriormente. Uti- lizamos grafos para estudiar conexiones entre objetos, datos o fuentes de información. Un ejemplo de grafo lo encontramos en las redes de carreteras, dónde las poblaciones se enlazan o conectan con una o varias carreteras. Las redes de ordenadores también se pueden representar y estudiar como grafos.
Denición 4.1.1. Un grafo simple G es un par G = (E, V ) formado por un conjunto nito de vértices V y un conjunto E de pares no ordenados de vértices distintos, es decir,
E ⊆ {{u, v} : u, v ∈ V, u 6 = v}.
A los elementos de E se les denomina aristas (no dirigidas o no orientadas).
Ejemplo 4.1.2. Un grafo simple es, por ejemplo, el grafo G = (V, E), donde V = { 1 , 2 , 3 , 4 } y E = {{ 1 , 2 }, { 1 , 3 }, { 1 , 4 }}.
Observación 4.1.3. Podemos representar los vértices como puntos del plano y las aristas {u, v} como el segmento uv dando una representación gráca del grafo. Combiene observar que la representación no es necesariamente única. Por ejemplo podemos ver a continuación dos representaciones distintas del grafo del ejemplo anterior.
Denición 4.1.4. Un multigrafo G es un par (V, E) formado por un conjunto nito de vértices V y una familia nita E de aristas no orientadas E = {ei}i∈I , con I un conjunto nito de índices y, para todo i ∈ I, se verica que ei = {ui, vi}, con ui, vi ∈ V.
Ejemplo 4.1.5. Un multigrafo puede ser, por ejemplo, ({ 1 , 2 , 3 }, {{ 1 , 1 }, { 1 , 2 }, { 1 , 2 }, { 2 , 3 }}).
Observación 4.1.6. Nótese que, en un multigrafo, dos aristas distintas pueden conectar los mismos vértices, es decir, que E es una familia y no un conjunto, pudiendo tener elementos repetidos. Nótese también que se permiten los lazos o bucles, esto eso, aristas del tipo {u, u}.
Denición 4.1.7. Un digrafo G es un par (V, E) donde V es un conjunto nito y E ⊆ (V, V ) \ ∆, siendo ∆ = {(u, u) : u ∈ V }. A los elementos de V se les denomina vértices y a los de E aristas (dirigidas u orientadas).
Ejemplo 4.1.8. {{a, b, c}, {(a, b), (a, c), (b, c), (c, b)} es un digrafo que podemos representar uti- lizando puntos para representar los vértices y echas para representar las aristas. Nótese que la arista (b, c) es distinta de la arista (c, b).
Denición 4.1.9. Un multidigrafo G es un par (V, E), formado por un conjunto nito de vértices V y una familia nita E de aristas orientadas E = {ei}i∈I , donde I es un conjunto nito y para todo i ∈ I se verica que ei ∈ V × V.
Observación 4.1.16. Un lazo en un vértie u suma uno al grado de entrada y uno al grado de salida.
Ejemplo 4.1.17. Consideremos los grafos G y H de la siguiente gura:
En el grafo G, se verica que
gr+(a) = 3 y gr−(a) = 0,
gr+(b) = 1 y gr−(b) = 1, gr+(c) = 1 y gr−(c) = 2, gr+(d) = 2 y gr−(d) = 2, gr+(e) = 0 y gr−(e) = 2. Por otra parte, en el grafo H tenemos
gr+(f ) = 2 y gr−(f ) = 1,
gr+(g) = 2 y gr−(g) = 0, gr+(h) = 3 y gr−(h) = 2.
Teorema 4.1.18. Sea G = (V, E) un grafo dirigido. Entonces se verica
|E| =
v∈V
gr+(v) =
v∈V
gr−(v).
Especialmente útil en lo que a aplicaciones informáticas se reere. Estos grafos se emplean, entre otras cosas, para consruir algoritmos ecientes destinados a localizar items en una lista, para construir redes de ordenadores con el mínimo coste, para construir códigos ecientes destinados a almacenar y transmitir datos o para analizar algoritmos de ordenación.
Denición 4.2.1. Un camino entre los vértices v 0 y vk de un grafo no dirigido G = (V, E), es una secuencia nita de vértices, no necesariamente distintos, C = v 0 v 1 ...vk tal que ei = {vi− 1 , vi} ∈ E, para todo i ∈ { 1 , 2 , ..., k}. Diremos que un camino C es un ciclo si v 0 = vk y vi 6 = vj para todo i, j ∈ { 1 , 2 , ..., k − 1 }, es decir, C empieza y acaba en el mismo vértice, pero el resto de sus vértices son distintos.
Denición 4.2.2. Un grafo G = (V, E) se dice conexo si hay un camino entre cada par de vértices distintos del grafo.
Denición 4.2.3. Un árbol es un grafo no dirigido, conexo y sin ciclos.
Observación 4.2.4. Como un árbol no tiene ciclos, entonces no puede tener aristas múltiples o lazos, por lo tanto cualquier árbol es un grafo simple.
Ejemplo 4.2.5. Los siguientes grafos son ejemplos de árboles
Teorema 4.2.6. (Caracterización de un árbol). Sea G = (V, E) un grafo simple. Los siguientes enunciados son equivalentes:
Denición 4.2.7. Un subgrafo de un grafo simple G = (V, E) es un grafo G′^ = (V ′, E′) tal que V ′^ ⊆ V y E′^ ⊆ E.
Denición 4.2.8. Un árbol generador de un grafo simple G es un subgrafo de G que es árbol y contiene todos los vértices de G.
Ejemplo 4.2.9. El grafo de la derecha en un árbol generador del grafo G de la izquierda:
A la derecha mostramos el árbol generador dibujado con la forma habitual de un árbol.
El siguiente algoritmo construye un árbol generador siguiendo un recorrido en el grafo mediante búsqueda en profundidad. Esta búsqueda y los árboles así construidos se usan, por ejemplo, para encontrar las componentes conexas o para comprobar si un grafo es acíclico (es decir, no contiene ciclos).
Elegimos un vértice arbitrario v 0 , que llamamo raíz.
Construimos un camino que comenzando en v 0 y añadiendo sucesivamente aristas y vértices mientras sea posible, sin utilizar vértices ya añadidos al camino.
Si el camino así construido pasa por todos los vértices del grafo, entonces el árbol generador es dicho camino. En caso contrario, retrocedemos al penúltimo vértice del camino y, si es posible, formamos un nuevo camino que empiece en este vértice y que pase por vértices no visitados.
Si esto no se puede hacer, lo intentamos retrocediendo al vértice anterior.
Repetimos el proceso hasta añadir todos los vértices.
Ejemplo 4.2.13. Empezando en el vértice f , hemos construido el árbol generador del siguiente grafo mediante búsqueda en profundidad.
A la derecha, hemos dibujado el árbol con su forma habitual.
Acabaremos este tema con una de las aplicaciones de grafos que concierne a otro tipo de representación de grafos distinta al uso de dibujar puntos y líneas. Es decir, se representará un grafo mediante una matriz denominada matriz de adyacencia.
Dado un grafo no dirigido G = (V, E), para construir una matriz de adyacencia se ordenarán previamente los vértices de G. Si |V | = n y los ordenamos como V = {v 1 , v 2 , ..., vn}, la matriz de adyacencia de G con respecto a esa ordenación de los vértices es la matriz A = (ai,j )ni,j=1 ∈ Mn×n(R) , donde
aij =
1 si {vi, vj } ∈ E 0 si {vi, vj } ∈/ E
Observación 4.3.1. La matriz de adyacencia de un grafo simple es una matriz simétrica (At^ = A) cuya diagonal es nula.
Ejemplo 4.3.2. Consideremos el siguiente grafo simple
En este casi, si tomamos V = {a, b, c, d, e}, entonces su matriz de adyacencia es la matriz de 5 las y 5 columnas
a)
b)
c)