Алгоритмы для NP-трудных задач
                Лекция 9: Приближенные алгоритмы

                                          А. Куликов

                                 Computer Science клуб при ПОМИ
                               http://logic.pdmi.ras.ru/∼infclub/




А. Куликов (Computer Science клуб)   9. Приближенные алгоритмы      1 / 21
План лекции




  1   Задача полуопределённого программирования




А. Куликов (Computer Science клуб)   9. Приближенные алгоритмы   2 / 21
План лекции




  1   Задача полуопределённого программирования


  2   Задача о максимальном разрезе




А. Куликов (Computer Science клуб)   9. Приближенные алгоритмы   2 / 21
План лекции




  1   Задача полуопределённого программирования


  2   Задача о максимальном разрезе


  3   Задача о раскраске графа




А. Куликов (Computer Science клуб)   9. Приближенные алгоритмы   2 / 21
Задача полуопределённого программирования


 План лекции




  1   Задача полуопределённого программирования


  2   Задача о максимальном разрезе


  3   Задача о раскраске графа




А. Куликов (Computer Science клуб)   9. Приближенные алгоритмы   3 / 21
Задача полуопределённого программирования


 Положительно полуопределенные матрицы

  Определение
  Симметрическая матрица называется положительно полуопределённой
  (positive semidefinite), если все её собственные числа неотрицательны.
  Обозначение: A ⪰ 0.




А. Куликов (Computer Science клуб)   9. Приближенные алгоритмы       4 / 21
Задача полуопределённого программирования


 Положительно полуопределенные матрицы

  Определение
  Симметрическая матрица называется положительно полуопределённой
  (positive semidefinite), если все её собственные числа неотрицательны.
  Обозначение: A ⪰ 0.

  Факт
  Пусть A ∈ Rn×n — симметрическая матрица. Следующие условия
  эквивалентны:




А. Куликов (Computer Science клуб)   9. Приближенные алгоритмы       4 / 21
Задача полуопределённого программирования


 Положительно полуопределенные матрицы

  Определение
  Симметрическая матрица называется положительно полуопределённой
  (positive semidefinite), если все её собственные числа неотрицательны.
  Обозначение: A ⪰ 0.

  Факт
  Пусть A ∈ Rn×n — симметрическая матрица. Следующие условия
  эквивалентны:
        A ⪰ 0;




А. Куликов (Computer Science клуб)   9. Приближенные алгоритмы       4 / 21
Задача полуопределённого программирования


 Положительно полуопределенные матрицы

  Определение
  Симметрическая матрица называется положительно полуопределённой
  (positive semidefinite), если все её собственные числа неотрицательны.
  Обозначение: A ⪰ 0.

  Факт
  Пусть A ∈ Rn×n — симметрическая матрица. Следующие условия
  эквивалентны:
        A ⪰ 0;
        квадратичная форма x T Ax неотрицательна для любого x ∈ Rn ;




