特殊なケースの問題の複雑さ


7

計算の複雑さに関するテキストを読んでいるとき、私はしばしばこのような文章を見ます:

"この特殊な "またはTSP

「これは特殊なケースです」またはSAT

「 -、以下の特別な場合である」またはkPARTITIONBIN PACKING

「は」の特別なケースです。SUBSET SUMKNAPSACK

私が見落としているのは、ある問題が別の問題の特別なケースであると主張するための基準です。
ある問題を別の問題の特殊なケースとして分類する必要性は何ですか?特別なケースは常に複雑さのクラスを「特別でない」ケースとして扱いますか?

多くの場合、これは単純に述べられており、これらの問題間の関係の証拠はありません。

問題が別の特別なケースになるためには、どのような要件を満たす必要がありますか?

問題の新しい言語が既存の問題の特殊なケースであることをどのように証明できますか?

回答:


11

問題が問題特殊なケースであると言うとき、すべての問題インスタンスが問題インスタンスでは限らないことを除いて、はと同じ問題であることを意味します。場合特殊なケースである、我々はと言うの一般化である。BABAABBAAB

2つの例:正の整数の加算(たとえば)は、整数の加算(たとえば)の特殊なケースであり、範囲固定は、任意の整数をソートする特殊なケースです。5+35+(3){1,2,,k}k

任意の溶液も解決する、及びための任意の硬度結果(例えば、 -hard又はニーズすぐに転送解決すべき時間)。ただし、一般的なケースと比較して、より良いアルゴリズムを見つけることができる場合があるため、通常は特別なケースを検討します。ABBNPΩ(n2)A

例:ソートアルゴリズムは、範囲整数に対しても同様に機能しますが、CountingSortは特殊なケース(一般的なケースではありません)に対して機能します、これは通常、が小さいほど高速です。はハードであり、は特殊なケースであり、依然としてハードです(したがって、はハードであることを意味します)が、はます。Θ(nlogn){1,2,,k}O(n+k)kSATNP3SATSATNPSATNP2SATP

上記の定義は、任意のインスタンスをインスタンスとしてエンコードできること、およびこのエンコードは非常に簡単であることを示すために、時々引き延ばされる(乱用される)ことに注意してください。その場合、通常、上記はまだ有効ですが、厳密性は低くなります。BA


4

「特別なケース」は単に「一般的なケース」の反対です。

たとえば、ツリーはグラフなどの特殊なケースです。問題についても同じように機能します。「リストの最小要素を見つける」または「中央値を見つける」は、「番目に小さいリストの要素」。k

複雑さについては、特殊なケースは一般的なケースと同じくらい難しいとわかっています(一般的なケースを解決するアルゴリズムはすべて、特殊なケースも解決できるため)。

ただし、特殊なケースが一般的なケースよりもはるかに単純である可能性があります。多くの完全な問題には、解決が「簡単」な特別なケースがあります。例えば、2-の特別な場合である式は、各句でのみ2つの変数を有しています。ながらで -complete、2-多項式時間で解くことができます。NPSATSATSATNPSAT

別の例:並べ替えには一般にが必要ですが、ドメインがバインドされている特殊な場合(つまり、要素は固定からのみです) 、線形解はバケットソートなどを使用して存在しますΩ(nlogn){1,,m}mO(n+m)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.