区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム

Slides:



Advertisements
Similar presentations
組合せ最適化輪講 2.3 連結性 川原 純. 2.3 連結性 内容 – グラフ上の節点をすべてたどるアルゴリズム 計算機上でのグラフの表現 – 強連結成分を求めるアルゴリズム トポロジカル順序を求める方法も – k- 連結、 k- 辺連結について – 2- 連結グラフの耳分解について.
Advertisements

Voronoi Game on Graph and its Complexity 寺本 幸生 上原 隆平 (JAIST)
A Simple Constant Time Enumeration Algorithm for Free Trees 中野 眞一 宇野 毅明 群馬大学 情報学研究所 2003 年 9 月 19 日 アルゴリズム研究会.
データ構造とプログラミング技 法 (第3回) ー木構造ー. 木構造 (1) 根( root )と呼ばれる節 R が、 1 つだけ含まれ る。 R … TmTm T1T1 木構造: 1 個以上の節の有限集合 T であり、 次の二つの条件を満足するもの (2) 根以外の節は、 m (≧ 0 )個の互いに素な部.
4.3 マージソート.
正規表現からのDFA直接構成.
Bipartite Permutation Graphの ランダム生成と列挙
データ構造と アルゴリズム 第十二回 知能情報学部 知能情報学科 新田直也.
ヒープソートの演習 第13回.
ラベル付き区間グラフを列挙するBDDとその応用
アルゴリズムとデータ構造 第8回 ソート(3).
情報生命科学特別講義III (8)木構造の比較: 順序木
    有限幾何学        第8回.
On the Enumeration of Colored Trees
Problem G : Entangled Tree
An Algorithm for Enumerating Maximal Matchings of a Graph
Permutationグラフと Distance-Hereditaryグラフの 再構築アルゴリズム
集中講義(九州大学数理学研究院) バイオ構造データに対する数理モデルと アルゴリズム(3) + 数理談話会 木構造および画像データの文法圧縮
情報工学概論 (アルゴリズムとデータ構造)
C11: 大量データ処理のための領域効率の良いアルゴリズム
データ構造とアルゴリズム 分割統治 ~ マージソート~.
宇野 毅明 国立情報学研究所 2002年3月 東北大大学院 情報科学研究科ワークショップ
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
データ構造とアルゴリズム 第6回の2 木 ~ データ構造(3)~.
第11講: 平成18年12月 8日 (金) 4限 E352教室 グラフ (1).
Proper Interval Graphsの ランダム生成と列挙
ヒープソートの復習.
階層的境界ボリュームを用いた 陰関数曲面の高速なレイトレーシング法
二分探索木によるサーチ.
2009/10/16 いろいろなデータ構造 第3講: 平成21年10月16日 (金) 4限 E252教室 コンピュータアルゴリズム.
“Purely Functional Data Structures” セミナー
決定木とランダムフォレスト 和田 俊和.
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
動的依存グラフの3-gramを用いた 実行トレースの比較手法
グラフアルゴリズムの可視化 数理科学コース 福永研究室 高橋 優子 2018/12/29.
アルゴリズムとデータ構造1 2005年7月26日
第14章 モデルの結合 修士2年 山川佳洋.
データ構造とアルゴリズム (第3回) ー木構造ー.
第9回 優先度つき待ち行列,ヒープ,二分探索木
データ構造と アルゴリズム 第七回 知能情報学部 新田直也.
データ構造と アルゴリズム 第六回 知能情報学部 新田直也.
決定木 Decision Tree DT 明治大学 理工学部 応用化学科 データ化学工学研究室 金子 弘昌.
A Simple Algorithm for Generating Unordered Rooted Trees
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
階層的境界ボリュームを用いた 陰関数曲面の高速なレイトレーシング法
プログラミング 4 木構造とヒープ.
ベイジアンネットワーク概説 Loopy Belief Propagation 茨城大学工学部 佐々木稔
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
Peer-to-Peerシステムにおける動的な木構造の生成による検索の高速化
JAVAバイトコードにおける データ依存解析手法の提案と実装
15.cons と種々のデータ構造.
アルゴリズムとデータ構造 第3章 ヒープ 5月31日分
第9回 優先度つき待ち行列,ヒープ,二分探索木
5.3, 5.4 D2 岡本 和也.
離散数学 06. グラフ 序論 五島.
アルゴリズムとデータ構造 2011年6月16日
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
ヒープソートの復習 第12回.
情報工学概論 (アルゴリズムとデータ構造)
アルゴリズムとデータ構造 第2章 リスト構造 5月24日分
平面走査法を使った 一般線分の 交点列挙アルゴリズム
情報生命科学特別講義III (14) グラフの比較と列挙
4.プッシュダウンオートマトンと 文脈自由文法の等価性
情報処理Ⅱ 第7回 2004年11月16日(火).
ヒープソート.
ヒープソート.
アルゴリズムとデータ構造 2013年6月20日
情報生命科学特別講義III (3)たたみ込みとハッシュに 基づくマッチング
グラフの列挙 中野 眞一    (群馬大学) 2019/9/14 列挙学校.
Presentation transcript:

