グラフの列挙 中野 眞一    (群馬大学) 2019/9/14 列挙学校.

Slides:



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

平面三角分割グラフを列挙す るアルゴリズムの改良 中野 眞一 ( 群馬大学 ) 宇野 毅明 ( 情報学研究 所 ) 2002 年 6 月 24 日 コンピューテーション研究会.
©2008 Ikuo Tahara探索 状態空間と探索木 基本的な探索アルゴリズム 横形探索と縦形探索 評価関数を利用した探索アルゴリズム 分岐限定法 山登り法 最良優先探索 A ( A* )アルゴリズム.
2015 年度 有限幾何学 期末試験 次の各問に答えよ.( (1), (2), (3), (4), (5), (7), (8), (10) は答えだけでよい) (1) 有向閉路が存在しない位数 4 のトーナメントを描け. (2) 内点の個数が 10 個の正則 2 分木の葉の個数を求めよ. (3) グラフ.
逐次ソート 2011/05/16. ソート(sort) 順序集合の要素a 1 … a n の上下関係を整 える 一般的には、整数の集合 N を考えればよ い ソートの計算量が問題となる どのような入力に対し、どのようなアル ゴリズムが最適か?
A Simple Constant Time Enumeration Algorithm for Free Trees 中野 眞一 宇野 毅明 群馬大学 情報学研究所 2003 年 9 月 19 日 アルゴリズム研究会.
区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
情報生命科学特別講義III (1) 文字列マッチング
セキュアネットワーク符号化構成法に関する研究
( ) ( ) 行 列 式 置 換 n文字の置換σ: n個の文字{1,2,・・・,n}から自分自身への1対1の写像 1 2 ・・・ n
Bipartite Permutation Graphの ランダム生成と列挙
極小集合被覆を列挙する 実用的高速アルゴリズム
Lexical Permutation Sorting Algorithm
ヒープソートの演習 第13回.
ラベル付き区間グラフを列挙するBDDとその応用
2 分探索木 Binary Search Tree 実行可能な操作 計算量 木の高さは,最悪 O(n) n = |A| : 要素の個数
2分探索.
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
情報生命科学特別講義III (8)木構造の比較: 順序木
算法数理工学 第9回 定兼 邦彦.
第11回 整列 ~ バケットソート,基数ソート,ヒープソート~
On the Enumeration of Colored Trees
Problem G : Entangled Tree
2章 データ構造.
5.チューリングマシンと計算.
5.チューリングマシンと計算.
An Algorithm for Enumerating Maximal Matchings of a Graph
集中講義(九州大学数理学研究院) バイオ構造データに対する数理モデルと アルゴリズム(3) + 数理談話会 木構造および画像データの文法圧縮
列挙問題 列挙問題の定義 アルゴリズムの速度 バックトラッキング 分割法 逆探索.
C11: 大量データ処理のための領域効率の良いアルゴリズム
宇野 毅明 国立情報学研究所 2002年3月 東北大大学院 情報科学研究科ワークショップ
データ構造とアルゴリズム 第6回の2 木 ~ データ構造(3)~.
第11講: 平成18年12月 8日 (金) 4限 E352教室 グラフ (1).
s a b f c e d 2016年度 有限幾何学 期末試験 問1:15点
集合、辞書とハッシュ法 第8回 集合と辞書 ~ データ構造(4)~.
アルゴリズムとデータ構造 第7回探索のためのデータ構造(1) 2015/11/18 アルゴリズムとデータ構造 2015.
2009/10/16 いろいろなデータ構造 第3講: 平成21年10月16日 (金) 4限 E252教室 コンピュータアルゴリズム.
k 個のミスマッチを許した点集合マッチング・アルゴリズム
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
シミュレーション学講義 第**回 スケジューリング問題とJSSP.
データ構造とアルゴリズム (第3回) ー木構造ー.
データ構造と アルゴリズム 第七回 知能情報学部 新田直也.
データ構造と アルゴリズム 第六回 知能情報学部 新田直也.
A Simple Algorithm for Generating Unordered Rooted Trees
離散数学 07. 木 五島.
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
Cプログラミング演習 第10回 二分探索木.
情報生命科学特別講義III (13) 固定パラメータアルゴリズムと 部分k木
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
九州大学大学院 情報学専攻特別講義 (6) 固定パラメータアルゴリズムと 部分k木
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
アルゴリズムとデータ構造 第3章 ヒープ 5月31日分
列挙問題 列挙問題の定義 アルゴリズムの速度 バックトラッキング 分割法 逆探索.
5.チューリングマシンと計算.
アルゴリズムとデータ構造 2011年6月16日
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
情報工学概論 (アルゴリズムとデータ構造)
2009/11/27 グラフ (1) 第9講: 平成21年11月27日 (金) 4限 E252教室 コンピュータアルゴリズム.
アルゴリズムとデータ構造 第2章 リスト構造 5月24日分
平面走査法を使った 一般線分の 交点列挙アルゴリズム
情報生命科学特別講義III (14) グラフの比較と列挙
4.プッシュダウンオートマトンと 文脈自由文法の等価性
2017年度 有限幾何学 期末試験 注意:ループと多重辺がないグラフのみを扱う. 問1 次の定理と,その証明の概略を読み,各問に答えよ.
ヒープソート.
生命情報学特論 (6) 固定パラメータアルゴリズムと 部分k木
アルゴリズムとデータ構造 2013年6月20日
情報生命科学特別講義III (3)たたみ込みとハッシュに 基づくマッチング
生物情報ソフトウェア特論 (10)固定パラメータアルゴリズムと 部分k木
7.木構造 7-1.データ構造としての木 7-2.2分探索木 7-3.高度な木.
グラフの帯域幅連続多重彩色 を求めるアルゴリズム (Bandwidth Consective Multicolorings of Graphs) 西関研究室 西川和秀.
Presentation transcript:

