오토마타 및 형식언어 김 현 성

136
오오오오 오 오오오오 오 오 오 Tel : 850-7288 Office : 2 공공공 408 공 E-mail : [email protected]

Upload: stacie

Post on 19-Mar-2016

218 views

Category:

Documents


4 download

DESCRIPTION

오토마타 및 형식언어 김 현 성. Tel : 850-7288 Office : 2 공학관 408 호 E-mail : [email protected]. 사람의 언어. 1 더하기 2 는 뭐야 ?. 뭐라고 ?. 컴퓨터의 언어. 1+2=?. 100 001 010. 프로그래밍 언어. 3. 011. Three Basic Concepts(1/2). Languages Grammars Automata. Automata(1/2). Abstract model of a digital computer. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 오토마타 및 형식언어 김 현 성

오토마타 및 형식언어김 현 성

Tel : 850-7288Office : 2 공학관 408 호E-mail : [email protected]

Page 2: 오토마타 및 형식언어 김 현 성

사람의 언어1 더하기 2 는 뭐야 ?

뭐라고 ?

Page 3: 오토마타 및 형식언어 김 현 성

컴퓨터의 언어

프로그래밍 언어1+2=? 100 001 010

0113

Page 4: 오토마타 및 형식언어 김 현 성

Three Basic Concepts(1/2)

• Languages

• Grammars

• Automata

Page 5: 오토마타 및 형식언어 김 현 성

Automata(1/2)

• Abstract model of a digital computer

Control unit

Input file

Output

Storage

Page 6: 오토마타 및 형식언어 김 현 성

Automata(2/2)

q0 q2q1

0

0

1

1

1

0

Page 7: 오토마타 및 형식언어 김 현 성

Three Basic Concepts(2/2)

Languages

Grammars Automata

Page 8: 오토마타 및 형식언어 김 현 성

Grammar, Languages, Recognizer

Grammar Language Recognizer

Type 0 recursively enumerable sets Turing machineType 1 context-sensitive language Linear bounded

automata Type 2 context-free language Pushdown

automata Type 3 regular language Finite automata

Page 9: 오토마타 및 형식언어 김 현 성

Chomsky’s Language Hierarchy

Unrestricted Languages

Context-sensitive Languages

Context-free Languages

Regular Languages

Page 10: 오토마타 및 형식언어 김 현 성

Applied Area

• Compiler

– Finite Automata

– lexical analysis (parser)

• Digital Design

– binary adder

Page 11: 오토마타 및 형식언어 김 현 성

계산이론개요

Page 12: 오토마타 및 형식언어 김 현 성

목적• 컴퓨터 공학 분야에는 몇 가지 공통적인 기본 원리가 존재• 기본 원리를 이해하기 위해서는 추상적 모델을 설정해야 한다• 추상적 모델 => 하드웨어 및 소프트웨어에서 공통적으로 나타나는 특징들을 표현하기 위한 모델

Page 13: 오토마타 및 형식언어 김 현 성

목적• 추상적 모델 => 오토마타• 오토마타는 입력 , 출력 , 기억장소로 구성• 형식언어는 프로그래밍언어들의 일반적인 특성들을 추상화한 개념• 형식언어는 심볼들과 심볼들의 조합인 문장을 구성하는 형식규칙들의 집합• 형식언어는 이 형성규칙들에 의해 생성되는 모든 문자열들의 집합

Page 14: 오토마타 및 형식언어 김 현 성

한국어우리는 경일대인이다 .

경일대인은 나다 .

Page 15: 오토마타 및 형식언어 김 현 성

목적• 개념탐구 방법

– 직관적인 방법– 수학적인 방법

• 집합론• 함수• 관계• 트리• 그래프

Page 16: 오토마타 및 형식언어 김 현 성

함수 (1/2) 함수란 한 집합의 원소들 각각에 대해 다른 집합의 유일한 원소로 배정하는 규칙

S1 S2

F : S1 S2domain range

Page 17: 오토마타 및 형식언어 김 현 성

함수 (2/2)

• 함수의 표현– {(x1,y1),(x2,y2),…}

– xi : 해당함수의 정의역의 원소– yi : 해당함수의 치역의 대응값

– 각 xi 가 이 집합 내에서 순서쌍의 첫 번째 위치에 최대 한번만 나타나야 한다 .

X Y

domain range

Page 18: 오토마타 및 형식언어 김 현 성

오토마타

q0 q2q1

0

0

1

1

1

0

Page 19: 오토마타 및 형식언어 김 현 성

그래프 (1/2)

• 그래프는 두개의 유한집합으로 구성된 구조

– 정점들의 집합 the set of vertices

– 간선들의 집합 the set of edges

– 간선들의 순서열 a sequence of edges - 보행 walk

– 어느 간선도 중복하여 지나지 않는 보행 a walk in which no edge is

repeated - 경로 path

– vi 로 부터 vi 로 경로 no repeated edge - 사이클 cycle

