コンピュータサイエンス

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

3
相対化が障壁なのはなぜですか?
Baker-Gill-Solovayの証明を説明するときに、を持つことができる神託と、P ≠ N Pを持つことができる神託が友人に存在するという理由で、なぜかという疑問が浮上しました。このような手法は、P ≠ N Pの問題を証明するには不適切であり、満足のいく答えを出すことができませんでした。PNPP=NP\mathsf{P} = \mathsf{NP}PNPP≠NP\mathsf{P} \neq \mathsf{NP}PNPP≠NP\mathsf{P} \neq \mathsf{NP} より具体的に言うと、を証明するアプローチがあり、上記のような状況を発生させるためにオラクルを構築できる場合、なぜメソッドが無効になるのですか?PNPP≠NP\mathsf{P} \neq \mathsf{NP} このトピックに関する説明/考えはありますか?

3
サブクエリは、SQLクエリに表現力を追加しますか?
SQLにはサブクエリが必要ですか? 関係データベース用の構造化照会言語の十分に一般化された実装を想像してください。正規のSQL SELECTステートメントの構造は、これが意味をなすために実際に非常に重要なので、リレーショナル代数に直接アピールしませんが、式の形式に適切な制限を加えることで、これらの用語でこれを組み立てることができます。 SQLのSELECTクエリは、一般的に投影(から成るSELECT部分)のいくつかの数JOINの操作(JOINパート)、いくつかの数SELECTION の操作(SQLにおいて、WHERE句)、セット単位(操作UNION、EXCEPT、INTERSECT、など)、他の続きますSQL SELECTクエリ。 結合されるテーブルは、式の計算結果にすることができます。言い換えると、次のようなステートメントを作成できます。 SELECT t1.name, t2.address FROM table1 AS t1 JOIN (SELECT id, address FROM table2 AS t3 WHERE t3.id = t1.id) AS t2 WHERE t1.salary > 50,000; SQLクエリの一部として計算テーブルをサブクエリとして使用することに言及します。上記の例では、2番目の(インデントされた)SELECTサブクエリです。 すべてのSQLクエリは、サブクエリを使用しないように記述できますか?上記の例は次のことができます。 SELECT t1.name, t2.address FROM table1 AS t1 JOIN table2 AS t2 ON t1.id = t2.id WHERE …

4
ソーシャルネットワークでの可能性のある接続を判断する方法
私は、「提案された友人」アルゴリズムに取り組むアプローチを決定することに興味があります。 Facebookには、知り合いかもしれないと思う個人を推薦する機能があります。これらのユーザーは、通常(ユーザーが友人を特に推奨するエッジケースを除く)、自分と非常によく似たネットワークを持っています。つまり、共通の友人の数が多い。Twitterは「Who To Follow」メカニズムについても同様の道をたどっていると思います。 Facebookの従業員であるStephen Doyle(Igy)は、外見などの友人よりも評価することがEdgeRankの公式を使用している関連ニュースフィードは同様の投稿であることを提案しました。別のユーザーがGoogleランクシステムを提案しました。 Facebookは、ニュースフィードの最適化を述べてい。Σ Uewede∑uewede\sum u_{e}w_{e}d_{e} あなたはeueu_{e} =閲覧ユーザーとエッジ作成者間のアフィニティスコア =このエッジの重み(作成、コメント、いいね、タグなど) =エッジが作成された時間に基づく時間減衰係数 wewew_{e} deded_{e} これらのアイテムを合計すると、オブジェクトのランクが得られるはずです。これは、Igyが示唆したように、同様の形式の何かが提案された友人に使用されることを意味します。 だから私はこれがすべてのタイプの接続がランクシステムを介して一般的に行われる方法であると推測していますか?

