9 minute read

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

๋“ค์–ด๊ฐ€๋ฉฐ

์ง€๋‚œ ํฌ์ŠคํŠธ๋ถ€ํ„ฐ TurboIso ๋…ผ๋ฌธ์„ ์ฝ๊ณ  ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿƒโ€โ™‚๏ธ ๋…ผ๋ฌธ ๋„์ž…๋ถ€์—์„œ โ€œMatching Order๊ฐ€ ์ค‘์š”ํ•˜๋‹ค!โ€๋ผ๊ณ  ์ง€์  ํ–ˆ๋˜ ๊ฒƒ์ด ๊ธฐ์–ต ๋‚˜๋Š”๋ฐ์š”! ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” TurboIso ๋…ผ๋ฌธ์—์„œ ์ œ์‹œํ•œ Matching Order์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ณต์Šต

TurboIso๋Š” Subgraph Matching ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ณผ์ •์„ ์ˆ˜ํ–‰ ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ์ฟผ๋ฆฌ ๊ทธ๋ž˜ํ”„๋ฅผ NEC ํŠธ๋ฆฌ๋กœ ๋ณ€ํ™˜
  2. NEC ํŠธ๋ฆฌ๋ฅผ ๋”ฐ๋ผ DFS ํƒ์ƒ‰์„ ์ˆ˜ํ–‰
  3. ๊ฐ NEC ๋…ธ๋“œ๋งˆ๋‹ค ๋งค์นญ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ๋…ธ๋“œ๋ฅผ ์ˆ˜์ง‘, โ€œCandidate Subregionโ€์„ ์ƒ์„ฑ

Matching Order Selection

Matching Order is Important

์ฟผ๋ฆฌ ๊ทธ๋ž˜ํ”„ $q$๊ฐ€ $n$๊ฐœ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด, ๋งค์นญ์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ๊ทธ๋ž˜ํ”„์—์„œ ํƒ์ƒ‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒ€์ƒ‰ ๊ณต๊ฐ„(= ๊ฒฝ์šฐ์˜ ์ˆ˜)๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

\[\vert C(u_1) \vert \times \cdots \times \vert C(u_n) \vert\]

์ด๋•Œ, $C(u_i)$๋Š” ์ฟผ๋ฆฌ ๋…ธ๋“œ $u_i$์™€ ๋งค์นญ ๊ฐ€๋Šฅํ•œ ํ›„๋ณด ๋ฐ์ดํ„ฐ ๋…ธ๋“œ์˜ ์ง‘ํ•ฉ(Candidate Subregion) ์ž…๋‹ˆ๋‹ค.


์ข‹์€ ๋งค์นญ ์ˆœ์„œ๋Š” ์ค‘๊ฐ„ ๋‹จ๊ณ„์—์„œ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์ ๊ฒŒ ๋˜๋Š” ์ˆœ์„œ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์•ผ ํƒ์ƒ‰์ด ๋นจ๋ผ์ง€๊ณ , ๋งค์นญ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ƒํ™ฉ์„ ์กฐ๊ธฐ์— ํ™•์ธํ•˜๊ณ  ๊ณผ์ •์„ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SPath Selectivity

๊ธฐ์กด์˜ SPath(2010) ๋ฐฉ์‹์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ ํƒ๋„ ํ•จ์ˆ˜ $sel(p)$๋ฅผ ์ •์˜ํ•˜๊ณ , ์ด ์ค‘์—์„œ ๊ฐ€์žฅ ๋†’์€ ๊ฐ’์„ ๊ฐ–๋Š” ๊ฒฝ๋กœ $p$๋ฅผ ์„ ํƒํ•ด ์šฐ์„  ๋งค์นญ์„ ํ•ฉ๋‹ˆ๋‹ค.

\[sel(p) = \frac{2^{\vert V(p) \vert}}{\prod_{u \in V(p)} \vert C(u) \vert}\]

$p$๋Š” ์ฟผ๋ฆฌ ๊ทธ๋ž˜ํ”„ ์•ˆ์—์„œ์˜ ํƒ์ƒ‰ ๊ฒฝ๋กœ(= ๋งค์นญ ์˜ค๋”), $V(p)$๋Š” ๊ฒฝ๋กœ์— ํฌํ•จ๋œ ์ฟผ๋ฆฌ ๋…ธ๋“œ์˜ ์ง‘ํ•ฉ, ๊ทธ๋ฆฌ๊ณ  $\vert C(u) \vert$๋Š” ์ฟผ๋ฆฌ ๋…ธ๋“œ์— ๋งค์นญ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ๋…ธ๋“œ์˜ ๊ฐฏ์ˆ˜๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ ๊ฒฝ๋กœ $p$๋Š” ์ฟผ๋ฆฌ ํŠธ๋ฆฌ๋ฅด ์ˆœํšŒํ•˜๋Š” ์ˆœ์„œ๋ฅผ ๊ฒฝ๋กœ ๋ถ„ํ•ดํ•œ ์š”์†Œ ์ž…๋‹ˆ๋‹ค.

SPath์˜ ์„ ํƒ๋„ ํ•จ์ˆ˜๋Š” ์ข‹์€ ๊ฒฝ๋กœ๋ฅผ ์ˆ˜์น˜ํ™” ํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ,

  • ๋ถ„์ž $2^{\vert V(p) \vert}$
    • ๊ฒฝ๋กœ $p$์— ํฌํ•จ๋œ ์ •์  ์ˆ˜๊ฐ€ ๋งŽ์„์ˆ˜๋ก ์ข‹๋‹ค.
    • ๋” ๊ธด ๊ฒฝ๋กœ๋ฅผ ๋งค์นญํ•˜๋ฉด, ํ•„ํ„ฐ๋ง์ด ๋” ์ž˜ ์ผ์–ด๋‚˜์„œ ๊ฒฐ๊ณผ๋ฅผ ๋นจ๋ฆฌ ์ขํž ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
  • ๋ถ„๋ชจ $\prod \vert C(u) \vert$
    • ๊ฐ ์ฟผ๋ฆฌ ๋…ธ๋“œ์˜ ํ›„๋ณด ๊ฐฏ์ˆ˜์˜ ๊ณฑ
    • ํ›„๋ณด๊ฐ€ ๋งŽ์œผ๋ฉด, ๋งŽ์„์ˆ˜๋ก ๋งค์นญ์ด ์–ด๋ ค์›Œ์ง„๋‹ค.
    • ์„ ํƒ๋„๊ฐ€ ๋‚ฎ์•„์ง€๋„๋ก ํ•œ๋‹ค.

TurboIso๋Š” SPath์˜ ์ด ์„ ํƒ๋„ ํ•จ์ˆ˜๊ฐ€ ์ ์ ˆํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ง€์  ํ•ฉ๋‹ˆ๋‹ค.
(์ œ๊ฐ€ SPath์— ๋Œ€ํ•œ ๋…ผ๋ฌธ์„ ์ฝ์€๊ฒŒ ์•„๋‹ˆ๋ผ์„œ SPath์˜ ํ•จ์ˆ˜๊ฐ€ ์ž˜ ์™€๋‹ฟ์ง€ ์•Š๋„ค์š”โ€ฆ ใ… ใ… , ์ผ๋‹จ ์ œ๊ฐ€ ๋А๋ผ๊ธฐ๋กœ๋Š” ์„œ๋กœ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ๋กœ์— ๋Œ€ํ•ด์„œ ์œ„์˜ ์„ ํƒ๋„ ํ•จ์ˆ˜๋กœ๋Š” ๋‘ ๊ฒฝ๋กœ๋ฅผ ๋น„๊ตํ•˜๋Š”๊ฒŒ ์ž˜ ์•ˆ ๋  ๊ฒƒ ๊ฐ™๋‹ค๋Š” ๋А๋‚Œ ์ •๋„๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿค”)

Note that the denominator represents the join cardinality of the candidate sets for all query vertices in $p$. However, this over-estimate leads to significant errors in estimating the join cardinality.

๋‹จ์ˆœํžˆ ๊ฐ ์ฟผ๋ฆฌ ์ •์ ์„ ๊ณฑํ•˜๋Š” ๊ฑด, ์ง„์งœ ๋งค์นญ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ์˜ ์ˆ˜(Join Cardinality)๋ฅผ ๊ณผ๋Œ€ ํ‰๊ฐ€ํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋งค์นญ ํ›„๋ณด $C(u)$ ์ „๋ถ€๊ฐ€ ๋งค์นญ๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์ด์ฃ ! ๊ฒฐ๊ตญ, SPath์—์„œ ๋ถ„๋ชจ ๋ถ€๋ถ„์€ Maximum Join Cardinality๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ ํƒ๋„๋ฅผ ์ •์˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ถ€์ •ํ™•ํ•œ ์„ ํƒ๋„ ๊ณ„์‚ฐ์ด ์ด๋ค„์ง„๋‹ค๋Š” ์ ์„ ์ง€์ ํ•ฉ๋‹ˆ๋‹ค.

TurboIso Selectivity

SPath ์„ ํƒ๋„์˜ ๋‹จ์ ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด, TurboIso๋Š” ์ง์ ‘ ํ›„๋ณด ์˜์—ญ์„ ํƒ์ƒ‰ํ•˜๊ณ , ํ›„๋ณด ์ •์ ์˜ ์ˆ˜๋ฅผ ์นด์šดํŠธ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ด๋ก ์ ์ธ ์ถ”์ •์ด ์•„๋‹ˆ๋ผ ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  SPath์—์„œ ์‚ฌ์šฉํ•˜๋Š” $C(u)$๋Š” ์ „์ฒด ๋ฐ์ดํ„ฐ ๊ทธ๋ž˜ํ”„ ์ƒ์—์„œ ๋งค์นญ ๊ฐ€๋Šฅํ•œ ๋…ธ๋“œ์˜ ์ง‘ํ•ฉ์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋ฒ”์œ„๊ฐ€ ๋ฐ์ดํ„ฐ ๊ทธ๋ž˜ํ”„ ์ „์ฒด ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ TurboIso์—์„œ๋Š” โ€œ๋งค์นญ์ด ์ผ์–ด๋‚  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๋ถ€๋ถ„โ€๋งŒ์œผ๋กœ Candidate Region์„ ์ •์˜ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋” ๊ฒฌ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, $\vert C(u) \vert$ ๋Œ€์‹  $\vert CR_i(uโ€™, -) \vert$๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


์ฟผ๋ฆฌ ๊ทธ๋ž˜ํ”„๋ฅผ ์ˆœํšŒํ•˜๋Š” ๊ณผ์ •์€ 3๊ฐ€์ง€ ๊ฒฝ๋กœ($p_1$, $p_2$, $p_3$)๋กœ ๊ฒฝ๋กœ ๋ถ„ํ•ด ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ๊ฐ ๊ฒฝ๋กœ์˜ ๋ฆฌํ”„ ๋…ธ๋“œ $u_2$, $u_3$, $u_4$์™€ ๋งค์นญ๋˜๋Š” ๋ฐ์ดํ„ฐ ๋…ธ๋“œ์˜ ๊ฐฏ์ˆ˜๊ฐ€ Candidate Region ๋ณ„๋กœ ๊ณ„์‚ฐ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค: $\vert CR_1(uโ€™, -) \vert$.

Subgraph Matching์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด, ๋ฆฌํ”„ ๋…ธ๋“œ์˜ ๋งค์นญ ํ›„๋ณด๊ฐ€ ๊ฐ€์žฅ ์ ์€ ๊ฒฝ๋กœ๋ถ€ํ„ฐ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. $CR_1$ ์˜์—ญ์— ๋Œ€ํ•ด ์ˆ˜ํ–‰ํ•  ๋•Œ๋Š”, $p_3$๋ถ€ํ„ฐ ์„ ํƒํ•ด ๋งค์นญ์„ ํ™•์ธํ•˜๊ณ , $CR_2$ ์˜์—ญ์—์„œ๋„ $p_3$๋ถ€ํ„ฐ ์„ ํƒํ•ด ๋งค์นญ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

$p_3$์— ๋Œ€ํ•œ ๋งค์นญ์„ ํ™•์ธํ•˜๊ณ  ๋‚˜๋ฉด, ๊ทธ ๋‹ค์Œ์œผ๋กœ ๋งค์นญ ํ›„๋ณด๊ฐ€ ์ ์€ ๊ฒฝ๋กœ๋ฅผ ์„ ํƒ ํ•ฉ๋‹ˆ๋‹ค. $CR_1$์—์„œ๋Š” $p_1$์„, $CR_2$์—์„œ๋Š” $p_2$๋ฅผ ์„ ํƒ ํ•ฉ๋‹ˆ๋‹ค. ์ข…ํ•ฉํ•˜๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

\[\begin{aligned} CR_1&: p_3 \rightarrow p_1 \rightarrow p_2 \\ CR_2&: p_3 \rightarrow p_2 \rightarrow p_1 \\ \end{aligned}\]

์ˆœ์„œ๋กœ ๋งค์นญ ์˜ค๋”๊ฐ€ ๊ฒฐ์ • ๋ฉ๋‹ˆ๋‹ค.

When non-tree edge exist

NEC ๋…ธ๋“œ $uโ€™$์— ๋Œ€ํ•ด $j$๊ฐœ์˜ non-tree ์—ฃ์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค๊ณ  ํ•˜์ž. ๊ทธ๋Ÿฌ๋ฉด, $uโ€™$์— ๋Œ€ํ•œ Candidate vertex์˜ ๊ฐฏ์ˆ˜๋ฅผ $(j+1)$๋กœ ๋‚˜๋ˆ ์ค๋‹ˆ๋‹ค.

๋…ผ๋ฌธ์—์„œ ์˜ˆ์‹œ๋„ ๋“ค์–ด์ฃผ๊ธด ํ–ˆ๋Š”๋ฐ, ๋ญ” ๋ง์ธ์ง€ ์ „ํ˜€ ๋ชจ๋ฅด๊ฒ ๋„ค์š” ใ… ใ… 

When NEC vertex contains many vertices

NEC ๋…ธ๋“œ์— ์—ฌ๋Ÿฌ ์ฟผ๋ฆฌ ๋…ธ๋“œ๊ฐ€ ๋Œ€์‘ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ, NEC ํŠธ๋ฆฌ ์ƒ์—์„œ๋Š” ๊ฒฝ๋กœ๊ฐ€ ํ•˜๋‚˜์ง€๋งŒ, ์‹ค์ œ ์ฟผ๋ฆฌ ๊ทธ๋ž˜ํ”„์—์„œ๋Š” ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ๊ฐ€ ์ค‘์ฒฉ๋˜์–ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, Fig 3์—์„œ NEC์—์„œ ๊ฒฝ๋กœ $uโ€™_1 \rightarrow uโ€™_3$๋Š” ๋‹จ์ผ ๊ฒฝ๋กœ ์ด์ง€๋งŒ, ์ฟผ๋ฆฌ ๊ทธ๋ž˜ํ”„์—์„œ๋Š” ์ด๊ฒƒ์ด $u_1 \rightarrow u_3$์™€ $u_1 \rightarrow u_4$ ๋‘ ๊ฐœ์— ํ•ด๋‹น ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‹จ์ˆœํžˆ $\vert CR(uโ€™_3, -) \vert$๋งŒ ๋ณด๊ณ  ํŒ๋‹จํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฒฝ์šฐ๋Š” $CR(uโ€™_3, -) = \left\{ v_2, v_3, v_4, v_5 \right\}$ ์ค‘์—์„œ NEC ๋…ธ๋“œ์˜ ํฌ๊ธฐ ๋งŒํผ์„ ๋ฝ‘๋Š” โ€œ์กฐํ•ฉ(combination)โ€์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

\[{\vert CR(u'_3, -) \vert \choose \vert u'_3.NEC \vert} = {4 \choose 2} = 6\]

์ด ๋ฉ๋‹ˆ๋‹ค.


๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฐฉ์‹์€ ๊ฒฝ๋กœ $p$์˜ ๋ฆฌํ”„ ๋…ธ๋“œ์˜ NEC ๋…ธ๋“œ๊ฐ€ ๋‹ค์ค‘ ์ฟผ๋ฆฌ ๋…ธ๋“œ์ธ ๊ฒฝ์šฐ๋งŒ, ์ด๋ ‡๊ฒŒ ํ•ธ๋“ค๋ง ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฝ๋กœ์˜ ์ค‘๊ฐ„ NEC๊ฐ€ ๋‹ค์ค‘ ์ฟผ๋ฆฌ ๋…ธ๋“œ์ธ ๊ฒฝ์šฐ๋Š” ์‹ค์ œ ๋งค์นญ ์ˆ˜๋ฅผ ์ •ํ™•ํžˆ ์•Œ ์ˆ˜ ์—†๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์œ„์—์„œ ์‚ฌ์šฉํ•œ ์กฐํ•ฉ์‹๋„ ์ •ํ™•ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด, $u_3$์™€ $u_v$๋Š” ๊ฐ™์€ DFS ๊ฒฝ๋กœ ์ƒ์—์„œ ๊ฐ™์€ ๋ถ€๋ชจ ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ๋‚ด๋ ค์™€์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ, ๋‘ ๊ฒฝ๋กœ๊ฐ€ ๋‹ค๋ฅธ ๋ถ€๋ชจ ๋…ธ๋“œ์—์„œ ๋‚ด๋ ค์˜จ๋‹ค๋ฉด, over-estimate๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ TurboIso์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ตœ์ข… ๋ณด์ •์‹์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

\[\sum_{v \, \in \, CR(P(u'), -)} {\vert CR(u', v) \vert \choose \vert u'.NEC \vert }\]

๊ฐ ์š”์†Œ๋ฅผ ์„ค๋ช…ํ•˜๋ฉด,

  • $P(uโ€™)$๋Š” NEC ๋…ธ๋“œ์˜ ๋ถ€๋ชจ ๋…ธ๋“œ ์ž…๋‹ˆ๋‹ค.
  • $CR(P(uโ€™), -)$๋Š” ๊ทธ ๋ถ€๋ชจ ๋…ธ๋“œ์— ๋งค์นญ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ์ •์ ์˜ ์ง‘ํ•ฉ ์ž…๋‹ˆ๋‹ค.
  • $CR(uโ€™, v)$๋Š” ๋ถ€๋ชจ ๋ฐ์ดํ„ฐ ์ •์  $v$์— ์—ฐ๊ฒฐ๋œ ์ž์‹ ๋ฐ์ดํ„ฐ ์ •์ ๋“ค ์ค‘, $uโ€™$์— ๋งค์นญ ๊ฐ€๋Šฅํ•œ ๊ฒƒ๋“ค์˜ ๋ชจ์ž„ ์ž…๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•ด์„œ, ๊ฐ™์€ ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ๊ฐ€์งˆ ๋•Œ์˜ ์กฐํ•ฉ์„ ๊ณ„์‚ฐํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๋งบ์Œ๋ง

์‚ฌ์‹ค ๋’ค์— ์ข€๋” ๋‚ด์šฉ์ด ๋‚จ์•˜๋Š”๋ฐ์š”! TurboIso(2013)๋Š” ์ง€๊ธˆ 2025๋…„ ๊ธฐ์ค€์œผ๋กœ๋Š” ์˜›๋‚  ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๊ณ , TurboFlux(2018)๊ณผ SymBi(2021) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฐ๊ฒฝ ์ง€์‹์„ ์–ป๊ธฐ ์œ„ํ•ด ์ด ์ •๋„๋งŒ ์ฝ๊ณ  ๋งˆ๋ฌด๋ฆฌ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

TurboIso์— ๋‚˜์™”๋˜

  • NEC
  • Candidate Region
  • NLF Filter
  • Matching Order
  • Selectivity

๋“ฑ๋“ฑ์˜ ๋‚ด์šฉ์€ ๋‹ค๋ฅธ Subgraph Matching ๋…ผ๋ฌธ๊ณผ ๊ทธ๋ž˜ํ”„ ๊ด€๋ จ ์—ฐ๊ตฌ๋ฅผ ํ•  ๋•Œ, ์ข‹์€ ์ธ์‚ฌ์ดํŠธ๊ฐ€ ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค ใ…Žใ…Ž