• 検索結果がありません。

根付きラベル付きキャタピラの編集距離の計算

N/A
N/A
Protected

Academic year: 2021

シェア "根付きラベル付きキャタピラの編集距離の計算"

Copied!
6
0
0

読み込み中.... (全文を見る)

全文

(1)

根付きラベル付きキャタピラの編集距離の計算

Computing Edit Distance between Rooted Labeled Caterpillars

村家 康平

1

芳野 拓也

2

平田 耕一

2

Kohei Muraka

1

Takuya Yoshino

2

Kouichi Hirata

2

1

九州工業大学大学院 情報工学府

1

Graduate School of Computer Science and Systems Engineering,

Kyushu Institute of Technology

2

九州工業大学大学院 情報工学研究院

2

Department of Artificial Intelligence, Kyushu Institute of Technology

Abstract: A rooted labeled caterpillar is a rooted labeled tree transformed to a path after removing all the leaves in it. In this paper, we design the algorithm to compute the edit distance between rooted labeled caterpillars in O(σh2) time, where σ is the number of labels and h is the

maximum height of two caterpillars.

1

はじめに

ウェブマイニングにおける HTML や XML データや, バイオインフォマティクスにおけるにおける RNA や 糖鎖データといった木構造データの比較はデータマイ ニングにおいて重要である. 根付きラベル付き無順序 木 (以後, 単に木という) の距離計算で最も有名な距離 として木編集距離 [5] がある. 編集距離は, ノードのラ ベルの置換, ノードの削除, ノードの挿入の 3 つの編集 操作を用いて, 一方の木から他方の木へ変換する最小コ ストとして定義される. また, 編集距離はメトリックで あり, Tai マッピング [5] の最小コストと対応する. しかし, 木同士の編集距離計算問題は MAX SNP 困 難である [6]. これは木が二分木や, 木の高さの最大値 が高々3 であっても成り立つ [1, 3]. キャタピラとは, 木からすべての葉を取り除くと 1 本 のパスになる木である. キャタピラは, 非常に制限され た単純な木であるが, 表 1 のように実データ中に多く存 在している. 一方, キャタピラは無順序木であるので, キャタピラの編集距離が多項式時間で計算できるか否 か解明されていない. 本論文では, キャタピラの編集距離を計算するアルゴ リズムを設計する. このアルゴリズムは, キャタピラの 次のような性質を利用する. キャタピラの内部ノード の子は, 高々1 つのキャタピラと葉の集合から構成され ているため, 内部ノードを削除すると, 高々1 つのキャ タピラと葉の集合を得ることができる. また, そのよう 連絡先: 九州工業大学大学院 情報工学府         820-8502 福岡県飯塚市川津 680-4        E-mail:[email protected] にして得られた葉に対して, それ以前に分解された際 に得られた葉の集合を加えることができる. このアル ゴリズムの計算時間は, 比較するキャタピラの高さの最 大値を h, キャタピラに出現するラベル数を σ としたと き, O(σh2) 時間となる.

2

キャタピラと木編集距離

閉路を持たない連結無向グラフを木という. ノード の集合 V と辺の集合 E からなる木 T = (V, E) に対し て, V を V (T ), E を V (E) とし, v∈ V を v ∈ V (T ) と する. また, 空の木 (∅, ∅) を ∅ と表す. 木 T からノード r を根として選んだ木を根付き木とし, その根付き木 T の根を r(T ) とする. 木を r = r(T ) となる根付き木といい, u, v, w∈ T と する. v1 = r, vk = v かつ, i(1 ≤ i ≤ k − 1) である (vi, vi+1)∈ E′ となる木 (V′, E′) において, r から v に 対するパスを U Pr(v) とする. par(v) を v(̸= r) の親と したとき, そのノードは U Pr(v) と隣接しており, v(̸= r) の先祖は U Pr(v)−{v} 上のノードである. u, v ∈ V (T ) において, par(u) = v で u と v が隣接しているとき, v を u の親といい, u を v の子という. また, ノードの子 の数を次数といい, d(v) で表す. このとき, 木 T の次数 を, d(T ) = max{d(v) | v ∈ T } と定義する. 子を持た ないノードを葉といい lv(T ) とする. ノード v の高さ を h(v) = max{|UPr(w)| | w ∈ lv(T [v])} とする. この とき, 木 T の高さを h(T ) = max{h(v) | v ∈ T } と定義 する. 根付き木の先祖子孫関係を <,≤ を用いて表す. つま 人工知能学会研究会資料 SIG-FPAI-B801-03

