자체 참조없이 문제 해결 ( 이 주어진

정지 문제에서, 주어진 튜링 머신 ( 이 주어진 입력 ( 에서 정지 되는지 여부를 알 수 있는 튜링 머신 (Tinging machine) 가 있는지 관심이있다 . 일반적으로 이러한 가 존재 한다고 가정하면 증명이 시작됩니다 . 그런 다음 를 제한 한 다음 대각 인수의 인스턴스를 사용하여 모순을 도출 하는 경우를 고려합니다 . 만약 우리가 이라는 약속을한다면 그 증거는 어떻게 됩니까? 무엇 PROMISE에 관하여 , 에 기능적으로 동일 ?

T

I T는 내가 M 내가 M 내가 M M M

M

i

T

i

M

i≠M

i≠M′

M′

M


답변

HALTS가 입력을 및 쌍으로 읽는 TM이라고 가정합니다 . 여기서 은 TM 인코딩이고 는 해당 TM에 대한 입력입니다.x M x

M

x

M

x

우리가 중지 모든 입력에 대해 정지 문제를 해결 가정하면 무슨 일이 일어날 경우 귀하의 질문은 있도록 동일한 기능을하는 TM의 인코딩되지 않습니다 .X M

⟨M,x⟩

x

M

나는 이것이 모순을 의미한다고 주장한다. 나는 그 자리에서 이것을 생각해 냈으므로 내 증거에 대한 모든 비판을 환영합니다. 증거의 개념은 자체적으로 무언가를 대각선 화하는 대신, 일부 입력에서 다르게 동작하는 두 개의 상호 재귀 TM을 만들지 만 (기능적으로 동일하지는 않지만) 모순을 유발한다는 것입니다.

하자 와 (우리는 등, 시뮬레이션 인쇄 할 수있는 말을하는 것입니다, 설명이 상호 재귀 개의 TM 될 의 프로그램 내부 와 그 반대의 경우도 마찬가지). 재귀 정리에서 상호 재귀 TM을 만들 수 있습니다.D 2 D 2 D 1

D1

D2

D2

D1

다음과 같이 및 를 정의하십시오 . 입력 , (임의로 10 개 선택)이면 수락하고 루프를 수락 합니다. (따라서 기능적으로 동일하지 않습니다).D 2 x | x | < 10 D 1 D 2

D1

D2

x

|x|<10

D1

D2

입력 감안할 때 와 정의 에 시뮬레이션을 정지 및 중지 경우 정지하는 경우 또는 루프 루프.| x | 10 D 1D 2 , X D 2 D 2

x

|x|≥10

D1

⟨D2,x⟩

D2

D2

입력 감안할 때 와 정의 에 시뮬레이션을 정지 루프 경우 정지하고있는 경우 또는 정지 D 1 루프.| x | 10 D 2D 1 , X D 1

x

|x|≥10

D2

⟨D1,x⟩

D1

D1

그런 다음주의 그 어떤을위한 | x | 10 , D 1 (x)가 멈추거나 반복됩니다. 경우 D 1 입력 (X)에 정지하고는, 우리가 아는 정지 ( D 2 , X)을 결정하는 D는 2 입력 (X)에 정지하고. 그러나 입력 x 에서 D 2가 중지되면 HALTS ( D 1 , x) 가 반복됨을 의미합니다 .

x

|x|≥10

D1

D1

D2

D2

D2

D1

경우 입력에 X의 루프, 모순 유사하게 다음과 같습니다.

D1

x

D 1 또는 D 2 와 기능적으로 동등한 튜링 기계의 인코딩이 아닌 경우 이는 모순 입니다.이 경우 HALTS에 정의되지 않은 동작이 있습니다. 그러나 x10 보다 큰 모든 문자열에서 임의로 선택되었습니다 . 따라서, 다르게 동작 (10)보다 큰 사이즈의 인코딩 튜링 기계가 존재 표시 남아 D (1)D (2) . 그런 기계를 사소하게 만들 수 있습니다. QED.

x

D1

D2

x

10

D1

D2

생각?


답변

당신은 여전히 ​​숲에서 벗어나지 않습니다. 당신은 지금 당신이 그것을 다른 TM, 줄, 같은 문제로 실행하는 당신이 선택한 입력으로 M을 ' 기능적으로 동등하다고 M (당신이 새 규칙을 추가 말할 M 그래서 M ' 의 오프닝 이동 한 단계 오른쪽, 한 단계 왼쪽이며 그렇지 않으면 변경하지 않습니다). 여전히 모순이 발생합니다. M 과 동등한 모든 TM을 제거하려고 시도 할 수는 있지만 결정 할 수없는 세트입니다.

M′

M′

M

M

M′

M

업데이트 . 인코딩 체계 수정 는 TM M 의 해당 체계에 대한 설명을 나타내며TM, H 가 있다고 가정합니다.

⟨M⟩

M

H
  • x H 와 동일한 부분 함수를 계산하는 TM의 인코딩 일때 정의되지 않습니다(즉, x H 는 기능적으로 동일합니다).
    H(⟨M⟩,x)

    x

    H

    x

    H

  • 다른 모든 입력의 경우 M ( x )가 중지 된경우에만 true를 반환합니다.
    H(⟨M⟩,x)

    M(x)

이제 일반적인 대각선 구조는 여전히 모순을 초래합니다. 에 의해 TM 를 정의하십시오

Q
Q(x)=
  if H(<Q>, x) = false
    return true
  else
    loop forever

분명히 H 는 기능적으로 동등하지 않으므로 x =

Q

H

찾아 그 Q (

x=⟨Q⟩

멈추지 않는 경우에만 정지하므로 TM H는 없습니다.

Q(⟨Q⟩)

H