When Subgraph Isomorphism Is Really Hard, and Why This Matters for Graph Databases
Abstract
The subgraph isomorphism problem involves deciding whether a copy of a pattern graph occurs inside a larger target graph. The non-induced version allows extra edges in the target, whilst the induced version does not. Although both variants are NP-complete, algorithms inspired by constraint programming can operate comfortably on many real-world problem instances with thousands of vertices. However, they cannot handle arbitrary instances of this size. We show how to generate " really hard " random instances for subgraph isomorphism problems, which are computationally challenging with a couple of hundred vertices in the target, and only twenty pattern vertices. For the non-induced version of the problem, these instances lie on a satisfiable / unsatisfiable phase transition, whose location we can predict; for the induced variant, much richer behaviour is observed, and constrained-ness gives a better measure of difficulty than does proximity to a phase transition. These results have practical consequences: we explain why the widely researched " filter / verify " indexing technique used in graph databases is founded upon a misunderstanding of the empirical hardness of NP-complete problems, and cannot be beneficial when paired with any reasonable subgraph isomorphism algorithm.
Cite
Text
McCreesh et al. "When Subgraph Isomorphism Is Really Hard, and Why This Matters for Graph Databases." Journal of Artificial Intelligence Research, 2018. doi:10.1613/JAIR.5768Markdown
[McCreesh et al. "When Subgraph Isomorphism Is Really Hard, and Why This Matters for Graph Databases." Journal of Artificial Intelligence Research, 2018.](https://mlanthology.org/jair/2018/mccreesh2018jair-subgraph/) doi:10.1613/JAIR.5768BibTeX
@article{mccreesh2018jair-subgraph,
title = {{When Subgraph Isomorphism Is Really Hard, and Why This Matters for Graph Databases}},
author = {McCreesh, Ciaran and Prosser, Patrick and Solnon, Christine and Trimble, James},
journal = {Journal of Artificial Intelligence Research},
year = {2018},
pages = {723-759},
doi = {10.1613/JAIR.5768},
volume = {61},
url = {https://mlanthology.org/jair/2018/mccreesh2018jair-subgraph/}
}