タグ

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

タグの絞り込みを解除

algorithmとAlgorithmに関するyukimori_726のブックマーク (473)

  • [O] 神嶌敏弘「推薦システムのアルゴリズム」

    « 脳年齢テスト 整数の瞬間記憶 | トップページ 神嶌敏弘「推薦システムのアルゴリズム」 [日記] 神嶌敏弘さんの「推薦システムのアルゴリズム」を、人工知能学会誌を借りて通読しはじめたところです。 - 人工知能学会誌:目次 -- http://www.ai-gakkai.or.jp/jsai/journal/contents/ - Vol.22 No.1(2007年1月) - Vol.23 No.1(2008年1月) - Vol.23 No.2(2008年3月) に掲載されており、全部で40ページ以上。 なんで急に読み始めたのかというと、ある疑問が湧いたからです。 以下のようなコンテストが開催され、人工知能学会も協賛してるみたいなので、楽しいかもなと興味をもったのです。 - リコメンデーションコンテスト -- http://kgmod.jp/contest/ # 参

  • netflix prize is over, 時間経過による嗜好性の変化 - DO++

    米国のオンラインDVDレンタルサービス「Netflix」が、現在利用しているレコメンデーションシステムの性能をはじめに10%改善したチームに100万ドルの賞金を与えるという触れ込みで始まったnetflix prizeは当初の予想よりも時間がかかったが、つい最近最初からトップを走り続けていたbellkorと、上位陣のコラボレーションのチームが10%の壁を破った(leaderboard)。 彼らの手法は「非常に多くの様々な種類のレコメンデーションシステムの結果を混ぜ合わせる」という愚直だがいかにも精度が出そうだという方法を採用している(、と昨年度の結果からは思われる。近々詳細は出るだろう。) 実際に使ってとどめになったかどうかは分からないが、彼らのチームの主要メンバーがKDDで新しい手法を発表しており、単一の手法による最高精度を達成している。ちなみに今年のKDD(データマイニング系の学会の最高

    netflix prize is over, 時間経過による嗜好性の変化 - DO++
  • 転置インデックスを実装しよう - mixi engineer blog

    相対性理論のボーカルが頭から離れないmikioです。熱いわっふるの声に応えて今回はTokyo Cabinetのテーブルデータベースにおける検索機能の実装について語ってみたいと思います。とても長いのですが、最後まで読んだあかつきには、自分でも全文検索エンジンを作れると思っていただければ嬉しいです。 デモ モチベーションをあげていただくために、100行のソースコードで検索UIのデモを作ってみました。Java 6の日語文書を対象としているので、「stringbuffer」とか「コンパイル」とか「倍精度浮動小数」とかそれっぽい用語で検索してみてください。 インデックスがちゃんとできていれば、たった100行で某検索エンジン風味の検索機能をあなたのデータを対象にして動かすことができます。ソースコードはこちら(テンプレートはこちら)です。 でも、今回はUIの話ではないのです。ものすごく地味に、全文検索

    転置インデックスを実装しよう - mixi engineer blog
  • ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室

    ゲームの作り方とアルゴリズムをジャンル別にまとめてみました。ゲーム制作や、プログラミングの勉強用にご活用ください。言語別ゲームプログラミング制作講座一覧もあわせてお読みください。 リンク切れがおきていたものは、URLを表示しておくので、Internet Archiveなどでキャッシュを表示させてみてください。 RPG ゲームの乱数解析 乱数を利用した敵出現アルゴリズムの解説 各種ゲームプログラム解析 FF、ドラクエ、ロマサガのプログラムの解析。乱数の計算など ダメージ計算あれこれ(http://ysfactory.nobody.jp/ys/prg/calculation_public.html) ダメージの計算式 エンカウントについて考えてみる エンカウント(マップでの敵との遭遇)の処理方法いろいろ RPGの作り方 - ゲームヘル2000 RPGのアルゴリズム ドルアーガの塔 乱数の工夫の

    ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室
  • GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ
  • ネットワークプログラムのI/O戦略 - sdyuki-devel

    図解求む。 以下「プロトコル処理」と「メッセージ処理」を分けて扱っているが、この差が顕著に出るのは全文検索エンジンや非同期ジョブサーバーなど、小さなメッセージで重い処理をするタイプ。ストリーム指向のプロトコルの場合は「プロトコル処理」を「ストリーム処理」に置き換えるといいかもしれない。 シングルスレッド・イベント駆動 コネクションN:スレッド1。epoll/kqueue/select を1つ使ってイベントループを作る。 マルチコアCPUでスケールしないので、サーバーでは今時このモデルは流行らない。 クライアントで非同期なメッセージングをやりたい場合はこのモデルを使える: サーバーにメッセージを送信 イベントハンドラを登録;このときイベントハンドラのポインタを取っておく イベントハンドラ->フラグ がONになるまでイベントループを回す イベントハンドラ->結果 を返す 1コネクション1スレッ

    ネットワークプログラムのI/O戦略 - sdyuki-devel
  • できる!遺伝的アルゴリズム

    オープンソースカンファレンス 2009 Hokkaido with LDD での遺伝的アルゴリズムの説明です。

    できる!遺伝的アルゴリズム
  • クラスタリングツール「bayon」を試してみた - download_takeshi’s diary

    夜中の3時半過ぎですが、久しぶりになんか書こうと思います。 ちょっと前にmixiのfujisawaさんという方がすごくナイスなソフトウェアをリリースしてくれました。 「軽量データクラスタリングツールbayon」 http://alpha.mixi.co.jp/blog/?p=1049 今までにもCLUTOというすごく高精度なクラスタリングツールがありましたが、こいつはライセンス的にちょっとイケズな感じでした。そこにbayonがスーパーマンのように登場してくれました!「商用利用OKだよ」ということで、仕事の上での悩みが解決しました。当にありがたいことです。 さてさて、早速使ってみたいんですが、ブログに書くのにちょうどいい題材がなかったので、以前に自分が書いたエントリからデータを持ってくることにしました。 「芸能人の相関関係を探ってみるスクリプト」 http://d.hatena.ne.jp

    クラスタリングツール「bayon」を試してみた - download_takeshi’s diary
  • memcachedを超える成果も、Interopで若手技術者がクラウドを支える技術を競う

    「日でゼロからクラウドを生み出すムーブメントを作り出したい」(実行委員長 門林雄基氏)---“クラウドを支える技術”の開発力を競う「クラウドコンピューティングコンペティション」が2009年6月11日、Interop 2009の会場で開催された(写真1)。企業や大学・大学院の研究者、そして高校生を含む若手エンジニアが、新しいアイディアと技術力で作り上げたクラウドコンピューティングの基盤ソフトウエアを披露した。 クラウドコンピューティングコンペティションは、奈良先端科学技術大学院大学の門林雄基准教授らの呼びかけで実現したイベント。若手のエンジニアがP2P(ピア・ツー・ピア)技術や分散データ処理技術といったクラウドコンピューティングの基盤技術を開発し、その成果を競う。検証環境として、情報通信研究機構(NICT)が運用するクラスタ環境「StarBED」のコンピュータを最大1000台まで使用可能で

    memcachedを超える成果も、Interopで若手技術者がクラウドを支える技術を競う
  • アルゴリズムと計算量

    金庫破りと計算量膨張 n 桁の番号をもつ暗証ロックがあるとします。 2 桁であれば 00 〜 99 の 100 個の正解があるわけで、 0 番から順に入力していく解き方では、 最悪の場合は 100 手目に開きます。 99 が正解とは限らないので、平均的にはこれより早く解き終わります。 0 であるときの確率は 1/100 で、このときの手数は 1 手です。 1 であるときの確率は 1/100 で、このときの手数は 2 手です。 2 であるときの確率は 1/100 で、このときの手数は 3 手です。 3 であるときの確率は 1/100 で、このときの手数は 4 手です。 : 99 であるときの確率は 1/100 で、このときの手数は 100 手です。 つまり、平均手数は により、100 手目の約半分です。 ここでいう解き方をアルゴリズムといい、 問題を解くための手数 (てかず) のことを計

  • BWT と PPM - naoyaのはてなダイアリー

    Burrows Wheeler Transform (BWT, Block-sorting) と Prediction by partial matching (PPM) は質的に同じ事をやっている、というお話です。 先日 Managing Gigabytes を読んでいたところ、P.69 で "block sorting is very closely related to the PPM* method, which is a variant of PPM that allows arbitrary-length contexts." という記述があり、どうにも気になったので調べてみました。 サマリとしては、BWT と PPM の一種である PPM* はいずれも文脈から次の1文字を一意に決定するという概念で見ると質的に同じことをやっていると言える、というところです。 BWT のあら

    BWT と PPM - naoyaのはてなダイアリー
  • クイックソートをpthreadで並列化 - yarbの日記

    クイックソートはソート対象領域をどんどん分割していく方式なので単純に並列化できるらしい。pthreadでやってみた。 pthread_createには関数へのポインタと、その関数への引数をvoid型ポインタで渡すようになっている。ということは複数の引数を渡すのって構造体にするのかなと思って、そう書いてみた。動いてるっぽい。 200万個のintの並べ替えだと、シングルスレッド処理のものに比べて7倍ぐらい速い気がする。うーん、7倍? 追記:中途半端にしかソートができてなくて、なんかコレ、壊れてまっせ。。。 #include <stdio.h> #include <stdlib.h> #include <time.h> #include <pthread.h> #define NUM_THREADS 3 #define SWAP(type, x, y) do {type tmp = x; x =

    クイックソートをpthreadで並列化 - yarbの日記
  • 軽量データクラスタリングツールbayon - mixi engineer blog

    逆転検事を先日クリアして、久しぶりに逆転裁判1〜3をやり直そうか迷い中のfujisawaです。シンプルなデータクラスタリングツールを作成しましたので、そのご紹介をさせていただきます。 クラスタリングとは クラスタリングとは、対象のデータ集合中で似ているもの同士をまとめて、いくつかのグループにデータ集合を分割することです。データマイニングや統計分析などでよく利用され、データ集合の傾向を調べたいときなどに役に立ちます。 例えば下図の例ですと、当初はデータがゴチャゴチャと混ざっていてよく分からなかったのですが、クラスタリングすることで、実際は3つのグループのデータのみから構成されていることが分かります。 様々なクラスタリング手法がこれまでに提案されていますが、有名なところではK-means法などが挙げられます。ここでは詳細については触れませんが、クラスタリングについてより詳しく知りたい方は以下の

    軽量データクラスタリングツールbayon - mixi engineer blog
  • クラスカルのアルゴリズム - naoyaのはてなダイアリー

    昨年からはじめたアルゴリズムイントロダクションの輪講も終盤に差し掛かり、残すところ数章となりました。今週は第23章の最小全域木でした。辺に重みのあるグラフで全域木を張るとき、その全域木を構成する辺の合計コストが最小の組み合わせが最小全域木です。 アルゴリズムイントロダクションでは、クラスカルのアルゴリズム、プリムのアルゴリズムの二点が紹介されています。いずれも20世紀半ばに発見された古典的なアルゴリズムです。 二つのうち前者、クラスカルのアルゴリズムは、コスト最小の辺から順番にみていって、その辺を選んだことで閉路が構成されなければ、それは安全な辺であるとみなし、最小全域木を構成する辺のひとつとして選択します。これを繰り返しているうちに最小全域木が構成されるというアルゴリズムです。 今日はクラスカルのアルゴリズムを Python で実装してみました。扱うグラフは書籍の例を使ってみました。以下

    クラスカルのアルゴリズム - naoyaのはてなダイアリー
  • Binary Indexed Tree (Fenwick Tree) - naoyaのはてなダイアリー

    圧縮アルゴリズムにおける適応型算術符号の実装では、累積頻度表を効率的に更新できるデータ構造が必要になります。もともと算術符号を実装するには累積頻度表が必要なのですが、これが適応型になると、記号列を先頭から符号化しながら、すでに見た記号の累積頻度を更新していく必要があるためです。 累積度数表をナイーブに実装すると、更新には O(n) かかってしまいます。配列で表を持っていた場合、適当な要素の頻度に更新がかかるとその要素よりも前の要素すべてを更新する必要があります。適応型算術符号のように記号を符号化する度に更新がかかるケースには向いていません。 Binary Indexed Tree (BIT, P.Fenwick 氏の名前を取って Fenwick Tree と呼ばれることもあるようです) を使うと、累積頻度表を更新 O(lg n)、参照 O(lg n) で実現することができます。BIT は更

    Binary Indexed Tree (Fenwick Tree) - naoyaのはてなダイアリー
  • String::Dictionary - naoyaのはてなダイアリー

    String::Dictionary という Perl のライブラリを作ってみました。 http://github.com/naoya/perl-String-Dictionary/tree/master String::Dictionary は検索エンジンその他を作る時に必要になる「辞書」のためのデータ構造 + API です。辞書は単語の集まりですが、これを配列やハッシュなどで持つのではなく、単語をすべて繋げた一つの大きな文字列として保持することでメモリ領域を節約したものです。単語は単に文字列連結で持つだけでなく、Front Coding で圧縮しています。以下簡単な解説です。 辞書は例えば [0] ・・・ jezebel [1] ・・・ jezer [2] ・・・ jezerit [3] ・・・ jeziah [4] ・・・ jeziel ...という風に単語を配列で持つことで実現でき

    String::Dictionary - naoyaのはてなダイアリー
  • プログラム・プロムナード

    会誌「情報処理」連載の「プログラム・プロムナード」(2002年4月〜2005年3月掲載)と「Haskellプログラミング」(2005年4月〜2006年3月掲載)はどなたでもご覧になれます。ファイルはすべてPDF形式です。 「Haskellプログラミング」に掲載されたプログラムは http://www.sampou.org/haskell/ipsj/ から取ることができます.

  • グラフ理論ライブラリのJGraphTを使ってみた - kaisehのブログ

    JGraphT JGraphTは、Javaのグラフライブラリです。グラフの描画ではなく、グラフ理論のモデルとアルゴリズムの方にフォーカスしています。とても使いやすかったので、紹介してみます。 無向グラフ UndirectedGraph<String, DefaultEdge> g = new SimpleGraph<String, DefaultEdge>( DefaultEdge.class); g.addVertex("a"); g.addVertex("b"); g.addVertex("c"); g.addEdge("a", "b"); g.addEdge("b", "c"); System.out.println(g.vertexSet()); System.out.println(g.edgeSet()); System.out.println(g.edgesOf("c"));

    グラフ理論ライブラリのJGraphTを使ってみた - kaisehのブログ
  • 具体例で学ぶ!情報可視化のテクニック 記事一覧 | gihyo.jp

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

    具体例で学ぶ!情報可視化のテクニック 記事一覧 | gihyo.jp
  • kd-tree Visualization(1) - agwの日記

    前回のエントリに引き続き、連続したビット群の総数を求めるアルゴリズムを考える予定でしたが、今回は空間分割データ構造に関するエントリにしました。人力検索はてなに以下のような問題が提示されていたのがきっかけでした。 二次元の値(x, y)をもつ集合P から任意の点p の近似点を検索するアルゴリズムを考えています 高速、低負荷で検索するにはどうしたらいいでしょうか? 条件は次の通りです 1.集合Pはあらかじめ、任意の順番でソートしておける 2.点pの近似点にする条件は、margin範囲内で一番近いものとするが、margin値はそのときどきで変わる ターゲットの言語はjavascriptで、200msぐらいの間隔で検索を続けるつもりです 集合P の個数が 1000 ~ 10000 点くらいだったらどうしますか? 二次元の値(x, y)をもつ集合P から任意の点p の近似点を検索する… - 人力検索

    kd-tree Visualization(1) - agwの日記