Abstract
When generating cutting-planes for mixed-integer programs from multiple rows of the simplex tableau, the usual approach has been to relax the integrality of the non-basic variables, compute an intersection cut, then strengthen the cut coefficients corresponding to integral non-basic variables using the so-called trivial lifting procedure. Although of polynomial-time complexity in theory, this lifting procedure can be computationally costly in practice. For the case of two-row relaxations, we present a practical algorithm that computes trivial lifting coefficients in constant time, for arbitrary maximal lattice-free sets. Computational experiments confirm that the algorithm works well in practice.



Similar content being viewed by others
Explore related subjects
Discover the latest articles and news from researchers in related subjects, suggested using machine learning.References
Andersen, K., Louveaux, Q., Weismantel, R., Wolsey, L.: Inequalities from two rows of a simplex tableau. In: Fischetti, M., Williamson, D. (eds.) Integer Programming and Combinatorial Optimization, volume 4513 of Lecture Notes in Computer Science, pp. 1–15. Springer, Berlin (2007)
Averkov, G., Basu, A.: Lifting properties of maximal lattice-free polyhedra. Math. Program. 154(1–2), 81–111 (2015)
Balas, E.: Intersection cuts—a new type of cutting planes for integer programming. Oper. Res. 1(19), 19–39 (1971)
Balas, E., Jeroslow, R.G.: Strengthening cuts for mixed integer programs. Eur. J. Oper. Res. 4(4), 224–234 (1980)
Basu, A., Bonami, P., Cornuéjols, G., Margot, F.: Experiments with two-row cuts from degenerate tableaux. INFORMS J. Comput. 23, 578–590 (2011)
Basu, A., Campêlo, M., Conforti, M., Cornuéjols, G., Zambelli, G.: Unique lifting of integer variables in minimal inequalities. Math. Program. 141(1–2), 561–576 (2013)
Borozan, V., Cornuéjols, G.: Minimal valid inequalities for integer constraints. Math. Oper. Res. 34(3), 538–546 (2009)
Conforti, M., Cornuéjols, G., Zambelli, G.: Integer Programming, vol. 271. Springer, Berlin (2014)
Dey, S.S., Lodi, A., Tramontani, A., Wolsey, L.A.: On the practical strength of two-row tableau cuts. INFORMS J. Comput. 26(2), 222–237 (2014)
Dey, S.S., Louveaux, Q.: Split rank of triangle and quadrilateral inequalities. Math. Oper. Res. 36(3), 432–461 (2011)
Dey, S.S., Wolsey, L.A.: Two row mixed-integer cuts via lifting. Math. Program. 124, 143–174 (2010)
Espinoza, D.G.: Computing with multi-row Gomory cuts. Oper. Res. Lett. 38(2), 115–120 (2010)
Fukasawa, R., Poirrier, L., Xavier, Á.S.: The (not so) trivial lifting in two dimensions: source code, Aug 2018. https://doi.org/10.5281/zenodo.1342770
Gomory, R.E.: Some polyhedra related to combinatorial problems. Linear Algebra Appl. 2(4), 451–558 (1969)
Gomory, R.E., Johnson, E.L.: Some continuous functions related to corner polyhedra, part I. Math. Program. 3, 23–85 (1972)
Gu, Z., Nemhauser, G.L., Savelsbergh, M.W.P.: Sequence independent lifting in mixed integer programming. J. Comb. Optim. 4, 109–129 (2000)
Hurkens, C.A.J.: Blowing up convex sets in the plane. Linear Algebra Appl. 134, 121–128 (1990)
Kannan, R., Lovász, L.: Covering Minima and Lattice Point Free Convex Bodies, pp. 193–213. Springer, Berlin (1986)
Koch, T., Achterberg, T., Andersen, E., Bastert, O., Berthold, T., Bixby, R.E., Danna, E., Gamrath, G., Gleixner, A.M., Heinz, S., Lodi, A., Mittelmann, H., Ralphs, T., Salvagnin, D., Steffy, D.E., Wolter, K.: MIPLIB 2010. Math. Program. Comput. 3(2), 103–163 (2011)
Lenstra Jr., H.W.: Integer programming with a fixed number of variables. Math. Oper. Res. 8(4), 538–548 (1983)
Louveaux, Q., Poirrier, L.: An algorithm for the separation of two-row cuts. Math. Program. 143(1–2), 111–146 (2014)
Louveaux, Q., Poirrier, L., Salvagnin, D.: The strength of multi-row models. Math. Program. Comput. 7(2), 113–148 (2015)
Oertel, T., Wagner, C., Weismantel, R.: Convex integer minimization in fixed dimension. http://arxiv.org/pdf/1203.4175v1.pdf (2012). Accessed 9 Aug 2018
Padberg, M.W.: On the facial structure of set packing polyhedra. Math. Program. 5(1), 199–215 (1973)
Author information
Authors and Affiliations
Corresponding author
Additional information
The software that was reviewed as part of this submission was given the DOI (Digital Object Identifier) https://doi.org/10.5281/zenodo.1342770
The authors were partially supported by NSERC Discovery Grant RGPIN 2014-05623. Xavier and Poirrier were partially supported by Ontario Early Researcher Award ER 11-08-174. Poirrier was partially supported by NSERC Discovery Grant RGPIN 2018-04335.
A Source code
A Source code
The source code for the trivial lifting algorithm presented in Sect. 2 has been made available online [13] under the GNU General Public License, version 3. The source code is written in ANSI C, having only IBM ILOG CPLEX as its external dependency (required only for benchmarking mip and mip-pre methods). The structure of the project is presented in Table 3. Complete instructions to compile the source code, run the computational experiments and generate the tables have been included in the file README.md.
Let \(S \subseteq \mathbb {R}^2\) be a lattice-free set containing \(f \in \mathbb {R}^2 \setminus \mathbb {Z}^2\) in its interior. In our code, we make the assumption that S is a bounded set, and therefore can be represented either as the convex combination of vertices \(v^1,\ldots ,v^k \in \mathbb {R}^2\), or as the as the intersection of half-spaces \(\{x \in \mathbb {R}^2 : h^i(x-f) \le 1, \text {for } i=1,\ldots ,q\}\). For maximal lattice-free sets, our code also assumes that a list of lattice points in the boundary of the set is given. This data is stored in the structure LFreeSet2D. The halfspace representation is needed for evaluating the gauge function and performing the trivial lifting. If this representation is not readily available, the source code includes the auxiliary function LFREE_2D_compute_halfspaces, which computes it, given the interior point f and the list of vertices. The source code also includes the function LFREE_2D_preprocess, which implements the preprocessing step described in Sect. 3. This function receives an LFreeSet2D, modifies it in-place and returns the transformation matrix. After the set is preprocessed, the trivial lifting function can be efficiently computed by calling LIFTING_2D_bound. A sample usage is presented below. For brevity, no preprocessing is performed.

Finally, for benchmarking purposes, the source code also includes the functions LIFTING_2D_naive and LIFTING_2D_mip, which implement the naive and the MIP methods, respectively. Other auxiliary functions include LFREE_2D_get_bounding_box, which computes the bounding box for a given bounded lattice-free set, and LIFTING_2D_psi, which simply evaluates the gauge function. More complete examples, showing the usages of all these functions, can be found in the unit tests, which are included in the source code package.
Rights and permissions
About this article
Cite this article
Fukasawa, R., Poirrier, L. & Xavier, Á.S. The (not so) trivial lifting in two dimensions. Math. Prog. Comp. 11, 211–235 (2019). https://doi.org/10.1007/s12532-018-0146-5
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12532-018-0146-5