タグ

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

  • Xorshift - Wikipedia

    Xorshiftは疑似乱数列生成法の1つである。George Marsaglia(w:George Marsaglia)が2003年に提案した。演算が排他的論理和とビットシフトのみであるため高速である[1] などの特徴がある。 #include <stdint.h> struct xorshift32_state { uint32_t a; }; /* The state word must be initialized to non-zero */ uint32_t xorshift32(struct xorshift32_state *state) { /* Algorithm "xor" from p. 4 of Marsaglia, "Xorshift RNGs" */ uint32_t x = state->a; x ^= x << 13; x ^= x >> 17; x ^=

    wacky
    wacky 2011/06/19
    速度と精度のバランスが取れた擬似乱数生成アルゴリズム。演算が排他論理和(XOR)とビットシフトのみであるため高速。
  • 正規表現で素数判定 - NO!と言えるようになりたい

    追記:ハッキリ言ってこの正規表現はネタなので,実際に素数判定を行いたい場合は,もっと別な賢いアルゴリズムを使ったほうが良いです 正規表現で素数が判定できるという記事を見たので試してみた. http://www.noulakaz.net/weblog/2007/03/18/a-regular-expression-to-check-for-prime-numbers/ この記事によると /^1?$|^(11+?)\1+$/ という正規表現を使うと,素数判定が出来るらしい.ある整数 n が素数かどうか判定したい場合は,"1" * nという文字列がこの正規表現にマッチするかどうかを調べればよく,マッチすれば非素数,マッチしなければ素数となる.ただし,"1" * n は,例えば,n が 4 ならば "1111" と 1 が 4 回連続して続く文字列となる. Rubyで書いた素数判定プログラムはこん

    正規表現で素数判定 - NO!と言えるようになりたい
    wacky
    wacky 2010/07/23
    nが素数かどうか正規表現で判定。「1」をn個並べて、/^1?$|^(11+?)\1+$/ にマッチしなければnは素数。発想が面白い。効率は無視。
  • 経路探索アルゴリズムの「ダイクストラ法」と「A*」をビジュアライズしてみた - てっく煮ブログ

    as詳解 ActionScript 3.0アニメーション ―衝突判定・AI・3DからピクセルシェーダまでFlash上級テクニック を読んでいて、経路探索のアルゴリズムで A* が取り上げられていました。A* については、いろいろ検索して調べたりもしたのですが、やっぱりに書いてあると理解しやすいですね。せっかくなので自分流に実装してビジュアライズしてみました。ダイクストラ法まずは A* の特別なケースでもあるダイクストラ法から見ていきます。クリックすると探索のシミュレーションが開始します。スタート地点(S)からゴール(G)への探索が始まります。色がついたところが「最短経路が決定した場所」です。スタート地点から少しずつ探索が完了していきます。半分ぐらい完了しました。まだまだ進みます。最後まで終わりました。最短経路を黒色矢印で表示しています。ダイクストラ法は、スタート地点から近いノード(=マス

    wacky
    wacky 2010/01/26
    経路探索アルゴリズム「ダイクストラ法」とその改良版「A*」によって、最短経路を解く過程をFlashで視覚化。サンプルコードあり。
  • 「最強最速アルゴリズマー養成講座」関連の最新 ニュース・レビュー・解説 記事 まとめ - ITmedia Keywords

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

    wacky
    wacky 2010/01/18
    プログラミングコンテスト「TopCoder」で出題される数学・アルゴリズムのパズルを考えることで、コーディングのテクニックおよび論理的思考力を磨く連載記事。
  • liris.org - このウェブサイトは販売用です! - liris リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

    liris.org - このウェブサイトは販売用です! - liris リソースおよび情報
    wacky
    wacky 2010/01/05
    BitTorrentの技術解説。動作概要、シリアライズ方式(bencode)、torrentファイル、ピアプロトコル、転送制御アルゴリズムなど。
  • 写真に基づく3D空間構築手法の到達点 - A Successful Failure

    一昔前は実世界の建築物を元にウォークスルー可能な3D空間を構築しようと思ったら、まず各部屋の形状を計測器を用いて計測し、その計測結果に基づいて人手でモデル化し、領域ごとにテクスチャを貼り、照明を設定して……と気の遠くなるような作業が必要だった。3D空間の構築は極めてコストの高い作業だったが、近年では2次元画像(実写写真)に基づいた3D空間の構築手法が長足の進歩を遂げており、以前に比べれば極めて低コストに3D空間を構築する事が可能となっている。 【告知】Twitterはじめました。@LunarModule7です。 興味のあるかたはフォローくださいとしばらく宣伝。 今ではバラバラに撮影した写真から、全自動で3D空間を構築し、内部を自由にウォークスルーできるようになっている。ワシントン大学とMicrosoft Reseachが2009年に発表した研究*1は現時点における集大成とも言えるものとなっ

    写真に基づく3D空間構築手法の到達点 - A Successful Failure
    wacky
    wacky 2010/01/05
    室内写真を全自動で3Dモデル化する技術の紹介。バラバラに撮影された写真から3Dモデルを自動生成するプロセスの概要。
  • Web検索エンジンのインデックスを用いた同位語とそのコンテキストの発見 | CiNii Research

    タイトル別名 Web ケンサク エンジン ノ インデックス オ モチイタ ドウイゴ ト ソノ コンテキスト ノ ハッケン Discovering Coordinate Terms with Their Contexts Using Web Search Engine Index 研究では,ユーザが与えた1語のクエリに対して,Web検索エンジンが持つ情報のみから同位語とそのコンテキストを発見する手法について提案する.同位語とは,共通の上位語を持つような語のことである.従来研究として,同位語や,上位語,下位語などを求めるような研究は数多くあるが,それらはWeb上の文書を利用するものも含めて,巨大なコーパスを解析して大量の結果を求めるというものであった.我々の提案する手法では,Web文書のタイトルやスニペットといったWeb検索エンジンが持つ情報のみを,少ない回数のWeb検索によって取得し,それ

    wacky
    wacky 2009/09/30
    Web検索を利用した関連語(連想語・同位語)の抽出手法に関する論文。「○○や△△」のように『や』で繋げて表記されたものは関連語という考え方。『や』の前後を入れ替えて再検索することでノイズを除外。
  • 人物情報検索のトレンドご紹介 part3 テキストマイニング技術について

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、Yahoo! JAPAN 研究所の山下達雄です。 今回は「Yahoo!人物名鑑」の一要素である「関連人物モジュール」について技術的な解説をしていきたいと思います。よろしくお願いします。 関連人物モジュールは、人物名鑑のページの右カラムにある「関係ありそうな人物名」で使われています。 例)夫木聡さんの場合 ウェブ上のさまざまなテキストデータを分析して、人物同士の関連度を計算し、その関連度の高い人物をタグクラウド形式で表示しています。 関連度の計算には様々なテキストマイニング的な手法を用いていますが、ここではウェブ検索を利用した簡単で効果的を方法を説明します。 ■処理の流れ 分かりやすくするため、関連人物ではなく関連語を

    人物情報検索のトレンドご紹介 part3 テキストマイニング技術について
    wacky
    wacky 2009/09/28
    Web検索を利用した関連語(連想語・同位語)の抽出手法。「○○や△△」のように『や』で繋げて表記されたものは関連語という考え方。(→ 関連論文: http://ci.nii.ac.jp/naid/110006160105/
  • ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室

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

    ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室
    wacky
    wacky 2009/06/30
    ゲームの作り方とアルゴリズムのジャンル別まとめ。リンク集。(RPG、シミュレーション、シューティング、アクション、パズル・ボードゲーム)
  • 開発チームが明かす、Google Waveの実装概要 - @IT

    2009/06/01 グーグルが発表した新しいコミュニケーションプラットフォームの「Google Wave」が大きな反響を呼んでいる。技術的な詳細がかなり明らかにされているので、何が可能かはだいたい予想ができそうだが(だからこそ発表時に会場を埋めていた4000人あまりの聴衆は興奮のあまり立ち上がって喝采を送ったのだが)、誰も想像できなかったようなキラーアプリケーションが登場するのかどうか、あるいはWave自体がキラーアプリケーションなのか、それはまだ誰にも分からない。 レポート記事(【詳報】Google Waveとは何なのか?)への反響を見ると、さまざまな疑問を感じている人がいる。そこでここでは、直接Waveのプロジェクトリーダーに話を聞いたり、別セッションで開発チームが行った説明、およびオンラインドキュメントから読み取れたことなど、いくつか追加情報をまとめたい。ちなみに、Google I

    wacky
    wacky 2009/06/02
    Google Waveに関する技術情報。同期通信(リアルタイム)と非同期通信(オフライン)、メッセージのアクセス制御(Wavelet単位)、リアルタイムな同時編集を安全かつ高速に行うアルゴリズムなど。
  • Darts: Double ARray Trie System

    Darts: Double-ARray Trie System はじめに Darts は, Double-Array [Aoe 1989]を構築するための シンプルな C++ Template Library です. Double-Array は Trie を表現するためのデータ構造です. ハッシュ木, デジタルトライ, パトリシア木, Suffix Array による擬似 Trieといった 他の Trie の実装に比べ高速に動作します. オリジナル の Double-Arrayは, 動的に key の追加削除を行えるような 枠組ですが, Darts は ソート済の辞書を一括してDouble-Array に変換することに機能を絞っています. ハッシュのような単純な辞書として使うことも可能ですが, 形態素解析器の辞書に必須の Common Prefix Search を非常に高速に行うことが

    wacky
    wacky 2009/05/08
    トライ(Trie)を実現するデータ構造「ダブル配列(Double-Array)」を構築するC++テンプレートライブラリ。LGPL/BSDライセンス。
  • クラスタリングの定番アルゴリズム「K-means法」をビジュアライズしてみた - てっく煮ブログ

    集合知プログラミング を読んでいたら、K-means 法(K平均法)の説明が出てきました。K-means 法はクラスタリングを行うための定番のアルゴリズムらしいです。存在は知っていたんだけどいまいちピンときていなかったので、動作を理解するためにサンプルを作ってみました。クリックすると1ステップずつ動かすことができます。クラスタの数や点の数を変更して、RESET を押すと好きなパラメータで試すことができます。こうやって1ステップずつ確認しながら動かしてみると、意外に単純な仕組みなのが実感できました。K-means 法とはK平均法 - Wikipedia に詳しく書いてあるけど、もうすこしザックリと書くとこんなイメージになります。各点にランダムにクラスタを割り当てるクラスタの重心を計算する。点のクラスタを、一番近い重心のクラスタに変更する変化がなければ終了。変化がある限りは 2. に戻る。これ

    wacky
    wacky 2009/04/09
    クラスタリングのアルゴリズムである「K-means 法(K平均法)」をActionScriptで実装。Flashでクラスタリング動作を1ステップずつ確認できる。ソースも公開。
  • Naive Bayes Text Classifier

    変更点 2008-09-12 日語が使えるようになりました.分かち書きには工藤拓氏のTinySegmenterを使っています. 細かい仕様を変更しました.バグじゃありません.仕様です.

    wacky
    wacky 2009/04/09
    「Naive Bayes(ナイーブベイズ)」のJavaScript実装。デモアプリケーション。(→ リリース: http://d.hatena.ne.jp/sleepy_yoshi/20080907/p1
  • ベイズの定理

    - 1 - ベイズの定理 2つの事柄A,Bがあるとき、一般的に次の関係が成り立つ。 P(B) = P(A∩B) + P(A∩B) = P(A)×P(B|A) + P(A)×P(B|A) B B A P(A∩B) A P(A∩B) 事柄 Bが起 こる のは 、事 柄 Aが起 こっ て事柄 Bが 起こる場 合と、事柄 Aが 起こらず (事柄Aが起こることと同じ)事柄 Bが起こる場合のいずれかである。 前者(事柄Aが起こって事柄Bが起こる場合)が、 P(A)×P(B|A) B B B B A A A P(A) P(A) 事柄A 事柄Aが が起こる 起こらない P(B|A) P(B|A) P(B|A) P(B|A) 事柄B 事柄Bが 事柄B 事柄Bが が起こる 起こらない が起こる 起こらない ベイズの定理 - 2 - 後者(事柄Aが起こらず事柄Bが起こる場合)が、 P(A)×P(B|A) B

    wacky
    wacky 2009/04/09
    初心者にも分かりやすそうな「ベイズの定理」の解説。PDF形式。
  • Aho Corasick 法 - naoyaのはてなダイアリー

    適当な単語群を含む辞書があったとします。「京都の高倉二条に美味しいつけ麺のお店がある」*1という文章が入力として与えられたとき、この文章中に含まれる辞書中のキーワードを抽出したい、ということがあります。例えば辞書に「京都」「高倉二条」「つけ麺」「店」という単語が含まれていた場合には、これらの単語(と出現位置)が入力に対しての出力になります。 この類の処理は、任意の開始位置から部分一致する辞書中のキーワードをすべて取り出す処理、ということで「共通接頭辞検索 (Common Prefix Search)」などと呼ばれるそうです。形態素解析Wikipediaはてなキーワードのキーワードリンク処理などが代表的な応用例です。 Aho Corasick 法 任意のテキストから辞書に含まれるキーワードをすべて抽出するという処理の実現方法は色々とあります。Aho Corasick 法はその方法のひと

    Aho Corasick 法 - naoyaのはてなダイアリー
    wacky
    wacky 2009/04/07
    任意のテキストから辞書に含まれるキーワードをすべて抽出する「Aho Corasick法」の解説。辞書サイズに計算量が依存しない高速な手法。Pythonのサンプルコード。
  • 川柳の自動生成アルゴリズムの紹介(どうしたら 機械で川柳 詠めるかな)

    こんにちは。エイプリルフールに 1 日だけローンチした Google 川柳、お楽しみいただけましたか?エイプリルフールが終わってしまったのでサービスはもうありませんが、せっかくなのでその裏側をすこしご紹介します。 今回は、Google人工知能 CADIE を開発し、その CADIE が世界中で面白いサービスを提供するという設定で Google 川柳を提供しました。人工知能 CADIE は架空のものですが、コンピューターによる川柳の自動生成を行ったのは、ウソではありません。 ここでは、その川柳をコンピューターに生成させた手順を簡単にご紹介します。 川柳とは何かを学習する まず、物の川柳/俳句を Web 上から集めました。集めた作品を解析し、俳句/川柳にありがちな品詞の並びパターンを学習しました。「瞬間」を切り取る 川柳/俳句には、「話題」が必要になります。これは、Web ページからラン

    川柳の自動生成アルゴリズムの紹介(どうしたら 機械で川柳 詠めるかな)
    wacky
    wacky 2009/04/03
    エイプリルフールネタ「Google川柳」で使われた川柳の自動生成アルゴリズム。『俳句/川柳の品詞の並びパターンを学習』→『Webからランダムに文を抽出』→『5-7-5にマッチするもの』→『学習結果から俳句らしさを計算』
  • 第11回 Kansai.pm / スペルミス修正プログラムを作ろう - naoyaのはてなダイアリー

    昨日は第11回 Kansai.pm でした。 今回は無理を言って自分がホストを担当させていただきましたが、面白い発表が多く開催した自分も非常に満足でした。 PFI の吉田さんによる Cell Challenge での計算機に合わせたアルゴリズムのチューニング手法の発表 (発表資料) は圧巻でした。伊奈さんの文抽出の話 (発表資料)、はこべさんのコルーチンの話 (発表資料)、いずれも難解になりがちなところを凄く分かりやすく解説されていて、さすがだなと思いました。各々ショートトークも、いずれも良かったです。 スペルミス修正プログラムを作ろう 自分も 20 分ほど時間をいただいて、スペルミス修正プログラムの作り方について発表しました。 スペルミス修正プログラムを作ろうView more presentations from Naoya Ito. スペルミス修正プログラムについてはずばり スペル

    第11回 Kansai.pm / スペルミス修正プログラムを作ろう - naoyaのはてなダイアリー
    wacky
    wacky 2009/03/24
    発表資料『スペルミス修正プログラムを作ろう』。辞書を用いたスペル修正のアルゴリズムを紹介。編集距離の計算、Levenshtein距離とJaro-Winkler距離、N-gramインデックスなど。
  • 芸能人の相関関係を探ってみるスクリプト - download_takeshi’s diary

    ちょっとした実験をしてみました。芸能人の相関関係を機械的に探索してみます。 具体的には「○○というタレントと関係が深い芸能人は?」といった、芸能人にフォーカスした類似検索みたいな実験です。 技術的には「潜在的意味インデキシング」(Latent Semantic Indexing)といった手法を使います。 これは普通は自然言語処理の世界で使われるテクニックですが、なにも言語だけでなく他のデータ素材でも面白い結果が得られるかもしれないので、やってみようという試みです。 以下に大まかな手順をまとめます。 wikipedia から有名人のリストを抽出 それらの有名人リストについて、一人ずつ「誰と関連が深いか」を集計。具体的には有名人個々のwikipediaのページ中に、先ほど抽出しておいた人名リストとマッチする人名がどれだけ掲載されているかをピックアップしていきます。 上記の方法で有名人の間の相関

    芸能人の相関関係を探ってみるスクリプト - download_takeshi’s diary
    wacky
    wacky 2009/03/24
    Wikipediaのデータを使って潜在的意味インデキシングの実験。有名人の相関関係を機械的に探索して、関係の深い人を抽出できるように。Perlのサンプルコード。
  • Kansai.pm#11 参加(+発表) - あまつぶ@はてなダイアリー

    Kansai.pm の第11回ミーティングに参加してきた。前回に続いて2回目の参加。今回は、「ベイズ理論とPOPFileにおける実装例」というたいそうなお題で発表までさせていただいた。 とりあえず発表のスライド(OOo Impress 形式)/(PDF 形式)。PDF の方はなぜかフォントが変。。。 10分ということでかなり駆け足になってしまった(しかも時間がオーバー(^^;)けれど、一応しゃべりたかったことはしゃべることができたかな。ベイズの定理の部分は id:naoya さんの発表にも出てきていて改めて説明しなくてもよくてちょっと助かった。あまり関連性がなさそうな話でも実はどこかでつながっていておもしろかった。 スライドには入れ忘れた参考文献(?)。 ベイジアン (bayesian)、ベイズ (bayes)、ナイーブベイズ (naive bayes) ってなんですか? (POPFile

    Kansai.pm#11 参加(+発表) - あまつぶ@はてなダイアリー
    wacky
    wacky 2009/03/23
    メール分類ソフト「POPFile」の開発メンバーによる発表資料『ベイズ理論とPOPFileにおける実装例』。ベイズの定理、使われている式の解説、参考文献など。
  • Kansai.pm #11 HTMLからの本文抽出 - taraoの日記

    CPANのHTML::ExtractContentについて発表。 発表資料: HTMLからの文抽出 from Lintaro Ina 記事の表示モードを変更したせいで表示されなくなってしまったブクマ:

    Kansai.pm #11 HTMLからの本文抽出 - taraoの日記
    wacky
    wacky 2009/03/23
    発表資料『HTMLからの本文抽出』。HTMLから「本文らしい」個所を見つけるためのアイデア。HTML::ExtractContentモジュールで使われているアルゴリズム。