On the sequential nature of unification
Journal of Logic Programming
Programming in Prolog (2nd ed.)
Programming in Prolog (2nd ed.)
Data structures and network algorithms
Data structures and network algorithms
An overview of computational complexity
Communications of the ACM
Computers and Intractability: A Guide to the Theory of NP-Completeness
Computers and Intractability: A Guide to the Theory of NP-Completeness
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
An ideal model for recursive polymorphic types
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Parallelism in random access machines
STOC '78 Proceedings of the tenth annual ACM symposium on Theory of computing
Survey on special purpose computer architectures for AI
ACM SIGART Bulletin
New Classes for Parallel Complexity: A Study of Unification and Other Complete Problems for P
IEEE Transactions on Computers
Parallelism and algorithms for algebraic manipulation: current work
ACM SIGSAM Bulletin
Unification: a multidisciplinary survey
ACM Computing Surveys (CSUR)
Improved parallel algorithms for the depth-first search and monotone circuit value problems
CSC '87 Proceedings of the 15th annual conference on Computer Science
Parallel inference search in logical calculus based on the algebraic programming system
Cybernetics and Systems Analysis
Hi-index | 0.00 |
Unification is a basic operation in theorem proving, in type inference algorithms, and in logic programming languages such as Prolog. Prolog will play a major role in software development for the Fifth Generation project, and thus developing fast algorithms for unification is an important goal. This paper shows that the running time for a linear unification algorithm can often be improved substantially by use of parallel processing. The same is true for algorithms for some other complete problems in P, namely, the monotone circuit value problem and the path system accessibility problem. Previous theoretical work in computational complexity has suggested that these problems are not parallelizable; in practice this is not the case. To resolve this paradox, we introduce new complexity classes PC and PC* that capture the practical notion of parallelizability we discuss in this paper. We pose several open questions concerning PC and PC*.