A computational study of Gomory cut generators ejols 1 , Fran¸ cois Margot 1 , Giacomo Nannicini 2 Gerard Cornu´ 1. CMU Tepper School of Business, Pittsburgh, PA. 2. Singapore University of Technology and Design, Singapore, and MIT Sloan School of Management, Cambridge, MA. January 12, 2012 G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 1 / 36
Summary of Talk Motivation 1 Cut generation parameters 2 Failures and Feasibility 3 Dive-and-Cut 4 Computational framework 5 Optimizing GMI cut generators 6 G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 2 / 36
Motivation 1 Cut generation parameters 2 Failures and Feasibility 3 Dive-and-Cut 4 Computational framework 5 Optimizing GMI cut generators 6 G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 3 / 36
The problem We consider the following problem: c ⊤ x min Ax ≥ b (MILP) R n x ∈ + ∀ j ∈ N I x j ∈ Z , where c ∈ Q n , b ∈ Q m , A ∈ Q m × n and N I ⊂ { 1 , . . . , n } We denote by (LP) the Linear Programming relaxation of (MILP) G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 4 / 36
Introduction General-purpose solvers for (MILP) rely on Branch-and-Cut Gomory Mixed-Integer (GMI) [Gomory, 1960] cuts are one of the most important cutting plane families [Balas et al., 1996, Bixby and Rothberg, 2007] used by state-of-the-art software Surprisingly, there is no rigorous study of GMI cut generation in the literature G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 5 / 36
Motivation 1 Cut generation parameters 2 Failures and Feasibility 3 Dive-and-Cut 4 Computational framework 5 Optimizing GMI cut generators 6 G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 6 / 36
The GMI formula G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 7 / 36
GMI cuts for dummies Cut generation loop: Solve LP relaxation 1 For each basic integer variable that has a fractional value, generate a 2 GMI cut Add round of cuts to the LP relaxation 3 Repeat 4 G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 8 / 36
GMI cuts for dummies Cut generation loop: Solve LP relaxation 1 For each basic integer variable that has a fractional value, generate a 2 GMI cut Add round of cuts to the LP relaxation 3 Repeat 4 That’s it! G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 8 / 36
GMI cuts for dummies Cut generation loop: Solve LP relaxation 1 For each basic integer variable that has a fractional value, generate a 2 GMI cut Add round of cuts to the LP relaxation 3 Repeat 4 That’s it! . . . is it? G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 8 / 36
How I wish things were that simple This scheme is not a good idea Because of floating point (finite precision) arithmetic, not all rational numbers can be represented exactly: round-off error ◮ For q ∈ Q , let R ( q ) be its representation as a 64-bit floating point number ◮ We can have q 1 + q 2 = q 3 but R ( q 1 ) + R ( q 2 ) � = R ( q 3 ) ! Operations on numbers can inflate errors In rational arithmetic, computations can be checked exactly [Espinoza, 2006, Cook et al., 2011] Typically, we use floating point because of its rapidity G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 9 / 36
GMI cuts in practice Several operations are performed on generated cutting planes to reduce occurrence of numerical problems A number of empirical rules are applied in open-source codes (COIN-OR Cgl, SCIP) ◮ Cut modification ◮ Cut rejection G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 10 / 36
GMI cuts in practice Several operations are performed on generated cutting planes to reduce occurrence of numerical problems A number of empirical rules are applied in open-source codes (COIN-OR Cgl, SCIP) ◮ Cut modification ◮ Cut rejection Analysis applies to all tableau cut generators G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 10 / 36
Cut modification and rejection routines Cut modification (and its parameters) ◮ Coefficient Removal ( EPS ELIM for surplus variables, EPS COEFF for original variables) ◮ Rhs Relaxation ( EPS RELAX ABS , EPS RELAX REL ) Cut rejection (and its parameters) ◮ Fractionality Check ( AWAY ) ◮ Dynamism Check ( MAX DYN ) ◮ Support Check ( MAX SUPP ABS , MAX SUPP REL ) ◮ Violation Check ( MIN VIOL ) Scaling – ignored here Some cut generators distinguish variables with large bounds ( ≥ LUB ) and treat them separately (e.g. EPS COEFF LUB , MAX DYN LUB ) G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 11 / 36
Cut generation parameters 12 parameters involved in the generation of each cutting plane Their value is chosen after tests on a small number of instances Are all the parameters necessary? What value should they take? To answer these questions, we need a framework for testing cut generators G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 12 / 36
Strength vs Safety Properties of a good cut generator: G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 13 / 36
Strength vs Safety Properties of a good cut generator: ◮ Decreases solution time with Branch-and-Cut G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 13 / 36
Strength vs Safety Properties of a good cut generator: ◮ Decreases solution time with Branch-and-Cut ← Strength G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 13 / 36
Strength vs Safety Properties of a good cut generator: ◮ Decreases solution time with Branch-and-Cut ← Strength ◮ Does not cut off feasible solutions or lead to numerical failures of LP solver G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 13 / 36
Strength vs Safety Properties of a good cut generator: ◮ Decreases solution time with Branch-and-Cut ← Strength ◮ Does not cut off feasible solutions or lead to numerical failures of LP solver ← Safety G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 13 / 36
Strength vs Safety Properties of a good cut generator: ◮ Decreases solution time with Branch-and-Cut ← Strength ◮ Does not cut off feasible solutions or lead to numerical failures of LP solver ← Safety Safety must be tested before strength G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 13 / 36
Strength vs Safety Properties of a good cut generator: ◮ Decreases solution time with Branch-and-Cut ← Strength ◮ Does not cut off feasible solutions or lead to numerical failures of LP solver ← Safety Safety must be tested before strength Goal: develop a framework for testing safety of cut generators in a Branch-and-Cut setting, so that strength of generators with similar safety can be compared Related work: [Margot, 2009] G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 13 / 36
Strength vs Safety Properties of a good cut generator: ◮ Decreases solution time with Branch-and-Cut ← Strength ◮ Does not cut off feasible solutions or lead to numerical failures of LP solver ← Safety Safety must be tested before strength Goal: develop a framework for testing safety of cut generators in a Branch-and-Cut setting, so that strength of generators with similar safety can be compared Related work: [Margot, 2009] Define “safe” and “unsafe” G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 13 / 36
Motivation 1 Cut generation parameters 2 Failures and Feasibility 3 Dive-and-Cut 4 Computational framework 5 Optimizing GMI cut generators 6 G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 14 / 36
Failures Assume that we employ a cut generator in the typical cut generation loop A failure of a given cut generator on (MILP) is the occurrence of one of the following events: A cutting plane that cuts off a known integral feasible solution to 1 (MILP) is generated (LP) becomes infeasible after the addition of cutting planes, but an 2 integral feasible solution for the original problem is known A time limit for cut generation and (LP) resolve is hit 3 G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 15 / 36
Feasibility In floating point arithmetic, we have to accept slight violations of the constraints Notation: ◮ Rows of A : a i , i = 1 , . . . , m ◮ For k > 0 , [ k ] is the set { 1 , . . . , k } A point x ∗ is ( ǫ abs , ǫ rel , ǫ int )-feasible for (MILP) if: ∀ i ∈ N I , x ∗ i − ⌊ x ∗ i ⌉ ≤ ǫ int 1 min i ∈ [ m ] { a i x ∗ − b i } ≥ − ǫ abs 2 min i ∈ [ m ] { ( a i x ∗ − b i ) / � a i � 2 } ≥ − ǫ rel 3 ∃ x ′ : Ax ′ ≥ b, x ′ ≥ 0 , � x ∗ − x ′ � ≤ ǫ rel 4 G. Nannicini (SUTD/MIT) Study of Gomory cut generators January 12, 2012 16 / 36
Recommend
More recommend