Branch and Infer: A Unifying Framework for Integer and Finite Domain Constraint Programming
INFORMS journal on computing
We introduce branch and infer, a unifying framework for integer linear programming and finite domain constraint programming. We use this framework to compare the two approaches with respect to their modeling and solving capabilities, to introduce symbolic constraint abstractions into integer programming, and to discuss possible combinations of the two approaches. C ombinatorial problems are ubiquitous in many real world applications like scheduling, planning, transportation, assignment, and
... others. Besides special purpose algorithms to compute exact or approximate solutions, there exist also general approaches to solve this kind of problem. We are interested here in two such approaches: • Integer linear programming (ILP) • Finite domain constraint programming (CP(FD)) Modeling Combinatorial Problems in ILP and CP(FD) When we solve a combinatorial problem on a computer, we first need a language to formulate the problem. For example, this can be a modeling language from mathematical programming, like AMPL or GAMS,  or a high-level programming language from computer science, like CHIP,  CLAIRE,  ECLIPSE,  ILOG solver,  2LP,  OZ,  or PRO-LOG IV. In order to clarify the relationship of the constraint languages underlying ILP and CP(FD), we propose to use Subject classifications: Constraint programming. Other key words: Integer programming, computational logic, semantics, branch and bound.