(2)

り, v が u の先祖であるとき u < v とし, u < v かつ u = v のとき u≤ v とする. u ≤ w, v ≤ w かつ w′ ≤ w, u≤ w′, v≤ w′となる w′∈ T が存在しないとき, w を u と v の最近共通先祖といい, u⊔ v と表す. 木 T を根付き木 (V, E) とし, v∈ T とする. v を根と する完全部分木 T を, r(T′) = v, V′={u ∈ V | u ≤ v} かつ E′ ={(u, w) ∈ E | u, w ∈ V′} である根付き木 T′= (V′, E′) とし, T [v] と表す.

先行順 pre において, pre(u)≤ pre(v) であり, かつ

後項順 post において, post(u)≤ post(v) のとき, u は v

の左側に存在するという. 子ノード間に上記のような 順序関係が存在する木のことを順序木といい, 子ノード 間にそのような順序関係が存在しないものを無順序木 という. また, 各ノードがアルファベット Σ によってラ ベル付けされている木をラベル付き木といい, ノード v のラベルを l(v) と表す. 本論文では, 根付きラベル付 き無順序木を単に木といい, 木の集合を森という. 木の変種として根付きラベル付きキャタピラ (以後, 単にキャタピラという) を以下のように定義する. 定義 1 (キャタピラ ([2])) 全ての葉を取り除くと一本 のパスになる木をキャタピラ (caterpillar) という. キ ャタピラ C において, 葉を削除して残ったパスを背骨 (backbone) といい, bb(C) と表す. キャタピラは, 非常に制限されたデータであるが, 実 データ中に多く存在している. 表 1 は, KEGG1 から

提供されている N-glycans と all glycans, CSLOGS2,

dblp3, および, UW XML Repository4から提供されて いる SwissProt, TPC-H, Auction, University, Protain, Nasa データ中に含まれているキャタピラの数を表して おり, #cat はキャタピラの数, #data は木のデータ数で ある. また, D∈ {Auction, University, Protein, Nasa}

に対して, D− で, D の任意の木に対して根ノードを削 除することによって得られる木の集合を表す. D−は D 中の 1 つの木から複数の木が生成されるため, D− の#data は D の#data によりも大きくなる. 次に, 編集距離と Tai マッピングについて導入する. 定義 2 (編集操作 [5]) 以下の 3 つの操作を木 T におけ る編集操作という. 1) 置換 (v7→ w): v ∈ T のラベルを w に変える. 2) 削除 (v7→ ε): v ∈ T を削除し, v のすべての子を v の親 v′に連結する.

1Kyoto Encyclopedia of Genes and Genomes,

http://www.kegg.jp/ 2 http://www.cs.rpi.edu/˜zaki/www-new/pmwiki.php/Software/Software 3http://dblp.uni-trier.de/ 4http://aiweb.cs.washington.edu/research/projects/xmltk/ xmldata/www/repository.html 表 1: 各データにおけるキャタピラの本数

dataset #cat #data %

