๋น๊ฒฐ์ ์ฑ์ ์ ์ฐ๋๊ฐ
๋น๊ฒฐ์ ์ ์ ํ ์ธ์๊ธฐ(nfa)๋ ๊ฒฐ์ ์ ์ ํ ์ธ์๊ธฐ(dfa)์ ๋นํด ๋ชจ๋ธ๋งํ๊ธฐ ์ฌ์ฐ๋ฉฐ, ๋ณต์กํ ๋ฌธ์ ๋ฅผ ๊ฐ๋ตํ๊ฒ ๊ธฐ์ ํ๋ ๋ฐ ํจ๊ณผ์ ์ ๋๋ค.
๋ํ ์ต์ ํด๋ฅผ ์ฐพ๊ธฐ ์ํด ๋ฐฑํธ๋ํน(backtraking)๋ฑ์ ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ํ์ํ๋ ๊ฒ์
์ต์ ์ ์ ํ์ ํ ์ ์๋ ๋น๊ฒฐ์ ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค๋ฉด ๋ฐฑํธ๋ํน ์์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ผ๋ฉฐ
๊ฒฐ์ ์ ์๊ณ ๋ฆฌ์ฆ์ ์ถ๊ฐ์ ์ธ ์์ ์ ํตํด์ ๋น๊ฒฐ์ ์ฑ์ ์๋ฎฌ๋ ์ดํธ ํ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ด์ ๋ก ๋น๊ฒฐ์ ์ ๊ธฐ๊ณ๋ ํ์ - ๋ฐฑํธ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ํ ๋ชจ๋ธ๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
๋ํ ๋น๊ฒฐ์ ์ฑ์ ๋ช๋ช ๋ณต์กํ ์ธ์ด๋ค์ ๊ฐ๋จํ๊ฒ ์ ์ํ๋ ๋ฐ ํจ๊ณผ์ ์ ๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ ์์ฑ๊ท์น
$$ S \to aSb | \lambda$$
์ ๋ชจ๋ ๊ฒฝ์ฐ ๋ ์์ฑ๊ท์น๋ค ์ค ํ๋๋ฅผ ์ ํํ๊ฒ ๋์ด ์์์ ์ ์ ์์ต๋๋ค.
๋จ์ง ๋ ๊ฐ์ ๊ท์น๋ง์ผ๋ก๋ ์๋ง์ ๋ฌธ์์ด๋ค์ ์์ฑํ ์ ์๊ฒ ํด์ค๋๋ค.
๋ง์ง๋ง์ผ๋ก, ๋น๊ฒฐ์ ์ฑ์ ๋์ ํ๋ ๋ฐ์๋ ๊ธฐ์ ์ ์ธ ์ด์ ๊ฐ ์กด์ฌํฉ๋๋ค.
dfa๋ณด๋ค๋ nfa์ ๋ํ ์ด๋ค ์ด๋ก ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ ์ฝ๊ฒ ์๋ฆฝํ ์ ์์ต๋๋ค.
nfa์ dfa, ์ด ๋ ๊ฐ์ง ํํ์ ์คํ ๋งํ ์ฌ์ด์๋ ๊ทผ๋ณธ์ ์ธ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
๋ฐ๋ผ์ ๋น๊ฒฐ์ ์ฑ์ ์ฌ์ฉํจ์ผ๋ก์จ ๊ฒฐ๋ก ์ ์ผ๋ฐ์ฑ์ ๊ทธ๋๋ก ์ ์งํ๋ฉด์ ๊ณต์์ ์ธ ๋ ผ์ฆ์ ๊ฐ๋จํ ํ๋ ํจ๊ณผ๋ฅผ ๋๋ฆด ์ ์๋ ๊ฒ์ ๋๋ค.
๋น๊ฒฐ์ ์ฑ์ ์ฌ์ฉํ๋ ์ด์ ์ ๋ํด ์ ์ ์์๋ณด์๊ณ , ์ด์ nfa๋ฅผ dfa๋ก ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๊ฒฐ์ ์ ์ ํ ์ธ์๊ธฐ์ ๋น๊ฒฐ์ ์ ์ ํ ์ธ์๊ธฐ์ ๋์น์ฑ
๋ค์ ์กฐ๊ฑด์ด ๋ง์กฑ๋๋ ๊ฒฝ์ฐ
$$L(M_1) = L(M_2)$$
์ฆ ๋ ์คํ ๋งํ๊ฐ ๊ฐ์ ์ธ์ด๋ฅผ ์ธ์ํ๋ ๊ฒฝ์ฐ, ๋ ๊ฐ์ ์ ํ ์ธ์๊ธฐ M1๊ณผ M2๋ ๋์น๋ผ ํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ฃผ์ด์ง ์ธ์ด๋ฅผ ์ธ์ํ๋ ์ธ์๊ธฐ๋ค์ ์ฌ๋ฌ๊ฐ๊ฐ ์กด์ฌํ ์ ์์ผ๋ฉฐ, ๋ฐ๋ผ์ ์ด๋ dfa๋ nfa๋ ์ง ๋ง์ ๋์น์ธ ์ธ์๊ธฐ๋ค์ด ์์ ์ ์์ต๋๋ค.
๊ฐ๋ ฅํจ(powerful)
ํ ์ข ๋ฅ์ ์คํ ๋งํ๊ฐ, ๋ค๋ฅธ ์ข ๋ฅ์ ์คํ ๋งํ์์ ์ํํ ์ ์๋ ์ด๋ค ์ผ์ ์ํํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
dfa๋ ๋ณธ์ง์ ์ผ๋ก nfa์ ํ ์ ํ๋ ์ข ๋ฅ์ด๋ฏ๋ก, dfa์ ์ํด ์ธ์๋๋ ๋ชจ๋ ์ธ์ด๋ ์ด๋ค nfa์ ์ํด์๋ ์ธ์๋ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๊ทธ ์ญ์ ๋น์ฐํ๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค.
nfa์๋ ๋น๊ฒฐ์ ์ฑ์ด๋ผ๋ ๊ฐ๋ ์ด ์ถ๊ฐ๋์๊ณ , ๋ฐ๋ผ์ nfa์ ์ํด ์ธ์๋๋ฉด์ dfa๋ก๋ ์ธ์ํ ์ ์๋ ์ธ์ด๊ฐ ์กด์ฌํ์ง ์์๊น ํ๊ณ ์๊ฐํ ์ ์์ ๊ฒ์ ๋๋ค.
๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด, ์ด๋ ์๋ชป๋ ์๊ฐ์ ๋๋ค.
dfa๋ค๊ณผ nfa๋ ๋๊ฐ์ ๋ฅ๋ ฅ(equally powerful)์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ฆ nfa์ ์ํด ์ธ์๋๋ ๋ชจ๋ ์ธ์ด๋ค์ ๋ํด ๊ฐ์ ์ธ์ด๋ฅผ ์ธ์ํ๋ dfa๊ฐ ํญ์ ์กด์ฌํฉ๋๋ค.
์ฆ๋ช ์ ๋๋ฌด ๊ธธ์ด ์๋ตํ๋๋ก ํ๊ฒ ์ต๋๋ค.
์ ๋ฆฌ
์ธ์ด L(M_N)์ ๋น๊ฒฐ์ ์ ์ ํ ์ธ์๊ธฐ
$$M_N = (Q_N, \Sigma, \delta_N, q_0, F_N)$$
์ ์ํด ์ธ์๋๋ ์ธ์ด๋ผ ํ๋ฉด,
๋ค์์ ๋ง์กฑํ๋ ๊ฒฐ์ ์ ์ ํ ์ธ์๊ธฐ๋ ๋ฐ๋์ ์กด์ฌํฉ๋๋ค.
$$L(M_N) = L(M_D), \;\;\; M_D = (Q_D, \Sigma, \delta_D, \left\{q_0\right\}, F_D)$$
์ฃผ์ด์ง M(N)์ ๋ํ์ฌ, ์ด์ ๋์น์ธ M(D)์ ๋ํ ์ ์ด ๊ทธ๋ํ G(D)๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด
๋ค์์์ ์๊ฐํ๋ procedure nfa-to-dfa๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ด ๋, G(D)์ ๋ชจ๋ ์ ์ ๋ค์ ์ ํํ |Σ| ๊ฐ์ ์ง์ถ ๊ฐ์ ๋ค์ ๊ฐ์ ธ์ผ ํ๋ฉฐ,
๊ฐ ๊ฐ์ ๋ค์ Σ์ ์๋ก ๋ค๋ฅธ ์์๋ค์ ๋ผ๋ฒจ๋ก ๊ฐ์ ธ์ผ ํฉ๋๋ค.
procedure: nfa-to-dfa
1. ์ ์ {q_0}๋ฅผ ๊ฐ๋ ๊ทธ๋ํ G(D)๋ฅผ ์์ฑํฉ๋๋ค. ์ด ์ ์ ์ ์ด๊ธฐ ์ ์ ์ ๋๋ค.
2. ๋ค์ ๊ณผ์ ์ ๋ชจ๋ ๊ฐ์ ๋ค์ด ์์ฑ๋ ๋๊น์ง ๋ฐ๋ณตํฉ๋๋ค.
Σ์ ์์ ๊ฐ๊ฐ์ ์ ๋ํด, ์ง์ถ ๊ฐ์ ์ ๊ฐ์ง ์๋ G(D)์ ์ ์ {qi, qj, ..., qk}๋ฅผ ์ ํํฉ๋๋ค.
๋ค์์ ๊ณ์ฐํฉ๋๋ค.
$${\delta}^{*}_N(q_i, a), \; {\delta}^{*}_N(q_j, a), ... , {\delta}^{*}_N(q_k, a) , \;\;\; ๋จ, a \in \Sigma$$
$${\delta}^{*}_N(q_i, a) \cup {\delta}^{*}_N(q_j, a) \cup , ... \cup {\delta}^{*}_N(q_k, a) = \left\{ q_l, q_m, ... , q_n\right\}$$์ธ ๊ฒฝ์ฐ G(D)์ ๋ผ๋ฒจ์ด {ql, qm, ..., qn}์ธ ์ ์ ์ด ์์ง ์๋ค๋ฉด, ์ด๋ฅผ ๋ผ๋ฒจ๋ก ๊ฐ๋ ์ ์ ์ ์ถ๊ฐํฉ๋๋ค.
์ ์ {qi, qj, ..., qk}๋ก๋ถํฐ ์ ์ {ql, qm, ..., qn} ์ผ๋ก ํฅํ๋ ๊ฐ์ ์ ์ถ๊ฐํ๊ณ ์ด์ ๋ผ๋ฒจ a๋ฅผ ๋ถ์ฌํฉ๋๋ค.
3. G(D)์ ์ํ๋ค ์ค ๋ผ๋ฒจ์ด q(f)๋ฅผ ํฌํจํ๋ ๋ชจ๋ ์ํ๋ค์ ์น์ธ ์ํ๋ก ์ง์ ํฉ๋๋ค.
$$๋จ, \;\; q_f \in F_N$$
4. ์ธ์๊ธฐ M(N)์ด λ๋ฅผ ์ธ์ํ๋ ๊ฒฝ์ฐ, G(D)์ ์ ์ {q0}๋ฅผ ์น์ธ ์ ์ ์ผ๋ก ์ง์ ํฉ๋๋ค
์ด ํ๋ก์์ ๋ ํญ์ ์ข ๋ฃํจ์ด ๋ช ๋ฐฑํฉ๋๋ค.
๋จ๊ณ 2์ ๋ฐ๋ณต์์ ์ด ํ ๋ฒ ์ํ๋ ๋๋ง๋ค G(D)์ ๊ฐ์ ์ด ํ๋์ฉ ์ถ๊ฐ๋ฉ๋๋ค.
G(D)๋ ๊ฐ์ ์ด ๋ง์๋ดค์ $$2^{|Q_N|}|\Sigma |$$๊ฐ์ด๋ฏ๋ก, ์ด ๋ฐ๋ณต์ก์ ์ ์ ํ์๊ฐ ๋ด์ ์ข ๋ฃ๋ฉ๋๋ค.
๋๋ค ํด๋ก์ (lambda closure)
λ-closure(s)
์ํ s์์ λ-transition๋ง์ ์ด์ฉํ์ฌ ๋๋ฌ ๊ฐ๋ฅํ ์ํ๋ค์ ์งํฉ์ ์๋ฏธํฉ๋๋ค.(s๋ ํฌํจํฉ๋๋ค.)
$$\lambda-clusure(s) = \left\{ s \right\} \cup \left\{ q \; |\; \delta(p, \lambda) = q, \;\;p \in \lambda-closure(s) \right\} $$
$$\lambda-closure(T) = \cup_{S \in T} \lambda- closure(s)$$
T๋ ์ํ๋ค์ ์งํฉ์ด๋ฉฐ, s๋ T์ ์์์ ๋๋ค.
์ค๋ช :
์ํ s์์ ๋๋ค๋ฅผ ํตํด ๋๋ฌํ ์ฌ๋ฌ ์ํ๋ค๊ณผ, ๊ทธ๋ฌํ ์ํ๋ค์์ ๊ณ์ํด์ ๋๋ค๋ฅผ ํตํด ๋๋ฌ ๊ฐ๋ฅํ ๋ชจ๋ ์ํ๋ค์ ์งํฉ์ ์๋ฏธํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ํ๋ค์ ์งํฉ T ์์ ์กด์ฌํ๋ ๋ชจ๋ ์์๋ค์ ๋๋ค ํด๋ก์ ธ์ ํฉ์งํฉ์ T์ ๋๋ค ํด๋ก์ ธ๋ผ ํฉ๋๋ค.
Successor
a-successor(s)
์ํ s์์ ์ ๋ ฅ๊ธฐํธ a์ ์ํด ๋๋ฌ ๊ฐ๋ฅํ ์ํ๋ค์ ์งํฉ์ ์๋ฏธํฉ๋๋ค.
$$ a-successor(s) = \cup_{q_i \in T} \lambda-closure(\delta(q_i, a)) \;\; where\;\; T = \lambda-closure(s) $$
$$์ฆ \;\; T = \lambda-closure(s)$$
$$Ta = \delta(T, a) \;\;์ด๋ฉฐ$$
$$a-successor(s) = \lambda-closure(Ta)$$
์ค๋ช :
a-successor(s)๋ s์, s์์ ๋๋ค๋ฅผ ํตํด ์ด๋ ๊ฐ๋ฅํ ๋ชจ๋ ์ํ๋ค์ ์งํฉ(์ฆ ๋๋ค ํด๋ก์ )์์ a๋ฅผ ์ ๋ ฅํ์ฌ ๋๋ฌ ๊ฐ๋ฅํ ์ํ๋ค์ ์งํฉ์ ๋๋ค.
์ด๋ a๋ฅผ ์ ๋ ฅํ์ฌ ๋๋ฌํ์์๋ ๋๋ค ์ ์ด๊ฐ ๊ฐ๋ฅํ๋ค๋ฉด, ๊ฒฐ๊ณผ์ ํฌํจ๋ฉ๋๋ค.
์๋ nfa๋ฅผ ์์๋ก ์ค๋ช ํด๋ณด๊ฒ ์ต๋๋ค.
λ-closure(A)
$$\lambda-closure(A) = \left\{ A,B,D \right\}$$
$$\lambda-closure(\left\{ A, C \right\}) = \left\{ A,B,C, D \right\}$$
a-successor(A)
$$T = \lambda-closure(A) = \left\{ A,B,D \right\}$$
$$Ta = \delta(T, a) = \delta(A, a) \cup \delta(B,a) \cup \delta(D, a) = \left\{ A,C,D \right\}$$
$$\lambda-closure(Ta) = \lambda-closure(\left\{ A,C,D \right\}) = \left\{ A,B,C,D \right\}$$
$$๋ฐ๋ผ์ \;\; a-successor(A) = \left\{ A,B,C,D \right\}$$
b-successor(C)
$$T = \lambda-closure(C) = \left\{ C,D \right\}$$
$$Tb = \delta(T, b) = \delta(C, b) \cup \delta(C,b)= \left\{ C \right\}$$
$$\lambda-closure(Tb) = \lambda-closure(\left\{ C \right\}) = \left\{ C,D \right\}$$
$$๋ฐ๋ผ์\;\;b-successor(C) = \left\{ C,D \right\}$$
๋๋ค ํด๋ก์ ์ Successor๋ฅผ ์ฌ์ฉํ์ฌ nfa๋ฅผ dfa๋ก ๋ณํํ๊ธฐ
์ด์ procedure: nfa-to-dfa์ ๊ณผ์ ์์, ๋๋ค ํด๋ก์ ธ์ successor๋ฅผ ์ฌ์ฉํ์ฌ nfa๋ฅผ dfa๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์ฐ์ ์ด๊ธฐ ์ํ q0์์์ ๋๋ค ํด๋ก์ ธ๋ฅผ ๋ชจ๋ ๊ตฌํ ๋ค, ํด๋น ์งํฉ์ A๋ผ ํํํฉ๋๋ค.
๋ชจ๋ terminal symbol์ ๋ํ successor(A), ์ฆ Σ-successor(A)๋ฅผ ๊ตฌํฉ๋๋ค.
์ด๋ฅผ marking A๋ผ ์นญํฉ๋๋ค.
successor๋ฅผ ๊ตฌํ๋ ๊ณผ์ ์์ ์๋ก์ด ์งํฉ์ด ๋ฑ์ฅํ๋ฉด, ์ด๋ฅผ B, C, D, ...๋ก ๋ก๋๋ค.
์๋ก ๋ฑ์ฅํ ์งํฉ์ ๋ํด ๋ค์ Σ-successor(B), Σ-successor(C), ...์ฆ marking B, C, ... ๋ฅผ ๊ตฌํฉ๋๋ค.
์ด ๊ณผ์ ์ ๋ฐ๋ณตํ ํ, ๊ธฐ์กด nfa์ final state๊ฐ ํฌํจ๋ ์งํฉ์ final state๋ก ์ง์ ํฉ๋๋ค.
์์ ๊ฐ์ nfa๋ฅผ ์์๋ก ์ค๋ช ํ๊ฒ ์ต๋๋ค.
์ฐ์ ์ด๊ธฐ์ํ 0์์์ ๋๋ค ํด๋ก์ ธ๋ฅผ ๋ชจ๋ ๊ตฌํ์ฌ A ์งํฉ์ผ๋ก ์ค์ ํ๊ฒ ์ต๋๋ค.
$$\lambda-closure(0) = \left\{ 0,\;1,\;2,\;4,\;7 \right\} = A$$
marking A ๊ณผ์ ์ ์งํํฉ๋๋ค.
$$ a-successor(A) = \lambda-closure(\delta(\left\{ 0,\;1,\;2,\;4,\;7 \right\} , \;a\;)) \; = \lambda-closure(\left\{ 3,8 \right\}) = \left\{ 1,\;2,\;3,\;4,\;6,\;7 \right\} = B$$
$$ b-successor(A) = \lambda-closure(\delta(\left\{ 0,\;1,\;2,\;4,\;7 \right\} , \;b\;)) \; = \lambda-closure(\left\{ 5 \right\}) = \left\{ 1,\;2,\;4,\;6,\;7 \right\} = C$$
์ ๊ณผ์ ์์ ์๋กญ๊ฒ ๋ฑ์ฅํ B์ C์ ๋ํด marking ์์ ์ ์ํํฉ๋๋ค.
marking B ๊ณผ์ ์ ์งํํฉ๋๋ค.
$$ a-successor(B) = \lambda-closure(\delta(\left\{ 1,2,3,4,6,7,8 \right\} , \;a\;)) \; = \lambda-closure(\left\{ 3,8 \right\}) = B$$
$$ b-successor(B) = \lambda-closure(\delta(\left\{ 1,2,3,4,6,7,8 \right\} , \;b\;)) \; = \lambda-closure(\left\{ 5, 9 \right\}) = \left\{ 1,2,4,5,6,7,9 \right\} = D$$
marking C ๊ณผ์ ์ ์งํํฉ๋๋ค.
$$ a-successor(C) = \lambda-closure(\delta(\left\{ 1,2,4,5,6,7 \right\} , \;a\;)) \; = \lambda-closure(\left\{ 3,8 \right\}) = B$$
$$ b-successor(C) = \lambda-closure(\delta(\left\{ 1,2,4,5,6,7 \right\} , \;b\;)) \; = \lambda-closure(\left\{ 5 \right\}) = C\;\;\;$$
marking B ๊ณผ์ ์์ ์๋กญ๊ฒ ๋ฑ์ฅํ D์ ๋ํด marking D ๊ณผ์ ์ ์งํํฉ๋๋ค.
$$ a-successor(D) = \lambda-closure(\delta(\left\{ 1,2,4,5,6,7,9 \right\} , \;a\;)) \; = \lambda-closure(\left\{ 3,8 \right\}) = B$$
$$ b-successor(D) = \lambda-closure(\delta(\left\{ 1,2,4,5,6,7,9 \right\} , \;b\;)) \; = \lambda-closure(\left\{ 5,10 \right\}) = \left\{ 1,2,4,5,6,7,10 \right\} = E$$
marking D ๊ณผ์ ์์ ์๋กญ๊ฒ ๋ฑ์ฅํ E์ ๋ํด marking E ๊ณผ์ ์ ์งํํฉ๋๋ค.
$$ a-successor(E) = \lambda-closure(\delta(\left\{ 1,2,4,5,6,7,10 \right\} , \;a\;)) \; = \lambda-closure(\left\{ 3,8 \right\}) = B$$
$$ b-successor(E) = \lambda-closure(\delta(\left\{ 1,2,4,5,6,7,10 \right\} , \;b\;)) \; = \lambda-closure(\left\{ 5 \right\}) = C$$
์ด์ ์๋กญ๊ฒ ๋ฑ์ฅํ ์ํ๊ฐ ์์ผ๋ฏ๋ก ์ ์ด ๊ทธ๋ํ์ ๊ทธ๋ ค์ค๋๋ค.
์ด๋ final state๋ ๊ธฐ์กด nfa์ final state์ธ 10์ ์์๋ก ๊ฐ์ง๋ ๋ชจ๋ ์ํ๊ฐ ๋๋ฉฐ, ์ด ๊ฒฝ์ฐ์๋ E๊ฐ final state๊ฐ ๋ฉ๋๋ค.
์ ํ ์คํ ๋งํ์์์ ์ํ์ ์ ์ถ์
์ด๋ dfa๋ ์ ์ผํ๊ฒ ํ๋์ ์ธ์ด๋ฅผ ์ ์ํ๊ฒ ๋ฉ๋๋ค.
ํ์ง๋ง ๊ทธ ์ญ์ ์ฑ๋ฆฝํ์ง ์์ต๋๋ค.
์ฆ ์ฃผ์ด์ง ํ๋์ ์ธ์ด์ ๋ํด ์ด๋ฅผ ์ธ์ํ๋ dfa๋ ์ฌ๋ฌ ๊ฐ๊ฐ ์กด์ฌํ ์ ์๋ ๊ฒ์ ๋๋ค.
์๋ก ๋์น์ธ(์ฆ ๊ฐ์ ์ธ์ด๋ฅผ ์ธ์ํ๋) ์คํ ๋งํ๋ค์ ๋ํด์๋, ๊ฐ๊ฐ์ ์คํ ๋งํ๋ค์ ์ํ ์๋ ๋ง์ ์ฐจ์ด๊ฐ ๋ ์ ์์ต๋๋ค.
๊ณ์ฐ์ ๋ชฉ์ ์ผ๋ก ์คํ ๋งํ๋ฅผ ํํํ๊ณ ์ ํ ๋, ์ํ์ ์์ ๋น๋กํด์ ๊ธฐ์ต ๊ณต๊ฐ์ด ํ์ํ๊ฒ ๋ฉ๋๋ค.
๊ธฐ์ต ๊ณต๊ฐ ํจ์จ์ฑ์ ๊ณ ๋ คํ๋ค๋ฉด ์คํ ๋งํ์ ์ํ์ ์๋ฅผ ๊ฐ๊ธ์ ์ค์ด๋ ๊ฒ์ด ๋ฐ๋์งํ๋ฉฐ, ์ด๋ฅผ ์ํ ์๊ณ ๋ฆฌ์ฆ์ ์์๋ณด๊ฒ ์ต๋๋ค.
๊ตฌ๋ถ๊ฐ๋ฅ(distinguishable)๊ณผ ๊ตฌ๋ถ๋ถ๊ฐ๋ฅ(indistinguishable)
์์์ dfa์์์ ๋ ์ํ p์ q์ ๋ํด, ์ด๋ค์ด ๋ชจ๋ ๋ฌธ์์ด $$w \in {\Sigma}^{*}$$
์ ๋ํด, ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฒฝ์ฐ ์ด๋ค์ ๊ตฌ๋ถ๋ถ๊ฐ๋ฅ(indistinguishable)์ด๋ผ ํฉ๋๋ค.
$$ {\delta}^{*}(p, w) \in F \;\; implies \;\; {\delta}(q, w) \in F $$
ํน์
$$ {\delta}^{*}(p, w) \notin F \;\; implies \;\; {\delta}(q, w) \notin F $$
ํํธ, ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฌธ์์ด $$w \in {\Sigma}^{*}$$๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ, ์ํ p์ q๋ ๋ฌธ์์ด w์ ์ํด ๊ตฌ๋ถ๊ฐ๋ฅ(distinguishable)์ด๋ผ ํฉ๋๋ค
$$ {\delta}^{*}(p, w) \in F \;\; implies \;\; {\delta}(q, w) \notin F $$
๋๋
$$ {\delta}^{*}(p, w) \notin F \;\; implies \;\; {\delta}(q, w) \in F $$
๊ตฌ๋ถ๋ถ๊ฐ๋ฅ์ฑ์ ๋์น๊ด๊ณ
๋ถ๋ช ํ ๋ ๊ฐ์ ์ํ๋ ์๋ก ๊ตฌ๋ถ๊ฐ๋ฅํ๊ฑฐ๋ ๊ตฌ๋ถ๋ถ๊ฐ๋ฅํ ๊ฒ์ ๋๋ค.
๊ตฌ๋ถ๋ถ๊ฐ๋ฅ์ฑ์ ๋์น๊ด๊ณ(equivalence relation)์ ์ฑ์ง์ ๊ฐ์ง๋๋ค.
์ํ p์ q๊ฐ ๊ตฌ๋ถ๋ถ๊ฐ๋ฅ์ด๊ณ , ์ํ q์ r์ด ๊ตฌ๋ถ๋ถ๊ฐ๋ฅ์ด๋ฉด, ์ํ p์ r๋ ๊ตฌ๋ถ๋ถ๊ฐ๋ฅ์ ๋๋ค.
์์์ dfa์์ ์ํ์ ์๋ฅผ ์ค์ด๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๊ตฌ๋ถ๋ถ๊ฐ๋ฅ ์ํ๋ค์ ๋ณํฉํ๋ ๊ฒ์ ๋๋ค
๊ตฌ๋ถ๋ถ๊ฐ๋ฅํ ์ํ๋ค์ ์์ ์ฐพ์๋ด๋ ๋ฐฉ๋ฒ์ procedure:mark๋ผ ๋ถ๋ฅด๋ฉฐ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
procedure : mark
1. ๋ชจ๋ ๋๋ฌ ๋ถ๊ฐ๋ฅ ์ํ๋ค์ ์ ๊ฑฐํฉ๋๋ค.
์ด๋ dfa์ ๊ทธ๋ํ์์ ์ด๊ธฐ ์ํ๋ก๋ถํฐ์ ๋ชจ๋ ๋จ์ ๊ฒฝ๋ก๋ค์ ์ด๊ฑฐํจ์ผ๋ก์จ ์ํํ ์ ์์ต๋๋ค.
ํด๋น ๊ฒฝ๋ก ์์ ๋ํ๋์ง ์๋๋ค๋ฉด ๋๋ฌ ๋ถ๊ฐ๋ฅ ์ํ์ธ ๊ฒ์ ๋๋ค.
2. ๋ชจ๋ ์ํ ์ (p, q)์ ๋ํด ๋ค์ ๊ฒฝ์ฐ๋ฅผ ๋ง์กฑํ๋ ๊ฒฝ์ฐ (p, q)๋ฅผ ๊ตฌ๋ถ๊ฐ๋ฅ์ด๋ผ ๋งํฌํฉ๋๋ค.
$$p \in F \;\; and \;\; q \notin F $$
$$๋๋, \;\; p \notin F \;\; and \;\; q \in F $$
3. ์ด์ ์ ๋งํฌ๋์ง ์์ ์ํ ์์ด ๋ ์ด์ ๋งํฌ๋์ง ์์ ๋๊น์ง ๋ค์ ์์ ์ ๋ฐ๋ณตํฉ๋๋ค.
๋ชจ๋ ์ (p, q)์ ๋ชจ๋ a∈Σ์ ๋ํ์ฌ ๋ค์์ ๊ณ์ฐํฉ๋๋ค.
$$\delta(p, a) = p_a \;\;์ \;\; \delta(q, a) = q_a $$
์ด๋ (p(a), q(a))์์ด ๊ตฌ๋ถ๊ฐ๋ฅ์ผ๋ก ๋งํฌ๋์ด ์์ผ๋ฉด, (p, q)๋ฅผ ๊ตฌ๋ถ๊ฐ๋ฅ์ผ๋ก ๋งํฌํฉ๋๋ค.
์์ ํ๋ก์์ ๊ฐ ๋ชจ๋ ๊ตฌ๋ถ๊ฐ๋ฅํ ์๋ค์ ๋งํฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด ๋ฉ๋๋ค.
์์๋ฅผ ํตํด ์ดํด๋ณด๊ฒ ์ต๋๋ค.
1. ๋๋ฌ ๋ถ๊ฐ๋ฅ ์ํ๋ค์ ์กด์ฌํ์ง ์์ต๋๋ค. ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๋๋ค.
2. procedure :mark ์ 2๋จ๊ณ์์, ์ํ๋ค์ ์งํฉ์ ์น์ธ ์ํ์ ๋น์น์ธ ์ํ๋ก ๋ถํ ํ์ฌ ๋ค์ ๋ ๊ฐ์ ๋์น ๋ถ๋ฅ๋ฅผ ์ป์ต๋๋ค.
$$\left\{q_0, q_1, q_3 \right\} \;๊ณผ\; \left\{q_2, q_4 \right\}$$
3. procedure :mark ์ 3๋จ๊ณ๋ฅผ ์งํํฉ๋๋ค.
๋งํฌ๋์ง ์์ ์ (q(0)๊ณผ q(1))์ ๋ํ์ฌ,
$$\delta(q_0, 0) = q_1\;\;\; ๊ทธ๋ฆฌ๊ณ \;\;\; \delta(q_1, 0) = q_2$$
์ด๋ฏ๋ก q(0)๊ณผ q(1)์ ๊ตฌ๋ถ๊ฐ๋ฅ์ผ๋ก ๋งํฌํฉ๋๋ค.
$$๋ฐ๋ผ์, \;\; \left\{q_0, q_1, q_3 \right\}\;\;์ด\;\; \left\{q_0 \right\}, \;\;\; \left\{q_1, q_3 \right\} \;\; ์ผ๋ก ๋ถ๋ฆฌ๋ฉ๋๋ค.$$
$$์ด๋ \;\;\delta(q_1, 0) = q_2\;\;\; ๊ทธ๋ฆฌ๊ณ \;\;\; \delta(q_3, 0) = q_2$$
$$\delta(q_1, 1) = q_4;\;\; ๊ทธ๋ฆฌ๊ณ \;\;\; \delta(q_3, 1) = q_4$$
์ด๋ฏ๋ก q(1)๊ณผ q(3)์ ๊ตฌ๋ถ๋ถ๊ฐ๋ฅ์ ๋๋ค.
$$๋ํ \;\; \delta(q_2, 0) = q_1\;\;\; ๊ทธ๋ฆฌ๊ณ \;\;\; \delta(q_4, 0) = q_4$$
์ด๋ฏ๋ก q(2)๊ณผ q(4)์ ๊ตฌ๋ถ๊ฐ๋ฅ์ผ๋ก ๋งํฌํฉ๋๋ค.
์์ ๊ณผ์ ์ ํตํด ๊ตฌ๋ถ๋ถ๊ฐ๋ฅํ ๋ถ๋ฅ๋ค์ด ํ์ธ๋๊ณ ๋๋ฉด,
์ต์(minimal) dfa์ ๊ตฌ์ฑ์ ๊ฐ๋จํฉ๋๋ค.
๋ค์ ๊ณผ์ ์ ํตํด ์ต์ dfa๋ฅผ ๊ตฌํฉ๋๋ค.
procedure : reduce
์ฃผ์ด์ง ์คํ ๋งํ
$$M = (Q, \Sigma, \delta, q_0, F)$$
์ ๋ํด, ๋ค์๊ณผ ๊ฐ์ ์ ์ฐจ์ ๋ฐ๋ผ ์ถ์๋ DFA๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
$$์ถ์๋\; dfa \;\; \hat{M} = (\hat{Q}, \Sigma, \hat{\delta}, \hat{q_0}, \hat{F})$$
1. ํ๋ก์์ mark๋ฅผ ์ฌ์ฉํ์ฌ ๋์น ๋ถ๋ฅ๋ค์ ์์ฑํฉ๋๋ค.
์ฆ ์์์ ํ์๋ ๊ณผ์ ์ ํตํด ๋์น ๋ถ๋ฅ๋ค์ ์ฐพ์๋ด๋ ๊ฒ์ ๋๋ค.
2.
$$๊ตฌ๋ถ๋ถ๊ฐ๋ฅํ \;\;์ํ๋ค์\;\; ์งํฉ\;\; \left\{q_i, q_j, ..., q_k \right\}\;\;์ \;๊ฐ๊ฐ์ \;์์๋ค์\; ๋ํ์ฌ$$
$$๋ผ๋ฒจ์ด\; ij...k\;์ธ \;\; \hat{M}\;์ \;์ํ(state)\;๋ฅผ \;์์ฑํฉ๋๋ค.$$
3.
๋ค์ ํํ๋ฅผ ๊ฐ๋ M์ ๊ฐ ์ ์ด ๊ท์น์ ๋ํ์ฌ
$$\delta(q_r, a) = q_p$$
qr๊ณผ qp๊ฐ ์ํ ์งํฉ์ ์ฐพ์๋ ๋๋ค.
$$๋ง์ผ \;\; q_r \in \left\{ q_i, q_j, .., q_k \right\}\;\;์ด๊ณ $$
$$q_p \in \left\{ q_l, q_m, .., q_n \right\} \;\; ์ด๋ผ๋ฉด \;\; \hat{\delta}์ \;\; ์๋ \;๊ท์น์\; ์ถ๊ฐํฉ๋๋ค$$
$$\hat{\delta}(ij...k, a) = lm...n$$
4. $$์ด๊ธฐ \;์ํ\; \hat{q_0}์\;\; \hat{M}์\; ์ํ๋ค \; ์ค\; ๋ผ๋ฒจ์ด \; 0์\; ํฌํจํ๋\; ์ํ์ ๋๋ค$$
5.$$\hat{F}๋ \; ๋ผ๋ฒจ์ด \; q_i \in F \;์ธ \;i๋ฅผ \;ํฌํจํ๋ \; ๋ชจ๋ \; ์ํ๋ค์ \; ์งํฉ์ผ๋ก \; ํฉ๋๋ค.$$
'๐ฅ Computer Science > ๊ณ์ฐ์ด๋ก ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๊ณ์ฐ์ด๋ก ] - (5) ์ ๊ท ํํ (Regular Expression) (0) | 2022.05.04 |
---|---|
[๊ณ์ฐ์ด๋ก ] - (4) ๋ฐ๋ฆฌ๊ธฐ๊ณ(Mealy Machine), ๋ฌด์ด๊ธฐ๊ณ(Moore Machine) (0) | 2022.04.25 |
[๊ณ์ฐ์ด๋ก ] - (2) ์ ํ ์คํ ๋งํ (Finite Automata) : DFA, NFA (0) | 2022.04.15 |
[๊ณ์ฐ์ด๋ก ] - (1) ์ธ์ด, ๋ฌธ๋ฒ, ์คํ ๋งํ (0) | 2022.04.06 |
[๊ณ์ฐ์ด๋ก ] -๊ธฐ๋ณธ ์ง์(3) : ๊ทธ๋ํ์ ํธ๋ฆฌ (0) | 2022.03.19 |