함수가 계산 불가능하다는 것을 보여주는 방법?


답변:


57

일반적인 질문에 대답하기 전에 먼저 한 걸음 물러서서 역사 배경을 제시하고 예비 질문에 대답하겠습니다. 계산할 수없는 기능도 존재합니까?

[표기 참고 : 모든 함수 를 언어 와 다음 의 계산 보다는 의 결정 가능성에 대해 논의 할 수 있습니다 .fLf={(x,y)∣y=f(x)}Lff


결정할 수없는 언어 가 존재합니다

Turing machine이 결정할 수없는 언어가 있습니다. 논증은 간단하다. 셀 수없이 많은 다른 TM이 있지만 셀 수없이 많은 다른 언어가있다. 따라서 최대 결정 가능한 언어가 있으며 나머지 (무한한 많은 언어)는 결정할 수 없습니다. 더 읽을 거리 :(ℵ0)(ℵ)ℵ0

결정 불가능한 특정 언어에 우리의 손을 넣기 위해,이 개념은 대각 화 (Georg Cantor, 1873) 라는 기술을 사용하여 원래는 정수보다 더 많은 수의 숫자, 즉 .ℵ>ℵ0

첫 번째 결정 불가능한 언어를 구성하는 아이디어는 간단합니다. 모든 Turing 머신을 나열하고 (이는 반복적으로 열거 가능하기 때문에 가능합니다!) 하나 이상의 입력에서 각 TM에 동의하지 않는 언어를 만듭니다.

ε0100⋯M110101M201000M300010⋮⋱

위의 각 행은 하나의 TM이고 각 열은 하나의 입력입니다. TM이 거부하거나 중단되지 않으면 셀의 값은 0이고 TM이 해당 입력을 승인하면 1입니다. 번째 TM이 해당 입력을 받아들이지 않는 경우에만 가 번째 입력을 포함 하도록 언어 를 정의합니다 .D I IDDii

위의 표에 따라 이후 받아 . 마찬가지로, 하지만 이후 허용하지 않습니다 .M 1 ε 0 ∉ D 1 ∈ D M 3 1ε∉DM1ε0∉D1∈DM31

이제 가정 결정 하고 라인 찾아 볼 표 :이 경우 에서 번째 열, 다음 그 입력을 허용 하지만 아닌 , 그리고있을 경우 이, 입력이에 이지만 는 허용하지 않습니다. 따라서 는 결정하지 않으며 모순에 도달했습니다. D k 1 k M k D 0 D M k M k DMkDk1kMkD0DMkMkD

이제 질문하십시오. 언어가 결정 불가능하다는 것을 증명하는 몇 가지 방법이 있습니다. 가장 일반적인 것들을 터치하려고합니다.

1. 직접 증거

첫 번째 방법은 TM이 언어를 결정할 수 없음을 보여줌으로써 언어가 결정 불가능하다는 것을 직접 보여주는 것입니다. 이것은 일반적으로 위에 표시된 대각선 화 방법을 따릅니다.

예.

대각선 언어 )를 결정할 수 없음을 보여줍니다.

LD¯={⟨M⟩∣⟨M⟩∉L(M)}

증명. 를 결정할 수
있다고 가정 하고 결정자로 . 두 가지 경우가 있습니다. MDLD¯MD

  1. ⟨ M D ⟩MD 는 허용⟨MD⟩ ⟨ M D ⟩∈L( M D )⟨M⟩∉ ¯ L D M D ¯ L D 하지만 이므로 입니다. 따라서 가 결정 하면 이런 일이 발생할 수 없습니다 .⟨MD⟩∈L(MD)⟨M⟩∉LD¯MDLD¯
  2. ⟨ M D ⟩MD 허용하지 않습니다⟨MD⟩ 너무 : 따라서 . 그러나 그것이 라면 는 그것을 받아 , 우리는 다시 모순에 도달했습니다.⟨M⟩∈ ¯ L D L D M D⟨MD⟩∉L(MD)⟨M⟩∈LD¯LDMD

2. 폐쇄 속성

때로는 클로저 속성을 사용하여 이미 결정 불가능한 것으로 알려진 다른 언어를 기반으로 일부 언어를 결정할 수없는 것으로 표시 할 수 있습니다.

