Max Cut Semidefinite
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
759
On Slideshare
759
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
4
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Вероятностное округление для «MAX-CUT» Н.Н. Кузюрин С.А. Фомин 10 октября 2008 г. Задачи полуопределенного и векторного программирования. Вероятностное округление для задачи о максимальном разрезе в графе ( MAX-CUT ). 1 / 28
  • 2. Определение Пусть есть граф G = (V , E ). Разрезом (сечением, cut) называется разбиение множества вершин V на непересекающиеся множества S и T . Т.е. V = S ∪ T и S ∩ T = ∅. Определение Для графа G = (V , E ) и разреза (S, T ) ребро e = (v , t) считается пересекающим разрез, если v ∈ S, а t ∈ T . 2 / 28
  • 3. Определение Для графа G = (V , E ) размером разреза (S, T ) считается число ребер, пересекающих этот разрез. Если граф — взвешенный, т.е. каждому ребру e ∈ E соответствует некоторый вес we , то размером разреза (S, T ) считается сумма весов ребер пересекающих этот разрез: R(S, T ) = we . e=(v ,t)∈E : v ∈S,t∈T Задача «Максимальный разрез/MAX-CUT». Для взвешенного графа G = (V , E ) с весами we найти разрез (S, T ) с максимальным весом R(S, T ). 3 / 28
  • 4. Определение Вероятностный приближенный алгоритм A гарантирует точность C , если для всех входов I E mA (I ) 1≥ ≥ C > 0, m0 (I ) где m0 (I ) — оптимум, mA (I ) — значение, найденное алгоритмом, и решается задача максимизации. 4 / 28
  • 5. Для простого, невзвешенного графа можно применить простую стратегию: каждую вершину равновероятно (p = 1/2) приписать к множеству T или S. Упражнение Докажите, что этот вероятностный алгоритм является 0.5-приближенным. 5 / 28
  • 6. Задача «MAX-CUT(ЦП)» G = (V , E ) — входной граф, |V | = n; W = (wij ) — веса ребер, n × n матрица. Для отсутствующего между vi и vj ребра — wij = 0; yi — принадлежность вершины части разреза: vi ∈ S → yi = 1, vi ∈ T → yi = −1. Ребро (vi , vj ) ∈ (S, T ) ⇔ yi yj = −1. 1−yi yj R(S, T ) — Вес разреза (S, T ). R(S, T ) = i<j 2 wij . Задача целочисленного квадратичного программирования: 1 − yi yj ZЦП = wij → max 2 i<j ∀i yi ∈ {−1, 1}. 6 / 28
  • 7. Задача «MAX-CUT(ЦП)» G = (V , E ) — входной граф, |V | = n; W = (wij ) — веса ребер, n × n матрица. Для отсутствующего между vi и vj ребра — wij = 0; yi — принадлежность вершины части разреза: vi ∈ S → yi = 1, vi ∈ T → yi = −1. Ребро (vi , vj ) ∈ (S, T ) ⇔ yi yj = −1. 1−yi yj R(S, T ) — Вес разреза (S, T ). R(S, T ) = i<j 2 wij . Задача целочисленного квадратичного программирования: 1 − yi yj ZЦП = wij → max 2 i<j ∀i yi ∈ {−1, 1}. 7 / 28
  • 8. Линейная релаксация «MAX-CUT(ЦП)» Задача «MAX-CUT(VP)» 1 − vi · vj ZVP = wij → max 2 i<j ∀i v i · v i = 1, ∀i v i ∈ R n. «VP» ⇒ можем решать эффективно. ∗ ∗ ZЦП ≤ ZVP . 8 / 28
  • 9. Линейная релаксация «MAX-CUT(ЦП)» Задача «MAX-CUT(VP)» 1 − vi · vj ZVP = wij → max 2 i<j ∀i v i · v i = 1, ∀i v i ∈ R n. «VP» ⇒ можем решать эффективно. ∗ ∗ ZЦП ≤ ZVP . 9 / 28
  • 10. Линейная релаксация «MAX-CUT(ЦП)» Задача «MAX-CUT(VP)» 1 − vi · vj ZVP = wij → max 2 i<j ∀i v i · v i = 1, ∀i v i ∈ R n. «VP» ⇒ можем решать эффективно. ∗ ∗ ZЦП ≤ ZVP . 10 / 28
  • 11. Определение Матрица X ∈ R n×n является положительно полуопределенной если ∀a ∈ R n , aT Xa ≥ 0. Обозначение: X 0. Для симметрической X ∈ R n×n , следующее эквивалентно: X 0; X имеет неотрицательные собственные значения; X = V T V , для некоторого V ∈ R m×n , где m ≤ n. 11 / 28
  • 12. Задача «Полуопределенное программирование»a . cij xij → max(min) i,j ∀k aijk xij = bk , i,j X = (xij ) 0, ∀i, j xij = xji . a В англоязычной литературе SDP, semidefinite programming. Для задачи есть существуют эффективные полиномиальные алгоритмы, находящие приближенное решение с некоторой аддитивной ошибкой , и временем, ограниченным полиномом по длине входа и O(log( 1 )). 12 / 28
  • 13. Задача «Векторное программирование»a . cij (v i · v j ) → max(min) i,j ∀k aijk (v i · v j ) = bk , i,j ∀i v i ∈ R n . a В англоязычной литературе VP, vector programming. Эквивалентность задач «SDP» и «VP», следует из факторизации положительно полуопределенной матрицы X в виде X = V TV , (xij = v i · v j ). 13 / 28
  • 14. Задача «MAX-CUT(ЦП)» G = (V , E ) — входной граф, |V | = n; W = (wij ) — веса ребер, n × n матрица. Для отсутствующего между vi и vj ребра — wij = 0; yi — принадлежность вершины части разреза: vi ∈ S → yi = 1, vi ∈ T → yi = −1. Ребро (vi , vj ) ∈ (S, T ) ⇔ yi yj = −1. 1−yi yj R(S, T ) — Вес разреза (S, T ). R(S, T ) = i<j 2 wij . Задача целочисленного квадратичного программирования: 1 − yi yj ZЦП = wij → max 2 i<j ∀i yi ∈ {−1, 1}. 14 / 28
  • 15. Линейная релаксация «MAX-CUT(ЦП)» Задача «MAX-CUT(VP)» 1 − vi · vj ZVP = wij → max 2 i<j ∀i v i · v i = 1, ∀i v i ∈ R n. «VP» ⇒ можем решать эффективно. ∗ ∗ ZЦП ≤ ZVP . 15 / 28
  • 16. Линейная релаксация «MAX-CUT(ЦП)» Задача «MAX-CUT(VP)» 1 − vi · vj ZVP = wij → max 2 i<j ∀i v i · v i = 1, ∀i v i ∈ R n. «VP» ⇒ можем решать эффективно. ∗ ∗ ZЦП ≤ ZVP . 16 / 28
  • 17. Линейная релаксация «MAX-CUT(ЦП)» Задача «MAX-CUT(VP)» 1 − vi · vj ZVP = wij → max 2 i<j ∀i v i · v i = 1, ∀i v i ∈ R n. «VP» ⇒ можем решать эффективно. ∗ ∗ ZЦП ≤ ZVP . 17 / 28
  • 18. «SDP-округление MAX-CUT» Вход: «MAX-CUT» в виде «MAX-CUT(ЦП)» (v1 , . . . , vn ) ← решения релаксации «MAX-CUT(VP)» случайно выбираем r из равномерного распределения векторов единичной длины S ←T ←∅ for all i ∈ {1..n} do if v i · r ≥ 0 then S ← S ∪ {i} else T ← T ∪ {i} end if end for Выход: (S,T) — приближенное решение (1). 18 / 28
  • 19. vi vj θij «зона» S «зона» T r 19 / 28
  • 20. Теорема Пусть (S ∗ , T ∗ ) — оптимальный разрез для задачи «MAX-CUT», тогда для математического ожидания величины разреза (S , T ), полученного вероятностным алгоритмом «SDP-округление MAX-CUT» выполняется: E[R(S , T )] ≥ 0.878 · R(S ∗ , T ∗ ). 20 / 28
  • 21. θij P(yi = yj ) = P(yi yj = −1) = , π 1 − yi yj 2 · P(yi = yj ) θij E wij = wij = wij . 2 2 π i<j i<j i<j 1 − vi · vj 1 − cos θij ZVP = wij = wij . 2 2 i<j i<j E[R(S , T )] E[R(S , T )] ≥ R(S ∗ , T ∗ ) ZVP θij i<j π wij = 1−cos θij i<j 2 wij 2θ ≥ min ≥ 0.878. 0≤θ≤π π(1 − cos θ) 21 / 28
  • 22. θij P(yi = yj ) = P(yi yj = −1) = , π 1 − yi yj 2 · P(yi = yj ) θij E wij = wij = wij . 2 2 π i<j i<j i<j 1 − vi · vj 1 − cos θij ZVP = wij = wij . 2 2 i<j i<j E[R(S , T )] E[R(S , T )] ≥ R(S ∗ , T ∗ ) ZVP θij i<j π wij = 1−cos θij i<j 2 wij 2θ ≥ min ≥ 0.878. 0≤θ≤π π(1 − cos θ) 22 / 28
  • 23. θij P(yi = yj ) = P(yi yj = −1) = , π 1 − yi yj 2 · P(yi = yj ) θij E wij = wij = wij . 2 2 π i<j i<j i<j 1 − vi · vj 1 − cos θij ZVP = wij = wij . 2 2 i<j i<j E[R(S , T )] E[R(S , T )] ≥ R(S ∗ , T ∗ ) ZVP θij i<j π wij = 1−cos θij i<j 2 wij 2θ ≥ min ≥ 0.878. 0≤θ≤π π(1 − cos θ) 23 / 28
  • 24. θij P(yi = yj ) = P(yi yj = −1) = , π 1 − yi yj 2 · P(yi = yj ) θij E wij = wij = wij . 2 2 π i<j i<j i<j 1 − vi · vj 1 − cos θij ZVP = wij = wij . 2 2 i<j i<j E[R(S , T )] E[R(S , T )] ≥ R(S ∗ , T ∗ ) ZVP θij i<j π wij = 1−cos θij i<j 2 wij 2θ ≥ min ≥ 0.878. 0≤θ≤π π(1 − cos θ) 24 / 28
  • 25. 25 / 28
  • 26. 2θ min ≥ 0.878. 0<θ≤π π(1 − cos θ) < load(quot;newtonquot;); < y:2*x/%pi/(1-cos(x)); < x0:newton(diff(y,x),3); > 2.331122370414422B0 < y(x0),numer; > 0.87856720578485 26 / 28
  • 27. Карта памяти лекции 27 / 28
  • 28. Интернет поддержка курса http://discopal.ispras.ru/ Вопросы? 28 / 28