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

理論的な結果と実際の環境で適用される手法。

4
赤黒の木はなぜそんなに人気があるのですか?
私が見るところはどこでも、データ構造は赤黒木を使用して実装されているようです(std::setC ++、SortedDictionaryC#などで) アルゴリズムクラスで(a、b)、赤黒、AVLの各ツリーをカバーしたので、次のようになりました(教授に尋ねたり、数冊の本を読んだり、グーグルで調べたりすることからも)。 AVLツリーの平均深度は赤黒ツリーよりも小さいため、AVLツリーの値の検索は一貫して高速です。 赤黒木は、AVL木よりもバランスをとるための構造的な変化が少ないため、挿入/削除の速度が向上する可能性があります。これは、ランタイムと実装に大きく依存するため、これはツリーの構造変更のコストに依存するため、潜在的に言っています(ツリーが不変の場合、関数型言語でも完全に異なる可能性があります) AVLと赤黒木を比較する多くのオンラインベンチマークがありますが、私が驚いたのは、私の教授が基本的に次のいずれかを行うと言ったということです。 パフォーマンスについてそれほど気にかけない場合もあります。その場合、ほとんどの場合、AVLと赤黒の10〜20%の違いはまったく問題になりません。 または、パフォーマンスに本当に関心があります。この場合、AVLツリーと赤黒ツリーの両方を捨てて、Bツリーを使用します。Bツリーは、より良く機能するように調整できます(または(a、b)ツリー、私は)これらすべてを1つのバスケットに入れます。) その理由は、Bツリーがメモリにデータをよりコンパクトに格納するため(1つのノードに多くの値が含まれる)、キャッシュミスがはるかに少なくなるためです。また、ユースケースに基づいて実装を微調整し、Bツリーの順序をCPUキャッシュサイズなどに依存させることもできます。 問題は、実際の最新のハードウェアでの検索ツリーのさまざまな実装の実際の使用状況を分析するソースがほとんど見つからないことです。私はアルゴリズムに関する多くの本を調べましたが、異なるツリーバリアントを一緒に比較するものは見つかりませんでした。実際のプログラムで。) そうは言っても、上記で述べたことに基づいて、Bツリーがそれらを上回るはずであるときに、どこでも赤黒ツリーが使用されている特定の理由がありますか?(私が見つけることができる唯一のベンチマークとして、http://lh3lh3.users.sourceforge.net/udb.shtmlも示していますが、それは特定の実装の問題である可能性があります)。それとも、実装がかなり簡単であるために、誰もが赤黒ツリーを使用する理由、またはそれを別の言葉で言うと、実装が難しいのはなぜですか? また、関数型言語の領域に移動すると、これはどのように変わりますか?ClojureとScalaはどちらもHash配列にマップされた tryを使用しているようで、Clojureは32の分岐係数を使用しています。

6
データベース計算でのグループ、モノイド、およびリングの使用法は何ですか?
Twitterのような会社が、グループ、モノイド、リングなどの代数的概念に興味を持つのはなぜですか?github:twitter / algebirdでリポジトリを参照してください。 私が見つけることができたのは: Bloom filter、HyperLogLog、CountMinSketchなどの興味深い近似アルゴリズムのためのモノイドの実装。これらにより、これらの洗練された操作を数字のように考え、それらをhadoopまたはオンラインで加算して、強力な統計および分析を生成できます。 そしてGitHubページの別の部分で: もともとは行列がの要素である値だった火傷のマトリックスAPIの一部として開発されました モノイド、グループ、またはリングを。その後、Scalding内やTwitter内の他のプロジェクトで、コードの適用範囲が広がったことは明らかでした。 この広範なアプリケーションは何でしょうか?ツイッター内で、一般的な関心のために? データベースの構成集合体はモノイドのような構造を持っているようです。 Quoraに関する同じ質問:抽象代数(代数付き)に対するTwitterの関心は何ですか? 私は数学のバックグラウンドを持っていますが、コンピューター科学者ではありません。モノイドとセミグループを「現実世界」で使用するのは素晴らしいことです。これらは通常、役に立たない理論的構成要素と見なされ、多くの抽象的な代数コースで無視されます(興味深いことは何もありません)。

9
状況依存(タイプ1)言語の重要性は何ですか?
Chomsky Hierarchyでは、タイプ3言語は外部メモリのない状態マシン(すなわち、有限オートマトン)によって認識され、タイプ2は単一スタックの状態マシン(すなわち、プッシュダウンオートマトン)およびタイプ0によって認識されます。2つのスタックを持つステートマシン(または、チューリングマシンの場合と同じように、テープ)、Type 1言語はこの図にどのように適合しますか?また、言語がタイプ0だけでなくタイプ1であると判断することにはどのような利点がありますか?

8
計算の複雑さに関する知識のないプログラマーになることは問題ですか?
私は大学で運動を割り当てられました。私はそれを家に持ち帰り、それを解決するためのアルゴリズムをプログラムしようとしました。 それから、私が思いついた最も些細なことを作り、講師に見せました。簡単な観察の後、彼は私のソリューションの実行時の複雑さは実現不可能であり、より効率的なものを示していると感じました。そして、計算の複雑さについて何も知らないプログラマーの伝統があります(私はそれらの1つでした)。

2
SATソルバーの1-out-of-n制約のエンコード
私はSATソルバーを使用して問題をエンコードしていますが、SATインスタンスの一部として、ブール変数があります。 。(私はこれを「ワンホット」エンコーディングとして記述されるのを見たことがあります。)x1,x2,…,xnx1,x2,…,xnx_1,x_2,\dots,x_n SATで「うち正確に1つでなければならない」という制約をエンコードしたい。SATソルバーを可能な限り効率的に実行するために、この制約をエンコードする最良の方法は何ですか?x1,…,xnx1,…,xnx_1,\dots,x_n この制約をエンコードする方法はたくさんあります。 ペアごとの制約。すべてのに対してペアワイズ制約を追加して、最大で1つのが真であることを確認してから、を追加して、少なくとも1ことを確認できます。 iは、jはxはI X 1 ∨ X 2 ∨ ⋯ ∨ X N¬xi∨¬xj¬xi∨¬xj\neg x_i \lor \neg x_ji,ji,ji,jxixix_ix1∨x2∨⋯∨xnx1∨x2∨⋯∨xnx_1 \lor x_2 \lor \cdots \lor x_n これにより、句が追加され、追加のブール変数は追加されません。Θ(n2)Θ(n2)\Theta(n^2) バイナリエンコーディング。新しいブール変数 導入できますi 1、i 2、… 、i lg nlgnlg⁡n\lg ni1,i2,…,ilgni1,i2,…,ilg⁡ni_1,i_2,\dots,i_{\lg n}(バイナリ)の整数で表すためにそのようなその(ことを確実にするために、いくつかのブール制約の追加望ましい範囲内にあります)。次に、がツリーであり、他のすべてのがfalseであることを強制する制約を追加できます。つまり、ごとに、強制する句を追加します。1 ≤ iが≤ N I X I 、X 、J、J 、I = J ⇔ X Jiii1≤i≤n1≤i≤n1 …

10
非決定論が有用な概念であるのはなぜですか?
オートマトンは、デジタルコンピューターの抽象的なモデルです。デジタルコンピューターは完全に決定論的です。それらの状態はいつでも入力と初期状態から一意に予測可能です。 実際のシステムをモデル化しようとしているとき、なぜオートマタ理論に非決定性を含めるのですか?

3
基数ソートの実用化
キーが特定の制限された範囲にあることがわかっている場合、たとえば[ 0 … n k − 1 ]の範囲の値など、基数ソートは理論的に非常に高速です。場合のk &lt; LG のnあなただけのベースに値を変換するn個とるΘ (n個)の時間を、ベース行うn個のソート基数をして、全体のためにあなたの元のベースに戻って変換するΘ (nはkの)アルゴリズム。nnn[ 0 … nk− 1 ][0…nk−1][0\dots n^k -1]k &lt; lgnk&lt;lg⁡nk<\lg nnnnΘ (n )Θ(n)\Theta(n)nnnΘ (n k )Θ(nk)\Theta(nk) ただし、実際には基数ソートは通常、たとえばランダム化されたクイックソートを実行するよりもはるかに遅いことを読みました。 大規模な配列の場合、基数ソートの命令数は最も少なくなりますが、キャッシュパフォーマンスが比較的低いため、全体的なパフォーマンスは、マージソートおよびクイックソートのメモリ最適化バージョンよりも劣ります。 基数の並べ替えは素晴らしい理論上のアルゴリズムですか、それとも一般的な実用的な用途がありますか?

1
カテゴリー理論的枠組みを利用するモナドの自然発生
今日、ヘニング・カースタンの講演(「確率的遷移システムのためのトレース意味論」)が初めてカテゴリ理論に直面しました。彼は、確率論的な遷移システムとそれらの挙動を一般的な方法で、すなわち数え切れないほど無限の状態セットとトレースの異なる概念で記述するための理論的枠組みを構築しました。この目的のために、彼は抽象化のいくつかの層をたどり、最終的にモナドの概念に行き着き、それをメジャー理論と組み合わせて必要なモデルを構築します。 最後に、最初に5分で説明した概念を記述するためのフレームワークを(おおよそ)構築するのに45分かかりました。私はこのアプローチの美しさを評価しています(トレースの異なる概念をうまく一般化します)が、それでも奇妙なバランスとして印象づけられます。 私はモナドが本当に何を見るのに苦労され、どのように一般的なAのコンセプトは用途に有用であることができます(両方の理論と実践で)。結果的に努力するだけの価値はありますか? したがって、この質問: モナドの抽象的な概念を適用でき、望ましい結果を導き出すのに役立つ(CSの意味での)自然な問題がありますか(または手段なしでも)(まったくまたはなしでより良い方法で)?

1
実際のユニバーサルハッシュ
HHHh :U→ { 0 、… 、M− 1 }h:うん→{0、…、M−1}h: U \rightarrow \{0,\ldots,M-1\}∀ X 、Y∈ U、x ≠ y⇒ PrをH ∈ H[ h (x )= h (y)] ≤ 1M∀バツ、y∈うん、バツ≠y⇒Prh∈H[h(バツ)=h(y)]≤1M\forall x,y \in U, x \neq y \Rightarrow \Pr_{h \in H}[h(x) = h(y)] \leq \frac{1}{M} ユニバーサルハッシュの概念は、学部のデータ構造コースの標準的な部分になりました。産業用アプリケーションでのユニバーサルハッシュの重要性について学生を動機付けることができればうれしいです。だから私の質問は: ハッシュ関数のユニバーサルファミリーの構築は実際には重要ですか?答えが「はい」の場合、これまでに見た興味深い産業用アプリケーションをいくつか教えてください。

1
ポイントのセットをカバーするために最小数の直線を見つけることの使用は何ですか?
コンピュータサイエンスには、2Dの特定のポイントセットをカバーする最小数の直線を見つけるという一般的な問題[1] [2]があります。 私は多くの論文をスキャンしましたが、それらのどれも問題の明確な動機を持っていません。 この問題を解決するための用途は何ですか?これを説明する論文はありますか?

5
型理論の日常的な応用
型理論を理解したいのですが、まずどのようにそれを適用できるかを知る必要があります。プログラミングにおける型システムのほかに、型理論の自明ではないアプリケーションがもっとあるだろうか?他のアプリケーションがあるかもしれません、性格プロファイリングなどで言ってみましょうか?


2
シュタイナーツリー問題の実際のアプリケーション?
シュタイナーツリー問題(STP)の実際のアプリケーションはありますか? VSLIチップ設計がSTPの優れたアプリケーションであることを理解しています。STPの観点から定式化できる、人々が提案できる現実世界の問題の他の例はありますか? 背景:私は博士課程の研究を始めており、大規模な組み合わせ最適化問題の分解と解決にハイブリッドメタヒューリスティックスと主双対法を使用することを検討しています。私はSTPに魅力を感じており、それを研究するための多くの現実的な動機があるのか​​、それとも理論的に興味があるのか​​疑問に思っています。

5
オントロジーの実際の用途は何ですか?
オントロジーに関する多くの論文や本を読んだことがあり、実際のプロジェクトでそれらがどのように使用されているかを理解しようとしていますか? たとえば、サッカープレーヤーロボットのオントロジーをどのように定義し、インテリジェントアーキテクチャにするためにコグニティブアーキテクチャで使用できますか? オントロジーは、その知識のドメイン内の用語間の関係(たとえば、ボールとフットの単語と物理的ルールの定義間の関係、およびフットとボールの動きとの関係など)または戦術、戦略、および戦術のさまざまな混合の関係ですか? 実際のプロジェクトでのオントロジーの使用法の明確な例、およびそれらを強化するためのACT-Rなどの認知アーキテクチャとの組み合わせの使用法はありますか認知アーキテクチャでは?

3
ゲーデルス(最初)の不完全性定理と停止問題-どのように制限されていますか
これらのことを最初に聞いたとき、それは数学と科学一般に本当に限界を設定すると思ったので、私はとても魅了されました。しかし、これらは実際にどの程度関連していますか? 停止問題の場合:アルゴリズムが終了するかどうかを決定できない、人為的に構築されたケース以外にもありますか? 不完全性定理の場合:人為的に構築されたケース以外に、ステートメントを証明または反証できないケースはありますか? 科学のほとんどの領域では、そのような基本的な制限があることは本当に問題ではないように思われるので、私はこれを尋ねています。彼らもそこにいますか?これが本当に限界を設定する場所とそれが本当に関連する場所を知りたいのですが。

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