경우 특히, decidable 아니다 (우리는 쓰기 , 다음 또한 보완) 결정 불가능입니다 : 결정자가 있다면 에 대한 우리가 결정하는 데 사용할 수있는 할 때마다 수락하여 은 거부하고 그 반대도 마찬가지입니다. 항상 답을 가지고 멈추기 때문에 (결정자), 항상 답을 뒤집을 수 있습니다.L ∉ R ¯ L M ¯ L L M MLL∉RL¯ML¯LMM

결론 : 대각선 언어 은 결정할 수 입니다. L D ∉RLD={⟨M⟩∣⟨M⟩∈L(M)}LD∉R

과 그것의 보수 이 재귀 적으로 열거 가능 하다면 , 둘 다 결정할 수 있다는 점에 주목함으로써 유사한 주장이 적용될 수있다 . 이것은 언어가 재귀 적으로 열거 가능하지 않고 결정 불가능한 것보다 강력한 속성임을 증명하려는 경우에 특히 유용합니다.¯ LLL¯

3. 결정 불가능한 문제를 줄이기

일반적으로 언어가 이미 "대각선"방식으로 구성되지 않은 경우 언어를 결정할 수 없음을 직접 증명하는 것은 매우 어렵습니다. 결정 불가능 성을 입증하는 가장 마지막이고 가장 일반적인 방법은 우리가 이미 결정할 수없는 다른 언어를 사용하는 것입니다. 아이디어는 한 언어를 다른 언어로 줄이는 것입니다. 하나를 결정할 수 있으면 다른 언어도 결정할 수 있어야하지만 그 중 하나는 이미 결정 불가능한 것으로 알려져 있으므로 첫 번째 언어도 결정할 수 없다는 결론으로 ​​이어집니다. "서로 문제를 줄이기위한 일반적인 기술은 무엇입니까?"의 축소에 대해 자세히 알아보십시오. .

예.

에서 대각선 언어 가 중지됨을 알 수 없음을 보여줍니다.

HP={⟨M,x⟩∣M halts on x}

증명.
우리는 를 결정할 수 것을 알고 있습니다. 우리는 감소 에 (이 표시된다 ), 즉, 우리가하면 것을 보여 decidable이었다 우리가 결정하기 위해 결정자를 사용할 수 모순이다.L D H P L D ≤ H P H P L DLDLDHPLD≤HPHPLD

감소는 후보를 변환하여 작동 에 대한 (대한 잠재적 결정자 / 수용체에 대한, 즉 입력을 후보로) 에 대한 등이 경우에만, . 이 전환이 계산 가능한지 확인합니다. 따라서 결정 하면 인지 여부를 알 수 있으므로 HP를 결정할 수 있으면 도 결정할 수 있습니다 .¹L D L D w ′ H P w ∈ L D w ′ ∈ H P w ′ w ∈ L D L DwLDLDw′HPw∈LDw′∈HPw′w∈LDLD

변환은 다음과 같습니다. 몇 가지를 가지고 , 출력 , ² 여기서 TM은 단지 같은 동작합니다입니다 있지만, 경우 거부, 다음 간다 무한 루프로.w ' = ⟨ M ' , ⟨ M ⟩ ⟩ M ' M M M 'w=⟨M⟩w′=⟨M′,⟨M⟩⟩M′MMM′

가 요구 사항을 만족시키는 것을 보자 . 경우 , 그 의미 가 정지 하고 입력 받아 . 따라서 은 입력 도 중지하고 수락합니다 . 따라서 입니다. 한편, 다음 거부 나에 결코가 정지 중 . 두 경우 모두 은 에서 무한 루프로 들어갑니다 . 따라서 w ∈ L D M ⟨ M ⟩ M ' ⟨ M ⟩ ⟨ M ' , ⟨ M ⟩ ⟩ ∈ H P w ∉ L D M ⟨ M ⟩ M ' ⟨ M ⟩ ⟨ M ' , ⟨ M ⟩ ⟩ ∉ H P w ∈ L D w ′ ∈ H Pw,w′
w∈LDM ⟨M⟩M′⟨M⟩⟨M′,⟨M⟩⟩∈HP
w∉LDM⟨M⟩M′⟨M⟩⟨M′,⟨M⟩⟩∉HP그리고 우리가 보여주는 수행되는 및 경우에만 경우 하고, 따라서 그 보였다 .w∈LDw′∈HPHP∉R

