Ejercicio 4 - Mayo 2021

notion image
Emplee el algoritmo visto en clase para calcular las rutas que parten de A y conteste a las siguientes preguntas (para que las preguntas se valoren deben estar debidamente justificadas):
  • a) ¿En la tabla o cola de prioridad aparece la entrada (H,10) en algún momento? SI / NO (0,25 puntos)
  • b) ¿En la tabla o cola de prioridad aparece la entrada (D,12) en algún momento? SI / NO (0,25 puntos)
  • c) ¿El algoritmo inserta en la cola de prioridad (es decir, es alcanzable) antes el nodo F o el nodo C? (0,25 puntos)
  • d) ¿Cuántas veces cambia el valor de la distancia al nodo H en la tabla teniendo en cuenta que comienza valiendo infinito? (0,25 puntos)
  • e) ¿Qué nodo sale de la cola de prioridad el 3º? (0,25 puntos)
  • f) ¿Y el 6º? (0,25 puntos)
  • g) Dibuja el árbol mínimo de camino mínimo partiendo del router A

Soluciones


🚧
Primero deberemos hacer el algoritmo completo para resolver las preguntas. Se recomienda seguir el siguiente procedimiento al resolverlo para facilitar encontrar las respuestas a las preguntas planteadas
  • Dibujar una tabla con las columnas: (Num nodo - Distancia - Visitado - Nodo prev.)
  • Anotar el desarrollo de la cola de prioridad paso a paso
Proceso
  1. Distancia al nodo inicial =0 , visitado True y nodo previo no aplica (N/A)
  1. Anotamos sus vecinos en la cola de prioridad
En bucle hasta que todos estén visitados o se vacíe la cola
  1. Extraemos el nodo más cercano sin visitar de la cola de prioridad
  1. Anotamos la nueva distancia y el nodo previo (si es mejor) y los marcamos como visitado
  1. Anotamos los vecinos a la cola de prioridad (con la distancia al nodo inicial)
Cola de prioridad (paso a paso)
Paso 0: Estado inicial
  • A → 0
Paso 1: Desencolamos el nodo A y encolamos sus vecinos no visitados
  • B → 2
  • G → 6
Paso 2: Desencolamos el nodo B y encolamos sus vecinos no visitados
  • E → 4 (2+2)
  • G → 6
  • C → 9 (2+7)
Paso 3: Desencolamos el nodo E y encolamos sus vecinos no visitados
  • G → 6 → 5 (4+1)
  • F → 6 (4+2)
  • C → 9
Paso 4: Desencolamos el nodo G y encolamos sus vecinos no visitados
  • F → 6
  • C → 9
  • H → 9 (5+4)
Paso 5: Desencolamos el nodo F y encolamos sus vecinos no visitados
  • H → 9 → 8 (6+2)
  • C → 9
Paso 6: Desencolamos el nodo H y encolamos sus vecinos no visitados
  • C → 9
  • D → 10 (8+2)
Paso 7: Desencolamos el nodo C y encolamos sus vecinos no visitados
  • D → 10
Paso 8: Desencolamos el nodo D y encolamos sus vecinos no visitados
Fin del algoritmo
Router
Distancia
Visitado
Prev.
A
→ 0
F → V
Inicial
B
→ 2
F → V
A
C
→ 9
F → V
B
D
→ 10
F → V
H
E
→ 4
F → V
B
F
→ 6
F → V
E
G
6 → 5
F → V
A → E
H
9 → 8
F → V
G → F
📝
Apartado A
¿En la tabla o cola de prioridad aparece la entrada (H,10) en algún momento? SI / NO

NO, Ni en la tabla ni en la cola aparece el nodo H con una distancia de 10. Por ello, es imposible llegar a H en exactamente 10 de distancia
📝
Apartado B
¿En la tabla o cola de prioridad aparece la entrada (D,12) en algún momento? SI / NO

NO, Ni en la tabla ni en la cola aparece el nodo D con una distancia de 12. Por ello, es imposible llegar a H en exactamente 12 de distancia
📝
Apartado C
¿El algoritmo inserta en la cola de prioridad (es decir, es alcanzable) antes el nodo F o el nodo C?

En el paso 2, el nodo C es insertado en la cola de prioridad por primera vez, mientras que no es hasta el paso 3 cuando se inserta el nodo F por primera vez
📝
Apartado D
¿Cuántas veces cambia el valor de la distancia al nodo H en la tabla teniendo en cuenta que comienza valiendo infinito?

Cambia 2 veces: desde infinito a 9 y desde 9 hasta 8
📝
Apartado E
¿Qué nodo sale de la cola de prioridad el 3º?

El nodo E es el tercero en ser desencolado
📝
Apartado F
¿Y el 6º?

El nodo H es el sexto en ser desencolado
📝
Apartado G
Dibuja el árbol mínimo de camino mínimo partiendo del router A

notion image