20080309 efficientalgorithms kulikov_lecture15

103
с/к “Эффективные алгоритмы” Лекция 15: Полиномиальный алгоритм для задачи линейного программирования А. Куликов Computer Science клуб при ПОМИ http://logic.pdmi.ras.ru/infclub/ А. Куликов (CS клуб при ПОМИ) 15. Алгоритм Кармаркара 1 / 31

Upload: computer-science-club

Post on 12-Jul-2015

117 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 20080309 efficientalgorithms kulikov_lecture15

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

линейного программирования

А. Куликов

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

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

Page 2: 20080309 efficientalgorithms kulikov_lecture15

План лекции

1 Введение

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

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

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

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

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

Page 3: 20080309 efficientalgorithms kulikov_lecture15

План лекции

1 Введение

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

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

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

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

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

Page 4: 20080309 efficientalgorithms kulikov_lecture15

План лекции

1 Введение

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

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

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

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

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

Page 5: 20080309 efficientalgorithms kulikov_lecture15

План лекции

1 Введение

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

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

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

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

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

Page 6: 20080309 efficientalgorithms kulikov_lecture15

План лекции

1 Введение

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

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

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

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

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

Page 7: 20080309 efficientalgorithms kulikov_lecture15

План лекции

1 Введение

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

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

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

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

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

Page 8: 20080309 efficientalgorithms kulikov_lecture15

Общий вид задачи линейного программирования

Общий вид задачи линейного программирования

минимизировать cT xпри условиях Ax = b

x ≥ 0,

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

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

Page 9: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

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

Page 10: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

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

Page 11: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

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

Page 12: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

Page 13: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

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

Page 14: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

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

Page 15: 20080309 efficientalgorithms kulikov_lecture15

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

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

На каждой итерации переходим от xk к xk+1 = 𝜑(xk), оставаясьвнутри многогранника.Когда значение cT𝜑(xk) станет достаточно маленьким, перейдёмиз текущей точки в ближайшую вершину многогранника, котораяи будет решением.

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

Page 16: 20080309 efficientalgorithms kulikov_lecture15

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

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

Когда значение cT𝜑(xk) станет достаточно маленьким, перейдёмиз текущей точки в ближайшую вершину многогранника, котораяи будет решением.

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

Page 17: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

Page 18: 20080309 efficientalgorithms kulikov_lecture15

Основные составляющие алгоритма Кармаркара

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

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

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

Page 19: 20080309 efficientalgorithms kulikov_lecture15

Основные составляющие алгоритма Кармаркара

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

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

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

Page 20: 20080309 efficientalgorithms kulikov_lecture15

Основные составляющие алгоритма Кармаркара

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

3 потенциал (potential function)

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

Page 21: 20080309 efficientalgorithms kulikov_lecture15

Основные составляющие алгоритма Кармаркара

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

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

Page 22: 20080309 efficientalgorithms kulikov_lecture15

План лекции

1 Введение

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

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

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

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

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

Page 23: 20080309 efficientalgorithms kulikov_lecture15

Обобщенная задача

Обобщенная задача

минимизировать f (x)

при условиях Ax = bx ≥ 0,

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

m < n.

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

Page 24: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

1 , . . . , xkn ) (таким образом, xk переходит в e).

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

Page 25: 20080309 efficientalgorithms kulikov_lecture15

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

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

Каждая итерация начинается с точки xk , а масштабированиевыглядит следующим образом: x → y = X−1x , гдеX = diag(xk

1 , . . . , xkn ) (таким образом, xk переходит в e).

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

Page 26: 20080309 efficientalgorithms kulikov_lecture15

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

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

1 , . . . , xkn ) (таким образом, xk переходит в e).

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

Page 27: 20080309 efficientalgorithms kulikov_lecture15

Алгоритм

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

Масштабирование: X ← diag(xk1 , . . . , xk

n ), A← AX , f (y)← f (Xy).

Направление: h← −P∇f (e), где P ← I − AT (AAT )−1 A —

проектор на ядро Null(A).Поиск на прямой: найти �� ∈ argmin{f (e + 𝜆h)|𝜆 ≥ 0, e + 𝜆h ≥ 0}.Результат: y* ← e + 𝛿��h.Обратно: xk+1 ← Xy*.k ← k + 1.

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

