Top Banner
整数格子点上の劣モジュラ被覆に対する 高速アルゴリズム 相馬 輔 (東京大学) 田 悠一 (NII & PFI) 2015 3 26 日本 OR 学会春季研究発表会 1 / 17
22

整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

Feb 21, 2017

Download

Engineering

Tasuku Soma
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

相馬輔 (東京大学)𠮷田悠一 (NII & PFI)

2015年 3月 26日日本OR学会春季研究発表会

1 / 17

Page 2: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

劣モジュラ被覆 [Wolsey ’82]

f , c : 2S → R+ 単調劣モジュラ関数, α > 0

min c(X)

s.t. f(X) ≥ α

2 / 17

Page 3: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

劣モジュラ被覆 [Wolsey ’82]

f , c : 2S → R+ 単調劣モジュラ関数, α > 0

min c(X)

s.t. f(X) ≥ α

応用:• センサー配置

[Krause&Guestrin ’05, Krause&Leskovec ’08]

• 文書要約 [Lin & Bilmes ’10]

• オブジェクト検知 [Song et al. ’14, Chen et al. ’14]

2 / 17

Page 4: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

劣モジュラ被覆 [Wolsey ’82]

f , c : 2S → R+ 単調劣モジュラ関数, α > 0

min c(X)

s.t. f(X) ≥ α

既存研究:• c(X) = |X |のとき, O(log d/β)-近似 [Wolsey ’82]

• f , cが整数値のとき, O(ρ log d)-近似 [Wan et al. ’09]

d = maxs f(s), ρ: c の曲率,β := min{f(s | X) : s ∈ S,X ⊆ S, f(s | X) > 0}

2 / 17

Page 5: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

整数格子点上の劣モジュラ被覆

f , c : ZS → R+ 限界効用逓減性つき単調劣モジュラ関数,α > 0, r ∈ Z+

min c(x)s.t. f(x) ≥ α

0 ≤ x ≤ r1

注意: r = 1 =⇒ (集合版)劣モジュラ被覆

3 / 17

Page 6: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

結果

ZS+上の劣モジュラ被覆に対する近似アルゴリズム

• 近似比: O(ρ log d/β),計算量: O (n log nr log r)

• r = 1の場合,既存の最良近似比と一致

• 数値実験により解の品質・効率性を確認

d := maxs f(es), ρ := cの曲率,β := min{f(es | x) : s ∈ S, x ∈ ZS

+, f(es | x) > 0}

4 / 17

Page 7: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

整数格子点上の劣モジュラ関数f : ZS → R整数格子点上の単調劣モジュラ関数

• x ≤ y =⇒ f(x) ≤ f(y)

• f(x) + f(y) ≥ f(x ∨ y) + f(x ∧ y)(∀x, y ∈ ZS)

(x ∨ y: 要素ごとmax, x ∧ y: 要素ごとmin)

cf. 劣モジュラ集合関数:f(X) + f(Y) ≥f(X ∪ Y) + f(X ∩ Y)

限界効用逓減性:

f(x + 2es) − f(x + es) ≤ f(x + es) − f(x) (x ∈ ZS , s ∈ S)

f は各軸方向へ凹関数

5 / 17

Page 8: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

整数格子点上の劣モジュラ関数f : ZS → R整数格子点上の単調劣モジュラ関数

• x ≤ y =⇒ f(x) ≤ f(y)

• f(x) + f(y) ≥ f(x ∨ y) + f(x ∧ y)(∀x, y ∈ ZS)

(x ∨ y: 要素ごとmax, x ∧ y: 要素ごとmin)

cf. 劣モジュラ集合関数:f(X) + f(Y) ≥f(X ∪ Y) + f(X ∩ Y)

限界効用逓減性:

f(x + 2es) − f(x + es) ≤ f(x + es) − f(x) (x ∈ ZS , s ∈ S)

f は各軸方向へ凹関数

5 / 17

Page 9: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

整数格子点上の劣モジュラ関数f : ZS → R整数格子点上の単調劣モジュラ関数

• x ≤ y =⇒ f(x) ≤ f(y)

• f(x) + f(y) ≥ f(x ∨ y) + f(x ∧ y)(∀x, y ∈ ZS)

(x ∨ y: 要素ごとmax, x ∧ y: 要素ごとmin)

cf. 劣モジュラ集合関数:f(X) + f(Y) ≥f(X ∪ Y) + f(X ∩ Y)

限界効用逓減性:

f(x + 2es) − f(x + es) ≤ f(x + es) − f(x) (x ∈ ZS , s ∈ S)

f は各軸方向へ凹関数

