Sản phẩm tập hợp con có phải là vấn đề NP-NP?


21

Vấn đề tổng hợp con là một vấn đề NP-đầy đủ cổ điển:

Cho một danh sách các số và một mục tiêu , có một tập hợp con các số từ tổng hợp thành không?k L kLkLk

Một sinh viên hỏi tôi liệu biến thể của vấn đề này được gọi là vấn đề "sản phẩm tập hợp con" có hoàn chỉnh NP không:

Cho một danh sách các số và một mục tiêu k , có một tập hợp con các số từ L có sản phẩm là k không?LkLk

Tôi đã thực hiện một số tìm kiếm và không thể tìm thấy bất kỳ tài nguyên nào nói về vấn đề này, mặc dù có lẽ tôi đã bỏ lỡ chúng.

Là vấn đề sản phẩm tập hợp con NP-hoàn thành?


2
Câu trả lời thú vị, nhưng tôi tự hỏi: chúng ta không thể giảm xuống Subset Sum chỉ bằng cách lấy nhật ký của k và tất cả các số? (Có lẽ tôi nên hỏi một câu hỏi riêng biệt?)
j_random_hacker

1
@j_random_hacker, vâng, nếu bạn không thể tìm thấy câu trả lời sau khi tìm kiếm trên trang web này và trực tuyến, tôi khuyên bạn nên đăng một câu hỏi riêng. Đó là một câu hỏi hay với một câu trả lời hay (gợi ý: ghi nhật ký để lại cho bạn một thứ không phải là số nguyên; theo hướng khác, hãy suy nghĩ về việc lũy thừa làm gì với kích thước của các con số), nhưng đó là một chút tiếp tuyến và sẽ tốt hơn trong câu hỏi của riêng mình.
DW

1
@DW: Cảm ơn, khi tôi có thời gian tôi sẽ làm như bạn đề xuất!
j_random_hacker

Câu trả lời:


13

Một nhận xét đề cập đến việc giảm từ X3C xuống SUBSET SẢN PHẨM được quy cho Yao. Với mục tiêu giảm, thật khó để đoán mức giảm có thể xảy ra.

Định nghĩa:

BẢO HIỂM CHÍNH XÁC B 3NG 3-BỘ (X3C)

Cho tập hữu hạn với | X | một bội số của 3 và một bộ sưu tập C của tập con 3 phần tử của X , không C chứa một bìa chính xác C ' cho X , nơi C 'C và mọi phần tử trong X xảy ra trong đúng một lần trong C ' ?X|X|CXCC'XC'CXC'

ĐĂNG KÝ SẢN PHẨM

Cho một danh sách các số và một mục tiêu k , có một tập hợp con các số từ L có sản phẩm là k không?LkLk

Để giảm phiên bản X3C thành phiên bản SUBSET SẢN PHẨM:

  1. Thiết lập ánh xạ phỏng đoán giữa các thành viên của và đầu tiên | X | số nguyên tố. Thay thế các thành viên của các tập con XC bằng các số nguyên tố được ánh xạ.X|X|XC

  2. Đối với mỗi tập hợp con trong , nhân các thành viên của nó với nhau; danh sách kết quả của các sản phẩm là L cho phiên bản SUBSET SẢN PHẨM. Vì các số nguyên tố được sử dụng để ánh xạ trong bước 1, các sản phẩm được đảm bảo tương đương với các tập con tương đương với định lý nhân tố duy nhất .CL

  3. Nhân các thành viên của với nhau; sản phẩm kết quả là giá trị k cho phiên bản SUBSET SẢN PHẨM.Xk

Các thừa số nguyên tố của chính xác các thành viên của X . Các thừa số nguyên tố của các số trong L tương ứng chính xác với các thành viên của tập con C. Do đó bất kỳ giải pháp cho trường hợp SUBSET sản phẩm mới có thể được chuyển đổi thành một giải pháp X3C bằng cách ánh xạ các thành viên giải pháp của L trở lại tập con trong C .kXLCLC

