ํ์ฑ(Parsing)
์ฃผ์ด์ง ๋ฌธ์์ด w๊ฐ ์ด๋ ํ ๋ฌธ๋ฒ G๋ก๋ถํฐ ์์ฑ๋๋ ์ธ์ด L(G)์ ์ํ๋์ง์ ์ฌ๋ถ๋ฅผ ์์์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
์ด๋ฅผ ํ๋ณํ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ์ ์์์ฑ(membership) ์๊ณ ๋ฆฌ์ฆ์ด๋ผ ํฉ๋๋ค.
ํ์ฑ์ ์๋ฏธ๋ L(G)์ ์ํ๋ w๊ฐ ์ ๋๋๋๋ฐ ์ฌ์ฉ๋ ์ผ๋ จ์ ์์ฑ๊ท์น์ ์ฐพ๋ ๊ฒ ์ ๋๋ค.
๋จ์ํ ํ์ฑ ๋ฐฉ๋ฒ์ผ๋ก๋ ์ฒด๊ณ์ (systematically)์ผ๋ก ๊ฐ๋ฅํ ๋ชจ๋ ์ ๋๋ค์ ๊ตฌ์ฑํด ๊ฐ๋ฉด์, ๊ทธ ์ค์ w์ ์ผ์นํ๋ ๊ฒ์ด ์๋์ง๋ฅผ ์์๋ณด๋ ๊ฒ์ ๋๋ค.
๊ตฌ์ฒด์ ์ผ๋ก, ์ฒ์์ผ๋ก๋ ๋ค์๊ณผ ๊ฐ์ ํํ์ ์์ ์ฌ๋ฒ์ ์ข๋ณ์ผ๋ก ๊ฐ๋ ๋ชจ๋ ์์ฑ๊ท์น๋ค์ ์ดํด๋ด ๋๋ค.
$$S \to x$$
์์ ์ฌ๋ฒ S๋ก๋ถํฐ ํ ๋จ๊ณ์ ์ ๋๋ ์ ์๋ ๋ชจ๋ ๋ฌธ์ฅํํ w๋ฅผ ์ฐพ์ต๋๋ค.
๋ง์ฝ ์ด๋ x๋ ์ผ์นํ์ง ์๋๋ค๋ฉด, ์ดํ ๊ฐx์ ๊ฐ์ฅ ์ผ์ชฝ ๋ณ์์ ์ ์ฉ๋ ์ ์๋ ๋ชจ๋ ์์ฑ๊ท์น๋ค์ ์ ์ฉํฉ๋๋ค.
์ด๋ ๊ฒ ์์ฑ๋ ์๋ก์ด ๋ฌธ์ฅํํ๋ค ์ค ์ผ๋ถ๋ w์ ์ ๋๋ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฉฐ, ์ผ๋ถ๋ ์ ์ธ๋ฉ๋๋ค.
์ด๋ฐ์์ผ๋ก ๊ณ์ํ์ฌ w๋ฅผ ์ ๋ํ ๋๊น์ง ๋ฐ๋ณตํฉ๋๋ค.
์ด๋ฌํ ๋ฐฉ๋ฒ์ w์ ์ ๋๋ฅผ ์ฐพ๊ธฐ ์ํด ์์ ์ฌ๋ฒ S๋ก๋ถํฐ ๋ชจ๋ ๊ฐ๋ฅํ ์ ๋๋ค์ ์์ฑํ๋ฏ๋ก,
์ด๋ฅผ ์ฒ ์ ํ ํ์ ํ์ฑ(exhaustive search parsing)์ด๋ผ ๋ถ๋ฆ ๋๋ค.
ํด๋น ํ์ฑ๋ฐฉ๋ฒ์ ์ ๋ํธ๋ฆฌ๋ฅผ ๋ฃจํธ์์๋ถํฐ ์์ํ์ฌ ์๋๋ก ๋ด๋ ค์ค๋ฉด์ ๊ตฌ์ฑํ๋ ๊ฒ์ผ๋ก ๋ณผ ์ ์๊ธฐ ๋๋ฌธ์ ํํฅ์ ํ์ฑ(top-down parsing)์ ํ ํํ์ ๋๋ค.
์์

