web-dev-qa-db-ja.com

サブセット和問題はNP完全ですか?

私が正しく知っていれば、サブセット和問題はNP完全です。ここにn個の整数の配列があり、ターゲット合計tが与えられ、ターゲットから合計できる(可能であれば)配列から数値を返す必要があります。

しかし、この問題は、テーブルn X tを作成し、最後の数が確かに出力に含まれている場合、ターゲットがt- aになるような動的計画法では、多項式時間で解決できません。 [n]。それ以外の場合、最後の数値はnot含まれ、ターゲットは同じtのままですが、配列のサイズはn-1になります。したがって、このようにして、問題のサイズを縮小し続けます。

このアプローチが正しい場合、このn * tの複雑さは多項式ではありませんか?これがPに属し、NP完全な場合(聞いたことから)、P = NPです。

確かに、私はここで何かが欠けています。この推論の抜け穴はどこにありますか?

ありがとう、

8
xyz

あなたのロジックは正しいです-そしてあなたが説明したのは、O(nt)でそれを解決する有効なサブセット合計アルゴリズムです。

ただし、このタイプのアルゴリズムはpseudopolynomialであり、入力を表すために使用されるビット数に対して指数関数的です。つまり、tが1000の場合、さらに0を追加することでプログラムを10倍遅くすることができます(tは10000になりました)。

したがって、アルゴリズムはntvalueに対して多項式ですが、入力のサイズ(入力内の文字数、ビット数、呼び出したいものは何でも)。

したがって、この問題はPにはありません(P = NPまたは同様のものでない限り)。

出典および参考文献

12
evgeny