コンピュータサイエンス

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

1
2つのセットから最大の選択肢を計算するアルゴリズムはどれですか。
長さが等しくない可能性のある2つの整数のベクトルが与えられた場合、2つのベクトル間の対応する数のペアの間の最大値を選択して累積し、サイズの違いを補うために短いベクトルに追加のゼロを挿入して、可能な最大結果をどのように決定できますか? たとえば、次の2つのベクトルを入力として考えます。 [8 1 4 5] [7 3 6] ゼロと結果の合計を挿入するための選択肢は次のとおりです。 [0 7 3 6] => Maximums: [8 7 4 6] => Sum is: 25 [7 0 3 6] => Maximums: [8 1 4 6] => Sum is: 19 [7 3 0 6] => Maximums: [8 3 4 6] => Sum …

6
チューリングマシンは、言語決めることができます
ましょ 決定チューリングマシンのR(Iは平均認識していない)の言語があり、Lは∅?L∅={⟨M⟩∣M is a Turing Machine and L(M)=∅}.L∅={⟨M⟩∣M is a Turing Machine and L(M)=∅}.L_\emptyset = \{\langle M\rangle \mid M \text{ is a Turing Machine and }L(M)=\emptyset\}.L∅L∅L_\emptyset がここでも機能することを示すために使用された同じ手法のようです。{A∣A is a DFA and L(A)=∅}{A∣A is a DFA and L(A)=∅}\{A \mid A \text{ is a DFA and } L(A)=\emptyset\}

1
NFAからDFAに変換できません
与えられたΣ={a,b}Σ={a,b}\Sigma =\{a, b\}与えられた言語のアルファベットセットが { a 、b }である。 私はそれを回り道で解決しようとしました: 正規表現を生成する 対応するNFAの作成 パワーセット構造を使用してDFAを推定する DFAの状態の数を最小限に抑える ステップ1: 与えられた問題の正規表現は(数えきれないほどの中で): ((aa|bb)(a|b)*)|((a|b)(a|b)*(aa|bb)) ステップ2: 指定された式のNFAは次のとおりです。 (ソース:livefilestore.com) 表形式では、NFAは次のとおりです。 State Input:a Input:b ->1 2,5 3,5 2 4 - 3 - 4 (4) 4 4 5 5,7 5,6 6 - 8 7 8 - (8) - - ステップ3:パワーセット構造を使用してDFAに変換します。 Symbol, State + …

1
三次三角形のないグラフの独立セット
キュービックトライアングルフリーグラフの最大独立セットがNP完全であることを知っています。 それは我々が正確にサイズである独立したセットを必要とする場合にはNP完全まだあり?| V| / 2|V|/2|V|/2 基本的に、キュービックトライアングルフリーグラフ問題の独立集合問題のYESインスタンスには、正確にノード。いいえインスタンスには、|より小さいサイズの独立したセットがあります V | / 2。| V| / 2|V|/2|V|/2| V| / 2|V|/2|V|/2


3
さまざまなトピックに関するアルゴリズムの本
この投稿を改善したいですか?引用や回答が正しい理由の説明など、この質問に対する詳細な回答を提供します。十分な詳細がない回答は、編集または削除できます。 私は私たちの小さな会社(約15人)のためのアルゴリズムに関する本のライブラリを構築する任務を負っています。予算は5kを超えていますが、確かに10k未満なので、かなりの数の本を購入できます。ここにいるすべての人は、CSまたは密接に関連する分野で少なくとも学士号を取得しているため、Cormenのような基本的な教科書を入手しますが、より高度なトピックに関する優れた本に興味があります。(ちなみに、Knuthの4巻を入手します。) トピックのリストは次のとおりです。 並べ替えアルゴリズム グラフアルゴリズム 文字列アルゴリズム ランダム化されたアルゴリズム 分散アルゴリズム 組み合わせアルゴリズム 等 本質的に私は、アルゴリズムとデータ構造に関連するCS内の主要なトピックに関する本の良い推薦を探しています。特に、良い学校の学士号の一部として、アルゴリズムとデータ構造のクラスで通常カバーされているものを超えるもの。一般的に有用な資料を探しているので、質問はかなりあいまいです。私たちが開発するソフトウェアは、主に大量のデータを処理するシステムレベルのものです。 理想はまた、ほとんどの人が聞いたことがないかもしれないかなり最近のクールなデータ構造とアルゴリズムをカバーするものを見つけることです。 編集:ここに私が入手する必要があると思う予備的な本があります: コーメン他によるアルゴリズムの紹介。 クラインバーグ、タルドスによるアルゴリズム設計 Art of Computer Programming Vol 1-4、Knuth著 Vaziraniによる近似アルゴリズム ウィリアムソン、Shmoysによる近似アルゴリズムの設計 Motwani、Raghavanによるランダム化アルゴリズム Sipserによる計算理論の紹介 アローラ、バラクによる計算の複雑さ ギャリーとジョンソンによるコンピュータと扱いにくさ Schrijverによる組み合わせ最適化 言語設計、コンパイラ、および形式的手法の技法とアルゴリズムを扱う、同僚が欲しかった他のいくつかの本は次のとおりです。 Pierceによる型とプログラミング言語 加藤園バイエルによるモデル検査の原則 コンパイラ:Aho、Lam、Sethi、Ullmanによる原則、テクニック、ツール コンパイラー設計ハンドブック:最適化と機械コードの生成、Srikant、Shankarによる第2版 ガーベッジコレクションハンドブック:ジョーンズ、ホスキング、モスによる自動メモリ管理のアート