์ฒ ์ ํ ํ์ ํ์ฑ์ ๋ฌธ์ ์
๋ชจ๋ ๊ฐ๋ฅํ ์ ๋ ๊ณผ์ ๋ค์ ๋ชจ๋ ๊ณ ๋ คํ๊ธฐ ๋๋ฌธ์, ์ฐ์ ํจ์จ์ ์ด์ง ๋ชปํฉ๋๋ค.
๊ฒ๋ค๊ฐ w๊ฐ L(G)์ ์ํ์ง ์๋๋ค๋ฉด, ํด๋น ๊ณผ์ ์ด ์ข ๋ฃ๋์ง ์์ ์๋ ์์ต๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, ๋ฌธ๋ฒ์ด ๊ฐ์ง ์ ์๋ ์์ฑ๊ท์น์ ํํ์ ์ ํ์ ๋๋ฉด ์ฒ ์ ํ ํ์ ํ์ฑ์์ ๋ฐ์ํ๋ ๋น์ข ๋ฃ(nontermination)๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์์ฑ๊ท์น์ ์ ํ์ ๋ค์ ๋ ์์ฑ๊ท์น์ ํ์ฉํ์ง ์๋ ๊ฒ์ ๋๋ค.
๋๋ค ์์ฑ๊ท์น๊ณผ, ๋จ์ ์์ฑ๊ท์น(์ฐ๋ณ์ ๋ณ์ ํ๋๋ง์ด ์กด์ฌ)์ ์ ๊ฑฐํฉ๋๋ค.
$$A \to \lambda$$
$$A \to B$$
์ ์์ฑ๊ท์น์์ ์ ๊ฑฐํจ์ผ๋ก์จ ๋ฌธ์์ด w์ ๋ํ ํ์ฑ์ ๊ฐ ์ ๋ ๋จ๊ณ๋ง๋ค ๋ฌธ์ฅ ํํ์ ์ฌ๋ณผ์ ์๊ฐ ์ต์ํ ํ๋ ์ด์ ์ฆ๊ฐํ๋ฏ๋ก ํญ์ |w| ๋จ๊ณ ์ด๋ด์ ์ข ๋ฃ๋ฉ๋๋ค.
w์ ๊ธธ์ด ํน์ w๋ฅผ ๊ตฌ์ฑํ๋ ๋จ๋ง ์ฌ๋ฒ๋ค์ ๊ฐ์๋ | w |๋ฅผ ์ด๊ณผํ ์ ์์ผ๋ฉฐ, ๋ฐ๋ผ์ ์ ๋ ๊ณผ์ ์ ์ด ๋จ๊ณ ์๋ 2| w |๋ฅผ ์ด๊ณผํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด ๋ฐฉ๋ฒ์ ๋ฌธ์ฅ ํํ์ ์๊ฐ ์ง๋์น๊ฒ ๋ง์์ง ์ ์๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
์ฒซ ๋จ๊ณ ํ์๋ ์ต๋ |P|๊ฐ์ ๋ฌธ์ฅ ํํ๊ฐ ๋์ฌ ์ ์์ผ๋ฉฐ, ๋๋ฒ์งธ ๋จ๊ณ์๋ |P|์ ์ ๊ณฑ, 3๋ฒ์งธ ๋จ๊ณ์๋ |P|์ 3์ ๊ณฑ, ....
์ฆ ์ง์ ํํ๋ก ์ฆ๊ฐํ๋ฏ๋ก, ์ด๋ ๋งค์ฐ ๋ง์ ๋น์ฉ์ด ์๋ชจ๋ ์ ์์ต๋๋ค.
์ต์ข ์ ์ผ๋ก ์ํ๋ ๊ฒ์ ๋ฌธ์์ด์ ๊ธธ์ด์ ๋น๋กํ๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋, ์ฆ ์ ํ ์๊ฐ(Linear time)์ ๊ฐ๋ ํ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
๊ทธ๋ฌ๋ ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ ์ด๋ฌํ ์๊ณ ๋ฆฌ์ฆ์ ์์ง ๋ฐํ์ง์ง ์์์ต๋๋ค๋ง
ํน์ ํ ๊ฒฝ์ฐ, ์ ํ ์๊ฐ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ ์ ์์ต๋๋ค.
๋จ์ ๋ฌธ๋ฒ(Simple Grammer) (s-๋ฌธ๋ฒ)
๋ฌธ๋งฅ-์์ ๋ฌธ๋ฒ G = (V, T, S, P)์ ๋ชจ๋ ์์ฑ๊ท์น๋ค์ด ๋ค์๊ณผ ๊ฐ์ ํํ์ด๋ฉด ๋จ์ ๋ฌธ๋ฒ(simple grammer) ํน์ s-๋ฌธ๋ฒ(s-grammer)์ด๋ผ ๋ถ๋ฆฝ๋๋ค.
$$A \to ax$$
์ฌ๊ธฐ์ A โ V, a โ T, x โ V* ์ด๋ฉฐ, ์์์ ์ (A, a)๋ P์์ ๋ง์์ผ ํ ๋ฒ ๋ํ๋ฉ๋๋ค.
terminal symbol์ด ๋ฌธ๋ฒ์ ์ฐ๋ณ์ ๋งจ ์์ ๋จ ํ๋ ๋ฑ์ฅํ์ฌ์ผ ํ๋ฉฐ, ์ดํ ๋ฑ์ฅํ๋ Nonterminal Symbol์ ์์๋ ์ ์ฝ์ด ์์ต๋๋ค.
์์
์๋๋ s-๋ฌธ๋ฒ์ ๋๋ค.
$$S \to aS \; | \; bSS \; | \; c$$
์๋๋ s-๋ฌธ๋ฒ์ด ์๋๋๋ค.
$$S \to aS \; | bSS \; |\; aSS \; | \; c$$
$$S \to Sa$$
๋จ์ ๋ฌธ๋ฒ(S-๋ฌธ๋ฒ)์ ํ์ฑ
G๊ฐ s-๋ฌธ๋ฒ์ด๋ฉด, L(G)์ ์ํ ๋ชจ๋ ๋ฌธ์์ด w๊ฐ | w |์ ๋น๋กํ๋ ๋ ธ๋ ฅ(์ ํ ์๊ฐ)์ผ๋ก ํ์ฑ๋ ์ ์์ต๋๋ค
s-๋ฌธ๋ฒ์ ์ข๋ณ์ ๋ณ์์ ๋ํ์ฌ, ์ฐ๋ณ์ ์ค๋ณต๋์ง ์๋ terminal symbol 1๊ฐ๋ก ์์ํ๋ฏ๋ก ํ์ฑ์ ๊ฐ ๋จ๊ณ๋ง๋ค ํ๋์ terminal symbol์ ์์ฑํฉ๋๋ค.
์ฆ ์ ์ฒด ๊ณผ์ ์ด | w | ๋จ๊ณ ๋ด์ ์๋ฃ๋ฉ๋๋ค.
๋ชจํธ์ฑ(Ambiguity)
w โ L(G)์ธ ํ ๋ฌธ์์ด์ ๋ํ์ฌ ์ฌ๋ฌ ๊ฐ์ ๋ค๋ฅธ ์ ๋ ํธ๋ฆฌ๋ค์ด ์กด์ฌํ ๊ฐ๋ฅ์ฑ์ด ์๋ ๊ฒ์ ๋ชจํธ์ฑ์ด๋ผ ํฉ๋๋ค.
๋ฌธ๋งฅ-์์ ๋ฌธ๋ฒ G์์ ๋ ๊ฐ ์ด์์ ์๋ก ๋ค๋ฅธ ์ ๋ ํธ๋ฆฌ๋ฅผ ๊ฐ๋ ๋ฌธ์์ด w๊ฐ ์กด์ฌํ๋ฉด, ๋ฌธ๋ฒ G๋ ๋ชจํธํ๋ค๊ณ ํฉ๋๋ค.
์ฆ ๋ชจํธ์ฑ์ ์ด๋ค ๋ฌธ์์ด w์ ๋ํ์ฌ ๋ ๊ฐ ์ด์์ ์ข์ธก ์ฐ์ ํน์ ์ฐ์ธก ์ฐ์ ์ ๋๊ฐ ์กด์ฌํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๋ชจํธ์ฑ์ ์์ฐ์ธ์ด์ ์ผ๋ฐ์ ์ธ ํน์ง์ ๋๋ค.
์์ฐ์ธ์ด์์๋ ๋ชจํธ์ฑ์ด ํ์ฉ๋๋ฉฐ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ๋ ์ ์์ง๋ง, ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์๋ ๊ฐ ๋ฌธ์ฅ์ด ์ ํํ ํ๋์ ์๋ฏธ๋ก ํด์๋์ด์ผ ํ๊ธฐ์ ๊ฐ๋ฅํ ๋ชจํธ์ฑ์ ์ ๊ฑฐํด์ผ ํฉ๋๋ค.
์ด๋ฅผ ์ํด ์ฃผ์ด์ง ๋ฌธ๋ฒ์ ๋์น์ด๋ฉด์ ๋ชจํธํ์ง ์์ ๋ค๋ฅธ ๋ฌธ๋ฒ์ผ๋ก ๋ค์ ๊ตฌ์ฑํ์ฌ ๋ชจํธ์ฑ์ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ ๋ฌธ๋ฒ์ ํตํด a + a*a๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
$$ E \to E \;+ \;E\; |\; E \;* \;E\; |\; a$$
$$E \Rightarrow E + E \Rightarrow a+ E \Rightarrow a + E * E \Rightarrow a + a * E \Rightarrow a + a * a$$
$$E \Rightarrow E * E \Rightarrow E + E * E \Rightarrow a + E * E \Rightarrow a + a * E \Rightarrow a + a * a$$
๋ค์๊ณผ ๊ฐ์ด ๋๊ฐ์ ์ข์ธก ์ฐ์ ์ ๋๊ฐ ์กด์ฌํ๋ฏ๋ก ์ด๋ ๋ชจํธํ ๋ฌธ๋ฒ์ ๋๋ค.
ํด๋น ๋ฌธ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ด ๋ณํํ์ฌ ๋ชจํธํ์ง ์๋๋ก ๋ฐ๊พธ์ด ๋ณด๊ฒ ์ต๋๋ค.
$$E \to \;E \;+\; T \;| \;T$$
$$T \to \;T \;*\; F \;| \;F$$
$$F \to \;(E)\; | \;a$$
๊ณ ์ ์ ์ผ๋ก ๋ชจํธํจ(Inherently Ambiguous)
์์์ ๋ณด์๋ ๋ชจํธํ ๋ฌธ๋ฒ๋ค์ ๋์น์ด๋ฉด์ ๋ชจํธํ์ง ์์ ๋ฌธ๋ฒ์ผ๋ก ์ฌ๊ตฌ์ฑํ ์ ์์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ค ์ธ์ด๋ ์ธ์ด ์์ฒด๊ฐ ๊ฐ๋ ๋ชจํธ์ฑ ๋๋ฌธ์ ๋ชจํธํ์ง ์์ ๋ฌธ๋ฒ์ ๊ตฌ์ฑ์ด ๋ถ๊ฐ๋ฅํ ์ ์์ต๋๋ค.
๋ฌธ๋งฅ ์์ ์ธ์ด L์ด ๋ชจํธํ์ง ์์ ๋ฌธ๋ฒ์ ๊ฐ์ง๋ฉด L์ ๋ชจํธํ์ง ์๋ค๊ณ ํฉ๋๋ค.
L์ ์์ฑํ๋ ๋ชจ๋ ๋ฌธ๋ฒ๋ค์ ๋ํด์ ๊ฐ ๋ฌธ๋ฒ์ด ๋ชจํธํ๋ฉด L์ ๊ณ ์ ์ ์ผ๋ก ๋ชจํธํ๋ค๊ณ ํฉ๋๋ค.
'๐ฅ Computer Science > ๊ณ์ฐ์ด๋ก ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๊ณ์ฐ์ด๋ก ] - (13) ์ ๊ทํ(Chomwky ์ ๊ทํ, Greibach ์ ๊ทํ) (0) | 2022.05.26 |
---|---|
[๊ณ์ฐ์ด๋ก ] - (12) ๋ฌธ๋งฅ ์์ ๋ฌธ๋ฒ์ ๋จ์ํ (2) | 2022.05.26 |
[๊ณ์ฐ์ด๋ก ] - (10) ๋ฌธ๋งฅ - ์์ ์ธ์ด(Context-free Grammer, CFG) (0) | 2022.05.22 |
[๊ณ์ฐ์ด๋ก ] - (9) ํํ ๋ณด์กฐ์ ๋ฆฌ (Pumping lemma) (0) | 2022.05.22 |
[๊ณ์ฐ์ด๋ก ] - (8) ๋น์ ๊ท ์ธ์ด์ ์๋ณ (0) | 2022.05.22 |
ํ์ฑ(Parsing)
์ฃผ์ด์ง ๋ฌธ์์ด w๊ฐ ์ด๋ ํ ๋ฌธ๋ฒ G๋ก๋ถํฐ ์์ฑ๋๋ ์ธ์ด L(G)์ ์ํ๋์ง์ ์ฌ๋ถ๋ฅผ ์์์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
์ด๋ฅผ ํ๋ณํ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ์ ์์์ฑ(membership) ์๊ณ ๋ฆฌ์ฆ์ด๋ผ ํฉ๋๋ค.
ํ์ฑ์ ์๋ฏธ๋ L(G)์ ์ํ๋ w๊ฐ ์ ๋๋๋๋ฐ ์ฌ์ฉ๋ ์ผ๋ จ์ ์์ฑ๊ท์น์ ์ฐพ๋ ๊ฒ ์ ๋๋ค.
๋จ์ํ ํ์ฑ ๋ฐฉ๋ฒ์ผ๋ก๋ ์ฒด๊ณ์ (systematically)์ผ๋ก ๊ฐ๋ฅํ ๋ชจ๋ ์ ๋๋ค์ ๊ตฌ์ฑํด ๊ฐ๋ฉด์, ๊ทธ ์ค์ w์ ์ผ์นํ๋ ๊ฒ์ด ์๋์ง๋ฅผ ์์๋ณด๋ ๊ฒ์ ๋๋ค.
๊ตฌ์ฒด์ ์ผ๋ก, ์ฒ์์ผ๋ก๋ ๋ค์๊ณผ ๊ฐ์ ํํ์ ์์ ์ฌ๋ฒ์ ์ข๋ณ์ผ๋ก ๊ฐ๋ ๋ชจ๋ ์์ฑ๊ท์น๋ค์ ์ดํด๋ด ๋๋ค.
SโxSโx
์์ ์ฌ๋ฒ S๋ก๋ถํฐ ํ ๋จ๊ณ์ ์ ๋๋ ์ ์๋ ๋ชจ๋ ๋ฌธ์ฅํํ w๋ฅผ ์ฐพ์ต๋๋ค.
๋ง์ฝ ์ด๋ x๋ ์ผ์นํ์ง ์๋๋ค๋ฉด, ์ดํ ๊ฐx์ ๊ฐ์ฅ ์ผ์ชฝ ๋ณ์์ ์ ์ฉ๋ ์ ์๋ ๋ชจ๋ ์์ฑ๊ท์น๋ค์ ์ ์ฉํฉ๋๋ค.
์ด๋ ๊ฒ ์์ฑ๋ ์๋ก์ด ๋ฌธ์ฅํํ๋ค ์ค ์ผ๋ถ๋ w์ ์ ๋๋ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฉฐ, ์ผ๋ถ๋ ์ ์ธ๋ฉ๋๋ค.
์ด๋ฐ์์ผ๋ก ๊ณ์ํ์ฌ w๋ฅผ ์ ๋ํ ๋๊น์ง ๋ฐ๋ณตํฉ๋๋ค.
์ด๋ฌํ ๋ฐฉ๋ฒ์ w์ ์ ๋๋ฅผ ์ฐพ๊ธฐ ์ํด ์์ ์ฌ๋ฒ S๋ก๋ถํฐ ๋ชจ๋ ๊ฐ๋ฅํ ์ ๋๋ค์ ์์ฑํ๋ฏ๋ก,
์ด๋ฅผ ์ฒ ์ ํ ํ์ ํ์ฑ(exhaustive search parsing)์ด๋ผ ๋ถ๋ฆ ๋๋ค.
ํด๋น ํ์ฑ๋ฐฉ๋ฒ์ ์ ๋ํธ๋ฆฌ๋ฅผ ๋ฃจํธ์์๋ถํฐ ์์ํ์ฌ ์๋๋ก ๋ด๋ ค์ค๋ฉด์ ๊ตฌ์ฑํ๋ ๊ฒ์ผ๋ก ๋ณผ ์ ์๊ธฐ ๋๋ฌธ์ ํํฅ์ ํ์ฑ(top-down parsing)์ ํ ํํ์ ๋๋ค.
์์