Page 28: 20080309 efficientalgorithms kulikov_lecture15

Алгоритм

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

Масштабирование: X ← diag(xk1 , . . . , xk

n ), A← AX , f (y)← f (Xy).

Направление: h← −P∇f (e), где P ← I − AT (AAT )−1 A —

проектор на ядро Null(A).Поиск на прямой: найти �� ∈ argmin{f (e + 𝜆h)|𝜆 ≥ 0, e + 𝜆h ≥ 0}.Результат: y* ← e + 𝛿��h.Обратно: xk+1 ← Xy*.k ← k + 1.

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

Page 29: 20080309 efficientalgorithms kulikov_lecture15

Алгоритм

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

Масштабирование: X ← diag(xk1 , . . . , xk

n ), A← AX , f (y)← f (Xy).

Направление: h← −P∇f (e), где P ← I − AT (AAT )−1 A —

проектор на ядро Null(A).

Поиск на прямой: найти �� ∈ argmin{f (e + 𝜆h)|𝜆 ≥ 0, e + 𝜆h ≥ 0}.Результат: y* ← e + 𝛿��h.Обратно: xk+1 ← Xy*.k ← k + 1.

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

Page 30: 20080309 efficientalgorithms kulikov_lecture15

Алгоритм

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

Масштабирование: X ← diag(xk1 , . . . , xk

n ), A← AX , f (y)← f (Xy).

Направление: h← −P∇f (e), где P ← I − AT (AAT )−1 A —

проектор на ядро Null(A).Поиск на прямой: найти �� ∈ argmin{f (e + 𝜆h)|𝜆 ≥ 0, e + 𝜆h ≥ 0}.

Результат: y* ← e + 𝛿��h.Обратно: xk+1 ← Xy*.k ← k + 1.

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

Page 31: 20080309 efficientalgorithms kulikov_lecture15

Алгоритм

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

Масштабирование: X ← diag(xk1 , . . . , xk

n ), A← AX , f (y)← f (Xy).

Направление: h← −P∇f (e), где P ← I − AT (AAT )−1 A —

проектор на ядро Null(A).Поиск на прямой: найти �� ∈ argmin{f (e + 𝜆h)|𝜆 ≥ 0, e + 𝜆h ≥ 0}.Результат: y* ← e + 𝛿��h.

Обратно: xk+1 ← Xy*.k ← k + 1.

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

Page 32: 20080309 efficientalgorithms kulikov_lecture15

Алгоритм

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

Масштабирование: X ← diag(xk1 , . . . , xk

n ), A← AX , f (y)← f (Xy).

Направление: h← −P∇f (e), где P ← I − AT (AAT )−1 A —

проектор на ядро Null(A).Поиск на прямой: найти �� ∈ argmin{f (e + 𝜆h)|𝜆 ≥ 0, e + 𝜆h ≥ 0}.Результат: y* ← e + 𝛿��h.Обратно: xk+1 ← Xy*.

k ← k + 1.

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

Page 33: 20080309 efficientalgorithms kulikov_lecture15

Алгоритм

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

Масштабирование: X ← diag(xk1 , . . . , xk

n ), A← AX , f (y)← f (Xy).

Направление: h← −P∇f (e), где P ← I − AT (AAT )−1 A —

проектор на ядро Null(A).Поиск на прямой: найти �� ∈ argmin{f (e + 𝜆h)|𝜆 ≥ 0, e + 𝜆h ≥ 0}.Результат: y* ← e + 𝛿��h.Обратно: xk+1 ← Xy*.k ← k + 1.

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

Page 34: 20080309 efficientalgorithms kulikov_lecture15

План лекции

1 Введение

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

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

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

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

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

Page 35: 20080309 efficientalgorithms kulikov_lecture15

План лекции

1 Введение

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

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

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

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

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

Page 36: 20080309 efficientalgorithms kulikov_lecture15

Вид задачи

Вид задачи

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

x ≥ 0,

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

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

Page 37: 20080309 efficientalgorithms kulikov_lecture15

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

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

Множество допустимых решений S = {x ∈ Rn+|Ax = 0}

