SlideShare a Scribd company logo
1 of 65
Download to read offline
Алгоритмы для 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

More Related Content

What's hot

Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовTheoretical mechanics department
 
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Nikolay Grebenshikov
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Technosphere1
 
L11: Метод ансамблей
L11: Метод ансамблейL11: Метод ансамблей
L11: Метод ансамблейTechnosphere1
 
20091101 algorithmsfornphardproblems kulikov_lecture06
20091101 algorithmsfornphardproblems kulikov_lecture0620091101 algorithmsfornphardproblems kulikov_lecture06
20091101 algorithmsfornphardproblems kulikov_lecture06Computer Science Club
 
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...Nikolay Grebenshikov
 
L5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмыL5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмыTechnosphere1
 
20090913 algorithmsfornphardproblems kulikov_lecture02
20090913 algorithmsfornphardproblems kulikov_lecture0220090913 algorithmsfornphardproblems kulikov_lecture02
20090913 algorithmsfornphardproblems kulikov_lecture02Computer Science Club
 
L7:Задача кластеризации. Метрики качества
L7:Задача кластеризации. Метрики качестваL7:Задача кластеризации. Метрики качества
L7:Задача кластеризации. Метрики качестваTechnosphere1
 
L10: Алгоритмы кластеризации
L10: Алгоритмы кластеризацииL10: Алгоритмы кластеризации
L10: Алгоритмы кластеризацииTechnosphere1
 
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)Alexey Paznikov
 
Методы удаления артефактов в видео
Методы удаления артефактов в видеоМетоды удаления артефактов в видео
Методы удаления артефактов в видеоMSU GML VideoGroup
 
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Technosphere1
 
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Technosphere1
 
L3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессияL3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессияTechnosphere1
 
Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Technosphere1
 
L6: Метод опорных векторов
L6: Метод опорных векторовL6: Метод опорных векторов
L6: Метод опорных векторовTechnosphere1
 
L2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибокL2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибокTechnosphere1
 

What's hot (20)

Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементов
 
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана"
 
Метод конечных разностей
Метод конечных разностейМетод конечных разностей
Метод конечных разностей
 
L11: Метод ансамблей
L11: Метод ансамблейL11: Метод ансамблей
L11: Метод ансамблей
 
Definite integral
Definite integralDefinite integral
Definite integral
 
20091101 algorithmsfornphardproblems kulikov_lecture06
20091101 algorithmsfornphardproblems kulikov_lecture0620091101 algorithmsfornphardproblems kulikov_lecture06
20091101 algorithmsfornphardproblems kulikov_lecture06
 
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...
 
L5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмыL5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмы
 
20090913 algorithmsfornphardproblems kulikov_lecture02
20090913 algorithmsfornphardproblems kulikov_lecture0220090913 algorithmsfornphardproblems kulikov_lecture02
20090913 algorithmsfornphardproblems kulikov_lecture02
 
L7:Задача кластеризации. Метрики качества
L7:Задача кластеризации. Метрики качестваL7:Задача кластеризации. Метрики качества
L7:Задача кластеризации. Метрики качества
 
L10: Алгоритмы кластеризации
L10: Алгоритмы кластеризацииL10: Алгоритмы кластеризации
L10: Алгоритмы кластеризации
 
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
 
Методы удаления артефактов в видео
Методы удаления артефактов в видеоМетоды удаления артефактов в видео
Методы удаления артефактов в видео
 
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение"
 
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
 
L3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессияL3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессия
 
Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов"
 
L6: Метод опорных векторов
L6: Метод опорных векторовL6: Метод опорных векторов
L6: Метод опорных векторов
 
L2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибокL2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибок
 

Similar to 20091115 algorithmsfornphardproblems kulikov_lecture09

20071111 efficientalgorithms kulikov_lecture06
20071111 efficientalgorithms kulikov_lecture0620071111 efficientalgorithms kulikov_lecture06
20071111 efficientalgorithms kulikov_lecture06Computer Science Club
 
20071014 efficientalgorithms kulikov_lecture04
20071014 efficientalgorithms kulikov_lecture0420071014 efficientalgorithms kulikov_lecture04
20071014 efficientalgorithms kulikov_lecture04Computer Science Club
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовMikhail Kurnosov
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовMikhail Kurnosov
 
Лекция 12 Теоретико-числовые алгоритмы Часть 1
Лекция 12 Теоретико-числовые алгоритмы Часть 1Лекция 12 Теоретико-числовые алгоритмы Часть 1
Лекция 12 Теоретико-числовые алгоритмы Часть 1simple_people
 
20091108 algorithmsfornphardproblems kulikov_lecture08
20091108 algorithmsfornphardproblems kulikov_lecture0820091108 algorithmsfornphardproblems kulikov_lecture08
20091108 algorithmsfornphardproblems kulikov_lecture08Computer Science Club
 
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Nikolay Grebenshikov
 
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Nikolay Grebenshikov
 