Page 20: 오토마타 및 형식언어 김 현 성

그래프 (2/2)

v1 v2 v3

Page 21: 오토마타 및 형식언어 김 현 성

트리 (1/2)

• 그래프의 한 종류이다 .• 사이클을 갖지 않고 , 루트라 불리는 특별한

하나의 정점을 가지는 유향 그래프 – 루트 root : one distinct vertex– 리프들 leaves– 부모 parent– 자식 child– 레벨 level– 높이 height

Page 22: 오토마타 및 형식언어 김 현 성

트리 (2/2)Root

Leaf

Level 0

Level 3

Height = 3

Page 23: 오토마타 및 형식언어 김 현 성

증명기법 (2/2)

• Proof by induction– 몇 개의 특정 사례가 참이라는 사실들로부터 여러

문장들이 참임을 추론해 내는 기법

– 예 ) 참임을 증명하고자 하는 문장들의 순서열 P1,P2,… 이 있다고 하고 다음이 성립함을 가정

• 임의의 k(k>=1) 에 대해 P1,P2,…,Pk 는 참이다 .

• n>=k 인 모든 n 에 대해서 P1,P2,…,Pn 이 참인 사실이 Pn+1 이 참임을 의미하도록 하는 문제

귀납기저

귀납단계귀납가정

Page 24: 오토마타 및 형식언어 김 현 성

Example 1.5 : 높이가 n 인 이진트리의 리프 노드의 총 개수는

최대 2n 임l(n) 2n

Basis l(0) = 1 = 20

Inductive Assumption: l(i)2i

For i = 0, 1, …, n

Inductive Step : l(n+1) = 2l(n)

l(n+1) 2 * 2n = 2n+1

Page 25: 오토마타 및 형식언어 김 현 성

언어 , 문법 , 오토마타

Page 26: 오토마타 및 형식언어 김 현 성

세가지 기초 개념• 언어 Languages

• 문법 Grammars

• 오토마타 Automata

Page 27: 오토마타 및 형식언어 김 현 성

언어 (1/3)

• 알파벳 {a, b, c, d}– 하나 이상의 심볼들의 유한 집합

• 문자열 {ab, aabb, ccdd}– 알파벳에 속한 심볼들의 유한 길이의

순서열

Page 28: 오토마타 및 형식언어 김 현 성

언어 (2/3)

• w = a1a2…an v = b1b2…bn

– 접합 concatenation : wv = a1a2…anb1b2…bn

– 전도 reverse : wr = an…a2a1

– 길이 length : |w| = n– 빈문자열 empty string : | | = 0, w = w = w– 부문자열 substring : w = vu v = 접두부 prefix, u =

접미부 suffix– |uv| = |u| + |v|

Page 29: 오토마타 및 형식언어 김 현 성

언어 (3/3)

• 스타폐포 star-closure

– L* = L0 U L1 U L2 …

• 양성폐포 positive-closure

– L+ = L1 U L2 ...

Page 30: 오토마타 및 형식언어 김 현 성

문법 (1/3)

• 영어 문법 “ 문장은 명사절 (noun phrase) 과 술부

(predicate) 로 구성”

Page 31: 오토마타 및 형식언어 김 현 성

문법 (2/3)

• A boy runs– <sentence> -> <noun_phrase><predicate>– <noun_phrase> -> <article><noun>– <predicate> -> <verb>

• Pascal identifier– <id> -> <letter><rest>– <rest> -> <letter><rest> | <digit><rest> | – <letter> -> a|b|…| <digit> -> 0|1|…9

Page 32: 오토마타 및 형식언어 김 현 성

문법 (3/3)

• 문법 G 는 다음의 항으로 정의된다 G = (V, T, S, P)

– V 는 변수라 불리는 유한 집합의 객체 variables

– T 는 단말심볼이라 불리는 유한 집합의 객체 terminal symbols

– S 는 시작변수라 불리는 V 의 특별한 원소 start variable

– P 는 생성규칙들의 유한 집합 productions

Page 33: 오토마타 및 형식언어 김 현 성

문법• 문법의 핵심은 생성규칙들 x -> y

– x 는 (V U T)+ 의 원소– y 는 (V U T)* 의 원소

Page 34: 오토마타 및 형식언어 김 현 성

Automata

Control unit

Input file

Output

Storage

Page 35: 오토마타 및 형식언어 김 현 성

Automata

• 결정적 오토마타 Deterministic automata

• 비결정적 오토마타 Nondeterministic automata

• 인식기 Accepter

• 변환기 Transducer

Page 36: 오토마타 및 형식언어 김 현 성

응용 (1/2)

• Pascal 의 식별자 => 언어– 영문자로 시작– 뒤이어 임의의 개수의 영문자나 숫자의 문자열의 집합

• 식별자를 위한 문법<id> -> <letter><rest><rest> -> <letter><rest>|<digit><rest>|<letter> -> a|b|…|z<digit> -> 0|1|…|9

