# Constraint Integer Programming - A New Approach To

```Constraint Integer Programming
A New Approach To Integrate CP and MIP
Timo Berthold
Zuse Institute Berlin
joint work with T. Achterberg, S. Heinz, T. Koch, K. Wolter
DFG Research Center MATHEON
Mathematics for key technologies
Paris, 05/21/2008
CP vs. MIP
Constraint Programming (CP)
. Domains of variables are (arbitrary) sets
. Constraints are (arbitrary) subsets of domain space
. High flexibility in modeling, natural but very general concept
Mixed Integer Programming (MIP)
Q Z
. Domains are intervals in
or
. Constraints and objective function are linear
. Highly structured, specialized algorithms, restricted modeling
T. Berthold: Constraint Integer Programming
2 / 14
Integration: CIP
Constraint Integer Programming (CIP)
. Linear objective function
. Arbitrary constraints, but . . .
. fixing all integer variables always leaves LP (as in MIP)
Relation to CP and MIP
. Every MIP is a CIP.
. Every CP over a finite domain space is a CIP.
T. Berthold: Constraint Integer Programming
3 / 14
Example: TSP for n Cities
CP-formulation:
min
length(x)
s.t.
alldiff(x1 , . . . , xn )
x ∈ {1, . . . , n}n
MIP-formulation:
min
s.t.
P
Pe∈E
d e xe
e∈δ(v ) xe
P
e∈δ(S) xe
=2
∀v ∈ V
≥2
∀ S ⊂ V , S 6= ∅
xe ∈ {0, 1}
CIP-formulation:
min
s.t.
P
Pe∈E
∀e ∈ E
d e xe
e∈δ(v ) xe
=2
∀v ∈ V
nosubtour(x)
xe ∈ {0, 1}
∀e ∈ E
Single nosubtour constraint rules out subtours (e.g. by domain propagation).
may also separate subtour elimination inequalities.
T. Berthold: Constraint Integer Programming
4 / 14
What is SCIP?
SCIP (Solving Constraint Integer Programs) . . .
. is a branch-and-bound framework,
. is constraint based,
. incorporates
I
I
I
.
.
.
.
CP features (domain propagation),
MIP features (cutting planes, LP relaxation), and
SAT-solving features (conflict analysis, restarts),
has a modular structure via plugins,
provides a full-scale MIP solver,
and is available in source-code under http://scip.zib.de !
T. Berthold: Constraint Integer Programming
5 / 14
Flowchart of SCIP
Start
Presolving
Init
Domain propagation
Stop
Solve Relaxation
Node selection
Conflict analysis
Pricing
CIP feas.
Cuts
Relax. inf.
Primal heuristics
Processing
Enforce constraints
CIP inf.
Relax. feas.
Branching
T. Berthold: Constraint Integer Programming
6 / 14
Presolving
. Simplify model, remove redundant parts
. Strenghten formulation
. Extract information, recognize structure
Techniques
. Variables: dual fixing, bound strengthening
. Restarts: abort search, reapply global presolving
T. Berthold: Constraint Integer Programming
7 / 14
Cutting Plane Separators
. Strengthen relaxation
. Generate on demand
Techniques
. General (for MIP): Gomory, c-MIR, strong Chv&aacute;tal-Gomory, implied
bounds, {0, 21 }-cuts, . . .
. Problem Specific: clique, knapsack, flow cover, MCF, . . .
T. Berthold: Constraint Integer Programming
8 / 14
Branching Rules
. Divide into subproblems
. Improve local dual bounds
. Early branchings most important!
Techniques
. Branching on Variables: most infeasible, pseudocost, strong,
reliability, inference branching
. Branching on Constraints: SOS1, SOS2 branching
T. Berthold: Constraint Integer Programming
9 / 14
Primal Heuristics
. Improve primal bound
. Effective on average, but no warranty
. Solutions guide remaining search
Techniques
.
.
.
.
Rounding: set fractional variables to feasible integral values
Diving: simulate DFS in the branch-and-bound tree
Objective diving: manipulate objective function
LargeNeighborhoodSearch: solve some sub-CIP
T. Berthold: Constraint Integer Programming
10 / 14
Some More Ingredients
Further Components for Solving CIPs
.
.
.
.
Node selection: which subproblem should be considered next?
Propagation: simplifies problem, improves dual bound locally
Pricing: allows dynamic generation of variables
Conflict analysis: learns from infeasible subproblems
T. Berthold: Constraint Integer Programming
11 / 14
Some More Ingredients
Further Components for Solving CIPs
.
.
.
.
Node selection: which subproblem should be considered next?
Propagation: simplifies problem, improves dual bound locally
Pricing: allows dynamic generation of variables
Conflict analysis: learns from infeasible subproblems
x1
x2
x3
x1
alldiff
⇒
x4
T. Berthold: Constraint Integer Programming
x2
x3
x4
11 / 14
Some More Ingredients
Further Components for Solving CIPs
.
.
.
.
Node selection: which subproblem should be considered next?
Propagation: simplifies problem, improves dual bound locally
Pricing: allows dynamic generation of variables
Conflict analysis: learns from infeasible subproblems
x1
x2
x3
x1
alldiff
⇒
x4
T. Berthold: Constraint Integer Programming
x2
x3
x4
11 / 14
SCIP as a MIP solver
10.7x
3000
8.0x
2000
1000
commercial
11.7x
noncommercial
Time in seconds
4000
1.41x 1.21x 1.00x 1.70x
0
not solved
68%
74%
63%
16%
16%
12%
41%
0.32x 0.09x
1%
Symphony 5.1.6
lpsolve 5.5
GLPK 4.26
CBC 2.1
SCIP 1.00 – SoPlex 1.3.2
SCIP 1.00 – CLP 1.7
Minto 3.1 – Cplex 9
SCIP 1.00 – Cplex 11.01
Cplex 11.01
1%
Results taken from Hans Mittelmann (04/19/2008)
http://plato.asu.edu/ftp/milpf.html
T. Berthold: Constraint Integer Programming
12 / 14
Application: Chip Design Verification
Specification
describes input/
output behavior
?
⇔
T. Berthold: Constraint Integer Programming
Design
formal
representation
13 / 14
Application: Chip Design Verification
?
⇔
Specification
describes input/
formal
representation
⇒
⇐
output behavior
Design
Property Checking
Property
Property checking
.
.
.
.
Derive certain properties from specification
Check whether they hold for the design
Can be modeled as SAT instance or as CIP
T. Berthold: Constraint Integer Programming
13 / 14
Property Checking via CIP
CIP versus SAT
I
I
I
I
I
subtraction
multiplication
shift left / right
...
. SAT has only one
constraint type
T. Berthold: Constraint Integer Programming
Running time
2h
. CIP has constraints for
standard operations:
SAT
3
2
h
1h
1
2
h
CIP
5
10
15
20
25
30
35
40
Register width
Constraints 422
Variables
3714
152026
50756
14 / 14
Constraint Integer Programming
A New Approach To Integrate CP and MIP
Timo Berthold
Zuse Institute Berlin
joint work with T. Achterberg, S. Heinz, T. Koch, K. Wolter
DFG Research Center MATHEON
Mathematics for key technologies
Paris, 05/21/2008
```