情報生命科学特別講義

Download Report

Transcript 情報生命科学特別講義

情報生命科学特別講義III
(8)木構造の比較: 順序木
阿久津 達也
京都大学 化学研究所
バイオインフォマティクスセンター
講義予定















第1回: 文字列マッチング
第2回: 文字列データ構造
第3回: たたみ込みとハッシュに基づくマッチング
第4回: 近似文字列マッチング
第5回: 配列アラインメント
第6回: 配列解析
第7回: 進化系統樹推定
第8回: 木構造の比較:順序木
第9回: 木構造の比較:無順序木
第10回: 文法圧縮
第11回: RNA二次構造予測
第12回: タンパク質立体構造の予測と比較
第13回: 固定パラメータアルゴリズムと部分k木
第14回: グラフの比較と列挙
第15回: まとめ
木構造の比較
背景

配列のパターンマッチング


バイオインフォマティクスの最重要基本技術の一つ
木構造のパターンマッチング

バイオインフォマティクス


XMLデータベース


RNA構造の比較、糖鎖構造の比較
類似XML文書の検索
画像理解
例: RNA二次構造の木表現
木の編集距離
木構造の比較

部分グラフに基づく最大共通部分木



編集距離に基づく最大共通部分木



順序木:O(n2)時間
無順序木: O(n2.5/log n)時間
順序木: O(n3)時間
無順序木:NP困難(MAX SNP困難)
講義で示すアルゴリズム





順序木に対するO(n4)時間アルゴリズム
順序木に対するO(n3logn)時間アルゴリズム
順序木に対するO(n2)時間近似アルゴリズム
無順序木に対するO(h)近似アルゴリズム
無順序木に対する固定パラメータアルゴリズム
(O(f(k) poly(n))時間アルゴリズム)
n: 二つの入力木のうち、大きい方の頂点数
h: 二つの入力木のうち、高い方の木の高さ
順序木の編集距離計算

上限
O(n6)時間 [K-C.Tai, 1979]
4
 O(n )時間 [K. Zhang & D. Shasha, 1989]
 O(n3log n)時間 [P. N. Klein, 1998]
 O(n3)時間 [E. Demaine et al., 2007]


下限

Ω (n3)時間 [E. Demaine et al., 2007]
(ただし、decomposition strategy algorithms の枠内)
無順序木の編集距離計算

編集距離




NP困難 [K. Zhang, R. Statman, D. Shasha, 1992]
MAX SNP困難 [K. Zhang & T. Jiang, 1994]
高さが h の時、2h+2近似 [Fukagawa et al., 2009]
最大共通部分木




MAX SNP困難 [K. Zhang & T. Jiang, 1994]
一方が高さ1の木で、もう一方が高さ2の木でも
定数近似困難 [M. M. Halldorsson & K. Tanaka, 1996]
O(log n)近似 [Akutsu et al., 2013]
高さが h の時、2h 近似 [M. M. Halldorsson & K. Tanaka, 1996]

1.5h 近似に改良 [Akutsu et al., 2008]
木の編集距離

編集距離: T1 を T2 に変換するのに要する編集
操作の最小回数
削除: 頂点 v を削除し、v の子を v の親の子とする
 挿入: 削除の逆
 置換: 頂点 v のラベルを置き変える
(無順序木では、子の左右を入れ替えてもOK)

A
T1
A
C を削除
B
D
B
A
C
A
B
B
D
D
A
C を挿入
B
B
T2
B
D
A
B
木の編集距離


文字列間の編集距離の
根つき木への拡張
3種類の編集操作


c
a
頂点ラベルの置換、頂点の削除、
頂点の挿入
T1 を T2 に変え
るのに必要な
最小の編集
操作回数
c
b
挿入
T1, T2 間の
編集距離

a
置換
削除
a
a
a
c
b
c
c
c
c
b
b
a
a
b
c
b
木の編集距離と木間写像

T1, T2 間の写像



1対1、先祖、子孫関係を保存
コスト: ラベルが異なる頂点数 + 写像に含まれない頂点数
編集距離の計算


順序木(子の順序を保存): 動的計画法により、多項式時間
無順序木: NP困難
a
c
a
d
b
e
c
c
コス ト= 2
b
d
c
e
木間写像と最大共通部分木

