タグ付けされた質問 「complexity-theory」

問題の(計算)複雑さに関する質問

3
機能の問題と
関数複雑度クラスの正式な定義を見つけるのは難しいと思います。ウィキペディアからの2つです。 二項関係 P(x,y)P(x,y)P(x,y)与えられた決定論的多項式時間アルゴリズムがある場合に限り、FPxxx、いくつか見つけることができます yyy そのような P(x,y)P(x,y)P(x,y) 保持します。 上記の定義は、FPのすべての関係について、すべての関係について、xxx 少なくとも1つ存在します yyy その長さは長さの多項式です xxx。しかし、それ以上存在することを制限するようには見えませんyyy そのために xxx そのため P(x,y)P(x,y)P(x,y) しばらくの間 yyy より指数関数的に長い xxx。 二項関係 P(x,y)P(x,y)P(x,y)、 どこ yyy せいぜい多項式より長い xxx、FNPであるのは、以下を決定できる決定論的多項式時間アルゴリズムがある場合に限られます。P(x,y)P(x,y)P(x,y) 両方与えられたホールド xxx そして yyy。 この定義は、FNPの関係では、少なくとも1つの関係が存在することは事実である必要はないことを意味しますyyy すべてのための xxx そのため P(x,y)P(x,y)P(x,y)保持します。ただし、P(x,y)P(x,y)P(x,y) 保持し、 yyy せいぜい多項式より長くなければなりません xxx。 文献では、そのFPを読むことができます ⊆⊆\subseteq FNP。私が理解している(または理解していない)限り、これは当てはまりません。ある関係についてはR(x,y)∈R(x,y)∈R(x,y) \in FPが存在します(x,y)(x,y)(x,y) そのため R(x,y)R(x,y)R(x,y) 保持し、 yyy より指数関数的に長い xxx。このため、この関係はFNPに属していないため、FP …

1
すべての州が受け入れるNFAの普遍性問題の複雑さはどのくらいですか?
NFAの普遍性の問題(かどうかの決定)がことはよく知られています。しかし、NFAのすべての州が受け入れていることがわかっている場合はどうなりますか?反例(一般的なNFAの場合とは異なります)は入力のサイズ(状態数)が多項式(線形であっても)であるため、問題はせいぜい -にあるようです。この問題の複雑さは何ですか?L(A)=Σ∗L(A)=Σ∗L(A)=\Sigma^*PSPACEPSPACEPSPACEcococoNPNPNP

2
ランダム性が問題になるのはなぜですか?(つまり、なぜ無作為化を気にするのですか?)
私はP対NPに関するアーロンソンの調査を読んでおり、CS理論では、人々は P対BPPなどの非ランダム化の結果に本当に関心があることを理解するようになりました。私の質問は、ランダム性の問題は何ですか?アルゴリズムが多項式数のランダムビットのみを必要とすることがわかっている場合は、物理学者にビットを取得するよう依頼してください。これは、扱いやすい数のビットしか必要ないので問題ではありません。チューリングマシンテープとあなたは良いです!複雑性理論の目標は、この宇宙で計算できることを理解することです。さて、この宇宙にはランダム性がありますよね?では、なぜ無作為化を気にするのでしょうか?理論的および実用的な答えはどちらも歓迎です。

1
FPSPACEは指数関数的に長い出力を提供できますか?
この質問にはコメントできないので、ここで新しい質問として質問します。 リッキー・デマーは最初の答えへのコメントでそこに述べています "[...] FPSPACEは指数関数的に長い出力を提供できるため[...]" どうすればいいの?FSPACEのアルゴリズムはどのようにして指数関数的に長い出力を提供できますか?これは、FSPACEの定義に出力スペースを含めないことを意味しますか(これまで信じてきたこととは異なります)。

2
P = NPを想定したSUBSET-SUMのポリタイムアルゴリズム
ではP対NP問題に関するWikipediaのページアルゴリズムがあることを多項式時間でケースP = NPで「解く」SUBSET-SUM。(それは証明書を与えるTMを見つけることです)。しかし、それは多項式時間で「はい」を与え、答えが「いいえ」の場合は永久に実行されます。明らかに指数関数的な時間で "no"を与えるように修正できます(最初のアルゴリズムの実行時間が長すぎる場合は、指数アルゴリズムを実行するだけです)。 しかし、P = NPを想定した多項式時間でSUBSET-SUM(またはその他のNP完全問題)を解決する(つまり、実際に解決する)「正直な」アルゴリズムを明示的に説明できますか? 「正直」で「本当に解決する」とは、アルゴリズムが多項式時間アルゴリズムの古典的な定義を満たすことを意味します。つまり、ここでは定数が存在し、任意の入力アルゴリズムで以下で終了するようにします。、 SUBSET-SUMの場合は「yes」、それ以外の場合は「no」を出力します。ウィキペディアのアルゴリズムは最初の条件を満たさないため、問題を「実際に解決」することはできません。C1、C2C1,C2C_1, C_2バツxxC1⋅ | バツ|C2C1⋅|x|C2C_1 \cdot |x|^{C_2}X ∈x∈x \in

