An intelligent backtracking algorithm for parallel execution of logic programs
In this paper we present a simple but efficient backtracking scheme which works when AND-parallelism is exploited in a logic program. The scheme is well suited for implementation on a parallel hardware. We show that the backtracking scheme presented by Conery and Kibler in the context of AND/OR process model is incorrect, i.e., in some cases it may miss solutions while performing backtracking. Even if no AND-parallelism is exploited (i.e., all literals are solved sequentially), our scheme is more efficient than the "naive" depth-first backtracking strategy used by Prolog because our scheme makes use of the dependencies between literals in a clause. Chang and Despain have recently presented a backtracking scheme which also makes use of the dependencies between literals. We show that our scheme is more efficient than their scheme in the sense that our scheme does less backtracking.
KeywordsLogic Program Execution Algorithm Execution Mode Parallel Hardware Failure Level
Unable to display preview. Download preview PDF.
- 1.Bruynooghe, M. and L. M. Pereira, “Deduction Revision by Intelligent Backtracking,” in Implementations of Prolog, ed. J. A. Campbell, pp. 194–215, Ellis Horwood Limited, 1984.Google Scholar
- 2.Chang, J.-H. and A.M. Despain, “Semi-Intelligent Backtracking of Prolog Based on a Static Data Dependency Analysis,” Proceedings of IEEE Symposium on Logic Programming, pp. 10–21, August, 1985.Google Scholar
- 3.Conery, J.S., “The AND/OR Process Model for Parallel Interpretation of Logic Programs,” Ph.D. Thesis, (Technical Report 204), University of California, Irvine, California, June, 1983.Google Scholar
- 4.Conery, J. S. and D. F. Kibler, “Parallel Interpretation of Logic Programs,” Proceedings of the Conference on Functional Programming Languages and Computer Architecture, pp. 163–170, ACM, October, 1981.Google Scholar
- 5.Conery, J.S. and D.F. Kibler, “AND Parallelism and Nondeterminism in Logic Programs,” New Generation Computing, vol.3(1985), pp. 43–70, OHMSHA,LTD. and Springer-Verlag, 1985.Google Scholar
- 6.Cox, P. T., “Finding Backtrack Points for Intelligent Backtracking,” in Implementations of Prolog, ed. J. A. Campbell, pp. 216–233, Ellis Horwood Limited, 1984.Google Scholar
- 7.Kale, L.V. and D.S. Warren, “A Class of Architectures for a Prolog Machine,” Proceedings of the Second International Logic Programming Conference, pp. 171–182, Uppsala, Sweden, July, 1984.Google Scholar
- 8.Kasif, S. and J. Minker, “The Intelligent Channel: A Scheme for Result Sharing in Logic Programs,” Proceedings of the 9th IJCAI, pp. 29–31, Los Angeles, August, 1985.Google Scholar
- 9.Lin, Y.J. and V. Kumar, “A Decentralized Model for Executing Logic Programs in Parallel,” AI Lab TR, The University of Texas at Austin, Austin, Texas, April, 1986.Google Scholar
- 10.Lin, Y.J., “A Parallel Implementation of Logic Programs,” Ph.D. dissertation, The University of Texas at Austin, Austin, Texas, in preparation.Google Scholar
- 11.Pereira, L. M. and A. Porto, “Selective Backtracking,” in Logic Programming, ed. K. L. Clark and S.-A. Tarnlund, pp. 107–114, Academic Press, 1982.Google Scholar