Nó vẫn là -complete, ngay cả với . Đưa ra một ví dụ về tổng tập hợp con, chúng ta có thể chuyển đổi nó thành biến thể này bằng cách tách các số và thêm một số bit bổ sung. k = 2N Pk = 2
Đầu tiên, tổng của tất cả các số trong bài toán sẽ nhỏ hơn đối với một số giá trị của . m2mm
Bây giờ, hãy lấy một số từ bài toán ban đầu có bit được đặt. Chúng ta sẽ chia số này thành số với chính xác 2 bit được đặt sao cho tổng của các số đó là . Chúng ta có thể thực hiện điều này một cách đệ quy, bằng cách tìm số có tổng bằng bit cộng với và số tổng cộng đến các cùng cộng với .k k n + 2 k + m ⌈ k ⌉ ⌈ k ⌉ 2 k + m - 1 ⌊ k ⌋ ⌊ k ⌋ 2 k + m - 1nkkn + 2k + m⌈ k ⌉⌈ k ⌉2k + m - 1⌊ k ⌋⌊ k ⌋2k + m - 1
Ngoài số đó, chúng tôi cũng sẽ thêm số vào vấn đề. Một giải pháp phải chứa số này hoặc tất cả các số xây dựng trước đó. Nếu giá trị mục tiêu ban đầu là , giá trị mục tiêu mới sẽ là . k t t + 2 k + m2k + mktt + 2k + m
Nếu vấn đề ban đầu có nhiều hơn một số, chúng ta có thể lặp lại quá trình này lấy cho giá trị mới của .mk + m + 1m
Chỉ có hai cách để bit ở vị trí có thể được đặt: câu trả lời có thể chứa số hoặc tất cả các số có tổng bằng . Vì vậy, chúng tôi đã giảm tổng tập hợp con cho biến thể tổng tập hợp con của bạn.2 k + m k n + 2 k + mk + m2k + mkn + 2k + m
Ví dụ: hãy lấy với giá trị đích . Vấn đề này có thể được mã hóa dưới dạng biến thể tổng con được trình bày ở đây bằng cách lấy các số nhị phân sau: 7{ 2 , 3 , 5 }7
2 được ánh xạ tới và . (Sử dụng bit thừa không thực sự cần thiết ở đây.)0000 10100 10000 1
3 được ánh xạ tới và0000 00 011000 00 1,0100 00 10000 00 01
5 được ánh xạ tới và .0000 00 000 011000 00 000 1,0010 00 000 10000 00 000 01
Giá trị mục tiêu mới sẽ trở thành .1110 10 010 01
Nếu vấn đề ban đầu được biểu diễn bằng bit, thì vấn đề được chuyển đổi có nhiều nhất là các bit . Bài toán ban đầu sẽ có nhiều nhất là số với mỗi bit có nhiều nhất là , do đó tổng của tất cả chúng cũng là O (n). Bài toán được chuyển đổi sẽ có các số (vì mỗi số -bit được chia thành bit, với độ dài của chúng nhiều nhất là vì chúng tôi sử dụng bit bổ sung cho mỗi số. Vì vậy, tổng kích thước của bài toán được chuyển đổi là các bit .O ( n 4 ) O ( n ) O ( n ) O ( n 2 ) n n + 1 2 O ( n 2 ) n O ( n 4 )nO(n4)O(n)O(n)O(n2)nn+1 2O(n2)nO(n4)