Derandomization Maxsat

433 views
360 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
433
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Derandomization Maxsat

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  13. 13. Интернет поддержка курса http://discopal.ispras.ru/ Вопросы? 13 / 13

×