B-Prolog supports constraints over four different types of domains: finite-domains, Boolean domains, trees, and finite sets. The symbol #= is used to represent equality, and #\= is used to represent inequality for all four types of domains. At run-time, the system determines which solver it should call, based on the types of the arguments. In addition to the four types of domains, B-Prolog provides a declarative interface to linear programming (LP) and mixed programming (MIP) packages, through which LP/MIP problems can be described in a CLP fashion. Currently, the GLPK13.1 and CPLEX13.2 packages are supported.13.3 This chapter describes the four types of constraint domains, as well as the linear programming interface. There are a number of books devoted to constraint solving and constraint programming (e.g., [5,13,7,12]).


Neng-Fa Zhou 2013-01-25