タグ

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

  • DHTアルゴリズムSymphonyの解説 - 情報科学屋さんを目指す人のメモ

    SymphonyはDistributed Hash Table(DHT)を実現するアルゴリズムの一つで、有名な物にChord, Kademlia, CAN, Pastry, Tapestryなどなどが有ります。もう大量にあるわけで、私自身でもLFRTとかそういうものを作っていたりします。 Symphonyの立ち位置はと言うと、大御所たちに比べたら知名度は低めだと思います。つまるところ、わざわざ日語で説明文を書いてHPに載せようと思う人自体少ないと思います。じゃぁ書こうとなるわけです。 Symphonyのスライド 発表する訳じゃないですが、スライドで作りました。喋りが無くても分かるように吹き出しだらけです。 それと、短時間で作ったので、あまり重要でない部分は絵を描いてません。 今回は、Symphonyを読む人がChordを知らないはずがないという前提の元、Chordを多少は(雑誌記事程度で

  • ChordアルゴリズムによるDHT入門 - 情報科学屋さんを目指す人のメモ

    何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。 Chordの解説ページは移転しました。こちらをご覧ください→「ChordアルゴリズムによるDHT入門」 Symphonyの解説を書いたとき、「Chordの理解を前提」にしていたので、今回はChordの細かい解説スライドを作成しました。 Chordの説明はDHTの中でももっともたくさん書かれているものだと思います。 もちろん、それと同じように書いたのではほとんど意味がないと思うので、 論文を読んでもすぐには分からない全体像から、どこが重要か、どの点によってメリットが生まれているかなどに注目しつつ、飲み込みやすいストーリーになるように注意しました。 なおかつ、出来るだけ論文からぶっ飛びすぎないようにも気を付けてみました。 まだ荒削りなのですが、とりあえずどうぞ。

  • 情報処理学会が将棋連盟に挑戦状 米長会長、「いい度胸」と受けて立つ

    情報処理学会の白鳥則郎会長は4月2日、トッププロと戦えるコンピュータ将棋が完成したとし、日将棋連盟の米長邦雄会長に公開対局を望む挑戦状を手渡した。将棋連盟は「いい度胸をしていると」受けて立つ構え。対戦は秋ごろの予定。 情報処理学会の白鳥会長は、「漸くにして名人に伍する力ありと情報処理学会が認める迄に強いコンピューター将棋を完成致しました」などと筆文字で書いた挑戦状を、将棋連盟の米長会長に手渡した。米長会長は「いい度胸をしているとその不遜な態度に感服仕った次第」など筆文字の手紙で返答。清水市代・女流王位が受けて立つという。 対局では、複数のソフトを疎結合で並列計算させ、それらの意見を集約して次の一手を決める合議アルゴリズムを使う予定。「GPS将棋」「Bonanza」「激指」「YSS」「TACOS」「柿木将棋」などから、実験をもとに最適な組み合わせを採用する。合議より単独が強ければ単独の可能

    情報処理学会が将棋連盟に挑戦状 米長会長、「いい度胸」と受けて立つ
  • JOI 春合宿での講義資料 - iwiwiの日記

    情報オリンピックの春合宿で担当した講義のスライドをアップロードしました. プログラミングコンテストでの動的計画法 プログラミングコンテストでのデータ構造 講義は動的計画法についてとデータ構造についてで,それぞれ独立しています. 動的計画法については,動的計画法のアルゴリズムを導くにあたっての非常に基的な部分について話しています.動的計画法がよく分かっていない人や,苦手な人にオススメ. データ構造については,Union-Find 木,バケット法,セグメント木について話しています.特に,バケット法やセグメント木の話は,中上級者向けですが,世の中の資料がかなり少ないので,活用されることを期待します. 講義を受け持つのははじめてで不安でしたが,生徒さん達に褒めてもらえたりもしていて嬉しいです. http://twitter.com/tozangezan/status/10718667041 ht

    JOI 春合宿での講義資料 - iwiwiの日記
  • 「ガベージコレクションのアルゴリズムと実装」を読んだ - higepon blog

    著者のから id:authorNariさんから「ガベージコレクションのアルゴリズムと実装」 献いただきました。ありがとうございます。 竹内先生の前書きでも触れられていたが、日語の GC の資料は今まで当に少なかった。 2006 年に未踏で Scheme シェルを書いたときに、Mark & Sweep GC を実装したのだが資料集めに苦労したのをよく覚えている。Wikipedia にまとまっている程度のものなら見つかるのだが一歩踏み込むと英語でしか資料が見つからないという状況だった。(そのときにまとめた資料。) しかしついに書の登場でその状況も打破された。 これだけ踏み込んだ内容であれば自前で GC を実装しようとする人にも十分だ。適切な GC 手法を選び、アルゴリズムを理解し実装するところまでいけるだろう。不足があれば補足資料として論文などをあたれば良い。 書にはアルゴリズム編と

    「ガベージコレクションのアルゴリズムと実装」を読んだ - higepon blog
  • 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はどのように素早く円を描いていたのか? - ザリガニが見ていた...。
  • 「将棋の手はほとんどが悪手である」(羽生善治) - 三軒茶屋 別館

    将棋世界 2010年 04月号 [雑誌] 出版社/メーカー: 毎日コミュニケーションズ発売日: 2010/03/03メディア: 雑誌購入: 1人 クリック: 14回この商品を含むブログ (8件) を見る 将棋専門誌「将棋世界」連載中「コンピュータは七冠の夢を見るか?」(片上大輔・山一成)がとても面白いので、連載が始まってからの「将棋世界」は毎号欠かさず購読しています。2010年4月号掲載の第4回はコンピュータの読み、「探索」がテーマとなっています。 上記連載によれば、コンピュータが現時点で1秒間に読めるのは約140万局面、1分間と少しで約1億局面読めるということになりますが、しかし、将棋の1局面での合法手の平均は約80手。なので、手数が増えるにつれて80×80×80×……と増えていく計算になります。そうなると、10手先をまともに読むとしたら1073京7418兆2400局面。1秒に1億手読

    「将棋の手はほとんどが悪手である」(羽生善治) - 三軒茶屋 別館
  • 動的計画法とナップサック問題を学びたい人におすすめのサイト - ダウンロードたけし(寅年)の日記

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

    動的計画法とナップサック問題を学びたい人におすすめのサイト - ダウンロードたけし(寅年)の日記
  • 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は如何にして鋭い検索を行っているのか? - ザリガニが見ていた...。
  • Visual Wordsを用いた類似画像検索 - 人工知能に関する断創録

    類似画像検索システムを作ろう(2009/10/3) 3日で作る高速特定物体認識システム(2009/10/18) に続くOpenCVプロジェクト第三弾です。今回は、上の二つをふまえてカラーヒストグラムではなく、局所特徴量(SIFTやSURF)を用いた類似画像検索を試してみます。局所特徴量はグレースケール画像から抽出するため、カラーヒストグラムと違って色は見ていません。画像の模様(テクスチャ)で類似性を判定します。 実験環境は、Windows 7、MinGW C++コンパイラ、OpenCV2.0、Python 2.5です。EclipseでMinGWを使う方法はEclipseでOpenCV(2009/10/16)を参照してください。Visual C++にはないディレクトリスキャン関数を一部使っているのでVisual C++を使う場合は、少しだけ修正が必要です。 Bag-of-Visual Wor

    Visual Wordsを用いた類似画像検索 - 人工知能に関する断創録
  • Adobe Photoshop CS5に実装されるPatchMatchの実力 - A Successful Failure

    動画:Adobe Photoshop CS5の新機能はもはやえげつないレベル… | ◆めっつぉ:スクエニ&ガジェットニュースとしてAdobe Photoshop CS5の新機能が紹介され話題になっている。 概要を知るには動画で見るのが手っ取り早いが、エントリではSIGGRAPH2009で発表された元論文*1を参照して、その詳細を紹介したい。 エントリで紹介する画像は全て元論文からの引用であり、高解像度画像にリンクしている。「失業者が出るレベル」とコメントされているが、高解像度画像によりそのクオリティを確認してもらいたい。 PatchMatchの概要 Adobe Photoshop CS5の新機能は、近似画像ないし近似画像領域を発見するための無作為近隣探索アルゴリズムであるPatchMatchによって実現されている。最近隣探索(nearest-neighbor search)は先行研究で

  • 3分探索 - ICPC突破専用ザク

    凸関数の極値を求める方法を知りたくなってググってみたところid:nodchipさんのエントリがヒットした. 以下,個人的なまとめ. 実数探索三種類解説 - nodchipの日記 http://d.hatena.ne.jp/nodchip/20090303/1236058357 単調関数の零点を求めるのには2分探索が使われるけど,凸関数の極値を求めるのには3分探索が使われるらしい. 三分探索は凸関数の極値を求めるために使うアルゴリズムです。このアルゴリズムは関数が微分不可能な場合にも使えます。やり方は探索領域を三分割し、真ん中二の境界のうちどちらの値が大きいかを調べ、それとは逆の方の境界を新たな探索領域の端にするというものです。一回のイテレーションで関数の計算を2回行い、探索領域が2/3になります。 3分探索がうまくいく理由は以下のとおり. f : [a,b]→R : 上に凸な関数とし,区

    3分探索 - ICPC突破専用ザク
  • 3日で作る高速特定物体認識システム (3) SURFの抽出 - 人工知能に関する断創録

    3日で作る高速特定物体認識システム (2) SIFT特徴量の抽出(2009/10/24)の続きです。あっ、3日経っちゃいました。 今回は、SIFTとは別の局所特徴量であるSURF(Speeded Up Robust Features)を抽出してみます。SURFのFはFeaturesなのでSURF特徴量とは言わないのかな?SIFTとは抽出方法は違いますが、画像からキーポイントと特徴ベクトルを抽出する点では同じです。抽出速度はSIFTより数倍高速だそうですが、精度は多少落ちるとのこと。リアルタイム処理したいときはこっちのほうがよさそうです。また、OpenCVにもすでに実装されています。SURFの詳しいアルゴリズムは後で論文を読むとしてとりあえず試してみます。 画像からSURFを抽出する 以下のプログラムは、画像からSURFを抽出して特徴点を描画し、特徴量をファイルへ格納するプログラムです。この

    3日で作る高速特定物体認識システム (3) SURFの抽出 - 人工知能に関する断創録
  • 3日で作る高速特定物体認識システム (2) SIFT特徴量の抽出 - 人工知能に関する断創録

    3日で作る高速特定物体認識システム (1) 物体認識とは(2009/10/18)の続きです。 今回は、画像からSIFT (Scale-Invariant Feature Transform) という局所特徴量を抽出するところを作ってみようと思います。 SIFT特徴量の抽出 まずは、局所特徴量の代表ともいえるSIFTを試してみます。OpenCVにはSIFTを抽出する関数がなかったのでRob Hess氏がC言語で実装したライブラリを試してみます。内部でOpenCVを使っているので事前にOpenCVのインストールが必要です。実装はOpenCV 1.1でされているみたいですが、2.0でもちょっと手直しすると動きました。Rob Hess氏のホームページからSIFT Feature Detectorのzip版を落とします。 (注)Hess氏のサイトが更新されたようで現在はGitHub上のOpenSIF

    3日で作る高速特定物体認識システム (2) SIFT特徴量の抽出 - 人工知能に関する断創録
  • 3日で作る高速特定物体認識システム (1) 物体認識とは - 人工知能に関する断創録

    情報処理学会の学会誌『情報処理』の2008年9月号(Vol.49, No.9)に「3日で作る高速特定物体認識システム」という特集記事があります。OpenCVを用いた面白そうなプロジェクトなのでレポートにまとめてみようと思います。3日でできるかはわからないけど。 残念ながらこの記事はPDFを無料でダウンロードすることができません(CiNiiでオープンアクセス可能になったみたいです)。なので会員以外で元記事が読みたい人は図書館でコピーする必要があるかも・・・また、2009年9月号の人工知能学会誌にも物体認識の解説「セマンティックギャップを超えて―画像・映像の内容理解に向けてー」があります。こちらも非常に参考になりますが同様にPDFが手に入りません・・・。他にもいくつかわかりやすい総説論文へのリンクを参考文献にあげておきます。 物体認識とは 物体認識(object recognition)は、画

    3日で作る高速特定物体認識システム (1) 物体認識とは - 人工知能に関する断創録
  • アルゴリズムの紹介

     ここでは、プログラムなどでよく使用されるアルゴリズムについて紹介したいと思います。 元々は、自分の頭の中を整理することを目的にこのコーナーを開設してみたのですが、最近は継続させることを目的に新しいネタを探すようになってきました。まだまだ面白いテーマがいろいろと残っているので、気力の続く限りは更新していきたいと思います。 今までに紹介したテーマに関しても、新しい内容や変更したい箇所などがたくさんあるため、新規テーマと同時進行で修正作業も行なっています。 アルゴリズムのコーナーで紹介してきたサンプル・プログラムをいくつか公開しています。「ライン・ルーチン」「円弧描画」「ペイント・ルーチン」「グラフィック・パターンの処理」「多角形の塗りつぶし」を一つにまとめた GraphicLibrary と、「確率・統計」より「一般化線形モデル」までを一つにまとめた Statistics を現在は用意して

    rephis
    rephis 2009/10/17
    頻出アルゴリズムのまとめ
  • 「最強最速アルゴリズマー養成講座」関連の最新 ニュース・レビュー・解説 記事 まとめ - ITmedia Keywords

    最強最速アルゴリズマー養成講座: そのアルゴリズム、貪欲につき――貪欲法のススメ アルゴリズムの世界において、欲張りであることはときに有利に働くことがあります。今回は、貪欲法と呼ばれるアルゴリズムを紹介しながら、ハードな問題に挑戦してみましょう。このアルゴリズムが使えるかどうかの見極めができるようになれば、あなたの論理的思考力はかなりのレベルなのです。(2010/9/4) 最強最速アルゴリズマー養成講座: 病みつきになる「動的計画法」、その深淵に迫る 数回にわたって動的計画法・メモ化再帰について解説してきましたが、今回は実践編として、ナップサック問題への挑戦を足がかりに、その長所と短所の紹介、理解度チェックシートなどを用意しました。特に、動的計画法について深く掘り下げ、皆さんを動的計画法マスターの道にご案内します。(2010/5/15) 最強最速アルゴリズマー養成講座: アルゴリズマーの登

  • お手軽転置インデクスを用いた検索エンジン: (1) AND検索編 - シリコンの谷のゾンビ

    突然Cでコードを書きたくなったので,なんちゃって転置インデクスを用いた検索プログラムを書いてみた. 転置インデクスとは,索引語と呼ばれる単語が出現する文書情報 (場合によっては位置情報も) を保持したデータ構造のことで,索引語と,それに対応する転置リストによって構成される. # 索引語 -> 転置リスト hoge -> 5: 1,2,3,4,5 fuga -> 3: 1,4,5 piyo -> 2: 4,5これは,hogeという単語が文書1,2,3,4,5に出現し,fugaという単語が文書1,4,5に出現し,piyoという単語が文書4,5に出現する情報を保持している.最初の5,3,2という数字はそれぞれ索引語がいくつの文書に出現したかという文書頻度 (document frequency; DF) を表している. 検索クエリhogeが入力された場合には,文書1,2,3,4,5を検索結果とし

    お手軽転置インデクスを用いた検索エンジン: (1) AND検索編 - シリコンの谷のゾンビ
  • 類似画像検索システムを作ろう - 人工知能に関する断創録

    C++版のOpenCVを使ってカラーヒストグラムを用いた類似画像検索を実験してみました。バッチ処理などのスクリプトはPythonを使ってますが、PerlでもRubyでも似たような感じでできます。 指定した画像と類似した画像を検索するシステムは類似画像検索システムと言います。GoogleYahoo!のイメージ検索は、クエリにキーワードを入れてキーワードに関連した画像を検索しますが、類似画像検索ではクエリに画像を与えるのが特徴的です。この分野は、Content-Based Image Retrieval (CBIR)と呼ばれており、最新のサーベイ論文(Datta,2008)を読むと1990年代前半とけっこう昔から研究されてます。 最新の手法では、色、形状、テクスチャ、特徴点などさまざまな特徴量を用いて類似度を判定するそうですが、今回は、もっとも簡単な「色」を用いた類似画像検索を実験してみます

    類似画像検索システムを作ろう - 人工知能に関する断創録
  • YAPC::Asia 2009 1日目 「Perlで圧縮」の資料 - naoyaのはてなダイアリー

    1日目の発表を終えました。資料を公開します。 Perlで圧縮View more presentations from Naoya Ito. 発表の方は少し駆け足になってしまいました。明日ははてなブックマークのシステム事例の話をしたいと思います。 発表の様子 via: http://yapcasia2009.ficia.com/