26
형식언어와 오토마타4 1

역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

형식언어와 오토마타4

1

Page 2: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

주요 내용• 형식 언어와 문법

• 정규식과 정규 집합

• 유한 상태 기계

• 오토마타와 언어(정규문법)

Page 3: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

정의: 유한 상태 오토마타

유한 상태 오토마타 M=(S, I, f, s0, F)

S: 유한한 상태 집합I: 유한의 입력 알파벳의 집합f: 상태 추이 함수, s0:초기 상태(starting states) F: 최종 상태(acceptance states)의 집합

Page 4: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

아래와 같은 유한 상태 오토마타 M에서

문자열 W=x1x2x3…xn ∈ I*

fw: 유한 상태 오토마타에 “x1x2x3…xn”을 입력했을 때갖는 상태

1

0,1

00

s0 s1 s21

W=01011fw(S0)=S1 : 문자열 W는 M이 인식하지 못한다.

W’=010110fw’(S0)=S2 : 문자열 W는 M이 인식한다.

Page 5: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

I* 에 속하는 문자열 W 이 연속적으로 입력될 때시작 상태 S0 에서 최종상 F로 이동하면, 문자열 W 는 기계 M=(S, I ,f, s0, F) 이 인식 또는 승인한다고말한다.

기계 M 에 의해서 인식 (또는 승인) 되는 문자열의 집합을M 에 의해서 인식되는 언어 L(M) 라고 한다.

유한 상태 오토마타 M과 언어 L(M)

Page 6: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

예1:다음의 유한 상태 오토마타 M1에 의해 인식되는 언어 L(M1)을구하라.

s0Start

1

s1

0, 1

0

M1

s0Start

1

s1

0, 1

0s0Start

1

s1

0, 10, 1

0

M1

M1 의 최종 상태는 S0 가 유일하다. 따라서 L(M1) 을 구하기 위해서는 S0 에서 S0 로 가는 문자열을구하면 된다. 그것은 하나 이상의 1로 구성되는 문자열이다.

즉 L(M1) = {1n | n =0, 1, ...}

Page 7: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

예2:유한 상태 오토마타 M2에 의해 인식되는 언어 L(M2)을구하라.

M1 의 최종 상태는 S2 가 유일하다. S0 에서 S2 로 가는 문자열은 1과 01이다.

즉 L(M2) = {1, 01}

s0

s1

s2

0, 10

0, 1

1

1

0

Start s3

M2

s0

s1

s2

0, 10, 10

0, 1

1

1

0

Start s3

M2

Page 8: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

예3:유한 상태 오토마타 M3에 의해 인식되는 언어 L(M3)을 구하라.

M3 에서 최종 상태는 S0 와 S3 이다. 먼저 S0 에서 S0 로 가는문자열은 {0n | n =0, 1, ... }이다. S0 에서 S3 로 가는 문자열은0개 이상의 0이 나온 후 10이 나오고 그 다음에는 0또는 1이임의의 개수만큼 나오는 것이다. L(M3) = {0n, 0n10X | n =0, 1, ..., and X는 0과 1로 된 임의의 문자열}

0, 1

s0

s1

s2

0, 1

1

1

0

Start s3

M3

0 0, 10, 1

s0

s1

s2

0, 1

1

1

0

Start s3

M3

00

Page 9: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

L(M)과 L(G)유한상태 오토마타 M 에 의해서 인식(또는 승인)되는언어 L(M) 은M 에 의해서 인식되는 모든 문자열의 집합이다.

언어 L(M) 은 이에 대응하는 정규 문법(regular grammar)을 만들 수 있다.

따라서 M에 대응하는 정규 문법(regular grammar)을 G라고 하면 정규 문법 G에 의해서 생성되는 언어와M에서 인식되는 문자열의 집합은 동일하다.

L(M) ≡ L(G)

Page 10: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

유형 0 문법

유형 1 문법

유형 2 문법(문맥 자유 문법)

유형 3 문법(정규 문법)

유형 0 문법

유형 1 문법

유형 2 문법(문맥 자유 문법)

유형 3 문법(정규 문법)

Page 11: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

M에서 G 만들기

유한상태 오토마타 M이 주어졌을 때 이에 대응하는정규 문법 G를 만드는 방법은 다음과 같다.

M=(S, I, f, s0, F) G=(V, T, S, P)

S N(비단말 기호)I T(단말 기호)V = N ∪ TP: 생성 규칙

Si, Sj ∈ S, x ∈ I일 때만약 fw(Si) = Sj 이면, Si ⇒ wSj만약 fw(Si) ∈ F이면, Si ⇒ w

Page 12: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

예1: M: finite state automataI={a,b}, S={S0, S1, S2}

a

b

a

a, b

s0 s1 s2b

fa(S0)=S0,fb(S0)=S1,fa(S1)=S1

