튜링 결정 가능한 많은 계산 가능한 언어가 있습니다. 셀 수없는 언어가 Turing 결정 가능합니까?
튜링 결정 가능한 많은 계산 가능한 언어가 있습니다. 셀 수없는 언어가 Turing 결정 가능합니까?
답변:
유한 한 (또는 셀 수있는) 알파벳 이상의 모든 언어는 셀 수 있습니다. Turing machine 알파벳이 유한하다고 가정하면, 가능한 언어는 셀 수 있습니다.
길이가 무한한 단어를 허용하는 경우에만 셀 수없는 언어를 사용할 수 있습니다 (예 : Omega-regular language 참조) . 이 언어들을 ω 라고합니다 합니다. 또 다른 예는 모든 실수의 십진 확장을 포함하는 실수의 하위 집합의 언어입니다.
튜링 머신이 언어 를 수용하도록 수정 된 일부 모델이 있습니다 . 이러한 모델 중 일부는 수락을 위해 Buchi 조건을 사용합니다. 입력 시간 전체를 유한 시간 내에 볼 수 없기 때문에 Turing Machine이 수락 상태에 무한히 들어간 경우 입력이 허용됩니다. 입력을 실행하지 않고 분석하여이를 증명할 수 있으면 입력이 승인되었다고 말합니다.
고전적 계산 성은 유한 알파벳의 유한 문자열에 대한 함수를 설명합니다. 결과적으로 결정 가능 또는 결정 불가능한 모든 언어를 계산할 수 있습니다.
셀 수없는 언어 를 고려하려면 살펴 봐야합니다 무한 문자열 유한 문자열 대신 합니다. (무한한 알파벳을 가진 AFAIK는 그다지 흥미롭지 않으며 현실적인 계산 모델 자체에 해당하지 않습니다.)
무한 문자열을 처리 할 수있는 계산 모델이 있는데,이를 통해 실수와 같은 셀 수없는 도메인의 객체를 나타낼 수 있습니다. 이들은 종종 더 높은 유형의 계산으로 표현됩니다. 튜링 머신을 사용하는 모델 중 하나는 TTE 모델입니다. 이 모델에서 입력은 무한 문자열 일 수 있으며 기계는 원하는 문자열의 모든 항목에 액세스 할 수 있습니다. 기계를 종료 할 필요는 없지만 기계의 출력이 수렴되는지 확인하는 조건이 있습니다.
우리 기계의 입력이 , 즉 알파벳 Σ의 무한 문자열에서 온다고 가정합니다 (예 : Σ = { 0 , 1 }) . 그런 다음 Σ N = 2 N 문자열이 있습니다. 따라서 2 2 N 가능한 언어가 있습니다. TTE Turing 기계의 수는 여전히 계산 가능합니다. 따라서 이러한 언어의 대부분은 결정할 수 없습니다.
그러나 여기서 더 흥미로운 점이 있습니다. 기계를 항상 정지 시키려면 입력의 유한 한 초기 부분 만 읽을 수 있습니다. 결과적으로 우리는 다음과 같은 결과를 얻습니다 : 을 항상 (한시적으로) 멈추는 TTE 머신이라고 합시다 . 이어서 프리픽스없는 언어가 L ∈ Σ * 및 튜링 기계 N 되도록 임의 대해 X ∈ Σ ω , M은 허용 X를 IFF에 N은 초기 수용 부 (X) 에 L이 .
간단히 말해서, 항상 정지하는 TTE Turing 기계의 계산은 유한 스트링에서 Turing 기계의 계산에 의해 결정됩니다.
무한 문자열의 결정 가능한 언어와 결정 불가능한 언어의 예를 들어 보겠습니다.
반 결정 가능합니다. 즉, 줄이 들어올 때마다 멈추고 받아들이는 기계가 있습니다 문자열이 없을 때는 받아들이지 않습니다 . 그렇지 않은 경우기계가 멈추지 않을 수 있습니다. 반 결정 가능한 언어는 위의 1 항에 나와있는 형식의 열거 가능한 언어 목록을 통합하여 얻을 수 있습니다.
언어와 그 보완 언어가 반 결정 가능하다면 언어는 결정 가능합니다.
무한 문자열 0을 포함하는 언어는 결정할 수 없습니다. 이것은 이상하게 보일지 모르지만 다음과 같이보십시오 : 문자열을 읽을 때 정지 할 수 있고 입력이 모두 0으로 구성되어 있다고 말할 때? 읽은 후에 멈 추면 0은 기계에서 시작하는 언어를 받아들입니다. 0과 1이 모두 뒤 따릅니다. 이 모델에서 문자열에 대한 유일한 액세스는 비트를 요구하는 것입니다.
따라서 TTE가 흥미로운 모델이 아니라고 생각할 수 있습니다. 그러나 TTE 모델을 사용하여 무한 문자열을 계산하는 것은 실제로 매우 흥미 롭습니다. 출력의 유한 부분을 얻으려면 입력의 유한 부분 만 읽을 수 있다는 직관을 기반으로합니다. 즉, 출력에 대한 유한 정보는 입력에 대한 유한 정보량에만 의존합니다. 컴퓨팅에 관심이있는 기능은이 규칙을 따르지만 그렇지 않으면 계산할 수 없습니다. 예를 들어 이진 문자열로 인코딩 된 읽기 숫자와 함수를 고려하십시오.. 우리는 숫자의 유한 근사치를 제공합니다 기계에 숫자의 유한 근사값을 반환합니다. 우리에게.
약간의 토폴로지를 알고 있으면 이들 중 많은 부분이보다 직관적이됩니다. 여기서 핵심 아이디어는 문자열에 대한 정보 토폴로지를 정의 할 수 있으며 해당 토폴로지와 관련하여 계산 가능한 기능을 계속해야한다는 것입니다. 결과적으로 계산 가능한 총 함수 수 해당 공동 도메인은 그만큼 clopen해야합니다. 실수에 대한 다른 현실적인 계산 모델 (부동 소수점뿐만 아니라 실제로 무한 실수)에도이 속성이 있습니다. 당신이 TTE에 관해 읽을만한 좋은 곳이 있다면 Klaus Weihrauch의 저서 " Computable Analysis "입니다. 웹 사이트 에는 Analysis Network의 계산 및 복잡성에 대한 다른 참조도 많이 있습니다 .