Paper Reading: TurboIso, Construction
2025๋ ์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฉ์ ์ปจํํ์ฌ ํ๋ถ ์กธ์ ์ฐ๊ตฌ ์ฃผ์ ๋ฅผ ๋ฐ์์ ์งํํ๊ณ ์์ต๋๋ค. ์ ์ ์ฃผ์ ๋ โContinuous Subgraph Matchingโ๊ณผ ๊ด๋ จํด ์ฝ๋๋ฅผ ์ต์ ํ ํ๊ณ ๊ฐ์ ํ๋ ๊ฒ์ผ๋ก ๊ทธ๋ํ ์ฟผ๋ฆฌ ๊ด๋ จ ๋ ผ๋ฌธ์ ์ฝ๊ณ , C++ ์ฝ๋๋ฅผ ํ๋ํ๊ณ ์์ต๋๋ค. ์กธ์ ๋ง์ง๋ง ํ๊ธฐ์ ๋ฃ๋ ์์ ์ธ๋ฐ ๋ง์ ๋ ธํ์ฐ์ ๊ฒฝํ์ ์๊ณ ์กธ์ ํ๊ธฐ๋ฅผ ๊ธฐ๋ํ๊ณ ์์ต๋๋ค ใ ใ
Wook-Shin Han, Jinsoo Lee, and Jeong-Hoon Lee. 2013. TurboISO: Towards UltraFast and Robust Subgraph Isomorphism Search in Large Graph Databases
๋ค์ด๊ฐ๋ฉฐ
SymBi(2021) ๋ ผ๋ฌธ([1], [2], [3])์ ์ด์ด ์ด ๋ ผ๋ฌธ๋ ์ง๊ธ ์กธ์ ์ฐ๊ตฌ๋ฅผ ํ๊ณ ์๋ ์ฐ๊ตฌ์ค์์ ์์ฑํ ๋ ผ๋ฌธ ์ ๋๋ค! ์กธ์ ์ฐ๊ตฌ๋ฅผ ํ๋ฉด์ ์ด ๋ ผ๋ฌธ์ ๊ตฌํ๋ ์ดํด๋ณผ ์ผ์ด ์์ด์ ๋ ผ๋ฌธ ๋ฆฌ๋ฉ์ ์งํํ๊ฒ ๋์์ต๋๋ค!
Matching Order is Important
๋ ผ๋ฌธ์์ ์ ์ํ ์์ ์ฟผ๋ฆฌ&๋ฐ์ดํฐ ๊ทธ๋ํ ์ ๋๋ค. ๋ฐ์ดํฐ ๊ทธ๋ํ๋ $g_1$์ $g_2$์ ์๋ธ ๊ทธ๋ํ๋ก ๊ตฌ์ฑ ๋์ด ์์ต๋๋ค.
์ฐธ๊ณ ๋ก Fig1 ๊ทธ๋ฆผ์์๋ ์ฟผ๋ฆฌ ๊ทธ๋ํ์ ๋งค์นญ๋๋ ํจํด์ด ์กด์ฌํ์ง ์์ต๋๋ค! ๊ทธ๋ฌ๋, ๋งค์นญ์ด ์๋ค๋ ๊ฒ์ ๋น ๋ฅด๊ฒ ํ์ธํ๋ ๊ฒ๋ ์ค์ํ ๋ฌธ์ ์ ๋๋ค.
Try to match $g_1$
์ฟผ๋ฆฌ ๊ทธ๋ํ๋ฅผ $O_1 = (u_1, u_2, u_3) \sim (A, B, C)$์ Matching Order ์์๋ก ์๋ธ ๊ทธ๋ํ $g_1$์ ๋งค์นญ ์์ผ ๋ด ์๋ค. ๊ทธ๋ฌ๋ฉด, ๋งค์นญ์ด ์ผ์ชฝ ๊ทธ๋ฆผ์ ์์๋ก ๋งบ์ด์ง๋๋ค. ๊ทธ๋ฐ๋ฐ, ์ด๊ฒ์ ์ฟผ๋ฆฌ ๊ทธ๋ํ์ ๋ํ ์๋ฒ ๋ฉ์ด ์๋๋๋ค! $(u_1, u_3)$๋ ์ฐ๊ฒฐ ๋์ด ์์ง๋ง, $(v_1, v_3)$๋ ์ฐ๊ฒฐ ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค!
์ด๋ฒ์๋ $O_2 = (u_1, u_3, u_2) \sim (A, C, B)$์ Matching Order ์์๋ก ์๋ธ ๊ทธ๋ํ $g_1$์ ๋งค์นญ ์์ผ ๋ด ์๋ค. ๊ทธ๋ฌ๋ฉด, ๋งค์นญ์ด ์ค๋ฅธ์ชฝ ๊ทธ๋ฆผ์ ์์๋ก ๋งบ์ด์ง๋๋ค. ๊ทธ๋ฐ๋ฐ, $O_2$์์๋ $u_2$๋ฅผ ๋งค์นญํ ๋, $v_4$๋ถํฐ $v_{1004}$๊น์ง ๋ชจ๋ ๋งค์นญ์ ๊ฒ์ฌํด์ผ ํฉ๋๋ค.
์ด๊ฒ์ ์ฟผ๋ฆฌ ๊ทธ๋ํ๋ฅผ ๋งค์นญ ํ ๋, ๋งค์นญ ์ค๋๋ฅผ ์ด๋ป๊ฒ ์ก๋๋์ ๋ฐ๋ผ์ ๋งค์นญ์ ๊ฒ์ฌํ๋ ํ์๊ฐ ํฌ๊ฒ ๋ฌ๋ผ์ง ์ ์๋ค๋ ๊ฒ์ ๋งํฉ๋๋ค.
Useless Enumerations
๋ ผ๋ฌธ์์๋ ๋ ๋ค๋ฅธ ์์ ์ฟผ๋ฆฌ&๋ฐ์ดํฐ ๊ทธ๋ํ๋ก ์ํฉ์ ์ค๋ช ํฉ๋๋ค. ์ฐธ๊ณ ๋ก ์ฌ๊ธฐ์์๋ ์ฟผ๋ฆฌ ๊ทธ๋ํ์ ๋ํ Isomorphism์ ์กด์ฌํ์ง ์์ต๋๋ค!
๋งค์นญ ์ค๋๊ฐ $O = (u_1, u_2, \cdots , u_7)$์ผ ๋, ๋ฐ์ดํฐ ๊ทธ๋ํ์์ ๋งค์นญ์ Fig2์ ๊ฐ์ด ์ฐพ๊ฒ ๋ฉ๋๋ค.
์ฌ๊ท ํธ๋ฆฌ $T_r$์ ์ฒซ๋ฒ์งธ ๊ฒฝ๋ก์์ ๋งค์นญ์ด ์คํจํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ , ๋๋จธ์ง ๊ฐ์ง๋ค๋ ๋งค์นญ์ ํ์ธํด๋ณด๋ฉด ๋ชจ๋ ์คํจํฉ๋๋ค. ๋ ผ๋ฌธ์์๋ ์ฌ๊ธฐ์์ ์์ด๋์ด๋ฅผ ์ ์ ํฉ๋๋ค!
์ฌ๊ท ํธ๋ฆฌ $T_r$์ ๊ฒฝ๋ก๋ฅผ ๋ณด๋ฉด, $- (v_3, v_4, v_5) -$์ ๋ใด ์์๋ง ๋ฐ๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ ์ ์ ์ ๊ฐ์ ๋ ์ด๋ธ๊ณผ ๊ฐ์ ํ์(topology)๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๋ ผ๋ฌธ์ ์ด๋ฐ ๊ฒฝ์ฐ๋ฅผ ์ธ๋ชจ์์ด ์ํ(useless enumeration)๋ฅผ ํ๋ ์ํฉ์ด๋ผ๊ณ ์ ์ ํฉ๋๋ค. ๊ทธ๋์ ์ด๊ฒ์ ํจ์จ์ ์ผ๋ก ์ ๊ฑฐํ๊ธฐ ์ํด โNeighborhood Equivalence Class(NEC)โ๋ผ๋ ๊ฐ๋ ์ ์ ์ํฉ๋๋ค. NEC๋ ๋น์ทํ ์ ์ ๋ค์ ๋ฌถ์ด์ ์ฒ๋ฆฌํ๊ณ , ๋ถํ์ํ ์์ด(Permutation)์ ๋ฏธ๋ฆฌ ์ ๊ฑฐํ์ฌ ๊ณ์ฐ ๋ญ๋น๋ฅผ ๋ฐฉ์งํ๋ ๊ฒ์ ๋ชฉ์ ์ผ๋ก ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ค์์ ๋ ๋ค๋ฃจ๊ฒ ์ต๋๋ค.
Neighborhood Equivalence Class (NEC)
TurboIso๋ โ์ฟผ๋ฆฌ ๊ทธ๋ํ๋ฅผ NEC ํธ๋ฆฌ๋ก ๋ฐ๊พธ๋ ์์ โ์ ์ ์ผ ๋จผ์ ์ํ ํฉ๋๋ค. ์ด ๊ณผ์ ์ BFS๋ก ์ด๋ค์ง๋ฉฐ, ๊ทธ๋ํ ๋งค์นญ ์์ ๋ ์ฟผ๋ฆฌ ๊ทธ๋ํ $q$๊ฐ ์๋๋ผ NEC Tree $qโ$์ ๋ํด ์ํํฉ๋๋ค.
์ด์ NEC ์งํฉ์ ๋ํด์ ์๋ฐํ ์ ์ํด๋ณด๊ฒ ์ต๋๋ค.
If for every embedding $m$ that contains $(u_i, v_x)$ and $(u_j, v_y)$, there exists an another embedding $mโ$ s.t.
\[m' = m \setminus \left\{ (u_i, {\color{red} v_x}), (u_j, {\color{blue} v_y}) \right\} \cup \left\{ (u_i, {\color{blue} v_y}), (u_j, {\color{red} v_x}) \right\}\]then, let $\simeq$ be an โequivalence relationโ over all query vertices in $q$, and two query node are $u_i \simeq u_j$.
์ฆ, ๋ ์ฟผ๋ฆฌ ๋ ธ๋์ ๋ํด์ ๊ทธ ๋์ ๋งคํ๋ ๋ฐ์ดํฐ ๋ ธ๋ $v_{x,y}$๋ฅผ ์๋ก ๋ง๋ฐ๊ฟ๋ ์ฌ์ ํ ์๋ฒ ๋ฉ $mโ$์ด ํญ์ ๊ฐ๋ฅํ๋ค๋ฉด, ๊ทธ ์ฟผ๋ฆฌ ๋ ธ๋๋ฅผ โ๋์น(Equivalent)โ๋ผ๊ณ ํ๊ณ , ์๋ก ๋์น์ธ ์ฟผ๋ฆฌ ๋ ธ๋๋ฅผ ๋ชจ์ ๊ฒ์ด โNECโ ์งํฉ์ด ๋ฉ๋๋ค.
์์ โUseless Enumerationโ ์์์์๋ ๋ดค๋ฏ์ด NEC ์งํฉ ๋ด์์๋ ๊ทธ๋ค์ ๋งคํ์ ์๋ก ๋ง๋ฐ๊ฟ ์ ์์ต๋๋ค. ๊ทธ๋์ ์์ด(Permutation)์ ํฌ๊ธฐ ๋งํผ ๋ฐฉ๋ฌธ ์์, ์ฆ, ๋งค์นญ $m$์ด ๋ง๋ค์ด์ง๋๋ค.
Rewrite query graph to NEC Tree
์ง๊ธ๊น์ง NEC๊ฐ ์ ์ข์์ง๋ฅผ ์ค๋ช ํ์ต๋๋ค. ๊ทธ๋ผ ์ด NEC Tree๋ฅผ ์ด๋ป๊ฒ ๋ง๋ค์ด์ผ ํ ๊น์? ๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒ ํจ์จ์ ์ผ๋ก ๋ง๋ค ์ ์์๊น์?
TurboIso๋ ๊ฐ์ NEC ์งํฉ์ ์ํ๋ ์ฟผ๋ฆฌ ๋ ธ๋๋ค์ด ์๋์ ๊ฐ์ ์ฑ์ง์ด ์๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌ ํฉ๋๋ค.
Let $SP(u_s, u_i)$ be โthe set of all shortest pathsโ from $u_s$ to $u_i$.
If the two query vertices $u_i$ and $u_j$ are in same NEC, then they have same size of shortest path set.
\[\left\vert SP(u_s, u_i) \right\vert = \left\vert SP(u_s, u_j) \right\vert\]์ฐธ๊ณ ๋ก ์งํฉ ๋ฑํธ์ธ $SP(u_s, u_i) = SP(u_s, u_j)$๋ก ํํํ์ง ์๋ ์ด์ ๋ Shortest Path์์ ๋ง์ง๋ง์ ๋ฐฉ๋ฌธํ๋ ๋ ธ๋๊ฐ $u_i \ne u_j$๋ก ์๋ก ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ ์ง์ ๊น์ง๋ ๋ชจ๋ ๊ฐ์ Shortest Path๋ฅผ ๊ฐ์ต๋๋ค.
ํ๋ถ ์๊ณ ๋ฆฌ์ฆ ์์ ์์ $u_s$์์ ์์ํด $u_i$์ ๋๋ฌํ๊ธฐ ์ํ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๊ณ ์ ํ๋ค๋ฉด, BFS ๊ฒ์์ ์ฌ์ฉํด์ผ ํ์ต๋๋ค. (Weighted Graph ์๋ค๋ฉด, ๋ค์ต์คํธ๋ผ๋ฅผ ์ฌ์ฉํฉ๋๋ค.)
๊ทธ๋์ NEC Tree๋ฅผ ๊ตฌ์ฑํ ๋, BFS ํ์์ ์ฌ์ฉํฉ๋๋ค!
๊ทธ๋ฆฌ๊ณ NEC Tree $qโ$์์ ๋ถ๋ชจ-์์ ๋ ธ๋ ์ฌ์ด ๊ด๊ณ๊ฐ ์๋ค๋ฉด, ๊ทธ๊ฒ์ ์ฟผ๋ฆฌ ๋ ธ๋์์ ๋ถ๋ชจ NEC ๋ ธ๋์ ๋ชจ๋ ์ ์ ์ ์์ NEC ๋ ธ๋์ ๋ชจ๋ ์ ์ ๊ณผ ์์ ์ฐ๊ฒฐ ๋์ด ์์ด์ผ ํฉ๋๋ค.
NEC ํธ๋ฆฌ๋ ์ฟผ๋ฆฌ ๊ทธ๋ํ๋ฅผ ๊ณ์ธต์ ์ผ๋ก ๋ถํดํ ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์, ๋น์ฐํ๊ฒ ๋ฐ์๋ค์ผ ์ ์๋ ๋ช ์ ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ค NEC ํธ๋ฆฌ์ ๋ ธ๋ $uโ$์ ๋ํด, ์ด NEC๋ฅผ ์ด๋ฃจ๋ ๋ณธ๋ ์ฟผ๋ฆฌ ๋ ธ๋์ ๋ชฉ๋ก์ ์๋์ ๊ฐ์ด ํ๊ธฐ ํฉ๋๋ค.
\[u'.NEC = \left\{ u \in V(q) \, : \, u \simeq u' \right\}\]์๋ฅผ ๋ค์ด, $uโ_1.NEC = \left\{u_1\right\}$์ด ๋๊ณ , $uโ_3.NEC = \left\{ u_3, u_4 \right\}$๊ฐ ๋ฉ๋๋ค.
์ด๋, ์ฟผ๋ฆฌ ๊ทธ๋ํ $q$๋ฅผ NEC ํธ๋ฆฌ $qโ$๋ก ๋ณํํ๋ฉด์, ๋ณด์กด๋์ง ๋ชปํ ๊ทธ๋ํ ์ฃ์ง๋ค์ด ์กด์ฌํฉ๋๋ค. ์ด๋ค์ โnon-tree edgeโ๋ผ๊ณ ํฉ๋๋ค. non-tree ์ฃ์ง๋ค์ ๋ฐ๋ก ๊ธฐ๋กํด๋๋ค๊ฐ NEC ํธ๋ฆฌ ๊ธฐ๋ฐ์ผ๋ก ์ฐพ์ ๋งค์นญ์ ๊ฒ์ฆํ๋ ๊ณผ์ ์์ ํ์ฉํ๋ค๊ณ ํฉ๋๋ค.
Candidate Region $CR(u)$
TurboIso๋ ๋น ๋ฅธ ์ฟผ๋ฆฌ ๋งค์นญ์ ์ํด ๋ฐ์ดํฐ ๊ทธ๋ํ ์์ Candidate Region $CR$์ ์ ์ํฉ๋๋ค.
์ด Candidate Region์ โEmbedding์ ๊ฐ์ง ๊ฒ์ผ๋ก ๊ธฐ๋๋๋ ๋ฐ์ดํฐ ๊ทธ๋ํ์ ์์ญโ์ ๋๋ค.
์กด์ฌ์ฑ์ด ๊ธฐ๋๋๋ ์์ญ์ด๊ธฐ ๋๋ฌธ์, ๋ง์ฝ Embedding์ด ์กด์ฌํ๋ค๋ฉด, ์ด ์์ญ ์์์ ๋ฐ๋์ ์กด์ฌํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ Embedding์ด ์กด์ฌํ์ง ์๋๋ค๋ฉด Candidate Region ๋ด์์ Embedding์ ์ฐพ์ ์ ์์ต๋๋ค.
๊ฒฐ๊ตญ Embedding ์กด์ฌ ์ฌ๋ถ์ ์๊ด ์์ด, ์ ์ํ Candidate Region ์์ ๋ฐ์ดํฐ ๊ทธ๋ํ๋ง ํ์ํ๊ธฐ ๋๋ฌธ์, ๋ฐ์ดํฐ ๊ทธ๋ํ ์ ์ฒด๋ฅผ ํ์ํ ํ์๊ฐ ์์ด์ง๊ณ ์ด๊ฒ์ ๊ฒ์ ๊ณต๊ฐ์ ํฌ๊ฒ ์ค์ฌ์ค๋๋ค!
ํ๊ธฐ๋ $CR(u)$๋ผ๊ณ ํ๊ณ , โ์ฟผ๋ฆฌ ๋ ธ๋ $u$๋ฅผ ๋ฃจํธ ๋ ธ๋๋ก ํ์ ๋, ๋ง๋ค์ด์ง๋ Candidate Regionโ๋ผ๊ณ ํฉ๋๋ค.
How to construct Candidate Region?
TurboIso๋ Candidate Region์ ์๋์ ๊ณผ์ ์ ํตํด ๊ตฌ์ถ ํฉ๋๋ค.
- ์ฟผ๋ฆฌ ๊ทธ๋ํ $q$๋ฅผ NEC ํธ๋ฆฌ $qโ$๋ก ๋ณํ ํฉ๋๋ค.
- NEC ํธ๋ฆฌ์ ๋ฃจํธ ๋
ธ๋ $u_s$์ ๋์๋๋ ๋ฐ์ดํฐ ๊ทธ๋ํ ์ ์ $v_s$๋ฅผ ์ฐพ์ต๋๋ค.
- ์ด๋, $u_s$์ ๋์๋๋ $v_s$๋ ์ฌ๋ฌ๊ฐ ์กด์ฌํ ์ ์์ต๋๋ค.
- $v_s$๋ฅผ ๋ฃจํธ๋ก ์ผ์ DFS ํ์ ํฉ๋๋ค.
- ์ฟผ๋ฆฌ ํธ๋ฆฌ์ ๊ตฌ์กฐ์ ์ผ์นํ ์ ์๋ ์๋ธ ๊ทธ๋ํ๋ค์ ์์งํฉ๋๋ค.
- ์ด๊ฒ Candidate Region์ด ๋ฉ๋๋ค!
Candidate Subregion
โCandidate Subregionโ์ Candidate Region์ ๊ตฌํ๋ ๊ณผ์ ์์ ๊ณ์ฐํ๋ ์ค๊ฐ ๊ฒฐ๊ณผ๋ค ์ ๋๋ค.
Candidate Subregion์ NEC ํธ๋ฆฌ์ ๊ฐ ๋ ธ๋์ candidate ๋ฐ์ดํฐ ๋ ธ๋ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋น์ฐํ๊ฒ๋ ๋ชจ๋ Candidate Subregion์ ๋ชจ์ผ๋ฉด, Candidate Region์ด ๋ฉ๋๋ค!!
\[\text{Candidate Region} = \bigcup \text{Candidate Subregion}\]์์ ํ๋ Fig3์ ์ ์๋ Candidate Region์ ๊ตฌ์ฑํ๋ Subregion ์ ๋ณด ์ ๋๋ค.
Candidate Subregion์ ๋ช ํํ๊ฒ ์ ์ํด๋ณด๊ฒ ์ต๋๋ค.
$CR(uโ, v)$์์ ๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ์๋์ ๊ฐ์ต๋๋ค.
- $uโ$ = NEC ํธ๋ฆฌ์์ ํ ์ฟผ๋ฆฌ ๋ ธ๋
- $v$ = ๋ฐ์ดํฐ ๊ทธ๋ํ ์์ ํ ๋ ธ๋
- $CR(uโ, v)$๋ ์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ ๋
ธ๋์ ์งํฉ $\left\{ vโ \right\}$
- $vโ$๋ $v$์ DFS ํธ๋ฆฌ์์์ ์์ ๋ ธ๋์ฌ์ผ ํจ.
- $uโ$๊น์ง ๊ฐ๋ ๊ฒฝ๋ก์์ ๋ชจ๋ NEC ๋
ธ๋๊ฐ, $vโ$๊น์ง ๊ฐ๋ ๊ฒฝ๋ก์์ ๋ชจ๋ ๋ฐ์ดํฐ ๋
ธ๋์ ๋งค์นญ์ด ์์ด์ผํจ.
- ์ฆ, $uโ_s \rightarrow uโ$ ํธ๋ฆฌ ๊ฒฝ๋ก์ $v_s \rightarrow vโ$ ๊ฒฝ๋ก๊ฐ ๊ตฌ์กฐ์ ์ผ๋ก ๋งค์นญ ๋์ด์ผ ํจ.
- $uโ$์ ์๋ธํธ๋ฆฌ๊ฐ Candidate Subregion์ผ๋ก ๋ถ๋ฅ๋ $vโ$์ ์๋ธ ํธ๋ฆฌ์ ๊ตฌ์กฐ์ ์ผ๋ก ๋งค์นญ ๋์ด์ผ ํจ.
์ ์๋ฅผ ๊ณ๋ค์ฌ์ ๋ค์ ์ํ์ ์ผ๋ก ํํํด๋ณด๋ฉด
\[CR(u) = \bigcup_{u' \in V(q'), v \in V(g)} CR(u', v)\]TurboIso ๋ ผ๋ฌธ์ Fig3๋ฅผ ๊ธฐ์ค์ผ๋ก Candidate Subregion์ ์ผ๋ถ๋ฅผ ๊ตฌํด๋ด ์๋ค.
๊ทธ ์ด์ ๋ $v_2$๋ง $uโ_2$์ ์๋ธํธ๋ฆฌ ๊ตฌ์กฐ์ ์ผ์น ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ฐ์ $B$-label์ด์ง๋ง, $v_3$, $v_4$, $v_5$๋ ์๋ธํธ๋ฆฌ ๊ตฌ์กฐ๊ฐ ๋ค๋ฅด๋ฏ๋ก ์ ์ธ๋ฉ๋๋ค.
$v_3$, $v_4$, $v_5$๋ ์๋ธํธ๋ฆฌ ๊ตฌ์กฐ๊ฐ ๊ฐ์ผ๋ ํฌํจ๋ฉ๋๋ค.
๊ทธ๋ฐ๋ฐ, $v_2$๋ Candidate Region์ผ๋ก ํฌํจ ๋ฉ๋๋ค! ์๋ํ๋ฉด, $uโ_3$์ ์๋ธํธ๋ฆฌ ๊ตฌ์กฐ๊ฐ ์กด์ฌํ๊ธฐ๋ง ํ๋ฉด ๋๋๋ฐ, $uโ_3$๋ ์๋ธํธ๋ฆฌ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ emptyset($\emptyset$)์ ๋ชจ๋ ์งํฉ์ ํฌํจ๋๋ฏ๋ก
\[\emptyset \subseteq \text{subtree}({v_3})\]$v_2$๋ก Subregion์ ํฌํจ ๋ฉ๋๋ค!
๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ ๊ทธ๋ํ์ ๊ฐ์ ๋ ธ๋์ธ $v^\ast_s$๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ด๊ฒ์ $uโ_s$์ ๋งค์นญ ํ๋ณด์ธ ๋ฐ์ดํฐ ์ ์ $v_s$๋ฅผ ์ ์ฅํ๊ธฐ ์ํด, ์ถ๊ฐํ ๊ฐ์์ ๋ ธ๋ ์ ๋๋ค.
$v^\ast_s$๊ฐ ์๊ณ , $v_s$๊ฐ ์ด๋ค ๋ค๋ฅธ ๋ถ๋ชจ ๋ ธ๋์ ์ฐ๊ฒฐ๋ ์ํฉ์ด์๋ค๋ฉด $v_s \rightarrow v$์ ๊ฒฝ๋ก๋ฅผ ์๋ฐํ ์ ์ํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ๋๋ค.
Explore Candidate Region
Degree-based filtering
NEC ๋ ธ๋ $uโ$๊ณผ ๋ฐ์ดํฐ ๋ ธ๋ $v$๊ฐ ์ฃผ์ด์ก์ ๋, $CR(uโ, v)$์ ์ํ๋ $vโ$๋ฅผ ๋น ๋ฅด๊ฒ ๊ตฌํ๊ธฐ ์ํด degree ๊ธฐ๋ฐ์ผ๋ก ํํฐ๋ง์ ๋จผ์ ํ๋ค๊ณ ํฉ๋๋ค.
๋ง์ฝ, $(v, vโ) \in E(g)$์ธ $vโ$ ์ค์์ $\deg (vโ) < \deg (uโ.NEC[1])$์ธ ๋ ธ๋๋ผ๋ฉด, ํด๋น ๋ฐ์ดํฐ ๋ ธ๋ $vโ$๋ $CR(uโ, v)$์ ํฌํจ๋ ์ ์์ต๋๋ค. ์๋ํ๋ฉด, $u$์ ์์ ์ค์ ๋งค์นญ ๋์ง ์๋ ๋ ์์ด ์ ์ด๋ ํ๋ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ ผ๋ฌธ์์๋ ์๋์ ๊ฐ์ด ์์๋ฅผ ์ ๊ณต ํฉ๋๋ค.
- $\deg (u_1) = 3$
- $\deg (uโ_1) = 2$
์ธ๋ฐ, $\deg (v_1) = 4$์ด๋ฏ๋ก $v_1$์ $uโ_1.NEC$๊ฐ ๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
\[\deg (u_1) = \deg (u'_1.NEC[1]) \le \deg (v_1) \quad \rightarrow \quad \text{possible to belong CR!}\]Neighborhood Label Frequency (NLF) Filtering
TurboIso๋ NLF Filter๋ฅผ ์ ์ฉํด $CR(uโ, v)$์ ํฌํจ๋ ์ ์๋ $vโ$๋ฅผ ํํฐ๋ง ํฉ๋๋ค.
NLF Filter๋ TreeSpan(2012) ๋ ผ๋ฌธ์์ โNeighborhood Aggregatesโ๋ผ๋ ์ด๋ฆ์ผ๋ก ์ ์๋ ํํฐ๋ง ๋ฐฉ์์ ๋๋ค. ์ด๋ฆ์ด ๋ฌด์์์ ๊ทธ๋ ์ง ์์ด๋์ด๋ ์ ๋ง ๊ฐ๋จํฉ๋๋ค ใ ใ
Neighborhood Aggregates $N(v, g)$๋ ๋ ธ๋ $v$์ ์ธ์ ํ ๋ ธ๋๋ค์ Label์ ๋น๋์๋ฅผ ์ผ ๊ฐ์ ๋๋ค. ์์๋ฅผ ๋ค์ด์ ์ดํด๋ณด๋ฉด,
Let $(L_1, L_2, L_3, L_4) = (A, B, C, D)$,
\[N(u, q) = (2, 1, 0, 2)\] \[N(v, G) = (1, 2, 2, 0)\]์ฟผ๋ฆฌ ๋ ธ๋ $u$์ ๋ฐ์ดํฐ ๋ ธ๋ $v$ ๋ ๋ ธ๋๊ฐ ๋งค์นญ๋๊ธฐ ์ํด์๋ ์๋์ ์กฐ๊ฑด์ด ๋ง์กฑ ๋์ด์ผ ํฉ๋๋ค.
๋์ Neighborhood Aggregates $N(u, q) = (x_1, \dots, x_n)$, $N(v, G) = (y_1, \dots, y_n)$์ ๋ํด์
\[\forall i, x_i \le y_i\]๋ฅผ ๋ง์กฑํ๋ค๋ฉด, ๋ ๋ ธ๋๋ ๋งค์นญ๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ๋ง์ฝ ์ด๋ ํ ๋ ์ด๋ธ์ด๋ผ๋ $x_i > y_i$์ธ, ์ฆ ํน์ ๋ ์ด๋ธ์ ๊ฐ์ง ๋ ธ๋์ ๋ ์ฐ๊ฒฐ๋์ด ์๋ค๋ฉด, ์ฟผ๋ฆฌ ๋ ธ๋ $u$์ ๋ฐ์ดํฐ ๋ ธ๋ $v$๋ ๋งค์นญ๋ ์ ์์ต๋๋ค.
๋ ผ๋ฌธ์๋ ์ด๋ ๊ฒ ์ฐ์ง ์์ง๋ง, ์ ๋ง์ ํํ์ผ๋ก ์ ์ด๋ณด์๋ฉด
\[N(u, q) \le N(v, G)\]์กฐ๊ฑด์ ๋ง์กฑํด์ผ, ๋งค์นญ์ด ๊ฐ๋ฅ ํฉ๋๋ค.
TurboIso ๋ ผ๋ฌธ์์๋ ์๋์ ๊ฐ์ด ๊ธฐ์ ํฉ๋๋ค.
[NLF Filter (TurboIso ver)]
For every distinct label $l$ of adjacent vertices of $u$, check if
\[\left\vert adj(u, l) \right\vert \le \left\vert adj(v, l) \right\vert\]TurboIso๋ Candidate Subregion์ ๊ณ์ฐํ๊ธฐ ์ํด NLF Filter๋ฅผ ์ ์ฉํฉ๋๋ค. ๋ ผ๋ฌธ์ Algo3์ ์ด ๋ถ๋ถ์ด ์ฝ๋๋ก ๋์ ์์ต๋๋ค.
DFS Traversal
$uโ$์ $vโ$๊ฐ Degree ์กฐ๊ฑด๊ณผ NLF Filter ์กฐ๊ฑด์ ๋ง์กฑํ๋ค๋ฉด, ์ด์ ์๋ธ๊ทธ๋ํ์ ๋ํด ๊ตฌ์กฐ์ ์ผ๋ก ๋งค์นญ ๋๋์ง๋ฅผ ํ์ธ ํฉ๋๋ค.
์ฟผ๋ฆฌ ๋ ธ๋ $uโ$์ ์์ ๋ ธ๋ $uโ_c$๋ค์ ์ํํ๋ฉด์ ์ฌ๊ท์ ์ผ๋ก Candidate Region ํ์์ ์งํํฉ๋๋ค.
์ด๋, ์์ ๋ ธ๋ $uโ_c$๋ฅผ ์ํํ๋ ์์๋ $\left\vert adj(vโ, L(uโ_c)) \right\vert$๊ฐ ์์ ์์๋ถํฐ ํฐ ์์๋ก ์ํ ํฉ๋๋ค. ์ด๊ฒ์ $vโ$์ ์ธ์ ํ ๋ ธ๋ ์ค์์ ๊ฐ์ฅ ์ ์ ๋น๋๋ฅผ ๊ฐ์ง ๋ ์ด๋ธ๊ณผ ์ผ์นํ๋ ์์ ๋ ธ๋๋ถํฐ ์ํํ๊ฒ ๋ฉ๋๋ค.
๋ง์ฝ, ์์ ๋
ธ๋์ ๋ํด์ ExploreCR()
ํ ๊ฒฐ๊ณผ๊ฐ ์คํจ ์๋ค๋ฉด, $vโ$ ๋
ธ๋๋ $uโ$์ Candidate Region์ด ๋ ์ ์์ต๋๋ค.
์ด๋๋ ExploreCR()
๊ณผ์ ์์ ์ฐพ์ $uโ_c$์ $vโ$ ์ฌ์ด์ Candidate Region์ ๊ตฌ์ถํ ์๋ ์์ต๋๋ค. ์ฆ, $CR(uโ_c, vโ) \ne \emptyset$๋ผ๋ ๊ฒ์ด์ฃ . ํ์ง๋ง, $vโ$๋ $uโ$์ ๋งค์นญ ๋์ง ์์ ์ ์์ต๋๋ค!
์ด๋ฐ ๊ฒฝ์ฐ๋ $vโ$์ ๋ํด์ ์ฐพ์ ๊ฒฐ๊ณผ๊ฐ ๋ชจ๋ ๋ฌด์๋ฏธ ํด์ง๋๋ค.
๊ทธ๋์ $CR(uโ_c, vโ)$ ์ด๊ธฐํ ํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ์ํํ๋ ๊ฒ์ด ClearCR()
ํจ์ ์
๋๋ค.
๋งค์นญ์ด ์คํจํ์ผ๋ matched = false
๋ก ์ค์ ํ๊ณ ์ํ๋ฅผ ์ข
๋ฃ ํฉ๋๋ค.
๋ง์ฝ ๋งค์นญ์ด ๊ฐ๋ฅ ํ๋ค๋ฉด(matched = true
), ๋ฐ์ดํฐ ๋
ธ๋ $vโ$๋ฅผ Candidate Subregion $CR(uโ, v)$์ ์ถ๊ฐํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก, ์์ฑ๋ $CR(uโ, v)$ ์งํฉ๊ณผ $uโ.NEC$ ์งํฉ์ ๋น๊ต ํฉ๋๋ค.
์ด๋, $CR(uโ, v)$๋ก ๋งคํ๋๋ ๋ฐ์ดํฐ ๋ ธ๋๊ฐ ์กด์ฌํ๊ธฐ๋ ํ๋๋ฐ, $uโ.NEC$ ์งํฉ์ ํฌ๊ธฐ๋ณด๋ค ์๋ค๋ฉด, ๋งคํ์ด ์ฑ๋ฆฝํ์ง ์์ต๋๋ค. ์๋ํ๋ฉด, $uโ.NEC$์ ์ํ๋ ๋ ธ๋ ์ค ์ผ๋ถ๋ ๋งค์นญ ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋์ $\left\vert CR(uโ, v) \right\vert \le \left\vert uโ.NEC \right\vert$๋ฅผ ํ์ธํ๊ณ ,
๋งค์นญ ๊ฐ๋ฅํ ๋
ธ๋ ์๊ฐ ๋ถ์กฑํ๋ค๋ฉด, (๊ธฐ๊ป๋ง๋ ) $CR(uโ, v)$ ์งํฉ์ ClearCR()
์ฒ๋ฆฌ ํฉ๋๋ค.
Candidate Region์ ๊ตฌ์ฑํ๋ ์ ์ฒด ํ๋ฆ์ ์ดํด๋ณด๋ฉด, ์๋ ์ต๋๋ค!
Candidate Region Data Structure
์ด์ Candidate Region์ ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ณ , ๊ด๋ฆฌํ๋ ์๋ฃ๊ตฌ์กฐ ๊ตฌํ์ ๋ํด ์ดํด๋ด
์๋คโฆ! ์์ง๋ ๋จ์๊ฑฐ๋โฆ
์ฒ์์๋ ์ด๋ฐ ํ์ ๊ฐ์ ํํ๋ก $CR$์ ์ ๋ฆฌ ํ์ต๋๋ค. ์ด์ ์ด๊ฑธ NEC ํธ๋ฆฌ $qโ$์ ๊ฐ์ด ๊ทธ๋ํ ํํ๋ก ํํํด๋ณด๋ฉด ์ค๋ฅธ์ชฝ๊ณผ ๊ฐ์ด ํํํ ์ ์์ต๋๋ค. $CR(uโ, v)$๊ฐ ๋ ธ๋๊ฐ ๋๊ณ , ๊ทธ ์์ $vโ \in CR(uโ, v)$์ ์์๋ค์ด ์กด์ฌ ํฉ๋๋ค.
$CR(uโ, -)$๋ โNEC ๋ ธ๋ $uโ$์ ๋ฐ์ดํฐ ๋ ธ๋ $v$์ ๋ํ ๋ชจ๋ Subregion์ ๋ชจ์ ๋ฐฐ์ดโ ์ ๋๋ค. ๊ทธ๋์ $CR(uโ_7, -)$๋ฅผ ๋ณด๋ฉด, $CR(uโ_7, v_y) \cup CR(uโ_7, v_8)$๋ก ์ด๋ค์ง๊ฑธ ๋ณผ ์ ์์ต๋๋ค. ์๋ํ๋ฉด, $uโ_7$์ ๊ฒฝ์ฐ ๊ฐ๋ฅํ Candidate Subgraph์ด 2๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋๋จธ์ง ๋ ธ๋๋ค์ Candidate Subregion์ด ํ๋๋ง ์์ต๋๋ค.
์ด๋, $CR(uโ, -)$ ๋ฐฐ์ด ์์์๋ ์ด๋ค $v$์์ ์จ ๊ฒ์ธ์ง ๊ตฌ๋ถ ์์ด ์ ์ฅํฉ๋๋ค. $CR(uโ, -)$ ๋ฐฐ์ด์๋ $(vโ, L)$๊ฐ ์ ์ฅ ๋๋๋ฐ, ๋งค์นญ ๋๋ ๋ฐ์ดํฐ ๋ ธ๋์ธ $vโ$์ด๊ณ , $L$์ โlist of ranges $[s, e]$โ๋ผ๊ณ ํฉ๋๋ค. ์ด๋, ๋ฐฐ์ด ํํ์ inclusive ์ ๋๋ค.
์๋ฅผ ๋ค์ด, ํ๋์ $CR(uโ, -)$์ ์ฝ๋๋ก ์ ์ด๋ณด๋ฉด,
CR_u2_arr = [
(v2, [[1, 1], [1, 2], [1, 1]]),
]
CR_u7_arr = [
(v14, []),
(v15, []),
(v16, []),
(v17, []),
]
์ด๋, $L$์ ํฌ๊ธฐ๋ $uโ$์ NEC ์์ ๋
ธ๋์ ๊ฐฏ์๋งํผ ๊ฐ์ง๋๋ค. ๊ทธ๋์ ์์์ด ์๋ NEC ๋
ธ๋๋ L = []
๋ก empty list๊ฐ ๋ฉ๋๋ค.
๋ง์ฝ ์์์ด 3๊ฐ์ธ NEC ๋
ธ๋($uโ_2$)๋ผ๋ฉด, ๋ฐฐ์ด $L$๋ L = [l_1, l_2, l_3]
์ด ๋ฉ๋๋ค. ์ด๋, $l_i$์๋ $[s, e]$๋ก ์์๊ณผ ๋ ๊ฐ์ด ์ ์ฅ ๋๋๋ฐ, ์ด๊ฒ์ ํ์ NEC ๋
ธ๋์์ ์ด $vโ$๊ณผ ์ฐ๊ฒฐ๋๋ ๊ฒ์ (์ฐ๊ฒฐ๋) ์์์ด ๋ฌด์์ธ์ง ๊ตฌ๋ถํ๋ ๋
์ ์
๋๋ค.
์๋ฅผ ๋ค์ด, $CR(uโ_5, -)$์ ์๋
- $(v_7, [[1, 1]])$
- $v_7$์ ์์์ $CR(u^\prime_7, -)$์ $v_14$ ์ ๋๋ค.
- $(v_8, [[2, 4]])$
- $v_8$์ ์์์ $CR(u^\prime_7, -)$์ $v_{15}$, $v_{16}$, $v_{17}$ ์ ๋๋ค.
์ฐธโฆ ์ด๋ ต๋คโฆ ๊ทธ์ฃ โฆ? เซฎ(หถใ ๏ธฟใ )แ
๋งบ์๋ง
๋ด์ฉ์ด ๊ธธ์ด์ ธ์ ํฌ์คํธ๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค! โMatching Orderโ์ ๋ํ ๋ด์ฉ๋ถํฐ๋ ์๋ ํฌ์คํธ๋ก ๊ณ ๊ณ !
โก๏ธ TurboIso - Matching Order