情報生命科学特別講義III (1) 文字列マッチング

Slides:



Advertisements
Similar presentations
生物情報ソフトウェア特論 (3)近似文字列マッチング 阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター.
Advertisements

組合せ最適化輪講 2.3 連結性 川原 純. 2.3 連結性 内容 – グラフ上の節点をすべてたどるアルゴリズム 計算機上でのグラフの表現 – 強連結成分を求めるアルゴリズム トポロジカル順序を求める方法も – k- 連結、 k- 辺連結について – 2- 連結グラフの耳分解について.
奈良女子大集中講義 バイオインフォマティクス (3) 配列アラインメント
情報生命科学特別講義III (5)配列アラインメント
コンパイラ 2011年10月17日
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
情報生命科学特別講義III (8)木構造の比較: 順序木
計算の理論 I 決定性有限オートマトン(DFA) と 非決定性有限オートマトン(NFA)
分子生物情報学 動的計画法に基づく配列比較法 (ペアワイズアライメント法)
奈良女子大集中講義 バイオインフォマティクス (6) モチーフ発見・隠れマルコフモデル
集中講義(九州大学数理学研究院) バイオ構造データに対する数理モデルと アルゴリズム(3) + 数理談話会 木構造および画像データの文法圧縮
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
アルゴリズムとデータ構造 第9回演習解答.
生命情報学入門 タンパク質立体構造予測演習2011年5月31日
情報数理Ⅱ 平成27年9月30日 森田 彦.
計算の理論 I -講義について+αー 月曜3校時 大月美佳.
京都大学 化学研究所 バイオインフォマティクスセンター
データ構造と アルゴリズム 第八回 知能情報学部 新田直也.
コンパイラ 2012年10月15日
集中講義(九州大学数理学研究院) バイオ構造データに対する数理モデルと アルゴリズム(5) 木構造データ間の編集距離
情報生命科学特別講義III (7)進化系統樹推定
データ構造と アルゴリズム 第十一回 理工学部 情報システム工学科 新田直也.
奈良女子大集中講義 バイオインフォマティクス (10) スケールフリーネットワーク
データ構造とプログラミング技法 (第10回) ー文字列照合(KMP法、BM法)ー.
生物情報ソフトウェア特論 (1) 文字列マッチング・データ構造
情報生命科学特別講義III (11) RNA二次構造予測
k 個のミスマッチを許した点集合マッチング・アルゴリズム
生物情報ソフトウェア特論 (8) RNA二次構造予測
生物情報ソフトウェア特論 (3)近似文字列マッチング
情報生命科学特別講義III (4)近似文字列マッチング
生命情報学入門 配列のつなぎ合わせと再編成
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
情報生命科学特別講義III (2)文字列データ構造
九州大学大学院 情報学専攻特別講義 (9) ブーリアンネットワークの 解析と制御
奈良女子大集中講義 バイオインフォマティクス (9) 相互作用推定
データ構造とアルゴリズム 第14回 文字列の照合.
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
九州大学大学院 情報学専攻特別講義 (3) 配列解析
分子生物情報学(2) 配列のマルチプルアライメント法
情報生命科学特別講義III (13) 固定パラメータアルゴリズムと 部分k木
平成20年10月5日(月) 東京工科大学 コンピュータサイエンス学部 亀田弘之
分子生物情報学(3) 確率モデル(隠れマルコフモデル)に 基づく配列解析
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
計算の理論 II 前期の復習 -有限オートマトン-
計算の理論 I ε-動作を含むNFA 月曜3校時 大月 美佳.
データ圧縮技術による文字列照合処理の高速化に関する研究
アルゴリズム論 (第12回) 佐々木研(情報システム構築学講座) 講師 山田敬三
長さの制限付きギャップと 文字クラスを含むパタンに対する 照合アルゴリズムの改善
九州大学大学院 情報学専攻特別講義 (6) 固定パラメータアルゴリズムと 部分k木
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
形式言語とオートマトン 中間試験解答例 2016年11月15実施 中島毅.
計算の理論 I 決定性有限オートマトン(DFA) と 非決定性有限オートマトン(NFA)
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
生物情報ソフトウェア特論 (8) RNA二次構造予測
計算の理論 I 非決定性有限オートマトン(NFA)
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
九州大学大学院 情報学専攻特別講義 (8) ニューラルネットワークの 離散モデル
奈良女子大集中講義 バイオインフォマティクス (7) 進化系統樹
情報生命科学特別講義III (14) グラフの比較と列挙
4.プッシュダウンオートマトンと 文脈自由文法の等価性
計算の理論 I NFAとDFAの等価性 火曜3校時 大月 美佳 平成16年5月18日 佐賀大学理工学部知能情報システム学科.
生命情報学特論 (6) 固定パラメータアルゴリズムと 部分k木
情報数理Ⅱ 平成28年9月21日 森田 彦.
生物情報ソフトウェア特論 (4)配列解析II
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
情報生命科学特別講義III (3)たたみ込みとハッシュに 基づくマッチング
データ構造とアルゴリズム 第14回 文字列の照合.
生物情報ソフトウェア特論 (10)固定パラメータアルゴリズムと 部分k木
集中講義(東京大学)「化学システム工学特論第3」 バイオインフォマティクス的手法による化合物の性質予測(1) バイオインフォマティクス概観
分子生物情報学(0) バイオインフォマティクス
Presentation transcript:

