하위 집합 합계 대 하위 집합 제품 (강도 대 약 NP 경도) 정확히 NP- 하드 인 이유를

서브셋 합계 문제가 NP- 하드 인 반면 서브셋 제품 문제가 정확히 NP- 하드 인 이유를 설명 할 수 있기를 바랐습니다.

서브 세트 합계가 : 감안할 때

X={x1,...,xn}

i X x i = T가 되도록

T

부분 집합 가 존재한다 .

X

iXxi=T

일부 제품은 : 감안할 때

X={x1,...,xn}

i X x i = T 와 같은

T

부분 집합 가 존재한다 .

X

iXxi=T

나는 항상 두 문제가 동일하다고 생각했다. SS의 인스턴스는 지수를 통해 SP의 인스턴스로, 로그를 통해 SP의 인스턴스는 SS로 변환 될 수있다. 이로 인해 둘 다 동일한 등급의 NP-hard에 속한다고 결론을 내 렸습니다. 즉, 둘 다 약하게 NP-hard였습니다.

또한, 매우 작은 변화로 동적 프로그래밍을 사용하여 두 문제를 모두 해결하기 위해 동일한 반복이 사용될 수있는 것으로 보입니다 (SP에서 나누기를 가진 SS에서 빼기 대체).

Bernard Moret의 “계산 이론”8 장을 읽을 때까지 (책이없는 사람들은 X3C를 통한 서브 세트 제품의 경도 증명-강력한 NP-hard 문제).

축소를 이해했지만 이전 결론 (두 문제의 동등성)에 무엇이 잘못되었는지 파악할 수 없습니다.


업데이트 : 하위 집합 제품이 NP로 완전히 약하다는 것을 알 수 있습니다 (대상 제품은 지수입니다 ). 게리와 존슨 은 1981 년 NP- 완전성 칼럼에 이것을 발표 했지만, 그것은 그들의 책에서 이전 주장보다 눈에 띄지 않았다고 생각합니다.

Ω(n)



답변

하위 집합 합계 및 하위 집합 제품의 동등성 문제에 대해 하위 집합 제품에 대한 기술이 있습니다. T가 지수가 아닌 경우 x의 = T의 곱은 실제로 유사 다항식입니다! 따라서 서브셋 제품이 NP Hard라는 증거는 (기술적 인 이유로 !!!) 정확하지 않습니다!

그러나 T가 크다는 약속이 주어지면 로그를 통한 부분 집합 합으로의 축소는 실수를 초과하는 NONSTANDARD SUBSET SUM을 제공합니다! 이는 부분 집합에 대한 유사 다항식 알고리즘이 적용되지 않음을 의미합니다! 로그는 작지만 소수 자리는 유사 다항식 동적 프로그래밍을 망칩니다!

이게 도움이 되길 바란다

젤라


답변

첫째, 지수를 사용하여 SS에서 SP로 이동합니다 (base 대신 base 2 사용 ).하지만 관련된 수의 크기를 불어냅니다. NP 경도가 약하다는 것은 숫자가 작거나 더 정확하게는 단항으로 표시되면 문제가 더 이상 심각하지 않음을 의미합니다. 따라서 지수를 사용하면 SS의 쉬운 인스턴스에 대해서도 지수 크기의 SP 인스턴스가 만들어지며 여기서 숫자는 단항으로 작성됩니다.

e

둘째, 로그는 일반적으로 정수가 아닌 값을 생성하기 때문에 로그를 사용하여 SP에서 SS로 이동하는 것은 작동하지 않습니다. SS와 SP는 정수를 사용하여 정의되며 대수는 종종 초월 값을 나타내며, 표현하기 어렵거나 수학적으로 수행하기가 어렵습니다.

<edit>

하자 정수, 수 > 0 , 다음 로그 (2)

A

A>0

경우에만 경우 합리적 A는 2의 거듭 제곱이며, 초월 그렇지. 먼저, log 2 A = p 인 경우

log2A

A

log2A=pq

제로가 아닌 정수에 대한 Q 다음 = 2 P

p

q

,Aq=2p. 따라서 우리는소수 분해에 의해A=2r을가집니다. 또한Arq=2p이므로A가주어지면로그2A가 합리적임을 증명하기 위해q=1p=r을선택할 수 있습니다.

A=2pq

Aq=2p

A=2r

Arq=2p

A

q=1

p=r

log2A

우리는 단지 가 절대로 초월 적이 라는 것을 보여 주어야합니다 . 이것은에서 다음과 Gelfond – 슈나이더 정리 하면 “입니다 (위키 페이지에서 볼 수) 동등한 제형, αγ가 제로가 아닌 대수적 숫자, 그리고 우리가 제로가 아닌 대수 걸릴 α를 , 다음 ( 로그 γ ) / ( 로그 α )

log2A

α

γ

α

는 합리적이거나 초월 적입니다. ” 이 법칙의 역을 취하고 설정하여 쉽게 확인할 또한 α β = γ 따라서 β를

(logγ)/(logα)=logαγ

αβ=γ

.

β=logαγ

</edit>

마지막으로 SP의 SS에서 동적 프로그래밍 알고리즘을 시도 할 때 어떤 일이 발생하는지 고려하십시오. 우리는 합계가 아닌 제품을 사용하기 때문에 관련된 숫자가 엄청나게 터지고 갑자기 필요한 임의의 정밀 수학이 실행 시간의 요소가됩니다. 이것이 숫자가 단항 인 경우에도 알고리즘이 SP 인스턴스를 빠르게 해결할 수없는 이유입니다.


답변

문자 그대로의 설명은 서브 세트 제품 문제가 3 세트의 정확한 커버와 같은 강력한 NP- 완전 문제를 줄임으로써 NP- 완료라는 것입니다. 이러한 “강한”감소에서, 입력 정수는 서브 세트 곱 문제의 결과 인스턴스에서 정수의 수의 일부 다항식 함수에 의해 제한된다.

이러한 “강한”감소는 아니면 강한 NP- 완전 문제에서 부분 집합 합계 문제까지 불가능하다 . 입력 정수가 다항식에 의해 제한되는 경우 하위 집합 합계 문제를 해결하기위한 다항식 시간 동적 프로그래밍 알고리즘이 있습니다.

P=NP


답변