タグ

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

  • Newman アルゴリズムによるソーシャルグラフのクラスタリング

    昨今よく耳にするキーワード「ソーシャルグラフ」。その可能性・活用方法について様々な企業に注目されています。今回はその「ソーシャルグラフ」を「どうすればクラスタリングできるのか?」という観点で、グラフに対するクラスタリングの基礎を説明いたします。また、具体的なクラスタリング手法として Newman アルゴリズムをご紹介いたします。Read less

    Newman アルゴリズムによるソーシャルグラフのクラスタリング
  • 独断と偏見によるノンパラ入門 - 木曜不足

    「ノンパラメトリック」って言うくらいだからパラメータ無いんかと思ってたら、パラメータめっちゃあるし。 機械学習のネーミングのひどさはこれに始まった話じゃあないけど、それにしたって。 ノンパラの一番素朴なやつ( K-means とか)は当にパラメータ無くてデータだけだから納得なんだけど、だんだん欲が出てパラメータ足しちゃったり派生させちゃったりしてるうちに、よくわかんなくなってきちゃったんだろうかねえ。まったく。 どれどれ、と英語Wikipedia の "Non-parametric statistics" を見たら、なんか意味が4種類くらい書いてあるし。じゃあ名前分けろよ。 en.wikipedia.org とりあえずここで言う「ノンパラ」とは、変数の個数決めなくていい「分布の分布」なメタっぽいやつのこと。つまりディリクレ過程とか、ディリクレ過程とか、そこらへん。 「あー、ノンパラベ

    独断と偏見によるノンパラ入門 - 木曜不足
  • Soul of Engineer

    技術屋の魂(?) たいそうな題名の割に、PerlJavaで遊んでいるだけだったりします。 しかし仮にも「技術屋」を名乗る以上、 それなりの内容で固めていきたいと思っています (思うだけにならないように・・・・・・)。 これにしてもPerlって数値計算に向かない・・・・・・。 おかげで流儀に反してJavaに手を出してしまった・・・・・・。

  • Daftar Serta Masuk Saat ini Di Situs Slots Online Terpilih Ojekslot

    Daftar Serta Masuk Saat ini Di Situs Slots Online Terpilih Ojekslot Seperti yang kita pahami waktu ini ada sangat banyak permainan slot online paling sederhana yang dapat dimainkan dalam sekejap hanya cukup masuk di sana saja ojekslot terunggul. Di sini dapat ada sangat banyak bermacam permainan luar biasa yang pastinya dapat anda temukan dengan ringan. Beraneka permainan terbaik di sini dapat and

    Daftar Serta Masuk Saat ini Di Situs Slots Online Terpilih Ojekslot
  • Javaゲーム制作記 任意多角形の三角形分割

    今日はゲームの更新ではありませんが、 物理ゲームを作る過程で生まれた問題の解決方法です。 「任意多角形の三角形分割」 です。 今使っている物理エンジンは、凸包(凹んでない多角形)しか扱えません。 とすると、多角形の作成に制限が出てしまいます。 前に、 ほんとは用意しないつもりだったけど、手が滑って(?) 「ぐりぐりポリゴンが書けるツールを用意する」 と言ってしまったので、せっかくなので作ります。 "任意多角形の三角形分割"などと書きましたが、 「適当な図形を全部三角形で作ってみよう」という事です。 すごく参考になったページがあります。 [お勉強] 非凸多角形の三角形分割 ※勝手にリンク貼りました。すみません 手法とかはこのページを見れば大体分かるのだけど、 ちょっと難しくてわからないと言う人向けに詳しい解説を用意しました。 長くなるので続きからどーぞ

  • 非凸多角形の三角形分割

    昔,モデルビューアのまねごとみたいなソフトを作ったときについでにつくった のを思い出してつくってみた. アルゴリズムは,以下の流れ. 1.もっとも原点から遠い頂点を探す. 2.その頂点の両隣の頂点からなる三角形の外積ベクトルの方向を保存する. 3.その頂点と,その両隣の頂点からなる三角形の内部に他の頂点があるかを調べる. 4.もし内部に頂点がなければ,その頂点とその両隣の頂点からなる三角形を分割要素 として,その頂点を削除し,1に戻る. 5.頂点が内部にある場合は,隣の頂点に移動する 6.移動先の頂点と,その両隣の頂点からなる三角形の外積ベクトルの方向を計算し, 2.で求めた外積ベクトルと同じ方向かをチェック. 7.もし同じ方向であれば,その頂点と,その両隣の頂点からなる三角形の内部に他 の頂点があるかを調べる.内部になければ,その頂点とその両隣の頂点からなる 三角形

  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
  • オーダーを極める思考法

    プログラムの実行に掛かる時間を把握しておくのは、プログラミングを行う上で基的な注意点です。今回は、計算量のオーダーについて学びながら、TopCoderのMedium問題を考えてみましょう。 プログラムの実行時間 業務としてプログラミングをされている方には釈迦に説法かもしれませんが、プログラムの実行に掛かる時間を把握しておくのは、プログラミングを行う上で基的な注意点です。そしてこれは、TopCoderなどのコンテストでプログラムを組む際にもよく当てはまります。通常、こうしたことは感覚的に理解している方がほとんどだと思いますが、具体的にどれくらいのループを回すと何秒掛かる、といった基準を持っている人は少ないのではないでしょうか? 非常に基的なことですが、プログラムの実行時間に関して再確認しておきたいと思います。 TopCoderの制限に関して TopCoderでは、実行時間およびメモリ使

    オーダーを極める思考法
  • Undo,Redoの実装って何十回もやってる気がする - あしあと日記

    undo,redoの実装って何十回もやってる気がする。毎回同じパターンだ。undo,redoが登場するような編集ソフトは大体同じパターンに落とせる。フレームワークも作った。ブログにそういう内容を書きたいが面倒くさい。需要があれば面倒でも書くんだけどなあ http://twitter.com/youpychan/status/994486992 という発言をしたら何人か反応を頂いたので書いてみることにする。 需要があるなら書こう。undo,redoだけじゃなくてグラフィカルな編集ソフト全般の話をいつかまとめたいと思っていたので、ちょいとシリーズで書いてみようかとおもう http://twitter.com/youpychan/status/994636764 書こうと思う。 まずUndo,Redoについて。 Unod,Redoってみなさんどういう風に実装しているでしょうか? 私はコマンドパタ

    Undo,Redoの実装って何十回もやってる気がする - あしあと日記
  • Web上の膨大な画像に基づく自動画像補完技術の威力 - A Successful Failure

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

    Web上の膨大な画像に基づく自動画像補完技術の威力 - A Successful Failure
  • 適切なクラスタ数を推定するX-means法 - kaisehのブログ

    K-means法によるクラスタリングでは、あらかじめクラスタ数Kを固定する必要があります。HatenarMapsでもK-means法を使っているのですが、クラスタ数は(特に根拠もなく)200個に決め打ちになっていました。 これに対して、X-means法というK-means法の拡張が提案されていることを知りました。X-means法を使うと、データに応じて最適なクラスタ数を推定できます。 K-means and X-means implementations http://www-2.cs.cmu.edu/~dpelleg/download/xmeans.pdf X-means法の考え方は、K=2で再帰的にK-means法を実行していくというもので、クラスタの分割前と分割後でBIC(ベイズ情報量規準)を比較し、値が改善しなくなるまで分割を続けます。 調べたところ、Javaのデータマイニングツー

    適切なクラスタ数を推定するX-means法 - kaisehのブログ
  • ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室

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

    ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室
  • Introduction to Information Retrieval #2 (前半) の復習資料 - naoyaのはてなダイアリー

    id:naoya:20080205:1202208135 から引き続き、Introduction to Information Retrieval 2章の復習資料を以下にアップロードしました。 http://bloghackers.net/~naoya/iir/ppt/iir_02_1.ppt 今回は 2 章の前半、インデックス作成前のドキュメントの前処理に関する話題が中心です。2章は長かったので、区切りの良いところまでとなっています。次回の輪読会は 3/8 予定です。また次回の開催日後に、先週末の復習分である 2章残りと 3章前半についての資料を公開したいと思います。 過去の章のアーカイブは同 URL のディレクトリ (http://bloghackers.net/~naoya/iir/ppt/) から一覧できます。

    Introduction to Information Retrieval #2 (前半) の復習資料 - naoyaのはてなダイアリー
  • シンプレックス法<線形計画法(LP)<オペレーションズ・リサーチ<Web教材<木暮

    学習のポイント 線形計画法(LP:リニアプログラミング)の代表的な解法にシンプレックス法があります。シンプレックス法とは,簡単な数学的知識により線形計画法を解くアルゴリズム(答を求めるための計算手段)です。現実にはシンプレックス法により手計算で解くことはないでしょうが,シンプレックス法を理解することは,線形計画法をよりよく理解することにつながります。 キーワード 線形計画法(LP:リニアプログラミング),シンプレックス法,掃出計算 シンプレックス・タブローの作成 目的関数 Z=3x1 +2x2  → 最大 制約条件 4x1 +1x2 ≦72 2x1 +2x2 ≦48 1x1 +3x2 ≦48 (注)この元の問題は「線形計画法の定式化と図式解法」にあります。そこではx,y,a,b,cという変数名を用いていましたが,ここからは,数学的な表現をするために,このような変数名を用います。

  • 編集距離 (Levenshtein Distance) - naoyaのはてなダイアリー

    昨日 最長共通部分列問題 (LCS) について触れました。ついでなので編集距離のアルゴリズムについても整理してみます。 編集距離 (レーベンシュタイン距離, Levenshtein Distance) は二つの文字列の類似度 (異なり具合) を定量化するための数値です。文字の挿入/削除/置換で一方を他方に変形するための最小手順回数を数えたものが編集距離です。 例えば 伊藤直哉と伊藤直也 … 編集距離 1 伊藤直と伊藤直也 … 編集距離 1 佐藤直哉と伊藤直也 … 編集距離 2 佐藤B作と伊藤直也 … 編集距離 3 という具合です。 編集距離はスペルミスを修正するプログラムや、近似文字列照合 (検索対象の文書から入力文字にある程度近い部分文字列を探し出す全文検索) などで利用されます。 編集距離算出は動的計画法 (Dynamic Programming, DP) で計算することができることが

    編集距離 (Levenshtein Distance) - naoyaのはてなダイアリー
    blankblank
    blankblank 2009/03/29
    hogeとhgoeは2か
  • 【人工知能】物理エンジンで人工生命つくって学習させた

    運動学習させました。この仮想生物が試行錯誤をして動き方を学習しました。この動画はマルチエージェント進化シミュレータのanlifeを開発していたときに作りました。2020/10/4 追記この後作ったゾンビを宮崎駿監督にみていただいたところが2016年にNHKで放送され一部話題になりました。2016年超会議での超人工生命の生放送企画を経て、ドワンゴにて新たな人工生命を開発することに→ リリース後半年でサービスクローズ人工生命を作る会社を立ち上げました→ https://attructure.com/

    【人工知能】物理エンジンで人工生命つくって学習させた
  • PyBrain - a modular Machine Learning Library for Python

    今、python界でPyBrainが熱い!…わけじゃないですけど、個人的にけっこう注目しているライブラリ。機械学習ライブラリにおける、期待の新人が出てきなような気持ちです。 0.PyBrainとは?PyBrainっていうのはPythonによって動く、モジュール式の機械学習ライブラリです。python界ではいままでにもニューラルネットワークとかSVMなどを扱うライブラリが存在していましたが、PyBrainではそれらをより包括的に扱う、一種の環境としての機械学習ライブラリを目指しているようです。 PyBrainが優れているのはその思想もさることながら、扱っているアルゴリズムの多さにもあります。例えばFeaturesの欄を見てみると、 BackpropRpropPolicy GradientsSupport Vector MachinesEvolution StrategiesCMA-ESCom

    PyBrain - a modular Machine Learning Library for Python
  • 人工無能の作り方

    書いた人 INA 人工無能とは? 人間っぽく話すプログラムのこと。会話を理解しているというよりは、なんかそれっぽいことを話すだけのものが多い。 今回は「日語のようなものを話す人工無能」を作ってみたので、その簡単な仕組みと工夫した点について少し書いてみることにする。 動機 うちのサークルのメンバーがよく集まってるチャット。とてもマニアックな どうしようもない 会話が繰り広げられているわけだが、ちょっと物足りない。 そうだ! 萌キャラがいないじゃないか! 「ないなら作ればいいじゃない?」 材料 MeCab 形態素解析エンジン 難しいことは知らなくても問題ない。 「私は変な人ではない」 ↓ 私 名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ は 助詞,係助詞,*,*,*,*,は,ハ,ワ 変 名詞,形容動詞語幹,*,*,*,*,変,ヘン,ヘン な 助動詞,*,*,*,特殊・ダ,体言接続,だ,

  • メッセージキューを使って分散MapReduceを実装する 2009-02-16 - きしだのはてな

    さて、JMSでメッセージキューも使えるようになって、HadoopでMapReduceも試してみた。そうするとやりたくなるのがメッセージキューを使った分散MapReduceの実装ですね。ということで、JMSを使ってメッセージキューによる分散MapReduceをやってみました。実際にはローカルでしか動かないのですが、コンセプトモデルということで。 メッセージキューで遊びたいのでJMSを試す HadoopでのMapReduceを気軽に試すサンプル Hadoopサンプルで作ったのと同じように、クラスがJavaファイル中でimportされている回数を数えてみます。 考え方として、ちょっと強引ですが、GoogleやHadoopのMapReduceは分散ファイルシステム付きメッセージキューといえます。けど小規模につつましくやる分には分散ファイルシステムは必要ないので、MapとReduceを分散することだ

    メッセージキューを使って分散MapReduceを実装する 2009-02-16 - きしだのはてな
  • アルゴリズム - 同じ文字列のn回繰り返しをlog n回で作る方法 : 404 Blog Not Found

    2009年01月31日01:00 カテゴリLightweight LanguagesMath アルゴリズム - 同じ文字列のn回繰り返しをlog n回で作る方法 これなのですが.... 同じ文字列のn回繰り返しを作る最速の方法を探求してみた - muddy brown thang ちょっとした事情により、ある文字列のn回繰り返しを作る関数 (PHPでいうところのarray_repeat(), Perlで言うところの「"..." x n」、RubyPythonで言うところの「"..." * n」) を高速に実装しなければならない状況に遭遇したのでベンチマークをとってみたところ、その結果がとても新鮮で驚いたので、これを共有しつつもダメ出ししてもらえないかなーと思って晒してみることに。 なぜかもっとシンプルな奴がなかったので。 以下、比較。初期値はIEにあわせてあります。Firefox/Saf

    アルゴリズム - 同じ文字列のn回繰り返しをlog n回で作る方法 : 404 Blog Not Found