Documente Academic
Documente Profesional
Documente Cultură
MARCOS
Universidad del Perú, DECANA DE AMÉRICA
Facultad de Ingeniería de Sistemas e Informática
Algoritmica 3
1.1 Planteamiento………………………………………………….
3.1 ……………………………………………
4. Codificacion
5. Prueba y depuración
6. Documentacion externa
6. Referencias bibliograficas
1. DEFINICIÓN DEL PROBLEMA:
1.1. PLANTEAMIENTO
Entonces:
Teorema: El algoritmo de Dijkstra realiza O(𝑛2 ) operaciones (sumas y
comparaciones) para determinar la longitud del camino más corto entre dos
vértices de un grafo ponderado simple, conexo y dirigido con n-vértices.
PEQUEÑO EJEMPLO DIDÁCTICO DE DIJKSTRA APLICADO A
NUESTRO CASO
Previamente hay que dejar claro que los nodos podrán tener dos tipos de
propiedades, "TiempoAcumulado" y "CursoAntecesor".
Los valores dentro de los nodos representan los cursos: curso 1=1, curso
2=2, y así sucesivamente dependiendo de cuantos cursos haya.
Y los valores de las aristas representan el espacio de tiempo que hay
entre curso y curso en unidades de tiempo.
PRIMERA ITERACIÓN. Se selecciona un nodo de inicio, en este caso será
el nodo 1(curso 1), y se iniciaran las dos variables de las cuales se ha hablado
antes.
TiempoAcumulado = 0; (puesto que acaba de empezar la iteración)
CursoAntecesor = Nulo; (puesto que no le precede ningún nodo o curso)
Por otro lado, se marcará en el ejemplo (de color lila) las dos propiedades
comentadas con anterioridad. Siguiendo el siguiente patrón:
[TiempoAcumulado, CursoAntecesor].
SEGUNDA ITERACIÓN. Se marcarán todos los nodos adyacentes al nodo 1
inicializando sus variables siguiendo el siguiente patrón:
Para nodo 3
nuevoTiempoAcumulado (nodo 3) =2 + 4 = 6
TiempoAcumulado(nodo3) < nuevoTiempoAcumulado(nodo3)
TiempoAcumulado(nodo3) = 5
CursoAntecesor = 1
Para nodo 4
nuevoTiempoAcumulado (nodo4) = 2 + infinito = infinito
TiempoAcumulado (nodo4) < nuevoTiempoAcumulado (nodo4)
TiempoAcumulado (nodo4) = 3
CursoAntecesor = 1
CUARTA ITERACIÓN. En este caso el nodo 4 es el nodo de menor peso
acumulado, por lo que se centra el proceso en él. (se pinta de verde para
señalar que ya se ha comprobado)
Para nodo 3
nuevoTiempoAcumulado (nodo 3) =3 +1 = 4
TiempoAcumulado (nodo3) > nuevoTiempoAcumulado (nodo3)
TiempoAcumulado (nodo3) = nuevoTiempoAcumulado (nodo3) = 4
CursoAntecesor = 4
Para nodo 5
PesoAcumulado(nodo5) = 3 + 6 = 9
CursoAntecesor = 4
QUINTA ITERACIÓN. En este caso el nodo 3 es el nodo de menor peso
acumulado, por lo que ahora se centra el proceso en él. (se pinta de verde para
señalar que ya se ha comprobado)
Para nodo 5
nuevoTiempoAcumulado (nodo 5) =4 +1 = 5
TiempoAcumulado (nodo5) > nuevoTiempoAcumulado (nodo5)
TiempoAcumulado (nodo5) = nuevoTiempoAcumulado (nodo5) = 5
CursoAntecesor = 3
SOLUCIÓN
De este modo se da por finalizada la exploración del grafo, puesto que todos
los nodos han sido comprobados.
En la situación del grafo del ejemplo, el coste total óptimo en trasladarse des
del nodo 1 al nodo 5 es de 5u (5 unidades de tiempo). Y el camino óptimo
teniendo en cuenta el nodo antecesor en cada situación es 1-4-3-5 que
representan los cursos los cuales se han tomado en cuenta que son: