タグ

algorithmに関するInoHiroのブックマーク (207)

  • ビンパッキング問題 - Wikipedia

    ビンパッキング問題(ビンパッキングもんだい)とは、離散数学の組合せ論の中のNP困難問題で、与えられた「荷物(重さや個数がついている)」をつめる「箱(ビンやコンテナなど)」の最小数を見つけるものである。問題を解くためにビン型(筒状型)の模型を使うのでこのように呼ばれる。 様々な解決方法(アルゴリズム)が考案されているが、あらゆる場合の箱の最小数を効率的に見つけることができるような万能なアルゴリズムはない(NP困難問題)。 ゲイリー、ジョンソンによる著書『Computers and Intractability(英語版)』で記述されているビンパッキング問題の定義を以下で説明する[1]:226。 入力:有限個のアイテム集合 、およびアイテム ごとのサイズ 、および容量 をもつビンおよび正の値をとる が与えられる。 問い:集合 を素集合 に分割して、それぞれの部分集合 に含まれるアイテムのサイズの

  • Red-Black Tree by Java -- これで分かった赤黒木

    このページは、マップと呼ばれるデータ構造の実装の1つである赤黒木 (2色木、red-black tree)について解説するページです。赤黒木は、要素の 挿入・削除・検索などの操作が \(O(\log n)\) の計算量で実行出来る平衡木 です(\(n\) は要素数)。赤黒木はやっていることは単純なのですが、とにかく 場合分けがたくさんあって、習得しようとしながらもくじけてしまった人も 多いのではないでしょうか? しかし、ご安心ください。このページは場合分けを出来るだけ減らし、 挿入操作で4パターン、削除操作で8パターンさえ理解すれば赤黒木が分かる ように書かれています。削除操作に関しては、左右対称のパターンを省けば 4パターン理解すればおおむね OK です。これから赤黒木を勉強しようという人 はもちろん、一度は勉強したが挫折してしまったという人も是非とも読んでみて ください。 【準備】 ま

  • フィボナッチヒープ - Wikipedia

    フィボナッチヒープの例。次数0,1,3の3つの木を持つ。(水色で示されている)3つの頂点はマークされている。それゆえにヒープのポテンシャルは9である。 フィボナッチヒープはminimum-heap propertyを満足する木の集まりである。つまり、ある子のキーは常に親のキーよりも等しいか大きい。つまり最小のキーは常に何れかの木のルートにある。二項ヒープと比較してフィボナッチヒープの構造はより柔軟である。木は規定された形を特に持っておらず、極端な場合はヒープ中の n 個の要素が全て別々の(n 個の)木に属しているかもしれないし、深さ n の一つの木に属しているかもしれない。この柔軟さによって、ある種の操作を後回しにするなど「怠惰な」処理方法が許される。例えば、二つのヒープを結合するには単に二つのヒープの木のリストを連結するだけで良いし、「キーの減算」操作の過程ではあるノードが親から切り離さ

  • バンディットアルゴリズム入門と実践

    財務省の理論研修で担当した「上級ミクロ経済学」の講義スライドです。講義内容については、以下のウェブサイトをご参照ください: https://sites.google.com/site/yosukeyasuda2/home/lecture/mof15micro [2020/4/19] 講義の音声配信(無料です)を始めました。ご関心のある方はこちらをご覧ください: https://note.com/yagena/n/nab05d7a24681

    バンディットアルゴリズム入門と実践
  • Reservoir sampling - Wikipedia

    Reservoir sampling is a family of randomized algorithms for choosing a simple random sample, without replacement, of k items from a population of unknown size n in a single pass over the items. The size of the population n is not known to the algorithm and is typically too large for all n items to fit into main memory. The population is revealed to the algorithm over time, and the algorithm cannot

  • 大量のデータから一定個数のデータをランダムに採取するReservoirサンプリング - 本当は怖いHPC & AI

    大量の実験データがあるが、馬鹿正直に全部プロット等すると時間がかかりすぎる。実験の初期段階とかで試行錯誤しながら素早く作業をしたい時には、一定個数のデータをランダムに抜き出してプロット等したい事が多い。 そのとき、全体の個数の見当がついていれば、大体の見当で割合を設定して確率的に取得すればよい。例えば、データの全数が約100万個で、とりあえず1000個取り出したいなら、乱数を用いて0.1%の割合でデータを採取すれば良い(ぴったり1000個にはならないだろうがそれは問題ではない)。 全体の個数が不明の場合はそうはいかない。最初に全体の個数を数えてから割合を設定しようとすると、全データを2回走査、つまり2パスの操作が必要になるし、標準入力からデータが流れてくる場合(いわゆるストリーム処理)の場合は、個数を取得するためには全体を保存しておかなければならない。これらの操作は、大規模なデータにおいて

    大量のデータから一定個数のデータをランダムに採取するReservoirサンプリング - 本当は怖いHPC & AI
  • Lowest common ancestor - Wikipedia

    In this tree, the lowest common ancestor of the nodes x and y is marked in dark green. Other common ancestors are shown in light green. In graph theory and computer science, the lowest common ancestor (LCA) (also called least common ancestor) of two nodes v and w in a tree or directed acyclic graph (DAG) T is the lowest (i.e. deepest) node that has both v and w as descendants, where we define each

    Lowest common ancestor - Wikipedia
  • LCA(Lowest Common Ancestor) - tomiflu's blog

  • ヒューリスティック - Wikipedia

    ヒューリスティック(英: heuristic、独: Heuristik)または発見的(手法)[1] [2]:7 [3]:272とは、必ずしも正しい答えを導けるとは限らないが、ある程度のレベルで正解に近い解を得ることができる方法である。発見的手法では、答えの精度が保証されない代わりに、解答に至るまでの時間が短いという特徴がある。「アルゴリズム」に対置する概念である[4]。 主に計算機科学と心理学の分野で使用される言葉であり、どちらの分野での用法も根的な意味は同じであるが、指示対象が異なる。すなわち、計算機科学ではプログラミングの方法を指すが、心理学では人間の思考方法を指すものとして使われる。なお、論理学では仮説形成法と呼ばれている。人間の思考におけるヒューリスティックは、直観的な思考のショートカットであるが、認知バイアスに陥る危険性もある[5]。 計算機科学では、コンピューターに計算やシミ

  • ソート - Wikipedia

    ソート (英: sort) は、データの集合を一定の規則に従って並べること[1]。日語では整列(せいれつ)、並べ替え(ならべかえ)、分類(ぶんるい)などと訳される[1]。 主に配列や連結リストのような、リストデータ構造に分類されるコレクション(コンテナ)に格納されている要素データを、全順序関係によって並べ替えることを指す。また、単に「ソート」といった場合、値の小さい方から大きい方へ順に並べる昇順(しょうじゅん、英: ascending order)を指すことが多い。その反対に値を大きい方から小さい方へ順に並べることを降順(こうじゅん、英: descending order)という。 対象となるコレクションのデータ構造や必要とされる出力、また時間的コストと空間的コストの兼ね合いによって、ソートに使われるアルゴリズムは異なる。 効率的なソートは、ソート済みのデータを必要とする他のアルゴリズム

  • Multi-armed bandit - Wikipedia

    A row of slot machines in Las VegasIn probability theory and machine learning, the multi-armed bandit problem (sometimes called the K-[1] or N-armed bandit problem[2]) is a problem in which a decision maker iteratively selects one of multiple fixed choices (i.e., arms or actions) when the properties of each choice are only partially known at the time of allocation, and may become better understood

    Multi-armed bandit - Wikipedia
  • 貪欲法 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "貪欲法" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2023年10月) 貪欲法(どんよくほう、英: greedy algorithm)は、アルゴリズムの一種、欲張り法(よくばりほう)、グリーディ算法(グリーディさんぽう)ともいう。 貪欲法は局所探索法と並んで近似アルゴリズムの最も基的な考え方の一つである。 このアルゴリズムは問題の要素を複数の部分問題に分割し、それぞれを独立に評価を行い、評価値の高い順に取り込んでいくことで解を得るという方法である。動的計画法と異なり保持する状態は常に一つであり、一度選択した要素を再考する事は無い

  • キャッシュアルゴリズム - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "キャッシュアルゴリズム" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2023年8月) キャッシュアルゴリズム(英: cache algorithm)は、コンピュータ上で情報を格納するキャッシュを管理するプログラムまたはハードウェア構造を最適化するアルゴリズム群。キャッシュが一杯になったとき、このアルゴリズムで新たな情報を格納するための場所を選択し確保する。置換アルゴリズムあるいは置換ポリシーとも。 キャッシュのヒット率(hit rate)とは、探しているデータがキャッシュ上で見つかる率(頻度)である。キャッシュサイズを増やさずにヒ

    キャッシュアルゴリズム - Wikipedia
  • 検索エンジンはいかにして動くのか? 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2025 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    検索エンジンはいかにして動くのか? 記事一覧 | gihyo.jp
  • 確率的情報検索ノート ― Probability Ranking PrincipleからBM25まで ― - シリコンの谷のゾンビ

    GW中にやることリストのひとつである確率的情報検索ノートができたので公開. Notes on Probabilistic Information Retrieval ―Probability Ranking PrincipleからBM25まで― 確率的情報検索とは,Prbability Ranking Principle (説明はノート参照) をスタート地点にして適合確率をモデル化した情報検索のいち分野.Binary independence modelやBM25などが含まれる (BM25はいろんなヒューリスティクスが入っているのだけれど). BM25とは, [tex:\sum_{t \in q} q_t \cdot \frac{f_{t,d} (k_1 + 1)}{k_1*1 + f_{t,d}} \cdot w_t] という (説明はノート参照),ぱっと見ワケワカラン計算式だけれど当た

    確率的情報検索ノート ― Probability Ranking PrincipleからBM25まで ― - シリコンの谷のゾンビ
  • tfidf、LSI、LDAの違いについて調べてみた

    tfidf、LSI、LDAの意味、違いを調べるために、それぞれの形式のコーパスの中身を調べてみた。そのメモ。 前回のおさらい 前回の記事では、もっとも基的なコーパスの中身を確認してみました。その結果、「コーパスとは、文章集合をベクトル空間に変換したもの」いうことが分かりました。 今回は、基的なコーパス以外の複数のコーパス、特に、tfidf、LSI、LDAで用いるコーパスについて、基的なコーパスとは何が違うのかを調べます。その結果分かったコーパスの違いから、各モデルの違いを理解することを目標とします。 gensimに実装されたtfidfのコーパスの中身を見てみました 今回は、「Topics and Transformations」を参考に進めていきます。 >>> import logging >>> logging.basicConfig(format='%(asctime)s : %

  • Bag-of-words model - Wikipedia

    The bag-of-words (BoW) model is a model of text which uses an unordered collection (a "bag") of words. It is used in natural language processing and information retrieval (IR). It disregards word order (and thus most of syntax or grammar) but captures multiplicity. The bag-of-words model is commonly used in methods of document classification where, for example, the (frequency of) occurrence of eac

  • Integrating BM25 & BM25F into Lucene1

    Integrating BM25 & BM25F into Lucene Joaquín Pérez-Iglesias Introduction This document describes the BM25 and BM25F implementation using the Lucene Java Framework. The implementation described here can be downloaded from http://nlp.uned.es/~jperezi/Lucene-BM25/jar/models.jar. Both models have stood out at TREC by their performance and are considered as state-of-the-art in the IR community. BM25 i

  • TF-IDF - Negative/Positive Thinking

    TF-IDFについて いくつかの文書が与えられたとき、文書中の単語の重みを決める手法の一つ。 TF(Term Frequency, 文書中の単語出現頻度) 「よくでてくる単語はその文書の主題を表しやすい」 ある文書dに単語tがでてきた個数をtf(t,d)と定める tfの定義として、個数nをそのまま用いてしまうと文書サイズが大きいほどnも大きくなってしまうことがある。 なので、文書中のすべての単語数で割って正規化したものをtfとして定義するのがいいかも。 IDF(Inverse Document Frequency, 単語が出現する文書数の逆数) 「どんな文書にもよくでてくる単語は、あんまり重要じゃない」 単語tがでてくる文書数をdf(t)とし、全文書数をNとしたとき、以下の式で決まる TF-IDF 上記の2つを組み合わせたもの。 ある文書dに出現する単語tの重みを以下のように定義。 Oka

    TF-IDF - Negative/Positive Thinking
  • Okapi BM25 - Wikipedia

    In information retrieval, Okapi BM25 (BM is an abbreviation of best matching) is a ranking function used by search engines to estimate the relevance of documents to a given search query. It is based on the probabilistic retrieval framework developed in the 1970s and 1980s by Stephen E. Robertson, Karen Spärck Jones, and others. The name of the actual ranking function is BM25. The fuller name, Okap