Skip to main content
Log in

The (not so) trivial lifting in two dimensions

  • Full Length Paper
  • Published:
Mathematical Programming Computation Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3

Similar content being viewed by others

References

  1. 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)

  2. Averkov, G., Basu, A.: Lifting properties of maximal lattice-free polyhedra. Math. Program. 154(1–2), 81–111 (2015)

    Article  MathSciNet  MATH  Google Scholar 

  3. Balas, E.: Intersection cuts—a new type of cutting planes for integer programming. Oper. Res. 1(19), 19–39 (1971)

    Article  MathSciNet  MATH  Google Scholar 

  4. Balas, E., Jeroslow, R.G.: Strengthening cuts for mixed integer programs. Eur. J. Oper. Res. 4(4), 224–234 (1980)

    Article  MathSciNet  MATH  Google Scholar 

  5. Basu, A., Bonami, P., Cornuéjols, G., Margot, F.: Experiments with two-row cuts from degenerate tableaux. INFORMS J. Comput. 23, 578–590 (2011)

    Article  MathSciNet  MATH  Google Scholar 

  6. 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)

    Article  MathSciNet  MATH  Google Scholar 

  7. Borozan, V., Cornuéjols, G.: Minimal valid inequalities for integer constraints. Math. Oper. Res. 34(3), 538–546 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  8. Conforti, M., Cornuéjols, G., Zambelli, G.: Integer Programming, vol. 271. Springer, Berlin (2014)

    MATH  Google Scholar 

  9. 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)

    Article  MathSciNet  MATH  Google Scholar 

  10. Dey, S.S., Louveaux, Q.: Split rank of triangle and quadrilateral inequalities. Math. Oper. Res. 36(3), 432–461 (2011)

    Article  MathSciNet  MATH  Google Scholar 

  11. Dey, S.S., Wolsey, L.A.: Two row mixed-integer cuts via lifting. Math. Program. 124, 143–174 (2010)

    Article  MathSciNet  MATH  Google Scholar 

  12. Espinoza, D.G.: Computing with multi-row Gomory cuts. Oper. Res. Lett. 38(2), 115–120 (2010)

    Article  MathSciNet  MATH  Google Scholar 

  13. 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

  14. Gomory, R.E.: Some polyhedra related to combinatorial problems. Linear Algebra Appl. 2(4), 451–558 (1969)

    Article  MathSciNet  MATH  Google Scholar 

  15. Gomory, R.E., Johnson, E.L.: Some continuous functions related to corner polyhedra, part I. Math. Program. 3, 23–85 (1972)

    Article  MATH  Google Scholar 

  16. Gu, Z., Nemhauser, G.L., Savelsbergh, M.W.P.: Sequence independent lifting in mixed integer programming. J. Comb. Optim. 4, 109–129 (2000)

    Article  MathSciNet  MATH  Google Scholar 

  17. Hurkens, C.A.J.: Blowing up convex sets in the plane. Linear Algebra Appl. 134, 121–128 (1990)

    Article  MathSciNet  MATH  Google Scholar 

  18. Kannan, R., Lovász, L.: Covering Minima and Lattice Point Free Convex Bodies, pp. 193–213. Springer, Berlin (1986)

    MATH  Google Scholar 

  19. 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)

    Article  MathSciNet  Google Scholar 

  20. Lenstra Jr., H.W.: Integer programming with a fixed number of variables. Math. Oper. Res. 8(4), 538–548 (1983)

    Article  MathSciNet  MATH  Google Scholar 

  21. Louveaux, Q., Poirrier, L.: An algorithm for the separation of two-row cuts. Math. Program. 143(1–2), 111–146 (2014)

    Article  MathSciNet  MATH  Google Scholar 

  22. Louveaux, Q., Poirrier, L., Salvagnin, D.: The strength of multi-row models. Math. Program. Comput. 7(2), 113–148 (2015)

    Article  MathSciNet  MATH  Google Scholar 

  23. Oertel, T., Wagner, C., Weismantel, R.: Convex integer minimization in fixed dimension. http://arxiv.org/pdf/1203.4175v1.pdf (2012). Accessed 9 Aug 2018

  24. Padberg, M.W.: On the facial structure of set packing polyhedra. Math. Program. 5(1), 199–215 (1973)

    Article  MathSciNet  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Álinson S. Xavier.

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.

Table 3 Directory structure and main files

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.

figure d

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

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12532-018-0146-5

Keywords

Mathematics Subject Classification

Navigation