Logic Programming with Pseudo-Boolean Constraints
Logic Programming with Pseudo-Boolean Constraints
复制标题
具有伪布尔约束的逻辑编程
DOI:
--
复制
发表时间:
1993
期刊:
影响因子:
--
通讯作者:
A. Bockmayr
中科院分区:
文献类型:
--
作者:
A. Bockmayr
Boolean constraints play an important role in various constraint logic programming languages. In this paper we consider pseudo-Boolean constraints, that is equations and inequalities between pseudo-Boolean functions. A pseudoBoolean function is an integer-valued function of Boolean variables and thus a generalization of a Boolean function. Pseudo-Boolean functions occur in many application areas, in particular in problems from operations research. An interesting connection to logic is that inference problems in propositional logic can be translated into linear pseudo-Boolean optimization problems. More generally, pseudo-Boolean constraints can be seen as a particular way of combining two of the most important domains in constraint logic programming: arithmetic and Boolean algebra. In this paper we define a new constraint logic programming language CLP(PB) for logic progamming with pseudo-Boolean constraints. The language is an instance of the general constraint logic programming language scheme CLP(X) and inherits all the typical semantic properties. We show that any pseudo-Boolean constraint has a most general solution and give variable elimination algorithms for pseudo-Boolean unification and unconstrained pseudo-Boolean optimization. Both algorithms subsume the wellknown Boolean unification algorithm of Buttner and Simonis.