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

離散最適化の数理 — 劣モジュラ構造のおもしろさ

N/A
N/A
Protected

Academic year: 2022

シェア "離散最適化の数理 — 劣モジュラ構造のおもしろさ"

Copied!
86
0
0

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

全文

(1)

離散最適化の数理 — 劣モジュラ構造のおもしろさ

藤重 悟

京都大学数理解析研究所

(京都大学附置研究所・センター品川セミナー,2012年3月2日)

概 要

近年、「最適化」という言葉が広く使われるようになって きました。最適化の対象は人間の諸活動にかかわり、工学諸 問題は勿論のこと、経済、経営、社会、環境、情報の諸問題 など、あらゆる現実の実際的問題において、最適化の理論と 技法が活用され、人類の福祉向上に役立てられています。ま た、今後さらに有効に使われるべき多くの実際的問題がある と考えられます。

本講演では、個数などの(非負)整数あるいは処理の順序や 物の配置などの組合せ的な関係を表す離散量を扱う「離散最 適化」の問題についてお話しします。そして、離散最適化問 題の数理的な構造を、離散的な凸性としてとらえられる「劣 モジュラ性」という切り口からながめて、その「おもしろさ」

をお伝えしたいと思います。

1

(2)

最適化 ( 数理計画 )

(3)

最適化 ( 数理計画 )

オペレーションズ・リサーチ

(4)

最適化 ( 数理計画 )

オペレーションズ・リサーチ=“やりくり”学 (運籌学)

(5)

最適化 ( 数理計画 )

オペレーションズ・リサーチ=“やりくり”学 (運籌学)

「計画,設計,運用,経営,管理」の科学

(6)

最適化 ( 数理計画 )

オペレーションズ・リサーチ=“やりくり”学 (運籌学)

「計画,設計,運用,経営,管理」の科学 問題: 制約条件,目的関数(評価関数)

(確定的・確率的,連続変数・離散変数,... )

(7)

最適化 ( 数理計画 )

オペレーションズ・リサーチ=“やりくり”学 (運籌学)

「計画,設計,運用,経営,管理」の科学 問題: 制約条件,目的関数(評価関数)

(確定的・確率的,連続変数・離散変数,... ) 問題と最適化:

モデル構築 = 最適化 = モデルの評価

= = =

(8)

最適化 ( 数理計画 )

オペレーションズ・リサーチ=“やりくり”学 (運籌学)

「計画,設計,運用,経営,管理」の科学 問題: 制約条件,目的関数(評価関数)

(確定的・確率的,連続変数・離散変数,... ) 問題と最適化:

モデル構築 = 最適化 = モデルの評価

= = =

連続最適化と離散最適化(組合せ最適化)

離散最適化:整数値,配置,関係,(処理)順序,組合せ,. . . (組合せ最適化)

(9)

離散最適化,組合せ最適化

(例) 最短経路(カーナビ),配送計画

スケジューリング(順序,組み立て,人員配置,日程計画,... ) 生産計画・工程管理,SCM,ロジスティクス,物流

(通信,交通)ネットワーク設計,ネットワーク連結度・信頼性 VLSI設計,画像処理,CAD

建築構造物設計,施設配置,避難誘導,都市計画

バイオインフォマティクス・計算生物学,データマイニング 非分割財の経済,資源配分,オークション

...

(10)

離散最適化,組合せ最適化

(例) 最短経路(カーナビ),配送計画

スケジューリング(順序,組み立て,人員配置,日程計画,... ) 生産計画・工程管理,SCM,ロジスティクス,物流

(通信,交通)ネットワーク設計,ネットワーク連結度・信頼性 VLSI設計,画像処理,CAD

建築構造物設計,施設配置,避難誘導,都市計画

バイオインフォマティクス・計算生物学,データマイニング 非分割財の経済,資源配分,オークション

...

“有限個”の可能な解から最適な解を見つける!

(11)

離散最適化,組合せ最適化

(例) 最短経路(カーナビ),配送計画

スケジューリング(順序,組み立て,人員配置,日程計画,... ) 生産計画・工程管理,SCM,ロジスティクス,物流

(通信,交通)ネットワーク設計,ネットワーク連結度・信頼性 VLSI設計,画像処理,CAD

