Introduction to SCIP 11:00–11:30 Coffee Break 11:30–12:30 Installation of SCIP and GCG 12:30–14:00 Lunch 14:00–17:30 Programming Exercises 15:30–16:00 Coffee Break
Total Page:16
File Type:pdf, Size:1020Kb
SCIP Workshop 2018 Structure of the SCIP Introduction Day 9:30{11:00 Introduction to SCIP 11:00{11:30 Coffee Break 11:30{12:30 Installation of SCIP and GCG 12:30{14:00 Lunch 14:00{17:30 Programming Exercises 15:30{16:00 Coffee Break Visit scip.zib.de/workshop2018 for all information. Tomorrow and on Thursday: Scientific Talks Plenary Talk Wednesday, 11:30 Ruth Misener, Imperial College London, UK Gregor Hendel { SCIP Introduction 1/71 Introduction to SCIP Gregor Hendel SCIP Workshop 2018, Aachen, March 6, 2018 What is SCIP? SCIP (Solving Constraint Integer Programs) . • provides a full-scale MIP and MINLP solver, • is constraint based, • incorporates • MIP features (cutting planes, LP relaxation), and • MINLP features (spatial branch-and-bound, OBBT) • CP features (domain propagation), • SAT-solving features (conflict analysis, restarts), • is a branch-cut-and-price framework, • has a modular structure via plugins, • is free for academic purposes, • and is available in source-code under http://scip.zib.de ! Gregor Hendel { SCIP Introduction 2/71 Meet the SCIP Team 31 active developers • 7 running Bachelor and Master projects • 16 running PhD projects • 8 postdocs and professors 4 development centers in Germany • ZIB: SCIP, SoPlex, UG, ZIMPL • TU Darmstadt: SCIP and SCIP-SDP • FAU Erlangen-N¨urnberg: SCIP • RWTH Aachen: GCG Many international contributors and users • more than 10 000 downloads per year from 100+ countries Careers • 10 awards for Masters and PhD theses: MOS, EURO, GOR, DMV • 7 former developers are now building commercial optimization software at CPLEX, FICO Xpress, Gurobi, MOSEK, and GAMS Gregor Hendel { SCIP Introduction 3/71 Outline SCIP {SolvingConstraintIntegerPrograms Constraint Integer Programming The Solving Process of SCIP Extending SCIP by Plugins The SCIP Optimization Suite http://scip.zib.de Gregor Hendel { SCIP Introduction 4/71 Outline SCIP {SolvingConstraintIntegerPrograms Constraint Integer Programming The Solving Process of SCIP Extending SCIP by Plugins The SCIP Optimization Suite http://scip.zib.de Gregor Hendel { SCIP Introduction 5/71 An example: the Traveling Salesman Problem Definition (TSP) Given a complete graph G = (V ; E) and distances de for all e 2 E: Find a Hamiltonian cycle (cycle containing all nodes, tour) of minimum length. K8 Gregor Hendel { SCIP Introduction 6/71 An example: the Traveling Salesman Problem Definition (TSP) Given a complete graph G = (V ; E) and distances de for all e 2 E: Find a Hamiltonian cycle (cycle containing all nodes, tour) of minimum length. K8 Gregor Hendel { SCIP Introduction 6/71 An example: the Traveling Salesman Problem Definition (TSP) Given a complete graph G = (V ; E) and distances de for all e 2 E: Find a Hamiltonian cycle (cycle containing all nodes, tour) of minimum length. Gregor Hendel { SCIP Introduction 6/71 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 2 F I C I (xI ; xC ) 2 Z × R (xI ; xN ) 2 Z × X Gregor Hendel { SCIP Introduction 7/71 X min de xe e2E X subject to xe = 2 8v 2 V e2δ(v) X xe ≥ 2 8S ⊂ V ; S 6= ? e2δ(S) xe 2 f0; 1g 8e 2 E TSP { Integer Programming Formulation Given • complete graph G = (V ; E) xe • distances de > 0 for all e 2 E Binary variables • xe = 1 if edge e is used K8 Gregor Hendel { SCIP Introduction 8/71 TSP { Integer Programming Formulation Given • complete graph G = (V ; E) xe • distances de > 0 for all e 2 E Binary variables • xe = 1 if edge e is used K8 X min de xe e2E X subject to xe = 2 8v 2 V e2δ(v) X xe ≥ 2 8S ⊂ V ; S 6= ? e2δ(S) xe 2 f0; 1g 8e 2 E Gregor Hendel { SCIP Introduction 8/71 TSP { Integer Programming Formulation Given • complete graph G = (V ; E) xe • distances de > 0 for all e 2 E Binary variables • xe = 1 if edge e is used K8 X min de xe e2E X subject to xe = 2 8v 2 V node degree e2δ(v) X xe ≥ 2 8S ⊂ V ; S 6= ? e2δ(S) xe 2 f0; 1g 8e 2 E Gregor Hendel { SCIP Introduction 8/71 TSP { Integer Programming Formulation Given • complete graph G = (V ; E) xe • distances de > 0 for all e 2 E Binary variables • xe = 1 if edge e is used K8 X min de xe e2E X subject to xe = 2 8v 2 V e2δ(v) X xe ≥ 2 8S ⊂ V ; S 6= ? e2δ(S) subtour elimination xe 2 f0; 1g 8e 2 E Gregor Hendel { SCIP Introduction 8/71 TSP { Integer Programming Formulation Given • complete graph G = (V ; E) xe • distances de > 0 for all e 2 E Binary variables • xe = 1 if edge e is used K8 X min de xe distance e2E X subject to xe = 2 8v 2 V e2δ(v) X xe ≥ 2 8S ⊂ V ; S 6= ? e2δ(S) xe 2 f0; 1g 8e 2 E Gregor Hendel { SCIP Introduction 8/71 8 7 2 3 1 4 6 5 min length(x1;:::; xn) subject to alldifferent(x1;:::; xn) xv 2 f1;:::; ng 8v 2 V TSP { Constraint Programming Formulation Given • complete graph G = (V ; E) xv • for each e 2 E a distance de > 0 Integer variables • xv position of v 2 V in tour K8 Gregor Hendel { SCIP Introduction 9/71 xv K8 TSP { Constraint Programming Formulation 8 Given 7 2 • complete graph G = (V ; E) • for each e 2 E a distance de > 0 3 1 Integer variables 4 6 • xv position of v 2 V in tour 5 min length(x1;:::; xn) subject to alldifferent(x1;:::; xn) xv 2 f1;:::; ng 8v 2 V Gregor Hendel { SCIP Introduction 9/71 What is a Constraint Integer Program? Constraint Integer Program min cT x Objective function: s:t: x 2 F I C . linear function (xI ; xC ) 2 Z × R Feasible set: Remark: . described by arbitrary constraints • arbitrary objective or variables modeled by constraints Variable domains: . real or integer values Gregor Hendel { SCIP Introduction 10/71 What is a Constraint Integer Program? Constraint Integer Program X min de xe e E 2X Objective function: s:t: xe = 2 8 v 2 V e δ(v) 2 . linear function nosubtour(x) xe 2 f0; 1g 8 e 2 E Feasible set: (CIP formulation of TSP) . described by arbitrary constraints Single nosubtour constraint rules out subtours (e.g. by domain prop- Variable domains: agation). It may also separate sub- tour elimination inequalities. real or integer values Gregor Hendel { SCIP Introduction 10/71 Mixed-Integer Nonlinear Programs (MINLPs) min cTx s.t. gk (x) ≤ 0 8k 2 [m] xi 2 Z 8i 2 I ⊆ [n] xi 2 [`i ; ui ] 8i 2 [n] 1 The functions gk 2 C ([`; u]; R) can be 0 100 200 10 200 300 0 200 5 0 −200 −1 1 −1 1 convex or nonconvex Gregor Hendel { SCIP Introduction 11/71 Application: Data Classification Support Vector Machine, e.g., with ramp loss. n w Tw C X min + (ξ + 2(1 − z )) 2 n i i i=1 T s.t. zi (yi (w xi + b) − 1 + ξi ) ≥ 0 8i ξi 2 [0; 2]; zi 2 f0; 1g 8i d w 2 R ; b 2 R Gregor Hendel { SCIP Introduction 12/71 CIP • SATisfiability problems • Pseudo-Boolean Optimization • Mixed Integer Nonlinear Programs SAT PBO MINLP CP • Constraint Programming • Constraint Integer Programming Relation to CP and MIP • Every MIP is a CIP. \MIP ( CIP" • Every CP over a finite domain space is a CIP. \FD ( CIP" Constraint Integer Programming • Mixed Integer Programs MIP Gregor Hendel { SCIP Introduction 13/71 CIP • Pseudo-Boolean Optimization • Mixed Integer Nonlinear Programs PBO MINLP CP • Constraint Programming • Constraint Integer Programming Relation to CP and MIP • Every MIP is a CIP. \MIP ( CIP" • Every CP over a finite domain space is a CIP. \FD ( CIP" Constraint Integer Programming • Mixed Integer Programs • SATisfiability problems MIP SAT Gregor Hendel { SCIP Introduction 13/71 CIP • Mixed Integer Nonlinear Programs MINLP CP • Constraint Programming • Constraint Integer Programming Relation to CP and MIP • Every MIP is a CIP. \MIP ( CIP" • Every CP over a finite domain space is a CIP. \FD ( CIP" Constraint Integer Programming • Mixed Integer Programs • SATisfiability problems MIP • Pseudo-Boolean Optimization SAT PBO Gregor Hendel { SCIP Introduction 13/71 CIP CP • Constraint Programming • Constraint Integer Programming Relation to CP and MIP • Every MIP is a CIP. \MIP ( CIP" • Every CP over a finite domain space is a CIP. \FD ( CIP" Constraint Integer Programming • Mixed Integer Programs • SATisfiability problems MIP • Pseudo-Boolean Optimization • Mixed Integer Nonlinear Programs SAT PBO MINLP Gregor Hendel { SCIP Introduction 13/71 CIP • Constraint Integer Programming Relation to CP and MIP • Every MIP is a CIP. \MIP ( CIP" • Every CP over a finite domain space is a CIP. \FD ( CIP" Constraint Integer Programming • Mixed Integer Programs • SATisfiability problems MIP • Pseudo-Boolean Optimization • Mixed Integer Nonlinear Programs SAT PBO MINLP CP • Constraint Programming Gregor Hendel { SCIP Introduction 13/71 Relation to CP and MIP • Every MIP is a CIP. \MIP ( CIP" • Every CP over a finite domain space is a CIP. \FD ( CIP" Constraint Integer Programming CIP • Mixed Integer Programs • SATisfiability problems MIP • Pseudo-Boolean Optimization • Mixed Integer Nonlinear Programs SAT PBO MINLP CP • Constraint Programming • Constraint Integer Programming Gregor Hendel { SCIP Introduction 13/71 Constraint Integer Programming CIP • Mixed Integer Programs • SATisfiability problems MIP • Pseudo-Boolean Optimization • Mixed Integer Nonlinear Programs SAT PBO MINLP CP • Constraint Programming • Constraint Integer Programming Relation to CP and MIP • Every MIP is a CIP.