SlideShare a Scribd company logo
с/к “Эффективные алгоритмы”
     Лекция 15: Полиномиальный алгоритм для задачи
              линейного программирования

                                      А. Куликов

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




А. Куликов (CS клуб при ПОМИ)     15. Алгоритм Кармаркара       1 / 31
План лекции


1   Введение




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   2 / 31
План лекции


1   Введение

2   Масштабирование и направление скорейшего спуска




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   2 / 31
План лекции


1   Введение

2   Масштабирование и направление скорейшего спуска

3   Постановка задачи, потенциал
      Постановка задачи
      Потенциал




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   2 / 31
План лекции


1   Введение

2   Масштабирование и направление скорейшего спуска

3   Постановка задачи, потенциал
      Постановка задачи
      Потенциал

4   Алгоритм Кармаркара




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   2 / 31
План лекции


1   Введение

2   Масштабирование и направление скорейшего спуска

3   Постановка задачи, потенциал
      Постановка задачи
      Потенциал

4   Алгоритм Кармаркара

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




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   2 / 31
План лекции


1   Введение

2   Масштабирование и направление скорейшего спуска

3   Постановка задачи, потенциал
      Постановка задачи
      Потенциал

4   Алгоритм Кармаркара

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




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   3 / 31
Общий вид задачи линейного программирования



Общий вид задачи линейного программирования
                          минимизировать       cT x
                             при условиях      Ax         =   b
                                               x          ≥   0,

где c ∈ Rn , b ∈ Rm , A — матрица полного ранга размера m × n, m < n.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара            4 / 31
Общая идея симплекс-метода



Общая идея симплекс-метода




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   5 / 31
Общая идея симплекс-метода



Общая идея симплекс-метода
      Множество допустимых решений является выпуклым
      многогранником.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   5 / 31
Общая идея симплекс-метода



Общая идея симплекс-метода
      Множество допустимых решений является выпуклым
      многогранником.
      Симплекс-метод переходит от одной вершины этого
      многогранника к другой до тех пор, пока это улучшает значение
      целевой функции.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара           5 / 31
Общая идея симплекс-метода



Общая идея симплекс-метода
      Множество допустимых решений является выпуклым
      многогранником.
      Симплекс-метод переходит от одной вершины этого
      многогранника к другой до тех пор, пока это улучшает значение
      целевой функции.
      Известны примеры, на которых симплекс-метод будет работать
      экспоненицально долго (такие примеры, однако, не встречаются
      на практике).




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара           5 / 31
Общая идея метода внутренней точки


Общая идея метода внутренней точки




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   6 / 31
Общая идея метода внутренней точки


Общая идея метода внутренней точки
      Выбирается произвольная точка x 0 внутри многогранника
      допустимых решений.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара        6 / 31
Общая идея метода внутренней точки


Общая идея метода внутренней точки
      Выбирается произвольная точка x 0 внутри многогранника
      допустимых решений.
      Найдем преобразование , для которого c T (x) < c T x.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара           6 / 31
Общая идея метода внутренней точки


Общая идея метода внутренней точки
      Выбирается произвольная точка x 0 внутри многогранника
      допустимых решений.
      Найдем преобразование , для которого c T (x) < c T x.
      На каждой итерации переходим от x k к x k+1 = (x k ), оставаясь
      внутри многогранника.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара               6 / 31
Общая идея метода внутренней точки


Общая идея метода внутренней точки
      Выбирается произвольная точка x 0 внутри многогранника
      допустимых решений.
      Найдем преобразование , для которого c T (x) < c T x.
      На каждой итерации переходим от x k к x k+1 = (x k ), оставаясь
      внутри многогранника.
      Когда значение c T (x k ) станет достаточно маленьким, перейдём
      из текущей точки в ближайшую вершину многогранника, которая
      и будет решением.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара               6 / 31
Основные составляющие алгоритма Кармаркара




Основные составляющие




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   7 / 31
Основные составляющие алгоритма Кармаркара




Основные составляющие
   1   масштабирование (scaling)




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   7 / 31
Основные составляющие алгоритма Кармаркара




Основные составляющие
   1   масштабирование (scaling)
   2   направление быстрейшего спуска (steepest descent direction)




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара              7 / 31
Основные составляющие алгоритма Кармаркара




Основные составляющие
   1   масштабирование (scaling)
   2   направление быстрейшего спуска (steepest descent direction)
   3   потенциал (potential function)




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара              7 / 31
План лекции


1   Введение

2   Масштабирование и направление скорейшего спуска

3   Постановка задачи, потенциал
      Постановка задачи
      Потенциал

4   Алгоритм Кармаркара

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




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   8 / 31
Обобщенная задача



Обобщенная задача
                          минимизировать       f (x)
                             при условиях      Ax         =   b
                                               x          ≥   0,

где f : Rn → R, b ∈ Rm , A — матрица полного ранга размера m × n,
         ≥0
m < n.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара            9 / 31
Общие идеи алгоритма



Общие идеи алгоритма




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   10 / 31
Общие идеи алгоритма



Общие идеи алгоритма
      Мы представим для этой задачи алгоритм, основанный на методе
      скорейшего спуска, в начале каждой итерации которого
      производится масштабирование.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара        10 / 31
Общие идеи алгоритма



Общие идеи алгоритма
      Мы представим для этой задачи алгоритм, основанный на методе
      скорейшего спуска, в начале каждой итерации которого
      производится масштабирование.
      Каждая итерация начинается с точки x k , а масштабирование
      выглядит следующим образом: x → y = X −1 x, где
      X = diag(x1 , . . . , xn ) (таким образом, x k переходит в e).
                k            k




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара                10 / 31
Алгоритм

Алгоритм
Допустим, что дана исходная допустимая точка x 0 > 0 и число
 ∈ (0, 1]. Положим k = 0 и будем повторять (до некоторого момента)
следующие шаги:




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара          11 / 31
Алгоритм

Алгоритм
Допустим, что дана исходная допустимая точка x 0 > 0 и число
 ∈ (0, 1]. Положим k = 0 и будем повторять (до некоторого момента)
следующие шаги:
                                                    ¯        ¯
      Масштабирование: X ← diag(x k , . . . , xn ), A ← AX , f (y ) ← f (Xy ).
                                               k
                                           1




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара                   11 / 31
Алгоритм

Алгоритм
Допустим, что дана исходная допустимая точка x 0 > 0 и число
 ∈ (0, 1]. Положим k = 0 и будем повторять (до некоторого момента)
следующие шаги:
                                    k         k    ¯        ¯
      Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , f (y ) ← f (Xy ).
                                                      (︀ T )︀−1
                             ¯
      Направление: h ← −P∇f (e), где P ← I − AT AA ¯ ¯¯          ¯
                                                                 A—
                            ¯
      проектор на ядро Null(A).




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара                  11 / 31
Алгоритм

Алгоритм
Допустим, что дана исходная допустимая точка x 0 > 0 и число
 ∈ (0, 1]. Положим k = 0 и будем повторять (до некоторого момента)
следующие шаги:
                                    k         k    ¯        ¯
      Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , f (y ) ← f (Xy ).
                                                      (︀ T )︀−1
                             ¯
      Направление: h ← −P∇f (e), где P ← I − AT AA ¯ ¯¯          ¯
                                                                 A—
                            ¯
      проектор на ядро Null(A).
                              ¯             ¯
      Поиск на прямой: найти  ∈ argmin{f (e + h)| ≥ 0, e + h ≥ 0}.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара                  11 / 31
Алгоритм

Алгоритм
Допустим, что дана исходная допустимая точка x 0 > 0 и число
 ∈ (0, 1]. Положим k = 0 и будем повторять (до некоторого момента)
следующие шаги:
                                    k         k    ¯        ¯
      Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , f (y ) ← f (Xy ).
                                                      (︀ T )︀−1
                             ¯
      Направление: h ← −P∇f (e), где P ← I − AT AA ¯ ¯¯          ¯
                                                                 A—
                            ¯
      проектор на ядро Null(A).
                              ¯             ¯
      Поиск на прямой: найти  ∈ argmin{f (e + h)| ≥ 0, e + h ≥ 0}.
                              ¯
      Результат: y * ← e +  h.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара                  11 / 31
Алгоритм

Алгоритм
Допустим, что дана исходная допустимая точка x 0 > 0 и число
 ∈ (0, 1]. Положим k = 0 и будем повторять (до некоторого момента)
следующие шаги:
                                    k         k    ¯        ¯
      Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , f (y ) ← f (Xy ).
                                                      (︀ T )︀−1
                             ¯
      Направление: h ← −P∇f (e), где P ← I − AT AA ¯ ¯¯          ¯
                                                                 A—
                            ¯
      проектор на ядро Null(A).
                              ¯             ¯
      Поиск на прямой: найти  ∈ argmin{f (e + h)| ≥ 0, e + h ≥ 0}.
                              ¯
      Результат: y * ← e +  h.
      Обратно: x k+1 ← Xy * .




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара                  11 / 31
Алгоритм

Алгоритм
Допустим, что дана исходная допустимая точка x 0 > 0 и число
 ∈ (0, 1]. Положим k = 0 и будем повторять (до некоторого момента)
