タグ

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

  • DO++ : 初夏まとめ

    チェコから帰ってきたまとめ ・相変わらずいろいろな人と会い飲んだりくったりしてます。楽しい人ばかり。輪を広げていけたらなぁと。 ・Compressed Sensing周辺を最近読み進めているが面白い。最初ここで知った。Taoによる平易な解説解説 理論的な解説 L1-normとつながってたり圧縮とつながってたり。 ・情報科学科(IS)の図書室をずっと守ってきた方が引退なされるとのことでOB・OGがかなり集まってお祝い。ISで研究室の枠を越えてこんなに集まったのは初めてではないでしょうか。ごくろうさまでした! ・未踏ユースのブースト合宿に参加してきました。面白い発表かつ、それ以上に相変わらず個性豊かな人ばかりで楽しかったです。また、OBの方々とも久しぶりにあって近況を報告しあいました。年月経つのはやいなぁ。老いた ・最近ラグビーの南半球の強豪3カ国が戦うトライネーションと最高峰のラグビーリーグ

    DO++ : 初夏まとめ
    lockcole
    lockcole 2007/07/17
    Compressed Sensingというのが面白いらしい。あとトライネーションとスーパー14を見てるとのこと。あぁ最近は見てないな・・・。
  • SubversionのDiffをC++に移植

    何ですかこれは? 二つのシーケンスのLongest Common Subsequence, Longest Common Subsequence Distance及びShortest Edit Scriptを求めるクラス。 Subversionのコードを、C++に移植したものです。 アルゴリズムは、"An O(NP) Sequence Comparison Algorithm" (Sun Wu et al.)に述べられているものと同一で、計算量は最悪でO(NP)、平均的にはO(N+PD)です。ただし、N=二つのシーケンスの長さの和、P=D/2-Δ/2、D=LCS距離、Δ=二つのシーケンスの長さの差です。 ここでいうLCS距離(longest common subsequence distance)は、あるシーケンスを別のシーケンスに変化させるために必要な、シンボルの挿入及び削除操作の最小

    lockcole
    lockcole 2007/07/10
    単体のDiffライブラリ。Subversionから移植。ライセンスはSVNと同じ。サンプルコード付き。
  • mixi Engineers’ Blog » Mixi::Music->recommend_music();

    ミクシィ開発部アプリ開発チームのk_joeです。今回は先日『極秘裏に』改善されたmixiミュージックのアルゴリズムについて紹介したいと思います。 このブログを読んでる方々はmixiミュージックって使ったことあるのでしょうか?僕は心配症なので使ったことない人のために(宣伝ついでに)軽く説明からさせていただきたいと思います。mixiミュージックは「音楽で人をつなぐ by mixiミュージック担当」を理念として、個人が聞いた音楽をベースにいろいろな繋がり・関連性を生み出そうというサービスです。自分の聞いてる音楽についての情報をみんなで共有できて、その繋がりから新しい音楽との出会いがあるってすばらしいことですよね。(/宣伝終) mixiミュージックには自分の聞いている音楽からお勧めの音楽を提示するサービスとアーティストのリスナーがよく聴いている他のアーティストを提示するサービスがあります。ユーザが

    lockcole
    lockcole 2007/07/06
    Mixiミュージックのレコメンド機能を実現しているアルゴリズム,6月に変更されたバージョンの解説。
  • Javascriptでdiffる ( with 形態素解析 ) (nakatani @ cybozu labs)

    Javascript で diff というのはいくつか試された例はあるようですが、まだこれといった決定打は出ていない様子です。 実は diff は見た目ほど軽い処理ではないので、Javascript にやらせるのはこれが結構大変…… diff の計算量は、おおざっぱに言うと比較対象の要素数の二乗に比例し(実際にはそれより小さくすることができるのですが、まあ話のイメージとして)、かつメモリを大量に消費するので、バッチ的な処理に最適化されていない Javascript にはどうしても荷が重いものとなってしまいます。 比較対象の要素数を減らせば当然計算量は減りますが、行単位で比較してもあまり嬉しくない(わざわざ Javascript で処理するということは自然文が対象と思って良いでしょう)。最小の文字単位だとギブアップ。 ということは形態素解析で分かち書きして、単語単位で diff するのが J

    lockcole
    lockcole 2007/06/30
    パフォーマンスにも留意したJavascriptのdiff。Greasemonkeyスクリプトで動作を確認できる。アルゴリズムは「An O(NP) Sequence Comparison Algorithm」を利用。
  • てっく煮ブログ - 四則演算を JavaScript で実装する

    aki noteGoogle 電話面接を受けました orz (いまは消えてるけど)にて割り算が壊れました。自分で実装してみてくださいという質問が紹介されていた。せっかく(?)の機会なので、割り算だけでなく、四則演算を全部壊してみて、JavaScript で実装して見ることにした。JavaScript を選んだのは、コンパイル不要、ビット演算がある、Firebug で手軽に確認できる、という理由から。それ以上の深い意味はない。ということで、次のような問題に一般化してみた。問い四則演算を JavaScript で実装しなさい。演算子は ==、!= およびビット演算子のみ使ってよいものとします。補足例えば、for 文で for(var i = 0; i { // ... } と書くためには、++ 演算子は次のように定義できる。 function increment(i){ var c =

    lockcole
    lockcole 2007/06/29
    単純な四則演算命令をJavascriptで実装し直す。ビット演算が使えるのでそれで。たまに見ると勉強になる。2の補数の説明がGOOD。この辺,Cでアーキテクチャ依存したコードだとワケ分からん最適化してたりして面白そう。
  • データ圧縮法概説 目次

    最終更新日:2001年7月2日 第1章へ webmaster@snap-tck.com Copyleft (C) 2000 SNAP(Sugimoto Norio Art Production)

    lockcole
    lockcole 2007/06/29
    データ圧縮のアルゴリズムについて丁寧に解説されている。
  • blog.8-p.info: Comet 勉強会 #2

    「来月までに勉強してきますねー」といってわかれたのに全然勉強してないなー、と後ろめたい気持ちで日曜日に恵比寿に行ったら、第一回に比べてものすごい勢いで人が減ってた件。ひどい! でも、相変わらず実装・運用している人のはなしがずいぶん聞けて勉強になった。「Comet といえば」感のある Lingr とかね。以下時系列順じゃなくて話題ごとに並べ直しているので注意。 Erlang 実際に見てみたけど、前回の予想はそんなに外れてなかった。 魔法は無い。 配布されている tarball が最近でかくなったのは、コンパイル済みの中間コードも同梱されるようになったから。 Erlang ってもともと UNIX 育ちではないよね MD110 という交換機むけのシステムに書かれたらしい epoll とか使ってるの? → grep するぶんにはあったよ Erlang のプロセス (!= UNIX プロセス) は軽

    lockcole
    lockcole 2007/06/29
    Erlang, C10K, Shooting Star, Lingr, Jettyなどの話題。濃い。Lingrのマルチスレッド・IO多重化の話は特に興味深い。
  • suffix array

    更新履歴 2004/01/07  O(N) 構築アルゴリズム三種追加(Ko &Alulu, Kim & al., Karkkainen & Sanders) Suffix Arrayは、最近注目を集めているデータ構造です。その理由として、 (1)大規模なデータに対して、高速に検索、情報抽出を行うことができる (2)BWTとしてデータ圧縮に用いることができる。 ことが挙げられます。(1)に関しては自然言語処理において、膨大な量のコーパスから情報(例えば、単語の出現回数など)を調べるときににSuffix Arrayを用いると非常に高速に求めることができます。 膨大な量のコーパスに基づいた自然言語処理が盛んになってきている今、Suffix Arrayが注目を集めています。 また、ゲノム情報を調べるバイオインフォマティクスにおいても、ここの配列と似ている部分(例えばCCAG)を調べるといった場合

    lockcole
    lockcole 2007/06/27
    Suffix Arrayアルゴリズムについての解説。
  • NaokiTakahashiの日記 - 乱数について

    lockcole
    lockcole 2007/06/26
    カルドセプトサーガに見る,乱数の基本と,乱数を決してナメてかかっちゃあいけない理由。人為的な問題が大きい。FF2の話が面白かった。
  • 最大エントロピーモデル - DO++

    自分の復習も含め、最大エントロピーモデルについて勉強会で発表しました。発表資料 [ppt] [pdf] 今年のACLやICMLなどでの発表などを解説してます。論文中になかった式導出とかもしてみてます。 発表中では結構口頭で補足した部分があって、この資料だけでは不十分だと思います。適宜引用先などを参照してください。 最大エントロピーモデルは高次元の確率分布推定に適していて自然言語処理や、最近だと動植物がどのように分布しているかなどの推定等、広い分野で使われている確率モデルです。 #修正+質問・回答スライドを追加しました

    最大エントロピーモデル - DO++
    lockcole
    lockcole 2007/06/26
    発表のpdfとpptが公開されてる。「最大エントロピーモデルは高次元の確率分布推定に適していて自然言語処理や、最近だと動植物がどのように分布しているかなどの推定等、広い分野で使われている確率モデル」
  • 第1回 アルゴリズムと計算量---「計算量理論」を理解し,アルゴリズムを評価する

    ITエンジニアの皆さんなら,一度は「情報工学」を学んだことがあるかもしれない。しかし,その知識をしっかり身に付けている人は少ないのではないだろうか。連載では,プロフェッショナルの必須知識と言える情報工学の様々な理論について解説していく。 毎日の仕事に追われていると,ついITの原理原則を忘れがちになるものだ。何事にも言えることだが,基礎を理解してこそ,初めて応用ができるのである。そこでこの連載では,ITの根幹を成す学問体系である「情報工学」を解説していく。おそらく学生時代や入社時の研修で習った方も多いとは思うが,この機会に復習していただきたい。必ず新たな発見があるはずだ。 第1回はアルゴリズムの「計算量理論」を取り上げる。計算量理論とは,一見してつかみどころのないアルゴリズムを定量的に把握し,その良し悪しを評価する考え方である。 規則数と適用回数に着目する アルゴリズム(Algorithm

    第1回 アルゴリズムと計算量---「計算量理論」を理解し,アルゴリズムを評価する
    lockcole
    lockcole 2007/06/26
    時間計算量と領域計算量,アルゴリズムのオーダー,最大値と平均値,それからP問題とNP問題を紹介。NP問題の例は「巡回セールスマン問題」。計算量の基礎を知るうえではかなり良い記事。
  • Java で Suffix Array - odz buffer

    なんか Java で Suffix Array なコードというリクエストがあったので簡単に。 とりあえず Suffix Array の構築だけ。効率とか一切無視で。 import java.io.IOException; import java.util.Arrays; import java.util.Comparator; import java.util.regex.Matcher; import java.util.regex.Pattern; public class SuffixArrayBuilder { public void build(String text, Integer[] sa) { Arrays.sort(sa, new SuffixComparator(text)); } private static class SuffixComparator imple

    Java で Suffix Array - odz buffer
    lockcole
    lockcole 2007/06/25
    Suffix Arrayを構築するクラス「SuffixArrayBuilder」をJavaで実装。勉強になる。
  • 凸最適化 - DO++

    凸最適化問題に触れる機会が多くなり、復習しています 凸最適についてはboydが有名ですが(なによりpdfがおいてある)、730pは読むのが大変です。講義用スライドが絵も多くおすすめです。 凸最適といえば、離散凸最適もちゃんとおさえときたいですが、よさそうなチュートリアルとかはないですかねぇ。 凸が縦に並ぶとおもしろいなぁ

    凸最適化 - DO++
    lockcole
    lockcole 2007/06/23
    凸最適化問題。「凸最適についてはboyd本が有名ですが(なによりpdfがおいてある)、730pは読むのが大変です。講義用スライドが絵も多くおすすめです。」とのこと。
  • 第7回 多対多の関係を賢く扱う

    100×100の格子上に四角形が32個あります(図1)*1。ある四角形を新たに格子の上に置いたときに,元からある四角形のうち,これに重なるものの番号を示してください。ただし,この問題で扱うすべての四角形のX,Y座標は,0から100までの整数値をとることになります。 私は待ち合わせが苦手です。人の顔を覚えるのがまったく不得意で,ましてや多くの人の中から見つけ出すとなるともうパニックになってしまうからです。そういうときに限って携帯電話を忘れていたりして…。 「多量のデータの中から条件に合致するものを探索する」ことは当に大変です。一番の問題は,時間がかかるところでしょう。1対多で検索する場合はともかく,多対多で探索するときには,アルゴリズムの優劣がモノをいいます。今回はその一例として「四角形の重なり具合を調べる方法」を取り上げ,ここからアルゴリズムの工夫の仕方について紹介します。 今回紹介する

    第7回 多対多の関係を賢く扱う
    lockcole
    lockcole 2007/06/22
    当たり判定などで使われる,四角形の重なりの有無を確認するアルゴリズムについて。単純な方法のほか,領域を区切って木構造をつくり,判定回数を減らすアルゴリズムも。
  • Drupal, computer science, random bits | dikini.net

    lockcole
    lockcole 2007/06/21
    Drupalの実装について,コンピュータサイエンス的な視点での考察。hook関数を用いた動的バインディング,ノードシステム,構造化配列など。特徴と利点。
  • 脱 超初心者 Javaアルゴリズム問題集 第1回:CodeZine

    「アルゴリズム(algorithm)」は、何らかの目的を果たすための手順や方法です。開発の世界では、数行のプログラムから大きなシステムに至るまで、大小さまざまなアルゴリズムが存在します。 現在では、便利なライブラリが各種提供されているため、自分で作成する必要もなくなってきましたが、アルゴリズム知ることでプログラミングの基礎力、応用力を養うことができます。連載では、基礎から応用まで全10回に渡ってJavaによるアルゴリズムの例題を紹介します。プログラム経験が3ヶ月もあれば十分解くことができるでしょう。最初は腕慣らしから始まります。 問題にはポイントやヒント、さらにランク分けをした作成目安時間を書いていますので、解答例を見ずに「Aランク」を目指して挑戦してみてください。再挑戦をする場合の時間は、元の時間から-30%くらいを目安にしてください(例えば1回目が60分の場合、2回目は48分)。第1

    lockcole
    lockcole 2007/06/16
    アルゴリズム問題集の第一回。かんたんな無限ループとIF条件文の組み合わせ。解答にかかった時間でスキルを判断するというもの。まぁ今回の問題はどこにでも出てくる練習問題だから,一度経験があればできるよね。
  • 最速インターフェース研究会 :: HTMLドキュメントを解析して特徴的なループを見つけるBookmarklet

    - 全てのDOMノードを列挙する - ノードは次のように文字列化される。 0: /html[0]/body[0]/div 1: /html[0]/body[0]/div[0]/div 2: /html[0]/body[0]/div[0]/div[0]/ul[0]/li 3: /html[0]/body[0]/div[0]/div[0]/ul[0]/li 4: /html[0]/body[0]/div[0]/div[0]/ul[0]/li 5: /html[0]/body[0]/div[0]/div[0]/ul[0]/li 直前の階層までは添え字つき、最後のノードはタグ名のみにする。 class名、id名は排除する。各々のサイトのルールで記述されたruleよりも タグのネスト構造の方が変化に強いし機械的に抽出しやすいのではないか? 出現回数でソートする。li要素2-5はループであることが分か

    lockcole
    lockcole 2007/06/15
    パスを文字列にして出現頻度をカウントするJavascriptのコード。
  • 最速インターフェース研究会 :: ハッシュキーの存在チェックを超高速に省メモリで行う方法

    リンク先まとめて登録できる機能が付きました。 http://blog.livedoor.jp/staff_reader/archives/51034585.html かとゆー家断絶からリンク張られてるサイトをまとめて登録とか http://reader.livedoor.com/subscribe/?url=http%3A%2F%2Fwww6.ocn.ne.jp%2F~katoyuu%2F&extract=on スタートマック体験モニタのブログをまとめて登録とか http://reader.livedoor.com/subscribe/?url=http%3A%2F%2Fwww.apple.com%2Fjp%2Farticles%2Fstartmac_monitor_2%2Fwinners.html&extract=on できます。 リンク先の全件にAuto Discoveryをかけると、

    lockcole
    lockcole 2007/06/08
    おお,BloomFilterをここに活かしたのか。賢い。
  • RenderNote - RenderNote

    Render Note これは、Render Note である... Render Note のルール 13 日以内に更新をし続けないと所有者は死亡してしまう しかしこれは嘘ルールらしい コンピュータグラフィックスのレンダリングアルゴリズムや理論についてのメモをまとめたものです。 コンパイラ コンパイラツール シェーダコンパイラ サンプリング 乱数 モンテカルロ法などで使われる。 低い違い量列 主に準モンテカルロ法で用いられるサンプル列。準乱数, LDS とも呼ばれる。 サンプリングパターン 光輸送 メトロポリス光輸送 パストレーシング レンダリング グラフィックス一般 モンテカルロレイトレーシング 逐次モンテカルロ法 空間データ構造 交差判定 BRDF レイ微分 省メモリレンダリング メッシュ圧縮 大域照明入門 数学 球充填問題 クリフォード代数 モンテカルロ法 モンテカルロ積分 マ

    lockcole
    lockcole 2007/04/09
    CG関係のアルゴリズムや理論をまとめたページ。サンプリング,光輸送,レンダリング,数学などのカテゴリがある。勉強用。
  • http://www.cas.dis.titech.ac.jp/~higo/wiki/study/index.php?%C2%E85%B2%F3%CA%D9%B6%AF%B2%F1

    lockcole
    lockcole 2007/04/03
    次世代アルゴリズム研究会の第五回研究会。「局所モデリングと時区間論理を用いた時系列データマイニング」に興味有り。