중지 오라클로 해결할 수없는 기존 문제가 있습니까?


11

나는 멈춤 오라클이 있다면 대부분의 문제는 사소한 것임을 이해한다 (또는 동등하게 하이퍼 계산이라고 생각한다). 그러나 튜링 머신에서는 Halting Problem을 나타내는 주장을 적용하는 것이 불가능합니다. 또한 Turing + oracle이 Turing + oracle의 Halting Problem을 결정하는 것은 불가능하다는 것을 보여줍니다. 중지 오라클로 해결할 수없는 실제적이고 실용적인 문제의 예가 있습니까?

참고 : "oracle"이란 oracle 자체가있는 TM이 아닌 표준 Turing 머신에 대한 oracle을 의미 합니다.


2
있다 "독단적으로 결정 불가능한"문제, 예를 들어 볼 여기가 . 나는 "실제적인"예제들에 대해 모른다. 무엇이 "실용적"자격이됩니까?
Raphael

그것은 단순히이 질문에 대답하기 위해 고안되지 않았습니다. 다음 단계의 정지 문제가 여전히 적용됨을 인정했습니다.
ike

또한 재귀 적으로 열거 할 수없는 모든 언어는 HALT로 환원 할 수 없습니다. 예를 들어 FINITE, EMPTY, 두 CFG가 동일한 언어를 파생하는지 여부 등

답변:


15

Turing degree 가 보다 높은 문제인 Halting Oracle의 정도입니다. 산술 계층의 관점에서 보다 큰 문제를 원합니다 . 이러한 문제 (예를 들면 여기서 인 부분 계산 가능한 기능 번째 는 IS - 계산 가능하게 열거 가능한 세트) :0Σ10ϕnnWn={kNϕn(k) is defined}n

  • {nNφn terminates for finitely many inputs} 는 입니다.Σ20
  • {nNφn is a total function} 는 입니다.Π20
  • {nNWn is a computable set} 는 -complete입니다.Σ30

Halting Oracle이 있어도 이들 중 어느 것도 해결할 수 없습니다. 예를 들어 두 번째 예인 " total?"을 고려하십시오. 을 감안할 때 앞뒤가 맞지 오라클 도움 우리는 튜링 기계에 의해 인코딩 여부를 결정 얼마나 에 정지하는 모든 입력? N Nφnnn


[2014-06-03 추가] 이 모든 것의 "실제적인"측면에서 문제를 고려하십시오. 프로그래머가 함수를 작성했으며 함수 void charge_credit_card(int card_number, int amount)가 모든 입력에서 종료되는지 알고 싶습니다. 이다 불가능 자동으로 일반적으로이를 확인할 수있는 컴파일러를 작성. 또한 컴파일러가 " charge_credit_card입력이 주어지면 종료 (k,m)됩니까?" 와 같은 형식의 질문을하도록 허용하더라도 여전히 불가능합니다.


2
Sayng "나는 예제를 이해하지 못합니다."라는 말은 당신이 생산적이지 않은 것을 혼동하는 것을 설명하지 않습니다. 내가 지적한 관련 Wikipedia 페이지를 읽었습니까? 그것들은 당신의 질문과 직접적으로 관련되어 있으므로, 가장 먼저해야 할 일은 관련된 기본 개념에 익숙해지는 것입니다.
Andrej Bauer

1
@ike, 예제는 int매우 명백하게 무한한 양을 갖도록 의도되었습니다 . 당신은 정말로 저에게 글을 써야합니까 BigInt, 아니면 컴퓨터 메모리가 유한하다는 불평을 하시겠습니까?
Andrej Bauer

1
도대체 무엇이. 귀하의 질문에 대한 답변이 무엇인지 말씀 드렸습니다. 선의로 이해하고 싶지 않다면 질문으로 우리를 귀찮게하지 마십시오.
Andrej Bauer

2
실용적인 예는 입니다. 이것은 프로그램에 임의의 프로그램과 입력이 주어지면 프로그램이 정지하지 않는지 확인하십시오. 재귀 적으로 열거 할 수없는 다른 모든 언어와 함께이 문제는 HALT로 줄어들지 않습니다. {<M,w>:M은 w에서 멈추지 않습니다}HALT¯{<M,w>:M doesn't halt on w}

1
@ tAllan : 답변으로 게시해야합니다. OP가 "실제"로 간주하는 것보다 나보다 뛰어납니다. 그러나 귀하의 예는 확실히 내 것보다 낫습니다.
Andrej Bauer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.