長さの制限付きギャップと 文字クラスを含むパタンに対する 照合アルゴリズムの改善

Slides:



Advertisements
Similar presentations
Collage System 圧縮テキストパターン照合のための統一的枠組み
Advertisements

データの圧縮.
情報生命科学特別講義III (1) 文字列マッチング
富山大学 公開講座 2008 「QRコードを作ろう!」 ~ QRコードを作ろう! ~.
正規表現ライブラリ 一般的なもの GNU regex GNU rx pcre Henry Spencer’s regex.
第12回 順序回路の解析方法 瀬戸 順序回路から,以下を導き、解析を行えるようにする タイムチャート 状態遷移関数・出力関数 状態遷移表
XHTML構文検証手法における スクリプト要素の静的解析アルゴリズム
コンパイラ 2011年10月17日
JavaによるCAI学習ソフトウェアの開発
計算の理論 I 決定性有限オートマトン(DFA) と 非決定性有限オートマトン(NFA)
第5回 ディジタル回路内の数値表現 瀬戸 ディジタル回路内部で,数を表現する方法(2進数)を学ぶ 10進数⇔2進数⇔16進数の変換ができる
5.チューリングマシンと計算.
5.チューリングマシンと計算.
計算の理論 I ー DFAとNFAの等価性 ー 月曜3校時 大月 美佳.
2012年度 情報数理 ~ QRコードを作ろう!(1) ~.
2008年度 情報数理 ~ QRコードを作ろう!(1) ~.
システム開発実験No.7        解 説       “論理式の簡略化方法”.
コンパイラ 2012年10月15日
8. 順序回路の簡単化,機能的な順序回路 五島 正裕.
2010年度 情報数理 ~ QRコードを作ろう!(1) ~.
篠原 歩,石野 明 東北大学情報科学研究科 竹田 正幸 九州大学システム情報科学研究院 下薗 真一,坂本 比呂志 九州工業大学情報工学部
データ構造とプログラミング技法 (第10回) ー文字列照合(KMP法、BM法)ー.
生物情報ソフトウェア特論 (1) 文字列マッチング・データ構造
喜田 拓也,竹田 正幸,篠原 歩 九州大学大学院システム情報科学府 情報理学専攻
Fast Pattern Matching Algorithms in Compressed Texts
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
動的依存グラフの3-gramを用いた 実行トレースの比較手法
東京工科大学 コンピュータサイエンス学部 亀田弘之
文字列照合を用いた XMLデータアクセス機構の提案
インラインスクリプトに対するデータフロー 解析を用いた XHTML 文書の構文検証
データ構造とアルゴリズム 第14回 文字列の照合.
計算の理論 I 正則表現 火曜3校時 大月 美佳 平成16年6月8日 佐賀大学知能情報システム学科.
計算の理論 I ー 正則表現(今度こそ) ー 月曜3校時 大月 美佳.
計算の理論 I 正則表現 月曜3校時 大月 美佳 平成15年6月9日 佐賀大学知能情報システム学科.
計算の理論 I ー 正則表現 ー 月曜3校時 大月 美佳.
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
巡回冗長検査CRC32の ハード/ソフト最適分割の検討
半構造化テキストに対する 文字列照合アルゴリズム
分子生物情報学(2) 配列のマルチプルアライメント法
GPGPUによる 飽和高価値 アイテム集合マイニング
計算の理論 II 前期の復習 -有限オートマトン-
計算の理論 I ε-動作を含むNFA 月曜3校時 大月 美佳.
計算の理論 I ε-動作を含むNFA 月曜3校時 大月 美佳 平成15年6月2日 佐賀大学知能情報システム学科.
計算の理論 I 正則表現とFAとの等価性 月曜3校時 大月 美佳 平成15年6月16日 佐賀大学知能情報システム学科.
データ圧縮技術による文字列照合処理の高速化に関する研究
アルゴリズム論 (第12回) 佐々木研(情報システム構築学講座) 講師 山田敬三
2007年度 情報数理学.
第11回 よく使われる順序回路 複数のFFを接続した回路を解析する際の考え方を学ぶ カウンタ回路の仕組みを理解し,設計できるようにする 瀬戸.
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
形式言語とオートマトン 中間試験解答例 2016年11月15実施 中島毅.
計算の理論 I ー正則表現とFAの等価性 その1ー
計算の理論 I 決定性有限オートマトン(DFA) と 非決定性有限オートマトン(NFA)
基本情報技術概論(第2回) 埼玉大学 理工学研究科 堀山 貴史
JavaScriptを含んだHTML文書に対する データフロー解析を用いた構文検証手法の提案
計算の理論 I 非決定性有限オートマトン(NFA)
5.チューリングマシンと計算.
計算の理論 I ー正則表現とFAの等価性ー 月曜3校時 大月 美佳.
LZW 圧縮テキストに対する 高速文字列照合アルゴリズム 喜田 拓也 竹田 正幸 篠原 歩 九州大学大学院システム情報科学研究科
4.プッシュダウンオートマトンと 文脈自由文法の等価性
計算の理論 I NFAとDFAの等価性 火曜3校時 大月 美佳 平成16年5月18日 佐賀大学理工学部知能情報システム学科.
ディジタル回路 8. 機能的な順序回路 五島 正裕.
計算の理論 I ー 正則表現 ー 月曜3校時 大月 美佳.
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
計算の理論 I ε-動作を含むNFAと等価なDFA
計算の理論 I ε-動作を含むNFA 火曜3校時 大月 美佳 平成16年5月25日 佐賀大学知能情報システム学科.
情報生命科学特別講義III (3)たたみ込みとハッシュに 基づくマッチング
計算の理論 I ー ε-動作を含むNFA ー 月曜3校時 大月 美佳.
データ構造とアルゴリズム 第14回 文字列の照合.
計算の理論 I プッシュダウンオートマトン 月曜3校時 大月 美佳 平成15年7月7日 佐賀大学知能情報システム学科.
Presentation transcript:

