九州大学大学院システム情報科学研究科 情報理学専攻 竹田研究室 博士課程3年 喜田 拓也

Slides:



Advertisements
Similar presentations
R Basics 2013/12/09 Yamada. 今日の方針 Today’s plan テキスト・文字列を扱うにあたっての用 語の理解をすることの方が、 R での操作を 見るより有意義と思われるので、そちら を優先 Learning terms on text/strings is more.
Advertisements

簡潔データ構造 国立情報学研究所 定兼 邦彦.
Collage System 圧縮テキストパターン照合のための統一的枠組み
圧縮テキストに対する文字列照合問題 竹田研究室 博士課程二年 喜田 拓也.
文法変換に基づく圧縮 九州大学附属図書館 研究開発室 喜田拓也.
透過的データ圧縮 Transparent Data Compression
【事例演習5】  字句解析     解 説  “ハッシュを用いた字句解析の方法”.
区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
LZ符号化 森田 岳史.
情報生命科学特別講義III (1) 文字列マッチング
情報知識ネットワーク 有村・喜田研究室 ex. 7678, 7679
XHTML構文検証手法における スクリプト要素の静的解析アルゴリズム
LZ圧縮回路の設計とハード・ソフト 最適分割の検討 電子情報デザイン学科 高性能計算研究室 4回生 中山 和也 2009/2/27.
簡潔データ構造 国立情報学研究所 定兼 邦彦.
ラベル付き区間グラフを列挙するBDDとその応用
第11回 整列 ~ バケットソート,基数ソート,ヒープソート~
アルゴリズムとデータ構造 2012年7月19日
集中講義(九州大学数理学研究院) バイオ構造データに対する数理モデルと アルゴリズム(3) + 数理談話会 木構造および画像データの文法圧縮
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
アルゴリズムとデータ構造 第9回演習解答.
オペレーティングシステムJ/K 2004年11月4日
IT入門B2 ー 連立一次方程式 ー.
スタック長の 特徴付けによる 言語の非DCFL性 証明
黒澤 馨 (茨城大学) 情報セキュリティ特論(7) 黒澤 馨 (茨城大学)
データ構造と アルゴリズム 第十一回 理工学部 情報システム工学科 新田直也.
基礎情報科学のトピックス (平成15年度版) 喜田拓也 (
文字列照合アルゴリズム 情報知識ネットワーク特論 喜田拓也 参考文献:
アルゴリズムとデータ構造 2013年7月18日
A Unifying Framework for Compressed Pattern Matching
データ構造とプログラミング技法 (第10回) ー文字列照合(KMP法、BM法)ー.
第2章 「有限オートマトン」.
ネット時代の情報センス 基礎情報科学のトピックス.
情報検索技術のトピックス (平成16年度版) 喜田拓也 (
Pattern Matching on Compressed Texts
生物情報ソフトウェア特論 (1) 文字列マッチング・データ構造
k 個のミスマッチを許した点集合マッチング・アルゴリズム
情報工学概論 (アルゴリズムとデータ構造)
喜田 拓也,竹田 正幸,篠原 歩 九州大学大学院システム情報科学府 情報理学専攻
Fast Pattern Matching Algorithms in Compressed Texts
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
文字列照合を用いた XMLデータアクセス機構の提案
Proceedings of the Third South American Workshop on String Processing.
データ構造とアルゴリズム 第14回 文字列の照合.
計算の理論 I 正則表現 火曜3校時 大月 美佳 平成16年6月8日 佐賀大学知能情報システム学科.
計算の理論 I ー 正則表現(今度こそ) ー 月曜3校時 大月 美佳.
計算の理論 I 正則表現 月曜3校時 大月 美佳 平成15年6月9日 佐賀大学知能情報システム学科.
計算の理論 I ー 正則表現 ー 月曜3校時 大月 美佳.
アルゴリズムとデータ構造 2011年7月12日
半構造化テキストに対する 文字列照合アルゴリズム
テキスト検索は 文字列検索でも木検索でもない
データ圧縮技術による文字列照合処理の高速化に関する研究
アルゴリズム論 (第12回) 佐々木研(情報システム構築学講座) 講師 山田敬三
長さの制限付きギャップと 文字クラスを含むパタンに対する 照合アルゴリズムの改善
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
JAVAバイトコードにおける データ依存解析手法の提案と実装
形式言語とオートマトン 中間試験解答例 2016年11月15実施 中島毅.
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
構造的類似性を持つ半構造化文書における頻度分析
オペレーティングシステムJ/K (管理のためのデータ構造)
LZW 圧縮テキストに対する 高速文字列照合アルゴリズム 喜田 拓也 竹田 正幸 篠原 歩 九州大学大学院システム情報科学研究科
4.プッシュダウンオートマトンと 文脈自由文法の等価性
PROGRAMMING IN HASKELL
計算の理論 I ー 正則表現 ー 月曜3校時 大月 美佳.
情報数理Ⅱ 第10章 オートマトン 平成28年12月21日.
情報生命科学特別講義III (3)たたみ込みとハッシュに 基づくマッチング
データ構造とアルゴリズム 第14回 文字列の照合.
識別子の読解を目的とした名詞辞書の作成方法の一試案
8.文字列処理 8.1 C#の文字列 C#では, “ABCD”のように文字列を2重引用符で挟んで指定します。ASCIIコード体系のとき,以下のような内部形式となります。 1 1 文字 ‘A’ ナル文字 1 1 文字 ‘B’ A B C D \ 文字 ‘C’ 1 1 文字 ‘D’ ナル文字‘\0’
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
Presentation transcript:

九州大学大学院システム情報科学研究科 情報理学専攻 竹田研究室 博士課程3年 喜田 拓也 圧縮テキストに対する文字列照合 九州大学大学院システム情報科学研究科 情報理学専攻 竹田研究室 博士課程3年 喜田 拓也

研究背景 コラージュシステムと照合アルゴリズム 複数パタンへの拡張 実験結果とまとめ

文字列照合問題 テキストT中に含まれるパタンの出現を求める問題 KMP法[Knuthら(1974)], BM法[BoyerとMoore (1977)] ビットパラレル手法[Abrahamson(1987)][Baeza-YatesとGonnet(1992)] パタン compress We introduce a general framework which is suitable to capture an essence of compressed pattern matching according to various dictionary based compressions. The goal is to find all occurrences of a pattern in a text without decompression, which is one of the most active topics in string matching. Our framework includes such compression methods as Lempel-Ziv family, (LZ77, LZSS, LZ78, LZW), byte-pair encoding, and the static dictionary based method. Technically, our pattern matching algorithm extremely extends that for LZW compressed text presented by Amir, Benson and Farach [Amir94]. テキストT

圧縮テキストに対する文字列照合問題 目標2 目標1 復号 文字列照合 アルゴリズム 転送 文字列照合 アルゴリズム 転送 転送 二次記憶装置上 テキスト データ 主記憶装置上 文字列照合 アルゴリズム 転送 目標1 二次記憶装置上 圧縮テキスト 主記憶装置上 文字列照合 アルゴリズム 復号 転送 主記憶装置上 二次記憶装置上 圧縮テキスト 転送 主記憶装置上 圧縮文字列照合 アルゴリズム

本分野における研究 圧縮方法 照合アルゴリズム Run-length Eilam-Tzoreff & Vishkin (1988) 圧縮方法 照合アルゴリズム Run-length Eilam-Tzoreff & Vishkin (1988) Run-length (two dim) Amir et al. (1992, 1997); Amir & Benson (1992) LZ77 family Farach & Thorup (1995); Gąsieniec, et al. (1996); Klein & Shapira (2000) LZ78 family Amir et al. (1996); Kida et al. (1998, 1999); Navarro & Tarhio (2000); Kärkkäinen et al. (2000); LZ family Navarro et al. (1999) Straight-line programs Karpinski et al. (1997); Miyazaki et al. (1997); Hirao et al. (2000) Huffman Fukamachi et al. (1998); Klein & Shapira (2001); Miyazaki et al. (1998) Finite state encoding Takeda (1997) Word based encoding Moura et al. (1998) Pattern substitution Manber (1994); Shibata et al. (1998) Antidictionary based Shibata et al. (1999)

コラージュシステムで表現された テキストに対する 照合アルゴリズム コラージュシステムとは 辞書式圧縮法によって圧縮されたテキストを表現するための形式的体系 コラージュシステム LZW圧縮テキスト LZ78圧縮テキスト LZ77圧縮テキスト コラージュシステムで表現された テキストに対する 照合アルゴリズム ここで、 X3 からX7 まではそれぞれ、このような文字列に対応しています。 すなわちこのS は下の文字列を表現していることになります。 これが原テキストで、S が圧縮テキストです。 X7 に注目してください。 X7 の右辺を展開していくと、このような木構造を作ることができます。 この木の高さをheightで表します。 最も木が高い変数のheightをDのheightとします。 このheight は後で説明する提案アルゴリズムの時間計算量に関係があります。

研究背景 コラージュシステムと照合アルゴリズム 複数パタンへの拡張 実験結果とまとめ

a b ab ab ba b c aba bc abab LZW圧縮法 3 5 6 2 1 2 4 4 b a c a b c a b a テキスト b 8 a c 9 12 10 11 3 5 6 2 1 2 4 4 変換後の列 a b c 1 2 3 辞書木 = {a,b,c} a 5 b 4 a 6 b 7

辞書式圧縮法 辞書式圧縮法の手順 テキスト 圧縮テキスト テキスト中の文字列を辞書に登録 辞書を用いてテキストを符号化 符号化 符号化列 文字列の切り出し

abbabbaabababbabaabababbab Collage systemの例 X1 = a ; X2 = b ; X3 = X1・X2 ;   (連接) ab D : X4 = X2・X1 ;   (連接) ba X5 = ( X3 )3 ;   (繰り返し) ababab X6 = [ 3 ]X5 ;    (切り落とし) bab ||D|| = 6 X6.u ここで、 X3 からX7 まではそれぞれ、このような文字列に対応しています。 すなわちこのS は下の文字列を表現していることになります。 これが原テキストで、S が圧縮テキストです。 X7 に注目してください。 X7 の右辺を展開していくと、このような木構造を作ることができます。 この木の高さをheightで表します。 最も木が高い変数のheightをDのheightとします。 このheight は後で説明する提案アルゴリズムの時間計算量に関係があります。 S : X3 X6 X4 X5 X2 X3 X1 X5 X4 X2 |S| = 10 abbabbaabababbabaabababbab

height(D) の定義 X7 X6 X4 X5 X3 X1 X2 X1 = a ; X2 = b ; D : X7 = X6・X4 ; すなわちこのS は下の文字列を表現していることになります。 これが原テキストで、S が圧縮テキストです。 X7 に注目してください。 X7 の右辺を展開していくと、このような木構造を作ることができます。 この木の高さをheightで表します。 最も木が高い変数のheightをDのheightとします。 このheight は後で説明する提案アルゴリズムの時間計算量に関係があります。 height(X7) = 4 height(D) = max{height(X) | XF(D)} F (D) : D 中のトークンの集合

LZWのCollage system S : Xi1 Xi2・・・Xin D : X1 = a1; Xq+1 = Xi1 bi2; Xq = aq; Xq+n-1 = Xin-1 bin; ={a1, ..., aq} ただし bj は Xj .u の先頭の文字

LZSSのCollage system S : Xq+1 Xq+2・・・Xq+n D : X1 = a1 ; X2 = a2 ; ・・・ Xq = aq ; Xq+1 = (( [i1]Xl(1) Xl(1)+1 ・・・ Xr(1))m1)[ j1] b1; Xq+2 = (( [i2]Xl(2) Xl(2)+1 ・・・ Xr(2))m2)[ j2] b2; ・・・ Xq+n = (( [in]Xl(n) Xl(n)+1 ・・・ Xr(n))mn)[ jn] bn; ={a1, ..., aq} ただし 0  ik, jk, mk で bj 

Collage systemに対する文字列照合 パタン= a b a b b についての KMPオートマトン : goto 関数 : failure 関数 a 1 2 4 5 b 3 {a} Jump( 4 , Xi4) = 1 Output( 4 , Xi4) = {3} 3 4 状態: 1 1 2 2 3 4 4 3 4 5 1 1 テキスト: abababba S : Xi1 Xi2 Xi3 Xi4

関数Jumpの構成の計算量 補題 関数Jump( j ,X) は,O( ||D|| + ||2 ) 領域を用いてO( ||D||・height(D) + ||2 ) 時間で構成でき, O(1) 時間で値を返す. Dが切り落とし操作を含まない場合は, O( ||D|| + ||2 ) 時間で構成できる. Jump( 4 , X5) = 1 O(1) 時間 3 4 状態: 4 5 1 テキスト: abba S : X5

関数Outputの構成の計算量 補題 集合Output( j, X) の要素を枚挙する手続きは, O( ||D|| + ||2 ) 領域を用いて O( ||D||・height(D) + ||2 ) 時間で構築でき, O( height(D) + |Output( j, X)| )時間で枚挙できる. Dが切り落とし操作を含まない場合は,O( ||D|| + ||2 ) 時間で構築でき,O( |Output( j, X)| ) 時間で枚挙できる. 文字列 X.u 中の  の出現位置の集合Occ(, X.u)を求める X= a → O(1) 時間 X=Y・Z → O(|Occ(, X.u)|) 時間 X=( Y ) j → 連結の場合の結果から O(|Occ(, X.u)|) 時間 X=[ j ]Y → O(|Occ(, X.u)|+height(Y ) ) 時間 X= Y [ j ] → O(|Occ(, X.u)|) 時間

提案アルゴリズムの計算量 定理 コラージュシステム〈D, S 〉で表現されたテキストに対する文字列照合問題は, O( ||D|| + ||2 ) 領域を用いて O( ( ||D|| + |S| )・height(D) + ||2 + r ) 時間で解決できる. Dが切り落とし操作を含まない場合は, O( ||D|| + |S| + ||2 + r ) 時間で解決できる. r はパタンの出現個数

得られた知見 O( (||D||+|S|) ・height(D) + ||2 + r ) 時間 O( ||D|| + |S| + ||2 + r ) 時間 LZ77 LZSS 切り取り操作がある LZ78 Sequitur LZW BPE 切り取り操作がない O( ||D|| + ||2 ) 領域 r はパタンの出現個数

研究背景 コラージュシステムと照合アルゴリズム 複数パタンへの拡張 実験結果とまとめ

アイデア {a,b} a b a b b c a b b Jump( q, X) = AC( q, X.u)  ={aba,ababb,abca,bb} についてのAho-Corasick照合機会 {a,b} a b a b b 1 2 3 4 5 {ababb,bb} {aba} c 6 a 7 : goto function : failure function { } : output {abca} b 8 9 b {bb} Jump( q, X) = AC( q, X.u) Output( q, X)={|v|,    o(AC(q, v)), v is a prefix of X.u} (AC はAC照合機会の遷移関数) ( o はAC照合機会の出力関数)

Output(q, X) の枚挙 Y.u Z.u Output( q, X) の枚挙  Occ( , X.u) の枚挙 X=YZ について Occ*( , Y.uZ.u) の枚挙の場合 Y.u Z.u どの周期 ? 単一パタンの 場合 複数パタンの 場合

Occ*(, abcabcabc) の枚挙 ={abcabc, cabb, abca} 1 2 3 の接尾辞 a b c abbaabcc baab abcc cc abb 部分文字列とは! bc bca bcabc 1 a nil 3 1 c a b O(m2) 時間領域の前処理ののち O(|Occ*( , Y.uZ.u)|) 時間で解決 ca nil nil nil px 接尾辞 接頭辞 1 c a b abca 1 nil nil (px, py) 3 py の接頭辞 m は  中のパタンの長さの総和

Occ(, (Y.u)k ) の枚挙 1 GST Y.u {1, 3, 6} 単一パタンの場合の手続きに帰着させる X=Y k Y.uY.u が  中のパタンの部分文字列ならば,X.u 中に Y.u2 をまたいで出現するパタンのリストをGSTのノードに付加する. Y.u2 となる部分文字列の個数は O(m) 個  O(m2) 領域 Y.u X=Y k Y.u 1 接尾辞木 GST (Y.u)2 は 1の部分文字列で |Y.u| は 1の周期 (3, 6 についても同様) {1, 3, 6} {1, 3, 6} m は  中のパタンの長さの総和

アルゴリズムの計算量 r はパタンの出現個数 定理 コラージュシステム〈D, S 〉で表現されたテキストに対する複数パタンの文字列照合問題は O( ( ||D|| + |S| )・height(D) + m2 + r ) 時間, O( ||D|| + m2 ) 領域で解決できる. もし D が切り落とし操作を含まない場合, O( ||D|| + |S| + m2 + r ) 時間で解決できる. m は  中のパタンの長さの総和 r はパタンの出現個数

研究背景 コラージュシステムと照合アルゴリズム 複数パタンへの拡張 実験結果とまとめ

実験結果(LZW圧縮法) CPU時間(秒) 目標1 パタンの長さ 1.4 1.2 1.0 0.8 compressにKMPを組込んだもの AlphaStation XP1000 (Alpha21264: 667MHz) Tru64 UNIX V4.0F Genbank(DNA塩基配列)17.1Mbyte 1.2 1.0 0.8 compressにKMPを組込んだもの CPU時間(秒) 目標1 gunzipにKMPを組込んだもの 0.6 提案アルゴリズム 0.4 0.2 非圧縮テキストをKMPで照合 5 10 15 20 25 30 パタンの長さ * compress はUNIXのLZW圧縮の圧縮ツール * gunzip はUNIXのLZ圧縮の復号ツール

実験結果(非圧縮テキスト上のアルゴリズムとの対比) 0.00 0.05 0.10 0.15 0.20 0.25 AlphaStation XP1000 (Alpha21264: 667MHz) Tru64 UNIX V4.0F Genbank(DNA塩基配列) 17.1Mbyte 非圧縮テキストをAgrepで照合 CPU時間(秒) 非圧縮テキストをKMPで照合 目標2 BPE圧縮テキストに対する照合 5 10 15 20 25 30 * BPEはByte Pair Encoding圧縮法 パタンの長さ * KMPはKnuth-Morris-Pratt法 * AgrepはWu&Manberが開発した検索ツール

実験結果(非圧縮テキスト上のアルゴリズムとの対比) パタンの長さ 0.0 0.3 0.4 0.5 0.8 0.1 0.2 0.6 0.7 CPU時間(秒) AlphaStation XP1000 (Alpha21264: 667MHz) Tru64 UNIX V4.0F Medline(英文テキスト) 60.3Mbyte 非圧縮テキストをKMPで照合 BPE圧縮テキストに対する Boyer-Moore型のアルゴリズム を用いた照合(Shibataら[2000]) BPE圧縮テキストに対する照合 非圧縮テキストをAgrepで照合 5 10 15 20 25 30 * BPEはByte Pair Encoding圧縮法 * KMPはKnuth-Morris-Pratt法 * AgrepはWu&Manberが開発した検索ツール

まとめ Collage systemを提案 Collage system上の文字列照合アルゴリズムを開発 実験結果 単一パタンに対するアルゴリズム O( (||D||+|S|) ・height(D) + ||2 + r ) 時間,O( ||D|| + ||2 ) 領域 複数パタンに対するアルゴリズム O( (||D||+|S|) ・height(D) + m2 + r ) 時間,O( ||D|| + m2 ) 領域 実験結果 LZW圧縮テキスト 通常用いられる文字列照合法に比べ約2倍高速 Byte pair encoding (BPE)圧縮テキスト 非圧縮テキストに対する照合よりも約1.8~3.7倍高速 圧縮率が良いテキストに対してAgrepより高速