Paper Reading: SymBi, Setup DCS
2025๋ ์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฉ์ ์ปจํํ์ฌ ํ๋ถ ์กธ์ ์ฐ๊ตฌ ์ฃผ์ ๋ฅผ ๋ฐ์์ ์งํํ๊ณ ์์ต๋๋ค. ์ ์ ์ฃผ์ ๋ โContinuous Subgraph Matchingโ๊ณผ ๊ด๋ จํด ์ฝ๋๋ฅผ ์ต์ ํ ํ๊ณ ๊ฐ์ ํ๋ ๊ฒ์ผ๋ก ๊ทธ๋ํ ์ฟผ๋ฆฌ ๊ด๋ จ ๋ ผ๋ฌธ์ ์ฝ๊ณ , C++ ์ฝ๋๋ฅผ ํ๋ํ๊ณ ์์ต๋๋ค. ์กธ์ ๋ง์ง๋ง ํ๊ธฐ์ ๋ฃ๋ ์์ ์ธ๋ฐ ๋ง์ ๋ ธํ์ฐ์ ๊ฒฝํ์ ์๊ณ ์กธ์ ํ๊ธฐ๋ฅผ ๊ธฐ๋ํ๊ณ ์์ต๋๋ค ใ ใ
Dynamic Candidate Space (DCS)
โDCSโ๋ Symbi ๋ ผ๋ฌธ์์ ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ๋ก Weak Embedding์ด ์กด์ฌํ ๊ฒ ๊ฐ์ ํ๋ณด๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ ์ ์ ๋๋ค.
DCS์ Weak Embedding์ ์ฐพ๊ธฐ ์ํด ๊ณ์ฐํ๋ ๊ฐ์ข ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๊ณ , ์ด๋ฅผ ๋ฐํ์ผ๋ก Backtracking ํ์์ ์ํํด Weak Embedding์ ์ฐพ๊ฒ ๋ฉ๋๋ค.
์ง๊ธ์ ๊ทธ๋ฅ ํํ๋ง ์ดํด๋ณด๋๋ฐ, ํ๋ ฌ์ด ๊ฐ ๋ ธ๋๋ฅผ ์ด๋ฃจ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์์ธํ ๊ตฌ์ฑ์ ์๋์ ์ปดํฌ๋ํธ๋ค์ ์ ์๋ฅผ ์ดํดํ๋ฉด์ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
Candidate Set $C(u)$
์ฟผ๋ฆฌ ๊ทธ๋ํ์ ๋ ธ๋ $u$์ ๋ฐ์ดํฐ ๊ทธ๋ํ์ ๋ ธ๋ $v$๊ฐ ๋งค์นญ์ด ๊ฐ๋ฅํ ๋ ธ๋ ์์ ๋ชจ์ ์งํฉ ์ ๋๋ค.
For each $u \in V(q)$, a set of vertices $v \in V(g)$ s.t.
\[l_q(u) = l_g(v)\], and represent a matching pair as $<u, v>$.
๋งค์นญ์ด ๊ฐ๋ฅํ์ง ์ฌ๋ถ๋ ๊ฐ๋จํ๊ฒ ๋ ๋ ธ๋์ ๋ ์ด๋ธ์ด ๊ฐ๋ค๋ ์กฐ๊ฑด๋ง ๋ง์กฑ ํ๋ฉด ๋ฉ๋๋ค!
DCS only $C(u)$
์ด $C(u)$๋ฅผ ์ ์ํ๋ ์ด์ ๋ ์ด๊ฒ๋ค์ ๊ฐ์ง๊ณ DCS์ ๊ณจ๊ฒฉ์ด ๋๋ ๋ ธ๋๋ฅผ ์ ์ํ ์ ์์ต๋๋ค.
๋ ผ๋ฌธ์์ ๋ค๋ฅธ ๋ถ๋ถ์ ๊ฑท์ด๋ด๊ณ , $C(u)$์ ๋ํ ๋ถ๋ถ๋ง ํํํ ๊ทธ๋ฆผ ์ ๋๋ค.
์ด๊ฑธ ๋ง๋ค์ด๊ฐ๋ ๊ณผ์ ์ ๋ฐ๋ผ๊ฐ๋ด ์๋ค.
๋จผ์ , ๊ธฐ์กด์ ์ฟผ๋ฆฌ ๊ทธ๋ํ $q$์์ ๊ฐ ๋ ธ๋๋ฅผ $C(u)$๋ก ๋์ฒด ํด๋ด ์๋ค. ์ง๊ธ์ ์ดํด๋ฅผ ๋๊ธฐ ์ํด ์ฐ๊ฒฐ ๊ด๊ณ๋ฅผ ๊ทธ๋ ค๋๋๋ฐ์. DCS edge๋ฅผ ๊ทธ๋ฆฌ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ๋ค๋ฃจ๊ณ ๋ค๋ฉด, ์ด๊ฒ๋ค์ ์ง์ฐ๊ณ ์ด๋ป๊ฒ ๊ทธ๋ฆฌ๋ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
$C(u)$๋ $<u, v>$์ ์งํฉ์ผ๋ก ์ ์ ํ์ต๋๋ค. ์ด๊ฒ ๊ทธ๋๋ก ๊ทธ๋ํ๋ก ํํํ๋ฉด ์ด๋ ๊ฒ ๋ ๊ฒ ์ ๋๋ค. ๊ทธ๋ฐ๋ฐ, ๋ณด๊ธฐ๊ฐ ๋๋ฌด ๋ถํธํ๊ณ , ๋ฐ๋ณต๋๋ ๋ถ๋ถ๋ ๋ง์ด ๋ณด์ ๋๋ค! ๊ทธ๋์ ์งํฉ ํ๊ธฐ ๋์ ์ ํ์ ํํ๋ก ํ๊ธฐ๋ฅผ ๋ฐ๊ฟ๋๋ค.
๋๋์ด! ๋ ผ๋ฌธ์ ๋์๋ DCS ๋ค์ด์ด๊ทธ๋จ๊ณผ ๋น์ทํ ํํ๊ฐ ๋์์ต๋๋ค! ใ ใ ์ด์ DCS ๊ทธ๋ํ์์ ์ฃ์ง๋ฅผ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํ๊ฒ ์ต๋๋ค.
DCS Edges
DCS ์์ ์ฃ์ง๋ ๋ $<u, v>, <uโ, vโ>$ ์์ด ์ฐ๊ฒฐ ๊ด๊ณ์ ์์์ ๋งํฉ๋๋ค. ๋ ๋งค์นญ ์์ด ์ฐ๊ฒฐ ๊ด๊ณ๋ฅผ ๊ฐ์ง๋ ค๋ฉด ์๋์ ์กฐ๊ฑด์ ๋ง์กฑํด์ผ ํฉ๋๋ค.
- $(u, uโ) \in E(q)$
- $(v, vโ) \in E(g)$
์ฆ, ๋งค์นญ ์์ ์ด๋ฃจ๋ ์ฟผ๋ฆฌ ๋ ธ๋ ์ฌ์ด์๋ ์ฐ๊ฒฐ์ฑ์ด ์์ด์ผ ํ๊ณ , ๋ฐ์ดํฐ ๋ ธ๋ ์ฌ์ด์๋ ์ฐ๊ฒฐ์ฑ์ด ์์ด์ผ ํฉ๋๋ค!
์ด์ ๊ธฐ์กด์ ๊ฐ์ด๋๋ฅผ ์ํด ๊ทธ๋ ธ๋, $C(u)$ ๋ ธ๋ ์ฌ์ด์ ์ฐ๊ฒฐ์ฑ์ ๋ชจ๋ ์ง์ฐ๊ณ , DCS ์ฃ์ง ์ ์์ ๋ง์ถฐ์ DCS๋ฅผ ๊ทธ๋ ค๋ด ์๋ค.
$B-B$ ์ฃ์ง๋ง์ ์ฐพ์์ DCS ์ฃ์ง๋ฅผ ๊ทธ๋ฆฐ ๋ชจ์ต ์ ๋๋ค. ์ด๋, $(u_2, u_4)$ ์ฃ์ง์ ๋ฐฉํฅ์ฑ์ด ์๋ค๊ณ ์๊ฐํ๊ณ ์ฃ์ง๋ฅผ ๊ทธ๋ ค์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ๋ ๊ฒ ๊ฐ์ ์ด 2๊ฐ ์๊ธฐ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
์ ์์ ๋ฐ๋ผ ๋ชจ๋ $(u, uโ)$ ์์ ๋ํด ๊ทธ๋ฆด ์ ์๋ DCS Edge๋ฅผ ์ฐพ์์ ๊ทธ๋ ค์ค๋๋ค. ์ด๋, ์ฟผ๋ฆฌ ๊ทธ๋ํ์ ๋ฐฉํฅ์ฑ์ด ์๋ค๊ณ ์๊ฐํ๋ฉด์ ์ฃ์ง๋ฅผ ๊ทธ๋ ค์ผ ํ๋ค๋ ๊ฒ์ ์ฃผ์ ํฉ๋๋ค.
์ ์์ ๋ง๊ฒ ๋ชจ๋ Edge๋ฅผ ๊ทธ๋ ค์ฃผ๋ฉด SymBi ๋ ผ๋ฌธ์ ๋์จ ๋ค์ด์ด๊ทธ๋จ์ ์ป์ ์ ์์ต๋๋ค.
ํ๋ ์ฝ๊ฒ ๋ฐ๊ฒฌํ ์ ์๋ ์ธ์ฌ์ดํธ๋,
๋ง์ฝ ์๋ก ์ฐ๊ฒฐ๋ ๋ ์ฟผ๋ฆฌ ๋ ธ๋ $(u, uโ) \in E(q)$์ ๋ํด์ $C(u)$์ $C(uโ)$ ์ฌ์ด์ DCS ์ฃ์ง๊ฐ ํ๋๋ ์๋ค๋ฉด!
์ด๋ค Subgraph Matching๋ ์กด์ฌํ์ง ์๋๋ค
๊ณ ๋งํ ์ ์์ต๋๋ค! ์ด๊ฒ์ ์ฟผ๋ฆฌ ๊ทธ๋ํ์์ ์๋ ์ฃ์ง ์ค ํ๋๊ฐ ๋ฐ์ดํฐ ๊ทธ๋ํ์์ ๋ฐ๊ฒฌ ๋์ง ์๋ ์ํฉ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋ ๋ค๊ณ , ๋ชจ๋ ์ฟผ๋ฆฌ ์ฃ์ง $(u, uโ) \in E(q)$์ ๋ํด $(C(u), C(uโ)) \in E(\text{DCS})$๋ผ๊ณ ํด์ Subgraph Matching์ด ์กด์ฌํ๋ ๊ฒ์ ์๋๋๋ค.
Subgraph Matching์ด ์กด์ฌํ๊ธฐ ์ํด์ ์ถ๊ฐ์ ์ธ ์กฐ๊ฑด์ด ํ์ํ๋ฉฐ, ์ด ์กฐ๊ฑด์ ์ฒดํฌํ์ฌ ์ ์ฅํ๋ ์ค๊ฐ ์๋ฃ๊ตฌ์กฐ๊ฐ ์์ผ๋ก ์๊ฐํ $D_0$, $D_1$, $D_2$ Matrix ์ ๋๋ค.
$D_0$ Matrix
์ฃผ์! ์ด $D_0$ Matrix๋ SymBi ๋ ผ๋ฌธ์๋ ๋ฑ์ฅํ์ง ์๋ ์๋ฃ๊ตฌ์กฐ ์ ๋๋ค! ์ ๊ฐ ์ดํด์ ์ค๋ช ์ ํธ์๋ฅผ ์ํด์ ์์๋ก ์ ์ํ ์๋ฃ๊ตฌ์กฐ ์ ๋๋ค!
$D_0$ Matrix๋ $<u, v>$ ๋งค์นญ ์์ True/False ๊ฐ์ ๋ถ์ฌํ ํ๋ ฌ ์ ๋๋ค.
์ด ํ๋ ฌ์ ์ฟผ๋ฆฌ DAG $\hat{q}$์์ $u$๋ฅผ root๋ก ์ผ๋ sub-DAG $\hat{q}_u$๊ฐ ๋ฐ์ดํฐ ๋ ธ๋ $v$๋ฅผ ๊ธฐ์ค์ผ๋ก Weak Embedding์ด ์กด์ฌํ๋์ง ์ฌ๋ถ๋ฅผ ์ฒดํฌํด ๊ธฐ๋ก ํฉ๋๋ค.
$D_0$ ๊ฐ์ ๊ฐ์ฅ ๊ตฌํ๊ธฐ ์ฌ์ด ๊ฒ๋ค์ ์ฟผ๋ฆฌ DAG $\hat{q}$์ ๋ฆฌํ ๋ ธ๋๋ฅผ ์ด๋ฃจ๋ ์ฟผ๋ฆฌ ๋ ธ๋๋ค์ ๋๋ค. ์ด๋ค์ ์์ ๋ ธ๋๋ค์ด ์๊ธฐ ๋๋ฌธ์ ์๊ธฐ ์์ ์ ๋ํด์๋ง ์ฒดํฌํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
SymBi ๋ ผ๋ฌธ์ ์ฟผ๋ฆฌ ๊ทธ๋ํ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ฉด, $u_5(A)$ ๋ ธ๋๊ฐ ๋ฆฌํ ๋ ธ๋๊ฐ ๋ฉ๋๋ค. ๋ฆฌํ ๋ ธ๋๋ ์์ ๋ ธ๋๊ฐ ์กด์ฌํ์ง ์๊ณ , ๋ฐ๋ผ์ sub-DAG $\hat{q}_{u_5}$์ ๋ํด ๋ชจ๋ ์๋ธ ๊ทธ๋ํ ๋งค์นญ์ด ์กด์ฌํ๋ค๊ณ ํ๋จ ํฉ๋๋ค. ๊ทธ๋์ $D_0[u_5]$ ๊ฐ์ 1๋ก ์ฑ์์ง๋๋ค.
๋ค์์ผ๋ก sub-DAG $\hat{q}_{u_4}$์ ๋ํด์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ด ๋ ์์ ๋ฐ์ดํฐ ๋ ธ๋ $v_3$๋ฅผ ๋ฃจํธ๋ก ํ๋ ๊ฒฝ์ฐ์ $v_6$๋ฅผ ๋ฃจํธ๋ก ํ๋ ๊ฒฝ์ฐ์ ๋ํด์ subgraph weak embedding์ด ์กด์ฌํฉ๋๋ค. ๊ทธ๋์ $D_0[u_4, v_3] = D_0[u_4, v_6] = 1$์ด ๋ฉ๋๋ค.
์ด๋, $D_0[u, v] = 1$์ด ๋๋์ง ์ฝ๊ฒ ํ๋จํ๊ณ ์ถ๋ค๋ฉด, $D_0[u, v]$์ ์ฐ๊ฒฐ๋ DCS Edge $(<u, v>, <uโ, vโ>)$ ์ค์ $D_0[uโ, vโ] = 1$์ ๋ง์กฑํ๋ DCS ๋ ธ๋๊ฐ ์ ์ด๋ ํ๋ ์กด์ฌํด์ผ ํฉ๋๋ค.
๋ง์ฝ, (1) ์ฐ๊ฒฐ๋ DCS ๋ ธ๋๊ฐ ์๊ฑฐ๋ (2) ์ฐ๊ฒฐ๋ DCS ๋ ธ๋ ์ ๋ถ๊ฐ $D_0[uโ, vโ] = 0$์ด๋ผ๋ฉด, $D_0[u, v] = 0$์ด ๋ฉ๋๋ค.
์ด๊ฑธ SymBi ๋ ผ๋ฌธ์์ ์ ์ํ ๋ฐฉ์์ผ๋ก ์ฎ๊ฒจ ์ ์ผ๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
For each $u \in V(q)$ and $v \in V(g)$
- $D_0[u, v] = 1$ if there exists a weak embedding $Mโ$ of sub-DAG $\hat{q}_u$ at $v$.
- $D_0[u, v] = 0$ otherwise
์ด๊ฑธ ์ฝ๋๋ก ์์ฑํ๋ฉด ์๋์ ๊ฐ์ ๊ฒ ์ ๋๋ค. ์ฐธ๊ณ ๋ก ์ ๊ฐ ์์๋ก ์์ฑํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ค์ ๋ ผ๋ฌธ์ ๊ตฌํ๊ณผ๋ ๋ค๋ฅผ ์ ์์ต๋๋ค.
def fill_D0_matrix(u: QueryNode, v: DataNode):
# Not DCS Node
if not D0[u] or not D0[u][v]:
return
if isLeaf(u):
D0[u][v] = 1
for dcs_c in DCS[u][v].children():
u_c, v_c = dcs_c
if D0[u_c][v_c]:
# if there exist, D0 mapping
D0[u][v] = 1
return
D0[u][v] = 0
์ด๋, fill_D0_matrix(u, v)
ํจ์๋ ๋ฆฌํ ๋
ธ๋๋ถํฐ ์์ํด ๊ทธ๋ค์ ๋ถ๋ชจ ๋
ธ๋ ์์๋๋ก ์ฌ๋ผ๊ฐ๋ฉฐ ํธ์ถํด์ผ ๋จ์ ์ ์ํ์.
$D_1$ Matrix
$D_1$ Matrix๋ $D_0$ Matrix์ ๋์ผํ๊ฒ $<u, v>$ ๋งค์นญ ์์ True/False ๊ฐ์ ๋ถ์ฌํ ํ๋ ฌ ์ ๋๋ค.
ํ์ง๋ง, ์ด ํ๋ ฌ์ ์ฟผ๋ฆฌ DAG $\hat{q}$๊ฐ ์๋ ์ญ๋ฐฉํฅ DAG์ธ $\hat{q}^{-1}$๋ฅผ ๊ธฐ์ค์ผ๋ก Weak Embedding์ด ์กด์ฌํ๋์ง ์ฌ๋ถ๋ฅผ ์ฒดํฌํด ๊ธฐ๋ก ํฉ๋๋ค.
์ด๊ฑธ ์ฝ๊ฒ ํ์ด์ ์ ์ผ๋ฉด,
- $D_0$๋ โ์๋ฐฉํฅ DAGโ๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ฑํ๊ธฐ ๋๋ฌธ์
- โ์์ ๋ ธ๋โ๋ค์ ๋ํด Weak Embedding์ด ์กด์ฌํ๋์ง ํ๋จํ ์ค๊ฐ ๊ฒฐ๊ณผ์ด๊ณ ,
- $D_1$์ ์ญ๋ฐฉํฅ DAG๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ฑํ๊ธฐ ๋๋ฌธ์
- โ๋ถ๋ชจ ๋ ธ๋โ๋ค์ ๋ํด Weak Embedding์ด ์กด์ฌํ๋์ง ํ๋จํ ์ค๊ฐ ๊ฒฐ๊ณผ์ ๋๋ค.
$D_0$์์๋ ์ฟผ๋ฆฌ DAG $\hat{q}$์ ๋ฆฌํ ๋ ธ๋๋ถํฐ ๊ฐ์ ์ฑ์๋๊ฐ์ต๋๋ค. $D_1$๋ ๋ฐ๋๋ก ์ฟผ๋ฆฌ DAG $\hat{q}$์ ๋ฃจํธ ๋ ธ๋๋ถํฐ ๊ฐ์ ์ฑ์ฐ๋ฉด ๋ฉ๋๋ค.
๋ฃจํธ ๋ ธ๋์ธ $u_1$์ ๋ํด ์ญ๋ฐฉํฅ DAG $\hat{q}^{-1}_{u_1}$์์์ subgraph weak embedding์ ํญ์ ์กด์ฌํฉ๋๋ค. ๋ฐ๋ผ์, ๋ชจ๋ $D_1[u_1]$์ 1๋ก ์ฑ์์ง๋๋ค.
์ด๊ฑธ ์๋ฐฉํฅ DAG์ ๋ฃจํธ๋ ธ๋๋ถํฐ ์์ ๋ ธ๋๋ค ์์๋ก $D_1$์ ๊ณ์ฐํ๋ฉด์ ์ฑ์๋๊ฐ๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ์๋์ ๊ฐ์ด $D_1$ ๊ฐ์ด ์ฑ์์ง DCS ๊ทธ๋ํ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์ด๊ฑธ SymBi ๋ ผ๋ฌธ์์ ์ ์ํ ๋ฐฉ์์ผ๋ก ์ฎ๊ฒจ ์ ์ผ๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
For each $u \in V(q)$ and $v \in V(g)$
- $D_1[u, v] = 1$ if there exists a weak embedding $Mโ$ of sub-DAG $\hat{q}^{-1}_u$ at $v$.
- $D_1[u, v] = 0$ otherwise
๋ง์ฐฌ๊ฐ์ง๋ก python ์ฝ๋๋ก ๊ตฌํํด๋ณด๋ฉด ์๋์ ๊ฐ์ ๊ฒ ๊ฐ์ต๋๋ค.
def fill_D1_matrix(u: QueryNode, v: DataNode):
# Not DCS Node
if not D1[u] or not D1[u][v]:
return
if isRoot(u):
D1[u][v] = 1
for dcs_c in DCS[u][v].parent():
u_c, v_c = dcs_c
if D1[u_c][v_c]:
# if there exist, D1 mapping
D1[u][v] = 1
return
D1[u][v] = 0
$D_2$ Matrix
๋ง์ง๋ง์ผ๋ก $D_2$ Matrix ์ ๋๋ค. $D_2$๋ Subgraph Matching์ ์ฐพ๊ธฐ ์ํด ์ง์ ์ ์ผ๋ก ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์ ์ค์ํ ๋ ์ ์ ๋๋ค.
$D_2$๋ ์๋ฐฉํฅ DAG $\hat{q}$๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ฑํ๋ ๊ฐ ์ ๋๋ค. $D_0$๋ ๋น์ทํ์ฃ . ํ์ง๋ง ์ถ๊ฐ์ ์ธ ์กฐ๊ฑด์ด ๋ค์ด๊ฐ๋๋ค. ๋ฐ๋ก
- $D_1[u, v] = 1$
- $D_2$๋ฅผ ํ๊ฐํ๋ ๋ฐ๋ก ๊ทธ ์ง์ $<u, v>$์์ parent subgraph mapping์ด ์กด์ฌํด์ผ ํ๋ค.
- For every child $u_c$ of $u$ in $\hat{q}$, there exist $v_c$ s.t. adjacent to $v$ and $D_2[u_c, v_c] = 1$.
์ ๋ $D_2$๊ฐ ์ข ์ดํดํ๊ธฐ ์ด๋ ค์์ $D_0$๋ผ๋ ๋ ผ๋ฌธ์ ์๋ ๋ ์์ ์ถ๊ฐ๋ก ๋ง๋ค์์ต๋๋ค. ์ ๋ $D_2[u, v] = 1$์ด ๋๊ธฐ ์ํด์๋ ์ ์ด๋ $D_0[u, v] = D_1[u, v] = 1$์ด ๋์ด์ผ ํ๋ค๊ณ ์๊ฐ ํ์ต๋๋ค.
์ด๊ฒ์ $<u, v>$์ ๋ํด์ child subgraph ๋งคํ๋ ์กด์ฌํ๊ณ , parent subgraph ๋งคํ๋ ์กด์ฌํด์ผ ์ฐ๋ฆฌ๊ฐ ์๋ ์ฐพ๊ณ ์ ํ๋ Weak Embedding์ด ์กด์ฌํ๋ ์ต์ ์กฐ๊ฑด์ด๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
ํ์ง๋ง, ์ถ๊ฐ ์กฐ๊ฑด์ ๋ฃ์ด์ ์ ๋ ์๋์ ๊ฐ์ด ์ ์ํ์์ต๋๋ค. (์ ์ ์์ด๋ฏ๋ก ํ๋ฆฐ ์๋ ์์ต๋๋ค.)
- $D_1[u, v] = D_0[u, v] = 1$์ ๋ง์กฑํ๊ณ
- ๋ชจ๋ ๋ถ๋ชจ ๋ ธ๋์ ๋ํด์, $D_1[u_p, v_p] = D_0[u_p, v_p] = 1$๋ฅผ ๋ง์กฑํ๊ณ
- ๋ชจ๋ ์์ ๋ ธ๋์ ๋ํด์, $D_1[u_c, v_c] = D_0[u_c, v_c] = 1$๋ฅผ ๋ง์กฑํ๋ค๋ฉด
$D_2[u, v ] = 1$์ด ๋๋ค.
Find Subgraph Matching
์ด์ DCS ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด๋ฃจ๋ $C(u)$, $D_1$, $D_2$ ๊ฐ์ ๋ชจ๋ ๊ตฌ์ฑ ํ์ผ๋, ์๋ฃ ๊ตฌ์กฐ ์ด๊ธฐํ๋ฅผ ์๋ฃํ ๊ฒ ์ ๋๋ค! (์ผํธ!)
์ด์ ์ด DCS ์๋ฃ ๊ตฌ์กฐ์์ Subgraph Matching์ ์ฐพ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ฐฉ๋ฒ์ ๋จ์ํ Graph ํ์์ ํ๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ฐ๋ฐ, ์ด๋ ํ์ํ๋ DCS ๋ ธ๋์ $D_2[u, v] = 1$์ ๋ง์กฑํด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ $D_2[u, v] = 1$์ ๋ง์กฑํ๋ ๋ ธ๋๋ง ํ์ํ ๊ฒ ์ ๋๋ค.
$D_2[u, v] = 1$์ ๋ง์กฑํ๋ DCS ๋ ธ๋๋ง ๋ชจ์์ backtracking์ ํ๋ค๊ณ ๋ณด๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ํ ํ์์ ํ๋๋ฐ, ์ ์ฒด $V(q)$๋ฅผ ์ํํ ์ ์๋ค๋ฉด, ๊ทธ๋ผ Subgraph Matching์ด ์กด์ฌํ๋ ๊ฒ ์ ๋๋ค!
๋งบ์๋ง
์ด์ด์ง๋ ํฌ์คํธ์์๋ ์ ๋ฐ์ดํธ ์คํธ๋ฆผ $\Delta o_i$๊ฐ ๋ค์ด์ฌ ๋, ๊ตฌ์ถํ DCS ์๋ฃ๊ตฌ์กฐ์ $D_1$, $D_2$ ๊ฐ์ ์ด๋ป๊ฒ ์ ๋ ํ๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
โก๏ธ Symbi, Update DCS
๋ณด์ถฉ
์ ๊ฐ ๋ ผ๋ฌธ์ ์ฝ์ผ๋ฉด์ ๊ณ์ ํท๊ฐ๋ ธ์ด์ ๋ฉ๋ชจ๋ฅผ ๋จ๊ฒจ๋ก๋๋ค.
โDCS ๊ทธ๋ํ์ ๋ ธ๋๋ $<u, v>$ ์ ๋๋คโ. Symbi ๋ ผ๋ฌธ์ ๋ค์ด์ด๊ทธ๋จ๊ณผ ์ ๊ฐ ์ค๋ช ์ ํ ๋, $C(u)$๊ฐ ๋ ธ๋์ธ ๊ฒ์ฒ๋ผ ์ค๋ช ํ๊ฑฐ๋, $C(u), D_1[u], D_2[u]$๊ฐ ํจ๊ป ์๋ ํ๊ฐ DCS ๊ทธ๋ํ์ ๋ ธ๋์ธ ๊ฒ์ฒ๋ผ ์ค๋ช ํ์ง๋ง, ๋ณธ์ง์ ๋ณธ๋ค๋ฉด, $<u, v>$๊ฐ DCS์ ๋ ธ๋ ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ DCS ์์์ ๋ถ๋ชจ ๋ ธ๋๋ผ๊ณ ํ๋ค๋ฉด, $<u_p, v_p>$๊ฐ $<u, v>$ ๋ ธ๋์ ๋ถ๋ชจ ๋ ธ๋๋ผ๋ ๊ฒ ์ ๋๋ค. ์ด๊ฒ์ $(u_p, u) \in E(q)$์ด๊ณ , $\hat{q}$์์๋ $u_p$๊ฐ $u$์ ๋ถ๋ชจ๋ ธ๋๋ผ๋ ๊ฒ์ ๋๋ค. $(v_p, v) \in E(g)$์ธ๋ฐ, ๋ฐ์ดํฐ ๋ ธ๋ ์ฌ์ด์๋ ๊ทธ๋ฅ ์ฐ๊ฒฐ์ฑ๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.