充足可能性問題は,整数計画問題 Pint として以下のように定式化される.φ={Cj :j ∈[m]} を X ={x1, . . . , xn}上の CNF 論理式として,
目的関数 : ∑
j∈[m]
yj
制約式 : ∑
xi∈Cj
zi+ ∑
¯ xi∈Cj
(1−zi)≥yj forj∈[m]
yj, zi ∈ {0,1}
例 9.3. X={x1, . . . , x5} 上の 3-CNF 論理式φが以下のようであるとき,
φ = {x1,(¯x1∨x2),(x1∨x¯2∨x¯3),(¯x1∨x¯3∨x4),x¯2,(¯x3∨x¯4∨x¯5)} φが入力である整数計画問題は以下のようになる.
目的関数 : ∑
j∈[6]
yj
制約式 :
z1 ≥ y1
(1−z1) +z2 ≥ y2
z1+ (1−z2) + (1−z3) ≥ y3 (1−z1) + (1−z3) +z4 ≥ y4
1−z2 ≥ y5
(1−z3) + (1−z4) + (1−z5) ≥ y6
yj, zi∈ {0,1}
上の定式化において,変数yj, zi のとる値を緩和して,以下のような線形計画問題 Plin を考える.
(yj, zi ∈ {0,1}が yj, zi ∈[0,1]に緩和される.) 目的関数 : ∑
j∈[m]
yj
制約式 : ∑
xi∈Cj
zi+ ∑
¯ xi∈Cj
(1−zi)≥yj forj∈[m]
yj, zi ∈[0,1]
事実 9.7. 一般に,整数計画問題はNP困難である.一方,線形計画問題は多項式時間計算可能である.
補題 9.8. φ = {Cj : j ∈ [m]} の最適解を t∗ とする.φ について線形計画問題 Plin の最適解を yj, zi∈[0,1]とする.このとき, ∑
j∈[m]
yj ≥ val(t∗).
問 9.9. この補題を証明しなさい.
入力:X 上の CNF論理式 φ
1. 線形計画問題 Plin を解く.(最適解をy ∈[0,1]m,z∈[0,1]n とする.)
2. 以下のような確率で決められるランダムな割り当て t:X → {0,1} を出力する.
Prt{xi = 1} = zi
Prt{xi = 0} = 1−zi
図16: 線形計画法を用いた乱択アルゴリズム
問 9.10. 3変数で5個の節からなる適当な入力を考案して,その入力に対する図 16 のアルゴリズ
ムの動作及び出力を示しなさい.(線形計画問題を解くときは,単体法などを用いて手計算で解くこ と.ソルバを利用しないこと.)
定理 9.3. φを,X 上の任意のk-CNF 論理式とする.図16のアルゴリズムの出力を t,φの最適 解を t∗ とする.このとき,
Et[val(t)] ≥ (1−(1−1/k)k)val(t∗).
証明. φ = {Cj : j ∈ [m]} とする.まず,任意の j ∈ [m] について,Cj が充足する確率を求める.
C1 = (x1∨ · · · ∨xk) とした場合,C1 が充足する確率は,
Prt {tにより C1 が充足する} = 1− ∏
i∈[k]
(1−zi)
≥ 1− (∑
i∈[k](1−zi) k
)k
(∵ 相加相乗平均の公式)
= 1− (
1−
∑
i∈[k]zi
k )k
≥ 1−(1−y1/k)k
∵ ∑
i∈[k]
zi≥y1
≥ (1−(1−1/k)k)y1. (∵ 下の問)
問 9.11. h(z) = 1−(1−z/k)k とする.(kは任意の自然数.)このとき,0≤z≤1について,
h(z) ≥ (1−(1−1/k)k)z.
この導出からも分かるように,C1 = (x1∨ · · · ∨xk) としても一般性を失わない.
問 9.12. C1 = (x1∨x¯2∨x¯3) のとき,C1 が充足する確率の下界はどうなるか.それを導出するた めの途中計算式を示しなさい.
任意の j ∈ [m]について上の式が成り立つから,定理 9.2 と同様(val(t) = Z = ∑
j∈[m]Zj)に して,
Et[val(t)] = ∑
j∈[m]
Et[Zj]
= ∑
j∈[m]
Prt {tにより Cj が充足する}
≥ ∑
j∈[m]
(1−(1−1/kj)kj)yj (∵ |Cj|=kj)
≥ (1−(1−1/k)k) ∑
j∈[m]
yj (∵ 1−(1−1/k)k は減少関数)
≥ (1−(1−1/k)k)val(t∗). (∵ 上の補題)
問 9.13. 1−(1−1/k)k が単調減少関数(k≥1)であることを示しなさい.
■
定義9.6
任意のk∈N について,g(k)def= 1−(1−1/k)k とする.
注9.2. g(k)は,大きさkの節が(Plinを解くことにより得られたランダムな割り当てにより)充足す る確率(の下界)を意味する.g(k)は単調減少関数であり,任意のk∈Nに対して,1−1/e≤g(k)<1.
問 9.14. 任意の自然数 k について,(1−1/k)k≤1/eであることを示しなさい.
注 9.3. 二つの関数 f(k) と g(k) を比較する.f(k) は増加関数であり,g(k) は減少関数である.
f(k) =g(k) となるのはk= 2 のときで,f(2) =g(2) = 0.75.
k 1 2 3 4 5
f(k) 0.5 0.75 0.875 0.9375 0.9687 g(k) 1 0.75 0.7037 0.6835 0.6723
入力:X 上の CNF論理式 φ
1. 線形計画問題 Plin を解く.(最適解をy ∈[0,1]m,z∈[0,1]n とする.)
2. 以下のような確率で決められるランダムな割り当てをt1 :X→ {0,1} とする.
Pr{xi= 1} = zi
Pr{xi= 0} = 1−zi
3. t2 を一様ランダムな割り当てとして,等確率でt1 または t2 をtとして出力する.
図17: 二つのアルゴリズムの融合
定理 9.4. φを,X 上の任意のk-CNF 論理式とする.図17のアルゴリズムの出力を t,φの最適 解を t∗ とする.このとき,
Et[val(t)] ≥ (3/4)val(t∗).
証明. φ = {Cj : j ∈ [m]} とする.まず,任意の j ∈ [m] について,Cj が充足する確率を求める.
C1 = (x1∨ · · · ∨xk) とした場合,C1 が充足する確率は,
Prt {tにより C1 が充足する} ≥ 1
2f(k) +1 2g(k)y1
= 1
2(1−2−k) + 1
2(1−(1−1/k)k)y1
≥ 1 2y1
(
(1−2−k) + (1−(1−1/k)k) )
(∵ y1 ≤1)
= 1 2y1
(
2−2−k−(1−1/k)k )
≥ 3
4y1 (∵ 下の問い)
任意のj ∈[m]について上の式が成り立つから,定理9.2 と同様(val(t) =Z =∑
j∈[m]Zj)にして,
Et[val(t)] = ∑
j∈[m]
Et[Zj] = ∑
j∈[m]
Prt {tにより Cj が充足する} ≥ ∑
j∈[m]
(3/4)yi ≥ (3/4)val(t∗).
■ 問 9.15. 任意の正整数 k≥1 について,(2−2−k−(1−1/k)k)≥3/2 であることを示しなさい.