Teilmenge Summe:
Eingabe: {a1, a2, ..., am} st M = {1..m} und ai sind nicht negative ganze Zahlen und S⊆ {1..k} und Σai (i∈S) = t
Trennwand:
Eingabe: {a1, a2, ..., am} und S⊆ {1, · · ·, m} st Σai (i∈S) = Σaj (j∉S)
Partition Np Proof:
Wenn der Prüfer eine Partition (P1, P2) für den Prüfer bereitstellt, kann der Prüfer auf einfache Weise die Summe von P1 und P2 berechnen und prüfen, ob das Ergebnis in linearer Zeit 0 ist.
NP_Hard: SubsetSum ≤p PARTITION
Sei x die Eingabe von SubsetSum und x = 〈a1, a2, ..., am, t〉 und Σai (i von 1 bis m) = a
Fall 1: 2t> = a:
Sei f (x) = 〈a1, a2, ..., am, am + 1〉 mit am + 1 = 2t − a
Wir wollen zeigen, dass x∈SubsetSum ⇔ f (x) ∈PARTITION ist
es gibt also S⊆ {1, ..., m} st T = {1..m} - S und Σai (i∈T) = at
und sei T '= {1 ... m, m + 1} - S so Σaj (j∈T') = a-t + 2t-a = t
das ist genau Σai (i∈S) = t und es zeigt f (x) ∈PARTITION
Jetzt werden wir auch zeigen, dass f (x) ∈PARTITION ⇔ x⇔SubsetSum
es gibt also S⊆ {1, ..., m, m + 1} st T = {1, ..., m, m + 1} - S und Σai (i∈T) = [a + (2t-a ) -t] = t
und es zeigt Σai (i∈T) = Σaj (j∈S), also m + 1∈T und S⊆ {1, · · ·, m} und Σai (i∈S) = t
also x∈SubsetSum
Fall 2: 2t = <a :
wir können dasselbe überprüfen, aber gerade diesmal ist am + 1 a − 2t