Derandomization Maxsat
Upcoming SlideShare
Loading in...5
×
 

Derandomization Maxsat

on

  • 449 views

 

Statistics

Views

Total Views
449
Views on SlideShare
449
Embed Views
0

Actions

Likes
0
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Derandomization Maxsat Derandomization Maxsat Presentation Transcript

  • Дерандомизация и метод условных вероятностей для «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
  • Задача 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
  • Задача 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
  • Покомпонентная стратегия нахождения 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
  • Покомпонентная стратегия нахождения 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
  • Почему эта стратегия работает? 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
  • Задача 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
  • Линейная релаксация задачи «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
  • Вход: Формулировка задачи «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
  • Дерандомизация для 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
  • Дерандомизация для 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
  • Дерандомизация для 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
  • Интернет поддержка курса http://discopal.ispras.ru/ Вопросы? 13 / 13