長さの制限付きギャップと 文字クラスを含むパタンに対する 照合アルゴリズムの改善 九州大学附属図書館 喜 田 拓 也

長さの制限付きギャップと文字クラス PROSITEパタン 長さの制限付きギャップ 文字クラス(文字種) タンパク質検索で用いられるパタン 例: C-x(2,4)-C-x(3)-[LIVMFYWC]-x(8)-H-x(3,5)-H 長さの制限付きギャップ a以上、b以下のギャップ x(a, b), x(a)=x(a, a) 文字クラス(文字種) 文字の集合 [abc…]

これまでの手法 文字クラスに対する文字列照合アルゴリズム 正規表現パタンに対する文字列照合 Shift-And法 (Abrahamson 1987, Wu-Manber 1992) → O(m|| + m/w n) 正規表現パタンに対する文字列照合 DFAへ変換 → O(2m+n) 時間 NFAへ変換 → O(m×n) 時間 PROSITEパタンに対する文字列照合アルゴリズム Gaps-Shift-And法 (Navarro and Raffinot 2001) → O( Pmax/w×n)

文字クラスを含んだパタン照合 Shift-And法のアイデア パタン a-a-b-a-[bc] を検出するNFA 1 2 3 4 5  b a c テキスト:= aababcaabacab

Shift-And法の動作 a-a-b-a-[bc] abc aababcaabacab a b [bc] 1 1 1 1 1 1 1 1 パターン:= abc テキスト:= aababcaabacab a b [bc] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ビット列 B & D  ((D << 1) | 0m1) & B[ tj ]

ギャップ付きShift-And法のアイデア パタン a-b-[cd]-x(1,3)-e-f を検出するNFA 1 2 4 8  c a b e d 7 5 3 6 f  ba = 2 a = 1 b = 3

Gaps-Shift-And法における NFAの状態遷移の模倣 Shift-And法の状態更新 D  ((D << 1) | 0m1) & B[ tj ] 遷移の模倣 D D | (( F  ( D & I )) & F ) 1 2 4 8  c a b e d 7 5 3 6 f  F: 00000100 I: 00100000 F I: 00111000

Gaps-Shift-And法改良のアイデア 5 の状態に注目! 1 2 4 8  c a b e d 7 5 3 6 f  D: 00111000 00011100 00001100 00000100

カウンタ Clk 整数 k1 を2進数で表現したビット列を反転したビット列で長さが l のものを Clk とする。 C85 =  ( 0 0 0 0 0 1 0 1) = 1 1 1 1 1 0 1 0 k 回インクリメント (+ 5) 1 1 1 1 1 1 1 1 + 1 0 0 0 0 0 0 0 0 長さ log2(k+1) +1

LongGaps-Shift-And法の計算 Shift-And法の状態更新 D’  ((D << 1) | 0m1) & B[ tj ] 新たにアクティブになったギャップ開始地点の検出 A  ( F  ( D’ & I )) & F ) カウンタのリセット C & A (ここで C はカウンタの初期ビット列) インクリメントされるカウンタの検出 Dc  (G  A) & D (G はカウンタの位置をマスクするビット列) カウンタのインクリメント ( Dc + (( Dc >> (lmax  1)) & I )) & G 状態更新の式 D  D’ & G | C & A | (Dc + (( Dc >> (lmax  1)) & I )) & G

LongGaps-Shift-And法と Gaps-Shift-And法との要ビット数の比較 パタン Gaps-SA LongGaps-SA a-x(0, 2)-b a-x(0, 10)-b a-x(0, 100)-b a-x(0, 1000)-b 4 12 102 1002 6 9 11 a-x(1, 2)-b a-x(5, 10)-b a-x(50, 100)-b a-x(500, 1000)-b 10 58 508

まとめ NavarroとRaffinot[2001]が提案したGaps-Shift-And法を基に、長いギャップでも少ないビット列で計算可能なLongGaps-Shift-And法を開発した 実装・実験はこれから ・・・たぶん、遅い・・・(演算回数が2倍以上!) ギャップの下限a が上限b に近いと効果がない PROSITEパタンはギャップが短いのがほとんど (ToT)