두 개 이상의 카운터가있는 카운터 머신 은 일반적으로 계산 이론에 대한 과정에서 튜링 머신과 동등한 것으로 표시됩니다. 그러나, 나는 1 카운터 기계가 어떤 언어를 인식 할 수 있는지에 대한 공식적인 분석을 보지 못했습니다. 이러한 언어는 문맥이없는 언어 (아마도 PDA와 관련하여 일부 영리한 구성)와 동등하거나 완전히 다른 클래스의 언어입니까?
두 개 이상의 카운터가있는 카운터 머신 은 일반적으로 계산 이론에 대한 과정에서 튜링 머신과 동등한 것으로 표시됩니다. 그러나, 나는 1 카운터 기계가 어떤 언어를 인식 할 수 있는지에 대한 공식적인 분석을 보지 못했습니다. 이러한 언어는 문맥이없는 언어 (아마도 PDA와 관련하여 일부 영리한 구성)와 동등하거나 완전히 다른 클래스의 언어입니까?
답변:
하나의 카운터 오토마타는 스택에 하나의 심볼 만 허용되는 고정식 오토마타입니다. 하나의 카운터 오토마타에 의해 인식되는 언어는 문맥 자유 언어의 적절한 부분 집합을 형성합니다.
예를 들어 1- 카운터 오토마타는 언어를 인식 할 수 있지만 문맥이없고 언어를 인식 할 수는 없습니다 . 2 카운터 오토마타에서도 인식됩니다.{ a n b m a m b n }
k-DCA가 결정적 k- 카운터 오토마타이고, k-NCA가 비 결정적 k- 카운터 오토마타 인 경우 다음과 같은 적절한 포함이 있습니다.
DFA (일반 언어) 1-DCA 2-DCA⊂
1-DCA 1-NCA
전환을 허용하지 않으면 ( 실시간으로 전환 ) k <k '에 대해 k -DCA k'-DCA.
카운터 오토마타는 미국과 프랑스 팀 (Ginsberg, Greibach, ..., Nivat, Berstel 등)에 의해 AFA와 AFL 이론 (오토마타 및 언어의 추상 패밀리)과 관련하여 고대 공식 언어로 과거에 많이 연구되었습니다.
카운터 오토마타는 일반적으로 외부 메모리가 장착 된 유한 상태 오토마타로 정의되며, 자연수 (또는 하나 이상의 카운터가있는 경우 몇 개)로 구성됩니다. 이 숫자는 증가, 감소 및 (보통) 0으로 테스트 할 수 있습니다. 계산은 0으로 시작하며 끝에서 카운터가 0 일 때만 허용되며, 푸시 다운 빈 스택 승인과 비슷합니다.
이러한 기계에 이러한 카운터가 두 개 이상 있으면 결정적인 경우에도 튜링 기계와 같습니다. 이 사실의 증거는 Minsky에 의한 것이며 링크 한 Wikipedia 기사에서 찾을 수 있습니다. 이 모델은 물론 동일한 위키 백과 페이지에서 언급 된 등록 기계와 관련이 있습니다. 위키피디아 기사에서 언급 한 코딩 문제는이 설정에서 중요하지 않습니다. 입력 테이프로 오토마타를 고려할 때 (입력 문자열을 읽어야 함)이 페이지의 위키피디아는 카운터 만 가정합니다.
이 카운터 오토 마톤은 스택 심볼이 하나만 있고 스택 하단 (이동되지 않음) 만있는 특수 유형의 pda로 볼 수 있습니다 . 이를 통해 오토 마톤은 카운터 / 스택이 0인지 테스트하고 그에 따라 작동합니다.
실제로 세 가지 유형 의 카운터 오토마타가 있습니다. 따라서 결과를 현명하게 결합하거나 모순으로 끝납니다 (과거의 과거와 같이). 세 가지 유형 모두 하나의 카운터에 대해 컨텍스트가없는 언어에 (엄격하게) 포함됩니다.
위의 유형은 정수 (또는 중요하지 않은 자연수)를 저장하고 0의 내용을 테스트 할 수 있습니다. 블라인드 카운터 오토마타는 정수를 저장하지만 0을 테스트 할 수 없습니다. 그들은 신속하게 0 미만으로 계산할 수 있습니다. 부분 맹검 카운터 오토마타는 0을 테스트 할 수 없지만 자연수를 저장합니다. 기계가 0 아래로 내려 가려고하면 수락하지 않고 정지합니다. 이것은 페트리 네트를 모델링하기위한 자연스러운 스토리지 유형입니다. 또한 특별한 하단 마커가없는 단일 스택 기호가있는 PDA로 평가되었습니다 (따라서 0 테스트 문제 : 마지막 스택 요소를 팝 할 때 막히게됩니다). 때로는 반응 형 카운터 모델에 의해 정의 된 제품군의 이름이 OCL, ROCL 및 1-BLIND입니다.
관련 연구의 예로서 Latteux etal은 "단일 카운터 언어의 가족이 쿼터에 의해 닫혀있다"(실제로 ROCL에 관한)와 같은 중요한 논문을 가지고 있습니다.