クラスFP、FNP、TFNPとは正確には何ですか?


13

彼の著書Computational Complexityでは、PapadimitriouはFNPを次のように定義しています。

LNPの言語であるとします。命題9.1により、多項式時間決定可能、多項式バランス関係があるのR Lすべての文字列のようにX列がある:YR LX Y の場合に限り、X LはF Lで示されるLに関連付けられた関数の問題は、次の計算上の問題です。LRLxyRL(x,y)xLLFL

xが与えられx、そのような文字列が存在する場合R Lx y となる文字列yを見つけます。そのような文字列が存在しない場合、「no」を返します。yRL(x,y)

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

(...)

(...)、すべての文字列xR x y )のようなyが少なくとも1つある場合、FNP 合計で問題Rを呼び出します。すべての総関数問題を含むFNPのサブクラスはTFNPで示されますR xyR(x,y)

章の概要でベン図において、Papadimitriouはその意味FP TFNP FNPを

まさにそれが保持している理由は、私は、ハードの時間を理解しているFP TFNPのに問題以来、FPは、それ自体が合計である必要はありません。

より良い理解を得るために、私はFPFNP、およびソートの完全な定義を見つけるために文献を探して、成功していませんでした。

私の非常に(謙虚な)意見では、これらのトピックの教訓的な資料はほとんど(正しい!)ないと思います。

決定問題の場合、クラスは言語のセット(つまり、文字列のセット)です。

関数の問題のクラスとは正確には何ですか?それらは関係、言語のセットですか...?強固な定義とは何ですか?


4
一般的な表記はややずさんです。最初に、FPは、NP検索問題のコンテキスト外のポリタイム関数のクラス(したがって合計)を示すために使用され、再定義されています。第二に、多項式時間で解決可能なすべての検索問題には、多項式時間で解決可能な総延長があるため、その意味で、FPの完全な定義と非完全な定義の間に実際の差はあまりないため、2つは言語の乱用によって混同されます。
エミルイェジャベク3.0

回答:


11

Emil Jerabekのコメントは素晴らしい要約ですが、多かれ少なかれ同じ概念を捉えるより明確な定義を持つ他のクラスがあることを指摘し、これらすべての関係を明確にしたかったのです。

[警告:定義は正しくなったと思うが、以下のいくつかは個人的な好みを反映している-それがどこにあったのかを明確にしようとした。]

決定論的な世界では、関数クラスは単なる関数の集まりです(通常、「関数」という単語の数学的意味、つまりマップΣ Σ )。特定の入力に対して「未定義」の出力を持つ「部分関数」を許可したい場合があります。(同様に、すべてではなくΣ ∗のサブセットで定義される関数。)ΣΣΣ

残念ながら、2つの異なる定義がありますF Pの周りに浮いは、と(彼らはあるけれども、「道徳的」と同等)私の知る限り、彼らは同じではありません。FP

  • F P(定義1)は、多項式時間で計算できる関数のクラスです。F Pを見て、それが人々が F N PT F N Pについて話している文脈にないときはいつでも、これは私が仮定する定義です。FPFPFNP,TFNP

非決定論的な世界では、物事は少しおかしくなります。そこでは、「部分的な複数値関数」を許可すると便利です。このようなことをバイナリ関係、つまりΣ × Σ ∗のサブセットとも呼ぶのは自然でしょう。しかし、複雑さの観点から、これらのことを「非決定的機能」と考えることは哲学的および精神的に有用であることがよくあります。これらの定義の多くは、次のクラスによって明確にされていると思います(これらの定義は、あまり知られていない場合でも完全に標準化されています)。Σ×Σ

  • N P M V:多項式時間で非決定的マシンによって計算可能な「部分的な多値関数」のクラス。これが意味することは、ポリタイムの非決定的マシンがあり、入力 xで、各非決定的ブランチで、出力を受け入れて出力するか、拒否して出力しないことを選択できます。入力の「多値」出力 xが与えられたときに、すべての非決定的分岐上のすべての出力の集合である Xを入力として。このセットは空にすることができるため、「多値関数」としてこれは部分的なものにすぎないことに注意してください。バイナリ関係の観点から考えると、これは関係 { x y yに対応しますNPMVxxx 入力x }の計算の分岐によって出力されます {(x,y):y is output by some branch of the computation on input x}

  • N P M V Tにおける全「機能」: N P M V、すべての入力にされ、X、少なくとも一つの分岐が受け付け(したがって定義により、出力を行います)NPMVtNPMVx

  • N P S V N P M Vの単一値(潜在的に部分的な)関数。ただし、ここには柔軟性がありますが、複数のブランチが受け入れられる場合がありますが、ブランチが受け入れられる場合は、受け入れられるすべてのブランチが同じ出力を行うことが保証される必要があります(実際に単一値になるように)。ただし、ブランチが受け入れられない可能性があるため、関数は「部分関数」のみです(つまり、すべての Σ で定義されていない)。NPSVNPMVΣ

  • N P S V T:中の全機能を単一値 N P S V。これらは実際には、通常の意味での関数 Σ Σ です。その確認するために、あまりにも困難ではない運動である N P S Vと T = F P N PCのoをN P(上記FPためデフ1を使用して)。NPSVtNPSVΣΣNPSVt=FPNPcoNP

