54
ZDD とフロンティア法 2017年版 ver 0.1 奈良先端科学技術大学院大学 川原

ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

ZDD とフロンティア法2017年版 ver 0.1

奈良先端科学技術大学院大学川原 純

Page 2: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

ZDD

• Zero-suppressed Binary Decision Diagram (ZDD) [Minato 1993]

• 集合族(集合の集合)をコンパクトに表現

{{e1, e2, e5}, {e1, e3, e4, e7}, {e1, e5, e8, e12}, {e3, e7, e9}, {e2, e6, e7, e8, e9, e10}, {e4}, {e1, e4, e6, e8}, {e1, e2, e5, e8}, {e1, e9, e10}, {e4, e5, e9}, {e1, e3, e4, e5, e9, e11}, {e6, e7}, {e1, e4, e5}, {e1, e5, e8, e10}, {e2, e5, e11}, {e5, e8, e9}, {e2, e3, e7, e8}, {e10, e11, e12},…}

特殊な形をしたグラフ

ZDD

ゼロサプレス型二分決定グラフ

集合族

Page 3: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

ZDD の読み方

{

}

e1 e2 e4e2e5e4e3

,

, e3

,e5

e5 e5e5,

{ } { } { }

{ } { } { }

ZDD

集合族

0 1

10

e1

e2

e3e4

e5

e3

e3

0 : 0 終端

1 : 1 終端それぞれ1個ずつ

ei : ノード e1 e5~ いずれかのラベル0-枝と1-枝を1個ずつもつ

(点線)(実線)ei が ej を指すなら

i < j

Page 4: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

ZDD の読み方

{

}

e1 e2 e4e2e5e4e3

,

, e3

,e5

e5 e5e5,

{ } { } { }

{ } { } { }

ZDD

集合族

0 1

10

e1

e2

e3e4

e5

e3

e3

ei : ノード e1 e5~ いずれかのラベル0-枝と1-枝を1個ずつもつ

(点線)(実線)

集合と根から までの経路が1対1対応

1

ei が ej を指すならi < j

Page 5: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

ZDD の読み方

{

}

e1 e2 e4e2e5e4e3

,

, e3

,e5

e5 e5e5,

{ } { } { }

{ } { } { }

ZDD

集合族

0 1

10

e1

e2

e3e4

e5

e3

e3

ei : ノード e1 e5~ いずれかのラベル0-枝と1-枝を1個ずつもつ

(点線)(実線)

集合と根から までの経路が1対1対応

1

ei が ej を指すならi < j

Page 6: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

ZDD の読み方

{

}

e1 e2 e4e2e5e4e3

,

, e3

,e5

e5 e5e5,

{ } { } { }

{ } { } { }

ZDD

集合族

0 1

10

e1

e2

e3e4

e5

e3

e3

ei : ノード e1 e5~ いずれかのラベル0-枝と1-枝を1個ずつもつ

(点線)(実線)

集合と根から までの経路が1対1対応

1

ei が ej を指すならi < j

Page 7: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

ZDD と二分木

• ZDD は2分木を圧縮したものとみなすことができる

e1e1 = 0e2

e2 = 0

e4

e2e2 = 1 e2 = 0 e2 = 1

e1 = 1

e5

e3 e3 e3 e30 1

1 1 他は 011

{}

e2 e4e2e5e4e3,, e3

,e5e5 e5e5,

{ } { },{ } { } { }

11

e5{ } e3 e5{ }ZDD

0 1

10

e1

e2

e3e4

e5

e3

e1{ }e3

Page 8: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

1枚でわかるZDDの特徴• 情報が(構造によっては)指数的に効率よく

圧縮されて保存されている• ZDD演算を用いることで、

蓄えられている情報の活用が可能• ある要素を含む(含まない)解の抽出

• 集合演算(∪, ∩, subtract, superset, subset)

• 要素の数の数え上げ• 一様ランダムサンプリング

• 重み最大・最小の要素の抽出

{e1, e2, e5},{e1, e4},{e1, e3, e4, e7},...

