阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター

Slides:



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

組合せ最適化輪講 2.3 連結性 川原 純. 2.3 連結性 内容 – グラフ上の節点をすべてたどるアルゴリズム 計算機上でのグラフの表現 – 強連結成分を求めるアルゴリズム トポロジカル順序を求める方法も – k- 連結、 k- 辺連結について – 2- 連結グラフの耳分解について.
プログラミング言語論 第3回 BNF 記法について(演習付き) 篠埜 功. 構文の記述 プログラミング言語の構文はどのように定式化できるか? 例1 : for ループの中に for ループが書ける。 for (i=0; i
プログラミング言語論 第10回(演習) 情報工学科 木村昌臣   篠埜 功.
情報生命科学特別講義III (5)配列アラインメント
区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
情報生命科学特別講義III (1) 文字列マッチング
簡潔データ構造 国立情報学研究所 定兼 邦彦.
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
情報生命科学特別講義III (8)木構造の比較: 順序木
On the Enumeration of Colored Trees
An Algorithm for Enumerating Maximal Matchings of a Graph
分子生物情報学 動的計画法に基づく配列比較法 (ペアワイズアライメント法)
Extremal Combinatrics Chapter 4
集中講義(九州大学数理学研究院) バイオ構造データに対する数理モデルと アルゴリズム(3) + 数理談話会 木構造および画像データの文法圧縮
Approximation of k-Set Cover by Semi-Local Optimization
宇野 毅明 国立情報学研究所 2002年3月 東北大大学院 情報科学研究科ワークショップ
京都大学 化学研究所 バイオインフォマティクスセンター
データ構造とアルゴリズム 第6回の2 木 ~ データ構造(3)~.
集中講義(九州大学数理学研究院) バイオ構造データに対する数理モデルと アルゴリズム(5) 木構造データ間の編集距離
5.5 The Linear Arboricity of Graphs (グラフの線形樹化数)
情報生命科学特別講義III (7)進化系統樹推定
生物情報ソフトウェア特論 (1) 文字列マッチング・データ構造
情報生命科学特別講義III (11) RNA二次構造予測
k 個のミスマッチを許した点集合マッチング・アルゴリズム
生物情報ソフトウェア特論 (8) RNA二次構造予測
生物情報ソフトウェア特論 (3)近似文字列マッチング
情報生命科学特別講義III (4)近似文字列マッチング
生命情報学入門 配列のつなぎ合わせと再編成
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
プログラミング言語論 第3回 BNF記法について(演習付き)
第25章 単一始点最短路 3節 Bellman-Fordのアルゴリズム
情報生命科学特別講義III (2)文字列データ構造
正則言語 2011/6/27.
奈良女子大集中講義 バイオインフォマティクス (9) 相互作用推定
形式言語の理論 5. 文脈依存言語.
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
25. Randomized Algorithms
九州大学大学院 情報学専攻特別講義 (3) 配列解析
分子生物情報学(2) 配列のマルチプルアライメント法
A Simple Algorithm for Generating Unordered Rooted Trees
情報生命科学特別講義III (13) 固定パラメータアルゴリズムと 部分k木
分子生物情報学(3) 確率モデル(隠れマルコフモデル)に 基づく配列解析
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
九州大学大学院 情報学専攻特別講義 (6) 固定パラメータアルゴリズムと 部分k木
コンパイラ 2011年10月20日
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
アルゴリズムとデータ構造 第3章 ヒープ 5月31日分
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
文法と言語 ー文脈自由文法とLR構文解析ー
生物情報ソフトウェア特論 (8) RNA二次構造予測
第16章 動的計画法 アルゴリズムイントロダクション.
第9回 優先度つき待ち行列,ヒープ,二分探索木
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
アルゴリズムとデータ構造 2012年7月2日
Max Cut and the Smallest Eigenvalue 論文紹介
九州大学大学院 情報学専攻特別講義 (8) ニューラルネットワークの 離散モデル
アルゴリズムとデータ構造 2013年7月2日
奈良女子大集中講義 バイオインフォマティクス (7) 進化系統樹
情報生命科学特別講義III (14) グラフの比較と列挙
4.プッシュダウンオートマトンと 文脈自由文法の等価性
ヒープソート.
生命情報学特論 (6) 固定パラメータアルゴリズムと 部分k木
生物情報ソフトウェア特論 (4)配列解析II
情報生命科学特別講義III (3)たたみ込みとハッシュに 基づくマッチング
グラフの列挙 中野 眞一    (群馬大学) 2019/9/14 列挙学校.
生物情報ソフトウェア特論 (10)固定パラメータアルゴリズムと 部分k木
グラフの帯域幅連続多重彩色 を求めるアルゴリズム (Bandwidth Consective Multicolorings of Graphs) 西関研究室 西川和秀.
4.2 再帰下降解析 (1)再帰下降解析とは ■再帰下降解析(Recursive Descent Parsing)
Presentation transcript:

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

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

文法圧縮とは?

文法圧縮 与えられた文字列を一意に生成する最小の文脈自由文法を計算(もしくは近似) 例 abcabcabcabc ⇒ S → AA A → BB B →abc   様々な近似アルゴリズム        (下限:定数近似困難) BISECTION O((n/log n)0.5)近似 [Lehman & Shelat 02] LZ78 O((n/log n)2/3)近似 [Lehman & Shelat 02] SEQUITUR型 O((n/log n)3/4)近似 [Lehman & Shelat 02] GREEDY型    O((n/log n)2/3)近似 [Lehman & Shelat 02] ほぼ最適      O(log n)近似 [Charikar et al. 02] [Rytter 02][Sakamoto et al. 09]

文法圧縮 文法のサイズ:規則の右側に現れる文字数の和 abcabcabcabc S → AA A → BB B →abc サイズ=12      S → abcabcabcabc サイズ=8      S → AA A → abcabc サイズ=7 (最小) S → AA A → BB B →abc

BISECTIONアルゴリズム 文字列を2iとなる場所で再帰的に分割 分割の度に生成規則を追加 同じ文字列が出てきたら同じラベルを割り当てる

mk補題 サイズ m の文法により生成される文字列中の長さ k の部分列で異なるものは高々 mk 個 略証:各非終端記号により始めてカバーされる長さ k の部分列の個数は高々 k 個。全部で高々 m 個の規則があるので補題が成立。 灰色の配列で S により始めてカバーされるのは k 個。 それ以外は T1 か T2 によりカバーされる。

BISECTIONの解析 簡単のため、もとの文字列の長さを n=2h と仮定(h=log n) 文法のサイズ=2×(異なる文字列の個数) 最小の文法のサイズを m* とする 深さ h/2 以上で生成される文字列の長さは、1, 2, 4, …, 2h/2   なので、mk補題より異なる文字列の個数は よって、実行中に生成される異なる文字例の個数は

LZ法と文法圧縮との関係 [Rytter: Theoret. Comp. Sci. 302, 2003]

LZ圧縮 圧縮アルゴリズム ( 入力: w=w[1…n] 出力: w=f1・f2…fk ) f1←w[1] とし、i=2 から以下を繰り返す fi を f1・f2…fi-1 の最長の部分列(かつ、fi・fi+1…fkの接頭辞)とする    (無い場合には fi は fi・fi+1…fk の最初の文字) 例 w=abaababaabaab ⇒ f1・f2・ f3・f4 ・f5・f6 =a・b・a・aba・baaba・ab

LZ圧縮と文法圧縮の関係 (1) PTree(G): 「各内部頂点の左には同じラベルの内部頂点がない」 を満たす、文法 G による導出木の根を含む極大な部分木 G-分解: Ptree(G)の葉による w の分割: w=g1・g2…gr

LZ圧縮と文法圧縮の関係 (2) 命題1: |G| ≧ r (r は Ptree(G) による w の分割数) 証明 : G には内部頂点が r-1 個あるが、定義より Ptree(G) の内部頂点には同じラベルの頂点がない。 よって、A→BC という型の規則が r-1 個存在。 また、A→a という型の規則も少なくとも1個存在。 命題2: r ≧ k 証明 : i についての帰納法で | g1・g2…gi |≦|f1・f2…fi | を示す。 LZ圧縮では各時点で最長の接頭辞を選んでいるので、 | g1・g2…gi |=|f1・f2…fi | であれば | gi+1 |≦|fi+1 | が成立。 そうでなくても、 gi+1 は f1・f2…fi の部分列か、 gi+1 の接尾辞で f1・f2…fi に含まれない部分は fi+1 に含まれる。 定理1: LZ圧縮による分割数は文法圧縮のサイズの下限となる ここではチョムスキー標準形のみ考えているが、他の場合も定数倍を除いて同様

O(log2n) 近似アルゴリズム [Maruyama, Miyagawa, Sakamoto: LNCS 4288, 2006]

アルゴリズム: アイデアと縮約規則 アイデア: Z→XY という型の規則を次々に導入しながら文を縮小。 その際、同じ部分列はほぼ同様の規則に圧縮されるようにする 規則1: Xk (ただし、k≧2)   ⇒  左端、および、右端の各2文字を同じ記号に置換。これを繰り返す。  例: aaaaaaaa ⇒ AAAA      aaaaaaaaa ⇒ AAaAA (ただし、A→aa) 規則2: AiAjAk かつ j<i,k   ⇒  AjAk (minimal pair)を置換(Ap→ AjAk を新たに導入) 規則3: AiAjAkAh かつ (i <j<k<h or i>j>k>h)かつ hlca(j,k)>hlca(i,j), hlca(k,h)         ⇒  AjAk (maximal pair)を別の記号に置換 hlca(i,j): すべての終端記号、非終端記号を葉とする完全二分木における   i と j の共通祖先で最も下にある頂点(lowest common ancestor)の高さ 途中で出てくる記号の場所もあらかじめ用意しておく(全部で n 以下) hlca(i,j) の高さは 1+log n 以下 hlca(i,j) ≠ hlca(j,k) が必ず成立 (i<j<k もしくは i>j>k で、二分木なので)

アルゴリズム: LCAcompress アルゴリズムの説明: 以下の作業を必要回数繰り返す。 1. 規則1 を適用可能なものにすべて適用。 2. 規則2、規則3をこの順で適用。どちらも適用不可であれば、最初の2文字をまとめる。これを文字列全体に繰り返す。 (なお、w は毎回、書き換えられる)

計算量の解析 補題1: LCAcompress は線形時間で動作 証明: Repeat ループの各回において、少なくとも w[i..i+1], w[i+1..i+2] のいずれかは一つの記号に変換される。 よって、ループ1回あたり、w のサイズは 2/3 になる。 よって、repeat ループは O(log n) 回しか実行されない。 1回あたりの実行は O(|w|) 時間で実行可能であるので、全体の計算時間は n は w の最初の長さ

近似率の解析 (1) 補題2: (各repeatループにおいて) w[i1..j1]= w[i2..j2] とする(j1<i2)と、ある k ≦ c log n が存在し、 w[i1+k..j1-k] と w[i2+k..j2-k] は同じ文字列に変換される 略証: w[i1..j1] が apβbq というパターンをしていた場合、β部分は同じ文字列に変換され、ap, bq もそれぞれ高々2文字を除いては同じ文字列に変換される(k=2)。 それ以外の場合、hlca(i,j) の高さは 1+log n 以下であるので、c log n 以上の長さの文字列は必ず、minimal かmaximal な部分列を含むはずである。よって、最初と最後の c log n 文字以外は同じ文字列に変換される。

近似率の解析 (2) 補題3: 最小の文法の規則数を gOPT とすると、LCAcompress は O(gOPT log2n)サイズの文法を出力 略証: w=f1・f2…fk を入力 w のLZ分解とする(k≦gOPT)。 fi は f1・f2…fi-1 の部分文字列か |fi|=1であるので、補題2より、 fi を変換するのに新たに導入された規則はO(log n) 個のみである。 よって、repeatループ1回あたり、O(k・log n) 個の規則が導入される。 ループは O(log n)回実行されるので、LCAcompress により導入される規則の個数は O(k・log2n)≦ O(gOPT log2n)。 定理: 最小の文法の規則数を gOPT とすると、LCAcompress は線形時間で O(gOPT log2n)サイズの文法を出力

画像データの文法圧縮 [Hayashida et al.: Integrated Comp.-Aided. Eng. 2012]

画像データに対する文法圧縮 対象とする文法 下図のような、より複雑な文法にも拡張可 アルゴリズム: QUADSECTION 4分割型 BISECTIONの拡張

近似率の解析 補題:サイズ g の文法により生成される画像中のサイズ k×h の部分画像で異なるものは高々 2ngk 個  (n はもとの画像の最大辺。k≧h) 定理  QUADSECTION  の近似率は O(n4/3) d次元の場合は            近似 でも、画像をラスタースキャンして文字列に 変換して圧縮した方が、より良い近似精度

近似率の解析 再帰の深さが (2/3) log n になるまでに生成される規則の個数 最小の文法のサイズを g* とする 深さ (2/3) log n 以上で生成される画像のサイズは、1, 2×2, 4×4, … なので、mk補題より異なる画像の個数は よって、実行中に生成される異なる規則の個数

木の文法圧縮 [Akutsu: Inf. Proc. Lett. 2010]

文法圧縮の木構造への拡張 本研究 困難性の証明 [Yamgata et al. 03][Maneth & Bussato 04] ヒューリスティックなアルゴリズム Variable Replacement Grammar [Yamagata et al. 03] Tree Transducer [Maneth & Bussato 04] TCGA algorithm [Murakami et al. 08] 近似率導出の困難性 木文法の定義に依存: 簡単すぎても難しすぎても不可 本研究 EOTG (Elementary Ordered Tree Grammar) の提案 CFG を縦横両方に拡張 BISECTION型の O(n5/6)近似アルゴリズム 順序木、無順序木の両方に対応可能

EOTG Elementary Ordered Tree Grammar

EOTG: Elementary Ordered Tree Grammar 特徴:枝にラベル、枝を木構造に書き換える タグ付き木 1個の葉にのみタグ(印): 枝の両端 ⇔ 根とタグ タグつき葉は、後で他の木の根と融合 生成規則:タグなし枝→タグなし木  タグあり枝→タグあり木 タグなし枝 タグあり枝

EOTG: 例1 文法 導出過程 文法 導出過程

EOTG: 例2 文法 導出過程

オイラー文字列 木を深さ優先探索 探索した順に頂点のラベルを並べる ただし、戻る時のラベルは の様に区別する ただし、戻る時のラベルは の様に区別する 命題: T1 と T2 が同型 iff es(T1)=es(T2) ただし、根のラベルは無視

SEOTG: Simple Elementary Ordered Tree Grammar タグ ⇔ x :  x は部分木に置換される

EOTG, SEOTGの性質 文法のサイズ: 右辺に現れる木の枝数の合計 文法のサイズ: 右辺に現れる木の枝数の合計 補題: サイズ m のEOTGは、サイズ 3m 以下の SEOTGに変換可能 定理: 与えられた木がEOTGから生成可能かどうか は多項式時間で判定可能 圧縮においては、1個の木のみを生成する文法のみを対象  ← 与えられた木を圧縮したい オイラー文字列を作ってから文法圧縮すると、必ずしも木文法は得られない

圧縮アルゴリズム: TREE-BISECTION

TREE-BISECTION (1) 木を再帰的に分割 同型な部分木が出てきたら同じラベルを割り当てる T が枝 A のみの場合 A→a という規則を追加して終了 (a は枝 A のラベル) T がタグなし木の場合 T を T1, T2 に分割。ただし、|T1|≦(1/2)|T|+1、かつ、 T1 はタグつき T2 を T3, T4 に分割。ただし、|T3|, |T4|≦(3/4)|T|+1 T がタグつき木の場合 T2 を T3, T4 に分割。 T3, T4 のいずれかのみがタグつき木 T3 がタグつき木なら、 |T3|≦(1/2)|T|+1  (逆も同様) (|T4|は制約されないが、タグなし木なので次ステップで必ず小さくなる) 多項式時間で動作するのは、ほぼ明らか

TREE-BISECTION (2) 枝1本のみ タグなし木 タグあり木

TREE-BISECTIONの解析

mk-補題(1) mk-補題 [Lehman & Schelat 02] 文字列 s がサイズ m の CFG により生成されたとすると、 s に現れる長さ k の文字列のうち、異なるものは mk 個以下。 オイラー文字列を用いて順序木に拡張 補題: 木 T がサイズ m の EOTG により生成されたとすると、 es(T) に現れる長さ k の文字列のうち、異なるものは 2mk 個以下。 証明: サイズ m のEOTG は、サイズ 2m の CFG に変換可能 例:

mk-補題(2) 命題:m*を最小EOTGのサイズとすると、アルゴリズム中で現れる サイズ k の木の種類は高々 証明: サイズ k の木 ⇒ 長さ 2k-2 の文字列。ただし、途中にタグが入る場合は、長さ k1 と 長さ (2k-2)-k1 の文字列の組み合わせ。

その他の補題 補題: 大きさ n の木を生成するEOTGのサイズは 補題: TREE-BISECTION の再帰の深さは 補題: TREE-BISECTION の 同じ深さの再帰レベルに現れる 木の枝の数の合計は n-1 以下 証明: TREE-BISECTION は もとの木を edge disjoint な木 に分解

定理: TREE-BISECTION の近似率は O(n5/6) 同じ再帰レベルに現れるサイズnα +1以上の木の個数は (n-1)/nα < n1-α 以下 アルゴリズム中に現れるサイズnα +1以上の木の個数は  O(n1-α log n) サイズ nα 以下の木の種類は よって、アルゴリズム中に現れる異なる木の種類は α=1/6, m* が O(n1/6) とおいて

(次数制約つき)無順序木への拡張 TREE-BISECTIONの変更点 EOTGの変更点 ⇒ O(n5/6)近似 T2 を、r(T2) と wj の子孫からなる部分木(j=1,…,h)に分解 順序木の同型性判定を無順序木の同型性判定に置き換え ⇒ 入力木は子の順序に関係なく、一意に分解される EOTGの変更点 子の順序を無視    e.g., (IIIA)=(IIIB) ⇒ O(n5/6)近似

まとめ 補足 文法圧縮: 入力データを一意に生成する最小文法の近似 文字列の文法圧縮 画像データの文法圧縮: 四分割法(二分割法の拡張) 文法圧縮: 入力データを一意に生成する最小文法の近似 文字列の文法圧縮 二分割法、LZ圧縮との関連、LCAを用いた圧縮 画像データの文法圧縮: 四分割法(二分割法の拡張) 木構造データの文法圧縮: 二分割法の拡張 補足 文字列の文法圧縮については最適に近い近似が可能          [Rytter: Theoret. Comp. Sci. 2003], [Charikar et al.: IEEE Trans. Inf. Theory 2005] 文法圧縮した文字列に対する効率的な検索なども可能                                         [Bille et al.: Proc. SODA 2011] 画像データ、木構造データの近似率の改善は研究課題