The Floyd-Warshall Algorithm for Shortest Paths
نویسندگان
چکیده
The Floyd-Warshall algorithm [Flo62, Roy59, War62] is a classic dynamic programming algorithm to compute the length of all shortest paths between any two vertices in a graph (i.e. to solve the all-pairs shortest path problem, or APSP for short). Given a representation of the graph as a matrix of weights M , it computes another matrix M ′ which represents a graph with the same path lengths and contains the length of the shortest path between any two vertices i and j. This is only possible if the graph does not contain any negative cycles. However, in this case the Floyd-Warshall algorithm will detect the situation by calculating a negative diagonal entry. This entry includes a formalization of the algorithm and of these key properties. The algorithm is refined to an efficient imperative version using the Imperative Refinement Framework.
منابع مشابه
The Floyd-Warshall algorithm on graphs with negative cycles
The Floyd-Warshall algorithm is a simple and widely used algorithm to compute shortest paths between all pairs of vertices in an edge weighted directed graph. It can also be used to detect the presence of negative cycles. We will show that for this task many existing implementations of the Floyd-Warshall algorithm will fail because exponentially large numbers can appear during its execution.
متن کاملVerilog Implementation of a System for Finding Shortest Path by Using Floyd-Warshall Algorithm
There are several applications in VLSI technology that require high-speed shortest-path computations. The shortest path is a path between two nodes (or points) in a graph such that the sum of the weights of its constituent edges is minimum. Floyd-Warshall algorithm provides fastest computation of shortest path between all pair of nodes present in the graph. With rapid advances in VLSI technolog...
متن کاملGeneral Parallel Computation on Commodity Graphics Hardware: Case Study with the All-Pairs Shortest Paths Problem
Programmability and IEEE-standard floating point arithmetic makes the latest commodity graphics processors (GPUs) an attractive platform for general parallel computing. In this paper we describe the implementation of the Warshall-Floyd algorithm on a class of GPUs. All-pairs shortest paths problem is relevant to many practical applications. Efficient GPU implementation of the Warshall-Floyd alg...
متن کاملA Multi-Stage CUDA Kernel for Floyd-Warshall
We present a new implementation of the Floyd-Warshall AllPairs Shortest Paths algorithm on CUDA. Our algorithm runs approximately 5 times faster than the previously best reported algorithm. In order to achieve this speedup, we applied a new technique to reduce usage of on-chip shared memory and allow the CUDA scheduler to more effectively hide instruction latency.
متن کاملCMSC 451 : Lecture 13 All - Pairs Shortest Paths and the Floyd - Warshall Algorithm
All-Pairs Shortest Paths: Earlier, we saw that Dijkstra’s algorithm and the Bellman-Ford algorithm both solved the problem of computing shortest paths in graphs from a single source vertex. Suppose that we want instead to compute shortest paths between all pairs of vertices. We could do this applying either Dijkstra or Bellman-Ford using every vertex as a source, but today we will consider an a...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Archive of Formal Proofs
دوره 2017 شماره
صفحات -
تاریخ انتشار 2017