タグ

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

タグの絞り込みを解除

Algorithmとalgorithmに関するclavierのブックマーク (353)

  • 5つのキュレーションサービスから学ぶ記事配信アルゴリズム

    アプリエンジニア。株式会社マイナースタジオ所属。主に扱っているプログラミング言語はSwiftRubyPHPPython。イカが好き。 みなさんは情報収集をする際にはどのようなものを利用していますか? 最近では様々なキュレーションサービスがリリースされており、そのWebサイトやアプリを使用している方も多いのではないかと思います。 今回はキュレーションサービスの中でも記事配信アルゴリズムが興味深いものをまとめてみました。各々のキュレーションサービスの特徴的なアルゴリズムとともに紹介していきます。 キュレーションのアルゴリズム サービスの紹介の前にキュレーションサービスにある主な機能について紹介します。 - 記事収集機能 ユーザーに配信するための記事を収集する機能です。RSSSNSなどから抽出したURLが情報源として利用されることが多いです。 - 記事評価機能 記事が正しいものであるか、

    5つのキュレーションサービスから学ぶ記事配信アルゴリズム
  • Mathの高速化を検証する - Qiita

    Mathは当に遅いのか 色の距離(色差)を計算するときにちょっとだけ試してみたので,実際によくある(小手先)高速化手法でMathが速くなるのか検証してみた. 検証方法 JavaAndroidで検証. 単純に実行時間をSystem.nanoTimeで取得し,比較している. 検証順や検証タイミングで最適化がかかったりするので,何回か実行して落ち着いた値で比較している. Javaの検証はIntel Xeon E5 3.5GHzのMac Pro,Androidの検証はQualcomm Snapdragon 800 MSM8974 2.2GHzのSO-02Fで試している. 従来のMathクラスと,実装したDMathクラスで比較した. 10万回実行して1回あたりの実行時間をnano秒で表示している.詳しい方法は一番下を参照. べき乗の高速化 べき乗を計算するMath.pow()は小数のべき乗もサポ

    Mathの高速化を検証する - Qiita
  • GitHub - kodecocodes/swift-algorithm-club: Algorithms and data structures in Swift, with explanations!

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - kodecocodes/swift-algorithm-club: Algorithms and data structures in Swift, with explanations!
  • Algorithm 速いアルゴリズムを書くための基礎

    ーーーーーーーーーーーーーーーーーーーーーーー schoo WEB-campusは「WEBに誕生した、学校の新しいカタチ」。 WEB生放送の授業を無料で配信しています。 ▼こちらから授業に参加すると、先生への質問や、ユーザーとのチャット、資料の拡大表示等が可能です。 https://schoo.jp/class/427/room ーーーーーーーーーーーーーーーーーーーーーーー

    Algorithm 速いアルゴリズムを書くための基礎
  • R-tree - Wikipedia

    Simple example of an R-tree for 2D rectangles Visualization of an R*-tree for 3D points using ELKI (the cubes are directory pages) R-trees are tree data structures used for spatial access methods, i.e., for indexing multi-dimensional information such as geographical coordinates, rectangles or polygons. The R-tree was proposed by Antonin Guttman in 1984[2] and has found significant use in both theo

    R-tree - Wikipedia
  • 最近よく聞くQuorumは過半数(多数決)よりも一般的でパワフルな概念だった - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 最近では珍しくもなくなった"Quorum"という言葉。Zookeeper, etcd, Serfといったクラスタ中でデータのレプリケーションを行ってくれるようなツールや、Cassandra, Riakといった分散データベース(NoSQL系)のようなツールにおいても、データの複製に一貫性を持たせる仕組みとしてよく聞かれます。 しかしながら、多くのスライドやWebの記事を読んでも、"Quorum"という語が意味するところは要するに「過半数ノードによる多数決」というような説明が多いように感じていました。 にも関わらず、"Quorum"と呼ばれ

    最近よく聞くQuorumは過半数(多数決)よりも一般的でパワフルな概念だった - Qiita
  • gonp〜Goによるdiffのアルゴリズム実装〜 - Qiita

    この記事は、2015年のGo Advent Calendarの25日目の記事です。 Go Advent Calendarのその2とその3ができる前、最終日だけ空いてて滑り込みで登録したのはいいけど、なんかネタないかなーと思いつつ、自分のgithubリポジトリを漁っていたらdiffのアルゴリズムをGoで実装したやつが出てきたので紹介してみます。 gonp〜Goによるdiffのアルゴリズム実装〜 gonpはGoによるdiffのアルゴリズム実装です。元々は昔々C++で書いたdtlというdiffライブラリの簡易移植で、diffを取るのに必要な以下の要素を求めることができます。 編集距離(Edit Distance) LCS(Longest Common Subsequence) SES(Shortest Edit Script) diffのアルゴリズムにはさまざまな種類があり、中でもdiffに限ら

    gonp〜Goによるdiffのアルゴリズム実装〜 - Qiita
  • 計算グラフの微積分:バックプロパゲーションを理解する | POSTD

    はじめに バックプロパゲーションとは、ディープモデルの学習を計算可能にしてくれる重要なアルゴリズムです。最近のニューラルネットワークではバックプロパゲーション (誤差逆伝播法) を使うことで、最急降下法による学習が愚直な実装と比べて1000万倍速くなります。 例えば,バックプロパゲーションでの学習に1週間しかかからないのに対して、愚直な実装では20万年かかる計算になります。 ディープラーニングでの使用以外にも、バックプロパゲーションはさまざまな分野で使えるとても便利な計算ツールです。それぞれで呼ばれる名称は違うのですが、天気予報から、数値的安定性を分析する時にまで多岐にわたり使用できます。実際に、このアルゴリズムは、いろいろな分野で少なくとも20回は再開発されています(参照: Griewank(2010) )。一般的な用途自体の名前は”リバースモード微分”といいます。 基的に、この技術

    計算グラフの微積分:バックプロパゲーションを理解する | POSTD
  • Go言語でバイトニックソート実装してみた - Qiita

    こんばんは。 Go言語 Advent Calendar 7日目ばっちり遅刻しました。 普段はGo言語ではなくJavaScriptでWebGLを書いています。 何故突然Go言語Advent Calendarに登録したかというと__自分を追い込みたかったから__です。 なかなかGo言語を覚えるきっかけが見つからなかったのでこれがチャンス!と勢いで登録しました。 そして追い込みすぎた結果遅刻しました。 ほぼ初めてのGo言語です、お手柔らかにお願い致します。 何故バイトニックソートか バイトニックソートは最良計算量と最悪計算量がともに$O(n\log(n)^2)$のソートアルゴリズムです。 クイックソートが平均計算量$O(n\log(n))$であることをを考えるとなんだか地味に見えるかもしれません。 ですが、バイトニックソートは並列計算ができるという驚異的な特徴を持っており、完全に並列化すると$O

    Go言語でバイトニックソート実装してみた - Qiita
  • Sorting Algorithms in Ruby — SitePoint

  • 「遺伝的アルゴリズム」がどのような仕組みなのかが2分でわかるムービー

    by fdecomite 複数の個体の中から、適応度の高い個体を優先的に選んで組み換え・突然変異などを繰り返し、解を探索していく「遺伝的アルゴリズム」がどういう仕組みなのか、2分で説明したムービーがYouTubeで公開されています。 Two Minute Papers - How Do Genetic Algorithms Work? - YouTube これは、物事を2分間で説明する「Two MinutePapers」というYouTubeのムービーシリーズの1で、Károly Zsolnai-Fehérさんが作ったもの。 ムービーの中でわかりやすい事例としてあげられているのは、「できるだけ既定のコースを進める車を自動で生み出す」という目的を遺伝的アルゴリズムでやってみるというBoxCar2D。 三角形といくつかのタイヤをつけた「車」をコンピューターが生成、できるだけ先へ進むことを目指し

    「遺伝的アルゴリズム」がどのような仕組みなのかが2分でわかるムービー
  • Distributed Locks with Redis

    A distributed lock pattern with Redis Distributed locks are a very useful primitive in many environments where different processes must operate with shared resources in a mutually exclusive way. There are a number of libraries and blog posts describing how to implement a DLM (Distributed Lock Manager) with Redis, but every library uses a different approach, and many use a simple approach with lowe

  • 乱数のたのしい話と遺伝アルゴリズム - きしだのHatena

    金曜日の「プログラマのための数学勉強会@福岡」で乱数の話をしてきました。 プログラマのための数学勉強会@福岡 #3 - connpass で、乱数の生成だとか、クイックソートや素数判定などの乱択アルゴリズムの話とかをしました。 乱数タノシイヨ 乱数のたのしい話 from なおき きしだ その中で、遺伝アルゴリズムで巡回セールスマン問題(TSP)を解くというのをやってみました。遺伝アルゴリズム、すいぶん昔から名前は知ってて、どういうアルゴリズムかも知ってて、実装もそんな難しくないと知りつつ、書く機会がありませんでした。なので、この機会に書いてみようと。 とりあえず最初に完全にランダムでTSPを解いてみます。 TSP with random ぐちゃぐちゃですね。 下部のグラフはその時点での最短距離。最初に距離が短いものをみつけていくけどだんだんみつかりにくくなる、という感じになっています。 1

    乱数のたのしい話と遺伝アルゴリズム - きしだのHatena
  • 累積和の使い方を学ぶ – 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

    $k$は定数で、だいたい0.04~0.06くらいです。Rの値によって以下のように分類できます。 Rが大きい: corner Rが小さい: flat R < 0: edge 図にすると、以下のようになります。 CSE/EE486 Computer Vision I, Lecture 06, Corner Detection, p22 これで手早くcornerを検出できるようになりました。ここで、corner検出についてまとめておきます。 cornerは複数のedgeが集まる箇所と定義できる 変化量をまとめた行列の固有ベクトルからedgeの向き、固有値の大きさから変化量の大きさ(edgeらしさ)がわかる 2つの固有値の値を基に、edge、corner、flatを判定できる 固有値の計算は手間であるため、判定式を利用し計算を簡略化する なお、Harrisはedgeの向きである固有ベクトルを考慮す

    画像処理の数式を見て石になった時のための、金の針 - Qiita
  • マルコフ連鎖を使ってブログの記事を自動生成してみた - karaage. [からあげ]

    マルコフ連鎖による文章自動生成 ちょっと文章の自動生成に興味が湧いたので、試してみることにしました。まずは事前調査したところ、既にやっている例がたくさんみつかりました。記事末の参考リンクにまとめましたので興味ある方は参照ください。Deep Learningやマルコフ連鎖を使うのがトレンド(?)のようです。当はDeep Learningでやってみたかったのですが、何度か環境変えてチャレンジしたのですが、悉くエラーが出て失敗したため(chainerのバージョンアップの影響?)、諦めてマルコフ連鎖で実現することにしました。マルコフ連鎖に関してはここでは詳細は説明しませんので、興味ある方は自分で調べてみて下さい。自分もちゃんと理解できませんでした。イメージ的には、元となる文章の文章の流れのようなものを解析して、その解析した流れを元に、ある単語から順番に連想ゲームのように単語を並べていって文章を生

    マルコフ連鎖を使ってブログの記事を自動生成してみた - karaage. [からあげ]
  • Workflow Engine をつくろう! Part 1(Task の依存関係の解決) - Qiita

    Part 1 Task の依存関係の解決 Part 2 Workflow の冪等性 Part 3 Task 間でのデータのやり取り Part 4 Task の並列実行 Workflow Engine って何? Workflow Engine と言っても多機能なものから、シンプルなものまで様々なものがあります。そこで、主旨がぶれないように、この記事での Workflow Engine は、以下の要件を満たすソフトウェアとします。 Workflow Engine とは、依存関係のある複数の Task を、意図した順番通りに実行するもの この記事では、この要件を満たす Workflow Engine を Ruby でつくる方法について解説します。 依存関係を記述する 依存関係を解決するコードを書く前に、依存関係を記述する方法をまず決めましょう。 依存関係を記述するには、luigi のように Ta

    Workflow Engine をつくろう! Part 1(Task の依存関係の解決) - Qiita
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • [Ruby]文字の間違い(揺らぎ)を検知するレーベンシュタイン距離とJaro-Winkler距離をRubyで使う方法 - 脳汁portal

    Levenshtein距離とJaro-Winker距離両方とも、二つの単語、文章の間の違い(距離)を調べる方法です。 Levenshtein Distanceレーベンシュタイン距離 - Wikipedia 1文字削った文字列の末尾にどのような文字を追加すれば一致するか見ることで、1文字削った文字列との距離から1文字加えた文字列との距離を求めることができる。 数値(距離)が低ければ低いほど、似ている文字列となる Jaro-Winkler DistanceJaro–Winkler distance - Wikipedia, the free encyclopedia ジャロ・ウィンクラー距離も同じく文字列間の距離を調べるが、こちらはミスタイプをより検知することが出来る。ミスタイプはミスワードとは違い、最初の数文字は正しいことが多いという研究結果から、こちらの方法ではPrefix bonusとし

    [Ruby]文字の間違い(揺らぎ)を検知するレーベンシュタイン距離とJaro-Winkler距離をRubyで使う方法 - 脳汁portal
  • Chainerを用いたマルウェア検出への取り組みについて - Longbow

    2015 - 12 - 13 Chainerを用いたマルウェア検出への取り組みについて この記事は Chainer Advent Calendar 2015 13日目 の記事です. はじめに Chainerで実装を進めているのですが,今回は構想的な話をします.ご容赦下さい. 私は 修士論文 でEディスカバリ *1 を対象に 自然言語処理 と 機械学習 を用いて研究を進めていますが,それとは別に,Deep Learningで マルウェア 検出に取り組んでいます.当は研究室配属された時に,これで論文書きたいと思っていましたが,色々大変であることが発覚したので,個人的に細々とやっている感じです.卒業までになんとか実現しようと奮闘しております. マルウェア を 機械学習 させるための戦略 マルウェア にも様々な種類がありますが,PEフォーマット *2 の マルウェア を対象にしております. マル

    Chainerを用いたマルウェア検出への取り組みについて - Longbow