Tổng hợp con:
Dữ liệu vào: {a1, a2, ..., am} st M = {1..m} và ai là số nguyên không âm và S⊆ {1..k} và Σai (i∈S) = t
Vách ngăn:
Đầu vào: {a1, a2, ..., am} và S⊆ {1, · · ·, m} st Σai (i∈S) = Σaj (j∉S)
Bằng chứng phân vùng Np:
nếu prover cung cấp phân vùng (P1, P2) cho trình xác minh, trình xác minh có thể dễ dàng tính tổng của P1 và P2 và kiểm tra xem kết quả có bằng 0 trong thời gian tuyến tính không.
NP_Hard: SubsetSum ≤p PHẦN
Đặt x là đầu vào của SubsetSum và x = 〈a1, a2, ..., am, t〉 và Σai (i từ 1 đến m) = a
Trường hợp1: 2t> = a:
Đặt f (x) = 〈a1, a2, ..., am, am + 1〉 trong đó am + 1 = 2t − a
Chúng tôi muốn chỉ ra rằng x∈SubsetSum f (x) PARTATION
vì vậy tồn tại S⊆ {1, ..., m} st T = {1..m} - S và Σai (i∈T) = at
và Đặt T '= {1 ... m, m + 1} - S so aj (j∈T') = a-t + 2t-a = t
đó chính xác là Σai (i∈S) = t và nó hiển thị f (x) PARTATION
bây giờ chúng tôi cũng sẽ chỉ ra rằng f (x) PARTATION x∈SubsetSum
do đó tồn tại S⊆ {1, ..., m, m + 1} st T = {1, ..., m, m + 1} - S và Σai (i∈T) = [a + (2t-a ) -t] = t
và nó hiển thị Σai (i∈T) = aj (j∈S) nên m + 1∈T và S⊆ {1, · · ·, m} và Σai (i∈S) = t
vì vậy x∈SubsetSum
Trường hợp 2: 2t = <a :
chúng ta có thể kiểm tra tương tự nhưng chỉ lần này am + 1 là − 2t