추가 자료 : 태그 를 통해 언어의 축소 및 비결정 불가능 성을 입증하는 많은 예를 찾을 수 있습니다 .


  1. 축소가 유효하도록 제한이 더 있습니다. 변환 자체는 계산 가능 해야하며 모든 입력에 대해 잘 정의되어 있어야합니다 .

  2. 의 입력 같은 외모 , TM을이고 일부 문자열입니다. 여기서 우리는 문자열 를 기계 의 인코딩으로 선택 합니다.⟨ M , X ⟩ M X X MHP⟨M,x⟩MxxM


4. 쌀 정리

"따라서 을 결정할 수 때마다 (또는 )를 줄여야 합니까? 지름길이 없습니까?"L D H PLLDHP

사실, 있습니다. 이것이 쌀의 정리 입니다.

정리에 따르면 특정 구조를 가진 많은 언어는 결정할 수 없습니다. 이러한 모든 언어는 이러한 특정 구조를 갖기 때문에 축소를 한 번 수행하고 유사한 구조를 허용하는 모든 언어에 적용 할 수 있습니다.

정리는 공식적으로 다음과 같이 표현됩니다.

정리 (쌀). 속성이 주어지면 다음 언어 를 결정할 수 없습니다. L S L S = { ⟨ M ⟩ | L ( M ) ∈ S }∅⊊S⊊RELS

LS={⟨M⟩∣L(M)∈S}

세트 는 에서 언어의 서브 세트입니다 . 허용되는 언어 의 속성을 설명하므로 속성이라고합니다 . 언어가이 속성을 만족하는 모든 TM은 .R E L ( M ) L SSREL(M)LS

예를 들어 는 허용되는 언어 에 정확히 두 단어가 포함 된 속성 일 수 있습니다 .L ( 남 )SL(M)

L S (2) L은 S 2 = { ⟨ M ⟩ | L ( M ) ∈ S } = { ⟨ M ⟩ | | L ( 남 ) | = 2 } .

S2={L∣|L|=2,L∈RE}.
이 경우 는 언어가 정확히 두 단어로 구성된 모든 TM의 집합입니다. LS2
LS2={⟨M⟩∣L(M)∈S}={⟨M⟩∣|L(M)|=2}.

이 건물은 매우 간단 할 수 있지만, 수 없습니다 모든 재생 에너지 언어, 또는 없음 재생 에너지 언어. 경우 또는 다음 속성 것으로 알려져 단순 하고 유도 계산 가능하다. 간단한 의 예는 같이 단일 언어 만 포함하는 것 입니다. 에 단일 언어 만 포함되어 있지만 언어가 인 컴퓨터 은 무한정 이므로 은 무한하며 결정 불가능합니다.S = R E L S S S c o m p l e t e = { Σ ∗ } S M Σ ∗ L S c o m p e t eS=∅S=RELSSScomplete={Σ∗}SMΣ∗LScompete


정리는 많은 언어의 결정 불가능 성을 증명하는 데 매우 강력합니다.

예.

언어 , 결정 불가능하다L∅={⟨M⟩∣M never reaches the accepting state}

증명.
우리는 쓸 수 로 이며, 속성에 대한 . 이는 사소하지 않은 속성입니다 ( 언어는 포함 되지만 언어는 포함되지 않음) 따라서 Rice 's 정리 는 결정할 수 없습니다.L∅{⟨M⟩∣L(M)=0}L∅=LSS={L∈RE,|L|=0}L=∅L={1,11,111,…}L∅


우리는 이제 정리를 증명합니다. 위에서 언급했듯이 는 임의의 사소한 대해 를 로 입니다.HPLSS

증명.
하자 , 적지 않은 재산 . 우리는 보여 , 우리가 감소되고, 에 우리가 결정할 수 있다면 너무 우리가 결정할 수있을 것입니다 (따라서, 우리는 불가능을 알고 decidable 할 수 없습니다). 증거에서 우리는 빈 언어의 일부가 아닌 가정 아래 입니다, . 빈 언어가 인 경우 보완 속성 에서 동등한 증거가 작동 하므로 세부 정보를 생략합니다. 이후S∅⊊S⊊REHP≤LSHPLSLSHPLSS∅∉SSS¯=RE∖SS사소하지 않으며 적어도 하나의 언어를 포함합니다. 언어 호출하고 이 을 허용하는 기계 라고 가정합시다 ( 에는 RE의 언어 만 포함 되므로 이러한 기계가 존재 함 ).L0M0L0S