N-glycans 514 2,141 23.996 all glycans 8,005 10,704 74.785 CSLOGS 41,592 59,691 69.679 dblp 5,154,295 5,154,530 99.995 SwissProt 6,804 50,000 13.608 YPC-H 86,805 86,805 100.000 Auction 0 37 0 University 0 6,738 0 Protein 0 262,625 0 Nasa 0 2,340 0 Auction 259 259 100.000 University 74,638 79,213 94.224 Protein 1,874,703 2,204,068 85.057 Nasa 21,245 27,921 76.089 3) 挿入 (ε7→ w): ノード v に v の子の部分列を連結 し, v を v′に連結する. 置換 (v7→ w) v 7→ w 削除 (v 7→ ε) v′ v 7→ v′ 挿入 (ε7→ v) v′ 7→ v′ v 図 1: 編集操作. ε∈ Σ とし, Σε= Σ∪{ε} とする. このとき, (l1, l2)ε× Σε− {(ε, ε)} において, 各編集操作を (l1 7→ l2) と表す. l1̸= ε かつ l2̸= ε のときは置換であり, l2= ε のときは削除, l1= ε のときは挿入である. また, ノー ド v と w において, (l(v)7→ l(w)) を (v 7→ w) とする. ここで, γ : (Σε×Σε\{(ε, ε)} 7→ R+を 2 つのラベル間 のコスト関数とするとき, 編集操作 (l1, l2) のコストを γ(l1, l2) と表す. 特に断らない限り, コスト γ はメトリッ クとする. すなわち, γ(l1, l2)≥ 0, γ(l1, l2) = 0⇔ l1= l2, γ(l1, l2) = γ(l2, l1), γ(l1, l3) ≤ γ(l1, l2) + γ(l2, l3) が成り立つ.

(3)

定義 3 (編集距離 [5]) 木 T1から T2 への編集操作列 E = e1, e2, ..., enのコストを γ(E) =n i=1γ(ei) とす るとき, 木 T1と T2との編集距離 τTai(T1, T2) を以下の ように定義する. τTai(T1, T2) = min { γ(E) E は T1から T2への 編集操作列 } . 定義 4 (Tai マッピング [5]) T1と T2を木とする. M ⊆ V (T1)×V (T1) かつ任意の (v1, w1), (v2, w2)∈ M が以下の条件を満たすとき, (M, T1, T2) を Tai マッピン グ ( 以後, 単にマッピング ) といい , M ∈ MTai(T1, T2) と表す. 1) v1= v2かつ w1= w2(一対一対応). 2) v1≤ v2かつ w1≤ w2(先祖子孫関係の保存). 以後, M ∈ MTai(T1, T2) によって混同することがない とき, (M, T1, T2) を単に M とする. M を T1から T2へのマッピングとする. また, M に は含まれていない T1と T2のノードの組みを IM, JM とする. つまり, IM ={v ∈ T1 | (v, w) /∈ M}, JM = {w ∈ T2| (v, w) /∈ M} である. このとき, M のコスト γ(M ) を以下のように定義する. γ(M ) =(v,w)∈M γ(v, w) +v∈IM γ(v, ε) +w∈JM γ(ε, w). IM = JM = ∅ かつ γ(M) = 0 であるマッピング M ∈ MTai(T1, T2) が存在するとき, T1と T2は同型で あるという. 定理 1 (Tai [5]) 木 T1と T2に対して以下が成り立つ.

τTai(T1, T2) = min{γ(M) | M ∈ MTai(T1, T2)}.

しかし, 残念ながら τTai(T1, T2) の計算問題に対して以 下の定理が知られている. 定理 2 ([1, 3, 6]) T1と T2を木とする. このとき, τTai(T1, T2) を計算する問題は MAX SNP 困難である. これは, 2 つの木の最大次数が 2 のとき, もしくは, 最 大高さが 3 のときも成り立つ.

3

キャタピラの編集距離計算

