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


답변:


57

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

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


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

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

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

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

ε0100M110101M201000M300010

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

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

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

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

1. 직접 증거

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

예.

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

LD¯={MML(M)}

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

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

2. 폐쇄 속성

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

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

결론 : 대각선 언어 은 결정할 수 입니다. L DRLD={MML(M)}LDR

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

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

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

예.

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

HP={M,xM halts on x}

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

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

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

가 요구 사항을 만족시키는 것을 보자 . 경우 , 그 의미 가 정지 하고 입력 받아 . 따라서 은 입력 도 중지하고 수락합니다 . 따라서 입니다. 한편, 다음 거부 나에 결코가 정지 중 . 두 경우 모두 은 에서 무한 루프로 들어갑니다 . 따라서 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
wLDM MMMM,MHP
wLDMMMMM,MHP그리고 우리가 보여주는 수행되는 및 경우에만 경우 하고, 따라서 그 보였다 .wLDwHPHPR

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


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

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


4. 쌀 정리

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

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

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

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

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

LS={ML(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,LRE}.
이 경우 는 언어가 정확히 두 단어로 구성된 모든 TM의 집합입니다. LS2
LS2={ML(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={MM never reaches the accepting state}

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


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

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

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

wHP if and only if wLS

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

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

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

만약 , 다음 가 정지에 . 이 경우 은 2 단계로 진행하여 과 동일하게 동작 합니다. 따라서 허용되는 언어는 입니다. 따라서 입니다. 만약 다음 에 루프 . 이 경우 은 모든 입력 에서 반복됩니다 . 1 단계 에서 됩니다. 이 경우 에서 허용되는 언어 는 비어 있습니다. 입니다. 따라서 입니다.wHPMxMM0L(M)=M0Sw=MLS
wHPMxMxML(M)=Sw=MLS

4.1 확장 된 쌀 정리

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

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

LS={ML(M)S}
LSRE
  1. 두 들어 , 만약 또한 다음도 .L1,L2REL1SL1L2L2S
  2. 경우 다음 존재 유한 집합 그래서 .L1SL2L1L2S
  3. 의 모든 유한 언어 세트 는 열거 가능합니다 (즉, 모든 유한 언어 를 열거하는 TM이 있습니다 ).SLS

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

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

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

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

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

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

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

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

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

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

  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이 있음을 합니다. 다시 말해, 우리는 기계 인 입력 대해 기계가이 입력을 받아들입니다. .LSLSREMSML(M)SMS(M)accept

다음은 기계 작동 방식입니다 (입력 ).MSM

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

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

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


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

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

LS={ML(M)S}
LSRE

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

13

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

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

IP={iNφiP}

재귀 적이 지 않습니다.

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

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

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

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

A={iNφi(j)=1 for all j2N} .

이제P={fPf(j)=1 for all j2N}

  • A=IP ,
  • (n1)P
  • (n2)P ,

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

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

예를 들어

자연의 세트를 고려

A={iNφi(j)=i for all j2N}

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

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

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

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