タグ

Algorithmとalgorithmに関するcrafのブックマーク (346)

  • チューリングマシンの動作を簡単確認 - Visual Turing Machine 2.0登場 | エンタープライズ | マイコミジャーナル

    Csaba Gajo氏は5月31日(米国時間)、Visual Turing Machineの最新版となる「Visual Turing Machine 2.0」を公開した。Visual Turing MachineはJavaで実装されたグラフィカルなチューリングマシン。チューリングマシンの動作を学習するにあたって、複雑な言語を記述せずともGUIからのクリックで体験できるところに特徴がある。 2.0ではシンボルのa-aryセットの追加、MDIの実装、メモリ問題をクリアした大規模ワークスペースの実現(10,000x10,000ピクセル)、自身のマシンを編集する機能の実現、n回マシンを実行する式機能の実現、実行速度の指定、テープの使用統計や命令の使用統計機能、プログラムをほかの言語に変換する機能など、いくつも新しい機能が追加されている。 チューリングマシンは単純化された計算模型のひとつで、計算機科

  • Azul Systems - Cliff Click Jr.’s Blog: A Non-Blocking HashTable

    A Non-Blocking HashTable March 27, 2007 I've been wrestling with concurrent algorithms again.  This time, it's a Non-Blocking (concurrent, lock-free) HashTable.  I've had it basically figured out for a few months now and I'm slowing widening the circle of people I expose it too.  This HashTable seems too good to be true, which is why I'm trying hard to vet it's correctness before claiming victory

  • Duff's device - Wikipedia

    Duff's Device(ダフスデバイス)とは、C言語での可変長の連続的コピーをループ展開により最適化実装するときに直面する端数の問題を解決するための手法である。 C言語のswitch-case文が持つフォールスルーを利用して、アセンブリ言語で行われる技巧をC言語で実現している。1983年11月、ルーカスフィルムで働いていたトム・ダフが発見した。 ループ展開は、ループのための分岐回数を減らす技法である。指定されるループ回数が不明な場合、ループ展開すると回数が合わない場合が出てくるので、ループの途中にジャンプすることで調整する。例えば、8回ぶんのループを展開した場合、指定されたループ回数が8で割り切れないなら、その回数を8で割った剰余のぶんだけ処理を実行する位置にジャンプさせる。 ダフはそのような最適化を検討していてCでの技法を発見した。

  • 文書比較(diff)アルゴリズム

    文書比較(diff)アルゴリズム 前のドキュメント 次のドキュメント ViViの文書比較(diff)機能で使用しているアルゴリズムについて解説する。 これらのアルゴリズムは Myers 氏らの論文によるもので、氏は筆者のためにわざわざ論文をWebサイトで入手可能な形式にしてくださった。この場を借りてお礼申し上げる。 オリジナル論文は以下のWebサイトから入手可能である。 http://www.cs.arizona.edu/people/gene [1] E.W.Myers, "An O(ND) Difference Algorithm and Its Variations", Algorithmica, 1 (1986), pp.251-266 [2] S. Wu, U. Manber, G. Myers and W. Miller, "An O(NP) Sequence Comparis

  • だいありー

    腰が痛い. そういえば,エディタネタで言うと,対応する括弧で挟まれた部分全部が括弧にカーソル置いたとき,強調とかされないとプログラミングできないなんじゃなくな体になっております. だから,ふつーの設定のエディタではプログラミングできません.具体的には自分の環境の xyzzy じゃないと書けません.弱. ある人に,D2 だから就職活動始まるよね,といわれた.そうなんだよなぁ.何か活動しないと. 研究ネタを書くのはそろそろやめようかと思っていたのだけれど,もうちょっと. 私の研究はまだ無いプロセッサの上でどんなふうにソフトウェアを作るか,なので,主に評価はシミュレータを使います.チップを作るのは大変すぎるので(作ってる人は居る).チップを作ろうとすると数千万とかかかるので,ふつーの大学では作れません.作ってる人は FPGA を使って作ります. さて,シミュレータなので,物のハードウェアで作れ

  • [を] Dynamic Programming による類似文字列マッチの実装例

    Dynamic Programming による類似文字列マッチの実装例 2007-01-22-4 [Programming][Algorithm] 「Modern Information Retrieval」(8.6.1 p.216) での Dynamic Programming (DP) の解説のところのアルゴリズムを 素直に Perl で実装したみた。 さらにマッチ箇所取り出しロジックも実装してみた。 DP はいわゆる「類似文字列検索(あいまい検索)」に使うと 便利なアルゴリズム。 実は、大学院でも前の会社でも、PerlやらC++やらで実装して使ってた。 単純ながら使い勝手もよく、まさに現場向きかと。 grep 式に頭から見ていくので計算量的にはイマイチなのだが、 転置インデックス検索などで範囲を絞ってから適用すれば実用上問題ない。 ■定義みたいなの Q1. 二