Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Derandomization Maxsat

461 views

Published on

  • Be the first to comment

  • Be the first to like this

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

×