建築構造物設計,施設配置,避難誘導,都市計画

バイオインフォマティクス・計算生物学,データマイニング 非分割財の経済,資源配分,オークション

...

“有限個”の可能な解から最適な解を見つける!

“有限個”=途轍もなく大きな数

(12)

“有限個”の可能な解から最適な解を見つける!

“有限個”=途轍もなく大きな数

(例)1個調べるのに 106秒かかるときに必要な総時間 集合の大きさn 20 50 100

部分集合全体2n            

(13)

“有限個”の可能な解から最適な解を見つける!

“有限個”=途轍もなく大きな数

(例)1個調べるのに 106秒かかるときに必要な総時間 集合の大きさn 20 50 100

部分集合全体2n 1秒 35年 3×106

(14)

“有限個”の可能な解から最適な解を見つける!

“有限個”=途轍もなく大きな数

(例)1個調べるのに 106秒かかるときに必要な総時間 集合の大きさn 20 50 100

部分集合全体2n 1秒 35年 3×106年 10n3        

1000n

(15)

“有限個”の可能な解から最適な解を見つける!

“有限個”=途轍もなく大きな数

(例)1個調べるのに 106秒かかるときに必要な総時間 集合の大きさn 20 50 100

部分集合全体2n 1秒 35年 3×106年 10n3 0.08秒 1秒 10秒 1000n 0.02秒 0.05秒 0.1秒

効率の良いアルゴリズムの研究の重要性

(16)

問題解決の鍵は?

(17)

問題解決の鍵は

与えられた問題の持つ有効な数理的構造の解明!

(18)

問題解決の鍵は

与えられた問題の持つ有効な数理的構造の解明!

劣モジュラ構造

(マトロイド構造)

(効率的なアルゴリズムに結び付く離散構造)

(19)

E: 有限集合

集合関数f : 2E R

X E 7→ f(X) R

(以下では,f() = 0 と仮定する.)

(20)

E: 有限集合

集合関数f : 2E R

<劣加法性>

f(X) +f(Y) f(X ∪Y) (∀X, Y E, X Y = )

(21)

E: 有限集合

集合関数f : 2E R

<劣加法性>

f(X) +f(Y) f(X ∪Y) (∀X, Y E, X Y = )

<劣モジュラ性>

f(X) +f(Y) f(X ∪Y) +f(X ∩Y) (∀X, Y E)

(22)

E: 有限集合

集合関数f : 2E R

<劣加法性>

f(X) +f(Y) f(X ∪Y) (∀X, Y E, X Y = )

<劣モジュラ性>

f(X) +f(Y) f(X ∪Y) +f(X ∩Y) (∀X, Y E) (1) {f(X)−f(X ∩Y)}+{f(Y)−f(X ∩Y)}

f(X ∪Y)−f(X ∩Y)

(2) f(X)−f(X ∩Y) f(X ∪Y)−f(Y)

(注)X \YY \X の各要素の数を1に限っても同値.

(23)

劣モジュラ関数の例

:

G= (V, E): 点集合V と枝集合Eをもつグラフ グラフG = (V, E)の階数関数f : 2E Z+

∀X E : f(X) = (X で張られる点数)(連結成分の個数)

(24)

劣モジュラ関数の例

:

G= (V, E): 点集合V と枝集合Eをもつグラフ グラフG = (V, E)の階数関数f : 2E Z+

∀X E : f(X) = (X で張られる点数)(連結成分の個数)

f(X) = 93 = 6

(注)f は,単調非減少な劣モジュラ関数である.

(25)

行列の階数関数

M: m×n行列 (matrix)

E = {1,2,· · · , n}: M の列の集合

M =





1 2 · · · n a11 a12 · · · a1n a21 a22 · · · a2n ... ... ... ...

am1 am2 · · · amn





∀X E : f(X) = MX に対応する列からなる部分行列の階数 (注)f は,単調非減少な劣モジュラ関数である.

(26)

行列の階数関数

M: m×n行列 (matrix)

E = {1,2,· · · , n}: M の列の集合

M =





1 2 · · · n a11 a12 · · · a1n a21 a22 · · · a2n ... ... ... ...

am1 am2 · · · amn





