2013-02-09 5 views
3

문제가 NP 완료된 경우 NP 클래스에 속해야하며 NP 완료 문제로 줄이려면 다항식 시간 알고리즘이 있어야합니다.NP 완성을 위해 '다항식 시간에 문제를 줄여야한다'는 것이 강제적입니까?

이제 지수 감소 알고리즘 만 사용하면 어떻게 될까요? 이 문제는 여전히 NP 완성이라고 할 수 있습니까? 아니면 기존의 문제가 있습니까?

편집 : 또한 이러한 문제가 있는지 여부를 알려주고 어떤 클래스에 속하는지 여부를 알려주십시오.

+2

이것은 http://cstheory.stackexchange.com/에 속합니다. – raven

+3

사실, cstheory는 연구 수준의 질문입니다 (나는 이것이 불행하다고 생각하지만, 그것이 그렇습니다). 따라서이 질문은 거기에서 적절하지 않을 것입니다. –

+0

축소 방향이 잘못되었습니다. 그것은 NP에 있어야하며 알려진 NP 완전한 문제는 *로 줄여야합니다. –

답변

1
Are such problems NP-complete? 

번호 증명 :

하자

는 (적어도) 지수 시간 = B. "최소"로 감소 NP 완전 문제를 보자 문제 = A. 당신 때문에 기하 급수적 인 시간에 도달하거나 사소한 접근법을 따르는 사소한 일을 할 수있다. (더 효율적인 감축 전략이 존재하지 않는다는 것을 증명하기 위해 아마도 N! = NP, 현재까지는 해결되지 않았다).

B는 NP 완성이므로 "every problem in NP is reducible to B in polynomial time"입니다.

A가 NP에 있으면 다항식 시간이 B가되어야합니다. 그러나 NP가 아니기 때문에 NP가 아닙니다.

따라서 NP 완성이 될 수 없습니다.

간단히 말하면 NP의 모든 문제는 A만큼 어렵지 않아도되고 분명히 그렇지 않습니다. 세트 감안할 때

(가 스마트 사람이 있는가에 대해 나는 상관 없어 코멘트 나 2 개) (재귀 knapsack) :

Are there such problems? 

나는이 같은 문제가있을 수 있습니다 생각 해요 최대 가중치 A를 갖는 부분 집합을 찾고, 또한이 부분 집합 내에서 일부 총 최대 가중치 C를 갖는 부분 집합을 찾고, 두 집합의 값의 합을 최대화하는 것을 목표로합니다.

To which class does it belong? 

은 내가 특별히 이들의 이름이없는 확신 해요,하지만 난 많은 생각 (또는 전부를?) 그들 NP-hard이다의. 증명 : (적어도 위의 문제에 대해서는 그것이 그러한 문제라고 가정 할 때)

정의 : "A problem H is NP-hard if ... (an NP-complete problem) L can be solved in polynomial time by an oracle machine with an oracle for H".

위의 예제가 이와 같은 문제이고 it = H라고 가정합시다. 우리는 상수 시간에 위를 해결할 수있는 오라클이 있다고 가정합니다. 그러나 배낭 문제는 단순히 위의 특수한 경우 (C = 0)이므로 오라클을 사용하여 일정 시간 (다항식 시간)에 배낭 문제를 풀 수 있습니다.

일반적으로이를 증명하는 것에 대해 확실하지 않습니다. 그러나 주어진 문제는 주어진 문제를 위의 문제로 줄이거 나 주어진 문제를 배낭 문제로 줄임으로써 해결 될 수 있습니다.

편집 : 실제로 이름이 2-EXPTIME 인 것 같습니다.

+0

한 점 여기 나는 여기에 대해 확신 할 수 없다는 것은 지수 적 시간 문제가 폴리 시간 알고리즘으로 축소 될 수 없음을 증명하는 것이 어렵다는 것입니다. 사실 이것을 정확히 이해한다면 지수 시간 완전 문제는 다항식 시간으로 줄일 수없고 알려진 지수 시간 완전 문제 (http://en.wikipedia.org/wiki/EXPTIME)가있는 것으로 알려져 있습니다. –

+0

@ user802500'for (i = 1 : n) {(n^n 시간 동안 원을 그리며); arr1 [i] = arr2 [i]; }'. 그게 내가 말하는거야. 당신이 ** ** 기하 급수적으로 어떤 일을 할 수 있다고해서 다항식 시간에 그것을 할 수있는 방법이 존재하지 않는다는 것을 의미하지는 않습니다. 그것은 본질적으로 전체 P = NP 질문이 내려지는 이유입니다. – Dukeling

4

다른 NP 문제를 다항식 시간으로 줄일 수있는 경우에만 NP 완전성을 고려할 수 있습니다. 이것이 유용한 정의 인 이유는 하나의 다항식 시간 알고리즘을 찾으면 자동으로 모든 NP 문제에 대해 하나의 알고리즘을 제공한다는 것입니다. 우리가 기하 급수적 인 시간 감축을 허용했지만, 감소 된 문제에 대한 다항식 시간 해결책을 찾았다면, 우리가 감축 한 문제를 해결하는 데 실제로 도움이되지 않을 것입니다.

희망이 도움이됩니다.

+0

N? = NP와 그 질문이 함축하는 의미에 대해 언급하는 것이 좋을 것이다. – Dukeling

+0

아마도 - 나는 그 지점에 빨리 도착한 짧은 대답을하려고했습니다. OP가 얻고 싶어하는 교육을받은 사람에 따라 다소 긴 답변이 더 나을 수도 있습니다. –

0

복잡성 이론의 완전성은 특정 종류의 감소 (항상 문맥에서 알 수 있으므로 명시 적으로 언급되지 않음)에 대해 항상 정의됩니다. NP- 완전 문제의 유명한 클래스는 Richard Rast의 답에 주어진 이유로 다항식 시간 단축에 대해 완전하다고 정의됩니다.

EXPTIME 감소에 대해 NP 완전 문제 클래스를 정의 할 수 있지만이 클래스는별로 흥미롭지 않습니다. 감소가 기하 급수적으로 허용되는 경우 원래 문제를 완전히 해결하고 대상 문제의 사소한 인스턴스를 생성 할 수 있습니다. 이것은 NP의 모든 문제가 그러한 유형의 감소에 의해 모든 다른 문제로 축소 될 수 있음을 의미하므로 NP의 모든 문제는 기하 급수적 인 시간 단축을 위해 NP 완전합니다.

짧은 버전 : 줄이기는 문제가 감소되는 클래스보다 약한 경우에만 흥미 롭습니다.

0

많은 이전에 언급했듯이 질문의 방향이 잘못되었습니다. 문제 A는 NP의 모든 문제 B가 문제 A에 대한 다항식 시간에서 감소 될 수 있다면 정의에 의해 NP 완성입니다. 따라서 귀하의 질문은 그 감소가 다항식이어야하며 기하 급수적 시간이 아닌지 여부입니다.

지수 시간 감축을 허용 한 경우 다음 결정 문제 X를 수행하십시오. "입력이 예"입니까? 그것은 거의 가능한 가장 단순한 의사 결정 문제입니다. 입력이 YES이면 대답은 YES이고, 입력이 예가 아니면 대답은 NO입니다. 그러나 NP의 모든 문제는 기하 급수적으로 문제 X로 줄일 수 있습니다. 분명히 우리는 문제 X를 "NP-complete"라고 부르고 싶지 않습니다. 그러므로 지수 적 시간 감소는 허용되지 않기 때문에 "NP-complete"라는 용어는 완전히 의미가 없기 때문에 허용되지 않습니다.