fb(S1)=S2

fa(S2)=S2

fb(S2)=S2

S0 ⇒aS0

S0 ⇒bS1

S1 ⇒aS1

S1 ⇒bS2

S2 ⇒aS2

S2 ⇒bS2

S1 ⇒bS2 ⇒aS2 ⇒b

상태 전이 함수

생성 규칙G: regular grammarT={a,b}, N={S0, S1, S2}

L(M) L(G)

Page 13: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

예1의 L(M)과 L(G)를 regular expression으로 표현하면,

a*ba*b(a+b)*

Page 14: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

예2: M: finite state automataI={0,1}, S={S0, S1}

01 0

s0 s1

f0(S0)=S0,f1(S0)=S1,f0(S1)=S1

f1(S1)=S0

S0 ⇒0S0

S0 ⇒1S1

S1 ⇒0S1

S1 ⇒1S0

S0 ⇒1S1 ⇒0

상태 전이 함수

생성 규칙G: regular grammarT={0,1}, N={S0, S1}

L(M) L(G)

1

Page 15: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

예2의 L(M)과 L(G)를 regular expression으로 표현하면,

0은 영향을 주지않는다.1은 홀수번 나와야 한다.따라서

0*10*(10*10*)*

Page 16: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

주어진 문제를 해결하는유한상태 오토마타 만들기

a Task 유한상태 오토마타

일반 언어로 기술혹은

정규식으로 기술혹은

BNF로 기술

Page 17: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

예1: 0과 1로 이루어진 입력 스트링 001을 인식하는유한상태 오토마타를 설계하라.

즉, I={0,1}, L(M)={001}

S0 S1 S2

S4

1 1 1 0,1

0 0 1

0,1

S3

Page 18: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

예2: 0과 1로 이루어진 입력 스트링으로 스트링 안에01 혹은 10을 포함하는 스트링을 인식하는 유한상태 오토마타를 설계하라.

S0

S2S1

S4S3

0

1

1

0

00,1

1 0,1

Page 19: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

예3: x과 y로 이루어진 입력 스트링으로 yy로 끝나는스트링을 인식하는 유한 상태 오토마타를 설계하라.

S0 S3S1y y

x y

x

x

Page 20: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

유한상태 오토마타의 최적화

이와 같이 특정 과제를 수행하는 유한상태 오토마타를설계할 수 있다.

하지만 이와 같이 설계된 유한상태 오토마타는 최적의기계는 아니다. 즉, 더 적은 상태의 수를갖는 유한상태 오토마타를 설계할 수 있다.

따라서 다음 단계에서 필요한 것은 최적화된유한상태 오토마타의 설계이다.

Page 21: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

결정 오토마타(DFA)I = {0,1}L(M): 1에서 시작해서 1로 끝나는 문자열

S0 S1

S3

S2

1 1

0

0 1

0

0,1

0 1s0 s3 s1

s1 s1 s2

s2 s1 s2

s3 s3 s3

input상태

f

Page 22: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

비결정 오토마타(NFA)I = {0,1}L(M): 1에서 시작해서 1로 끝나는 문자열

S0 S1 S2

1 1

0,1

0 1s0 φ {s1}s1 s1 {s1,s2}s2 φ φ

input상태

f

0은 무시한다.(상태 전이가 없기때문에)

0과 1은 무시한다.(상태 전이가 없기때문에)

Page 23: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

결정 오토마타(DFA)와 비결정 오토마타(NFA)

결정 오토마타(Deterministic Finite state Automata)- 입력값에 대해서 전이되는 상태가 정확하게 결정된다.

비결정 오토마타(nondeterministic Finite state Automata)- 입력값에 대해서 상태 전이가 다수 존재할 수 있다.- 입력값에 대해서 상태 전이가 발생하지 않을 수 있다.

(이 경우 입력값은 무시된다.)

NFA는 DFA로 변환될 수 있다.(즉, NFA ≡ DFA)

Page 24: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

I={a,b}L={ambn| m,n>0}

DFA로 설계하면,

S0

S2

S2

ba

b

a,b

a

NFA로 설계하면,

S0 S1

ba

ba b

s0 {s0} {s1}s1 φ {s1}

input상태

f

Page 25: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

L(G)와 L(M)과 정규식

G: 정규 문법 L(G)는 정규식으로 표현할 수 있다.

M: 유한상태 오토마타 L(M)은 정규식으로 표현할 수 있다.

Page 26: 역, 이, 대우ants.mju.ac.kr/2019Fall/DM/automata4.pdf · 2019-12-02 · 주요내용 • 형식언어와문법 • 정규식과정규집합 • 유한상태기계 • 오토마타와언어(정규문법)

결론

G={V, I, S0, P}: 정규 문법

M={S, I, f, S0, F}: 유한 상태 오토마타

L(G): 정규 집합

L(M): 정규 집합