Page 37: 오토마타 및 형식언어 김 현 성

응용 (2/2)

• 식별자 a0 를 유도하는 과정<id> => <letter><rest>

=> a <rest> => a <digit><rest> => a 0 <rest> => a 0

Page 38: 오토마타 및 형식언어 김 현 성

유한 오토마타Finite Automata

Page 39: 오토마타 및 형식언어 김 현 성

Automata

Control unit

Input file

Output

Storage

Page 40: 오토마타 및 형식언어 김 현 성

Automata

• 결정적오토마타 Deterministic automata

• 비결정적오토마타 Nondeterministic automata

• 인식기 Accepter

• 변환기 Transducer

Page 41: 오토마타 및 형식언어 김 현 성

결정적 유한 인식기연산 과정이 결정적으로 진행되는 유한 인식기

Page 42: 오토마타 및 형식언어 김 현 성

결정적유한인식기Definition2.1

• M = (Q, , , q0, F)– Q : 내부상태들의 유한집합 : 문자들의 유한집합이며 , 입력 알파벳이라불림 : Q Q 전체 함수이며 , 전이 함수라 불림

– q0Q : 초기 상태

– F Q : 종료 상태의 집합

Page 43: 오토마타 및 형식언어 김 현 성

결정적 유한 인식기 동작방식• 오토마타의 초기 상태 : q0

• 입력 방법 : aabbaa

• 오토마타의 종료 : 입력의 맨 끝에 도달한 경우

• 승인여부 확인 : 오토마타의 종료 시점에 오토마타의 상태 체크

• 상태전이 : 전이 함수 에 따라 결정

Page 44: 오토마타 및 형식언어 김 현 성

전이그래프• 유한 오토마타를 가시적으로 표현하기 위한 그래프

– 정점 : 오토마타의 상태– 간선 : 오토마타에서 상태의 전이– 정점의 라벨 : 상태의 이름– 간선의 라벨 : 입력 심볼의 현재 값– 종료상태 : 이중원으로 표시

q0

1

qf

Page 45: 오토마타 및 형식언어 김 현 성

전이그래프(q0,a) = q1

q0

a

q1

초기상태표시

Page 46: 오토마타 및 형식언어 김 현 성

그림 2.1

q0 q2q1

0

0

1

1

1

0

Page 47: 오토마타 및 형식언어 김 현 성

확장 전이함수 *: Q * Q : 함수의 두 번째 인수가 단일

심볼이 아닌 문자열임

– 함수가 (q0,a) = q1 이고 (q1,b) = q2 이면

*(q0,ab) = q2

*(q, ) = q,

*(q, wa) = (*(q,w),a)

Page 48: 오토마타 및 형식언어 김 현 성

언어와 Dfa

• 정의 2.2

– 인식 (Acceptance)

• Dfa M = (Q, , , q0, F) 에 의해서 인식되는 언어란 M 에 대한 모든

문자열들의 집합

• L(M) = {w*: *(q0, w) F}

– 비인식 (Nonacceptance)

• Dfa 가 비종료 상태에서 종료

• L(M) = { w * : *(q0, w) F}

Page 49: 오토마타 및 형식언어 김 현 성

오토마타의 가시화 => 그래프그래프 : 전이함수 의 형식적인 논증 사용 <= 정당함을 확신할 수 있는 방법이 필요함

Page 50: 오토마타 및 형식언어 김 현 성

정리 2.1

• M = (Q, , , q0, F) : 결정적 유한 인식기

• GM : 전이 그래프

• 모든 qi, qjQ 와 w + 에 대해 , *(q0, w) = qj 이고 오직 그럴때에만 그래프 G

M 에는 라벨 w 를 갖는 qi 부터 qj 까지의 보행이 존재한다 .

Page 51: 오토마타 및 형식언어 김 현 성

증명• 가정 : 길이가 n 이하인 모든 문자열 v 에 대해서 참이다 .• 귀납단계 : 길이가 n+1 인 문자열 w 를 고려하자 , w 는 다음과

같이 표현될 수 있다 .– w=va

*(qi, v)= qk 라고 가정해 보자 . 그러면 |v| =n 이므로 GM 에는 라벨 v 를 갖는 qi 부터 qk 까지의 보행이 존재하여야 한다 . 이때 *(qi, w)= qj 라면 오토마타 M 은 전이 (qk, a)= qj 를 가져야 하며 , 따라서 GM 은 라벨 a 를 갖는 간선 (qk, qj) 를 갖게 된다 . 결국 , GM

에는 qi 와 qj 사이에 라벨 va=w 를 갖는 보행이 존재한다 . 이 결과는 n=1 일때 명확히 성립하므로 , 귀납법에 따라 모든 w + 에 대해 *(qi, w)= qj 라는 사실이 GM 에 라벨 w 를 갖는 qi 부터 qj

