タグ

アルゴリズムに関するturuhashiのブックマーク (7)

  • 近似最近傍探索ライブラリFaissの4bit PQアルゴリズムについて、ARM CPU上での動作を60倍程度高速化しました - Fixstars Tech Blog /proc/cpuinfo

    このブログは、株式会社フィックスターズのエンジニアが、あらゆるテーマについて自由に書いているブログです。 TL;DR: Issue, PR ソリューション第二事業部の今泉です。 先日東京大学の松井先生と共同でFacebook AI Research(以下FAIR)が公開している近似最近傍探索ライブラリFaissの4bit PQアルゴリズムのARM CPU(aarch64)上での動作を60倍程度高速化しました。 稿ではまず近似最近傍探索やFaissについて軽く紹介した後、その高速化内容について解説を行います。 近似最近傍探索について まず最近傍探索とは、「複数のベクトルからなる集合 \( \mathit{Vs} \) が存在し、あるベクトル \( \boldsymbol{x} \) に対して最も近い要素 \( \boldsymbol{v} \in \mathit{Vs} \) を求める」と

    近似最近傍探索ライブラリFaissの4bit PQアルゴリズムについて、ARM CPU上での動作を60倍程度高速化しました - Fixstars Tech Blog /proc/cpuinfo
  • 輸送問題を近似的に行列計算で解く(機械学習への応用つき) - 私と理論

    輸送問題と呼ばれる問題があります. この問題は,普通は線形計画法やフローのアルゴリズムを使って解かれます. この記事では,この輸送問題を近似的に行列計算で解くアルゴリズム(エントロピー正則化 + Sinkhorn-Knopp アルゴリズム)を紹介します. 輸送問題とは アルゴリズム 得られる解の例 なぜこれで解けるのか? 競プロの問題を解いてみる 機械学習界隈における流行 まとめ 輸送問題とは 輸送問題とは以下のような問題です. 件の工場と 件の店舗からなる,ある商品の流通圏があるとする. 各工場には 個の在庫がある.. 各店舗では 個の需要がある. 在庫の総和と需要の総和は等しいとする (すなわち ). 工場 から店舗 に商品を一つ運ぶためには の輸送コストがかかる. 各工場 から各店舗 への輸送量 を適切に決めて,各店舗の需要を満たしつつ輸送コストの総和を最小化せよ. 輸送問題は最適化

  • 【累積和、しゃくとり法】初級者でも解るアルゴリズム図解 - paiza times

    2014年12月3日より2015年1月7日まで開催した、paizaオンラインハッカソンVol.4Lite「エンジニアでも恋したい」は、トータルで3問有りましたが全て解けましたでしょうか? 各問題の成否によりストーリーが変わるのであえて間違えて解いた方もいらっしゃると思いますがw (プレゼント対象期間は終了しましたが、問題チャレンジは可能なので、未チャレンジの方は是非チャレンジください!) 問題1、問題2は解説するほどのむずかしさでもないので省きますが、問題3は多少工夫が必要なので、問題3について今回もPOH恒例の「図解解説」をしてみたいと思います。既に解けた方もそうでない方も、今回の解説を読んで、それぞれの方法すべてを実装してみると勉強になると思いますので、是非試してみてください。 ■どのような高速化ステップがあるのか? 今回の問題ですが、解法の大きなパターンとしては、1.全てのパターンを

    【累積和、しゃくとり法】初級者でも解るアルゴリズム図解 - paiza times
  • 累積和の使い方を学ぶ – himajinworks::blog

    ちょっととあるところで出くわしたので。 アルゴリズム苦手勢として、やったことはまとめておきたい。 あるデータ列Xがあって、Xのk個ずつの区間でのそれぞれの和を必要とする問題。(k≦|X|=N) 安直にやったら t_element x[N], r[N-K]; t_counter i, j; for (i = 0; i < N - K; i++) { r[i] = 0; for (j = 0; j < K; j++) { r[i] += x[i + j]; } } みたいな感じな気がする(コンパイルしてない)。でも超絶遅い。 でぐぐってみたら http://togetter.com/li/617816 の記事というかまとめを発見。累積和なるものを知る。 要は、 こんなことすると速くなるで、ってこと。 残念ながらそれまでの自分の頭のなかは画像の一番最後辺りの # zsh echo $(($(e

    累積和の使い方を学ぶ – himajinworks::blog
  • 全探索アルゴリズム入門 - Qiita

    はじめに 記事はアルゴリズムを勉強し始めた人向け(初心者/中級者)に、アルゴリズムとは何で、なぜ勉強する必要があるのか、またどのように学習したら良いのかなどをまとめた記事である。 記事で対象とするアルゴリズムは全探索アルゴリズムのみで、ソートアルゴリズムなど別のアルゴリズムを勉強したい人には無意味な記事である。 アルゴリズムの基礎知識 アルゴリズムとは アルゴリズムとは 何らかの問題を解決する手順 のことであり、この手順をコンピュータが理解できるように記述したものがプログラムである。つまり、プログラムを書いている以上は何らかのアルゴリズムを記述していることになるのである。 なぜプログラマにアルゴリズムの知識が必要なのか プログラマにアルゴリズムの知識が必要な理由は アルゴリズムの違いによってプログラムの処理能力に雲泥の差が生じるから である。一般的にプログラムの処理能力の差はデータ量な

    全探索アルゴリズム入門 - Qiita
  • バンディットアルゴリズム入門と実践

    Tokyowebmining発表用資料です。複数の選択肢がある場合に、どのように選択を行うのが効率的なのか?という問題を解決するためのアルゴリズムです。

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

    インド工科大学(IIT)と企業の両方で豊富な経験を持つインド人著者による、実例豊富なデータ構造とアルゴリズムの解説書。伝統的なデータ構造とアルゴリズムのトピックで、基をしっかり押さえるだけでなく、集合のUnion/Find、動的プログラミングや計算量クラスといった話題も盛り込んでいます。圧倒的な情報量でプログラマに必要な知識を網羅。600弱の練習問題とその解を収録しており、理解度を細かく確認し、知識を着実に身に付けることができます。 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。 第1刷正誤表

    入門 データ構造とアルゴリズム
  • 1