DFA 또는 NFA는 단일 헤드가있는 입력 문자열을 통해 왼쪽에서 오른쪽으로 읽습니다. 여러 개의 헤드 를 가진 유한 상태 기계에 대해 궁금해하는 것은 당연한 것으로 보입니다 . 각 헤드 는 왼쪽에서 오른쪽으로 입력을 통해 이동하지만 입력에서 다른 곳과 반드시 같은 위치에 있지는 않습니다.
다음과 같이 헤드가 있는 유한 상태 머신을 정의하겠습니다 .
K 헤드 NFA는 튜플 여기서 :
평소와 같이 는 유한 상태 세트이고, 는 유한 알파벳, 은 초기 상태, 는 수용 상태 세트입니다. 하자 빈 문자열을 포함하여 문자 집합을 나타낸다.
는 전이 관계입니다. 전이 는 기계가 상태 인 경우 에서 가 head 의 다음 문자 (또는 해당 head가 움직이지 않으면 되도록 다음 state로 이동할 수 있습니다. .
이런 종류의 기계 (시작 상태에서 시작하여 허용 상태로 끝나는 경로)를 실행하면 하나의 문자열이 아니라 다른 문자열 (실행에 따라 문자를 연결하여 형성됨)이됩니다. 그런 다음 문자열이 동일 하면 실행이 유효 하다고 말합니다 .
머신 의 언어 는 문자열 세트 이며, 해당 실행에 따라 생성 된 문자열이 모두 동일한 유효한 머신 실행이 존재합니다 .
질문 : 그러한 기계가 인식하는 언어 클래스는 무엇입니까? 공부 했습니까?
첫 번째 관찰은 그러한 기계가 일반 언어보다 큰 클래스를 생성한다는 것입니다. 예를 들어,
는 상태를 가진 다음 헤드 NFA에 의해 인식됩니다 .
(여기서 표시된 가장자리는 형식의 전환을 나타냅니다 .)
그러나 두 번째 관찰은 모든 문맥이없는 언어가 인식되지는 않는다는 것입니다. 예를 들어, Dyck 언어 는 이러한 헤드 머신에서 인식 할 수없는 것 같습니다 .