부분 집합 합계 문제는 일반적인 NP 완료 문제입니다.
숫자 과 목표 k 의 목록이 주어지면, L 부터 k 까지의 숫자의 부분 집합이 있습니까?
한 학생이 "서브 세트 제품"문제라는이 변형이 NP- 완전한 것인지 물었습니다.
숫자 과 목표 k 의 목록이 주어지면, L 의 곱이 k 인 숫자의 부분 집합이 있습니까?
몇 가지 검색을 수행했지만이 문제에 대해 이야기 한 자료를 찾지 못했습니다.
서브 세트 제품 문제가 NP- 완전합니까?
부분 집합 합계 문제는 일반적인 NP 완료 문제입니다.
숫자 과 목표 k 의 목록이 주어지면, L 부터 k 까지의 숫자의 부분 집합이 있습니까?
한 학생이 "서브 세트 제품"문제라는이 변형이 NP- 완전한 것인지 물었습니다.
숫자 과 목표 k 의 목록이 주어지면, L 의 곱이 k 인 숫자의 부분 집합이 있습니까?
몇 가지 검색을 수행했지만이 문제에 대해 이야기 한 자료를 찾지 못했습니다.
서브 세트 제품 문제가 NP- 완전합니까?
답변:
한 의견은 X3C에서 Yao로 인한 SUBSET PRODUCT 로의 축소를 언급합니다. 축소의 목표를 감안할 때 축소가 무엇 이었을지 추측하기가 어렵지 않았습니다.
정의 :
3 세트 (X3C) 별 정확한 커버
유한 세트 로 | X | 3의 배수 및 수집 C 의 3 요소 집합의 X는 , 않습니다 C는 정확한 커버 포함 C ' 에 대한 X을 경우, C ' ⊆ C 와의 모든 요소 X가 정확히 한 번 발생 C ' ?
서브 세트 제품
숫자 과 목표 k 의 목록이 주어지면, L 의 곱이 k 인 숫자의 부분 집합이 있습니까?
X3C 인스턴스를 SUBSET PRODUCT 인스턴스로 줄이려면 다음을 수행하십시오.
의 멤버 와 첫 번째 | X | 소수. X 및 C 서브 세트 의 멤버를 맵핑 된 소수로 바꿉니다 .
각 부분 집합에 대해 멤버를 곱합니다. 결과 제품 목록은 SUBSET PRODUCT 인스턴스의 L 입니다. 1 단계에서 맵핑에 소수가 사용되므로, 부분 분해능이 고유 인수 분해 정리에 의해 동등하면 곱이 동등하게 보장됩니다 .
의 구성원을 함께 곱하십시오 . 결과 제품은 SUBSET PRODUCT 인스턴스 의 값 k 입니다.
의 소인수 는 정확히 X 의 멤버입니다 . L 의 숫자의 소인수 는 C 부분 집합 의 멤버와 정확히 일치합니다 . 따라서 L 의 솔루션 멤버를 다시 C 의 서브 세트에 맵핑하여 새 SUBSET PRODUCT 인스턴스에 대한 솔루션을 X3C 솔루션으로 변환 할 수 있습니다 .
세 가지 변환 단계 각각에는 입력 또는 구성원의 크기 X . 첫 번째 | X | (소수는 시간 O 생성 할 수 있습니다 | X | 에라 토 스테 네스의 체를 사용하여에 맞게 보장)를 O ( | X | 2 LN | X | ) 에 의해 공간을 소수 정리 .
[ 1 ] 에 따르면 : 예
나는 또한 같은 참고 문헌을 인용한다. 의견 : 이것과 문제 42 사이에는 미묘한 기술적 차이가있다. 전자의 경우에는 숫자가 단항으로 표현 될 수 있도록하는 의사 효율적인 알고리즘이있다. 모든 NP- 완전 문제가 빠른 알고리즘으로 해결 될 수 없다면, 서브 세트 제품 문제는이 불합리한 입력 표현을 사용하는 '효율적인'방법으로는 해결할 수 없습니다.
축소를 위해 [2]를 살펴보십시오. [2] : 펠로우, 마이클, 닐 코 블리츠. "고정 매개 변수 복잡성 및 암호화." 응용 대수, 대수 알고리즘 및 오류 수정 코드 (1993) : 121-131.