Concurrent applicative implementations of nondeterministic algorithms

  • Authors:
  • Richard Salter

  • Affiliations:
  • Mathematics Department, Oberlin College, Oberlin, OH 44074, U.S.A.

  • Venue:
  • Computer Languages
  • Year:
  • 1983

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this paper we introduce a methodology for utilizing concurrency in place of backtracking in the implementation of nondeterministic algorithms. This is achieved in an applicative setting through the use of the Friedman-Wise multiprogramming primitive frons, and a paradigm which views the action of nondeterministic algorithms as one of data structure construction. The element by element nondeterminism arising from a linearized search is replaced by a control structure which is oriented towards constructing sets of partial computations. This point of view is facilitated by the use of suspensions, which allow control disciplines to be embodied in the form of conceptual data structures that in reality manifest themselves only for purposes of control. We apply this methodology to the class of problems usually solved through the use of simple backtracking (e.g. ''eight queens''), and to a problem presented by Lindstrom to illustrate the use of coroutine controlled backtracking, to produce backtrack-free solutions. Our solution to the latter illustrates the coroutine capability of suspended structures, but also demonstrates a need for further investigations into resolving problems of process communication in applicative languages.