Max Cut Semidefinite

659 views
566 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
659
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Max Cut Semidefinite

  1. 1. Вероятностное округление для «MAX-CUT» Н.Н. Кузюрин С.А. Фомин 10 октября 2008 г. Задачи полуопределенного и векторного программирования. Вероятностное округление для задачи о максимальном разрезе в графе ( MAX-CUT ). 1 / 28
  2. 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. 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. 4. Определение Вероятностный приближенный алгоритм A гарантирует точность C , если для всех входов I E mA (I ) 1≥ ≥ C > 0, m0 (I ) где m0 (I ) — оптимум, mA (I ) — значение, найденное алгоритмом, и решается задача максимизации. 4 / 28
  5. 5. Для простого, невзвешенного графа можно применить простую стратегию: каждую вершину равновероятно (p = 1/2) приписать к множеству T или S. Упражнение Докажите, что этот вероятностный алгоритм является 0.5-приближенным. 5 / 28
  6. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 19. vi vj θij «зона» S «зона» T r 19 / 28
  20. 20. Теорема Пусть (S ∗ , T ∗ ) — оптимальный разрез для задачи «MAX-CUT», тогда для математического ожидания величины разреза (S , T ), полученного вероятностным алгоритмом «SDP-округление MAX-CUT» выполняется: E[R(S , T )] ≥ 0.878 · R(S ∗ , T ∗ ). 20 / 28
  21. 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. 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. 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. 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. 25 / 28
  26. 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. Карта памяти лекции 27 / 28
  28. 28. Интернет поддержка курса http://discopal.ispras.ru/ Вопросы? 28 / 28

×