Oracle Turing 기계를 사용하면 어떻게 모순이 생기지 않습니까?


9

oracle Turing Machine을 사용할 때 복잡한 클래스에 대해 건전하고 유효한 진술을 어떻게 계속할 수 있습니까? 내 이해에 따르면 (주제에 대한 입문 교과서에 제공된 정의를 기반으로) oracle Turing machine은 한 번의 계산 단계에서 oracle 언어에 대한 문자열의 멤버쉽 상태를 결정할 수 있습니다. 그러나 종종 사용되는 오라클 언어는 일정한 시간에 해결하기가 불가능합니다 (예를 들어 EXPTIME 완료 오라클). 나에게 이것은 모순에 대한 "문을 여는"것처럼 보이며 결국 모순이 뒤 따릅니다.


2
오라클이 "정말"시간이 걸린다면 T그것은 전체 머신의 런타임에 대한 요소 일뿐입니다. 일정한 비용을 가정하면 (즉, 오라클이 얼마나 자주 필요한지 계산) 오라클을 사용하는 알고리즘을 쉽게 비교할 수 있습니다. (결과가 현실과 관련이 있는지에 대한 질문은 TCS에서 항상 직면하거나 무시하는 것입니다.)
Raphael

@Raphael 괄호 안에 "귀하"라는 말은 복잡한 이론가, 특히 나나 복잡한 이론을 의미합니까?
Ari

전자. 글쎄, 둘 다.
Raphael

고급 주제. 때때로 "오용"하고 해당 지역을 조사한다는 데 동의 하는 Fortnow 부터 시작해보십시오 . 이러한 결과를 보는 일관된 방법은 일종의 "조건부"어설 션과 같습니다. Riemann 가설 등에 기초하여 수학적으로 많은 결과가 조건부로 입증되는 방식과 유사
vzn

답변:


8

이것을 보는 방법에는 여러 가지가 있습니다.

하나는 증명에서 함축은 일종의 함수와 유사하며, 입력으로 무언가의 증거를 취하고 다른 것의 증거를 출력한다는 것입니다.

우리는 가지고 있지 않은 값에서 작동하는 함수를 작성할 수 있습니다.

예를 들어, 정지 숫자를 고려해 봅시다 h계산할 수 없습니다. 함수를 쓸 수있다

haltingPlusOne:{h}N

haltingPlusOne(x)=x+1.

이 함수는 Halting 숫자를 입력으로 받아 Halting 숫자에 1을 더한 값을 반환합니다. 분명히 이것은 잘 정의 된 기능입니다. 올바른 입력을 제공하면 올바른 출력을 제공합니다. 올바른 입력을 찾을 수 없다고해서 변환에 덜 유효한 것은 아닙니다.

나는 oracles를 가진 증명을 비슷한 것으로 본다. 기본적으로 문제를 해결하는 튜링 머신을 제공하는 기능입니다.X, 그리고 일부 정리의 증거를 출력으로 제공합니다.

또한 "중지 문제를 결정할 수있는 Turing Machine이 없습니다"와 같이 말할 때 정지 문제를 결정하는 TM의 표준 정의와 일치하는 TM이 없다는 것을 인식하는 것이 중요합니다.

오라클은 기본적으로 "어떤 문제를 해결할 수 있다고 가정하는 것 외에는 표준 정의와 일치하는 TM이 있다고 가정합니다"라고 말합니다. 따라서 우리는 문제를 받아들이는 일반적인 TM이 있다고 가정하지 않기 때문에 모순이 없습니다. 우리는 문제를 받아들이는 특별한 TM이 있다고 가정합니다.

매우 비공식적 인 비유에서, 이것과 같이 생각하십시오. 내가 당신에게 초능력이없는 사람은 날 수 없다는 것을 증명할 수 있다면, 날 수있는 슈퍼 히어로가 있다는 모순은 없습니다.

이 오라클은 순수한 논리적 개체입니다. 우리는 기계를 에뮬레이트하는 물리적 기계를 만드는 방법, Turing 기계로 할 수있는 방법을 모르지만, 우리가 아는 한, 그들의 정의와 기본 공리 사이에는 본질적인 모순이 없습니다. 논리적 객체로서 이러한 오라클이 존재합니다. 우리는 이들이 표준 Turing Machines 또는 Lambda-Calculus 항 또는 부분 재귀 함수가 아니라는 것을 알고 있습니다. Church-Turing 논문은 더 이상 강력한 모델은 없지만 이론은 아니며 추측 일 뿐이며 실제로 증명하기에는 너무 비공식적이라고 말합니다.


나는 당신의 대답에 동의하거나 이해하지만 특정 시점까지만 : 예를 들어, 귀하의 haltingPlusOne 함수가 잘 정의되어 있지만 oracles에서 의미있는 결론을 도출 할 수있는 방법을 보지 못합니다. 허위 진술의 "if"진술 및 결론에 도달 한 경우, 즉 "If n+1=n 모든 자연수 n1자연수는 하나뿐입니다. "
Ari

1
문제는 진술이 거짓이 아니며, 우리는 단지 그것들을 구성 할 수 없다는 것입니다. 열쇠는 oracles가 Turing 머신이 아니라는 것을 의미합니다.
jmite

"올바른 입력을 찾으십시오" "올바른 출력을 찾으십시오" ?

2

글쎄, 오라클이 해결하기 어려운 오라클에 액세스하는 것이 oracle TM의 필수 기능이라고 말하고 싶습니다. 오라클을 결정할 수 있다면A 일정한 시간에 모든 수업에 B 너도 아마 B=BA. 그렇다면이 경우 오라클을 사용하는 이유는 무엇입니까?

그렇다면 oracle TM을 사용하는 데 요점이 무엇입니까? 나는 그것이 문제의 경도 (도)에 대한 이론적 고려를 주로 할 수 있다고 말할 것이다. 오라클은 결정조차 할 수 없습니다. 이 경우 결정 불가능한 문제의 전체 계층 구조를 정의 할 수 있습니다 (Turing degree). 물론 오라클이 중단 문제인 경우 Oracle TM을 기존 TM으로 변환 할 수 없습니다.

oracle TM 개념은 또한 강력한 형태의 축소 (Turing reductions)를 정의하는 데 중요합니다.

oracle TM의 이론적 동기가 높을수록 오라클 세계 외부에 영향을 줄 수 있습니다 . 당신은 아마 유명한 알고P vs NP 상대성 결과.

마지막으로 오라클을 쿼리하려면 쿼리 문자열을 작성해야합니다. w오라클 테이프에서 먼저. 따라서 일정 시간에 멤버십을 결정할 수 없지만 시간에 멤버십을 결정할 수 있습니다|w|.

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