следующие шаги:
                                    k         k    ¯        ¯
      Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , f (y ) ← f (Xy ).
                                                      (︀ T )︀−1
                             ¯
      Направление: h ← −P∇f (e), где P ← I − AT AA ¯ ¯¯          ¯
                                                                 A—
                            ¯
      проектор на ядро Null(A).
                              ¯             ¯
      Поиск на прямой: найти  ∈ argmin{f (e + h)| ≥ 0, e + h ≥ 0}.
                              ¯
      Результат: y * ← e +  h.
      Обратно: x k+1 ← Xy * .
      k ← k + 1.



А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара                  11 / 31
План лекции


1   Введение

2   Масштабирование и направление скорейшего спуска

3   Постановка задачи, потенциал
      Постановка задачи
      Потенциал

4   Алгоритм Кармаркара

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




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   12 / 31
План лекции


1   Введение

2   Масштабирование и направление скорейшего спуска

3   Постановка задачи, потенциал
      Постановка задачи
      Потенциал

4   Алгоритм Кармаркара

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




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   13 / 31
Вид задачи



Вид задачи
                          минимизировать       cT x
                             при условиях      Ax         =   0
                                               x          ≥   0,

где c ∈ Rn , b ∈ Rm , A — матрица полного ранга размера m × n, m < n.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара            14 / 31
Дополнительные предположения


Дополнительные предположения




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   15 / 31
Дополнительные предположения


Дополнительные предположения
      Множество допустимых решений S = {x ∈ Rn |Ax = 0}
                                             +
      ограничено.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   15 / 31
Дополнительные предположения


Дополнительные предположения
      Множество допустимых решений S = {x ∈ Rn |Ax = 0}
                                             +
      ограничено.
      Точка x 0 = e допустима. (Известны процедуры нахождения
      начальной допустимой точки x 0 . Масштабированием такую точку
      можно перевести в e.)




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара         15 / 31
Дополнительные предположения


Дополнительные предположения
      Множество допустимых решений S = {x ∈ Rn |Ax = 0}
                                             +
      ограничено.
      Точка x 0 = e допустима. (Известны процедуры нахождения
      начальной допустимой точки x 0 . Масштабированием такую точку
      можно перевести в e.)
      c T x не константа на S.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара         15 / 31
Дополнительные предположения


Дополнительные предположения
      Множество допустимых решений S = {x ∈ Rn |Ax = 0}
                                             +
      ограничено.
      Точка x 0 = e допустима. (Известны процедуры нахождения
      начальной допустимой точки x 0 . Масштабированием такую точку
      можно перевести в e.)
      c T x не константа на S.
      Значение любого оптимального решения x есть c T x = 0. (Очень
                                              ˆ        ˆ
      сильное условие, от которого, тем не менее, можно избавиться.)




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара           15 / 31
План лекции


1   Введение

2   Масштабирование и направление скорейшего спуска

3   Постановка задачи, потенциал
      Постановка задачи
      Потенциал

4   Алгоритм Кармаркара

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




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   16 / 31
Потенциал

Потенциал
                                                  n
                                                 ∑︁                 (c T x)n
           x∈   Rn
                 >0
                                        T
                      ↦→ f (x) = n log(c x) −          log xi = log ∏︀n      .
                                                 i=1                  i=1 xi




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара                          17 / 31
Потенциал

Потенциал
                                                  n
                                                 ∑︁                 (c T x)n
           x∈   Rn
                 >0
                                        T
                      ↦→ f (x) = n log(c x) −          log xi = log ∏︀n      .
                                                 i=1                  i=1 xi



Задача
Найти x ∈ S, такой что f (x) < −2nL.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара                          17 / 31
Потенциал

Потенциал
                                                  n
                                                 ∑︁                 (c T x)n
           x∈   Rn
                 >0
                                        T
                      ↦→ f (x) = n log(c x) −          log xi = log ∏︀n      .
                                                 i=1                  i=1 xi



Задача
Найти x ∈ S, такой что f (x) < −2nL.

Интуитивно
Мы хотим, чтобы первое слагаемое в определении x было бы как
можно меньше. Второе же слагаемое (логарифмический барьер)
неограниченно возрастает у границы Rn и ограничено снизу,
                                    ≥0
поскольку S ограничено.


А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара                          17 / 31
План лекции


1   Введение

2   Масштабирование и направление скорейшего спуска

3   Постановка задачи, потенциал
      Постановка задачи
      Потенциал

4   Алгоритм Кармаркара

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




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   18 / 31
Алгоритм Кармаркара

Алгоритм Кармаркара
Допустим, что даны x 0 = e ∈ S и L > 0. Положим k = 0 и будем
повторять:




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара         19 / 31
Алгоритм Кармаркара

Алгоритм Кармаркара
Допустим, что даны x 0 = e ∈ S и L > 0. Положим k = 0 и будем
повторять:
                                             k    ¯
    Масштабирование: X ← diag(x k , . . . , xn ), A ← AX , c ← Xc.
                                                           ¯
                                           1




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара              19 / 31
Алгоритм Кармаркара

Алгоритм Кармаркара
Допустим, что даны x 0 = e ∈ S и L > 0. Положим k = 0 и будем
повторять:
                                   k        k    ¯
    Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , c ← Xc.
                                                          ¯
                                                      (︀ T )︀−1
                          n                         ¯ ¯¯
    Направление: h ← − c T e P¯ + e, где P ← I − AT AA
                              c                                 ¯
                                                                A—
                        ¯
                            ¯
    проектор на ядро Null(A).




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара              19 / 31
Алгоритм Кармаркара

Алгоритм Кармаркара
Допустим, что даны x 0 = e ∈ S и L > 0. Положим k = 0 и будем
повторять:
                                   k        k    ¯
    Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , c ← Xc.
                                                          ¯
                                                      (︀ T )︀−1
                          n                         ¯ ¯¯
    Направление: h ← − c T e P¯ + e, где P ← I − AT AA
                               c                                ¯
                                                                A—
                        ¯
                            ¯
    проектор на ядро Null(A).
                              ¯           ¯
    Поиск на прямой: найти  ∈ argmin{f (e + h)| ≥ 0, e + h ≥ 0}.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара              19 / 31
Алгоритм Кармаркара

Алгоритм Кармаркара
Допустим, что даны x 0 = e ∈ S и L > 0. Положим k = 0 и будем
повторять:
                                   k        k    ¯
    Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , c ← Xc.
                                                          ¯
                                                      (︀ T )︀−1
                          n                         ¯ ¯¯
    Направление: h ← − c T e P¯ + e, где P ← I − AT AA
                               c                                ¯
                                                                A—
                        ¯
                            ¯
    проектор на ядро Null(A).
                              ¯           ¯
    Поиск на прямой: найти  ∈ argmin{f (e + h)| ≥ 0, e + h ≥ 0}.
                           ¯
      Результат: y * ← e + h.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара              19 / 31
Алгоритм Кармаркара

Алгоритм Кармаркара
Допустим, что даны x 0 = e ∈ S и L > 0. Положим k = 0 и будем
повторять:
                                   k        k    ¯
    Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , c ← Xc.
                                                          ¯
                                                      (︀ T )︀−1
                          n                         ¯ ¯¯
    Направление: h ← − c T e P¯ + e, где P ← I − AT AA
                               c                                ¯
                                                                A—
                        ¯
                            ¯
    проектор на ядро Null(A).
                              ¯           ¯
    Поиск на прямой: найти  ∈ argmin{f (e + h)| ≥ 0, e + h ≥ 0}.
                           ¯
      Результат: y * ← e + h.
      Обратно: x k+1 ← Xy * .




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара              19 / 31
Алгоритм Кармаркара

Алгоритм Кармаркара
Допустим, что даны x 0 = e ∈ S и L > 0. Положим k = 0 и будем
повторять:
                                   k        k    ¯
    Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , c ← Xc.
                                                          ¯
                                                      (︀ T )︀−1
                          n                         ¯ ¯¯
    Направление: h ← − c T e P¯ + e, где P ← I − AT AA
                               c                                ¯
                                                                A—
                        ¯
                            ¯
    проектор на ядро Null(A).
                              ¯           ¯
    Поиск на прямой: найти  ∈ argmin{f (e + h)| ≥ 0, e + h ≥ 0}.
                           ¯
      Результат: y * ← e + h.
      Обратно: x k+1 ← Xy * .
      k ← k + 1.
пока f (x k ) ≥ −2nL.



А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара              19 / 31
План лекции


1   Введение

2   Масштабирование и направление скорейшего спуска

3   Постановка задачи, потенциал
      Постановка задачи
      Потенциал

4   Алгоритм Кармаркара

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




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   20 / 31
Важное свойство алгоритма (без доказательства)


Лемма
                                f (x k+1 ) < f (x k ) − 0.1.




А. Куликов (CS клуб при ПОМИ)      15. Алгоритм Кармаркара     21 / 31
Важное свойство алгоритма (без доказательства)


Лемма
                                f (x k+1 ) < f (x k ) − 0.1.



Замечания




