Este documento presenta un ejercicio de estructuras de datos que involucra un grafo. Se pide encontrar la matriz de adyacencia, matriz de incidencia, determinar si el grafo es conexo, simple, regular, completo y Hamiltoniano. También se pide encontrar un árbol generador, subgrafo parcial y distancias entre vértices usando el algoritmo de Dijkstra.
1. Universidad Fermín Toro
Facultad de ingeniería
Escuela de Computación
Ejercicios Propuestos
José Medina
V-19614505
Estructura de Datos II
SAIA
Dado el siguiente grafo, encontrar:
2. A) Matriz de adyacencia: En el eje horizontal de derecha a izquierda se encuentran ordenados
los vértices desde v1 hasta v8. En el eje vertical, se encuentran ordenados de arriba hacia
abajo los vértices desde v1 hasta v8.
Ma(G)=
01111110
10100110
11010011
10101101
10010101
11011011
11100101
00111110
3. B) Matriz de incidencia: En el eje horizontal de derecha a izquierda se encuentran ordenados
los vértices desde v1 hasta v8. En el eje vertical, se encuentran ordenadas de arriba hacia
abajo las aristas desde a1 hasta a20
Mi(G)=
C) ¿Es conexo? Justifique su respuesta
Sí, es conexo debido a que cumple con la definición de grafo conexo que dice:
“Un grafo G se dice conexo si, para cualquier par de vértices a y b en G, existe al menos una
trayectoria (sucesión de vértices adyacentes que no repita vértices) desde a hasta b”
Algunas cadenas que confirma esto son:
C1= [V1,a1,V2,a3,V3,a6,V4,a15,V5,a18,V6]
C2= [V1,a4,V4,a11,V3,a13,V8]
C3= [V1,a5,V5,a17,V8]
01100000
10100000
00110000
10010000
11000000
00011000
10001000
10000100
00010100
00001100
01000010
00100010
10000010
01000100
00100001
00010001
00001001
00000110
00000101
00000011
4. D) ¿Es simple? Justifique su respuesta
Sí, es simple, ya que no tiene lazos y entre cada par de vértices distintos no hay más de una
arista.
Algunos ejemplos de cadenas simples en este grafo son:
C1= [V1,a1,V2,a3,V3]
C2= [V8,a19,V6,a20,V7]
C3= [V4,a15,V5,a18,V6,a20,V7]
E) ¿Es regular? Justifique su respuesta
No, ya que la definición de grafo regular dice: “Un grafo es regular cuando si el número de
aristas que concurren en cada vértice es K” y en este caso, todos los vértices no tienen un número
de aristas K iguales.
A continuación se muestran los valores K de cada vértice para demostrar por qué el grafo no es
regular.
Vértice Valor de K
V1 5
V2 5
V3 6
V4 4
V5 5
V6 5
V7 4
V8 6
F) ¿Es completo? Justifique su respuesta
No, este grafo no es completo ya que no existe una arista entre cada par de vértices. Por
ejemplo, entre los vértices v4 y v7 no existe una arista de unión, entre los vértices v5 y v2 tampoco y
así sucesivamente con otros vértices.
G) Una cadena simple no elemental de grado 6
C1= [V1,a2,V3,a13,V8,a17,V5,a5,V1,a4,V4,a15,V5]
Esta cadena no es elementa ya que repite los vértices V1 y V5
5. H) Un ciclo no simple de grado 5
C1= [V3,a3,V2,a9,V6,a9,V2,a8,V8,a13,V3]
Este no es un ciclo simple porque repite la arista a9
I) Árbol generador aplicando el algoritmo constructor
Paso 1: Seleccionar un vértice S1, hacer H1= {S1}
S1=V1; H1={V1}
Paso 2: Seleccionar una arista que tenga un extremo en H1 y el otro extremo en un Vértice S2.
Hacer H2= H1 U {S2}
H2= {V1,V2}; Arista a1
Paso 3: Seleccionar una arista que tenga un extremo en H2 y el otro extremo en un Vértice S3.
H3= {V1,V2,V3}; Arista a3
Paso 4: Repetir el paso anterior hasta unir todos los vértices
H4= {V1,V2,V3,V4}; Arista a11
7. Paso 8:
H8= {V1,V2,V3,V4,V5,V6,V7,V8}; Arista a16
Este es el árbol generador del grafo
J) Subgrafo parcial
Sea V1= {V1,V3,V4,V5} y A1={a2,a4,a5,a12,a15} entonces g1=[V1,a,g1=g/a1] es un subgrafo
parcial de G.
8. K) Demostrar si es Hamiltoniano
Para que un grafo sea Hamiltoniano debe contener un ciclo hamiltoniano y un ciclo
hamiltoniano es aquel en donde se recorren todos los vértices todos los vértices del grado sin
repertilos y se termina en el punto de inicio. A continuación demostraré cómo este grafo sí es
hamiltoniano
Dado el siguiente dígrafo, encontrar:
9. A) Encontrar la matriz de conexión
En el eje horizontal de derecha a izquierda se encuentran ordenados los vértices desde v1
hasta v6. En el eje vertical, se encuentran ordenados de arriba hacia abajo los vértices desde v1
hasta v8
McD=
010000
101010
100001
011000
101100
010110
B) ¿Es simple? Justifique su respuesta
Sí, este dígrafo es simple porque no tiene lazos ni aristas paralelas.
C) Encontrar una cadena no simple no elemental de grado 5
C1=[V5,a11,V4,a12,V6,a14,V5,a11,V4,a9,V1]
Esta es una cadena no simple porque repite la arista a11 y no elemental porque repite los
vértices V5 y V4.
D) Encontrar un ciclo simple
C1=[V1,a5,V3,a8,V4,a9,V1]
Este es un ciclo simple ya que empieza y termina en el mismo vértice y no repite aristas.
E) Demostrar si es fuertemente conexo utilizando la matriz de accesibilidad
En el eje horizontal de derecha a izquierda se encuentran ordenados los vértices desde v1
hasta v6. En el eje vertical, se encuentran ordenados de arriba hacia abajo los vértices desde v1
hasta v8
Mc(0)=
010000
101010
100001
011000
101100
010110
11. Donde IG es la matriz identidad:
IG=
100000
010000
001000
000100
000010
000001
Acc(D)bin=
544343
545444
444443
445534
445444
454554
Acc(D)=
111111
111111
111111
111111
111111
111111
Como se puede observar, este es un dígrafo fuertemente conexo ya que cada vértice es
accesible desde cada uno de los demás vértices.
F) Encontrar la distancia de V2 a los demás vértices utilizando el algoritmo de Dijkstra
Paso 1:
D0(V2)= 0
U0=V2
Paso 2:
D1(V1)= min(∞,∞) = ∞
D1(V3)= min(∞,3) = 3
D1(V4)= min(∞,4) = 4
D1(V5)= min(∞,∞) = ∞
D1(V6)= min(∞,3) = 3
12. La distancia mínima es 3, por lo tanto:
U1=V3; D1(U1)= 3
Paso 3:
D2(V1)= min(∞,3+∞) = ∞
D2(V4)= min(4, 3+1) = 4
D2(V5)= min(∞, 3+4) = 7
D2(V6)= min(3, 3) = 3
La distancia mínima es 3, por lo tanto:
U2=V6; D2(U2)= 3
Paso 4:
D3(V1)= min(∞,3+∞) = ∞
D3(V4)= min(4, 3+∞) = ∞
D3(V5)= min(7, 3+3) = 6
La distancia mínima es 4, por lo tanto:
U3=V4; D3(U3)= 4
Paso 5:
D4(V1)= min(∞,4+4) = 8
D4(V5)= min(6, 4+∞) = 6
La distancia mínima es 6, por lo tanto:
U4=V5; D4(U4)= 6
Paso 6:
D5(V1)= min(8, 6+∞) = 8
La distancia mínima es 8, por lo tanto:
U5=V1; D5(U5)= 8
Ahora bien, la distancia desde V2 hasta el resto de los vértices es:
D(V2,V1)= (U0+U1+U2+U3+U4+U5)=24
D(V2,V3)= (U0+U1)= 3
D(V2,V4)= (U0+U1+U2+U3)=10
D(V2,V5)= (U0+U1+U2+U3+U4)=16
D(V2,V6)= (U0+U1+U2)= 6