コンピュータサイエンス

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

1
ConwayのGame of Lifeの細胞壁?
ConwayのGame of Lifeには堅牢な構造がありますか?たとえば、誰もが衝突するすべての小さな発振器とグライダーを吸収するシールドで宇宙船を構築しましたか?

3
P = NPを数学ステートメント/コンピュータープログラムなしで証明する
これは今しばらく受動的ユーザーになってからの私の最初の投稿です。可能であれば、いくつか質問をしたいと思います。私は数学者ではありませんが、私の質問は数学/コンピューターサイエンスの分野に関するものです。特に、P対NPの問題。これはエリートの専門家がまだ解決できていない問題であることを認識しています... とにかく、私は尋ねたい: 数学者でもプログラマーでもない人が、P vs NPの問題の1つに対する解決策を提供するとされる基本的な英語で書かれたフローチャートまたは一連のステップを考え出す場合、それは「証明する」と見なされますか? P = NP ..クレイズインスティテュート賞を受賞するには:)?それとも、数学的な証明/コンピュータープログラムとしてソリューションを書く必要がありますか? ありがとうございました。

4
DAGの推移的な削減
DAGが与えられた場合に推移的削減を見つけるためのO(V + E)アルゴリズムを探しています。 これは、可能な限り多くのエッジを削除するため、uからvに到達できる場合、任意のvおよびuに対して、エッジの削除後も到達できます。 これが標準的な問題である場合は、モデルの解決策を示してください。
13 algorithms  graphs  dag 



1
セマンティクスとは何ですか?
多くの一般的な言語があります。しかし、コンピューター科学者は、これらの言語でのプログラムの動作を明確かつ明確にプログラムの動作を論証する(たとえば、その身元を証明する)には、それらを別のよく理解された言語に翻訳する必要があると言います。彼らはそのような言語を「セマンティクス」と呼んでいます。著者は多くのセマンティクスの1つを提案します。彼らはその構造の意味と、あなたの言語をどのように翻訳できるかを説明します。そうすれば、誰もがあなたのプログラムを確実に理解するでしょう、と彼らは言います。 よさそうだ、まだ、私は何かを理解していません。彼らは最初の言語を理解するために別の言語を導入すると言っていますか?なぜ私たちは元のものよりもそれをよく理解するのですか?なぜこのセマンティクスがそれよりも優れているのでしょうか?Cのセマンティクスを記述するために、別の言語を発明するのではなく、Cのセマンティクスをすぐに学習しないのはなぜですか?同じことが構文にも当てはまります。構文に関して同じ質問をしないのはなぜですか? PSコメントでは、セマンティクスは別の言語やその意味への翻訳を意味しないと聞いています。しかし、VHDLのFormal Semanticsは、何かを1つの方法でしか理解できない場合、それを理解せず、別の(既知の)言語に翻訳するメカニズムを備えた言語に「意味」を指定できると述べています。つまり、「意味論は形式的なシステム間の関係」です。Semantics of Programming Languagesの Hennessyは、セマンティクスが BNFまたはシンタックスダイアグラムとして提供されている場合、セマンティクスによってプログラムの「意味」を正式に処理できると述べています。言語でない場合の正式なシステムとは何ですか? PS2ゲートの相互接続への特定のHDLプログラムのHW合成は、セマンティクス抽出のプロセスであると言えますか?その後、(高レベルの)説明を、理解できる(低レベルの)言語に翻訳します。

1
ツリーのデータ構造に似た半格子のデータ構造はありますか?
ツリーを部分的に順序付けられたセットと見なすと、それは結合半数化の特殊なケースになります。半結合を結合するために、2つの要素の(一意の)最小上限(ほぼ)を効率的に計算できるようにします。ツリーの場合、これを可能にするデータ構造は、対応するノードの各要素に対して、親へのポインターとルートへの距離メジャーを格納することです。(実際には、通常「ルートまでの距離測定」に使用されるトポロジカルソートに基づくラベリングは、事実上必要なのは、効率的に評価できる互換性のある半順序だけです)。 各有限半結合は、最小の上限がセットの和集合によって与えられるような順序での包含を持つ有限セットのサブセットのセットとして表すことができます。したがって、各要素を有限数のタグで表し、対応するタグの和集合で最小の上限を計算することが、1つの可能なデータ構造になります。(補数を見ると、対応するタグの共通部分として最小上限を定義することも可能です。)より一般的なデータ構造は、マトリックスを使用して「a <= b」または「join(a、b)」のすべての結果。 ただし、このようなデータ構造を使用してツリーを表すことは、奇妙なことです。2つの要素の(一意の)最小上限の(多かれ少なかれ)効率的な計算を依然として可能にする、結合半格子のツリー構造のデータ構造はもっとありますか?(おそらく、ノードの追加情報がツリーのルートまでの距離測定に似た何らかの種類の有向非周期グラフですか?)

1
Naive Bayesモデルでの平滑化
Naive Bayes予測子は、次の式を使用して予測を行います。 P(Y= y| バツ= X )= α P(Y= y)∏私P(X私= x私| Y= y)P(Y=y|バツ=バツ)=αP(Y=y)∏私P(バツ私=バツ私|Y=y)P(Y=y|X=x) = \alpha P(Y=y)\prod_i P(X_i=x_i|Y=y) ここで、は正規化係数です。これには、データからパラメーターを推定する必要があります。 -smoothingでこれを行うと、推定値が得られますP (X I = X I | Y = Y )Kαα\alphaP(X私= x私| Y= y)P(バツ私=バツ私|Y=y)P(X_i=x_i|Y=y)kkk P^(X私= x私| Y= y)= #{ X私= x私、Y= y} + k#{ Y= y} + n私kP^(バツ私=バツ私|Y=y)=#{バツ私=バツ私、Y=y}+k#{Y=y}+n私k\hat{P}(X_i=x_i|Y=y) = \frac{\#\{X_i=x_i,Y=y\} + k}{\#\{Y=y\}+n_ik} …

