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
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
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
20. Теорема
Пусть (S ∗ , T ∗ ) — оптимальный разрез для задачи «MAX-CUT», тогда
для математического ожидания величины разреза (S , T ),
полученного вероятностным алгоритмом «SDP-округление
MAX-CUT» выполняется:
E[R(S , T )] ≥ 0.878 · R(S ∗ , T ∗ ).
20 / 28