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, is free for academic purposes, 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 Task . Simplify model, remove redundant parts . Strenghten formulation . Extract information, recognize structure Techniques . Variables: dual fixing, bound strengthening . Constraints: coefficient tightening, upgrading . Restarts: abort search, reapply global presolving T. Berthold: Constraint Integer Programming 7 / 14 Cutting Plane Separators Task . Strengthen relaxation . Add valid constraints . Generate on demand Techniques . General (for MIP): Gomory, c-MIR, strong Chvátal-Gomory, implied bounds, {0, 21 }-cuts, . . . . Problem Specific: clique, knapsack, flow cover, MCF, . . . T. Berthold: Constraint Integer Programming 8 / 14 Branching Rules Task . 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 Task . 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 Leads to feasibility problems 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 addition 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