{e1, e4},{e1, e3, e4, e7},...

アルゴリズムe4 を含む集合を抽出

{e1, e2, e5}, {e1, e3, e4, e7}, {e1, e5, e8, e12}, {e3, e7, e9}, {e2, e6, e7, e8, e9, e10}, {e4}, {e1, e4, e6, e8}, {e1, e2, e5, e8}, {e1, e9, e10}, {e4, e5, e9}, {e1, e3, e4, e5, e9, e11}, {e6, e7}, {e10, e11, e12},…

3266598486981642 通り

和集合

{e1, e2, e5},{e1, e3, e4, e7},...

{e1, e4},{e1, e3, e4, e7} ,...

{e1, e2, e5},{e1, e4},{e1, e3, e4, e7},...

アルゴリズム

Page 9: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

グラフ最適化• ZDD をグラフ最適化に用いることもできる• 本スライドでは ZDD のグラフ最適化への適用事例を紹介

• パスの列挙と数え上げ• 配電網構成• パズルの求解・問題生成• 選挙区割と避難所割当

• すべて同じ枠組みで扱える

Page 10: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

パスの列挙

• グラフ G=(V, E) と 2頂点 s, t が与えられたときs から t への全てのパスを求める問題

3×3 グリッドグラフ

s

t

Page 11: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

パスの列挙

• グラフ G=(V, E) と 2頂点 s, t が与えられたときs から t への全てのパスを求める問題

s

t

Page 12: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

パス集合の集合族による表現• 入力グラフ G を固定する• パス集合を部分グラフとみなせる

• パス集合をZDDで表現できる

入力グラフ G a

bc

st

e1

e2e3

e4

e5

e6

{e1, e5}

{e2, e3, e5}

{e1, e3, e4, e6}

{e2, e4, e6}

e1

e2 e2

e3 e3

e4 e4 e4 e4

e5 e5e5

e6

10

e1e2

e3e4

e5e6

Page 13: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

パス列挙(ZDD構築)アルゴリズム [Knuth 2011]a

bc

s te1

e2e3

e4

e5

e6

最初に根ノードを作成

D. E. Knuth, The art of computer programming, Vol. 4A, Combinatorial algorithms, Addison-Wesley, 2011.

Page 14: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

パス列挙(ZDD構築)アルゴリズムa

bc

s te1

e2e3

e4

e5

e6

e1 を使わない e1 を使う

e1 を使わない/使う場合に対応したノードをそれぞれ作成

Page 15: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

パス列挙(ZDD構築)アルゴリズムa

bc

s te1

e2e3

e4

e5

e6

e1 を使わない e1 を使う

e2 を使わない

e1, e2 を両方とも使わないとs の次数が0になり、s-t パスが完成しない→ 枝刈りする(0-終端に接続)

Page 16: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

パス列挙(ZDD構築)アルゴリズムa

bc

s te1

e2e3

e4

e5

e6

e1 を使わない e1 を使う

e2 を使わない e2 を使う

Page 17: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

パス列挙(ZDD構築)アルゴリズムa

bc

s te1

e2e3

e4

e5

e6

e1 を使わない e1 を使う

e2 を使わない e2 を使う e2 を使わない e2 を使う

s の次数が2になり、s-t パスが完成しない→ 枝刈りする

Page 18: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

パス列挙(ZDD構築)アルゴリズムa

bc

s te1

e2e3

e4

e5

e6

Page 19: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

パス列挙(ZDD構築)アルゴリズムa

bc

s te1

e2e3

e4

e5

e6

Page 20: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

パス列挙(ZDD構築)アルゴリズムa

bc

s te1

e2e3

e4

e5

e6

0 0 1 0

s-t パスが完成すればしなければ 0

1

Page 21: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

パス列挙(ZDD構築)アルゴリズムa

bc

s te1

e2e3

e4

e5

e6

0 0 1 0 0 0 1 0

← 2つのノードは子の構造が同じ

Page 22: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

