計算複雑性理論では、すべての整数nについて、入力サイズnの問題を解く計算の数がcf(n)によって制限される場合、アルゴリズムの複雑性はO(f(n))であると言います。ここで、cは a です。nに依存しない正の定数、およびf(n)はnと同様に無限大になる増加関数です。
3-SAT問題は次のように述べられています:句に正確に 3 つのリテラルがある CNF 式が与えられた場合、式全体を真にする変数への TRUE 値と FALSE 値の割り当てはありますか?
CNF 式は、たとえば、m個の変数x1, ..., xmを含むk 個の句で構成されます。
3-SAT に多項式の複雑さP(n)があるかどうかを判断するには、問題の「 nとは何か」という単純なことを理解する必要があります。
私の質問は:
この特定の 3-SAT問題では、入力サイズnはどれと見なされますか?
節の数kですか?それとも変数の数mですか?
またはnはkとmの関数ですか? ( n=f(k,m) )。
この単純な問題で困っています。
Timmie Smith の回答によると、見積もりを考慮することができます。
k <= constant * f(m)
ここで、mはmの多項式関数です。
より正確には、関数P(m)は指数3 (つまり、3 次) と見なすことができます。
したがって、3-SAT の複雑さf(k)を考慮すると、次のようになります。
f(k, m)=f(P(m),m), (with P(m) = m^3).
したがって、関数fがkとmで多項式の場合、実際にはmで多項式になります。したがって、mを入力サイズと見なすことにより、3-SAT が P に含まれているかどうかを知るために 、特定のアルゴリズムがmで多項式であるかどうかを推定することになります。
あなたが同意するなら、私はティミーの答えを良いものとして受け入れることができます.
アップデート:
ここで同じ質問をしました:
https://cstheory.stackexchange.com/questions/18756/whats-the-meaning-of-input-size-for-3-sat
受け入れられた答えは私にとって役に立ちました。