위키득계정 ↗
기술

결정적 유한 오토마타

결정적 유한 오토마타기술
영문명
Deterministic finite automaton
약어
DFA
결정성
입력과 상태가 같으면 다음 상태가 같음
수용 조건
전체 입력 후 수용 상태에 도달
결정적 유한 오토마타는 현재 상태와 입력 기호가 주어졌을 때 다음 상태가 하나로 정해지는 유한 상태 문자열 인식기다. 보통 모든 상태와 입력 기호 쌍에 전이를 정하는 완전한 형태로 정의한다.

하나의 상태 흐름

시작 상태에서 입력 기호를 차례로 읽는다. 같은 상태에서 같은 기호를 읽고 서로 다른 두 다음 상태를 동시에 선택하지 않는다. 입력 하나에 대한 실행은 정한 규칙을 따르는 하나의 상태 흐름이 된다.

전이 없는 경우의 처리

일부 설명은 전이가 없는 경우를 허용하는 부분적인 기계를 다룬다. 완전한 DFA에서는 그런 경우를 실패 상태로 보내고 이후에도 실패 상태에 머물도록 만들 수 있다. 정의에서 전이의 범위를 확인한다.

수용과 중간 상태

중간에 수용 상태를 지났다는 사실만으로 전체 문자열이 수용되지는 않는다. 뒤의 입력을 모두 처리한 최종 상태가 수용 상태인지 본다. 빈 문자열은 시작 상태 자체가 수용 상태일 때 수용된다.

비결정성과 비교

비결정적 유한 오토마타도 같은 종류의 언어를 인식할 수 있지만 표현하는 상태 수와 전이 구조가 다를 수 있다. 결정적이라는 말은 입력 결과가 운에 달린다는 것과 반대되는 실행 규칙의 성질이다.

관련 문서

유한 상태 기계 / 비결정적 유한 오토마타 / 문자열 / 정규 표현식 / KMP 알고리즘 / 집합