パス列挙(ZDD構築)アルゴリズムa

bc

s te1

e2e3

e4

e5

e6

処理済み辺 未処理辺

s と接続いずれにも接続しない

で囲まれた頂点の接続のされ方が同じ

Page 23: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

パス列挙(ZDD構築)アルゴリズムa

bc

s te1

e2e3

e4

e5

e6

… 子の構造が同じなので、マージできる

Page 24: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

パス列挙(ZDD構築)アルゴリズムa

bc

s te1

e2e3

e4

e5

e6

0 0 1 0

マージすることで同じ計算の繰り返しを避けられ、効率がよくなる

Page 25: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

パス列挙(ZDD構築)アルゴリズム

fd

sa

b c

d

hf

g

s t a

b c

d

hf

g

s t

fd

s

フロンティア

処理済み辺 未処理辺

部分パスの反対側の端点を各ノードに記憶しておく。フロンティア上ですべて一致するなら、2つは同じ状態とみなし、マージを行う(マージが可能なことの証明は [Yoshinaka et al. 2012] )

R. Yoshinaka, T. Saitoh, J. Kawahara, K. Tsuruma, H. Iwashita, and S. Minato,"Finding all solutions and instances of numberlink and slitherlink by ZDDs,"Algorithms, 5(2):176--213, 2012.

Page 26: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

パス列挙(ZDD構築)アルゴリズムa

bc

s te1

e2e3

e4

e5

e6

sa

as

s

a

b

ssa

as

s

a

b

s

ノードに記憶させる情報

Page 27: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

パス列挙(ZDD構築)アルゴリズムa

bc

s te1

e2e3

e4

e5

e6

完成したZDD(0-終端は省略、1終端は非共有)

Page 28: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

s

t

e1e2

e3e4 e5e6

e11

e10e7 e9

e8

e12入力グラフ

ZDD (0終端は省略)

ZDDの構築例

Page 29: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

s

t

e1e2

e3e4 e5e6

e11

e10e7 e9

e8

e12

作成されたZDDのノード数に比例する計算時間がかかる

作成されるZDDの幅の上界値は

一般グラフ

Cs+2 - 2Cs+1

Bk + 2Bk-1

n: 頂点数

平面グラフ

k×k グリッドグラフ

フロンティアサイズ s

2 0.48 n log n + O(n)

Bk ~ 2 × 3k Ck ~ 4k / k3/2Ballot 数 Catalan数

アルゴリズムの計算時間

高野圭司, "フロンティア法から生成される ZDD の幅解析,"数理解析研究所講究録, vol. 1849, pp. 77--82, 2013.

K. Sekine, H. Imai, and S. Tani, "Computing the Tutte polynomial of a graph of moderate size," In Proc. of the 6th International Symposium on Algorithms and Computation (ISAAC), pp. 224--233, 1995.

Page 30: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

要素の数え上げ

• ZDD が構築できれば、対応する集合族内の要素(=集合)の個数が計算できる

• ZDD の根から1-終端までの経路の本数が要素の個数

0 1

10

e1

e2

e3e4

e5

e3

{

}

e2 e4e2e5e4e3

,

, e3

,e5

e5 e5e5,

{ } { }

{ } { } { }

e1{ }e3

Page 31: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

要素の数え上げ

• ZDD が構築できれば、対応する集合族内の要素(=集合)の個数が計算できる

• ZDD の根から1-終端までの経路の本数が要素の個数

0 1

10

e1

e2

e3e4

e5

e3

{

}

e2 e4e2e5e4e3

,

, e3

,e5

e5 e5e5,

{ } { }

{ } { } { }

e1{ }e3

11

1

n

n0

n1

n から までの経路の本数= n0 から までの経路の本数

+ n1 から までの経路の本数

Page 32: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

要素の数え上げ

• ZDD が構築できれば、対応する集合族内の要素(=集合)の個数が計算できる

• ZDD の根から1-終端までの経路の本数が要素の個数

0 1

10

e1

e2

e3e4

