위키득계정 ↗
기술

비결정적 유한 오토마타

비결정적 유한 오토마타기술
영문명
Nondeterministic finite automaton
약어
NFA
전이 결과
가능한 다음 상태들의 집합
수용 의미
수용 경로가 하나 이상 존재
비결정적 유한 오토마타는 같은 상태와 입력 기호에서 여러 다음 상태를 허용할 수 있는 유한 상태 문자열 인식기다. 전체 입력을 처리하여 수용 상태에 도달하는 경로가 하나라도 있으면 문자열을 수용한다.

가능한 경로를 표현

어떤 상태에서 A를 읽고 두 상태로 갈 수 있다면 두 가능성을 모두 고려한다. 한쪽이 실패해도 다른 쪽이 전체 입력을 처리해 수용 상태에 도달하면 입력은 수용된다. 모든 경로가 성공할 필요는 없다.

입력 없는 전이

정의에 따라 입력 기호를 소비하지 않고 이동하는 ε 전이를 허용하기도 한다. ε-NFA와 ε 전이가 없는 NFA를 구분하는 설명도 있으므로 사용하는 모형을 확인한다. ε는 보통의 입력 문자 하나와 다르다.

무작위 선택과 구별

비결정성은 어느 경로를 무작위로 골라 성공 확률을 따지는 개념이 아니다. 수용 경로의 존재를 표현하는 모형이다. 실제 시뮬레이션은 가능한 현재 상태들의 집합을 갱신하는 방식 등으로 수행할 수 있다.

결정적 기계로 변환

NFA는 같은 언어를 인식하는 DFA로 변환할 수 있다. 여러 NFA 상태의 집합을 DFA의 한 상태로 표현하는 방식이 가능하지만 필요한 상태 수가 크게 늘 수 있다. 비결정성이 정규 언어의 범위를 더 넓히는 것은 아니다.

관련 문서

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