[Reading] Versatile Equivalences: Speeding up Subgraph Query Processing and Subgraph Matching (Kor)
Contents
Kim, H., Choi, Y., Park, K., Lin, X., Hong, S. H., & Han, W. S. (2021). Versatile Equivalences: Speeding up Subgraph Query Processing and Subgraph Matching. Proceedings of the ACM SIGMOD International Conference on Management of Data, 925โ937. https://doi.org/10.1145/3448016.3457265
Introduction
์ด๋ฒ์ ์ ๋ฆฌํ ๋ ผ๋ฌธ์ ์ ๊ฐ 2020๋ 2ํ๊ธฐ์ ์ฐ๊ตฌ์ค ํ๋ถ์ ์ธํด์ผ๋ก ์ง๋ ๋ฐ์๋ ์์ธ๋ํ๊ต ์ปดํจํฐ์ด๋ก ๋ฐ ์์ฉ ์ฐ๊ตฌ์ค (๋ฐ๊ทผ์ ๊ต์๋ ์ฐ๊ตฌํ) ์์ ์ด๋ฒ 2021๋ SIGMOD์ ๋ฐํํ ๋ ผ๋ฌธ์ด์, ์ ์ด๋ฒ ์ฐฝ์ํตํฉ์ค๊ณ์ ๋ฐ์ ํ ๊ด๋ จ์ด ์๋ ๋ ผ๋ฌธ์ ๋๋ค. (๊ทธ๋์ ๋ค๋ฅธ ๋ ผ๋ฌธ์ ๋นํด ํจ์ฌ ์์ธํ ์ฝ์์ต๋๋ค. ์ด ๋ ผ๋ฌธ์ ๋๊ฐ์ด ๊ตฌํํ ๊ฐ์ค(?) ๋ฅผ ํ๊ณ ์์๊ธฐ ๋๋ฌธ์โฆ)
์ด ์๊ณ ๋ฆฌ์ฆ๋ ํฌ๊ฒ๋, Filtering - Matching order - Backtracking ์ ํ ์์์ ์ค๋ช ๋ ์ ์์ต๋๋ค.
Key Ideas
Filtering : DAG Graph DP
๋ ๊ฐํ ํํฐ๋ง์ ์ํด, ์ด๋ค ์ ๋นํ ์์๋ก DP๋ฅผ ๋๋ ค์ Candidate Set (CS) ๋ผ๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ถํฉ๋๋ค. ๊ทธ๋ํ์์ DP๋ฅผ ๋๋ฆฌ๊ธฐ ์ํด์๋ DPํ ์์๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์, Query Graph๋ก๋ถํฐ DAG๋ฅผ ๋ง๋ญ๋๋ค. ์ด๋ DAG๋ label์ด ์ข uniqueํ๋ฉด์ degree๊ฐ ํฐ ์ ์ ์ ํ๋ ์ก์์, ๊ทธ ์ ์ ์์ BFS๋ฅผ ๋๋ ค์ ์ป์ ๊ฒ์ ๋๋ค. ์ด๋ฅผ $q_D$๋ผ๊ณ ํ๊ณ , ๋์ค์ ์ญ๋ฐฉํฅ์ผ๋ก ๋๋ฆฌ๊ธฐ ์ํด $q_D$์ inverse DAG $q_D^{-1}$ ๋ก ๋ง๋ญ๋๋ค.
CS๋ ๊ฐ $u \in V_q$์ ๋ํด, ์งํฉ $C(u)$ ์ ๊ทธ ์งํฉ์ $v_{ip} \in C(u_i)$, $v_{jq} \in C(u_j)$ ์ฌ์ด์ ์ด์ด์ง ๊ฐ์ ์ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. ์ด ์๋ฃ๊ตฌ์กฐ๋ DAF[^ref-daf] ์์ ์ ์๋ ์๋ฃ๊ตฌ์กฐ์ด์ง๋ง, VEQ์์๋ ๋ ๊ฐ์ ๋ ๋ฒ์ ์ผ๋ก ์ ์ฉ๋ฉ๋๋ค. ์ต์ด์ CS๋ label๊ณผ $G$์์์ ์ฐ๊ฒฐ๊ด๊ณ๋ง ๊ฐ์ง๊ณ ๋์ถฉ ๋ง๋ค์ด ๋๊ณ (label์ด ๊ฐ์ ์ ์ ๋ค์ ์ง์ด๋ฃ๊ณ , ๊ทธ ์ ์ ๊ณผ ์ฐ๊ฒฐ๋์ด ์๋ ์ ์ ์ BFS ์์๋ก ๋๋ฉด์ ๋น๋) ์ด๋ฅผ ์ค์ฌ๋๊ฐ ๊ฒ์ ๋๋ค.
DAG DP๋ ๊ธฐ๋ณธ์ ์ผ๋ก $\abs{V_q}\abs{V_G}$ ํฌ๊ธฐ์ ํฐ boolean DP ํ ์ด๋ธ์ ์ฑ์๋๊ฐ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด ํ ์ด๋ธ D๋ $D(u_i, v_j)$ ๊ฐ ๊ณง $v_j \in C(u_i)$๋ฅผ ์๋ฏธํ๋ DP๊ฐ ๋ฉ๋๋ค. DAG์ ๋ฆฌํ๋ถํฐ ์์ํด์ ์ฌ๋ผ์ค๋ฉด์, ๋ค์์ ๊ณ์ฐํฉ๋๋ค.
$D(u, v)$ ๊ฐ 1์ผ ํ์์ถฉ๋ถ์กฐ๊ฑด : $u$์ ๋ชจ๋ ์์ ๋ ธ๋ $u_c$์ ๋ํด,
- $^\exists v_c$ adjacent to $v$, $D(u_c, v_c) = 1$
์ด ์กฐ๊ฑด๊น์ง๋ DAF์์ ์ฌ์ฉํ DP์ ์ ์์
๋๋ค. VEQ์์๋ ์ฌ๊ธฐ์ ๋ ๊ฐํ ์กฐ๊ฑด์ ์๊ตฌํ์ฌ ๋ ๊ฐํ ํํฐ๋ง์ ๋ฌ์ฑํฉ๋๋ค.
$D(u, v)$ ๊ฐ 1์ผ ํ์์ถฉ๋ถ์กฐ๊ฑด : $u$์ ๋ชจ๋ ์์ ๋
ธ๋ $u_c$์ ๋ํด DAF์์์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉฐ, $(u, v)$๊ฐ ๋ชจ๋ label $l$์ ๋ํด ๋ค์์ ๋ง์กฑํ๋ค.
- label์ด $l$์ธ $u$์ ์ธ์ ๋ ธ๋ $u_{l_i}$๋ค์ ๋ํด, $C(u_{l_i})$์ ํฌํจ๋๋ ์ ์ ๋ค์ ๋ชจ๋ ๋ชจ์ ๋ค์, ๊ทธ๋ค ์ค $v$์ ์ฐ๊ฒฐ๋์ด ์๋ ์ ์ ๋ค (์ฆ, $v$์์ extend ๊ฐ๋ฅํ) ๋ง ์ฑ๊ฒจ์, ์ด๋ฅผ $N(u, v, l)$ ์ด๋ผ ํฉ๋๋ค.
- ์ด $N(u, v, l)$์ ํฌ๊ธฐ๊ฐ, ์ ์ด๋ $u$์ ์ธ์ ๋ ธ๋๋ค ์ค label์ด $l$์ธ ๋ ธ๋๋ณด๋ค๋ ๋ง์์ผ ํฉ๋๋ค.
์ฆ, ์ง๊ด์ ์ผ๋ก, ๋ง์ฝ $u_1$์ $v_1$์ ๋งคํํด๋๊ณ ๋ณด๋๊น $u_1$์๋ ๋ผ๋ฒจ์ด $l$์ธ ์ด์์ด ์ฌ์ฏ๊ฐ ์๋๋ฐ $v_1$์์ extend๊ฐ๋ฅํ ๋ผ๋ฒจ $l$์ธ ์ด์์ด ๋ค๊ฐ๋ฐ์ ์๋ ์ํฉ์ ๋ฏธ๋ฆฌ ํ๋จํด์ ๋ฐฉ์งํ๋ค๋ ๊ฒ์ ๋๋ค.
์ด ์กฐ๊ฑด์ VEQ ๋ ผ๋ฌธ์์๋ โNeighbor-Safetyโ๋ผ๊ณ ์ ์ํ์ต๋๋ค. ์ด ์กฐ๊ฑด์ ๋ฏธ๋ฆฌ preprocessing์ ๋นก์ธ๊ฒ ํด์ ์ ๊ตฌํํ๋ฉด ์๋์ DP์ ๊ฐ์ ์๊ฐ ๋ณต์ก๋ $O(\abs{E_q}\abs{E_G})$์ ๊ฐ๋ฅํ๋ค๊ณ ํฉ๋๋ค.
๋ํ, ์ด DP๋ฅผ ์ต๋ํ ์ ์ค์ด๊ธฐ ์ํด, query DAG๋ฅผ ์ฌ๋ฌ๊ฐ ์ฐ๋ฉด ๋ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ์ค์ ๋ก๋ $q_D, q_D^{-1}, q_D$ ์์๋ก ๋ฐ๋ณตํ๋ฉด์ ์ฐ๋ฉด ๋๋๋ฐ, ๋ ผ๋ฌธ์ ์ํ๋ฉด 3๋ฒ๋ง ํ๋ฉด ๋์ด์ ํฐ ์๋ฏธ ์๋ค๊ณ ํฉ๋๋ค.
Adaptive Matching Order : Static Equivalence
Adaptive Matching Order๋, Matching order๋ฅผ ๋ฏธ๋ฆฌ ์ ํ์ง ์๊ณ , ๋ฐฑํธ๋ํน ํ๋ ์ค์ ๋ค์ด๋๋ฏนํ๊ฒ ์ ํด ๋๊ฐ๊ฒ ๋ค๋ ์๋ฏธ์ ๋๋ค. ํ์ฌ๊น์ง ์ฐพ์ partial embedding $M$์ ๋ํด, $M$์ ์ด๋ฏธ ํฌํจ๋ ์ ์ ๊ณผ ์ด์ํ ์ ์ ๋ค์ extendableํ๋ค๊ณ ์ ์ํ๊ณ , ์ด๋ Candidate Set $C(u)$์ ๋ค์ด ์๋ ์ ์ ๋ค ์ค partial embedding $M$์ ๊ณ ๋ คํ ๋ $u$์ ๋งค์นญ ๊ฐ๋ฅํ ์ ์ ๋ค์ $C_M(u)$ ๋ผ๊ณ ์ ์ํ๊ฒ ์ต๋๋ค. (์ฆ, $C(u)$์ ์๋๋ผ๋, ์ด๋ฏธ $M$์์ ์ด์๋ค์ ๋งค์นญํ์ ๋ $u_c$๋ฅผ $v_c$์๋ค๊ฐ ๋๊ณ ๋งค์นํ๋ค๋ฉด, $v_c$์ ์ด์ํ๋ ์ ๋ง ๋จ๊ธฐ๊ณ ๋๋จธ์ง๋ ๋ ๋ฆฌ๊ฒ ๋ค๋ ๋ง์ ๋๋ค)
Extendable vertex์ค ํ๋๋ฅผ ํํด์ ๋ค์ ์ ์ ์ผ๋ก ์ผ๊ณ backtrackingํด์ผ ํฉ๋๋ค. CFL-Match์ DAF์ ๊ฒฝ์ฐ ์ด๋ถ๋ถ์์ vertex๋ฅผ core-forest-leaf ๋๋ core-leaf๋ก ๋๋ ์ ๋งค์นญํ๋ ์ ๋ต์ ์ฐ๋๋ฐ, ์ด ๋ ผ๋ฌธ์์๋ ์ด์ ๊ฐ์ decomposition์ ๋ต์ด leaf๊ฐ ์ ์ ๋ ๋๋ ค์ ๋ณ๋ก ์ข์ง ์๋ค๊ณ ์ฃผ์ฅํฉ๋๋ค.
๋์ ์, ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ์๋๋ค.
- DAG DP๋ฅผ ํ ๋, ๋ฏธ๋ฆฌ query์ ๋ํด์ NEC (Neighbor Equivalence Class) ๋ผ๋ ๊ธฐ๋ฒ์ ์ด์ฉํด์ ๋ฆฌํ ๋ ธ๋๋ฅผ ํฉ์น ๊ฒ์ ๋๋ค. NEC๋ 2013๋ Turbo-Iso๋ผ๋ ์๊ณ ๋ฆฌ์ฆ (Postech์ ํ์ฑ์ ๊ต์๋ ์ฐ๊ตฌํ) ๋ ผ๋ฌธ ์ค์ ์ ์๋ ๋ฐฉ๋ฒ์ผ๋ก, label์ด ๊ฐ๊ณ ์ด์ํ๋ vertex๊ฐ ๊ฐ์ leaf๋ฅผ ํ๋๋ก ํฉ์ณ๋ฒ๋ฆฐ ๋ค์ (์ฆ, $u_3$์ ๋ฆฌํ $u_4$ ์ $u_5$๊ฐ ๋ฌ๋ ค์๋๋ฐ ๋ ๋ผ๋ฒจ์ด ๊ฐ์ผ๋ฉด) ์ด๋ฅผ ๊ธฐ๋กํด๋๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ ๋ง์ด ๋๋ ์ด์ ๋ ์ด์ฐจํผ $u_4$๊ฐ ๋งค์นญ๋ ์ ์๋ ๋ ธ๋๋ผ๋ฉด $u_5$๋ ํญ์ ๋งค์นญ ๊ฐ๋ฅํด์, ๋๊ฐ์ ์๋ฒ ๋ฉ์ด ๋์์ ์ฐพ์์ง๊ธฐ ๋๋ฌธ์ ๋๋ค (๋๋ค ๋ฆฌํ์ด๋ฏ๋ก ๋ค๋ฅธ ๋ ธ๋๋ฅผ ๊ณ ๋ คํ ํ์๊ฐ ์์ต๋๋ค)
- ๋ง์ฝ ๋ฆฌํ $u$๊ฐ ์กด์ฌํ์ฌ, $\abs{NEC(u)}$์ ๊ฐ์๋ฅผ ๊ณ ๋ คํ ๋ ์์ง ๋งค์นญ๋์ง ์์ $C_M(u)$์ ๋ ธ๋๊ฐ ์ถฉ๋ถํ ์๋ค๋ฉด ์ด์ชฝ์ผ๋ก ๊ฐ์ ๋งค์นญํฉ๋๋ค.
- ๊ทธ๋ ์ง ์๋ค๋ฉด, ๋ฆฌํ๋ฅผ ์ฐ์ ์ ์ผ๋ก ๋งค์นญํ๊ณ ,
- ๋ฆฌํ๊ฐ ์์ผ๋ฉด, $\abs{C_M(u)}$๊ฐ ์์ ๋ ธ๋๋ถํฐ ๋งค์นญํฉ๋๋ค.
์ฐธ๊ณ ๋ก, DAF์ ๊ฒฝ์ฐ ๋๊ฐ์ adaptive matching order ์ค ํ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ ๋ ๊ฐ์ง ์ค ํ๋๊ฐ $C_M(u)$์ ํฌ๊ธฐ๊ฐ ์์ ๋ ธ๋๋ถํฐ ๋งค์นญํ๋ ๊ฒ์ ๋๋ค.
Run time pruning : Dynamic Equivalence
๋ฐฑํธ๋ํน์ ํ๋ ์ค์๋, ๊ณ์ Search space๋ฅผ ์ค์ด๊ณ ์ถ์ต๋๋ค. ์ด๋ฅผ ์ํด์, Candidate Space๋ฅผ ์ ๊ด์ฐฐํ์ฌ Equivalence Tree์ ๊ฐ๋ ์ ์ ๋ฆฝํฉ๋๋ค.
$C(u)$์ ์์ $v_i, v_j$์ ๋ํด, $v_i, v_j$์ ์ฐ๊ฒฐ๋ $C(u_c)$์ vertex ๊ฐ ๋ชจ๋ $u$์ ์ด์ $u_c$ ์ ๋ํด ๊ฐ์ผ๋ฉด, ๋ ๋ ธ๋๋ฅผ Neighbor equivalent in $C(u)$๋ผ๊ณ ์ ์ํฉ๋๋ค. ์ด๋ฅผ ํตํด, Cell ์ด๋ผ๋ ๊ฐ๋ ์ ์ ์ํ๋๋ฐ, cell $\pi(u, v)$๋ $C(u)$์์ $v$์ equivalentํ $v_i$๋ค์ ์งํฉ์ผ๋ก ์ ์ํฉ๋๋ค. ์ด๋ฏธ์ง๋ VEQ ์๋ณธ ๋ ผ๋ฌธ์ ์ด๋ฏธ์ง์ธ๋ฐ, ๋ง๋ก ์ค๋ช ํ๋ฉด ์กฐ๊ธ ๊ท์ฐฎ์ง๋ง ๊ฐ๋ ์์ฒด๋ ์ง๊ด์ ์ ๋๋ค.
Partial embedding $M$๊ณผ, $C(u)$์์ equivalentํ ๋ ธ๋ $v_i, v_j$๊ฐ ์์๋, $u \to v_i$๋ฅผ ๋งค์นญํด ๋ณธ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ค๊ณ ํ๊ฒ ์ต๋๋ค. ์ด๋, $v_j$์ $v_i$๋ ๊ทธ ํน์ฑ์ด ๋งค์ฐ ๋น์ทํ ๋ ธ๋์ด๊ธฐ ๋๋ฌธ์, $u \to v_j$๋ฅผ ์ ๋ง ๋ชจ๋ ํ์ธํ๋ ๊ฒ์ ๋ญ๊ฐ ๊ธฐ๋ถ์ด ๋งค์ฐ ๋์ฉ๋๋ค.
๋ ผ๋ฌธ์์๋ ์ด๋ฅผ ์ํด, ๋ง์ง๋ง์ผ๋ก subtree equivalence๋ฅผ ์ ์ํฉ๋๋ค. Partial embedding ์ ํ์ ํธ๋ฆฌ์ฒ๋ผ ์ฐ๊ณ ์๋ค๋ ์ ์ ์ฃผ์ํด์ notation์ ์ฝ์ด์ผ ํฉ๋๋ค.
$M \cup (u, v_i)$๋ฅผ ๋ฃจํธ๋ก ํ๋ ์๋ธํธ๋ฆฌ์์, $(uโ, v_i)$๋ ๋์ด์ ๋ํ๋์๋ ์ ๋๋ conflict๋ค์ ๋๋ค ($v_i$๋ ์ด๋ฏธ $u$์ ๋งค์นญ๋์์ผ๋ฏ๋ก) ์ด๋ค์ $I_M(u, v_i)$๋ผ ํ๊ณ , ์ด ์๋ธํธ๋ฆฌ์์ $v_i \not\in \pi(uโ, vโ)$์ธ ๋ชจ๋ ๋งคํ (์ฆ, $v_i$์ equivalence๊ด๊ณ๋ฅผ ๊ฐ์ง ์๋ ๋งคํ) ๋ค์ ์งํฉ์ $O_M(u, v_i)$ ๋ผ ํฉ๋๋ค. ์ด๋, Negative cell $\pi^{-}(u, v_i)$๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํฉ๋๋ค.
- ๋ง์ฝ $v_i$์ ๋ํ conflict๊ฐ ํ๋ฒ์ด๋ผ๋ ์์๋ค๋ฉด, $\pi(u, v_i)$์ $\cap_{(uโ, v_i) \in I_M(u, v_i)} \pi(uโ, v_i)$์ intersection. ์ฆ, $v_i$์ ๋งค์นญ๋๊ณ ์ถ์ดํ๋ค๋ ์ด์ ๋ก conflict๋ฅผ ๋ง๋๋ $uโ$๋ค์ ๋ํด, $v_i$๋ฅผ ๋ฐ๋ผ๋ค๋๋ฉด์ ๋ชจ๋ ๊ณณ์์ $v_i$์ equivalentํ ๋ ธ๋์ ์งํฉ.
- Conflict๊ฐ ์์๋ค๋ฉด $\pi(u, v_i)$๋ก ๊ทธ๋๋ก ๊ฐ์ ธ๊ฐ๋๋ค.
๋ํ, $\delta_{M}(u, v_i)$๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํฉ๋๋ค. \(\bigcup_{(u', v') \in O_M(u, v_i)} \pi(u', v')\) ์ง๊ด์ ์ผ๋ก ์ด๋, $v_i$์ equivalentํ์ง ์์ ๋ชจ๋ ๋งคํ๋ค์ ๋ํด์, ๊ทธ equivalence class๋ค์ ๋ชจ์ ๊ฒ์ ๋๋ค.
์ด๋ฅผ ์ด์ฉํ์ฌ, Equivalence Set $\pi_M(u, v_i)$๋ฅผ ์ ์ํฉ๋๋ค.
- ํ๋ฒ์ด๋ผ๋ ์ด ์๋ธํธ๋ฆฌ์์ ์ฑ๊ณตํ ์ฌ๋ก๊ฐ ์๋ ๊ฒฝ์ฐ, $\pi^{-}(u, v_i) - \delta_M(u, v_i)$๋ฅผ ์๋๋ค.
- ๋ชจ๋ ์คํจํ ๊ฒฝ์ฐ, $\pi^{-}(u, v_i)$๋ฅผ ์๋๋ค.
์ด equivalence class๋, ์ง์ ํ subtree equivalence์ด๊ธฐ ๋๋ฌธ์, $v_j \in \pi_M(u, v_i)$ ์ธ ๊ฒฝ์ฐ, $v_j$๋ฅผ $v_i$๋์ ์ด์ฉํ๋ ๋ชจ๋ ์๋ฒ ๋ฉ์ด ๋์นญ์ ์ผ๋ก ์กด์ฌํฉ๋๋ค. ๋ฐ๋ผ์, $u \to v_j$ ๋งค์นญ์ ์์ ์๋ํ์ง ์๊ณ ๋ฒ๋ฆด ์ ์์ต๋๋ค.
Dynamic Equivalence ์์
์๋ ๊ทธ๋ฆผ๋ VEQ ๋ ผ๋ฌธ์ ๊ทธ๋ฆผ์ธ๋ฐ, ์ผ๋ถ๋ง ํด์ํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
$\pi_M(u_2, v_3)$ ์ ์๊ฐํด ๋ณด๊ฒ ์ต๋๋ค. (์ด equivalence Set์ ์์ ํ ์๋ ๊ฒ์ $u_2 \to v_3$ ์ชฝ์ ์๋ธํธ๋ฆฌ๋ฅผ ๋ชจ๋ ๋๊ณ ๋ ๋ค์ ๋๋ค) ํธ๋ฆฌ๋ฅผ ๊ด์ฐฐํด ๋ณด๋ฉด, $v_3$ ์ ๋งค์นญ๋๊ณ ์ถ์ดํด์ conflict๋ฅผ ๋ด๋ ๋ ธ๋ $u_5$ ๊ฐ ๋ณด์ ๋๋ค. ๋ฐ๋ผ์, $I_M(u_2, v_3) = \Set{(u_5, v_3)}$ ์ ๋๋ค. Conflict๊ฐ ๋ฐ์ํ ์ ์ด ์์ผ๋ฏ๋ก, $\pi^{-}(u_2, v_3)$ ์ ๊ณ์ฐํ ๋ $\pi(u_2, v_3)$ ์ $\pi(u_5, v_3)$์ intersection์ ๊ตฌํฉ๋๋ค. ์ด๋ figure 5๋ฅผ ๋ณด๊ณ ๊ตฌํ๋ฉด $\Set{v_4}$๊ณ , ์๋ธํธ๋ฆฌ์์ ์ฑ๊ณตํด๋ณธ ์ ์ด ์์ผ๋ฏ๋ก $\pi_M(u_2, v_3) = \pi^{-}(u_2, v_3) = \Set{v_4}$ ์ ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก $v_3 \equiv v_4$ ์ด๊ณ , $u_2 \to v_3$์์ ์ฑ๊ณตํด ๋ณธ ์ ์ด ์์ผ๋ฏ๋ก $u_2 \to v_4$๋ ์ฑ๊ณตํ๋ ์๋ฒ ๋ฉ์ด ์์์ ์๊ฒ ๋์ด ํ์ํ์ง ์๊ณ pruneํ ์ ์์ต๋๋ค.
์ด $\pi_M(u, v)$๊ฐ subtree equivalence์ ํ์์ถฉ๋ถ์ด๋ผ๋ ์ฆ๋ช ์ proceeding์ ๋ฐํ๋ ๋ฒ์ ์์๋ ๋น ์ ธ ์๋๋ฐ, ์ดํ์ ์ฆ๋ช ํ๊ฒ ๋๋ค๋ฉด ์ฑ์ ๋ฃ๊ฒ ์ต๋๋ค. ์ง๊ด์ ์ผ๋ก๋, ์ดํ์ ์๋ธํธ๋ฆฌ ๋งค์นญ ์๋์์ ์๊ธฐ๋ ๋ชจ๋ conflict์ equivalence๋ฅผ ๊ธฐ์ตํด์ ๋ฐ์ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ฆ๋ช ์ technicalํ๊ฒ ์ง๋ง ๊ทธ๋ ๊ฒ ์ด์ํ์ง๋ ์์๊ฒ ๊ฐ์ต๋๋ค.
์คํ (Performance Analysis)
์ด ๋ ผ๋ฌธ์ ์ ์๋ค์ VEQ ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ์กด์ SOTA ์๊ณ ๋ฆฌ์ฆ๋ค๊ณผ ๋น๊ตํ์ฌ ์ฑ๋ฅ์ ์ธก์ ํ๋ ์คํ์ ์คํํ๊ณ , ์ ๋์ ์ธ ์์ ์๊ฐ์ ๋ง์ด ์ค์ผ ์ ์์์ต๋๋ค. ํนํ, ์ฌ๋ฏธ์๋ ๊ฒฐ๊ณผ ๋ช๊ฐ์ง๋ง ์๊ฐํฉ๋๋ค. ๋น๊ต ๋์์ธ ์๊ณ ๋ฆฌ์ฆ๋ค์ ๊ฐ์ ํฐ ํ์ ๊ณต์ ํ๋ CFL-Match, DAF, GQL, RI์ Constraint programming ๊ธฐ๋ฐ์ Glasgow (์๊ฐ๋ง ๋น๊ต) ์ ๋๋ค.
- Matching order๋ ์ฐจ์นํ๊ณ , ๊ฒฐ๊ตญ์ ํํฐ๋ง์ ๋นก์ธ๊ฒ ๊ฑธ๊ณ ๋ฐฑํธ๋ํนํ๋๊ฒ ์๊ณ ๋ฆฌ์ฆ๋ค์ ํ์ ๋๋ค. ์ฌ๊ธฐ์, ํํฐ๋ง์ ์ด์ฌํ ํ ์๋ก ๋ฐฑํธ๋ํนํ ๊ฒ ์ ์๋ฐ, ๋ฐฑํธ๋ํน์ ์ต์ ์ ๊ฒฝ์ฐ ์ง์ ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง๋ง ํํฐ๋ง์ ์ด์จ๋ ๋คํญ์๊ฐ์ ํ ์ ์์ผ๋ฏ๋ก, ํํฐ๋ง ์๊ฐ์ด ํฌ๊ณ ๋ฐฑํธ๋ํน ์๊ฐ์ด ์๋ค๋ฉด ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ด ๋ฐ์ดํฐ์ ์ ๋ํด ์ข๋ stableํฉ๋๋ค. ์ด ์ ์์ VEQ๋ ํํฐ๋ง์ extended DP๋ก ๊ฐํ๊ฒ ํ๊ณ , Dynamic pruning์ผ๋ก ๋ฐฑํธ๋ํน ์๊ฐ์ ๋ง์ด ์ค์ด๊ธฐ ๋๋ฌธ์ ์ต์ 50%์์ ์ต๋ 95% ์ ๋์ ์๊ฐ์ ํํฐ๋ง์ ์ฐ๊ณ , ๋ฐฑํธ๋ํน์ ์ ๋ง ์ต์ํํฉ๋๋ค.
- ์ด๊ฒ์, Extended DP๋ฅผ ํ๊ธฐ ๋๋ฌธ์ด๊ธฐ๋ ํ์ง๋ง, ํํฐ๋ง ๊ฒฐ๊ณผ ์์ฒด์ ์ฐจ์ด๋ณด๋ค๋ ์คํ๋ ค ํํฐ๋ง ๊ณผ์ ์์ ์ป๋ Cell์ด๋ผ๋ ์์ฒญ๋๊ฒ ๊ฐํ ์ ๋ณด๋ฅผ ์ดํ์ ์ด์ฉํ ์ ์์๋ ์ ์ด ๊ฐ์ฅ ์ค์ํด ๋ณด์ ๋๋ค. ์ฆ, ๋คํญ์๊ฐ์ ํ ์์๋ ์ผ๋ค์ ์ต๋ํ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ์ ๊ฒ์ ๋๋ค.
- ์ค์ ๋ก, Dynamic Equivalence๋ฅผ ์ํํ์ฌ ๋ ๋ฆด ์ ์์๋ search space๊ฐ ๋ง์ ์ผ์ด์ค์์ 99% ๊ฐ๊น์ด ๋์ค๊ธฐ๋ ํฉ๋๋ค.
Thoughts
- Neighbor safety์์, ์ด ๋ ผ๋ฌธ์์๋ 1-neighbor๋ง์ ๊ณ ๋ คํ์ฌ safety๋ฅผ ๊ณ์ฐํฉ๋๋ค. ๋ ๋ง์, ์๋ฅผ๋ค์ด 2-neighbor (๊ฑฐ๋ฆฌ๊ฐ 2์ธ ๋ ธ๋๋ค๊น์ง) ๊น์ง ๊ณ ๋ คํ๋ฉด ๋ ๊ฐํ ํํฐ๋ง์ด ๊ฐ๋ฅํ ํ ๋ฐ, ๊ทธ๋ฌ์ง ์์ ์ด์ ๋ ์๋ง๋ ํํฐ๋ง์ ์์ํ๋ ์๊ฐ์ ๋นํด ํํฐ๋ง์ ํจ์ฉ์ด ํฌ์ง ์๋ค๊ณ ๋ณด์๊ธฐ ๋๋ฌธ์ผ ๊ฒ์ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด, label์ frequency๊ฐ ๋์ ๋ (์ฆ label frequency๊ฐ ์๊ฐ๋ณด๋ค ๋ ์ค์ํ ๋) ๋ ๊ณ ๋ คํ๋ neighbor์ ์๋ฅผ ๋ ๋๋ฆฌ๋ ๋ฐฉ์์ฒ๋ผ ๋ญ๊ฐ ๋ค์ด๋๋ฏนํ๊ฒ ๊ณ์ฐ๊ฐ๋ฅํ ํ๋ผ๋ฏธํฐ๋ฅผ ์ก์์๋ ์์๊น์?
- Equivalence๋ฅผ Hashing ๋ฑ์ ํตํด ์ ๊ด๋ฆฌํ๋ฉด ๋ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์์๊น์?