2
トリプルネストループの時間の複雑さ
次のトリプルネストループを検討してください。 for (int i = 1; i <= n; ++i) for (int j = i; j <= n; ++j) for (int k = j; k <= n; ++k) // statement ここでのステ​​ートメントは、正確にn (n + 1 )(n + 2 )実行されます回。誰かがこの式がどのように得られたか説明してもらえますか?ありがとうございました。n(n+1)(n+2)6n(n+1)(n+2)6n(n+1)(n+2)\over6

2
計算不可能な関数は漸近的に大きくなりますか?
忙しいビーバーの数と、計算可能な関数よりも漸近的に大きくなる方法について読みました。これはなぜですか?忙しいビーバー機能の計算不可能性のためですか?もしそうなら、計算不可能な関数はすべて計算可能な関数よりも漸近的に大きくなりますか? 編集: 以下の素晴らしい回答ですが、私が理解していることをわかりやすい英語で説明したいと思います。 ビジービーバー関数よりも速く成長する計算可能な関数fがある場合、これはビジービーバー関数がfによって制限されていることを意味します。つまり、チューリングマシンは、停止の問題を判断するためにf(n)の多くのステップを実行するだけで済みます。停止の問題は決定できないことがわかっているため、最初の前提は間違っています。したがって、ビジービーバー機能は、すべての計算可能な機能よりも速く成長します。


2
高階関数は、関数型プログラミングにより強力な機能を提供しますか?
cstheory.SEについても同様の質問をしました。 Stackoverflowのこの回答によれば、非遅延純粋関数型プログラミング言語では複雑さを持つアルゴリズムがありますが、命令型プログラミングの同じアルゴリズムはです。FP言語に遅延を追加すると、アルゴリズムはます。Ω (n logn )Ω(nログ⁡n)\Omega(n \log n)Ω (n )Ω(n)\Omega(n)Ω (n )Ω(n)\Omega(n) 高階関数がある場合とない場合のFP言語を比較する同等の関係はありますか?まだチューリング完了ですか?もしそうなら、FPの高次の欠如は、言語の「強力」または効率を低下させますか?

1
クリーク問題の制限バージョン?
入力がサイズあり、サイズkのクリークを見つけるように求められる次のバージョンのClique問題を考えてみましょう。制限は、決定手順が入力グラフを他の表現に変更できず、他の表現を使用してlog (n knnnkkk余分なビットです。追加ビットは、たとえばブルートフォースアルゴリズムでクリークの徹底的な検索のステータスを追跡するために使用できますが、決定手順は、問題を決定する他の方法でそれらを使用することを歓迎します。log(nk)log⁡(nk)\log(n^k) これの複雑さについて、現時点で何か知られていますか?Cliqueの他の制限について何か作業が行われましたか?もしそうなら、そのような作業に私を導くことができますか?

2
固定言語による正しい商に対する閉鎖
私はあなたの次の支援を本当に楽しみにしています: 以下のための任意の固定以下の演算子の下の閉鎖があるかどうかを決定するIの必要性:L2L2L_2 Ar(L)={x∣∃y∈L2:xy∈L}Ar(L)={x∣∃y∈L2:xy∈L}A_r(L)=\{x \mid \exists y \in L_2 : xy \in L\} Al(L)={x∣∃y∈L:xy∈L2}Al(L)={x∣∃y∈L:xy∈L2}A_l(L)=\{x \mid \exists y \in L : xy \in L_2\}。 関連するオプションは次のとおりです。 通常の言語は、 respの下で閉じられます。、すべての言語A r L 2AlAlA_lArArA_rL2L2L_2 一部の言語場合、通常の言語はそれぞれの下で閉じられます。、および一部の言語場合、通常の言語は respの下で閉じられません。。A l A r L 2 A l A rL2L2L_2AlAlA_lArArA_rL2L2L_2AlAlA_lArArA_r 私は(1)の答えは(2)であると信じていました。なぜなら、と単語を取得すると、がに変わる場所を推測できるオートマトンを構築できるからですが、それを検証する必要がありますに属し、それが規則的でない場合、それはそれをどのように行うのでしょうか? その答えは(1)です。w∈Lw∈Lw \in Lw=xyw=xyw=xyxxxyyyyyyL2L2L_2 これらの演算子を正しく分析し、通常の言語がそれらの下で閉じられているかどうかを判断するには、どうすればよいですか?

1
オーバーフロー安全合計
合計が幅レジスタにも収まるように、固定幅整数(幅レジスタに収まる)、が与えられたとします。w a 1、a 2、… a n a 1 + a 2 + ⋯ + a n = S wnnnwwwa1、2、… ana1,a2,…ana_1, a_2, \dots a_na1+ a2+ ⋯ + an= Sa1+a2+⋯+an=Sa_1 + a_2 + \dots + a_n = Swww 各プレフィックスの和も幅レジスタに収まるように番号をいつでも置換できるように思えます。S i = b 1 + b 2 + ⋯ + b i wb1、b2、… …

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