까지의 보행이 존재한다는 것을 의미한다 .

Page 52: 오토마타 및 형식언어 김 현 성

언어군• 유한오토마타

– 특정 언어를 인식– 언어군 : 모든 가능한 유한 오토마타의 언어집합

=> 정규 언어

Page 53: 오토마타 및 형식언어 김 현 성

정규언어정의 2.3

• 언어 L 에 대하여 L = L(M) 을 만족하는

결정적 유한 인식기 M 이 존재하고

오직 그럴때만 L 을 정규언어라 부른다 .

Page 54: 오토마타 및 형식언어 김 현 성

예제 2.5

• 언어 L = {awa: w {a, b}* } 이 정규언어임을

보여라 .

=> 언어에 대한 dfa 를 찾는다 .

Page 55: 오토마타 및 형식언어 김 현 성

Figure 2.6

q0 q2 q3a b

q1

b

a , b

a

b a

Page 56: 오토마타 및 형식언어 김 현 성

Example

사람늑대

양양배추

M

W

G

C

사람늑대

양양배추

Page 57: 오토마타 및 형식언어 김 현 성

Diagram

MWGC- WC-MG MWC-G

C-MWG W-MGC

MGC-W MWG-C

G-MWCMG-WC-MWGC

g mg m

ww c

c

g g g g

cc w

wm

m

g

g

사람늑대

양양배추

M

W

G

C

Page 58: 오토마타 및 형식언어 김 현 성

Simulation for DFA

S := q0;c := nextchar;while c eof do s := move(s,c) c := nextchar end;if s is in F then return ‘Yes’else return ‘No’

Page 59: 오토마타 및 형식언어 김 현 성

비결정적 유한오토마타Nondeterministic Finite

Automata

Page 60: 오토마타 및 형식언어 김 현 성

비결정성?

컴퓨터 => 결정성

Page 61: 오토마타 및 형식언어 김 현 성

비결정적 인식기• 각 상황에서 유일한 이동만을 규정하기

보다는 가능한 여러 가지 이동들의 집합을 허용하는 것 .

• 오토마타의 전이 함수가 상태들의 집합을 치역으로 갖게 함으로써 가능해진다 .

Page 62: 오토마타 및 형식언어 김 현 성

비결정적 인식기

S1 S2

F : S1 S2domain range

aaa

Page 63: 오토마타 및 형식언어 김 현 성

정의 2.4

• 비결정적 유한 인식기 또는 NFA 는 다음과 같이 5 원소 쌍으로 정의 된다 .

M = (Q, , , q0, F),

여기서 Q, , , q0, F 는 결정적 유한 인식기에서와 같이 정의되나 , 함수

: Q ( {}) 2Q

Page 64: 오토마타 및 형식언어 김 현 성

DFA 와 NFA 의 차이점• 치역

– NFA 에서 의 치역이 멱집합 2Q 내에 있고 , 그 값이 Q 의 단일 원소가 아닌 Q 의 부분집합

• NFA 에서 전이함수의 인수로 허용 – 입력 심볼을 읽지 않고도 전이가 가능함

• NFA 에서는 집합 (qi, a) 가 공집합을 허용– 특정 상황에 대하여 정의된 전이가 없을 수 있음

Page 65: 오토마타 및 형식언어 김 현 성

그림 2.8

q0

q3a

q4

aq1 a

q5

q2

a

a

a

Page 66: 오토마타 및 형식언어 김 현 성

NFA 의 함수 input

state 0 1

q0

q1

q2

q3

q4

{q0, q3} {q0, q1}

{q2}

{q2} {q2}

{q4}

{q4} {q4}

Page 67: 오토마타 및 형식언어 김 현 성

그림 2.9

q0 q1 q2

0

1 0,1

Page 68: 오토마타 및 형식언어 김 현 성

정의 2.5

• 확장전이 함수– 전이그래프에서 qi 로부터 qj 로의 보행이

존재* (qi, w) 가 qj 를 포함

– 모든 qi, qj Q 와 w * 에 대해서도 성립

Page 69: 오토마타 및 형식언어 김 현 성

*(q1, a), *(q2, )

*(q1, a) = {q0, q1, q2} *(q2, ) = {q0, q2} *(q2, aa), *(q0, a)

q1q0 q2a

Page 70: 오토마타 및 형식언어 김 현 성

Definition 2.6

• nfa M = (Q, , , q0, F) 에 의해서 인식되는 언어 L 은 승인되는 문자열들의 집합으로 다음과 같이 정의된다 .

L(M) = {w *: *(q0, w) F }.

즉 , 이 언어는 전이 그래프의 초기 정점에서 종료 정점까지 라벨이 w 인 보행이 존재하는 모든 문자열 w 들로 구성된다 .

Page 71: 오토마타 및 형식언어 김 현 성

Why Nondeterminism?

• 게임 프로그램– 한 시점에서 여러가지 가능한 해들이 존재– 최적의 해를 찾는 방법