2
ユニオン型を持つラムダ項の特性評価
多くの教科書は、ラムダ計算の交差タイプをカバーしています。交差の入力規則は、次のように定義できます(サブタイプ付きの単純に入力されたラムダ計算の上)。 Γ⊢M:T1Γ⊢M:T2Γ⊢M:T1∧T2(∧I)Γ⊢M:⊤(⊤I)Γ⊢M:T1Γ⊢M:T2Γ⊢M:T1∧T2(∧I)Γ⊢M:⊤(⊤I) \dfrac{\Gamma \vdash M : T_1 \quad \Gamma \vdash M : T_2} {\Gamma \vdash M : T_1 \wedge T_2} (\wedge I) \qquad\qquad \dfrac{} {\Gamma \vdash M : \top} (\top I) 交差タイプには、正規化に関して興味深い特性があります。 ラムダ項は、強く正規化する場合に限り、ルールを使用せずに入力できます。⊤I⊤I\top I ラムダ用語は含まないタイプ認めそれが正規形を有しているときに限ります。⊤⊤\top 交差点を追加する代わりに、ユニオンを追加するとどうなりますか? Γ⊢M:T1Γ⊢M:T1∨T2(∨I1)Γ⊢M:T2Γ⊢M:T1∨T2(∨I2)Γ⊢M:T1Γ⊢M:T1∨T2(∨I1)Γ⊢M:T2Γ⊢M:T1∨T2(∨I2) \dfrac{\Gamma \vdash M : T_1} {\Gamma \vdash M : T_1 \vee T_2} (\vee …

2
欲張りアルゴリズムが正しいことを証明する方法
私は正しいと思われる貪欲なアルゴリズムを持っていますが、よくわかりません。正しいかどうかを確認するにはどうすればよいですか?貪欲なアルゴリズムが正しいことを証明するために使用するテクニックは何ですか?一般的なパターンやテクニックはありますか? これが参考質問になることを願っています初心者に向けられるしています。したがって、通常よりも広い範囲です。少なくとも1つの例で説明されているが、多くの状況をカバーする、一般的で教訓的に提示された答えを与えるように注意してください。ありがとう!

4
シンプレックスからの均一なサンプリング
私は、N個の乱数の配列を生成するアルゴリズムを探しています。N個の数字の合計は1で、すべての数字は0と1の範囲内にあります。たとえば、N = 3、ランダムポイント(x、y、 z)三角形内にある必要があります: x + y + z = 1 0 < x < 1 0 < y < 1 0 < z < 1 理想的には、エリア内の各ポイントに等しい確率が必要です。難しすぎる場合は、要件を削除できます。ありがとう。

2
特定のラダーが有効かどうかを効率的に判断する方法は?
私の地元のスカッシュクラブには、次のように機能するはしごがあります。 シーズンの初めに、クラブの各メンバーの名前を別々の行に並べた表を作成します。 次に、各名前の横に、勝ったゲームの数とプレイしたゲームの数を記入します(プレイヤーの勝ち/ゲームの形式で)。 したがって、シーズンの初めには、テーブルは次のようになります。 Carol 0/0 Billy 0/0 Alice 0/0 Daffyd 0/0 任意の2人のプレイヤーが試合をすることができ、1人のプレイヤーが勝ちます。テーブルの一番下に最も近いプレーヤーが勝った場合、プレーヤーの位置が切り替わります。その後、ステップ2を繰り返し、各プレイヤーの隣の勝ちとゲームの数を更新します。たとえば、アリスがビリーを破った場合、 Carol 0/0 Alice 1/1 Billy 0/1 Daffyd 0/0 これらの試合はシーズンを通して続き、最終的にはおおよその強さの順にリストされます。 残念ながら、更新はかなり偶然に行われるため、間違いが発生します。以下は無効なテーブルの例です。つまり、いくつかの開始順序(シーズンの初めに使用した順序を忘れてしまった)と一致と結果のシーケンスに対して上記の手順を正しく実行しても作成できなかったテーブルです。 Alice 0/1 Billy 1/1 Carol 0/1 Daffyd 0/0 Alice 2/3 Billy 0/1 Carol 0/0 Daffyd 0/0 Alice 1/1 Billy 0/2 Carol 2/2 Daffyd 0/1 テーブルが与えられた場合、それが有効かどうかをどのように効率的に判断できますか?以下に注意することから始めることができます。 元の開始順序を忘れているため、名前の順序は重要ではありません。 勝利の合計数は、プレイしたゲームの数の合計の半分でなければなりません。(これは、上記の最初の例が無効であることを示しています。) …

1
多くの可分性条件を持つサブセット和問題
してみましょう自然数の集合とします。を分割可能半順序、つまり下で検討します。させてS S 1 ≤ sの2SSSSSSs1≤s2⟺s1∣s2s1≤s2⟺s1∣s2s_1 \leq s_2 \iff s_1 \mid s_2 α (S)= max { | V| ∣V⊆ S、Vα(S)=最大{|V|∣V⊆S、V\qquad \displaystyle \alpha(S) = \max \{|V| \mid V\subseteq S, Vはアンチチェーン}}\}です。 数値のマルチセットがSSSにあるサブセット和問題を考えると、\ alpha(S)に関連する問題の複雑さについて何が言えα (S)α(S)\alpha(S)ますか?α (S)= 1α(S)=1\alpha(S)=1であるかどうかを確認するのは簡単で、問題は簡単です。α (S)= 1α(S)=1\alpha(S)=1††\dagger場合、より難しいナップザック問題でも簡単です。 \ dagger M. HartmannおよびT. Olmsteadによる††\dagger 逐次ナップザック問題の解決(1993)

2
バッチコンパイラとは
私はコンパイラのコースから次の引用を持っています(グラフの色付けのコンテキストで): 遅いため、グラフの色付けはバッチコンパイラで使用される傾向がありますが、線形スキャンはJITコンパイラで使用される傾向があります。 オンラインで明確な定義を見つけることができませんでした。それでは、コンパイラをバッチコンパイラにする理由は何ですか?
28 compilers 

1
時系列予測に使用できる機械学習アルゴリズムはどれですか?
現在、時系列予測(特にForex)をいじっています。外国為替予報に適用されるエコー状態ネットワークに関する科学論文をいくつか見ました。この目的のために他の優れた機械学習アルゴリズムはありますか? 時系列から「収益性のある」パターンを抽出することも興味深いでしょう。

2
Cのvoid型がempty / bottom型と類似していないのはなぜですか?
ウィキペディアと私が見つけた他のソースはvoid、空のタイプではなくユニットタイプとしてリストCのタイプを見つけました。void空の/下の型の定義によりよく適合するように思えるので、この混乱を見つけます。 void私が知る限り、値は存在しません。 戻り値の型がvoidの関数は、関数が何も返さないため、何らかの副作用しか実行できないことを指定します。 タイプのポインターvoid*は、他のすべてのポインタータイプのサブタイプです。また、void*C との間の変換は暗黙的です。 最後の点voidに、空の型であることの引数としてのメリットがあるかどうかはわかりvoid*ませんvoid。 一方、voidそれ自体は他のすべてのタイプのサブタイプではありません。これは、タイプがボトムタイプであるための要件であると言えます。
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

6
2つの言語間でソースコードを「翻訳」できるプログラムはありますか?
2つの言語間でソースコードを「翻訳」できるプログラムはありますか(翻訳者が必要なライブラリにアクセスできると仮定します)? ある場合、それらはどのように機能しますか(使用される技術、必要な知識など)?それらはどのように実行可能に構築されますか? そうでない場合、開発を妨げる制限は何ですか?これはAIの完全な問題ですか(自然言語の翻訳は1つとしてリストされています)? EDIT 変換は、言語に同じ表現力があり、同じ種類の問題を解決でき、変換されるコードが宛先言語で表現できる場合にのみ予想されます。(たとえば、シェルスクリプトからMATLABへの変換は想定されていません)。


2
「真の並行性」とはどういう意味ですか?
参照なしで「真の同時実行セマンティクス」や「真の同時実行等価性」などのフレーズをよく耳にします。これらの用語は何を意味し、なぜ重要なのですか? 同時実行の真の等価性の例とその必要性は何ですか?例えば、どの場合に、それらはより多くの標準的な同等物(二刺激、微量同等物など)よりも適用可能ですか?

3
選択ソートがバブルソートよりも速いのはなぜですか?
ウィキペディアには、「...選択ソートはほとんど常にバブルソートおよびGNOMEソートよりも優れている」と書かれています。どちらもバブルソートよりも選択ソートが速いと考えられる理由を誰にでも説明してください: 最悪の場合の時間の複雑さ:O( n2)O(n2)\mathcal O(n^2) 比較の数: O( n2)O(n2)\mathcal O(n^2) 最適な時間の複雑さ: バブルソート:O(n )O(n)\mathcal O(n) 選択ソート:O( n2)O(n2)\mathcal O(n^2) 平均ケース時間の複雑さ: バブルソート:O( n2)O(n2)\mathcal O(n^2) 選択ソート:O( n2)O(n2)\mathcal O(n^2)

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