1
取る一連の問題
各問題の最も効率的なアルゴリズムが取る決定問題の無限シーケンスを知っていますか? Θ(nk)Θ(nk)\Theta(n^k) 時間、場所 kkk 限りなく増加しますか? たとえば、kクリークを見つけるには、 Θ(nk)Θ(nk)\Theta(n^k)、このシーケンスは{1-clique、2-clique、3-clique、...}のようになります。しかし、おそらくk-cliqueにはより効率的なアルゴリズムがあるため、この答えは正しくありません。 編集: 時間階層定理含み(「Pは、(DTIMEに崩壊しませんnknkn^k)固定の場合 kkk")、そのようなシーケンスが存在する必要があります。 コメントでいくつかの議論の後、一般的なNP問題は良い候補ではありません。それだけかかる場合O(n)O(n)O(n) 証明書をチェックする時間(または O(nc)O(nc)O(n^c)、 どこ ccc から独立した定数です kkk)、それは P≠NPP≠NPP\neq NP

1
結果
我々が知っている等価であり、多項式階層に崩壊番目のレベル。PP=RP,coPP=coRP,PP=coPP=coRP=RP=ZPP=BPP⊆P/polyPP=RP,coPP=coRP,PP=coPP=coRP=RP=ZPP=BPP⊆P/poly\mathsf{PP=RP},\mathsf{coPP=coRP},\mathsf{PP=coPP=coRP=RP=ZPP=BPP\subseteq P/poly}222 他の自明でない崩壊と結果は何ですか?

2
私たちはより良いことができますか
この質問に対する答えは「いいえ」であると、私は(愚かにも判明しました)確信しています。なぜ私は尋ねるのですか? それは、EPFLの並列プログラミングコースのAleksandar Prokopec博士が、さまざまな特性を主張するデータ構造を導入しているためです。これらの特性は保持している場合、そうです、私により良いでバランスの取れたバイナリツリーを構築することが可能でなければならないこと時間。O ( nログn )O(んログ⁡ん)O(n\log n) 私はこれを信じていないので、私の考えのどこに欠陥があるのだろうと思います。 データ構造は、conc-treeリストです。標準形式では、通常のバイナリツリーのように見えconcat、ノードの左右のサブツリーの高さが2以上異なることがないことを保証する操作が付属しています。予想通りconcat、複雑さはです。O (ログn )O(ログ⁡ん)O(\log n) しかし、リストと呼ばれるコンクツリーリストのビルダーバリアントがありAppendます。このバリアントは、複数のサブツリーで一時的な高さの違いを可能にします。このバリアントでは、償却済み時間の追加が要求されます。O (1 )O(1)O(1) そのため、要素を追加すると複雑さが必要になるようです。んんnO (n )O(ん)O(n) ただし、このバリアントの特徴は、が2の累乗であるときは常に、完全にバランスのとれた二分木(これまでに挿入されたすべての要素を含む)になることです。したがって、一時的な不均衡は許容されますが、ツリーは2挿入のすべてのパワーで均衡になります。んんn このバリアントでは、ノードと呼ばれる新しいクラスのノードAppendが導入され、サブツリーの高さが1つ以上異なることが許可されているノードです。ただし、挿入ごとに、このような一時ノードはすべて削除されます。2k2k2^k Wikipediaのページのページは、(基本的なデータ構造の記述と見かなり簡潔なアルゴリズムを説明しappend、特定のメソッドを)。 したがって、が2の累乗の場合、要素を挿入するためのコストはあり、バランスのとれたバイナリツリーを構築しました。またはそうです。んんnO (n )O(ん)O(n) で別の質問私は、特定の値のためのアルゴリズムのためのステップ数を述べることができる場合、私は効果的に」尋ねのために例えば、、整数である、私は複雑さを述べるできるようにするには、この十分ですすべての値?」んんnn =2kん=2kn = 2^kkkkんんn Yuval Filmusの答えから、答えは「いいえ」であることがわかりますが、「多くの場合、はで単調であると予想されます。その場合、控除は成立します。」TTTんんn したがって、この場合、要素の挿入に複雑さあり、要素ごとに平衡バイナリツリーがある場合、このコンクツリーバリアントアプローチで平衡バイナリツリーを構築するコストは。んんnO (n)O(ん)O(n)2k2k2^kO (n )O(ん)O(n) ここで何が問題になっていますか?正直に言うと、このバリアントに対して要求された償却済み追加時間がわかりません。多くの場合、挿入にはコストがかかりますが、一時ノードで何が起こっているかを見ると、全体的な挿入コストは償却されたように見え。O (1 )O(1)O(1)O (1 )O(1)O(1)AppendO (ログん)O(ログ⁡ん)O(\log n) これが当てはまる場合、バランスの取れたバイナリツリーを構築すると、驚くほどのコストがかかります。O (nログn )O(んログ⁡ん)O(n\log n) 長い質問で申し訳ありませんが、問題のアルゴリズムについて詳しく説明していません。代わりに、ウィキペディアを見回してください。

1
部分ソートは配列のルックアップコストに役立ちますか?
並べ替えられていないリストで何かを調べることは、時間の複雑さ伴うタスクです。ただし、リストがソートされている場合、時間の複雑さはです。つまり、配列を並べ替える価値がある場合があります。ただし、ソートアルゴリズムの時間の複雑さはであるため、これはトレードオフです。O (n )O(n)O(n)O (ログ(n ))O(log⁡(n))O(\log(n))O (n ログ(n ))O(nlog⁡(n))O(n\log(n)) 私の知る限り、配列を 時間未満でソートすることはできません。しかし、それよりも短い時間で部分的に配列をソートできるアルゴリズムがあるかどうか疑問に思っていますか?私はあなたが時間でそのような部分的にソートされた配列の値を検索できないと確信していますが、よりもうまくできますか?O (n ログ(n ))O(nlog⁡(n))O(n\log(n))O (ログ(n ))O(log⁡(n))O(\log(n))O (n )O(n)O(n) つまり、よりも高速なアルゴリズムでソートされていない配列を処理して、ルックアップアルゴリズムがよりも高速に検索できるようにすることは可能ですが、ほど高速ではありません?O (n ログ(n ))O(nlog⁡(n))O(n\log(n))O (n )O(n)O(n)O(log(n))O(log⁡(n))O(\log(n))

1
NP Complete鍵交換アルゴリズムの例
インターネット上には、さまざまな非対称暗号システムのNPの硬度について議論している質問がいくつかあります(このサイトなど、たとえば、既知のNPハード問題に基づく暗号化アルゴリズムがなかったのはなぜですか?)。NPハードキー共有システムはどの程度確立されていますか?つまり、NPが難しいことがわかっている問題に基づいた、共有キーを確立するためのシステム(対称暗号化で使用できるシステム)です。 https://en.wikipedia.org/wiki/Anshel-Anshel-Goldfeld_key_exchangeについて読んで、または、これらは一見すると非常に難しい制約充足または二次最適化問題のように見えます。これが基づいている対応する問題は同時共役問題です。GLn(F2)GLn(F2)GL_n(F_2)GLn(R)GLn(R)GL_n(\mathbb{R}) 最悪の場合、単にNPが難しい問題の間には重要な違いがあることを認識しています。ただし、ランダムなインスタンスのセットが与えられた場合、「平均的なケースのNP」である問題とは対照的に、ほとんどのランダムなインスタンスでは簡単です。 、それらの半分を解決することはまだ難しいです。どちらかの硬度の概念に依存するキー共有システムについて聞いてみたいと思います。

2
なぜ、一次論理(算術なし)のVALIDITYは再帰的にしか列挙できず、再帰できないのですか?
Papadimitriouの "Computational Complexity"は、一次論理(算術なし)の式が有効かどうかを決定する問題であるVALIDITYが再帰的に列挙可能であると述べています。これは完全性と健全性の定理に由来します。これはVALIDITYとTHEOREMHOODに相当します。後者は、以前に再帰的に列挙可能であることが示されている公式の証明を見つける問題です。 ただし、式が与えられているため、VALIDITYが再帰的でない理由もわかりません。 φφ\phi、THEOREMHOODの2つのチューリングマシンを実行できます。 φφ\phi と他の ¬φ¬φ\neg \phi、同時に。それらの少なくとも1つが有効であるため、常に次のことを決定できます。φφ\phi有効または無効です。何が欠けていますか? 注:この質問は算術のない 1次の論理を参照しているため、ゲーデルの不完全性定理はここでは関係ありません。

3
計算の複雑さの自己学習者へのアドバイス
私は数学の学部生です(まもなく3年目に入ります)。私は自分に計算の複雑さを教えようとしています。悲しいことに、私の大学ではこのトピックに関するコースは提供されておらず、専門家もいません(実際、私の大学には理論的なCSの専門家はまったくいないようです)。だから、私は独学以外でトピックを学ぶことはできません。私はすでに計算の複雑さの最初のいくつかの章を通過しました:現代のアプローチ [しかし、どの演習も解決しませんでした(最初の章の2つまたは3つがTMと停止問題を明らかにすることを除く)] 私はテキストの演習でいくつかの問題に直面しています: 1つは、計算の複雑さに必要な考え方は、私がよく知っている数学の考え方とはかなり違うと感じていることです(アルゴリズム的な考え方など、問題を他の問題に縮小してTMを作成する方法に重点が置かれています)別のTMなどをシミュレートする)これは私が難しいと思うものです。 アルゴリズムや削減などについて、このレベルの成熟度を開発するのに役立つ方法はありますか? 「1」の難しさの理由の1つは、どの程度厳格にすべきかわからないことです。たとえば、縮小またはシミュレーションを実行しているときに、何かが明確で実行可能であることが直感的にわかる可能性がありますが、詳細を実際に実行するには非常に面倒なので、私はそうではないと感じますよく理解してください。ポイントは、厳密さと直感的な考え方の間には妥協が必要だということです。しかし、私にはガイドもインストラクターもいないので、この行がどこにあるべきかわかりません。 何か明確なことがあれば、いつすべての詳細を実行する必要がありますか?また、直感にいつ満足すべきですか?計算の複雑さには、私が知っている数学に通常存在する詳細よりもはるかに多くの詳細があるように思われます。 より複雑な演習に取り組む前に、基本的な概念や構成などを使って自分でトレーニングできるように、計算の複雑さで提供されるものよりもはるかに簡単な演習や問題の原因はあるのでしょうか。また、多くの定理は本文に証明のスケッチしか持っていないので、主定理の(かなり詳細な)証明の出典は素晴らしいでしょう。 私の背景として、プログラミングの基本を学びました(私はpython、CおよびC ++でしばらくトレーニングしました)あまり多くはありませんが、数学、特に数学的ロジック(完全性と不完全性の定理まで)、高度なセットにはかなり精通しています理論(強制)、代数(線形、抽象、普遍代数、およびいくつかのカテゴリー理論)、およびトポロジーと実数分析の基礎。私は離散数学(組み合わせ論+グラフ理論)のコースも受講しました。 私の質問がトピックから外れている場合は申し訳ありませんが、これらの質問を提案するのにこれ以上の場所はありません。