e5

e3

11

1

n

n0

n1

n から までの経路の本数= n0 から までの経路の本数

+ n1 から までの経路の本数

1

ノードから1-終端までの経路の数

Page 33: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

要素の数え上げ

• ZDD が構築できれば、対応する集合族内の要素(=集合)の個数が計算できる

• ZDD の根から1-終端までの経路の本数が要素の個数

0 1

10

e1

e2

e3e4

e5

e3

11

1

n

n0

n1

n から までの経路の本数= n0 から までの経路の本数

+ n1 から までの経路の本数

1

ノードから1-終端までの経路の数

下から上に向かって計算する(動的計画法)

2

Page 34: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

要素の数え上げ

• ZDD が構築できれば、対応する集合族内の要素(=集合)の個数が計算できる

• ZDD の根から1-終端までの経路の本数が要素の個数

0 1

10

e1

e2

e3e4

e5

e3

11

1

n

n0

n1

n から までの経路の本数= n0 から までの経路の本数

+ n1 から までの経路の本数

1

ノードから1-終端までの経路の数

下から上に向かって計算する(動的計画法)

2

3

Page 35: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

要素の数え上げ

• ZDD が構築できれば、対応する集合族内の要素(=集合)の個数が計算できる

• ZDD の根から1-終端までの経路の本数が要素の個数

0 1

10

e1

e2

e3e4

e5

e3

11

1

n

n0

n1

n から までの経路の本数= n0 から までの経路の本数

+ n1 から までの経路の本数

1

ノードから1-終端までの経路の数

下から上に向かって計算する(動的計画法)

2

3

5

1

6

根の が要素の個数になる6

Page 36: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

一様ランダムサンプリング

• 要素を一様ランダムサンプリングする

0 1

10

e1

e2

e3e4

e5

e3

{

}

e2 e4e2e5e4e3

,

, e3

,e5

e5 e5e5,

{ } { }

{ } { } { }

e1{ }e3

6つの集合から1つをランダムに選択

Page 37: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

一様ランダムサンプリング

• 要素を一様ランダムサンプリングする

0 1

10

e1

e2

e3e4

e5

e3

{

}

e2 e4e2e5e4e3

,

, e3

,e5

e5 e5e5,

{ } { }

{ } { } { }

e1{ }e3

12

3

5

1

6

5 1

6確率56

16

確率

6つの集合から1つをランダムに選択

数え上げ時に計算した、各ノードから1-終端までの経路の個数を用いる

根ノードからスタート以下の確率で方向を選択して移動

Page 38: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

一様ランダムサンプリング

• 要素を一様ランダムサンプリングする

0 1

10

e1

e2

e3e4

e5

e3

{

}

e2 e4e2e5e4e3

,

, e3

,e5

e5 e5e5,

{ } { }

{ } { } { }

e1{ }e3

12

3

5

1

6

6つの集合から1つをランダムに選択

Page 39: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

一様ランダムサンプリング

• 要素を一様ランダムサンプリングする

0 1

10

e1

e2

e3e4

e5

e3

{

}

e2 e4e2e5e4e3

,

, e3

,e5

e5 e5e5,

{ } { }

{ } { } { }

e1{ }e3

12

3

5

1

6

3 2

5確率35

25

確率

以下の確率で方向を選択して移動

6つの集合から1つをランダムに選択

Page 40: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

一様ランダムサンプリング

• 要素を一様ランダムサンプリングする

0 1

10

e1

e2

e3e4

e5

e3

{

}

e2 e4e2e5e4e3

,

, e3

,e5

e5 e5e5,

{ } { }

{ } { } { }

e1{ }e3

12

3

5

1

6

6つの集合から1つをランダムに選択

Page 41: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

一様ランダムサンプリング

• 要素を一様ランダムサンプリングする

0 1

10

e1

e2

e3e4

e5

e3

{

}

e2 e4e2e5e4e3

,

, e3

,e5

e5 e5e5,

{ } { }

{ } { } { }

e1{ }e3

