タグ

Algorithmに関するlarkerのブックマーク (57)

  • Python言語による実務で使える100+の最適化問題 | opt100

    指針 厳密解法に対しては、解ける問題例の規模の指針を与える。数理最適化ソルバーを使う場合には、Gurobi かmypulpを用い、それぞれの限界を調べる。動的最適化の場合には、メモリの限界について調べる。 近似解法に対しては、近似誤差の指針を与える。 複数の定式化を示し、どの定式化が実務的に良いかの指針を示す。 出来るだけベンチマーク問題例を用いる。OR-Libraryなどから問題例をダウンロードし、ディレクトリごとに保管しておく。 解説ビデオもYoutubeで公開する. 主要な問題に対してはアプリを作ってデモをする. 以下,デモビデオ: 注意 基的には,コードも公開するが, github自体はプライベート そのうちにするかもしれない(予約はしているが, 保証はない). プロジェクトに参加したい人は,以下の技量が必要(github, nbdev, poetry, gurobi); ペー

  • ソートアルゴリズムを極める! 〜 なぜソートを学ぶのか 〜 - Qiita

    NTT データ数理システムでリサーチャーをしている大槻 (通称、けんちょん) です。 今回はソートについて記します。 0. はじめに データ構造とアルゴリズムを学ぶと一番最初に「線形探索」や「ソート」が出て来ます。これらのテーマは応用情報技術者試験などでも頻出のテーマであり、アルゴリズムの Hello World とも呼ぶべきものです。 特にソートは、 計算量の改善 ($O(n^2)$ から $O(n\log{n})$ へ) 分割統治法 ヒープ、バケットなどのデータ構造 乱択アルゴリズムの思想 といった様々なアルゴリズム技法を学ぶことができるため、大学の授業でも、アルゴリズム関連の入門書籍でも、何種類ものソートアルゴリズムが詳細に解説される傾向にあります。記事でも、様々なソートアルゴリズムを一通り解説してみました。 しかしながら様々な種類のソートを勉強するのもよいが、「ソートの使い方」や

    ソートアルゴリズムを極める! 〜 なぜソートを学ぶのか 〜 - Qiita
  • アルゴリズム取引のシステムを開発・運用してみて分かったこと

    趣味でアルゴリズム取引のシステムを開発・運用してみたことで得られた知見について、社内のテーマ自由な勉強会で発表しました。Read less

    アルゴリズム取引のシステムを開発・運用してみて分かったこと
  • Algorithm 速いアルゴリズムを書くための基礎

    SSE4.2に採用されているpopcnt命令を使ってハミング距離を計算する方法の解説. 例題としてCENSUS変換によるステレオ対応づけを説明しています.

    Algorithm 速いアルゴリズムを書くための基礎
  • Java - 最小二乗法!

    これまで、C++, Ruby, Fortran による「最小二乗法」のアルゴリズムを紹介しました。 C++ - 最小二乗法! Ruby - 最小二乗法! Fortran - 最小二乗法! 今回は、同じアルゴリズムを Java で実現してみました。アルゴリズムについては、上記リンクの記事を参照してください。 0. 前提条件 Linux Mint 13 Maya (64bit) での作業を想定。 コンパイラ・ランタイムは、 Oracle Java 1.7.0_51 を想定。 最小二乗法についての説明は割愛。(「C++ - 最小二乗法!」を参照) 1. Java ソースコード作成 File: LeastSquaresMethod.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 3

    Java - 最小二乗法!
  • Google OS実験室 ~Moonlight 明日香~ : 動きセンシングにチャレンジ(3)

    2013年06月02日11:52 カテゴリセンシングプログラミング 動きセンシングにチャレンジ(3) Androidには, 傾きセンサーや磁気/加速度センサーを組み合わせて, 簡単に端末の傾きを取得する仕組みが備えられている. [1][2] しかし, 今回は加速度センサーで測定できる重力加速度の値から, どのようにして傾きが求められるかについて考えてみる. 1. 傾きの検出 1.1 x軸周りにφ傾いた場合 x軸周りにφ傾いた場合に, 各軸に重力加速度がどのように働くか考えてみる. 重力加速度をgとすると, y, z軸に働く重力加速度は以下の通り. Ay' = -g sinφ Az' = -g cosφ g = √(Ax^2+Ay^2+Az^2) ≒ 9.8 (m/s^2) したがって, x軸周りの傾きは以下のように求められる. φ = asin(-Ay' / g) 1.2 y軸周りにθ傾い

  • 画風を変換するアルゴリズム - Preferred Networks Research & Development

    Deep Neural Networkを使って画像を好きな画風に変換できるプログラムをChainerで実装し、公開しました。 https://github.com/mattya/chainer-gogh こんにちは、PFNリサーチャーの松元です。ブログの1行目はbotに持って行かれやすいので、3行目で挨拶してみました。 今回実装したのは”A Neural Algorithm of Artistic Style”(元論文)というアルゴリズムです。生成される画像の美しさと、画像認識のタスクで予め訓練したニューラルネットをそのまま流用できるというお手軽さから、世界中で話題になっています。このアルゴリズムの仕組みなどを説明したいと思います。 概要 2枚の画像を入力します。片方を「コンテンツ画像」、もう片方を「スタイル画像」としましょう。 このプログラムは、コンテンツ画像に書かれた物体の配置をそのま

    画風を変換するアルゴリズム - Preferred Networks Research & Development
  • 二地点の緯度・経度からその距離を計算する(日本は山だらけ〜)

    更新:コードのライセンスを MIT ライセンスに変更しました。(平成二十四年五月十日) 概要 各山のページに、 その山の近くにある別の山のリストを載せようと思い、 二地点の緯度と経度から距離を求める方法について調査しました。 ヒュベニ (Hubeny) の公式を用いると簡単な計算で精度よく距離が求まることがわかりました。 ヒュベニの公式ではいくつか定数が出てきますが、旧日測地系、世界測地系、 GPS で利用されている測地系の 3 種類についての定数を調べ、算出しました。 Java および R のプログラムと合わせて研究成果を報告します。 緯度経度からの距離計算 国土地理院・測地部のウェブサイト [1] に測量に関する様々な情報が載っています。 特に [2] には様々な計算式が載っており、 緯度・経度から距離を計算する式 [3] もあります。 しかしここにあるのは緯度・経度を平面直角座標と

    二地点の緯度・経度からその距離を計算する(日本は山だらけ〜)
  • アルゴリズムとプログラミングをビジュアルで一挙に理解できる「VisuAlgo」

    アルゴリズムを理解するのにビジュアル化することは非常に有効で、プログラムをビジュアル化することで理解が進むのもまた同じ。そこで、アルゴリズム・プログラミングの理解が進むようにと、アルゴリズムを記述したプログラムコードを一挙にビジュアル化することで、アルゴリズム&プログラミングを同時に学習できる一挙両得なサービス「VisuAlgo」が公開されています。 VisuAlgo - visualising data structures and algorithms through animation https://visualgo.net/en 上記のVisuAlgoサイトで試しにソートアルゴリズムの基プログラム「バブルソート」をビジュアル化してみます。「Sorting」の「bubble」をクリック。 検索窓の下に「bubble」と表示されたのを確認したら「Sorting」の画像をクリック。

    アルゴリズムとプログラミングをビジュアルで一挙に理解できる「VisuAlgo」
  • dfltweb1.onamae.com – このドメインはお名前.comで取得されています。

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    larker
    larker 2014/07/31
    経路列挙モデル
  • 入れ子集合モデルで子供データを取得する際のパフォーマンス - ka-ka_xyzの日記

    RDBで階層構造(平たく言うと行同士の親子関係)を表現するために様々なデータモデルが存在します。最もよく使用されていると思われるのは「隣接リストモデル」(子となる行の中で、親となる行のprimary keyやunique idを持っておくことで親子関係を表現するデータモデル)です。 ただし、このモデルでは「N階層以内の親を取得する」「N階層以内の子を取得する」ことは容易ですが、階層数に依存せず再帰的に「全ての祖先を取得する」「全ての子孫を取得する」ことが苦手です。*1 このような欠点を持たないデータモデルとしてここ数年で注目を集めているモデルとして「入れ子集合モデル」があります。 SQLで木と階層構造のデータを扱う(1)―― 入れ子集合モデル 従来のリレーショナル・データベースで階層データを扱うモデルには、「隣接リストモデル」や「経路列挙モデル」などが知られていますが、これらがデータ構造の

    入れ子集合モデルで子供データを取得する際のパフォーマンス - ka-ka_xyzの日記
    larker
    larker 2014/07/31
    入れ子集合モデルのパフォーマンスについて
  • https://makizou.com/1616/

    larker
    larker 2014/07/31
    階層化データの実装手法
  • 機械学習アルゴリズムへの招待 | POSTD

    機械学習の問題 については以前に紹介したので、次はどんなデータを収集し、どんな機械学習アルゴリズムを使うことができるのかを見ていきましょう。投稿では、現在よく使用されている代表的なアルゴリズムを紹介します。代表的なアルゴリズムを知ることで、どんな技法が使えるかという全体的なイメージもきっとつかめてくるはずですよ。 アルゴリズムには多くの種類があります。難しいのは、技法にも分類があり拡張性があるため、規範的なアルゴリズムを構成するものが何なのか判別するのが難しいということですね。ここでは、実際の現場でも目にする機会の多いアルゴリズムを例にとって、それらを検討して分類する2つの方法をご紹介したいと思います。 まず1つ目は、学習のスタイルによってアルゴリズムを分ける方法。そして2つ目は、形態や機能の類似性によって(例えば似た動物をまとめるように)分ける方法です。どちらのアプローチも非常に実用的

    機械学習アルゴリズムへの招待 | POSTD
  • 平方数かどうかを高速に判定する方法 - hnwの日記

    平方数とは、ある整数の平方(=二乗)であるような整数のことを言います。つまり、0,1,4,9,16,...が平方数ということになります。 ところで、与えられた整数が平方数かどうかを判定するにはどうすれば良いでしょうか。与えられた整数の平方根の小数点以下を切り捨て、それを二乗して元の数になるかどうか、というのがすぐ思いつく実装です。 <?php function is_square($n) { $sqrt = floor(sqrt($n)); return ($sqrt*$sqrt == $n); } しかし、平方根の計算は比較的重い処理です。もっと高速化する方法は無いのでしょうか。 多倍長整数演算ライブラリGNU MPには平方数かどうかを判定するmpz_perfect_square_p関数が存在します(PHPでもgmp_perfect_square関数として利用できます)。稿ではこの実装

    平方数かどうかを高速に判定する方法 - hnwの日記
  • Facebookのアルゴリズムに負けないために知っておきたい超重要な23の統計|グロースハックジャパン|Growth Hack Japan

    edited by Ryutaro Mori Follow us on Twitter Follow us on Facebook Facebookのアルゴリズム変更により、投稿のリーチ数が激減するケースが頻発しています。 広告に逃げる企業も多いのが実情ですが、これではGoogleSEOの二の舞で、結局リスティングに逃げていることと変わりません。 日ご紹介する「Facebookのアルゴリズムに負けないために知っておきたい超重要な23の統計」を読んで、データに基づいた対策を行いましょう。 参考: Buddymedia: Strategies for effective facebook wall posts Making Your Facebook Posts Matter: 7 Statistics that Can Raise Your Engagement Rate 写真付き投稿

    Facebookのアルゴリズムに負けないために知っておきたい超重要な23の統計|グロースハックジャパン|Growth Hack Japan
  • 実践・最強最速のアルゴリズム勉強会 第二回講義資料(ワークスアプリケーションズ & AtCoder)

    2. はじめに! • 講義では、ソースコードを扱います。 • 前面の資料だけでは見えづらいかもしれないので、 手元で閲覧できるようにしましょう。 • URLはこちらから – http://www.slideshare.net/chokudai/wap-atcoder2 – URLが打ちづらい場合は、Twitter: @chokudaiの最新発言 から飛べるようにしておきます。 • フォローもしてね!!! 2014/3/16 2 3. ©AtCoder Inc. All rights reserved. 3 目次 1. 勉強会の流れ 2. 競技プログラミングって? 3. シミュレーション問題 4. 全探索問題 5. 日のまとめ 2014/3/16 3

    実践・最強最速のアルゴリズム勉強会 第二回講義資料(ワークスアプリケーションズ & AtCoder)
  • 第4回 memcachedの分散アルゴリズム | gihyo.jp

    株式会社ミクシィの長野です。第2回、第3回と前坂がmemcachedの内部について紹介しました。今回は内部構造から離れて、memcachedの分散についての紹介をいたします。 memcachedの分散 連載の1回目に紹介しましたが、memcachedは「分散」キャッシュサーバと言われていますが、サーバ側には「分散」の機能は備わっていません。サーバ側には当連載の第2回、第3回で前坂が紹介したメモリストレージの機能のみが組み込まれており、非常にシンプルな実装となっています。では、memcachedの分散はどのように実現しているのかと言うと、すべてクライアントライブラリによって実現されます。この分散方法はmemcachedの大きな特徴です。 memcachedの分散とは ここまで数度「分散」という言葉を用いてきましたが、あまり詳しく触れてきませんでした。ここでは各クライアントの実装に共通する大ま

    第4回 memcachedの分散アルゴリズム | gihyo.jp
    larker
    larker 2014/03/04
    Consistent Hashingの説明
  • Consistent hash

    (in japanese)コンシステントハッシュ法の簡単な説明でうす。ネットでググって出てくる以上の内容はありませんRead less

    Consistent hash
  • コンシステントハッシュを使う際の仮想ノード数の決め方 - にょきにょきブログ

    コンシステントハッシュ法は便利なアルゴリズムだが、注意点がある。 仮想ノード数をいくつにするかという問題で、仮想ノード数が多ければ多いほどファイルは均一に分散するというわけではないという事実だ。 多数のキャッシュオブジェクトをいくつかのキャッシュコンテナにコンシステントハッシュ法で分散させるとしよう。キャッシュオブジェクトの個数を 10000 個、キャッシュコンテナの個数を 10 とすると、キャッシュコンテナあたりの平均キャッシュオブジェクト保有数は 1000 個だ。 果たして、あるハッシュアルゴリズムでは、どのくらいの仮想ノード数で、どのくらい均一に分散するのだろう? MD5 でのテスト 下記グラフは、横軸が仮想ノード数、縦軸が1キャッシュコンテナあたりの平均キャッシュオブジェクト保有数に対する標準偏差の割合だ。 従って、縦軸は 0 に近ければ近いほど均一に分散することを表す。 ハッシュ

    コンシステントハッシュを使う際の仮想ノード数の決め方 - にょきにょきブログ