Algoritmo de Dijkstra - PowerPoint PPT Presentation

1 / 11
About This Presentation
Title:

Algoritmo de Dijkstra

Description:

... consiste en determirar el camino m nimo(m s corto), en un grafo dirigido ... Cuando se obtiene el camino m s corto desde el v rtice origen, al resto de ... – PowerPoint PPT presentation

Number of Views:1084
Avg rating:3.0/5.0
Slides: 12
Provided by: x7423
Category:

less

Transcript and Presenter's Notes

Title: Algoritmo de Dijkstra


1
Algoritmo de Dijkstra
  • 53516538T -gt Daniel Rey López.
  • 71769069F -gt David Rodríguez González.
  • 71768116C -gt Beatriz Menéndez Álvarez.

2
Descripcion del problema.
  • El algoritmo de Dijkstra (algoritmo de caminos
    mínimos), consiste en determirar el camino
    mínimo(más corto), en un grafo dirigido en el
    cual cada arista tiene asignada una longitud no
    negativa, partiendo de un nodo origen hasta el
    resto de nodos del grafo.
  • Cuando se obtiene el camino más corto desde el
    vértice origen, al resto de vértices que componen
    el grafo, el algoritmo se detiene.

3
Limitaciones.
  • El coste para ir de un nodo a si mismo es 0.
  • El coste de un nodo a otro debe ser positivo,
    para indicar que entre dos nodos no hay ninguna
    arista consideramos el coste de esta negativo.

4
Ejemplo.
  • Supongamos el siguiente grafo

5
Ejemplo.
  • Cogemos por ejemplo el nodo N1. La distancia
    acumulada será cero, porque es el primero.
    Comenzamos a aplicar los tres pasos que forman
    nuestro heurístico.
  • 1) El nodo N1 es la menor distancia acumulada
    puesto que es el nodo inicial.
  • 2) Tenemos a N5 una distancia de 1 y a N2 una
    distancia de 5. A N4 y a N3 no podemos acceder
    puesto que no tenemos aristas que nos comuniquen
    con ellos. Puesto que no hay ninguna distancia
    acumulada la menor distancia será 1 y 5.
  • 3) Ponemos N1 como nodo visitado.

6
Ejemplo.
  • 1) Elegimos N5 puesto que es el nodo con menor
    distancia acumulada (N2 tiene 5).
  • 2) Tendremos a N4 una distancia de 11 (1
    acumulado 10 de la arista). A N3 una distancia
    de 4. A N2 no podemos acceder y N1 es nodo
    visitado.
  • 3) Ponemos N5 como nodo visitado.

7
Ejemplo.
  • 1) Elegimos ahora N3 que es el nodo con menos
    valor acumulado. N4 tiene 11 y N2 tiene 5.
  • 2) A N4 tendremos una distancia de 10, que mejora
    los 11 que tenemos acumulados, luego nos quedamos
    con ese valor en lugar del 10. A N2 tenemos una
    distancia de 6 que no mejora el 5, luego seguimos
    con el 5.
  • 3) Marcamos N3 como visitado.

8
Ejemplo.
  • 1) Elegimos N2 puesto que es el nodo no visitado
    con menor distancia acumulada.
  • 2) A N4 tendremos una distancia de 6 que mejora
    los 10 actuales, luego nos quedaremos con el 6.
  • 3) Marcamos N2 como nodo visitado.

9
Ejemplo.
  • Sólo nos queda el último nodo que no puede
    acceder a ningún otro luego lo marcamos también
    como visitado.
  • Ahora tendremos acumuladas en cada nodo la
    distancia más corta desde N1.

10
Complejidad.
  • El método que resuelve el algoritmo consta de dos
    bucles
  • Un bucle While con complejidad O(n), que a su vez
    tiene otro bucle for con complejidad O(n) lo que
    hace que la complejidad total del algoritmo sea
    O(n2 )

11
Código.
  • Wiki
Write a Comment
User Comments (0)
About PowerShow.com