, Volume 15, Issue 3, pp 327–353 | Cite as

Solving subgraph isomorphism problems with constraint programming

  • Stéphane Zampelli
  • Yves Deville
  • Christine Solnon


The subgraph isomorphism problem consists in deciding if there exists a copy of a pattern graph in a target graph. We introduce in this paper a global constraint and an associated filtering algorithm to solve this problem within the context of constraint programming. The main idea of the filtering algorithm is to label every node with respect to its relationships with other nodes of the graph, and to define a partial order on these labels in order to express compatibility of labels for subgraph isomorphism. This partial order over labels is used to filter domains. Labelings can also be strengthened by adding information from the labels of neighbors. Such a strengthening can be applied iteratively until a fixpoint is reached. Practical experiments illustrate that our new filtering approach is more effective on difficult instances of scale free graphs than state-of-the-art algorithms and other constraint programming approaches.


Subgraph isomorphism Global constraint Filtering algorithm 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Barabasi, A.-L. (2003). Linked: How everything is connected to everything else and what it means. New York: Plume.Google Scholar
  2. 2.
    Bessière, C., & Van Hentenryck, P. (2003). To be or not to be . . . a global constraint. In Proceedings of the 9th international conference on principles and practice of constraint programming (CP). LNCS (Vol. 2833, pp. 789–794). New York: Springer.Google Scholar
  3. 3.
    Conte, D., Foggia, P., Sansone, C., & Vento, M. (2004). Thirty years of graph matching in pattern recognition. IJPRAI, 18(3), 265–298.Google Scholar
  4. 4.
    Cordella, L., Foggia, P., Sansone, C., Tortella, F., & Vento, M. (1998). Graph matching: A fast algorithm and its evaluation. In ICPR ’98: Proceedings of the 14th international conference on pattern recognition (Vol. 2, p. 1582). Washington, DC: IEEE Computer Society.Google Scholar
  5. 5.
    Cordella, L., Foggia, P., Sansone, C., & Vento, M. (2001). An improved algorithm for matching large graphs. In 3rd IAPR-TC15 workshop on graph-based representations in pattern recognition (pp. 149–159). Cuen.Google Scholar
  6. 6.
    Cordella, L. P., Foggia, P., Sansone, C., & Vento, M. (1999). Performance evaluation of the vf graph matching algorithm. In ICIAP ’99: Proceedings of the 10th international conference on image analysis and processing (p. 1172). Washington, DC: IEEE Computer Society.CrossRefGoogle Scholar
  7. 7.
    Cormen, T. H., Stein, C., Rivest, R. L., & Leiserson, C. E. (2001). Introduction to algorithms. New York: McGraw-Hill Higher Education.zbMATHGoogle Scholar
  8. 8.
    Darga, P. T., Liffiton, M. H., Sakallah, K. A., & Markov, I. L. (2004). Exploiting structure in symmetry detection for cnf. In Proc. Design Automation Conference (DAC) (pp. 530–534). Piscataway: IEEE/ACM.Google Scholar
  9. 9.
    Deville, Y., Dooms, G., Zampelli, S., & Dupont, P. (2005). Cp(graph+map) for approximate graph matching. In 1st international workshop on constraint programming beyond finite integer domains, CP2005 (pp. 33–48).Google Scholar
  10. 10.
    Dooms, G., Deville, Y., & Dupont, P. (2005). Cp(graph): Introducing a graph computation domain in constraint programming. In Principles and practice of constraint programming. Lecture Notes in Computer Science (Vol. 3709, pp. 211–225).Google Scholar
  11. 11.
    Foggia, P., Sansone, C., & Vento, M.: A database of graphs for isomorphism and sub-graph isomorphism benchmarking. CoRR cs.PL/0105015.Google Scholar
  12. 12.
    Fowler, G., Haralick, R., Gray, F. G., Feustel, C., & Grinstead, C. (1983). Efficient graph automorphism by vertex partitioning. Artificial Intelligence, 21, 245–269.zbMATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    Garey, M., & Johnson, D. (1979). Computers and intractability. New York: Freeman.zbMATHGoogle Scholar
  14. 14.
    Grochow, J. A., & Kellis, M. (2007). Network motif discovery using subgraph enumeration and symmetry-breaking. In T. P. Speed, & H. Huang (Eds.), RECOMB. Lecture Notes in Computer Science (Vol. 4453, pp. 92–106). New York: Springer.Google Scholar
  15. 15.
    Guo, J., Hueffner, F., & Moser, H. (2007). Feedback arc set in bipartite tournaments is np-complete. Information Processing Letters, 102(2–3), 62–65.zbMATHCrossRefMathSciNetGoogle Scholar
  16. 16.
    Hopcroft, J. E., & Karp, R. M. (1973). An \(\text{n}^{\mbox{5/2}}\) algorithm for maximum matchings in bipartite graphs. SIAM Journal on Computing, 2(4), 225–231.zbMATHCrossRefMathSciNetGoogle Scholar
  17. 17.
    Larrosa, J., & Valiente, G. (2002). Constraint satisfaction algorithms for graph pattern matching, Mathematical. Structures in Computer Science, 12(4), 403–422.zbMATHMathSciNetGoogle Scholar
  18. 18.
    McKay, B. D. (1981). Practical graph isomorphism. Congressus Numerantium, 30, 45–87.MathSciNetGoogle Scholar
  19. 19.
    Régin, J. (1995). Développement d’outils algorithmiques pour l’intelligence artificielle. Application à la chimie organique, Ph.D. thesis.Google Scholar
  20. 20.
    Regin, J.-C. (1994). A filtering algorithm for constraints of difference in CSPs. In Proc. 12th conf. American assoc. artificial intelligence. Amer. assoc. artificial intelligence (Vol. 1, pp. 362–367).Google Scholar
  21. 21.
    Rudolf, M. (1998). Utilizing constraint satisfaction techniques for efficient graph pattern matching. In Theory and application of graph transformations. Lecture Notes in Computer Science (No. 1764, pp. 238–252). New York: Springer.Google Scholar
  22. 22.
    Sorlin, S., & Solnon, C. (2004). A global constraint for graph isomorphism problems. In 6th International conference on integration of AI and OR techniques in constraint programming for combinatorial optimization problems (CP-AI-OR 2004). LNCS (Vol. 3011, pp. 287–301). New York: Springer-Verlag.Google Scholar
  23. 23.
    Sorlin, S., & Solnon, C. (2006). A new filtering algorithm for the graph isomorphism problem. In 3rd International workshop on constraint propagation and implementation. CP2006.Google Scholar
  24. 24.
    Sorlin, S., & Solnon, C. (2008). A parametric filtering algorithm for the graph isomorphism problem. Constraints, 13(4), 518–537.zbMATHCrossRefMathSciNetGoogle Scholar
  25. 25.
    Ullmann, J. R. (1976). An algorithm for subgraph isomorphism. Journal of the ACM, 23(1), 31–42.CrossRefMathSciNetGoogle Scholar
  26. 26.
    Valiente, G. (2002). Algorithms on trees and graphs. Berlin: Springer.zbMATHGoogle Scholar
  27. 27.
    Zampelli, S. (2008). A constraint programming approcah to subgraph isomorphism. Ph.D. thesis, UCLouvain, Department of Computing Science & Engineering.Google Scholar
  28. 28.
    Zampelli, S., Deville, Y., & Dupont, P. (2005). Approximate constrained subgraph matching. In Principles and practice of constraint programming. Lecture notes in computer science (Vol. 3709, pp. 832–836).Google Scholar
  29. 29.
    Zampelli, S., Deville, Y., Solnon, C., Sorlin, S., & Dupont, P. (2007). Filtering for subgraph isomorphism. In Proc. 13th conf. of principles and practice of constraint programming. Lecture notes in computer science (pp. 728–742). New York: Springer.Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2009

Authors and Affiliations

  • Stéphane Zampelli
    • 1
  • Yves Deville
    • 2
  • Christine Solnon
    • 3
  1. 1.Ecole des Mines de NantesNantes Cedex 3France
  2. 2.Department of Computing Science and EngineeringUniversity of LouvainLouvain-la-NeuveBelgium
  3. 3.Université de LyonUniversité Lyon 1Villeurbanne cedexFrance

Personalised recommendations