情報生命科学特別講義III (1) 文字列マッチング 阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター

講義予定 第1回: 文字列マッチング 第2回: 文字列データ構造 第3回: たたみ込みとハッシュに基づくマッチング 第1回: 文字列マッチング 第2回: 文字列データ構造 第3回: たたみ込みとハッシュに基づくマッチング 第4回: 近似文字列マッチング 第5回: 配列アラインメント 第6回: 配列解析 第7回: 進化系統樹推定 第8回: 木構造の比較:順序木 第9回: 木構造の比較:無順序木 第10回: 文法圧縮 第11回: RNA二次構造予測 第12回: タンパク質立体構造の予測と比較 第13回: 固定パラメータアルゴリズムと部分k木 第14回: グラフの比較と列挙 第15回: まとめ

講義目的、成績、教科書 講義目的 バイオインフォマティクスにおける主要な離散アルゴリズムについて理解する 乱拓アルゴリズム、近似アルゴリズム、固定パラメータアルゴリズムなど、現代的なアルゴリズム設計技法について理解する 計算時間および解の最適性もしくは近似精度に理論的保証のあるアルゴリズムを主対象とする 成績評価 出席4割、レポート6割 レポートは最終日の講義において出題 教科書(主に第5-8回、第11-12回) 阿久津達也:バイオインフォマティクスの数理とアルゴリズム、共立出版、2007 参考書 第1,3回: Crochemore & Rytter: Jewels of Stringology, World Scientific, 2002 第2回: 岡野原大輔:高速文字列解析の世界、岩波書店、2012 その他は講義ノートにおいて該当トピックの最初に参考文献を記載

文字列マッチング問題

文字列マッチング問題(1) 例 入力 パターン文字列: テキスト文字列: 出力 を満たす、すべての j j=6 j=14 j=3 j=10

文字列マッチング問題(2) 単純アルゴリズム 一文字ずつ、ずらしながらチェック 例 全部で、4+1+1+2+4+1=13 回の比較

文字列マッチング問題(3) 命題: 単純アルゴリズムの時間計算量は Θ(mn) 証明: 時間計算量が O(mn) なのは明らか。 以下の例の場合、m(n-m+1) 回の比較が必要なので、Ω(mn) 時間。 ただし、平均的にはO(m+n)時間で動作することが知られている。

Knuth-Morris-Prattアルゴリズム

KMPアルゴリズム: アイデア アイデア: 以前の結果を利用 表 h[i]: 次を満たす最大の k (無い時は h[i]=0) アイデア: 以前の結果を利用 j=2 ではグレーのところだけをチェックすれば良い 表 h[i]: 次を満たす最大の k (無い時は h[i]=0)

KMPアルゴリズム: テキスト処理 KMPアルゴリズム (テキスト処理) 表 h[i]: 次を満たす最大の k (無い時は h[i]=0) 上記はマッチの有無のみを判定。すべての j の出力は宿題

