튜링의 의미에서 계산 가능한 숫자를 열거 할 수있는 이유는 무엇입니까?


9

튜링의 의미에서 계산 가능한 숫자를 열거 할 수있는 이유는 무엇입니까? 매우 분명해야하지만 현재는 보이지 않습니다.


3
모든 TM이 열거 가능하기 때문에 간단하지 않습니까?
yo

그게 다야.

2
열거 가능하다는 것은 정의에 따라 모든 예 인스턴스에 대해 예 답변으로 정지되는 튜링 머신이 있음을 의미합니다. 계산 가능하다는 것은 모든 입력에 대해 정답으로 정지하는 튜링 기계가 있다는 것을 의미하기 때문에 계산 가능하다는 것은 열거 가능하다는 것을 쉽게 알 수 있습니다 (하위 사례 임).
Jonas G. Drange

나는 이것이이 경우 "계산 가능"의 의미라고 생각하지 않는다. 의사 결정 문제가 아니라 건설 문제입니다.
lvella September

답변:


5

계산 가능한 숫자의 정의가 다음과 같다고 가정합니다 : 입력시 Turing 기계가 있습니다. n와 함께 정지 n숫자의 비트.

계산 가능한 수를 생성하는 튜링 머신의 재귀 열거가 있다고 가정하십시오. 대각 화를 사용하여이 재귀 열거의 일부가 아닌 새로운 계산 가능한 숫자를 얻을 수 있습니다.

Turing 기계를 열거하여 계산 가능한 숫자를 열거하려고하지만 모든 Turing 기계가 계산 가능한 숫자에 해당하는 것은 아니며 일반적으로 모든 입력 (0 또는 1 출력 제외)에 대해 Turing 기계가 중지되는지 여부를 결정합니다. 그러나 클럭킹 튜링 머신을 사용하여 실행 시간이 다항식 인 모든 효율적인 계산 가능한 숫자를 열거 할 수 있습니다.


따라서 세트의 카디널리티 (이 경우 계산 가능한 숫자 세트)가 나열 가능한 다른 세트의 카디널리티 (모든 TM 세트)보다 크지 않더라도 첫 번째 세트가 될 수있는 것은 아닙니다. 나열되었습니다.
André Souza Lemos

2

열거 가능한 경우, 자연수 (예 : 계산 가능)를 가진 형용사가있는 경우, 계산 가능한 숫자는 열거 할 수 없습니다.

"NPTM (Number-Printing Turing Machine)"은 모든 상태 전이에 대해 아무것도 인쇄하지 않거나 10 진수, 빼기 부호 또는 마침표를 인쇄 할 수있는 Turing Machine입니다. 이것은 실수의 십진수 표현을 인쇄하기에 충분합니다.

빈 테이프에서 시작하여 NPTM에 의해 충분한 시간이 주어지면 임의로 긴 표현으로 인쇄 할 수있는 임의의 실수로 계산 가능한 실수를 정의 할 수 있습니다. 또한 주어진 NPTM에 의해 숫자가 계산된다고 가정합니다. 잘 구성된 실제 숫자를 인쇄 한 후 정지하거나 (이 경우 숫자는 유한 10 진수 표현 임) 유한 한 시간 안에 올바른 형식의 숫자를 인쇄합니다 소수점을 사용하여 더 많은 시간을 주어 더 많은 자릿수를 인쇄하여 숫자의 정밀도를 높입니다.

예를 들어, 어떤 숫자의 무한 시퀀스를 인쇄하는 기계를 가지고 있다면 1111111111111111111실제 숫자는 오른쪽에 무한한 표현 만 있기 때문에 어떤 숫자도 계산 한다고 말할 수 없기 때문에 나중에이 조건이 필요 했습니다. 소수점 마침표. 반면에, 기기 3.14가 인쇄 한 다음 인쇄를 중단하지만 멈추지 않는 경우 단순히 숫자의 정밀도가 증가하지 않기 때문에 실수를 계산한다고 할 수 없으므로이 특정 기기는이를 구성하지 않습니다. 더욱이.

