Mathematical Programming Computation

, Volume 7, Issue 4, pp 367–398 | Cite as

Progress in presolving for mixed integer programming

  • Gerald GamrathEmail author
  • Thorsten Koch
  • Alexander Martin
  • Matthias Miltenberger
  • Dieter Weninger
Full Length Paper


This paper describes three presolving techniques for solving mixed integer programming problems (MIPs) that were implemented in the academic MIP solver SCIP. The task of presolving is to reduce the problem size and strengthen the formulation, mainly by eliminating redundant information and exploiting problem structures. The first method fixes continuous singleton columns and extends results known from duality fixing. The second analyzes and exploits pairwise dominance relations between variables, whereas the third detects isolated subproblems and solves them independently. The performance of the presented techniques is demonstrated on two MIP test sets. One contains all benchmark instances from the last three MIPLIB versions, while the other consists of real-world supply chain management problems. The computational results show that the combination of all three presolving techniques almost halves the solving time for the considered supply chain management problems. For the MIPLIB instances we obtain a speedup of 20 % on affected instances while not degrading the performance on the remaining problems.

Mathematics Subject Classification

Primary 90C11 90C10 Secondary 90-04 90-08 90C90 



The authors would like to thank the anonymous reviewers for helpful comments on the paper. The work for this article has been partly conducted within the Research Campus Modal funded by the German Federal Ministry of Education and Research (fund number 05M14ZAM). Finally, we thank the DFG for their support within Projects A05, B07, and Z02 in CRC TRR 154.


  1. 1.
    Aardal, K., Bixby, R.E., Hurkens, C.A.J., Lenstra, A.K., Smeltink, J.W.: Market split and basis reduction: towards a solution of the Cornuéjols–Dawande instances. INFORMS J. Comput. 12(3), 192–202 (2000)zbMATHMathSciNetCrossRefGoogle Scholar
  2. 2.
    Achterberg, T.: Constraint Integer Programming. PhD thesis, Technische Universität Berlin (2007)Google Scholar
  3. 3.
    Achterberg, T.: SCIP: solving constraint integer programs. Math. Program. Comput. 1(1), 1–41 (2009)zbMATHMathSciNetCrossRefGoogle Scholar
  4. 4.
    Achterberg, T., Koch, T., Martin, A.: MIPLIB 2003. Oper. Res. Lett. 34(4), 1–12 (2006)MathSciNetCrossRefGoogle Scholar
  5. 5.
    Andersen, E.D., Andersen, K.D.: Presolving in linear programming. Math. Program. 71, 221–245 (1995)zbMATHGoogle Scholar
  6. 6.
    Atamtürk, A., Nemhauser, G.L., Savelsbergh, M.W.P.: Conflict graphs in solving integer programming problems. Eur. J. Oper. Res. 121(1), 40–55 (2000)zbMATHCrossRefGoogle Scholar
  7. 7.
    Atamtürk, A., Savelsbergh, M.W.P.: Integer-programming software systems. Ann. Oper. Res. 140, 67–124 (2005)zbMATHMathSciNetCrossRefGoogle Scholar
  8. 8.
    Babayev, D.A., Mardanov, S.S.: Reducing the number of variables in integer and linear programming problems. Comput. Optim. Appl. 3(2), 99–109 (1994)zbMATHMathSciNetCrossRefGoogle Scholar
  9. 9.
    Bixby, R.E., Ceria, S., McZeal, C.M., Savelsbergh, M.W.P.: An updated mixed integer programming library: MIPLIB 3.0. Optima 58, 12–15 (1998)Google Scholar
  10. 10.
    Bixby, R.E., Rothberg, E.: Progress in computational mixed integer programming-a look back from the other side of the tipping point. Ann. Oper. Res. 149, 37–41 (2007)zbMATHMathSciNetCrossRefGoogle Scholar
  11. 11.
    Bixby, R.E., Wagner, D.K.: A note on detecting simple redundancies in linear systems. Oper. Res. Lett. 6(1), 15–17 (1987)zbMATHMathSciNetCrossRefGoogle Scholar
  12. 12.
    Borndörfer, R.: Aspects of set packing, partitioning, and covering. PhD thesis, Technische Universität Berlin (1998)Google Scholar
  13. 13.
    Brearley, A.L., Mitra, G., Williams, H.P.: Analysis of mathematical programming problems prior to applying the simplex algorithm. Math. Program. 8, 54–83 (1975)zbMATHMathSciNetCrossRefGoogle Scholar
  14. 14.
    Crowder, H., Johnson, E.L., Padberg, M.: Solving large-scale zero-one linear programming problems. Oper. Res. 31(5), 803–834 (1983)zbMATHCrossRefGoogle Scholar
  15. 15.
    Dantzig, G.B.: Discrete-variable extremum problems. Oper. Res. 5(2), 266–277 (1957)MathSciNetCrossRefGoogle Scholar
  16. 16.
    Daskalakis, C., Karp, R.M., Mossel, E., Riesenfeld, S., Verbin, E.L.: Sorting and selection in posets. In: SODA ’09: Proceedings of the Nineteenth Annual ACM–SIAM Symposium on Discrete Algorithms, pp. 392–401. Society for Industrial and Applied Mathematics, Philadelphia (2009)Google Scholar
  17. 17.
    Fügenschuh, A., Martin, A.: Computational integer programming and cutting planes. In: Aardal, K., Nemhauser, G.L., Weismantel, R. (eds.) Discrete Optimization. Handbooks in Operations Research and Management Science, vol. 12, chap. 2, pp. 69–122. Elsevier, Amsterdam (2005)Google Scholar
  18. 18.
    Guignard, M., Spielberg, K.: Logical reduction methods in zero-one programming: minimal preferred variables. Oper. Res. 29(1), 49–74 (1981)zbMATHMathSciNetCrossRefGoogle Scholar
  19. 19.
    Hoffman, K.L., Padberg, M.: Improving LP-representations of zero-one linear programs for branch-and-cut. ORSA J. Comput. 3(2), 121–134 (1991)zbMATHCrossRefGoogle Scholar
  20. 20.
    Hopcroft, J., Tarjan, R.: Algorithm 447: efficient algorithms for graph manipulation. Commun. ACM 16(6), 372–378 (1973)CrossRefGoogle Scholar
  21. 21.
    Johnson, E.L., Suhl, U.H.: Experiments in integer programming. Discrete Appl. Math. 2(1), 39–55 (1980)zbMATHMathSciNetCrossRefGoogle Scholar
  22. 22.
    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)MathSciNetCrossRefGoogle Scholar
  23. 23.
    Mahajan, A.: Presolving mixed-integer linear programs. In: Cochran, J.J., Cox, L.A., Keskinocak, P., Kharoufeh, J.P., Smith, J.C. (eds) Wiley Encyclopedia of Operations Research and Management Science, pp. 4141–4149. Wiley, New York (2011)Google Scholar
  24. 24.
    Nemhauser, G.L., Wolsey, L.A.: Integer and Combinatorial Optimization. Wiley, New York (1988)zbMATHCrossRefGoogle Scholar
  25. 25.
    Savelsbergh, M.W.P.: Preprocessing and probing techniques for mixed integer programming problems. ORSA J. Comput. 6, 445–454 (1994)zbMATHMathSciNetCrossRefGoogle Scholar
  26. 26.
    Suhl, U., Szymanski, R.: Supernode processing of mixed-integer models. Comput. Optim. Appl. 3(4), 317–331 (1994)zbMATHMathSciNetCrossRefGoogle Scholar
  27. 27.
    Williams, H.P.: A reduction procedure for linear and integer programming models. In: Redundancy in Mathematical Programming. Lecture Notes in Economics and Mathematical Systems, vol. 206, pp. 87–107. Springer, Berlin (1983)Google Scholar
  28. 28.
    Williams, H.P.: The elimination of integer variables. J. Oper. Res. Soc. 43(5), 387–393 (1992)zbMATHCrossRefGoogle Scholar
  29. 29.
    Wolsey, L.A.: Integer Programming. Wiley, New York (1998)zbMATHGoogle Scholar
  30. 30.
    Wunderling, R.: Paralleler und objektorientierter Simplex-Algorithmus. PhD thesis, Technische Universität Berlin (1996)Google Scholar
  31. 31.
    Zhu, N., Broughan, K.: A note on reducing the number of variables in integer programming problems. Comput. Optim. Appl. 8(3), 263–272 (1997)zbMATHMathSciNetCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg and The Mathematical Programming Society 2015

Authors and Affiliations

  • Gerald Gamrath
    • 1
    Email author
  • Thorsten Koch
    • 1
  • Alexander Martin
    • 2
  • Matthias Miltenberger
    • 1
  • Dieter Weninger
    • 2
  1. 1.Zuse Institute BerlinBerlinGermany
  2. 2.FAU Erlangen-NürnbergErlangenGermany

Personalised recommendations