A fast algorithm for All-Pairs-Shortest-Paths suitable for neural networks

Abstract

Given a directed graph of nodes and edges connecting them, a common problem is to find the shortest path between any two nodes. Here I show that the shortest path distances can be found by a simple matrix inversion: If the edges are given by the adjacency matrix AijA_{ij} then with a suitably small value of Ξ³\gamma the shortest path distances are Dij=ceil⁑(log⁑[(1βˆ’Ξ³A)βˆ’1]ijlog⁑γ) D_{ij} = \operatorname{ceil} \left( {\frac{\log {\left[ {\left({\mathbf{1}}-\gamma {\mathbf{A}}\right)^{-1}} \right]}_{ij}}{\log \gamma}} \right) I derive some bounds on Ξ³\gamma useful for a practical application. Even when the distance function is not globally accurate across the entire graph, it still works locally to instruct pursuit of the shortest path. In this mode, it also extends to weighted graphs with positive edge weights. For a wide range of dense graphs this distance function is computationally faster than the best available alternative. Finally I show that this method leads naturally to a neural network solution of the all-pairs-shortest-path problem.Comment: 11 pages, 4 figures, see also https://github.com/markusmeister/APS

    Similar works

    Full text

    thumbnail-image

    Available Versions