1. Алгоритмы для NP-трудных задач
Лекция 9: Приближенные алгоритмы
А. Куликов
Computer Science клуб при ПОМИ
http://logic.pdmi.ras.ru/∼infclub/
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 1 / 21
2. План лекции
1 Задача полуопределённого программирования
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 2 / 21
3. План лекции
1 Задача полуопределённого программирования
2 Задача о максимальном разрезе
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 2 / 21
4. План лекции
1 Задача полуопределённого программирования
2 Задача о максимальном разрезе
3 Задача о раскраске графа
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 2 / 21
5. Задача полуопределённого программирования
План лекции
1 Задача полуопределённого программирования
2 Задача о максимальном разрезе
3 Задача о раскраске графа
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 3 / 21
6. Задача полуопределённого программирования
Положительно полуопределенные матрицы
Определение
Симметрическая матрица называется положительно полуопределённой
(positive semidefinite), если все её собственные числа неотрицательны.
Обозначение: A ⪰ 0.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 4 / 21
7. Задача полуопределённого программирования
Положительно полуопределенные матрицы
Определение
Симметрическая матрица называется положительно полуопределённой
(positive semidefinite), если все её собственные числа неотрицательны.
Обозначение: A ⪰ 0.
Факт
Пусть A ∈ Rn×n — симметрическая матрица. Следующие условия
эквивалентны:
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 4 / 21
8. Задача полуопределённого программирования
Положительно полуопределенные матрицы
Определение
Симметрическая матрица называется положительно полуопределённой
(positive semidefinite), если все её собственные числа неотрицательны.
Обозначение: A ⪰ 0.
Факт
Пусть A ∈ Rn×n — симметрическая матрица. Следующие условия
эквивалентны:
A ⪰ 0;
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 4 / 21
9. Задача полуопределённого программирования
Положительно полуопределенные матрицы
Определение
Симметрическая матрица называется положительно полуопределённой
(positive semidefinite), если все её собственные числа неотрицательны.
Обозначение: A ⪰ 0.
Факт
Пусть A ∈ Rn×n — симметрическая матрица. Следующие условия
эквивалентны:
A ⪰ 0;
квадратичная форма x T Ax неотрицательна для любого x ∈ Rn ;
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 4 / 21
10. Задача полуопределённого программирования
Положительно полуопределенные матрицы
Определение
Симметрическая матрица называется положительно полуопределённой
(positive semidefinite), если все её собственные числа неотрицательны.
Обозначение: A ⪰ 0.
Факт
Пусть A ∈ Rn×n — симметрическая матрица. Следующие условия
эквивалентны:
A ⪰ 0;
квадратичная форма x T Ax неотрицательна для любого x ∈ Rn ;
существуют вектора u1 , . . . , un ∈ Rm , такие что aij = uiT uj ; или же
A = U T U для некоторой U;
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 4 / 21
11. Задача полуопределённого программирования
Задачи линейного и полуопределённого
программирования
Задача линейного Задача полуопределенного
программирования программирования
max cT x max ⟨C , X ⟩
s.t. aiT x ≤ bi s.t.⟨Ai , X ⟩ ≤ bi
x ≥0 X ⪰0
n , a ∈ Rn , b ∈ R
x ∈R i n×n , A ∈ Rn×n , b ∈ R
i X ∈R i i
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 5 / 21
12. Задача полуопределённого программирования
Задачи линейного и полуопределённого
программирования
Задача линейного Задача полуопределенного
программирования программирования
max cT x max ⟨C , X ⟩
s.t. aiT x ≤ bi s.t.⟨Ai , X ⟩ ≤ bi
x ≥0 X ⪰0
n , a ∈ Rn , b ∈ R
x ∈R i n×n , A ∈ Rn×n , b ∈ R
i X ∈R i i
Факт
Для задачи линейного программирования существует полиномиальный
алгоритм. Для задачи полуопределенного программирования
существует алгоритм, находящий решение с аддитивной ошибкой ������ за
время, полиномиальное от размера входных данных и от log 1 .
������
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 5 / 21
13. Задача о максимальном разрезе
План лекции
1 Задача полуопределённого программирования
2 Задача о максимальном разрезе
3 Задача о раскраске графа
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 6 / 21
14. Задача о максимальном разрезе
Задача о максимальном разрезе
Определение
Задача о максимальном разрезе (maximum cut problem, MAX-CUT)
заключается в нахождении по данному взвешенному
неориентированному графу такого разбиения вершин на две части
(раскраски в белый и чёрный цвета), при котором общий вес рёбер,
соединяющих вершины разных частей, был бы максимален.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 7 / 21
15. Задача о максимальном разрезе
Задача о максимальном разрезе
Определение
Задача о максимальном разрезе (maximum cut problem, MAX-CUT)
заключается в нахождении по данному взвешенному
неориентированному графу такого разбиения вершин на две части
(раскраски в белый и чёрный цвета), при котором общий вес рёбер,
соединяющих вершины разных частей, был бы максимален.
Факт
Известно, что нахождение приближения, лучшего чем 16/17 ≈ 0.94,
является NP-трудной задачей.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 7 / 21
16. Задача о максимальном разрезе
Формулировка в виде задачи целочисленного
полуопределенного программирования
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 8 / 21
17. Задача о максимальном разрезе
Формулировка в виде задачи целочисленного
полуопределенного программирования
Сопоставим каждой вершине vi ∈ V число yi , где
{︃
−1, vi — белая вершина,
yi =
1, vi — чёрная вершина.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 8 / 21
18. Задача о максимальном разрезе
Формулировка в виде задачи целочисленного
полуопределенного программирования
Сопоставим каждой вершине vi ∈ V число yi , где
{︃
−1, vi — белая вершина,
yi =
1, vi — чёрная вершина.
Тогда ребро (vi , vj ) принадлежит разрезу тогда и только тогда,
когда yi yj = −1.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 8 / 21
19. Задача о максимальном разрезе
Формулировка в виде задачи целочисленного
полуопределенного программирования
Сопоставим каждой вершине vi ∈ V число yi , где
{︃
−1, vi — белая вершина,
yi =
1, vi — чёрная вершина.
Тогда ребро (vi , vj ) принадлежит разрезу тогда и только тогда,
когда yi yj = −1.
Величина же разреза вычисляется как
∑︁ 1 − yi yj
f (M) = wij .
2
i<j
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 8 / 21
20. Задача о максимальном разрезе
Релаксация: оптимизация на сфере большей
размерности
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 9 / 21
21. Задача о максимальном разрезе
Релаксация: оптимизация на сфере большей
размерности
Будем искать
max g ((v1 , . . . , vn )),
v1 ,...,vn ∈S n
где
∑︁ 1 − v T vj
i
g ((v1 , . . . , vn )) = wij ,
2
i<j
а Sn — n-мерная единичная сфера.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 9 / 21
22. Задача о максимальном разрезе
Релаксация: оптимизация на сфере большей
размерности
Будем искать
max g ((v1 , . . . , vn )),
v1 ,...,vn ∈S n
где
∑︁ 1 − v T vj
i
g ((v1 , . . . , vn )) = wij ,
2
i<j
а Sn — n-мерная единичная сфера.
Ясно, что максимальное значение является верхней оценкой на
величину максимального разреза.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 9 / 21
23. Задача о максимальном разрезе
Вероятностное округление
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 10 / 21
24. Задача о максимальном разрезе
Вероятностное округление
Рассмотрим решение (vi )i новой задачи.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 10 / 21
25. Задача о максимальном разрезе
Вероятностное округление
Рассмотрим решение (vi )i новой задачи.
Проведем через начало координат случайным образом
гиперплоскость T размерности n − 1, которая разделит
пространство на два полупространства A и B. После чего
определим yi так: {︃
1, vi ∈ A,
yi =
−1, vi ∈ B.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 10 / 21
26. Задача о максимальном разрезе
Вероятностное округление
Рассмотрим решение (vi )i новой задачи.
Проведем через начало координат случайным образом
гиперплоскость T размерности n − 1, которая разделит
пространство на два полупространства A и B. После чего
определим yi так: {︃
1, vi ∈ A,
yi =
−1, vi ∈ B.
Иначе говоря, выберем случайным образом вектор u ∈ S n и
построим yi так: {︃
1, u T vi ≥ 0,
yi =
−1, u T vi < 0.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 10 / 21
27. Задача о максимальном разрезе
Оценка оптимальности
Лемма
Пусть (vi )i — (приближённое) решение задачи, R ′ — значение g на
этом наборе. Пусть также (yi )i — набор, полученный с помощью
алгоритма, описанного выше, из (vi )i и U ′ = f ((yi )i ). Тогда
E [U ′ ] ≥ 0.87R ′ .
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 11 / 21
28. Задача о максимальном разрезе
Оценка оптимальности
Лемма
Пусть (vi )i — (приближённое) решение задачи, R ′ — значение g на
этом наборе. Пусть также (yi )i — набор, полученный с помощью
алгоритма, описанного выше, из (vi )i и U ′ = f ((yi )i ). Тогда
E [U ′ ] ≥ 0.87R ′ .
Доказательство
Необходимо доказать, что
∑︁ 1 − yi yj ∑︁ 1 − v T vj
i
E wij ≥ 0.87 wij .
2 2
i<j i<j
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 11 / 21
29. Задача о максимальном разрезе
Доказательство (продолжение)
Доказательство
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 12 / 21
30. Задача о максимальном разрезе
Доказательство (продолжение)
Доказательство
Заметим, что yi yj = −1 тогда и только тогда, когда vi и vj лежат в
разных полупространствах относительно нашей гиперплоскости T .
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 12 / 21
31. Задача о максимальном разрезе
Доказательство (продолжение)
Доказательство
Заметим, что yi yj = −1 тогда и только тогда, когда vi и vj лежат в
разных полупространствах относительно нашей гиперплоскости T .
������ij
P(yi ̸= yj ) = ������ , где ������ij — угол между векторами vi и vj .
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 12 / 21
32. Задача о максимальном разрезе
Доказательство (продолжение)
Доказательство
Заметим, что yi yj = −1 тогда и только тогда, когда vi и vj лежат в
разных полупространствах относительно нашей гиперплоскости T .
������ij
P(yi ̸= yj ) = ������ , где ������ij — угол между векторами vi и vj .
∑︁ 1 − yi yj ∑︁ ������ij
E wij = wij .
2 ������
i<j i<j
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 12 / 21
33. Задача о максимальном разрезе
Доказательство (продолжение)
Доказательство
Заметим, что yi yj = −1 тогда и только тогда, когда vi и vj лежат в
разных полупространствах относительно нашей гиперплоскости T .
������ij
P(yi ̸= yj ) = ������ , где ������ij — угол между векторами vi и vj .
∑︁ 1 − yi yj ∑︁ ������ij
E wij = wij .
2 ������
i<j i<j
∑︁ 1 − v T vj ∑︁ 1 − cos ������ij
i
wij = wij .
2 2
i<j i<j
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 12 / 21
34. Задача о максимальном разрезе
Доказательство (продолжение)
Доказательство
Заметим, что yi yj = −1 тогда и только тогда, когда vi и vj лежат в
разных полупространствах относительно нашей гиперплоскости T .
������ij
P(yi ̸= yj ) = ������ , где ������ij — угол между векторами vi и vj .
∑︁ 1 − yi yj ∑︁ ������ij
E wij = wij .
2 ������
i<j i<j
∑︁ 1 − v T vj ∑︁ 1 − cos ������ij
i
wij = wij .
2 2
i<j i<j
2 ������
Осталось заметить, что min������ ������ 1−cos ������ ≈ 0.87.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 12 / 21
35. Задача о максимальном разрезе
Формулировка в виде задачи полуопределённого
программирования
Задача полуопределённого программирования
∑︀ 1−xij
максимизировать i<j 2 wij
при условии X = {xij }n
i,j=1 ⪰ 0; ∀i, xii = 1
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 13 / 21
36. Задача о максимальном разрезе
Формулировка в виде задачи полуопределённого
программирования
Задача полуопределённого программирования
∑︀ 1−xij
максимизировать i<j 2 wij
при условии X = {xij }n
i,j=1 ⪰ 0; ∀i, xii = 1
Замечания
Найдя оптимальную матрицу X для данной задачи, найдем набор
векторов u1 , . . . , un , для которого Xij = uiT uj (поскольку на диагонали
X стоят 1, все найденные вектора будут единичными).
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 13 / 21
37. Задача о раскраске графа
План лекции
1 Задача полуопределённого программирования
2 Задача о максимальном разрезе
3 Задача о раскраске графа
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 14 / 21
38. Задача о раскраске графа
Задача о раскраске графа
Определение
Задача о раскраске графа (graph coloring problem) заключается в
нахождении по данному графу раскраски его вершин с
использованием минимального количества цветов так, чтобы концы
любого ребра были покрашены в разные цвета.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 15 / 21
39. Задача о раскраске графа
Задача о раскраске графа
Определение
Задача о раскраске графа (graph coloring problem) заключается в
нахождении по данному графу раскраски его вершин с
использованием минимального количества цветов так, чтобы концы
любого ребра были покрашены в разные цвета.
Замечания
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 15 / 21
40. Задача о раскраске графа
Задача о раскраске графа
Определение
Задача о раскраске графа (graph coloring problem) заключается в
нахождении по данному графу раскраски его вершин с
использованием минимального количества цветов так, чтобы концы
любого ребра были покрашены в разные цвета.
Замечания
Задача является NP-трудной.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 15 / 21
41. Задача о раскраске графа
Задача о раскраске графа
Определение
Задача о раскраске графа (graph coloring problem) заключается в
нахождении по данному графу раскраски его вершин с
использованием минимального количества цветов так, чтобы концы
любого ребра были покрашены в разные цвета.
Замечания
Задача является NP-трудной.
Даже нахождение правильной раскраски в 3 цвета данного
3-раскрашиваемого графа является NP-трудной задачей.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 15 / 21
42. Задача о раскраске графа
Задача о раскраске графа
Определение
Задача о раскраске графа (graph coloring problem) заключается в
нахождении по данному графу раскраски его вершин с
использованием минимального количества цветов так, чтобы концы
любого ребра были покрашены в разные цвета.
Замечания
Задача является NP-трудной.
Даже нахождение правильной раскраски в 3 цвета данного
3-раскрашиваемого графа является NP-трудной задачей.
Проверка же 2-раскрашиваемости проста.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 15 / 21
43. Задача о раскраске графа
Задача о раскраске графа
Определение
Задача о раскраске графа (graph coloring problem) заключается в
нахождении по данному графу раскраски его вершин с
использованием минимального количества цветов так, чтобы концы
любого ребра были покрашены в разные цвета.
Замечания
Задача является NP-трудной.
Даже нахождение правильной раскраски в 3 цвета данного
3-раскрашиваемого графа является NP-трудной задачей.
Проверка же 2-раскрашиваемости проста.
Граф всегда можно покрасить в ������ + 1 цвет, где ������ — максимальная
степень графа.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 15 / 21
44. Задача о раскраске графа
√
Раскраска 3-раскрашиваемого графа в n цветов
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 16 / 21
45. Задача о раскраске графа
√
Раскраска 3-раскрашиваемого графа в n цветов
Рассмотрим произвольную вершину i и всех её соседей N(i).
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 16 / 21
46. Задача о раскраске графа
√
Раскраска 3-раскрашиваемого графа в n цветов
Рассмотрим произвольную вершину i и всех её соседей N(i).
Ясно, что N(i) можно покрасить в два цвета.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 16 / 21
47. Задача о раскраске графа
√
Раскраска 3-раскрашиваемого графа в n цветов
Рассмотрим произвольную вершину i и всех её соседей N(i).
Ясно, что N(i) можно покрасить в два цвета.
√
Алгоритм: пока есть вершина степени хотя бы n, покрасим её
соседей в новые два цвета и выкинем их всех из графа; через не
√ √
более чем n таких операций останется граф степени менее n,
√
который мы покрасим в новые n цветов.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 16 / 21
48. Задача о раскраске графа
√
Раскраска 3-раскрашиваемого графа в n цветов
Рассмотрим произвольную вершину i и всех её соседей N(i).
Ясно, что N(i) можно покрасить в два цвета.
√
Алгоритм: пока есть вершина степени хотя бы n, покрасим её
соседей в новые два цвета и выкинем их всех из графа; через не
√ √
более чем n таких операций останется граф степени менее n,
√
который мы покрасим в новые n цветов.
√
Потратим, таким образом, не более чем 3 n цветов.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 16 / 21
49. Задача о раскраске графа
Векторная 3-раскрашиваемость
Определение
Граф называется векторно 3-раскрашиваемым (vector 3-colorable),
если каждой вершине графа можно приписать вектор так, что для
любого ребра (i, j) ∈ E выполнено равенство viT vj = −1/2 (и векторно
2-раскрашиваемым, если viT vj = −1).
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 17 / 21
50. Задача о раскраске графа
Векторная 3-раскрашиваемость
Определение
Граф называется векторно 3-раскрашиваемым (vector 3-colorable),
если каждой вершине графа можно приписать вектор так, что для
любого ребра (i, j) ∈ E выполнено равенство viT vj = −1/2 (и векторно
2-раскрашиваемым, если viT vj = −1).
Замечания
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 17 / 21
51. Задача о раскраске графа
Векторная 3-раскрашиваемость
Определение
Граф называется векторно 3-раскрашиваемым (vector 3-colorable),
если каждой вершине графа можно приписать вектор так, что для
любого ребра (i, j) ∈ E выполнено равенство viT vj = −1/2 (и векторно
2-раскрашиваемым, если viT vj = −1).
Замечания
Любой 3-раскрашиваемый граф является векторно
3-раскрашиваемым. Обратное, вообще говоря, неверно.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 17 / 21
52. Задача о раскраске графа
Векторная 3-раскрашиваемость
Определение
Граф называется векторно 3-раскрашиваемым (vector 3-colorable),
если каждой вершине графа можно приписать вектор так, что для
любого ребра (i, j) ∈ E выполнено равенство viT vj = −1/2 (и векторно
2-раскрашиваемым, если viT vj = −1).
Замечания
Любой 3-раскрашиваемый граф является векторно
3-раскрашиваемым. Обратное, вообще говоря, неверно.
А вот 2-раскрашиваемость эквивалентна векторной
2-раскрашиваемости.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 17 / 21
53. Задача о раскраске графа
Половинная раскраска
Определение
Половинной раскраской (half-coloring) графа называется правильная
раскраска хотя бы половины вершин графа.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 18 / 21
54. Задача о раскраске графа
Половинная раскраска
Определение
Половинной раскраской (half-coloring) графа называется правильная
раскраска хотя бы половины вершин графа.
Замечание
Если половинная раскраска графа в n������ цветов может быть найдена за
полиномиальное время, то граф можно полностью раскрасить за
полиномиальное время в
(︁ n )︁������
n������ + + · · · = O(n������ )
2
цветов.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 18 / 21
55. Задача о раскраске графа
Алгоритм и его анализ
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 19 / 21
56. Задача о раскраске графа
Алгоритм и его анализ
Найдём необходимый набор векторов, решив соответствующую
задачу полуопределённого программирования.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 19 / 21
57. Задача о раскраске графа
Алгоритм и его анализ
Найдём необходимый набор векторов, решив соответствующую
задачу полуопределённого программирования.
Случайно выбранная гиперплоскость разделяет два вектора vi , vj
для (i, j) ∈ E с вероятностью 2/3.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 19 / 21
58. Задача о раскраске графа
Алгоритм и его анализ
Найдём необходимый набор векторов, решив соответствующую
задачу полуопределённого программирования.
Случайно выбранная гиперплоскость разделяет два вектора vi , vj
для (i, j) ∈ E с вероятностью 2/3.
Такая гиперплоскость, таким образом, может быть использована
для покраски вершин в два цвета с мат. ожиданием количества
одноцветных рёбер, равным одной трети общего количества рёбер.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 19 / 21
59. Задача о раскраске графа
Алгоритм и его анализ
Найдём необходимый набор векторов, решив соответствующую
задачу полуопределённого программирования.
Случайно выбранная гиперплоскость разделяет два вектора vi , vj
для (i, j) ∈ E с вероятностью 2/3.
Такая гиперплоскость, таким образом, может быть использована
для покраски вершин в два цвета с мат. ожиданием количества
одноцветных рёбер, равным одной трети общего количества рёбер.
Если же провести r случайных гиперплоскостей и покрасить
вершины в соответствующие 2r цветов, то ребро графа будет
одноцветным с вероятностью 1/3r .
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 19 / 21
60. Задача о раскраске графа
Алгоритм и его анализ
Найдём необходимый набор векторов, решив соответствующую
задачу полуопределённого программирования.
Случайно выбранная гиперплоскость разделяет два вектора vi , vj
для (i, j) ∈ E с вероятностью 2/3.
Такая гиперплоскость, таким образом, может быть использована
для покраски вершин в два цвета с мат. ожиданием количества
одноцветных рёбер, равным одной трети общего количества рёбер.
Если же провести r случайных гиперплоскостей и покрасить
вершины в соответствующие 2r цветов, то ребро графа будет
одноцветным с вероятностью 1/3r .
Тогда мат. ожидание количества одноцветных рёбер равно
dn
|E |/3r = 2·3r < n/4, если r ≥ log3 d + 1, где d — средняя степень
графа.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 19 / 21
61. Задача о раскраске графа
Алгоритм и его анализ (завершение)
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 20 / 21
62. Задача о раскраске графа
Алгоритм и его анализ (завершение)
С большой вероятностью, таким образом, количество
одноцветных рёбер будет меньше n/2.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 20 / 21
63. Задача о раскраске графа
Алгоритм и его анализ (завершение)
С большой вероятностью, таким образом, количество
одноцветных рёбер будет меньше n/2.
Сотрём цвет одного из концов каждого одноцветного ребра и
получим половинную раскраску.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 20 / 21
64. Задача о раскраске графа
Алгоритм и его анализ (завершение)
С большой вероятностью, таким образом, количество
одноцветных рёбер будет меньше n/2.
Сотрём цвет одного из концов каждого одноцветного ребра и
получим половинную раскраску.
Использовали 2r = O(d log2 3 ) = O(d 0.631 ) цветов.
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 20 / 21
65. Задача о раскраске графа
Спасибо за внимание!
А. Куликов (Computer Science клуб) 9. Приближенные алгоритмы 21 / 21