コンピュータサイエンス

コンピュータサイエンスの学生、研究者、実務家のためのQ&A

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
PEGをBNFに変換
解析式文法(PEG)は明確であり、表面的にはBNFに類似した構文を持っていますが、3つの重要な違いがあります。 順序付き選択演算子e1 / e2 / e3。 と述語&。 not演算子!。 少し質問があります: PEGによって認識される言語はすべて文脈自由ですか? (1)の答えが「いいえ」の場合、明確な文法のみを生成することが保証された表現力のある文法形式はありますか?特に、ドロップ&し!てコンテキストフリーの文法のみを生成するでしょうか? すべてのPEGがコンテキストフリーである場合、アルゴリズムを介して同等の BNF に変換できますか? コンテキストは、Chomsky–Schützenberger列挙定理を使用して、PEGライブラリの生成関数を計算したいということです。これには、BNFに類似した標準形式での文法の仕様が必要と思われます。

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

2
配列の要素が同じ回数繰り返されるかどうかを判断するアルゴリズムの正確さの証明
タイトルが長かったことをお詫びしますが、内容についての情報が欠けているので、どうやって別の書き方をするのか本当にわかりませんでした。 最近、並列アルゴリズムに関する大学の試験を受けました。1つの演習で、配列の要素(これを呼び出すとしましょうA)が同じ回数繰り返されているかどうかを判断するアルゴリズムを作成するように求められました。 例えば: 1)A = 1 8 8 1 8 1 1 8:答えは「はい」です。すべての数値が2回繰り返されます。 2)A = 7 8 8 5 5 4 7 8:答えはノーです。 並列計算の特定のモデルであるPRAMのアルゴリズムを作成する必要がありました。このモデルでは、読み取り/書き込みの競合やその他の問題を回避するためにいくつかの手法を使用する必要がありましたが、これは関係ありません。私が最終的に得たのは、新しい配列でしたB。それを次のように定義できます。Given the array A, B[i] contains the number of repetitions of the element A[i] within A. 例えば: 1) A = 1 8 8 1 8 1 1 …

1
ラムダ計算におけるニュートラル/ノーマル形式の直感的な説明
副次表現としてベータredexを含まない通常の用語と他の用語を区別することは可能です data WithBound a = Var | Other a data Normal a = Neutral (Neutral a) | Abstract (Normal (WithBound a)) data Neutral a = Variable a | Apply (Neutral a) (Normal a) このプロパティが保持される理由について、直感的な説明はありますか?十分に長く見た後、どうやら完全に自明であるかもしれませんが、現時点ではすぐにはわかりません。

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

1
署名ファイルと反転インデックスの最新の比較は何ですか?
検索インデックスに関する最新の論文には、転置インデックス(投稿リスト)がシグネチャファイル(ブルームフィルター)よりも明らかに優れているという記述が含まれていることがよくあります。以下は、2016年に発表された論文の例です。 この[シグネチャファイル]手法は比較的低い計算オーバーヘッドを提供しますが、Zobelらによる研究。[1998]は、インバーテッドファイルが署名ファイルを大幅に上回っていることを示しています。 転置インデックスは、最も一般化可能でパフォーマンスの高い構造としてベンチマークされています(Zobel et al。、1998) すべての論文は、Zobel et al。、反転ファイルとテキストインデックスの署名ファイルを引用しているようです。 ただし、Zobelらを読んでいる場合は、正しく、彼らがする議論は根本的なものではありません(例えば、漸近的限界や情報理論的限界)。むしろ、X、Y、Zの手法で実装された署名ファイルと、A、B、Cの手法で実装された逆インデックス、および現在の現在のテクノロジ(非常に高いシーク/アクセスオーバーヘッドのディスク)と比較して、引数は)、逆インデックスはシークが少なくて済み、高速であるため優れています。 SSD、NVMe、またはRAMでこれらの技術を比較するより最近の比較はありますか、または1998年以降に発明された「新しい」技術を検討するより最近の比較はありますか?

2
なぜ教会でエンコードされたタイプでは帰納的証明を表現するのに十分ではないのですか?
帰納的型のない構造の計算は、帰納法によって証明を表現するのに十分強力ではないという主張を聞いたことがあります。あれは正しいですか?もしそうなら、なぜそれを教会エンコーディングは十分ではないのですか?

1
連続した出力からPRNGの説明を復元する
疑似乱数ジェネレータの出力を考えて、タイプ(たとえば、線形フィードバックシフトレジスタ)、乗算付きキャリー、線形合同ジェネレータなど)をどのように決定し、関数とシードを回復できますか? 与えられた数の配列は確かにPRNGによって生成されます(暗号的に安全ではありません)。これは事前にわかっています。出力はクリーンで、PRNGは連続した数値を返すブラックボックスです(変更なし、スキップされた値なし)。次に、タスクは値から関数とシードを見つけることです。 単純なアイデアは、一致が見つかるまですべてのスキームを試すことですが、よりアルゴリズム的なアプローチに興味があります。

3
Baillie–PSWテストの詳細
MathematicaがPrimeQ関数(素数性をテストする)にBaillie–PSWテストを使用していることは明らかであり、私がMathematicaのドキュメントで読んだように、トライアル除算から始まり、ベース2と3のMiller–Rabin、そしてルーカスの疑似プライムテストです。私の質問は: ベース2と3を削除し、ランダムベースのみを使用できますか? また、ウィキペディア以外に、この素​​数性テストについて良い参考文献を提案できる人はいますか?

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

4
正規表現と「後方参照」を使用した「括弧のキャプチャ」
正規表現(RE)は有限オートマトン(FA)で実装されています。REの一部の言語(JavaScriptなど)には、「後方参照」を使用した「括弧のキャプチャ」などの機能があります。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#special-capturing-parentheses (x)次の例に示すように、「x」に一致し、一致を記憶します。括弧はキャプチャ括弧と呼ばれます。パターン/(foo)(bar)\ 1 \ 2 /の「(foo)」と「(bar)」は、文字列「foo bar foo bar」の最初の2つの単語と一致し、覚えています。パターンの\ 1と\ 2は、文字列の最後の2つの単語と一致します。 このパターン/(foo) (bar) \1 \2/が実際に、私たちが理論的な形式言語で持っているREの定義に従ったREであるのか、それともより強力なものであるのかを知りたいのです。そうであれば、この種の機能がFAでも実装されているのか、それとも別の方法で実装されているのか(特に、実装方法)を知りたいと思います。

2
エイリアシングの問題は、仮想的にインデックス化された物理タグ付きキャッシュに現れますか?
基本的に、そして簡単な方法として、TLBからの物理アドレスでキャッシュにアクセスできます。 ただし、別の方法として、仮想アドレスを使用してキャッシュにアクセスできます。ただし、この場合、コンテキストスイッチ間でキャッシュが完全にフラッシュされない場合(他のプロセスのデータがキャッシュに存在する可能性があります)、エイリアスの問題があります。同じメモリを別の仮想アドレスから送信できます。 しかし、私の教科書では、これらの問題を含めて、多くのものが仮想的に索引付けされた物理的なタグ付けによって解決できます。これでもエイリアスの問題が発生する可能性があると思います。 私が間違っている?

1
クリークの定義の理解に問題がある
私の定義は言う クリークは、頂点のすべてのペアを接続するエッジを持つグラフです しかし、私が理解しているように、エッジは2つの頂点のみを接続します。同様。A − BA−BA-B 3つの頂点を接続する場合は、少なくとも2つのエッジが必要です。たとえば、です。A − B − CA−B−CA-B-C エッジが頂点のすべてのペアを接続する方法がわかりません。

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

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