5 / 17

Page 10: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

アイデアGreedy

(集合版)劣モジュラ被覆へ帰着

• 擬多項式時間• 近似比は良い

Decreasing Thresholdしきい値・二分探索 で高速化したGreedy

• 多項式時間• (定数倍を除き)同じ近似比

しきい値による高速化手法[Badanidiyuru-Vondrak ’14]

6 / 17

Page 11: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

アイデアGreedy

(集合版)劣モジュラ被覆へ帰着

• 擬多項式時間• 近似比は良い

Decreasing Thresholdしきい値・二分探索 で高速化したGreedy

• 多項式時間• (定数倍を除き)同じ近似比

しきい値による高速化手法[Badanidiyuru-Vondrak ’14]

6 / 17

Page 12: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

アルゴリズム

Decreasing-Threshold1: x ← 02: for (θ =十分大きな値; θ ≥十分小さな値; θ ← θ(1 − ϵ)) :3: for s ∈ S :4:

f(kes |x)kc(es)

≥ θとなる最大の 0 ≤ k ≤ r − x(s)を二分探索5: x ← x + kes

6: if f(x) ≥ α :7: 外側の forループを抜ける8: return x

7 / 17

Page 13: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

アルゴリズムf(kes | x)

kc(es)=コスト・ゲイン比の下界 ← k に関して単調減少

s

f(·|x)c(es)

ステップサイズ k

傾きθ

8 / 17

Page 14: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

結果

定理Decreasing-Thresholdアルゴリズムは(1 + 3ϵ)ρ

(1 + log d

β

)-近似の (ほぼ)実行可能解を

O(

log nrcmaxδcmin

log r)時間で出力する.

注意:• (ほぼ)実行可能は f(x) ≥ (1 − δ)αの意味• f :整数値なら常に実行可能解を出力する

9 / 17

Page 15: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

数値実験f(x): データセットから生成, c(x) := ∥x∥1データセット:

• BWSN ... 現実の貯水池のネットワーク

• Synthetic ... ランダムデータ

比較対象:

• Greedy ... (集合版)劣モジュラ被覆への帰着※擬多項式時間

• Degree ... f(es)が大きい s から選択

• Uniform ... f(k1) ≥ αとなる最小の k1を出力

計算機: Xeon E5-2690 2.9GHz CPU, 256GB RAM (4GBで十分)

10 / 17

Page 16: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

BWSN (Battle of Water Sensor Network) [Ostfeld et al. ’08]

• 126頂点, 168枝

• 96時間までの汚染シミュレーション3000通り

S: センサー集合, x: センサーの電力分布,Pr(s が汚染を検知する) = 1 − (1 − p)x(s) (p = 0.001)

f(x) = E[96 × 60 × 60 − (汚染検知時刻)]

11 / 17

Page 17: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

Synthetic

ランダム二部グラフ G := (S,T ;E)

• |S | = |T | = 100000

• S 上の次数分布: Pr(d(s) = k ) ∝ k−3.0 (s ∈ S)

• 各 s はランダムな T の点に接続

パラメータ: p = 0.001

f(x) :=∑t∈T

1 − ∏s∈Γ(t)

(1 − p)x(s)

12 / 17

Page 18: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

BWSN:目的関数値

0 500 1000 1500 2000 2500 3000α

101

102

103

104

|x| 1

OursGreedyDegreeUniform

• Greedyに匹敵する性能13 / 17

Page 19: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

BWSN:実行時間

0 500 1000 1500 2000 2500 3000α

10-2

10-1

100

101

102

103

time

(s)

OursGreedyDegreeUniform

• Greedyより 10倍高速14 / 17

Page 20: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

Synthetic: 目的関数値

0 500 1000 1500 2000 2500 3000α

103

104

105

106

107

|x| 1

OursGreedyDegreeUniform

• Greedyに匹敵する性能15 / 17

Page 21: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

Synthetic: 実行時間

0 500 1000 1500 2000 2500 3000α

10-1

100

101

102

103

time

(s)

OursGreedyDegreeUniform

• Greedyより 10倍高速16 / 17

Page 22: 整数格子点上の劣モジュラ被覆に対する高速アルゴリズム

結果

ZS+上の劣モジュラ被覆に対する近似アルゴリズム

• 近似比: O(ρ log d/β),計算量: O (n log nr log r)

• r = 1の場合,既存の最良近似比と一致

• 数値実験により解の品質・効率性を確認

d := maxs f(es), ρ := cの曲率,β := min{f(es | x) : s ∈ S, x ∈ ZS

+, f(es | x) > 0}

17 / 17