2
nマルチ選択kの複雑さを簡素化
私は繰り返しでnからk要素を選択することに相当する時間の複雑さを持つ再帰的アルゴリズムを持っています、そして私はより単純化されたbig-O式を得ることができるかどうか疑問に思っていました。私の場合、はよりも大きく、独立して成長します。kkknnn 具体的には、明示的な指数式を期待します。これまでに見つけた中で最高のものは、スターリングの近似に基づいているので、それを使用できますが、もっと良いものが得られるかどうか疑問に思いました。O(n!)≈O((n/2)n)O(n!)≈O((n/2)n)O(n!) \approx O((n/2)^n) O((n+k−1k))=O(?)O((n+k−1k))=O(?)O\left({{n+k-1}\choose{k}}\right) = O(?)

3
特定のアルゴリズムが漸近的に最適であるかどうかを判断することは可能ですか?
次の問題のアルゴリズムはありますか? チューリングマシンを考えると言語の決定、 チューリングマシンあり決定よう ? L M 2 L t 2(n )= o (t 1(n ))M1M1M_1LLLM2M2M_2LLLt2(n )= o (t1(n ))t2(n)=o(t1(n))t_2(n) = o(t_1(n)) 関数およびは、それぞれチューリングマシンおよびの最悪の実行時間です。t 2 M 1 M 2t1t1t_1t2t2t_2M1M1M_1M2M2M_2 スペースの複雑さはどうですか?

3
循環シフト下で文脈自由言語がクローズされていることの簡単な証明
サイクリックシフト (別名回転又は抱合言語の)ように定義される{ Y 、X | のX 、Y ∈ L }。ウィキペディア(およびここ)によると、文脈自由言語はこの操作のもとで閉鎖されており、大芝とMaslovの論文を参照しています。この事実の簡単な証拠はありますか?LLL{ yx ∣ x y∈ L }{yx∣xy∈L}\{ yx \mid xy \in L \} 通常の言語の場合、この形式では、「通常の言語がサイクル演算子の下で閉じられていることを証明する」という形でクロージャーが説明されます。

1
2つの変数の漸近分析?
複数の変数を持つ関数に対して漸近分析(big o、little o、big theta、big thetaなど)はどのように定義されますか? ウィキペディアの記事にセクションがあることは知っていますが、私は慣れていない多くの数学的表記を使用しています。また、次の論文も見つけました。http://people.cis.ksu.edu/~rhowell/asymptotic.pdfしかし、この論文は非常に長く、単に定義を与えるのではなく、漸近分析の完全な分析を提供します。繰り返しになりますが、数学表記を頻繁に使用すると、理解が非常に困難になります。 誰かが複雑な数学的表記なしで漸近分析の定義を提供できますか?

4
「指紋」セットを見つける
10人がいて、それぞれにお気に入りの本のリストがあるとします。ある人Xについて、Xだけが好きなXの本の特別なサブセットを見つけたいと思います。つまり、Xの特別なサブセットのすべての本を好きな人は他にいません。私はこの特別なサブセットをXのユニークな「指紋」と考えています。 そのようなセットを見つけるためのアプローチについての提案をいただければ幸いです。(これは宿題のように見えますが、私が解決しようとしている私の生物学研究の問題に関連しています。)
11 algorithms  sets 

