Ejercicio 4 - Mayo 2021
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
- Distancia al nodo inicial
=0
, visitadoTrue
y nodo previo no aplica (N/A)
- Anotamos sus vecinos en la cola de prioridad
En bucle hasta que todos estén visitados o se vacíe la cola
- Extraemos el nodo más cercano sin visitar de la cola de prioridad
- Anotamos la nueva distancia y el nodo previo (si es mejor) y los marcamos como visitado
- 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 visitadosFin del algoritmo
Router | Distancia | Visitado | Prev. |
A | Inicial | ||
B | A | ||
C | B | ||
D | H | ||
E | B | ||
F | E | ||
G | |||
H |
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