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 ๋ ผ๋ฌธ([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}$๊น์ง ๋ชจ๋ ๋งค์นญ์ ๊ฒ์ฌํด์ผ ํฉ๋๋ค.
์ด๊ฒ์ ์ฟผ๋ฆฌ ๊ทธ๋ํ $q$๋ฅผ ๋งค์นญ ํ ๋๋ ๋งค์นญ ์ค๋๋ฅผ ์ด๋ป๊ฒ ์ก๋๋์ ๋ฐ๋ผ์ ๋งค์นญ์ ๊ฒ์ฌํ๋ ํ์๊ฐ ํฌ๊ฒ ๋ฌ๋ผ์ง ์ ์๋ค๋ ๊ฒ์ ๋งํฉ๋๋ค.
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, v_x), (u_j, v_y) \right\} \cup \left\{ (u_i, v_y), (u_j, 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\}$๊ฐ ๋ฉ๋๋ค.
Candidate Region $CR(u)$
TurboIso๋ ๋น ๋ฅธ ์ฟผ๋ฆฌ ๋งค์นญ์ ์ํด ๋ฐ์ดํฐ ๊ทธ๋ํ ์์ Candidate Region $CR$์ ์ ์ํฉ๋๋ค.
์ด Candidate Region์ โEmbedding์ ๊ฐ์ง ๊ฒ์ผ๋ก ๊ธฐ๋๋๋ ๋ฐ์ดํฐ ๊ทธ๋ํ์ ์์ญโ์ ๋๋ค.
์กด์ฌ์ฑ์ด ๊ธฐ๋๋๋ ์์ญ์ด๊ธฐ ๋๋ฌธ์, Embedding์ด ์กด์ฌํ์ง ์๋๋ค๋ฉด CR ๋ด์์ Embedding์ ์ฐพ์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ง์ฝ Embedding์ด ์กด์ฌํ๋ค๋ฉด, ์ด ์์ญ ์์์ ๋ฐ๋์ ์กด์ฌํฉ๋๋ค.
Embedding ์กด์ฌ ์ฌ๋ถ์ ์๊ด ์์ด, CR์ ์ ์ํด ์ด ์์ ๋ฐ์ดํฐ ๊ทธ๋ํ๋ง ํ์ํ๊ธฐ ๋๋ฌธ์, ๋ฐ์ดํฐ ๊ทธ๋ํ ์ ์ฒด๋ฅผ ํ์ํ ํ์๊ฐ ์์ด์ง๊ณ ์ด๊ฒ์ ๊ฒ์ ๊ณต๊ฐ์ ํฌ๊ฒ ์ค์ฌ์ค๋๋ค!
ํ๊ธฐ๋ $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)$์ ํฌํจ๋ ์ ์์ต๋๋ค.
๋ ผ๋ฌธ์์๋ ์๋์ ๊ฐ์ด ์์๋ฅผ ์ ๊ณต ํฉ๋๋ค.
- $\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๋ฅผ ์ ์ฉํฉ๋๋ค.
๋ฐ์ดํฐ ๋ ธ๋ $vโ$๋ฅผ $CR(uโ, v)$์ ํฌํจ์ํค๊ธฐ ์ํด์ ์๋ธ ํธ๋ฆฌ ์ํ๋ฅผ ํด์ผ ํ๋๋ฐ, ๊ทธ๊ฑธ ์งํํ๊ธฐ ์ ์ $N(uโ, q) \le N(vโ, g)$์ธ์ง ๋จผ์ ์ฒดํฌ ํฉ๋๋ค.
๋ ผ๋ฌธ์ 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