タグ

Algorithmとalgorithmに関するHeavyFeatherのブックマーク (162)

  • 高速かつ省メモリで文字列を扱うデータ構造「wavelet tree」:CodeZine

    はじめに 大規模なデータを扱うアプリケーションでは、速度とともに作業領域量も大きな問題となります。作業領域がメインメモリに収まらない場合、スワッピングが発生し、大幅な速度低下につながります。そのため近年、データ構造は高速なだけでなく、作業領域量が小さいことも求められています。今回紹介するのは2003年に提案されたデータ構造、wavelet tree(以下「WT」と表記)です。WTは圧縮索引やSuccinct Data Structureなど、データをコンパクトに表現する際に重要なデータ構造です。WTは文字列T[0...n-1]が与えられた時、次の2つの操作を定数時間でサポートします。rank(p, c)――T[0...p]中のcの出現回数を返すselect(i, c)――(i+1)番目のcの位置を返す  WTの作業領域量は、文字列をそのまま保存した時の約2倍程度です。対象読者 C++の利用

  • 2006年1月5日の攻撃は防げるか--ウイルス対策企業が「Sober」のアルゴリズムを解析

    複数のウイルス対策企業は、「Sober」ワームが製作者との「通信」に利用しているアルゴリズムを解析したと発表した。 2005年11月、Soberワームの最新亜種は、自身を連邦捜査局(FBI)や中央情報局(CIA)からの電子メールであるかのように偽装し、ユーザーをだましてコードを実行させ、大混乱を巻き起こした。ウイルス対策企業は当初から、同ワームが自身をウェブ経由でアップデートする方法を知るための、何らかの手段が存在することに気付いていた。ワームの製作者は、感染マシンをコントロールしたり、必要に応じてワームの行動パターンを変更したりする目的で、この機能をプログラムしていた。 フィンランドのウイルス対策企業F-Secureは米国時間8日、同ワームが利用するアルゴリズムを解析し、特定の日にワームが確認するサイトの正確なURLを算出できるようになったと述べた。 F-Secureのチーフリサーチオフ

    2006年1月5日の攻撃は防げるか--ウイルス対策企業が「Sober」のアルゴリズムを解析