• 모든 가능한 해들을 수행해보고 그 결과 중 최적을 찾음• Backtracking 등의 기법을 이용

• Nondeterminism 은 이러한 문제를 쉽게 풀수 있도록 도와줄 수 있다 .

• Nondeterminism 은 복잡한 언어를 간결하게 기술하기에 매우 적합한 방법이다 .

Page 72: 오토마타 및 형식언어 김 현 성

결정적 유한 인식기와 비결정적 유한 인식기의 동치성

Page 73: 오토마타 및 형식언어 김 현 성

동치• 정의 2.7

L(M1)=L(M2)

즉 , 두 오토마타가 같은 언어를 인식하는 경우 두 개의 유한 인식기 M1 과 M2 는 동치라 한다 .

Page 74: 오토마타 및 형식언어 김 현 성

q1 q20

1

0,1q0

q1 q20

01

1q0

0,1

{(10)n : n >= 0}

Page 75: 오토마타 및 형식언어 김 현 성

인식• DFA 는 NFA 의 한 제한된 종류이다 .

– DFA 에 의해 인식되는 언어는 어떤 NFA 에 의해서도 인식될 수 있다 .

– DFA NFA인식???

Page 76: 오토마타 및 형식언어 김 현 성

– DFA NFA

– NFA 가 문자열 w 를 읽은후 그 NFA 가 정확히 어느 상태에 있는지 알수 없다 그러나 NFA 가 놓여질 수 있는 가능한 상태들의 집합은 Non-terminal 임을 알 수 있다 .

– 동치인 DFA 는 같은 문자열을 읽어들인 후 명확히 한 상태에 놓이게 된다 .

인식존재

Page 77: 오토마타 및 형식언어 김 현 성

예제 2.12

• 다음 NFA 와 동치인 DFA 를 구성

=> DFA 의 각 상태의 라벨이 NFA 의 상태들의 집합이 되도록 각 상태에 라벨을 부여

q0 q2

b

a q1

a

Page 78: 오토마타 및 형식언어 김 현 성

q0 q2

b

a q1

a

DFA 의 전이 ({q0},a)={q1,q2} ({q0},b)= ({q1,q2},a)={q1,q2} ({q1,q2},b)={q0}

Page 79: 오토마타 및 형식언어 김 현 성

정리 2.2

• 언어 L 이 비결정적 유한 인식기MN = (QN, , N, q0, FN)

에 의해 인식되는 언어라고 하면 , 다음을 만족하는 결정적 유한 인식기 MD = (QD, , D, q0, FD)

가 항상 존재한다 . L=L(MD)

Page 80: 오토마타 및 형식언어 김 현 성

1. 정점 {q0} 를 갖는 그래프 GD 를 생성 .

이 정점을 초기 정점으로 한다 .2. 모든 간선이 생성될 때까지 반복

의 어떤 원소 a 에 대해서 진출 간선을 갖지 않는 GD 의 정점 {qi,qj,…,qk} 를 선택

*(qi,a), *(qj,a),…, *(qk,a) 들을 계산

– 계산된 * 들의 합집합을 구하여 이를 {ql,qm,…,q

n} 라 함

– GD 에 라벨이 {ql,qm,…,qn} 인 정점이 존재 않는다면 이를 추가함

– GD 에 정점 {qi,qj,…,qk} 로부터 정점 {ql,qm,…,qn}으로 향하는 간선을 추가하고 이에 라벨 a 를 부여

Page 81: 오토마타 및 형식언어 김 현 성

3. GD 의 상태들 중 라벨이 qf FN 을 포함하는 모든 상태들을 종료 상태로 지정

4. 인식기 MN 이 를 인식하는 경우 , GD

의 정점 {q0} 를 종료 정점으로 지정

Page 82: 오토마타 및 형식언어 김 현 성

예제 2.13

q0 q2

0

0,1q1

1

0,1

Page 83: 오토마타 및 형식언어 김 현 성

q0 q2

0

0,1q1

1

0,1

1. {q0} 추가2. *({q0},0) 를 구함 => {q0,q1}

1. {q0,q1} 추가2. {q0} 에서 {q0,q1} 로 향하는 라벨 0 을 갖는 간선 추가

*({q0},1) 를 구함 => {q1}1. {q1} 추가2. {q0} 에서 {q1} 로 향하는 라벨 1 을 갖는 간선 추가

1. *({q0},0)U*({q1},0) 를 구함 =>{q0,q1,q2}1. {q0,q1,q2} 추가2. {q0,q1} 에서 {q0,q1,q2} 로 향하는 라벨 0 을 갖는 간선 추가

Page 84: 오토마타 및 형식언어 김 현 성

5. *({q0},1)U*({q1},1) 를 구함 =>{q1,q2}5. {q1,q2} 추가6. {q0,q1} 에서 {q1,q2} 로 향하는 라벨 1 을 갖는 간선 추가

