Anda di halaman 1dari 4

Algoritmo Se usar el algoritmo de Dijkstra, ya que el tiempo de ejecucin es menor al de Floyd(O(n3), y Dijkstra O(|V|2)), por el hecho de usar solo

un nodo de origen. El algoritmo de Bellman-Ford es utilizado solamente para casos en donde existan grafos con los pesos de aristas negativos. La solucin se divide en 3 pasos: 1. Se selecciona un nodo no visitado con la menor distancia acumulada. 2. La distancia acumulada que se tiene hasta el momento se suma a la distancia de las aristas que van dirigidos a los nodos que se pueden acceder. Si en esos nodos a los que se puede acceder existe distancia acumulada, se compara con la nueva, y se conserva la menor. 3. El nodo actual se marca como visitado y se vuelve al primer paso. Con esta informacin se podr conocer la distancia ms corta entre dos pueblos determinados. Para el problema del camino mnimo, se usar los nodos como pueblos, y los pesos de las aristas como la distancia entre dos pueblos vecinos, expresada en Km. Ejemplo: En la figura 1 se puede apreciar un grafo, donde los nodos A, B, C, D, E y F sern pueblos.

Figura 1. Pueblo A como punto de partida En este caso, el pueblo inicial ser el A. La distancia acumulada hasta ahora es 0 Km. Entonces, se procede a aplicar los tres pasos expuestos anteriormente.

Primera Iteracin:

1. El pueblo A es la menor distancia ya que es el inicial. 2. Los siguientes pueblos a los que se puede acceder son al B y C. Como no existe distancia acumulada en ninguno de ellos, entonces la menor distancia ser de 1 Km. y 2 Km. 3. Se marca el pueblo A como visitado. En la figura 2 se puede observar que el pueblo A est tachado, lo que significa que es un pueblo visitado, y el pueblo B es el nuevo a visitar.

Figura 2. El pueblo B tiene la menor distancia acumulada Luego, volvemos al paso 1.

Segunda Iteracin:
1. Se escoge el pueblo con la menor distancia acumulada, en este caso se debe escoger entre B y C, por lo tanto el siguiente pueblo a visitar es el B por tener 1 Km. 2. Los siguientes pueblos que se pueden visitar son el D y E, con 4 Km. y 5 Km. de distancia correspondientemente. Al sumar lo acumulado (1 Km.) a las aristas, las menores distancias para cada caso ser de 5 Km. y 6 Km., ya que no existen distancias acumuladas. 3. Se marca el pueblo B como visitado.

Tercera Iteracin:
1. Ahora, se escoge el pueblo C, debido que es el pueblo con menor distancia acumulada y no visitado. 2. Al nico pueblo que puede acceder es al E, con una distancia de 3 Km., sumado a los 2 Km que tiene acumulado, queda un total de 5 Km., que mejora los 6 Km que estaban acumulados, as que se registra ese nuevo valor.

3. Se marca el pueblo C como visitado.

Figura 3. Pueblo D y E tienen la misma distancia acumulada

Cuarta Iteracin:
1. Como se muestra en la figura 3, el siguiente pueblo a visitar es el E. Aqu se produjo un empate en distancias acumuladas, ya que el pueblo D tiene la misma distancia (5 Km.), as que da lo mismo que pueblo escoger. 2. Al nico pueblo que se puede acceder es al F. Sumando la distancia acumulada ms la distancia de E a F, queda como distancia ms corta 8 Km. 3. Se marca el pueblo E como visitado.

Quinta Iteracin:
1. Ahora se visita el pueblo D que es el nodo no visitado con menor distancia acumulada. 2. Al nico pueblo que se puede acceder es F. Sumando la distancia acumulada ms la distancia de D a F, en total sern 9 Km, pero la distancia acumulada existente es 8 Km., asi que se conservan los 8 Km. 3. Se marca el pueblo D como visitado.

Figura 4. ltima iteracin del algoritmo Finalmente como se puede ver en la figura 4, se visita el ltimo pueblo que no puede acceder a ningn otro, as que solo se marca como visitado. Ya se conocen todas las distancias ms cortas desde el pueblo A al resto de los pueblos. A->B: 1 Km., pasando por A y B. A->C: 2 Km., pasando por A y C. A->D: 5 Km., pasando por A, B y C. A->E: 5 Km., pasando por A, C y E. A->F: 8 Km , pasando por A, C, E y F. Lo siguiente es un pseudocdigo [1] de este algoritmo:

Anda mungkin juga menyukai