완전하지 않은 계산 모델에 대해 "계산 가능"에 대한 명확한 정의가 있습니까?


9

이것은 또 다른 질문의 후속이다 여기 , 내가 너무 철학적되지 않습니다 바랍니다. Raphael이 이전 질문에 대한 의견에서 지적했듯이 실제로 "계산 가능"에 대한 정의를 얻지는 못하지만 일부 논문에 따르면 튜링보다 약한 계산 모델에 대해서는 정의가 명확하지 않습니다. 입력 및 출력의 인코딩으로 인해 기계.

튜링 계산 의 일반적인 정의는 다음과 같습니다.

정의 1 : 기능 f:NkN라고 계산 가능한 튜링 IFF하는 튜링 기계가M 계산하는 f자연수 의 적절한 인코딩 을 문자열로 사용합니다.

정의는 적절한 인코딩 이 무엇인지에 따라 다르지만 대부분 이진 인코딩 , 단항 인코딩 또는 십진 인코딩 을 하나의 고정되고 적합한 인코딩이라고합니다. 튜링 계산 성의 정의를 위해 하나의 인코딩을 수정해야한다는 것을 보여줄 수도 있습니다. 그러나 자연수의 이진 인코딩이 특별한 이유는 무엇입니까? 아마도 계산의 의미가 우연히 일치 한다는 직관적 인 개념에 맞기 때문일 것 입니다.

이제 튜링 머신보다 약한 계산 모델을 보면 어떨까요? 예를 들어, 세트를 고려해 봅시다Mc 알파벳이있는 "파쇄 된"튜링 기계 {0,1}오른쪽으로 만 이동할 수 있으며 튜링 계산 의 정의 와 일치하는 주름진 튜링 계산 의 정의는 다음 과 같습니다.

정의 2 : 기능 f:NkN라고 계산 가능한 튜링 불구 또는 에서 계산 가능Mc 주름진 튜링 기계가 있다면 M 계산하는 f 자연수의 적절한 인코딩을 문자열로 사용합니다.

"적절한 인코딩"을 "이진 인코딩"으로 정의하면 함수 f:NN,nn+1입니다 하지 에서 계산할 수Mc. "적절한 인코딩"을 "단일 인코딩"으로 축약 화하면f 이다 계산할 수있는가Mc. 모든 사람들이 마음대로 수많은 직관적 인 인코딩 중 하나를 고칠 수 있다는 사실을 감안하면 어색해 보입니다. 계산 모델이 계산할 수 있는지 분명해야합니다.f 특정 인코딩을 언급하지 않고서는 안됩니다. 적어도 "루프 프로그램이 튜링 머신보다 약합니다"라고 말할 때 어떤 인코딩이 사용되는지 언급 한 적이 없습니다.


이 소개 후에 마침내 내 질문에 대해 말할 수 있습니다. 계산의 직관적 인 개념과 일치하지 않는 임의 의 계산 모델에 대해 "적절한 인코딩"과 "계산 성"을 어떻게 정의 할 수 있습니까? 튜링 계산의 틀 안에서 이것이 가능합니까?

편집 : 소개를 단축했지만 질문에 추가하지 않았습니다.

답변:


6

여기서 누락 된 몇 가지 기본 사실은 언급 한 모든 인코딩이 계산 가능성의 관점에서 동일하다는 것입니다. 숫자의 이진 인코딩을 단항 인코딩으로 매핑하거나 그 반대로 매핑하는 계산 가능한 함수가 있습니다. 따라서 계산 가능성을 정의하기 위해 숫자로 어떤 인코딩을 선택하든 상관 없습니다. 좋아하는 인코딩을 수정하십시오.

계산 기능은 핵심적으로 문자열 함수의 속성입니다 f:ΣΣ. 다른 도메인에서 계산 가능성을 정의 할 때는 인코딩을 수정해야합니다. 실제로 모든 "합리적인"인코딩은 이전 단락의 의미에서 동일하므로 정확한 인코딩은 중요하지 않습니다.

그러나 인코딩은 제한된 계산 모델에서 중요합니다. 극단적 인 예를 들어, 시간이 제한된 튜링 머신을 고려한다고 가정 해 봅시다.O(nc) 일부 c, 어디 n입력의 길이입니다 (문자열). 이진 인코딩이 훨씬 간결하기 때문에 더 이상 이진 인코딩과 단항 인코딩간에 전환 할 수 없습니다. integer 의 다항식 시간 계산 가능 함수에 대해 이야기 할 때 정수가 2 진으로 인코딩되도록 지정합니다. 십진 인코딩은 다항식 시간 계산의 동일한 개념으로 이어지기 때문에 이것은 다소 임의의 선택입니다.

따라서 귀하의 질문에 대답하기 위해 – 인코딩은 제한된 모델의 정의의 일부로 지정됩니다.


"여기서 누락 된 몇 가지 기본 사실은 언급 한 모든 인코딩이 계산 성의 관점에서 동일하다는 것입니다. 숫자의 이진 인코딩을 단항 인코딩에 매핑하거나 그 반대로 매핑하는 계산 가능한 함수가 있습니다."-예, 나는 내 질문의 원래 버전에서 그것을 가지고 있었지만 더 약한 모델에 대한 질문과 그것이 어떻게 관련되는지 알 수 없습니다. 인코딩이 모델 정의의 일부로 지정되어야한다는 것이 명백하지만, 문제는 어떻게 그러한 합리적인 정의에 도달 할 수 있는지 입니다.
Stefan Lutz

