A Backtracking Algorithmic Toolbox for Solving the Subgraph Isomorphism Problem

A Backtracking Algorithmic Toolbox for Solving the Subgraph Isomorphism Problem

Jurij Mihelič, Uroš Čibej, Luka Fürst
DOI: 10.4018/978-1-7998-7156-9.ch014
OnDemand:
(Individual Chapters)
Available
$33.75
List Price: $37.50
10% Discount:-$3.75
TOTAL SAVINGS: $3.75

Abstract

The subgraph isomorphism problem asks whether a given graph is a subgraph of another graph. It is one of the most general NP-complete problems since many other problems (e.g., Hamiltonian cycle, clique, independent set, etc.) have a natural reduction to subgraph isomorphism. Furthermore, there is a variety of practical applications where graph pattern matching is the core problem. Developing efficient algorithms and solvers for this problem thus enables good solutions to a variety of different practical problems. In this chapter, the authors present and experimentally explore various algorithmic refinements and code optimizations for improving the performance of subgraph isomorphism solvers. In particular, they focus on algorithms that are based on the backtracking approach and constraint satisfaction programming. They gather experiences from many state-of-the-art algorithms as well as from their engagement in this field. Lessons learned from engineering such a solver can be utilized in many other fields where backtracking is a prominent approach for solving a particular problem.
Chapter Preview
Top

Subgraph Isomorphism Problem

We start this section with several definitions of graph theory notions and morphisms. We continue with a description of the definition of several variants of the subgraph isomorphism problem. Then we focus on the algorithmic approach to solving the problem with a focus on the backtracking algorithms. Finally, we present two backtracking-based algorithmic frameworks for solving the problem, namely backward checking and forward checking.

Graph Notions

A pair 978-1-7998-7156-9.ch014.m01, where 978-1-7998-7156-9.ch014.m02 is a finite set of vertices and 978-1-7998-7156-9.ch014.m03 is a set of vertex pairs representing edges, is called a graph. If edges are unordered or ordered then the graph is undirected or directed, respectively. In this paper we mostly deal with undirected graphs, but our discussion is generally applicable also to the directed ones.

For an undirected graph 978-1-7998-7156-9.ch014.m04 and a vertex 978-1-7998-7156-9.ch014.m05 we define

978-1-7998-7156-9.ch014.m06
and
978-1-7998-7156-9.ch014.m07
as the 978-1-7998-7156-9.ch014.m08 is neighborhood and degree, respectively.

Let 978-1-7998-7156-9.ch014.m09 be a graph. A graph 978-1-7998-7156-9.ch014.m10 is a subgraph of a graph 978-1-7998-7156-9.ch014.m11 if

978-1-7998-7156-9.ch014.m12

If additionally it also holds

978-1-7998-7156-9.ch014.m13
then the graph 978-1-7998-7156-9.ch014.m14 is an induced subgraph of the graph 978-1-7998-7156-9.ch014.m15.

Complete Chapter List

Search this Book:
Reset