コンピュータサイエンス

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


1
グラフ理論とグラフアルゴリズムの研究
とても一般的な質問があります。それは研究に関連しています。グラフ理論に興味があります。私はそれでコースをしました。数学の学生としてそれを行う観点から、両方のグラフ理論に関連するいくつかのトピックを行い、グラフアルゴリズムも研究しました。グラフ理論の研究インターンシップに行きます。しかし、グラフアルゴリズムの研究を行うか、数学の学生としてグラフ理論を行うことの本当の違いについての適切な特徴的なアイデアが不足しているため、グラフに対する私の本当の興味について修正することができないといういくつかの不具合があります。次のことを知りたいです。 数学の学生としてグラフ理論を行うこととグラフアルゴリズムを行うことの本当の違いは何ですか?両方に本当の違いがありますか? グラフ理論とグラフアルゴリズムに関する研究論文を入手するための良い情報源を教えてください。 数学の学生としてグラフを書き始めるのは良いことですか? そのような問題を提起するのに適切な場所であるかどうかはわかりません。ここに収まらない場合はお知らせください。

2
k-bounded spanning tree問題がNP完全なのはなぜですか?
あなたは無向グラフ有する場合ツリーの問題があるスパニング-bounded G (V 、Eを)し、それは各頂点が高々度持つようにスパニングツリーがあるかどうかを決定する必要がありkは。kkkG (V、E)G(V、E)G(V,E)kkk の場合、これはハミルトニアンパス問題であることがわかります。ただし、k > 2の場合は問題があります。k = 2の既存のスパニングツリーにノードを追加できるという意味でそれを考えてみました。おそらくベースがNP完全であるため、追加するとNP完全にもなりますが、そうではないようです正しい。私はCSを自習しており、理論に問題があるので、どんな助けでも感謝します!k = 2k=2k=2k > 2k>2k>2k = 2k=2k=2

4
Quantum Computerはアナログですか?
数十年前にアナログコンピューターを使用していました。現代のコンピューターはデジタルです。量子コンピューターはどうですか?アナログですか、デジタルですか?量子ビットは同時に多くのものになる可能性があるため、私はこれを求めています。

1
サブセットを選択して、ポイント間の最小距離を最大化する
点セットがCCCあり、各点間の距離がありますD (P私、Pj)D(P私、Pj)D(P_i,P_j)。これらの距離はユークリッドですが、ポイントは実際には特徴空間にあります。 CCCポイントから、nnnポイントのサブセットを選択します。このサブセットを呼びsssます。新しいセットすべてのポイント間の最小距離を最大化するように、このサブセットを選択しますsss。 最大S ⊂ C| s | =n⎛⎝⎜分I 、J ∈ Si ≠ jD (P私、Pj)⎞⎠⎟最大s⊂C|s|=n(分私、j∈s私≠jD(P私、Pj)) \max_{\substack{s \subset C \\ |s| = n}} \left( \min_{\substack{i,j \in s \\ i \neq j} } D \left( P_i, P_j \right) \right) 現在、私はこの問題を解決するために山登りを使用しています。シミュレーテッドアニーリングがより良い解決策を提供する可能性があることを理解しています。 このタイプの問題に対する既知の解決策はありますか?または、この問題を簡単に解決できる別の問題に再定式化できますか?

2
ページングを考慮したガベージコレクターはありますか?
ガベージコレクションは、再生可能なメモリを見つけるために、生きているすべてのオブジェクトを訪問する必要があります。(多くの世代がこれを少し遅らせることで) すべてが同じであるため、他のブロックをページインしてからページアウトする前に、すでにRAMにページングされているオブジェクトを最初に訪問することをお勧めします。 もう1つの可能性は、OSがプロセスからラムのページを取り去ろうとするとき、ページアウトする必要なく放棄できるページがあるかどうか、GCが最初に尋ねられることです。GCはほとんどの場合、ページからオブジェクトを移動することで実行されるため、OSがページを必要とする時間制限内にそのページをクリアできます。 それでも、GCが機能する順序を決定するOSページングシステムと統合されているガベージコレクターは思い出せません。

2
ラムダ計算:コンテキストと評価コンテキストの違い
まず、以下のテキストにエラーが含まれている可能性があると言いたいので、質問の定式化の誤りをお気軽に指摘してください。 次の構文で用語が指定されているブール値とif文を含む型なしラムダ計算について考えてみましょう。 t ::= v | t t | if t t t | x v ::= \x.t | #t | #f この場合のコンテキストCは、次の構文に従って与えられます。 C ::= [-] | \x. C | C t | t C | if C t t | if t C t | if t t C …

