Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Presentación
Esta PEC es una introducción a la teorı́a de grafos que cubre los contenidos estudiados en los
3 primeros módulos de la asignatura. Los ejercicios trabajan tanto los conceptos previos sobre
funciones y algoritmos, los fundamentos de la teorı́a de grafos y los problemas de recorridos y
conectividades sobre grafos.
Competencias
En esta PEC se trabajan las siguientes competencias del Grado de Ingenierı́a Informática:
Capacidad para utilizar los fundamentos matemáticos, estadı́sticos y fı́sicos para comprender
los sistemas TIC.
Objetivos
Conocer el concepto de grafo y los diferentes tipos de grafos (grafos orientados, grafos pon-
derados, pseudografos, multigrafos, ...).
Conocer los problemas de conectividad más usuales sobre grafos, los algoritmos que los re-
suelven y saber aplicarlos en un grafo concreto.
1
75.569 · Grafos y Complejidad · PEC1
2023-24-Sem. 1 · Grado en Ingenierı́a Informática
Estudios de Informática, Multimedia y Telecomunicación
Solución:
a) Únicamente se deben ordenar los 12 distritos. Para ello hay 12! formas. Para la segunda parte
vemos que los tributos de cada distrito se pueden ordenar de dos formas distintas (chico - chica,
chica-chico). Ası́ pues, en este caso hay 212 · 12! ordenaciones.
b) Hay 3! formas de ordenar los distritos ricos en las posiciones reservadas y (12 − 3)! de ordenar el
resto. Ası́ pues, hay 3! · 9! posibles ordenaciones (o 212 3! · 9! si permitimos ordenar los tributos).
2
75.569 · Grafos y Complejidad · PEC1
2023-24-Sem. 1 · Grado en Ingenierı́a Informática
Estudios de Informática, Multimedia y Telecomunicación
b) Escribid un algoritmo que realice este cálculo del determinante, y dad su complejidad
computacional en número de operaciones (sumas/restas y multiplicaciones). Asumid que
el ordenador es muy rápido asignando valores y, por lo tanto, la asignación o creación
de variables tiene un coste menospreciable respecto a sumas, restas, multiplicaciones y
divisiones. No consideréis tampoco las operaciones de indexación. Por ejemplo, buscar
la posición j + 1 en una fila. Solo consideramos las operaciones de números con coma
flotante.
c) Si al ordenador usado le cuesta 5 veces más realizar una multiplicación que una suma
o resta, y le cuesta 1 nanosegundo hacer una suma. ¿cuánto tardará en calcular el
determinante de una matriz de tamaño 6 × 6?
Solución:
3
75.569 · Grafos y Complejidad · PEC1
2023-24-Sem. 1 · Grado en Ingenierı́a Informática
Estudios de Informática, Multimedia y Telecomunicación
a) Como ambos conjuntos tienen el mismo cardinal, hay que asignar cada uno de los elementos de
A a uno de los elementos de B sin repetir, eso será una cantidad de 4! = 24 funciones inyectivas,
que también serán exhaustivas y, por lo tanto, biyectivas
b) Hay varias formas de expresar el algoritmo, una de ellas es, desarrollando a partir de la primera
fila:
función DeterminanteRecursivo(A): Dimensión de A
0 N = dim(A)
Si el tamaño N de A es 1, devolvemos A(1, 1)
0 si N = 1 entonces
1 devolver A(1, 1)
2 finpara
Creamos el valor determinante
3 det := 0
4 para i ← 1 hasta N
Creamos el menor correspondiente a la posición (1,i):
5 B1,i := 0(N −1×N −1)
6 para j ← 1 hasta N − 1
7 para k ← 1 hasta N − 1
Asignamos los valores de A al menor B. Notar aquı́ que si el ı́ndice que mide en
qué columna estamos (k) aún no ha llegado a la columna eliminada i, asignamos A(j + 1, k ).
Si no, tenemos que sumar 1 a k para saltar la posición de la columna i eliminada y asignar
A(j + 1, k + 1).
8 si k < i entonces
9 B1,i (j, k) := A(j + 1, k)
10 sino
11 B1,i (j, k) := A(j + 1, k + 1)
12 fin si
13 finpara
14 finpara
15 si i %2 == 1 entonces
16 det = det + A(1, i) · DeterminanteRecursivo(B)
17 sino
18 det = det − A(1, i) · DeterminanteRecursivo(B)
19 fin si
20 devolver det
Si miramos detenidamente el algoritmo, el número de operaciones que se hacen es, teniendo
el cuenta el primer bucle, N sumas/restas y N multiplicaciones/divisiones. Además, hay que
calcular N veces la función DeterminanteRecursivo de una matriz N − 1 × N − 1, lo que implica
N −1 sumas/restas, N −1 multiplicaciones y otros N −1 DeterminanteRecursivo de una matriz
4
75.569 · Grafos y Complejidad · PEC1
2023-24-Sem. 1 · Grado en Ingenierı́a Informática
Estudios de Informática, Multimedia y Telecomunicación
N −2 para cada uno de esos N menores iniciales. De esta forma, vamos acumulando hasta llegar
a menores de dimensión 1 y tenemos que tanto las sumas/restas como las multiplicaciones son
N + N (N − 1) + N (N − 1)(N − 2) + ... + N (N − 1)...(N − (N − 2)). Por lo tanto, el algoritmo
tiene coste N !
c) A partir del apartado anterior, tendremos 6 + 6 · 5 + 6 · 5 · 4 + 6 · 5 · 4 · 3 + 6 · 5 · 4 · 3 · 2 = 1236
sumas/restas y también multiplicaciones. En total, el coste será 1236 · 1 + 1236 · 5 = 7416
nanosegundos.
Solución:
a) Usaremos el algoritmo de Havel–Hakimi, empezando con x = 2:
Secuencia Operación
8,7,6,5,4,4,2,2,1 Secuencia inicial
1 6,5,4,3,3,1,1,0 1a subsecuencia
2 4,3,2,2,0,0,0 2a subsecuencia
3 2,1,1,-1,0,0 3a subsecuencia
Fin
5
75.569 · Grafos y Complejidad · PEC1
2023-24-Sem. 1 · Grado en Ingenierı́a Informática
Estudios de Informática, Multimedia y Telecomunicación
Secuencia Operación
8,7,6,5,4,4,3,2,1 Secuencia inicial
1 6,5,4,3,3,2,1,0 1a subsecuencia
2 4,3,2,2,1,0,0 2a subsecuencia
3 2,1,1,0,0,0 3a subsecuencia
4 0,0,0,0,0 4a subsecuencia
Fin
Por lo tanto, para x = 3 la secuencia sı́ es gráfica. No hace falta probar los otros dos casos,
pues estamos buscando el mı́nimo valor de x que lo cumple.
Ahora, teniendo en cuenta que el grafo tiene orden 9, el complementario tendrá por secuencia
de grados 8 − gi , donde gi es el grado de cada vértice de la secuencia inicial con x = 3. Por
lo tanto, la secuencia del complementario será 7, 6, 5, 4, 4, 3, 2, 1, 0. Para construir su matriz de
adyacencias, empezaremos con una matriz 9 × 9 vacı́a con ceros en la diagonal. Para la primera
fila, empezaremos con un 0 en la diagonal, seguido de siete 1s que corresponden al primer
número de la secuencia. Luego copiaremos esa primera fila en la primera columna, ya que la
matriz de adyacencias es simétrica. En la segunda fila, empezamos con 1, 0 y añadimos los 5
unos que nos faltan. Luego copiamos esa segunda fila en la segunda columna, y seguimos ası́
hasta que llenamos la matriz:
0 1 1 1 1 1 1 1 0
1 0 1 1 1 1 1 0 0
1 1 0 1 1 1 0 0 0
1 1 1 0 1 0 0 0 0
1 1 1 1 0 0 0 0 0
1 1 1 0 0 0 0 0 0
1 1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
b) La unión de dos grafos es independiente del orden de éstos por construcción. En el caso de la
suma, sucede lo mismo. También con el producto. Es decir, las tres operaciones son conmuta-
tivas
c) Por el teorema de los grados, tenemos que el complementario tiene m = 21 aristas. Ahora,
intentaremos ver cuantas aristas y vértices tiene G: Para el número de aristas, sabemos que
tendrá tantas como M − 21, donde M serı́a el número de aristas de un grafo completo de orden
N ( el orden de G). Por la fórmula dada del orden del producto, y que G es producto de C3 por
otro grafo, tenemos que N será múltiple de 3. Además, un grafo completo de orden N tiene
tantas aristas como todas las combinaciones posibles de vértices escogidos de dos en dos. Eso
2 !
es, C N = 2!(NN−2)! . Eso es: 3 para N = 3, 15 para N = 6 y 36 para N = 9. Como el grafo
completo tiene que tener más aristas que el complementario de G, el mı́nimo orden N de G que
6
75.569 · Grafos y Complejidad · PEC1
2023-24-Sem. 1 · Grado en Ingenierı́a Informática
Estudios de Informática, Multimedia y Telecomunicación
A B C D E
A 0 8 25 50 30
B 8 0 10 - -
C 25 10 0 16 -
D 50 - 16 0 8
E 30 - - 8 0
a) Comprobar, mediante el algoritmo adecuado, a qué ciudades es posible viajar (no nece-
sariamente con viaje directo) desde la ciudad E . En caso de poder escoger más de un
vértice en el mismo paso del algoritmo, escoger en orden lexicográfico. Mostrar todos
los pasos del algoritmo y describir los conceptos en términos de teorı́a de grafos.
b) Indicar (sin resolver el algoritmo) qué algoritmo escogerı́as para determinar la ruta
menos duradera entre la ciudad A y la ciudad D (no necesariamente con viaje directo).
¿Cuáles serı́an los elementos del problema? (vértices, aristas, pesos)
c) Encontrar, mediante el algoritmo adecuado, las rutas menos duraderas entre todos los
pares de ciudades. Mostrar todos los pasos del algoritmo.
d ) Utiliza los resultados anteriores para justificar si es o no posible moverse de una ciudad
a otra pasando como máximo por un total de 3 ciudades. ¿A qué concepto corresponde,
en términos de teorı́a de grafos?
Solución:
7
75.569 · Grafos y Complejidad · PEC1
2023-24-Sem. 1 · Grado en Ingenierı́a Informática
Estudios de Informática, Multimedia y Telecomunicación
a) Se puede usar cualquier algoritmo de exploración de grafos. Aquı́ se muestra la solución usando
BFS.
P Vértice añadido Vértice eliminado R
E E − [E]
EA A − [EA]
EAD D − [EAD]
AD − E [EAD]
ADB B − [EADB]
ADBC C − [E ADBC ]
DBC − A [EADBC ]
BC − D [EADBC]
C − B [EADBC]
∅ − C [EADBC ]
b) El algoritmo a aplicar serı́a Dijkstra. Los vértices serı́an las ciudades, las aristas los trayectos
entre ciudades y los pesos de las aristas serı́an los tiempos de los viajes directos.
c) Puede aplicarse el algoritmo de Floyd:
0 8 25 50 30 0 8 25 50 30
8 0 10 ∞ ∞ 8
0 10 58 38
d0 = d1 =
25 10 0 16 ∞ ,
25 10 0 16 55
50 ∞ 16 0 8 50
58 16 0 8
30 ∞ ∞ 8 0 30 38 55 8 0
0 8 18 50 30 0 8 18 34 30
8 0 10 58 38 8 0 10 26 38
2 3
d = 18 10
0 16 48 , d = 18
10 0 16 48
50 58 16 0 8 34 26 16 0 8
30 38 48 8 0 30 38 48 8 0
0 8 18 34 30
8 0 10 26 34
d4 = d5 = d4
18 10 0 16 24 ,
34 26 16 0 8
30 34 24 8 0
d ) Se hace referencia al diámetro del grafo no ponderado. En este caso es 2 (se puede ver si se
han guardado los caminos por Floyd) y, por lo tanto, es posible viajar entre dos ciudades
cualesquiera sin pasar por más de tres ciudades distintas en total.
8
75.569 · Grafos y Complejidad · PEC1
2023-24-Sem. 1 · Grado en Ingenierı́a Informática
Estudios de Informática, Multimedia y Telecomunicación
9
75.569 · Grafos y Complejidad · PEC1
2023-24-Sem. 1 · Grado en Ingenierı́a Informática
Estudios de Informática, Multimedia y Telecomunicación
Recursos
Recursos Básicos
Módulo didáctico 1. Conceptos previos: funciones y algoritmos.
Módulo didáctico 2. Fundamentos de grafos.
Módulo didáctico 3. Recorridos y conectividad.
Colección de problemas.
Recursos Complementarios
PECs y exámenes de semestres anteriores.
Programario para el estudio de algoritmos sobre grafos.
Enlaces: Applets interactivos sobre algoritmos de grafos.
Criterios de valoración
La PEC se tiene que resolver de forma individual. En caso que hayáis consultado recursos
externos, es necesario referenciarlos.
Es necesario justificar la respuesta de cada apartado. Se valorará tanto el resultado final como
la justificación dada.
En los apartados donde sea necesario aplicar algún algoritmo, se valorará la elección del
algoritmo apropiado, los pasos intermedios, el resultado final y las conclusiones que se deriven.
Hay que entregar un único documento PDF con las respuestas de todos los ejercicios. El nombre
del fichero tiene que ser: PEC1 Apellido1Apellido2Nombre.pdf.
Este documento se tiene que entregar antes de las 23:59 del dı́a 06/11/2023. No se aceptarán
entregas fuera de plazo.
10