タグ

algorithmに関するmarblejenkaのブックマーク (11)

  • ■ - くまメモ

    BloomFilterというアルゴリズムがあるらしいけれど、今度暇な時に腰を据えて勉強しよう。 とか思ってる方へ。これは気合いを入れて勉強するほどのアルゴリズムでは無くてとても単純な考え方です。という説明をするために作ったスライドです。 単純で効率的な割に活用事例が少ないのではないかと思います。 Bloom filterView more presentations from Kumazaki Hiroki. これからは並列分散な環境においてパフォーマンス目的で使われる場面が増えるのではないでしょうか。

    ■ - くまメモ
  • TinyTM - Open Source Translation Memory

    TinyTM is open-source software and developed by an open-source community and (currently) licensed under GPL V2. Open for business, as well! The translation sector is small and with few open-source players. So we need commercial vendors to participate in this project as well. This is what’s in for them: Integrate TinyTM with commercial applications: We encourage commercial vendors to integrate Tiny

  • SkipGraphについての解説です - くまメモ

    僕が卒業研究で行った内容でした。 SkipGraphView more presentations from Kumazaki Hiroki. パフォーマンスが出ていないので後日再試を行います。

    SkipGraphについての解説です - くまメモ
  • ConsistentHashing - コンシステント・ハッシュ法

    ConsistentHashing - コンシステント・ハッシュ法 目次 この文書について コンシステント・ハッシュ法 実例 実装 用途 コンシステント・ハッシュ法 この文書について "Tom White's Blog: Consistent Hashing" の日語訳です. http://weblogs.java.net/blog/tomwhite/archive/2007/11/consistent_hash.html 推敲歓迎: 誤訳, タイポ, 訳語の不統一, そのほか... 原文のライセンス: http://creativecommons.org/licenses/by-nc-sa/2.0/ 私は今までに何度かコンシステント・ハッシュ法にとりくんだことがある。 このアイデアをあらわした論文 ( David Karger らによる Consistent Hashing and R

  • 良い乱数・悪い乱数

    C言語標準ライブラリの乱数rand( )は質に問題があり、禁止している学会もある。 他にも乱数には様々なアルゴリズムがあるが、多くのものが問題を持っている。 最も多くの人に使われている乱数であろう Visual Basic の Rnd の質は最低である。 そもそも乱数とは 乱数とは、来サイコロを振って出る目から得られるような数を意味する。 このような乱数は予測不能なものである。 しかし、計算機を使って乱数を発生させた場合、 次に出る数は完全に決まっているので、予測不能とはいえない。 そこで、計算機で作り出される乱数を疑似乱数(PRNG)と呼び区別することがある。 ここでは、特にことわらない限り乱数とは疑似乱数のことを指すとする。 計算機でソフト的に乱数を発生させることの最大のメリットは、 再現性があることである。 初期状態が同じであれば、発生する乱数も全く同じものが得られる。 このことは

  • Low-Layer Hacks: P2Pアルゴリズム毎のメリット/デメリット

    2009-10-10 P2Pアルゴリズム毎のメリット/デメリット Winny裁判で金子氏に無罪判決が下り、P2Pを実装したアプリケーションは今後増えてくると予想される。そこで、技術者向けにP2P構造化オーバーレイネットワークのアルゴリズム毎におけるメリット/デメリットを簡潔にまとめ、実装にあたり必要となるであろう参考資料を示した。 ・Chord DHT(分散ハッシュテーブル)の一種であるこのアルゴリズムはConsistent Hashingをベースとしており、名前の通り、分散されたコンピュータ間にハッシュテーブルを構築する。このアルゴリズムは多くのシステムに採用されているのでとても信頼性が高く、実装も容易である。 ただ、愚直な実装では耐障害性が低くなるので注意が必要だ。UnbreakableなChordを提案した論文もあるようなので、そういう文献も参考にすると良いかもしれない。 参

  • 9月から新学期! スタンフォード、MIT、バークレイのコンピュータサイエンス講座をYouTubeで受講しよう

    では9月といえば2学期の始まりですが、米国では9月が新学期のスタート。留学したつもりで海外の大学で行われているコンピュータサイエンスの講座を受講するのはいかがでしょうか? YouTubeは今年の3月から、大学が公開している講義の動画を集めた「YouTube - EDU」コーナーを開始しました。スタンフォード、ハーバード、マサチューセッツ工科大学(MIT)、カリフォルニア大学バークレイ校(UC Berkeley)、そのほか多くの大学の講座が無料で見られます。 内容はコンピュータサイエンスに限らず、政治、経済、著名人のオピニオンなどが幅広くカバーされています。 YouTube Eduには大量の講座が蓄積されているのですが、自分に興味のある講座を探してそれらを見るには、検索を繰り返したり授業ごとに分割された動画を順番に探したりと、少々手間がかかります。 そこで、ITエンジニアの方が見て役に立

    9月から新学期! スタンフォード、MIT、バークレイのコンピュータサイエンス講座をYouTubeで受講しよう
  • 並列処理を体感してみよう (1/3)- @IT

    第1回 並列処理を体感してみよう 株式会社フィックスターズ 浅原 明広 2009/7/8 CPUの周波数の高速化競争が頭打ちになり、1コアにおける処理能力は限界となった。CPUの進化がマルチコア化に向かった結果、並列コンピューティングの門戸が開かれた(編集部) CPUの動作周波数が毎年のように改善され、ソフトウェアが放っておいても速くなったのは、古き良き時代の話。 Intel CPUの周波数が4GHzに近づいた2004年ごろからは、消費電力や発熱量の増加が、いわゆる“Power Wall”という深刻な問題として立ちふさがり、CPUの動作周波数は頭打ちとなりました。 変わってCPUの進化は、演算コアの増加という形で現れるようになってきています。つまり、CPUコアの動作周波数はまったく変わらないか、むしろ若干遅くなる傾向にあるため、1コアで動作するシーケンシャル(Sequential:逐次処理

  • 分散ハッシュテーブル - Wikipedia

    分散ハッシュテーブル (英: Distributed Hash Table, DHT) とは、ハッシュテーブルを複数のピアで管理する技術のこと。2001年に発表されたCAN, Chord, Pastry, Tapestryが代表的なアルゴリズムとして挙げられる。 アドホック性とスケーラビリティの両立を目指す探索 (lookup) 手法で、コンピュータネットワーク上に構築されることから、オーバレイネットワークの一つといえる。 アドレスとコンテンツのハッシュ値を空間に写像し、その空間を複数のピアで分割管理することで、特定ピアに負荷が集中することなく大規模なコンテンツ探索を実現する。 DHTはサーバの集合により構成され、主な機能はハッシュテーブルと同等である。あるキー(ビット列)をハッシュ関数、あるいは何らかの直線化関数により論理的な空間の1点に射影し、射影された点に値を関連づけることを特徴とす

  • C++: 編集距離を求めるアルゴリズム

    編集距離(edit distance)とは二つの文字列がどの程度異なっているかを示す数値であり、レーベンシュタイン距離(Levenshtein distance)を指すことが多い。文字の挿入、削除、置換それぞれを一つの操作として必要な操作の最小数を求めるものだ。例えば、kittenとsittingの編集距離を求める場合、下記のように3回の操作でkittenをsittingに変更できるので編集距離は3となる。 1. sitten (k を s に置換) 2. sittin (e を i に置換) 3. sitting (g を挿入) そこで今回は編集距離を求める複数のアルゴリズムについてC++で実装してみた。 動的計画法 編集距離を求めるもっとも一般的なアルゴリズムは、動的計画法(dynamic programming)だろう。計算時間はO(mn)であり、手軽だ。C++で書いたコードを下に示

    marblejenka
    marblejenka 2009/12/20
    [c/c++]
  • Diff algorithm - 枕を欹てて聴く

    id:smoking186 さんの指摘を受け, First Authorの名前などを付加しました. どうもです. 記事内のcodeは最適化などを施しておらず, 冗長に, 定義どおりに書いています. ifがまとめられたりとかしますが, そのあたりはご容赦を... Rubyでlevenshtein距離を見て以来, 個人的にdiffブームが来ていた. 計算量O(ND) / O(NP)のalgorithmなどがあるのは知っていたが, 論文(英語)および, 解説のみ, またはソースコードのみなど分かれているものが多く, algorithmに疎い自分には理解するのに大変時間がかかってしまった. しかしやっとわかったので, 解説+JS実装してみる. 解説とソースコードがセットだと, 多少はわかりやすくなるかと... 自分は正直これくらい細かく言われないとすぐにはわかんない人なので(the O(ND)だけ

    Diff algorithm - 枕を欹てて聴く
    marblejenka
    marblejenka 2009/12/20
    [c/c++]
  • 1