The SCIP Optimization Suite
Total Page:16
File Type:pdf, Size:1020Kb
The SCIP Optimization Suite Gerald Gamrath Zuse Institute Berlin EWO Seminar February 13, 2015 Gerald Gamrath (ZIB): The SCIP Optimization Suite 1 ZIB: Fast Algorithms – Fast Computers Konrad-Zuse-Zentrum für Informationstechnik Berlin I non-university research institute and computing center of the state of Berlin I Research Units: I numerical analysis and modeling I visualization and data analysis I optimization: energy–traffic–telecommunication–linear and nonlinear IP I scientific information systems I distributed algorithms and supercomputing I President: Martin Grötschel I more information: http://www.zib.de Gerald Gamrath (ZIB): The SCIP Optimization Suite 2 ZIB: Fast Algorithms – Fast Computers Konrad-Zuse-Zentrum für Informationstechnik Berlin I non-university research institute and computing center of the state of Berlin I Research Units: I numerical analysis and modeling I visualization and data analysis I optimization: energy–traffic–telecommunication–linear and nonlinear IP I scientific information systems I distributed algorithms and supercomputing I President: Martin Grötschel I more information: http://www.zib.de Gerald Gamrath (ZIB): The SCIP Optimization Suite 2 Outline SCIP –SolvingConstraintIntegerPrograms Constraint Integer Programming Solving Constraint Integer Programs History and Applications http://scip.zib.de Gerald Gamrath (ZIB): The SCIP Optimization Suite 3 What is a Constraint Integer Program? Mixed Integer Program Constraint Program Objective function: Objective function: . linear function . arbitrary function Feasible set: Feasible set: . described by linear constraints . given by arbitrary constraints Variable domains: Variable domains: . real or integer values . arbitrary (usually finite) min cT x min c(x) s.t. Ax ≤ b s.t. x ∈ F I C I (xI , xC ) ∈ Z × R (xI , xN ) ∈ Z × X Gerald Gamrath (ZIB): The SCIP Optimization Suite 4 What is a Constraint Integer Program? Constraint Integer Program Objective function: . linear function min cT x Feasible set: s.t. x ∈ F I C . described by arbitrary constraints (xI , xC ) ∈ Z × R Variable domains: Remark: . real or integer values I arbitrary objective or variables When all integer variables fixed: modeled by constraints . CIP becomes an LP Gerald Gamrath (ZIB): The SCIP Optimization Suite 5 CIP I SATisfiability problems I Pseudo-Boolean Optimization I Finite Domain SAT PBO FD CP I Constraint Programming I Constraint Integer Programming Relation to CP and MIP I Every MIP is a CIP. “MIP ( CIP” I Every CP over a finite domain space is a CIP. “FD ( CIP” Constraint Integer Programming I Mixed Integer Programs MIP Gerald Gamrath (ZIB): The SCIP Optimization Suite 6 CIP I Pseudo-Boolean Optimization I Finite Domain PBO FD CP I Constraint Programming I Constraint Integer Programming Relation to CP and MIP I Every MIP is a CIP. “MIP ( CIP” I Every CP over a finite domain space is a CIP. “FD ( CIP” Constraint Integer Programming I Mixed Integer Programs I SATisfiability problems MIP SAT Gerald Gamrath (ZIB): The SCIP Optimization Suite 6 CIP I Finite Domain FD CP I Constraint Programming I Constraint Integer Programming Relation to CP and MIP I Every MIP is a CIP. “MIP ( CIP” I Every CP over a finite domain space is a CIP. “FD ( CIP” Constraint Integer Programming I Mixed Integer Programs I SATisfiability problems MIP I Pseudo-Boolean Optimization SAT PBO Gerald Gamrath (ZIB): The SCIP Optimization Suite 6 CIP CP I Constraint Programming I Constraint Integer Programming Relation to CP and MIP I Every MIP is a CIP. “MIP ( CIP” I Every CP over a finite domain space is a CIP. “FD ( CIP” Constraint Integer Programming I Mixed Integer Programs I SATisfiability problems MIP I Pseudo-Boolean Optimization I Finite Domain SAT PBO FD Gerald Gamrath (ZIB): The SCIP Optimization Suite 6 CIP I Constraint Integer Programming Relation to CP and MIP I Every MIP is a CIP. “MIP ( CIP” I Every CP over a finite domain space is a CIP. “FD ( CIP” Constraint Integer Programming I Mixed Integer Programs I SATisfiability problems MIP I Pseudo-Boolean Optimization I Finite Domain SAT PBO FD CP I Constraint Programming Gerald Gamrath (ZIB): The SCIP Optimization Suite 6 Relation to CP and MIP I Every MIP is a CIP. “MIP ( CIP” I Every CP over a finite domain space is a CIP. “FD ( CIP” Constraint Integer Programming I Mixed Integer Programs CIP I SATisfiability problems MIP I Pseudo-Boolean Optimization I Finite Domain SAT PBO FD CP I Constraint Programming I Constraint Integer Programming Gerald Gamrath (ZIB): The SCIP Optimization Suite 6 Constraint Integer Programming I Mixed Integer Programs CIP I SATisfiability problems MIP I Pseudo-Boolean Optimization I Finite Domain SAT PBO FD CP I Constraint Programming I Constraint Integer Programming Relation to CP and MIP I Every MIP is a CIP. “MIP ( CIP” I Every CP over a finite domain space is a CIP. “FD ( CIP” Gerald Gamrath (ZIB): The SCIP Optimization Suite 6 CIP Solving Techniques Presolving Primal Heuristics Branch & Bound Cutting Planes Domain Propagation Conflict Analysis x1 x1 x2 x2 ⇒ x3 x3 x4 x4 Gerald Gamrath (ZIB): The SCIP Optimization Suite 7 How do we solve CIPs? MIP, CP, and SAT MIP I branch-and-bound I LP relaxation I cutting planes CP I domain propagation SCIP SAT I conflict analysis I periodic restarts Gerald Gamrath (ZIB): The SCIP Optimization Suite 8 SCIP’s Modular, Plugin-based Structure pscost random close mostinf gen relps dualfix vbound cuts cmir clique cost obbt flow leastinf cover uct cgmip restart dfs probing Branch zero gomory infer hybrid half ence Propa Separator estim gator pseudo obj implied strong full bounds esti Node cg strong mate selector cloud allfull redcost rapid intobj strong learn root odd mcf dfs vbound redcost cycle breadth rounding setppc sos1 first bfs Impli rins shifting pseudo super cations boolean indicator soc rootsol shift& quad rens default diving prop subnlp ratic sos2 random simple rounding or rounding orbi var xor Tree Cutpool tope bound pscost proximity diving trivial trysol non Dialog linear Conflict logicor oneopt twoopt Constraint Primal actcons linking octane under Handler Heuristic diving cover SCIP objpscost diving clique linear vbound knap sack Relax Event coef mutation local cross veclen diving branching zi roundover diving indi abs Expr. integral cator power NLP Interpr. int shifting dualval cumu bivar linesearch guided zero lative conjunc iate diving fixand dins objective tion diving infer disjunc and tion ipopt CppAD Pricer intdiving feaspump count bound ··· sols disjunc. fracdiving comp spx2 bnd onents spx xprs bound convert shift int wbo zpl qso ccg cip domcol sol dual none LP Presolver cnf infer rlp Reader fix gate msk pbm extract fzn grb clp trivial implics cpx intto ppm binary pip lp gms opb osil mps Gerald Gamrath (ZIB): The SCIP Optimization Suite 9 SCIP’s Modular, Plugin-based Structure pscost random mostinf relps cost leastinf Branch infer ence Propa Separator gator full Node strong selector cloud allfull strong setppc sos1 Impli pseudo super cations boolean indicator soc quad ratic sos2 or orbi var xor Tree Cutpool tope bound non Dialog linear Conflict logicor linking Constraint Primal actcons Handler SCIP Heuristic diving linear knap sack Relax Event indi abs Expr. integral cator power NLP Interpr. cumu bivar lative conjunc iate tion disjunc and tion Pricer count bound ··· sols disjunc. LP Presolver Reader Gerald Gamrath (ZIB): The SCIP Optimization Suite 9 SCIP’s Modular, Plugin-based Structure pscost random close mostinf gen relps dualfix vbound cuts cmir clique cost obbt flow leastinf cover uct cgmip restart dfs probing Branch zero gomory infer hybrid half ence Propa Separator estim gator pseudo obj implied strong full bounds esti Node cg strong mate selector cloud allfull redcost rapid intobj strong learn root odd mcf dfs vbound redcost cycle breadth rounding setppc sos1 first bfs Impli rins shifting pseudo super cations boolean indicator soc rootsol shift& quad rens default diving prop subnlp ratic sos2 random simple rounding or rounding orbi var xor Tree Cutpool tope bound pscost proximity diving trivial trysol non Dialog linear Conflict logicor oneopt twoopt Constraint Primal actcons linking octane under Handler Heuristic diving cover SCIP objpscost diving clique linear vbound knap sack Relax Event coef mutation local cross veclen diving branching zi roundover diving indi abs Expr. integral cator power NLP Interpr. int shifting dualval cumu bivar linesearch guided zero lative conjunc iate diving fixand dins objective tion diving infer disjunc and tion ipopt CppAD Pricer intdiving feaspump count bound ··· sols disjunc. fracdiving comp spx2 bnd onents spx xprs bound convert shift int wbo zpl qso ccg cip domcol sol dual none LP Presolver cnf infer rlp Reader fix gate msk pbm extract fzn grb clp trivial implics cpx intto ppm binary pip lp gms opb osil mps Gerald Gamrath (ZIB): The SCIP Optimization Suite 9 Some facts about SCIP I general setup I plugin based system I default plugins handle MIPs and nonconvex MINLPs I support for branch-and-price and custom relaxations I documentation and guidelines I more than 450 000 lines of C code, 20% documentation I 30 000 assertions, 4 000 debug messages I HowTos: plugins types, debugging, automatic testing I 11 examples illustrating the use of SCIP I active mailing list [email protected] (300 members) I interface and usability I user-friendly interactive shell I interfaces to AMPL, GAMS, ZIMPL, MATLAB, Python and Java I C++ wrapper classes I LP solvers: CLP, CPLEX, Gurobi, MOSEK, QSopt, SoPlex, Xpress I over 1 600 parameters and 15 emphasis settings I about 8000 downloads per year from 100+ countries Gerald Gamrath (ZIB): The SCIP Optimization Suite 10 (Some) Universities and Institutes using SCIP . RWTH Aaachen . UC Berkeley . Université de Montréal . Universität Bayreuth . Lehigh University . NIISI RAS . FU Berlin . University of Bristol . Université de Nantes . TU Berlin . Eötvös Loránd Tudományegyetem . The University of Newcastle . HU Berlin . Universidad de Buenos Aires . University of Nottingham . WIAS Berlin . Institut Français de Mécanique Avancée .