Controlling search with meta-Brave
We outline the Brave system: a Horn-clause language Brave, a dialect of Prolog designed for OR-parallel execution, plus meta-Brave, containing extra-logical features. Brave has been stripped of Prolog's cut, assert and retract, enforcing a declarative programming style which enables easier parallelisation. However, we need replacements for those predicates, in particular to code parallel versions of search algorithms, where guidance of the search in one subtree requires information from another subtree. Meta-Brave features directives which allow algorithmic knowledge about the domain to be stated independently from the Brave application program. This guidance is provided in three main ways: partial results are selectively remembered (lemmas), conditions of early failure of subproofs are stated (pruning), the style of search is altered (strategies). We show how this combination of features makes the Brave system specially suited to writing clear programs, for example search algorithms taken from Artificial Intelligence. In this paper we investigate how OR-parallelism can be exploited in hill-climbing, genetic algorithms and best-first search. By simulation we analyse the parallelism obtained.
Unable to display preview. Download preview PDF.
- T.J. Reynolds, P.Kefalas “OR-Parallel Prolog and Search Problems in AI Applications”. Proceedings of the 7th International Conference on Logic Programming, ed. D.H.D. Warren and P.Szeredi, MIT Press, pages 340–354,1990Google Scholar
- S. Haridi, P. Brand. “ANDORRA Prolog — An Integration of Prolog and Committed Choice Languages”. Proceedings of the FGCS '88 Conference, ICOT, pages 745–754, 1988Google Scholar
- B. Hausman, A. Ciepielewski, A. Calderwood. “Cut and Side Effects in Or-Parallel Prolog”. Proceedings of the FGCS '88 Conference, ICOT, pages 831–840, 1988Google Scholar
- E. Lusk et al., D.H.D. Warren et. al, S. Haridi et al. “The Aurora OR-Parallel Prolog System”. Proceedings of the FGCS '88 Conference, ICOT, pages 819–830, 1988Google Scholar
- P. Szeredi. “Using Dynamic Predicates in Aurora — a Case Study”. Internal Report, Dept. of Computer Science, University of Bristol, 1990Google Scholar