리콜 등의 감소 (섹션 3 위), 우리는 입력을 변환하는 방법을 보여 할 필요가 에 대한 의 입력에 에 대한 그래서 wHPw′LS

w∈HP if and only if w′∈LS

하자 , 우리로 변환 기계의 설명 (입력에서 )는 다음이다 :w=(⟨M⟩,x)w′=⟨M′⟩M′x′

  1. 을 실행하십시오 .Mx
  2. 위의 1 단계가 중단되면 에서 을 실행 하고 그에 따라 수락 / 거부하십시오.M0x′

이 변환이 유효 함을 알 수 있습니다. 먼저 주어진 대한 설명을 구성하는 것은 간단합니다 .M′w=(⟨M⟩,x)

만약 , 다음 가 정지에 . 이 경우 은 2 단계로 진행하여 과 동일하게 동작 합니다. 따라서 허용되는 언어는 입니다. 따라서 입니다. 만약 다음 에 루프 . 이 경우 은 모든 입력 에서 반복됩니다 . 1 단계 에서 됩니다. 이 경우 에서 허용되는 언어 는 비어 있습니다. 입니다. 따라서 입니다.w∈HPMxM′M0L(M′)=M0∈Sw′=⟨M′⟩∈LS
w∉HPMxM′x′M′L(M′)=∅∉Sw′=⟨M′⟩∉LS

4.1 확장 된 쌀 정리

쌀의 정리는 우리에게 보여줄 수있는 쉬운 방법을 제공하는 특정 언어가 이며, 만족 특정 속성이 결정 불가능 것을, . 라이스 정리의 확장 된 버전을 사용하면 언어가 재귀 적으로 열거 가능한지 여부 , 즉 일부 추가 속성을 충족 하는지 확인하여 인지 여부를 결정할 수 있습니다.LL∉RL∉REL

정리 (쌀, 확장). 속성을 감안할 때 , 언어 재귀 열거 형 (이다 ) 경우에만, 모두 다음과 같은 세 가지 문 공동 보류S⊆RE

LS={⟨M⟩∣L(M)∈S}
LS∈RE
  1. 두 들어 , 만약 또한 다음도 .L1,L2∈REL1∈SL1⊆L2L2∈S
  2. 경우 다음 존재 유한 집합 그래서 .L1∈SL2⊆L1L2∈S
  3. 의 모든 유한 언어 세트 는 열거 가능합니다 (즉, 모든 유한 언어 를 열거하는 TM이 있습니다 ).SL∈S

증명.
이것은 "만일 경우"정리이며, 우리는 그 두 방향을 모두 증명해야합니다. 먼저, 조건 (1,2,3) 중 하나가 유지되지 않으면 됩니다. 그런 다음 세 가지 조건이 모두 동시에 유지되면 있습니다.LS∉RELS∈RE

(1,2)는 유지하지만 (3)은 유지하지 않으면LS∉RE 입니다.
이라고 가정하면 에서 유한 언어를 받아 들일 수있는 방법이 있으므로 (이러한 모든 언어 집합은 RE 임) 조건 (3)이 유지되고 모순에 도달합니다. . 유한 이 속 하는지 여부를 결정하는 방법은 무엇입니까? 쉽게 - 우리의 설명을 사용하여 기계 구축 의 단어 만 받아 , 그리고 지금 우리의 기계 실행 에 (기억 - 우리가 가정 , 그래서 받아들이는 기계가LS∈RESLSM L L L S M L L S ∈ R ELMLLLSMLLS∈RELS!). 만약 다음 이후 , 그 시스템이 입력에 좋다고합니다 , 우리가 수행됩니다.L∈S⟨ML⟩∈LSLS∈RE⟨ML⟩

(2,3)은 유지하지만 (1)은 유지하지 않으면LS∉RE 입니다.
우리는 라고 가정하고 를 결정하는 방법이 있음을 보여 을 합니다.LS∈REHP

