近期 MAX SAT 近似算法解析
1. 随机算法及其分析
算法的目标是在每一步尝试提高界限,即随机设置变量 $x_i$ 以增加 $E[B_i - B_{i - 1}]$。设 $t_i$ 为将 $x_i$ 设置为真时 $B_i - B_{i - 1}$ 的值,$f_i$ 为将 $x_i$ 设置为假时 $B_i - B_{i - 1}$ 的值。
算法规则如下:
- 若 $f_i \leq 0$,则将 $x_i$ 设置为真。
- 若 $t_i \leq 0$,则将 $x_i$ 设置为假。
- 若设置 $x_i$ 为真或假都会提高界限,则以概率 $\frac{t_i}{t_i + f_i}$ 将 $x_i$ 设置为真。
引理 1 :对于 $i = 1, \ldots, n$,有 $t_i + f_i \geq 0$。
证明思路:任何因 $S_{i - 1}$ 和 $x_i$ 设为真而不满足的子句,在 $x_i$ 设为假时必然满足;反之亦然。设 $SAT_{i,t}$ 为在部分赋值 $S_{i - 1}$ 下 $x_i$ 设为真时满足的子句,$SAT_{i,f}$ 为 $x_i$ 设为假时满足的子句,$UNSAT_{i,t}$ 和 $UNSAT_{i,f}$ 分别为相应情况下不满足的子句。通过一系列推导可得 $t_i + f_i \geq 0$。
设 $x^ $ 为固定的最优解,对于部分赋值 $S_i$,$OPT_i$ 表示变量 $x_1, \ldots, x_i$ 按 $S_i$ 设置,$x_{i + 1}, \ldots, x_n$ 按 $x^ $ 设置的赋值。 <
超级会员免费看
订阅专栏 解锁全文


被折叠的 条评论
为什么被折叠?