12

3

5

1

6

1 2

3確率13

23

確率

6つの集合から1つをランダムに選択

Page 42: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

一様ランダムサンプリング

• 要素を一様ランダムサンプリングする

0 1

10

e1

e2

e3e4

e5

e3

{

}

e2 e4e2e5e4e3

,

, e3

,e5

e5 e5e5,

{ } { }

{ } { } { }

e1{ }e3

12

3

5

1

6

6つの集合から1つをランダムに選択

Page 43: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

一様ランダムサンプリング

• 要素を一様ランダムサンプリングする

0 1

10

e1

e2

e3e4

e5

e3

{

}

e2 e4e2e5e4e3

,

, e3

,e5

e5 e5e5,

{ } { }

{ } { } { }

e1{ }e3

12

3

5

1

6

e5{ }1-終端まで到達すると根から1-終端までの経路が得られ、対応する集合が1つ得られる

6つの集合から1つをランダムに選択

Page 44: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

実験結果

The On-Line Encyclopedia of Integer Sequence (OEIS) : 数列大辞典

http://oeis.org/A007764

n × n グリッドグラフ頂点の数 (n + 1) × (n + 1) の対角のパスの数の数え上げ

Page 45: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

実験結果

The On-Line Encyclopedia of Integer Sequence (OEIS) : 数列大辞典

Hiroaki Iwashita, Yoshio Nakazawa, Jun Kawahara, Takeaki Uno, and Shin-ichi Minato,Efficient Computation of the Number of Paths in a Grid Graph with Minimal Perfect Hash Functions (JCDCG2 2013)

8.4 × 10149

n × n グリッドグラフ頂点の数 (n + 1) × (n + 1) の対角のパスの数の数え上げ

Page 46: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

実験結果n × n グリッドグラフ頂点の数 (n + 1) × (n + 1) の対角のパスの数の数え上げ

The On-Line Encyclopedia of Integer Sequence (OEIS) : 数列大辞典

Hiroaki Iwashita, Yoshio Nakazawa, Jun Kawahara, Takeaki Uno, and Shin-ichi Minato,Efficient Computation of the Number of Paths in a Grid Graph with Minimal Perfect Hash Functions (JCDCG2 2013)

8.4 × 10149

n time(sec.)

memory (MB)

17 20.9 849

18 67.6 2376

19 212.4 6663

20 652.0 18729

21 3244.3 52791

22 5695.0 149254

23 21313.0 422861n=24,25は特殊な並列化

Page 47: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

様々なグラフ構造• パス以外にも様々なグラフ構造に対してZDD 構築可能

• ハミルトンパス• 複数終端対パス• 森、全域木• マッチング• 集合被覆• グラフ分割• etc.

川原 純, 湊 真一,"組合せ問題の解を列挙索引化するZDD構築アルゴリズムの汎用化,"電子情報通信学会コンピュテーション研究会, 信学技報, vol. 112, No. 93, COMP2012-12, pp. 1-7, June 2012.

Page 48: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

辺変数型

パス型 森型パス

サイクル

ハミルトンパス

ハミルトンサイクル

オイラー路

複数終端対パス

(ナンバーリンク)

森 全域木

シュタイナー木

カット(セット)

s-tカット

k 終端カット

連結成分

Tutte多項式

Jones多項式(ひもの絡み目)

上記2つ[関根, 今井 1996]

[Yoshinaka et al. 2012]

[Knuth 2008]

信頼性多項式

[Imai et al. 1997]

信頼性多項式

[Hardy et al. 2007]

複数サイクル

頂点変数型

頂点被覆独立集合支配集合

0-1 ナップザック部分和特殊

数分割特殊

頂点彩色

括弧列マトロイドTutte 多項式

[Imai et al. 1996][Saitoh et al. 2009]

動的計画法的な見方も可能

クリーク

フラグ型

辺被覆

完全マッチング

マッチング

集合被覆

集合分割

集合パッキング

上記3つ[今井, 今井 1998]

ハイパーグラフ

