Skip to main content
Log in

Detecting almost symmetries of graphs

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

Abstract

We present a branch-and-bound framework to solve the following problem: Given a graph G and an integer k, find a subgraph of G formed by removing no more than k edges that minimizes the number of vertex orbits. We call the symmetries on such a subgraph “almost symmetries” of G. We implement our branch-and-bound framework in PEBBL to allow for parallel enumeration and demonstrate good scaling up to 16 cores. We show that the presented branching strategy is much better than a random branching strategy on the tested graphs. Finally, we consider the presented strategy as a heuristic for quickly finding almost symmetries of a graph G. The software that was reviewed as part of this submission has been issued the Digital Object Identifier DOI:10.5281/zenodo.840558.

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.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5

Similar content being viewed by others

References

  1. Arvind, V., Köbler, J., Kuhnert, S., Vasudev, Y.: Approximate graph isomorphism. In: Mathematical Foundations of Computer Science 2012, pp. 100–111. Springer (2012)

  2. Babai, L.: Graph isomorphism in quasipolynomial time. In: Proceedings of the 48th Annual ACM SIGACT Symposium on Theory of Computing, STOC 2016, pp. 684–697, New York, NY, USA. ACM (2016)

  3. Buchheim, C., Jünger, M.: An integer programming approach to fuzzy symmetry detection. In: International Symposium on Graph Drawing, pp. 166–177. Springer (2003)

  4. Culberson, J., Johnson, D., Lewandowski, G., Trick, M.: Graph coloring instances. http://mat.gsia.cmu.edu/COLOR/instances.html, Mar 2015

  5. Darga, P.T., Sakallah, K.A., Markov, I.L.: Faster symmetry discovery using sparsity of symmetries. In: Proceedings of the 45th Annual Design Automation Conference, DAC ’08, pp. 149–154, New York, NY, USA. ACM (2008)

  6. Eckstein, J., Hart, W.E., Phillips, C.A.: PEBBL: an object-oriented framework for scalable parallel branch and bound. Math. Program. Comput. 7(4), 429–469 (2015)

    Article  MathSciNet  MATH  Google Scholar 

  7. Erdős, P., Rényi, A.: Asymmetric graphs. Acta Math. Hung. 14(3), 295–315 (1963)

    Article  MathSciNet  MATH  Google Scholar 

  8. Feige, U.: Relations between average case complexity and approximation complexity. In: Proceedings of the Thiry-Fourth Annual ACM Symposium on Theory of Computing, pp. 534–543. ACM (2002)

  9. Feige, U., Kilian, J.: Zero knowledge and the chromatic number. In: Proceedings of the Eleventh Annual IEEE Conference on Computational Complexity, 1996, pp. 278–287. IEEE (1996)

  10. Fox, M., Long, D., Porteous, J.: Discovering near symmetry in graphs. In: Proceedings of the 22nd National Conference on Artificial Intelligence, vol. 1, pp. 415–420. AAAI Press (2007)

  11. Fürstenberg, C.: A drawing of a graph. http://en.wikipedia.org/wiki/Graph_theory#mediaviewer/File:6n-graf.svg, Mar (2015)

  12. Garey, M.R., Johnson, D.S., Stockmeyer, L.: Some simplified NP-complete problems. In: Proceedings of the Sixth Annual ACM Symposium on Theory of Computing, pp. 47–63. ACM (1974)

  13. Goldreich, O., Micali, S., Wigderson, A.: Proofs that yield nothing but their validity or all languages in np have zero-knowledge proof systems. J ACM 38(3), 690–728 (1991)

    Article  MathSciNet  MATH  Google Scholar 

  14. Knuth, D.E.: The Stanford GraphBase: A Platform for Combinatorial Computing, vol. 37. Addison-Wesley, Reading (1993)

    MATH  Google Scholar 

  15. Kuhn, H.W.: The Hungarian method for the assignment problem. Nav. Res. Log. Q 2(1–2), 83–97 (1955)

    Article  MathSciNet  MATH  Google Scholar 

  16. Lin, C.-L.: Hardness of approximating graph transformation problem. In: Algorithms and Computation, pp. 74–82. Springer (1994)

  17. Margot, F.: Pruning by isomorphism in branch-and-cut. Math. Program. 94(1), 71–90 (2002)

    Article  MathSciNet  MATH  Google Scholar 

  18. Margot, F.: Exploiting orbits in symmetric ILP. Math. Program. 98(1–3), 3–21 (2003)

    Article  MathSciNet  MATH  Google Scholar 

  19. Markov, I.: Almost-symmetries of graphs. In: Proceedings of International Symmetry Conference (ISC), pp. 60–70 (2007)

  20. Mathon, R.: A note on the graph isomorphism counting problem. Inf. Process. Lett. 8(3), 131–136 (1979)

    Article  MathSciNet  MATH  Google Scholar 

  21. McKay, B.D.: Practical Graph Isomorphism. Department of Computer Science, Vanderbilt University (1981)

  22. McKay, B.D., Piperno, A.: Practical graph isomorphism, II. J. Symb. Comput. 60, 94–112 (2014)

    Article  MathSciNet  MATH  Google Scholar 

  23. McKay, B.D., Piperno, A.: Nauty traces—graphs. http://pallini.di.uniroma1.it/Graphs.html, Mar (2015)

  24. Munkres, J.: Algorithms for the assignment and transportation problems. J. Soc. Ind. Appl. Math. 5(1), 32–38 (1957)

    Article  MathSciNet  MATH  Google Scholar 

  25. O’Donnell, R., Wright, J., Wu, C., Zhou, Y.: Hardness of robust graph isomorphism, Lasserre gaps, and asymmetry of random graphs. In: Proceedings of the Twenty-Fifth Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 1659–1677. SIAM (2014)

  26. Ostrowski, J., Linderoth, J., Rossi, F., Smriglio, S.: Orbital branching. Math. Program. 126(1), 147–178 (2011)

    Article  MathSciNet  MATH  Google Scholar 

  27. Read, R.C., Corneil, D.G.: The graph isomorphism disease. J. Gr. Theory 1(4), 339–363 (1977)

    Article  MathSciNet  MATH  Google Scholar 

  28. Stachniss, C.: C implementation of the Hungarian method. http://www2.informatik.uni-freiburg.de/~stachnis/misc.html, Mar (2015)

