The resource constrained shortest path problem implemented in a lazy functional language

The resource constrained shortest path problem is an NP-hard problem for which many ingenious algorithms have been developed. These algorithms are usually implemented in FORTRAN or another imperative programming language. We have implemented some of the simpler algorithms in a lazy functional language. Benefits accrue in the software engineering of the implementations. Our implementations have been applied to a standard benchmark of data files, which is available from the Operational Research Library of Imperial College, London. The performance of the lazy functional implementations, even with the comparatively simple algorithms that we have used, is competitive with a reference FORTRAN implementation.

[1]  F. Glover,et al.  In Modern Heuristic Techniques for Combinatorial Problems , 1993 .

[2]  Peter G. Harrison,et al.  Functional Programming , 1988 .

[3]  David S. Wise,et al.  Graph algorithms in a lazy functional programming language , 1991 .

[4]  E. Kay,et al.  Graph Theory. An Algorithmic Approach , 1975 .

[5]  Y. P. Aneja,et al.  Shortest chain subject to side constraints , 1983, Networks.

[6]  C. Reeves Modern heuristic techniques for combinatorial problems , 1993 .

[7]  Rachel Harrison Abstract data types in standard ML , 1993, Wiley professional computing.

[8]  Simon L. Peyton Jones,et al.  Report on the programming language Haskell: a non-strict, purely functional language version 1.2 , 1992, SIGP.

[9]  Celia A. Glass,et al.  Dynamic programming in a pure functional language , 1993, SAC '93.

[10]  D. A. Turner,et al.  Miranda: A Non-Strict Functional language with Polymorphic Types , 1985, FPCA.

[11]  Philip Wadler,et al.  Comprehending monads , 1990, LISP and Functional Programming.

[12]  Gabriel Y. Handler,et al.  A dual algorithm for the constrained shortest path problem , 1980, Networks.

[13]  John Hughes,et al.  Lazy Memo-functions , 1985, FPCA.

[14]  Nicos Christofides,et al.  An algorithm for the resource constrained shortest path problem , 1989, Networks.

[15]  John Launchbury,et al.  Functional Graph Algorithms with Depth-First Search (Preliminary Summary) , 1993, Functional Programming.

[16]  Kevin Hammond,et al.  Spiking Your Caches , 1993, Functional Programming.

[17]  Pieter H. Hartel,et al.  Compilation of functional languages using flow graph analysis , 1994, Softw. Pract. Exp..

[18]  Jack J. Dongarra,et al.  Performance of various computers using standard linear equations software in a FORTRAN environment , 1988, CARN.