6. *({q0},0)U*({q1},0)U*({q2},0) 를 구함=>{q0,q1,q2}

• {q0,q1,q2} 존재 • {q0,q1,q2} 에서 {q0,q1,q2} 로 향하는 라벨 0 을 갖는 간선 추가

*({q0},1)U*({q1},1)U*({q2},1) 를 구함 =>{q1,q2}• {q1,q2} 존재 • {q0,q1,q2} 에서 {q1,q2} 로 향하는 라벨 1 을 갖는 간선 추가

q0 q2

0

0,1q1

1

0,1

Page 85: 오토마타 및 형식언어 김 현 성

8. *({q1},0) 를 구함 =>{q2}• {q2} 추가• {q1} 에서 {q2} 로 향하는 라벨 0 을 갖는 간선 추가

9. *({q1},1) 를 구함 =>{q2}• {q2} 존재• {q1} 에서 {q2} 로 향하는 라벨 1 을 갖는 간선 추가

10. *({q1},0)U*({q2},0) 를 구함 =>{q2}• {q2} 존재 • {q1,q2} 에서 {q2} 로 향하는 라벨 0 을 갖는 간선 추가

q0 q2

0

0,1q1

1

0,1

Page 86: 오토마타 및 형식언어 김 현 성

11. *({q1},1)U*({q2},1) 를 구함 =>{q2}• {q2} 존재 • {q1,q2} 에서 {q2} 로 향하는 라벨 1 을 갖는 간선 추가

12. *({q2},0) 를 구함 =>{}• {} 추가• {q2} 에서 {} 로 향하는 라벨 0 을 갖는 간선 추가

13. *({q2},1) 를 구함 =>{q2}• {q2} 존재• {q2} 에서 {q2} 로 향하는 라벨 1 을 갖는 간선 추가

q0 q2

0

0,1q1

1

0,1

Page 87: 오토마타 및 형식언어 김 현 성

• q1 을 포함한 모든 상태들을 종료 상태로 지정• 정점 {q0} 를 종료 정점으로 지정할지 판단

q0 q2

0

0,1q1

1

0,1

Page 88: 오토마타 및 형식언어 김 현 성

그림 2.16{q0}

{q2}0,1

{q0,q1}

1

0,1

{q1}

{q0,q1,q2} {q1,q2}

0,1

1

1

1

0

0

0

0

Page 89: 오토마타 및 형식언어 김 현 성

정규언어와 정규문법Regular Languages and

Regular Grammars

Page 90: 오토마타 및 형식언어 김 현 성

정규언어• 임의의 언어 -> 정규 언어

– 이를 인식하는 유한 인식기의 존재여부• DFA 나 NFA 가 존재해야 함

• 정규언어를 표현하는 보다 정교한 방법이 필요함 => 정규표현

Page 91: 오토마타 및 형식언어 김 현 성

Relation of RG, RE, Automata

Regular Expression

Finite Automata Regular Grammars

Page 92: 오토마타 및 형식언어 김 현 성

정규표현• 정규언어를 기술하는 한가지 방법이 정규표현

regular expressions 이다 .• 표기

– 알파벳 의 문자열 , ( )

– 연산자 +, . , * 의 결합• 예 ) 언어 {a} => 정규표현 a 언어 {a, b, c} => 정규표현 a+b+c

Page 93: 오토마타 및 형식언어 김 현 성

정규표현• + : 합집합 UNION

• . : 접합 CONCATENATION

• * : 스타폐포 STAR-CLOSURE

• (a + b . c) *

• {a} {bc}

• {, a, bc, aa, abc, bca, bcbc, aaa, aabc, …}

Page 94: 오토마타 및 형식언어 김 현 성

정의 3.1

를 주어진 알파벳이라고 하면 정규표현은 1. , , and a 는 모두 regular expressions 이다 . 이

들을 기본 정규표현 primitive regular expressions 이라 한다 .2. r1 과 r2 가 정규표현이면 , r1+r2, r1. r2, r1*, 과 (r1) 는 모두

정규표현이 된다 .

3. 특정 문자열이 정규표현이 되기 위해서는 기본 정규 표현에서 시작하여 위 규칙 (2) 를 유한횟수만큼 반복함으로써 그 문자열이 유도될 수 있어야 한다 .

Page 95: 오토마타 및 형식언어 김 현 성

정의 3.2

• 정규표현 r 에 의해 묘사되는 언어 L(r) 은 다음 규칙들에 의해 정의된다 .

1. 은 공집합을 나타내는 정규 표현이다 .2. 는 {} 를 나타내는 정규 표현이다 . 3. 모든 a 에 대해 a 는 {a} 를 나타내는 정규

표현이다 .

Page 96: 오토마타 및 형식언어 김 현 성

정의 3.2

• 만약 r1 과 r2 가 정규 표현일 경우 4. L( r1+ r2) = L(r1) L(r2),

