Cutting-plane method
The cutting-plane method is an iterative algorithm in mathematical optimization used to solve integer linear programming (ILP) and mixed-integer linear programming (MILP) problems by enhancing the linear programming (LP) relaxation.[1] It begins by solving the LP relaxation to obtain an optimal solution, which may be fractional; if so, valid inequalities known as cutting planes are generated and added to the formulation to exclude the fractional point from the feasible region while preserving all integer feasible solutions.[2] This process repeats, tightening the LP bounds toward the convex hull of integer solutions until an integer optimal solution is achieved.[3]
The method was pioneered by mathematician Ralph E. Gomory in 1958, who introduced it as a finite procedure for pure integer programs in his paper "Outline of an Algorithm for Integer Solutions to Linear Programs," published in the Bulletin of the American Mathematical Society.[4] Gomory's original approach focused on deriving cuts from the optimal simplex tableau of the LP relaxation, ensuring convergence in a finite number of steps for problems with bounded feasible regions.[1] Over time, the technique evolved to handle mixed-integer cases and was integrated into branch-and-cut algorithms, combining cutting planes with branch-and-bound for practical efficiency in large-scale problems.[3]
Central to the method are various types of cutting planes, each designed to strengthen the relaxation. Gomory cuts, the foundational type, are derived from a basic feasible solution's tableau row by using fractional parts of coefficients to form inequalities like \sum (a_j - \lfloor a_j \rfloor) x_j \geq b - \lfloor b \rfloor, where a_j and b are from the constraint equation, ensuring the cut eliminates the current fractional solution.[2] Extensions include Chvátal-Gomory cuts, which round coefficients after nonnegative combinations of original constraints, and Gomory mixed-integer (GMI) cuts, tailored for MILPs by partitioning variables into integer and continuous sets.[3] Split cuts, based on integer disjunctions, further generalize the approach by considering unions of polyhedra defined by conditions like \pi x \leq \beta or \pi x \geq \beta + 1.[3]
In practice, cutting-plane methods address the separation problem—finding violated inequalities—through exact or heuristic procedures, often integrated into solvers like CPLEX or Gurobi.[1] They have proven effective in applications such as the traveling salesman problem, where subtour elimination and comb inequalities serve as cuts, and knapsack or set-packing problems, dramatically reducing computation times by improving bounds early in the process.[3] Despite challenges like slow convergence and numerical instability in some instances, the method remains a cornerstone of modern integer optimization, with ongoing research enhancing cut generation and selection.[2]
Overview
Definition and Principles
The cutting-plane method is an optimization algorithm employed in integer programming to solve problems where variables must take integer values. It operates by iteratively solving a linear programming (LP) relaxation of the original integer program and adding linear inequalities, called cuts, to eliminate non-integer (fractional) solutions from the feasible region while preserving all feasible integer solutions. This process refines the polyhedral approximation of the integer feasible set until an integer-optimal solution is obtained.[5]
Central principles of the method require that each cut be valid—satisfied by every point in the integer feasible set—and separating—violated by the current LP relaxation's optimal solution. Valid cuts ensure no integer solutions are erroneously excluded, while separating cuts progressively tighten the relaxation by "cutting off" fractional vertices, improving the bound on the objective function without altering the integer optimum. This dual property allows the method to converge to the convex hull of the feasible integer points through successive polyhedral intersections.[6][3]
The general workflow follows an iterative loop: initialize the LP relaxation, solve it to obtain an optimal solution, check for integrality, generate and add a valid separating cut if fractional, and re-solve the updated relaxation. This can be expressed in high-level pseudocode as:
Initialize [LP](/page/LP) relaxation P from the integer program
While the optimal solution x* of P is not integer-feasible:
Identify a fractional [vertex](/page/Vertex) x*
Solve the separation problem to generate a valid cut violated by x* (e.g., πx ≥ π₀ where πx* > π₀)
Add the cut to P
Re-solve P
Return the integer-optimal x*
Initialize [LP](/page/LP) relaxation P from the integer program
While the optimal solution x* of P is not integer-feasible:
Identify a fractional [vertex](/page/Vertex) x*
Solve the separation problem to generate a valid cut violated by x* (e.g., πx ≥ π₀ where πx* > π₀)
Add the cut to P
Re-solve P
Return the integer-optimal x*
The separation step typically involves deriving cuts from the simplex tableau or other oracles for the integer hull.[3][6]
For illustration, consider the one-dimensional integer program: minimize x subject to x \geq 1.5, x integer, x \geq 0. The LP relaxation solves to x^* = 1.5. A valid separating cut is x \geq 2, as it holds for all feasible integers (e.g., x = 2, [3, \dots](/page/3_Dots)) but is violated by 1.5. Adding this cut yields a new relaxation with optimum x = 2, which is integer-feasible and optimal.
Motivation and Role in Optimization
Integer linear programming (ILP) problems are NP-hard primarily due to the integrality constraints on decision variables, which prevent the direct application of efficient polynomial-time algorithms available for their continuous counterparts.[7] These constraints ensure that solutions must lie in a discrete feasible set, often leading to combinatorial explosion in search spaces for large instances.[8] To address this, practitioners commonly solve the linear programming (LP) relaxation by dropping the integrality requirements, yielding a solvable continuous approximation that provides a lower bound on the optimal ILP value but typically results in fractional solutions outside the integer feasible region.[7]
Cutting-plane methods play a crucial role in optimization by iteratively adding valid linear inequalities—known as cuts—to the LP relaxation, thereby tightening the polyhedral approximation of the original discrete feasible set and eliminating fractional points.[9] This process bridges the gap between the continuous relaxation and the convex hull of integer points, progressively improving the duality gap and accelerating convergence toward integer-optimal solutions without exhaustive enumeration.[10] By refining the relaxation, cuts enhance the quality of bounds obtained from each LP solve, making the method particularly effective for mixed-integer programs where the feasible region is nonconvex due to integrality.[11]
In comparison to branch-and-bound algorithms, which partition the search space through local branching on fractional variables, cutting planes provide global tightening of the formulation applicable across the entire tree, often reducing the number of nodes explored in large-scale problems.[12] This complementary strengthening allows branch-and-cut hybrids to outperform pure branch-and-bound by leveraging cuts to prune infeasible or suboptimal branches more efficiently, especially in high-dimensional instances.[13]
Theoretically, the motivation for cutting planes stems from foundational results like Farkas' lemma, which guarantees the existence of a separating hyperplane for points outside a polyhedron defined by linear inequalities, enabling the systematic generation of valid cuts that exclude fractional solutions while preserving integer feasibility.[14] Ultimately, the goal is to approximate the convex hull of the integer points within the original polyhedron, the tightest convex relaxation containing all feasible integer solutions and serving as the ideal target for exact optimization.[15]
Mathematical Foundations
Linear Programming Relaxation
The standard formulation of an integer linear program (ILP) is to minimize \mathbf{c}^\top \mathbf{x} subject to A\mathbf{x} = \mathbf{b}, \mathbf{x} \geq \mathbf{0}, where \mathbf{x} is required to be integer-valued.[16] The linear programming (LP) relaxation of this ILP is obtained by removing the integrality constraints on \mathbf{x}, resulting in the continuous optimization problem: minimize \mathbf{c}^\top \mathbf{x} subject to A\mathbf{x} = \mathbf{b}, \mathbf{x} \geq \mathbf{0}.[17] This relaxation provides a lower bound on the optimal value of the original ILP, denoted z_{LP} \leq z_{IP} for minimization problems (or z_{LP} \geq z_{IP} for maximization), since the feasible set of the LP contains all integer feasible points.[18]
From a polyhedral perspective, the feasible set of the LP relaxation is the polyhedron P = \{ \mathbf{x} \in \mathbb{R}^n \mid A\mathbf{x} = \mathbf{b}, \mathbf{x} \geq \mathbf{0} \}, which is the convex hull of its extreme points.[19] The integer hull P_I is defined as the convex hull of the integer points within P, i.e., P_I = \conv\{ \mathbf{x} \in P \mid \mathbf{x} \in \mathbb{Z}^n \}, which is itself a polyhedron when P is rational.[20] Cutting-plane methods aim to approximate P_I by iteratively tightening P toward this hull, but the initial LP relaxation serves as the starting polyhedron whose optimal solution often lies outside P_I, highlighting the integrality gap.[21]
To solve the LP relaxation, algorithms such as the simplex method or interior-point methods are employed.[22][23] The simplex method proceeds by moving along the edges of the polyhedron from one basic feasible solution to another, where a basic feasible solution is defined by selecting a basis B of m linearly independent columns from A (assuming A is m \times n with m < n), solving for the basic variables x_B = B^{-1} \mathbf{b} - B^{-1} N \mathbf{x}_N \geq \mathbf{0} with non-basic variables x_N = \mathbf{0}, until optimality is reached.[22] Interior-point methods, in contrast, generate a sequence of points in the strict interior of P that converge to an optimal vertex, often providing faster performance on large-scale problems.[23] The output is typically an optimal basic feasible solution, which identifies basic and non-basic variables for subsequent analysis in cutting-plane procedures.
A representative example is the 0-1 knapsack problem, formulated as maximize \sum_{i=1}^n v_i x_i subject to \sum_{i=1}^n w_i x_i \leq W, x_i \in \{0,1\} for i=1,\dots,n, where v_i > 0 are values, w_i > 0 are weights, and W > 0 is the capacity.[24] The LP relaxation replaces x_i \in \{0,1\} with $0 \leq x_i \leq 1, which can be solved greedily by sorting items in decreasing order of v_i / w_i and filling the knapsack fractionally.[24] For instance, with n=3, W=10, weights w=(6,5,3), and values v=(10,8,5), the ratios are approximately 1.67, 1.60, and 1.67; the optimal LP solution is x_1=1, x_3=1, x_2=0.2 (filling the remaining capacity of 1 with a fraction of the second item), yielding z_{LP} = 10 + 5 + 1.6 = 16.6. The optimal integer solution is x_1=1, x_3=1, x_2=0 with z_{IP}=15, illustrating the gap where z_{LP} > z_{IP}.
Validity and Separation of Cutting Planes
In integer linear programming, a cutting plane, expressed as an inequality \alpha^\top x \geq \beta, is valid for the integer hull P_I = \conv\{x \in \mathbb{Z}^n : Ax = b, x \geq 0\} if it is satisfied by every point in P_I.[16] Such inequalities are derived from the integrality constraints, often through rounding arguments that exploit the fact that integer solutions must satisfy \lfloor \alpha^\top x \rfloor \geq \lceil \beta \rceil for appropriately chosen coefficients, ensuring no feasible integer point is excluded.[25] Validity guarantees that the cutting plane tightens the linear programming relaxation without altering the optimal integer solution.
The separation property ensures that a valid cutting plane effectively excludes fractional points from the current relaxation. Specifically, for an optimal solution \bar{x} to the linear programming relaxation, the cut separates \bar{x} if \alpha^\top \bar{x} < \beta, thereby violating the inequality and forcing the relaxation to adjust.[16] The separation problem itself is formulated as an optimization task over the dual of the integer hull's description, seeking to maximize the violation \beta - \alpha^\top \bar{x} subject to the cut being valid for P_I; if the maximum violation is positive, a separating cut is returned.[25] This process is computationally challenging, as solving the exact separation problem is generally NP-hard, though heuristics or approximations are often employed in practice.[16]
Cutting planes preserve the integer feasible set because their validity ensures no point in P_I is removed, as each inequality is derived to hold for all integer solutions.[25] Regarding convergence, adding a valid separating cut strictly reduces the feasible region of the relaxation by eliminating at least the current fractional vertex \bar{x}, and since the number of possible facets of the polyhedron is finite, repeated application leads to either an integer solution or the convex hull P_I.[16]
A key computational abstraction is the separation oracle, which, given a point \bar{x}, either certifies that \bar{x} \in P_I (i.e., no violated cut exists) or produces a valid separating cut.[25] The oracle's output can be quantified by the violation measure \max\{0, \beta - \alpha^\top \bar{x}\}, where a positive value indicates the extent to which the cut improves the bound.[16] This framework underpins the efficiency of cutting-plane methods, allowing iterative refinement without exhaustive enumeration of all valid inequalities.
Core Algorithms
Gomory's Cutting Planes
Gomory's cutting planes were introduced by Ralph E. Gomory in 1958 as a finite algorithm for solving pure integer linear programs, where all decision variables are constrained to be integers.[4] The method assumes the integer program is given in standard form with non-negative integer variables and relies on iteratively tightening the linear programming relaxation through valid inequalities derived from the simplex tableau.[26]
The procedure operates on the optimal tableau of the LP relaxation, which expresses the basic variables in terms of non-basic variables.[27] To generate a cut, select a row i where the right-hand side \bar{b}_i is fractional (non-integer). This row can be written as \bar{b}_i = \sum_{j \in N} \bar{a}_{ij} x_j + \sum_{k \in B \setminus \{i\}} \bar{a}_{ik} x_k, where N is the set of non-basic variables, B is the set of basic variables, and all x_j, x_k \geq 0 are integers in the original problem.[26][27]
Since the variables are integers, the integer parts of the equation must balance, leaving the fractional parts to satisfy \{ \bar{b}_i \} = \sum_{j \in N} \{ \bar{a}_{ij} \} x_j + \sum_{k \in B \setminus \{i\}} \{ \bar{a}_{ik} \} x_k, where \{ \cdot \} denotes the fractional part.[26] However, because the basic variables x_k (except the one for row i) are expressed in terms of non-basics and are non-negative integers, the terms involving them contribute non-negative fractions less than 1. To derive a valid cut excluding the current fractional solution, focus on the non-basic representation: let f_j = \{ \bar{a}_{ij} \} for j \in N and f_i = \{ \bar{b}_i \}. The resulting Gomory fractional cut is \sum_{j \in N} f_j x_j \geq f_i.[27] This inequality is valid for all integer points in the feasible region and cuts off the current LP optimum since the equality would hold only if all relevant x_j = 0, which contradicts the fractional \bar{b}_i > 0.[26]
The algorithm proceeds as follows:
- Solve the LP relaxation to obtain an optimal basic feasible solution and its tableau.[28]
- If all basic variables are integer-valued, terminate with the integer solution. Otherwise, select a row i with fractional \bar{b}_i.[27]
- Derive and add the Gomory fractional cut to the formulation.[28]
- Re-optimize the updated LP, typically using the dual simplex method to exploit the warm start from the previous solution.[28]
- Repeat until an integer solution is obtained.[27]
Consider the following two-variable integer linear program: maximize x_1 + x_2 subject to -5x_1 + 4x_2 \leq 0, $5x_1 + 2x_2 \leq 15, x_1, x_2 \geq 0 integer.[27] The LP relaxation yields the optimal solution x_1 = 1.5, x_2 = 1.875, with tableau row x_2 + \frac{1}{6} y_1 + \frac{1}{6} y_2 = \frac{15}{8} (where y_1, y_2 are slacks or non-basics). The fractional parts give the cut \frac{1}{6} y_1 + \frac{1}{6} y_2 \geq \frac{7}{8}, which simplifies to x_2 \leq 2 after substitution.[27] Re-solving yields a new optimum x_1 = 2.2, x_2 = 2, and the next cut from a fractional row produces x_1 \leq 2, leading to the integer solution x_1 = 2, x_2 = 2 with objective 4.[27]
For bounded pure integer programs with a finite optimum, the method converges in a finite number of steps, as each cut strictly decreases the maximum fractional part in the optimal solution, and there are only finitely many possible fractional values greater than the current one.[28][26]
Chvátal-Gomory Cuts
The Chvátal-Gomory cuts were developed by V. Chvátal in 1973 as a systematic way to generate valid inequalities for the convex hull of integer points in rational polyhedra, building on R. E. Gomory's foundational work in integer programming from 1958. These cuts apply specifically to pure integer linear programs of the form Ax \geq b, x \geq 0, x integer, where A has rational entries and b is rational. Unlike tableau-based methods, the procedure operates directly on the constraint matrix through non-negative combinations and rounding, offering a simpler computational approach for deriving cuts that tighten the linear programming relaxation.[29]
The generation of a Chvátal-Gomory (CG) cut proceeds as follows: select a non-negative rational vector u \geq 0 and form the combined inequality uAx \geq ub, which is valid for the original polyhedron. The CG cut is then obtained by rounding: \lceil uA \rceil x \geq \lceil ub \rceil. This inequality is valid for all integer feasible solutions because, for integer x \geq 0, \lceil uA \rceil x = uAx + \sum ( \lceil (uA)_j \rceil - (uA)_j ) x_j \geq uAx \geq ub, and since the left-hand side is integer-valued, it follows that \lceil uA \rceil x \geq \lceil ub \rceil.[29]
The CG closure of a polyhedron is defined as the set of points satisfying all rank-1 CG cuts, obtained by applying the procedure once to the original constraints. Higher-rank closures involve iteratively applying the procedure to the previous closure, yielding the rank-k CG closure. Chvátal showed that repeated application produces a hierarchy of polyhedra converging to the integer hull, with the rank measuring the number of iterations needed. For rational data, the process terminates in finite steps, as established by Schrijver, who proved that the integer hull is reached after a finite number of rank increases, bounded by the dimension of the space.[29]
A simple example illustrates the tightening effect. Consider the inequality $0.4x + 0.7y \geq 1.1 with x, y \geq 0 integer. The integer feasible points include (3,0), (1,2), (0,2), etc. The LP relaxation admits the fractional point (0, 1.571), since 0.71.571 ≈1.1. Choosing u = (1, 2), uA = 0.4 + 1.4 = 1.8, wait, no—for single inequality, u scalar. For u=2, uA=(0.8, 1.4), ub=2.2 . Then \lceil 0.8 \rceil x + \lceil 1.4 \rceil y \geq \lceil 2.2 \rceil, i.e., $1x + 2y \geq 3. At (0,1.571): 0 + 21.571 ≈3.142 ≥3 true, not cut. Better example: consider fractional solution needing cut. Alternatively, for standard illustration, note that CG cuts can eliminate fractionals; for instance, in the fractional matching polytope, they generate odd-set inequalities. This reduces the feasible region's volume, bringing the relaxation closer to the integer hull.[6]
CG cuts exhibit several key properties: for rational input data, the procedure guarantees finiteness, with the Chvátal rank bounded exponentially in the dimension but finite, ensuring the integer hull is obtained after finitely many iterations. They are weaker than full Gomory cuts derived from LP tableaux, as the latter can generate more inequalities in a single step, but CG cuts are computationally simpler, requiring only matrix multiplications and rounding without solving subproblems or maintaining basis information. This trade-off makes them suitable for initial strengthening in iterative algorithms.[25]
Advanced Techniques
Mixed-Integer Gomory Cuts
Mixed-Integer Gomory cuts extend Gomory's cutting-plane procedure to mixed-integer linear programs (MILPs), where decision variables include both integers and continuous reals, enabling the generation of valid inequalities that tighten the linear programming relaxation without excluding feasible integer solutions. Introduced by Ralph E. Gomory in 1960, these cuts address the challenge of fractional solutions in MILP relaxations by incorporating the distinct natures of integer and continuous variables. Unlike pure-integer cuts, they allow continuous variables to adjust freely while enforcing integrality on discrete ones, making them suitable for real-world models like production planning or scheduling.[30]
The derivation starts from a row in the optimal simplex tableau of the MILP relaxation, where the basic variable is integer-valued and the right-hand side b_0 is fractional with f_0 = \{b_0\} \in (0,1). The row equation is b_0 = \sum_j a_j^I x_j + \sum_k \tilde{a}_k \tilde{x}_k, where x_j are nonbasic integer variables (with fractional parts f_j^I = \{a_j^I\}) and \tilde{x}_k are nonbasic continuous variables (with \tilde{f}_k = \{ \tilde{a}_k \}). Introducing nonnegative slack variables s_j for integer parts and \tilde{s}_k for continuous parts, the equation becomes f_0 + \lfloor b_0 \rfloor = \sum_j (f_j^I s_j + \lfloor a_j^I \rfloor x_j) + \sum_k (\tilde{f}_k \tilde{s}_k + \lfloor \tilde{a}_k \rfloor \tilde{x}_k). Since integer variables and their slacks are integer, the integer parts balance, leaving the fractional equation \sum_j f_j^I s_j + \sum_k \tilde{f}_k \tilde{s}_k \geq f_0, which forms the basic mixed-integer cut in slack form.[9] Substituting back to original variables yields a cut violated by the current fractional solution.[31]
This procedure is functionally equivalent to solving the master cyclic group problem for mixed-integer settings, where coefficients are derived from subadditive functions over the cyclic group \mathbb{Z}/f_0\mathbb{Z}.[32] The resulting inequality aligns with the mixed-integer rounding (MIR) form: for a general MILP row \sum_{j \in J} c_j v_j + \sum_{i \in I} \hat{a}_i x_i = \hat{b} (with \hat{b} = f_0, \hat{a}_i = \{a_i\}, integer x_i \geq 0, continuous v_j \geq 0), the MIR cut is \sum_{j: c_j > 0} \frac{c_j}{f_0} v_j + \sum_{j: c_j < 0} \frac{c_j}{1 - f_0} v_j + \sum_{i: \hat{a}_i \leq f_0} \frac{\hat{a}_i}{f_0} x_i + \sum_{i: \hat{a}_i > f_0} \frac{1 - \hat{a}_i}{1 - f_0} x_i \geq 1.[32] This form ensures validity by rounding up contributions from integer variables while scaling continuous ones to maintain feasibility.[33]
These cuts excel in handling practical MILPs with continuous variables, often closing significant portions of the integrality gap (e.g., up to 24% in MIPLIB instances).[34] They are widely implemented in commercial solvers like CPLEX, where they have driven major performance improvements since version 6.5 by dynamically generating violated cuts during branch-and-cut.[35]
Lift-and-Project Methods
The lift-and-project method, introduced by Balas, Ceria, and Cornuéjols in 1993, provides a systematic procedure for generating valid inequalities that strengthen the linear programming relaxation of mixed 0-1 integer programs through iterative application of lifting and projection operations over subsets of variables.[36] This approach builds on earlier ideas in disjunctive programming and aims to produce cuts that are tighter than those from simpler rounding procedures, facilitating better bounds in branch-and-cut frameworks.[37]
The procedure begins by selecting a subset S of the 0-1 variables from the current LP relaxation polyhedron P. Projection onto S is performed via existential quantification, eliminating the remaining variables to obtain the projected polyhedron \exists P, which captures the possible values of variables in S consistent with P. A valid inequality for \exists P is then identified, typically a facet-defining one violated by the current LP optimum. To restore validity in the full space, lifting is applied sequentially or simultaneously: coefficients for variables outside S are computed by solving auxiliary LPs that ensure the inequality holds for both disjuncts implied by the 0-1 constraints on S, resulting in a cut added to P for the next iteration.[36][37]
At its core, the method relies on disjunctive programming principles, where the integer constraints induce disjunctions such as x_j = 0 or x_j = 1 for each 0-1 variable x_j. For a subset S, the disjunction corresponds to the union of polyhedra P^0 (where variables in S are fixed to 0) and P^1 (fixed to 1), and the lift-and-project cut is derived from the convex hull \mathrm{conv}(P^0 \cup P^1) projected back after lifting. This yields Balas' lift-and-project cuts, which are valid for the mixed 0-1 polyhedron and often facet-defining.[36][38]
These cuts offer significant advantages, as they can generate facets of the integer hull, providing tight approximations to the convex hull of integer feasible solutions. Moreover, the iterative lift-and-project procedure converges finitely to the integer hull for any mixed 0-1 linear program, ensuring termination after at most n iterations where n is the number of 0-1 variables.[36][37]
Applications
In Integer Linear Programming Solvers
In modern integer linear programming (ILP) solvers, cutting-plane methods are integrated into the branch-and-cut framework, a hybrid approach that combines branch-and-bound with dynamic cut generation to solve mixed-integer programs efficiently. Cuts are typically generated at the root node of the search tree to strengthen the linear programming (LP) relaxation before branching begins, and additional cuts are added during later nodes to further tighten bounds on subproblems. This integration allows solvers to iteratively improve the relaxation while exploring the branch-and-bound tree, often reducing the overall computational effort compared to pure branch-and-bound.[9][39]
Cut generation and selection strategies in these solvers emphasize efficacy and diversity to maximize impact while minimizing overhead. For instance, cuts are selected based on violation depth (efficacy, measuring how deeply the current LP solution violates the cut), orthogonality to existing constraints (to ensure coverage of new directions), and low parallelism (to avoid redundancy with prior cuts). Solvers like SCIP parameterize this with weights, such as an orthogonality factor of 1.0 and a minimum efficacy threshold of 0.01 at the root, while limiting additions to 2000 cuts per round to prevent excessive growth in model size. Presolving routines also generate initial cuts, such as implied bounds or clique inequalities, to create a tighter starting formulation and accelerate early iterations. Heuristics like mixed-integer rounding (MIR) and Gomory-based ranking further guide selection by prioritizing cuts with high potential to reduce the duality gap.[39][40][41]
Prominent ILP solvers such as CPLEX, Gurobi, and SCIP extensively employ cutting planes, with demonstrated performance gains on benchmark instances like those from MIPLIB. CPLEX generates cuts in multiple rounds using heuristics for Gomory, cover, and disjunctive inequalities, achieving up to a 53.7-fold speedup across 106 models when cuts are enabled, with disjunctive cuts contributing a 64% improvement in solving times. Gurobi uses adaptive strategies to apply Gomory cuts alongside lift-and-project and implied bound cuts, dynamically deciding activation based on problem characteristics. SCIP integrates over 20 separator plugins, including MIR and flow cover cuts, with efficacy-driven selection that enhances LP bounds. In benchmarks, these implementations often reduce branch-and-bound tree sizes by orders of magnitude; for example, on the MIPLIB instance p2756, enabling cuts dropped the node count from 3,414,408 to 11, while closing the root optimality gap from 13.5% to 0.2%. Such impacts typically scale to 50-90% reductions in tree exploration for mixed-integer sets, underscoring the method's role in practical solvability.[41][42][39][9]
Challenges in implementation include LP degeneracy, where multiple bases yield the same solution and limit cut variety, and numerical stability issues arising from floating-point precision in LP solvers, which can produce cuts with coefficients that amplify errors (e.g., treating 4.99999 as 5). To mitigate these, solvers employ scaling to integer coefficients, cut aging (e.g., maximum age of 3 rounds in some frameworks), and duplicate/parallelism filters (threshold 0.1) to maintain a diverse pool without bloating the relaxation. Despite these hurdles, the net effect is robust performance enhancement.[9][40][41]
A illustrative case is the traveling salesman problem (TSP), where branch-and-cut solvers apply subtour elimination and comb inequalities as cutting planes to enforce connectivity and non-overlapping tours. In seminal implementations, such as those solving large Euclidean TSP instances with up to 1,000 cities, these cuts dramatically accelerate convergence to optimal tours by reducing the search tree size by factors of thousands compared to branch-and-bound alone.[43][44]
In Convex and Nonsmooth Optimization
In convex optimization, cutting-plane methods extend beyond linear programs to address the minimization of a convex function f: \mathbb{R}^n \to \mathbb{R}, which may be nonsmooth and accessible only via a subgradient oracle. At a point \bar{x}, a subgradient g \in \partial f(\bar{x}) yields a supporting hyperplane, or cut, defined by the inequality f(x) \geq f(\bar{x}) + g^T (x - \bar{x}) for all x, which underestimates f and linearizes the epigraph from below. These cuts form a collection of linear inequalities that progressively tighten the approximation of the feasible region or objective level set containing the optimum.[45]
For nonsmooth convex functions, where differentiability fails at finitely many points, bundle methods serve as robust cutting-plane variants that aggregate multiple subgradients into a "bundle" to construct a more stable piecewise linear model, mitigating the zigzagging behavior of basic subgradient descent. Originating as extensions of Kelley's 1960 cutting-plane framework, bundle methods, further developed by Lemaréchal, enable efficient handling of oracles providing only function values and subgradients. Complementary approaches, such as the center-of-gravity method and ellipsoid method, generate separating cuts to localize the optimum in nonsmooth settings by reducing the volume of an enclosing polyhedron.[46][47]
The core procedure involves initializing a polyhedral underestimator from an initial cut and a bounding box. At each iteration, solve a master subproblem to minimize the maximum of the accumulated linear underestimators (the cutting-plane model) over a proximal or trust-region stabilization term, obtaining a trial point x^k. Query the oracle at x^k to add a new subgradient cut, updating the model; this process converges to the global minimum as the underestimator approaches f from below, with the optimum identified when the subproblem solution satisfies a tolerance on the duality gap or model error.[48]
A representative example is minimizing the nonsmooth convex function f(x) = |x| + |x - 1| over \mathbb{R}, which attains its minimum value of 0 on the interval [0, 1]. The subdifferential is \partial f(x) = \{\operatorname{sign}(x) + \operatorname{sign}(x-1)\} away from the kinks, yielding subgradients of -2 for x < 0, 0 for $0 < x < 1, and 2 for x > 1; at x = 0, \partial f(0) = [-2, 0], and at x = 1, \partial f(1) = [0, 2]. Starting at \bar{x} = 2, a subgradient g = 2 generates the cut f(x) \geq 3 + 2(x - 2), or f(x) \geq 2x - 1. Solving the subproblem over this cut and bounds (e.g., |x| \leq 3) yields a new point like x = 0.5, where g = 0 adds a null cut, but selecting an extreme subgradient (e.g., from nearby evaluation) refines further; iteration continues until the model minimum reaches 0. Trade-offs arise in cut depth: a shallow (neutral) cut passes through \bar{x} (g^T (x - \bar{x}) \leq 0), excluding less volume, while a deep cut shifts below (g^T (x - \bar{x}) \leq f(\bar{x}) - \bar{f}, with \bar{f} a lower bound estimate), accelerating localization but requiring additional oracle information on function bounds.[45][48]
Extensions enhance efficiency in challenging nonsmooth cases. Away-step variants in bundle methods permit trial steps directed away from the proximal center, leveraging historical subgradients to avoid redundant proximity and improve descent directions over standard null-step iterations. Level-set methods generate cuts via projections onto superlevel sets of the objective, dualizing the cutting-plane oracle to handle structured nonsmoothness, as in Frank-Wolfe-style adaptations. Theoretically, subgradient cutting-plane methods, particularly proximal bundle variants, achieve a convergence rate of O(1/k) in function value to the optimum for nonsmooth convex problems, outperforming basic subgradient descent's O(1/\sqrt{k}).[49][50][51]
Historical Development
Origins and Early Contributions
The cutting-plane method in integer programming traces its roots to the late 1940s and early 1950s, building on foundational work in linear programming and early explorations of valid inequalities for combinatorial problems. George Dantzig's development of the simplex method in 1947 provided the algorithmic backbone for solving linear relaxations, while the 1954 solution to a 49-city traveling salesman problem by Dantzig, Ray Fulkerson, and Selmer Johnson introduced manual cutting planes in the form of subtour elimination constraints to enforce integer feasibility in polyhedral relaxations.[52] These efforts highlighted the potential of iteratively tightening relaxations with valid inequalities, laying prehistorical groundwork in polyhedral combinatorics, though automated procedures for general integer programs remained undeveloped.[52]
The breakthrough came in 1958 with Ralph Gomory's invention of the first pure cutting-plane algorithm for integer linear programs, detailed in his paper "Outline of an Algorithm for Integer Solutions to Linear Programs." Gomory's method extended the simplex algorithm by generating fractional cuts from non-integer basic solutions, systematically cutting off fractional vertices while preserving the integer hull, and included a proof of finite convergence for pure integer programs.[52] This innovation shifted integer programming from ad-hoc manual cuts to a fully automated, theoretically sound procedure, marking a pivotal advancement in operations research.[53]
Immediate extensions followed in the early 1960s, with Gomory's 1960 RAND report introducing cuts for mixed-integer programs and his 1963 work developing mixed-integer Gomory cuts to handle continuous variables alongside integers.[52] Theoretical rigor was further bolstered by Gomory and A.J. Hoffman's 1963 proof of convergence for the integer programming process, while Egon Balas's 1971 intersection cuts provided a new family of valid inequalities with a finiteness proof for broader integer sets. By the 1960s, cutting planes gained adoption in operations research for applications like the traveling salesman problem and lot-sizing, as surveyed by Michel Balinski in 1965, though early computational experiments revealed challenges such as slow convergence and numerical instability.[52]
Influential figures like Ellis Johnson extended these ideas in the 1970s through group-theoretic relaxations and practical implementations, facilitating the transition from theory to computational codes; Johnson's 1971 work on master group relaxations, for instance, generated strong cuts for structured problems.[52] Gomory's collaborations, including with Peter Gilmore on cutting-stock problems (1961, 1963), underscored the method's versatility, while overall, these early contributions established cutting planes as a cornerstone of integer programming despite initial practical hurdles.[52]
Modern Advances and Implementations
Theoretical advances in cutting-plane methods have focused on quantifying the strength and efficiency of cuts, with the Chvátal rank—introduced by Václav Chvátal in 1973—serving as a key measure of the number of iterative rounds needed to reach the integer hull using Chvátal-Gomory cuts. Subsequent analyses have bounded the computational depth required for convergence in pure cutting-plane procedures for certain polyhedra.[55][56]
A significant enhancement came with the lift-and-project method introduced by Balas, Ceria, and Cornuéjols in 1993, which generates stronger cuts by lifting variables to higher dimensions and projecting back, yielding tighter relaxations for mixed 0-1 programs than earlier Gomory-style cuts.[57] Building on this, mixed-integer rounding (MIR) cuts, developed by Marchand, Louveaux, and Wolsey in the early 2000s, provide a general framework for deriving valid inequalities from aggregated constraints, often dominating Gomory mixed-integer cuts in strength for mixed-integer linear programs (MILPs).[58]
On the computational side, the branch-and-cut framework, pioneered by Padberg and Rinaldi in 1991, integrated cutting planes with branch-and-bound search, allowing dynamic cut generation at nodes to solve large-scale traveling salesman problems to optimality.[59] This hybrid approach marked a shift from pure cutting planes to embedded separation routines, enabling automatic cut generation in commercial solvers starting in the mid-1990s, which improved solvability of practical MILPs by iteratively tightening LP relaxations without manual intervention.[9]
Key milestones include the integration of cutting planes into CPLEX in 1994, where initial support for Gomory and cover cuts accelerated resolution of industrial MILPs.[60] Similarly, the SCIP solver, released in the early 2000s, incorporated advanced cut separators like MIR and lift-and-project, fostering open-source advancements in constraint integer programming.[61] More recently, in the 2020s, machine learning techniques for cut selection—such as reinforcement learning models trained on solver logs—have automated the choice of promising cuts, reducing solve times on benchmark instances by prioritizing high-impact inequalities.[62]
Today, cutting-plane methods play a central role in solving large-scale MILPs with millions of variables, as seen in modern solvers handling logistics and scheduling problems where cuts prune vast search spaces efficiently.[63] Ongoing research explores parallel cut generation, distributing separation tasks across processors to scale with multicore architectures and accelerate convergence in distributed computing environments.[64] Emerging extensions to quantum computing, such as hybrid classical-quantum Benders decomposition with cutting planes, aim to tackle even larger MILPs by leveraging quantum subroutines for subproblem solves.[65]
These advances have profoundly impacted fields like logistics optimization, enabling solvers to address previously intractable problems such as capacitated vehicle routing with thousands of nodes, where strong cuts reduce optimality gaps by orders of magnitude and support real-time decision-making in supply chains.[66]