ограничено.Точка x0 = e допустима. (Известны процедуры нахожденияначальной допустимой точки x0. Масштабированием такую точкуможно перевести в e.)cT x не константа на S .Значение любого оптимального решения x есть cT x = 0. (Оченьсильное условие, от которого, тем не менее, можно избавиться.)

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

Page 38: 20080309 efficientalgorithms kulikov_lecture15

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

Дополнительные предположенияМножество допустимых решений S = {x ∈ Rn

+|Ax = 0}ограничено.

Точка x0 = e допустима. (Известны процедуры нахожденияначальной допустимой точки x0. Масштабированием такую точкуможно перевести в e.)cT x не константа на S .Значение любого оптимального решения x есть cT x = 0. (Оченьсильное условие, от которого, тем не менее, можно избавиться.)

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

Page 39: 20080309 efficientalgorithms kulikov_lecture15

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

Дополнительные предположенияМножество допустимых решений S = {x ∈ Rn

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

cT x не константа на S .Значение любого оптимального решения x есть cT x = 0. (Оченьсильное условие, от которого, тем не менее, можно избавиться.)

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

Page 40: 20080309 efficientalgorithms kulikov_lecture15

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

Дополнительные предположенияМножество допустимых решений S = {x ∈ Rn

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

Значение любого оптимального решения x есть cT x = 0. (Оченьсильное условие, от которого, тем не менее, можно избавиться.)

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

Page 41: 20080309 efficientalgorithms kulikov_lecture15

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

Дополнительные предположенияМножество допустимых решений S = {x ∈ Rn

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

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

Page 42: 20080309 efficientalgorithms kulikov_lecture15

План лекции

1 Введение

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

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

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

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

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

Page 43: 20080309 efficientalgorithms kulikov_lecture15

Потенциал

Потенциал

x ∈ Rn>0 ↦→ f (x) = n log(cT x)−

n∑i=1

log xi = log(cT x)n∏n

i=1 xi.

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

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

≥0 и ограничено снизу,поскольку S ограничено.

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

Page 44: 20080309 efficientalgorithms kulikov_lecture15

Потенциал

Потенциал

x ∈ Rn>0 ↦→ f (x) = n log(cT x)−

n∑i=1

log xi = log(cT x)n∏n

i=1 xi.

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

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

≥0 и ограничено снизу,поскольку S ограничено.

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

Page 45: 20080309 efficientalgorithms kulikov_lecture15

Потенциал

Потенциал

x ∈ Rn>0 ↦→ f (x) = n log(cT x)−

n∑i=1

log xi = log(cT x)n∏n

i=1 xi.

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

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

≥0 и ограничено снизу,поскольку S ограничено.

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

Page 46: 20080309 efficientalgorithms kulikov_lecture15

План лекции

1 Введение

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

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

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

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

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

Page 47: 20080309 efficientalgorithms kulikov_lecture15

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

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

Масштабирование: X ← diag(xk1 , . . . , xk

n ), A← AX , c ← Xc .

Направление: h← − ncT e Pc + e, где P ← I − AT (

AAT )−1 A —проектор на ядро Null(A).Поиск на прямой: найти �� ∈ argmin{f (e + 𝜆h)|𝜆 ≥ 0, e + 𝜆h ≥ 0}.Результат: y* ← e + ��h.Обратно: xk+1 ← Xy*.k ← k + 1.

пока f (xk) ≥ −2nL.

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

Page 48: 20080309 efficientalgorithms kulikov_lecture15

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

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

Масштабирование: X ← diag(xk1 , . . . , xk

n ), A← AX , c ← Xc .

Направление: h← − ncT e Pc + e, где P ← I − AT (

AAT )−1 A —проектор на ядро Null(A).Поиск на прямой: найти �� ∈ argmin{f (e + 𝜆h)|𝜆 ≥ 0, e + 𝜆h ≥ 0}.Результат: y* ← e + ��h.Обратно: xk+1 ← Xy*.k ← k + 1.

пока f (xk) ≥ −2nL.

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

Page 49: 20080309 efficientalgorithms kulikov_lecture15

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

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

Масштабирование: X ← diag(xk1 , . . . , xk

n ), A← AX , c ← Xc .

Направление: h← − ncT e Pc + e, где P ← I − AT (

AAT )−1 A —проектор на ядро Null(A).

Поиск на прямой: найти �� ∈ argmin{f (e + 𝜆h)|𝜆 ≥ 0, e + 𝜆h ≥ 0}.Результат: y* ← e + ��h.Обратно: xk+1 ← Xy*.k ← k + 1.

пока f (xk) ≥ −2nL.

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

Page 50: 20080309 efficientalgorithms kulikov_lecture15

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

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

Масштабирование: X ← diag(xk1 , . . . , xk

n ), A← AX , c ← Xc .

Направление: h← − ncT e Pc + e, где P ← I − AT (

AAT )−1 A —проектор на ядро Null(A).Поиск на прямой: найти �� ∈ argmin{f (e + 𝜆h)|𝜆 ≥ 0, e + 𝜆h ≥ 0}.

Результат: y* ← e + ��h.Обратно: xk+1 ← Xy*.k ← k + 1.

пока f (xk) ≥ −2nL.

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

Page 51: 20080309 efficientalgorithms kulikov_lecture15

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

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

Масштабирование: X ← diag(xk1 , . . . , xk

n ), A← AX , c ← Xc .

Направление: h← − ncT e Pc + e, где P ← I − AT (

AAT )−1 A —проектор на ядро Null(A).Поиск на прямой: найти �� ∈ argmin{f (e + 𝜆h)|𝜆 ≥ 0, e + 𝜆h ≥ 0}.Результат: y* ← e + ��h.

Обратно: xk+1 ← Xy*.k ← k + 1.

пока f (xk) ≥ −2nL.

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

Page 52: 20080309 efficientalgorithms kulikov_lecture15

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

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

Масштабирование: X ← diag(xk1 , . . . , xk

n ), A← AX , c ← Xc .

Направление: h← − ncT e Pc + e, где P ← I − AT (

AAT )−1 A —проектор на ядро Null(A).Поиск на прямой: найти �� ∈ argmin{f (e + 𝜆h)|𝜆 ≥ 0, e + 𝜆h ≥ 0}.Результат: y* ← e + ��h.Обратно: xk+1 ← Xy*.

k ← k + 1.пока f (xk) ≥ −2nL.

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

Page 53: 20080309 efficientalgorithms kulikov_lecture15

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

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

Масштабирование: X ← diag(xk1 , . . . , xk

n ), A← AX , c ← Xc .

Направление: h← − ncT e Pc + e, где P ← I − AT (

AAT )−1 A —проектор на ядро Null(A).Поиск на прямой: найти �� ∈ argmin{f (e + 𝜆h)|𝜆 ≥ 0, e + 𝜆h ≥ 0}.Результат: y* ← e + ��h.Обратно: xk+1 ← Xy*.k ← k + 1.

пока f (xk) ≥ −2nL.

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

Page 54: 20080309 efficientalgorithms kulikov_lecture15

План лекции

1 Введение

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

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

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

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

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

Page 55: 20080309 efficientalgorithms kulikov_lecture15

Важное свойство алгоритма (без доказательства)

Лемма

f (xk+1) < f (xk)− 0.1.

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

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

Page 56: 20080309 efficientalgorithms kulikov_lecture15

Важное свойство алгоритма (без доказательства)

Лемма

f (xk+1) < f (xk)− 0.1.

Замечания

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

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

Page 57: 20080309 efficientalgorithms kulikov_lecture15

Важное свойство алгоритма (без доказательства)

Лемма

f (xk+1) < f (xk)− 0.1.

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

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

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

Page 58: 20080309 efficientalgorithms kulikov_lecture15

Важное свойство алгоритма (без доказательства)

Лемма

f (xk+1) < f (xk)− 0.1.

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

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

Page 59: 20080309 efficientalgorithms kulikov_lecture15

Исходная задача

Исходная задача

минимизировать cT xпри условиях Ax = b

x ≥ 0,

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

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

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

Page 60: 20080309 efficientalgorithms kulikov_lecture15

Исходная задача

Исходная задача

минимизировать cT xпри условиях Ax = b

x ≥ 0,

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

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

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

Page 61: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

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

Page 62: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

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

Page 63: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

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

Page 64: 20080309 efficientalgorithms kulikov_lecture15

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

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

Пусть L = l + n + 1.

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

Page 65: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

Page 66: 20080309 efficientalgorithms kulikov_lecture15

Ключевая лемма

Лемма

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

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

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

Page 67: 20080309 efficientalgorithms kulikov_lecture15

Ключевая лемма

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

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

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

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

Page 68: 20080309 efficientalgorithms kulikov_lecture15

Ключевая лемма

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

Для любой допустимой точки x cT x ≤ 2L и eT x ≤ 2L.

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

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

Page 69: 20080309 efficientalgorithms kulikov_lecture15

Ключевая лемма

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

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

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

Page 70: 20080309 efficientalgorithms kulikov_lecture15

Ключевая лемма

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

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

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

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

Page 71: 20080309 efficientalgorithms kulikov_lecture15

Ключевая лемма

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

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

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

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

Page 72: 20080309 efficientalgorithms kulikov_lecture15

Ключевая лемма

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

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

Если x — вершина, то столбцы AB линейно независимы.

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

Page 73: 20080309 efficientalgorithms kulikov_lecture15

Ключевая лемма

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

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

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

Page 74: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

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

Page 75: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

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

Page 76: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

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

Page 77: 20080309 efficientalgorithms kulikov_lecture15

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

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

Первое утверждение верно, поскольку ∆i — целое, а|∆| ≤ 2l1 ≤ 2L.Второе утверждение следует из первого и того факта, что c —целочисленный.Для доказательства третьего утверждения рассмотрим вершину xмногогранника.

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

Page 78: 20080309 efficientalgorithms kulikov_lecture15

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

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

Второе утверждение следует из первого и того факта, что c —целочисленный.Для доказательства третьего утверждения рассмотрим вершину xмногогранника.

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

Page 79: 20080309 efficientalgorithms kulikov_lecture15

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

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

Для доказательства третьего утверждения рассмотрим вершину xмногогранника.

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

Page 80: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

Page 81: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

∑j∈J 𝜆jx j , где xj ≥ 0 и

∑j∈J 𝜆j = 1.

Тогда cT x =∑

j∈J 𝜆jcT x j ≤ 2L ∑j∈J 𝜆j = 2L.

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

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

Page 82: 20080309 efficientalgorithms kulikov_lecture15

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

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

Тогда eT x ≤ n2l1 ≤ 2L и cT x ≤ n2l1+lc ≤ 2L.

Третье утверждение, таким образом, доказано для всех вершинмногогранника.Поскольку многогранник ограничен, любая его внутренняя точкаможет быть представлена в виде выпуклой комбинации еговершин.Итак, пусть x =

∑j∈J 𝜆jx j , где xj ≥ 0 и

∑j∈J 𝜆j = 1.

Тогда cT x =∑

j∈J 𝜆jcT x j ≤ 2L ∑j∈J 𝜆j = 2L.

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

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

Page 83: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

Поскольку многогранник ограничен, любая его внутренняя точкаможет быть представлена в виде выпуклой комбинации еговершин.Итак, пусть x =

∑j∈J 𝜆jx j , где xj ≥ 0 и

∑j∈J 𝜆j = 1.

Тогда cT x =∑

j∈J 𝜆jcT x j ≤ 2L ∑j∈J 𝜆j = 2L.

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

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

Page 84: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

Итак, пусть x =∑

j∈J 𝜆jx j , где xj ≥ 0 и∑

j∈J 𝜆j = 1.

Тогда cT x =∑

j∈J 𝜆jcT x j ≤ 2L ∑j∈J 𝜆j = 2L.

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

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

Page 85: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

∑j∈J 𝜆jx j , где xj ≥ 0 и

∑j∈J 𝜆j = 1.

Тогда cT x =∑

j∈J 𝜆jcT x j ≤ 2L ∑j∈J 𝜆j = 2L.

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

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

Page 86: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

∑j∈J 𝜆jx j , где xj ≥ 0 и

∑j∈J 𝜆j = 1.

Тогда cT x =∑

j∈J 𝜆jcT x j ≤ 2L ∑j∈J 𝜆j = 2L.

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

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

Page 87: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

∑j∈J 𝜆jx j , где xj ≥ 0 и

∑j∈J 𝜆j = 1.

Тогда cT x =∑

j∈J 𝜆jcT x j ≤ 2L ∑j∈J 𝜆j = 2L.

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

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

Page 88: 20080309 efficientalgorithms kulikov_lecture15

Ещё один факт

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

cT x ≤ cT x .

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

Page 89: 20080309 efficientalgorithms kulikov_lecture15

Основная теорема

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

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

f (x0) = f (e) = n log(cT e) ≤ n log(2L) ≤ nL

f (xk) < f (x0)− 0.1k ≤ nL− 0.1kЗначит, через не более чем 30nL итераций алгоритм остановитсяна точке

f (xk) = n log(cT xk)−n∑

i=1

log xki < −2nL

.

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

Page 90: 20080309 efficientalgorithms kulikov_lecture15

Основная теорема

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

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

f (x0) = f (e) = n log(cT e) ≤ n log(2L) ≤ nL

f (xk) < f (x0)− 0.1k ≤ nL− 0.1kЗначит, через не более чем 30nL итераций алгоритм остановитсяна точке

f (xk) = n log(cT xk)−n∑

i=1

log xki < −2nL

.

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

Page 91: 20080309 efficientalgorithms kulikov_lecture15

Основная теорема

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

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

f (x0) = f (e) = n log(cT e) ≤ n log(2L) ≤ nL

f (xk) < f (x0)− 0.1k ≤ nL− 0.1kЗначит, через не более чем 30nL итераций алгоритм остановитсяна точке

f (xk) = n log(cT xk)−n∑

i=1

log xki < −2nL

.

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

Page 92: 20080309 efficientalgorithms kulikov_lecture15

Основная теорема

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

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

f (x0) = f (e) = n log(cT e) ≤ n log(2L) ≤ nL

f (xk) < f (x0)− 0.1k ≤ nL− 0.1k

Значит, через не более чем 30nL итераций алгоритм остановитсяна точке

f (xk) = n log(cT xk)−n∑

i=1

log xki < −2nL

.

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

Page 93: 20080309 efficientalgorithms kulikov_lecture15

Основная теорема

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

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

f (x0) = f (e) = n log(cT e) ≤ n log(2L) ≤ nL

f (xk) < f (x0)− 0.1k ≤ nL− 0.1kЗначит, через не более чем 30nL итераций алгоритм остановитсяна точке

f (xk) = n log(cT xk)−n∑

i=1

log xki < −2nL

.

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

Page 94: 20080309 efficientalgorithms kulikov_lecture15

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

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

∑ni=1 log xk

i < nL, а значит, log(cT xk) < −L.Тогда cT xk < e−L < 2−L.При нахождении такой точки идём от нее к вершине-решению.

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

Page 95: 20080309 efficientalgorithms kulikov_lecture15

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

Доказательство∑ni=1 log xk

i < nL, а значит, log(cT xk) < −L.

Тогда cT xk < e−L < 2−L.При нахождении такой точки идём от нее к вершине-решению.

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

Page 96: 20080309 efficientalgorithms kulikov_lecture15

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

Доказательство∑ni=1 log xk

i < nL, а значит, log(cT xk) < −L.Тогда cT xk < e−L < 2−L.

При нахождении такой точки идём от нее к вершине-решению.

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

Page 97: 20080309 efficientalgorithms kulikov_lecture15

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

Доказательство∑ni=1 log xk

i < nL, а значит, log(cT xk) < −L.Тогда cT xk < e−L < 2−L.При нахождении такой точки идём от нее к вершине-решению.

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

Page 98: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

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

Page 99: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

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

Page 100: 20080309 efficientalgorithms kulikov_lecture15

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

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

Подобравшись достаточно близко к вершине-решению, быстронаходит эту вершину.Алгоритм Кармаркара основан на методе внутренней точки иимеет время работы O(n4L), где L — длина битовой записивходных данных.

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

Page 101: 20080309 efficientalgorithms kulikov_lecture15

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

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

Алгоритм Кармаркара основан на методе внутренней точки иимеет время работы O(n4L), где L — длина битовой записивходных данных.

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

Page 102: 20080309 efficientalgorithms kulikov_lecture15

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

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

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

Page 103: 20080309 efficientalgorithms kulikov_lecture15

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

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