5. L(r1 . r2) = L(r1)L(r2),

6. L((r1)) = L(r1),

7. L(r1*) = (L(r1))*.

Page 97: 오토마타 및 형식언어 김 현 성

정규표현과 정규언어의 관계• 정리 3.1

r 을 정규 표현이라 하자 . 언어 L(r) 을

인식하는 nfa 가 존재하며 , 결과적으로 L

(r) 은 정규언어이다 .

Page 98: 오토마타 및 형식언어 김 현 성

그림 3.1

q0 q1

q0 q1

. nfa accepts

. nfa accepts {}

q0 q1a

. nfa accepts {a}

Page 99: 오토마타 및 형식언어 김 현 성

그림 3.2. L(r) 을 인식하는 nfa 의 도식적인 표현

M(r)

Page 100: 오토마타 및 형식언어 김 현 성

그림 3.3

M(r1)

M(r2)

Automaton for L(r1 + r2).

Page 101: 오토마타 및 형식언어 김 현 성

그림 3.4

M(r2)M(r1)

. Automaton for L(r1r2).

Page 102: 오토마타 및 형식언어 김 현 성

그림 3.5

M(r)

Automaton for L(r1*).

Page 103: 오토마타 및 형식언어 김 현 성

그림 3.6

M1

b b

a M2

b

a

. M1 accepts L(a+bb) . M2 accepts L(ba* + )

Find an nfa which accepts L(r), where r = (a + bb)*(ba* + ).

Page 104: 오토마타 및 형식언어 김 현 성

그림 3.7

Automaton accepts L((a + bb)*(ba* + ))

M1

b b

a

M2

b

a

Page 105: 오토마타 및 형식언어 김 현 성

정규언어와 정규문법

Page 106: 오토마타 및 형식언어 김 현 성

• NFA 에 대한 정규 표현 찾는 방법NFA 의 모든 보행에 대한 라벨 생성

어렵다전이그래프에 사이클 존재 -> 몇번 반복할

지 모름기록 문제로 해결

Page 107: 오토마타 및 형식언어 김 현 성

정규언어에 대한 정규표현• 일반전이 그래프 Generalized transition graph

– 간선의 라벨에 정규 표현을 부여하는 전이 그래프– 라벨은 여러 정규표현들의 접합 <= 그 자체도 정규

표현이 된다 .

– a -> a

– a, b -> a + b

Page 108: 오토마타 및 형식언어 김 현 성

예제 3.8

a + b

ac*

L(a* + a*(a + b)c*)

Page 109: 오토마타 및 형식언어 김 현 성

그림 3.9

qi q qjd c

a b

e

qi qj

ae*d ce*b

ce*d

ae*b

Page 110: 오토마타 및 형식언어 김 현 성

그림 3.12

EE

EO

a

aOE

OO

a

a

b b b b

Page 111: 오토마타 및 형식언어 김 현 성

그림 3.12

EE

EO

ba

ab

OO

a a

EE

EO

a

aOE

OO

a

a

b b b b

aa bb

bb

Page 112: 오토마타 및 형식언어 김 현 성

그림 3.12

EE

EO

ba

ab

OO

a a

aa bb

bb EE EO

b+a(bb*)ba

aa+ab(bb)*ba a(bb)*a

b+ab(bb*)a

Page 113: 오토마타 및 형식언어 김 현 성

정규언어 묘사방법• NFA• DFA• 정규표현

• 간단한 문법을 이용 => 정규문법

Page 114: 오토마타 및 형식언어 김 현 성

Relation of RG, RE, Automata

Regular Expression

Finite Automata Regular Grammars

Page 115: 오토마타 및 형식언어 김 현 성

정규문법

Page 116: 오토마타 및 형식언어 김 현 성

우선형 문법과 좌선형 문법

Page 117: 오토마타 및 형식언어 김 현 성

문법• 문법 G 는 다음의 항으로 정의된다 G = (V, T, S, P)

– V 는 변수라 불리는 유한 집합의 객체 variables

– T 는 단말심볼이라 불리는 유한 집합의 객체 terminal symbols

– S 는 시작변수라 불리는 V 의 특별한 원소 start variable

– P 는 생성규칙들의 유한 집합 productions

Page 118: 오토마타 및 형식언어 김 현 성

정의 3.3

문법 G = (V, T, S, P) 에서 모든 생성규칙들이 다음의 형태를 갖는 경우 이를 우선형 right-linear문법이라 한다 .

A -> xB, A -> x, 여기서 A, B V 이고 x T* 이다 . 문법의 생성규칙들이 모두 다음의 형태를 갖는

경우 이 문법을 좌선형 left-linear 문법이라 한다 . A -> Bx, A -> x. 정규문법은 우선형 문법이거나 좌선형 문법이다 .

Page 119: 오토마타 및 형식언어 김 현 성

예제 3.12

• 우선형 문법 Right-linear 문법 G1 = ({S}, {a,b}, S, P1) 에서

