タグ付けされた質問 「algorithms」

アルゴリズムは、問題に対する抽象的な解決策を定義する明確に定義された一連のステップです。このタグは、問題がアルゴリズムの設計と分析に関連している場合に使用します。

4
バイオインフォマティクスの背後にある自然科学の入門書
私の質問は、計算生物学のアルゴリズムに関心のある人に向けています。この秋、バイオインフォマティクスのコースを受講します。しかし問題は、私が生物学と化学のバックグラウンドが少なすぎて、その選択のサイクルに備える準備ができていないことです(私は学校のこれらの科目ではかなり弱かった)。 バイオインフォマティクスが焦点を当てている自然科学の質問への良い紹介を提供する本を勧めますか?

4
内点法を使用して線形計画法の正確なコーナーソリューションを見つける
シンプレックスアルゴリズムは、ポリトープの角を貪欲に歩いて、線形計画問題の最適解を見つけます。その結果、答えは常にポリトープの隅になります。内点法はポリトープの内部を歩きます。その結果、ポリトープの平面全体が最適である場合(目的関数が平面に正確に平行である場合)、この平面の中央で解を得ることができます。 代わりにポリトープのコーナーを見つけたいとしましょう。たとえば、線形プログラミングに削減することで最大マッチングを行いたい場合、「マッチングにはエッジXYの0.34%とエッジABの0.89%が含まれ、...」という回答は必要ありません。私たちは0と1で答えを得たいと思っています(すべてのコーナーが0と1で構成されているので、シンプレックスは私たちに与えるでしょう)。多項式時間で正確なコーナーの解を見つけることを保証する内点法でこれを行う方法はありますか?(たとえば、コーナーを優先するように目的関数を変更できます)

3
重複するサイクルを持つNFAを正規表現に変換する方法は?
私が正しく理解すれば、NFAには正規表現と同じ表現力があります。多くの場合、NFAから同等の正規表現を読み取るのは簡単です。サイクルを星に変換したり、ジャンクションを代替として変換したりします。しかし、この場合何をすべきか: [ ソース ] オーバーラップするサイクルにより、このオートマトンが何を受け入れるか(正規表現に関して)がわかりにくくなります。トリックはありますか?

3
一般的なパスファインディングアルゴリズムとヒューマンプロセスの比較
これは計算認知科学と境界を接するかもしれませんが、一般的なパスファインディングアルゴリズム(A *など)がたどるプロセスが、さまざまなパスファインディング状況で人間が使用するプロセス(同じ情報が与えられた場合)とどのように比較されるかについて知りたいです。これらのプロセスは似ていますか?

4
特定のバブルソートアルゴリズムの平均時間の複雑さを評価します。
このバブルソートの疑似コードを考えてみましょう: FOR i := 0 TO arraylength(list) STEP 1 switched := false FOR j := 0 TO arraylength(list)-(i+1) STEP 1 IF list[j] > list[j + 1] THEN switch(list,j,j+1) switched := true ENDIF NEXT IF switched = false THEN break ENDIF NEXT 平均的な時間の複雑さを評価するために覚えておかなければならない基本的なアイデアは何でしょうか?最悪のケースと最良のケースの計算はすでに完了していますが、内部ループの平均的な複雑さを評価して方程式を作成する方法を検討しています。 最悪の場合の方程式は次のとおりです。 ∑i=0n(∑j=0n−(i+1)O(1)+O(1))=O(n22+n2)=O(n2)∑i=0n(∑j=0n−(i+1)O(1)+O(1))=O(n22+n2)=O(n2) \sum_{i=0}^n \left(\sum_{j=0}^{n -(i+1)}O(1) + O(1)\right) = …

