1 / 58

組合せ最適化問題の近似解法

組合せ最適化問題の近似解法. 東京大学大学院工学系研究科 計数工学専攻 松井知己. 発表の目次. 近似解法とは? MAX SAT 問題の近似解法 1 / 2近似解法  0 . 632 近似解法 3 / 4近似解法 MAX CUT 問題 0 . 878 近似解法 半正定値計画 MAX 2 SAT 問題の 0 . 878 近似解法. 近似解法とは?. 近似解法 : 近似精度の存在する解法. 得られる解と最適解との距離の見積もりが存在. 発見的解法 : 近似精度は不明. 近似比率: (最大化問題の場合) =(得られた解の目的関数値)/(最適値)

Download Presentation

組合せ最適化問題の近似解法

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 組合せ最適化問題の近似解法 東京大学大学院工学系研究科 計数工学専攻 松井知己

  2. 発表の目次 • 近似解法とは? • MAX SAT問題の近似解法 • 1/2近似解法  • 0.632近似解法 • 3/4近似解法 • MAX CUT問題 • 0.878近似解法 • 半正定値計画 • MAX 2SAT問題の0.878近似解法

  3. 近似解法とは? • 近似解法:近似精度の存在する解法. • 得られる解と最適解との距離の見積もりが存在. • 発見的解法:近似精度は不明. • 近似比率:(最大化問題の場合) • =(得られた解の目的関数値)/(最適値) • α近似解法: • 近似比率α以上の解を必ず求める解法.

  4. MAX SATの近似解法

  5. 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つ真

  6. 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 への真偽割当は存在しない.

  7. SAT問題(定義) • SAT問題(Satisfiability problem:充足可能性問題) • 入力:ブール変数U,クローズの集合Γ. • 質問:∃? U への真偽割当, • Γ中のクローズを全て真となる. • リテラル:入力されたブール変数,またはその否定 • クローズ:リテラルの集合 • クローズが真⇔クローズ中のリテラルが •           少なくとも1つは真 • NP‐完全である事が示された最初の問題. • [Cook71]

  8. 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

  9. MAX SAT問題(定義) • MAX SAT問題 • 入力:ブール変数U,クローズの集合Γ. •   非負整数のクローズ重みw:Γ→Z. • 問題:Γ中の真となるクローズ重みの和が •   最大となる,Uへの真偽割当を求めよ. • 各クローズ中のリテラルがk個以下⇒ MAX kSAT • MAX 2SAT問題もNP‐困難 • [ Garey,Johnson and Stockmeyer 71]

  10. MAX SATの1/2 近似解法 [D.S.Johnson 74] ●非常に単純なランダム化算法.

  11. 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

  12. 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)*最適値.

  13. 1-(1/2)k近似解法 • リテラルをk個以上含むクローズが •  真となる確率は 1-(1/2)k以上となる. • 任意のクローズが •  リテラルをk個以上含むならば, • 1/2近似解法ではなく, • 1-(1/2)k近似解法となる.

  14. MAX SATの0.632 近似解法 [Goemansand Williamson 94] ●線形緩和問題を用いる. ●問題例によって確率を変える   ランダム化算法.

  15. 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

  16. 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*で真とする.

  17. { 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*で真とする.

  18. ∑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 *

  19. 補題: |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

  20. ≧(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ならば,

  21. ≧(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‥

  22. MAX SATの3/4 近似解法 [Goemansand Williamson 94] ●1/2近似解法 と 0.632近似解法を   組み合わせる.

  23. 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

  24. 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)

  25. 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}

  26. 脱ランダム化(derandomization)

  27. 脱ランダム化 重みの総和=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となる. -

  28. MAX CUTの近似解法

  29. 5 3 3 2 4 5 1 MAX CUT問題(問題例) • カット重み=8       カット重み=14 4 5 3 3 2 1 4 5

  30. U 4 5 3 3 2 4 V-U 5 1 カットの定義 • グラフG=(V,E) • 頂点集合U⊆V δ(U):カット w(U):カット重み14

  31. 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]

  32. MAX CUTの1/2 近似解法 ●非常に単純なランダム化算法.

  33. 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)*最適値

  34. MAX CUTの0.878 近似解法 [Goemans and Williamson 95] ●MAX CUTを   非凸2次連続最適化問題に変形. ●半正定値計画緩和. ●ランダム化アルゴリズム.

  35. 球面配置問題 • 入力:無向グラフ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 }

  36. -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 }

  37. 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 }

  38. 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))

  39. 定理の証明(下) • 原点を境界に含む閉半空間全てを等確率で発生. • 発生した閉半空間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 }

  40. 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 }

  41. 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’)

  42. 緩和問題 • 球面配置問題: • 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 }

  43. なぜ緩和問題になっているのか? • カット配置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 }

  44. 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θ))

  45. 最適値の比率 • 定理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 }

  46. 0.878近似解法 • 任意の球面配置vに対し,原点を境界に含む閉半空間 • 全てを等確率で発生させる事により,vの目的関数値 • ∑w(i,j) d(v(i )v( j)) 以上のカットを生成出来る. • 定理(緩和問題の最適解の目的関数値) • ≧0.878 (最大カットの重み) • 0.878近似解法 • (1)緩和問題の最適解配置v’(i )を求める. • (2)球面配置v’(i )の目的関数値 •    以上のカットを生成する. {i,j }

  47. 半正定値計画 [Goemans and Williamson 95] ●球面配置問題の緩和問題を,   半正定値計画問題に変形する.

  48. 球面配置問題の緩和問題 • 球面配置問題=最大カット問題(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 }

  49. 半正定値行列の出現 • 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 }

  50. 半正定値計画への変形 • 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 }

More Related