์ฒ ์ ํ ํ์ ํ์ฑ์ ๋ฌธ์ ์
๋ชจ๋ ๊ฐ๋ฅํ ์ ๋ ๊ณผ์ ๋ค์ ๋ชจ๋ ๊ณ ๋ คํ๊ธฐ ๋๋ฌธ์, ์ฐ์ ํจ์จ์ ์ด์ง ๋ชปํฉ๋๋ค.
๊ฒ๋ค๊ฐ w๊ฐ L(G)์ ์ํ์ง ์๋๋ค๋ฉด, ํด๋น ๊ณผ์ ์ด ์ข ๋ฃ๋์ง ์์ ์๋ ์์ต๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, ๋ฌธ๋ฒ์ด ๊ฐ์ง ์ ์๋ ์์ฑ๊ท์น์ ํํ์ ์ ํ์ ๋๋ฉด ์ฒ ์ ํ ํ์ ํ์ฑ์์ ๋ฐ์ํ๋ ๋น์ข ๋ฃ(nontermination)๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์์ฑ๊ท์น์ ์ ํ์ ๋ค์ ๋ ์์ฑ๊ท์น์ ํ์ฉํ์ง ์๋ ๊ฒ์ ๋๋ค.
๋๋ค ์์ฑ๊ท์น๊ณผ, ๋จ์ ์์ฑ๊ท์น(์ฐ๋ณ์ ๋ณ์ ํ๋๋ง์ด ์กด์ฌ)์ ์ ๊ฑฐํฉ๋๋ค.
AโฮปAโฮป
AโBAโB
์ ์์ฑ๊ท์น์์ ์ ๊ฑฐํจ์ผ๋ก์จ ๋ฌธ์์ด w์ ๋ํ ํ์ฑ์ ๊ฐ ์ ๋ ๋จ๊ณ๋ง๋ค ๋ฌธ์ฅ ํํ์ ์ฌ๋ณผ์ ์๊ฐ ์ต์ํ ํ๋ ์ด์ ์ฆ๊ฐํ๋ฏ๋ก ํญ์ |w| ๋จ๊ณ ์ด๋ด์ ์ข ๋ฃ๋ฉ๋๋ค.
w์ ๊ธธ์ด ํน์ w๋ฅผ ๊ตฌ์ฑํ๋ ๋จ๋ง ์ฌ๋ฒ๋ค์ ๊ฐ์๋ | w |๋ฅผ ์ด๊ณผํ ์ ์์ผ๋ฉฐ, ๋ฐ๋ผ์ ์ ๋ ๊ณผ์ ์ ์ด ๋จ๊ณ ์๋ 2| w |๋ฅผ ์ด๊ณผํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด ๋ฐฉ๋ฒ์ ๋ฌธ์ฅ ํํ์ ์๊ฐ ์ง๋์น๊ฒ ๋ง์์ง ์ ์๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
์ฒซ ๋จ๊ณ ํ์๋ ์ต๋ |P|๊ฐ์ ๋ฌธ์ฅ ํํ๊ฐ ๋์ฌ ์ ์์ผ๋ฉฐ, ๋๋ฒ์งธ ๋จ๊ณ์๋ |P|์ ์ ๊ณฑ, 3๋ฒ์งธ ๋จ๊ณ์๋ |P|์ 3์ ๊ณฑ, ....
์ฆ ์ง์ ํํ๋ก ์ฆ๊ฐํ๋ฏ๋ก, ์ด๋ ๋งค์ฐ ๋ง์ ๋น์ฉ์ด ์๋ชจ๋ ์ ์์ต๋๋ค.
์ต์ข ์ ์ผ๋ก ์ํ๋ ๊ฒ์ ๋ฌธ์์ด์ ๊ธธ์ด์ ๋น๋กํ๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋, ์ฆ ์ ํ ์๊ฐ(Linear time)์ ๊ฐ๋ ํ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
๊ทธ๋ฌ๋ ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ ์ด๋ฌํ ์๊ณ ๋ฆฌ์ฆ์ ์์ง ๋ฐํ์ง์ง ์์์ต๋๋ค๋ง
ํน์ ํ ๊ฒฝ์ฐ, ์ ํ ์๊ฐ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ ์ ์์ต๋๋ค.
๋จ์ ๋ฌธ๋ฒ(Simple Grammer) (s-๋ฌธ๋ฒ)
๋ฌธ๋งฅ-์์ ๋ฌธ๋ฒ G = (V, T, S, P)์ ๋ชจ๋ ์์ฑ๊ท์น๋ค์ด ๋ค์๊ณผ ๊ฐ์ ํํ์ด๋ฉด ๋จ์ ๋ฌธ๋ฒ(simple grammer) ํน์ s-๋ฌธ๋ฒ(s-grammer)์ด๋ผ ๋ถ๋ฆฝ๋๋ค.
AโaxAโax
์ฌ๊ธฐ์ A โ V, a โ T, x โ V* ์ด๋ฉฐ, ์์์ ์ (A, a)๋ P์์ ๋ง์์ผ ํ ๋ฒ ๋ํ๋ฉ๋๋ค.
terminal symbol์ด ๋ฌธ๋ฒ์ ์ฐ๋ณ์ ๋งจ ์์ ๋จ ํ๋ ๋ฑ์ฅํ์ฌ์ผ ํ๋ฉฐ, ์ดํ ๋ฑ์ฅํ๋ Nonterminal Symbol์ ์์๋ ์ ์ฝ์ด ์์ต๋๋ค.
์์
์๋๋ s-๋ฌธ๋ฒ์ ๋๋ค.
SโaS|bSS|cSโaS|bSS|c
์๋๋ s-๋ฌธ๋ฒ์ด ์๋๋๋ค.
SโaS|bSS|aSS|cSโaS|bSS|aSS|c
SโSaSโSa
๋จ์ ๋ฌธ๋ฒ(S-๋ฌธ๋ฒ)์ ํ์ฑ
G๊ฐ s-๋ฌธ๋ฒ์ด๋ฉด, L(G)์ ์ํ ๋ชจ๋ ๋ฌธ์์ด w๊ฐ | w |์ ๋น๋กํ๋ ๋ ธ๋ ฅ(์ ํ ์๊ฐ)์ผ๋ก ํ์ฑ๋ ์ ์์ต๋๋ค
s-๋ฌธ๋ฒ์ ์ข๋ณ์ ๋ณ์์ ๋ํ์ฌ, ์ฐ๋ณ์ ์ค๋ณต๋์ง ์๋ terminal symbol 1๊ฐ๋ก ์์ํ๋ฏ๋ก ํ์ฑ์ ๊ฐ ๋จ๊ณ๋ง๋ค ํ๋์ terminal symbol์ ์์ฑํฉ๋๋ค.
์ฆ ์ ์ฒด ๊ณผ์ ์ด | w | ๋จ๊ณ ๋ด์ ์๋ฃ๋ฉ๋๋ค.
๋ชจํธ์ฑ(Ambiguity)
w โ L(G)์ธ ํ ๋ฌธ์์ด์ ๋ํ์ฌ ์ฌ๋ฌ ๊ฐ์ ๋ค๋ฅธ ์ ๋ ํธ๋ฆฌ๋ค์ด ์กด์ฌํ ๊ฐ๋ฅ์ฑ์ด ์๋ ๊ฒ์ ๋ชจํธ์ฑ์ด๋ผ ํฉ๋๋ค.
๋ฌธ๋งฅ-์์ ๋ฌธ๋ฒ G์์ ๋ ๊ฐ ์ด์์ ์๋ก ๋ค๋ฅธ ์ ๋ ํธ๋ฆฌ๋ฅผ ๊ฐ๋ ๋ฌธ์์ด w๊ฐ ์กด์ฌํ๋ฉด, ๋ฌธ๋ฒ G๋ ๋ชจํธํ๋ค๊ณ ํฉ๋๋ค.
์ฆ ๋ชจํธ์ฑ์ ์ด๋ค ๋ฌธ์์ด w์ ๋ํ์ฌ ๋ ๊ฐ ์ด์์ ์ข์ธก ์ฐ์ ํน์ ์ฐ์ธก ์ฐ์ ์ ๋๊ฐ ์กด์ฌํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๋ชจํธ์ฑ์ ์์ฐ์ธ์ด์ ์ผ๋ฐ์ ์ธ ํน์ง์ ๋๋ค.
์์ฐ์ธ์ด์์๋ ๋ชจํธ์ฑ์ด ํ์ฉ๋๋ฉฐ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ๋ ์ ์์ง๋ง, ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์๋ ๊ฐ ๋ฌธ์ฅ์ด ์ ํํ ํ๋์ ์๋ฏธ๋ก ํด์๋์ด์ผ ํ๊ธฐ์ ๊ฐ๋ฅํ ๋ชจํธ์ฑ์ ์ ๊ฑฐํด์ผ ํฉ๋๋ค.
์ด๋ฅผ ์ํด ์ฃผ์ด์ง ๋ฌธ๋ฒ์ ๋์น์ด๋ฉด์ ๋ชจํธํ์ง ์์ ๋ค๋ฅธ ๋ฌธ๋ฒ์ผ๋ก ๋ค์ ๊ตฌ์ฑํ์ฌ ๋ชจํธ์ฑ์ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ ๋ฌธ๋ฒ์ ํตํด a + a*a๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
EโE+E|EโE|aEโE+E|EโE|a
EโE+Eโa+Eโa+EโEโa+aโEโa+aโaEโE+Eโa+Eโa+EโEโa+aโEโa+aโa
EโEโEโE+EโEโa+EโEโa+aโEโa+aโaEโEโEโE+EโEโa+EโEโa+aโEโa+aโa
๋ค์๊ณผ ๊ฐ์ด ๋๊ฐ์ ์ข์ธก ์ฐ์ ์ ๋๊ฐ ์กด์ฌํ๋ฏ๋ก ์ด๋ ๋ชจํธํ ๋ฌธ๋ฒ์ ๋๋ค.
ํด๋น ๋ฌธ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ด ๋ณํํ์ฌ ๋ชจํธํ์ง ์๋๋ก ๋ฐ๊พธ์ด ๋ณด๊ฒ ์ต๋๋ค.
EโE+T|TEโE+T|T
TโTโF|FTโTโF|F
Fโ(E)|aFโ(E)|a
๊ณ ์ ์ ์ผ๋ก ๋ชจํธํจ(Inherently Ambiguous)
์์์ ๋ณด์๋ ๋ชจํธํ ๋ฌธ๋ฒ๋ค์ ๋์น์ด๋ฉด์ ๋ชจํธํ์ง ์์ ๋ฌธ๋ฒ์ผ๋ก ์ฌ๊ตฌ์ฑํ ์ ์์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ค ์ธ์ด๋ ์ธ์ด ์์ฒด๊ฐ ๊ฐ๋ ๋ชจํธ์ฑ ๋๋ฌธ์ ๋ชจํธํ์ง ์์ ๋ฌธ๋ฒ์ ๊ตฌ์ฑ์ด ๋ถ๊ฐ๋ฅํ ์ ์์ต๋๋ค.
๋ฌธ๋งฅ ์์ ์ธ์ด L์ด ๋ชจํธํ์ง ์์ ๋ฌธ๋ฒ์ ๊ฐ์ง๋ฉด L์ ๋ชจํธํ์ง ์๋ค๊ณ ํฉ๋๋ค.
L์ ์์ฑํ๋ ๋ชจ๋ ๋ฌธ๋ฒ๋ค์ ๋ํด์ ๊ฐ ๋ฌธ๋ฒ์ด ๋ชจํธํ๋ฉด L์ ๊ณ ์ ์ ์ผ๋ก ๋ชจํธํ๋ค๊ณ ํฉ๋๋ค.
'๐ฅ Computer Science > ๊ณ์ฐ์ด๋ก ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๊ณ์ฐ์ด๋ก ] - (13) ์ ๊ทํ(Chomwky ์ ๊ทํ, Greibach ์ ๊ทํ) (0) | 2022.05.26 |
---|---|
[๊ณ์ฐ์ด๋ก ] - (12) ๋ฌธ๋งฅ ์์ ๋ฌธ๋ฒ์ ๋จ์ํ (2) | 2022.05.26 |
[๊ณ์ฐ์ด๋ก ] - (10) ๋ฌธ๋งฅ - ์์ ์ธ์ด(Context-free Grammer, CFG) (0) | 2022.05.22 |
[๊ณ์ฐ์ด๋ก ] - (9) ํํ ๋ณด์กฐ์ ๋ฆฌ (Pumping lemma) (0) | 2022.05.22 |
[๊ณ์ฐ์ด๋ก ] - (8) ๋น์ ๊ท ์ธ์ด์ ์๋ณ (0) | 2022.05.22 |