木間写像: 以下を満たす写像 M  V (T1 )  V (T 2 )
(  ( v1 , w1 )  M )(  ( v 2 , w 2 )  M )
 v1  v 2  w1  w 2
 v1が v 2の先祖  w1が w 2の先祖
 v1が v 2の左  w1が w 2の左

( 順序木 )
最大共通部分木

M id  {( v , w ) | ( v , w )  M , label ( v )  label ( w )}
の要素数が最大となる Mid により誘導される部分木

編集距離と最大共通部分木の関係

編集距離 = | V (T1 ) |  | V (T2 ) |  | M |  | M id |
木間写像と最大共通部分木の例
T1
最大共通部分木
T2
順序木に対する
O(n4)時間アルゴリズム
[Shasha, Zhang: J. Algorithms 11, 1990]
[Bille: Theoret. Comp. Sci. 337, 2005]
動的計画法アルゴリズム(1)

D(F1,F2) 森 F1 と森 F2 の編集距離


森: 木の集合(ここでは木の順序集合)
w(x,y)はラベル x から y への置換コスト
(- はギャップ)
D ( ,  )  0
D ( F1 ,  )  D ( F1  v ,  )  w ( l ( v ),  )
D (  , F 2 )  D (  , F 2  u )  w (  , l ( u ))

 D ( F1  v , F 2 )  w ( l ( v ),  )

D ( F1 , F 2 )  min  D ( F1 , F 2  u )  w (  , l ( u ))
 D ( F1  T1 ( v ), F 2  T 2 ( u ))

  D (T1 ( v )  v , T 2 ( u )  u )  w ( l ( v ), l ( u ))
動的計画法アルゴリズム(2)
D ( F1  v , F 2 )  w ( l ( v ),  )


D ( F1 , F 2 )  min 
D ( F1 , F 2  u )  w (  , l ( u ))
 D ( F  T ( v ), F  T ( u ))  D (T ( v )  v , T ( u )  u )  w ( l ( v ), l ( u ))
1
1
2
2
1
2

動的計画法アルゴリズムの解析



各再帰ステップ1回あたりは定数時間で実行可能
よって、異なる D(F1,F2) の個数を見積もれば良い
F1は、各頂点 v の子孫から構成される森から一番右
上にある頂点を繰り返し削除して得られる
⇒ v の選び方がO(n), 削除の回数がO(n)より、
異なる F1 の個数はO(n2)
異なる D(F1,F2) の個数は
O(n4)
⇒ O(n4) 時間

順序木に対する
O(n3 log n)時間アルゴリズム
[Klein: Proc. ESA 1998]
動的計画法アルゴリズムの改良
基本アイデア
直前のアルゴリズムではF1,F2の一番右の木の根を削除・マッチ
させていた
でも、一番左の木の根を削除・マッチさせてもOK
さらに、左右どちらを選ぶかを動的に選んでもOK
アルゴリズム
F1の一番左の木のサイズ>F1の一番右の木のサイズであれば、
以前と同じ再帰式を適用
そうでなければ、左右を入れ替えた再帰式を適用
性質

いったん F1 の左か右の根が選ばれたら、その子孫の処理が
終わるまで他の根は選ばれない
Heavy Path Decomposition


各頂点の子頂点 v のうち T(v) が最大のものへの辺だけを残し、
木をパスの集合に分解(同サイズがあれば、任意に1つを選ぶ)
ldepth(v): v の祖先でパスの始点になっている頂点の個数

例: ldepth(u)=3, ldepth(v)=1, ldepth(w)=2
命題 すべての頂点 v に
おいて ldepth(v) は
O(log n)
u
w
v
動的計画法アルゴリズムの解析
定理 順序木の編集距離は O(n3 log n) 時間で計算可能
証明
性質1より、再帰式に現れる T1 の部分森は、各頂点 v とその先
祖で、かつ、パスの始点のペアで決められる。
よって、T1 の部分森の総数は Σv ldepth(v) ≦O(n log n)。
一方、再帰式に現れる T2の部分森の総数は以前と同様に O(n2)
個。よって定理が成立。