А. Куликов (CS клуб при ПОМИ)      15. Алгоритм Кармаркара     21 / 31
Важное свойство алгоритма (без доказательства)


Лемма
                                f (x k+1 ) < f (x k ) − 0.1.



Замечания
      Из этого следует, что не более чем через 30nL итераций
      потенциал уменьшится хотя бы на 3nL.




А. Куликов (CS клуб при ПОМИ)      15. Алгоритм Кармаркара     21 / 31
Важное свойство алгоритма (без доказательства)


Лемма
                                f (x k+1 ) < f (x k ) − 0.1.



Замечания
      Из этого следует, что не более чем через 30nL итераций
      потенциал уменьшится хотя бы на 3nL.
      Мы также покажем, что такого уменьшения потенциала
      достаточно, чтобы найти оптимальное значение.




А. Куликов (CS клуб при ПОМИ)      15. Алгоритм Кармаркара     21 / 31
Исходная задача


Исходная задача
                          минимизировать       cT x
                             при условиях      Ax         =   b
                                               x          ≥   0,

где c ∈ Rn , b ∈ Rm , A — матрица полного ранга размера m × n, m < n.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара            22 / 31
Исходная задача


Исходная задача
                          минимизировать       cT x
                             при условиях      Ax         =   b
                                               x          ≥   0,

где c ∈ Rn , b ∈ Rm , A — матрица полного ранга размера m × n, m < n.


Замечание
Допустим, что многогранник допустимых решений ограничен и что все
числа целые (или, что эквивалентно, рациональные).




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара            22 / 31
Определение числа L


Определение числа L




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   23 / 31
Определение числа L


Определение числа L
      Пусть l равно общей длине битового представления входных
      данных.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара          23 / 31
Определение числа L


Определение числа L
      Пусть l равно общей длине битового представления входных
      данных.
      Заметим, что любое выражение, содержащее суммы и
      произведения чисел из входных матриц и векторов без
      повторений, не может иметь значение больше 2l .




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара          23 / 31
Определение числа L


Определение числа L
      Пусть l равно общей длине битового представления входных
      данных.
      Заметим, что любое выражение, содержащее суммы и
      произведения чисел из входных матриц и векторов без
      повторений, не может иметь значение больше 2l .
      Определитель матрицы не превосходит произведения норм
      столбцов, поэтому | det M| ≤ 2l для любой квадратной
      подматрицы матрицы [A|b].




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара          23 / 31
Определение числа L


Определение числа L
      Пусть l равно общей длине битового представления входных
      данных.
      Заметим, что любое выражение, содержащее суммы и
      произведения чисел из входных матриц и векторов без
      повторений, не может иметь значение больше 2l .
      Определитель матрицы не превосходит произведения норм
      столбцов, поэтому | det M| ≤ 2l для любой квадратной
      подматрицы матрицы [A|b].
      Пусть L = l + n + 1.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара          23 / 31
Ключевая лемма

Лемма




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   24 / 31
Ключевая лемма

Лемма
      Для любой вершины x многогранника и для любого i либо xi = 0,
      либо xi > 2−L .




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара        24 / 31
Ключевая лемма

Лемма
      Для любой вершины x многогранника и для любого i либо xi = 0,
      либо xi > 2−L .
      Для любой вершины x многогранника либо c T x = 0, либо
      c T x > 2−L .




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара        24 / 31
Ключевая лемма

Лемма
      Для любой вершины x многогранника и для любого i либо xi = 0,
      либо xi > 2−L .
      Для любой вершины x многогранника либо c T x = 0, либо
      c T x > 2−L .
      Для любой допустимой точки x c T x ≤ 2L и e T x ≤ 2L .




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара        24 / 31
Ключевая лемма

Лемма
      Для любой вершины x многогранника и для любого i либо xi = 0,
      либо xi > 2−L .
      Для любой вершины x многогранника либо c T x = 0, либо
      c T x > 2−L .
      Для любой допустимой точки x c T x ≤ 2L и e T x ≤ 2L .

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




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара        24 / 31
Ключевая лемма

Лемма
      Для любой вершины x многогранника и для любого i либо xi = 0,
      либо xi > 2−L .
      Для любой вершины x многогранника либо c T x = 0, либо
      c T x > 2−L .
      Для любой допустимой точки x c T x ≤ 2L и e T x ≤ 2L .

Доказательство
      Система Ax = b может быть разбита на AB xB + AN xN = b, где
      xB — вектор, составленный из положительных компонент x.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара         24 / 31
Ключевая лемма

Лемма
      Для любой вершины x многогранника и для любого i либо xi = 0,
      либо xi > 2−L .
      Для любой вершины x многогранника либо c T x = 0, либо
      c T x > 2−L .
      Для любой допустимой точки x c T x ≤ 2L и e T x ≤ 2L .

Доказательство
      Система Ax = b может быть разбита на AB xB + AN xN = b, где
      xB — вектор, составленный из положительных компонент x.
      Тогда xN = 0 и система может быть переписана как AB xB = b.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара             24 / 31
Ключевая лемма

Лемма
      Для любой вершины x многогранника и для любого i либо xi = 0,
      либо xi > 2−L .
      Для любой вершины x многогранника либо c T x = 0, либо
      c T x > 2−L .
      Для любой допустимой точки x c T x ≤ 2L и e T x ≤ 2L .

Доказательство
      Система Ax = b может быть разбита на AB xB + AN xN = b, где
      xB — вектор, составленный из положительных компонент x.
      Тогда xN = 0 и система может быть переписана как AB xB = b.
      Если x — вершина, то столбцы AB линейно независимы.


А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара             24 / 31
Доказательство (продолжение)

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




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   25 / 31
Доказательство (продолжение)

Доказательство
      Будем считать, что AB — квадратная матрица (в противном
      случае, выкинем лишние уравнения).




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара         25 / 31
Доказательство (продолжение)

Доказательство
      Будем считать, что AB — квадратная матрица (в противном
      случае, выкинем лишние уравнения).
      Тогда xi = ∆i /∆, где ∆ = det AB , а ∆i — определитель матрицы,
      полученной заменой столбца Ai на b.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара           25 / 31
Доказательство (продолжение)

Доказательство
      Будем считать, что AB — квадратная матрица (в противном
      случае, выкинем лишние уравнения).
      Тогда xi = ∆i /∆, где ∆ = det AB , а ∆i — определитель матрицы,
      полученной заменой столбца Ai на b.
      Пусть l1 , lc суть количества битов в записи {A, b} и c.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара           25 / 31
Доказательство (продолжение)

Доказательство
      Будем считать, что AB — квадратная матрица (в противном
      случае, выкинем лишние уравнения).
      Тогда xi = ∆i /∆, где ∆ = det AB , а ∆i — определитель матрицы,
      полученной заменой столбца Ai на b.
      Пусть l1 , lc суть количества битов в записи {A, b} и c.
      Первое утверждение верно, поскольку ∆i — целое, а
      |∆| ≤ 2l1 ≤ 2L .




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара           25 / 31
Доказательство (продолжение)

Доказательство
      Будем считать, что AB — квадратная матрица (в противном
      случае, выкинем лишние уравнения).
      Тогда xi = ∆i /∆, где ∆ = det AB , а ∆i — определитель матрицы,
      полученной заменой столбца Ai на b.
      Пусть l1 , lc суть количества битов в записи {A, b} и c.
      Первое утверждение верно, поскольку ∆i — целое, а
      |∆| ≤ 2l1 ≤ 2L .
      Второе утверждение следует из первого и того факта, что c —
      целочисленный.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара             25 / 31
Доказательство (продолжение)

Доказательство
      Будем считать, что AB — квадратная матрица (в противном
      случае, выкинем лишние уравнения).
      Тогда xi = ∆i /∆, где ∆ = det AB , а ∆i — определитель матрицы,
      полученной заменой столбца Ai на b.
      Пусть l1 , lc суть количества битов в записи {A, b} и c.
      Первое утверждение верно, поскольку ∆i — целое, а
      |∆| ≤ 2l1 ≤ 2L .
      Второе утверждение следует из первого и того факта, что c —
      целочисленный.
      Для доказательства третьего утверждения рассмотрим вершину x
      многогранника.



А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара             25 / 31
Доказательство (завершение)


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




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   26 / 31
Доказательство (завершение)


Доказательство
      Тогда e T x ≤ n2l1 ≤ 2L и c T x ≤ n2l1 +lc ≤ 2L .




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   26 / 31
Доказательство (завершение)


Доказательство
      Тогда e T x ≤ n2l1 ≤ 2L и c T x ≤ n2l1 +lc ≤ 2L .
      Третье утверждение, таким образом, доказано для всех вершин
      многогранника.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара         26 / 31
Доказательство (завершение)


Доказательство
      Тогда e T x ≤ n2l1 ≤ 2L и c T x ≤ n2l1 +lc ≤ 2L .
      Третье утверждение, таким образом, доказано для всех вершин
      многогранника.
      Поскольку многогранник ограничен, любая его внутренняя точка
      может быть представлена в виде выпуклой комбинации его
      вершин.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара         26 / 31
Доказательство (завершение)