∀X E : f(X) =MX に対応する列からなる部分行列の階数 I = {X | X E, f(X) = |X|} (|X|: X の要素数(列数)) (1) ∅ ∈ I.

(2) I ∈ I かつJ I ならば, J ∈ I.

(3) I, J ∈ I かつ |I| < |J| ならば,ある要素 e J \I が存在して,

I ∪ {e} ∈ I.

(対(E,I)は,マトロイド(matroid),Iはその独立集合族と呼ばれる.) (マトロイド:双対性,豊富な演算と変換,効率的なアルゴリズム)

(27)

グラフの場合,グラフの階数関数f に対して,

I = {X | X E, f(X) = |X|}

(1) ∅ ∈ I.

(2) I ∈ I かつJ I ならば, J ∈ I.

(3) I, J ∈ I かつ |I| < |J| ならば,ある要素 e J \I が存在して,

I ∪ {e} ∈ I.

の各独立集合I ∈ Iは,「閉路を含まない枝集合」に対応する. 逆に,

f(X) = max{|I| | I ⊆X, I ∈ I} (∀X E)

(28)

グラフの場合,グラフの階数関数f に対して,

I = {X | X E, f(X) = |X|}

(1) ∅ ∈ I.

(2) I ∈ I かつJ I ならば, J ∈ I.

(3) I, J ∈ I かつ |I| < |J| ならば,ある要素 e J \I が存在して,

I ∪ {e} ∈ I.

の各独立集合I ∈ Iは,「閉路を含まない枝集合」に対応する. 逆に,

f(X) = max{|I| | I ⊆X, I ∈ I} (∀X E)

(29)

ネットワークのカット関数 G= (V, A): (有向)グラフ c(a):a A の容量 0

∀X V: f(X) =X の中から出る枝の容量の総和

f(X) = 33

(注)f は,必ずしも単調非減少でない劣モジュラ関数.

(30)

多端子ネットワークの流量関数

入り口1個で,複数の出口があるネットワークにおいて,

T: 出口全体の集合

∀X T: f(X) =出口X への流出量総和の最大値

(注)f は,単調非減少な劣モジュラ関数である.

(31)

エントロピー関数

x1, x2,· · · , xn: 1からN の整数値をとる確率変数 E = {x1, x2,· · · , xn}

∀X E: f(X) =(X (シャノンの意味での)エントロピー) たとえばX = {x1, x2,· · · , xk} (1 k ≤n)であるとき,

f(X) =

N

i1=1

· · ·

N

ik=1

P(x1=i1,· · · , xk=ik) log2P(x1=i1,· · · , xk=ik)

(注) f は単調非減少な劣モジュラ関数である. f(X)−f(X ∩Y) f(X Y)−f(Y)

(32)

凸ゲーム

E: プレイヤーの集合

∀X E: f(X) =(X が協力する場合にX 全体でかかる費用)

f が単調非減少な劣モジュラ関数であるとき,凸ゲームという. x(e): プレイヤーeの分担金(0)

∀X E : x(X) ≤f(X), x(E) = f(E) (

x(X) = ∑

eX

x(e) )

———————————————————————

f(X)−f(X ∩Y) f(X Y)−f(Y)

(33)

置換多面体(permutahedron) E = {1,2,· · · , n}

Eの置換σ : E →EによるRE中の点(σ(1), σ(2),· · · , σ(n)) の集合の 凸包を置換多面体Pn.

1234 1243

2143

2134

2314 3214

3241 3124 3421

3412

3142

4312 1342

4132 1432

4123 1423

4213

2413 1324

2341 2431 4321 4231

g(k) =

k i=1

(n−i+ 1) (k = 1,2,· · · , n)

f(X) = g(|X|) (X ⊆E)

Pn = {x RE | ∀X ⊂E : x(X) f(X), x(E) =f(E)} (注)f は単調増加な劣モジュラ関数である.

(34)

最大木問題 ( 最小木問題 )

(最大重み全域木問題)

全域木=閉路を含まない極大な枝集合

(35)

最大木問題

連結なグラフG= (V, E)と枝重み関数w : E R w(T) =∑

eT

w(e) (T E: Gの(全域)木) 問題: 重み最大の(全域)木を見出せ.

