Podzbiór Suma:
Dane wejściowe: {a1, a2, ..., am} st M = {1..m} i ai są nieujemnymi liczbami całkowitymi, a S⊆ {1..k} i Σai (i∈S) = t
Przegroda:
Dane wejściowe: {a1, a2, ..., am} i S⊆ {1, · · ·, m} st Σai (i∈S) = Σaj (j∉S)
Partycja N Dowód:
jeśli prover zapewnia partycje (P1, P2) dla weryfikatora, weryfikator może łatwo obliczyć sumę P1 i P2 i sprawdzić, czy wynik wynosi 0 w czasie liniowym.
NP_Hard: SubsetSum ≤p PARTITION
Niech x będzie wejściem SubsetSum i x = 〈a1, a2, ..., am, t〉 i Σai (i od 1 do m) = a
Przypadek 1: 2t> = a:
Niech f (x) = 〈a1, a2, ..., am, am + 1〉 gdzie am + 1 = 2t − a
Chcemy pokazać, że x∈SubsetSum ⇔ f (x) ARTPARTITION
więc istnieją S⊆ {1, ..., m} st T = {1..m} - S i Σai (i∈T) = at
i Niech T '= {1 ... m, m + 1} - S więc Σaj (j∈T') = a-t + 2t-a = t
czyli dokładnie Σai (i∈S) = t i pokazuje f (x) ARTPARTITION
teraz Pokażemy również, że f (x) ARTPARTITION ⇔ x∈SubsetSum
więc istnieją S⊆ {1, ..., m, m + 1} st T = {1, ..., m, m + 1} - S i Σai (i∈T) = [a + (2t-a ) -t] = t
i pokazuje Σai (i∈T) = Σaj (j∈S), więc m + 1∈T i S⊆ {1, · · ·, m} i Σai (i∈S) = t
więc x∈SubsetSum
Przypadek 2: 2t = <a :
możemy to sprawdzić, ale tym razem am + 1 to − 2t