タグ

algorithmとAlgorithmに関するtanakaBoxのブックマーク (301)

  • javascript - で bilateral filter (選択的ガウスぼかし)を実装してみた : 404 Blog Not Found

    2012年09月06日18:03 カテゴリアルゴリズム百選Math javascript - で bilateral filter (選択的ガウスぼかし)を実装してみた HTML5 Canvas Steve Fulton / Steve Fulton / 安藤 慶一訳 [原著:HTML5 Canvas] 「選択的ガウスぼかし」がえらい気に入ったので、アルゴリズムの学習も兼ねてJavaScriptでやってみたら思いの他使い物になりそうということで。 Demo: File APIを実装しているブラウザーで動きます。IEの方ごめんなさい。IEだと10以降になります。小さめのファイルを読み込ませて下さい。1024*1024ピクセルを一応の上限に設定してあります。(追記2021.11.29:上限を16Mピクセルまで上げました。その他CSS周り修正) Info: Source: Radius: Thr

    javascript - で bilateral filter (選択的ガウスぼかし)を実装してみた : 404 Blog Not Found
  • 機械学習 はじめよう 記事一覧 | gihyo.jp

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

    機械学習 はじめよう 記事一覧 | gihyo.jp
  • ImageMagick 改造入門 (その弐) 減色処理前編 | GREE Engineering

    こんにちは。クライアント基盤チームのよやです。 アバター等を表示する為に PNG や JPEG の画像を元に GIF アニメーションを生成する事がよくありますが、GIF は 256色までしか扱えない為、元画像が数万といった単位で色を使っていると減色処理に大変時間がかかります。そこで、ImageMagick の減色処理を改造して高速化した事例をご紹介します。 尚、一度に読む分量ではまとめ切れない為、前編と後編に分けました。前編は減色処理、後編はその改造について説明します。 プログラム構成では上の図の magick/quantize.c が減色処理に相当します。 まず、減色処理の一般的な話から始めます。 減色の利点 Web で見かける画像ファイルの多くは、1つのpixel(描画の最小単位)に対して、Red, Green, Blue が各々8bits で計 24bits(= 3bytes) 、透

    ImageMagick 改造入門 (その弐) 減色処理前編 | GREE Engineering
  • SIMD-oriented Fast Mersenne Twister (SFMT)

    SIMD-oriented Fast Mersenne Twister (SFMT): twice faster than Mersenne Twister*1. English Version 最新情報 SFMT ver1.5.1 をリリースしました。(2017/2/22) SFMT ver1.5 をリリースしました。 53bit精度double出力にバグがありました。(2017/2/7) SFMT 論文の正誤表 を追加しました。(2015/9/1) dSFMT ver2.2.3 をリリースしました。(2013/12/19) SFMT ver1.4.1 をリリースしました。(2013/12/19) dSFMT ver2.2.2 をリリースしました。 ver2.2.2 はVisual C++ 2012 でコンパイルエラーになる部分を修正しました。 (2013/9/17) dSFMT ver

    tanakaBox
    tanakaBox 2011/04/09
    新バージョン。
  • この機会にマスターしようぜ、正規表現、構文図、オートマトン - 檜山正幸のキマイラ飼育記 (はてなBlog)

    正規表現と構文図について解説します。オートマトンについても詳しく述べます。オートマトン・スゴロクで遊びましょう! 世間でよく知られている/使われている概念・方法にはこだわらず、僕(檜山)の感覚で一番わかりやすいと思われる筋書きと用語法/図式法を使って説明します。この記事に目を通して“感じ”が掴めたら、形式言語理論の教科書を読み始めることが出来るでしょう。 [追記]この記事の内容に対する具体例は、「正規表現とオートマトン:なんだ簡単じゃん、JavaScriptによる実装」にあります。[/追記] 内容: 正規表現 正規表現の例 構文図 基記号 連接 選択 省略可能 繰り返し ストレートワイヤーによるレイアウト調整 有限状態オートマトン 有限状態オートマトンの実行 バックトラックと先読み スゴロクとオートマトン コマをたくさん使うスゴロクと並列処理 非決定性オートマトンと決定性オートマトン 正

    この機会にマスターしようぜ、正規表現、構文図、オートマトン - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 空き缶でKJ法をやってみるとこんな良い事がある/分類という病をいやすために

    KJ法には、一望する、並べ替える、突き合せる、名付ける、という知的作業の4エレメントがすべて含まれている。 だが、なかなか使いこなすまで行く人は少ない。 やってみたことはあるけれど、平凡な結果に終わったという経験が、多くの人にあるのではないだろうか? KJ法を説明することは、「なぜあなたがやるKJ法はうまく行かなかったか」を説明する事に、ほとんど等しい。 一番よくあるのが「分類という病」だが、あるファシリテーターは「分類」をたしなめるのではなく(そうするとかえって「治療抵抗」が引き起されるだけなので)、あえてさらに「分類」に追い立てる事で、この罠を抜けるところまで持っていく。病気の経過を速度を上げて通り抜けさせるところなど、なかなかおもしろい。 ワークショップ形式でやる場合、参加者に持って来てもらうのは、ジュースの空き缶。とりあえず1グループ100個くらいは欲しい。 最初は細かい指示も暗示

    空き缶でKJ法をやってみるとこんな良い事がある/分類という病をいやすために
  • QuickDrawはどのように素早く円を描いていたのか? - ザリガニが見ていた...。

    かつてのMac OS9までの描画エンジンの主役はQuickDrawが担っていた。GUIなOSでは、文字も含めてすべてをグラフィックとして扱うので、画面に見えているすべてのもの*1はQuickDrawによって描かれていたことになる。描画エンジンは、GUIなOS開発の要となる技術である。その出来が、GUIなOS開発の成否を分けるとも言える。 そして、最初期のQuickDrawは、ビル・アトキンソンがたった一人で開発したそうである。 当時(25年以上前)のCPUは、動作クロックが8MHzという性能だった。(現在は2GHz=2000MHzかつ、複数コアが当たり前) そのような性能であっても、違和感なくマウスで操作できるOS環境にするために、斬新な発想や試行錯誤を重ね、相当な努力の末に開発されたのがLisaやMacintoshであった。 Amazon.co.jp: レボリューション・イン・ザ・バレー

    QuickDrawはどのように素早く円を描いていたのか? - ザリガニが見ていた...。
    tanakaBox
    tanakaBox 2010/03/24
     ローテク
  • はてなブログ | 無料ブログを作成しよう

    南のアワアワと北のグツグツ② ~デリーの早朝・インド 泡は、あればあるほど望ましい――。 演奏中のギタリストのような、寡黙な後ろ姿。シンとした中で「ジャボジャボ」だけが躍り響き、…まるで、ホースからの水を直撃されて飛沫を跳ね散らかしている――或いは、水の中にダイビングする自分の姿—―なんて想像で遊ぶのは、それ…

    はてなブログ | 無料ブログを作成しよう
  • 分散ストレージに使えるかもしれないアルゴリズム

    The document discusses EpiChord, an enhancement of the Chord distributed hash table. It presents EpiChord's lookup algorithm and its division of the address space to reduce routing table sizes while maintaining low diameter. Bloom filters are also summarized, including how they represent sets using bit vectors and can check for set membership with possible false positives. Techniques like vector c

    分散ストレージに使えるかもしれないアルゴリズム
  • Oracle Data Mining Techniques and Algorithms

    Most commonly used technique for predicting a specific outcome such as response / no-response, high / medium / low-value customer, likely to buy / not buy. Logistic Regression—classic statistical technique but now available inside the Oracle Database and supports text and transactional data Naive Bayes—Fast, simple, commonly applicable Support Vector Machine—Next generation, supports text and wid

  • 動的計画法とナップサック問題を学びたい人におすすめのサイト - ダウンロードたけし(寅年)の日記

    組み合わせ最適化の手法として「動的計画法」というモノがあります。 wikipediaから抜粋 動的計画法(どうてきけいかくほう、英: Dynamic Programming, DP) コンピュータ科学の分野において、ある最適化問題を複数の部分問題に分割して解く際に、そこまでに求められている以上の最適解が求められないような部分問題を切り捨てながら解いていく手法 一見難しそうですが、実は理解するのは以外と簡単です。いろいろな場面で応用が利く便利な手法ですので、覚えておいて損はないものです。コンピュータ系、情報系のお勉強をする人であれば、おそらく一度は習ったりするかもしれません。 ナップサック問題と動的計画法 動的計画法の一番親しみやすそうな例として「ナップサック問題」というのがよく取り上げられます。 こんな感じの問題です。 今ここに様々な大きさの品物が置いてあるとします。そしてそれらの品物は各

    動的計画法とナップサック問題を学びたい人におすすめのサイト - ダウンロードたけし(寅年)の日記
    tanakaBox
    tanakaBox 2010/03/08
    動的計画法のわかりやすい解説
  • 最強最速アルゴリズマー養成講座:アルゴリズマーの登竜門、「動的計画法・メモ化再帰」はこんなに簡単だった (1/5) - ITmedia エンタープライズ

    動的計画法とメモ化再帰 今回は、非常によく用いられるアルゴリズムである、「動的計画法」「メモ化再帰」について説明します。この2つはセットで覚えて、両方使えるようにしておくと便利です。 なお、メモ化再帰に関しては、第5・6回の連載の知識を踏まえた上で読んでいただけると、理解が深まります。まだお読みになっていない方は、この機会にぜひご覧ください。 中学受験などを経験された方であれば、こういった問題を一度は解いたことがあるのではないでしょうか。小学校の知識までで解こうとすれば、少し時間は掛かるかもしれませんが、それでもこれが解けないという方は少ないだろうと思います。 この問題をプログラムで解こうとすると、さまざまな解法が存在します。解き方によって計算時間や有効範囲が大きく変化しますので、それぞれのパターンについて考えます。 以下の説明では、縦h、横wとして表記し、プログラムの実行時間に関しては、

    最強最速アルゴリズマー養成講座:アルゴリズマーの登竜門、「動的計画法・メモ化再帰」はこんなに簡単だった (1/5) - ITmedia エンタープライズ
    tanakaBox
    tanakaBox 2010/03/08
    動的計画法のわかりやすい解説
  • 「ガベージコレクションのアルゴリズムと実装」という本を書きました。

    gcbook, gcai, GCGCLoverのみなさん、お待たせしました。「ガベージコレクションのアルゴリズムと実装」の情報公開です。 書名:ガベージコレクションのアルゴリズムと実装 著者:中村 成洋/相川 光 監修:竹内 郁雄 ページ数:472ページ 体価格:3,200円 発売開始日:2010年3月17日(水) ※地域・書店によって遅れることがあります ISBN:978-4-7980-2562-9 C3055 読み所 書は次の2つのテーマを扱います。 1.GCのアルゴリズム(アルゴリズム編) 2.GCの実装(実装編) アルゴリズム編では、これまでに考案されてきた数多くのGCアルゴリズムの中 から、重要なものを厳選して紹介します。伝統的かつ基的なものから、やや 高度なアルゴリズムを選定しています。GC独特の考え方や各アルゴリズムの特 性などを理解していただくのがアルゴリズム編の最大

    tanakaBox
    tanakaBox 2010/03/08
    超欲しい。監修が竹内先生。
  • Quicksilverは如何にして鋭い検索を行っているのか? - ザリガニが見ていた...。

    Quicksilverの検索性能が、感性をくすぐってきた。 「apple」→「AppleScript Editor」 「ase」→「AppleScript Editor」 「prol」→「Property List Editor」 「im」と入力して、「Image Capture」を起動したいが、「iMove」がトップヒットになってしまう...。 そんな状況でも、候補リストから2回連続で「Image Capture」を選択すれば、3回目以降は「Image Capture」がトップヒットになる。 直近のユーザーの好みを学習してくれるのだ。 もちろん、「ima」まで入力すれば「Image Capture」がトップヒットになる。 「ase」「prol」のような、単純な前方一致でも、部分一致でもない検索には恐れ入る。しかも、シンプルだけど学習もしてくれる。使うほどに手に馴染んでくる仕組みは、この辺

    Quicksilverは如何にして鋭い検索を行っているのか? - ザリガニが見ていた...。
    tanakaBox
    tanakaBox 2010/03/08
    鋭さの解説。
  • マルチコア時代の高並列性IOアーキテクチャ Wavy - Blog by Sadayuki Furuhashi

    シングルスレッドではもう遅い。 以前にマルチコア時代の高速サーバーの実装で、「ネットワークIOはマルチスレッドで動かすが、その他の部分はシングルスレッドで動かす」というIOアーキテクチャの実装(mp::iothreads)を紹介しました。iothreadsはロジック部分をシングルスレッドで書けるため実装の手間を抑えることができ、ネットワークIOがボトルネックになるプログラムには特に適していると思われます。 しかし実際にiothreadsを使ってプログラムを書いてみると、非常に負荷が高い状況でシングルスレッドの部分の処理速度がボトルネックになってしまうことがありました。 そこでマルチコアCPUの性能を引き出すために、徹頭徹尾マルチスレッドで動かすIOアーキテクチャを実装してみました。 1つのスレッドが、ある時はepoll_wait()し、ある時はread(2)を行い、ある時はイベントを処理す

    マルチコア時代の高並列性IOアーキテクチャ Wavy - Blog by Sadayuki Furuhashi
    tanakaBox
    tanakaBox 2010/03/08
    マルチスレッドIO
  • ルービックキューブの解き方 (application/pdf オブジェクト)

    tanakaBox
    tanakaBox 2010/02/25
    わかりやすい図解。
  • bayonやCLUTOが爆速な理由 - download_takeshi’s diary

    クラスタリングツールbayonを使っていて、常々「どうしてこんなに高速に処理できんのかなぁ」と疑問に感じていました。repeated bisectionという手法自体がk-means法などと比べると効率がいいのですが、それにしても、それだけでは説明がつかないほど爆速なわけです。 うまく例えられませんが、自前でk-meansのスクリプトを書いて比べてみると、自転車と新幹線くらいちがうという印象です。はじめてCLUTOを触った時、数万件程規模のクラスタリング処理が当に「あっ」という間に終わってしまい、びっくりした記憶があります。 きっと実装面でなにか特殊なことがあるんだろうなと思い、mixiエンジニアブログでbayonの記事を改めて読み漁っていたら、以下の部分が目に止まりました。 このクラスタの評価は、クラスタの各要素とクラスタの中心とのcosine類似度の和としています。この和が大きいほど

    bayonやCLUTOが爆速な理由 - download_takeshi’s diary
  • 入力された名前で適当に成分分析するロジック

    入力された名前で適当に成分分析するロジック 2010-02-08-1 [Programming] 一時期流行した「○○成分分析」を簡単に実現する方法。 サンプルとして perl のコード片で解説する。 コード(seibun.pl): #!/usr/bin/perl use strict; use warnings; use utf8; use Encode; use open ':utf8'; binmode STDIN, ":utf8"; binmode STDOUT, ":utf8"; my @data = ( ["パン", 37], ["甘夏", 19], ["苺", 41], ["納豆", 23], ["LOVE", 31], ); while (<>) { chomp; my $r_ref = name2seibun($_, \@data); foreach my $i (@$r

    入力された名前で適当に成分分析するロジック
    tanakaBox
    tanakaBox 2010/02/14
    成分分析について。案外簡単なんdなな。
  • Bayesian Setsによる関連文書検索システムStupa - mixi engineer blog

    都会よりも田舎が好きなfujisawaです。Bayesian Setsというアルゴリズムを使って、関連する文書を高速・高精度に検索できるシステムを作成しましたので、そのご紹介をさせていただきます。 Bayesian Setsとは Bayesian Setsはいくつかアイテムを入力すると、それを補完するようなアイテムを返してくれるアルゴリズムです。原著論文の先頭に"Inspired by Google Sets"と書かれているように、Google Setsを参考にして作成されています。実際にどのような出力が得られるか、Google Setsに以下の表のクエリを検索して試してみますと、 クエリ 出力 apple, banana chocolate, strawberry, vanilla, cherry, ... apple, macintosh software, windows, mac,

    Bayesian Setsによる関連文書検索システムStupa - mixi engineer blog
    tanakaBox
    tanakaBox 2010/02/05
    未読
  • jemalloc() ~ Firefox 3.0 爆速の理由 ~

    今日、IIJ 技術研究所で jemalloc() について簡単に説明しました。その資料を公開します。 jemalloc() 〜 Firefox 3.0 爆速の理由 〜

    jemalloc() ~ Firefox 3.0 爆速の理由 ~
    tanakaBox
    tanakaBox 2010/02/05
    mallocいろいろ