(36)

最大木問題

連結なグラフG= (V, E)と枝重み関数w : E R

重みの総和w(T) = 65 最適か?

(37)

最大木問題

連結なグラフG= (V, E)と枝重み関数w : E R

重みの総和w(T) = 81 最適か?

(38)

最大木問題

連結なグラフG= (V, E)と枝重み関数w : E R

重みの総和w(T) = 82 最適か?

(39)

最大木問題

連結なグラフG= (V, E)と枝重み関数w : E R

重みの総和w(T) = 82 最適である!

(40)

貪欲アルゴリズム(greedy algorithm)

——————————————————————————

Step 0: 重みの大きい順に並べて,w(e1) ≥w(e2) ≥ · · · ≥ w(en).

T ← ∅とおく.

Step 1: i = 1,2,· · · , nに対して,

T ∪ {ei}が閉路を含まなければT T ∪ {ei} T が(全域)木ならばT を出力して停止.

——————————————————————————

定理:貪欲アルゴリズムによって、最大重みの(全域)木が求められる. また,任意の最大重みの(全域)木は,ある単調非増加な重みの並べ方 に対する貪欲アルゴリズムの解である. 2

(41)

(42)

(43)

(44)

(45)

(46)

(47)

(48)

(49)

(50)

(51)

(52)

最大重みの木 T

(53)

貪欲アルゴリズムはなぜ正しいか?

重みw(e) (e E) の相異なる値がk1 > k2 > · · · > kpであるとして, Fi = {e E | w(e) ≥ki} (i = 1,2,· · · , p)

とおくと,重み関数(ベクトル)wは

