Add example to motivation

This commit is contained in:
Owen Troke-Billard 2024-09-17 21:43:08 -06:00
parent 7044757161
commit 79d188cfa9
1 changed files with 18 additions and 13 deletions

View File

@ -20,24 +20,17 @@ It can find
and [induced subgraph isomorphisms](https://en.wikipedia.org/wiki/Induced_subgraph_isomorphism_problem).
Graphs can be directed or undirected.
# Features
- [x] Enumerate graph isomorphisms
- [x] Enumerate subgraph isomorphisms
- [x] Enumerate induced subgraph isomorphisms
- [x] Support directed graphs
- [x] Support undirected graphs
- [x] Support disconnected graphs
- [x] Support node labels
- [x] Support edge labels
- [x] Graph trait
# Motivation
Subgraph matching is the task of finding instances of a query graph within a larger data graph. It is useful when
searching for patterns in a graph structure, such as relationships within a social network. It is a fundamental
searching for patterns in a graph structure, such as searching a graph database. It is a fundamental
problem in graph theory with applications in pattern recognition, databases, security, and biochemistry.
An illustrative example is finding relationships in social networks. Consider a network like LinkedIn where each node is
a person, and each edge represents a connection. You are tasked with finding cases where five software developers and a
doctor all know each other. You can make a query graph with developers and a doctor, and search for instances of that
query in the larger network.
# What is a subgraph isomorphism?
A graph is a structure consisting of a set of objects where some pairs of objects are connected. A graph isomorphism is
@ -65,6 +58,18 @@ the data subgraph must also exist in the query graph.
![induced-subgraph-isomorphism.svg](/images/induced-subgraph-isomorphism.svg)
# Features
- [x] Enumerate graph isomorphisms
- [x] Enumerate subgraph isomorphisms
- [x] Enumerate induced subgraph isomorphisms
- [x] Support directed graphs
- [x] Support undirected graphs
- [x] Support disconnected graphs
- [x] Support node labels
- [x] Support edge labels
- [x] Graph trait
# Usage
Add `vf2` to your dependencies in **Cargo.toml**.