350 likes | 464 Views
情報生命科学特別講義 III ( 9 )木構造の比較: 無順序木. 阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター. 講義予定. 第1回 : 文字列マッチング 第2回: 文字列データ構造 第3回: たたみ込みとハッシュに基づくマッチング 第4回: 近似文字列マッチング 第5回 : 配列アラインメント 第6回: 配列解析 第7回 : 進化系統樹推定 第8回 : 木構造の比較:順序木 第9回 : 木構造の比較:無順序木 第10回 : 文法圧縮 第11回 : RNA 二次構造予測 第12回 : タンパク質立体構造の予測と比較
E N D
情報生命科学特別講義III(9)木構造の比較: 無順序木 阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
講義予定 • 第1回:文字列マッチング • 第2回: 文字列データ構造 • 第3回: たたみ込みとハッシュに基づくマッチング • 第4回: 近似文字列マッチング • 第5回: 配列アラインメント • 第6回: 配列解析 • 第7回: 進化系統樹推定 • 第8回: 木構造の比較:順序木 • 第9回:木構造の比較:無順序木 • 第10回: 文法圧縮 • 第11回:RNA二次構造予測 • 第12回: タンパク質立体構造の予測と比較 • 第13回: 固定パラメータアルゴリズムと部分k木 • 第14回: グラフの比較と列挙 • 第15回: まとめ
木の編集距離 • 編集距離: T1 を T2 に変換するのに要する編集操作の最小回数 • 削除: 頂点 vを削除し、vの子を vの親の子とする • 挿入: 削除の逆 • 置換: 頂点 vのラベルを置き変える (無順序木では、子の左右を入れ替えてもOK) T1 A T2 A C を削除 B D B D A B B A A B C を挿入 C B B D A B D
木間写像と最大共通部分木 • 木間写像:以下を満たす写像 • 最大共通部分木 の要素数が最大となる Mid により誘導される部分木 • 編集距離と最大共通部分木の関係 • 編集距離 =
木間写像と最大共通部分木の例 T1 T2 最大共通部分木
一般の距離の場合の関係 一般の編集距離 • γ(x,y) :ラベル xをラベル yに置換 • γ(x,ε) :ラベル xの頂点を削除 • γ(ε,y):ラベル yの頂点を挿入 最大共通部分木のスコア 編集距離とスコアの関係 • Largest common subtree (LCST) • Subtree induced by M which maximizes where • Relation between distance and LCST
無順序木の編集距離の2h+2近似アルゴリズム [Fukagawa et al.: Proc. SPIRE 2009]
無順序木の編集距離の近似 • 最大共通部分木(最大化)⇔編集距離(最小化) • しかし、近似に関しては無関係 • 編集距離: MAX SNP困難以外の結果が無い ⇒無順序木の編集距離の 2h+2近似 方法 • 木 Tを特徴ベクトル Φ(T) に変換
特徴ベクトル • T(v) : vとその子孫から誘導される Tの部分木 • Φt(T)= #(T,t)= |{ v | T(v)≈t }|, Φ(Ti) = < Φt(Ti) | t∊{Ti(v)|i=1,2} >
特徴ベクトルの性質 T1 T2 r r 補題1 証明:編集操作1により距離が高々2h+2 増加 補題2 証明: 次のスライド c c a a a a b c b b Φ(T1)= ( 2, 2, 1, 1, 1, 0, 1, 0 ) Φ(T2)= ( 2, 1, 2, 1, 0, 1, 0, 1 ) a c c T1 T2 a b c b a b a c
補題2 証明 T1を T2に変換する d=||Φ(T1)-Φ(T2)|| 回の編集操作系列(証明中では両方の木からの頂点の削除系列)を示す • d=0 の時、明らかに T1≈ T2 • T1(u) ≈ T2(v) を満たす根の子のペア (u,v) が存在するなら、 T1(u) ,T2(v) を両方の木から削除 • 編集操作ではなく、これらはマッチしたものとみなし、以降の対象から除く • このようにしても次式により dは不変 • |Ti(v)| が最大となる根の子 vを選び、vを Tiから削除 • 根の子が1個削除されるだけなので、特徴ベクトルは1か所1だけ減る 最大でないと の場合にX T1≈ T2は、T1と T2 が同型であることを意味
木に対する最大連結共通部分グラフ計算アルゴリズム木に対する最大連結共通部分グラフ計算アルゴリズム
木の最大連結共通部分グラフ 入力:二つの根つき無順序木 T1, T2 出力: T1, T2の部分グラフに同型で、頂点数最大の木 • 簡単のため、根どうしは対応すると仮定 • すべての頂点対を根の対として繰り返し解くことにより、根なし木にも対応可
アルゴリズム: 動的計画法の利用 例 D[2,b] = 1, D[2,c]=1, D[2,d]=1 D[3,b] = 3, D[3,c]=3, D[3,d]=2 D[4,b] = 3, D[4,c]=2, D[4,d]=2 • T(v): 頂点 vとその子孫から構成される Tの部分グラフ • D[u,v]: T1(u)と T2(v)の最大連結共通部分グラフのサイズ(頂点数) • ただし、 uと vは対応することが必要 • 動的計画法の適用 • D[u,v] を葉から根へ と計算 • D[u,v] を計算する時 には、その子のペア (u’,v’) の D[u’,v’] は すべて計算済み
アルゴリズム: 二部グラフマッチングの利用 • D[u,v]の計算 • 子のペアに対する D[…] から二部グラフを構成 • 二部グラフの最大重みマッチングを計算 • 二部グラフ • Uと Wの間にしか辺が無いように、頂点集合を (U,W) に分割可能なグラフ • マッチング • 端点を共有しない辺の集合 • 最大重みの場合も含め、多項式時間で計算可能
アルゴリズム: 例 D[2,b] = 1, D[2,c]=1, D[2,d]=1 D[3,b] = 3, D[3,c]=3, D[3,d]=2 D[4,b] = 3, D[4,c]=2, D[4,d]=2 • D[1,a] の計算 • D[1,a] = 最大重みマッチングの重み + 1 = 8 • (2,d), (3,c), (4,b) が対応 ラベルの対にスコア(重み)が割り当てられる場合にも対応可能
無順序木の編集距離に対するO(1.26n1+n2)時間アルゴリズム無順序木の編集距離に対するO(1.26n1+n2)時間アルゴリズム [Akutsu et al.: Proc. CPM 2012]
指数時間アルゴリズム • NP困難問題への対処法 • 近似アルゴリズム • 固定パラメータアルゴリズム • 指数時間アルゴリズム(O(an)で底aを小さくする) • 平均的に高速なアルゴリズム • ヒューリスティックなアルゴリズム • 指数時間アルゴリズム • タンパク質などでは nは有限(多くの場合、n≦1000で十分) ⇒ 例えば 1.021000 で他のオーバーヘッドが少ないなら十分計算可能 ⇒ 小さな底の指数時間アルゴリズムの開発
基本アイデア • 編集距離と同値なので最大共通部分木を計算 • 前述と同様の動的計画法の利用 ⇒ ただし、挿入・削除があるので、各頂点ペアごとに子頂点集合の探索が必要(指数時間)⇒ ここをできるだけ改善 • 候補頂点集合 R(relevant set、先祖・子孫関係がない頂点集合)どうしのみのチェック
二部グラフの構成 • アイデア: 葉を特別扱いする • Rが分岐頂点のみを含む場合、候補分岐頂点集合とよぶ • 二部グラフの頂点集合=候補分岐頂点集合+その子孫以外の葉の集合
アルゴリズム • 内部頂点が2個以上の子を持つと以下のように簡単 • この仮定は除去可能(ただし、省略) w(u,v): u とv がマッチした時の頂点間の重み(この和を最大化) S[u,v]: T1(u)と T2(v) の最大共通部分木のスコア(ただし、u,v が対応) BPscore: 前述のように構成した二部グラフのスコア
アルゴリズムの解析 補題: 頂点数 n の木における候補分岐頂点集合の個数は Θ(2⌈(n−1)/3⌉) ( <O(1.26n)) ⇒ O(1.26n1+n2 )時間アルゴリズム n1, n2: 入力木の頂点数
最大次数とラベルに制約がある場合の改良 • 最大次数とラベルの種類が制約された場合、(高さ K未満の)小さな部分木の多くは同型 (葉のかわりに小さな部分木を考える) ⇒ 多くの候補頂点集合は本質的に同じ⇒ 本質的に異なる候補頂点集合 のみについて計算すればよい⇒ O((1+ε)n1+n2) 時間 (εは任意の正定数)
アルゴリズムと解析 定理: 以下のアルゴリズムはO(((2K) (1/K))n1+n2 poly) 時間で動作 • 任意の ε に対し、十分大きな Kをとれば、(((2K) (1/K))≦1+ε
無順序木の編集距離に対する固定パラメータ・アルゴリズム無順序木の編集距離に対する固定パラメータ・アルゴリズム [Akutsu et al.: Theoret. Comp. Sci. 2011]
固定パラメータ・アルゴリズム • NP困難問題への対処法 • 近似アルゴリズム • 固定パラメータアルゴリズム • 指数時間アルゴリズム(O(an)で底aを小さくする) • 平均的に高速なアルゴリズム • ヒューリスティックなアルゴリズム • 固定パラメータアルゴリズム • あるパラメータ kがあり、O(f(k)poly(n)) 時間で動作 • f(k)は指数時間、poly(n)は多項式時間 • kに対しては指数時間(もしくは、超指数時間) • nに対しては多項式時間 ⇒編集距離が k以内かどうかを判定する固定パラメータアルゴリズム
補題 T1 , T2 の根を r1 ,r2 とし、dist(T1(u), T2(v))>0がすべての u∊chd(r1), v∊chd(r2) について成立すると仮定する。 ここで、u を |Ti(u)| が最大となる r1 もしくは r2 の子とし、M を編集距離を与える写像とすると、以下の一つが成立( u∊chd(r1) と仮定)。 ・ uは Mに出現しない (uを削除) ・ (u,v)∊M かつ dist(T1(u), T2(v))>0 が、 v∊chd(r2) に対して成立 ・ (u,v)∊M かつ dist(T1(u), T2(v))>0 が、 子以外の子孫に対して成立
補題 xi ∊chd(r1), yj ∊chd(r2)、かつ、T1 (xi) と T2 (yj) が同型なら、 dist(T1, T2)= dist(T1-T1(xi), T2-T2(yj ))
アルゴリズムの概要 • 根のペアから再帰的に実行 • 同型な子頂点ペアがあれば削除 • それぞれの木の子頂点の個数が k個以下の間は、大きい順に子頂点を1個ずつ追加 • 追加の際には、その子頂点の削除の場合も再帰的に考慮 • 子頂点を追加できなくなったらば、最小重みマッチングにより、子頂点間の対応関係を計算
アルゴリズム (前半部) 一方の木が空の場合 両方とも根だけの木の場合 同型な子がある場合
アルゴリズム (後半部) 同型な子頂点はないので、k個までの 子頂点の対応関係をチェックすれば十分 サイズが最大の頂点 wを選択 対応する子頂点の個数は同じはず 最小重みマッチングの計算 T1から wを削除 T2から wを削除 wを子頂点集合に追加
計算量の解析 (1) • 再帰回数の見積もり • レベルk-1の再帰を • 高々2k回 • 再帰1回あたりの時間 • マッチングに O(n3) 分岐なし 合計で高々 2k回
計算量の解析 (2) 定理: 二つの無順序木の編集距離が k以内かどうかは O(2k・k!・n6)時間で判定可能 FpDistは、すべての頂点ペアについてボトムアップに実行: O(n2)倍 距離は 0から kのそれぞれについて実行: O(n)倍 よって、全体の計算時間は
まとめ 無順序木の編集距離 • O(2h+2) 近似: 特徴ベクトルを用いた埋め込みの利用 • O(1.26n1+n2) 時間アルゴリズム: 頂点数の削減 • O(2k・k!・n6) 時間アルゴリズム: 固定パラメータ・アルゴリズム • O(2.62kpoly(n)) 時間に改善可能 [Akutsu et al.: Theoret. Comp. Sci. 2011] 補足 • 編集操作に制約(木アラインメント、Tree Inclusion) • 次数固定なら多項式時間 (参照:[Bille: Theoret. Comp. Sci. 2005]) • 最大共通部分木の近似 • O(logn) 近似[Akutsu et al.: Theoret. Comp. Sci., 2013]] • この近似率の改善、および、編集距離の高さに依存しない近似は研究課題 • 木の編集距離の高さに依存しない埋め込みは研究課題 • Move を許した順序木の場合は可能[Garofalakis, Kumar: ACM Trans. Database System2005]