Subgraph Matching Problem
2025๋ ์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฉ์ ์ปจํํ์ฌ ํ๋ถ ์กธ์ ์ฐ๊ตฌ ์ฃผ์ ๋ฅผ ๋ฐ์์ ์งํํ๊ณ ์์ต๋๋ค. ์ ์ ์ฃผ์ ๋ โContinuous Subgraph Matchingโ๊ณผ ๊ด๋ จํด ์ฝ๋๋ฅผ ์ต์ ํ ํ๊ณ ๊ฐ์ ํ๋ ๊ฒ์ผ๋ก ๊ทธ๋ํ ์ฟผ๋ฆฌ ๊ด๋ จ ๋ ผ๋ฌธ์ ์ฝ๊ณ , C++ ์ฝ๋๋ฅผ ํ๋ํ๊ณ ์์ต๋๋ค. ์กธ์ ๋ง์ง๋ง ํ๊ธฐ์ ๋ฃ๋ ์์ ์ธ๋ฐ ๋ง์ ๋ ธํ์ฐ์ ๊ฒฝํ์ ์๊ณ ์กธ์ ํ๊ธฐ๋ฅผ ๊ธฐ๋ํ๊ณ ์์ต๋๋ค ใ ใ
Introduction
์ด๋ฒ ํฌ์คํธ์์๋ SymBi ๋ ผ๋ฌธ์์ ํธ๋ ค๊ณ ํ๋ ๋ฌธ์ ์ธ โCSM(Continuous Subgraph Matching)โ ๋ฌธ์ ์ ๊ด๋ จ๋ ์ฉ์ด๊ฐ ๊ฐ๋ ์ ์ ๋ฆฌํ๊ณ ์ ํฉ๋๋ค. ๋จผ์ ์กฐ๊ธ ์น์ํด์ง๊ธฐ ์ํด CSM ๋ฌธ์ ์ ๋ํด ๊ธฐ์ ํ๋ฉด,
์ฟผ๋ฆฌ์ ๋ฐ์ดํฐ ๋๋ค ๊ทธ๋ํ์ ํํ๋ก ์ฃผ์ด์ง๋๋ค. โSubgraph Matchingโ ๋ฌธ์ ๋ ์ฃผ์ด์ง ๋ฐ์ดํฐ ๊ทธ๋ํ ์์์ ์ฟผ๋ฆฌ ๊ทธ๋ํ๊ฐ ๋ถ๋ถ ๊ทธ๋ํ๋ก ์ผ๋ง๋ ์กด์ฌํ๋์ง ์ฐพ๋ ๋ฌธ์ ๊ฐ ๋ฉ๋๋ค.
โContinuousโ SM ๋ฌธ์ ๋ ๋ฐ์ดํฐ ๊ทธ๋ํ์ Graph Update Stream $\Delta o_i$๊ฐ ์ ์๋ฉ๋๋ค. Update Stream์ ์ฃ์ง ์ถ๊ฐ๊ฐ ๋ ์๋ ์๊ณ , ์ฃ์ง ์ญ์ ๊ฐ ๋ ์๋ ์์ต๋๋ค.
์ฃ์ง ์ถ๊ฐ๋ก ์ธํด Subgraph Matching์ด ์ถ๊ฐ๋๋ค๋ฉด positive match, ์ฃ์ง ์ญ์ ๋ก ์ธํด Subgraph Matching์ด ์์ด์ง๋ค๋ฉด negative match๋ผ๊ณ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํฌ์คํธ์์ ๋ค๋ฃจ๋ ์ฉ์ด์ ๊ฐ๋ ์ โSymBiโ ๋ ผ๋ฌธ์ ๊ธฐ์ค์ผ๋ก ์์ฑ ๋์์์ ๋ฏธ๋ฆฌ ๋ฐํ๋๋ค!
Terminologies
Graph
Undirected, Connected, and vertex-labeled graph๋ฅผ ๊ฐ์ ํฉ๋๋ค. ๊ทธ๋ํ $g$์ ๊ฐ ์์๋ ์๋์ ๊ฐ์ต๋๋ค.
- $V(g)$
- set of vertices
- $E(g)$
- set of edges
- $l_g: V(g) \rightarrow \Sigma$
- labeling function
- $\Sigma$ is โset of labelsโ
๊ทธ๋ฆฌ๊ณ ๊ทธ๋ํ $g$๋ฅผ ์๋์ ๊ฐ์ด ํํํ๋ค.
\[g := (V(g), E(g), l_g)\]Representation
๋ณ๋ ํฌ์คํธ?
Induced Subgraph
์ฃผ์ด์ง ๊ทธ๋ํ $g$์์ Subgraph๋ฅผ ๋ง๋ค ๋, ๊ทธ๋ฅ ๋ง๋๋๊ฒ ์๋๋ผ ๋์ด์ค๋ง Subgraph๊ฐ ๋๋๋ก ์ ์ํด์ผ ํฉ๋๋ค.
Given $S \subseteq V(g)$, a graph whose vertex set if $s$ and whose edge set consists of all the edges in $E(g)$ that have both endpoints in $S$.
์ฝ๊ฒ ์ค๋ช ํ๋ฉด, Subgraph๋ฅผ ๋ง๋ค๊ธฐ ์ํด ๋ฝ์ Vertex subset $S$์ ๋ํด์, ๊ธฐ์กด ๊ทธ๋ํ $g$์์ subset $S$ ์ฌ์ด์ ์ฐ๊ฒฐ๋ edge๋ ๋ชจ๋ ์ ์งํ๋ Subgraph๋ฅผ ๋งํฉ๋๋ค.
Graph Matching Problem
Homomorphism
์ฟผ๋ฆฌ ๊ทธ๋ํ $q$์ ๋ฐ์ดํฐ ๊ทธ๋ํ $g$๊ฐ ์์ ๋, ๋ ๊ทธ๋ํ ์ฌ์ด์ ๋งค์นญ ์ํ์ ๋ํ ์ ์ ์ ๋๋ค.
- Query Graph $q = (V(q), E(q), l_q)$
- Data Graph $g = (V(g), E(g), l_g)$
There exist a mapping $M: V(q) \rightarrow V(g)$ s.t.
- For every $u \in V(q)$, $l_q(u) = l_g(M(u))$
- For every $(u, uโ) \in E(q)$, $(M(u), M(uโ)) \in E(g)$
Embedding
an injective homomorphism s.t. $u \ne uโ\implies M(u) \ne M(uโ)$
Homomorphism ๋ณด๋ค ๋ ๊ฐํ ๋งค์นญ ์กฐ๊ฑด์ ๋ง์กฑ ํฉ๋๋ค. ์๋ณธ ๊ทธ๋ํ์ ๊ตฌ์กฐ์ ์ฑ์ง์ ์ต๋ํ ๋ณด์กดํ๋ ๊ทธ๋ํ ๋งคํ ๋ฐฉ๋ฒ ์ ๋๋ค.
์ ๊ทธ๋ฆผ์ Homomorphism์ ๋ง์กฑํ์ง๋ง, Embedding์ ๋ง์กฑํ์ง ์๋ ์์ ์ ๋๋ค. ์ฟผ๋ฆฌ ๊ทธ๋ํ์์ $A$๋ก ๋ ์ด๋ธ๋ ๋ ๋ ธ๋๊ฐ ๋ฐ์ดํฐ ๊ทธ๋ํ์์ ๊ฐ์ $A$ ๋ ธ๋๋ก ๋งคํ๋์๊ธฐ ๋๋ฌธ์ โinjectiveโ ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์์ต๋๋ค!
Partial Embedding
When induced subgraph of $q$ has embedding on data graph $g$.
์ฟผ๋ฆฌ ๊ทธ๋ํ์ โinduced subgraphโ์ ๋ํด์ ์๋ฒ ๋ฉ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ
Subgraph-isomorphism/homomorphism
Subgraph-isomorphism์ ๋ ๊ฐํ ์กฐ๊ฑด์ผ๋ก ์ฟผ๋ฆฌ ๊ทธ๋ํ $q$๊ฐ ๋ฐ์ดํฐ ๊ทธ๋ํ $g$์ ๋ถ๋ถ ๊ทธ๋ํ๋ก ์ ํํ ์ผ์นํฉ๋๋ค.
๋ฐ๋ฉด์ โSubgraph-homomorphismโ์ ์ข๋ ๋์จํ ๋งคํ์ผ๋ก ์ฟผ๋ฆฌ ๊ทธ๋ํ $q$๊ฐ ๋ฐ์ดํฐ ๊ทธ๋ํ $g$์ ๊ตฌ์กฐ์ ์ผ๋ก ๋์ ๋์ง๋ง, ์ผ๋ถ ๋ ธ๋์ ๋งคํ์ด ๊ฒน์น๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
์์ผ๋ก ์ ๊ฐ๋๋ ๋ด์ฉ์์ ๊ทธ๋ํ ์ฟผ๋ฆฌ ๋งค์นญ์ ์ฐพ๋๋ค๋ ๊ฒ์ โsubgraph isomorphismโ์ ๋ง์กฑํ๋ ๋งค์นญ์ ์ฐพ๊ฒ ๋ค๋ ๊ฒ์ ๋งํฉ๋๋ค!
How to find subgraph matching efficiently
DAG of query graph
์ฟผ๋ฆฌ ๊ทธ๋ํ์์ ์์๋ก ๋ฃจํธ ๋ ธ๋๋ฅผ ์ก์ ํ, ์ด๋ฅผ ๋ฐํ DFS ํ์์ ํ์ฌ ์ฟผ๋ฆฌ DAG $\hat{q}$๋ฅผ ์์ฑ ํฉ๋๋ค.
Path Tree of query graph
์ด๋, ์ฟผ๋ฆฌ DAG $\hat{q}$๋ฅผ DFS ๋ฐฉ๋ฒ์ผ๋ก ์ํํ์ฌ ์ป๋ ํธ๋ฆฌ ๊ทธ๋ํ๋ฅผ โPath Treeโ $\hat{q}_T$๋ผ๊ณ ํฉ๋๋ค.
Path Tree๋ DAG ์ฟผ๋ฆฌ๋ฅผ ๋ค๋ฃฐ ๋, ๊ทธ๋ํ์ ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ์ ์งํ๋ฉด์๋ ๊ฒ์์ ๋น ๋ฅด๊ฒ ํ๋๋ก ํ๋ ์ฟผ๋ฆฌ ๊ทธ๋ํ์ ๋ณํ ์ ๋๋ค.
Weak Embedding
For a rooted DAG $\hat{q}$ with root $u$,
a โweak embedding $Mโ$ of $\hat{q}$ at $v \in V(g)$โ is defined as a homomorphism of the path tree of $\hat{q}$ in $g$ s.t. $Mโ(u) = v$
DAG ์ฟผ๋ฆฌ $\hat{q}$์ ๋ํ ๋งคํ์ ๋ฐ๋ก ์ฐพ๋๊ฒ ์๋๋ผ, ์ด๊ฒ์ Path Tree ์ฟผ๋ฆฌ $\hat{q}_T$๋ฅผ ๋ง๋ค๊ณ ์ด๊ฒ์ ๋ํ โHomomorphismโ ๋งคํ์ด ์กด์ฌํ๋์ง ์ฒดํฌํ ๊ฒฐ๊ณผ๋ฅผ ๋งํฉ๋๋ค. ์ด๋, Path Tree์ ๋ํ Embedding์ ์ฐพ๋๊ฒ ์๋๋ผ โhomomorphismโ์ด ์กด์ฌํ๋์ง ์ฐพ๋ ๊ฒ์ ์ ์ ํฉ๋๋ค.
Weak Embedding์ ๋งค์นญ ์ฌ๋ถ๋ฅผ ๋น ๋ฅด๊ฒ ํ์ธํ๊ธฐ ์ํด โ์ํ๋ ๋งค์นญโ์ ๋๋ค.
Example
์๋๋ ๋ ผ๋ฌธ์์ ์ ์ํ Weak Embedding์ ์์ ์ ๋๋ค. ์ฌ๊ธฐ์์ โweak embedding of $\hat{q}_{u_3}$ at $v_4$โ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๋์์ด ๋๋ ๋ ธ๋๋ค์ ์ฝ๊ฒ ๋ณด๊ธฐ ์ํด ๋ถ์ ์์ญ์ผ๋ก ํ์ํ์์ต๋๋ค.
์์ธํ ์ดํด๋ณด๋ฉด, ์์๋ ๋์ด์คํ ๋งคํ์ด๋ผ์ sub-DAG $\hat{q}_{u_3}$์ ๋ํด Embedding์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ ์ ๋๋ค๋งโฆ! ์ค๋ช ์ ์ํด ์ข๋ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋จผ์ , ์์์ ๋งคํ์ Weak Embedding ์ ๋๋ค. ์ด์ ๋ Path Tree์ ๋ํด โhomomorphismโ ๋งคํ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. $M(uโ_5) = M(u^{\prime\prime}_5) = v_8$์ด๊ธฐ ๋๋ฌธ์ embedding์ด ์๋๋ผ homomorphism ์ ๋๋ค. ๋ค๋ง, DAG $\hat{q}$ ์ ์ฅ์์๋ โWeak Embeddingโ ์ ๋๋ค.
Embedding and Weak Embedding
Every embedding of $q$ in $g$ is a weak embedding of $\hat{q}$ in $g$,
but the converse is not true
์ฟผ๋ฆฌ ๊ทธ๋ํ์ ์๋ฒ ๋ฉ์ด ์กด์ฌํ๋ค๋ฉด, ์ฟผ๋ฆฌ DAG์ ๋ํด์๋ ํญ์ โWeak Embeddingโ์ด ์กด์ฌํ๋ค๋ ๋ช ์ ์ ๋๋ค. ํ์ง๋ง, SymBi ๋ ผ๋ฌธ์์๋ ์ด๊ฒ์ ๋์ฐ ๋ช ์ ๋ฅผ ํ์ฉํด ํ์ ๋ฒ์๋ฅผ ๊ฐ์ง์น๊ธฐ ํ๋๋ฐ ์ฌ์ฉํฉ๋๋ค.
IF there exist no weak embedding of $\hat{q}$ in $g$,
then there no embedding of $q$ in $g$.
์ญ๋ช ์ ๋ ๊ฑฐ์ง์ด๋ผ๊ณ ํ๋๋ฐ, โWeak Embedding์ด ์กด์ฌํ๋ค๊ณ ํด์, Embedding์ด ์กด์ฌํ๋ ๊ฒ์ ์๋๋ค.โ ์ด๊ฒ๋ ์ฝ๊ฒ ์์๋ฅผ ๋ ์ฌ๋ ค ๋ณผ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ๊ทธ๋ํ์ Path Tree์ ํ์์ด ์์ ํ ๋๊ฐ์ ๋งคํ์ด ์กด์ฌํ๋ค๊ณ ํด๋ด ์๋ค. ์ฆ, Path Tree์ ๋ํด homomorphism์ด ์๋๋ผ embedding์ ๋ง์กฑํ๋ ๊ฒฝ์ฐ ์ ๋๋ค. ๊ทธ๋ฐ๋ฐ, ์ฟผ๋ฆฌ DAG $\hat{q}$์ Path Tree $\hat{q}_T$๊ฐ ์๋ก isomorphic ํ์ง ์์ต๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ๋ผ๋ฉด, Weak Embedding์ ์กด์ฌํ์ง๋ง, ์ด๊ฒ์ด Embedding์ด ๋์ง๋ ๋ชปํฉ๋๋ค!
๋จ, Embedding์ด ๋์ง ๋ชปํ๋ ์ด์ ๋ฅผ Path Tree์ ๋ํด embedding์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ์ ๋๊ณ , ์ฟผ๋ฆฌ DAG์ Path Tree์ ํ์์ด ์๋ก ๋ค๋ฅด๋ฉด ์ด๋ ๊ฒ Weak Embedding์ ๋ํ ์ญ์ด ์ฑ๋ฆฝํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ ์ ์๋ค๊ณ ๋ฐ์๋ค์ฌ์ผ ํฉ๋๋ค.
Backtracking
์ฌ๊ท์ ์ผ๋ก ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ํ์ํ๋ ๊ธฐ๋ฒ ์ ๋๋ค. ์ด๋, ์ ๋งํ์ง ์์ ๊ฒฝ๋ก๋ ์กฐ๊ธฐ์ ํฌ๊ธฐ(Pruning)ํ์ฌ ํ์ ์ฑ๋ฅ์ ๋์ผ ์ ์์ต๋๋ค. ๊ทธ๋์ ์์ ํ์(Brute-force)๋ณด๋ค ํจ์จ์ ์ผ๋ก ์ํ๋ ์กฐ๊ฑด์ ํ์ํ ์ ์์ต๋๋ค.
- ๊ฐ๋ฅํ ํด(Partial Solution)์ ๊ตฌ์ฑํ๊ณ
- ์ ํจ์ฑ์ ๊ฒ์ฌํจ
- ์ด๋, ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์์ผ๋ฉด, ํฌ๊ธฐํ๊ณ ๋์๊ฐ = backtrack
- ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉด, ๊ณ์ ์งํ
๋ฐฑํธ๋ํน์ ์ฃผ๋ก ์๋์ ๋ฌธ์ ๋ค์ ์ฌ์ฉ ํฉ๋๋ค.
- ์ ์ฝ ์ถฉ์กฑ ๋ฌธ์ (Constraint Satisfaction Problems)
- N-queen ๋ฌธ์
- ์ค๋์ฟ
- ๊ทธ๋ํ ์์น ๋ฌธ์ (Graph Coloring)
- ์กฐํฉ ๋ฐ ์์ด ๋ฌธ์
- ๋ถ๋ถ์งํฉ์ ํฉ ๋ฌธ์ (Subset Sum)
- ์ฌํ์ ๋ฌธ์ (TSP)
- ๊ทธ๋ํ ํ์
- ๋ฏธ๋ก ์ฐพ๊ธฐ(Maze Solver)
ํ๋ถ ์๊ณ ๋ฆฌ์ฆ ์์ ๊ณผ ์ธ๊ณต์ง๋ฅ ์์ ๋, ๋ง์ด ๋ฐฐ์ ๋ ๊ฐ๋ ์ ๋๋ค ใ ใ
Ullmannโs backtracking
๋ถ๋ถ ๊ทธ๋ํ์ ๋ํ(subgraph isomorphism) ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด 1976 Ullmann์ด ์ ์ํ ๋ฐฑํธ๋ํน ๊ธฐ๋ฐ ์๊ณ ๋ฆฌ์ฆ ์ ๋๋ค.
๋ ๊ฐ์ ๊ทธ๋ํ $G$์ $H$๊ฐ ์์ ๋, $H$๊ฐ $G$์ ๋ถ๋ถ ๊ทธ๋ํ์ธ์ง ํ๋ณํ๋ ์๊ณ ๋ฆฌ์ฆ ์ ๋๋ค.
- ํ๋ณด ํ๋ ฌ ์์ฑ
- $G$ ๋ ธ๋์ $H$ ๋ ธ๋ ๊ฐ์ ๋งค์นญ ํ๋ณด๋ฅผ ์ฐพ์ ๊ธฐ๋กํฉ๋๋ค.
- ๋ ธ๋ ๋ ์ด๋ธ์ด ๋ค๋ฅด๋ฉด ๋งคํ์ด ์ ํ ์ ๋๋ ๋ ธ๋ ์์ด๋, ์ฌํํ๊ฒ๋ ๊ฐ ๋ ธ๋์ ๋ ์ด๋ธ์ด ๊ฐ๋ค๋ฉด, ํ๋ณด๋ก ๋ถ๋ฅ ํฉ๋๋ค.
- ์ฌ๊ท์ ์ผ๋ก ํ์
- ๊ฐ ๋ ธ๋์ ๋ํด ๊ฐ๋ฅํ ๋งคํ์ ๋ฐฑํธ๋ํน ํ๋ฉฐ ํ์ ํฉ๋๋ค.
- Pruning
- ์ ํจํ์ง ์์ ๋งคํ์ ๋ฏธ๋ฆฌ ์ ๊ฑฐํ์ฌ ํ์ ์๋๋ฅผ ๋์ ๋๋ค.
- ๋งคํ ๊ฒ์ฆ
- ์์ฑ๋ ๋งคํ์ด ๊ทธ๋ํ ๊ตฌ์กฐ๋ฅผ ์ ์งํ๋์ง ํ์ธ ํฉ๋๋ค.
Related Works
Symbi ๋ ผ๋ฌธ์์ ์ ์๋์๋ ๊ด๋ จ ๋ ผ๋ฌธ๋ค์ ๊ธฐ์ค์ผ๋ก ๋์ด ํ์์ต๋๋ค.
- TurboIso (2013) [1]
- CFL-Matching (2016)
- DAF (2019)
์ด์ค์์ TurboIso ๋ ผ๋ฌธ์ ํ์ฌ ์กธ์ ์ฐ๊ตฌ ์ค์ธ ์ฐ๊ตฌ์ค์์ ๊ฒ์ํ ๋ ผ๋ฌธ ์ ๋๋ค! ์ถํ์ ์ฝ๊ณ ๋ด์ฉ์ ์ ๋ฆฌํ๊ฒ ์ต๋๋ค.
๋งบ์๋ง
์ง๊ธ๊น์ง โSubgraph Matchingโ์ ๋ํ ์ฉ์ด์ ๊ฐ๋ ๋ค์ ์ดํด๋ณด์์ต๋๋ค. ์ด์ ๋ ๋ณธ๊ฒฉ์ ์ผ๋ก ์กธ์ ์ฐ๊ตฌ์์ ๋ค๋ฃจ๋ โContinuous Subgraph Matchingโ ๋ฌธ์ ์ ๋ํด์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
โก๏ธ Continuous Subgraph Matching