Доказательство
      Тогда e T x ≤ n2l1 ≤ 2L и c T x ≤ n2l1 +lc ≤ 2L .
      Третье утверждение, таким образом, доказано для всех вершин
      многогранника.
      Поскольку многогранник ограничен, любая его внутренняя точка
      может быть представлена в виде выпуклой комбинации его
      вершин.
      Итак, пусть x = j∈J j x j , где xj ≥ 0 и j∈J j = 1.
                     ∑︀                         ∑︀




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара         26 / 31
Доказательство (завершение)


Доказательство
      Тогда e T x ≤ n2l1 ≤ 2L и c T x ≤ n2l1 +lc ≤ 2L .
      Третье утверждение, таким образом, доказано для всех вершин
      многогранника.
      Поскольку многогранник ограничен, любая его внутренняя точка
      может быть представлена в виде выпуклой комбинации его
      вершин.
      Итак, пусть x = j∈J j x j , где xj ≥ 0 и j∈J j = 1.
                      ∑︀                         ∑︀

      Тогда c T x = j∈J j c T x j ≤ 2L j∈J j = 2L .
                   ∑︀                   ∑︀




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара         26 / 31
Доказательство (завершение)


Доказательство
      Тогда e T x ≤ n2l1 ≤ 2L и c T x ≤ n2l1 +lc ≤ 2L .
      Третье утверждение, таким образом, доказано для всех вершин
      многогранника.
      Поскольку многогранник ограничен, любая его внутренняя точка
      может быть представлена в виде выпуклой комбинации его
      вершин.
      Итак, пусть x = j∈J j x j , где xj ≥ 0 и j∈J j = 1.
                      ∑︀                         ∑︀

      Тогда c T x = j∈J j c T x j ≤ 2L j∈J j = 2L .
                   ∑︀                   ∑︀

      Оценка на e T x доказывается аналогично.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара         26 / 31
Ещё один факт




Факт
Существует алгоритм, находящий по допустимой точке x за время
O(n3 ) вершину многогранника x , такую что
                             ¯

                                   c T x ≤ c T x.
                                       ¯




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара         27 / 31
Основная теорема

Теорема
Алгоритм Кармаркара находит оптимальное значение за не более чем
O(nL) итераций (и O(n4 L) арифметических операций).




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара      28 / 31
Основная теорема

Теорема
Алгоритм Кармаркара находит оптимальное значение за не более чем
O(nL) итераций (и O(n4 L) арифметических операций).

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




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара      28 / 31
Основная теорема

Теорема
Алгоритм Кармаркара находит оптимальное значение за не более чем
O(nL) итераций (и O(n4 L) арифметических операций).

Доказательство
      f (x 0 ) = f (e) = n log(c T e) ≤ n log 2L ≤ nL
                                             (︀ )︀




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара      28 / 31
Основная теорема

Теорема
Алгоритм Кармаркара находит оптимальное значение за не более чем
O(nL) итераций (и O(n4 L) арифметических операций).

Доказательство
      f (x 0 ) = f (e) = n log(c T e) ≤ n log 2L ≤ nL
                                             (︀ )︀

      f (x k ) < f (x 0 ) − 0.1k ≤ nL − 0.1k




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара      28 / 31
Основная теорема

Теорема
Алгоритм Кармаркара находит оптимальное значение за не более чем
O(nL) итераций (и O(n4 L) арифметических операций).

Доказательство
      f (x 0 ) = f (e) = n log(c T e) ≤ n log 2L ≤ nL
                                             (︀ )︀

      f (x k ) < f (x 0 ) − 0.1k ≤ nL − 0.1k
      Значит, через не более чем 30nL итераций алгоритм остановится
      на точке
                                                 n
                                                ∑︁
                   f (x k ) = n log(c T x k ) −    log xik < −2nL
                                                  i=1
      .


А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара          28 / 31
Доказательство (завершение)




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




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   29 / 31
Доказательство (завершение)




Доказательство
      ∑︀n          k
          i=1 log xi   < nL, а значит, log(c T x k ) < −L.




А. Куликов (CS клуб при ПОМИ)     15. Алгоритм Кармаркара    29 / 31
Доказательство (завершение)




Доказательство
      ∑︀n        k
        i=1 log xi    < nL, а значит, log(c T x k ) < −L.
      Тогда c T x k   < e −L < 2−L .




А. Куликов (CS клуб при ПОМИ)    15. Алгоритм Кармаркара    29 / 31
Доказательство (завершение)




Доказательство
      ∑︀n        k
        i=1 log xi    < nL, а значит, log(c T x k ) < −L.
      Тогда c T x k   < e −L < 2−L .
      При нахождении такой точки идём от нее к вершине-решению.




А. Куликов (CS клуб при ПОМИ)    15. Алгоритм Кармаркара          29 / 31
Что мы узнали за сегодня?

Что мы узнали за сегодня?




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   30 / 31
Что мы узнали за сегодня?

Что мы узнали за сегодня?
      Симплекс-метод ходит по вершинам многоугольника допустимых
      решений, улучшая значение целевой функции. Время работы
      может быть экспоненицальным.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара       30 / 31
Что мы узнали за сегодня?

Что мы узнали за сегодня?
      Симплекс-метод ходит по вершинам многоугольника допустимых
      решений, улучшая значение целевой функции. Время работы
      может быть экспоненицальным.
      Метод внутренней точки тоже переходит от точки к точке,
      улучшая значение целевой функции, но остаётся при это во
      внутренности многогранника.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара          30 / 31
Что мы узнали за сегодня?

Что мы узнали за сегодня?
      Симплекс-метод ходит по вершинам многоугольника допустимых
      решений, улучшая значение целевой функции. Время работы
      может быть экспоненицальным.
      Метод внутренней точки тоже переходит от точки к точке,
      улучшая значение целевой функции, но остаётся при это во
      внутренности многогранника.
      Подобравшись достаточно близко к вершине-решению, быстро
      находит эту вершину.




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара          30 / 31
Что мы узнали за сегодня?

Что мы узнали за сегодня?
      Симплекс-метод ходит по вершинам многоугольника допустимых
      решений, улучшая значение целевой функции. Время работы
      может быть экспоненицальным.
      Метод внутренней точки тоже переходит от точки к точке,
      улучшая значение целевой функции, но остаётся при это во
      внутренности многогранника.
      Подобравшись достаточно близко к вершине-решению, быстро
      находит эту вершину.
      Алгоритм Кармаркара основан на методе внутренней точки и
      имеет время работы O(n4 L), где L — длина битовой записи
      входных данных.



А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара          30 / 31
Спасибо за внимание!




А. Куликов (CS клуб при ПОМИ)   15. Алгоритм Кармаркара   31 / 31

More Related Content

PDF
20071014 efficientalgorithms kulikov_lecture04
PDF
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
PDF
Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"
PDF
20071007 efficientalgorithms kulikov_lecture03
PDF
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...
PDF
Метод конечных разностей
PDF
20071111 efficientalgorithms kulikov_lecture06
PDF
Методы обучения линейных моделей
20071014 efficientalgorithms kulikov_lecture04
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"
20071007 efficientalgorithms kulikov_lecture03
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...
Метод конечных разностей
20071111 efficientalgorithms kulikov_lecture06
Методы обучения линейных моделей

What's hot (20)

PPTX
Автоматизированная разработка генераторов тестовых программ для микропроцессо...
PDF
A System of Deductive Verification of Predicate Programs
PDF
Tech Talks @NSU: Теоретические основы программирования: проекции Футамуры-Тур...
PDF
20071111 efficientalgorithms kulikov_lecture05
ODP
Мезенцев Павел - Машинное обучение на MapReduce
PDF
Факторизационные модели в рекомендательных системах
PDF
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
PDF
20070923 efficientalgorithms kulikov_lecture01
PPTX
C++ CoreHard Autumn 2018. Обработка списков на C++ в функциональном стиле - В...
PPT
Лекция 8 Динамическое программирование
PDF
20091115 algorithmsfornphardproblems kulikov_lecture09
PDF
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
PDF
Кодогенерация на службе оптимизации, Игорь Чевдарь, СКБ Контур
PPT
Математические модели нормального поведения сетевых приложений в ПКС сетях
PDF
Многочлены наилучших среднеквадратичных приближений
PDF
20080928 structuralcomplexitytheory lecture01-02
PDF
Методы удаления артефактов в видео
PPT
Лекция 2 Сортировки, поиск и порядковые статистики
PDF
TMPA-2013 Dmitry Zaitsev
Автоматизированная разработка генераторов тестовых программ для микропроцессо...
A System of Deductive Verification of Predicate Programs
Tech Talks @NSU: Теоретические основы программирования: проекции Футамуры-Тур...
20071111 efficientalgorithms kulikov_lecture05
Мезенцев Павел - Машинное обучение на MapReduce
Факторизационные модели в рекомендательных системах
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
20070923 efficientalgorithms kulikov_lecture01
C++ CoreHard Autumn 2018. Обработка списков на C++ в функциональном стиле - В...
Лекция 8 Динамическое программирование
20091115 algorithmsfornphardproblems kulikov_lecture09
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Кодогенерация на службе оптимизации, Игорь Чевдарь, СКБ Контур
Математические модели нормального поведения сетевых приложений в ПКС сетях
Многочлены наилучших среднеквадратичных приближений
20080928 structuralcomplexitytheory lecture01-02
Методы удаления артефактов в видео
Лекция 2 Сортировки, поиск и порядковые статистики
TMPA-2013 Dmitry Zaitsev
Ad

