19. 最大マッチング
• マッチング: 点素な枝の集合
• 以下の貪欲法を考える.
入力:グラフG = (V, E),枝の順番π
Mπ := ∅
for each e (順番が小さい順に)
if eがMπと頂点を共有しない
Mπ := Mπ + e
return Mπ
[補題] 任意のπに対して,|Mπ| ≧ |M*|/2
M*:最大マッチング
Kyoto University, Japan
20. 最大マッチングの(2, εn)近似
• あるπに対して|Mπ|を定数時間で近似したい
• 以下の様なオラクル πが有ると仮定.
π(e) = [eがMπに含まれる]
F := O(d2/ε2)個のランダムな枝集合
c := FのうちMπに含まれる枝の個数
return cm / |F| m:枝数
[定理] 高い確率でcm / |F|は|Mπ|の(1,εn)近似
⇒ M*の(2, εn)近似
Kyoto University, Japan
21. πの作成
[Nguyen, Onak ’08]
π(e):
res := true
for eに隣接する枝f
if f はeより順番が前 and π(f ) = true
res := false
return res
[Nguyen, Onak ’08]
任意のeに対して,Eπ[ π(e)のクエリ計算量] = 2O(d)
⇒ 計算量2O(d)/ε2の(2,εn)近似アルゴリズム
Kyoto University, Japan
22. πの改良 [本研究]
π(e):
for eに隣接する枝f (小さい順に見る)
if fはeより順番が前 and π(f) = true
return false
return true
[定理] Ee,π[ π(e)のクエリ計算量] = O(d)
⇒ 計算量O(d4/ε2)の(2,εn)近似アルゴリズム
Kyoto University, Japan
23. 最大マッチングの(1, εn)近似
• 増加パスを利用
長さ1の増加 M1 長さ3の増加 M3 長さ5の増加
G パスを適用 パスを適用 パスを適用
...
• 各Miに対するオラクルを階層的に構築
G M1 =Oπ M3 ...
Kyoto University, Japan
31. Max CSP
• Max CSP: 制約を出来るだけ多く充足する
• MaxCSP(L, Λ): 使う値をL,制約をΛに限定
例: Max Cut
u
(u, v), (v, w), (w, u) ∈ R
⇔ R ={(0, 1), (1, 0)}
v w
Max Cut = MaxCSP({0,1}, {R})
Kyoto University, Japan
32. 最適な定数時間近似
[定理] 任意のMaxCSP(L, Λ)に対して、
• ∀δ>0, (α, δn)近似は定数時間で可能
• ∀ε>0,∃δ>0, (α+ε, δn)近似はΩ(n1/2)時間必要
α = BasicLPの整数化ギャップ(∀I, opt(I) ≥ α∙lp(I))
自明 LP W(n1/2)時間
(O(1)時間) (O(1)時間) 必要
一致
Max SAT 0.5 0.75 0.75+ε
Max Cut 0.5 0.5 一致 0.5+ε
一致
Max Dicut 0.25 0.5 0.5+ε
一致
Max k-CSP 1/2k 2/2k 2/2k+ε
Kyoto University, Japan
35. BasicLP (Max Cutの場合)
μe: 枝eへの割り当ての確率分布
xv: 頂点vへの割り当ての確率分布
μ(u,v)とxu, xvは一貫している
目的関数: Ee Eβ〜μe [β = (0, 1) or (1, 0)]
½⋅ u v + ½⋅ u v = u v
e e
xu xv
μe
Kyoto University, Japan