コンピュータサイエンス

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

2
観測から確率分布関数を構築する
N個のプレーヤーとM個のオブジェクトがあり、各オブジェクトには値があります。各プレイヤーはオブジェクトを選択する際の戦略を持っています。プレイヤーは各ラウンドでオブジェクトを選択し、多くのプレイヤーは同じオブジェクトを選択できます。ただし、各オブジェクトの値は、それを選択したすべてのプレーヤー間で均等に分割されます。ゲームごとに9000ラウンド(選択肢)があります。私たちの目標は、ゲームの最後に蓄積する価値を最大化することです。 質問:決定が確率変数であると仮定して、各プレイの確率分布関数を作成するにはどうすればよいですか? 現在のアプローチ:私の現在のアプローチは、プレーヤーが特定のオブジェクトを選択する頻度をカウントし、ラウンドの総数で割ることです。これにより、プレーヤーがその特定のオブジェクトを選択する可能性が高くなります。 問題:各プレーヤーが積極的にプレイし、可能な限り予測不可能(ノイズ)にしようとすると、私の現在のアプローチでは、確率分布関数が正確ではありません(9000ラウンドでは十分なデータではないようです)。これらの分布関数を構築するより良い方法はありますか? 注:私は(ベイズモデルおよびHMM)が頻度カウントよりも優れていることをどこかで読んだことがありますが、それをこの状況にどのように適応させるかはわかりません。

2
モノイドは最適化に役立ちますか?
多くの一般的な操作はモノイドです。Haskellはこの観察を利用して、多くの高階関数をより一般的なものにしています(Foldable1つの例です)。 モノイドを使用してパフォーマンスを改善できる1つの明白な方法があります。プログラマーは操作の結合性をアサートしているため、操作を並列化できます。 モノイドを扱っていることを知って、コンパイラーがコードを最適化できる他の方法があるかどうか知りたいです。


