Efektívne hľadanie viacerých najkratších ciest v orientovanom ohodnotenom grafe pomocou Dijkstrovho algoritmu v C# .NET aplikácii
Keywords:
orientovaný ohodnotený graf, najkratšie cesty v grafe, prioritná fronta, Dijkstrov algoritmus, viacvláknové vyhľadávanie, paralelné vyhľadávanieAbstract
Dijkstra's algorithm is often used in various routing software, such as e.g. applications finding the shortest paths in the routing of packets by particular routers in computer networks represented by edge-weighted directed graphs. It can also be used to find the shortest paths in electronic road maps. We were interested in how to find efficiently several shortest paths in an edge-weighted directed graph using Dijkstra's algorithm. We have created a console C# .NET application that can use its instance method with implemented Dijkstra's algorithm to find several shortest paths in an edge-weighted directed graph in serial, on multiple threads and in parallel. In this paper, we deal with the execution efficiency of all three ways of finding and search for the most effective of them. We assume that the most efficient way to find several such shortest paths should be a parallel finding. The experiment we performed using our console C# .NET application will confirm or refute this hypothesis.References
[1] Košťál, I. (2020). Vplyv dátovej štruktúry použitej pre ukladanie dát grafu na exekučnú efektívnosť metód hľadajúcich v ňom najkratšie cesty pomocou Dijkstrovho algoritmu. AIESA 2020 medzinárodná vedecká konferencia. AIESA - Budovanie spoločnosti založenej na vedomostiach. Bratislava: Letra Edu.
[2] Niemann, T. (1999). Sorting and Searching Algorithms. epaperpress.com.
[3] Oumghar, K. (2015, December 22). Graphs and Dijkstra’s Algorithm (C#). Retrieved August 30, 2020, from
https://simpledevcode.wordpress.com/2015/12/22/graphs-and-dijkstras-algorithm-c/.
[4] Sedgewick, R. (1998). Algorithms in C parts 1-4. Fundamentals, data structures, sorting, searching. Addison-Wesley Publishing Company, Inc.
[5] Sedgewick, R. (2018). Algorithms, 4th Edition. Retrieved January 12, 2021, from
https://algs4.cs.princeton.edu/home/
[2] Niemann, T. (1999). Sorting and Searching Algorithms. epaperpress.com.
[3] Oumghar, K. (2015, December 22). Graphs and Dijkstra’s Algorithm (C#). Retrieved August 30, 2020, from
https://simpledevcode.wordpress.com/2015/12/22/graphs-and-dijkstras-algorithm-c/.
[4] Sedgewick, R. (1998). Algorithms in C parts 1-4. Fundamentals, data structures, sorting, searching. Addison-Wesley Publishing Company, Inc.
[5] Sedgewick, R. (2018). Algorithms, 4th Edition. Retrieved January 12, 2021, from
https://algs4.cs.princeton.edu/home/
Downloads
Published
2021-12-17
Issue
Section
Articles