区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム 北陸先端科学技術大学院大学(JAIST) 情報科学研究科 斎藤 寿樹  清見 礼   上原 隆平

発表内容 区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム 区間表現 MPQ-tree 1 2 2, 4 4 3 2 2, 4 4 3 5 6 7 8 12 9 10 11 1 2 9 12 3 4 10 11 5 6 7 8 区間表現 MPQ-tree

区間グラフとは 1950年代後半に数学者の Hajös と,分子生物学者の Benzer とが独立に考えたグラフクラス 区間表現をもつグラフ それぞれの区間は各頂点に対応 2つの区間が重なっている ⇔   対応する2つの頂点間に辺が存在する 1 2 3 4 5 6 1 2 3 4 I3 I1 I2 I4

区間グラフの応用 区間をDNAの断片や時間と考える 数十万~数百万の区間を処理 高速なアルゴリズムが必要 バイオインフォマティクス スケジューリング問題など 数十万~数百万の区間を処理 高速なアルゴリズムが必要 x1: ACGGTTTA x2: ATCGGAACG x3: AACGGTTTAC x4: TTTACGTGGT 断片の文字列 x1 x2 x3 x4 区間グラフ ATCGGGAACGGTTTACGTGGT 区間表現

PQ-tree 1976年にBoothらによって提案 区間グラフ用の補助データ構造 木構造(順序木) 内部ノードにはPまたはQのラベル 葉には極大クリークを割り当てる O(n)領域 区間グラフの認識(O(n+m)時間) ○:Pノード □:Qノード C1 C2 C3 C4 C7 C5 C6 PQ-tree

MPQ-tree(Modified PQ-tree) 1989年にKorteらによって提案 区間グラフを表現するデータ構造 PQ-treeの改良 各ノードに頂点集合を割り当てる O(n)領域 区間グラフの認識 区間グラフの同型性判定(O(n+m)時間) ○:Pノード □:Qノード 1 2 2, 4 4 3 5 6 7 8 12 9 10 11 MPQ-tree

MPQ-tree 葉およびPノードとQノードと呼ばれる節点を持つ順序木 Qノードはセクションと呼ばれるまとまりに分割 根から葉までのパス上に存在する頂点集合は区間グラフ上で極大クリーク Qノード 1 2 3 4 5 6 7 8 9 10 11 12 Pノード 1 2 2, 4 4 9 12 3 5 6 10 11 :P-node :Q-node 7 8 葉 MPQ-tree 区間グラフ

MPQ-tree 葉およびPノードとQノードと呼ばれる節点を持つ順序木 Qノードはセクションと呼ばれるまとまりに分割 根から葉までのパス上に存在する頂点集合は区間グラフ上で極大クリーク Qノード 1 2 3 4 5 6 7 8 9 10 11 12 Pノード 1 2 2, 4 4 9 12 3 5 6 10 11 :P-node :Q-node 7 8 葉 MPQ-tree 区間グラフ

MPQ-tree 区間表現と密接な関係がある MPQ-treeの親は区間表現において子を内包 1 10 2 3 4 5 6 7 8 9 11 12 1 2 2, 4 4 9 12 3 5 6 10 11 7 8

MPQ-tree 区間表現と密接な関係がある MPQ-treeの親は区間表現において子を内包 1 10 2 3 4 5 6 7 8 9 11 12 1 2 2, 4 4 9 12 3 5 6 10 11 7 8

MPQ-tree 対応する区間グラフが変化しない操作 Pノードの子の順序を任意に入れ替える Qノードのセクションの順序を逆順にする 1 2 2, 4 4 3 5 6 7 8 12 9 10 11 1 10 2 3 4 5 6 7 8 9 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 2, 4 4 3 5 6 7 8 12 9 10 11 1 10 9 11 12 2 3 4 5 6 7 8

