Solving optimisation problems in the Aurora or-parallel Prolog system
Aurora is a prototype or-parallel implementation of Prolog for shared memory multiprocessors. It supports the full Prolog language, thus being able to execute existing Prolog programs without any change. There are, however, several application areas where the simple built-in control of Prolog execution hinders efficient exploitation of or-parallelism.
In this paper we discuss the area of optimisation problems, a typical application area of this kind. The efficiency of an optimum search can be dramatically improved by replacing the exhaustive depth-first search of Prolog by more sophisticated control, e.g. the branch-and-bound algorithm or the minimax algorithm with alpha-beta pruning. We develop a generalised optimum search algorithm, covering both the branch-and-bound and the minimax approach, which can be executed efficiently on an or-parallel Prolog system such as Aurora. We define appropriate language extensions for Prolog—in the form of new higher order predicates—to provide a user interface for the general optimum search, describe our experimental implementation and present example application schemes.
KeywordsLogic Programming Programming Methodology Parallel Execution Optimum Search
Unable to display preview. Download preview PDF.
- Alfred V. Aho, John E. Hopcroft, and Jeffrey D. Ullman. Data Structures and Algorithms. Addison-Wesley, 1983.Google Scholar
- Anthony Beaumont, S Muthu Raman, Péter Szeredi, and David H D Warren. Flexible Scheduling of Or-Parallelism in Aurora: The Bristol Scheduler. In PARLE91: Conference on Parallel Architectures and Languages Europe. Springer Verlag, June 1991.Google Scholar
- Ralph Butler, Terry Disz, Ewing Lusk, Robert Olson, Ross Overbeek, and Rick Stevens. Scheduling OR-parallelism: an Argonne perspective. In Logic Programming: Proceedings of the Fifth International Conference, pages 1590–1605. The MIT Press, August 1988.Google Scholar
- Alan Calderwood and Péter Szeredi. Scheduling or-parallelism in Aurora — the Manchester scheduler. In Logic Programming: Proceedings of the Sixth International Conference, pages 419–435. The MIT Press, June 1989.Google Scholar
- Pascal van Hentenryck. Constraint Satisfation in Logic programming. The MIT Press, 1989.Google Scholar
- Ewing Lusk, David H. D. Warren, Seif Haridi, et al. The Aurora or-parallel Prolog system. New Generation Computing, 7(2,3):243–271, 1990.Google Scholar
- T. J. Reynold and P. Kefalas. OR-parallel Prolog and search problems in AI applications. In Logic Programming: Proceedings of the Seventh International Conference, pages 340–354. The MIT Press, 1990.Google Scholar
- V. Santos Costa, D. H. D. Warren, and R. Yang. The Andorra-I Engine: A parallel implementation of the Basic Andorra model. In Logic Programming: Proceedings of the Eighth International Conference. The MIT Press, 1991.Google Scholar
- Vijay A. Saraswat. Concurrent Constraint Programming Languages. PhD thesis, Carnegie-Mellon University, January 1989.Google Scholar
- Leon Sterling and Ehud Shapiro. The Art of Prolog. The MIT Press, 1986.Google Scholar
- Péter Szeredi. Design and implementation of Prolog language extensions for or-parallel systems. Technical Report, SZKI IQSOFT and University of Bristol, December 1990.Google Scholar
- Péter Szeredi. Using dynamic predicates in an or-parallel Prolog system. In Logic Programming: Proceedings of the 1991 International Logic Programming Symposium. The MIT Press, October 1991.Google Scholar
- David H. D. Warren. The SRI model for or-parallel execution of Prolog—abstract design and implementation issues. In Proceedings of the 1987 Symposium on Logic Programming, pages 92–102, 1987.Google Scholar