Лекция 11 Приближенные алгоритмы
Лекция 11 Приближенные алгоритмыЛекция 11 Приближенные алгоритмы
Лекция 11 Приближенные алгоритмыsimple_people
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.sharikdp
 
Лекция 8 Динамическое программирование
Лекция 8 Динамическое программированиеЛекция 8 Динамическое программирование
Лекция 8 Динамическое программированиеsimple_people
 
л 8-многокропт-мудрова-3-12
л 8-многокропт-мудрова-3-12л 8-многокропт-мудрова-3-12
л 8-многокропт-мудрова-3-12rszverev
 
20080309 efficientalgorithms kulikov_lecture15
20080309 efficientalgorithms kulikov_lecture1520080309 efficientalgorithms kulikov_lecture15
20080309 efficientalgorithms kulikov_lecture15Computer Science Club
 
20080309 efficientalgorithms kulikov_lecture15
20080309 efficientalgorithms kulikov_lecture1520080309 efficientalgorithms kulikov_lecture15
20080309 efficientalgorithms kulikov_lecture15Computer Science Club
 
20091025 algorithmsfornphardproblems kulikov_lecture04
20091025 algorithmsfornphardproblems kulikov_lecture0420091025 algorithmsfornphardproblems kulikov_lecture04
20091025 algorithmsfornphardproblems kulikov_lecture04Computer Science Club
 
Многочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийМногочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийTheoretical mechanics department
 
Opredelennyj integral
Opredelennyj integralOpredelennyj integral
Opredelennyj integralDimon4
 
20081026 structuralcomplexitytheory lecture05-06
20081026 structuralcomplexitytheory lecture05-0620081026 structuralcomplexitytheory lecture05-06
20081026 structuralcomplexitytheory lecture05-06Computer Science Club
 

Similar to 20091115 algorithmsfornphardproblems kulikov_lecture09 (20)

20071111 efficientalgorithms kulikov_lecture06
20071111 efficientalgorithms kulikov_lecture0620071111 efficientalgorithms kulikov_lecture06
20071111 efficientalgorithms kulikov_lecture06
 
20071014 efficientalgorithms kulikov_lecture04
20071014 efficientalgorithms kulikov_lecture0420071014 efficientalgorithms kulikov_lecture04
20071014 efficientalgorithms kulikov_lecture04
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмов
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмов
 
Лекция 12 Теоретико-числовые алгоритмы Часть 1
Лекция 12 Теоретико-числовые алгоритмы Часть 1Лекция 12 Теоретико-числовые алгоритмы Часть 1
Лекция 12 Теоретико-числовые алгоритмы Часть 1
 
20091108 algorithmsfornphardproblems kulikov_lecture08
20091108 algorithmsfornphardproblems kulikov_lecture0820091108 algorithmsfornphardproblems kulikov_lecture08
20091108 algorithmsfornphardproblems kulikov_lecture08
 
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
 
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
 
Лекция 11 Приближенные алгоритмы
Лекция 11 Приближенные алгоритмыЛекция 11 Приближенные алгоритмы
Лекция 11 Приближенные алгоритмы
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.
 
Лекция 8 Динамическое программирование
Лекция 8 Динамическое программированиеЛекция 8 Динамическое программирование
Лекция 8 Динамическое программирование
 
л 8-многокропт-мудрова-3-12
л 8-многокропт-мудрова-3-12л 8-многокропт-мудрова-3-12
л 8-многокропт-мудрова-3-12
 
8
88
8
 
20080309 efficientalgorithms kulikov_lecture15
20080309 efficientalgorithms kulikov_lecture1520080309 efficientalgorithms kulikov_lecture15
20080309 efficientalgorithms kulikov_lecture15
 
20080309 efficientalgorithms kulikov_lecture15
20080309 efficientalgorithms kulikov_lecture1520080309 efficientalgorithms kulikov_lecture15
20080309 efficientalgorithms kulikov_lecture15
 
20091025 algorithmsfornphardproblems kulikov_lecture04
20091025 algorithmsfornphardproblems kulikov_lecture0420091025 algorithmsfornphardproblems kulikov_lecture04
20091025 algorithmsfornphardproblems kulikov_lecture04
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
Многочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийМногочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближений
 
Opredelennyj integral
Opredelennyj integralOpredelennyj integral
Opredelennyj integral
 
20081026 structuralcomplexitytheory lecture05-06
20081026 structuralcomplexitytheory lecture05-0620081026 structuralcomplexitytheory lecture05-06
20081026 structuralcomplexitytheory lecture05-06
 

More from Computer Science Club

20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugsComputer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 

More from Computer Science Club (20)

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
 
20140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-0320140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-03
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture2_matiyasevich
20131006 h10 lecture2_matiyasevich20131006 h10 lecture2_matiyasevich
20131006 h10 lecture2_matiyasevich
 

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