답변:
좀 더 구체적으로 말하자면, P ≠ NP를 증명하는 접근법이 있고 위와 같은 상황을 만들기 위해 오라클을 구성 할 수 있다면 왜 내 방법이 유효하지 않습니까?
Baker, Gill, Solovay는 이미 그러한 오라클을 구축했기 때문에 후자의 "if"는 조건이 아닙니다. (1) P = NP에 상대적으로 oracle이 있고 (2) P ≠ NP에 상대적으로 oracle이 있다는 것은 수학적 진실입니다.
당신이 증명하는 방법이있는 경우 P ≠ NP와 같은 증거가 동등하게 강한 결과를 입증 할 것이라고이 수단 "P ≠ NP 을 모든 신탁에 대해 (A)는 ,"다음 당신의 접근 방식은 (1) 모순 때문에 실패 할 운명이다.
다시 말해, P ≠ NP를 증명하는 것과 시간 계층 정리를 증명하는 것 사이에는 약간의 근본적인 차이가있다. 왜냐하면 후자의 증명은 단지 대각선 화를 사용하고 모든 관계 화 된 세계에 똑같이 적용될 수 있기 때문이다.
물론 이것이 P ≠ NP에 대한 증거가 없음을 의미하지는 않습니다. 그러한 증거 (있는 경우)는 위에서 언급 한 더 강력한 결과를 증명하지 못해야합니다. 다시 말해, 증거의 일부는 비상 대화 세계와 임의의 상대화 세계와 구분해야합니다.
이미 좋은 답변이 있지만 몇 가지 작은 점을 추가하고 싶습니다.
예를 들어 대각선 화 와 같은 문제를 해결하는 기술이 있다고 가정합니다 . 이 기술이 특정 문제, 예를 들어 대 N P를 해결할 수 없다는 것을 보여주고 싶다고 가정하자 . 이것을 어떻게 보여줄 수 있습니까?
더 나아 가기 전에 대각선 화와 같은 기술은 공식적인 개념이 아닙니다 (우리가 그렇게 할 수는 있지만). 또한 기술 자체로 문제를 해결할 수 없다는 것이 문제를 전혀 해결하는 데 유용하지 않다는 것을 의미하지는 않습니다. 문제를 해결하기 위해 문제를 수정하거나 다른 기술과 결합 할 수 있습니다.
이제 질문으로 돌아가 봅시다. 기술이 특정 문제를 해결할 수 없다는 것을 보여주는 한 가지 방법은 다른 질문을 해결하기 위해 다른 프레임 워크에서도 작동 할 수 있다는 것을 보여주는 것입니다. 이것이 여기서 일어나는 일입니다. 대각선 화로 와 P 를 분리 할 수 있다면, 동일한 인수를 사용하여 모든 A에 대해 N P A 와 P A 를 분리 할 수 있습니다 . 그러나 우리는 (어떤 걸릴 오라클은이 거짓임을 있다는 것을 알고 P S의 페이지를 C 전자 오라클과 같은 - 완전한 문제). 따라서 대각선 화는 N을 분리 할 수 없습니다
이 주장의 핵심은 일종의 전달 원칙이다 .
oracle이없는 TM에 대한 대각 화 인수를 oracles가있는 TM에 전송할 수 있습니다.
대각선 화 인수는 기계의 시뮬레이션 을 기반으로하기 때문에 여기에서 가능 합니다. 또한 시뮬레이션 은 기계의 내부에 의존하지 않고 이러한 시뮬레이션의 최종 답변에만 의존합니다. 이러한 종류의 대각선 화를 단순 대각선 화 라고합니다 . 시뮬레이션에서는 기계의 작동 방식이 중요하지 않으며 기계의 최종 답변 만 관리합니다. 오라클을 추가해도 이것이 변경되지 않으므로 시뮬레이션과 인수는 오라클이있는 프레임 워크에서도 작동합니다.
given by the diagonalization function is the same.
You may wonder if this is a big restriction? Why would the counterexample need to depend on the internal structure of the machine? Can we prove separations using diagonalization that cannot be proved using simple diagonalization? The answer is yes. In fact Kozen shows in his 1978 paper "Indexing of subrecursive classes" (3 years after BGS result) that if can be separated from then there is a general diagonalization argument for it. And in practice such arguments have been found. For example, Fortnow and van Melkebeek's time-space lower-bounds for SAT (2000) use a technique called indirect diagonalization that gives a non-simple diagonalization.
So is the claim that diagonalization cannot solve vs. incorrect? Well, in general what experts mean by diagonalization here is simple diagonalization and there is a good reason for that.
The general diagonalization arguments are so general that it doesn't really make much sense to call them a technique, you can easily turn any separation argument into a diagonalization argument without much insight: If we already have some way of separating two complexity classes, we can pick a function in the larger class not in the smaller one. Take any enumeration of the machines in the smaller class. Let be any machines in the enumeration. We have to define the counterexample for . But we already know that cannot solve the problem, so there exists instance showing this, define the value of the diagonalization function on to be that instance. This is the big-picture view, if you want to see the details check Kozen's paper.
Two good papers to learn more about diagonalization are
Let and be two complexity classes. A separation () or collapse () is said to relativize if for all oracles we have or respectively. The Baker-Gill-Solovay proof tells us that or does not relativize.
Why is this a problem? When this proof came out, the majority of techniques and tricks we knew to separate or collapse complexity classes 'relativized', in that they work with respect to any oracle. For instance, the time hierarchy theorem (as well as the space and nondeterministic versions of it) 'relativize': they prove separations for classes for which this separation relativizes, and in fact, they prove the stronger result that the separation holds with respect to any oracle.
If a technique or trick works regardless of whether there is an oracle present, then it cannot possibly prove or by the above argument. This means that a large number of tricks and techniques that we know of don't work on this problem (or indeed on a lot of open problems). You can also use it as a sanity check for any purported proof: check whether the idea fails to hold in the presence of a -complete oracle - if it still works, then it is wrong.