580 likes | 848 Views
組合せ最適化問題の近似解法. 東京大学大学院工学系研究科 計数工学専攻 松井知己. 発表の目次. 近似解法とは? MAX SAT 問題の近似解法 1 / 2近似解法 0 . 632 近似解法 3 / 4近似解法 MAX CUT 問題 0 . 878 近似解法 半正定値計画 MAX 2 SAT 問題の 0 . 878 近似解法. 近似解法とは?. 近似解法 : 近似精度の存在する解法. 得られる解と最適解との距離の見積もりが存在. 発見的解法 : 近似精度は不明. 近似比率: (最大化問題の場合) =(得られた解の目的関数値)/(最適値)
E N D
組合せ最適化問題の近似解法 東京大学大学院工学系研究科 計数工学専攻 松井知己
発表の目次 • 近似解法とは? • MAX SAT問題の近似解法 • 1/2近似解法 • 0.632近似解法 • 3/4近似解法 • MAX CUT問題 • 0.878近似解法 • 半正定値計画 • MAX 2SAT問題の0.878近似解法
近似解法とは? • 近似解法:近似精度の存在する解法. • 得られる解と最適解との距離の見積もりが存在. • 発見的解法:近似精度は不明. • 近似比率:(最大化問題の場合) • =(得られた解の目的関数値)/(最適値) • α近似解法: • 近似比率α以上の解を必ず求める解法.
SAT問題(問題例) • SAT問題(Satisfiability problem:充足可能性問題) • ブール変数:U={a1,a2,a3 } • クローズ:Γ={C1 ,C2,C3,C4,C5, C6} • C1 = { a2 }, • C2 = {¬a1, a2,¬a3 }, • C3 = {¬a1,¬a2,¬a3 }, • C4 = {¬a1,¬a2, a3 }, • C5 = {a1,¬a2 }, • C6 = {a1, a3 } • (¬aはaの否定を意味する.) • Γ中のクローズを • 全て真とする. • U への真偽割当は • あるか? • クローズが真 • ⇔クローズ中のリテラルが • 少なくとも1つ真
SAT問題(問題例と真偽割当) • U={ a1, a2, a3 } • T T F • C1 = { a2 }⇒T • C2 = {¬a1, a2,¬a3 }⇒T • C3 = {¬a1,¬a2,¬a3 }⇒T • C4 = {¬a1,¬a2, a3 }⇒F • C5 = {a1,¬a2 }⇒T • C6 = {a1, a3 } ⇒T Γ中のクローズを全て真とする,U への真偽割当は存在しない.
SAT問題(定義) • SAT問題(Satisfiability problem:充足可能性問題) • 入力:ブール変数U,クローズの集合Γ. • 質問:∃? U への真偽割当, • Γ中のクローズを全て真となる. • リテラル:入力されたブール変数,またはその否定 • クローズ:リテラルの集合 • クローズが真⇔クローズ中のリテラルが • 少なくとも1つは真 • NP‐完全である事が示された最初の問題. • [Cook71]
MAX SAT(問題例) • U={ a1, a2, a3 }例題提供:宮本裕一郎 • T T F 重み • C1 = { a2 }4⇒ T 4 • C2 = {¬a1, a2,¬a3 }1⇒ T 1 • C3 = {¬a1,¬a2,¬a3 }6⇒ T 6 • C4 = {¬a1,¬a2, a3 }4⇒ F× • C5 = {a1,¬a2 }3⇒ T3 • C6 = {a1, a3 } 9⇒ T 9 • 真となるクローズ重みの総和を最大化. 総和=27 クローズ重み輪 23
MAX SAT問題(定義) • MAX SAT問題 • 入力:ブール変数U,クローズの集合Γ. • 非負整数のクローズ重みw:Γ→Z. • 問題:Γ中の真となるクローズ重みの和が • 最大となる,Uへの真偽割当を求めよ. • 各クローズ中のリテラルがk個以下⇒ MAX kSAT • MAX 2SAT問題もNP‐困難 • [ Garey,Johnson and Stockmeyer 71]
MAX SATの1/2 近似解法 [D.S.Johnson 74] ●非常に単純なランダム化算法.
1/2近似解法(数値例) • 1/2近似解法: • 各ブール変数を1/2の確率で真とする. • 1/2 1/2 1/2(重み総和=27) • C1 = { a2 }4×(1/2) =2 • C2 = {¬a1, a2,¬a3 }1×(7/8) =7/8 • C3 = {¬a1,¬a2,¬a3 }6×(7/8) =21/4 • C4 = {¬a1,¬a2, a3 }4×(7/8) =7/2 • C5 = {a1,¬a2 }3×(3/4) =9/4 • C6 = {a1, a3 } 9×(3/4) =27/4 • 真となるクローズ重みの総和の期待値=22
1/2近似解法 • 1/2近似解法: • 各ブール変数を1/2の確率で真とする. • 解析:リテラルをk個含むクローズが • 真となる確率は 1-(1/2)kとなる. • 真となるクローズの重みの期待値zは, • z=∑{Pr[Cが真]w(C )|C∈Γ} • =∑{(1-(1/2)k)w(C )|C∈Γ,|C |=k} • ≧∑{(1/2)w(C )|C∈Γ} • (重みの総和)≧(最適値)より, • z≧∑{(1/2)w(C )|C∈Γ}≧ (1/2)*最適値.
1-(1/2)k近似解法 • リテラルをk個以上含むクローズが • 真となる確率は 1-(1/2)k以上となる. • 任意のクローズが • リテラルをk個以上含むならば, • 1/2近似解法ではなく, • 1-(1/2)k近似解法となる.
MAX SATの0.632 近似解法 [Goemansand Williamson 94] ●線形緩和問題を用いる. ●問題例によって確率を変える ランダム化算法.
m MS: j=1 整数計画への定式化 • ブール変数の集合U={a1,a2,...,an}, • クローズの集合Γ= {C1,C2,...,Cm} • リテラルの添え字集合{1,2,...,n,n+1,...,2n} • ただし1≦i≦nならば,iはリテラルaiに, • n+1≦n+i≦2nならば,n+iはリテラル¬aiに対応. • 変数x1,x2,...,xn ,xn+1,xn+2,...,x2n,z1,z2,...,zm • xi =1⇔リテラルai が真, zj=1⇔クローズCj が真. max.∑wj zj s.t. xi+xn+i=1 (∀i), xi∈{0,1}(∀i), zj ≦∑ xi (∀j),zj∈{0,1}(∀j). i ∈ cj
MS: max.∑wj zj s.t. xi+xn+i=1 (∀i), 0≦xi≦1 (∀i), zj ≦∑ xi (∀j), 0≦zj≦1(∀j). i ∈ cj m j=1 線形緩和問題 • ランダム化算法: • (x*,z*)線形緩和問題の最適解. • 各ブール変数 ai を確率 xi*で真とする.
{ a2 }4 {¬a1, a2,¬a3 }1 {¬a1,¬a2,¬a3 }6 {¬a1,¬a2, a3 }4 {a1,¬a2 }3 {a1, a3 } 9 max.4z1+1z2+6z3+4z4+3z5+9z6 s.t. x2 ≧ z1 x4 +x2 +x6≧ z2 x4 +x5 +x6≧ z3 x4 +x5 +x3≧ z4 x1 +x5 ≧ z5 x1 +x3≧ z6 xi + xn+i = 1, 0≦xi , xn+i ≦1(∀ i) 9*(1ー(1/4)(1/2)) 期待値=21.4 ≧ 0.632*MSの最適値≧ 0.632MSの最適値 ランダム化算法(数値例) ランダム化算法: 線形緩和問題の最適解 x* =(3/4,3/4,1/2,1/4,1/4,1/2) MSの最適値=26.⇒ MSの最適値の上界 各ブール変数 ai を確率 xi*で真とする.
∑wj (1- Π x*[i]) i ∈cj i +n (i =1,...,n) [i]= i ーn (i = n+1,...,2n) m 補題: j=1 |Cj|=kならば,1- Π x*[i]≧ 1‐(1‐1/k)k i ∈cj ランダム化算法(定義) • (x*,z*)線形緩和問題の最適解.各ブール変数 ai を確率 xi*で真とする. • 真となるクローズ重みの総和の期待値 • = zj zj *
補題: |Cj|=kならば,1- Π x*[i]≧ 1‐(1‐1/k)k i ∈cj 補題の証明 • 証明: • 相加相乗平均より, • 1- Π x*[i]≧1‐ (∑ (1‐x*i)/k) • ≧ 1‐(1‐ /k)k • z*jの関数 1‐(1‐ z*j /k) の凹性より • ≧ 1‐(1‐1/k) zj * k i ∈cj i ∈cj Z*j k z*j k
≧(MAX k’SATの最適値) (1‐(1‐1/k’)k’ ) ∑∑wj (1- Π x*[i]) cj∈Γk i ∈cj ≧∑∑wj zj (1‐(1‐1/k)k) ∞ ∞ cj∈Γk k=1 k=1 ≧(線形緩和の最適値) (1‐(1‐1/k’)k’ ) (1‐(1‐1/k )k)近似解法 • 真となるクローズの重みの和の期待値は? • Γk:リテラルをk個含むクローズの集合. • MAX k’SATならば,
≧(MAX k’SATの最適値) (1‐(1‐1/k’)k’ ) 0.632近似解法 • MAX k’SATならば, • 期待値 • k’ (1‐(1‐1/k’ )k’) • 1 1 • 2 3/4=0.75‥ • 3 19/27=0.703‥ • 4 175/256=0.684‥ • ∞1-1/e=0.632‥
MAX SATの3/4 近似解法 [Goemansand Williamson 94] ●1/2近似解法 と 0.632近似解法を 組み合わせる.
1/2近似解法と0.632近似解法 • リテラルをk’個含むクローズならば, • 1/2近似解法:真となる確率≧(1‐(1/2)k’ ) • .632近似解法:真となる確率≧(1‐(1‐1/k’)k’ ) • k’ (1‐(1‐1/k’ )k’) (1‐(1/2)k’ ) • 1 1 1/2 • 2 3/4=0.75‥ 3/4=0.75 • 3 19/27=0.703‥ 7/8=0.875 • 4 175/256=0.684‥ 15/16=0.9735 • ∞1-1/e=0.632‥ 1
4/3近似解法 • 4/3近似解法 • 1/2近似解法と 0.632 近似解法のうち一方を • 確率(1/2)で選んで実行する. • 任意の正整数k’に対し, • [(1‐(1‐1/k’ )k’)+(1‐(1/2)k’ )]/2≧3/4 • が成り立つ. • 期待値≧ (MAX SATの線形緩和問題の最適値) • [(1‐(1‐1/k’ )k’)+(1‐(1/2)k’ )]/2 • ≧ (MAX SATの最適値) (3/4)
4/3近似解法(実際) • 4/3近似解法 • 1/2近似解法と 0.632 近似解法のうち一方を • 確率(1/2)で選んで実行する. • 下の方が同じかより良い. • 1/2近似解法と 0.632 近似解法の両方を • 実行し良い方を選ぶ. • z1/2 :1/2近似解法の期待値 • zLP :0.632 近似解法の期待値 • ( z1/2 +zLP)/2 ≦ max{z1/2,zLP}
脱ランダム化 重みの総和=27 1/2近似解法 a1,a2,a3が真となる確率(1/2,1/2,1/2) 期待値=20.6‥ = 4(1-1/2)+1(1-(1/2)3)+6 (1-(1/2)3) +4 (1-(1/2)3)+3 (1-(1/2)2)+9 (1-(1/2)2) { a2 }4 {¬a1, a2,¬a3 }1 {¬a1,¬a2,¬a3 }6 {¬a1,¬a2, a3 }4 {a1,¬a2 }3 {a1, a3 } 9 a1 a2 a3が真となる確率(x,1/2,1/2) 期待値= 4(1-1/2)+ 1(1-(1/2)2(1-x)) +6 (1-(1/2)2 (1-x)) +4 (1-(1/2)2(1-x))+3 (1-(1/2) x)+9 (1-(1/2)x) =19+(13/4) x x=1とすれば、22.25となる. a1 a2 a3が真となる確率(1,y,1/2) 期待値= 4y+ 1(1-(1/2)y) +6 (1-(1/2) (1-y)) +4 (1-(1/2) (1- y))+3 +9 =19+3.5y y=1とすれば、22.5となる. a1 a2 a3が真となる確率(1,1,z) 期待値= 22+1(1-z) z=1とすれば、23となる. -
4 5 3 3 2 4 5 1 MAX CUT問題(問題例) • カット重み=8 カット重み=14 4 5 3 3 2 1 4 5
U 4 5 3 3 2 4 V-U 5 1 カットの定義 • グラフG=(V,E) • 頂点集合U⊆V δ(U):カット w(U):カット重み14
MAX CUT問題(定義) • MAX CUT問題 • 入力:無向グラフG=(V,E),非負枝重みw:E→Z. • 問題:G中のカットで, • 重み最大となるものを求めよ. • 頂点部分集合U⊆Vに対するカット: • δ(U)={e∈E |e はU中の頂点とU に無い頂点を結ぶ} • カットδ(U)の重さ: • w(U)= δ(U)中の枝重みの総和. • MAX CUT問題:max {w (U ) | U⊆V} • NP‐困難[ Karp 72]
MAX CUTの1/2 近似解法 ●非常に単純なランダム化算法.
1/2近似解法 • MAX CUT問題:max {w(U) | U⊆V} • 1/2近似解法: • 各頂点を1/2の確率でUに入れる. • 解析:各枝について,両端の内 • ちょうど一方がUに入る確率は1/2. • カットの重みの期待値z は, • z=∑{Pr[e がδ(U)には入る]w(e )|e ∈E} • = ∑{(1/2)w(e )|e ∈E} • (枝重みの総和)≧(最大カットの重み)より, • z ≧ (1/2)*最適値
MAX CUTの0.878 近似解法 [Goemans and Williamson 95] ●MAX CUTを 非凸2次連続最適化問題に変形. ●半正定値計画緩和. ●ランダム化アルゴリズム.
球面配置問題 • 入力:無向グラフG=(V,E),非負枝重みw:E→Z, • S:原点を中心とし,半径1/π の球の表面. • (大円の半円弧の長さ=1) • ∀v,∀v’∈ S , • d(vv’)= v とv’を結ぶ円弧の短い方の長さ. • 球面配置問題 • グラフGの頂点をS上に配置して, • 枝重みと距離の積の総和を最大化する. • max{∑w(i,j) d(v(i )v( j))| v(i )∈ S (∀ i ∈V )} {i,j }
-v v 球面配置問題(定理) • max{∑w(i,j) d(v(i )v( j))| v(i )∈S(∀i∈V)} • 定理 • δ(U*):最大カット. • v (i ∈ U* ) • ∀ v∈S, v*(i )={ • - v (i∈V-U*) • 解v*(i )は球面配置問題の最適解. {i,j }
H 定理の証明(上) • 配置v*での目的関数値 • ∑w(i,j) d(v*(i )v*( j))= w (U*) (最大カットの値). • (任意の配置vでの目的関数値)≦w (U*)を示す. • H:原点を境界に含む閉半空間. • V(H):v(i)のうちHに含まれる点集合. • w(H):V(H)に対応するカットの重み. • 原点を境界に含む閉半空間 • 全てを等確率で発生させる. • 発生した閉半空間Hに対し, • w(H)の期待値は? {i,j }
i d(v’(i )v’( j)) j 半円弧の長さ=1 定理の証明(中) • 原点を境界に含む閉半空間全てを等確率で発生. • 発生した閉半空間Hに対し, w(H)の期待値は? • 頂点i,j間の弧の長さ=d(v’(i )v’( j))より, • 発生した閉半空間が頂点i,jを分ける確率は, • d(v’(i )v’( j))/(大円の半円弧の長さ)=d(v’(i )v’( j))
定理の証明(下) • 原点を境界に含む閉半空間全てを等確率で発生. • 発生した閉半空間Hに対し, w(H)の期待値は? • E[w(H)]=∑w(i,j) Pr[Hが頂点i,jを分ける] • =∑w(i,j) d(v(i )v( j)) • w(H)は発生するカットの重みの期待値より, • E[w(H)]≦ w(U*) (最大カット重み). • 以上より,任意の配置v(i )について, • ∑w(i,j) d(v(i )v( j))= E[w(H)]≦ w(U*) . {i,j } {i,j } {i,j }
H 球面配置からのカット生成 • max{∑w(i,j) d(v(i )v( j))| v(i )∈S(∀i∈V)} • 定理δ(U*):最大カット. • v (i ∈ U* ) • ∀ v∈S, v*(i )={ • - v (i∈ V-U*) • 解 v*(i )は球面配置問題の最適解. • 任意の球面配置vに対し, • 原点を境界に含む閉半空間全てを • 等確率で発生させる事により, • vの目的関数値∑w(i,j) d(v(i )v( j)) • 以上のカットを生成する事が出来る. {i,j } {i,j }
S 1/π d 1/2 頂点配置問題の緩和 • MAX CUT問題と頂点配置問題は本質的に等価. • →頂点配置問題を緩和する. • ∀v,∀v’∈ S , • f(vv’)= v v’ 間の直線距離のπ/2倍の2乗. • (d(vv’)=1 ⇔ v v’はSの直径 ⇔ f(vv’)=1) • 距離dをfで置き換える. • f(vv’)=(π/2)2||v - v’||2 • =(1/2)(1‐π2 v・v’)
緩和問題 • 球面配置問題: • max{∑w(i,j) d(v(i )v( j))| v(i )∈S(∀i∈V)} • 緩和問題: • max{∑w(i,j) f(v(i )v( j))| v(i )∈S(∀i∈V)} {i,j } {i,j }
なぜ緩和問題になっているのか? • カット配置v’ : • ∃U :頂点部分集合. • v (i ∈ U ) • ∃v∈S, v’(i )={ • - v (i∈ V-U). • v’ がカット配置⇔∀i,∀j,d(v(i )v( j))は0または1 • ⇔∀i,∀j, f(v(i )v( j))は0または1 • ⇒ ∑w(i,j) d(v(i )v( j))=∑w(i,j) f(v(i )v( j)) • ∴最大カット配置の目的関数値 • =(球面配置問題の最適値) • ≦(緩和問題の最適値) {i,j } {i,j }
S 1/π d θ 1/2 min (2/π)(θ/(1-cosθ))=0.878‥ 0≦θ≦π 距離の比率 • 定理 • ∀v,∀v’∈ S , d(vv’)> 0.878f(vv’) • d(vv’)=θ/π • f(vv’)=(1-cosθ)/2 • d(vv’)/f(vv’) • ≧(2/π)(θ/(1-cosθ))
最適値の比率 • 定理v’(i ):緩和問題の最適解. • (最大カット重み)≧(配置v’(i )の目的関数値) • ≧0.878(球面配置問題の最適値)=0.878(最大カット重み) • v’(i ):緩和問題の最適解. • v*(i ):球面配置問題の最適解. • (最大カット重み)≧∑w(i,j) d(v’(i )v’( j)) • ≧0.878∑w(i,j) f(v’(i )v’( j)) • ≧0.878∑w(i,j) f(v*(i )v*( j)) • =0.878∑w(i,j) d(v*(i )v*( j) ) {i,j } {i,j } {i, j } {i, j }
0.878近似解法 • 任意の球面配置vに対し,原点を境界に含む閉半空間 • 全てを等確率で発生させる事により,vの目的関数値 • ∑w(i,j) d(v(i )v( j)) 以上のカットを生成出来る. • 定理(緩和問題の最適解の目的関数値) • ≧0.878 (最大カットの重み) • 0.878近似解法 • (1)緩和問題の最適解配置v’(i )を求める. • (2)球面配置v’(i )の目的関数値 • 以上のカットを生成する. {i,j }
半正定値計画 [Goemans and Williamson 95] ●球面配置問題の緩和問題を, 半正定値計画問題に変形する.
球面配置問題の緩和問題 • 球面配置問題=最大カット問題(MC): • max{∑w(i,j) d(v(i )v( j))| v(i )∈S(∀i∈V)} • 緩和問題(MC): • max{∑w(i,j) f(v(i )v( j))| v(i )∈S(∀i∈V)} {i,j } {i,j }
半正定値行列の出現 • MC • max{∑w(i,j) f(v(i )v( j))| v(i )∈S (∀i∈V)} • =max{∑w(i,j) (1-π2v(i )・v( j) )| v(i)∈S(∀i∈V)} • 行列Y=[yij]をyij=(πv(i))・(πv(j))と定義する. • X=(v(1),..., v(n))とすると, Y= π2XtXより, • (1) Yは半正定値対称行列, • (2) yii=1(∀i∈V). • が成り立つ. {i,j } {i,j }
半正定値計画への変形 • MC • max{∑w(i,j) (1-π2v(i )・v( j) )| v(i)∈S(∀i∈V)} • 行列Y=[yij]をyij=(πv(i))・(πv(j))と定義する. • 変形 緩和 • max.∑w(i,j) (1-yij ) • sub.toY =[yij]は半正定値対称行列, • yii=1(∀i∈V), • Y= π2XtX , X=(v(1),..., v(n)).× {i,j } {i,j }