Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

algorithmに関するpaellaのブックマーク (36)

  • 過去10年間のComputer Science系論文で被引用数トップ10を作ってみた - 情報科学屋さんを目指す人のメモ(FC2ブログ版)

    何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。 2000年以降の論文に限定して、 CS系論文の被引用数ランキングを作って分析してみた。 この作業を通じて予想以上に得るものがあった。 ランキングの作り方 CiteSeerXが公開している「Most Cited Computer Science Articles (2010/9/14)」を元データに採用した。 ここから2000年以降の文章に限定した後、ハンドブックや雑誌記事などを取り除いて論文だけのランキングを作成した。 被引用数は時間が経つほど増える一方なので、2000年・2001年あたりの論文が有利であることに注意する必要がある。 ただし、このことがかえって得るものを増やしてくれた。 アブストラクトをチェック 良い機会であるので、 各論文の概要や結論をチェック

  • [CEDEC 2011]AIに命を。「ぽかぽかアイルー村」のアフォーダンス指向によるAI事例と「ARMORED CORE V」の三次元的な移動経路検索

    [CEDEC 2011]AIに命を。「ぽかぽかアイルー村」のアフォーダンス指向によるAI事例と「ARMORED CORE V」の三次元的な移動経路検索 ライター:箭進一 CEDEC 2011で,「AIに命を吹き込むには」と題されたショートセッションが行われた。 このセッションでは,PSP用ソフト「モンハン日記 ぽかぽかアイルー村」(以下,アイルー村)と,「ARMORED CORE V」(PS3/Xbox 360)以下,ACV)のAIに,どんな工夫が凝らされているのかが解説された。 アイルー1匹当たり1500行のAI フロム・ソフトウェア制作二部,並木幸介氏 最初に登壇したのは,アイルー村のAI開発を担当したフロム・ソフトウェア制作二部のプログラマーである並木幸介氏。 作は人気キャラクターであるアイルーが,狩りや採集などを行い,村を発展させながら仲間を増やしていくという内容のゲーム。いか

    [CEDEC 2011]AIに命を。「ぽかぽかアイルー村」のアフォーダンス指向によるAI事例と「ARMORED CORE V」の三次元的な移動経路検索
    paella
    paella 2011/09/07
    オブジェクトに対する思考ロジックとして、キャラクタは何が出来るか調べて考えるのではなく、オブジェクトから選択肢をキャラクタに提供、キャラクタは選択するという方法。
  • KDDI「手のひらAR」はARの限界を突破するか? (1/5)

    2月28日に開催された「au コンテンツフォーラム 2011」(関連記事)。その会場でひときわ異彩を放つデモが行なわれていた。スマートフォンのカメラで自分の手を写すと手の上に3Dキャラクタが登場し、音楽に合わせて踊るのである。 開発したのはKDDI研究所。ARで必須と思われていたマーカーがない上に、「手」という機械には非常に処理しにくい物体を非力なスマートフォン端末で認識させて、さらに3Dのキャラクターがランダムに動くさまは、今までのARを知っている人間からすれば驚きの一言。物珍しさからブースに人だかりができていたのも頷ける。 一体どんなブレイクスルーがあったのか。もしかしてARの転換期に来ているのではないか。そんな興味を覚えKDDI研究所に取材を申込んだ。対応していただいたのは工学博士の加藤晴久さん――手のひらARの生みの親である。 この手のひらARの登場によりどのような世界が開けるのか

    KDDI「手のひらAR」はARの限界を突破するか? (1/5)
    paella
    paella 2011/05/07
    技術解説をきちんとしてくれているので、インタビュー記事なのに色々分かって面白かった。
  • 文字列のハッシュ値の計算 - imHo

    ハッシュの概念はわかる、けど実際のところどんなもんかよくわかってない…。特に文字列のハッシュ値をどうやって計算してるのかと、ハッシュ値が衝突したときにどうするのかと、バッファのサイズをどうするのか。なのでいくつかの処理系を調べてみた。 Gauche ソースを'hash'でgrepしたらそれらしい部分が見つかった。 /* General hash function */ u_long Scm_Hash(ScmObj obj) { u_long hashval; if (!SCM_PTRP(obj)) { SMALL_INT_HASH(hashval, (u_long)SCM_WORD(obj)); return hashval; } else if (SCM_NUMBERP(obj)) { return Scm_EqvHash(obj); } else if (SCM_STRINGP(obj

    文字列のハッシュ値の計算 - imHo
    paella
    paella 2011/04/27
    GaucheとLuaとRubyの文字列のハッシュ値を求めている箇所。ふむふむ
  • A*アルゴリズムについて整理 - yasuhisa's blog

    辞書を参考にしながら。NAISTのI期辺りでやったはずなんだが、かなりすっ飛んでいる。 デジタル人工知能学事典 [CD-ROM付] 作者: 人工知能学会出版社/メーカー: 共立出版発売日: 2008/05/16メディア: 単行購入: 1人 クリック: 6回この商品を含むブログ (6件) を見る A*アルゴリズムとは?グラフ探索アルゴリズムの一つ。「開始ノードから現在位置に至るまでのコスト」と「現在位置からゴールまでの推定コスト」の2つのコストを用いてadmissibleな条件(後述)の元でコストが最小であるような経路を効率的に見つけることができるアルゴリズムである。1960年代に開発されたアルゴリズムであるが、50年経った今でもばしばし使われている。 現在いるノードをp、開始ノードからpまでの最小コストをg(p)、pからゴールまでの最小コストをh(p)と書くとすればpを経由して開始ノード

    A*アルゴリズムについて整理 - yasuhisa's blog
    paella
    paella 2011/03/23
    あとで読む。c++のソースサンプルあり。
  • Implementing iBooks page curling using a conical deformation algorithm

    One of iPad's most talked about apps is Apple's own iBooks e-reader. Perhaps its most eye-catching but completely superfluous feature is the beautiful, dynamic page curling effect that follows your finger naturally as you drag to turn pages. Unlike cheap implementations using simple masks and gradients, iBook's page curling is very realistic, with content that bleeds through and deforms accurately

    Implementing iBooks page curling using a conical deformation algorithm
    paella
    paella 2011/02/15
    OpenGLによるページめくりの実装方法について。これは良い。
  • My iPhone is not a Mac Pro – Savoy Blog

    This article is about enhancing the performance of iPhone applications using the power of Objective C++. By discussing a real-world problem from Savoy’s Spots application, the article shows the necessary optimizations to make the program run smoothly in three steps. Using Objective C++ to enhance the performance of iPhone applications. One thing I really like about software development is, that th

    paella
    paella 2011/02/09
    高速列挙とC配列へのアクセス、アルゴリズムの改良で250msec→1msecの高速化を行った話。一つ一つの状態でのソースがあるので分かりやすい。
  • ActionScript入門Wiki@rsakane - モーションブラー(アルゴリズム編)

    このページを編集 このページを編集(メニュー非表示編集;α) このページをコピーして新規ページを作成 このページのページ名を変更 このページの編集モードを変更 このページの閲覧/編集権限の変更 このページにファイルをアップロード このウィキにファイルをアップロード(FTP機能/管理者のみ利用可) メニューを編集(メニュー部分は非表示で編集) 右メニューを編集(メニュー部分は非表示で編集)

  • インテル・AMDのCPUアーキテクトが明かす: GNU grep が速い理由 - karasuyamatenguの日記

    GNU grepの元祖作者がFreeBSDハッカーをschoolしている。 http://lists.freebsd.org/pipermail/freebsd-current/2010-August/019310.html FreeBSD対GNU grepのパフォーマンスを議論していると思われるとことに「俺はgrepの初代作者だ」と名乗って現われた男がいる。 履歴書(http://duckytech.com/resume.pdf)を見ると、GNU coreutilsに貢献した後、インテルやAMDCPUアーキテクトを勤めている男だ。これは話を聞いた方がよさそうだ。 FreeBSDユーザでもある彼はリストを観閲していたらたまたまGNU対BSDのgrep論争に当ってしまったようだ。BSDのリストにGNU grepの秘密を解く。 技1: 全ての入力バイトを見ないから速い 技2: 見るバイトに関

    インテル・AMDのCPUアーキテクトが明かす: GNU grep が速い理由 - karasuyamatenguの日記
    paella
    paella 2010/11/19
    サーチを速くして、IOを速くするのに何をしているか、という話。面白い。BM法で出来るだけバイトを見ないで、コピーを避けて、アラインメントを調整して。¥nを見るのは最後の方というのも興味深い内容。
  • 開発メモ: トップNソートの検討

    上位N件をソートした状態で取り出すという、いわゆる「トップNソート」の効率的な実装について検討してみた。 背景 データベースに対して、ある順序でソートした時の最初の何件かが欲しいというクエリを投げることはよくあるだろう。SNSで言えば、誰かのコンテンツの最新10件を表示するとかいう場合だ。SQLだと "ORDER BY xxx LIMIT yyy" とかいう感じ。同じような操作は全文検索システムのスコアリングでも定番である。俺もよく自分で実装するわけだが、その度に適当な試行錯誤をして時間がもったいないので、今回は入念に調べて決定版を出そうじゃないか。 全体をソートして上位を取り出せば目的は満たせるのだが、それだと無駄な計算が多い。100万件の中から上位10件だけ欲しい場合に、残りの99万9990件まで律儀にソートする必要はない。ということで、上位N件をソートして取り出すという「トップNソー

    paella
    paella 2010/11/01
    データからトップNを出す場合の効率的なソートアルゴリズムについて。これはよく読もう。
  • 【レポート】GNU grepが高速な理由 | エンタープライズ | マイコミジャーナル

    FreeBSD - The Power To Serve why GNU grep is fast (なぜGNU grepは高速なのか)といったタイトルの興味深いメールがFreeBSD開発者メーリングリストに投函された。メールを出したのはGNU grepのオリジナル開発者であるMike Haertel氏。Mike Haertel氏はFreeBSDユーザでもあり、FreeBSD開発者メーリングリストで興味深いやりとりがあったため、このメールを流したとしている。Mike Haertel氏の紹介する内容はgrep(1)の実装のみならず、高速な文字列処理を実現するひとつの方法として参考になる。紹介されているGNU grep高速さの秘訣は次のとおり。 GNU grepは入力バイトのすべてをチェックするようなことは避けている。 GNU grepはバイトごとに適用する操作を極力最小限に減らしている。 G

    paella
    paella 2010/08/26
    GNU grepが高速である理由の概要説明。マルチバイト文字でもこの方法が速いのかどうかは、ここだけでは分からなかったけどメモ
  • Drag-In Straightforward Pathfinding Library For iOS Game Developers - Open Source

    Drag-In Straightforward Pathfinding Library For iOS Game Developers – Open Source Pathfinding can be one of the more complex problems in iPhone game development. It can become even more difficult with multiple game objects moving around, and there is a need for those game objects to avoid each other or find the shortest path to another moving object. It doesn’t help that most of the more advanced

    paella
    paella 2010/07/15
    Objective-Cで書かれた経路探索アルゴリズム(forゲーム)なライブラリ。A* アルゴリズム。サンプルとして付いてくるアプリ(forMac)がコメント豊富で素晴らしい。
  • d.y.d. 2倍だけじゃない

    10:01 10/07/20 それでも2倍だ 先日のvectorの伸長度合いの記事に関して 当に1.5倍のほうがメモリ効率がよいのか という反応をいただきました。とても興味深い。みんな読みましょう。 自分の理解メモ: 「再利用ができるから嬉しい」等の議論をするなら、 今までに確保したメモリ (1 + r^1 + ... + r^k) のうち、 有効に使えてるメモリ r^{k-1} (バッファ拡大直後) や r^k (次のバッファ拡大直前) の割合で評価してみようじゃないかという。 まず簡単のために再利用をしない場合を考えると、この割合はそれぞれ (r-1)/r^2、 (r-1)/r になります(途中計算略)。 この利用率が最悪になる瞬間 (r-1)/r^2 を最善にしよう、 という一つの指標で考えてみると、式を微分なりなんなりしてみると r = 2 で最大(25%)となることがわかります

    paella
    paella 2010/07/07
    動的メモリ確保が、最初のサイズのn倍で増加していく事への検証記事。各言語の増加割合や、黄金比よりも小さい増分でのメリット(要注目!)など、面白い情報が分かりやすい説明で。
  • ギャップ・バッファ

    説明 ギャップ・バッファは,テキスト・エディタなどで用いられる,シーケンスを扱うデータ構造です. ここで公開するプログラムはK. Inaba氏の制作されたエディタ,GreenPadにおいて使われているギャップ・バッファをC++言語に含まれるSTLのvectorを使うように改造したものです. また,それをC言語のみで書き直したものも公開しています. 両方ともNYSL(ライセンス)とします. ダウンロード C++言語版: (2003年3月26日) gapbuffer.h C言語版: (2008年9月19日)- 仮の実装なのでバグがあるかもしれません. gbuf.h gbuf.c 解説 ギャップ・バッファはテキスト・エディタのテキスト・バッファなど,長く連なるデータを保持する際に用いられるシーケンス・コンテナです. 局所的な要素の挿入,削除を頻繁にする場合に適したデータ構造です. 双方向リスト(

    paella
    paella 2010/05/26
    ギャップ・バッファなる、過去のEmacsでも使われていた長く連なるデータを保持するために用いられるシーケンス・コンテナ。局所的な要素編集が多いときに適したデータとのこと
  • 1変数関数の極小値求解プログラム2

    [ 簡単な説明 ] brent の方法による1変数関数の極小値求解プログラムです。 出力例 1 ~ 4 は、極小値を囲い込む範囲を変えて、関数 f (x) = 5 + |(x-1.6)(x-10)(x+8)| の極小を求めています。 極小値求解プログラムは、与える関数の符号を変えれば、極大値求解に使用できます。 /* brent.c */ #include <stdio.h> #include <math.h> #define ITMAX 100 /* 反復回数の上限 */ #define CGOLD 0.3819660 /* 黄金分割比 */ #define ZEPS 1.0e-10 /* 極小がちょうど x=0 にあるときは相対精度 tol */ /* の代わりにこれを絶対精度とする */ #define SHFT(a,b,c,d) (a)=(b); (b)=(c); (c)=(d);

    paella
    paella 2010/04/20
    放物線補間のプログラム。
  • compb-index

    paella
    paella 2010/04/20
    放物線補間の説明と、Cソース。「最小化〜」のリンクを参照のこと。
  • Hash Table Benchmarks

    I've put together a set of benchmarks of what I consider to be the most prominent C and C++ hash table implementations. I've made the code available at Github. If you have any critiques or corrections, please post a comment below, email me, or fork the code and send me a pull request on Github. While you can tweak some settings like growth factor, and supply different hash functions, I was more in

    paella
    paella 2010/03/31
    STLやBoostやPythonやRubyでのハッシュ実装を比較した記事。意外にBoostが遅いとかGoogle sparsehashすごいなとか、かなり面白い記事
  • 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はどのように素早く円を描いていたのか? - ザリガニが見ていた...。
    paella
    paella 2010/03/20
    QuickDrawで高速なRoundRectをどのように実現していたか、トライ&エラーで高速化を考えていっている記事。非常にエキサイティングな内容。
  • ボロノイ図 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "ボロノイ図" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2011年10月) ボロノイ図の一例 個々の色分けが一つの領域を表す ボロノイ図(ボロノイず、英: Voronoi diagram)は、ある距離空間上の任意の位置に配置された複数個の母点(英: site、サイト)に対して、同一距離空間上の他の点がどの母点に近いかによって領域分けされた図のことである。特に二次元ユークリッド平面の場合、領域の境界線は、各々の母点の二等分線の一部になる。母点の位置のみによって分割パターンが決定されるため、母点に規則性を持たせれば美しい図形を生み出す

    ボロノイ図 - Wikipedia
    paella
    paella 2010/03/16
    Wikipediaのボロノイ図に関する説明。二次元画像においては関連項目の離散ボロノイ図にあるように、一番近い母点に所属させれば良い。ふむふむ。
  • #devfest_jp 「Task QueueはMapReduceの夢を見るか?」の資料です - スティルハウスの書庫の書庫

    DevFestの私のセッション 「Task QueueはMapReduceの夢を見るか?」の資料です。 Do Task Queues Dream of MapReduce? Tips and tricks about Google App Engine's Task Queue service and parallel processing with it. (by @kazunori_279) 1. What is Task Queue 2. Parallel Query Demo 3. The App Engine Parallelism 4. Concurrency Control on TQ まあ要するに「MapReduceほど大規模な並列処理にはならないけど、順次処理より数倍は速くなるよ」という趣旨です。 また、このセッションで使用する並列検索デモのコードはこちらで公開しています

    #devfest_jp 「Task QueueはMapReduceの夢を見るか?」の資料です - スティルハウスの書庫の書庫
    paella
    paella 2010/03/12
    devfest_jpで行われたkazunori_279氏のセッション 「Task QueueはMapReduceの夢を見るか?」スライド&デモコード