グラフの列挙 中野 眞一    (群馬大学) 2019/9/14 列挙学校

列挙アルゴリズム設計技法 ・(新種発見) いつ終わる? ・分割探索 タイプごとに ・辞書(Gray) 順番に ・逆探索 親戚関係で ・家系木 ・(新種発見) いつ終わる?  ・分割探索 タイプごとに           ・辞書(Gray) 順番に ・逆探索 親戚関係で ・家系木 ・etc. 2019/9/14 列挙学校

グラフのクラス ・木   ・平面グラフ           ・矩形描画 2019/9/14 列挙学校

木に関する用語 家系図とみなす 親、子、兄弟、先祖、子孫 根 点の高さ、深さ    根は深さ0    葉は高さ0 葉 2019/9/14 列挙学校

木 ・根つき木 or 自由木 ・順序木 or 順序なし木 ・子の個数 任意 or ちょうど2 or 高々2 or 少なくとも2 対応 長男 すぐ下の弟 2019/9/14 列挙学校

木の列挙(辞書法) ・根つき順序木 ・深さ優先横断(downとupを記録) DUDUDDUDUDUUDU m辺の木を2m文字に符号化 ・根つき順序木          ・深さ優先横断(downとupを記録) DUDUDDUDUDUUDU m辺の木を2m文字に符号化          2019/9/14 列挙学校

木の列挙(辞書法) ・5辺の順序木の辞書  に最初に掲載されている木は?          DDUDUDUU DDDUDUUU 2019/9/14 列挙学校

木の列挙(辞書法) ・5辺の順序木の辞書 に最初に掲載されている木は? DDDDDUUUUU ・2番目の木は? ・3番目の木は?  に最初に掲載されている木は?          DDDDDUUUUU ・2番目の木は? ・3番目の木は? ・次は?次は?          2019/9/14 列挙学校

木の列挙(辞書法) ・5辺の順序木の辞書 DDDDDUUUUU DDDDUDUUUU DDDDUUDUUU DDDDUUUDUU ・5辺の順序木の辞書         DDDDDUUUUU DDDDUDUUUU DDDDUUDUUU DDDDUUUDUU DDDDUUUUDU DDDDUUUUUD だめ 2019/9/14 列挙学校

