Transformation techniques for parallel processing of production systems

Rule-based systems or production systems form a general and important computational mechanism of Artificial Intelligence. Nevertheless, the poor performance of production systems on sequential machines has been an impediment to their widespread acceptance. Parallel processing can be effectively used to meet the symbolic processing demands of production systems. Present parallel implementations have not reported substantial speedups. It then becomes necessary to go beyond the apparent parallelism to reveal all parallelism, perhaps, by transforming the production system into an equivalent highly parallel system. In this thesis, transformation techniques to detect and utilize parallelism in production systems are presented. The concept of dependences among rules is used in the analysis to reveal the inherent parallelism and communication requirements. This leads to a procedure for reduction of the search space. The procedure does not exclude the use of heuristics and can be used for sequential or parallel processing. A straightforward parallelization may reduce the height of the search tree but broadens the base exponentially. Another transformation is introduced to shorten the base of the search tree. Composition and decomposition of rules and graph theoretic transformations to further reduce the search space are presented. Partitioning of knowledge base and rules among processors can be done based on dependences. This allocation problem is reduced to 0-1 linear programming. A heuristic algorithm to directly solve the allocation problem is presented. Also, Control in a production system can be distributed. Control, when specified by a context free language, can be transformed into control productions which can be mixed with other productions. Dependence analysis of control productions could lead to 'parallelizing compilers' for production systems. (Copies available exclusively from Micrographics Department, Doheny Library, USC, Los Angeles, CA 90089-0182.)