[Compiler] 4-3. NFA -> DFA 변환(2)
2023. 4. 13. 00:07ㆍComputer Sciences/Compiler
이번엔
- NFA에 의해 인식되는 언어를 L이라고 하면 L을 인식하는 DFA가 존재한다. L을 인식하는 NFA
라 하면 L을 인식하는 DFA 는 다음과 같이 구성된다. , 즉 의 한 상태는 의 형태로 나타낸다. 단, 이다. | q는 M의 최종 상태를 포함하는 안에 있는 모든 상태들의 집합} 라 하면 이다.
이는 입력 문자열의 길이에 대해 수학적 귀납법으로 증명하면 되지만 증명은 생략한다.
다음과 같이
NFA M = (

이를 상태 전이도로 나타내면 다음과 같다.

이때 NFA를 DFA로 변환해보자. DFA

이 전이 함수를 상태 전이표로 나타내면 다음과 같다.

여기서 [q0], [q1], [q0, q1]을 각각 A, B, C라고 하고 상태 전이도를 그리면 다음과 같다.

이 상태 전이도는 DFA로 바뀌어져 있지만 B 상태는 시작 상태로부터 도달 불가능한 상태이므로 문장을 인식하는데 불필요하다. 따라서 B 상태를 제거하고 다음과 같은 상태 전이도를 얻을 수 있다.

'Computer Sciences > Compiler' 카테고리의 다른 글
[Compiler] 4-2. NFA -> DFA 변환(1) (0) | 2023.04.12 |
---|---|
[Compiler] 4-1. 유한 오토마타 (0) | 2023.04.12 |
[Compiler] 3-3. 문법 표기법 (0) | 2023.04.10 |
[Compiler] 3-2. 형식 문법 (0) | 2023.04.10 |
[Compiler] 3-1. 형식 언어 (0) | 2023.03.23 |