MPI-INF/SWS Research Reports 1991-2021

1. Author,Editor - 3. with BibTeX cite keys


Logic programming with pseudo-Boolean constraints

Bockmayr, Alexander

December 1991, 20 pages.

Status: available - back from printing

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 pseudo-Boolean 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 {\em CLP(PB)} for logic progamming with pseudo-Boolean constraints. The language is an instance of the general constraint logic programming language scheme {\em 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 well-known Boolean unification algorithm of B\"uttner and Simonis.

  • MPI-I-91-227.pdfMPI-I-91-227.pdfMPI-I-91-227.dvi
  • Attachement: MPI-I-91-227.dvi (82 KBytes); MPI-I-91-227.pdf (132 KBytes)

URL to this document:

Hide details for BibTeXBibTeX
  AUTHOR = {Bockmayr, Alexander},
  TITLE = {Logic programming with pseudo-Boolean constraints},
  TYPE = {Research Report},
  INSTITUTION = {Max-Planck-Institut f{\"u}r Informatik},
  ADDRESS = {Im Stadtwald, D-66123 Saarbr{\"u}cken, Germany},
  NUMBER = {MPI-I-91-227},
  MONTH = {December},
  YEAR = {1991},
  ISSN = {0946-011X},