w = (k1 −k2F1 + · · ·+ (kp1 −kpFp1 + kpχFp

と表現される. ただし,χFi は,Fi上で1,E \Fi上で0の値を取る関 数(特性ベクトル)である.

(54)

全域木T の重みは,

eT

w(e) = (k1 −k2)∑

eT

χF1(e) +· · ·+ (kp1 −kp)∑

eT

χFp1(e) +kp

eT

χFp(e)

= (k1−k2)|T ∩F1|+· · ·+ (kp1−kp)|T ∩Fp1|+kp|T ∩Fp|

(注意: F1 ⊂F2 ⊂ · · · ⊂ Fp1 ⊂Fp(= E))

Tσは,|T ∩F1|, · · · , |T ∩Fp1|, |T ∩Fp|を同時に最大化する. (←− マトロイド構造)

ゆえに,Tσは,最大木である.

逆に,任意の最大木Tは,|T F1|, · · · , |T ∩Fp|を同時に最大化 する. よって,ある単調非増加な重みの並べ方に対する貪欲アルゴリ

ズムの解になっている. 2

(55)

木の初等変換

基本閉路(基本サイクル)

(56)

木の初等変換

(57)

最大木の特徴づけ

定理:任意の(大域木)T に対して,T が重みwに関する最大木である ための必要十分条件は、

(*) 木T のすべての初等変換T ∪ {e} \ {e0} によってその重みが大き くならない,すなわち,w(e) w(e0)であることである.

2 (注) (*) が成り立つとき,貪欲アルゴリズムでT が求められるような 並び w(e1) w(e2) ≥ · · · ≥ w(en) が存在する.

O(|E|2) 個の近傍における局所最適性=大域最適性 !!

(58)

最大木問題

連結なグラフG= (V, E)と枝重み関数w : E R

重みの総和w(T) = 81 最適か?

(59)

最大木問題

連結なグラフG= (V, E)と枝重み関数w : E R

重みの総和w(T) = 82 最適か?

(60)

最大木の特徴づけ

定理:任意の(大域木)T に対して,T が重みwに関する最大木である ための必要十分条件は、

(*) 木T のすべての初等変換T ∪ {e} \ {e0} によってその重みが大き くならない,すなわち,w(e) w(e0)であることである.

2 (注) (*) が成り立つとき,貪欲アルゴリズムでT が求められるような 並び w(e1) w(e2) ≥ · · · ≥ w(en) が存在する.

O(|E|2) 個の近傍における局所最適性=大域最適性 !!

————————————————————————————–

双対貪欲アルゴリズム ←− マトロイドの双対性 (次ページ以降に例で)

(61)

(62)

(63)

(64)

(65)

(66)

(67)

(68)

(69)

(70)

(71)

(72)

(73)

全域木になって,最大重み全域木が見つかった!

最小重みの補木(削除された枝集合)が見つかった!

(74)

木族の多面体表現

T : (1,0,0), (0,1,0), (0,0,1) T : (1,1,0), (1,0,1), (0,1,1)

(特性ベクトル)

(75)

木族の多面体表現

B(f) = {x RE | ∀X E : x(X) ≤f(X), x(E) = f(E)}

定理:B(f)の端点の全体=(全域)木の特性ベクトルの全体. 2 定理:B(f)の隣接する端点に対応する(全域)木TT0は,木の初等

変換で移り合える二つの木である. 2

系:B(f)の辺ベクトルは,(0,· · · ,0,±1,0,· · · ,0,1,0,· · · ,0)の形で

ある. 2

(注)B(f)は基多面体と呼ばれる. 辺ベクトルの数は,O(|E|2)である. (辺多項式な多面体)

(76)

重み関数w : E [0,1]

Tw: 重みwに関する最大木 fˆ(w) = w(Tw)(

= ∑

eTw

w(e))

(Twの重み)

Eの順列σ = (e1, e2,· · · , en)に対して,

∆(σ): 1 ≥w(e1) w(e2) ≥ · · · ≥ w(en) 0

を満たすすべての重みwに対して木Tσが存在して,Tσが重みwに関 する最大木となる. (←−貪欲アルゴリズム)

よって,fˆ(w) = ∑

eTσ

w(e)であるから,

(*) fˆは各領域(単体)∆(σ)上で線形な関数である.

(77)

∆(σ): 1 ≥w(e1) w(e2) ≥ · · · ≥ w(en) 0

n!個の順列σに対応する領域(単体)∆(σ)の集まりは,単位立方体[0,1]E の単体分割を与える.

(78)

任意の集合関数f : 2E Rを,各単体∆(σ)上で線形な関数になるよ うに単位立方体[0,1]E上に拡張した関数fˆは,f のLov´asz拡張と呼ば れる.

定理:任意の集合関数f : 2E Rが劣モジュラ関数であるための必 要十分条件は,そのLov´asz拡張fˆが凸関数であることである. 2

(79)

隣接する二つの単体に対応する順列は σ1 = (i1,· · · , ik1,ik, ik+1, ik+2,· · · , in), σ2 = (i1,· · · , ik1,ik+1, ik, ik+2,· · · , in)

の形で与えられる(共有する面の方程式は,x(ik)−x(ik+1) = 0).

S` = {ip | p = 1,· · · , `} (`= 1,· · · , n)

とおく. σ1, σ2に対応して貪欲アルゴリズムで求められる(全域)木を Tσ1, Tσ2とすると,マトロイド構造によって,

S` ∩Tσ1 = S` ∩Tσ2 (`= 1,· · · , k 1, k + 1,· · · , n)

|{ik, ik+1} ∩Tσ1| = |{ik, ik+1} ∩Tσ2|

が成り立つ. よって,Tσ1 6= Tσ2であるならば,

ik Tσ1, ik+1 ∈/ Tσ1 ik ∈/ Tσ2, ik+1 Tσ2

(注) b1 = χTσ1,b2 = χTσ2 は,基多面体B(f)の端点であり,b1 6= b2の とき,これらの二つの端点は隣接する. 2

(80)

劣モジュラ性・劣モジュラ関数f : 2E R m

基多面体 B(f) (辺ベクトルが(0,· · · ,0,±1,0,· · · ,0,1,0,· · · ,0)) m

貪欲アルゴリズム (重みの大小関係だけで最適解が決まる) m

Lov´asz拡張 fˆが凸 (各単体∆(σ)上で線形な凸関数)

(81)

劣モジュラ性・劣モジュラ関数f : 2E R m

基多面体 B(f) (辺ベクトルが(0,· · · ,0,±1,0,· · · ,0,1,0,· · · ,0)) m

貪欲アルゴリズム (重みの大小関係だけで最適解が決まる) m

Lov´asz拡張 fˆが凸 (各単体∆(σ)上で線形な凸関数)

————————————————————————————

整数格子点上の関数に対して,以上の議論を拡張可能

室田一雄氏(東大)による「離散凸解析」 (L\ 凸関数)

(82)

Coxeter-Freudenthal単体分割上の凸関数

−→ L\ 凸関数 (Murota (1996), Favati-Tardella (1990))

x

(1)

x

(2)

O

z

f : Zn R

f(x) +f(y) f(x∨y) + f(x∧y) (x, y Zn)

(このZn上の劣モジュラ性だけからはfの大域的な凸性は出てこない。)

(83)

————————————————————–

劣モジュラ関数f : 2E R m

Lov´asz拡張(凸関数) fˆ

————————————————————–

優モジュラ関数g : 2E R m

Lov´asz拡張(凹関数) gˆ

————————————————————–

(84)

————————————————————–

通常の凸関数と凹関数の分離定理+整数性

Lov´asz拡張(凸関数)fˆとLov´asz拡張(凹関数)ˆgの分離定理 m

基多面体の交わり定理

(最大・最小定理,整数性,効率的アルゴリズムをもつ)

劣モジュラ・フロー問題

(効率良く解ける離散最適化・組合せ最適化の広いクラスをモデル化す る. )

————————————————————–

(85)

————————————————————–

通常の凸関数と凹関数の分離定理+整数性

Lov´asz拡張(凸関数)fˆとLov´asz拡張(凹関数)ˆgの分離定理 m

基多面体の交わり定理

(最大・最小定理,整数性,効率的アルゴリズムをもつ)

劣モジュラ・フロー問題

(効率良く解ける離散最適化・組合せ最適化の広いクラスをモデル化す る. )

————————————————————–

劣モジュラ構造: 多くの物や人が関わる複雑なシステムの最適化に しばしば顔を出す.

= 効率的なアルゴリズムの構成

(86)

参考図書など

1. 伊理・藤重・大山:「グラフ・ネットワーク・マトロイド」(講座・

数理計画第7巻),産業図書(1986).

2. 藤重 悟: 「グラフ・ネットワーク・組合せ論」(工系数学講座18 巻),共立出版(2002)

3. 藤重 悟:「劣モジュラ構造と離散凸性」, 数学入門公開講座(数理 解析研究所,2005) (テキストは数理解析研ホームページで公開).

4. S. Fujishige: Submodular Functions and Optimization Second Edition (Annals of Discrete Mathematics, Vol. 58, Elsevier, 2005).

5. 室田 一雄:「離散凸解析」, 共立出版, 2001.

6. K. Murota: Discrete Convex Analysis (SIAM Monographs on Dis- crete Mathematics and Applications10, SIAM, 2003).

7. 田村 明久:「離散凸解析とゲーム理論」(オペレーションズ・リサー チ3),朝倉書店(2009).

e-mail: fujishig@kurims.kyoto-u.ac.jp

URL: http://www.kurims.kyoto-u.ac.jp/˜fujishig/

参照

関連したドキュメント

 On the Approximability of Budgeted Allocations and Improved Lower Bounds for Submodular Welfare Maximization and GAP, by. Deeparnab Chakrabarty,

2003: Murota, Discrete Convex Analysis, SIAM 2005: Fujishige, Submodular Functions and. Optimization, 2nd ed., Elsevier 2014: Simchi-Levi,

Mao, “Razumikhin-type theorems on exponential stability of neutral stochastic functional- differential equations,” SIAM Journal on Mathematical Analysis, vol.. Feng,

FOCS2007: Maximizing non-monotone submodular functions, by Uriel Feige, Vahab Mirrokni and Jan Vondrak..

Murota: Discrete Convex Analysis (SIAM Monographs on Dis- crete Mathematics and Applications 10, SIAM, 2003). Fujishige: Submodular Functions and Optimization (Annals of

Society for Indus- trial and Applied Mathematics (SIAM), Philadelphia, PA, 2000. Pullback and pushout constructions in C ∗ -algebra the- ory. CBMS Regional Conference Series in

Matroid intersection theorem (Edmonds) Discrete separation (Frank). Fenchel-type

RIMS Summer School (COSS 2018), Kyoto, July 2018.. Discrete Convex