3
継承、およびJavaのような言語でのメンバー/属性およびメソッドへの動的アクセス
JavaのようなOOプログラミング言語での継承について質問があります。メソッドとその呼び出しをコンパイルする方法を説明したとき、それは私のコンパイラクラスで思い付きました。コンパイルするソース言語の例としてJavaを使用していました。 次に、このJavaプログラムについて考えてみましょう。 class A { public int x = 0; void f () { System.out.println ( "A:f" ); } } class B extends A { public int x = 1; void f () { System.out.println ( "B:f" ); } } public class Main { public static void main ( String …

2
DFAのこの交差は正しいですか?
上で定義されたすべての文字列の言語に対して、確定的有限オートマトン(DFA)を構築しています{ 0 、1 }{0、1}\{0,1\} 長さが偶数で数が 111sは奇数です。各DFAを個別に作成し、次に結合しました。 DFAを組み合わせるための所定の手順は正しいですか? 編集:元々は労働組合を書いた。実際に交差点を取ります。 長さと数に制限がある場合、DFAの作成に関する資料を誰かが提案しますか000sまたは 111s? Merbsのリンクによると、私はこのFAを開発しました。 このFAは、長さが均一の言語を受け入れません。

1
特定のプロパティを使用したグラフ生成のアルゴリズム
いくつかの一般的なプロパティ(たとえば、クラスタリング係数、平均最短経路長、次数分布など)を満たすグラフを生成するために提案された多数のアルゴリズムが存在する場合があります。 私の質問は特定のケースに関するものです。異なるクラスタリング係数と平均最短パス長を使用して、いくつかの無向の通常のグラフ(つまり、これらのグラフのすべてのノードが同じ数の隣接ノードを持っている)を生成したいと思います。より一般的には、次数の分布を修正することで、異なるクラスタリング係数と平均最短経路長を持つグラフを生成したいと思います。 これを行うためのよく知られたアルゴリズムは何ですか(または実際に何かありますか?)、同じ目的で推奨されるソフトウェアは何ですか?

2
言語の決定可能性
L1L1L_1 いくつかのアルファベットに対して再帰的に列挙可能な言語です ΣΣ\Sigma。アルゴリズムは、その単語をとして効率的に列挙し。は上の別の言語で、 として以下のアサーションを検討してください。w1,w2,...w1,w2,...w_1, w_2, ... L2L2L_2Σ∪{#}Σ∪{#}\Sigma \cup \{\#\}{wi#wj:wi,wj∈L1,i&lt;j}{wi#wj:wi,wj∈L1,i&lt;j}\{w_i\#w_j : w_i, w_j \in L_1, i < j\} L1L1L_1が再帰的であることは、が再帰的であることを意味しL2L2L_2 L2L2L_2が再帰的であることは、が再帰的であることを意味しますL1L1L_1 どのステートメントが真実ですか? 私は両方の声明が真実であると推論した。 ステートメント1はtrueです。は再帰的であり、辞書式に文字列を列挙できます。メンバーシップ質問簡単に決定者との辞書式列挙子使用して決済できる。L1L1L_1L2L2L_2L1L1L_1 ステートメント2は真です。決めるアルゴリズムL2L2L_2 入力文字列がいずれかと一致する場合に受け入れるように変更できます wiwiw_i または wjwjw_j。これにより、次のメンバーシップに関する質問が解決しますL1L1L_1。 ただし、この質問に対する所定の解決策では、ステートメント2は誤りであると述べています。私の推論がどこか間違っているかどうか教えていただけませんか?

2
言語の固有のあいまいさ
一連のオプションの中から、本質的にあいまいな言語を選択するように求める質問をしました。 L1= {aんbメートルcメートルdん|M 、N ≥ 1 } ∪ {aんbんcメートルdメートル|M 、N ≥ 1 }L1={anbmcmdn|m,n≥1}∪{anbncmdm|m,n≥1}L_1 = \{a^nb^mc^md^n \;|\; m,n \geq 1\}\cup \{a^nb^nc^md^m \;|\; m,n \geq 1\} a n dandand L2= {aんbメートルcメートル|M 、N ≥ 1 } ∪ {aんbんcメートル|M 、N ≥ 1 }L2={anbmcm|m,n≥1}∪{anbncm|m,n≥1}L_2 = \{a^nb^mc^m \;|\; m,n \geq 1\}\cup \{a^nb^nc^m \;|\; m,n \geq 1\} …


1
ログスペースで2つのログスペースプログラムの連結をシミュレートする
私は2つの対数空間プログラムとを持っています。FFFGGG プログラムは配列入力を取得し、出力配列を作成します。FFFA[1..n]A[1..n]A[1..n]B[1..n]B[1..n]B[1..n] プログラムは、によって作成された入力として取得し、そこから出力配列を作成します。GGGBBBFFFC[1..n]C[1..n]C[1..n] 入力配列を取得し、それに対応する配列を作成するログスペースプログラムが存在することの証明を作成する必要があります。しかし、私はそれを書く正しい方法を見つけることができません。これはどのように行われますか?HHHAAACCC ログスペースプログラムは、ビットのメモリを使用するプログラムです。守らなければならないいくつかの条件を次に示します。O(logn)O(log⁡n)O(\log n) 単純な整数型の変数のみを使用する必要があります(intC ++、longintPascalなど)。 整数の許容範囲が定義されていますが入力のサイズである場合、変数に保存できるのは、基づいてポリモニアルサイズの値のみです。nnnnnn 例えば:私たちは、缶がで値を取る変数持つことができます、またはも値「、しかし、我々はできます値を取る変数があります。他のタイプの変数、および配列と反復子は許可されていません。[−n...n][−n...n][-n...n][−3n5...3n5][−3n5...3n5][-3n^5...3n^5][−4...7][−4...7][-4...7][0...2n][0...2n][ 0...2^n] ルールに関する例外は入力と出力です。入力は、プログラムが読み取ることができる特殊変数(主に配列)で使用でき、出力は他の特殊変数にのみ書き込むことができます。したがって、出力から読み取ったり、入力変数の値を増やしたりすることはできません。 プログラムは再帰を使用できません。 Pascalで書かれた対数空間プログラムの例(誰もが理解できるようにするため)で、整数の配列で最大の数を見つける var n: integer; //input variable the number of elements in A A: array [1..n] of integer; //input variable - the array of integers m: integer; // output variable, the position of maximum i, j: integer; //working …

1
レベンシュタイン距離と動的タイムワープ
ワグナー・フィッシャーアルゴリズムとdtwアルゴの間をどのように平行に描くかわかりません。どちらの場合も、各インデックスの組み合わせ(i、j)の距離を求めます。 ワーグナーフィッシャーでは、空の文字列から別の文字列への挿入回数によって距離を開始します。 let wagnerFischer (s: string) (t: string) = let m, n = s.Length, t.Length let d = Array2D.create (m + 1) (n + 1) 0 for i = 0 to m do d.[i, 0] &lt;- i for j = 0 to n do d.[0, j] &lt;- j for j …

1
意思決定ツリーとルールベースの推論の違い
私はこのトピックに不慣れです。スポーツの予測について読んでいるいくつかの科学論文では、ルールベースの推論に出会いました。この用語は意味論的推論と同じですか(2つの主な方向は前方と後方の連鎖です)。はいの場合、意思決定ツリーとこれの違いを指摘できますか?私にとっては、ほとんど同じように見えます。

1
ばらばらのセットのデータ構造の実用的なアプリケーション
エッジがグラフに動的に追加されるとき、素集合のデータ構造が無向グラフの接続されたコンポーネントを追跡するために使用されることを知っています。また、それがクラスカルの最小全域木アルゴリズムで使用されていることも知っています。このデータ構造の他の可能なアプリケーションは何ですか?

1
データの均一性を維持するラインスムージングアルゴリズム
イントロ: 私はブラウザーでプロットする必要のある巨大なデータセットを使用しています。最大100万ポイントになる可能性があるため、私の考えは、異なるズームレベルに対して異なる表現を作成することでした。 100kポイントあるとしましょう。50kになるまで2つずつ平均し、500ポイント(任意のしきい値)未満になるまでそれを繰り返します。 したがって、最もズームアウトしたレベルでは、グラフのサイズに応じて500ポイントすべてまたはその一部を描画し、ズームインすると、次のズームレベルに切り替わります(ユーザーが選択範囲をドラッグするとデータをストリーミングしますl / r) )、そして最終的にユーザーが細かい細部を見たい場合は、0ズームレベルにズームしてすべての細部を見ることができます。 私は実際にこのプロトタイプを作成し、1つのことを除いて非常にうまく機能しています。これの副作用は、ご想像のとおり、平均化の反復でピークが失われることです。 Douglas-Peuckerアルゴリズムと、それがどのようにピークを維持できるかについていくつかの調査と発見を行い、いくつかのテストを行いましたが、それは非常にうまく機能しましたが、それに関する問題は、一連のデータ(y値)に遭遇した場合です[1 、1、1、1、5、6、1、1、1、1、1、1] [1,6,1,1]のようなものにスムーズにします。このようにズームレベルの比率を維持 n(元のデータの長さ)&gt; n / 2&gt; n / 4&gt; n / 8&gt; ..... 私はラインスムージングに関する論文をほとんど読んでいませんが、見つけたすべてのアルゴリズムは距離のしきい値を受け入れており、パラメーターとしてスムージングに使用しています。また、それらのどれも、目的の出力要素の数を受け入れることができません。行、彼らはこのようなシーケンス(y値)[1,1,1,1,1,1,1,1,1,1,1]を[1,1]に変換します だから、最後に、私の質問: 次のようなアルゴリズムはありますか? 通常の距離しきい値の代わりに、必要な数の出力要素を受け入れます (Douglas-Peuckerと同様に)ピークを保持しようとします (y値)[1,1,1,1,1,1]を取得し、3つの出力が必要だと言っても、理論的には[1,1]として平滑化することが正しい場合、イベントは均一にデータを平滑化します代わりに[1,1,1]を取得する必要があります また、すべてのデータは1からnまで1のステップで測定されるため、N / A値、空白のスポット、[1.3のような値はないため、X軸情報の欠如と混同しないでください。 、1.4、3] xは常に[1,2,3 .... n]です

2
女性に投票する方が効果的ですか?
ある政党は、女性が予備選挙に参加することを奨励したいので、彼らは、4番目の位置が女性のために予約されていると決定します。つまり、上位4位に女性がいない場合、投票数が最も多い女性が4位に昇格し、4位以下(5、6、7 ...)の候補者が昇格します。 1つの地位に降格する(もちろん、最初に上位4つの地位のいずれかに女性がいる場合、昇格/降格は行われません)。 私が等しく支持している候補者は2人います。1人は男性で、もう1人は女性です。私が女性に投票した場合、私の投票のほうが効果的であるというのは本当ですか? より極端なケースでは、1位が女性に予約されている場合、私が女性にそれを与えるとき、私の投票が最も効果的であることは明らかです。これが、私のお気に入りの候補者を1位に送る唯一のチャンスだからです。この場合、男性に投票しても、私の好きな候補者が1位になることはありません。 直感的には、4番目の順位が予約されている場合も同じように見えます。なぜなら、私が男性に投票し、彼が4位以下に入ると、降格される可能性があるからです。彼女は昇進するかもしれないので、私の単一投票は多くの価値があるかもしれません。 しかし、私はこれが事実であることの正式な証拠を探しています(またはおそらく反証ですか?)

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