KMPアルゴリズム: 実行例(1) 表 h[i]: 次を満たす最大の k (無い時は h[i]=0) a b p h[i] 1 2 3 4 i a b h[4]=3 a a a b h[4]=3 a a a b t a c b a c b a a a b h[3]=0 a c b

KMPアルゴリズム: 実行例(2) h[5]=0 Match! h[6]=2 h[2]=1 h[3]=0

KMPアルゴリズム: 実行例(3) h[12]=7 h[7]=4 h[4]=2 h[2]=1 h[1]=0

KMPアルゴリズム: 解析 定理: KMPアルゴリズム(テキスト処理)の時間計算量は O(n) 証明: 明らかに (#) にかかる時間が問題。その時間は ・ j が1増えた時のみ、i も1増える ・ i←h[i] を1回実行すると、i は少なくとも1減る ・ i は増えた回数以上に減ることはない より、O(n)。よって、全体の計算量も O(n) 解析のアイデア: 計算量のならし解析(amortized analysis)          ここでは「稼いだ分しか使えない」が基本的アイデア

KMPアルゴリズム: パターン処理 表 h[i] の作り方 テキスト処理と似た手続き 自分自身とのマッチをとりながら、h[i] を作っていく     問題を O(m+n) 時間で解く

Boyer-Moore アルゴリズム

BMアルゴリズム: アイデア、例 例 KMPではテキスト中の文字を全て1回は調べている まず、c と d を比較。d は P 中には現れないので、P が d と重なることはない。 よって、次のようにずらして、最後の文字を比較。 P 中の c の位置に T 中の a があるので、P 中の最後の a が重なるようにずらす

BMアルゴリズム: 計算量 詳細を工夫することにより、最悪の場合を O(m+n) とすることができる 平均的には KMP よりずっと速い BM と似たアルゴリズムでは、平均的に O((n/m) logkm) 時間を達成(ただし、k はアルファベットのサイズ(文字種の個数))

Aho-Corasick アルゴリズム

複数文字列マッチング問題 入力 キーワード集合: テキスト文字列: 出力 を満たす、すべての j KMPやBMを k 回実行 ⇒ O(kn) 時間 Aho-Corasick アルゴリズムなら、O(m+n) 時間 これ以降の講義では、アルファベットΣ(文字種の集合)は固定と仮定

Aho-Corasick アルゴリズム アイデア キーワード集合からDFA(決定性有限オートマトン)を構成 例: W={ he, she, his, hers } 実線: 前方遷移関数 f 点線: 失敗関数 g 0 に戻る失敗関数 は省略

Aho-Corasick アルゴリズム: 実行例 W={ he, she, his, hers }, T = ushers u s h e r s 0 0 3 4 5 8 9 2 0 に戻る失敗関数は省略

Aho-Corasickアルゴリズム: テキスト処理 O(n)時間 W={ he, she, his, hers } T = ushers

Aho-Corasick アルゴリズム: 例題 W={ he, she, his, hers }, T = rhishers r h i s h e r s 0 0 1 6 7 4 5 8 9 3 2 0 に戻る失敗関数は省略

Aho-Corasick アルゴリズム: DFAの構成(1) パターン集合からトライを構成 前方遷移関数 g を作成 幅優先探索を用いて失敗関数 f を作成 最適化された失敗関数 h を作成(これは無くてもOK)

Aho-Corasick アルゴリズム: DFAの構成(2) O(m)時間 定理 Aho-Corasickアルゴリズムは 複数文字列マッチング問題を O(m+n) 時間で解く

まとめ 文字列マッチング: 線形時間で可能 補足 KMPアルゴリズム: 失敗関数の利用 文字列マッチング: 線形時間で可能 KMPアルゴリズム: 失敗関数の利用 Boyer-Mooreアルゴリズム:パターンの最後から検索 Aho-Corasickアルゴリズム:オートマトンを構成 補足 平均的には線形時間より高速に可能 近年では圧縮文字列の検索が盛んに研究 Aho-Corasick では O(log |Σ|)だけアルファベットサイズに依存していたが、前処理(DFAの構成)に関しては依存しないアルゴリズムも存在 [Dori & Landau: Inf. Proc. Lett. 2006]