9
アルゴリズムとは正確には何ですか?
私はこれが箱から出して少し聞こえるかもしれないことを知っています、実際、私はいつも箱の中を考えていましたが、最近、コンピューター科学が高い自由度を提供するため、大学で教えられたもの。 階乗関数を考えます。通常、この関数は次のように定義します int fact(int n) { int r = 1; for(int i=2;i<=n;i++) r = r*i; return r; } これをアルゴリズムと呼び、これが正しい方法であることは間違いありません。次に、「これを一定時間で行うことができますか?」と思いましたが、これは次のアイデアを可能にします:array [n]がnの階乗を格納する整数の配列があったらどうなりますか?この配列がいっぱいになると、次のようにファクトを単純に定義できます。 int fact(int n) { return array[n]; } それでも、正しい結果を提供し、一定の時間O(1)で動作するにもかかわらず、このアルゴリズムを調整することはできません。これをアルゴリズムと呼べますか?そうでなければ、なぜですか?配列を埋めるために脳内にある場合でも、配列を埋めるにはある時点でアルゴリズムが動作する必要があると主張できますが、これが基準になるのでしょうか?これらの側面は正式にどのように扱われますか? この概念は、引数の数に関係なく整数で動作する任意の関数に拡張できることに注意してください。関数に2つの引数がある場合は行列を使用する必要があり、関数に3つの引数がある場合は3を使用する必要があります。また、これらのソリューションは単にメモリ消費のために使用されていませんか? また、プログラムが提供する可能性のあるすべての出力をインデックス化する方法を見つけることができるため、その機能が出力を持つプログラムを包含することもありません。 別の例として、配列の一般的な使用法を考えてみましょう。最初にサイズNの配列を割り当て、次にインデックスnに値を格納し、nを1単位増やして配列に要素を追加します。次に、要素を探したい場合は、配列に対して線形検索を実行するしかありません。代わりに、ゼロで初期化された整数を格納するためのサイズの配列、たとえばInteger.MAXVALUEを作成した場合、そのインデックスに1を置くことで整数を格納できます。次に、O(1)時間で配列内にその存在を検索できます。同じ番号の複数のユニットを配置できるようにしたい場合はどうすればよいですか?問題ありません。整数のインデックスに格納されている値を増やすだけです。 ソートはもう少し複雑になりますが、それでもルックアップと追加はO(1)時間で実行できます。
12 algorithms 

1
独自のコンパイラをチューリング完全に表現できる言語はありますか?
tex.SEについてのコメントは不思議に思いました。ステートメントは基本的に次のとおりです。 言語Xで言語Xのコンパイラを作成できる場合、Xはチューリング完全です。 計算可能性と形式言語の用語では、これは次のとおりです。 場合決定した及び、次いで。L ⊆ L T M ⟨ M ⟩ ∈ L F L = R EMMML⊆LTML⊆LTML \subseteq L_{\mathrm{TM}}⟨M⟩∈L⟨M⟩∈L\langle M \rangle \in LFL=REFL=REF_L = \mathrm{RE} ここで、はすべてのチューリングマシンエンコーディングの言語を示し、はマシンによって計算された関数のセットを示します。 F L LLTMLTML_{\mathrm{TM}}FLFLF_LLLL これは本当ですか?

2
書き込み保護された入力を備えたシングルテープチューリングマシンは、正規言語のみを認識します
問題は次のとおりです。 入力文字列を含むテープの部分に書き込むことができないシングルテープチューリングマシンは、通常の言語のみを認識することを証明します。 私の考えは、この特定のTMがDFAと同等であることを証明することです。 このTMを使用してDFAをシミュレートするのは非常に簡単です。 ただし、このDFAを使用してTMをシミュレートする場合、問題が発生します。TM遷移場合、DFAはテープを右に読み取り、同じ状態遷移を行うことにより、確実にシミュレートできます。δ(q,a)=(q′,a,R)δ(q,a)=(q′,a,R)\delta(q,a)=(q',a,R) 以下のために、私はDFAだけ左に読み込み、店舗へのスタックか何かを持っていないため、左の動きをシミュレートするために、このDFAやNFAを使用する方法を見つけ出すことはできません。δ(q,a)=(q′,a,L)δ(q,a)=(q′,a,L)\delta(q,a)=(q',a,L) 別の方法を検討すべきですか?誰か私にいくつかのヒントを教えてもらえますか?ありがとう。

