Constraint Satisfaction in Distributed Concurrent Logic Programming - LEUNG, HO-FUNG; CLARK, KEITH L. (Journal of symbolic computation, 1996)
In constraint logic programming, unification is replaced by more general constraint satisfaction. To support constraint solving in a committed-choice concurrent logic programming language, the constraint solver also needs to determine the status of the ‘ask’-constraints with respect to the current constraint store. In a distributed system, in which ‘ask’- and ‘tell’-constraints are generated incrementally and concurrently on different nodes,the constraint solver needs to face a distributed constraint store. When some constraints are ‘local’ to a node, it is most desirable that they are solved ‘locally’ In this paper we first describe a prototype distributed concurrent constraint logic programming language D/C-Parlogwhich allows incremental and concurrent generation of constraints on different nodes in a distributed system. Then we describe, in the framework of D/C-Parlog, algorithms for distributed constraint satisfaction problems in the domains of Real numbers and Boolean rings. When the number of nodes reduces to one, these algorithms degenerate to existing centralised constraint satisfaction algorithms such as those used in CLP (R) and CHIP. The algorithm supports both ‘ask’-constraints that appear in the guard and ‘tell’-constraints in the body. Some implementation issues are discussed.