생성규칙 P1 이 다음과 같이 주어졌다면 S -> abS | a

r = (ab)*a

Page 120: 오토마타 및 형식언어 김 현 성

예제 3.12

• 좌선형 문법 Left-linear 문법 G2 =({S, S1, S2}, {a,b}, S,P2) 에서

생성규칙 P2 가 다음과 같이 주어졌다면 S -> S1ab, S1 -> S1ab | S2, S2 -> a r = (a(ab)*)

Page 121: 오토마타 및 형식언어 김 현 성

예제 3.13• 문법 G = ({S,A,B}, {a,b}, S, P) 가 다음과 같은

생성규칙들을 갖는 경우 이는 정규 문법이 아니다 .

S -> A, A -> aB|, B -> Ab• 선형문법 linear grammar 은 각 생성규칙의

우변에 하나 이하의 변수만 있을 수 있으며 , 이 변수의 위치에는 제한이 없는 문법을 말한다 .

• 정규문법 선형문법

Page 122: 오토마타 및 형식언어 김 현 성

우선형 문법에 대한 정규언어우선형 문법 => 정규언어

정규언어 => nfa

Page 123: 오토마타 및 형식언어 김 현 성

정리 3.3

• G = (V,T,S,P) 가 우선형 문법 right-linear grammar 이면 L(G) 는 정규 언어이다 .

• 증명 – V={V1,V2,…} – S=V0– 생성규칙 : V0->v1Vi, Vi->v2Vj,…

Page 124: 오토마타 및 형식언어 김 현 성

정리 3.3

• 문자열 w 가 L(G) 에 속한다면 문법 G의 생성규칙들의 형태로 볼때 그 유도과정은 다음과 같을 것이다

V0 => v1Vi => v1v2Vj => v1v2…vkVn => v1v2…vkvl = w

Page 125: 오토마타 및 형식언어 김 현 성

그림 3.15

Vi a2a1 . . . am Vj

Represents Vi ->a1a2 … am Vj => *(Vi,a1a2…am) = Vj

Vi a2a1 . . . am Vf

Represents Vi -> a1a2 … am => *(Vi,a1a2…am) = Vf

Page 126: 오토마타 및 형식언어 김 현 성

연습문제 1

• 다음 문법에 의해 생성되는 언어를 인식하는 유한 오토마타를 구성해 보자 .

• S -> aS | aA• A -> bA| b

• L = {anbm | n, m 1}

Page 127: 오토마타 및 형식언어 김 현 성

정규언어에 대한 우선형 문법정규언어 => dfa

dfa => 우선형 문법

Page 128: 오토마타 및 형식언어 김 현 성

정리 3.4

• L 이 알파벳 에 대한 정규 언어일 때 , L = L(G) 를 만족하는 우선형 문법 G=(v, , S, P) 가 항상 존재한다 .

Page 129: 오토마타 및 형식언어 김 현 성

정리 3.4

• 증명 언어 L 을 인식하는 dfa 를 M=(Q, , ,

q0, F) 라하고 , Q={q0, q1, …, qn} 이고 = {a1,a2,…,am} 이라 가정– dfa M 으로부터 V={q0, q1, …, qn}– S=q0

Page 130: 오토마타 및 형식언어 김 현 성

정리 3.4

– M 에 존재하는 각 전이에 대해 (qi,aj)=qk문법 G 의 P 에 다음과 같은 생성규칙 추가 qi -> ajqkqk F 인 경우에는 P 에 다음 생성규칙 추가 qk ->

• w L(G) 를 보임

Page 131: 오토마타 및 형식언어 김 현 성

오토마타 M 이 dfa 가 아니어도 가능함

Page 132: 오토마타 및 형식언어 김 현 성

정리 3.5

• 언어 L 이 정규언어이고 그럴때만 L = L(G) 인 좌선형 문법 G 가 존재한다 .

• 증명– 좌선형 문법 G 의 생성규칙을 통하여

우선형 문법 G’ 을 생성– A->Bv A->v– L(G)=(L(G’))R

–A->vRB

A->vR

Page 133: 오토마타 및 형식언어 김 현 성

정리 3.6

• 언어 L 이 정규언어이고 그럴때에만 L = L(G) 를 만족하는 정규문법 G 가 존재한다 .

Page 134: 오토마타 및 형식언어 김 현 성

Theorem 3.1

• Let r be a regular expression. Then there

exists some nondeterministic finite accepter

that accepts L(r)

• Consequently, L(r) is a regular language.

Page 135: 오토마타 및 형식언어 김 현 성

Theorem 3.2

• Let L be a regular language. Then there exists a regular expression r such that L = L(r)

Page 136: 오토마타 및 형식언어 김 현 성

그림 3.15

Regular expressions

dfa or nfa

Regular grammars

Theorem 3.1 Theorem 3.2

Theorem 3.3 Theorem 3.4