キャタピラ C に出現するすべての森は, 根から bb(C) に含まれるある内部ノードまでのパスの削除, もしくは bb(C) の完全部分木に含まれている. したがって, キャ タピラ C は, li(1≤ i ≤ k) を葉, C を葉のないキャタ ピラとしたときに,{C}, {l1, ..., lk}, {l1, ..., lk, C} のい v C[v℄ B(v) v C[v℄ L(v) v C[v℄ L(v) B(v) 図 2: キャタピラ C[v] の表現. ずれかの形となる. L ={l1, ..., lk} とするとき, Prolog のリスト表記を用いて, 上記の森をそれぞれ⟨∅ | C⟩, ⟨L | ∅⟩, ⟨L | C⟩ と表す. 特に, 空の森 ⟨∅ | ∅⟩ を単に Φ と表す. C[v] を, v を根とするキャタピラとする. ここで, L(v) を v の子の葉の集合 (空集合も含む) とし, B(v) を v の 子の高々1 つのキャタピラとする. このとき, C[v] は図 2 のうちの 1 つの形となる. さらに, C[v] から v を削除 することによって,⟨∅ | B(v)⟩, ⟨L(v) | ∅⟩, ⟨L(v) | B(v)⟩ のうちの 1 つの森を得ることができる. 図 3 は, C1[v] と C2[w] との編集距離 τTai(C1[v], C2[w]) を δTai(⟨∅|C1[v]⟩, ⟨∅|C2[w]⟩) として計算する再帰式で ある. (A) δTai(⟨L1|C1⟩, Φ) =v∈L1 γ(v, ε) +v∈C1 γ(v, ε). δTai(Φ,⟨L2|C2⟩) =w∈L2 γ(ε, w) +w∈C2 γ(ε, w). (B) δTai(⟨L1|∅⟩, ⟨L2|∅⟩) = τTai(r(L1), r(L2)). (C) δTai(⟨L1|∅⟩, ⟨L2|C2[w]⟩) = min      γ(ε, w) Tai(⟨L1|∅⟩, ⟨L2∪ L2(w)|B2(w)⟩), (1) min v∈L1 {γ(v, w) + δTai(⟨L1\ {v}|∅⟩, ⟨L2|∅⟩)} Tai(Φ,⟨L2(w)|B2(w)⟩) (2)     . (D) δTai(⟨L1|C1[v]⟩, ⟨L2|∅⟩) = min      γ(v, ε) Tai(⟨L1∪ L1(v)|B1(v)⟩, ⟨L2|∅⟩), (3) min w∈L2 {γ(v, w) + δTai(⟨L1|∅⟩, ⟨L2\ {w}|∅⟩)} Tai(⟨L1(v)|B1(v)⟩, Φ) (4)     . (E) δTai(⟨L1|C1[v]⟩, ⟨L2|C2[w]⟩) = min            γ(v, w) + δTai(⟨L1|∅⟩, ⟨L2|∅⟩) Tai(⟨L1(v)|B1(v)⟩, ⟨L2(w)|B2(w)⟩), (5) γ(v, ε) Tai(⟨L1∪ L1(v)|B1(v)⟩, ⟨L2|C2[w]⟩), (6) γ(ε, w) Tai(⟨L1|C1[v]⟩, ⟨L2∪ L2(w)|B2(w)⟩) (7)            . 図 3: C1[v] と C2[w] の編集距離 τTai(C1[v], C2[w]) を δTai(⟨∅|C1[v]⟩, ⟨∅|C2[w]⟩) として計算する再帰式. 定理 3 図 3 の再帰式は, C1[v] と C2[w] との編集距離 τTai(C1[v], C2[w]) を δTai(⟨∅|C1[v]⟩, ⟨∅|C2[w]⟩) として 正しく計算する. 証明 少なくとも 1 つの森が空のとき, 再帰式 (A) が 編集距離を計算することは明らかである.

(4)

L 1 L 2 w L2(w) B 2 (w) ⟨L1| ∅⟩ ⟨L2| C2[w]⟩ (ε, w)∈ M L1 L2 L 2 (w) B 2 (w) (v, w)∈ M v L1 L 2 w C2[w℄ L2(w) B2(w) 図 4: ⟨L1| ∅⟩, ⟨L2| C2[w]⟩ と (ε, w) ∈ M と (v, w) ∈ M. 再帰式 (B) は, L1 と L2 を子としてもつ r を根と する 2 つの木 r(L1) と r(L2) の編集距離を計算する. τTai(r(L1), r(L2)) は以下のように計算する. r(L1) と r(L2) の最小コストマッピング M は, r と r を, l(v) = l(w) となる v ∈ L1と w ∈ L2を可能な限り一対一で コスト 0 で対応づける. さらに, L1(L2) に残るノード を L1\ L2 (L2\ L1) とみなすと, M は最小コストで v∈ L1\ L2と w∈ L2\ L1を可能な限り一対一で対応 づけ, 残りのノードを ε と対応づける. 再帰式 (C) において, M を⟨L1 | ∅⟩ と ⟨L2 | C2[w]⟩ 間の最小コストマッピングとする. w に焦点を当てる と, 図 4 のように, ある v∈ L1において (ε, w) か (v, w) のどちらかを M は含んでいる. (ε, w) ∈ M のとき, M は ⟨L1 | ∅⟩ のノードから ⟨L2∪ L2(w)| B2(w)⟩ のノードへマッピングし, これは δTai(⟨L1|∅⟩, ⟨L2∪ L2(w)|B2(w)⟩) にて計算される. ある v ∈ L1 において (v, w) ∈ M のとき, M は ⟨L1\ {v} | ∅⟩ のノードから ⟨L1 | ∅ のノードへマッ ピングし, これは δTai(⟨L1\ {v} | ∅⟩, ⟨L2| ∅⟩) にて計 算される. M は最小コストなので, ある v ∈ L1 の γ(v, ε) + δTai(⟨L1\ {v}|∅⟩, ⟨L2|∅⟩) の値を最小化する 必要がある. さらに, ある v∈ L1において M が (v, w) を含むと, M は w の子孫から切り離される. つまり, ⟨L2(w) | B2(w)⟩ にはノードが含まれていない. これ は, δTai(Φ,⟨L2(w)|B2(w)⟩) において計算される. した がって, 式 (2) は M のコストを計算している. 再帰式 (D) についても, (C) と同様に証明することが できる. 再帰式 (E) において, M を⟨L1 | C1[v]⟩ と ⟨L2 | C2[w]⟩ との最小コストのマッピングとする. v と w に焦点を当てると, 図 5 のように M は (v, w), (v, ε), (ε, w) のいずれかのペアを含んでいる. (v, w) ∈ M のとき, M は ⟨L1 | ∅⟩ から ⟨L1(v) | B1(v)⟩ のノードへマッピングできず, ⟨L2 | ∅⟩ から ⟨L2(w)| B2(w)⟩ のノードへマッピングもできない. こ のとき, M は⟨L1 | ∅⟩ のノードを ⟨L2 | ∅⟩ のノードへ マッピングし, これは δTai(⟨L1|∅⟩, ⟨L2|∅⟩) によって計 算される. これにより式 (5) は, M のコストを計算し ている. (v, ε)∈ M のとき, M は ⟨L1∪ L1(v)| B1(v)⟩ のノー ドを⟨L2(w)| C2[w]⟩ のノードへマッピングする. これ は, δTai(⟨L1∪ L1(v)| B1(v)⟩, ⟨L2| C2[w]⟩) によって計 算される. これにより式 (6) は, M のコストを計算し ている. (ε, w) ∈ M のとき, M は ⟨L1 | C1[v]⟩ のノードを ⟨L2∪ L2(w)| B2(w)⟩ のノードへマッピングする. こ れは, δTai(⟨L1|C1[v]⟩, ⟨L2∪ L2(w)|B2(w)⟩) によって 計算される. これにより式 (7) は, M のコストを計算 している. 2 例 1 2 つのキャタピラ C1と C2について考える. 図 3 の再帰式により, C1と C2との編集距離 τTAI(C1, C2) は以下ように 3 となる. ここでは, キャタピラを言語的 に, C1= a(b, b, b), C2= a(b, a(b, (b(a, a)))) と表す.

(5)

L 1 L 2 w L2(w) B 2 (w) ⟨L1| ∅⟩ ⟨L2| C2[w]⟩ (ε, w)∈ M L1 L2 L 2 (w) B 2 (w) (v, w)∈ M v L1 L 2 w C2[w℄ L2(w) B2(w) 図 5: ⟨L1| ∅⟩, ⟨L2| C2[w]⟩ と (ε, w) ∈ M と (v, w) ∈ M. τTai(C1, C2)

= δTai(⟨∅|a(b, b, b)⟩, ⟨∅|a(b, a(b, b(a, a)))⟩) = γ(a, a)

| {z }

=0

Tai(⟨{b, b, b}|∅⟩, ⟨{b}|a(b, b(a, a))⟩) = γ(ε, a)

| {z }

=1

Tai(⟨{b, b, b}|∅⟩, ⟨{b, b}|b(a, a)⟩) = 1 + γ(b, b)

| {z }

=0

Tai(⟨{b, b}|∅⟩, ⟨{b, b}|∅⟩) Tai(Φ,⟨{a, a}|∅}⟩)

= 1 + γ(b, b) | {z } =0 + γ(b, b) | {z } =0 + γ(ε, a) | {z } =1 + γ(ε, a) | {z } =1 = 3. このとき, γ(l1, l2) において l1̸= ε かつ l2 ̸= ε であ る (l1, l2)∈ C1× C2の組を集めることによって, C1と C2との最適マッピング M を得ることができる. C1[v] と C2[w] をキャタピラとする. このとき, bb(C1[v]) を vn = v かつ par(vi) = vi+1 (1≤ i ≤ n − 1) である v1, ..., vnの列, bb(C2[w]) を wm = w かつ par(wj) = wj+1 (1 ≤ j ≤ m − 1) である w1, ..., wmの列として 表す. この場合, bb(C1[v]) = [v1, ..., vn], bb(C2[w]) = [w1, ..., wm] と表す. さらに, 1≤ i ≤ n における L1(vi) と B1(vi), 1≤ j ≤ m における L2(wj) と B2(wj) にも 同じ表記を用いる. アルゴリズム 1 は, 図 3 の再帰式を基にキャタピラ C1と C2との編集距離 τTai(C1, C2) の計算をするアル ゴリズムである. ここでは, 再帰式 (A),(B),(C),(D),(E) は, それぞれ 6 行目と 12 行目, 3 行目, 9 行目, 15 行目, 19 行目と対応している. 定理 4 C1と C2がキャタピラのとき, C1と C2の編集 距離 τTai(C1, C2) は O(σh2) 時間で計算可能である. こ のとき, σ =|Σ|, h = max{h(C1), h(C2)} である. 証明 bb(C1) = [v1, ..., vn], bb(C2) = [w1, ..., wm] とす る. このとき, h(C1) = n + 1 かつ h(C2) = m + 1 は明 らかであり, m≤ h − 1, n ≤ h − 1 である. アルゴリズム 1 の τTAI(C1, C2) は一度に (vi, wj) bb(C1)× bb(C2) のすべての組を呼び出す. このとき, Σ 中のラベルと L1と L2におけるその頻度の組である Σ のハッシュテーブルを用いることで, δTai(⟨L1(vi−1)| C1[vi]⟩, ⟨L2(wj−1)| C2[wj]⟩) を O(σ) 時間で計算する ことができる. 最後に, アルゴリズム 1 は L1(v1)∪ ... ∪ L1(vn) と L2(w1)∪ ... ∪ L2(wm) における Σ のハッシュ テーブルを比較すればよい. したがって, アルゴリズム 1 の全体の計算時間は以 下のようになる. ni=1 mj−1

O(σ) = O(σ)mn≤ O(σ)(h − 1)2= O(σh2).

2

また, 定理 5 は, キャタピラという構造的制限が, 無 順序木の編集距離の多項式時間計算可能の限界を与え ていることも主張している. すべての葉が取り除かれ

(6)

た後にキャタピラになる木を一般化キャタピラという. このとき, [1, 3] の結果として以下の定理が成り立つ. 定理 5 ([1, 3]) 一般化キャタピラ間の編集距離の計算 問題は, たとえ最大高さが 3 であっても MAX SNP 困 難である. 証明 文献 [1] の定理 4.3 または, 文献 [3] の定理 1 よ り成り立つ. 2 アルゴリズム 1: τTai(C1, C2) procedure τtai(C1, C2) /* C1, C2: キャタピラ*/ τtai(C1, C2)← δTai(⟨∅|C1⟩, ⟨∅|C2⟩); 1 procedure δTai(⟨L1|C1⟩, ⟨L2|C2⟩) /* L1, L2 : 葉集合, C1, C2: キャタピラ*/ if C1=∅ and C2 =∅ then 2 δTai(⟨L1|∅⟩, ⟨L2|∅⟩) ←再帰式(B)を計算; 3

else if C1=∅ and C2̸= ∅ then

4 /* bb(C2) = [w1, . . . , wm], wm= r(C2) */ if L1=∅ then 5 δTai(Φ,⟨L2|C2⟩) ←再帰式(A)を計算; 6 /*⟨L1|C1⟩ = Φ */ else 7 for j = 1 to m do 8 δTai(⟨L1|∅⟩, ⟨L2|C2[wj]⟩) ← wwj 9 として再帰式(C)を計算;

else if C1̸= ∅ and C2=∅ then

10 /* bb(C1) = [v1, . . . , vn], vn= r(C1) */ if L2=∅ then 11 δTai(⟨L1|C1⟩, Φ) ←再帰式(A)を計算; 12 /*⟨L2|C2⟩ = Φ */ else 13 for i = 1 to n do 14 δTai(⟨L1|C1[vi]⟩, ⟨L2|∅⟩) ← vvi15 して再帰式(D)を計算; else 16 /* bb(C1) = [v1, . . . , vn], bb(C2) = [w1, . . . , wm], vn= r(C1), wm= r(C2) */ for i = 1 to n do 17 for j = 1 to m do 18 δTai(⟨L1|C1[vi]⟩, ⟨L2|C2[wj]⟩) ← v, w 19 をそれぞれvi, wjとして再帰式(E)を 計算; アルゴリズム 1

4

まとめと今後の課題

本論文では, 無順序木の編集距離を多項式時間で計算 する制限を加えたキャタピラの編集距離を O(σh2) 時 間で計算するアルゴリズムを構築した. この論文は, 理論のみであるので, まずアルゴリズム 1 を実装し, 実データに対して実験を行うことが必要で ある. その際, キャタピラの編集距離を完全部分木ヒス トグラム距離 [1] やパスヒストグラム距離 [4] と比較し, 考察をすることが課題として挙げられる. また, キャタ ピラと一般化キャタピラもしくは一般の木の編集距離 の計算問題が多項式時間で可能であるか否かについて 議論することも今後の課題である. 特に, 表 1 にある

D ∈ {Auction, University, Protein, Nasa} である D−

と関連して, キャタピラの森編集距離の計算問題が多 項式時間で計算可能か否かの調査を行うことも課題で ある.

参考文献

[1] T. Akustu, D. Fukagawa, M. M. Halldorsson, A. Takasu, K. Tanaka: Approximation and

parame-terized algorithms for common subtrees and edit distance between unordered trees , Theoret.

Com-put. Sci. 470, 10-22 (2013).

[2] J. A. Gallian: A dynamic survey of graph

label-ing, Electorn. J. Combin. 14, DS6 (2007).

[3] K. Hirata, Y. Yamamoto, T. Kuboyama:

Im-proved MAX SNP-hard results for finding an edit distance between unordered trees , Proc. CPM’11,

LNCS 6661, 402-415 (2011).

[4] T. Kawaguchi, T. Yoshino, K. Hirata: Path

his-togram distance for rooted labeled caterpillars,

Proc. ACIIDS’18. LNAI 10751, 276-286 (2018).

[5] K. -C. Tai: The tree-to-tree correction problem , J. ACM 26, 422-433 (1979).

[6] K. Zhang, T. Jiang: Some Max SNP-hard results

concerning unordered labeled trees , Inform.

参照

関連したドキュメント

Yamamoto: “Numerical verification of solutions for nonlinear elliptic problems using L^{\infty} residual method Journal of Mathematical Analysis and Applications, vol.

[r]

・座長のマイページから聴講者受付用の QR コードが取得できます。当日、対面の受付時に QR

奥付の記載が西暦の場合にも、一貫性を考えて、 []付きで元号を付した。また、奥付等の数

奥付の記載が西暦の場合にも、一貫性を考えて、 []付きで元号を付した。また、奥付等の数

水平方向設計震度 機器重量 重力加速度 据付面から重心までの距離 転倒支点から機器重心までの距離 (X軸側)

We have several criteria in Japan to consider the safe distance between oneself and the vehicle ahead, as indicated in Table 1. The fore-mentioned suitable and

堰・遮へい・屋 根付きエリア 整備中の写真 廃棄物規制検討会