답변:
일반적인 질문에 대답하기 전에 먼저 한 걸음 물러서서 역사 배경을 제시하고 예비 질문에 대답하겠습니다. 계산할 수없는 기능도 존재합니까?
[표기 참고 : 모든 함수 를 언어 와 다음 의 계산 보다는 의 결정 가능성에 대해 논의 할 수 있습니다 .
Turing machine이 결정할 수없는 언어가 있습니다. 논증은 간단하다. 셀 수없이 많은 다른 TM이 있지만 셀 수없이 많은 다른 언어가있다. 따라서 최대 결정 가능한 언어가 있으며 나머지 (무한한 많은 언어)는 결정할 수 없습니다. 더 읽을 거리 :
결정 불가능한 특정 언어에 우리의 손을 넣기 위해,이 개념은 대각 화 (Georg Cantor, 1873) 라는 기술을 사용하여 원래는 정수보다 더 많은 수의 숫자, 즉 .
첫 번째 결정 불가능한 언어를 구성하는 아이디어는 간단합니다. 모든 Turing 머신을 나열하고 (이는 반복적으로 열거 가능하기 때문에 가능합니다!) 하나 이상의 입력에서 각 TM에 동의하지 않는 언어를 만듭니다.
위의 각 행은 하나의 TM이고 각 열은 하나의 입력입니다. TM이 거부하거나 중단되지 않으면 셀의 값은 0이고 TM이 해당 입력을 승인하면 1입니다. 번째 TM이 해당 입력을 받아들이지 않는 경우에만 가 번째 입력을 포함 하도록 언어 를 정의합니다 .D I I
위의 표에 따라 이후 받아 . 마찬가지로, 하지만 이후 허용하지 않습니다 .M 1 ε 0 ∉ D 1 ∈ D M 3 1
이제 가정 결정 하고 라인 찾아 볼 표 :이 경우 에서 번째 열, 다음 그 입력을 허용 하지만 아닌 , 그리고있을 경우 이, 입력이에 이지만 는 허용하지 않습니다. 따라서 는 결정하지 않으며 모순에 도달했습니다. D k 1 k M k D 0 D M k M k D
이제 질문하십시오. 언어가 결정 불가능하다는 것을 증명하는 몇 가지 방법이 있습니다. 가장 일반적인 것들을 터치하려고합니다.
첫 번째 방법은 TM이 언어를 결정할 수 없음을 보여줌으로써 언어가 결정 불가능하다는 것을 직접 보여주는 것입니다. 이것은 일반적으로 위에 표시된 대각선 화 방법을 따릅니다.
예.
대각선 언어 )를 결정할 수 없음을 보여줍니다.
증명. 를 결정할 수
있다고 가정 하고 결정자로 . 두 가지 경우가 있습니다. MD
때로는 클로저 속성을 사용하여 이미 결정 불가능한 것으로 알려진 다른 언어를 기반으로 일부 언어를 결정할 수없는 것으로 표시 할 수 있습니다.
경우 특히, decidable 아니다 (우리는 쓰기 , 다음 또한 보완) 결정 불가능입니다 : 결정자가 있다면 에 대한 우리가 결정하는 데 사용할 수있는 할 때마다 수락하여 은 거부하고 그 반대도 마찬가지입니다. 항상 답을 가지고 멈추기 때문에 (결정자), 항상 답을 뒤집을 수 있습니다.L ∉ R ¯ L M ¯ L L M M
결론 : 대각선 언어 은 결정할 수 입니다. L D ∉R
과 그것의 보수 이 재귀 적으로 열거 가능 하다면 , 둘 다 결정할 수 있다는 점에 주목함으로써 유사한 주장이 적용될 수있다 . 이것은 언어가 재귀 적으로 열거 가능하지 않고 결정 불가능한 것보다 강력한 속성임을 증명하려는 경우에 특히 유용합니다.¯ L
일반적으로 언어가 이미 "대각선"방식으로 구성되지 않은 경우 언어를 결정할 수 없음을 직접 증명하는 것은 매우 어렵습니다. 결정 불가능 성을 입증하는 가장 마지막이고 가장 일반적인 방법은 우리가 이미 결정할 수없는 다른 언어를 사용하는 것입니다. 아이디어는 한 언어를 다른 언어로 줄이는 것입니다. 하나를 결정할 수 있으면 다른 언어도 결정할 수 있어야하지만 그 중 하나는 이미 결정 불가능한 것으로 알려져 있으므로 첫 번째 언어도 결정할 수 없다는 결론으로 이어집니다. "서로 문제를 줄이기위한 일반적인 기술은 무엇입니까?"의 축소에 대해 자세히 알아보십시오. .
예.
에서 대각선 언어 가 중지됨을 알 수 없음을 보여줍니다.
증명.
우리는 를 결정할 수 것을 알고 있습니다. 우리는 감소 에 (이 표시된다 ), 즉, 우리가하면 것을 보여 decidable이었다 우리가 결정하기 위해 결정자를 사용할 수 모순이다.L D H P L D ≤ H P H P L D
감소는 후보를 변환하여 작동 에 대한 (대한 잠재적 결정자 / 수용체에 대한, 즉 입력을 후보로) 에 대한 등이 경우에만, . 이 전환이 계산 가능한지 확인합니다. 따라서 결정 하면 인지 여부를 알 수 있으므로 HP를 결정할 수 있으면 도 결정할 수 있습니다 .¹L D L D w ′ H P w ∈ L D w ′ ∈ H P w ′ w ∈ L D L D
변환은 다음과 같습니다. 몇 가지를 가지고 , 출력 , ² 여기서 TM은 단지 같은 동작합니다입니다 있지만, 경우 거부, 다음 간다 무한 루프로.w ' = ⟨ M ' , ⟨ M ⟩ ⟩ M ' M M M '
가 요구 사항을 만족시키는 것을 보자 .
경우 , 그 의미 가 정지 하고 입력 받아 . 따라서 은 입력 도 중지하고 수락합니다 . 따라서 입니다.
한편, 다음 거부 나에 결코가 정지 중 . 두 경우 모두 은 에서 무한 루프로 들어갑니다 . 따라서 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 P
그리고 우리가 보여주는 수행되는 및 경우에만 경우 하고, 따라서 그 보였다 .
추가 자료 : 축소 태그 를 통해 언어의 축소 및 비결정 불가능 성을 입증하는 많은 예를 찾을 수 있습니다 .
축소가 유효하도록 제한이 더 있습니다. 변환 자체는 계산 가능 해야하며 모든 입력에 대해 잘 정의되어 있어야합니다 .
의 입력 같은 외모 , TM을이고 일부 문자열입니다. 여기서 우리는 문자열 를 기계 의 인코딩으로 선택 합니다.⟨ M , X ⟩ M X X M
"따라서 을 결정할 수 때마다 (또는 )를 줄여야 합니까? 지름길이 없습니까?"L D H P
사실, 있습니다. 이것이 쌀의 정리 입니다.
정리에 따르면 특정 구조를 가진 많은 언어는 결정할 수 없습니다. 이러한 모든 언어는 이러한 특정 구조를 갖기 때문에 축소를 한 번 수행하고 유사한 구조를 허용하는 모든 언어에 적용 할 수 있습니다.
정리는 공식적으로 다음과 같이 표현됩니다.
정리 (쌀). 속성이 주어지면 다음 언어 를 결정할 수 없습니다. L S L S = { ⟨ M ⟩ | L ( M ) ∈ S }
세트 는 에서 언어의 서브 세트입니다 . 허용되는 언어 의 속성을 설명하므로 속성이라고합니다 . 언어가이 속성을 만족하는 모든 TM은 .R E L ( M ) L S
예를 들어 는 허용되는 언어 에 정확히 두 단어가 포함 된 속성 일 수 있습니다 .L ( 남 )
L S (2) L은 S 2 = { ⟨ M ⟩ | L ( M ) ∈ S } = { ⟨ M ⟩ | | L ( 남 ) | = 2 } .
이 경우 는 언어가 정확히 두 단어로 구성된 모든 TM의 집합입니다.
이 건물은 매우 간단 할 수 있지만, 수 없습니다 모든 재생 에너지 언어, 또는 없음 재생 에너지 언어. 경우 또는 다음 속성 것으로 알려져 단순 하고 유도 계산 가능하다. 간단한 의 예는 같이 단일 언어 만 포함하는 것 입니다. 에 단일 언어 만 포함되어 있지만 언어가 인 컴퓨터 은 무한정 이므로 은 무한하며 결정 불가능합니다.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 e
정리는 많은 언어의 결정 불가능 성을 증명하는 데 매우 강력합니다.
예.
언어 , 결정 불가능하다
증명.
우리는 쓸 수 로 이며, 속성에 대한 . 이는 사소하지 않은 속성입니다 ( 언어는 포함 되지만 언어는 포함되지 않음) 따라서 Rice 's 정리 는 결정할 수 없습니다.
우리는 이제 정리를 증명합니다. 위에서 언급했듯이 는 임의의 사소한 대해 를 로 입니다.
증명.
하자 , 적지 않은 재산 . 우리는 보여 , 우리가 감소되고, 에 우리가 결정할 수 있다면 너무 우리가 결정할 수있을 것입니다 (따라서, 우리는 불가능을 알고 decidable 할 수 없습니다). 증거에서 우리는 빈 언어의 일부가 아닌 가정 아래 입니다, . 빈 언어가 인 경우 보완 속성 에서 동등한 증거가 작동 하므로 세부 정보를 생략합니다. 이후사소하지 않으며 적어도 하나의 언어를 포함합니다. 언어 호출하고 이 을 허용하는 기계 라고 가정합시다 ( 에는 RE의 언어 만 포함 되므로 이러한 기계가 존재 함 ).
리콜 등의 감소 (섹션 3 위), 우리는 입력을 변환하는 방법을 보여 할 필요가 에 대한 의 입력에 에 대한 그래서
하자 , 우리로 변환 기계의 설명 (입력에서 )는 다음이다 :
이 변환이 유효 함을 알 수 있습니다. 먼저 주어진 대한 설명을 구성하는 것은 간단합니다 .
만약 , 다음 가 정지에 . 이 경우 은 2 단계로 진행하여 과 동일하게 동작 합니다. 따라서 허용되는 언어는 입니다. 따라서 입니다.
만약 다음 에 루프 . 이 경우 은 모든 입력 에서 반복됩니다 . 1 단계 에서 됩니다. 이 경우 에서 허용되는 언어 는 비어 있습니다. 입니다. 따라서 입니다.
쌀의 정리는 우리에게 보여줄 수있는 쉬운 방법을 제공하는 특정 언어가 이며, 만족 특정 속성이 결정 불가능 것을, . 라이스 정리의 확장 된 버전을 사용하면 언어가 재귀 적으로 열거 가능한지 여부 , 즉 일부 추가 속성을 충족 하는지 확인하여 인지 여부를 결정할 수 있습니다.
정리 (쌀, 확장). 속성을 감안할 때 , 언어 재귀 열거 형 (이다 ) 경우에만, 모두 다음과 같은 세 가지 문 공동 보류
- 두 들어 , 만약 또한 다음도 .
- 경우 다음 존재 유한 집합 그래서 .
- 의 모든 유한 언어 세트 는 열거 가능합니다 (즉, 모든 유한 언어 를 열거하는 TM이 있습니다 ).
증명.
이것은 "만일 경우"정리이며, 우리는 그 두 방향을 모두 증명해야합니다. 먼저, 조건 (1,2,3) 중 하나가 유지되지 않으면 됩니다. 그런 다음 세 가지 조건이 모두 동시에 유지되면 있습니다.
(1,2)는 유지하지만 (3)은 유지하지 않으면 입니다.
이라고 가정하면 에서 유한 언어를 받아 들일 수있는 방법이 있으므로 (이러한 모든 언어 집합은 RE 임) 조건 (3)이 유지되고 모순에 도달합니다. . 유한 이 속 하는지 여부를 결정하는 방법은 무엇입니까? 쉽게 - 우리의 설명을 사용하여 기계 구축 의 단어 만 받아 , 그리고 지금 우리의 기계 실행 에 (기억 - 우리가 가정 , 그래서 받아들이는 기계가M L L L S M L L S ∈ R E!). 만약 다음 이후 , 그 시스템이 입력에 좋다고합니다 , 우리가 수행됩니다.
(2,3)은 유지하지만 (1)은 유지하지 않으면 입니다.
우리는 라고 가정하고 를 결정하는 방법이 있음을 보여 을 합니다.
조건 (1)이 유지되지 않기 때문에 언어 와 그 상위 집합 인 있으므로 있습니다. 이제 우리는 결정 4 절에 사용되는 인수 반복하려고하는 : 입력을 제공 을위한 , 우리는 기계 구성 그 언어 경우 또는 그 밖의 언어는 입니다. 그런 다음 를 결정할 수 있습니다 . 은 에서 의 RE 머신 은 받아들입니다.; 우리는 둘 다 병렬로 실행할 수 있으며 적어도 하나는 중단됩니다.
구성에 대한 세부 사항 을 입력 하자 (입력 ) :
왜 이것이 작동합니까? 경우 다음 1.1 결코가 정지, 그리고 단계 1.2에서 접수하고 정확하게 모든 입력, 그래서 수용 . 반면 이면 어느 시점에서 1.1 단계가 중단되고 은 정확히 받아들 입니다. 이 일이 발생할 수 있습니다 사전 승인하지만 이후 ,이 언어는 변경되지 않습니다 이 경우에.
(1,3)이 유지되지만 (2)가 유지되지 않으면 입니다.
다시, 우리는 가정 하고 가 결정할 수있게 된다는 것을 보여줄 것입니다 . 이는 모순입니다.
조건 (2) 보유하지 않는 경우, 어떤을위한 , 모든 유한 부분 집합 충족 (참고 무한해야하기 때문에 ). 상기에서와 같이, 결정하기 위해 주어진 입력 , 우리는 기계 구성 그 언어 있는 경우를 일부 한정된 그렇지 않으면 입니다. 모순은 위와 유사한 방식으로 따릅니다.
이 기계의 구성은 이전에 구축 한 과 매우 유사합니다 . 기계 (입력 )은 다음을 수행합니다.
이 경우 그 보유 , 다음 어느 시점에서 말할 1000 단계 후, 에가 정지 . 따라서 1 단계 는 길이가 입력 를 중단 (및 거부)합니다 . 따라서이 경우 은 유한 합니다. 또한 , 특히 조건 (2)의 무효성에 대한 가정에 의해 있습니다.
반면 아닌 인 경우 1 단계는 중단되지 않으며 2 단계에서는 거부하지 않습니다.이 경우 및 특히, 입니다.
우리는 확장 된 정리의 다른 방향을 보여주기 위해 남겨졌습니다. 즉, 모든 조건 (1,2,3)이 유지되면 , 즉 를 허용하는 TM이 있음을 합니다. 다시 말해, 우리는 기계 인 입력 대해 기계가이 입력을 받아들입니다. .
다음은 기계 작동 방식입니다 (입력 ).
왜 작동합니까? 경우 다음이 유한 집합 갖는 , 일단 그 하위 단계 2.2 / 2.3 것을 확인할 출력 받아 해당 언어의 모든 단어 동의하기.
반면에 경우 대해 모든 단어를 받아 들일 수 없습니다 . 사실, 상태 (1)에 의해, 임의의 로도되어 그렇다면 모든 단어 수용 일부 후, 따라서 , 모순된다.
마지막으로, 다음은 위의 단순하고 매우 유용한 목록입니다.
추론 (쌀, 연장). 비 단순 속성 주어 , 그래서 언어 즉, 재귀-열거 아니다 .
유용한 도구 중 하나는 라이스 정리 입니다. 다음과 같이 말합니다.
하자 적지 않은 부분 단항 연산 가능한 기능 세트 괴델 번호 의 . 그런 다음 의 인덱스 세트
재귀 적이 지 않습니다.
또한 튜링 머신 인코딩 (또는 다른 튜링 완료 프로그래밍 언어)으로 표현됩니다. 즉, ; 여기 은 Gödel 번호 매기기를 정의합니다.
즉, 라이스 정리를 사용하여 사소하지 않은 함수 세트의 인덱스 세트 인 세트를 비재 귀적 으로 증명할 수 있습니다 (또는 로 환원 가능함 ).
특정 인덱스 세트를 재귀 적으로 열거 할 수 없음을 표시하는 데 사용할 수있는 확장이 있습니다.
에게 고델 (Gödel) 번호 매기기를 하자 . 자연의 세트를 고려
.
이제
라이스 정리를 적용 할 수 있으며 는 결정할 수 없습니다.
많은 사람들이 Gödel 번호 매기기에 익숙하지 않기 때문에이 예제는 사용하여 튜링 머신 (예 : 프로그램)에서 잘 작동 .
자연의 세트를 고려
확실히 계산할 수 없습니다. 그러나 는 대해 설정된 인덱스가 아닙니다 ! 일부 대해 이라고하자 . 이후 A는 괴델의 번호가있다 (무한히 많은) 와 하지만 모든 때문에 보유 .P f = φ i i ∈ A φ j ≠ i φ j = f j ∉ A f ( 2 ) = i ≠ j
이것을 조심하십시오! 경험적으로 함수의 인덱스가 "오른쪽"에서 또는 세트 정의에서 함수의 매개 변수로 사용되는 경우 인덱스 세트가 아닐 수 있습니다. 세트가 인덱스 세트가 아님을 표시하려면 Gödel 번호 매기기 및 수정 점 정리 의 특성 이 필요할 수 있습니다 .