タグ

algorithmに関するmizusawaのブックマーク (28)

  • 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 ^=

  • プログラミングコンテストでの乱択アルゴリズム

    Introduction to Locally Testable Codes and Related Topics (in Japanese)

    プログラミングコンテストでの乱択アルゴリズム
  • 指数関数を使ったお手軽イーズ・アウト

    (この記事にはProcessing.jsによるスケッチがいくつか組み込まれています。環境によっては正しく再生されないかもしれません。Chrome, Safari, Firefox等の使用をおすすめします。) 「丸が1秒おきに左右に滑らか動く」というプログラムを書いてみよう。いちばん簡単なのは、線形移動を使う方法だ。 まあ、これでも十分っちゃ十分なんだけれど、動きとしてはちょっと味気ない。 いわゆるイーズアウト(ease out)を使えば、これを滑らかにすることができる。 上のスケッチでは、漸化式を使ったイーズアウトを実装している。こんな感じの式だ。 pos += (target - pos) * 0.1; pos は現在座標、 target は目標の座標。この式を1回の描画毎に評価する。目標座標までの差分を1割づつ詰めていくような感じ。差分は毎回少なくなっていくから、最初は早く、徐々に遅く

  • Soft maximum 関数

    Soft maximum 関数というものがある。簡単に言えば「なだらかな max 関数」だ。下のグラフのような曲線を描く(角張っているのが普通の max 関数)。 式も簡単だ。次のようなシンプルな式で表される。 softmax(x, y) = log(exp(x) + exp(y)) これをちょっといじくって次のようにすれば “soft minimum” 関数も実現できる。 softmin(x, y) = -log(exp(-x) + exp(-y)) 更にこのふたつを組み合わせれば “soft clamp” 関数も可能だ。 softclamp(x, min, max) = log(exp(max) + exp(-log(exp(-min) + exp(-x)))) ゲームなどを作っていると、とにかく値の変化をなだらかにしたいという場面がよくある。イーズイン・アウトと比較すると使用の機会は

  • http://homepage1.nifty.com/herumi/diary/1111.html

  • アルゴリズムを学ぼう

    関連サイト出版社による関連ページが公開されています。 アルゴリズムを学ぼう (KADOKAWA/アスキー・メディアワークス) 関連書籍書の続編『続・アルゴリズムを学ぼう』も好評発売中です。 内容紹介書のテーマは、ガチのアルゴリズムとデータ構造、そして計算量です。 いや、確かに書は女の子がいろいろでてきたり、小話が入っていたりと、ゆるふわなオーラが漂っています。しかし、あえていいましょう。それは、見かけだけである、と。 プログラミングを学ぶにあたって、アルゴリズムとデータ構造は、どの言語を用いるにしてもすべての基礎であり、避けて通ることはできない道です。アルゴリズムとデータ構造を知らずにプログラムを書くことは、無免許で車を運転するぐらいに危険な行為です。 しかし、アルゴリズムとデータ構造をきちんと理解せずに、プログラムを書いているプログラマーが多数いるのも事実です。それは、アルゴリズム

    アルゴリズムを学ぼう
  • Google検索アルゴリズムで生態系崩壊を予測 | WIRED VISION

    前の記事 「飛行機からレーザーで地上攻撃」実験に成功 Google検索アルゴリズムで生態系崩壊を予測 2009年9月 8日 Hadley Leggett 写真:Flickr/fusion68k、イラスト:PLOS Computational Biology。サイトトップの画像は海藻をべるマナティ。画像はWikimedia Commons 生物学者たちは、生態系を破壊する最も効率的な方法を見い出した――Google社の検索アルゴリズムに基づいてだ。 物網の要になる生物種が絶滅すると、生態系全体の崩壊を引き起こす危険性があるということは、以前から科学者の間では知られていた。だが、種の相互作用は無数ともいえるほど存在するため、どの動物や植物がいちばん重要なのかを推測することは難しい。 [現在の群集生態学では「物連鎖」という言葉より、物網という概念の方が現実的なものとして重視されてきている

  • 人工脳の進化実験:「だます戦略」も進化 | WIRED VISION

    前の記事 「机や服を爪でこする音」を使った入力システム(動画) 人工脳の進化実験:「だます戦略」も進化 2009年8月20日 Brandon Keim Image: PNAS。サイトトップの画像は、人工呼吸の訓練用ダミーたち。Wikimedia Commons 映画『ターミネーター』シリーズのお蔵入りになったシーンだと言われたら信じてしまいそうな実験が行なわれた。ロボットたちに「人工脳」を搭載して動物たちのように生存競争を行なわせたところ、短期間のうちに進化し、互いをあざむく技を身につけたのだ。 これらのロボットはサッカーボールほどの大きさで、車輪とセンサー、点滅する信号ライトを組み合わせてあり[画像B]、デジタルの神経回路で制御されている。ロボットを設計した研究者らは、これらのロボットを1つのコートに入れて競わせた。コートの両端に、「物」「毒物」を示す紙製の円を置き、物を見つけてその

  • はてなのCAPTCHAを破るプログラムは30分で書ける - やねうらおブログ(移転しました)

    CAPTCHAとは、スパムコメントなどを防止するための認証画像のことである。 それにしても、はてなのCAPTCHAはひどい。無いよりマシという考え方もあるのでそれについてはあまり議論する気は無いのだが、それにしてもこれを破るプログラムは30分あれば十分書ける。 具体的には、はてなのCAPTCHAには8つの好ましくない特徴と、2つの脆弱性がある。 ■ 8つの好ましくない特徴 ・画像自体のサイズが小さすぎる。→ こんなに小さいと探索量(計算量)が小さくて済む。 ・フォントにゆがみがない → フォントはある程度変形させたほうが良い。変形させてあるとテンプレートマッチングがしにくくなる。 ・フォントが固定。→ フォントは毎回変えたほうが良い。 ・フォントを回転させていない → フォントは文字ごとにある程度ランダムに回転させた方が良い。 ・フォントサイズが一定 → フォントサイズは文字ごとにある程度

    はてなのCAPTCHAを破るプログラムは30分で書ける - やねうらおブログ(移転しました)
  • Googleのページランクにも使われているマルコフ連鎖を利用して文章を要約、もしくは意味不明にする「マルコフ連鎖ジェネレーター」

    かの有名な検索エンジン「Google」にはページランクという概念がありますが、そのページランクを支える理論の一つがこの「マルコフ連鎖」というもの。さまざまなジャンルに応用されていることでも有名で、人工知能ならぬ「人工無能(いわゆるチャットボット、会話ボットなど)」にも使われることがあります。 で、このマルコフ連鎖を利用して文章を要約、もしくは意味不明にしてくれるのが「マルコフ連鎖ジェネレーター」というわけです。 詳細は以下から。 マルコフ連鎖ジェネレーター http://itog.sakura.ne.jp/markov/ 意味不明モードか要約モードのいずれかを選び、文章を貼り付けて「ジェネレート」をクリックするだけです 吉野家コピペの場合、こうなりました。 そんな事より150円だよ、ちょいと問いたいだけちゃうんです。女子供は、お前、150円やるから店員に来てあるんです。もう見てない、150

    Googleのページランクにも使われているマルコフ連鎖を利用して文章を要約、もしくは意味不明にする「マルコフ連鎖ジェネレーター」
  • マルコフ連鎖で日本語をもっともらしく要約する - ザリガニが見ていた...。

    そもそも、マルコフ連鎖とは何なのか?全く聞いたこともなかった。そして、文章を要約するのはとっても高度なことだと思っていて、自分のレベルではその方法を、今まで思い付きもしなかった。 しかし、以下のようなシンプルなRubyコードでそれが出来てしまうと知った時、目から鱗である...。一体、何がどうなっているのだ?コードを追いながら、マルコフ連鎖を利用するという発想の素晴らしさを知った! 作業環境 MacBook OSX 10.5.7 ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0] mecab utf8環境でインストール済み マルコフ連鎖に出逢う rssを流し読みしていると、以下の日記に目が止まった。(素晴らしい情報に感謝です!) MeCabを使ってマルコフ連鎖 一体何が出来るコードなのか、日記を読んだだけではピンと来なかっ

    マルコフ連鎖で日本語をもっともらしく要約する - ザリガニが見ていた...。
  • Web上の膨大な画像に基づく自動画像補完技術の威力 - A Successful Failure

    画像内に映り込んだ所望のオブジェクトを排除し、違和感の無い画像を生成するシーン補完技術に関しては近年複数の研究成果が発表されている。しかし中でも2007年のSIGGRAPHにて米カーネギメロン大のJames HaysとAlexei A. Efrosが発表した手法*1はブレークスルーとなりうる画期的なものだ。 論より証拠、早速適用例を見てみよう。エントリで利用する画像はPresentationからの引用である。元画像の中から邪魔なオブジェクト等の隠蔽すべき領域を指定すると、その領域が補完された画像が自動的に生成される。 アルゴリズム 効果は抜群だがアイデア自体は単純なものだ。Web上には莫大な数量の画像がアップされており、今や対象となる画像の類似画像を一瞬にして大量に検索することができる。そこで、検索された類似画像で隠蔽領域を完全に置き換えてしまうことで違和感の無い補完画像を生成するのだ。

    Web上の膨大な画像に基づく自動画像補完技術の威力 - A Successful Failure
  • ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室

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

    ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室
  • 開発チームが明かす、Google Waveの実装概要 - @IT

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

  • Expired

    Expired:掲載期限切れです この記事は,ダウ・ジョーンズ・ジャパンとの契約の掲載期限(90日間)を過ぎましたのでサーバから削除しました。 このページは20秒後にNews トップページに自動的に切り替わります。

  • アニメ顔の色情報に基づいた画像検索 - Imager::AnimeFace demo

  • anime.udp.jp

    ここは、コンピュータでイラストやアニメのキャラクターを識別するプロジェクトのページです。 僕がひとり、趣味で行っています。 目標は、絵を描く人に関係なく、より一般化されたキャラクターというものについて正しく識別できるライブラリを開発し、画像の自動分類や検索に役立てることです。 更新履歴 AnimeFaceを最近の環境で動くようにしてGitHubに置きました(Perl拡張なし) (2016 2/18) Imager::AnimeFaceのビルドスクリプトを修正. Imager-AnimeFace-1.02 (2012 7/30) OpenCV用のアニメ顔分類器にLBPの検出器を追加 (2011 7/18) Ruby拡張ライブラリへのリンク追加 (2010 8/16) 関連リンクを追加,微妙に様々なコメントを修正 (2010 3/30) 昔作ったもの(OpenCV用のアニメ顔分類器,SC),関

  • フォント同士を交配させて新しいフォントを作る「genoTyp」が面白い - てっく煮ブログ

    「この発想はなかった!」と驚いた。genoTyp はフォント同士を交配させて新しいフォントを生み出す実験サイトだ。早速、試しにやってみた。1. 第一世代の親を決めるgenoTyp を開いて左上の [Breed] タブをクリックすると「交配ページ」が表示される。[add original font] ボタンをクリックして、祖先となるフォントを2つ追加してみた。交配させるために2つのフォントをドラッグしてくっつけた。くっついた状態になれば交配の準備は完了だ。2. 交配させてみる中央の [cross] ボタンを押すと第一世代が誕生する。4人の子供が誕生した。父親似だったり、母親似だったり、子供によって雰囲気が異なっている。3. 第一世代でも交配別の [original font] を追加させて、第一世代の中から気に入ったものと交配させてみた。3人の子供が第二世代に誕生した。4. さらに交配!今度

  • 新規保存で劣化していくJPEG形式の画像の様子をとらえたムービー

    JPEG形式の画像は基的に非可逆圧縮で、保存するたびに劣化してしまいます。1度や2度の保存では違いが分かりにくいのですが、保存を繰り返すことですぐに分かるほどに劣化していきます。そんな少しずつ圧縮されて劣化する画像の様子がムービーでまとめられていたのでご紹介します。 詳細は以下から。 新規保存を600回繰り返して劣化していく20秒のムービー。 GENERATION LOSS | HADTO.NET 4秒(約120回)付近で明らかな違いが出ています。 10秒(約300回)付近。粒状感たっぷり。 もう空には見えません。 最終的にはテレビの砂嵐のような画像になっています。 2009/04/19 22:04追記 これは単純に同じ圧縮率でJPEG保存を繰り返しているのではなく、少しずつ圧縮率を上昇させていって保存した画像をつなげたムービー。プログラムのコードの中身としては、MAPクラスとJPEGの

    新規保存で劣化していくJPEG形式の画像の様子をとらえたムービー
  • クラスタリングの定番アルゴリズム「K-means法」をビジュアライズしてみた - てっく煮ブログ

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