2
すべての重みが正になるように定数を追加するだけでは、負の重みを持つ最短経路を見つけられないのはなぜですか?
私は現在、アルゴリズムの概要を読んでいて、すべてのパスが正であることを確認することに依存するジョンソンのアルゴリズムを採用しました。 アルゴは、すべてのエッジに対して正であり、最短経路関係の正確さを維持する新しい重み関数(w ')を見つけることに依存しています。 これは、w(s)、h(d)の値を計算して、wの元の値に追加します。 私の質問は、グラフの最小のwを見つけてすべてのエッジに追加しないのはなぜですか?これは両方の条件を満たすため、計算量が少なくて済みます。

2
最小公約数
基本的に、問題は次のとおりです。正の数のセットの場合、の任意の要素の約数ではない最小数、つまり見つけます。SSSdddSSS∀x∈S, d∤x∀x∈S, d∤x\forall x \in S,\ d \nmid x n = | S |を表す n=|S|n=|S|n = |S|およびC=max(S)C=max(S)C = \max(S) 。関数F(x)= xをF(x)=F(x)=F(x) = 除算しない最小素数を考えます。F(x)\ leq \ log xであることが簡単にわかります。また、セットSの場合、F(S)= Sの要素を分割しない最小素数とします。上限がありますxxxF(x)≤logxF(x)≤log⁡xF(x) \leq \log xSSSF(S)=F(S)=F(S) = SSS F(S)≤F(lcm(S))≤F(Cn)≤nlogC.F(S)≤F(lcm⁡(S))≤F(Cn)≤nlog⁡C.F(S) \leq F(\operatorname{lcm}(S)) \leq F(C^n) \leq n \log C. したがって、111からn \ log Cまでのすべての数値を列挙しnlogCnlog⁡Cn \log C、Sの要素を除算しないかどうかをチェックする単純な総当たりアルゴリズムSSSは多項式であり、時間の複雑さはO(n2logC)O(n2log⁡C)O(n^2 \log C)です。 …

2
アルゴリズムに関する優れた数学の本[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 4年前休業。 私は数学的優雅さと厳格さの吸盤です、そして今、アルゴリズムとアルゴリズム分析に関するそのような文献を探しています。今では、どのアルゴリズムがカバーされているかは問題ではありませんが、それらがどのように提示および処理されるかは非常に重要です。使用するすべての概念を厳密かつ抽象的な方法で定義する非常に明確で正確な言語を最も重視しています。 私は、Cormen、Leiserson、Rivest、Steinによる古典的なアルゴリズムの紹介がかなり巧妙であるが、数学をうまく処理せず、その証明と定義については非公式です。Sipserの計算理論入門は、その点では優れているように見えますが、それでも数学からアルゴリズムへのシームレスな移行は提供していません。 誰かが何かをお勧めできますか? 注意:アルゴリズムは、グラフ、配列、セット、リスト、ツリーなどの古典的な非自明な抽象データ構造を使用して、必要なデータの管理に少なくとも侵入する必要があります。データ構造の使用と管理の問題を完全に無視したとしても、あまり興味はありません。しかし、私はそれらで解決された問題についてはあまり気にしません。

1
NP完全問題を解決するためのすべての既知のアルゴリズムは建設的ですか?
暗黙的に証明書を生成せずにNP完全問題に正しく「はい」を出力する既知のアルゴリズムはありますか? 私は、充足可能性のオラクルを満足のいく割り当てファインダーに変えるのは簡単であることを理解しています:変数を繰り返し、毎回充足可能性のオラクルに元の問題との変数の結合を解決するように要求します。 しかし、そのようなラッパーは便利でしょうか?すべてのsatソルバーが可能な割り当ての空間を検索しますか? または、ソルバーが数学的定理を利用して、解が存在しなければならないことを証明できる、ある種のNP完全問題(巡回セールスマン、サブセット合計など)がありますか?矛盾によって証明をしたいですか?

2
2つの正規表現が等しいかどうかを判断するアルゴリズム
2つの任意の正規表現が与えられた場合、それらが同じ文字列のセットと一致するかどうかを判断するための「効率的な」アルゴリズムはありますか? より一般的には、2つの一致セットの共通部分のサイズを計算できますか? これを行うにはどのアルゴリズムがあり、それらはどの複雑なクラスに住んでいますか? クリーネスターを許可しない場合、それによって画像が変更されますか?

3
DFTのクロスエッジとフォワードエッジの違い
深さ優先ツリーには、ツリーを定義するエッジがあります(つまり、トラバーサルで使用されたエッジ)。 他のノードのいくつかを接続するいくつかの残りのエッジがあります。クロスエッジとフォワードエッジの違いは何ですか? ウィキペディアから: このスパニングツリーに基づいて、元のグラフのエッジは3つのクラスに分けることができます。ツリーのノードからその子孫の1つを指す前方エッジ、ノードからその祖先の1つを指す後方エッジ、そしてどちらもしないクロスエッジ。時々、スパニングツリー自体に属するエッジであるツリーエッジは、フォワードエッジとは別に分類されます。元のグラフが無向の場合、そのエッジはすべてツリーエッジまたはバックエッジです。 あるノードから別のノードを指すトラバーサルで使用されていないエッジは、親子関係を確立しませんか?


5
O(n)の複雑さで順序付けされた単語の頻度
Java開発者のポジションへのインタビュー中に、私は次のことを尋ねられました。 2つのパラメーターを取る関数を記述します。 テキストドキュメントを表すStringおよび 返すアイテムの数を提供する整数。 最も頻度の高い単語が最初に出現する単語の頻度で並べられた文字列のリストを返すように関数を実装します。ソリューションは時間で実行する必要がありますはドキュメントの文字数です。O(n)O(n)O(n)nnn 以下は私が(疑似コードで)答えたものです、それはソートのためにではなく時間です。どうやって回するのかわからない。 O(n)O(n)O(n)O(nlogn)O(nlog⁡n)O(n \log n)O(n)O(n)O(n) wordFrequencyMap = new HashMap<String, Integer>(); words = inputString.split(' '); for (String word : words) { count = wordFrequencyMap.get(word); count = (count == null) ? 1 : ++count; wordFrequencyMap.put(word, count); } return wordFrequencyMap.sortByValue.keys 誰かが知っているか、誰かが私にいくつかのヒントを与えることができますか?

2
ダイクストラアルゴリズムとグラフの最短経路の幅優先探索
StackOverflowでこの質問をしました。ここに引っ越すように頼まれました。だからここにあります: これらが正しい場合、ダイクストラのアルゴリズムと有向グラフでの幅優先検索に関するいくつかの説明と入力が必要です。 ダイクストラのアルゴリズムは、サイクルがあるかどうかに関係なく、重み付きグラフでAノードからノードへの最短経路を見つけますF(負の重みがない限り)。 しかし、そのためにAは、グラフ内の他のすべてのノードへのすべてのパスが計算AさFれ、でノードのシーケンスを逆にすることで、からへのパスを取得しますprev。 BFS:非加重グラフでAノードからノードへの最短パスを見つけFますが、サイクルが検出された場合は失敗します。 ただし、BFSはノードAからノードFへのパスを計算するだけで、必ずしもノードAからのすべてのパスを計算するわけではありません。ノードFに早く到達した場合は、パスを返すだけです。

1
マンチェスターのコンピューター上のチューリングの謎めいた小さなプログラムは何を計算しましたか?
私はチューリングの「コンピューティング機械とインテリジェンス」の論文(https://www.csee.umbc.edu/courses/471/papers/turing.pdf)を読んでいて、彼が言う断片を見つけました: 私はマンチェスターのコンピューターに、わずか1,000ユニットのストレージを使用する小さなプログラムをセットアップしました。これにより、16桁の数字が1つ供給されたマシンが2秒以内に別のマシンに応答します。私は誰もがこれらの返信からプログラムについて十分に学ぶことを無視して、未知の値への返信を予測できるようにします。 それは私には機械学習の問題のように見えます:)しかし、私のAIへの関心を脇に置いて、私の質問は次のとおりです。 このプログラムが何をしていたのか誰か知っていますか? 私は非常に好奇心が強いです。 PS:入力と出力の長さから見て、それは暗号化アルゴリズムだったと思いますが、実際のプログラムへの手がかりをいただければ幸いです。

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