๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ฟผ๋ฆฌ ๊ทธ๋ž˜ํ”„์˜ ๋งค์นญ์„ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด

10 minute read

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.

  1. For every $u \in V(q)$, $l_q(u) = l_g(M(u))$
  2. 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)๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์›ํ•˜๋Š” ์กฐ๊ฑด์„ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๊ฐ€๋Šฅํ•œ ํ•ด(Partial Solution)์„ ๊ตฌ์„ฑํ•˜๊ณ 
  2. ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•จ
    1. ์ด๋•Œ, ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š์œผ๋ฉด, ํฌ๊ธฐํ•˜๊ณ  ๋Œ์•„๊ฐ = backtrack
    2. ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด, ๊ณ„์† ์ง„ํ–‰

๋ฐฑํŠธ๋ž˜ํ‚น์€ ์ฃผ๋กœ ์•„๋ž˜์˜ ๋ฌธ์ œ๋“ค์— ์‚ฌ์šฉ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ œ์•ฝ ์ถฉ์กฑ ๋ฌธ์ œ(Constraint Satisfaction Problems)
    • N-queen ๋ฌธ์ œ
    • ์Šค๋„์ฟ 
    • ๊ทธ๋ž˜ํ”„ ์ƒ‰์น  ๋ฌธ์ œ(Graph Coloring)
  • ์กฐํ•ฉ ๋ฐ ์ˆœ์—ด ๋ฌธ์ œ
    • ๋ถ€๋ถ„์ง‘ํ•ฉ์˜ ํ•ฉ ๋ฌธ์ œ(Subset Sum)
    • ์—ฌํ–‰์ž ๋ฌธ์ œ(TSP)
  • ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰
    • ๋ฏธ๋กœ ์ฐพ๊ธฐ(Maze Solver)

ํ•™๋ถ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—…๊ณผ ์ธ๊ณต์ง€๋Šฅ ์ˆ˜์—… ๋•Œ, ๋งŽ์ด ๋ฐฐ์› ๋˜ ๊ฐœ๋… ์ž…๋‹ˆ๋‹ค ใ…Žใ…Ž

Ullmannโ€™s backtracking

๋ถ€๋ถ„ ๊ทธ๋ž˜ํ”„์˜ ๋™ํ˜•(subgraph isomorphism) ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด 1976 Ullmann์ด ์ œ์‹œํ•œ ๋ฐฑํŠธ๋ž˜ํ‚น ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž…๋‹ˆ๋‹ค.

๋‘ ๊ฐœ์˜ ๊ทธ๋ž˜ํ”„ $G$์™€ $H$๊ฐ€ ์žˆ์„ ๋•Œ, $H$๊ฐ€ $G$์˜ ๋ถ€๋ถ„ ๊ทธ๋ž˜ํ”„์ธ์ง€ ํŒ๋ณ„ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž…๋‹ˆ๋‹ค.

  1. ํ›„๋ณด ํ–‰๋ ฌ ์ƒ์„ฑ
    1. $G$ ๋…ธ๋“œ์™€ $H$ ๋…ธ๋“œ ๊ฐ„์˜ ๋งค์นญ ํ›„๋ณด๋ฅผ ์ฐพ์•„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
    2. ๋…ธ๋“œ ๋ ˆ์ด๋ธ”์ด ๋‹ค๋ฅด๋ฉด ๋งคํ•‘์ด ์ „ํ˜€ ์•ˆ ๋˜๋Š” ๋…ธ๋“œ ์Œ์ด๋‹ˆ, ์‹ฌํ”Œํ•˜๊ฒŒ๋Š” ๊ฐ ๋…ธ๋“œ์˜ ๋ ˆ์ด๋ธ”์ด ๊ฐ™๋‹ค๋ฉด, ํ›„๋ณด๋กœ ๋ถ„๋ฅ˜ ํ•ฉ๋‹ˆ๋‹ค.
  2. ์žฌ๊ท€์ ์œผ๋กœ ํƒ์ƒ‰
    1. ๊ฐ ๋…ธ๋“œ์— ๋Œ€ํ•ด ๊ฐ€๋Šฅํ•œ ๋งคํ•‘์„ ๋ฐฑํŠธ๋ž˜ํ‚น ํ•˜๋ฉฐ ํƒ์ƒ‰ ํ•ฉ๋‹ˆ๋‹ค.
  3. Pruning
    1. ์œ ํšจํ•˜์ง€ ์•Š์€ ๋งคํ•‘์€ ๋ฏธ๋ฆฌ ์ œ๊ฑฐํ•˜์—ฌ ํƒ์ƒ‰ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.
  4. ๋งคํ•‘ ๊ฒ€์ฆ
    1. ์™„์„ฑ๋œ ๋งคํ•‘์ด ๊ทธ๋ž˜ํ”„ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•˜๋Š”์ง€ ํ™•์ธ ํ•ฉ๋‹ˆ๋‹ค.

Related Works

Symbi ๋…ผ๋ฌธ์—์„œ ์ œ์‹œ๋˜์—ˆ๋˜ ๊ด€๋ จ ๋…ผ๋ฌธ๋“ค์„ ๊ธฐ์ค€์œผ๋กœ ๋‚˜์—ด ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

  • TurboIso (2013) [1]
  • CFL-Matching (2016)
  • DAF (2019)

์ด์ค‘์—์„œ TurboIso ๋…ผ๋ฌธ์€ ํ˜„์žฌ ์กธ์—… ์—ฐ๊ตฌ ์ค‘์ธ ์—ฐ๊ตฌ์‹ค์—์„œ ๊ฒŒ์‹œํ•œ ๋…ผ๋ฌธ ์ž…๋‹ˆ๋‹ค! ์ถ”ํ›„์— ์ฝ๊ณ  ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋งบ์Œ๋ง

์ง€๊ธˆ๊นŒ์ง€ โ€œSubgraph Matchingโ€์— ๋Œ€ํ•œ ์šฉ์–ด์™€ ๊ฐœ๋…๋“ค์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด์ œ๋Š” ๋ณธ๊ฒฉ์ ์œผ๋กœ ์กธ์—… ์—ฐ๊ตฌ์—์„œ ๋‹ค๋ฃจ๋Š” โ€œContinuous Subgraph Matchingโ€ ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

โžก๏ธ Continuous Subgraph Matching