# Cutting-plane method

__: Optimization technique for solving (mixed) integer linear programs__

**Short description**In mathematical optimization, the **cutting-plane method** is any of a variety of optimization methods that iteratively refine a feasible set or objective function by means of linear inequalities, termed *cuts*. Such procedures are commonly used to find integer solutions to mixed integer linear programming (MILP) problems, as well as to solve general, not necessarily differentiable convex optimization problems. The use of cutting planes to solve MILP was introduced by Ralph E. Gomory.

Cutting plane methods for MILP work by solving a non-integer linear program, the linear relaxation of the given integer program. The theory of Linear Programming dictates that under mild assumptions (if the linear program has an optimal solution, and if the feasible region does not contain a line), one can always find an extreme point or a corner point that is optimal. The obtained optimum is tested for being an integer solution. If it is not, there is guaranteed to exist a linear inequality that *separates* the optimum from the convex hull of the true feasible set. Finding such an inequality is the *separation problem*, and such an inequality is a *cut*. A cut can be added to the relaxed linear program. Then, the current non-integer solution is no longer feasible to the relaxation. This process is repeated until an optimal integer solution is found.

Cutting-plane methods for general convex continuous optimization and variants are known under various names: Kelley's method, Kelley–Cheney–Goldstein method, and bundle methods. They are popularly used for non-differentiable convex minimization, where a convex objective function and its subgradient can be evaluated efficiently but usual gradient methods for differentiable optimization can not be used. This situation is most typical for the concave maximization of Lagrangian dual functions. Another common situation is the application of the Dantzig–Wolfe decomposition to a structured optimization problem in which formulations with an exponential number of variables are obtained. Generating these variables on demand by means of delayed column generation is identical to performing a cutting plane on the respective dual problem.

## Gomory's cut

Cutting planes were proposed by Ralph Gomory in the 1950s as a method for solving integer programming and mixed-integer programming problems. However, most experts, including Gomory himself, considered them to be impractical due to numerical instability, as well as ineffective because many rounds of cuts were needed to make progress towards the solution. Things turned around when in the mid-1990s Gérard Cornuéjols and co-workers showed them to be very effective in combination with branch-and-bound (called branch-and-cut) and ways to overcome numerical instabilities. Nowadays, all commercial MILP solvers use Gomory cuts in one way or another. Gomory cuts are very efficiently generated from a simplex tableau, whereas many other types of cuts are either expensive or even NP-hard to separate. Among other general cuts for MILP, most notably lift-and-project dominates Gomory cuts.^{[1]}^{[2]}

Let an integer programming problem be formulated (in canonical form) as:

- [math]\displaystyle{ \begin{align} \text{Maximize } & c^Tx \\ \text{Subject to } & Ax \leq b, \\ & x\geq 0,\, x_i \text{ all integers}. \end{align} }[/math]

The method proceeds by first dropping the requirement that the x_{i} be integers and solving the associated linear programming problem to obtain a basic feasible solution. Geometrically, this solution will be a vertex of the convex polytope consisting of all feasible points. If this vertex is not an integer point then the method finds a hyperplane with the vertex on one side and all feasible integer points on the other. This is then added as an additional linear constraint to exclude the vertex found, creating a modified linear program. The new program is then solved and the process is repeated until an integer solution is found.

Using the simplex method to solve a linear program produces a set of equations of the form

- [math]\displaystyle{ x_i+\sum \bar a_{i,j}x_j=\bar b_i }[/math]

where *x _{i}* is a basic

^{[clarification needed]}variable and the

*x*s are the nonbasic variables. Rewrite this equation so that the integer parts are on the left side and the fractional parts are on the right side:

_{j}'- [math]\displaystyle{ x_i+\sum \lfloor \bar a_{i,j} \rfloor x_j - \lfloor \bar b_i \rfloor = \bar b_i - \lfloor \bar b_i \rfloor - \sum ( \bar a_{i,j} -\lfloor \bar a_{i,j} \rfloor) x_j. }[/math]

For any integer point in the feasible region, the right side of this equation is less than 1 and the left side is an integer, therefore the common value must be less than or equal to 0. So the inequality

- [math]\displaystyle{ \bar b_i - \lfloor \bar b_i \rfloor - \sum ( \bar a_{i,j} -\lfloor \bar a_{i,j} \rfloor) x_j \le 0 }[/math]

must hold for any integer point in the feasible region. Furthermore, nonbasic variables are equal to 0s in any basic solution and if *x _{i}* is not an integer for the basic solution

*x*,

- [math]\displaystyle{ \bar b_i - \lfloor \bar b_i \rfloor - \sum ( \bar a_{i,j} -\lfloor \bar a_{i,j} \rfloor) x_j = \bar b_i - \lfloor \bar b_i \rfloor \gt 0. }[/math]

So the inequality above excludes the basic feasible solution and thus is a cut with the desired properties. Introducing a new slack variable x_{k} for this inequality, a new constraint is added to the linear program, namely

- [math]\displaystyle{ x_k + \sum (\lfloor \bar a_{i,j} \rfloor - \bar a_{i,j}) x_j = \lfloor \bar b_i \rfloor - \bar b_i,\, x_k \ge 0,\, x_k \mbox{ an integer}. }[/math]

## Convex optimization

Cutting plane methods are also applicable in nonlinear programming. The underlying principle is to approximate the feasible region of a nonlinear (convex) program by a finite set of closed half spaces and to solve a sequence of approximating linear programs.^{[3]}

## See also

- Benders' decomposition
- Branch and cut
- Branch and bound
- Column generation
- Dantzig–Wolfe decomposition

## References

- ↑ Gilmore, Paul C; Gomory, Ralph E (1961). "A linear programming approach to the cutting stock problem".
*Operations Research***9**(6): 849–859. doi:10.1287/opre.9.6.849. - ↑ Gilmore, Paul C; Gomory, Ralph E (1963). "A linear programming approach to the cutting stock problem-Part II".
*Operations Research***11**(6): 863–888. doi:10.1287/opre.11.6.863. - ↑ Boyd, S.; Vandenberghe, L. (18 September 2003). "Localization and Cutting-plane Methods" (course lecture notes). https://web.stanford.edu/class/ee392o/localization-methods.pdf.

- Marchand, Hugues; Martin, Alexander; Weismantel, Robert; Wolsey, Laurence (2002). "Cutting planes in integer and mixed integer programming".
*Discrete Applied Mathematics***123**(1–3): 387–446. doi:10.1016/s0166-218x(01)00348-1. - Avriel, Mordecai (2003).
*Nonlinear Programming: Analysis and Methods.*Dover Publications. ISBN:0-486-43227-0 - Cornuéjols, Gérard (2008). Valid Inequalities for Mixed Integer Linear Programs.
*Mathematical Programming Ser. B*, (2008) 112:3–44. [1] - Cornuéjols, Gérard (2007). Revival of the Gomory Cuts in the 1990s.
*Annals of Operations Research*, Vol. 149 (2007), pp. 63–66. [2]

## External links

- "Integer Programming" Section 9.8
*Applied Mathematical Programming*Chapter 9 Integer Programming (full text). Bradley, Hax, and Magnanti (Addison-Wesley, 1977)

Original source: https://en.wikipedia.org/wiki/Cutting-plane method.
Read more |