다음은 일부 숫자를 계산하는 NPTM의 예입니다. 다음과 같은 NPTM

  • 인쇄 1한 다음 정지합니다. 숫자 1을 계산합니다.
  • 인쇄 1.0한 다음 정지합니다. 또한 숫자 1을 계산합니다.
  • 인쇄 1.0000000하고 영점 인쇄를 계속 유지합니다. 이것은 또한 1 번을 계산합니다.
  • 인쇄 3.14한 다음 정지합니다. 숫자 3.14를 계산합니다.
  • 인쇄 3.14159하고 다음의 숫자를 영원히 인쇄합니다.π. 이 숫자를 계산π.
  • 인쇄 -42.한 다음 정지합니다. 숫자 -42를 계산합니다.

그리고 이것은 숫자를 계산 하지 않는 NPTM의 예입니다 . 다음과 같은 NPTM

  • 인쇄 123123123한 다음 시퀀스를 123영원히 인쇄합니다 . 이 무한 시퀀스는 실수를 나타내지 않으므로 숫자를 계산하지 않습니다.
  • 인쇄 1.0.0한 다음 정지합니다. 이 유한 시퀀스가 ​​제대로 형성되지 않았기 때문이 아닙니다.
  • 인쇄 ....-..---한 다음 정지합니다. 이것은 잘 구성된 실수가 아니기 때문이 아닙니다.
  • 아무 것도 인쇄하지 않지만 멈추지 않습니다. 건설중인 번호가 없습니다.
  • 아무 것도 인쇄하지 않고 즉시 정지합니다. 번호가 생성되지 않았습니다.
  • prints 3.14는 멈추지 않지만 다른 어떤 것도 인쇄하지 않습니다. 정밀도가 시간이 지남에 따라 증가하지 않기 때문에 숫자를 계산하지 않습니다.

당신은 아이디어가 있습니다. 그런 다음 NPTM의 두 가지 클래스가 있습니다. 실제 숫자를 계산하는 클래스와 그렇지 않은 클래스입니다.

계산 가능한 숫자에 대한 열거를 찾는 데 따른 문제점은 NPTM 자체가 계산 가능하더라도 한 종류의 NPTM을 다른 것으로 구분할 수있는 절차가 없다는 것입니다.

계산 가능한 집합의 정의를 고려하십시오. S 셀 수 있으려면, 일부 bijective 기능이 있어야합니다 F:NS.

계산 가능한 숫자가 셀 수 있음을 "증명"하기 위해 NPTM 계산에서 이러한 기능을 정의하려는 유혹을받을 수 있습니다 (그리고 사람들이 계산 가능한 숫자를 셀 수 있다고 생각할 때 사람들이 자주하는 일입니다). 이 같은:

NPTM은 셀 수 있으므로 형용사 기능이 있습니다 ENPTM:N>NPTM따라서 존재하는 모든 NPTM을 영원히 열거 할 수 있습니다. 따라서 모든 계산 가능한 숫자를 열거하고 bijective 함수를 정확하게 정의하려면EComputabe:NComputable, 간단히 모든 NPTM을 열거해야하지만 실수를 계산하는 것만 계산하십시오. 그러나 어떻게 실수를 계산하는지 어떻게 알 수 있습니까?

글쎄, 우리는하지 않습니다. 즉시 인쇄 1.0한 다음 인쇄를 중지하고 Post 대응 문제 의 인스턴스를 해결하려고 하는 기계를 생각해 보십시오 . 문제가 해결되면 멈추고 기계는 단지 1 위를 계산했습니다. 그러나 그 문제는 결정할 수 없으므로 결코 멈추지 않을 것이며 결코 멈추지 않으면 실수를 계산하지 않습니다. 그러나 Halting 문제 도 결정할 수 없기 때문에 중단 될지 알 수 없습니다 ! 따라서이 특정 기계와 무한히 많은 다른 기계가 실제 숫자를 계산하는지 아닌지를 알 수있는 방법이 없으므로이 방법으로 bijective 함수를 빌드 / 정의 할 수 없습니다.

bijection을 정의하는 순진한 방법은 실패하며, 방법이 없다는 것을 증명하는 것은 그리 어렵지 않습니다. Yuval Filmus가 제안했듯이 대각선 화를 사용할 수 있습니다.


"계산 가능한 숫자는 계산할 수 없습니다"대신 "계산 가능한 숫자는 열거 할 수 없습니다"라고 말하고 싶을 것입니다.
IllidanS4는
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.