Abstract
The handling of symmetries in mixed integer programs in order to speed up the solution process of branch-and-cut solvers has recently received significant attention, both in theory and practice. This paper compares different methods for handling symmetries using a common implementation framework. We start by investigating the computation of symmetries and analyze the symmetries present in the MIPLIB 2010 instances. It turns out that many instances are affected by symmetry and most symmetry groups contain full symmetric groups as factors. We then present (variants of) six symmetry handling methods from the literature. Their implementation is tested on several testsets. On very symmetric instances used previously in the literature, it is essential to use methods like isomorphism pruning, orbital fixing, or orbital branching. Moreover, tests on the MIPLIB instances show that isomorphism pruning, orbital fixing, or adding symmetry breaking inequalities allow to speed-up the solution process by about 15% and more instances can be solved within the time limit.
Similar content being viewed by others
Notes
Available at http://ahmed.ghoniem.info/download/symmetry.zip.
References
Achterberg, T.: Constraint Integer Programming. Ph.D. Thesis, TU Berlin (2007)
Achterberg, T.: SCIP: solving constraint integer programs. Math. Program. Comput. 1(1), 1–41 (2009)
Achterberg, T., Koch, T., Martin, A.: MIPLIB 2003. Oper. Res. Lett. 34(4), 361–372 (2006)
Atamtürk, A., Nemhauser, G.L., Savelsbergh, M.W.P.: Conflict graphs in integer programming. Eur. J. Oper. Res. 121, 40–55 (2000)
Berthold, T.: Heuristic Algorithms in Global MINLP Solvers. Ph.D. Thesis, TU Berlin (2014)
Berthold, T., Pfetsch, M.E.: Detecting orbitopal symmetries. In: Fleischmann, B., Borgwardt, K.H., Klein, R., Tuma, A. (eds.) Operations Research Proceedings 2008, pp. 433–438. Springer, Berlin (2009)
Bödi, R., Herr, K., Joswig, M.: Algorithms for highly symmetric linear and integer programs. Math. Program. 137(1–2), 65–90 (2013)
Bremner, D., Pasechnik, D.V., Rehn, T., Schürmann., A., Dutour Sikirić, D.: Computing symmetry groups of polyhedra. LMS J. Comput. Math. 17(1), 565–581 (2014)
Christophel, P.M., Güzelsoy, M., Póolik, I.: New symmetries in mixed-integer linear optimization symmetry heuristics and complement-based symmetries. In: Technical Report, Optimization Online. http://www.optimization-online.org/DB_HTML/2014/07/4466.html (2014). Accessed June 2018
Darga, P.T., Katebi, H., Liffiton, M., Markov, I., Sakallah, K.: Saucy. http://vlsicad.eecs.umich.edu/BK/SAUCY/ (2012). Accessed June 2018
Faenza, Y., Kaibel, V.: Extended formulations for packing and partitioning orbitopes. Math. Oper. Res. 34(3), 686–697 (2009)
Fischetti, M., Liberti, L.: Orbital shrinking. In: Mahjoub, A., Markakis, V., Milis, I., Paschos, V.T. (eds.) Combinatorial Optimization, Lecture Notes in Computer Science, vol. 7422, pp. 48–58. Springer, Berlin (2012)
Friedman, E.J.: Fundamental domains for integer programs with symmetries. In: Combinatorial Optimization and Applications, volume 4616 of Lecture Notes in Computer Science, pp. 146–153. Springer, Berlin (2007)
GAP—Groups, Algorithms, Programming: A system for computational discrete algebra. Version 4.5. http://www.gap-system.org/ (2013). Accessed June 2018
Gatermann, K., Parrilo, P.: Symmetry groups, semidefinite programs, and sums of squares. J. Pure Appl. Algebra 192(1–3), 95–128 (2004)
Ghoniem, A., Sherali, H.D.: Defeating symmetry in combinatorial optimization via objective perturbations and hierarchical constraints. IIE Trans. 43, 575–588 (2011)
Herr, K.: Core Sets and Symmetric Convex Optimization. Ph.D. Thesis, TU Darmstadt (2013)
Herr, K., Rehn, T., Schürmann, A.: Exploiting symmetry in integer convex optimization using core points. Oper. Res. Lett. 41(3), 298–304 (2013)
Herr, K., Rehn, T., Schürmann, A.: On lattice-free orbit polytopes. Discrete Comput. Geom. 53(1), 144–172 (2015)
Johnson, D.S.: The NP-completeness column. ACM Trans. Algorithms 1(1), 160–176 (2005)
Junttila, T., Kaski, P.: bliss: A tool for computing automorphism groups and canonical labelings of graphs. http://www.tcs.hut.fi/Software/bliss/ (2012). Accessed June 2018
Kaibel, V., Pfetsch, M.E.: Packing and partitioning orbitopes. Math. Program. 114, 1–36 (2008)
Kaibel, V., Peinhardt, M., Pfetsch, M.E.: Orbitopal fixing. Discrete Optim. 8(4), 595–610 (2011)
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: mixed integer programming library version 5. Math. Program. Comput. 3(2), 103–163 (2011)
Lang, S.: Algebra, 3rd edn. Springer, New York (2005)
Liberti, L.: Automatic generation of symmetry-breaking constraints. In: Combinatorial Optimization and Applications, volume 5165 of Lecture Notes in Computer Science, pp. 328–338. Springer, Berlin (2008)
Liberti, L.: Reformulations in mathematical programming: automatic symmetry detection and exploitation. Math. Program. 131(1–2), 273–304 (2012)
Liberti, L., Ostrowski, J.: Stabilizer-based symmetry breaking constraints for mathematical programs. J. Glob. Optim. 60, 183–194 (2014)
Margot, F.: Pruning by isomorphism in branch-and-cut. Math. Program. 94, 71–90 (2002)
Margot, F.: Exploiting orbits in symmetric ILP. Math. Program. 98(1–3), 3–21 (2003)
Margot, F.: Small covering designs by branch-and-cut. Math. Program. 94(2–3), 207–220 (2003)
Margot, F.: Symmetric ILP: Coloring and small integers. Discrete Optim. 4(1), 40–62 (2007)
Margot, F.: Symmetry in integer linear programming. In: Jünger, M., Liebling, T., Naddef, D., Nemhauser, G.L., Pulleyblank, W., Reinelt, G., Rinaldi, G., Wolsey, L. (eds.) 50 Years of Integer Programming 1958–2008, chapter 17, pp. 647–681. Springer, Berlin (2010)
McKay, B.D.: The nauty program. http://cs.anu.edu.au/people/bdm/nauty/ (2012). Accessed June 2018
Mittelmann, H.D., Salvagnin, D.: On solving a hard quadratic 3-dimensional assignment problem. Math. Program. Comput. 7, 219–234 (2015)
Ostrowski, J., Linderoth, J., Rossi, F., Smriglio, S.: Orbital branching. In: Integer Programming and Combinatorial Optimization, volume 4513 of Lecture Notes in Computer Science, pp. 104–118. Springer, Berlin (2007)
Ostrowski, J.: Symmetry in Integer Programming. Ph.D. Thesis, Lehigh University (2009)
Ostrowski, J., Linderoth, J., Rossi, F., Smriglio, S.: Orbital branching. Math. Program. 126(1), 147–178 (2011)
Padberg, M.W.: Facets and rank of integer polyhedra. In: Jünger, M., Reinelt, G. (eds.) Facets of Combinatorial Optimization, pp. 23–58. Springer, Berlin (2013)
Puget, J.-F.: Automatic detection of variable and value symmetries. In: Beek, P. (ed.) Principles and Practice of Constraint Programming—CP 2005. Lecture Notes in Computer Science, vol. 3709, pp. 475–489. Springer, Berlin (2005)
Read, R.C., Corneil, D.G.: The graph isomorphism disease. J. Graph Theory 1(4), 339–363 (1977)
Rehn, T.: Exploring Core Points for Fun and Profit: A Study Of Lattice-free Orbit Polytopes. Ph.D. Thesis, University of Rostock (2014)
Rehn, T.: PermLib: Permutation Computation Library. http://www.geometrie.uni-rostock.de/software/ (2013). Accessed June 2018
Salvagnin, D.: A Dominance Procedure For Integer Programming. Master’s Thesis, University of Padova (2005)
Salvagnin, D.: Orbital shrinking: a new tool for hybrid MIP/CP methods. In: Gomes, C., Sellmann, M. (eds.) Proceedings of Integration of AI and OR Techniques in Constraint Programming for Combinatorial Optimization Problems (CPAIOR), pp. 204–215. Springer, Berlin, Heidelberg (2013)
Savelsbergh, M.W.P.: Preprocessing and probing techniques for mixed integer programming problems. ORSA J. Comput. 6(4), 445–454 (1994)
SCIP–Solving Constraint Integer Programs: http://scip.zib.de (2015). Accessed June 2018
Seress, Á.: Permutation Group Algorithms. Cambridge University Press, Cambridge (2003)
Sherali, H., Smith, J.C.: Improving discrete model representations via symmetry considerations. Manag. Sci. 47(10), 1396–1407 (2001)
Acknowledgements
We thank Tobias Achterberg for interesting discussions on the topic and Christopher Hojny for helpful comments. We also thank the editor and referees for their helpful comments that helped to improve this paper. Furthermore, the first author acknowledges support of the German Research Foundation (DFG) within the Collaborative Research Center 666.
Author information
Authors and Affiliations
Corresponding author
Electronic supplementary material
Below is the link to the electronic supplementary material.
Appendix: List of MIPLIB 2010 symmetries
Appendix: List of MIPLIB 2010 symmetries
The following Table 19 lists details about the symmetry groups of MIPLIB 2010 instances. The second column shows the logarithm to the base 10 of the order of the symmetry groups. The third column presents the percentage of variables that lie in an orbit of at least size two, i.e., variables on which the symmetry group acts non-trivially. The fourth column shows the groups which the symmetry group is a direct product of. The following notation is used:
-
\(\mathcal {S}_{k}\) denotes a symmetric group of degree k in coordinate action;
-
\(M({G},{\ell })\) represents the matrix action of group G on \(\ell \) points.
-
“unknown” denotes groups whose type could not be determined by PermLib.
The computations for this table were performed on an Intel i7 CPU with 3.40 GHz and 32 GB of memory and a time limit of 10 h. For some instances, the computation or analysis ran into the memory or time limit. These instances are marked with “–”. Instances without symmetry are not shown.
Rights and permissions
About this article
Cite this article
Pfetsch, M.E., Rehn, T. A computational comparison of symmetry handling methods for mixed integer programs. Math. Prog. Comp. 11, 37–93 (2019). https://doi.org/10.1007/s12532-018-0140-y
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12532-018-0140-y