튜링 머신에서 NFA가 소수 길이의 문자열을 허용하는지 결정할 수 있습니까?


14

다음 문제가 결정 가능한지 알고 싶습니다.

인스턴스 : 상태가 n 인 NFA A

질문 : A가 길이 p의 일부 문자열을 허용하는 소수 p가 있습니까?

내 생각 에이 문제는 결정할 수 없지만 그것을 증명할 수는 없습니다. 결정자는 특정 숫자가 소수인지 알아내는 알고리즘을 쉽게 가질 수 있지만 NFA가 생성 할 수있는 길이를 정확하게 알기 위해 NFA를 충분히 자세하게 분석하는 방법을 알 수 없습니다. NFA로 문자열 테스트를 시작할 수 있지만 무한 언어의 경우 중단되지 않을 수 있으므로 결정자가 될 수 없습니다.

물론 솔루션에 필요한 경우 NFA를 DFA 또는 정규식으로 쉽게 변경할 수 있습니다.

이 질문은 제가 2 주 안에 낸 최종 시험에 대한 자체 준비 질문으로 숙고 한 것입니다.


이것이 저급 수준인지 확실하지 않으므로 삭제에 대해 걱정하지 마십시오. 어려운 문제로 판명 될 수 있습니다. 예 : terrytao.wordpress.com/2007/05/25/…

글쎄, 나는 그것을 만들었으므로 어려울 수 있습니다. NFA / DFA와 관련된 결정 불가능한 문제에 대한 증거를 찾지 못했습니다. 따라서 시도해 보는 것이 흥미로울 수 있습니다.

나는 당신이 연결된 것이 다른 (쉬운) 문제라고 생각합니다. "NFA는 몇 개의 길이 x 문자열을 허용합니까?"라고 대답 할 수 있습니다. 제공된 공식을 사용하여 NFA가 허용하는 길이의 문자열이 있는지 확인하기 위해 인스턴스를 무한히 검사해야합니다 . 나는 특정 소수에 대해 묻지 않고 모든 것에 대해 묻고 있습니다. 에스()

답변:


17

+케이gcd(,)=1

위의 내용을 함께 사용하면 일반 (또는 컨텍스트가없는 언어)에 소수 길이의 문자열이 포함되어 있는지 확인하는 알고리즘이 제공됩니다. 확실히 하지 간단한 질문, IMVHO ...


이 사례에서 파리 크의 정리를 이해하는 데 도움을 주시면 감사하겠습니다. PDA의 스택을 사용하지 않고 NFA를 PDA로 바꿀 수 있습니다. 선형 하위 집합이주기를 지정합니까? 그렇다면 어떻게 작동합니까?
Chill

1
케이케이

1
나는 그것이 내 질문에 대답한다고 생각합니다. 저는 파리 크 정리에 대해 더 많이 읽으려고합니다. 나는 그 아이디어 와이 경우 사이클을 지정하는 방법을 이해합니다. 내가 알아 내고 싶은 것은이 문제를 해결하기 위해 실제 알고리즘을 만드는 더 많은 "실습"솔루션입니다.
Chill

@ 칠, 그냥 내 이전 의견을보십시오. DFA의 기호를 그래프로 지우고 시작 시작 상태와 최종 상태 사이의 거리를 확인하는 것만으로 가능한 길이에 대한 설명을 도출하는 것은 그리 어렵지 않습니다. 공식화하기 어렵고 주어진 예제에 대해 손으로 쉽게 파악할 수 있습니다.
vonbrand

3
()
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.