Introduction to SCIP. Gregor Hendel, SCIP Introduction Day September 26, rd IMI-ISM-ZIB MODAL Workshop

Size: px
Start display at page:

Download "Introduction to SCIP. Gregor Hendel, SCIP Introduction Day September 26, rd IMI-ISM-ZIB MODAL Workshop"

Transcription

1 Introduction to SCIP Gregor Hendel, SCIP Introduction Day September 26, rd IMI-ISM-ZIB MODAL Workshop

2 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 Gregor Hendel, hendel@zib.de SCIP Introduction 1/70

3 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-Nu rnberg: SCIP RWTH Aachen: GCG Many international contributors and users more than 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, hendel@zib.de SCIP Introduction 2/70

4 Outline SCIP Solving Constraint Integer Programs Constraint Integer Programming The Solving Process of SCIP Extending SCIP by Plugins The SCIP Optimization Suite Gregor Hendel, SCIP Introduction 3/70

5 Outline SCIP Solving Constraint Integer Programs Constraint Integer Programming The Solving Process of SCIP Extending SCIP by Plugins The SCIP Optimization Suite Gregor Hendel, SCIP Introduction 4/70

6 An example: the Traveling Salesman Problem Definition (TSP) Given a complete graph G = (V, E) and distances d e for all e E: Find a Hamiltonian cycle (cycle containing all nodes, tour) of minimum length. K 8 Gregor Hendel, hendel@zib.de SCIP Introduction 5/70

7 An example: the Traveling Salesman Problem Definition (TSP) Given a complete graph G = (V, E) and distances d e for all e E: Find a Hamiltonian cycle (cycle containing all nodes, tour) of minimum length. K 8 Gregor Hendel, hendel@zib.de SCIP Introduction 5/70

8 An example: the Traveling Salesman Problem Definition (TSP) Given a complete graph G = (V, E) and distances d e for all e E: Find a Hamiltonian cycle (cycle containing all nodes, tour) of minimum length. Gregor Hendel, hendel@zib.de SCIP Introduction 5/70

9 What is a Constraint Integer Program? Mixed Integer Program Objective function: linear function Feasible set: described by linear constraints Variable domains: real or integer values Constraint Program Objective function: arbitrary function Feasible set: given by arbitrary constraints Variable domains: arbitrary (usually finite) min c T x min c(x) s.t. Ax b s.t. x F (x I, x C ) Z I R C (x I, x N ) Z I X Gregor Hendel, hendel@zib.de SCIP Introduction 6/70

10 TSP Integer Programming Formulation Given complete graph G = (V, E) distances d e > 0 for all e E x e Binary variables x e = 1 if edge e is used K 8 Gregor Hendel, hendel@zib.de SCIP Introduction 7/70

11 TSP Integer Programming Formulation Given complete graph G = (V, E) distances d e > 0 for all e E x e Binary variables x e = 1 if edge e is used K 8 min subject to d e x e e E e δ(v) e δ(s) x e = 2 x e 2 x e {0, 1} v V S V, S e E Gregor Hendel, hendel@zib.de SCIP Introduction 7/70

12 TSP Integer Programming Formulation Given complete graph G = (V, E) distances d e > 0 for all e E x e Binary variables x e = 1 if edge e is used K 8 min subject to d e x e e E e δ(v) e δ(s) x e = 2 x e 2 x e {0, 1} v V node degree S V, S e E Gregor Hendel, hendel@zib.de SCIP Introduction 7/70

13 TSP Integer Programming Formulation Given complete graph G = (V, E) distances d e > 0 for all e E x e Binary variables x e = 1 if edge e is used K 8 min subject to d e x e e E e δ(v) e δ(s) x e = 2 x e 2 x e {0, 1} v V S V, S subtour elimination e E Gregor Hendel, hendel@zib.de SCIP Introduction 7/70

14 TSP Integer Programming Formulation Given complete graph G = (V, E) distances d e > 0 for all e E x e Binary variables x e = 1 if edge e is used K 8 min subject to d e x e e E x e = 2 v V distance e δ(v) x e 2 S V, S e δ(s) x e {0, 1} e E Gregor Hendel, hendel@zib.de SCIP Introduction 7/70

15 TSP Constraint Programming Formulation Given complete graph G = (V, E) for each e E a distance d e > 0 Integer variables x v position of v V in tour x v K 8 Gregor Hendel, hendel@zib.de SCIP Introduction 8/70

16 TSP Constraint Programming Formulation Given complete graph G = (V, E) for each e E a distance d e > Integer variables x v position of v V in tour min length(x 1,..., x n) subject to alldifferent(x 1,..., x n) x v {1,..., n} v V Gregor Hendel, hendel@zib.de SCIP Introduction 8/70

17 What is a Constraint Integer Program? Constraint Integer Program Objective function: linear function min s.t. c T x x F (x I, x C ) Z I R C Feasible set: Remark: described by arbitrary constraints Variable domains: arbitrary objective or variables modeled by constraints real or integer values Gregor Hendel, hendel@zib.de SCIP Introduction 9/70

18 What is a Constraint Integer Program? Constraint Integer Program Objective function: linear function Feasible set: min s.t. d e x e e E x e = 2 v V e δ(v) nosubtour(x) x e {0, 1} e E (CIP formulation of TSP) described by arbitrary constraints Variable domains: real or integer values Single nosubtour constraint rules out subtours (e.g. by domain propagation). It may also separate subtour elimination inequalities. Gregor Hendel, hendel@zib.de SCIP Introduction 9/70

19 Mixed-Integer Nonlinear Programs (MINLPs) min c T x s.t. g k (x) 0 x i Z x i [l i, u i ] The functions g k C 1 ([l, u], R) can be k [m] i I [n] i [n] convex or nonconvex Gregor Hendel, hendel@zib.de SCIP Introduction 10/70

20 Application: Data Classification Support Vector Machine, e.g., with ramp loss. min w T w 2 + C n n (ξ i + 2(1 z i )) i=1 s.t. z i (y i (w T x i + b) 1 + ξ i ) 0 i ξ i [0, 2], z i {0, 1} i w R d, b R Gregor Hendel, hendel@zib.de SCIP Introduction 11/70

21 Constraint Integer Programming Mixed Integer Programs MIP Gregor Hendel, SCIP Introduction 12/70

22 Constraint Integer Programming Mixed Integer Programs SATisfiability problems MIP SAT Gregor Hendel, SCIP Introduction 12/70

23 Constraint Integer Programming Mixed Integer Programs SATisfiability problems Pseudo-Boolean Optimization MIP SAT PBO Gregor Hendel, SCIP Introduction 12/70

24 Constraint Integer Programming Mixed Integer Programs SATisfiability problems Pseudo-Boolean Optimization MIP Mixed Integer Nonlinear Programs SAT PBO MINLP Gregor Hendel, SCIP Introduction 12/70

25 Constraint Integer Programming Mixed Integer Programs SATisfiability problems Pseudo-Boolean Optimization MIP Mixed Integer Nonlinear Programs SAT PBO MINLP CP Constraint Programming Gregor Hendel, SCIP Introduction 12/70

26 Constraint Integer Programming Mixed Integer Programs CIP SATisfiability problems Pseudo-Boolean Optimization MIP Mixed Integer Nonlinear Programs SAT PBO MINLP CP Constraint Programming Constraint Integer Programming Gregor Hendel, SCIP Introduction 12/70

27 Constraint Integer Programming Mixed Integer Programs CIP SATisfiability problems Pseudo-Boolean Optimization MIP 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 Gregor Hendel, hendel@zib.de SCIP Introduction 12/70

28 Outline SCIP Solving Constraint Integer Programs Constraint Integer Programming The Solving Process of SCIP Extending SCIP by Plugins The SCIP Optimization Suite Gregor Hendel, SCIP Introduction 13/70

29 Branch-and-bound Gregor Hendel, SCIP Introduction 14/70

30 SCIP Interactive Shell Basics Basic Workflow r e a d.. / check / i n s t a n c e s /MIP/ b e l l 5. mps o p t i m i z e w r i t e s o l u t i o n m y s o l u t i o n. s o l q u i t Displaying information Use the display... command to enter the menu and obtain solution information print the current transproblem to the console display plugin information, e.g., list all available branching rules Changing Settings Use the set... command to list the settings menu. Gregor Hendel, hendel@zib.de SCIP Introduction 15/70

31 Important Parameters Numerical parameters These must be set before reading a problem. numerics/feastol, 10 6 numerics/epsilon, 10 9 numerics/infinity, Limits limits/time limits/nodes limits/gap Randomization randomization/randomseedshift randomization/lpseed randomization/permutationseed Gregor Hendel, hendel@zib.de SCIP Introduction 16/70

32 Different Tasks Different Plugins Different plugin classes are responsible of the following tasks. 1. Presolving and node propagation Constraint handlers Presolvers Propagators 2. Separation Constraint handlers Separators 3. Improving solutions Primal heuristics 4. Branching Constraint handlers Branching rules 5. Node selection Node selectors Gregor Hendel, SCIP Introduction 17/70

33 Operational Stages Init Init Solve Problem Transforming Presolving Solving Free Transform Free Solve Gregor Hendel, SCIP Introduction 18/70

34 Operational Stages Init Init Solve Problem Transforming Presolving Solving Free Transform Free Solve Basic data structures are allocated and initialized. User includes required plugins (or just takes plugins). Gregor Hendel, SCIP Introduction 18/70

35 Problem Specification Init Init Solve Problem Transforming Presolving Solving Free Transform Free Solve User creates and modifies the original problem instance. Problem creation is usually done in file readers. Gregor Hendel, SCIP Introduction 19/70