3
マルチコアSATソルバー
私は25k節5k変数SAT問題を解決しようとしています。1時間(precosat)実行されていて、後でより大きなものを解決したいので、マルチコアSAT-Solverを探しています。 SAT-Solversが多いように思えるので、私はかなり迷っています。 誰かが私の場合に最適なものを指摘してもらえますか? また、誰かがおおよその時間を教えてくれれば幸いです(可能であれば)。

2
ニューラルネットワークの入力として日付をエンコードする方法は?
私はニューラルネットワークを使用して時系列を予測しています。私が今直面している問題は、日付/時刻/シリアル番号をどのようにエンコードするかです。ニューラルネットワークへの入力として設定された各入力の? ここで説明するように、Cエンコーディング(カテゴリのエンコーディングに使用)の1つを使用する必要がありますか? または、時間(1-1-1970からのミリ秒単位)を与える必要がありますか? または、残りのデータを時系列でフィードする限り、時間を不要にしていますか?

2
coNP完全性はNP困難性を意味しますか?
coNP完全性はNP困難性を意味しますか?特に、coNP完全であることを示した問題があります。NPハードだと主張できますか?私はcoNP-hardnessを主張できることを理解していますが、その用語が標準かどうかはわかりません。 NP完全問題がcoNPに属している場合、NP = coNPであるという主張に満足しています。ただし、これらの講義ノートでは、NP困難問題がcoNPに属する場合、NP = coNPであると述べています。これは、私の問題がNP困難であると主張できないことを示唆します(または、coNP = NPであることが証明されていることを強く疑います)。 おそらく、私の考えに何か問題があるのでしょう。私の考えは、coNP-complete問題はNP-hardであるということです: NPのすべての問題は、coNPに属する補数に還元できます。 coNPの補数問題は、私のcoNP完全問題に帰着します。 したがって、NPのすべての問題からcoNP-completeに削減されるため、私の問題はNP-hardです。

1
配列の連続した部分配列から合計数を数える
すべてa [ i ] > 0の配列が与えられます。a[1…n]a[1…n]a[1 \ldots n]a[i]>0a[i]>0a[i]>0 今、私たちは部分配列は、配列、すなわち、連続した範囲のです(そのサブアレイから形成することができますどのように多くの異なる合計見つける必要がある[ J ... K ]いくつかのために、合計は全ての和でありますサブアレイの要素)。例えば、場合、その後、答えは4:我々が形成することができる。a[j…k]a[j…k]a[j\ldots k]j,kj,kj,ka=[1,2,1]a=[1,2,1]a=[1,2,1]1,2,3,41,2,3,4 1,2,3,4 時間で個別の合計数をカウントする方法を知っています。O(n2)O(n2)O(n^2) さらに、私はこれが文字列の異なる部分文字列の数を見つける必要がある古典的な問題に似ていることに気付きました。私は、サフィックス配列を構築し、同様の方法で解決する可能性を考えていました(時間)。しかし、私はここで動作するようにそれを変更する方法を理解することができませんでした。たとえば、接尾辞配列を使用すると、4つの許容可能なケースの代わりに5つのケースが取得されます。これは、接尾辞配列を使用してこれを行うことは可能ですか、それとも間違った方向に考えていますか?O(n)O(n)O(n)a=[1,2,1]a=[1,2,1]a=[1,2,1] また、私が考えてきたもう1つの方向があります。分割して征服します。配列を1つの要素に縮小されるまで毎回2つの部分に分割する場合のように。1つの要素に1つの合計を含めることができます。2つの単一要素を組み合わせる場合、2つの方法で実行できます。両方の単一範囲に同じ要素がある場合、2つの異なる合計を取得するか、両方に異なる要素がある場合、3つの異なる合計を取得します。しかし、長さが1より大きい配列をマージするためにこれを一般化することはできません。2つのmサイズの配列をマージして答えを取得することは可能ですか?O(m)O(m)O(m)

2
VCSとファイルバージョンの正式なCS定義はありますか?
冗談かどうかはわかりませんが、git、hg、svnなどのバージョン管理システムでファイルの正式な定義と呼ばれるものを読んだことがあります。それは同相写像のような数学的オブジェクトのようなものでした。それは冗談だったのですか、それとも、バージョン管理システムとVCSの数学についてのコンピューターサイエンス理論があるのですか?

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