Viewers also liked (20)

ODP
bedrijfspresentatie
PPTX
Pairing with the queen
PDF
Saving A Graph On Your Graphing Calculator
PDF
Draft community plan 2010
PDF
Strianese Motors S
PPTX
Audience feeback
PDF
3D Photorealistic Architectural Visualization
PPT
Storytelling
PDF
Sports Matters 2015 Wrap Report
PPTX
On The Trail to Traceability
PPTX
Pizza do amor
PDF
Benjamin Holmquist - Rhetorical Criticism Project
PPS
Que Nos Paso
PPTX
A todos
PDF
Funciones más utilizadas de Excel
PPTX
правила дорожного движения
DOC
Sopa --de--letras
PDF
M705 synpulse showcase self checkin
DOCX
El cajon del sastre
PPTX
Kennedy Power PointChapter 49
bedrijfspresentatie
Pairing with the queen
Saving A Graph On Your Graphing Calculator
Draft community plan 2010
Strianese Motors S
Audience feeback
3D Photorealistic Architectural Visualization
Storytelling
Sports Matters 2015 Wrap Report
On The Trail to Traceability
Pizza do amor
Benjamin Holmquist - Rhetorical Criticism Project
Que Nos Paso
A todos
Funciones más utilizadas de Excel
правила дорожного движения
Sopa --de--letras
M705 synpulse showcase self checkin
El cajon del sastre
Kennedy Power PointChapter 49
Ad

Similar to 20080309 efficientalgorithms kulikov_lecture15 (20)

PDF
20091101 algorithmsfornphardproblems kulikov_lecture06
PDF
20070930 efficientalgorithms kulikov_lecture02
PDF
20071118 efficientalgorithms kulikov_lecture07
PDF
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
PDF
20071202 efficientalgorithms kulikov_lecture12
PPTX
семенищев
PDF
20091025 algorithmsfornphardproblems kulikov_lecture04
PDF
20081026 structuralcomplexitytheory lecture05-06
PPT
чернякова г.в.
PDF
Лекция 12. Быстрее, Python, ещё быстрее.
PDF
20090913 algorithmsfornphardproblems kulikov_lecture02
PPT
верификация
PDF
20091108 algorithmsfornphardproblems kulikov_lecture08
PDF
20130302 np algorithms_kulikov_lecture04-05_sat
PPTX
!Predictive analytics part_2
PDF
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
PDF
Углы Эйлера
PDF
Лекция №10 "Алгоритмические композиции. Завершение"
PPT
алгоритмизация
PPS
Основы алгоритмизации (QBasic)
20091101 algorithmsfornphardproblems kulikov_lecture06
20070930 efficientalgorithms kulikov_lecture02
20071118 efficientalgorithms kulikov_lecture07
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
20071202 efficientalgorithms kulikov_lecture12
семенищев
20091025 algorithmsfornphardproblems kulikov_lecture04
20081026 structuralcomplexitytheory lecture05-06
чернякова г.в.
Лекция 12. Быстрее, Python, ещё быстрее.
20090913 algorithmsfornphardproblems kulikov_lecture02
верификация
20091108 algorithmsfornphardproblems kulikov_lecture08
20130302 np algorithms_kulikov_lecture04-05_sat
!Predictive analytics part_2
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Углы Эйлера
Лекция №10 "Алгоритмические композиции. Завершение"
алгоритмизация
Основы алгоритмизации (QBasic)

More from Computer Science Club (20)

PDF
20141223 kuznetsov distributed
PDF
Computer Vision
PDF
20140531 serebryany lecture01_fantastic_cpp_bugs
PDF
20140531 serebryany lecture02_find_scary_cpp_bugs
PDF
20140531 serebryany lecture01_fantastic_cpp_bugs
PDF
20140511 parallel programming_kalishenko_lecture12
PDF
20140427 parallel programming_zlobin_lecture11
PDF
20140420 parallel programming_kalishenko_lecture10
PDF
20140413 parallel programming_kalishenko_lecture09
PDF
20140329 graph drawing_dainiak_lecture02
PDF
20140329 graph drawing_dainiak_lecture01
PDF
20140310 parallel programming_kalishenko_lecture03-04
PDF
20140223-SuffixTrees-lecture01-03
PDF
20140216 parallel programming_kalishenko_lecture01
PDF
20131106 h10 lecture6_matiyasevich
PDF
20131027 h10 lecture5_matiyasevich
PDF
20131027 h10 lecture5_matiyasevich
PDF
20131013 h10 lecture4_matiyasevich
PDF
20131006 h10 lecture3_matiyasevich
PDF
20131006 h10 lecture3_matiyasevich
20141223 kuznetsov distributed
Computer Vision
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
20140511 parallel programming_kalishenko_lecture12
20140427 parallel programming_zlobin_lecture11
20140420 parallel programming_kalishenko_lecture10
20140413 parallel programming_kalishenko_lecture09
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture01
20140310 parallel programming_kalishenko_lecture03-04
20140223-SuffixTrees-lecture01-03
20140216 parallel programming_kalishenko_lecture01
20131106 h10 lecture6_matiyasevich
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
20131013 h10 lecture4_matiyasevich
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich

20080309 efficientalgorithms kulikov_lecture15

  • 1. с/к “Эффективные алгоритмы” Лекция 15: Полиномиальный алгоритм для задачи линейного программирования А. Куликов Computer Science клуб при ПОМИ http://logic.pdmi.ras.ru/∼infclub/ А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 1 / 31
  • 2. План лекции 1 Введение А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 2 / 31
  • 3. План лекции 1 Введение 2 Масштабирование и направление скорейшего спуска А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 2 / 31
  • 4. План лекции 1 Введение 2 Масштабирование и направление скорейшего спуска 3 Постановка задачи, потенциал Постановка задачи Потенциал А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 2 / 31
  • 5. План лекции 1 Введение 2 Масштабирование и направление скорейшего спуска 3 Постановка задачи, потенциал Постановка задачи Потенциал 4 Алгоритм Кармаркара А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 2 / 31
  • 6. План лекции 1 Введение 2 Масштабирование и направление скорейшего спуска 3 Постановка задачи, потенциал Постановка задачи Потенциал 4 Алгоритм Кармаркара 5 Анализ алгоритма А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 2 / 31
  • 7. План лекции 1 Введение 2 Масштабирование и направление скорейшего спуска 3 Постановка задачи, потенциал Постановка задачи Потенциал 4 Алгоритм Кармаркара 5 Анализ алгоритма А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 3 / 31
  • 8. Общий вид задачи линейного программирования Общий вид задачи линейного программирования минимизировать cT x при условиях Ax = b x ≥ 0, где c ∈ Rn , b ∈ Rm , A — матрица полного ранга размера m × n, m < n. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 4 / 31
  • 9. Общая идея симплекс-метода Общая идея симплекс-метода А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 5 / 31
  • 10. Общая идея симплекс-метода Общая идея симплекс-метода Множество допустимых решений является выпуклым многогранником. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 5 / 31
  • 11. Общая идея симплекс-метода Общая идея симплекс-метода Множество допустимых решений является выпуклым многогранником. Симплекс-метод переходит от одной вершины этого многогранника к другой до тех пор, пока это улучшает значение целевой функции. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 5 / 31
  • 12. Общая идея симплекс-метода Общая идея симплекс-метода Множество допустимых решений является выпуклым многогранником. Симплекс-метод переходит от одной вершины этого многогранника к другой до тех пор, пока это улучшает значение целевой функции. Известны примеры, на которых симплекс-метод будет работать экспоненицально долго (такие примеры, однако, не встречаются на практике). А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 5 / 31
  • 13. Общая идея метода внутренней точки Общая идея метода внутренней точки А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 6 / 31
  • 14. Общая идея метода внутренней точки Общая идея метода внутренней точки Выбирается произвольная точка x 0 внутри многогранника допустимых решений. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 6 / 31
  • 15. Общая идея метода внутренней точки Общая идея метода внутренней точки Выбирается произвольная точка x 0 внутри многогранника допустимых решений. Найдем преобразование , для которого c T (x) < c T x. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 6 / 31
  • 16. Общая идея метода внутренней точки Общая идея метода внутренней точки Выбирается произвольная точка x 0 внутри многогранника допустимых решений. Найдем преобразование , для которого c T (x) < c T x. На каждой итерации переходим от x k к x k+1 = (x k ), оставаясь внутри многогранника. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 6 / 31
  • 17. Общая идея метода внутренней точки Общая идея метода внутренней точки Выбирается произвольная точка x 0 внутри многогранника допустимых решений. Найдем преобразование , для которого c T (x) < c T x. На каждой итерации переходим от x k к x k+1 = (x k ), оставаясь внутри многогранника. Когда значение c T (x k ) станет достаточно маленьким, перейдём из текущей точки в ближайшую вершину многогранника, которая и будет решением. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 6 / 31
  • 18. Основные составляющие алгоритма Кармаркара Основные составляющие А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 7 / 31
  • 19. Основные составляющие алгоритма Кармаркара Основные составляющие 1 масштабирование (scaling) А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 7 / 31
  • 20. Основные составляющие алгоритма Кармаркара Основные составляющие 1 масштабирование (scaling) 2 направление быстрейшего спуска (steepest descent direction) А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 7 / 31
  • 21. Основные составляющие алгоритма Кармаркара Основные составляющие 1 масштабирование (scaling) 2 направление быстрейшего спуска (steepest descent direction) 3 потенциал (potential function) А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 7 / 31
  • 22. План лекции 1 Введение 2 Масштабирование и направление скорейшего спуска 3 Постановка задачи, потенциал Постановка задачи Потенциал 4 Алгоритм Кармаркара 5 Анализ алгоритма А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 8 / 31
  • 23. Обобщенная задача Обобщенная задача минимизировать f (x) при условиях Ax = b x ≥ 0, где f : Rn → R, b ∈ Rm , A — матрица полного ранга размера m × n, ≥0 m < n. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 9 / 31
  • 24. Общие идеи алгоритма Общие идеи алгоритма А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 10 / 31
  • 25. Общие идеи алгоритма Общие идеи алгоритма Мы представим для этой задачи алгоритм, основанный на методе скорейшего спуска, в начале каждой итерации которого производится масштабирование. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 10 / 31
  • 26. Общие идеи алгоритма Общие идеи алгоритма Мы представим для этой задачи алгоритм, основанный на методе скорейшего спуска, в начале каждой итерации которого производится масштабирование. Каждая итерация начинается с точки x k , а масштабирование выглядит следующим образом: x → y = X −1 x, где X = diag(x1 , . . . , xn ) (таким образом, x k переходит в e). k k А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 10 / 31
  • 27. Алгоритм Алгоритм Допустим, что дана исходная допустимая точка x 0 > 0 и число ∈ (0, 1]. Положим k = 0 и будем повторять (до некоторого момента) следующие шаги: А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 11 / 31
  • 28. Алгоритм Алгоритм Допустим, что дана исходная допустимая точка x 0 > 0 и число ∈ (0, 1]. Положим k = 0 и будем повторять (до некоторого момента) следующие шаги: ¯ ¯ Масштабирование: X ← diag(x k , . . . , xn ), A ← AX , f (y ) ← f (Xy ). k 1 А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 11 / 31
  • 29. Алгоритм Алгоритм Допустим, что дана исходная допустимая точка x 0 > 0 и число ∈ (0, 1]. Положим k = 0 и будем повторять (до некоторого момента) следующие шаги: k k ¯ ¯ Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , f (y ) ← f (Xy ). (︀ T )︀−1 ¯ Направление: h ← −P∇f (e), где P ← I − AT AA ¯ ¯¯ ¯ A— ¯ проектор на ядро Null(A). А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 11 / 31
  • 30. Алгоритм Алгоритм Допустим, что дана исходная допустимая точка x 0 > 0 и число ∈ (0, 1]. Положим k = 0 и будем повторять (до некоторого момента) следующие шаги: k k ¯ ¯ Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , f (y ) ← f (Xy ). (︀ T )︀−1 ¯ Направление: h ← −P∇f (e), где P ← I − AT AA ¯ ¯¯ ¯ A— ¯ проектор на ядро Null(A). ¯ ¯ Поиск на прямой: найти ∈ argmin{f (e + h)| ≥ 0, e + h ≥ 0}. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 11 / 31
  • 31. Алгоритм Алгоритм Допустим, что дана исходная допустимая точка x 0 > 0 и число ∈ (0, 1]. Положим k = 0 и будем повторять (до некоторого момента) следующие шаги: k k ¯ ¯ Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , f (y ) ← f (Xy ). (︀ T )︀−1 ¯ Направление: h ← −P∇f (e), где P ← I − AT AA ¯ ¯¯ ¯ A— ¯ проектор на ядро Null(A). ¯ ¯ Поиск на прямой: найти ∈ argmin{f (e + h)| ≥ 0, e + h ≥ 0}. ¯ Результат: y * ← e + h. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 11 / 31
  • 32. Алгоритм Алгоритм Допустим, что дана исходная допустимая точка x 0 > 0 и число ∈ (0, 1]. Положим k = 0 и будем повторять (до некоторого момента) следующие шаги: k k ¯ ¯ Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , f (y ) ← f (Xy ). (︀ T )︀−1 ¯ Направление: h ← −P∇f (e), где P ← I − AT AA ¯ ¯¯ ¯ A— ¯ проектор на ядро Null(A). ¯ ¯ Поиск на прямой: найти ∈ argmin{f (e + h)| ≥ 0, e + h ≥ 0}. ¯ Результат: y * ← e + h. Обратно: x k+1 ← Xy * . А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 11 / 31
  • 33. Алгоритм Алгоритм Допустим, что дана исходная допустимая точка x 0 > 0 и число ∈ (0, 1]. Положим k = 0 и будем повторять (до некоторого момента) следующие шаги: k k ¯ ¯ Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , f (y ) ← f (Xy ). (︀ T )︀−1 ¯ Направление: h ← −P∇f (e), где P ← I − AT AA ¯ ¯¯ ¯ A— ¯ проектор на ядро Null(A). ¯ ¯ Поиск на прямой: найти ∈ argmin{f (e + h)| ≥ 0, e + h ≥ 0}. ¯ Результат: y * ← e + h. Обратно: x k+1 ← Xy * . k ← k + 1. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 11 / 31
  • 34. План лекции 1 Введение 2 Масштабирование и направление скорейшего спуска 3 Постановка задачи, потенциал Постановка задачи Потенциал 4 Алгоритм Кармаркара 5 Анализ алгоритма А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 12 / 31
  • 35. План лекции 1 Введение 2 Масштабирование и направление скорейшего спуска 3 Постановка задачи, потенциал Постановка задачи Потенциал 4 Алгоритм Кармаркара 5 Анализ алгоритма А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 13 / 31
  • 36. Вид задачи Вид задачи минимизировать cT x при условиях Ax = 0 x ≥ 0, где c ∈ Rn , b ∈ Rm , A — матрица полного ранга размера m × n, m < n. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 14 / 31
  • 37. Дополнительные предположения Дополнительные предположения А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 15 / 31
  • 38. Дополнительные предположения Дополнительные предположения Множество допустимых решений S = {x ∈ Rn |Ax = 0} + ограничено. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 15 / 31
  • 39. Дополнительные предположения Дополнительные предположения Множество допустимых решений S = {x ∈ Rn |Ax = 0} + ограничено. Точка x 0 = e допустима. (Известны процедуры нахождения начальной допустимой точки x 0 . Масштабированием такую точку можно перевести в e.) А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 15 / 31
  • 40. Дополнительные предположения Дополнительные предположения Множество допустимых решений S = {x ∈ Rn |Ax = 0} + ограничено. Точка x 0 = e допустима. (Известны процедуры нахождения начальной допустимой точки x 0 . Масштабированием такую точку можно перевести в e.) c T x не константа на S. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 15 / 31
  • 41. Дополнительные предположения Дополнительные предположения Множество допустимых решений S = {x ∈ Rn |Ax = 0} + ограничено. Точка x 0 = e допустима. (Известны процедуры нахождения начальной допустимой точки x 0 . Масштабированием такую точку можно перевести в e.) c T x не константа на S. Значение любого оптимального решения x есть c T x = 0. (Очень ˆ ˆ сильное условие, от которого, тем не менее, можно избавиться.) А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 15 / 31
  • 42. План лекции 1 Введение 2 Масштабирование и направление скорейшего спуска 3 Постановка задачи, потенциал Постановка задачи Потенциал 4 Алгоритм Кармаркара 5 Анализ алгоритма А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 16 / 31
  • 43. Потенциал Потенциал n ∑︁ (c T x)n x∈ Rn >0 T ↦→ f (x) = n log(c x) − log xi = log ∏︀n . i=1 i=1 xi А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 17 / 31
  • 44. Потенциал Потенциал n ∑︁ (c T x)n x∈ Rn >0 T ↦→ f (x) = n log(c x) − log xi = log ∏︀n . i=1 i=1 xi Задача Найти x ∈ S, такой что f (x) < −2nL. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 17 / 31
  • 45. Потенциал Потенциал n ∑︁ (c T x)n x∈ Rn >0 T ↦→ f (x) = n log(c x) − log xi = log ∏︀n . i=1 i=1 xi Задача Найти x ∈ S, такой что f (x) < −2nL. Интуитивно Мы хотим, чтобы первое слагаемое в определении x было бы как можно меньше. Второе же слагаемое (логарифмический барьер) неограниченно возрастает у границы Rn и ограничено снизу, ≥0 поскольку S ограничено. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 17 / 31
  • 46. План лекции 1 Введение 2 Масштабирование и направление скорейшего спуска 3 Постановка задачи, потенциал Постановка задачи Потенциал 4 Алгоритм Кармаркара 5 Анализ алгоритма А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 18 / 31
  • 47. Алгоритм Кармаркара Алгоритм Кармаркара Допустим, что даны x 0 = e ∈ S и L > 0. Положим k = 0 и будем повторять: А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 19 / 31
  • 48. Алгоритм Кармаркара Алгоритм Кармаркара Допустим, что даны x 0 = e ∈ S и L > 0. Положим k = 0 и будем повторять: k ¯ Масштабирование: X ← diag(x k , . . . , xn ), A ← AX , c ← Xc. ¯ 1 А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 19 / 31
  • 49. Алгоритм Кармаркара Алгоритм Кармаркара Допустим, что даны x 0 = e ∈ S и L > 0. Положим k = 0 и будем повторять: k k ¯ Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , c ← Xc. ¯ (︀ T )︀−1 n ¯ ¯¯ Направление: h ← − c T e P¯ + e, где P ← I − AT AA c ¯ A— ¯ ¯ проектор на ядро Null(A). А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 19 / 31
  • 50. Алгоритм Кармаркара Алгоритм Кармаркара Допустим, что даны x 0 = e ∈ S и L > 0. Положим k = 0 и будем повторять: k k ¯ Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , c ← Xc. ¯ (︀ T )︀−1 n ¯ ¯¯ Направление: h ← − c T e P¯ + e, где P ← I − AT AA c ¯ A— ¯ ¯ проектор на ядро Null(A). ¯ ¯ Поиск на прямой: найти ∈ argmin{f (e + h)| ≥ 0, e + h ≥ 0}. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 19 / 31
  • 51. Алгоритм Кармаркара Алгоритм Кармаркара Допустим, что даны x 0 = e ∈ S и L > 0. Положим k = 0 и будем повторять: k k ¯ Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , c ← Xc. ¯ (︀ T )︀−1 n ¯ ¯¯ Направление: h ← − c T e P¯ + e, где P ← I − AT AA c ¯ A— ¯ ¯ проектор на ядро Null(A). ¯ ¯ Поиск на прямой: найти ∈ argmin{f (e + h)| ≥ 0, e + h ≥ 0}. ¯ Результат: y * ← e + h. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 19 / 31
  • 52. Алгоритм Кармаркара Алгоритм Кармаркара Допустим, что даны x 0 = e ∈ S и L > 0. Положим k = 0 и будем повторять: k k ¯ Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , c ← Xc. ¯ (︀ T )︀−1 n ¯ ¯¯ Направление: h ← − c T e P¯ + e, где P ← I − AT AA c ¯ A— ¯ ¯ проектор на ядро Null(A). ¯ ¯ Поиск на прямой: найти ∈ argmin{f (e + h)| ≥ 0, e + h ≥ 0}. ¯ Результат: y * ← e + h. Обратно: x k+1 ← Xy * . А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 19 / 31
  • 53. Алгоритм Кармаркара Алгоритм Кармаркара Допустим, что даны x 0 = e ∈ S и L > 0. Положим k = 0 и будем повторять: k k ¯ Масштабирование: X ← diag(x1 , . . . , xn ), A ← AX , c ← Xc. ¯ (︀ T )︀−1 n ¯ ¯¯ Направление: h ← − c T e P¯ + e, где P ← I − AT AA c ¯ A— ¯ ¯ проектор на ядро Null(A). ¯ ¯ Поиск на прямой: найти ∈ argmin{f (e + h)| ≥ 0, e + h ≥ 0}. ¯ Результат: y * ← e + h. Обратно: x k+1 ← Xy * . k ← k + 1. пока f (x k ) ≥ −2nL. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 19 / 31
  • 54. План лекции 1 Введение 2 Масштабирование и направление скорейшего спуска 3 Постановка задачи, потенциал Постановка задачи Потенциал 4 Алгоритм Кармаркара 5 Анализ алгоритма А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 20 / 31
  • 55. Важное свойство алгоритма (без доказательства) Лемма f (x k+1 ) < f (x k ) − 0.1. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 21 / 31
  • 56. Важное свойство алгоритма (без доказательства) Лемма f (x k+1 ) < f (x k ) − 0.1. Замечания А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 21 / 31
  • 57. Важное свойство алгоритма (без доказательства) Лемма f (x k+1 ) < f (x k ) − 0.1. Замечания Из этого следует, что не более чем через 30nL итераций потенциал уменьшится хотя бы на 3nL. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 21 / 31
  • 58. Важное свойство алгоритма (без доказательства) Лемма f (x k+1 ) < f (x k ) − 0.1. Замечания Из этого следует, что не более чем через 30nL итераций потенциал уменьшится хотя бы на 3nL. Мы также покажем, что такого уменьшения потенциала достаточно, чтобы найти оптимальное значение. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 21 / 31
  • 59. Исходная задача Исходная задача минимизировать cT x при условиях Ax = b x ≥ 0, где c ∈ Rn , b ∈ Rm , A — матрица полного ранга размера m × n, m < n. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 22 / 31
  • 60. Исходная задача Исходная задача минимизировать cT x при условиях Ax = b x ≥ 0, где c ∈ Rn , b ∈ Rm , A — матрица полного ранга размера m × n, m < n. Замечание Допустим, что многогранник допустимых решений ограничен и что все числа целые (или, что эквивалентно, рациональные). А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 22 / 31
  • 61. Определение числа L Определение числа L А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 23 / 31
  • 62. Определение числа L Определение числа L Пусть l равно общей длине битового представления входных данных. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 23 / 31
  • 63. Определение числа L Определение числа L Пусть l равно общей длине битового представления входных данных. Заметим, что любое выражение, содержащее суммы и произведения чисел из входных матриц и векторов без повторений, не может иметь значение больше 2l . А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 23 / 31
  • 64. Определение числа L Определение числа L Пусть l равно общей длине битового представления входных данных. Заметим, что любое выражение, содержащее суммы и произведения чисел из входных матриц и векторов без повторений, не может иметь значение больше 2l . Определитель матрицы не превосходит произведения норм столбцов, поэтому | det M| ≤ 2l для любой квадратной подматрицы матрицы [A|b]. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 23 / 31
  • 65. Определение числа L Определение числа L Пусть l равно общей длине битового представления входных данных. Заметим, что любое выражение, содержащее суммы и произведения чисел из входных матриц и векторов без повторений, не может иметь значение больше 2l . Определитель матрицы не превосходит произведения норм столбцов, поэтому | det M| ≤ 2l для любой квадратной подматрицы матрицы [A|b]. Пусть L = l + n + 1. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 23 / 31
  • 66. Ключевая лемма Лемма А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 24 / 31
  • 67. Ключевая лемма Лемма Для любой вершины x многогранника и для любого i либо xi = 0, либо xi > 2−L . А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 24 / 31
  • 68. Ключевая лемма Лемма Для любой вершины x многогранника и для любого i либо xi = 0, либо xi > 2−L . Для любой вершины x многогранника либо c T x = 0, либо c T x > 2−L . А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 24 / 31
  • 69. Ключевая лемма Лемма Для любой вершины x многогранника и для любого i либо xi = 0, либо xi > 2−L . Для любой вершины x многогранника либо c T x = 0, либо c T x > 2−L . Для любой допустимой точки x c T x ≤ 2L и e T x ≤ 2L . А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 24 / 31
  • 70. Ключевая лемма Лемма Для любой вершины x многогранника и для любого i либо xi = 0, либо xi > 2−L . Для любой вершины x многогранника либо c T x = 0, либо c T x > 2−L . Для любой допустимой точки x c T x ≤ 2L и e T x ≤ 2L . Доказательство А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 24 / 31
  • 71. Ключевая лемма Лемма Для любой вершины x многогранника и для любого i либо xi = 0, либо xi > 2−L . Для любой вершины x многогранника либо c T x = 0, либо c T x > 2−L . Для любой допустимой точки x c T x ≤ 2L и e T x ≤ 2L . Доказательство Система Ax = b может быть разбита на AB xB + AN xN = b, где xB — вектор, составленный из положительных компонент x. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 24 / 31
  • 72. Ключевая лемма Лемма Для любой вершины x многогранника и для любого i либо xi = 0, либо xi > 2−L . Для любой вершины x многогранника либо c T x = 0, либо c T x > 2−L . Для любой допустимой точки x c T x ≤ 2L и e T x ≤ 2L . Доказательство Система Ax = b может быть разбита на AB xB + AN xN = b, где xB — вектор, составленный из положительных компонент x. Тогда xN = 0 и система может быть переписана как AB xB = b. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 24 / 31
  • 73. Ключевая лемма Лемма Для любой вершины x многогранника и для любого i либо xi = 0, либо xi > 2−L . Для любой вершины x многогранника либо c T x = 0, либо c T x > 2−L . Для любой допустимой точки x c T x ≤ 2L и e T x ≤ 2L . Доказательство Система Ax = b может быть разбита на AB xB + AN xN = b, где xB — вектор, составленный из положительных компонент x. Тогда xN = 0 и система может быть переписана как AB xB = b. Если x — вершина, то столбцы AB линейно независимы. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 24 / 31
  • 74. Доказательство (продолжение) Доказательство А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 25 / 31
  • 75. Доказательство (продолжение) Доказательство Будем считать, что AB — квадратная матрица (в противном случае, выкинем лишние уравнения). А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 25 / 31
  • 76. Доказательство (продолжение) Доказательство Будем считать, что AB — квадратная матрица (в противном случае, выкинем лишние уравнения). Тогда xi = ∆i /∆, где ∆ = det AB , а ∆i — определитель матрицы, полученной заменой столбца Ai на b. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 25 / 31
  • 77. Доказательство (продолжение) Доказательство Будем считать, что AB — квадратная матрица (в противном случае, выкинем лишние уравнения). Тогда xi = ∆i /∆, где ∆ = det AB , а ∆i — определитель матрицы, полученной заменой столбца Ai на b. Пусть l1 , lc суть количества битов в записи {A, b} и c. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 25 / 31
  • 78. Доказательство (продолжение) Доказательство Будем считать, что AB — квадратная матрица (в противном случае, выкинем лишние уравнения). Тогда xi = ∆i /∆, где ∆ = det AB , а ∆i — определитель матрицы, полученной заменой столбца Ai на b. Пусть l1 , lc суть количества битов в записи {A, b} и c. Первое утверждение верно, поскольку ∆i — целое, а |∆| ≤ 2l1 ≤ 2L . А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 25 / 31
  • 79. Доказательство (продолжение) Доказательство Будем считать, что AB — квадратная матрица (в противном случае, выкинем лишние уравнения). Тогда xi = ∆i /∆, где ∆ = det AB , а ∆i — определитель матрицы, полученной заменой столбца Ai на b. Пусть l1 , lc суть количества битов в записи {A, b} и c. Первое утверждение верно, поскольку ∆i — целое, а |∆| ≤ 2l1 ≤ 2L . Второе утверждение следует из первого и того факта, что c — целочисленный. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 25 / 31
  • 80. Доказательство (продолжение) Доказательство Будем считать, что AB — квадратная матрица (в противном случае, выкинем лишние уравнения). Тогда xi = ∆i /∆, где ∆ = det AB , а ∆i — определитель матрицы, полученной заменой столбца Ai на b. Пусть l1 , lc суть количества битов в записи {A, b} и c. Первое утверждение верно, поскольку ∆i — целое, а |∆| ≤ 2l1 ≤ 2L . Второе утверждение следует из первого и того факта, что c — целочисленный. Для доказательства третьего утверждения рассмотрим вершину x многогранника. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 25 / 31
  • 81. Доказательство (завершение) Доказательство А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 26 / 31
  • 82. Доказательство (завершение) Доказательство Тогда e T x ≤ n2l1 ≤ 2L и c T x ≤ n2l1 +lc ≤ 2L . А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 26 / 31
  • 83. Доказательство (завершение) Доказательство Тогда e T x ≤ n2l1 ≤ 2L и c T x ≤ n2l1 +lc ≤ 2L . Третье утверждение, таким образом, доказано для всех вершин многогранника. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 26 / 31
  • 84. Доказательство (завершение) Доказательство Тогда e T x ≤ n2l1 ≤ 2L и c T x ≤ n2l1 +lc ≤ 2L . Третье утверждение, таким образом, доказано для всех вершин многогранника. Поскольку многогранник ограничен, любая его внутренняя точка может быть представлена в виде выпуклой комбинации его вершин. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 26 / 31
  • 85. Доказательство (завершение) Доказательство Тогда e T x ≤ n2l1 ≤ 2L и c T x ≤ n2l1 +lc ≤ 2L . Третье утверждение, таким образом, доказано для всех вершин многогранника. Поскольку многогранник ограничен, любая его внутренняя точка может быть представлена в виде выпуклой комбинации его вершин. Итак, пусть x = j∈J j x j , где xj ≥ 0 и j∈J j = 1. ∑︀ ∑︀ А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 26 / 31
  • 86. Доказательство (завершение) Доказательство Тогда e T x ≤ n2l1 ≤ 2L и c T x ≤ n2l1 +lc ≤ 2L . Третье утверждение, таким образом, доказано для всех вершин многогранника. Поскольку многогранник ограничен, любая его внутренняя точка может быть представлена в виде выпуклой комбинации его вершин. Итак, пусть x = j∈J j x j , где xj ≥ 0 и j∈J j = 1. ∑︀ ∑︀ Тогда c T x = j∈J j c T x j ≤ 2L j∈J j = 2L . ∑︀ ∑︀ А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 26 / 31
  • 87. Доказательство (завершение) Доказательство Тогда e T x ≤ n2l1 ≤ 2L и c T x ≤ n2l1 +lc ≤ 2L . Третье утверждение, таким образом, доказано для всех вершин многогранника. Поскольку многогранник ограничен, любая его внутренняя точка может быть представлена в виде выпуклой комбинации его вершин. Итак, пусть x = j∈J j x j , где xj ≥ 0 и j∈J j = 1. ∑︀ ∑︀ Тогда c T x = j∈J j c T x j ≤ 2L j∈J j = 2L . ∑︀ ∑︀ Оценка на e T x доказывается аналогично. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 26 / 31
  • 88. Ещё один факт Факт Существует алгоритм, находящий по допустимой точке x за время O(n3 ) вершину многогранника x , такую что ¯ c T x ≤ c T x. ¯ А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 27 / 31
  • 89. Основная теорема Теорема Алгоритм Кармаркара находит оптимальное значение за не более чем O(nL) итераций (и O(n4 L) арифметических операций). А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 28 / 31
  • 90. Основная теорема Теорема Алгоритм Кармаркара находит оптимальное значение за не более чем O(nL) итераций (и O(n4 L) арифметических операций). Доказательство А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 28 / 31
  • 91. Основная теорема Теорема Алгоритм Кармаркара находит оптимальное значение за не более чем O(nL) итераций (и O(n4 L) арифметических операций). Доказательство f (x 0 ) = f (e) = n log(c T e) ≤ n log 2L ≤ nL (︀ )︀ А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 28 / 31
  • 92. Основная теорема Теорема Алгоритм Кармаркара находит оптимальное значение за не более чем O(nL) итераций (и O(n4 L) арифметических операций). Доказательство f (x 0 ) = f (e) = n log(c T e) ≤ n log 2L ≤ nL (︀ )︀ f (x k ) < f (x 0 ) − 0.1k ≤ nL − 0.1k А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 28 / 31
  • 93. Основная теорема Теорема Алгоритм Кармаркара находит оптимальное значение за не более чем O(nL) итераций (и O(n4 L) арифметических операций). Доказательство f (x 0 ) = f (e) = n log(c T e) ≤ n log 2L ≤ nL (︀ )︀ f (x k ) < f (x 0 ) − 0.1k ≤ nL − 0.1k Значит, через не более чем 30nL итераций алгоритм остановится на точке n ∑︁ f (x k ) = n log(c T x k ) − log xik < −2nL i=1 . А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 28 / 31
  • 94. Доказательство (завершение) Доказательство А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 29 / 31
  • 95. Доказательство (завершение) Доказательство ∑︀n k i=1 log xi < nL, а значит, log(c T x k ) < −L. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 29 / 31
  • 96. Доказательство (завершение) Доказательство ∑︀n k i=1 log xi < nL, а значит, log(c T x k ) < −L. Тогда c T x k < e −L < 2−L . А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 29 / 31
  • 97. Доказательство (завершение) Доказательство ∑︀n k i=1 log xi < nL, а значит, log(c T x k ) < −L. Тогда c T x k < e −L < 2−L . При нахождении такой точки идём от нее к вершине-решению. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 29 / 31
  • 98. Что мы узнали за сегодня? Что мы узнали за сегодня? А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 30 / 31
  • 99. Что мы узнали за сегодня? Что мы узнали за сегодня? Симплекс-метод ходит по вершинам многоугольника допустимых решений, улучшая значение целевой функции. Время работы может быть экспоненицальным. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 30 / 31
  • 100. Что мы узнали за сегодня? Что мы узнали за сегодня? Симплекс-метод ходит по вершинам многоугольника допустимых решений, улучшая значение целевой функции. Время работы может быть экспоненицальным. Метод внутренней точки тоже переходит от точки к точке, улучшая значение целевой функции, но остаётся при это во внутренности многогранника. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 30 / 31
  • 101. Что мы узнали за сегодня? Что мы узнали за сегодня? Симплекс-метод ходит по вершинам многоугольника допустимых решений, улучшая значение целевой функции. Время работы может быть экспоненицальным. Метод внутренней точки тоже переходит от точки к точке, улучшая значение целевой функции, но остаётся при это во внутренности многогранника. Подобравшись достаточно близко к вершине-решению, быстро находит эту вершину. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 30 / 31
  • 102. Что мы узнали за сегодня? Что мы узнали за сегодня? Симплекс-метод ходит по вершинам многоугольника допустимых решений, улучшая значение целевой функции. Время работы может быть экспоненицальным. Метод внутренней точки тоже переходит от точки к точке, улучшая значение целевой функции, но остаётся при это во внутренности многогранника. Подобравшись достаточно близко к вершине-решению, быстро находит эту вершину. Алгоритм Кармаркара основан на методе внутренней точки и имеет время работы O(n4 L), где L — длина битовой записи входных данных. А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 30 / 31
  • 103. Спасибо за внимание! А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 31 / 31