Download references

Acknowledgements

The research reported in this paper was funded in part by NSF Award Number 1332662 and NSF Award Number 1333789.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ben Knueven.

Appendices

Appendix: Detailed computational results

In this appendix we break-out the scaling graph in Fig. 4 into scaling graphs for the individual cases tested. These are presented in Fig. 6. We also present the rest of the results on branching choice robustness, similar to that in Table 4, in Table 7. Also, we provide more test-cases for the branching strategy similar to those given in Fig. 5. These results are in Fig. 7. Finally, in Table 8 we present some computational results on the test suite from Table 2 with a modified branching strategy. In particular, at each node we create three children, two of which are deletion nodes for the two edges highest-ranked by edgeUse and the third fixing both these edges. The hope is this makes the fixing child stronger, making for a more balanced tree while also not loosing much due to the robustness of the branching selection demonstrated in Sect. 4.1. As we can see, this branching strategy is better for the random graphs, miles1500.col, and le450_5b.col, but is worse for the remaining graphs. Overall this strategy apparently does not effectively exploit robustness of edgeUse branching.

Fig. 6
figure 6figure 6

Scaling on various problems

Table 7 edgeUse branching robustness, additional instances
Fig. 7
figure 7figure 7figure 7figure 7

Random branching (box plot) versus edgeUse branching (black square, number of nodes on right) versus local branching (times, number of nodes on left)

Table 8 Computational results—three children per node

Appendix: Code structure for FindAlmostSymmetry

This appendix provides a brief description for the code structure for FindAlmostSymmetry.

The files NautyGraph.hpp and NautyGraph.cpp provide a C++ wrapper for nauty’s dense graphs with dynamic allocation, allowing for the easy addition and removal of edges. The two main classes are DenseGraph and NautyGraph. DenseGraph is a class for managing graph objects packed in a bit vector format which can be used in nauty. NautyGraph is derived from DenseGraph and provides methods to call nauty’s automorphism routine and accessing the results. For each node A, \(E^F_A\) (the graph of fixed edges) and \(P_A\) (the graph of permutations) are stored as DenseGraphs. A NautyGraph is used for storing the graph G. NautyGraph.hpp and NautyGraph.cpp also define the class EdgeList, which is used for storing \(E^D_A\) for each node A. These three classes all have utilib::PackObject (from PEBBL) as a parent class, allow them to be passed around using MPI by PEBBL (or utilib’s MPI routines).

The files findAlmost.hpp and parFindAlmost.hpp provide the header information for the functions and classes used for the solver, and findAlmost.cpp implements these. The classes defined in findAlmost.hpp provide hooks for PEBBL’s serial interface. Class findAlmost is a derived class of PEBBL’s branching class, and its methods and attributes set up the problem and are common to every search node: the original graph G, the starting budget k, and solver options. Class findAlmostSub is derived from PEBBL’s branchSub class and provides attributes which are specific to a node, and methods which do the node processing. Most of the main while loop in Algorithm 6 is contained in findAlmostSub::boundComputation(), which PEBBL repeatedly calls until either this node is pruned by bound or no more refining can be done for this node, in which case a branching edge is selected using findAlmostSub::findBranchEdge(). Finally, class findAlmostSol is derived from PEBBL’s solution class, and is used for storing, passing, and writing solutions. The remaining functions have names corresponding to those in the paper, e.g., BuildCostMatrix is implemented in buildCostMatrix().

Similarly, the classes in parFindAlmost.hpp provide the hooks for PEBBL’s parallel interface and also has the header information for function using MPI. The function parRefineByMatching() is similar to refineByMatching() but parallelizes the repeated calls to hungarian_solve(). Class parFindAlmost is derived from findAlmost and PEBBL’s parallelBranching class, and has methods that allow instances of it to be passed around using MPI messaging. Similarly, class parFindAlmostSub is derived from findAlmostSub and PEBBL’s parallelBranchSub. In addition to facilitating subproblem passing through MPI, parFindAlmostSub also replaces a few of the methods of findAlmostSub for parallel subproblem management—in particular ensuring parRefineByMatching() is called while the solver is ramping up.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Knueven, B., Ostrowski, J. & Pokutta, S. Detecting almost symmetries of graphs. Math. Prog. Comp. 10, 143–185 (2018). https://doi.org/10.1007/s12532-017-0124-3

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12532-017-0124-3

Keywords

Mathematics Subject Classification

Navigation