我々はおよそ潜在的に複数の値を持つ関数を語るとき、複雑さクラスの封じ込めについて話しても、より多くの本当に便利ではありません:N P M VN P S V無条件という理由だけで、N P S Vは、任意の複数値「の機能が含まれていません「しかし、N P M Vはそうです。代わりに、⊆cで示される「c-containment」について説明します。(潜在的に部分的な多値)関数fは、次の場合に(潜在的に部分的な多値)関数gを改良します:(1)すべての入力xに対してgNPMVNPSVNPSVNPMVcfgxgfを出力し、(2)fの出力は常にgの出力のサブセットです。適切な質問は、すべてのN P M V「関数」にN P S Vの改良があるかどうかです。もしそうなら、私たちは書きN P M V C N P S VをffgNPMVNPSVNPMVcNPSV

  • P F(やや劣る標準)は、ポリタイムで計算可能な(潜在的に部分的な)関数のクラスです。つまり、関数である F D Σ * D Σ *)であり、 P Fポリ時間決定性機械そのような存在する場合、その入力上のx Dマシン出力 F X 、及び入力に X Dマシンは何も出力せない(/拒否を/「いいえ」/しかし、あなたはフレーズそれにしたいと言います)。PFf:DΣDΣPFxDf(x)xD

  • F N Pは(関数のクラスではなく)「関数の問題」のクラスです。F N Pを「リレーショナルクラス」とも呼びますが、実際にそれを説明するために使用する言葉は、後で自分自身を明確にする必要があるため、この定義に特に偏ってはいません。任意のバイナリ関係に R Σ * × Σ *がある関連する「機能の問題。」機能の問題とは何ですか?言語/機能/関係のように明確な数学的な定義がありません。むしろ、有効なソリューションとは何かによって定義されます。FNPFNPRΣ×ΣRf例えば、もしY [ R X Y ]次に、F出力任意のそのようなY、及びさもなければFせる出力しません。F N Pは、関係に関連する機能の問題のクラスは、RようにR P(ペアの言語として考えられる)およびp-バランスです。だから、F N Pは、関数のクラス、また言語のクラスが、ここでは「問題は」大体、それはそれを解決するために何を意味するのかという観点で定義されている「機能の問題、」のクラスではありません。(y)[R(x,y)]fyfFNPRRPFNP

  • T F N Pは、その後の関数問題のクラスである F N Pは -関係によって定義された R、上記のように-そのような Rは、すべてのためにという意味で、合計で Xが存在する yのように R X Y TFNPFNPRRxyR(x,y)

「すべてのF N P(またはT F N P)関数の問題にP F(または、上記の定義によるF P)の解決策がある場合、...」などのことを書く必要がないためにこのコンテキストでは、F Pの定義2を使用します。FNPTFNPPFFPFP

  • F P(定義2)は F N Pの関数問題のクラスであり、ポリタイムソリューションを持ちます。一つは、溶液(=機能)ここで特殊な文字列ピッキングによって合計であると仮定することができ、Y 0は無効であり、 yのいずれかのために、Xを、関数出力を有する Y 0を、さもなければ有効な存在しないであろう場合、Y。(必要であれば、私たちは、関係変更することができます Rをあらゆる付加することで、Yを 1とし、次に取る Y 0は文字列0であることを、関係するこれは何の複雑さを変更しません)。FPFNPy0yxy0yRyy0

ここではこれらの様々な定義が互いにどのように関連するかだ、F N PF P(それはそれはと比較されるのコンテキストにありますので、あなたがとるべきものである定義2、F N Pは)と等価であるN P M V C P FT F N PF P(DEF 2)に相当するN P M のV T C F P(DEF 1)。FNPFPFNPNPMVcPFTFNPFPNPMVtcFP


幅広い回答ありがとうございます。私はそれを消化しようとしていますが、これはこれまで非常に役に立ちました。しかし私は、あなたが意味し、仮定FP FNPFP TFNPを最後の段落では?
オーベロン

1
@Auberon:いいえ、最後の段落はさまざまな推測を翻訳しています。これは、と言っているF N PF PN P M V C P Fなど、FNPFPNPMVcPF
ジョシュアGrochow

@JoshuaGrochow N P P T F N PまたはN P P U P可能または階層崩壊?また、P T F N Pの P U Pまたはその逆も成り立ちます(どちらの場合も意味がないように思われるため、もっともらしいようです)。NPPTFNPNPPUPPUPPTFNP
T ....

3

ジョシュアの広範な答えに加えて、Elaine RuchのAutomata、Computability、Complexityから次の定義を追加します。

クラスFP:バイナリ関係Qであり、F P任意の入力が与えられると、ことを確定的多項式時間アルゴリズムが存在するときに限り、X、いくつか見つけることができるYようにX Y QはQFPxy(x,y)Q

クラスFNP:バイナリ関係Qがであり、F N P決定性多項式時間検証者が任意の入力ペアが与えられると、そこときに限りX Y 、か否かを判断するX Y Q。Equivalentely、Qは、であり、F N P任意の入力が与えられると、こと非決定的多項式時間アルゴリズムが存在するときに限り、X、いくつか見つけることができ、YようにX Y QはQFNP(x,y)(x,y)QQFNPxy(x,y)Q

From these definitions it is clear that FPTFNPFNPFPTFNPFNP. She also briefly talks about problems outside of FNPFNP.

For me, this has been the most satisfying resource that consists out of one single page I've found since a long time.


After I have given these definition some thought, I suspect that the two 'equivalent' definitions of FNPFNP aren't equivalent at all...
Auberon

I think to get equivalence one needs to assume the relation is p-bounded (that is, there is a polynomial p such that if y such that (x,y)Q, then there is such a y with |y|p(|x|)). Also, one has to specify what it means for a "nondeterministic algorithm to find a y" - that is, what does it mean for a nondeterministic algorithm to "make an output"? This is part of why I like the NPMV family of definitions...
Joshua Grochow
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.