2
P⊆NPの1文の証明
最近、私はドキュメント[1]を読んでいます。このドキュメントでは、クック教授が簡単な証明を提供しています。P⊆NPP⊆NP\mathbf{P} \subseteq \mathbf{NP} であることを示すのは簡単ですが超える各言語では、場合、多項式時間チェック関係定義できるからです。 by for all。P⊆NPP⊆NP\mathbf{P} \subseteq \mathbf{NP}LLLΣΣ\SigmaL∈PL∈PL \in \mathbf{P}R⊆Σ∗∪Σ∗R⊆Σ∗∪Σ∗R \subseteq \Sigma^* \cup \Sigma^*R(w,y)⟺w∈LR(w,y)⟺w∈LR(w, y) \Longleftrightarrow w \in Lw,y∈Σ∗w,y∈Σ∗w, y \in \Sigma^* [1]のように、との定義を知っていますが、それでもこの証明を理解できません。誰かが証拠を私に説明できますか?一文でもいいです。PP\mathbf{P}NPNP\mathbf{NP} ちなみに、はすべきだと思います。私は正しいですか?Σ∗∪Σ∗Σ∗∪Σ∗\Sigma^* \cup \Sigma^*Σ∗×Σ∗Σ∗×Σ∗\Sigma^* \times \Sigma^* 参照 [1] S.クック、P対NP問題、[オンライン] http://www.claymath.org/sites/default/files/pvsnp.pdf。


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