硬度の削減の種類と関連する定義
-
16-10-2019 - |
質問
aをb、すなわち、$ a leq b $に還元できます。したがって、$ a $を受け入れるチューリングマシンは、$ b $でOracleにアクセスできます。チューリングマシンは、$ a $ be $ m_ {a} $と$ b $ be be $ o_ {b} $になります。削減の種類:
チューリング削減:$ m_ {a} $は、$ o_ {b} $に複数のクエリを作成できます。
KARP削減:「多項式時間チューリング削減」とも呼ばれます:$ O_ {b} $への入力は、ポリタイムで構築する必要があります。さらに、$ o_ {b} $のクエリの数は、多項式によって制限される必要があります。この場合:$ p^{a} = p^{b} $。
多くのチューリング削減:$ m_ {a} $は、最後のステップで$ o_ {b} $に1つのクエリを作成できます。したがって、Oracle応答を変更することはできません。ただし、入力を$ o_ {b} $に構築するのにかかった時間は、多項式に縛られる必要はありません。同等に:($ leq_ {m} $は、多くの削減を示す)
$ a leq_ {m} b $ if $ exists $ $ a computable function $ f: sigma^{ ast} to sigma^{ ast} $ in a $。
調理削減:「多項式時間」とも呼ばれます。多くの1つの減少」:$ O_ {b} $への入力を構築するのにかかった時間が多項式に縛られている必要があります。同等に:($ leq^{p} _ {m} $は、多くの1つの削減を示します)
$ a leq^p_ {m} b $ if $ exists $ a ポリタイム 計算可能な関数$ f: sigma^{ ast} to sigma^{ ast} $は、$ f(x) in b iff x in a $。
par約的な削減:「多項式時間1対1の減少」とも呼ばれます:$ aのすべてのインスタンスが$ b $の一意のインスタンスにマッピングされた料理人の削減。同等に:($ leq^{p} _ {1} $は、par約的な削減を示します)
$ a leq^p_ {1} b $ if $ exists $ a ポリタイム Computable Bijection $ f: sigma^{ ast} to sigma^{ ast} $は、$ f(x) in b iff x in a $。
これらの削減により、ソリューションの数が維持されます。したがって、$ #m_ {a} = #o_ {b} $。
Oracleクエリの数を制限することにより、より多くの種類の削減を定義できますが、それらを除外して、使用されたさまざまな種類の削減について正しく命名法を獲得したかどうかを誰かに教えてください。 NP完全な問題は、料理人の削減または節期的な削減を尊重することで定義されていますか?誰でも、料理の下でNPが完全に、そして普通の削減の下ではない問題の例を親切に提供できますか。
私が間違っていない場合、クラス#P-CompleteはKARPの削減に関して定義されます。
解決
par約的な削減の定義は間違っています。あなたはそれを、KARP削減の特別なケースである多項式時間の1つの削減と混同しています。 「ソリューション」の数を保存しません。参照してください この答え 証明書の数を考慮した削減の詳細については。
残りは問題ないように見えますが、通常は2次元チャートで表示する方が良いです。
- 還元の複雑さ:計算可能、多項式時間、対数空間など。
- アクセスの種類:チューリング、多くの1つ、1つなど。
NP完全な問題は、料理人の削減または節期的な削減を尊重することで定義されていますか?
$ mathsf {np} $硬度と完全性は、調理や節約の削減ではなく、wrt karp削減(ポリタイム多数)の削減(ポリタイム多数)の削減です。
誰でも、料理の下でNPが完全に、そして普通の削減の下ではない問題の例を親切に提供できますか。
SATの補完を取ると、調理削減下で$ mathsf {np} $が完了します。$ mathsf {np} $のkarp削減の下で完全であるとは考えられていません。 KARPの削減には、ポリタイムの1つの削減が含まれます。
クラス#P-Completeは、KARPの削減に関して定義されています
ご了承ください $ mathsf {#p} $ 決定の問題のクラスではなく、関数計算の問題のクラスです。その硬度と完全性は通常、WRTクックの削減(ポリタイムチューリング)を定義します。 Eg Arora and Barak、Page 346を参照してください。
他のヒント
KARPの削減の定義は間違っています。 KARPの削減は、オラクルの多項式時間のチューリング削減です $ o_b $ 最後のステップの削減中に、正確に1回呼ばれます。