Skip to main content

An Exhaustive-Search Method Using Layered Streams Obtained Through a Meta-Interpreter for Chain Programs

  • Conference paper
  • First Online:
Logic-Based Program Synthesis and Transformation (LOPSTR 1998)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1559))

  • 210 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

References

  1. 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.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. Evan Tick. Parallel Logic Programming. MIT Press, 1991.

    Google Scholar 

  4. Kazunori Ueda. Making exhaustive search programs deterministic. New Generation Computing, 5:29–44, 1987.

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics