16 minute read

2025๋…„ ์ €๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋žฉ์— ์ปจํƒํ•˜์—ฌ ํ•™๋ถ€ ์กธ์—… ์—ฐ๊ตฌ ์ฃผ์ œ๋ฅผ ๋ฐ›์•„์„œ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ €์˜ ์ฃผ์ œ๋Š” โ€œContinuous Subgraph Matchingโ€๊ณผ ๊ด€๋ จํ•ด ์ฝ”๋“œ๋ฅผ ์ตœ์ ํ™” ํ•˜๊ณ  ๊ฐœ์„ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ทธ๋ž˜ํ”„ ์ฟผ๋ฆฌ ๊ด€๋ จ ๋…ผ๋ฌธ์„ ์ฝ๊ณ , C++ ์ฝ”๋“œ๋ฅผ ํŠœ๋‹ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์กธ์—… ๋งˆ์ง€๋ง‰ ํ•™๊ธฐ์— ๋“ฃ๋Š” ์ˆ˜์—…์ธ๋ฐ ๋งŽ์€ ๋…ธํ•˜์šฐ์™€ ๊ฒฝํ—˜์„ ์Œ“๊ณ  ์กธ์—…ํ•˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ใ…Žใ…Ž

Matching Algorithm

DCS ๊ตฌ์กฐ ์œ„์—์„œ ๋ชจ๋“  positive/negative ๋งค์นญ์„ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

์•„์ด๋””์–ด๋Š” โ€œPartial Embeddingโ€์—์„œ ์‹œ์ž‘ํ•ด ๊ทธ๊ฒŒ โ€œFull Embeddingโ€์ด ๋ ๋•Œ๊นŒ์ง€ ์ ์  ํ‚ค์›Œ๊ฐ€๋Š” ์ „๋žต ์ž…๋‹ˆ๋‹ค.

Extendable vertex

Partial Embedding์„ ํ™•์žฅํ•  ๋•Œ, ์•„๋ฌด ๋…ธ๋“œ๋งŒ ์„ ํƒํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ Embedding ํ™•์žฅ์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ โ€œExtendable vertexโ€๋ผ๊ณ  ์ •์˜ ํ•ฉ๋‹ˆ๋‹ค.

Given a partial embedding $M$, a vertex $u$ of query graph $q$ is called โ€œextendableโ€

  1. if $u$ is not mapped to a vertex of $g$ in $M$
  2. at least one neighbor of $u$ is mapped to a vertex of $g$ in $M$

์ •์˜๋Š” ์•„์ฃผ ์ง๊ด€์ ์ธ๋ฐ, (1) ์•„์ง ๋งคํ•‘๋˜์ง€ ์•Š์€ ๋…ธ๋“œ ์—ฌ์•ผ ํ•˜๊ณ , (2) ์ด๋ฏธ ๋งคํ•‘๋œ ๋…€์„๊ณผ ์—ฐ๊ฒฐ ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Extendable Candidates $C_M(u)$

Partial Embedding์„ ํ™•์žฅํ•  ์ฟผ๋ฆฌ ๋…ธ๋“œ๋ฅผ ๊ณ ๋ฅธ ๋‹ค์Œ์—๋Š” ๊ทธ ์ฟผ๋ฆฌ ๋…ธ๋“œ๋ฅผ ๋ฐ์ดํ„ฐ ๊ทธ๋ž˜ํ”„์˜ ๋…ธ๋“œ ์ค‘ ์–ด๋–ค ๋…€์„์— ๋งคํ•‘ํ• ์ง€๋„ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋‹จ ๋งคํ•‘ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ๋…ธ๋“œ๋„ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ์„ ํ…๋ฐ, ๊ทธ๊ฑธ โ€œExtendable Candidateโ€๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

Given a query vertex $u$, a data vertex $v$ is its โ€œextendable candidateโ€

if $v$ satisfies the following conditions

  • $D_2[u, v] = 1$
    • i.e. itโ€™s not filtered in the DCS structure
  • For all matched neighbors $uโ€™$ of $u$, $(M(uโ€™), v) \in E(g)$
    • i.e. preserve the connectivity

์ด ์ •์˜๋„ ์•„์ฃผ ์ง๊ด€์ ์ด๋‹ค. ์ผ๋‹จ ์šฐ๋ฆฌ๊ฐ€ DCS์—์„œ ์—ด์‹ฌํžˆ ๊ตฌํ•œ $D_2$ ๊ฐ’์ด 1์ด์–ด์•ผ ํ•œ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ๋ชจ๋‘ ์ด๊ฑธ ์œ„ํ•ด์„œ $N^2_C$, \(N^2_{CC}\)๋ฅผ ์ •์˜ํ•œ ๊ฒƒ์ด๋‹ค ใ…‹ใ…‹

๊ทธ๋ฆฌ๊ณ  ์ง€๊ธˆ๊นŒ์ง€ Partial Embedding์— ์žˆ๋˜ ์ฟผ๋ฆฌ ๋…ธ๋“œ๊ฐ€ ๋งคํ•‘ํ•œ ๋ฐ์ดํ„ฐ ๋…ธ๋“œ $M(uโ€™)$์™€ ์ƒˆ๋กœ ๋งคํ•‘ํ•˜๋ ค๋Š” ๋ฐ์ดํ„ฐ ๋…ธ๋“œ $v$ ์‚ฌ์ด์˜ ์—ฐ๊ฒฐ์„ฑ์ด ๋ฐ์ดํ„ฐ ์—ฃ์ง€๋กœ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค. (๋‹น์—ฐ ใ…‹ใ…‹)


์ด Extendable Candidates๋ฅผ $C_M(u)$๋ผ๊ณ  ํ‘œ๊ธฐํ•˜๊ณ , ์ˆ˜ํ•™์ ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์ ์Šต๋‹ˆ๋‹ค.

\[C_M(u) = \left\{ v \; : \; v \in C(u) \quad \text{and} \quad D_2[u, v] = 1 \quad \text{and} \quad \forall u' \in \text{Nbr}_M(u), \; (M(u'), v) \in E(g) \right\}\]

ํ‘œ๊ธฐ์—์„œ $\text{Nbr}_M(u)$๋Š” ์ฟผ๋ฆฌ ๋…ธ๋“œ $u$์™€ ์ด์›ƒํ•œ ๋…ธ๋“œ ์ค‘์—์„œ ์ด๋ฏธ ๋งคํ•‘ $M$์— ํฌํ•จ๋œ ๊ฒƒ๋“ค์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

์ ์  ๋“ฑ์žฅํ•˜๋Š” ๊ธฐํ˜ธ๋“ค์ด ๋งŽ์•„์ง€๋ฉด์„œ ๋…ผ๋ฌธ์„ ์ฝ์„ ๋•Œ ํ—ท๊ฐˆ๋ฆฌ๋”๋ผ๊ตฌ์š” ใ…‹ใ…‹ ๋ช…ํ™•ํžˆ ํ•˜๊ธฐ ์œ„ํ•ด ์ •๋ฆฌํ•˜๋ฉด

  • ๋‹น์—ฐํžˆ $\text{Nbr}_M(u) \subseteq \text{Nbr}(u)$ ์ž…๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ๋‹น์—ฐํžˆ $C_M(u) \subseteq C(u)$ ์ž…๋‹ˆ๋‹ค.

Find Matches

๊ทธ๋ž˜์„œ Partial Embedding์„ ํ™•์žฅํ•˜๋Š” ์ ˆ์ฐจ๋ฅผ ๊ฐ„๋‹จํžˆ ๊ธฐ์ˆ ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์ฃผ์–ด์ง„ Partial Embedding์—์„œ Extendable ๋ชจ๋“  ์ฟผ๋ฆฌ ๋…ธ๋“œ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
  2. ๊ทธ์ค‘ ํ•˜๋‚˜์˜ ์ฟผ๋ฆฌ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    • ์ด๋•Œ, Extendable ์—ฌ๋Ÿฌ ์ฟผ๋ฆฌ ๋…ธ๋“œ ์ค‘์—์„œ ์–ด๋–ค ๊ฑธ ์„ ํƒํ• ์ง€๋„ ์ค‘์š” ํ•ฉ๋‹ˆ๋‹ค.
    • ๋žœ๋คํ•˜๊ฒŒ ์„ ํƒํ•  ์ˆ˜๋„ ์žˆ๊ณ ,
    • ๊ฐ€์น˜๋ฅผ ํ‰๊ฐ€ํ•œ ํ›„ โ€œMatching Orderโ€๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ ์„ ํƒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. Extendable ์ฟผ๋ฆฌ ๋…ธ๋“œ๋ฅผ ์„ ํƒ ํ–ˆ๋‹ค๋ฉด, ๋ฐ์ดํ„ฐ ๊ทธ๋ž˜ํ”„์—์„œ๋„ โ€œExtendable ํ›„๋ณดโ€๋“ค์„ ์ฐพ๋Š”๋‹ค.
  4. ๋ชจ๋“  Extendable ํ›„๋ณด๋“ค์„ ์ˆœํšŒํ•˜๋ฉฐ, ์ด๋ฅผ Partial Embedding์— ํฌํ•จํ•˜์—ฌ ํ™•์žฅ ์‹œํ‚จ๋‹ค.
  5. [1-4] ๊ณผ์ •์„ ๋ฐ˜๋ณต ํ•œ๋‹ค.

๋…ผ๋ฌธ์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ œ์‹œ ํ•ฉ๋‹ˆ๋‹ค.

์ง€๊ธˆ์€ ์ด ๊ณผ์ •์ด ์žฌ๊ท€์˜ ํ˜•ํƒœ๋กœ ์ง„ํ–‰๋œ๋‹ค๋Š” ๊ฒƒ๋งŒ ํ™•์ธ ํ•ฉ๋‹ˆ๋‹ค.

Extendable Partial Candidates

Extendable Candidate $C_M(u)$๋Š” ์ฟผ๋ฆฌ ๋…ธ๋“œ $u$๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ์ด๊ฒƒ์— ๋Œ€ํ•œ ๋งคํ•‘ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ๋…ธ๋“œ๋ฅผ ์ฐพ์€ ๊ฒƒ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

\[C_M(u) = \left\{ v \; : \; v \in C(u) \quad \text{and} \quad D_2[u, v] = 1 \quad \text{and} \quad \forall u' \in \text{Nbr}_M(u), \; (M(u'), v) \in E(g) \right\}\]

์ด๊ฒƒ์„ ๋ณ€ํ˜•ํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ณด์กฐ ์ง‘ํ•ฉ์„ ์ •์˜ ํ•ฉ๋‹ˆ๋‹ค.

๋…ผ๋ฌธ์—์„œ๋Š” $S[u, uโ€™]$๊ฐ€ ์•„๋‹ˆ๋ผ $S_{uโ€™}$๋ผ๊ณ  ํ‘œ๊ธฐํ•˜์ง€๋งŒ, ์ €๋Š” ํ‘œ๊ธฐ๊ฐ€ ๋„ˆ๋ฌด๋„ˆ๋ฌด ํ—ท๊ฐˆ๋ ค์„œ ์ด ๋ถ€๋ถ„๋„ ์ €๋งŒ์˜ ํ‘œ๊ธฐ๋กœ ์ž‘์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฆ„๋„ ๋…ผ๋ฌธ์—์„œ๋Š” ๋ถ€์—ฌํ•œ ์ ์ด ์—†์ง€๋งŒ ์ €๋Š” ์ง€์นญ์„ ์ข€ ํ•˜๊ณ  ์‹ถ์–ด์„œ โ€œExtendable Partial Candidateโ€๋ผ๊ณ  ์ด๋ฆ„ ๋ถ™์˜€์Šต๋‹ˆ๋‹ค. (๊ธธ๋‹ค๊ธธ๋‹คโ€ฆ)

์ฟผ๋ฆฌ ๋…ธ๋“œ $u$์™€ ๊ทธ๊ฒƒ์˜ ์ด์›ƒ $uโ€™ \in \text{Nbr}_M(u)$๊ฐ€ ์žˆ์„ ๋•Œ, ๋งคํ•‘ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ๋…ธ๋“œ์˜ ์ง‘ํ•ฉ์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ •์˜ํ•œ๋‹ค.

\[S[u, u'] = \left\{ v \; : \; v \in C(u) \quad \text{and} \quad D_2[u, v] = 1 \quad \text{and} \quad (M(u'), v) \in E(g) \right\}\]

์ด๋•Œ, $S[u, uโ€™]$์˜ ์ง‘ํ•ฉ์ด $C_M(u)$๋ณด๋‹ค ํฐ ์ง‘ํ•ฉ ์ž…๋‹ˆ๋‹ค.

\[\forall u' \in \text{Nbr}_M(u), \quad C_M(u) \subseteq S[u, u']\]

๊ทธ๋ฆฌ๊ณ 

\[C_M(u) = \bigcap_{u' \in \text{Nbr}_M(u)} S[u, u']\]

์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ์‚ดํŽด๋ด…์‹œ๋‹ค.

๋…ผ์˜์˜ ํŽธ์˜๋ฅผ ์œ„ํ•ด ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๋…ธ๋“œ๋Š” $D_2 = 1$๋ผ๊ณ  ๊ฐ€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. (๋ฌผ๋ก  ์˜ˆ์‹œ๋กœ ๊ทธ๋ฆฐ ๊ทธ๋ฆผ์—์„œ๋Š” $v_2$์— ๋Œ€ํ•ด $D_2 \ne 1$์ด์ง€๋งŒ!)

์ด ๊ฒฝ์šฐ, $S[u_3, u_1]$๊ฐ€ ๋” ํฐ ๊ฐ€๋Šฅํ•œ ์ง‘ํ•ฉ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ $S[u_3, u_1]$๋Š” $(u_1, u_3) \in E(q)$ ์‚ฌ์ด ์—ฐ๊ฒฐ์„ฑ๋งŒ ๊ณ ๋ คํ•ด์„œ Extendable candidates๋ฅผ ์ฐพ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ $C_M(u)$๋Š” ์ด๋Ÿฐ ๊ฒƒ๋“ค์˜ ๋ชจ๋“  ๊ณตํ†ต ๋ถ„๋ชจ๋ฅผ ๋ชจ์€ ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์•ผ ๋ชจ๋“  ์ด์›ƒ $uโ€™ \in \text{Nbr}_M(u)$์— ๋Œ€ํ•ด์„œ ์—ฐ๊ฒฐ์„ฑ์ด ๋ณด์กด๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

Improved Extendable Candidates Computing

์—ฌ๊ธฐ์—์„œ ๊ฐ€์žฅ ์ž‘์€ ํฌ๊ธฐ๋ฅผ ๊ฐ–๋Š” โ€œExtendable Partial Candidateโ€๋ฅผ ์ฐพ์•„์„œ ๊ทธ ์ด์›ƒ ์ฟผ๋ฆฌ ๋…ธ๋“œ $uโ€™$๋ฅผ $u_{min}$๋ผ๊ณ  ์ •์˜ ํ•ฉ๋‹ˆ๋‹ค.

\[u_{min} = \underset{u' \in \text{Nbr}_M(u)}{\text{argmin}} \left\vert S[u, u'] \right\vert\]

์˜ค์ผ€์ด! ๊ทธ๋Ÿฐ๋ฐ $u_{min}$์„ ์™œ ์ •์˜ํ•œ ๊ฑธ๊นŒ์š”โ€ฆ?? ๊ทธ ์ด์œ ๋Š” $C_M(u)$๊ฐ€ ๋ชจ๋“  $S[u, uโ€™]$์˜ โ€œ๊ต์ง‘ํ•ฉโ€œ์œผ๋กœ ์ •์˜๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค! ๊ทธ๋ž˜์„œ ๊ฐ€์žฅ ์ž‘์€ ์ง‘ํ•ฉ์„ ๋งŒ๋“œ๋Š” ์ฟผ๋ฆฌ ๋…ธ๋“œ๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด, ๊ทธ ๋…€์„์ด ๋งŒ๋“ค์–ด๋‚ด๋Š” Partial Candidates๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์‹ค์ œ๋กœ Extendable Candidates $C_M(u)$๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ํšจ์œจ์ ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค!

๊ทธ๋ž˜์„œ $C_M(u)$์— ๋Œ€ํ•œ ์‹์ด ๊ธฐ์กด์‹์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐ”๋€๋‹ˆ๋‹ค.

[๊ธฐ์กด ๋ฒ„์ „]

\[C_M(u) = \left\{ v \; : \; v \in C(u) \quad \text{and} \quad D_2[u, v] = 1 \quad \text{and} \quad \forall u' \in \text{Nbr}_M(u), \; (M(u'), v) \in E(g) \right\}\]

[๊ฐœ์„ ๋œ ๋ฒ„์ „]

\[C_M(u) = \left\{ v \; : \; v \in S[u, u_{min}] \quad \text{and} \quad D_2[u, v] = 1 \quad \text{and} \quad \forall u' \in \text{Nbr}_M(u), \; (M(u'), v) \in E(g) \right\}\]

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ธฐ์กด์˜ ํƒ์ƒ‰ ๊ณต๊ฐ„์ด \(O(C(u) \times \text{Nbr}_M(u))\)์—์„œ $O(S[u, u_{min}] \times \text{Nbr}_M(u))$์œผ๋กœ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค!

์ฐธ๊ณ ๋กœ ๋…ผ๋ฌธ์—์„œ๋Š” $S[u, u_{min}]$์„ $S_{min}[u]$๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

Relation with Child Candidate Array $N^2_{CC}$

DCS ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•ด ๊ณ„์‚ฐ ํ–ˆ๋˜ Child Candidate ๊ฐฏ์ˆ˜๊ฐ€ ์ €์žฅ๋œ $N^2_{CC}$์˜ ์ •์˜์™€ ๊ฐ’์„ ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค.

$N^2_{CC}[u, v, u_c]$์—๋Š” DCS์˜ ๋…ธ๋“œ $<u, v>$์™€ ์—ฐ๊ฒฐ๋œ $C(u_c)$ ์ค‘์—์„œ $D_2[u_c, v_c] = 1$์ธ $v_c$ ๋“ค์˜ ๊ฐฏ์ˆ˜ ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ DCS์˜ ๋…ธ๋“œ $<uโ€™, M(uโ€™)>$์™€ ์—ฐ๊ฒฐ๋œ $C(u)$ ์ค‘์—์„œ $D_2[u, v] = 1$์ธ $v$์˜ ๊ฐฏ์ˆ˜๋ฅผ ์ €์žฅํ•œ ๊ฒƒ์€ $N^2_{CC}[uโ€™, M(uโ€™), u]$๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ, ์ž ๊น!!! โ€œ์ด๊ฒƒ์€ $S[uโ€™, u]$์˜ ์ •์˜์™€ ์ •ํ™•ํžˆ ์ผ์น˜โ€ ํ•ฉ๋‹ˆ๋‹ค! ๋”ฐ๋ผ์„œ ์•„๋ž˜์˜ ๋“ฑ์‹์ด ์„ฑ๋ฆฝ ํ•ฉ๋‹ˆ๋‹ค.

\[\vert S[u, u'] \vert = N^2_{CC} [u', M(u'), u]\]

๊ทธ๋Ÿผ ์ด์ œ $u_{min}$ ์ฟผ๋ฆฌ ๋…ธ๋“œ๋ฅผ ์ฐพ๋Š” ๊ฒƒ๋„ ์ง‘ํ•ฉ ์‚ฌ์ด์ฆˆ๋ฅผ ์ง์ ‘ ๊ตฌํ•  ํ•„์š” ์—†์ด ๊ธฐ์กด์— ๊ณ„์‚ฐ ํ–ˆ๋˜ $N^2_{CC}$์˜ ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฐพ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค!

์ด์ œ ๋…ผ๋ฌธ์—์„œ ์ฝ”๋“œ๋กœ ์ œ์‹œ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ดํŽด๋ด…์‹œ๋‹ค!

์ง€๊ธˆ๊ฐ€์ง€ ์„ค๋ช…ํ•œ ๋‚ด์šฉ์ด ์ž˜ ๋‹ด๊ฒจ ์žˆ์ฃ ?? ใ…Žใ…Ž

Matching Order

Partial Embedding์„ ํ™•์žฅํ•˜๋Š” ๊ณผ์ •์„ ๋‹ค์‹œ ๋ด…์‹œ๋‹ค.

  1. ์ฃผ์–ด์ง„ Partial Embedding์—์„œ Extendable ๋ชจ๋“  ์ฟผ๋ฆฌ ๋…ธ๋“œ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
  2. ๊ทธ์ค‘ ํ•˜๋‚˜์˜ ์ฟผ๋ฆฌ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    1. ์ด๋•Œ, Extendable ์—ฌ๋Ÿฌ ์ฟผ๋ฆฌ ๋…ธ๋“œ ์ค‘์—์„œ ์–ด๋–ค ๊ฑธ ์„ ํƒํ• ์ง€๋„ ์ค‘์š” ํ•ฉ๋‹ˆ๋‹ค.
    2. ๋žœ๋คํ•˜๊ฒŒ ์„ ํƒํ•  ์ˆ˜๋„ ์žˆ๊ณ ,
    3. ๊ฐ€์น˜๋ฅผ ํ‰๊ฐ€ํ•œ ํ›„ โ€œMatching Orderโ€œ๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ ์„ ํƒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. Extendable ์ฟผ๋ฆฌ ๋…ธ๋“œ๋ฅผ ์„ ํƒ ํ–ˆ๋‹ค๋ฉด, ๋ฐ์ดํ„ฐ ๊ทธ๋ž˜ํ”„์—์„œ๋„ โ€œExtendable ํ›„๋ณดโ€๋“ค์„ ์ฐพ๋Š”๋‹ค.
  4. ๋ชจ๋“  Extendable ํ›„๋ณด๋“ค์„ ์ˆœํšŒํ•˜๋ฉฐ, ์ด๋ฅผ Partial Embedding์— ํฌํ•จํ•˜์—ฌ ํ™•์žฅ ์‹œํ‚จ๋‹ค.
  5. [1-4] ๊ณผ์ •์„ ๋ฐ˜๋ณต ํ•œ๋‹ค.

์—ฌ๊ธฐ์—์„œ [2๋ฒˆ] ๋‹จ๊ณ„์—์„œ Extendable ์ฟผ๋ฆฌ ๋…ธ๋“œ ์ค‘ ์–ด๋–ค ์ฟผ๋ฆฌ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ• ์ง€ ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  Embedding์„ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฒฐ๊ตญ ๋ชจ๋“  ์ฟผ๋ฆฌ ๋…ธ๋“œ๋ฅผ ๋น ์ง์—†์ด ์„ ํƒํ•˜๊ฒŒ ๋˜๊ฒ ์ง€๋งŒ, ํ™•์žฅ ๊ณผ์ •์—์„œ ์–ด๋–ค ์ฟผ๋ฆฌ ๋…ธ๋“œ๋ฅผ ๋จผ์ € ์„ ํƒํ•˜๋А๋ƒ์— ๋”ฐ๋ผ์„œ ๋” ๋นจ๋ฆฌ Pruning ํ•˜๊ณ  ํƒ์ƒ‰์„ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋งŒ์•ฝ, Embedding์„ ํ™•์žฅํ•˜๋‹ค๊ฐ€ ๋งˆ์ง€๋ง‰์— ํ•˜๋‚˜์˜ ์ฟผ๋ฆฌ ๋…ธ๋“œ๋ฅผ ๋‚จ๊ฒจ๋‘๊ณ  Matching์ด ์‹คํŒจํ•œ๋‹ค๋ฉด ๊ทธ๋•Œ๊นŒ์ง€ ํ™•์žฅ์— ๋“  ์ฝ”์ŠคํŠธ๊ฐ€ ๋ฌด์ฒ™ ์•„๊น๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ฆ‰, โ€œMatching์ด ์—†๋‹คโ€๋Š” ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›๊ฒŒ ๋˜๋”๋ผ๋„, ํ™•์žฅํ•  ์ฟผ๋ฆฌ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•˜๋Š” ์ˆœ์„œ์— ๋”ฐ๋ผ ๋นจ๋ฆฌ SM์„ ๋น ๋ฅด๊ฒŒ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ ์ž…๋‹ˆ๋‹ค.


Symbi ๋…ผ๋ฌธ์—์„œ๋Š” ํ™•์žฅ ์ˆœ์„œ๋ฅผ โ€œSize of Extendable Candidatesโ€, ์ฆ‰, $C_M(u)$์˜ ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž‘์€ ๊ฒƒ๋ถ€ํ„ฐ ์„ ํƒํ•ด ํ™•์žฅํ•˜๋Š” ๊ฒƒ์„ ์ œ์•ˆ ํ•ฉ๋‹ˆ๋‹ค.

Estimation of Extendable Candidates

๊ทธ๋Ÿฌ๋‚˜ $C_M(u)$ ์ง‘ํ•ฉ์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์€ high-cost ์ž‘์—… ์ž…๋‹ˆ๋‹ค. Extendable Vertex๋Š” ๋งค ๊ณผ์ •๋งˆ๋‹ค ๋™์ ์œผ๋กœ ๋ณ€ํ•˜๊ณ , ์ด๊ฒƒ๋“ค์˜ $C_M(u)$ ์ง‘ํ•ฉ๋„ ๋งค๋ฒˆ ๋ณ€ํ• ํ…๋ฐ ์ด๊ฑธ ๋ชจ๋‘ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๊ณ , ๊ทธ ์ค‘์—์„œ ํ•˜๋‚˜๋งŒ ์„ ํƒํ•ด ์‚ฌ์šฉํ•˜๊ธฐ์—๋Š” ๋น„ํšจ์œจ์ ์ด๋‹ค๋Š” ๊ฒƒ์„ SymBi์—์„œ ์ฃผ์žฅ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์•„๊นŒ ์•ž์—์„œ $C_M(u)$์˜ ๊ณ„์‚ฐ ์‚ฌ์ด์ฆˆ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ $S_{min}[u]$์˜ ์„ฑ์งˆ์„ ์‚ฌ์šฉํ•ด ์ด ์‚ฌ์ด์ฆˆ๋ฅผ ์ถ”์ • ํ•ฉ๋‹ˆ๋‹ค!

๊ฐœ์„ ๋œ $C_M(u)$์˜ ์ •์˜์— ๋”ฐ๋ผ $\left\vert C_M(u) \right\vert$์˜ ํฌ๊ธฐ๋Š” $\left\vert S_{min}[u] \right\vert$์˜ ํฌ๊ธฐ๋ณด๋‹ค ํด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

\[\left\vert C_M(u) \right\vert \le \left\vert S_{min}[u] \right\vert\]

๋”ฐ๋ผ์„œ, $\left\vert S_{min}[u] \right\vert$ ๊ฐ’์„ ์ถ”์ •์น˜๋กœ ์‚ฌ์šฉํ•ด ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๊ฐ€์ง„ Extendable ์ฟผ๋ฆฌ ๋…ธ๋“œ $u$๋ฅผ ๊ณจ๋ผ์„œ Embedding ํ™•์žฅ์„ ์ง„ํ–‰ ํ•ฉ๋‹ˆ๋‹ค.

Symbi์—์„œ๋Š” ์ด๊ฒƒ์„ $Est(u)$๋กœ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

๋…ผ๋ฌธ์—์„œ๋Š” $E(u)$๋กœ ์ •์˜ํ–ˆ์ง€๋งŒ, edge set $E(q), E(g)$ ํ‘œ๊ธฐ์™€ ํ—ท๊ฐˆ๋ฆด ๊ฒƒ ๊ฐ™์•„์„œ $Est(u)$๋กœ ํ‘œ๊ธฐ๋ฅผ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

\[Est(u) = \underset{u' \in \text{Nbr}_M(u)}{\text{argmin}} \left\{ N^2_{CC}[u', M(u'), u] \right\} = \underset{u' \in \text{Nbr}_M(u)}{\text{argmin}} \left\{ \left\vert S[u, u']\right\vert \right\}\]

Isolated Vertices

์•„์ง๋„ ๋ญ๊ฐ€ ๋‚จ์•˜๋‹ค? SymBi์—์„œ๋Š” CFL-Match(2016) ๋…ผ๋ฌธ์—์„œ ์‚ฌ์šฉํ•œ Leaf Decomposition ํ…Œํฌ๋‹‰์—์„œ ์•„์ด๋””์–ด๋ฅผ ์–ป์–ด์„œ ์ด๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

CFL-Match๋Š” ์ฟผ๋ฆฌ ๊ทธ๋ž˜ํ”„๋ฅผ Forest-Leaf ๊ตฌ์กฐ๋กœ ๋ถ„ํ•  ํ•˜์˜€์Šต๋‹ˆ๋‹ค. Leaf ๋…ธ๋“œ๋Š” ์ด์›ƒ์ด ๋”ฑ ํ•˜๋‚˜๋งŒ ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. CFL-Match์˜ ์•„์ด๋””์–ด๋Š” โ€œLeaf ๋…ธ๋“œ๋“ค์— ๋Œ€ํ•œ ๋งค์นญ์„ ๊ฐ€๋Šฅํ•œ ๋‚˜์ค‘์œผ๋กœ ๋ฏธ๋ฃจ๋Š” ๊ฒƒโ€ ์ž…๋‹ˆ๋‹ค.

CFL์—์„œ๋Š” non-leaf vertex๋ฅผ ๋จผ์ € ๋งค์นญํ•  ๋•Œ, ์•„๋ž˜์™€ ๊ฐ™์€ ์ด์ ์ด ์žˆ๋‹ค๊ณ  ์ฃผ์žฅ ํ•ฉ๋‹ˆ๋‹ค.

  • ์•„์ง ๋งค์นญ๋˜์ง€ ์•Š์€ ์ด์›ƒ๋“ค์ด ์ƒˆ๋กœ์šด Extendable Candidate๊ฐ€ ๋จ.
    • ์ฆ‰, ํ™•์žฅ์„ ํ†ตํ•ด Extendable Candidate์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ์ปค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋ฐ˜๋ฉด์—, Leaf ๋…ธ๋“œ๋ฅผ ๋จผ์ € ๋งค์นญํ•˜๋ฉด, Extendable Candidate์˜ ์‚ฌ์ด์ฆˆ๋Š” ํ•ญ์ƒ ์ค„์–ด๋“ค๊ฑฐ๋‚˜ ์œ ์ง€ ๋ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  non-leaf์˜ ๊ฒฝ์šฐ, Extendable Candidate $C_M(u)$์˜ ์‚ฌ์ด์ฆˆ๋„ left ๋…ธ๋“œ์˜ ๊ฒฝ์šฐ๋ณด๋‹ค ๋” ์ ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด, ์ด์›ƒ๊ณผ ๋” ๋งŽ์ด ์—ฐ๊ฒฐ๋œ ์ฟผ๋ฆฌ ๋…ธ๋“œ์ผ์ˆ˜๋ก ๋” ์ ์€ $C_M(u)$๋ฅผ ๊ฐ€์งˆ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. (๊ต์ง‘ํ•ฉ์— ์˜ํ•ด์„œ!)

๋”ฐ๋ผ์„œ ์ด ๊ธฐ๋ฒ•์€ ํƒ์ƒ‰ ๊ณต๊ฐ„์„ ์ค„์—ฌ์„œ ๋งค์นญ ์†๋„๋ฅผ ๋†’์ด๋Š”๊ฒŒ ๊ธฐ์—ฌ ํ•ฉ๋‹ˆ๋‹ค.


SymBi์—์„œ๋Š” ์ด Left ๋…ธ๋“œ์˜ ๊ฐœ๋…์„ ํ™•์žฅํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์ด ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

For a query graph $q$ and a data graph $g$, and a partial embedding $M$,

an โ€œisolated vertexโ€ is an extendable vertex in $q$ where all of its neighbors are mapped in $M$.

๊ธฐ์กด์˜ left ๋…ธ๋“œ๋Š” ํ•˜๋‚˜์˜ ์ด์›ƒ์ด ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งํ–ˆ์ง€๋งŒ, โ€œIsolated Vertexโ€๋Š” ๋ชจ๋“  ์ด์›ƒ ๋…ธ๋“œ๊ฐ€ Partial Embedding์œผ๋กœ ๋งคํ•‘๋œ ๊ฒฝ์šฐ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ ์ฟผ๋ฆฌ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ ค๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆผ์—์„œ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ์ƒ‰์น ๋งŒ ๋…ธ๋“œ๋“ค์ด Isolated Vertex๋“ค ์ž…๋‹ˆ๋‹ค.

CLF์ฒ˜๋Ÿผ SymBi ๋…ผ๋ฌธ์—์„œ๋„ โ€œIsolated Vertexโ€๋กœ ๋งค์นญ์„ ํ™•์žฅํ•˜๋Š” ๊ฒƒ์„ ์ตœ๋Œ€ํ•œ ๋ฏธ๋ฃน๋‹ˆ๋‹ค!

  • Isolated Vertex๋ฅผ ๋งค์นญํ•˜๋Š” ๊ฒƒ์€ Extendable Vertex ๊ณต๊ฐ„์„ ๋Š˜๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • Isolated Vertex๋กœ ์—ฐ๊ฒฐ๋œ ์ด์›ƒ ์ •์ ์ด ์—†๊ฑฐ๋‚˜ ์ด๋ฏธ ๋ชจ๋‘ ๋งค์นญ๋œ ์ƒํƒœ์ด๊ธฐ ๋–„๋ฌธ์ž…๋‹ˆ๋‹ค.
  • ๋ชจ๋“  Leaf ๋…ธ๋“œ๋Š” Isolated ๋…ธ๋“œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
    • ๊ทธ๋ž˜์„œ Isolated ๋…ธ๋“œ์˜ ํ‰๊ฐ€๋ฅผ ๋ฏธ๋ฃจ๋Š” ๊ฒƒ์€, Leaf ๋…ธ๋“œ์˜ ํ‰๊ฐ€๋ฅผ ๋ฏธ๋ฃจ๋Š” ๊ฒƒ์ด ํฌํ•จ ํ•ฉ๋‹ˆ๋‹ค.


Matching Order ๋ฐฉ์‹๊ณผ Isolated Vertex์˜ ํ‰๊ฐ€๋ฅผ ๋ฏธ๋ฃจ๋Š” ๊ฒƒ์„ ์กฐํ•ฉํ•œ ์ตœ์ข… ํ˜•ํƒœ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ๋งŒ์•ฝ Isolated Vertex๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ,
    • ๊ทธ๊ฒƒ์˜ ๋งค์นญ ๊ฐ€๋Šฅํ•œ $C_M(u) = \emptyset$์ธ ์ƒํ™ฉ์ด๋ผ๋ฉด,
      • ์ด๊ฒƒ์€ ์ ˆ๋Œ€ Full Embedding์— ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋‹ค. ๊ณผ์ •์„ ์ข…๋ฃŒ ํ•œ๋‹ค.
    • ๋งŒ์•ฝ $C_M(u) \ne \emptyset$๋ผ๋ฉด,
      • ๊ดœ์ฐฎ๋‹ค! Isolated Vertex $u$๋Š” ๋ฌด์‹œํ•˜๊ณ , non-isolated vertex๊ฐ€ ์žˆ๋Š”์ง€ ์ฐพ๋Š”๋‹ค.
  2. ๋งŒ์•ฝ non-isolated vertex๊ฐ€ ์žˆ๋‹ค๋ฉด
    • ๊ทธ์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€ $Est(u)$ ๊ฐ’์˜ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•ด ํ™•์žฅํ•œ๋‹ค.
  3. ๋งŒ์•ฝ ๋ชจ๋“  extendable ๋…ธ๋“œ๊ฐ€ isolated vertex๋ผ๋ฉด
    • (์–ด์ฉ” ์ˆ˜ ์—†๋‹ค) ๊ทธ์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€ $Est(u)$ ๊ฐ’์˜ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•ด ํ™•์žฅํ•œ๋‹ค.

๋งบ์Œ๋ง

ํœด์šฐโ€ฆ ๋“œ๋””์–ด SymBi ๋…ผ๋ฌธ์˜ ์•„์ด๋””์–ด๋ฅผ ๋ชจ๋‘ ์‚ดํŽด๋ณด์•˜๋‹ค. ์—ฐ๊ตฌ์‹ค์—์„œ ๋…ผ๋ฌธ ๋ฆฌ๋”ฉ์„ ํ•˜๊ณ  ๋ฐœํ‘œ๋ฅผ ์œ„ํ•ด ์ดํ•ดํ•˜๊ณ  ์ •๋ฆฌ ํ–ˆ๋˜ ๋‚ด์šฉ์„ ๋ธ”๋กœ๊ทธ๋กœ ์˜ฎ๊ฒจ์™”๋Š”๋ฐ, ๋‹ค์‹œ ์˜ฎ๊ธฐ๋ฉด์„œ ๋‚˜๋„ ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ๊นŠ์–ด์ง„ ๊ฒƒ ๊ฐ™๋‹ค ใ…Žใ…Ž

ํ˜น์‹œ ์–ธ์  ๊ฐ€ ๋‹ค๋ฅธ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์–ด๋–ค ์—ฐ๊ตฌ์‹ค์—์„œ SymBi ๋…ผ๋ฌธ์„ ์ฝ๊ฒŒ ๋œ๋‹ค๋ฉด ์ด ์ž๋ฃŒ๊ฐ€ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ใ…Žใ…Ž โœŒ๏ธ