今回の問題について 効率がよく単純なアルゴリズムは重要 入力:区間表現 出力: MPQ-tree 応用上の多くの問題の入力は区間表現 入力される区間の数は大量 構成する既存のアルゴリズムは複雑 グラフ表現経由 直接(PQ-tree用) 効率がよく単純なアルゴリズムは重要

既存の手法(グラフ表現経由) グラフ表現から構成 区間表現をグラフ表現に変換 グラフ表現からMPQ-treeを構成 O(n+m)時間かかる 場合分けが多く実装が複雑 1 2 区間表現 グラフ表現 MPQ-tree O(n)領域 O(n+m)時間 O(n+m)領域 O(n)領域 O(n+m)時間 1 2  2, 4   4 3 5 6 7 8 12 9 10 11 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12

既存の手法(区間表現からPQ-tree) O(n log n)時間 端点がソートされているときO(n)時間 decomposition tree という概念を使用するため複雑 1 2 3 4 5 6 7 8 9 10 11 12 C7 O(n log n)時間 C1 C2 C5 C6 区間表現 C3 C4 O(n)領域 PQ-tree O(n)領域

提案手法 区間表現から直接MPQ-treeを構成 O(n log n)時間 端点がソートされているときO(n)時間 単純なデータ構造(スタックなど)を用いたアルゴリズム 1 2 3 4 5 6 7 8 9 10 11 12 1 2  2, 4   4 3 5 6 7 8 12 9 10 11 O(n log n)時間 区間表現 O(n)領域 MPQ-tree O(n)領域

提案手法 区間表現 コンパクトな区間表現 区間をP/Qノードおよび葉に分類 MPQ-tree 冗長性がある O(n)時間 冗長性がない 12 3 2 1 4 5 6 7 8 10 9 11 区間表現 O(n)時間 コンパクトな区間表現 1 2 3 4 5 6 7 8 9 10 11 12 区間をP/Qノードおよび葉に分類 冗長性がない 番号は規則を持つ MPQ-tree

提案手法 区間表現 コンパクトな区間表現 区間をP/Qノードおよび葉に分類 MPQ-tree O(n)時間 O(n)時間 1 3 5 6 7 2 3 4 5 6 7 8 9 10 11 12 区間表現 O(n)時間 コンパクトな区間表現 O(n)時間 1 3 5 6 7 8 12 9 10 11 区間をP/Qノードおよび葉に分類 2, 4 2 2, 4 4 O(n)時間 MPQ-tree

区間をP/Qノードおよび葉に分類 葉に分類される区間 Qノードに分類される区間 Pノードに分類される区間 区間の長さが0 他の異なる区間と互いに一部分だけ交差 Pノードに分類される区間 その他の区間

区間をP/Qノードおよび葉に分類 左から端点をスイープ 左端点iLを読み込んだとき PUSH(S,iL) 右端点iRを読み込んだとき スタックの先頭とiを比較 整合性が取れていなければQノード 例 1 一致しない 2 3L 1R 整合性が取れていないのでQノード 3 2L 1L スタック

区間をP/Qノードおよび葉に分類 左から端点をスイープ 左端点iLを読み込んだとき PUSH(S,iL) 右端点iRを読み込んだとき スタックの先頭とiを比較 整合性が取れていなければQノード 例 1 2 3L 2R 3 2L 1L スタック

区間をP/Qノードおよび葉に分類 右の端点iRを読み込んだとき Qノードに分類されている区間の右端点がすべて読み込まれたとき 例 1 2 3L 3R 3 2L 1 , 2 , 3 1L Qノードに確定 スタック

区間をP/Qノードおよび葉に分類 右の端点iRを読み込んだとき スタックの先頭とiが異なるQノード Qノードをマージ 例 1 5L 3R 2 4L 3 3L 1R 2R 4 2L 5 1L スタック

区間をP/Qノードおよび葉に分類 同じQノードに含まれる区間はスタック上で連続に存在 O(n)時間 iR O(1)時間 O(1)時間 iL アルゴリズムの実行時間 O(n)時間 …

結論 今後の課題 区間表現からMPQ-treeを構成するアルゴリズム 区間グラフの列挙(ランダム生成) 高速であることを実験的に示す O(n log n)時間で実行できる ソートされていればO(n)時間 単純なアルゴリズム 今後の課題 区間グラフの列挙(ランダム生成) 高速であることを実験的に示す