タグ

algorithmに関するihagのブックマーク (19)

  • 大規模グラフアルゴリズムの最先端

    2. 挨拶 • 自己紹介 – 秋葉拓哉 / @iwiwi – 東京大学 コンピュータ科学専攻 M1 – アルゴリズム系の研究室 – プログラミングコンテストが好き – 2009 年にインターンさせてもらって以来アルバイト アリ (グラフの話もあるよ) 1 3. いろんなグラフ 道路・交通ネットワーク • 頂点:交差点,駅など • 辺:道,路線など やりたいことの例 • 案内,交通管制 • 輸送や災害のための解析 • 地理情報と絡めたサービス • … 2 4. いろんなグラフ ソーシャルネットワーク • 頂点:人 • 辺:人間関係 やりたいことの例 • 「知り合いかも?」とか • 重要度・影響度の解析 • コミュニティ解析 • 情報の伝播力の解析 • … (MentionMap で作成) 映画 3

    大規模グラフアルゴリズムの最先端
  • A* - Wikipedia

    A*探索アルゴリズム A*(A-star、エースター)探索アルゴリズム(エースターたんさくアルゴリズム)は、グラフ探索アルゴリズムの一つ。 最良優先探索を拡張したZ*に、さらにf値として「現時点までの距離」g と「ゴールまでの推定値」h の和を採用したもの[1]。h は ヒューリスティック関数と呼ばれる。 A* アルゴリズムは、「グラフ上でスタートからゴールまでの道を見つける」というグラフ探索問題において、 ヒューリスティック関数 h(n) という探索の道標となる関数を用いて探索を行うアルゴリズムである。h は各頂点 n からゴールまでの距離のある妥当な推定値を返す関数で、解くグラフ探索問題の種類に応じてさまざまな h を設計することが出来る。 例えば、カーナビなどで用いられる単純な二次元の地図での探索では、h としてユークリッド距離 を使うことができ、この値は道に沿った実際の距離のおおま

    A* - Wikipedia
  • ウノウラボ Unoh Labs: diff with C++

    ミートソーススパゲティを作るときは、ミートソースから作るのが信条のbokkoです。それはさておき、今日はdiffのお話です。 diff diffは指定した2つのファイルの差分を求めるコマンド、もしくはその差分そのものを指します。普段から何気なく使用しているコマンドですが、その中で使われているアルゴリズムは結構難しいです。 差分を計算するということ 差分を計算するというのは以下の3つを求めることに帰結します。 ・Levenshtein Distance(Edit Distance) ・LCS(Longest Common Subsequence) ・SES(Shortest Edit Script) 上から順に1つずつ説明していきます。 Levenshtein Distance Levenshtein Distanceは2つのシーケンスの違いを数値化したもので編集距離とも言います。これは後述

  • 自動生成迷路

    迷路自動生成アルゴリズム プログラムによる迷路の自動生成の解説ページです。 どちらかというと大きな迷路を生成する事に興味があり、ゲームソフトで使われる迷路とは観点が異なっています。 下記のソフトをダウンロードして実行すると、棒倒し法と穴掘り法と壁延ばし法の実際の迷路の生成動作を見ることができます。 ダウンロード(Windows用ソフト) 249Kバイト 1.はじめに 自動生成迷路はの基形は方形座標上で、各マスが壁または道から成り立っています。 このデータはプログラム上も2次元配列で簡単に作れ、各マスが壁か道かだけを覚えていればいいので、表現も簡単です。 またこれを画面に反映する際も、道や壁を適当なアイコンに置き換えればいいので、比較的簡単にゲームに使えます。 道の幅は通常1マスです。 2.棒倒し法 棒倒し法は、比較的プログラミングの楽な迷路生成法です。 最初に基となる四角の外壁と、その

    ihag
    ihag 2008/05/18
    計算機上で迷路を作成するアルゴリズムの紹介
  • B+-tree

    □ B-tree ではレコードそのものをノードに入れるので,ページに入れられる レコードの数が少ない. これに対して,通常の索引ではキー値とポインタのみであるので,一ページに 入る量が増やせる. この観点から B-tree を改良したのが B-tree で,B-tree よりも 一般的である. □ 図6.8 (p. 116) に索引部が 次の B-tree と同様で, leaf ノードのエントリ数が 最大 3 のものを示す. B-tree と異なり,データレコード自体は leaf にのみ記録されるので, v キー値の出現の様子を見ると,重複がある.(例: 25 や 16 など.) leaf ノードは 一般にポインタでつながれているので,レコードをキー順に アクセスするのは,B-tree の走査よりも簡単である. □ 格納できるエントリ数の違いを見ておく. レコードサイズが 256 で,ペー

  • 教えて進路Q&A あなたの質問にみんなが回答する!Q&A マイナスの割り算の公式

    ご質問の意図がつかめないので、違っているのかもしれませんが。。。 私は、マイナスは方向だと思っています。 プラスの方向に対して、180度逆向きがマイナスです。 ある計算の結果、−Zとなった場合、大きさは「Z」で方向がマイナス(180度逆向き)ということでいいのではないでしょうか。 「マイナスで割る」ということをゼロよりも小さいもので割る、という感覚だとおかしい気がします。プラスで割るのと同じだが方向が逆向きなんだ、という感覚に思っています。 書いているうちに、どうも違うような気がしてきました。^^; 公式という意味がわかりませんが、掛け算と割り算の場合は、マイナスが偶数あるとプラスに、奇数あると最終的にマイナスになります。 なので、(1)と(2)は、違ってます。 両方とも、−Zです。 物理計算では、余りを求めることは、普通はなく、小数点数桁まで計算して、

    ihag
    ihag 2007/11/19
    マイナスの割り算には解が2つあるという話.ANo.3がすばらしい.
  • http://www-sr.informatik.uni-tuebingen.de/~buehler/AC/AC.html

  • Spaghetti Source - 複数パターン検索 (Aho-Corasick)

    説明 複数のパターン文字列からなる集合と長い文字列が与えられる.長い文字列に対してマッチするパターン文字列をすべて求めるアルゴリズムが Aho Corasick である.これは複数パターン文字列をあらかじめ trie に変換してから KMP を実行し,パターンマッチング・オートマトンを構成していることになる. 詳しくは適当な成書や http://www.cs.uku.fi/~kilpelai/BSA05/lectures/slides04.pdf などを参考のこと. 計算量 構築 O(m). 検索 O(n + m). ただし m はパターンの文字列長の総和,n は検索テキスト長. 使い方 struct PMA; を適宜設定のこと. buildPMA(char *p[], int m) 0 ... m-1 の複数の検索パターンから,パターンマッチング・オートマトンを構築する. match(c

  • 定番アルゴリズムを徹底理解! - 今からでも遅くない!アルゴリズム入門:selfup

    このパートでは,プログラミングを勉強するうえで欠かせないアルゴリズムの中でも定番中の定番を紹介します。ソート(並べ替え)やサーチ(検索)などの機能は今では標準のライブラリとして提供されています。実用的なプログラムを作るときにそのものずばりをいちいち書く機会は少ないかもしれません。しかし定番のアルゴリズムは,様々に形を変えて普段のプログラミングに登場します。 解説を読んで仕組みがわかったら,ぜひそれをプログラムにしてみてください。読んだだけではプログラムを書けるようにはなりませんし,プログラムを書いてみて初めて,実は十分に理解できていなかったと気付くことがよくあります。しかもアルゴリズムは特定のプログラミング言語に依存しないので,一度身に付ければ,後でどんな言語を学ぶ場合でも役に立ちます。 1番目から6番目まではソートのアルゴリズム,7番目から9番目まではサーチのアルゴリズムです。一つひとつ

    定番アルゴリズムを徹底理解! - 今からでも遅くない!アルゴリズム入門:selfup
    ihag
    ihag 2006/11/02
    ソートとサーチ。おもしろい。
  • 第3回 正規表現勉強会

    資料の原稿 「詳説 正規表現」を読む、勉強会資料です。 プレゼン形式(S5)の表示 - http://dev.ariel-networks.com/articles/workshop/regex/paper/s5_document

  • grep, egrep, fgrep の使い分け方

    grep, egrep, fgrep の使い分け方 1995年4月に jus関西の UNIX 研究会(第61回)で、 「イキでいなせな(e|f)?grep の使い分け方」と題し、 grep ファミリの使い分け方について 15 分の発表をしました。 そのときに使った OHPシート(発表で使わなかったページもありますが)を 以下に公開します。 古くなってしまった情報や、間違っている情報もあると思います。 変な所を見つけた方は、ぜひご一報下さい。晩ご飯おごります。 OHPシートは、Mac の persuasion 3.0J で製作しました。 この元ファイルも配布しています。ご入用の方はご連絡ください。 発表の構成では、 あやメーリングリスト < aya@creamy.ics.es.osaka-u.ac.jp > での議論、 特に齊藤明紀先生・中川寛治氏のコメントを参考にしました。 複写再配布等は

    ihag
    ihag 2006/10/17
    JUS関西での発表資料。grep/fgrep/egrepの実装(正規表現エンジン)の特性についての考察あり。おもしろい
  • ペトリネットとは?

    これをペトリネットでモデル化したものが図2である。 ペトリネットではそれぞれ、図中の`丸'を「プレース」、 `棒'を「トランジション」、 `矢印'を「アーク」、 プレース内の`小さな黒丸'を「トークン」と呼ぶ。 ペトリネットではプレース内のトークンの分布がそのシステムの 状態を表す。 図2では、各プレース内のトークン数がそれぞれ、p1ではバターの量、 p2ではパンの数、p3ではハムの数、p4ではチーズの数、 p5ではバターを塗ったパンの数、p6ではカットしたハムの数、 p7ではカットしたチーズの数、p8では完成したサンドイッチの数を 表している。 トランジションはシステムの動作を表す。 図2では、各トランジションはそれぞれ、t1は「バターを塗る」、 t2は「ハムをカットする」、t3は「チーズをカットする」、 t4は「ハムとチーズをパンで挟む」を表している。 ペトリネットではトークン分

  • 正規表現

    正規表現 前のドキュメント ViViの正規表現処理について説明する。 ■ 有限オートマトン チョムスキーの言語理論によれば、形式文法はクラス0~3に分類できる。正規表現は生成規則の制約が最も強いクラス3に属し、入力文字列が与えられた正規表現として受理されるかどうかを有限オートマトンにより決定することが出来る。 有限オートマトンとは下図の様に(有限の)状態と、入力文字によりどの状態に遷移するかの規則により構成されるものである。 'a'     'b' ○────→○────→◎ q0     q1     q2 上図では3つの状態、q0, q1, q2 があり、'a' が入力されると状態 q0 から q1 に遷移し、'b' が入力されると q1 から q2 に遷移することを表す。q2 は受理状態なので、"ab" が入力文字列であれば、めでたく受理されることになる。 正規表現を有限オートマト

    ihag
    ihag 2006/10/17
    Viviでの正規表現エンジンの実装の解説。バックトラックを用いないNFAエンジンの実装
  • Katz's Site - 算譜入門: オートマトンの基礎

    以上のような図や表によって象徴される、 状態とその間の遷移が定義された構造を 「状態機械」 と呼ぶ。 各々の状態の意味は考えない。 全く考えないのかといえばそうでもないのだが、 少なくとも理論上は状態として何を持ってきても構わない。 健康状態のように明らかな意味を持つモノを状態とする事もある。 何が何だかさっぱりわからないモノを状態とする事もある。 スゴロクの桝目のようなモノは後者の例と言えよう。 問題を解く為に最も便利なモノを状態として定義すればよい。 少し変わった状態機械の使用例: 虎と羊を連れた人が野菜を運んでいた。 ある所で川を渡る必要が生じた。 舟が一艘あったがとても小さい。 その人が乗るとあとは虎か羊か野菜の内のいずれか一つしか乗せられない。 しかし人が居ない所で虎と羊を一緒にすると虎は羊をべてしまう。 同様に人が居ないと羊は野菜をべてしま

  • Katz's Site - 算譜入門: オートマトンの基礎

    以上のような図や表によって象徴される、 状態とその間の遷移が定義された構造を 「状態機械」 と呼ぶ。 各々の状態の意味は考えない。 全く考えないのかといえばそうでもないのだが、 少なくとも理論上は状態として何を持ってきても構わない。 健康状態のように明らかな意味を持つモノを状態とする事もある。 何が何だかさっぱりわからないモノを状態とする事もある。 スゴロクの桝目のようなモノは後者の例と言えよう。 問題を解く為に最も便利なモノを状態として定義すればよい。 少し変わった状態機械の使用例: 虎と羊を連れた人が野菜を運んでいた。 ある所で川を渡る必要が生じた。 舟が一艘あったがとても小さい。 その人が乗るとあとは虎か羊か野菜の内のいずれか一つしか乗せられない。 しかし人が居ない所で虎と羊を一緒にすると虎は羊をべてしまう。 同様に人が居ないと羊は野菜をべてしま

    ihag
    ihag 2006/04/12
    わかりやすくてよい
  • アルゴリズムのはなし

    アルゴリズムのはなし     Last modified: Jul 20, 2004 アルゴリズムのお話をしようと思います。自然言語は,曖昧さが多く,アルゴリズムを記述するのは不適切です。そこで,以下の理由から,awk を使おうと思います。 処理系がフリーウエアである。 各種マシンに移植されている。 機能的には十分で,C 言語に移植しやすい。 警告:以下に示すプログラムは,完全なものでない場合があります。ユーザが自由に書き換えて使うための下書きとして提供するものです。 目次 マン・ホイットニーのU検定の統計量の分布 ウィルコクソンの符号付順位和検定の統計量の分布 ケンドールの順位相関係数の分布 スピアマンの順位相関係数の分布 統計関数の確率の計算 ・正規分布 ・カイ二乗分布 ・t分布 ・F分布 統計関数のパーセント点の計算 ・正規分布 ・カイ二乗分布 ・t分布 ・F分布 Fisher の正

  • emit.jp - emit リソースおよび情報

    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.

  • ビットを数える・探すアルゴリズム

    作成日:2004.05.04 修正日:2012.09.01 このページは 2003年の9/11、9/28 の日記をまとめて作成。 はじめに PowerPC 系や Alpha などには population count と呼ばれるレジスタ中の立っているビット数を数える命令が実装されている。 集合演算を行うライブラリを実装したい場合などに重宝しそうな命令である。 職場でこの population count 命令について話をしているうちにビットカウント操作をハードウェアで実装するのは得なのか?という点が議論になった。 CPU の設計をできるだけシンプルにするためには、複雑で使用頻度の低い命令は極力減らした方がよい。 例えば SPARC は命令セット中にビットカウント演算があるが、CPU 内には実装しないという方針をとっている(population 命令を実行すると不正命令例外が発生し、それを

    ihag
    ihag 2006/04/11
    すげえ!
  • IP,ICMP,UDP checksum calculation

    ★IP,ICMP,UDP のチェックサムの計算方法 概要 TCP/IPのIP, ICMP,UDP, TCP のヘッダにはそれぞれ、チェックサムがある。 TCPのヘッダはまだためしていないので、IP,ICMP,UDPのチェックサムの 計算方法を紹介する。 どのチェックサムも、ネットワークバイトオーダーの16ビットの数値を 読み出して1の補数和の1の補数をチェックサムとする点は共通だ。 チェックサムを計算する領域は、IPヘッダ、ICMPデータはそれぞれ、そのもの の範囲だが、UDPではUDPの領域に加えて、source, destinationの IPアドレス、プロトコル番号、データ長からなる擬似ヘッダを含める。 1の補数和(complement sum)の1の補数(complement)? 16bitの数値Aの1の補数は、0xffff-Aと定義されるが、bit反転でもある。 では、1の補数和

    ihag
    ihag 2006/02/14
    IP,ICMP,UDPチェックサム計算方法
  • 1