Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №8 "Методы снижения размерности пространства"
Лектор - Владимир Гулин
Проблема проклятия размерности. Отбор и выделение признаков. Методы выделения признаков (feature extraction). Метод главных компонент (PCA). Метод независимых компонент (ICA). Методы основанные на автоэнкодерах. Методы отбора признаков (feature selection). Методы основанные на взаимной корреляции признаков. Метод максимальной релевантность и минимальной избыточности (mRMR). Методы основанные на деревьях решений.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Факторизационные модели в рекомендательных системахromovpa
Факторизационные модели, модели разложения матриц для коллаборативной фильтрации в рекомендательных системах. В презентации рассматриваются теоретические аспекты и алгоритмы.
С доклада на спецсеминаре "Machine Learning & Information Retrieval" в Школе Анализа Данных Яндекса.
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №8 "Методы снижения размерности пространства"
Лектор - Владимир Гулин
Проблема проклятия размерности. Отбор и выделение признаков. Методы выделения признаков (feature extraction). Метод главных компонент (PCA). Метод независимых компонент (ICA). Методы основанные на автоэнкодерах. Методы отбора признаков (feature selection). Методы основанные на взаимной корреляции признаков. Метод максимальной релевантность и минимальной избыточности (mRMR). Методы основанные на деревьях решений.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Факторизационные модели в рекомендательных системахromovpa
Факторизационные модели, модели разложения матриц для коллаборативной фильтрации в рекомендательных системах. В презентации рассматриваются теоретические аспекты и алгоритмы.
С доклада на спецсеминаре "Machine Learning & Information Retrieval" в Школе Анализа Данных Яндекса.
Лекция №12 "Ограниченная машина Больцмана" Technosphere1
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №12 "Ограниченная машина Больцмана"
Лектор - Павел Нестеров
Нейросетейвой автоэнкодер. Стохастические и рекурентные нейронные сети. Машина Больцмана и ограниченная машина Больцмана. Распределение Гиббса. Алгоритм contrastive divergence для обучения РБМ. Сэмплирование данных из РБМ. Бинарная РБМ и гауссово-бинарная РБМ. Влияние регуляризации, нелинейное сжатие размерности, извлечение признаков. Semantic hashing.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)Alexey Paznikov
ЛЕКЦИЯ 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №10 "Алгоритмические композиции. Завершение"
Лектор - Владимир Гулин
Ключевые идеи бустинга. Отличия бустинга и бэггинга. Алгорим AdaBoost. Градиентный бустинг. Мета-алгоритмы над алгоритмическими композициями. Алгоритм BagBoo.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Technosphere1
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лектор - Николай Анохин
Постановка задачи кластеризации. Функции расстояния. Критерии качества кластеризации. EM-алгоритм. K-means и модификации.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №7 "Машина опорных векторов"
Лектор - Николай Анохин
Разделяющая поверхность с максимальным зазором. Формулировка задачи оптимизации для случаев линейно-разделимых и линейно-неразделимых классов. Сопряженная задача. Опорные векторы. KKT-условия. SVM для задач классификации и регрессии. Kernel trick. Теорема Мерсера. Примеры функций ядра.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Лекция №12 "Ограниченная машина Больцмана" Technosphere1
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №12 "Ограниченная машина Больцмана"
Лектор - Павел Нестеров
Нейросетейвой автоэнкодер. Стохастические и рекурентные нейронные сети. Машина Больцмана и ограниченная машина Больцмана. Распределение Гиббса. Алгоритм contrastive divergence для обучения РБМ. Сэмплирование данных из РБМ. Бинарная РБМ и гауссово-бинарная РБМ. Влияние регуляризации, нелинейное сжатие размерности, извлечение признаков. Semantic hashing.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)Alexey Paznikov
ЛЕКЦИЯ 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №10 "Алгоритмические композиции. Завершение"
Лектор - Владимир Гулин
Ключевые идеи бустинга. Отличия бустинга и бэггинга. Алгорим AdaBoost. Градиентный бустинг. Мета-алгоритмы над алгоритмическими композициями. Алгоритм BagBoo.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Technosphere1
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лектор - Николай Анохин
Постановка задачи кластеризации. Функции расстояния. Критерии качества кластеризации. EM-алгоритм. K-means и модификации.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №7 "Машина опорных векторов"
Лектор - Николай Анохин
Разделяющая поверхность с максимальным зазором. Формулировка задачи оптимизации для случаев линейно-разделимых и линейно-неразделимых классов. Сопряженная задача. Опорные векторы. KKT-условия. SVM для задач классификации и регрессии. Kernel trick. Теорема Мерсера. Примеры функций ядра.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
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