機能の問題と


7

関数複雑度クラスの正式な定義を見つけるのは難しいと思います。ウィキペディアからの2つです。

二項関係 P(x,y)与えられた決定論的多項式時間アルゴリズムがある場合に限り、FPx、いくつか見つけることができます y そのような P(x,y) 保持します。

上記の定義は、FPのすべての関係について、すべての関係について、x 少なくとも1つ存在します y その長さは長さの多項式です x。しかし、それ以上存在することを制限するようには見えませんy そのために x そのため P(x,y) しばらくの間 y より指数関数的に長い x

二項関係 P(x,y)、 どこ y せいぜい多項式より長い xFNPであるのは、以下を決定できる決定論的多項式時間アルゴリズムがある場合に限られます。P(x,y) 両方与えられたホールド x そして y

この定義は、FNPの関係では、少なくとも1つの関係が存在することは事実である必要はないことを意味しますy すべてのための x そのため P(x,y)保持します。ただし、P(x,y) 保持し、 y せいぜい多項式より長くなければなりません x

文献では、そのFPを読むことができます FNP。私が理解している(または理解していない)限り、これは当てはまりません。ある関係についてはR(x,y) FPが存在します(x,y) そのため R(x,y) 保持し、 y より指数関数的に長い x。このため、この関係はFNPに属していないため、FP FNP

ウィキペディアの定義は不完全ですか?何か不足していますか?

どちらにしても、関数の問題を読むのに役立つ情報源は何ですか(私は意思決定の問題に精通していると思います)?


ウィキペディア以外の本/情報源を見たことがありますか?正式な定義が必要な場合は、ウィキペディアを主要な情報源とすることはお勧めしません。代わりに、複雑性理論の教科書はおそらくより良い選択です、またはこれらのトピックをカバーする複雑性理論のコース(おそらく大学院コース)からの講義ノート。
DW

アローラらによる「計算の複雑さ:現代のアプローチ」を読んでいます。al。しかし、その本は機能の問題を扱っていません。PLSとPPA(D)[Papadimitrou]を定義する記事を読んでいます。それらの記事は、それらを「(N)Pの同等の関数」として「定義」するだけです。私はPLSとPPA(D)を理解することができますが、私はそれらについての理由の深さに、私はいつも問題にぶつかるとき、私は、任意の良い定義を知らないFPFNPを
オーブロン

回答:


4

私は、Papadimitriouの著書Computational Complexityで次のことを見つけました。

しましょう RΣ×Σ 文字列の二項関係である。

R多項式決定可能と呼ばれます言語を決定する決定論的チューリングマシンがある場合、ます{x;y:(x,y)R} 多項式時間で。

と言う Rされる多項式バランスあれば(x,y)R 意味する |y||x|k いくつかのための k1

次に、Papadimitriouは次のように述べています。これは基本的にNPの別の定義です。

しましょう LΣ 言語であること。 L NPは、多項式で決定可能で多項式でバランスの取れた関係がある場合に限りますR、 そのような L={x:(x,y)R いくつかのための y}

数十ページ後...

関連する機能の問題 L [ NP ]、表記FL [ここに L ログスペースではなく、上記の言語を表します]は、次の計算上の問題です。

与えられた x、文字列を検索 y そのような RL(x,y)そのような文字列が存在する場合。そのような文字列が存在しない場合は、「no」を返します。

その後

上記のようにNPの言語に関連するすべての関数問題のクラスは、FNPと呼ばれます。FPは、多項式時間で解けるFNPの関数問題のみを考慮した場合に生成されるサブクラスです。


なぜFPなのかを理解する TFNP ...
Auberon

ご了承ください FP他にも互換性のない定義があり、これも一般的に使用されています。
Yuval Filmus

@YuvalFilmus文献では、FP TFNP FNPFPの定義のうち、これを満たすものはどれでも正しいと思います。パパディミトリウはまた、彼の本に含まれていると述べた。しかし、彼のFPの定義がそれをどのように意味するかはわかりません...
Auberon

これは、文学のどの部分を見るかによって異なります。私にとって、FPは常にポリタイムで計算可能な関数のクラスでしたが、FNPとTFNPは検索問題に取り組む人々が使用するニッチな用語です。
Yuval Filmus

3

ウィキペディアの定義を忘れて、独自のものを考えましょう。

機能 f にあります FP 入力にポリタイムチューリングマシンがある場合 x 出力 f(x)

機能 f にあります FNP 次の場合:

  1. 関数 f 多項式有界である:多項式が存在する p そのような |f(x)|p(|x|)

  2. 与えられたポリタイムチューリングマシンがあります x,y かどうかを決定します f(x)=y

もし f にあります FPそして、それは間違いなく多項式的に有界です。計算できるのでf(x) 与えられた多項式時間で x,y 計算できます f(x) と比較して y、すべて多項式時間で。

複雑な動物園に相談すると、FNP 実際には異なる定義があり、それは FP には2つの異なる互換性のない定義があり、そのうちの1つは上記のものです。


FPFNPは関数のセットではなく、文字列のセットであると私は主張します。さらに、function正確に1つあることを意味しますy それぞれに x、そうである必要はありません。彼らは関係です。
Auberon

あなたは正しいようです FNP、 だが FPいくつかの異なる(互換性のない)定義があります。たとえば複雑な動物園を見てください。
Yuval Filmus

2

Elaine RichによるAutomata、Computability and Complexityから別の定義セットを追加したいと思います。

クラスFP:二項関係Q にあります FP 任意の入力が与えられた決定論的多項式時間アルゴリズムがある場合 x、いくつか見つけることができます y そのような (x,y)Q

クラスFNP:二項関係Q にあります FNP 任意の入力ペアが与えられた場合、確定的多項式時間検証器がある場合 (x,y)、かどうかを決定します (x,y)Q。同様に、Q にあります FNP 任意の入力が与えられた非決定的多項式時間アルゴリズムがある場合 x、いくつか見つけることができます y そのような (x,y)Q

これはウィキペディアで見つかる定義とわずかに異なるだけですが、それでもそれは異なることを意味します。最も重要なのは、エレインリッチ彼女の定義FNP を意味しません (x,y)Qy 多項式でなければなりませんx。wiki定義は、これらのずさんなコピーである可能性があります。

これらの定義から、 FPTFNPFNP

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