Mỗi trong số 3 bước chuyển đổi bao gồm các phép toán đa thức với kích thước của đầu vào hoặc kích thước của một thành viên của X . Đầu tiên | X | Các số nguyên tố có thể được tạo trong thời gian O ( | X | ) bằng cách sử dụng rây của Eratosthenes và được đảm bảo phù hợp với không gian O ( | X | 2 ln | X | ) theo định lý số nguyên tố .|X|X|X||X|Ôi(|X|2ln|X|)


1
+1, nhưng để giảm bớt tôi nghĩ rằng chúng tôi yêu cầu đầu tiên | X | số nguyên tố có thể được biểu diễn trong một số bit là đa thức trong | X | - tôi có đúng về điều này không, và nếu vậy, chúng ta có đảm bảo điều đó không?
j_random_hacker

1
Điểm tuyệt vời. Tôi đã thêm một đoạn để giải quyết điều đó.
Kyle Jones

1
Cảm ơn, định lý đó xi măng nó! Không phải với nitpick, nhưng theo trang bạn đã liên kết, số nguyên tố thứ k xấp xỉ k log k và được cho rằng Sàng của Eratosthenes dường như tính toán tất cả các số nguyên tố lên đến n trong thời gian O (n log log n) , thay thế n = k log k xuất hiện để đưa ra thời gian của O (k * log (k) * log (log (k log k))), chứ không phải O (k) (O của bạn (| X |)), để tính k đầu tiên Số nguyên tố theo cách đó.
j_random_hacker

1
Kyle Jones, không quan trọng rằng bước 3 sẽ tạo ra một số có kích thước theo cấp số nhân? Là giảm này thực sự của thời gian đa thức? k
dùng1742364

3
@ user1742364 Không, vì tính toán không yêu cầu số lượng hoạt động theo cấp số nhân hoặc yêu cầu lưu trữ số bit theo cấp số nhân. Máy tính k yêu cầu | X | phép nhân và phép nhân kém nhất là phép toán O ( n 2 ) . Trong khi k sẽ lớn hơn theo cấp số nhân so với số nguyên tố P lớn nhất trong X , số bit cần thiết để lưu trữ k sẽ là O ( log P ) . kk|X|Ôi(n2)kPXkÔi(đăng nhậpP)
Kyle Jones

9

Theo [ 1 ]: Đúng vậy

Tôi cũng trích dẫn cùng một tài liệu tham khảo: Nhận xét: Có một sự phân biệt kỹ thuật tinh tế giữa vấn đề này và Bài toán 42: trường hợp trước có thuật toán giả hiệu quả thu được bằng cách cho phép các số được biểu diễn dưới dạng đơn nguyên; trừ khi tất cả các vấn đề hoàn thành NP có thể được giải quyết bằng các thuật toán nhanh, tuy nhiên, Vấn đề sản phẩm tập hợp con, không thể được giải quyết bằng các phương pháp 'hiệu quả' bằng cách sử dụng ngay cả biểu diễn đầu vào không hợp lý này.

hãy xem [2] để giảm bớt. [2]: Các nghiên cứu sinh, Michael và Neal Koblitz. "Độ phức tạp tham số cố định và mật mã." Áp dụng đại số, thuật toán đại số và mã sửa lỗi (1993): 121-131.


1
Việc giảm hoặc trích dẫn thực tế trong một bài báo sẽ là tốt, nếu có thể.
templatetypedef

3
@templatetypedef Ở Garey và Johnson, mức giảm là bao gồm chính xác 3 bộ. Do giao tiếp riêng với Yao.
AJed

Việc giảm giấy mã hóa là cho một vấn đề khác, trong đó sản phẩm mục tiêu được thay thế bằng sự phù hợp với số mục tiêu modulo một mô-đun được đưa ra trong ví dụ. (Mặc dù nếu tôi hiểu chính xác bằng chứng, dù sao họ cũng chỉ nhận được độ cứng yếu vì mô đun có độ lớn theo cấp số nhân.)
Jeffrey Bosboom
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.