조건 (1)이 유지되지 않기 때문에 언어 와 그 상위 집합 인 있으므로 있습니다. 이제 우리는 결정 4 절에 사용되는 인수 반복하려고하는 : 입력을 제공 을위한 , 우리는 기계 구성 그 언어 경우 또는 그 밖의 언어는 입니다. 그런 다음 를 결정할 수 있습니다 . 은 에서 의 RE 머신 은 받아들입니다.L1∈SL2⊇L1L2∉SHP(⟨M⟩,x)HPM′L1(⟨M⟩,x)∉HPL2HPMxLSM′; 우리는 둘 다 병렬로 실행할 수 있으며 적어도 하나는 중단됩니다.

구성에 대한 세부 사항 을 입력 하자 (입력 ) :M′x′

  1. 다음을 병렬로 수행하십시오.
    1.1 에서 을 실행하십시오 . 1.2의 기계 실행 에Mx
    L1x′
  2. 1.2가 정지하고 수락하는 경우-수락합니다.
  3. 1.1 정지하는 경우의 기계 실행 에 .L2x′

왜 이것이 작동합니까? 경우 다음 1.1 결코가 정지, 그리고 단계 1.2에서 접수하고 정확하게 모든 입력, 그래서 수용 . 반면 이면 어느 시점에서 1.1 단계가 중단되고 은 정확히 받아들 입니다. 이 일이 발생할 수 있습니다 사전 승인하지만 이후 ,이 언어는 변경되지 않습니다 이 경우에.(⟨M⟩,x)∉HPM′L(M′)=L1(⟨M⟩,x)∈HPM′L21.2L1⊆L2M′

(1,3)이 유지되지만 (2)가 유지되지 않으면LS∉RE 입니다.
다시, 우리는 가정 하고 가 결정할 수있게 된다는 것을 보여줄 것입니다 . 이는 모순입니다.LS∈REHP

조건 (2) 보유하지 않는 경우, 어떤을위한 , 모든 유한 부분 집합 충족 (참고 무한해야하기 때문에 ). 상기에서와 같이, 결정하기 위해 주어진 입력 , 우리는 기계 구성 그 언어 있는 경우를 일부 한정된 그렇지 않으면 입니다. 모순은 위와 유사한 방식으로 따릅니다.L1∈SL2⊆L1L2∉SL1L1⊆L1HP(⟨M⟩,x)M′L1(⟨M⟩,x)∉HPL2

이 기계의 구성은 이전에 구축 한 과 매우 유사합니다 . 기계 (입력 )은 다음을 수행합니다.M′M′x′

  1. 대해 에서 을 실행합니다. 단계.Mx|x′|
  2. 1 단계에서 정지 되면 거부M
  3. 그렇지 않으면,의 기계 실행 에 .L1x′

이 경우 그 보유 , 다음 어느 시점에서 말할 1000 단계 후, 에가 정지 . 따라서 1 단계 는 길이가 입력 를 중단 (및 거부)합니다 . 따라서이 경우 은 유한 합니다. 또한 , 특히 조건 (2)의 무효성에 대한 가정에 의해 있습니다.(⟨M⟩,x)∈HPMxx′>1000L(M′)L(M′)⊆L1L(M)∉S

반면 아닌 인 경우 1 단계는 중단되지 않으며 2 단계에서는 거부하지 않습니다.이 경우 및 특히, 입니다.(⟨M⟩,x)∉HPL(M)=L1L(M)∈S


우리는 확장 된 정리의 다른 방향을 보여주기 위해 남겨졌습니다. 즉, 모든 조건 (1,2,3)이 유지되면 , 즉 를 허용하는 TM이 있음을 합니다. 다시 말해, 우리는 기계 인 입력 대해 기계가이 입력을 받아들입니다. .LSLS∈REMS⟨M⟩L(M)∈SMS(⟨M⟩)→accept

다음은 기계 작동 방식입니다 (입력 ).MS⟨M⟩

  1. 하자 의 모든 유한 한 언어 열거 기계 수 조건 (3)에 의해 보장.Menum SS
  2. (예를 들어 참조가 연계하여 다음의 병렬 실행 이 그리고 이 경우) 2.1 실행 는 언어 출력까지 2.2. 이 모든 단어를 허용 하는지 확인하십시오 ( 이 단어에서 을 다시 병렬로 실행). 2.3. 일부 경우 은 모든 단어를 수락합니다 – 수락합니다.i=1,2,...
    Menum SLi
    MLiM
    iMLi

