Abstract
Okumura and Matsumoto have published [1] examples of logic programs using a data structure they call “layered stream,” especially suited for completely traversing a search space in a deterministic manner [2,4]. A layered stream is a representation of a list of lists, in which common heads of adjacent sublists have been factored. This factorization allows the pruning of several branches of the search space in constant time and is also a source of parallelism [3, p. 147]. The published examples include the N-queen problem and “instant insanity” (a precursor of Rubik’s cube). Each such deterministic, layered-stream program supposedly performs exhaustive search over the space generated by some nondeterministic, naive program. However, a method converting a non-deterministic program into a corresponding exhaustive-search, layered-stream version has not yet been proposed, as far as we know. Layered streams have thus remained difficult to use [3, p. 408], since the programmer must be concerned both about factorization of heads and exhaustive search. We build upon the work of Okumura and Matsumoto by showing how to translate nondeterministic programs into exhaustive-search, layered-stream form. Our method is restricted to generate-and-test programs fitting a certain schema.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Akira Okumura and Yuji Matsumoto. Parallel programming with layered streams. In Proceedings of the 1987 Symposium on Logic Programming, pages 224–231, San Francisco, California, U.S.A., 1987. Lecture Notes in Computer Science 348.
H. Tamaki. Stream-based compilation of ground I/O Prolog into committed-choice languages. In Proceedings of the Fourth International Conference on Logic Programming, pages 376–393, Melbourne, Australia, 1987.
Evan Tick. Parallel Logic Programming. MIT Press, 1991.
Kazunori Ueda. Making exhaustive search programs deterministic. New Generation Computing, 5:29–44, 1987.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Rosenblueth, D.A. (1999). An Exhaustive-Search Method Using Layered Streams Obtained Through a Meta-Interpreter for Chain Programs. In: Flener, P. (eds) Logic-Based Program Synthesis and Transformation. LOPSTR 1998. Lecture Notes in Computer Science, vol 1559. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48958-4_22
Download citation
DOI: https://doi.org/10.1007/3-540-48958-4_22
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65765-1
Online ISBN: 978-3-540-48958-0
eBook Packages: Springer Book Archive