Jumlah Subset:
Input: {a1, a2, ..., am} st M = {1..m} dan ai adalah bilangan bulat tidak negatif dan S⊆ {1..k} dan Σai (i∈S) = t
Partisi:
Input: {a1, a2, ..., am} dan S⊆ {1, · · ·, m} st Σai (i∈S) = Σaj (j∉S)
Partition Np Proof:
jika prover menyediakan partisi (P1, P2) untuk verifier, verifier dapat dengan mudah menghitung jumlah P1 dan P2 dan memeriksa apakah hasilnya 0 dalam waktu linier.
NP_Hard: SubsetSum ≤p PARTITION
Biarkan x menjadi input dari SubsetSum dan x = 〈a1, a2, ..., am, t〉 dan Σai (i dari 1 hingga m) = a
Case1: 2t> = a:
Biarkan f (x) = 〈a1, a2, ..., am, am + 1〉 di mana + 1 = 2t − a
Kami ingin menunjukkan bahwa xSubsetSum ⇔ f (x) ∈PARTISI
jadi ada S⊆ {1, ..., m} st T = {1..m} - S dan Σai (i∈T) = at
dan Biarkan T '= {1 ... m, m + 1} - S so Σaj (j∈T') = a-t + 2t-a = t
yang persis Σai (i∈S) = t dan itu menunjukkan f (x) ∈PARTISI
sekarang Kami juga akan menunjukkan itu f (x) ARTPARTISI ⇔ x∈SubsetSum
jadi ada S⊆ {1, ..., m, m + 1} st T = {1, ..., m, m + 1} - S dan Σai (i∈T) = [a + (2t-a ) -t] = t
dan ini menunjukkan Σai (i∈T) = Σaj (j∈S) jadi m + 1∈T dan S⊆ {1, · · ·, m} dan Σai (i∈S) = t
jadi x∈SubsetSum
Kasus 2: 2t = <a :
kita bisa mengecek sama tetapi kali ini +1 adalah − 2t