タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

AlgorithmとalgorithmとWikipediaに関するInoHiroのブックマーク (54)

  • ワーシャル–フロイド法 - Wikipedia

    ワーシャル–フロイド法の概略は以下の通りである: 入力: (有向または無向)グラフ の各辺の長さ 出力:頂点 と頂点 を結ぶ最短経路を全ての に対して出力 計算量: 簡単の為 上のグラフ のみを考える。 を 以下の整数とし、 とする。 の 各頂点 に対し、 を に制限したグラフ上での から への最短経路を とする。(経路が無い場合は 「なし」とする。) とし、 を に制限したグラフ上での から への最短経路を とする。 内での から への最短経路は、 を経由するか、あるいは 内にあるかのいずれかであるので、 次が成立することが分かる。ただしここで記号「」は「経路 を進んだ後に経路 を進む」という経路を表す。 : が より短い場合 : そうでない場合。 よって に対する最短経路 が全ての に対して分かっていれば、 に対する最短経路 が全ての に対して求まる。 ワーシャル–フロイド法は以上の考

    ワーシャル–フロイド法 - Wikipedia
  • 乱択アルゴリズム - Wikipedia

    乱択アルゴリズム(らんたくアルゴリズム)、ランダム・アルゴリズム(英: randomized algorithm)または確率的アルゴリズム(かくりつてきアルゴリズム、(英: probabilistic algorithm)は、その論理の一部に無作為性を導入したアルゴリズムである。通常のアルゴリズムでは自然数を順番にあてはめるような決定的な部分で、乱数による非決定的な選択を入れることで、「平均的に」よい性能を実現することを目的とすることがある。形式的には、乱択アルゴリズムの性能はランダムビット列で決定される確率変数となる。その期待値を期待実行時間[1]と呼ぶ。最悪の場合に関して「無視できる」ほどに低い確率であることが、一般に、この類のアルゴリズムが効果的である要件となる。 n 個の要素からなる配列から「a」という要素を探す問題を考える。この配列の各要素は半分が「a」で残りが「b」である。単純

  • 深さ優先探索(バックトラック法) - Wikipedia

    深さ優先探索のイメージ 深さ優先探索(ふかさゆうせんたんさく、英: depth-first search, DFS、バックトラック法ともいう)は、木やグラフを探索するためのアルゴリズムである。アルゴリズムは根から(グラフの場合はどのノードを根にするか決定する)始まり、バックトラックするまで可能な限り探索を行う。「縦型探索」とも呼ばれる。 形式的には、深さ優先探索は、探索対象となる木の最初のノードから、目的のノードが見つかるか子のないノードに行き着くまで、深く伸びていく探索である。その後はバックトラックして、最も近くの探索の終わっていないノードまで戻る。非再帰的な実装では、新しく見つかったノードはスタックに貯める。 深さ優先探索の空間計算量は幅優先探索の空間計算量より最悪のケースでは同じだが一般的なケースではずっと小さい。また、探索の種類によっては、分岐を選択するためのヒューリスティックな方

    深さ優先探索(バックトラック法) - Wikipedia
  • ビタビアルゴリズム - Wikipedia

    ビタビアルゴリズム(英: Viterbi algorithm)は、観測された事象系列を結果として生じる隠された状態の最も尤もらしい並び(ビタビ経路と呼ぶ)を探す動的計画法アルゴリズムの一種であり、特に隠れマルコフモデルに基づいている。観測された事象系列の確率計算のアルゴリズムである 前向きアルゴリズム(英: forward algorithm)も密接に関連している。これらのアルゴリズムは情報理論の一部である。 このアルゴリズムには、いくつかの前提条件がある。まず、観測された事象と隠されている事象は1つの系列上に並んでいる。この系列は多くの場合時系列である。次に、これら2つの並びには一対一の対応があり、1つの観測された事象は正確に1つの隠されている事象に対応している。第三に、時点 での最も尤もらしい隠されている事象の計算は、 での観測された事象と での最も尤もらしい隠された事象の系列のみに依

  • ページランク - Wikipedia

    ページランク (PageRank) は、ウェブページの重要度を決定するためのアルゴリズムであり、検索エンジンのGoogleにおいて、検索語に対する適切な結果を得るために用いられている中心的な技術Googleの創設者のうちラリー・ペイジとセルゲイ・ブリンによって1998年に発明された[1][2]。名称の由来は、ウェブページの"ページ"とラリー・ペイジの姓をかけたものである。 PageRankはGoogleの商標であり、またPageRankの処理は特許が取得されている[3]。ただし、特許はGoogleではなくスタンフォード大学に帰属しており、Googleはスタンフォード大学から同特許の権利を独占的にライセンスされている。なお、同大学は特許の使用権と交換にGoogleから180万株を譲渡されているが、その株式は2005年に3億3,600万ドルで売却された[4][5]。 PageRankの動作概

  • 線形探索 - Wikipedia

    (defun linear-search (list x) (dolist (e list) (when (equal e x) (return-from linear-search T))) ;found NIL) ;not found // For basic sequence: let find value (vs: seq<_>) = use e = vs.GetEnumerator() let rec ifind index = if e.MoveNext() then if e.Current = value then Some index else ifind (index + 1) else None ifind 0 // For list: let find2 value vl = let rec ifind2 index vl = if List.isEmpty vl

  • Sort-merge join - Wikipedia

    The sort-merge join (also known as merge join) is a join algorithm and is used in the implementation of a relational database management system. The basic problem of a join algorithm is to find, for each distinct value of the join attribute, the set of tuples in each relation which display that value. The key idea of the sort-merge algorithm is to first sort the relations by the join attribute, so

  • Least Recently Used - Wikipedia

    Least Recently Used (LRU) とは、データが最後に使われたのはいつであるかを記録し、最近最も使われなかったデータをキャッシュから削除するキャッシュアルゴリズムのこと。CPUのキャッシュメモリや仮想メモリが扱うデータのリソースへの割り当てなどにも使われる。対義語はMost Recently Used (MRU)。 和訳すると「最近最も使われなかったもの」つまり「使われてから最も長い時間が経ったもの」「参照される頻度が最も低いもの」である。 小容量で高速な記憶装置(例えば、CPUのキャッシュメモリ)がいっぱいになったとき、その中にあるデータのうち、未使用の時間が最も長いデータを大容量で低速な記憶装置(例えば、主記憶装置)に保存する、というのが基のアルゴリズムである。 なお、上の括弧内の例はCPUのキャッシュメモリの場合である。仮想メモリの場合は、小容量で高速な記憶装置を

  • 蟻コロニー最適化 - Wikipedia

    蟻コロニー最適化の概念図 蟻コロニー最適化(ありコロニーさいてきか、Ant Colony Optimization、ACO)とは、Marco Dorigo が 1992年の博士論文で提案したアルゴリズムであり、グラフを使ってよい経路を探すことで単純化できるような計算問題の確率的解法である。これはアリがコロニー(=群れ)から物までの経路を見つける際の挙動からヒントを得たものである。 実世界では、アリは始めランダムにうろつき、物を見つけるとフェロモンの跡を付けながらコロニーへ戻る。他のアリがその経路を見つけると、アリはランダムな彷徨を止めてその跡を辿り始め、物を見つけると経路を補強しながら戻る。 しかし、時間とともにフェロモンの痕跡は蒸発しはじめ、その吸引力がなくなっていく。その経路が長いほどフェロモンは蒸発しやすい。それに対して、経路が短ければ行進にも時間がかからず、フェロモンが蒸発す

    蟻コロニー最適化 - Wikipedia
  • ボイヤー-ムーア文字列検索アルゴリズム - Wikipedia

    テキスト T = "ANPANMAN" に対して k = 3 から k = 8 までパターン P = "PAN" を配置した様子。この場合、k = 5 の位置で一致する。 文字列 S に対する操作を以下のように表す: S[i]: 文字列 S の i 番目の文字 S[i..j]: 文字列 S の i から j 番目までの部分文字列(i 文字目、j 文字目をそれぞれ含む) 文字列 S に含まれる文字の個数を文字列の長さと定義する。また、文字列 S の先頭を含む部分文字列をプレフィックス、末尾を含む部分文字列をサフィックスと定義する。 len(S):S の長さ S[1..i], 1 ≤ i ≤ len(S):S のプレフィックス S[i..len(S)], 1 ≤ i ≤ len(S):S のサフィックス 検索文字列をパターンと呼び、P で表す。被検索文字列をテキストと呼び、T で表す。また T

  • エラトステネスの篩 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "エラトステネスの篩" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2019年6月) エラトステネスの篩 (エラトステネスのふるい、英: Sieve of Eratosthenes) は、指定された整数以下の全ての素数を発見するための単純なアルゴリズムである。古代ギリシアの科学者、エラトステネスが考案したとされるため、この名がついている。

    エラトステネスの篩 - Wikipedia
  • Cuthill–McKee algorithm - Wikipedia

  • 差分符号化 - Wikipedia

    差分符号化(さぶんふごうか、英: Delta encoding)とは、データの格納や転送を完全なファイルとしてではなく、シーケンシャルなデータの差分の形式で行う方式である。特に変更履歴の保存を目的とする場合(ソフトウェアプロジェクトなど)、差分符号化は差分圧縮(英: Delta compression)とも呼ばれる。デルタ符号化、デルタ圧縮とも呼ばれるが、デルタ符号とは異なる。 例えばUNIXのファイル比較ユーティリティである diff などで「差分」または「デルタ」を作成し、個別にファイルとして記録する。差分は一般に元のファイルよりも小さいので、差分符号化によってデータの冗長性を大幅に削減できる。一連の差分ファイルの方が各バージョンのそのままのファイル群よりも大幅に記録容量が節約できる。 論理的観点から言えば、2つのデータの差分があれば、一方のデータからもう一方のデータを得ることができる

    差分符号化 - Wikipedia
  • ブルームフィルタ - Wikipedia

    この項目では、確率的データ構造について説明しています。画像にぼかし効果を付加する画像フィルタについては「川瀬のブルームフィルター」をご覧ください。 ブルームフィルタ(英語: Bloom filter)は、1970年に Burton H. Bloom が考案した空間効率の良い確率的データ構造であり、あるデータが集合の要素である(集合に含まれている)かどうかの判定に使われる。ただし判定は正確ではなくて、含まれていないのに含まれていると誤って判定すること偽陽性(false positive)の可能性がある。しかし含まれているものを含まれていないと誤判定すること偽陰性(false negative)はない。なお集合に要素を追加することはできるが、集合から要素を削除することはできない(ただし、拡張をした counting filter であれば削除もできる)。集合に要素を追加していくにつれて偽陽性の

    ブルームフィルタ - Wikipedia
  • 共役勾配法 - Wikipedia

    線型方程式の二次形式を最小化するための、最適なステップサイズによる最急降下法(緑)の収束と共役勾配法(赤)の収束の比較。共役勾配法は、厳密にはn次の係数行列に対して高々nステップで収束する(ここではn=2)。 共役勾配法(きょうやくこうばいほう、英: conjugate gradient method、CG法とも呼ばれる)は対称正定値行列を係数とする連立一次方程式を解くためのアルゴリズムである[1][2][3][4]。反復法として利用され[1][2][3][4]、コレスキー分解のような直接法では大きすぎて取り扱えない、大規模な疎行列を解くために利用される。そのような問題は偏微分方程式などを数値的に解く際に常に現れる[1][5][6][7]。 共役勾配法は、エネルギー最小化などの最適化問題を解くために用いることもできる[8][9][10]。 双共役勾配法(英語版)は、共役勾配法の非対称問題へ

    共役勾配法 - Wikipedia
  • 最急降下法 - Wikipedia

    n 次のベクトル x = (x1, x2, ... , xn) を引数とする関数を f (x) としてこの関数の極小値を求めることを考える。 勾配法では反復法を用いて x を解に近づけていく。k 回目の反復で解が x(k) の位置にあるとき、最急降下法では次のようにして値を更新する[1]。 ここで α は 1 回に更新する数値の重みを決めるパラメータであり、通常は小さな正の定数である。パラメータ α の適正な範囲は多くの場合、取り扱う問題の性質によって決まる。例えば力学問題を計算する際、計算結果が発散するような設定を与えることは、何らかの意味で非物理的な仮定をしている(あるいは元々のモデルの適用範囲を超えている)ことを示している。 例えば、y = x2 の最小値の探索において、α > 1 の場合、反復ごとに悪い解へと向かう。解の探索能力、収束速度は α に強く依存しており、α が大きすぎる

  • Category:Join algorithms - Wikipedia

    InoHiro
    InoHiro 2011/05/24
    Join Algorithms
  • レコメンダシステム - Wikipedia

    レコメンダシステム(英: recommender system)は、情報フィルタリング (IF) 技法の一種で、特定ユーザーが興味を持つと思われる情報(映画音楽、ニュース、画像、ウェブページなど)、すなわち「おすすめ」を提示するものである。通常のレコメンダシステムは、ユーザーのプロファイルを何らかのデータ収集基準と比較検討し、ユーザーが個々のアイテムにつけるであろう評価を予測する。基準は情報アイテム側から形成する場合(コンテンツベースの手法)とユーザーの社会環境から形成する場合(協調フィルタリングの手法)がある。 ユーザーのプロファイルを構築するとき、データ収集の明示的部分と暗黙的部分を区別する。 明示的データ収集には次のようなものがある。 ユーザーにあるアイテムの評価を付けてもらう(例えば5段階評価)。 ユーザーに一群のアイテムを好きか嫌いかランク付けしてもらう。 ユーザーに2つの

  • 協調フィルタリング - Wikipedia

    協調フィルタリングを使用してユーザーの評価を予測する例。最初は、さまざまな項目 (動画、画像、ゲームなど) を評価する。その後、システムは、ユーザーがまだ評価していないアイテムに対するユーザーの評価について予測する。これらの予測は、アクティブなユーザーと同様の評価を持つ他のユーザーの既存の評価に基づいて作成される。例えば上記の場合、システムは、アクティブなユーザーがビデオを気に入らないだろうと予測している。 協調フィルタリング(きょうちょうフィルタリング、Collaborative Filtering、CF)は、多くのユーザの嗜好情報を蓄積し、あるユーザと嗜好の類似した他のユーザの情報を用いて自動的に推論を行う方法論である。趣味の似た人からの意見を参考にするという口コミの原理に例えられることが多い。 例えば、ユーザAがアイテムXを好むとすると、アイテムXを好む別のユーザBが好むアイテムYを

    協調フィルタリング - Wikipedia
  • tf–idf - Wikipedia

    情報検索の分野において、tf–idf (または、 TF*IDF、TFIDF、TF–IDF、Tf–idf)は、term frequency–inverse document frequencyの略であり、コーパスや収集された文書群において、ある単語がいかに重要なのかを反映させることを意図した統計量(数値)である[1]。また、tf-idfは情報検索や、テキストマイニング、ユーザーモデリング(英語版)における重み係数(英語版)にもよく用いられる。ある単語のtf-idfの値は文書内におけるその単語の出現回数に比例して増加し、また、その単語を含むコーパス内の文書数によってその増加が相殺される。この性質は、一般にいくつかの単語はより出現しやすいという事実をうまく調整することに役立っている。今日、tf-idfはもっとも有名な語の重みづけ(term-weighting)手法である。2015年に行われた研究