1
이 정의를 모자에서 빼냅니다. 다른 정의는 동일한 경향이 있으므로 정확한 정의는 중요하지 않습니다. 그렇게되면 복잡성에 대한 여러 가지 다른 개념이있을 것입니다. 예를 들어, 일부 그래프 알고리즘의 경우 인접 행렬이나 가장자리 목록이 제공되면 차이가 있습니다.
Yuval Filmus

요약하자면 : a) 각 단일 계산 모델의 정의에는 구문, 의미론 및 적절한 인코딩이 포함되어야합니다. b) "적절한 인코딩"의 정의는 모델의 구문 및 의미와 완전히 독립적입니다. c) 모든 계산 모델에 유효한 "적절한 인코딩"의 정의를 제공 할 방법이 없습니다. 그 맞습니까?
Stefan Lutz

나는 a)와 b)에 동의하지만 c)는 부분적으로 만 동의합니다. 사실을 명시 적으로 언급하지 않는 한 "표준 인코딩"으로 사용되는 적절한 인코딩을 정의 할 수 있습니다. 숫자의 경우 이러한 표준 인코딩 (이진 인코딩)이 존재합니다.
Yuval Filmus

좋습니다, 그러나 이것이 실제로 일반적인 정의로 구성되는 것은 아니며, 사람들이 "이 모델에서 명시 적으로 기록 할 필요가 없기 때문에 시간을 절약 할뿐입니다. M, 우리는 이진 인코딩을 사용합니다 "라고 적습니다. 그것들을 쓰지 않으면 암시됩니다. 그들은 여전히 ​​모델에 다른 인코딩을 선택할 수 있습니다."일반 정의 "라는 의미는 각 인코딩이 허용하기 위해 충족해야하는 속성 세트입니다. 부호화있다.
스테판 루츠

4

우선, "적절한 인코딩"을 이진 문자열 또는 다른 인코딩으로 수정할 수 없습니다. 계산 모델마다 입력 및 출력 모델이 매우 다를 수 있기 때문에 너무 많은 계산 모델을 잃어 버리기 때문입니다. 즉, 문자열을 "말하지"않을 수 있습니다.

예를 들어, 타입이 지정되지 않은 람다 미적분의 항은 변수이거나 한 항을 다른 항에 적용하거나 람다 항의 추상화입니다. 입력과 출력은 임의의 문자열이라는 용어입니다. 그럼에도 불구하고, 타입이 지정되지 않은 람다 미적분은 자연수를 특정 형태의 람다 항으로 인코딩하는 "적절한 인코딩"이 존재하기 때문에 튜링-완료이며, 각각의 계산 가능한 함수에 대한이 인코딩 아래에 그것을 계산하는 람다 항이 존재한다.

Turing 머신을 계산의 참조 모델로 수정 한 경우, 항상 중단되는 Turing 머신이 바이너리 문자열과의 인코딩 및 디코딩을 수행하도록 요구하는 경우 "적절한 인코딩"을 공식화 할 수 있습니다. 예를 들어, 튜링 머신은 자연수를 이진 문자열로이 숫자를 표현하는 람다 항으로 변환하고 람다 미적분의 감소를 시뮬레이션 한 다음 결과를 이진 문자열로 다시 변환 할 수 있습니다.

더 간단한 계산 모델의 경우 동일한 접근법을 기대합니다. 계산의 참조 모델을 취하고 자연수의 인코딩을 수정 한 다음 인코딩과 디코딩이 해당 간단한 모델의 인스턴스에 의해 수행되는지 확인하십시오. 언급했듯이, 주름진 튜링 머신의 경우, 1 진 및 2 진 인코딩 번호를 사용하면 동등한 계산 모델이 생성되지 않습니다.


마지막 단락에서 상황이 바뀌었을 가능성이 있습니까? 인코딩은 참조 모델이 아닌 간단한 모델에 의해 수행된다고 씁니다. 이전 단락에서는 다른 모델 (lambda calculus)이 아닌 참조 모델에 의해 인코딩을 수행하려고합니다.
Stefan Lutz

더 약한 계산 모델을 연구하고 있다면 인코딩 / 디코딩 단계에서도 튜링 머신을 사용하고 싶지 않습니다. 그런 다음 인코딩 단계에서 모든 계산을 수행 할 수 있으며 계산 모델은 Turing이 완료됩니다. 따라서 인코딩 / 디코딩에 더 간단한 참조 모델을 사용해야합니다.
Hoopje

1
그런 다음 튜링 기계를 고정하면 교회 숫자로 람다 미적분의 튜링 완성도를 어떻게 증명할 수 있는지 알 수 없습니다. LC가 TM보다 약하다고 가정해야하므로 "약한"모델 람다 계산의 일부는 숫자가 주어진다nN 인코딩 사용 church:Nlambdaterm 같이 church(n)그런 다음 함수를 계산합니다. toBinary:lambdatermlambdaterm 이진 문자열을 출력하는 wΣ? 코 도메인이 일치하지 않습니다. lambdaterms가 문자열로 해석되도록 허용하더라도 문자열을 "말하지"않는 다른 모델이 있습니다.
Stefan Lutz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.