A Unified Approach to Path Problems

We describe a general method for solving path problems on directed graphs. Such path problems include finding shortest paths, solving sparse systems of linear equations, and carrying out global flow analysis of computer programs. Our method consists of two steps. First, we construct a collection of regular expressions representing sets of paths in the graph. This can be done by using any standard algorithm, such as Gaussian or Gauss-Jordan elimination. Next, we apply a natural mapping from regular expressions into the given problem domain. We exhibit the mappings required to find shortest paths, solve sparse systems of linear equations, and carry out global flow analysis. Our results provide a general-purpose algorithm for solving any path problem, and show that the problem of constructing path expressions is in some sense the most general path problem.

[1]  S C Kleene,et al.  Representation of Events in Nerve Nets and Finite Automata , 1951 .

[2]  Edsger W. Dijkstra,et al.  A note on two problems in connexion with graphs , 1959, Numerische Mathematik.

[3]  Stephen Warshall,et al.  A Theorem on Boolean Matrices , 1962, JACM.

[4]  Stephen J. Garland,et al.  Algorithm 97: Shortest path , 1962, Commun. ACM.

[5]  M. Wilkes Solution of Linear Algebraic Equations , 1966 .

[6]  Arto Salomaa,et al.  Two Complete Axiom Systems for the Algebra of Regular Events , 1966, JACM.

[7]  V. Strassen Gaussian elimination is not optimal , 1969 .

[8]  Jeffrey D. Ullman,et al.  Flow Graph Reducibility , 1972, SIAM J. Comput..

[9]  Gary A. Kildall,et al.  A unified approach to global program optimization , 1973, POPL.

[10]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[11]  Robert E. Tarjan,et al.  Testing flow graph reducibility , 1973, J. Comput. Syst. Sci..

[12]  D. W. Barron A Mathematical Theory of Global Program Optimization , 1974 .

[13]  J. Hopcroft,et al.  Triangular Factorization and Inversion by Fast Matrix Multiplication , 1974 .

[14]  Jeffrey D. Ullman,et al.  Application of lattice algebra to loop optimization , 1975, POPL '75.

[15]  Ben Wegbreit,et al.  Property extraction in well-founded property sets , 1975, IEEE Transactions on Software Engineering.

[16]  R. Backhouse,et al.  Regular Algebra Applied to Path-finding Problems , 1975 .

[17]  Ken Kennedy,et al.  Node listings applied to data flow analysis , 1975, POPL '75.

[18]  Michael L. Fredman,et al.  New Bounds on the Complexity of the Shortest Path Problem , 1976, SIAM J. Comput..

[19]  Robert E. Tarjan,et al.  Iterative algorithms for global flow analysis , 1976 .

[20]  Robert A. Wagner,et al.  A Shortest Path Algorithm for Edge-Sparse Graphs , 1976, J. ACM.

[21]  Jeffrey D. Ullman,et al.  Global Data Flow Analysis and Iterative Algorithms , 1976, J. ACM.

[22]  Mark N. Wegman,et al.  A Fast and Usually Linear Algorithm for Global Flow Analysis , 1976, J. ACM.

[23]  Daniel J. Lehmann,et al.  Algebraic Structures for Transitive Closure , 1976, Theor. Comput. Sci..

[24]  Alfred V. Aho,et al.  Principles of Compiler Design , 1977 .

[25]  Matthew S. Hecht,et al.  Flow Analysis of Computer Programs , 1977 .

[26]  Alfred V. Aho,et al.  Principles of Compiler Design (Addison-Wesley series in computer science and information processing) , 1977 .

[27]  Amelia C. Fong Generalized common subexpressions in very high level languages , 1977, POPL.

[28]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[29]  Donald B. Johnson,et al.  Efficient Algorithms for Shortest Paths in Sparse Networks , 1977, J. ACM.

[30]  Victor Y. Pan,et al.  Strassen's algorithm is not optimal trilinear technique of aggregating, uniting and canceling for constructing fast algorithms for matrix operations , 1978, 19th Annual Symposium on Foundations of Computer Science (sfcs 1978).

[31]  Barry K. Rosen Monoids for Rapid Data Flow Analysis , 1980, SIAM J. Comput..

[32]  Robert E. Tarjan,et al.  Fast Algorithms for Solving Path Problems , 1981, JACM.