36 Define Variables (LOP Example) SCIP_VAR * var ; SCIP_CALL ( // return value macro SCIPcreateVar ( scip, // SCIP pointer &var, // save in variable " varname ", // pass variable name 0.0, // lower bound 1.0, // upper bound length, // obj. value SCIP_VARTYPE_BINARY, // type TRUE, // initial FALSE, // removable NULL, NULL, NULL, // no callback functions NULL // no variable data ) ); SCIP_CALL ( SCIPaddVar ( scip, var ) ); // add var. Gregor Hendel, hendel@zib.de SCIP Introduction 20/70

37 TSP: Define Degree Constraints SCIP_CALL ( SCIPcreateConsLinear ( scip, // SCIP pointer &cons, // save in cons " consname ", // name nvar, // number of variables vars, // array of variables vals, // array of values 2.0, // left hand side 2.0, // right hand side ( equation ) TRUE, // initial? FALSE, // separate? TRUE, // enforce? TRUE, // check? TRUE, // propagate? FALSE, // local? FALSE, // modifable? FALSE, // dynamic? FALSE, // removable? FALSE // stick at node? )); SCIP_CALL ( SCIPaddCons (scip, cons ) ); // add constraint SCIP_CALL ( SCIPreleaseCons (scip, & cons ) ); // free cons. space MIPs are specified using linear constraints only (may be upgraded ). Gregor Hendel, hendel@zib.de SCIP Introduction 21/70

38 Transformation Init Init Solve Problem Transforming Presolving Solving Free Transform Free Solve Creates a working copy of the original problem. Gregor Hendel, hendel@zib.de SCIP Introduction 22/70

39 Original and Transformed Problem Original CIP Transformed CIP Original variables Transformed variables Original constraints Transformed constraints data is copied into separate memory area presolving and solving operate on transformed problem original data can only be modified in problem modification stage Gregor Hendel, SCIP Introduction 23/70

40 Presolving Init Init Solve Problem Transforming Presolving Solving Free Transform Free Solve Gregor Hendel, SCIP Introduction 24/70

41 Presolving Task reduce size of model by removing irrelevant information strengthen LP relaxation by exploiting integrality information make the LP relaxation numerically more stable extract useful information Primal Reductions: based on feasibility reasoning no feasible solution is cut off Dual Reductions: consider objective function at least one optimal solution remains Gregor Hendel, SCIP Introduction 25/70

42 Presolving Tips and Parameters Use display presolvers to list all presolvers of SCIP. Disable Presolving Disable all presolving for a model s e t p r e s o l v i n g emphasis o f f Deactivate single techniques s e t p r e s o l v i n g tworowbnd maxrounds 0 s e t p r o p a g a t i n g p r o b i n g maxprerounds 0 s e t c o n s t r a i n t s components advanced maxprerounds 0 Aggressive Presolving s e t p r e s o l v i n g emphasis a g g r e s s i v e General Rule of Thumb Only deactivate single presolving techniques if you encounter performance problems. Gregor Hendel, hendel@zib.de SCIP Introduction 26/70

43 Solving Init Init Solve Problem Transforming Presolving Solving Free Transform Free Solve Gregor Hendel, SCIP Introduction 27/70

44 Flow Chart SCIP Presolving Stop Domain propagation Node selection Solve LP Conflict analysis Pricing Primal heuristics Processing Enforce constraints Cuts Branching Gregor Hendel, SCIP Introduction 28/70

45 Flow Chart SCIP Presolving Stop Domain propagation Node selection Solve LP Conflict analysis Pricing Primal heuristics Processing Enforce constraints Cuts Branching Gregor Hendel, SCIP Introduction 28/70

46 Node Selection Techniques basic rules depth first search (DFS) early feasible solutions best bound search (BBS) improve dual bound best estimate search (BES) improve primal bound Task improve primal bound keep comp. effort small improve global dual bound combinations BBS or BES with plunging hybrid BES/BBS interleaved BES/BBS Gregor Hendel, SCIP Introduction 29/70

47 Node Selection Tips and Parameters Available Node Selectors d i s p l a y n o d e s e l e c t o r s node selector std p r i o r i t y memsave prio description e s t i m a t e b e s t e s t i m a t e s e a r c h b f s b e s t f i r s t s e a r c h... d f s depth f i r s t s e a r c h Switching Node Selectors Only the node selector with highest standard priority is active. Use s e t n o d e s e l e c t i o n d f s s t d p r i o r i t y to activate depth first search also in non-memsave mode. Gregor Hendel, hendel@zib.de SCIP Introduction 30/70

48 Flow Chart SCIP Presolving Stop Domain propagation Node selection Solve LP Conflict analysis Pricing Primal heuristics Processing Enforce constraints Cuts Branching Gregor Hendel, SCIP Introduction 31/70

49 Flow Chart SCIP Presolving Stop Domain propagation Node selection Solve LP Conflict analysis Pricing Primal heuristics Processing Enforce constraints Cuts Branching Gregor Hendel, SCIP Introduction 31/70

50 Domain Propagation x 1 x 1 x 2 x 3 x 2 x 3 Techniques constraint specific each cons handler may provide a propagation routine reduced presolving (usually) x 4 Task x 4 dual propagation root reduced cost strengthening objective function simplify model locally improve local dual bound detect infeasibility special structures variable bounds Gregor Hendel, hendel@zib.de SCIP Introduction 32/70

51 Flow Chart SCIP Presolving Stop Domain propagation Node selection Solve LP Conflict analysis Pricing Primal heuristics Processing Enforce constraints Cuts Branching Gregor Hendel, SCIP Introduction 33/70

52 LP Solving LP solver is a black box interface to different LP solvers: SoPlex, CPLEX, XPress, Gurobi, CLP,... primal/dual simplex barrier with/without crossover feasibility double-checked by SCIP condition number check resolution by changing parameters: scaling, tolerances, solving from scratch, other simplex Gregor Hendel, hendel@zib.de SCIP Introduction 34/70

53 LP Solving Tips and Parameters Most Important LP Parameters lp/initalgorithm, lp/resolvealgorithm Primal/Dual Simplex Algorithm Barrier w and w/o crossover lp/pricing normally LP solver specific Devex Steepest edge Quick start steepest edge lp/threads Slow LP performance is a blocker for the solving process and can sometimes be manually tuned significantly. Gregor Hendel, hendel@zib.de SCIP Introduction 35/70

54 Flow Chart SCIP Presolving Stop Domain propagation Node selection Solve LP Conflict analysis Pricing Primal heuristics Processing Enforce constraints Cuts Branching Gregor Hendel, SCIP Introduction 36/70

55 Pricing Pricing find variable with negative reduced costs or prove that there exists none typically problem specific Branch-and-Price huge number of variables start with subset add others, when needed dynamic aging of variables problem variable pricer to add them again early branching possible lazy variable bounds Gregor Hendel, SCIP Introduction 37/70

56 Flow Chart SCIP Presolving Stop Domain propagation Node selection Solve LP Conflict analysis Pricing Primal heuristics Processing Enforce constraints Cuts Branching Gregor Hendel, SCIP Introduction 38/70

57 Cutting Plane Separation Techniques general cuts complemented MIR cuts Gomory mixed integer cuts strong Chvátal-Gomory cuts implied bound cuts reduced cost strengthening Task strengthen relaxation add valid constraints generate on demand problem specific cuts 0-1 knapsack problem stable set problem 0-1 single node flow problem Gregor Hendel, SCIP Introduction 39/70

58 Cuts for the 0-1 Knapsack Problem Feasible region: (b Z +, a j Z + j N) X BK := { x {0, 1} n : j N a j x j b } Minimal Cover: C N j C a j > b j C\{i} a j b i C Minimal Cover Inequality x j C 1 j C 5x 1 + 6x 2 + 2x 3 + 2x 4 8 Minimal cover: C = {2, 3, 4} Minimal cover inequality: x 2 + x 3 + x 4 2 Gregor Hendel, hendel@zib.de SCIP Introduction 40/70

59 Separation Tips and Parameters Disable/Speed up/emphasize All Separation s e t s e p a r a t i n g emphasis o f f / f a s t / a g g r e s s i v e Disable Single Separation Techniques s e t s e p a r a t i n g c l i q u e f r e q 1 s e t c o n s t r a i n t s c a r d i n a l i t y s e p a f r e q 1 Some Important Parameters separating/maxcuts, separating/maxcutsroot separating/maxrounds, separating/maxroundsroot separating/maxstallrounds, separating/maxstallroundsroot Gregor Hendel, hendel@zib.de SCIP Introduction 41/70

60 Flow Chart SCIP Presolving Stop Domain propagation Node selection Solve LP Conflict analysis Pricing Primal heuristics Processing Enforce constraints Cuts Branching Gregor Hendel, SCIP Introduction 42/70

61 Constraint Enforcement LP solution may violate a constraint not contained in the relaxation. Enforcing is necessary for a correct implementation! Constraint handler resolves the infeasibility by... Reducing a variable s domain, Separating a cutting plane (may use integrality), Adding a (local) constraint, Creating a branching, Concluding that the subproblem is infeasible and can be cut off, or Just saying solution infeasible. Gregor Hendel, hendel@zib.de SCIP Introduction 43/70

62 Constraint Enforcement Presolving Stop Domain propagation Node selection Solve LP Pricing Conflict analysis Processing Enforce constraints Cuts Primal heuristics Branching Reduced domain Added cut Cutoff Infeasible Added constraint Branched Feasible Gregor Hendel, SCIP Introduction 44/70

63 Constraint Enforcement Presolving Stop Domain propagation Node selection Solve LP Pricing Conflict analysis Processing Enforce constraints Cuts Primal heuristics Branching Reduced domain Added cut Cutoff Infeasible Added constraint Branched Feasible Gregor Hendel, SCIP Introduction 44/70

64 Constraint Enforcement Presolving Stop Domain propagation Node selection Solve LP Pricing Conflict analysis Processing Enforce constraints Cuts Primal heuristics Branching Reduced domain Added cut Cutoff Infeasible Added constraint Branched Feasible Gregor Hendel, SCIP Introduction 44/70

65 Constraint Enforcement Presolving Stop Domain propagation Node selection Solve LP Pricing Conflict analysis Processing Enforce constraints Cuts Primal heuristics Branching Reduced domain Added cut Cutoff Infeasible Added constraint Branched Feasible Gregor Hendel, SCIP Introduction 44/70

66 Constraint Enforcement Presolving Stop Domain propagation Node selection Solve LP Pricing Conflict analysis Processing Enforce constraints Cuts Primal heuristics Branching Reduced domain Added cut Cutoff Infeasible Added constraint Branched Feasible Gregor Hendel, SCIP Introduction 44/70

67 Constraint Enforcement Presolving Stop Domain propagation Node selection Solve LP Pricing Conflict analysis Processing Enforce constraints Cuts Primal heuristics Branching Reduced domain Added cut Cutoff Infeasible Added constraint Branched Feasible Gregor Hendel, SCIP Introduction 44/70

68 Constraint Enforcement Presolving Stop Domain propagation Node selection Solve LP Pricing Conflict analysis Processing Enforce constraints Cuts Primal heuristics Branching Reduced domain Added cut Cutoff Infeasible Added constraint Branched Feasible Gregor Hendel, SCIP Introduction 44/70

69 Constraint Enforcement Presolving Stop Domain propagation Node selection Solve LP Pricing Conflict analysis Processing Enforce constraints Cuts Primal heuristics Branching Reduced domain Added cut Cutoff Infeasible Added constraint Branched Feasible Gregor Hendel, SCIP Introduction 44/70

70 Flow Chart SCIP Presolving Stop Domain propagation Node selection Solve LP Conflict analysis Pricing Primal heuristics Processing Branching Enforce constraints Cuts Gregor Hendel, SCIP Introduction 45/70

71 Branching Rules Task divide into (disjoint) subproblems improve local bounds Techniques branching on variables most infeasible least infeasible random branching strong branching pseudocost reliability VSIDS hybrid reliability/inference branching on constraints SOS1 SOS2 Gregor Hendel, SCIP Introduction 46/70

72 Branching Rule Tips and Parameters Branching Rule Selection Branching rules are applied in decreasing order of priority. SCIP> d i s p l a y b r a n c h i n g b r a n c h i n g r u l e p r i o r i t y maxdepth maxbddist r e l p s c o s t % p s c o s t % i n f e r e n c e % m o s t i n f % Reliability Branching Parameters All parameters prefixed with branching/relpscost/ sbiterquot, sbiterofs to increase the budget for strong branching minreliable (= 1), maxreliable (= 5) to increase threshold to consider pseudo costs as reliable Gregor Hendel, hendel@zib.de SCIP Introduction 47/70

73 Flow Chart SCIP Presolving Stop Domain propagation Node selection Solve LP Conflict analysis Pricing Primal heuristics Processing Enforce constraints Cuts Branching Gregor Hendel, SCIP Introduction 48/70

74 Primal Heuristics Task improve primal bound effective on average guide remaining search Techniques structure-based clique variable bounds rounding possibly solve final LP least infeasible guided objective objective feasibility pump Large Neighborhood Search RINS, local branching RENS Adaptive LNS Completion of partial solutions Gregor Hendel, SCIP Introduction 49/70

75 Primal Heuristics Tips and Parameters Disable/Speed Up/Emphasize Heuristics s e t h e u r i s t i c s emphasis o f f / f a s t / a g g r e s s i v e Disable an individual heuristic via s e t h e u r i s t i c s feaspump f r e q 1 Important Parameters heuristics/alns/nodesofs, heuristics/alns/nodesquot to increase the computational budget of this LNS technique heuristics/guided/... lpsolvefreq, maxlpiterofs maxlpiterquot to control the LP solving during this technique Advice Use emphasis settings. Do not attempt to individually tune heuristics by hand. Gregor Hendel, hendel@zib.de SCIP Introduction 50/70

76 Flow Chart SCIP Presolving Stop Domain propagation Node selection Solve LP Conflict analysis Pricing Primal heuristics Processing Enforce constraints Cuts Branching Gregor Hendel, SCIP Introduction 51/70

77 Conflict Analysis Task Analyze infeasibility Derive valid constraints Help to prune other nodes Techniques Analyze: Propagation conflicts Infeasible LPs Bound-exceeding LPs Strong branching conflicts Detection: Cut in conflict graph LP: Dual ray heuristic Use conflicts: Only for propagation As cutting planes Gregor Hendel, SCIP Introduction 52/70

78 Operational Stages Init Init Solve Problem Transforming Presolving Solving Free Transform Free Solve Gregor Hendel, SCIP Introduction 53/70

79 Outline SCIP Solving Constraint Integer Programs Constraint Integer Programming The Solving Process of SCIP Extending SCIP by Plugins The SCIP Optimization Suite Gregor Hendel, SCIP Introduction 54/70

80 The SCIP C API C code and documentation more than lines of C code, 20% documentation over assertions and debug messages HowTos: plugins types, debugging, automatic testing 10 examples illustrating the use of SCIP 5 problem specific SCIP applications to solve Coloring, Steiner Tree, or Multiobjective problems. Interface and usability Cross-platform availability due to CMake user-friendly interactive shell C++ wrapper classes LP solvers: SoPlex, CPLEX, Gurobi, Xpress, CLP, MOSEK, QSopt NLP solvers: IPOPT, FilterSQP, WORHP over parameters and 15 emphasis settings Gregor Hendel, hendel@zib.de SCIP Introduction 55/70

81 Interfaces to SCIP interactive shell supports 10 different input formats cip, cnf, flatzinc, rlp, lp, mps, opb, pip, wbo, zimpl C API/callable library C++ wrapper classes Python interface Java JNI interface AMPL GAMS Matlab (see also OPTI toolbox, Gregor Hendel, hendel@zib.de SCIP Introduction 56/70

82 Getting help If you should ever get stuck, you can type help in the interactive shell 2. read the documentation FAQ, HowTos for each plugin type, debugging, automatic testing, active mailing list (350+ members) search the mailing list archive (append site:listserv/pipermail/scip) register and post 4. search or post on Stack Overflow using the tag scip (more than 100 questions already answered) Gregor Hendel, SCIP Introduction 57/70

83 Structure of SCIP SCIP Primal Heuristic actcons coef cross over dins feaspump fixand infer frac guided int int shifting linesearch local branching mutation subnlp objpscost octane oneopt pscost rens rins rootsol rounding shifting shift& prop simple rounding trivial trysol twoopt under cover veclen zi round Variable Event Branch allfull strong full strong infer ence leastinf mostinf pscost random relps cost Conflict Constraint Handler and bound disjunc. count sols cumu lative indi cator integral knap sack linear linking logicor or orbi tope quadr atic setppc soc sos1 sos2 var bound xor Cutpool LP clp cpx msk none qso spx xprs Dialog Display Node selector bfs dfs estimate hybrid estim restart dfs Presolver bound shift dualfix implics intto binary probing trivial Impli cations Tree Reader ccg cip cnf fix lp mps opb ppm rlp sol sos zpl Pricer Separator clique cmir flow cover gomory implied bounds intobj mcf odd cycle rapid learn redcost strong cg zero half Propa gator pseudo obj root redcost vbound Relax Gregor Hendel, SCIP Introduction 58/70

84 Structure of SCIP SCIP Primal Heuristic actcons coef cross over dins feaspump fixand infer frac guided int int shifting linesearch local branching mutation subnlp objpscost octane oneopt pscost rens rins rootsol rounding shifting shift& prop simple rounding trivial trysol twoopt under cover veclen zi round Variable Event Branch allfull strong full strong infer ence leastinf mostinf pscost random relps cost Conflict Constraint Handler and bound disjunc. count sols cumu lative indi cator integral knap sack linear linking logicor or orbi tope quadr atic setppc soc sos1 sos2 var bound xor Cutpool LP clp cpx msk none qso spx xprs Dialog Display Node selector bfs dfs estimate hybrid estim restart dfs Presolver bound shift dualfix implics intto binary probing trivial Impli cations Tree Reader ccg cip cnf fix lp mps opb ppm rlp sol sos zpl Pricer Separator clique cmir flow cover gomory implied bounds intobj mcf odd cycle rapid learn redcost strong cg zero half Propa gator pseudo obj root redcost vbound Relax Gregor Hendel, SCIP Introduction 58/70

85 Structure of SCIP SCIP Primal Heuristic actcons coef cross over dins feaspump fixand infer frac guided int int shifting linesearch local branching mutation subnlp objpscost octane oneopt pscost rens rins rootsol rounding shifting shift& prop simple rounding trivial trysol twoopt under cover veclen zi round Variable Event Branch allfull strong full strong infer ence leastinf mostinf pscost random relps cost Conflict Constraint Handler and bound disjunc. count sols cumu lative indi cator integral knap sack linear linking logicor or orbi tope quadr atic setppc soc sos1 sos2 var bound xor Cutpool LP clp cpx msk none qso spx xprs Dialog Display Node selector bfs dfs estimate hybrid estim restart dfs Presolver bound shift dualfix implics intto binary probing trivial Impli cations Tree Reader ccg cip cnf fix lp mps opb ppm rlp sol sos zpl Pricer Separator clique cmir flow cover gomory implied bounds intobj mcf odd cycle rapid learn redcost strong cg zero half Propa gator pseudo obj root redcost vbound Relax Gregor Hendel, SCIP Introduction 58/70

86 Plugin based design SCIP core branching tree variables conflict analysis solution pool cut pool statistics clique table implication graph... Gregor Hendel, SCIP Introduction 59/70

87 Plugin based design SCIP core branching tree variables conflict analysis solution pool cut pool statistics clique table implication graph... Plugins external callback objects interact with the framework through a very detailed interface Gregor Hendel, hendel@zib.de SCIP Introduction 59/70

88 Plugin based design SCIP core branching tree variables conflict analysis solution pool cut pool statistics clique table implication graph... Plugins external callback objects interact with the framework through a very detailed interface SCIP knows for each plugin type: the number of available plugins priority defining the calling order (usually) SCIP does not know any structure behind a plugin plugins are black boxes for the SCIP core Gregor Hendel, hendel@zib.de SCIP Introduction 59/70

89 Plugin based design SCIP core branching tree variables conflict analysis solution pool cut pool statistics clique table implication graph... Plugins external callback objects interact with the framework through a very detailed interface SCIP knows for each plugin type: the number of available plugins priority defining the calling order (usually) SCIP does not know any structure behind a plugin plugins are black boxes for the SCIP core Very flexible branch-and-bound based search algorithm Gregor Hendel, hendel@zib.de SCIP Introduction 59/70

90 Types of Plugins Constraint handler: assures feasibility, strengthens formulation Separator: adds cuts, improves dual bound Pricer: allows dynamic generation of variables Heuristic: searches solutions, improves primal bound Branching rule: how to divide the problem? Node selection: which subproblem should be regarded next? Presolver: simplifies the problem in advance, strengthens structure Propagator: simplifies problem, improves dual bound locally Reader: reads problems from different formats Event handler: catches events (e.g., bound changes, new solutions) Display: allows modification of output... Gregor Hendel, SCIP Introduction 60/70

91 A closer look: branching rules SCIP Primal Heuristic actcons coef cross over dins feaspump fixand infer frac guided int int shifting linesearch local branching mutation subnlp objpscost octane oneopt pscost rens rins rootsol rounding shifting shift& prop simple rounding trivial trysol twoopt under cover veclen zi round Variable Event Branch allfull strong full strong infer ence leastinf mostinf pscost random relps cost Conflict Constraint Handler and bound disjunc. count sols cumu lative indi cator integral knap sack linear linking logicor or orbi tope quadr atic setppc soc sos1 sos2 var bound xor Cutpool LP clp cpx msk none qso spx xprs Dialog Display Node selector bfs dfs estimate hybrid estim restart dfs Presolver bound shift dualfix implics intto binary probing trivial Impli cations Tree Reader ccg cip cnf fix lp mps opb ppm rlp sol sos zpl Pricer Separator clique cmir flow cover gomory implied bounds intobj mcf odd cycle rapid learn redcost strong cg zero half Propa gator pseudo obj root redcost vbound Relax Gregor Hendel, SCIP Introduction 61/70

92 A closer look: branching rules onflict simple rounding shifting bound disjunc. allfull strong full strong count sols cumu lative Branch infer ence indi cator leastinf knap sack integral relps cost random pscost mostinf linear Gregor Hendel, SCIP Introduction 61/70

93 What does SCIP know about branching rules? SCIP knows the number of available branching rules each branching rule has a priority SCIP calls the branching rule in decreasing order of priority the interface defines the possible results of a call: branched reduced domains added constraints detected cutoff did not run Gregor Hendel, hendel@zib.de SCIP Introduction 62/70

94 How does SCIP call a branching rule? /* start timing */ SCIPclockStart ( branchrule ->branchclock, set ); /* call external method */ SCIP_CALL ( branchrule ->branchexeclp (set ->scip, branchrule, allowaddcons, result ) ); /* stop timing */ SCIPclockStop ( branchrule ->branchclock, set ); /* evaluate result */ if( * result!= SCIP_CUTOFF && * result!= SCIP_CONSADDED && * result!= SCIP_REDUCEDDOM && * result!= SCIP_SEPARATED && * result!= SCIP_BRANCHED && * result!= SCIP_DIDNOTRUN ) { SCIPerrorMessage ( " branching rule <%s> returned invalid result code <%d> from LP \ solution branching \n", branchrule ->name, * result ); return SCIP_INVALIDRESULT ; } Gregor Hendel, hendel@zib.de SCIP Introduction 63/70

95 What can a plugin access? Plugins are allowed to access all global (core) information branching tree variables conflict analysis solution pool cut pool statistics clique table implication graph... Gregor Hendel, hendel@zib.de SCIP Introduction 64/70

96 What can a plugin access? Plugins are allowed to access all global (core) information branching tree variables conflict analysis solution pool cut pool statistics clique table implication graph... Ideally, plugins should not access data of other plugins!!! Gregor Hendel, hendel@zib.de SCIP Introduction 64/70

97 What can a plugin access? Plugins are allowed to access all global (core) information branching tree variables conflict analysis solution pool cut pool statistics clique table implication graph... Ideally, plugins should not access data of other plugins!!! Branching Rules LP solution variables statistics Gregor Hendel, hendel@zib.de SCIP Introduction 64/70

98 Constraint Handlers Constraint handlers most powerful plugins in SCIP define the feasible region a single constraint may represent a whole set of inequalities Functions check and enforce feasibility of solutions can add linear representation to LP relaxation constraint-specific presolving, domain propagation, separation Result SCIP is constraint based Advantage: flexibility Disadvantage: limited global view Gregor Hendel, hendel@zib.de SCIP Introduction 65/70

99 Default Plugins SCIP Primal Heuristic actcons coef cross over dins feaspump fixand infer frac guided int int shifting linesearch local branching mutation subnlp objpscost octane oneopt pscost rens rins rootsol rounding shifting shift& prop simple rounding trivial trysol twoopt under cover veclen zi round Variable Event Branch allfull strong full strong infer ence leastinf mostinf pscost random relps cost Conflict Constraint Handler and bound disjunc. count sols cumu lative indi cator integral knap sack linear linking logicor or orbi tope quadr atic setppc soc sos1 sos2 var bound xor Cutpool LP clp cpx msk none qso spx xprs Dialog Display Node selector bfs dfs estimate hybrid estim restart dfs Presolver bound shift dualfix implics intto binary probing trivial Impli cations Tree Reader ccg cip cnf fix lp mps opb ppm rlp sol sos zpl Pricer Separator clique cmir flow cover gomory implied bounds intobj mcf odd cycle rapid learn redcost strong cg zero half Propa gator pseudo obj root redcost vbound Relax Gregor Hendel, SCIP Introduction 66/70

100 Extending SCIP SCIP Primal Heuristic actcons coef cross over dins feaspump fixand infer frac guided int int shifting linesearch local branching mutation subnlp objpscost octane oneopt pscost rens rins rootsol rounding shifting shift& prop simple rounding trivial trysol twoopt under cover veclen zi round Variable Event Branch allfull strong full strong infer ence leastinf mostinf pscost random relps cost Conflict Constraint Handler and bound disjunc. count sols cumu lative indi cator integral knap sack linear linking logicor or orbi tope quadr atic setppc soc sos1 sos2 var bound xor Cutpool LP clp cpx msk none qso spx xprs Dialog Display Node selector bfs dfs estimate hybrid estim restart dfs Presolver bound shift dualfix implics intto binary probing trivial Impli cations Tree Reader ccg cip cnf fix lp mps opb ppm rlp sol sos zpl Pricer Separator clique cmir flow cover gomory implied bounds intobj mcf odd cycle rapid learn redcost strong cg zero half Propa gator pseudo obj root redcost vbound Relax Gregor Hendel, SCIP Introduction 67/70

101 Extending SCIP SCIP Primal Heuristic actcons coef cross over dins feaspump fixand infer frac guided int int shifting linesearch local branching mutation subnlp objpscost octane oneopt pscost rens rins rootsol rounding shifting shift& prop simple rounding trivial trysol twoopt under cover veclen Variable Event Branch allfull strong full strong infer ence leastinf mostinf pscost random relps cost Conflict Constraint Handler and bound disjunc. count sols cumu lative indi cator integral knap sack linear linking logicor or orbi tope quadr atic setppc soc sos1 sos2 var bound Cutpool LP clp cpx msk none qso spx Dialog Display Node selector bfs dfs estimate hybrid estim Presolver bound shift dualfix implics intto binary probing Impli cations Tree Reader ccg cip cnf fix lp mps opb ppm rlp sol sos Pricer Separator clique cmir flow cover gomory implied bounds intobj mcf odd cycle rapid learn redcost strong cg Propa gator pseudo obj root redcost Relax Gregor Hendel, SCIP Introduction 67/70

102 Extending SCIP: TSP SCIP Primal Heuristic farthest insert coef 2-Opt dins feaspump fixand infer frac guided int int shifting linesearch local branching mutation subnlp objpscost octane oneopt pscost rens rins rootsol rounding shifting shift& prop simple rounding trivial trysol twoopt under cover veclen Variable Event sol found Branch allfull strong full strong infer ence leastinf mostinf pscost random relps cost Conflict Constraint Handler subtour bound disjunc. count sols cumu lative indi cator integral knap sack linear linking logicor or orbi tope quadr atic setppc soc sos1 sos2 var bound Cutpool LP clp cpx msk none qso spx Dialog Display Node selector bfs dfs estimate hybrid estim Presolver bound shift dualfix implics intto binary probing Impli cations Tree Reader tsp cip cnf fix lp mps opb ppm rlp sol sos Pricer Separator clique cmir flow cover gomory implied bounds intobj mcf odd cycle rapid learn redcost strong cg Propa gator pseudo obj root redcost Relax Gregor Hendel, SCIP Introduction 67/70

103 Extending SCIP: Coloring SCIP Primal Heuristic init coef 2-Opt dins feaspump fixand infer frac guided int int shifting linesearch local branching mutation subnlp objpscost octane oneopt pscost rens rins rootsol rounding shifting shift& prop simple rounding trivial trysol twoopt under cover veclen Variable Event Branch Ryan& Foster strong Ryan& Foster infer ence leastinf mostinf pscost random relps cost Conflict Constraint Handler store Graph bound disjunc. count sols cumu lative indi cator integral knap sack linear linking logicor or orbi tope quadr atic setppc soc sos1 sos2 var bound Cutpool LP clp cpx msk none qso spx Dialog Display Node selector bfs dfs estimate hybrid estim Presolver bound shift dualfix implics intto binary probing Impli cations Tree Reader col csol cnf fix lp mps opb ppm rlp sol sos Pricer coloring Separator clique cmir flow cover gomory implied bounds intobj mcf odd cycle rapid learn redcost strong cg Propa gator pseudo obj root redcost Relax Gregor Hendel, SCIP Introduction 67/70

104 Extending SCIP: STP SCIP Primal Heuristic TM coef local dins feaspump fixand infer frac guided int int shifting linesearch local branching mutation subnlp objpscost octane oneopt pscost rens rins rootsol rounding shifting shift& prop simple rounding trivial trysol twoopt under cover veclen Variable Event sol found Branch allfull strong full strong infer ence leastinf mostinf pscost random relps cost Conflict Constraint Handler stp bound disjunc. count sols cumu lative indi cator integral knap sack linear linking logicor or orbi tope quadr atic setppc soc sos1 sos2 var bound Cutpool LP clp cpx msk none qso spx Dialog Display Node selector bfs dfs estimate hybrid estim Presolver stp dualfix implics intto binary probing Impli cations Tree Reader stp cip cnf fix lp mps opb ppm rlp sol sos Pricer Separator clique cmir flow cover gomory implied bounds intobj mcf odd cycle rapid learn redcost strong cg Propa gator pseudo obj root redcost Relax Gregor Hendel, SCIP Introduction 67/70

105 Outline SCIP Solving Constraint Integer Programs Constraint Integer Programming The Solving Process of SCIP Extending SCIP by Plugins The SCIP Optimization Suite Gregor Hendel, SCIP Introduction 68/70

106 SCIP Optimization Suite Toolbox for generating and solving constraint integer programs free for academic use, available in source code Gregor Hendel, SCIP Introduction 69/70

107 SCIP Optimization Suite Toolbox for generating and solving constraint integer programs free for academic use, available in source code ZIMPL model and generate LPs, MIPs, and MINLPs SCIP MIP, MINLP and CIP solver, branch-cut-and-price framework SoPlex revised primal and dual simplex algorithm GCG generic branch-cut-and-price solver UG framework for parallelization of MIP and MINLP solvers Gregor Hendel, SCIP Introduction 69/70

108 Wrap-up How to solve your MINLP optimization problem: write down the mathematical description modeling language, e.g., ZIMPL, generates input for MINLP solver SCIP can even read ZIMPL files directly MIP and MINLP solving... is a bag of tricks new tricks are introduced almost every day advantages of SCIP open source, you can see everything that happens hundreds of parameters to play with broad scope easily extendable Gregor Hendel, hendel@zib.de SCIP Introduction 70/70

SCIP Workshop Visit scip.zib.de/workshop2018 for all information. Tomorrow and on Thursday: Scientific Talks

SCIP Workshop Visit scip.zib.de/workshop2018 for all information. Tomorrow and on Thursday: Scientific Talks 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

More information

SCIP Workshop 2014, Berlin, September 30, Introduction to SCIP

SCIP Workshop 2014, Berlin, September 30, Introduction to SCIP SCIP Workshop 2014, Berlin, September 30, 2014 Introduction to SCIP ZIB: Fast Algorithms Fast Computers Konrad-Zuse-Zentrum für Informationstechnik Berlin non-university research institute of the state

More information

Basic Concepts of Constraint Integer Programming

Basic Concepts of Constraint Integer Programming Basic Concepts of Constraint Integer Programming Ambros Gleixner Zuse Institute Berlin September 30, 2015 Outline SCIP Solving Constraint Integer Programs 4 methodologies in optimization An integrated

More information

Large neighbourhood Benders' search

Large neighbourhood Benders' search Large neighbourhood Benders' search Stephen J. Maher Lancaster University Management School, s.maher3@lancaster.ac.uk 8th March 2018 1 / 23 Structured mixed integer programming Basic idea: Minimise a linear

More information

The MIP-Solving-Framework SCIP

The MIP-Solving-Framework SCIP The MIP-Solving-Framework SCIP Timo Berthold Zuse Institut Berlin DFG Research Center MATHEON Mathematics for key technologies Berlin, 23.05.2007 What Is A MIP? Definition MIP The optimization problem

More information

Implementing Constraint Handlers in SCIP

Implementing Constraint Handlers in SCIP Implementing Constraint Handlers in SCIP Gregor Hendel Ambros Gleixner, Felipe Serrano September 30 Outline Why use constraints? Motivation Callback: Default Constraint Handlers of SCIP Implementation

More information

Primal Heuristics in SCIP

Primal Heuristics in SCIP Primal Heuristics in SCIP Timo Berthold Zuse Institute Berlin DFG Research Center MATHEON Mathematics for key technologies Berlin, 10/11/2007 Outline 1 Introduction Basics Integration Into SCIP 2 Available

More information

SCIP. 1 Introduction. 2 Model requirements. Contents. Stefan Vigerske, Humboldt University Berlin, Germany

SCIP. 1 Introduction. 2 Model requirements. Contents. Stefan Vigerske, Humboldt University Berlin, Germany SCIP Stefan Vigerske, Humboldt University Berlin, Germany Contents 1 Introduction.................................................. 673 2 Model requirements..............................................

More information

Cloud Branching MIP workshop, Ohio State University, 23/Jul/2014

Cloud Branching MIP workshop, Ohio State University, 23/Jul/2014 Cloud Branching MIP workshop, Ohio State University, 23/Jul/2014 Timo Berthold Xpress Optimization Team Gerald Gamrath Zuse Institute Berlin Domenico Salvagnin Universita degli Studi di Padova This presentation

More information

The SCIP Optimization Suite 3.2

The SCIP Optimization Suite 3.2 The SCIP Optimization Suite 3.2 Gerald Gamrath 1, Tobias Fischer 2, Tristan Gally 2, Ambros M. Gleixner 1, Gregor Hendel 1, Thorsten Koch 1, Stephen J. Maher 1, Matthias Miltenberger 1, Benjamin Müller

More information

Welcome to the Webinar. What s New in Gurobi 7.5

Welcome to the Webinar. What s New in Gurobi 7.5 Welcome to the Webinar What s New in Gurobi 7.5 Speaker Introduction Dr. Tobias Achterberg Director of R&D at Gurobi Optimization Formerly a developer at ILOG, where he worked on CPLEX 11.0 to 12.6 Obtained

More information

Fundamentals of Integer Programming

Fundamentals of Integer Programming Fundamentals of Integer Programming Di Yuan Department of Information Technology, Uppsala University January 2018 Outline Definition of integer programming Formulating some classical problems with integer

More information

Applied Mixed Integer Programming: Beyond 'The Optimum'

Applied Mixed Integer Programming: Beyond 'The Optimum' Applied Mixed Integer Programming: Beyond 'The Optimum' 14 Nov 2016, Simons Institute, Berkeley Pawel Lichocki Operations Research Team, Google https://developers.google.com/optimization/ Applied Mixed

More information

Exploiting Degeneracy in MIP

Exploiting Degeneracy in MIP Exploiting Degeneracy in MIP Tobias Achterberg 9 January 2018 Aussois Performance Impact in Gurobi 7.5+ 35% 32.0% 30% 25% 20% 15% 14.6% 10% 5.7% 7.9% 6.6% 5% 0% 2.9% 1.2% 0.1% 2.6% 2.6% Time limit: 10000

More information

Outline. Modeling. Outline DMP204 SCHEDULING, TIMETABLING AND ROUTING. 1. Models Lecture 5 Mixed Integer Programming Models and Exercises

Outline. Modeling. Outline DMP204 SCHEDULING, TIMETABLING AND ROUTING. 1. Models Lecture 5 Mixed Integer Programming Models and Exercises Outline DMP204 SCHEDULING, TIMETABLING AND ROUTING 1. Lecture 5 Mixed Integer Programming and Exercises Marco Chiarandini 2. 3. 2 Outline Modeling 1. Min cost flow Shortest path 2. Max flow Assignment

More information

Algorithms II MIP Details

Algorithms II MIP Details Algorithms II MIP Details What s Inside Gurobi Optimizer Algorithms for continuous optimization Algorithms for discrete optimization Automatic presolve for both LP and MIP Algorithms to analyze infeasible

More information

Motivation for Heuristics

Motivation for Heuristics MIP Heuristics 1 Motivation for Heuristics Why not wait for branching? Produce feasible solutions as quickly as possible Often satisfies user demands Avoid exploring unproductive sub trees Better reduced

More information

The Gurobi Optimizer. Bob Bixby

The Gurobi Optimizer. Bob Bixby The Gurobi Optimizer Bob Bixby Outline Gurobi Introduction Company Products Benchmarks Gurobi Technology Rethinking MIP MIP as a bag of tricks 8-Jul-11 2010 Gurobi Optimization 2 Gurobi Optimization Incorporated

More information

Heuristics in MILP. Group 1 D. Assouline, N. Molyneaux, B. Morén. Supervisors: Michel Bierlaire, Andrea Lodi. Zinal 2017 Winter School

Heuristics in MILP. Group 1 D. Assouline, N. Molyneaux, B. Morén. Supervisors: Michel Bierlaire, Andrea Lodi. Zinal 2017 Winter School Heuristics in MILP Group 1 D. Assouline, N. Molyneaux, B. Morén Supervisors: Michel Bierlaire, Andrea Lodi Zinal 2017 Winter School 0 / 23 Primal heuristics Original paper: Fischetti, M. and Lodi, A. (2011).

More information

MVE165/MMG630, Applied Optimization Lecture 8 Integer linear programming algorithms. Ann-Brith Strömberg

MVE165/MMG630, Applied Optimization Lecture 8 Integer linear programming algorithms. Ann-Brith Strömberg MVE165/MMG630, Integer linear programming algorithms Ann-Brith Strömberg 2009 04 15 Methods for ILP: Overview (Ch. 14.1) Enumeration Implicit enumeration: Branch and bound Relaxations Decomposition methods:

More information

Advanced Use of GAMS Solver Links

Advanced Use of GAMS Solver Links Advanced Use of GAMS Solver Links Michael Bussieck, Steven Dirkse, Stefan Vigerske GAMS Development 8th January 2013, ICS Conference, Santa Fe Standard GAMS solve Solve william minimizing cost using mip;

More information

Solving lexicographic multiobjective MIPs with Branch-Cut-Price

Solving lexicographic multiobjective MIPs with Branch-Cut-Price Solving lexicographic multiobjective MIPs with Branch-Cut-Price Marta Eso (The Hotchkiss School) Laszlo Ladanyi (IBM T.J. Watson Research Center) David Jensen (IBM T.J. Watson Research Center) McMaster

More information

How to use your favorite MIP Solver: modeling, solving, cannibalizing. Andrea Lodi University of Bologna, Italy

How to use your favorite MIP Solver: modeling, solving, cannibalizing. Andrea Lodi University of Bologna, Italy How to use your favorite MIP Solver: modeling, solving, cannibalizing Andrea Lodi University of Bologna, Italy andrea.lodi@unibo.it January-February, 2012 @ Universität Wien A. Lodi, How to use your favorite

More information

MVE165/MMG631 Linear and integer optimization with applications Lecture 9 Discrete optimization: theory and algorithms

MVE165/MMG631 Linear and integer optimization with applications Lecture 9 Discrete optimization: theory and algorithms MVE165/MMG631 Linear and integer optimization with applications Lecture 9 Discrete optimization: theory and algorithms Ann-Brith Strömberg 2018 04 24 Lecture 9 Linear and integer optimization with applications

More information

Gurobi Guidelines for Numerical Issues February 2017

Gurobi Guidelines for Numerical Issues February 2017 Gurobi Guidelines for Numerical Issues February 2017 Background Models with numerical issues can lead to undesirable results: slow performance, wrong answers or inconsistent behavior. When solving a model

More information

The Gurobi Solver V1.0

The Gurobi Solver V1.0 The Gurobi Solver V1.0 Robert E. Bixby Gurobi Optimization & Rice University Ed Rothberg, Zonghao Gu Gurobi Optimization 1 1 Oct 09 Overview Background Rethinking the MIP solver Introduction Tree of Trees

More information

The SCIP Optimization Suite 4.0

The SCIP Optimization Suite 4.0 Zuse Institute Berlin Takustrasse 7 D-14195 Berlin-Dahlem Germany STEPHEN J. MAHER, TOBIAS FISCHER, TRISTAN GALLY, GERALD GAMRATH, AMBROS GLEIXNER, ROBERT LION GOTTWALD, GREGOR HENDEL, THORSTEN KOCH, MARCO

More information

Noncommercial Software for Mixed-Integer Linear Programming

Noncommercial Software for Mixed-Integer Linear Programming Noncommercial Software for Mixed-Integer Linear Programming J. T. Linderoth T. K. Ralphs December 23, 2004 Abstract We present an overview of noncommercial software tools for the solution of mixed-integer

More information

On Mixed-Integer (Linear) Programming and its connection with Data Science

On Mixed-Integer (Linear) Programming and its connection with Data Science On Mixed-Integer (Linear) Programming and its connection with Data Science Andrea Lodi Canada Excellence Research Chair École Polytechnique de Montréal, Québec, Canada andrea.lodi@polymtl.ca January 16-20,

More information

Computational Integer Programming. Lecture 12: Branch and Cut. Dr. Ted Ralphs

Computational Integer Programming. Lecture 12: Branch and Cut. Dr. Ted Ralphs Computational Integer Programming Lecture 12: Branch and Cut Dr. Ted Ralphs Computational MILP Lecture 12 1 Reading for This Lecture Wolsey Section 9.6 Nemhauser and Wolsey Section II.6 Martin Computational

More information

Introduction to Mathematical Programming IE496. Final Review. Dr. Ted Ralphs

Introduction to Mathematical Programming IE496. Final Review. Dr. Ted Ralphs Introduction to Mathematical Programming IE496 Final Review Dr. Ted Ralphs IE496 Final Review 1 Course Wrap-up: Chapter 2 In the introduction, we discussed the general framework of mathematical modeling

More information

Addressing degeneracy in the dual simplex algorithm using a decompositon approach

Addressing degeneracy in the dual simplex algorithm using a decompositon approach Addressing degeneracy in the dual simplex algorithm using a decompositon approach Ambros Gleixner, Stephen J Maher, Matthias Miltenberger Zuse Institute Berlin Berlin, Germany 16th July 2015 @sj_maher

More information

Linear & Integer Programming: A Decade of Computation

Linear & Integer Programming: A Decade of Computation Linear & Integer Programming: A Decade of Computation Robert E. Bixby, Mary Fenelon, Zongao Gu, Irv Lustig, Ed Rothberg, Roland Wunderling 1 Outline Progress in computing machines Linear programming (LP)

More information

RENS. The optimal rounding. Timo Berthold

RENS. The optimal rounding. Timo Berthold Math. Prog. Comp. (2014) 6:33 54 DOI 10.1007/s12532-013-0060-9 FULL LENGTH PAPER RENS The optimal rounding Timo Berthold Received: 25 April 2012 / Accepted: 2 October 2013 / Published online: 1 November

More information

Methods and Models for Combinatorial Optimization Exact methods for the Traveling Salesman Problem

Methods and Models for Combinatorial Optimization Exact methods for the Traveling Salesman Problem Methods and Models for Combinatorial Optimization Exact methods for the Traveling Salesman Problem L. De Giovanni M. Di Summa The Traveling Salesman Problem (TSP) is an optimization problem on a directed

More information

IBM ILOG CPLEX Optimization Studio CPLEX Parameters Reference. Version 12 Release 7 IBM

IBM ILOG CPLEX Optimization Studio CPLEX Parameters Reference. Version 12 Release 7 IBM IBM ILOG CPLEX Optimization Studio CPLEX Parameters Reference Version 12 Release 7 IBM IBM ILOG CPLEX Optimization Studio CPLEX Parameters Reference Version 12 Release 7 IBM Copyright notice Describes

More information

Heuristics in Commercial MIP Solvers Part I (Heuristics in IBM CPLEX)

Heuristics in Commercial MIP Solvers Part I (Heuristics in IBM CPLEX) Andrea Tramontani CPLEX Optimization, IBM CWI, Amsterdam, June 12, 2018 Heuristics in Commercial MIP Solvers Part I (Heuristics in IBM CPLEX) Agenda CPLEX Branch-and-Bound (B&B) Primal heuristics in CPLEX

More information

Benders in a nutshell Matteo Fischetti, University of Padova

Benders in a nutshell Matteo Fischetti, University of Padova Benders in a nutshell Matteo Fischetti, University of Padova ODS 2017, Sorrento, September 2017 1 Benders decomposition The original Benders decomposition from the 1960s uses two distinct ingredients for

More information

Course Summary! What have we learned and what are we expected to know?

Course Summary! What have we learned and what are we expected to know? Course Summary! What have we learned and what are we expected to know? Overview! Introduction Modelling in MiniZinc Finite Domain Constraint Solving Search Linear Programming and Network Flow Mixed Integer

More information

Exact solutions to mixed-integer linear programming problems

Exact solutions to mixed-integer linear programming problems Exact solutions to mixed-integer linear programming problems Dan Steffy Zuse Institute Berlin and Oakland University Joint work with Bill Cook, Thorsten Koch and Kati Wolter November 18, 2011 Mixed-Integer

More information

Column Generation Based Primal Heuristics

Column Generation Based Primal Heuristics Column Generation Based Primal Heuristics C. Joncour, S. Michel, R. Sadykov, D. Sverdlov, F. Vanderbeck University Bordeaux 1 & INRIA team RealOpt Outline 1 Context Generic Primal Heuristics The Branch-and-Price

More information

Topics. Introduction. Specific tuning/troubleshooting topics "It crashed" Gurobi parameters The tuning tool. LP tuning. MIP tuning

Topics. Introduction. Specific tuning/troubleshooting topics It crashed Gurobi parameters The tuning tool. LP tuning. MIP tuning Tuning II Topics Introduction Gurobi parameters The tuning tool Specific tuning/troubleshooting topics "It crashed" The importance of being specific LP tuning The importance of scaling MIP tuning Performance

More information

February 19, Integer programming. Outline. Problem formulation. Branch-andbound

February 19, Integer programming. Outline. Problem formulation. Branch-andbound Olga Galinina olga.galinina@tut.fi ELT-53656 Network Analysis and Dimensioning II Department of Electronics and Communications Engineering Tampere University of Technology, Tampere, Finland February 19,

More information

Integer Programming Chapter 9

Integer Programming Chapter 9 1 Integer Programming Chapter 9 University of Chicago Booth School of Business Kipp Martin October 30, 2017 2 Outline Branch and Bound Theory Branch and Bound Linear Programming Node Selection Strategies

More information

The AIMMS Outer Approximation Algorithm for MINLP

The AIMMS Outer Approximation Algorithm for MINLP The AIMMS Outer Approximation Algorithm for MINLP (using GMP functionality) By Marcel Hunting marcel.hunting@aimms.com November 2011 This document describes how to use the GMP variant of the AIMMS Outer

More information

LaGO - A solver for mixed integer nonlinear programming

LaGO - A solver for mixed integer nonlinear programming LaGO - A solver for mixed integer nonlinear programming Ivo Nowak June 1 2005 Problem formulation MINLP: min f(x, y) s.t. g(x, y) 0 h(x, y) = 0 x [x, x] y [y, y] integer MINLP: - n

More information

Algorithms for Decision Support. Integer linear programming models

Algorithms for Decision Support. Integer linear programming models Algorithms for Decision Support Integer linear programming models 1 People with reduced mobility (PRM) require assistance when travelling through the airport http://www.schiphol.nl/travellers/atschiphol/informationforpassengerswithreducedmobility.htm

More information

Penalty Alternating Direction Methods for Mixed- Integer Optimization: A New View on Feasibility Pumps

Penalty Alternating Direction Methods for Mixed- Integer Optimization: A New View on Feasibility Pumps Penalty Alternating Direction Methods for Mixed- Integer Optimization: A New View on Feasibility Pumps Björn Geißler, Antonio Morsi, Lars Schewe, Martin Schmidt FAU Erlangen-Nürnberg, Discrete Optimization

More information

Conflict Analysis in Mixed Integer Programming

Conflict Analysis in Mixed Integer Programming Konrad-Zuse-Zentrum für Informationstechnik Berlin Takustraße 7 D-14195 Berlin-Dahlem Germany TOBIAS ACHTERBERG Conflict Analysis in Mixed Integer Programming URL: http://www.zib.de/projects/integer-optimization/mip

More information

The AIMMS Outer Approximation Algorithm for MINLP

The AIMMS Outer Approximation Algorithm for MINLP The AIMMS Outer Approximation Algorithm for MINLP (using GMP functionality) By Marcel Hunting Paragon Decision Technology BV An AIMMS White Paper November, 2011 Abstract This document describes how to

More information

A Nonlinear Presolve Algorithm in AIMMS

A Nonlinear Presolve Algorithm in AIMMS A Nonlinear Presolve Algorithm in AIMMS By Marcel Hunting marcel.hunting@aimms.com November 2011 This paper describes the AIMMS presolve algorithm for nonlinear problems. This presolve algorithm uses standard

More information

2. Modeling AEA 2018/2019. Based on Algorithm Engineering: Bridging the Gap Between Algorithm Theory and Practice - ch. 2

2. Modeling AEA 2018/2019. Based on Algorithm Engineering: Bridging the Gap Between Algorithm Theory and Practice - ch. 2 2. Modeling AEA 2018/2019 Based on Algorithm Engineering: Bridging the Gap Between Algorithm Theory and Practice - ch. 2 Content Introduction Modeling phases Modeling Frameworks Graph Based Models Mixed

More information

Experience with CGL in the PICO Mixed- Integer Programming Solver

Experience with CGL in the PICO Mixed- Integer Programming Solver Experience with CGL in the PICO Mixed- Integer Programming Solver Cynthia A. Phillips, Sandia National Laboratories Joint work with Jonathan Eckstein, Rutgers William Hart, Sandia Sandia is a multiprogram

More information

Mixed Integer Programming Class Library (MIPCL)

Mixed Integer Programming Class Library (MIPCL) Mixed Integer Programming Class Library (MIPCL) Nicolai N. Pisaruk Belarus State University, Faculty of Economy, Nezavisimosty Av., 4, 220088 Minsk, Belarus April 20, 2016 Abstract The Mixed Integer Programming

More information

Pivot and Gomory Cut. A MIP Feasibility Heuristic NSERC

Pivot and Gomory Cut. A MIP Feasibility Heuristic NSERC Pivot and Gomory Cut A MIP Feasibility Heuristic Shubhashis Ghosh Ryan Hayward shubhashis@randomknowledge.net hayward@cs.ualberta.ca NSERC CGGT 2007 Kyoto Jun 11-15 page 1 problem given a MIP, find a feasible

More information

Handling first-order linear constraints with SCIP

Handling first-order linear constraints with SCIP Handling first-order linear constraints with SCIP James Cussens, University of York KU Leuven, 2015-02-16 James Cussens, University of York FO with SCIP KU Leuven, 2015-02-16 1 / 18 MIP Mixed integer programs

More information

Modern Benders (in a nutshell)

Modern Benders (in a nutshell) Modern Benders (in a nutshell) Matteo Fischetti, University of Padova (based on joint work with Ivana Ljubic and Markus Sinnl) Lunteren Conference on the Mathematics of Operations Research, January 17,

More information

What's New in Gurobi 7.0

What's New in Gurobi 7.0 What's New in Gurobi 7.0 What's New? New employees New features in 7.0 Major and minor Performance improvements New Gurobi Instant Cloud 2 The newest members of the Gurobi team Daniel Espinoza Senior Developer

More information

5.3 Cutting plane methods and Gomory fractional cuts

5.3 Cutting plane methods and Gomory fractional cuts 5.3 Cutting plane methods and Gomory fractional cuts (ILP) min c T x s.t. Ax b x 0integer feasible region X Assumption: a ij, c j and b i integer. Observation: The feasible region of an ILP can be described

More information

Integer Optimization: Mathematics, Algorithms, and Applications

Integer Optimization: Mathematics, Algorithms, and Applications Integer Optimization: Mathematics, Algorithms, and Applications Sommerschool Jacobs University, July 2007 DFG Research Center Matheon Mathematics for key technologies Thorsten Koch Zuse Institute Berlin

More information

SAS/OR 14.1 User s Guide: Mathematical Programming. The Mixed Integer Linear Programming Solver

SAS/OR 14.1 User s Guide: Mathematical Programming. The Mixed Integer Linear Programming Solver SAS/OR 14.1 User s Guide: Mathematical Programming The Mixed Integer Linear Programming Solver This document is an individual chapter from SAS/OR 14.1 User s Guide: Mathematical Programming. The correct

More information

CSE 417 Branch & Bound (pt 4) Branch & Bound

CSE 417 Branch & Bound (pt 4) Branch & Bound CSE 417 Branch & Bound (pt 4) Branch & Bound Reminders > HW8 due today > HW9 will be posted tomorrow start early program will be slow, so debugging will be slow... Review of previous lectures > Complexity

More information

The Decomposition Algorithm

The Decomposition Algorithm SAS/OR 14.3 User s Guide Mathematical Programming The Decomposition Algorithm This document is an individual chapter from SAS/OR 14.3 User s Guide: Mathematical Programming. The correct bibliographic citation

More information

A LARGE SCALE INTEGER AND COMBINATORIAL OPTIMIZER

A LARGE SCALE INTEGER AND COMBINATORIAL OPTIMIZER A LARGE SCALE INTEGER AND COMBINATORIAL OPTIMIZER By Qun Chen A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy (Industrial Engineering) at the

More information

3 INTEGER LINEAR PROGRAMMING

3 INTEGER LINEAR PROGRAMMING 3 INTEGER LINEAR PROGRAMMING PROBLEM DEFINITION Integer linear programming problem (ILP) of the decision variables x 1,..,x n : (ILP) subject to minimize c x j j n j= 1 a ij x j x j 0 x j integer n j=

More information

Algorithms for Integer Programming

Algorithms for Integer Programming Algorithms for Integer Programming Laura Galli November 9, 2016 Unlike linear programming problems, integer programming problems are very difficult to solve. In fact, no efficient general algorithm is

More information

Solving Resource Allocation/Scheduling Problems with Constraint Integer Programming

Solving Resource Allocation/Scheduling Problems with Constraint Integer Programming Konrad-Zuse-Zentrum für Informationstechnik Berlin Takustraße 7 D-14195 Berlin-Dahlem Germany STEFAN HEINZ J. CHRISTOPHER BECK Solving Resource Allocation/Scheduling Problems with Constraint Integer Programming

More information

The Heuristic (Dark) Side of MIP Solvers. Asja Derviskadic, EPFL Vit Prochazka, NHH Christoph Schaefer, EPFL

The Heuristic (Dark) Side of MIP Solvers. Asja Derviskadic, EPFL Vit Prochazka, NHH Christoph Schaefer, EPFL The Heuristic (Dark) Side of MIP Solvers Asja Derviskadic, EPFL Vit Prochazka, NHH Christoph Schaefer, EPFL 1 Table of content [Lodi], The Heuristic (Dark) Side of MIP Solvers, Hybrid Metaheuristics, 273-284,

More information

The Mixed Integer Linear Programming Solver

The Mixed Integer Linear Programming Solver SAS/OR 14.3 User s Guide Mathematical Programming The Mixed Integer Linear Programming Solver This document is an individual chapter from SAS/OR 14.3 User s Guide: Mathematical Programming. The correct

More information

Parallel Branch & Bound

Parallel Branch & Bound Parallel Branch & Bound Bernard Gendron Université de Montréal gendron@iro.umontreal.ca Outline Mixed integer programming (MIP) and branch & bound (B&B) Linear programming (LP) based B&B Relaxation and

More information

lpsymphony - Integer Linear Programming in R

lpsymphony - Integer Linear Programming in R lpsymphony - Integer Linear Programming in R Vladislav Kim October 30, 2017 Contents 1 Introduction 2 2 lpsymphony: Quick Start 2 3 Integer Linear Programming 5 31 Equivalent and Dual Formulations 5 32

More information

Parallel and Distributed Optimization with Gurobi Optimizer

Parallel and Distributed Optimization with Gurobi Optimizer Parallel and Distributed Optimization with Gurobi Optimizer Our Presenter Dr. Tobias Achterberg Developer, Gurobi Optimization 2 Parallel & Distributed Optimization 3 Terminology for this presentation

More information

Branch-and-cut implementation of Benders decomposition Matteo Fischetti, University of Padova

Branch-and-cut implementation of Benders decomposition Matteo Fischetti, University of Padova Branch-and-cut implementation of Benders decomposition Matteo Fischetti, University of Padova 8th Cargese-Porquerolles Workshop on Combinatorial Optimization, August 2017 1 Mixed-Integer Programming We

More information

Tutorial on Integer Programming for Visual Computing

Tutorial on Integer Programming for Visual Computing Tutorial on Integer Programming for Visual Computing Peter Wonka and Chi-han Peng November 2018 1 1 Notation The vector space is denoted as R,R n,r m n,v,w Matricies are denoted by upper case, italic,

More information

Math Models of OR: The Simplex Algorithm: Practical Considerations

Math Models of OR: The Simplex Algorithm: Practical Considerations Math Models of OR: The Simplex Algorithm: Practical Considerations John E. Mitchell Department of Mathematical Sciences RPI, Troy, NY 12180 USA September 2018 Mitchell Simplex Algorithm: Practical Considerations

More information

Column Generation Method for an Agent Scheduling Problem

Column Generation Method for an Agent Scheduling Problem Column Generation Method for an Agent Scheduling Problem Balázs Dezső Alpár Jüttner Péter Kovács Dept. of Algorithms and Their Applications, and Dept. of Operations Research Eötvös Loránd University, Budapest,

More information

GUROBI 1 GUROBI Installation 2 GUROBI Using the Matlab Interface 3 GUROBI Features 4 GUROBI Appendix A 5 GUROBI Appendix B 13 GUROBI Appendix C 19

GUROBI 1 GUROBI Installation 2 GUROBI Using the Matlab Interface 3 GUROBI Features 4 GUROBI Appendix A 5 GUROBI Appendix B 13 GUROBI Appendix C 19 GUROBI PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Sat, 21 Jan 2012 17:27:25 UTC Contents Articles GUROBI 1 GUROBI Installation

More information

Rounding and Propagation Heuristics for Mixed Integer Programming

Rounding and Propagation Heuristics for Mixed Integer Programming Konrad-Zuse-Zentrum für Informationstechnik Berlin Takustraße 7 D-9 Berlin-Dahlem Germany TOBIAS ACHTERBERG TIMO BERTHOLD GREGOR HENDEL Rounding and Propagation Heuristics for Mixed Integer Programming

More information

Modelling. Christina Burt, Stephen J. Maher, Jakob Witzig. 29th September Zuse Institute Berlin Berlin, Germany

Modelling. Christina Burt, Stephen J. Maher, Jakob Witzig. 29th September Zuse Institute Berlin Berlin, Germany Modelling Christina Burt, Stephen J. Maher, Jakob Witzig Zuse Institute Berlin Berlin, Germany 29th September 2015 Modelling Languages Jakob Witzig Burt, Maher, Witzig Modelling 1 / 22 Modelling Languages:

More information

Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Methods

Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Methods Carnegie Mellon University Research Showcase @ CMU Department of Chemical Engineering Carnegie Institute of Technology 2-2014 Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Methods

More information

Integer Programming! Using linear programming to solve discrete problems

Integer Programming! Using linear programming to solve discrete problems Integer Programming! Using linear programming to solve discrete problems Solving Discrete Problems Linear programming solves continuous problem! problems over the reai numbers.! For the remainder of the

More information

A Parallel Macro Partitioning Framework for Solving Mixed Integer Programs

A Parallel Macro Partitioning Framework for Solving Mixed Integer Programs This research is funded by NSF, CMMI and CIEG 0521953: Exploiting Cyberinfrastructure to Solve Real-time Integer Programs A Parallel Macro Partitioning Framework for Solving Mixed Integer Programs Mahdi

More information

7KH9HKLFOH5RXWLQJSUREOHP

7KH9HKLFOH5RXWLQJSUREOHP 7K9KO5RXWJSUREOP Given a set of vehicles with a certain capacity located at a depot and a set of customers with different demands at various locations, the vehicle routing problem (VRP) is how to satisfy

More information

Progress in Linear Programming-Based Algorithms for Integer Programming: An Exposition

Progress in Linear Programming-Based Algorithms for Integer Programming: An Exposition 2 INFORMS Journal on Computing 0899-1499 100 1201-0002 $05.00 Vol. 12, No. 1, Winter 2000 2000 INFORMS Progress in Linear Programming-Based Algorithms for Integer Programming: An Exposition ELLIS L. JOHNSON,

More information

State-of-the-Optimization using Xpress-MP v2006

State-of-the-Optimization using Xpress-MP v2006 State-of-the-Optimization using Xpress-MP v2006 INFORMS Annual Meeting Pittsburgh, USA November 5 8, 2006 by Alkis Vazacopoulos Outline LP benchmarks Xpress performance on MIPLIB 2003 Conclusions 3 Barrier

More information

George Reloaded. M. Monaci (University of Padova, Italy) joint work with M. Fischetti. MIP Workshop, July 2010

George Reloaded. M. Monaci (University of Padova, Italy) joint work with M. Fischetti. MIP Workshop, July 2010 George Reloaded M. Monaci (University of Padova, Italy) joint work with M. Fischetti MIP Workshop, July 2010 Why George? Because of Karzan, Nemhauser, Savelsbergh Information-based branching schemes for

More information

Primal Heuristics for Branch-and-Price Algorithms

Primal Heuristics for Branch-and-Price Algorithms Primal Heuristics for Branch-and-Price Algorithms Marco Lübbecke and Christian Puchert Abstract In this paper, we present several primal heuristics which we implemented in the branch-and-price solver GCG

More information

Machine Learning for Software Engineering

Machine Learning for Software Engineering Machine Learning for Software Engineering Introduction and Motivation Prof. Dr.-Ing. Norbert Siegmund Intelligent Software Systems 1 2 Organizational Stuff Lectures: Tuesday 11:00 12:30 in room SR015 Cover

More information

Wireless frequency auctions: Mixed Integer Programs and Dantzig-Wolfe decomposition

Wireless frequency auctions: Mixed Integer Programs and Dantzig-Wolfe decomposition Wireless frequency auctions: Mixed Integer Programs and Dantzig-Wolfe decomposition Laszlo Ladanyi (IBM T.J. Watson Research Center) joint work with Marta Eso (The Hotchkiss School) David Jensen (IBM T.J.

More information

Discrete Optimization with Decision Diagrams

Discrete Optimization with Decision Diagrams Discrete Optimization with Decision Diagrams J. N. Hooker Joint work with David Bergman, André Ciré, Willem van Hoeve Carnegie Mellon University Australian OR Society, May 2014 Goal Find an alternative

More information

Tools for Modeling Optimization Problems A Short Course. Algebraic Modeling Systems. Dr. Ted Ralphs

Tools for Modeling Optimization Problems A Short Course. Algebraic Modeling Systems. Dr. Ted Ralphs Tools for Modeling Optimization Problems A Short Course Algebraic Modeling Systems Dr. Ted Ralphs Algebraic Modeling Systems 1 The Modeling Process Generally speaking, we follow a four-step process in

More information

Experiments with a Generic Dantzig-Wolfe Decomposition for Integer Programs

Experiments with a Generic Dantzig-Wolfe Decomposition for Integer Programs Experiments with a Generic Dantzig-Wolfe Decomposition for Integer Programs Gerald Gamrath 1 and Marco E. Lübbecke 2 1 Zuse Institute Berlin, Takustr. 7, 14195 Berlin, Germany gamrath@zib.de 2 Technische

More information

56:272 Integer Programming & Network Flows Final Examination -- December 14, 1998

56:272 Integer Programming & Network Flows Final Examination -- December 14, 1998 56:272 Integer Programming & Network Flows Final Examination -- December 14, 1998 Part A: Answer any four of the five problems. (15 points each) 1. Transportation problem 2. Integer LP Model Formulation

More information

A Steady-State Genetic Algorithm for Traveling Salesman Problem with Pickup and Delivery

A Steady-State Genetic Algorithm for Traveling Salesman Problem with Pickup and Delivery A Steady-State Genetic Algorithm for Traveling Salesman Problem with Pickup and Delivery Monika Sharma 1, Deepak Sharma 2 1 Research Scholar Department of Computer Science and Engineering, NNSS SGI Samalkha,

More information

Selected Topics in Column Generation

Selected Topics in Column Generation Selected Topics in Column Generation February 1, 2007 Choosing a solver for the Master Solve in the dual space(kelly s method) by applying a cutting plane algorithm In the bundle method(lemarechal), a

More information

Last topic: Summary; Heuristics and Approximation Algorithms Topics we studied so far:

Last topic: Summary; Heuristics and Approximation Algorithms Topics we studied so far: Last topic: Summary; Heuristics and Approximation Algorithms Topics we studied so far: I Strength of formulations; improving formulations by adding valid inequalities I Relaxations and dual problems; obtaining

More information

AIMMS Function Reference - GMPInstance Procedures and Functions

AIMMS Function Reference - GMPInstance Procedures and Functions AIMMS Function Reference - Instance Procedures and Functions This file contains only one chapter of the book. For a free download of the complete book in pdf format, please visit www.aimms.com Aimms 3.13

More information

Foundations of Computing

Foundations of Computing Foundations of Computing Darmstadt University of Technology Dept. Computer Science Winter Term 2005 / 2006 Copyright c 2004 by Matthias Müller-Hannemann and Karsten Weihe All rights reserved http://www.algo.informatik.tu-darmstadt.de/

More information

Cutting Planes for Some Nonconvex Combinatorial Optimization Problems

Cutting Planes for Some Nonconvex Combinatorial Optimization Problems Cutting Planes for Some Nonconvex Combinatorial Optimization Problems Ismael Regis de Farias Jr. Department of Industrial Engineering Texas Tech Summary Problem definition Solution strategy Multiple-choice

More information

A Computational Study of Conflict Graphs and Aggressive Cut Separation in Integer Programming

A Computational Study of Conflict Graphs and Aggressive Cut Separation in Integer Programming A Computational Study of Conflict Graphs and Aggressive Cut Separation in Integer Programming Samuel Souza Brito and Haroldo Gambini Santos 1 Dep. de Computação, Universidade Federal de Ouro Preto - UFOP

More information