The document describes the MAX-SAT problem and a stochastic strategy for finding its solution. The MAX-SAT problem involves finding an assignment of variables that maximizes the number of satisfied clauses in a Boolean formula. The proposed strategy works as follows: (1) Calculate the expected number of satisfied clauses for each possible variable assignment; (2) Set each variable to the value that maximizes this expectation, recursively. This stochastic approach converts the MAX-SAT problem into a linear relaxation that can be solved iteratively.
Maximizing SAT clause fulfillment through stochastic relaxation
1. Дерандомизация и метод условных вероятностей для
«MAX-SAT»
Н.Н. Кузюрин С.А. Фомин
10 октября 2008 г.
E X = 4.78
Иногда вероятностные алгоритмы могут
x1 = 0 x1 = 1 быть «дерандомизированы» —
E X(x1 = 0) = 2.5
x2 = 0
E X(x1 = 1) = 6.4
x2 = 1
конвертированы в детерминированные
E X(x1 = 0, x2 = 0) = 5.3 E X(x1 = 0, x2 = 1) = 2.1 алгоритмы.
E X(x1 = 0, x2 = 1, x3 = 0) = 1
x3 = 0 x3 = 1
E X(x1 = 0, x2 = 1, x3 = 1) = 4
Один из таких методов — «метод
условных вероятностей».
1 / 13
2. Задача MAX-SAT
Задача
Максимальная выполнимость/MAX-SAT.
Даны m скобок конъюнктивной нормальной формы (КНФ) с n
переменными. Найти значения переменных, максимизирующие число
выполненных скобок.
xi : независимые случайные величины,
P{xi = 1} = pi , P{xi = 0} = 1 − pi .
X (x1 , . . . , xn ): число невыполненных скобок в КНФ.
Надо найти x :
ˆ
X (ˆ) ≤ E X .
x
2 / 13
3. Задача MAX-SAT
Задача
Максимальная выполнимость/MAX-SAT.
Даны m скобок конъюнктивной нормальной формы (КНФ) с n
переменными. Найти значения переменных, максимизирующие число
выполненных скобок.
xi : независимые случайные величины,
P{xi = 1} = pi , P{xi = 0} = 1 − pi .
X (x1 , . . . , xn ): число невыполненных скобок в КНФ.
Надо найти x :
ˆ
X (ˆ) ≤ E X .
x
3 / 13
4. Покомпонентная стратегия нахождения x
^
1 Вычисляем
E X = 4.78
f0 ← E X (x| x1 = 0)
x1 = 0 x1 = 1
f1 ← E X (x| x1 = 1)
E X(x1 = 0) = 2.5 E X(x1 = 1) = 6.4
x2 = 0 x2 = 1 2 Если f0 < f1 , то d1 = 0,
E X(x1 = 0, x2 = 0) = 5.3 E X(x1 = 0, x2 = 1) = 2.1 иначе d1 = 1.
x3 = 0 x3 = 1
3 Вычисляем
E X(x1 = 0, x2 = 1, x3 = 0) = 1 E X(x1 = 0, x2 = 1, x3 = 1) = 4
f0 ← E X (x| x1 = d1 , x2 = 0)
E X (x| x1 = d1 , . . . , xn = dn ) = f1 ← E X (x| x1 = d1 , x2 = 1)
= X (d1 , . . . , dn ) 4 Если f0 < f1 , то d2 = 0,
иначе d2 = 1.
5 ...
4 / 13
5. Покомпонентная стратегия нахождения x
^
E X = 4.78
x1 = 0 x1 = 1
E X(x1 = 0) = 2.5 E X(x1 = 1) = 6.4
x2 = 0 x2 = 1
E X(x1 = 0, x2 = 0) = 5.3 E X(x1 = 0, x2 = 1) = 2.1
x3 = 0 x3 = 1
E X(x1 = 0, x2 = 1, x3 = 0) = 1 E X(x1 = 0, x2 = 1, x3 = 1) = 4
5 / 13
6. Почему эта стратегия работает?
E X = P{x1 = 1} E X (x| x1 = 1) + P{x1 = 0} E X (x| x1 = 0) =
= p1 E X (x| x1 = 1) + (1 − p1 ) E X (x| x1 = 0) ≥
≥ p1 E X (x| x1 = d1 ) + (1 − p1 ) E X (x| x1 = d1 ) =
= (p1 + 1 − p1 ) E X (x| x1 = d1 ) = E X (x| x1 = d1 ).
Аналогично продолжая:
E X ≥ E X (x| x1 = d1 , . . . , xn = dn ).
Но
E X (x| x1 = d1 , . . . , xn = dn ) = X (d1 , . . . , dn ).
6 / 13
7. Задача
MAX-SAT(IP)
Cj : скобка.
zj = {0, 1} : значение скобки.
Cj+ : i : xi ∈ Cj (положительные литералы в скобке).
Cj− : i : xi ∈ Cj .
m
zj → max (1)
j=1
xi + (1 − xi ) ≥ zj , ∀j.
i∈Cj+ i∈Cj−
xi , zj ∈ {0, 1}, ∀i, j
7 / 13
8. Линейная релаксация задачи «MAX-SAT»
m
zj → max (2)
j=1
xi + (1 − xi ) ≥ zj , ∀j.
i∈Cj+ i∈Cj−
xi , zj ∈ [0, 1], ∀i, j
8 / 13
9. Вход: Формулировка задачи «MAX-SAT» в виде (1).
x ← решения линейной релаксации (2)
ˆ
for all i ∈ {1..m} do
xi ← 0
if random(0..1) ≤ xi then
ˆ
xi ← 1 {xi ← 1 с вероятностью xi }
ˆ
end if
end for
Выход: (x1 , . . . , xm ).
Теорема
Алгоритм «Линейная релаксация и вероятностное округление»
обеспечивает приближенное решение «MAX-SAT», со средней
1
точностью (1 − e ).
Откуда следует, что
m
EX ≤
e
m
X (x1 = d1 , . . . , xn = dn ) ≤
e
9 / 13
10. Дерандомизация для MAX-SAT
Вероятность невыполнения j-й дизъюнкции
Pj = P{Cj = 0} = P xi + (1 − xi ) = 0 .
+
i∈C −
i∈C
j j
m
EX = Pj , (3)
j=1
Пусть первые k переменных определены и
I0 : ∀i ∈ I0 xi = 0
I1 : ∀i ∈ I1 xi = 1
Если I0 ∩ Cj− = ∅ или I1 ∩ Cj+ = ∅, то Pj = 0, иначе:
Pj = (1 − pi ) · pi . (4)
i∈Cj+ I0 i∈Cj− I1
10 / 13
11. Дерандомизация для MAX-SAT
Вход: Формулировка задачи «MAX-SAT» в виде (1).
Выход: (x1 , . . . , xn ) — приближенное решение (1).
(p1 , . . . , pn ) ← решения линейной релаксации (2).
for all i ∈ {1..n} do
f0 = E X (x| xi = 0) {Вычисляется через (4)}
f1 = E X (x| xi = 1) { и (3)}
if f0 < f1 then
xi ← 0
else
xi ← 1
end if
end for
return x
Упражнение
Как организовать вычисление f0 и f1 , чтобы сложность алгоритма
(кроме решения линейной релаксации) была O(mn)?
11 / 13
12. Дерандомизация для MAX-SAT
Вход: Формулировка задачи «MAX-SAT» в виде (1).
Выход: (x1 , . . . , xn ) — приближенное решение (1).
(p1 , . . . , pn ) ← решения линейной релаксации (2).
for all i ∈ {1..n} do
f0 = E X (x| xi = 0) {Вычисляется через (4)}
f1 = E X (x| xi = 1) { и (3)}
if f0 < f1 then
xi ← 0
else
xi ← 1
end if
end for
return x
Упражнение
Как организовать вычисление f0 и f1 , чтобы сложность алгоритма
(кроме решения линейной релаксации) была O(mn)?
12 / 13