## The resource constrained shortest path problem implemented in a lazy functional language (1994)

### Cached

### Download Links

- [eprints.ecs.soton.ac.uk]
- [ftp.wins.uva.nl]
- DBLP

### Other Repositories/Bibliography

Venue: | Journal of Functional Programming |

Citations: | 4 - 0 self |

### BibTeX

@TECHREPORT{Hartel94theresource,

author = {Pieter H. Hartel and Hugh Glaser},

title = {The resource constrained shortest path problem implemented in a lazy functional language},

institution = {Journal of Functional Programming},

year = {1994}

}

### OpenURL

### Abstract

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.

### Citations

137 |
Graph Theory, An Algorithmic Approach
- Christofides
- 1975
(Show Context)
Citation Context ...he resource consumption. path cost resource [1, 3,5] 7 〈0,5〉 [1, 2,3, 5] 9 〈5,6〉 [1, 3,4, 5] 12 〈2,5〉 [1, 2,3, 4,5] 14 〈7,6〉 A simple solution to RCSP works by solving the p-th shortest path problem (=-=Christofides, 1975-=-). The function g : V → (R k × C) enumerates all paths, for example in order of increasing cost: g(j) = � {g(i) + (�rij, cij) | i ∈ V ∧ (i, j) ∈ E}, if j �= 1 g(1) = {(�0, 0)} From the set of solution... |

86 |
Using circular programs to eliminate multiple traversals of data
- Bird
- 1984
(Show Context)
Citation Context ...al node. The graphs being traversed are acyclic, therefore it is safe for the array paths_ar to be defined in terms of itself. This is a standard technique in lazy functional programming (knot tying (=-=Bird, 1984-=-)). In any other language one would have to resort to a topological sorting of the array, thus working out explicitly the dependencies in the network. Using a lazy functional language gives an edge ov... |

70 |
A dual algorithm for the constrained shortest path problem
- Handler, Zang
- 1980
(Show Context)
Citation Context ...that certain constraints are satisfied. We consider this an interesting problem because it provides a challenge to a functional programmer. There are three reasons for this. Firstly, RCSP is NP-hard (=-=Handler and Zang, 1980-=-). Good heuristics are thus required so that on a practical problem size an answer may be found in a reasonable amount of time. This makes RCSP an interesting problem in general. Because lazy function... |

67 |
editors]: Report on the Programming Language Haskell 98 - A Non-strict, Purely Functional Language
- Jones, Hughes, et al.
- 1999
(Show Context)
Citation Context ...the programs is Intermediate (Hartel et al., 1991), which is a variant of Miranda† (Turner, 1985). One of the extensions consists of the support for monolithic arrays with O(1) access, as in Haskell (=-=Hudak et al., 1992-=-). Here are two examples of array primitives. Double angular brackets are used † Miranda is a trademark of Research Software Ltd.s6 P.H. Hartel and H. Glaser to denote an array thus: 〈〈al . . .au〉〉. A... |

55 |
Lazy Memo-Functions
- Hughes
- 1985
(Show Context)
Citation Context ...kes place during the evaluation of f, which means that for every possible argument pair, the function value must be remembered. In functional programming circles this technique is known as memoising (=-=Hughes, 1985-=-). To use f as a basis for implementing RCSP would be prohibitively expensive, because it is too time and space consuming to remember all possible argument value pairs for f.sThe resource constrained ... |

47 |
An algorithm for the resource constrained shortest path problem, Networks 19
- Beasley, Christofides
- 1989
(Show Context)
Citation Context ... data sets are available via anonymousftp from the Operational Research Library of Imperial College, London. Timings of reference FORTRAN implementation of RCSP on these data sets are also available (=-=Beasley and Christofides, 1989-=-). This makes it possible to compare lazy functional implementations to a reference implementation. We are not alone in our attempt to investigate the advantages and disadvantages of lazy functional p... |

21 |
Shortest chain subject to side constraints
- Aneja, Aggarwal, et al.
- 1983
(Show Context)
Citation Context ...inimum amount of resource necessary to travel from a particular node to the initial node. This information can be computed by the unconstrained shortest path algorithm, but in the opposite direction (=-=Aneja et al., 1983-=-). The most effective way to do that is by generating a new graph from the old graph, with all the edges reversed. Using a reversed graph as well as the original graph is necessary to be able efficien... |

20 | Compilation of functional languages using flow graph analysis. Software—practice and experience - Hartel, Glaser, et al. - 1994 |

12 | Spiking your caches
- Hammond, Burn, et al.
- 1993
(Show Context)
Citation Context ...ormance of 4.3 Mflop/s. The numbers reported for the SUN system in Table 3 have to be interpreted with care, because the margin of error is perhaps as large as 50%. As other researchers in the field (=-=Hammond et al., 1993-=-), we have observed on various occasions that an insignificant change to a program, such as the removal of the source of an unused function, caused a significant change in performance. However, the nu... |

7 |
Abstract Data Types in Standard ML
- Harrison
- 1993
(Show Context)
Citation Context ...y interesting problem in the lazy functional context. Secondly, a solution to RCSP requires a graph algorithm. These are considered difficult to implement efficiently in a purely functional language (=-=Harrison, 1993-=-). The available techniques are not always easy to apply, but we think that this is because of the imperative way programmers reason about graph algorithms. Our solutions are perfectly straightforward... |

5 | Functional graph algorithms with depth- rst search - King, Launchbury - 1993 |

2 | Reeves (ed.). Modern heuristic techniques for combinatorial problems - R - 1993 |