А. Куликов (Computer Science клуб)   9. Приближенные алгоритмы       4 / 21
Задача полуопределённого программирования


 Положительно полуопределенные матрицы

  Определение
  Симметрическая матрица называется положительно полуопределённой
  (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
Задача полуопределённого программирования


 Задачи линейного и полуопределённого
 программирования

      Задача линейного                              Задача полуопределенного
      программирования                              программирования
        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
Задача полуопределённого программирования


 Задачи линейного и полуопределённого
 программирования

      Задача линейного                              Задача полуопределенного
      программирования                              программирования
        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
Задача о максимальном разрезе


 План лекции




  1   Задача полуопределённого программирования


  2   Задача о максимальном разрезе


  3   Задача о раскраске графа




А. Куликов (Computer Science клуб)    9. Приближенные алгоритмы   6 / 21
Задача о максимальном разрезе


 Задача о максимальном разрезе


  Определение
  Задача о максимальном разрезе (maximum cut problem, MAX-CUT)
  заключается в нахождении по данному взвешенному
  неориентированному графу такого разбиения вершин на две части
  (раскраски в белый и чёрный цвета), при котором общий вес рёбер,
  соединяющих вершины разных частей, был бы максимален.




А. Куликов (Computer Science клуб)    9. Приближенные алгоритмы      7 / 21
Задача о максимальном разрезе


 Задача о максимальном разрезе


  Определение
  Задача о максимальном разрезе (maximum cut problem, MAX-CUT)
  заключается в нахождении по данному взвешенному
  неориентированному графу такого разбиения вершин на две части
  (раскраски в белый и чёрный цвета), при котором общий вес рёбер,
  соединяющих вершины разных частей, был бы максимален.

  Факт
  Известно, что нахождение приближения, лучшего чем 16/17 ≈ 0.94,
  является NP-трудной задачей.




А. Куликов (Computer Science клуб)    9. Приближенные алгоритмы      7 / 21
Задача о максимальном разрезе


 Формулировка в виде задачи целочисленного
 полуопределенного программирования




А. Куликов (Computer Science клуб)    9. Приближенные алгоритмы   8 / 21
Задача о максимальном разрезе


 Формулировка в виде задачи целочисленного
 полуопределенного программирования

        Сопоставим каждой вершине vi ∈ V число yi , где
                           {︃
                             −1, vi — белая вершина,
                      yi =
                             1,  vi — чёрная вершина.




А. Куликов (Computer Science клуб)    9. Приближенные алгоритмы   8 / 21
Задача о максимальном разрезе


 Формулировка в виде задачи целочисленного
 полуопределенного программирования

        Сопоставим каждой вершине vi ∈ V число yi , где
                           {︃
                             −1, vi — белая вершина,
                      yi =
                             1,  vi — чёрная вершина.


        Тогда ребро (vi , vj ) принадлежит разрезу тогда и только тогда,
        когда yi yj = −1.




А. Куликов (Computer Science клуб)    9. Приближенные алгоритмы            8 / 21
Задача о максимальном разрезе


 Формулировка в виде задачи целочисленного
 полуопределенного программирования

        Сопоставим каждой вершине 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
Задача о максимальном разрезе


 Релаксация: оптимизация на сфере большей
 размерности




А. Куликов (Computer Science клуб)    9. Приближенные алгоритмы   9 / 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
Задача о максимальном разрезе


 Релаксация: оптимизация на сфере большей
 размерности


        Будем искать
                                          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
Задача о максимальном разрезе


 Вероятностное округление




А. Куликов (Computer Science клуб)    9. Приближенные алгоритмы   10 / 21
Задача о максимальном разрезе


 Вероятностное округление

        Рассмотрим решение (vi )i новой задачи.




А. Куликов (Computer Science клуб)    9. Приближенные алгоритмы   10 / 21
Задача о максимальном разрезе


 Вероятностное округление

        Рассмотрим решение (vi )i новой задачи.
        Проведем через начало координат случайным образом
        гиперплоскость T размерности n − 1, которая разделит
        пространство на два полупространства A и B. После чего
        определим yi так:          {︃
                                     1,  vi ∈ A,
                              yi =
                                     −1, vi ∈ B.




А. Куликов (Computer Science клуб)    9. Приближенные алгоритмы   10 / 21
Задача о максимальном разрезе


 Вероятностное округление

        Рассмотрим решение (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
Задача о максимальном разрезе


 Оценка оптимальности

  Лемма
  Пусть (vi )i — (приближённое) решение задачи, R ′ — значение g на
  этом наборе. Пусть также (yi )i — набор, полученный с помощью
  алгоритма, описанного выше, из (vi )i и U ′ = f ((yi )i ). Тогда

                                         E [U ′ ] ≥ 0.87R ′ .




А. Куликов (Computer Science клуб)    9. Приближенные алгоритмы       11 / 21
Задача о максимальном разрезе


 Оценка оптимальности

  Лемма
  Пусть (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
Задача о максимальном разрезе


 Доказательство (продолжение)

  Доказательство




А. Куликов (Computer Science клуб)    9. Приближенные алгоритмы   12 / 21
Задача о максимальном разрезе


 Доказательство (продолжение)

  Доказательство
      Заметим, что yi yj = −1 тогда и только тогда, когда vi и vj лежат в
      разных полупространствах относительно нашей гиперплоскости T .




А. Куликов (Computer Science клуб)    9. Приближенные алгоритмы      12 / 21
Задача о максимальном разрезе


 Доказательство (продолжение)

  Доказательство
      Заметим, что yi yj = −1 тогда и только тогда, когда vi и vj лежат в
      разных полупространствах относительно нашей гиперплоскости T .
                           ij
        P(yi ̸= yj ) =       ,   где ij — угол между векторами vi и vj .




А. Куликов (Computer Science клуб)      9. Приближенные алгоритмы              12 / 21
Задача о максимальном разрезе


 Доказательство (продолжение)

  Доказательство
      Заметим, что 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
Задача о максимальном разрезе


 Доказательство (продолжение)

  Доказательство
      Заметим, что 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
Задача о максимальном разрезе


 Доказательство (продолжение)

  Доказательство
      Заметим, что 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
Задача о максимальном разрезе


 Формулировка в виде задачи полуопределённого
 программирования


  Задача полуопределённого программирования
                               ∑︀ 1−xij
            максимизировать      i<j 2 wij
                 при условии X = {xij }n
                                       i,j=1 ⪰ 0; ∀i, xii = 1




А. Куликов (Computer Science клуб)    9. Приближенные алгоритмы   13 / 21
Задача о максимальном разрезе


 Формулировка в виде задачи полуопределённого
 программирования


  Задача полуопределённого программирования
                               ∑︀ 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
Задача о раскраске графа


 План лекции




  1   Задача полуопределённого программирования


  2   Задача о максимальном разрезе


  3   Задача о раскраске графа




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы   14 / 21
Задача о раскраске графа


 Задача о раскраске графа

  Определение
  Задача о раскраске графа (graph coloring problem) заключается в
  нахождении по данному графу раскраски его вершин с
  использованием минимального количества цветов так, чтобы концы
  любого ребра были покрашены в разные цвета.




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы   15 / 21
Задача о раскраске графа


 Задача о раскраске графа

  Определение
  Задача о раскраске графа (graph coloring problem) заключается в
  нахождении по данному графу раскраски его вершин с
  использованием минимального количества цветов так, чтобы концы
  любого ребра были покрашены в разные цвета.

  Замечания




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы   15 / 21
Задача о раскраске графа


 Задача о раскраске графа

  Определение
  Задача о раскраске графа (graph coloring problem) заключается в
  нахождении по данному графу раскраски его вершин с
  использованием минимального количества цветов так, чтобы концы
  любого ребра были покрашены в разные цвета.

  Замечания
      Задача является NP-трудной.




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы   15 / 21
Задача о раскраске графа


 Задача о раскраске графа

  Определение
  Задача о раскраске графа (graph coloring problem) заключается в
  нахождении по данному графу раскраски его вершин с
  использованием минимального количества цветов так, чтобы концы
  любого ребра были покрашены в разные цвета.

  Замечания
      Задача является NP-трудной.
        Даже нахождение правильной раскраски в 3 цвета данного
        3-раскрашиваемого графа является NP-трудной задачей.




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы   15 / 21
Задача о раскраске графа


 Задача о раскраске графа

  Определение
  Задача о раскраске графа (graph coloring problem) заключается в
  нахождении по данному графу раскраски его вершин с
  использованием минимального количества цветов так, чтобы концы
  любого ребра были покрашены в разные цвета.

  Замечания
      Задача является NP-трудной.
        Даже нахождение правильной раскраски в 3 цвета данного
        3-раскрашиваемого графа является NP-трудной задачей.
        Проверка же 2-раскрашиваемости проста.




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы   15 / 21
Задача о раскраске графа


 Задача о раскраске графа

  Определение
  Задача о раскраске графа (graph coloring problem) заключается в
  нахождении по данному графу раскраски его вершин с
  использованием минимального количества цветов так, чтобы концы
  любого ребра были покрашены в разные цвета.

  Замечания
      Задача является NP-трудной.
        Даже нахождение правильной раскраски в 3 цвета данного
        3-раскрашиваемого графа является NP-трудной задачей.
        Проверка же 2-раскрашиваемости проста.
        Граф всегда можно покрасить в  + 1 цвет, где  — максимальная
        степень графа.

А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы    15 / 21
Задача о раскраске графа

                                                                   √
 Раскраска 3-раскрашиваемого графа в                                   n цветов




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы                  16 / 21
Задача о раскраске графа

                                                                   √
 Раскраска 3-раскрашиваемого графа в                                   n цветов



        Рассмотрим произвольную вершину i и всех её соседей N(i).




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы                  16 / 21
Задача о раскраске графа

                                                                   √
 Раскраска 3-раскрашиваемого графа в                                   n цветов



        Рассмотрим произвольную вершину i и всех её соседей N(i).
        Ясно, что N(i) можно покрасить в два цвета.




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы                  16 / 21
Задача о раскраске графа

                                                                   √
 Раскраска 3-раскрашиваемого графа в                                   n цветов



        Рассмотрим произвольную вершину i и всех её соседей N(i).
        Ясно, что N(i) можно покрасить в два цвета.
                                                     √
        Алгоритм: пока есть вершина степени хотя бы n, покрасим её
        соседей в новые два цвета и выкинем их всех из графа; через не
                  √                                               √
        более чем n таких операций останется граф степени менее n,
                                      √
        который мы покрасим в новые n цветов.




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы                  16 / 21
Задача о раскраске графа

                                                                   √
 Раскраска 3-раскрашиваемого графа в                                   n цветов



        Рассмотрим произвольную вершину i и всех её соседей N(i).
        Ясно, что N(i) можно покрасить в два цвета.
                                                     √
        Алгоритм: пока есть вершина степени хотя бы n, покрасим её
        соседей в новые два цвета и выкинем их всех из графа; через не
                  √                                               √
        более чем n таких операций останется граф степени менее n,
                                      √
        который мы покрасим в новые n цветов.
                                                √
        Потратим, таким образом, не более чем 3 n цветов.




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы                  16 / 21
Задача о раскраске графа


 Векторная 3-раскрашиваемость


  Определение
  Граф называется векторно 3-раскрашиваемым (vector 3-colorable),
  если каждой вершине графа можно приписать вектор так, что для
  любого ребра (i, j) ∈ E выполнено равенство viT vj = −1/2 (и векторно
  2-раскрашиваемым, если viT vj = −1).




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы    17 / 21
Задача о раскраске графа


 Векторная 3-раскрашиваемость


  Определение
  Граф называется векторно 3-раскрашиваемым (vector 3-colorable),
  если каждой вершине графа можно приписать вектор так, что для
  любого ребра (i, j) ∈ E выполнено равенство viT vj = −1/2 (и векторно
  2-раскрашиваемым, если viT vj = −1).

  Замечания




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы    17 / 21
Задача о раскраске графа


 Векторная 3-раскрашиваемость


  Определение
  Граф называется векторно 3-раскрашиваемым (vector 3-colorable),
  если каждой вершине графа можно приписать вектор так, что для
  любого ребра (i, j) ∈ E выполнено равенство viT vj = −1/2 (и векторно
  2-раскрашиваемым, если viT vj = −1).

  Замечания
      Любой 3-раскрашиваемый граф является векторно
      3-раскрашиваемым. Обратное, вообще говоря, неверно.




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы    17 / 21
Задача о раскраске графа


 Векторная 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
Задача о раскраске графа


 Половинная раскраска


  Определение
  Половинной раскраской (half-coloring) графа называется правильная
  раскраска хотя бы половины вершин графа.




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы   18 / 21
Задача о раскраске графа


 Половинная раскраска


  Определение
  Половинной раскраской (half-coloring) графа называется правильная
  раскраска хотя бы половины вершин графа.

  Замечание
  Если половинная раскраска графа в n цветов может быть найдена за
  полиномиальное время, то граф можно полностью раскрасить за
  полиномиальное время в
                             (︁ n )︁
                       n +           + · · · = O(n )
                                2
  цветов.


А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы   18 / 21
Задача о раскраске графа


 Алгоритм и его анализ




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы   19 / 21
Задача о раскраске графа


 Алгоритм и его анализ

        Найдём необходимый набор векторов, решив соответствующую
        задачу полуопределённого программирования.




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы   19 / 21
Задача о раскраске графа


 Алгоритм и его анализ

        Найдём необходимый набор векторов, решив соответствующую
        задачу полуопределённого программирования.
        Случайно выбранная гиперплоскость разделяет два вектора vi , vj
        для (i, j) ∈ E с вероятностью 2/3.




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы     19 / 21
Задача о раскраске графа


 Алгоритм и его анализ

        Найдём необходимый набор векторов, решив соответствующую
        задачу полуопределённого программирования.
        Случайно выбранная гиперплоскость разделяет два вектора vi , vj
        для (i, j) ∈ E с вероятностью 2/3.
        Такая гиперплоскость, таким образом, может быть использована
        для покраски вершин в два цвета с мат. ожиданием количества
        одноцветных рёбер, равным одной трети общего количества рёбер.




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы     19 / 21
Задача о раскраске графа


 Алгоритм и его анализ

        Найдём необходимый набор векторов, решив соответствующую
        задачу полуопределённого программирования.
        Случайно выбранная гиперплоскость разделяет два вектора vi , vj
        для (i, j) ∈ E с вероятностью 2/3.
        Такая гиперплоскость, таким образом, может быть использована
        для покраски вершин в два цвета с мат. ожиданием количества
        одноцветных рёбер, равным одной трети общего количества рёбер.
        Если же провести r случайных гиперплоскостей и покрасить
        вершины в соответствующие 2r цветов, то ребро графа будет
        одноцветным с вероятностью 1/3r .




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы     19 / 21
Задача о раскраске графа


 Алгоритм и его анализ

        Найдём необходимый набор векторов, решив соответствующую
        задачу полуопределённого программирования.
        Случайно выбранная гиперплоскость разделяет два вектора 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
Задача о раскраске графа


 Алгоритм и его анализ (завершение)




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы   20 / 21
Задача о раскраске графа


 Алгоритм и его анализ (завершение)




        С большой вероятностью, таким образом, количество
        одноцветных рёбер будет меньше n/2.




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы   20 / 21
Задача о раскраске графа


 Алгоритм и его анализ (завершение)




        С большой вероятностью, таким образом, количество
        одноцветных рёбер будет меньше n/2.
        Сотрём цвет одного из концов каждого одноцветного ребра и
        получим половинную раскраску.




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы    20 / 21
Задача о раскраске графа


 Алгоритм и его анализ (завершение)




        С большой вероятностью, таким образом, количество
        одноцветных рёбер будет меньше n/2.
        Сотрём цвет одного из концов каждого одноцветного ребра и
        получим половинную раскраску.
        Использовали 2r = O(d log2 3 ) = O(d 0.631 ) цветов.




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы    20 / 21
Задача о раскраске графа




          Спасибо за внимание!




А. Куликов (Computer Science клуб)     9. Приближенные алгоритмы   21 / 21

20091115 algorithmsfornphardproblems kulikov_lecture09

  • 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