コメントでは、X3CからYaoに起因するSUBSET PRODUCTへの削減について言及しています。削減の目標を考えると、削減がどのようなものであったかを推測するのは難しくありませんでした。
定義:
3セットによる正確なカバー(X3C)
で有限集合が与えられた場合 3の倍数、および収集の3要素のサブセットの、ない、正確なカバー含んのための、とのすべての要素で正確に一度に発生する?| X | C X C C 「 X C 」 ⊆ C X C "X|X|CXCC′XC′⊆CXC′
サブセット製品
数値のリストとターゲットが与えられた場合、積がからの数値のサブセットはありますか?k L kLkLk
X3CインスタンスをSUBSET PRODUCTインスタンスに減らすには:
のメンバーと最初の間に全単射マッピングを確立します 素数。およびサブセットのメンバーをマップされた素数で置き換えます。| X | X CX|X|XC
各サブセットに対して、そのメンバーを一緒に乗算します。結果の製品リストは、SUBSET PRODUCTインスタンスではです。ステップ1のマッピングには素数が使用されるため、一意の因数分解定理によりサブセットが同等である場合、積は同等であることが保証されます。LCL
のメンバーを一緒に乗算します。結果の製品は、SUBSET PRODUCTインスタンスの値です。kXk
の素因数は、まさにのメンバーです。の数値の素因数は、サブセットのメンバーに正確に対応します。したがって、のソリューションメンバをのサブセットにマッピングすることにより、新しいSUBSET PRODUCTインスタンスのソリューションをX3Cソリューションに変換できます。X L C L CkXLCLC
3つの変換ステップのそれぞれには、入力のサイズに多項式である演算が含まれますまたはメンバーのサイズ。最初の素数はエラトステネスのふるいを使用して時間O()に生成でき、素数定理により空間に収まることが保証されます。X | X | | X | O (| X | 2 ln | X |)|X|X|X||X|O(|X|2ln|X|)