上記アルゴリズムでは F1 のみを見て、左右を選んでいたが、
F1, F2 の両方を見ることにより改良でき、O(n3)時間アルゴリズ
ムが得られる
一方、左右を選んで削除・マッチさせるというアルゴリズムで
はΩ(n3)時間かかることも示されている
[Demaine et al.: ACM Trans. Algorithms 6, 2009]
順序木の編集距離のO(n2)時間
O(h) 近似アルゴリズム
[Akutsu: Inf. Proc. Lett. 100, 2006]
オイラー文字列



木を深さ優先探索
探索した順に頂点のラベルを並べる
ただし、戻る時のラベルは A の様に区別する
命題: T1 と T2 が同型 iff es(T1)=es(T2)
ただし、根のラベルは無視
アルゴリズム


T1, T2 をオイラー文字列 s1, s2 に変換
s1, s2間の編集距離 EDS(s1,s2) を計算して出力
定理
1
2
ED S ( s1 , s 2 )  ED T (T1 , T2 )  ( 2 h  1) ED S ( s1 , s 2 )
h: 低い方の木の高さ
文字列の編集距離

編集操作


文字の追加
文字の削除
文字の置換
編集距離 = 文字列 s1 を s2 に変換するための最小
の編集操作回数

距離の公理を満たす
s1 = GCGTCGT
s2 = CGATCCTC
G C G ー T C G T ー
ー C G A T C C T C
アラインメント
⇒ 距離=4
命題
1
2
ED S ( s1 , s 2 )  ED T (T1 , T2 )
T1に対する1編集操作 ⇒ s1 に対する2編集操作

T1
T2
B
C
B
C
D
D
T1
T2
B
C
D
B
C
E
s1: B D D B C C
s2: B
B C C
s1: B D D B C C
s2: B E E B C C
アラインメントからの木間写像の復元

アラインメントから両者において完全に保存されてい
る部分木のみを抽出
上限の解析 (1)


命題:途中に編集操作の入らない部分木どおしを対応
させると正当な木間写像になる
証明:部分木どおしは親子関係に無く、かつ、オイラー
文字列を利用しているので左右の関係が保存される
A
B
上限の解析 (2)

文字列アライメントにおける1個のエラーが高さ×2個
(T1と T2 )の頂点の対応関係を損なう
ED T (T1 , T 2 ) 
( 2 h  1) ED S ( s1 , s 2 )
定理
1
2
ED S ( s1 , s 2 )  ED T (T1 , T2 )  ( 2 h  1) ED S ( s1 , s 2 )
順序木の編集距離の
O(n3/4) 近似アルゴリズム
[Akutsu, Fukagawa, Takasu: Algorithmica 57, 2010]
最悪となる場合の例



文字列の距離=2
木の距離≒高さ
幹の頂点にAC,
BD, AD, BCな
どのラベルをつ
けてマッチを防
げば良い
枝へのラベルの割り当て(1)

すべての枝に部分木の情報を割り当てると、(オイ
ラー文字列の)エラーが大きくなりすぎる
⇒ 一部の枝のみに小さな部分木の情報を付加
枝へのラベルの割り当て(2)


Special node: 部分木のサイズが n 以下で、
親部分木のサイズが n より大
Special edge:子の少なくとも1個が special node

Special nodeを根とする部分木の情報をラベルとして与える
アルゴリズム

T1, T2 の special edge にラベルを割り当て



同じラベル ⇔ サイズ √n 以下の子部分木集合が同型
T1, T2 をオイラー文字列 s’1, s’2 に変換
s’1, s’2間の編集距離 EDS(s’1,s’2) を計算して出力
定理
1
O (n
3/4
)
ED T (T1 , T 2 )  ED S ( s , s )  6  ED T (T1 , T 2 )
'
1
'
2
ただし、木の次数は定数以下
まとめ

順序木の編集距離



比較的単純な動的計画法で O(n4) 時間
左右両方を動的に選択することで O(n3 log n) 時間
オイラー文字列の利用により近似が O(n2) 時間
補足

両方の木の左右を動的に選択することで O(n3)時間、しか
も分割型アルゴリズムでは最適 [Demaine et al.: ACM Trans. Alg.
2009]


でも別のアルゴリズムを使えば改善できる可能性があるの
で、その改善は研究課題
距離が k 以内の場合や、他の制約がある場合についても
多くの研究 [Bille: Theoret. Comp. Sci. 2005]