왜 작동합니까? 경우 다음이 유한 집합 갖는 , 일단 그 하위 단계 2.2 / 2.3 것을 확인할 출력 받아 해당 언어의 모든 단어 동의하기.L(M)∈SLj∈SMenum SM

반면에 경우 대해 모든 단어를 받아 들일 수 없습니다 . 사실, 상태 (1)에 의해, 임의의 로도되어 그렇다면 모든 단어 수용 일부 후, 따라서 , 모순된다.L(M)∉SLii=1,2,...L′⊇LiSMLiiL(M)⊇LiL(M)∈S


마지막으로, 다음은 위의 단순하고 매우 유용한 목록입니다.

추론 (쌀, 연장). 비 단순 속성 주어 , 그래서 언어 즉, 재귀-열거 아니다 .S⊊RE∅∈S

LS={⟨M⟩∣L(M)∈S}
LS∉RE

라이스 정리의 확장 버전을 추가해 주셔서 감사합니다! 다른 버전을 알고 있습니다. 나는 그것을 파헤쳐 야 할 것이다. 어쨌든, 나는 여기에 증거를 갖는 것이 매우 중요하거나 도움이되지 않는다고 생각합니다. 좋은 참조가 없으면 참조하거나 다른 곳에 업로드 할 수 있습니까?
— Raphael

13

유용한 도구 중 하나는 라이스 정리 입니다. 다음과 같이 말합니다.

하자 적지 않은 부분 단항 연산 가능한 기능 세트 괴델 번호 의 . 그런 다음 의 인덱스 세트∅⊊P⊊PφPP

IP={i∈N∣φi∈P}

재귀 적이 지 않습니다.

또한 튜링 머신 인코딩 (또는 다른 튜링 완료 프로그래밍 언어)으로 표현됩니다. 즉, ; 여기 은 Gödel 번호 매기기를 정의합니다.IP={⟨M⟩∣M TM,fM∈P}⟨.⟩

즉, 라이스 정리를 사용하여 사소하지 않은 함수 세트의 인덱스 세트 인 세트를 비재 귀적 으로 증명할 수 있습니다 (또는 로 환원 가능함 ).SS

특정 인덱스 세트를 재귀 적으로 열거 할 수 없음을 표시하는 데 사용할 수있는 확장이 있습니다.

예

에게 고델 (Gödel) 번호 매기기를 하자 . 자연의 세트를 고려φ

A={i∈N∣φi(j)=1 for all j∈2N} .

이제P={f∈P∣f(j)=1 for all j∈2N}

  • A=IP ,
  • (n↦1)∈P 및
  • (n↦2)∉P ,

라이스 정리를 적용 할 수 있으며 는 결정할 수 없습니다.A

많은 사람들이 Gödel 번호 매기기에 익숙하지 않기 때문에이 예제는 사용하여 튜링 머신 (예 : 프로그램)에서 잘 작동 .A={⟨M⟩∣fM(x)=1 for all x∈2N}

예를 들어

자연의 세트를 고려

A={i∈N∣φi(j)=i for all j∈2N}

확실히 계산할 수 없습니다. 그러나 는 대해 설정된 인덱스가 아닙니다 ! 일부 대해 이라고하자 . 이후 A는 괴델의 번호가있다 (무한히 많은) 와 하지만 모든 때문에 보유 .P f = φ i i ∈ A φ j ≠ i φ j = f j ∉ A f ( 2 ) = i ≠ jAPf=φii∈Aφj≠iφj=fj∉Af(2)=i≠j

이것을 조심하십시오! 경험적으로 함수의 인덱스가 "오른쪽"에서 또는 세트 정의에서 함수의 매개 변수로 사용되는 경우 인덱스 세트가 아닐 수 있습니다. 세트가 인덱스 세트가 아님을 표시하려면 Gödel 번호 매기기 및 수정 점 정리 의 특성 이 필요할 수 있습니다 .smn

라이스 정리 관련 게시물 은 여기 와 여기 를 참조 하십시오 .

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