木の列挙(辞書法) ・5辺の順序木の辞書 DDDDDUUUUU DDDDUDUUUU DDDDUUDUUU DDDDUUUDUU ・5辺の順序木の辞書         DDDDDUUUUU DDDDUDUUUU DDDDUUDUUU DDDDUUUDUU DDDDUUUUDU DDDDUUUUUD だめ( ( ( ( ) ) ) ) ) ( U??? D D U D U U 2019/9/14 列挙学校

演習1 ・5辺の順序木の辞書を完成せよ ・m辺の順序木の辞書を出力する アルゴリズムを設計せよ  アルゴリズムを設計せよ ・m辺かつL葉の順序木の列挙アルゴ     リズムを設計せよ ・m辺かつ高さがhの順序木の列挙アルゴリズムを設計せよ         2019/9/14 列挙学校

演習2 ・5辺の順序なし木の辞書を完成せよ ・m辺の順序なし木の辞書を出力する アルゴリズムを設計せよ  アルゴリズムを設計せよ ・m辺かつL葉の順序なし木の列挙アルゴリズムを設計せよ ・m辺かつ高さがhの順序なし木の列挙アルゴリズムを設計せよ         2019/9/14 列挙学校

演習3 ・幅優先横断(子の個数を記録) 11110001110000 ・順序木の他の符号化法を設計せよ ・その符号に基づき順序木の辞書 ・その符号に基づき順序木の辞書   を出力するアルゴリズム  を設計せよ        ・幅優先横断(子の個数を記録) 11110001110000            2019/9/14 列挙学校

もっと学びたい方へ The Art of Computer Programming,                   The Art of Computer Programming, Fascicle 4: Generating All Trees -- History of Combinatorial Generation (Art of Computer Programming) Donald E. Knuth (2006/2/14) Addison-Wesley $19.99  ISBN-10: 0321335708   2019/9/14 列挙学校

木の列挙(家系木法) ・根つき順序木          2019/9/14 列挙学校

木の列挙(家系木法) ・高々m辺の  順序木の  集合には  木の構造  がある       ・深さk   k辺の木      2019/9/14 列挙学校

木の列挙(家系木法) 指定した 木の子を 再帰的に 列挙する       ・深さk   k辺の木      2019/9/14 列挙学校

順序木の列挙(家系木法) Shin-ichi Nakano "Efficient Generation of Plane Trees“ Information Processing Letters, Vol.84, no. 3, pp.167-172 (2002). 子のリスト 親 2019/9/14 列挙学校

順序なし木の列挙(家系木法) Left Heavy のみ列挙 Left Heavy ? Shin-ichi Nakano and Takeaki Uno, “Constant Time Generation of Trees with Specified Diameter”, Proc. of WG 2004 LNCS, 3353, pp.33-45 (2004). Left Heavy のみ列挙 Left Heavy ? 2019/9/14 列挙学校

演習4 ・Left Heavyを定式化せよ ・Left Heavyな順序木を列挙するアルゴリズムを設計せよ (順序なし木の列挙)  (順序なし木の列挙)        2019/9/14 列挙学校

(内部)極大平面グラフ ・内面がすべて三角 ・3Dワイヤモデル 外点 r個 内点 v個の グラフをすべて 列挙せよ 2019/9/14 外点 r個 内点 v個の グラフをすべて 列挙せよ 2019/9/14 列挙学校

極大平面グラフ  対角スイッチ 2019/9/14 列挙学校

極大平面グラフ 対角スイッチ d c b v a ・点vの回りに 4点a,b,c,dがある ・辺vb もしくは vc は対角スイッチ できる 極大平面グラフ  対角スイッチ ・点vの回りに  4点a,b,c,dがある ・辺vb もしくは vc は対角スイッチ できる ・Wagner定理[1936] 任意の2つの 極大平面グラフは 対角スイッチのみで互いに変換可能 d c b v a 2019/9/14 列挙学校

極大平面グラフ 対角スイッチ ・外面上の点vが4次以上のとき 対角スイッチでvの次数を減らす d d c c b b v v a a 極大平面グラフ  対角スイッチ ・外面上の点vが4次以上のとき  対角スイッチでvの次数を減らす      d d c c b b v v a a 2019/9/14 列挙学校

? 極大平面グラフ 対角スイッチ ・外面上の点vが4次以上のとき 対角スイッチでvの次数を減らす 3次 3次 3次 3次 3次 3次 3次 極大平面グラフ  対角スイッチ ・外面上の点vが4次以上のとき  対角スイッチでvの次数を減らす      3次 3次 3次 3次 ? 3次 3次 3次 ?次 ?次 2019/9/14 列挙学校

? 極大平面グラフ 対角スイッチ ・外面上の点vが4次以上のとき 対角スイッチでvの次数を減らす 3次 3次 3次 3次 3次 3次 a 極大平面グラフ  対角スイッチ ・外面上の点vが4次以上のとき  対角スイッチでvの次数を減らす      3次 3次 3次 3次 ? 3次 3次 a 3次 ?次 ?次 2019/9/14 列挙学校

極大平面グラフ  対角スイッチ ・外面上の点vが4次以上のとき  対角スイッチでvの次数を減らす      a 2019/9/14 列挙学校

極大平面グラフ  対角スイッチ 最後の処理      2019/9/14 列挙学校

極大平面グラフ  対角スイッチ 任意の外点r個 内点v個のグラフ      根     2019/9/14 列挙学校

極大平面グラフの列挙 カノニカル順序 対角スイッチ+Wagner定理 Avis 96 O(n2) 時間/each カノニカル順序      Avis 96 O(n2) 時間/each Li & Nakano 01 O(1) 時間/each 2019/9/14 列挙学校

極大平面グラフのカノニカル順序 7 7 6 6 6 6 4 4 4 4 4 4 5 5 5 3 3 3 1 2 1 2 1 2 4 家系木 4 3 3 1 2 1 2 2019/9/14 列挙学校

演習5 直径k 葉L個のキャタピラ (葉をすべて除くとパスになる木) を列挙するアルゴリズムを設計せよ 根なしに注意 (Kikuchi他 COCOON 03)       2019/9/14 列挙学校

フロアプラン ・すべての面が四角形 ・回転 同じ or 異なる ・4次点 あり or なし ・面積関係なし 左の2つの図は 90度 回転 ・すべての面が四角形 ・回転  同じ or 異なる ・4次点  あり or なし ・面積関係なし 左の2つの図は 矩形分割としては同じ フロアプランとしては異なる 上と同じ 4次点 2019/9/14 列挙学校

フロアプランの左上の面を順次除去 家系木       2019/9/14 列挙学校

フロアプランの左上の面を順次除去 親       子のリスト       2019/9/14 列挙学校

フロアプランの家系木 (S.Yoshii 2002 図) 2019/9/14 列挙学校

演習6 (Nakano ISAAC 01) 内面の個数がnのフロアプラン を列挙するアルゴリズムを設計せよ O(1)時間/each 2019/9/14 列挙学校

フロアプランの列挙(回転を同じとする場合) 家系木       90度回転で得られる4つフロアプランの内1つのみを出力       2019/9/14 列挙学校

演習7 内面の個数がnのフロアプラン を列挙するアルゴリズムを設計せよ ただし、90度回転で得られる 4つのフロアプランは同一とみなす O(n)時間/each (Nakano ISAAC 01)       2019/9/14 列挙学校

一様ランダム生成(順序木) 大量メモリ+前処理 なら簡単 一覧辞書+乱数でOK メモリ小かつ前処理なしで 一様ランダム生成したい。。。 大量メモリ+前処理 なら簡単      一覧辞書+乱数でOK メモリ小かつ前処理なしで 一様ランダム生成したい。。。 2019/9/14 列挙学校

一様ランダム生成(順序木) Dyckパス      2019/9/14 列挙学校

一様ランダム生成(順序木) サイクルシフト ・m辺の順序木はm+1個の Dとm個のUの文字列に対応する サイクルシフト      ・m辺の順序木はm+1個の Dとm個のUの文字列に対応する ・各文字列をサイクルシフトして得られる2m+1個の文字列のうち1個だけが順序木に対応する 2019/9/14 列挙学校

順序木 サイクルシフト 3文字シフト 順序木に対応 4文字シフト 1文字シフト 5文字シフト 2文字シフト 6,7,8文字シフト 順序木  サイクルシフト 3文字シフト 順序木に対応 4文字シフト 1文字シフト 5文字シフト 2文字シフト 6,7,8文字シフト 2019/9/14 列挙学校

順序木 サイクルシフト ・m+1個のDとm個のUの文字列を一様ランダム生成 ・サイクルシフトして得られる1個を選ぶ ・順序木として出力 順序木 サイクルシフト ・m+1個のDとm個のUの文字列を一様ランダム生成 ・サイクルシフトして得られる1個を選ぶ ・順序木として出力 選択 選択 ・1,2,…,2m+1の順列を一様ランダム生成 ・1,2,..m+1をDに, 他をUに 置き換え 選択 2019/9/14 列挙学校

演習8 m 辺 かつ L 葉の 順序木を一様ランダムに生成する アルゴリズムを設計せよ (理系への数学 2008年7月号掲載予定 中野) (理系への数学 2008年7月号掲載予定 中野) 2019/9/14 列挙学校

演習∞ 高速に列挙できる対象を列挙せよ 高速に一様ランダム生成できる対象を列挙せよ 2019/9/14 列挙学校