두번째 시간에 배운 내용은 DFA 결정적 유한 인식기이다. 개념은 그리 어렵지 않고, 그래프만 잘 그래면 된다.
Deterministic Finite Automata(DFA)
String 을 A Finite Automaton 에 넣어 문자를 인식하는 기계이다. 인식한다면 yes 결과를 보여준다.
여기에서 Finite Automaton은 알고리즘이라고 볼 수도 있다.
Define
(세번째 원소인 δ 는 Transition Function 이라고 부른다.)
Exercise
위의 정의만 본다면 이해하기 어렵다. 예제를 통해 알아보자.
집합 M 안에 있는 원소는 차례대로 위의 정의와 대입시키면 된다.
상태는 q1, q2, q3 가 있고, 입력하는 문자들은 0과 1로 이루어져 있다.
세번째 원소의 정의는 아래 2개 인자를 받아 다음 상태로 가는것이 정해져있다는것을 보여준다.
시작지점은 q0, 끝나는 지점은 q1 이다. (끝나는 지점은 유일할 필요가 없기때문에 집합으로 표시해준다.)
위의 정의를 토대로 그래프를 그려보면
이와 같은 형태로 나타나게 된다.
여기에 0101 이라는 스트링을 넣어주자.
q0 -> q1 -> q0 -> q1 경로를 지나서 F인 q1 에 도달하게 되었다.
따라서 0101 이라는 문자열은 우리가 정의해준 DFA가 인식할 수 있는 문자열임을 알 수 있다.
그래프를 그리면 정의만 보았을 때보다 상당히 쉽게 이해할 수 있다.
Transition Function (δ) 확장
위 규칙을 사용하여 δ*(q0, 011) 의 값을 알아보자. 예제에 사용했던 DFA에 대입해보자.
1. δ*(q0, 011) = δ (δ* (q0, 01), 1)
. = δ (δ (δ* (q0, 0), 1), 1)
. = δ (δ (δ (δ* (q0, λ), 0), 1), 1)
2. 간단히 정리
δ (δ (δ (δ* (q0, λ), 0, 1), 1) = δ (δ (δ (q0, 0), 1), 1)
δ (δ (δ (q0, 0), 1), 1) = δ (δ (q0, 1), 1)
δ (δ (q0, 1), 1) = δ (q1, 1)
δ (q1, 1) = q2
'2016 > 형식언어와 오토마타' 카테고리의 다른 글
1. Languages and Grammars - 언어와 문법 (0) | 2016.09.11 |
---|