Programación 3: caminos más cortos con un solo origen

26
Caminos más cortos con un solo origen Emily Arteaga García

Transcript of Programación 3: caminos más cortos con un solo origen

Page 1: Programación 3: caminos más cortos con un solo origen

Caminos más cortos con un solo origen

Emily Arteaga García

Page 2: Programación 3: caminos más cortos con un solo origen

Contenido

Introducción Algoritmo de Dijkstra Codificación del Algoritmo de Dijkstra Algoritmo de Floyd Codificación del Algoritmo de Floyd (Conclusiones)Comparación entre el Algoritmo de

Dijkstra y de Floyd Bibliografía

Page 3: Programación 3: caminos más cortos con un solo origen

Introducción

Uno de los problemas que se encuentran en la programación es encontrar el camino más corto entre dos vértices, para este tipo de grafos necesitaremos que sean dirigidos y que sus aristas sean valoradas, así podremos encontrar la mejor ruta para llegar al otro vértice.

Page 4: Programación 3: caminos más cortos con un solo origen

Algoritmo de Dijkstra

El algoritmo de Dijkstra es aquél que encuentra el camino más corto desde un vértice al resto de vértices en un grafo, es un algoritmo ávido (voraz) y que sus aristas deben tener valores no negativos

Entonces:

¿Cómo es este algoritmo?

Page 5: Programación 3: caminos más cortos con un solo origen

https://jariasf.wordpress.com/2012/03/19/camino-mas-corto-algoritmo-de-dijkstra/

Page 6: Programación 3: caminos más cortos con un solo origen

https://jariasf.wordpress.com/2012/03/19/camino-mas-corto-algoritmo-de-dijkstra/

Page 7: Programación 3: caminos más cortos con un solo origen

https://jariasf.wordpress.com/2012/03/19/camino-mas-corto-algoritmo-de-dijkstra/

Page 8: Programación 3: caminos más cortos con un solo origen

https://jariasf.wordpress.com/2012/03/19/camino-mas-corto-algoritmo-de-dijkstra/

Page 9: Programación 3: caminos más cortos con un solo origen

https://jariasf.wordpress.com/2012/03/19/camino-mas-corto-algoritmo-de-dijkstra/

Page 10: Programación 3: caminos más cortos con un solo origen

https://jariasf.wordpress.com/2012/03/19/camino-mas-corto-algoritmo-de-dijkstra/

Page 11: Programación 3: caminos más cortos con un solo origen

https://jariasf.wordpress.com/2012/03/19/camino-mas-corto-algoritmo-de-dijkstra/

Page 12: Programación 3: caminos más cortos con un solo origen

https://jariasf.wordpress.com/2012/03/19/camino-mas-corto-algoritmo-de-dijkstra/

Page 13: Programación 3: caminos más cortos con un solo origen

https://jariasf.wordpress.com/2012/03/19/camino-mas-corto-algoritmo-de-dijkstra/

Page 14: Programación 3: caminos más cortos con un solo origen

https://jariasf.wordpress.com/2012/03/19/camino-mas-corto-algoritmo-de-dijkstra/

Page 15: Programación 3: caminos más cortos con un solo origen

https://jariasf.wordpress.com/2012/03/19/camino-mas-corto-algoritmo-de-dijkstra/

Page 16: Programación 3: caminos más cortos con un solo origen
Page 17: Programación 3: caminos más cortos con un solo origen
Page 18: Programación 3: caminos más cortos con un solo origen

Codificación del Algoritmo de Dijkstra

Page 19: Programación 3: caminos más cortos con un solo origen
Page 20: Programación 3: caminos más cortos con un solo origen
Page 21: Programación 3: caminos más cortos con un solo origen
Page 22: Programación 3: caminos más cortos con un solo origen

Algoritmo de Floyd

Es muy parecido al Algoritmo de Warshall pero en el Algoritmo de Floyd las aristas tienen peso, además de encontrar el camino más corto Floyd lo representa de una manera más elegante y directa que el Algoritmo de Dijkstra. En este algoritmo se generan matrices consecutivas a partir de la primera, en cada paso se incorpora un nuevo vértice y se observa si con ese vértice se puede mejorar los caminos para ser más cortos.

Page 23: Programación 3: caminos más cortos con un solo origen

Codificación del Algoritmo de Warshall

Page 24: Programación 3: caminos más cortos con un solo origen
Page 25: Programación 3: caminos más cortos con un solo origen

(Conclusiones)Comparación entre el Algoritmo de Dijkstra y de Floyd

El Algoritmo de Floyd es muchísimo más eficiente si se trata de encontrar un camino entre todas las parejas de nodos.

Por el contrario el Algoritmo de Dijkstra es mucho más eficiente si se encuentra el camino partiendo de un nodo hacia cualquier nodo del grafo.

Page 26: Programación 3: caminos más cortos con un solo origen

Bibliografía

Luis Joyanes Aguilar, I. Z. (2008). Estructura de Datos en Java. España: MCGRAW-HILL/INTERAMERICANA DE ESPAÑA, S. A. U. .