一般化

グラフ

根付き森、木

有向パス [Knuth 08]

[Knuth 2008]

有向グラフ

Page 49: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

ZDD に関するその他の研究成果

• 最長路問題の求解 [Kawahara et al. 2016]• 頂点故障も考慮した信頼性評価 [園田ら 2016]• 避難計画作成 [Takizawa et al. 2013]• AND/OR 演算に関する計算量の証明[Yoshinaka et al. 2012]

• 簡潔データ構造による ZDD のインデックス作成[Denzumi et al. 2014]

• プリミティブソーティングネットワークの数え上げ [Kawahara et al. 2011]

Page 50: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

ZDD に関するその他の研究成果

• グラフ彩色問題 [Morrison et al. 2016]• 多次元ナップサック問題 [安田ら 2016]• 制約を追加したナップザック問題[Nishino et al. 2015]

• Web の影響拡散の厳密計算 [Maehara et al. 2017]

• 自然言語処理における最適化 [西野ら 2015]• 系統樹復元問題に対する列挙アルゴリズム[Kiyomi et al. 2012]

Page 51: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

様々な決定グラフ

• BDD (Binary Decision Diagram): 論理関数• ZDD (Zero-suppressed BDD): 集合族• Sequence DD: 文字列集合• πDD (Permutation DD): 置換集合

Page 52: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

ZDDのライブラリ• CUDD: 様々な論文で使われている決定グラフライブラリ (「CUDD」で検索)

• Ruby版 VSOP ライブラリ: ERATO湊離散構造処理系プロジェクトで作成したライブラリ

• http://www.nysol.jp/• ZDD処理だけではなく、頻出パターンマイニング

(LCM over ZDD)なども使える{リンゴ, みかん, チョコレート, 牛乳},{リンゴ, バナナ, 牛乳},{きゅうり, バナナ, チョコレート},{リンゴ, トマト, 牛乳},...

頻出のパターンを抽出

Page 53: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

グラフ最適化のためのライブラリ

• graphillion• グラフ集合を扱うためのライブラリ• python や C++ で手軽に• パス、全域木、マッチング等、様々な対象を列挙可能

• TdZdd• トップダウンでZDDを構築するための汎用ライブラリ• 細かな挙動設定が可能• graphillion の内部でも使用されている

http://graphillion.org

Takeru Inoue, Hiroaki Iwashita, Jun Kawahara, and Shin-ichi Minato,"Graphillion: software library designed for very large sets of labeled graphs,"International Journal on Software Tools for Technology Transfer, pp. 57-66, Feb. 2016

戸田 貴久, 斎藤 寿樹, 岩下 洋哲, 川原 純, 湊 真一,"ZDDと列挙問題 - 最新の技法とプログラミングツール,"コンピュータソフトウェア, 2017. (to appear)

https://github.com/kunisura/TdZdd

Page 54: ZDD とフロンティア法 - NAISTjkawahara/frontier/frontier_2017_ver01.pdf1 枚でわかるZDDの特徴 • 情報が(構造によっては)指数的に効率よく 圧縮されて保存されている

参考文献

ERATO 湊離散構造処理系プロジェクト (著), 湊真一 (編集),"超高速グラフ列挙アルゴリズム-〈フカシギの数え方〉が拓く,組合せ問題への新アプローチ-," 森北出版, 2015/4/8.http://www.amazon.co.jp/dp/4627852614

川原 純, 湊 真一,"組合せ問題の解を列挙索引化するZDD構築アルゴリズムの汎用化,"電子情報通信学会コンピュテーション研究会, 信学技報, vol. 112, No. 93, COMP2012-12, pp. 1-7, June 2012.

Jun Kawahara, Takeru Inoue, Hiroaki Iwashita, Shin-ichi Minato,"Frontier-based Search for Enumerating All Constrained Subgraphs with Compressed Representation," IEICE Trans. Fundamentals (Special Issue on Discrete Mathematics and Its Applications), 2017 (to appear).

論文

書籍