1
指示されたunion-find
エッジを動的に追加して特定のクエリを実行できる有向グラフについて考えGGGます。 例:分離セットフォレスト 次の一連のクエリについて考えてみます。 arrow(u, v) equiv(u, v) find(u) 最初のものは、矢印追加場合は、2番目の一方が決定し、グラフにしU ↔ * V、最後の一つはの同値クラスの正規代表見つけ↔ *を、すなわちA R (U )、その結果、U ↔ * V r (v )= r (u )を意味します。u→vu→vu→vu↔∗vu↔∗vu↔^*v↔∗↔∗↔^*r(u)r(u)r(u)u↔∗vu↔∗vu↔^*vr(v)=r(u)r(v)=r(u)r(v)=r(u) これらのクエリを準定数の償却済みの複雑さで実装する分離セットフォレストデータ構造を使用したよく知られたアルゴリズム、つまります。この場合、を使用して実装されていることに注意してください。O(α(n))O(α(n))O(α(n))equivfind より複雑なバリアント 今、私は方向が重要であるより複雑な問題に興味があります: arrow(u, v) confl(u, v) find(u) 最初は矢印追加し、秒はと両方から到達可能なノード、つまりがあるかどうかを決定します。最後のものは、が意味するようなオブジェクトを返す必要があり、は簡単に計算できるはずです。(たとえば、計算するために)。目標は、これらの操作が高速になるような適切なデータ構造を見つけることです。u→vu→vu→vwwwuuuvvvu→∗←∗vu→∗←∗vu→^*←^*vr(u)r(u)r(u)u→∗←∗vu→∗←∗vu→^*←^*vr(u)∙r(v)r(u)∙r(v)r(u) \bullet r(v)∙∙\bulletconfl サイクル グラフにはサイクルを含めることができます。 主要な問題のDAGのみを考慮するために、強連結成分を効率的かつ増分的に計算する方法があるかどうかはわかりません。 もちろん、DAGの解決策もありがたいです。これは、最も一般的でない祖先の増分計算に対応します。 素朴なアプローチ disjoint-setフォレストのデータ構造は、エッジの方向を無視するため、ここでは役に立ちません。そのノート、グラフがコンフルエントでない場合には、単一のノードにすることはできません。r(u)r(u)r(u) 一つは、定義することができと定義することがとして場合。しかし、これを段階的に計算する方法は?r(u)={v∣u→∗v}r(u)={v∣u→∗v}r(u)=\{v ∣ u→^*v\}∙∙\bulletS1∙S2S1∙S2S_1\bullet S_2S1∩S2≠∅S1∩S2≠∅S_1 ∩ S_2≠∅ おそらく、そのような大きなセットを計算することは役に立たないでしょうが、通常のunion-findアルゴリズムのように、小さなセットはより興味深いはずです。

4
情報検索と情報抽出の関係と違いは?
ウィキペディアから 情報検索は、情報リソースのコレクションから情報ニーズに関連する情報リソースを取得するアクティビティです。検索は、メタデータまたはフルテキストインデックスに基づくことができます。 ウィキペディアから 情報抽出(IE)は、非構造化または半構造化された機械可読ドキュメントから構造化情報を自動的に抽出するタスクです。ほとんどの場合、このアクティビティは自然言語処理(NLP)による人間の言語のテキストの処理に関係しています。画像/音声/ビデオからの自動注釈やコンテンツ抽出などのマルチメディアドキュメント処理における最近の活動は、情報抽出と見なすことができます。 情報検索と情報抽出の関係と違いは何ですか? ありがとう!

5
OOPでのオブジェクトの状態の定義
オブジェクト指向プログラミング(論文用)における「オブジェクトの状態」の簡潔な定義が必要です。 約半日、このトピックについて引用できる論文を探しましたが、見つかりませんでした。私が見つけたすべての論文は、ほとんどがオブジェクト指向プログラミングに関する一般的な論文であり、オブジェクトの状態を定義していませんでした。 私にはわかりませんが、私の推測では次のようなもの があります。オブジェクトの状態は、オブジェクトのインスタンス変数の状態によって定義されます。 オブジェクトの状態の定義やトピックに関する参照を検索しています。 (ところで、この概念を「オブジェクトの状態」と呼んでもいいですか、それとも珍しいのですか?)

3
「帰納的に」と「再帰的に」は非常に類似した意味を持っていますか?
「帰納的に」と「再帰的に」は非常に似ていることを意味しますか? たとえば、決定された最初のk成分に基づいて最初のk + 1成分を決定することによりn次元ベクトルを決定し、最初の成分で初期化されるアルゴリズムがある場合、それは再帰的または帰納的に機能しますか?私は「再帰的に」使用してきましたが、今日誰かが「帰納的に」それを言いました。

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