20071007 efficientalgorithms kulikov_lecture03

147
с/к “Эффективные алгоритмы” Лекция 3: Приближенные алгоритмы А. Куликов Computer Science клуб при ПОМИ http://logic.pdmi.ras.ru/infclub/ А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 1 / 26

Transcript of 20071007 efficientalgorithms kulikov_lecture03

Page 1: 20071007 efficientalgorithms kulikov_lecture03

с/к “Эффективные алгоритмы”Лекция 3: Приближенные алгоритмы

А. Куликов

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

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 1 / 26

Page 2: 20071007 efficientalgorithms kulikov_lecture03

План лекции

1 Задача о коммивояжере

2 Задача о рюкзаке

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 2 / 26

Page 3: 20071007 efficientalgorithms kulikov_lecture03

План лекции

1 Задача о коммивояжере

2 Задача о рюкзаке

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 2 / 26

Page 4: 20071007 efficientalgorithms kulikov_lecture03

Приближенный алгоритм

Определение

Приближенный алгоритм A имеет относительную оценку точности(relative performance guarantee) 𝛼, если для любого входа Iвыполняется неравенство

I A(I )/OPT(I ) ≥ 𝛼 для максимизационной задачи;I A(I )/OPT(I ) ≤ 𝛼 для минимизационной задачи.

Такие алгоритмы мы называем 𝛼-приближенными.

ЗамечаниеДля оптимизационных задач 𝛼 ≤ 1, для минимизационных — 𝛼 ≥ 1.Алгоритм тем лучше, чем ближе 𝛼 к 1.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 3 / 26

Page 5: 20071007 efficientalgorithms kulikov_lecture03

Приближенный алгоритм

ОпределениеПриближенный алгоритм A имеет относительную оценку точности(relative performance guarantee) 𝛼, если для любого входа Iвыполняется неравенство

I A(I )/OPT(I ) ≥ 𝛼 для максимизационной задачи;I A(I )/OPT(I ) ≤ 𝛼 для минимизационной задачи.

Такие алгоритмы мы называем 𝛼-приближенными.

ЗамечаниеДля оптимизационных задач 𝛼 ≤ 1, для минимизационных — 𝛼 ≥ 1.Алгоритм тем лучше, чем ближе 𝛼 к 1.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 3 / 26

Page 6: 20071007 efficientalgorithms kulikov_lecture03

Приближенный алгоритм

ОпределениеПриближенный алгоритм A имеет относительную оценку точности(relative performance guarantee) 𝛼, если для любого входа Iвыполняется неравенство

I A(I )/OPT(I ) ≥ 𝛼 для максимизационной задачи;

I A(I )/OPT(I ) ≤ 𝛼 для минимизационной задачи.

Такие алгоритмы мы называем 𝛼-приближенными.

ЗамечаниеДля оптимизационных задач 𝛼 ≤ 1, для минимизационных — 𝛼 ≥ 1.Алгоритм тем лучше, чем ближе 𝛼 к 1.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 3 / 26

Page 7: 20071007 efficientalgorithms kulikov_lecture03

Приближенный алгоритм

ОпределениеПриближенный алгоритм A имеет относительную оценку точности(relative performance guarantee) 𝛼, если для любого входа Iвыполняется неравенство

I A(I )/OPT(I ) ≥ 𝛼 для максимизационной задачи;I A(I )/OPT(I ) ≤ 𝛼 для минимизационной задачи.

Такие алгоритмы мы называем 𝛼-приближенными.

ЗамечаниеДля оптимизационных задач 𝛼 ≤ 1, для минимизационных — 𝛼 ≥ 1.Алгоритм тем лучше, чем ближе 𝛼 к 1.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 3 / 26

Page 8: 20071007 efficientalgorithms kulikov_lecture03

Приближенный алгоритм

ОпределениеПриближенный алгоритм A имеет относительную оценку точности(relative performance guarantee) 𝛼, если для любого входа Iвыполняется неравенство

I A(I )/OPT(I ) ≥ 𝛼 для максимизационной задачи;I A(I )/OPT(I ) ≤ 𝛼 для минимизационной задачи.

Такие алгоритмы мы называем 𝛼-приближенными.

ЗамечаниеДля оптимизационных задач 𝛼 ≤ 1, для минимизационных — 𝛼 ≥ 1.Алгоритм тем лучше, чем ближе 𝛼 к 1.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 3 / 26

Page 9: 20071007 efficientalgorithms kulikov_lecture03

Приближенный алгоритм

ОпределениеПриближенный алгоритм A имеет относительную оценку точности(relative performance guarantee) 𝛼, если для любого входа Iвыполняется неравенство

I A(I )/OPT(I ) ≥ 𝛼 для максимизационной задачи;I A(I )/OPT(I ) ≤ 𝛼 для минимизационной задачи.

Такие алгоритмы мы называем 𝛼-приближенными.

ЗамечаниеДля оптимизационных задач 𝛼 ≤ 1, для минимизационных — 𝛼 ≥ 1.Алгоритм тем лучше, чем ближе 𝛼 к 1.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 3 / 26

Page 10: 20071007 efficientalgorithms kulikov_lecture03

Полиномиальная приближенная схема

Определение

Пусть дана максимизационная задача Π.Π имеет полиномиальную приближенную схему (polynomial timeapproximation scheme, PTAS), если

1 для любого 𝜖 ≥ 0 существует (1− 𝜖)-приближенный алгоритм дляΠ;

2 для любого 𝜖 > 0 время работы такого алгоритма зависит от nполиномиально.

Если же время работы такого алгоритма полиномиально нетолько по n, но и по 1/𝜖, то полученная схема называетсяполностью полиномиальной приближенной схемой (fullypolynomial time approximation scheme, FPTAS).Определение для минимизационной задачи полностьюаналогично.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 4 / 26

Page 11: 20071007 efficientalgorithms kulikov_lecture03

Полиномиальная приближенная схема

ОпределениеПусть дана максимизационная задача Π.

Π имеет полиномиальную приближенную схему (polynomial timeapproximation scheme, PTAS), если

1 для любого 𝜖 ≥ 0 существует (1− 𝜖)-приближенный алгоритм дляΠ;

2 для любого 𝜖 > 0 время работы такого алгоритма зависит от nполиномиально.

Если же время работы такого алгоритма полиномиально нетолько по n, но и по 1/𝜖, то полученная схема называетсяполностью полиномиальной приближенной схемой (fullypolynomial time approximation scheme, FPTAS).Определение для минимизационной задачи полностьюаналогично.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 4 / 26

Page 12: 20071007 efficientalgorithms kulikov_lecture03

Полиномиальная приближенная схема

ОпределениеПусть дана максимизационная задача Π.Π имеет полиномиальную приближенную схему (polynomial timeapproximation scheme, PTAS), если

1 для любого 𝜖 ≥ 0 существует (1− 𝜖)-приближенный алгоритм дляΠ;

2 для любого 𝜖 > 0 время работы такого алгоритма зависит от nполиномиально.

Если же время работы такого алгоритма полиномиально нетолько по n, но и по 1/𝜖, то полученная схема называетсяполностью полиномиальной приближенной схемой (fullypolynomial time approximation scheme, FPTAS).Определение для минимизационной задачи полностьюаналогично.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 4 / 26

Page 13: 20071007 efficientalgorithms kulikov_lecture03

Полиномиальная приближенная схема

ОпределениеПусть дана максимизационная задача Π.Π имеет полиномиальную приближенную схему (polynomial timeapproximation scheme, PTAS), если

1 для любого 𝜖 ≥ 0 существует (1− 𝜖)-приближенный алгоритм дляΠ;

2 для любого 𝜖 > 0 время работы такого алгоритма зависит от nполиномиально.

Если же время работы такого алгоритма полиномиально нетолько по n, но и по 1/𝜖, то полученная схема называетсяполностью полиномиальной приближенной схемой (fullypolynomial time approximation scheme, FPTAS).Определение для минимизационной задачи полностьюаналогично.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 4 / 26

Page 14: 20071007 efficientalgorithms kulikov_lecture03

Полиномиальная приближенная схема

ОпределениеПусть дана максимизационная задача Π.Π имеет полиномиальную приближенную схему (polynomial timeapproximation scheme, PTAS), если

1 для любого 𝜖 ≥ 0 существует (1− 𝜖)-приближенный алгоритм дляΠ;

2 для любого 𝜖 > 0 время работы такого алгоритма зависит от nполиномиально.

Если же время работы такого алгоритма полиномиально нетолько по n, но и по 1/𝜖, то полученная схема называетсяполностью полиномиальной приближенной схемой (fullypolynomial time approximation scheme, FPTAS).Определение для минимизационной задачи полностьюаналогично.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 4 / 26

Page 15: 20071007 efficientalgorithms kulikov_lecture03

Полиномиальная приближенная схема

ОпределениеПусть дана максимизационная задача Π.Π имеет полиномиальную приближенную схему (polynomial timeapproximation scheme, PTAS), если

1 для любого 𝜖 ≥ 0 существует (1− 𝜖)-приближенный алгоритм дляΠ;

2 для любого 𝜖 > 0 время работы такого алгоритма зависит от nполиномиально.

Если же время работы такого алгоритма полиномиально нетолько по n, но и по 1/𝜖, то полученная схема называетсяполностью полиномиальной приближенной схемой (fullypolynomial time approximation scheme, FPTAS).

Определение для минимизационной задачи полностьюаналогично.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 4 / 26

Page 16: 20071007 efficientalgorithms kulikov_lecture03

Полиномиальная приближенная схема

ОпределениеПусть дана максимизационная задача Π.Π имеет полиномиальную приближенную схему (polynomial timeapproximation scheme, PTAS), если

1 для любого 𝜖 ≥ 0 существует (1− 𝜖)-приближенный алгоритм дляΠ;

2 для любого 𝜖 > 0 время работы такого алгоритма зависит от nполиномиально.

Если же время работы такого алгоритма полиномиально нетолько по n, но и по 1/𝜖, то полученная схема называетсяполностью полиномиальной приближенной схемой (fullypolynomial time approximation scheme, FPTAS).Определение для минимизационной задачи полностьюаналогично.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 4 / 26

Page 17: 20071007 efficientalgorithms kulikov_lecture03

План лекции

1 Задача о коммивояжере

2 Задача о рюкзаке

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 5 / 26

Page 18: 20071007 efficientalgorithms kulikov_lecture03

Задача о коммивояжере

Определение

Дан полный неориентированный граф G = (V , E ), каждому ребру(u, v) которого приписана некоторая стоимость c(u, v).Задача о коммивояжере (travelling salesman problem, TSP)заключается в нахождении в графе гамильтонова цикламинимальной стоимости.Задача о коммивояжере в метрическом пространстве (metric TSP)есть частный случай задачи о коммивояжере, где расстояниявходного графа удовлетворяют неравенству треугольника:

c(u, w) ≤ c(u, v) + c(v , w) ∀u, v , w ∈ V .

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 6 / 26

Page 19: 20071007 efficientalgorithms kulikov_lecture03

Задача о коммивояжере

ОпределениеДан полный неориентированный граф G = (V , E ), каждому ребру(u, v) которого приписана некоторая стоимость c(u, v).

Задача о коммивояжере (travelling salesman problem, TSP)заключается в нахождении в графе гамильтонова цикламинимальной стоимости.Задача о коммивояжере в метрическом пространстве (metric TSP)есть частный случай задачи о коммивояжере, где расстояниявходного графа удовлетворяют неравенству треугольника:

c(u, w) ≤ c(u, v) + c(v , w) ∀u, v , w ∈ V .

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 6 / 26

Page 20: 20071007 efficientalgorithms kulikov_lecture03

Задача о коммивояжере

ОпределениеДан полный неориентированный граф G = (V , E ), каждому ребру(u, v) которого приписана некоторая стоимость c(u, v).Задача о коммивояжере (travelling salesman problem, TSP)заключается в нахождении в графе гамильтонова цикламинимальной стоимости.

Задача о коммивояжере в метрическом пространстве (metric TSP)есть частный случай задачи о коммивояжере, где расстояниявходного графа удовлетворяют неравенству треугольника:

c(u, w) ≤ c(u, v) + c(v , w) ∀u, v , w ∈ V .

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 6 / 26

Page 21: 20071007 efficientalgorithms kulikov_lecture03

Задача о коммивояжере

ОпределениеДан полный неориентированный граф G = (V , E ), каждому ребру(u, v) которого приписана некоторая стоимость c(u, v).Задача о коммивояжере (travelling salesman problem, TSP)заключается в нахождении в графе гамильтонова цикламинимальной стоимости.Задача о коммивояжере в метрическом пространстве (metric TSP)есть частный случай задачи о коммивояжере, где расстояниявходного графа удовлетворяют неравенству треугольника:

c(u, w) ≤ c(u, v) + c(v , w) ∀u, v , w ∈ V .

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 6 / 26

Page 22: 20071007 efficientalgorithms kulikov_lecture03

NP-трудность

Задача о коммивояжере является NP-трудной.Тривиальный алгоритм перебирает все возможные пути за времяn!.Наилучший известный на данный момент алгоритм основан надинамическом программировании и имеет время работы (а такжепамять) 2n.Задача о коммивояжере в метрическом пространстве тожеявляется NP-трудной.

I допустим, мы умеем решать эту задачу за полиномиальное времяI возьмем произвольный граф и присвоим всем его ребрам вес 1I между любыми двумя не соединенными ребром вершинами

добавим ребро веса 2I тогда построение минимального гамильтонова цикла в полученном

графе эквивалентно ответу на вопрос, существует ли в исходномграфе гамильтонов цикл

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 7 / 26

Page 23: 20071007 efficientalgorithms kulikov_lecture03

NP-трудность

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

Тривиальный алгоритм перебирает все возможные пути за времяn!.Наилучший известный на данный момент алгоритм основан надинамическом программировании и имеет время работы (а такжепамять) 2n.Задача о коммивояжере в метрическом пространстве тожеявляется NP-трудной.

I допустим, мы умеем решать эту задачу за полиномиальное времяI возьмем произвольный граф и присвоим всем его ребрам вес 1I между любыми двумя не соединенными ребром вершинами

добавим ребро веса 2I тогда построение минимального гамильтонова цикла в полученном

графе эквивалентно ответу на вопрос, существует ли в исходномграфе гамильтонов цикл

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 7 / 26

Page 24: 20071007 efficientalgorithms kulikov_lecture03

NP-трудность

Задача о коммивояжере является NP-трудной.Тривиальный алгоритм перебирает все возможные пути за времяn!.

Наилучший известный на данный момент алгоритм основан надинамическом программировании и имеет время работы (а такжепамять) 2n.Задача о коммивояжере в метрическом пространстве тожеявляется NP-трудной.

I допустим, мы умеем решать эту задачу за полиномиальное времяI возьмем произвольный граф и присвоим всем его ребрам вес 1I между любыми двумя не соединенными ребром вершинами

добавим ребро веса 2I тогда построение минимального гамильтонова цикла в полученном

графе эквивалентно ответу на вопрос, существует ли в исходномграфе гамильтонов цикл

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 7 / 26

Page 25: 20071007 efficientalgorithms kulikov_lecture03

NP-трудность

Задача о коммивояжере является NP-трудной.Тривиальный алгоритм перебирает все возможные пути за времяn!.Наилучший известный на данный момент алгоритм основан надинамическом программировании и имеет время работы (а такжепамять) 2n.

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

I допустим, мы умеем решать эту задачу за полиномиальное времяI возьмем произвольный граф и присвоим всем его ребрам вес 1I между любыми двумя не соединенными ребром вершинами

добавим ребро веса 2I тогда построение минимального гамильтонова цикла в полученном

графе эквивалентно ответу на вопрос, существует ли в исходномграфе гамильтонов цикл

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 7 / 26

Page 26: 20071007 efficientalgorithms kulikov_lecture03

NP-трудность

Задача о коммивояжере является NP-трудной.Тривиальный алгоритм перебирает все возможные пути за времяn!.Наилучший известный на данный момент алгоритм основан надинамическом программировании и имеет время работы (а такжепамять) 2n.Задача о коммивояжере в метрическом пространстве тожеявляется NP-трудной.

I допустим, мы умеем решать эту задачу за полиномиальное времяI возьмем произвольный граф и присвоим всем его ребрам вес 1I между любыми двумя не соединенными ребром вершинами

добавим ребро веса 2I тогда построение минимального гамильтонова цикла в полученном

графе эквивалентно ответу на вопрос, существует ли в исходномграфе гамильтонов цикл

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 7 / 26

Page 27: 20071007 efficientalgorithms kulikov_lecture03

NP-трудность

Задача о коммивояжере является NP-трудной.Тривиальный алгоритм перебирает все возможные пути за времяn!.Наилучший известный на данный момент алгоритм основан надинамическом программировании и имеет время работы (а такжепамять) 2n.Задача о коммивояжере в метрическом пространстве тожеявляется NP-трудной.

I допустим, мы умеем решать эту задачу за полиномиальное время

I возьмем произвольный граф и присвоим всем его ребрам вес 1I между любыми двумя не соединенными ребром вершинами

добавим ребро веса 2I тогда построение минимального гамильтонова цикла в полученном

графе эквивалентно ответу на вопрос, существует ли в исходномграфе гамильтонов цикл

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 7 / 26

Page 28: 20071007 efficientalgorithms kulikov_lecture03

NP-трудность

Задача о коммивояжере является NP-трудной.Тривиальный алгоритм перебирает все возможные пути за времяn!.Наилучший известный на данный момент алгоритм основан надинамическом программировании и имеет время работы (а такжепамять) 2n.Задача о коммивояжере в метрическом пространстве тожеявляется NP-трудной.

I допустим, мы умеем решать эту задачу за полиномиальное времяI возьмем произвольный граф и присвоим всем его ребрам вес 1

I между любыми двумя не соединенными ребром вершинамидобавим ребро веса 2

I тогда построение минимального гамильтонова цикла в полученномграфе эквивалентно ответу на вопрос, существует ли в исходномграфе гамильтонов цикл

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 7 / 26

Page 29: 20071007 efficientalgorithms kulikov_lecture03

NP-трудность

Задача о коммивояжере является NP-трудной.Тривиальный алгоритм перебирает все возможные пути за времяn!.Наилучший известный на данный момент алгоритм основан надинамическом программировании и имеет время работы (а такжепамять) 2n.Задача о коммивояжере в метрическом пространстве тожеявляется NP-трудной.

I допустим, мы умеем решать эту задачу за полиномиальное времяI возьмем произвольный граф и присвоим всем его ребрам вес 1I между любыми двумя не соединенными ребром вершинами

добавим ребро веса 2

I тогда построение минимального гамильтонова цикла в полученномграфе эквивалентно ответу на вопрос, существует ли в исходномграфе гамильтонов цикл

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 7 / 26

Page 30: 20071007 efficientalgorithms kulikov_lecture03

NP-трудность

Задача о коммивояжере является NP-трудной.Тривиальный алгоритм перебирает все возможные пути за времяn!.Наилучший известный на данный момент алгоритм основан надинамическом программировании и имеет время работы (а такжепамять) 2n.Задача о коммивояжере в метрическом пространстве тожеявляется NP-трудной.

I допустим, мы умеем решать эту задачу за полиномиальное времяI возьмем произвольный граф и присвоим всем его ребрам вес 1I между любыми двумя не соединенными ребром вершинами

добавим ребро веса 2I тогда построение минимального гамильтонова цикла в полученном

графе эквивалентно ответу на вопрос, существует ли в исходномграфе гамильтонов цикл

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 7 / 26

Page 31: 20071007 efficientalgorithms kulikov_lecture03

2-оптимальный алгоритм

АлгоритмApprox-TSP(G )

строим минимальное остовное дерево T графа Gпродублируем каждое ребро дерева T и в полученном графенайдем эйлеров циклвыкинем из полученного цикла все повторения вершин и вернемполученный цикл

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 8 / 26

Page 32: 20071007 efficientalgorithms kulikov_lecture03

2-оптимальный алгоритм

АлгоритмApprox-TSP(G )

строим минимальное остовное дерево T графа G

продублируем каждое ребро дерева T и в полученном графенайдем эйлеров циклвыкинем из полученного цикла все повторения вершин и вернемполученный цикл

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 8 / 26

Page 33: 20071007 efficientalgorithms kulikov_lecture03

2-оптимальный алгоритм

АлгоритмApprox-TSP(G )

строим минимальное остовное дерево T графа Gпродублируем каждое ребро дерева T и в полученном графенайдем эйлеров цикл

выкинем из полученного цикла все повторения вершин и вернемполученный цикл

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 8 / 26

Page 34: 20071007 efficientalgorithms kulikov_lecture03

2-оптимальный алгоритм

АлгоритмApprox-TSP(G )

строим минимальное остовное дерево T графа Gпродублируем каждое ребро дерева T и в полученном графенайдем эйлеров циклвыкинем из полученного цикла все повторения вершин и вернемполученный цикл

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 8 / 26

Page 35: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 36: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа G

продублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 37: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл

выкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 38: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл

выкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 39: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл

выкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 40: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл

выкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 41: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл

выкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 42: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл

выкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 43: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл

выкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 44: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл

выкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 45: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл

выкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 46: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл

выкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 47: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл

выкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 48: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл

выкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 49: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл

выкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 50: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл

выкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 51: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл

выкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 52: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 53: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 54: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 55: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 56: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 57: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 58: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 59: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 60: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 61: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 62: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 63: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 64: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 65: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 66: 20071007 efficientalgorithms kulikov_lecture03

Пример работы алгоритма

АлгоритмApprox-TSP(G )

строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл

a

b

c

d

e

f g

h

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26

Page 67: 20071007 efficientalgorithms kulikov_lecture03

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

ТеоремаАлгоритм Approx-TSP является 2-приближенным.

Доказательствопусть WT — вес минимального остовного дерева, а Wopt — весоптимального гамильтонова циклаWT ≤ Wopt, поскольку при выкидывании ребра из гамильтонвацикла получается остовное деревокаждое ребро построенного гамильтонова цикла заменяеткакой-то путь эйлерова цикла, длина которого по неравенствутреугольника не менее длины этого ребразначит, длина найденного пути не превосходит 2WT , аследовательно, и 2Wopt

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 10 / 26

Page 68: 20071007 efficientalgorithms kulikov_lecture03

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

ТеоремаАлгоритм Approx-TSP является 2-приближенным.

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

пусть WT — вес минимального остовного дерева, а Wopt — весоптимального гамильтонова циклаWT ≤ Wopt, поскольку при выкидывании ребра из гамильтонвацикла получается остовное деревокаждое ребро построенного гамильтонова цикла заменяеткакой-то путь эйлерова цикла, длина которого по неравенствутреугольника не менее длины этого ребразначит, длина найденного пути не превосходит 2WT , аследовательно, и 2Wopt

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 10 / 26

Page 69: 20071007 efficientalgorithms kulikov_lecture03

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

ТеоремаАлгоритм Approx-TSP является 2-приближенным.

Доказательствопусть WT — вес минимального остовного дерева, а Wopt — весоптимального гамильтонова цикла

WT ≤ Wopt, поскольку при выкидывании ребра из гамильтонвацикла получается остовное деревокаждое ребро построенного гамильтонова цикла заменяеткакой-то путь эйлерова цикла, длина которого по неравенствутреугольника не менее длины этого ребразначит, длина найденного пути не превосходит 2WT , аследовательно, и 2Wopt

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 10 / 26

Page 70: 20071007 efficientalgorithms kulikov_lecture03

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

ТеоремаАлгоритм Approx-TSP является 2-приближенным.

Доказательствопусть WT — вес минимального остовного дерева, а Wopt — весоптимального гамильтонова циклаWT ≤ Wopt, поскольку при выкидывании ребра из гамильтонвацикла получается остовное дерево

каждое ребро построенного гамильтонова цикла заменяеткакой-то путь эйлерова цикла, длина которого по неравенствутреугольника не менее длины этого ребразначит, длина найденного пути не превосходит 2WT , аследовательно, и 2Wopt

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 10 / 26

Page 71: 20071007 efficientalgorithms kulikov_lecture03

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

ТеоремаАлгоритм Approx-TSP является 2-приближенным.

Доказательствопусть WT — вес минимального остовного дерева, а Wopt — весоптимального гамильтонова циклаWT ≤ Wopt, поскольку при выкидывании ребра из гамильтонвацикла получается остовное деревокаждое ребро построенного гамильтонова цикла заменяеткакой-то путь эйлерова цикла, длина которого по неравенствутреугольника не менее длины этого ребра

значит, длина найденного пути не превосходит 2WT , аследовательно, и 2Wopt

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 10 / 26

Page 72: 20071007 efficientalgorithms kulikov_lecture03

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

ТеоремаАлгоритм Approx-TSP является 2-приближенным.

Доказательствопусть WT — вес минимального остовного дерева, а Wopt — весоптимального гамильтонова циклаWT ≤ Wopt, поскольку при выкидывании ребра из гамильтонвацикла получается остовное деревокаждое ребро построенного гамильтонова цикла заменяеткакой-то путь эйлерова цикла, длина которого по неравенствутреугольника не менее длины этого ребразначит, длина найденного пути не превосходит 2WT , аследовательно, и 2Wopt

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 10 / 26

Page 73: 20071007 efficientalgorithms kulikov_lecture03

3/2-оптимальный алгоритм

АлгоритмApprox-TSP-Improved(G )

строим минимальное остовное дерево T графа Gнайдем минимальное полное паросочетание всех вершин дерева Tнечетной степенидобавим найденные ребра в дерево T и найдем в полученномграфе эйлеров циклвыкинем из полученного цикла все повторения вершин и вернемполученный цикл

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 11 / 26

Page 74: 20071007 efficientalgorithms kulikov_lecture03

3/2-оптимальный алгоритм

АлгоритмApprox-TSP-Improved(G )

строим минимальное остовное дерево T графа G

найдем минимальное полное паросочетание всех вершин дерева Tнечетной степенидобавим найденные ребра в дерево T и найдем в полученномграфе эйлеров циклвыкинем из полученного цикла все повторения вершин и вернемполученный цикл

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 11 / 26

Page 75: 20071007 efficientalgorithms kulikov_lecture03

3/2-оптимальный алгоритм

АлгоритмApprox-TSP-Improved(G )

строим минимальное остовное дерево T графа Gнайдем минимальное полное паросочетание всех вершин дерева Tнечетной степени

добавим найденные ребра в дерево T и найдем в полученномграфе эйлеров циклвыкинем из полученного цикла все повторения вершин и вернемполученный цикл

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 11 / 26

Page 76: 20071007 efficientalgorithms kulikov_lecture03

3/2-оптимальный алгоритм

АлгоритмApprox-TSP-Improved(G )

строим минимальное остовное дерево T графа Gнайдем минимальное полное паросочетание всех вершин дерева Tнечетной степенидобавим найденные ребра в дерево T и найдем в полученномграфе эйлеров цикл

выкинем из полученного цикла все повторения вершин и вернемполученный цикл

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 11 / 26

Page 77: 20071007 efficientalgorithms kulikov_lecture03

3/2-оптимальный алгоритм

АлгоритмApprox-TSP-Improved(G )

строим минимальное остовное дерево T графа Gнайдем минимальное полное паросочетание всех вершин дерева Tнечетной степенидобавим найденные ребра в дерево T и найдем в полученномграфе эйлеров циклвыкинем из полученного цикла все повторения вершин и вернемполученный цикл

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 11 / 26

Page 78: 20071007 efficientalgorithms kulikov_lecture03

О чем вы забыли меня спросить?

О чем вы забыли меня спросить?

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 12 / 26

Page 79: 20071007 efficientalgorithms kulikov_lecture03

О чем вы забыли меня спросить?

О том, как искать минимальное полное паросочетание в графе.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 12 / 26

Page 80: 20071007 efficientalgorithms kulikov_lecture03

О чем вы забыли меня спросить?

О том, как искать минимальное полное паросочетание в графе.Давайте пока просто поверим в то, что оно находится заполиномиальное время.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 12 / 26

Page 81: 20071007 efficientalgorithms kulikov_lecture03

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

ТеоремаАлгоритм Approx-TSP-Improved является 3/2-приближенным.

Доказательствокак и в предыдущем доказательстве, вес построенного цикла непровосходит WT + WP , где WP — вес минимальногопаросочетания вершин нечетной степени дерева Tнужно показать, что WP ≤ Wopt/2обозначим через A множество всех вершин нечетной степенидерева Tрассмотрим такой гамильтонов цикл на вершинах множества A:вершины множества A в нем будут встречаться в такойпоследовательности, в какой они идут в оптимальномгамильтонов цикле графа G

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 13 / 26

Page 82: 20071007 efficientalgorithms kulikov_lecture03

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

ТеоремаАлгоритм Approx-TSP-Improved является 3/2-приближенным.

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

как и в предыдущем доказательстве, вес построенного цикла непровосходит WT + WP , где WP — вес минимальногопаросочетания вершин нечетной степени дерева Tнужно показать, что WP ≤ Wopt/2обозначим через A множество всех вершин нечетной степенидерева Tрассмотрим такой гамильтонов цикл на вершинах множества A:вершины множества A в нем будут встречаться в такойпоследовательности, в какой они идут в оптимальномгамильтонов цикле графа G

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 13 / 26

Page 83: 20071007 efficientalgorithms kulikov_lecture03

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

ТеоремаАлгоритм Approx-TSP-Improved является 3/2-приближенным.

Доказательствокак и в предыдущем доказательстве, вес построенного цикла непровосходит WT + WP , где WP — вес минимальногопаросочетания вершин нечетной степени дерева T

нужно показать, что WP ≤ Wopt/2обозначим через A множество всех вершин нечетной степенидерева Tрассмотрим такой гамильтонов цикл на вершинах множества A:вершины множества A в нем будут встречаться в такойпоследовательности, в какой они идут в оптимальномгамильтонов цикле графа G

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 13 / 26

Page 84: 20071007 efficientalgorithms kulikov_lecture03

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

ТеоремаАлгоритм Approx-TSP-Improved является 3/2-приближенным.

Доказательствокак и в предыдущем доказательстве, вес построенного цикла непровосходит WT + WP , где WP — вес минимальногопаросочетания вершин нечетной степени дерева Tнужно показать, что WP ≤ Wopt/2

обозначим через A множество всех вершин нечетной степенидерева Tрассмотрим такой гамильтонов цикл на вершинах множества A:вершины множества A в нем будут встречаться в такойпоследовательности, в какой они идут в оптимальномгамильтонов цикле графа G

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 13 / 26

Page 85: 20071007 efficientalgorithms kulikov_lecture03

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

ТеоремаАлгоритм Approx-TSP-Improved является 3/2-приближенным.

Доказательствокак и в предыдущем доказательстве, вес построенного цикла непровосходит WT + WP , где WP — вес минимальногопаросочетания вершин нечетной степени дерева Tнужно показать, что WP ≤ Wopt/2обозначим через A множество всех вершин нечетной степенидерева T

рассмотрим такой гамильтонов цикл на вершинах множества A:вершины множества A в нем будут встречаться в такойпоследовательности, в какой они идут в оптимальномгамильтонов цикле графа G

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 13 / 26

Page 86: 20071007 efficientalgorithms kulikov_lecture03

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

ТеоремаАлгоритм Approx-TSP-Improved является 3/2-приближенным.

Доказательствокак и в предыдущем доказательстве, вес построенного цикла непровосходит WT + WP , где WP — вес минимальногопаросочетания вершин нечетной степени дерева Tнужно показать, что WP ≤ Wopt/2обозначим через A множество всех вершин нечетной степенидерева Tрассмотрим такой гамильтонов цикл на вершинах множества A:вершины множества A в нем будут встречаться в такойпоследовательности, в какой они идут в оптимальномгамильтонов цикле графа G

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 13 / 26

Page 87: 20071007 efficientalgorithms kulikov_lecture03

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

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

важно отметить, что нам не нужно строить такой цикл; нам важенлишь факт его существованияразбив вершины только что построенного цикла на четные инечетные, мы получим два паросочетаниявес хотя бы одного из них будет не более Wopt/2значит, и вес минимального паросочетания не превосходитWopt/2

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 14 / 26

Page 88: 20071007 efficientalgorithms kulikov_lecture03

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

Доказательствоважно отметить, что нам не нужно строить такой цикл; нам важенлишь факт его существования

разбив вершины только что построенного цикла на четные инечетные, мы получим два паросочетаниявес хотя бы одного из них будет не более Wopt/2значит, и вес минимального паросочетания не превосходитWopt/2

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 14 / 26

Page 89: 20071007 efficientalgorithms kulikov_lecture03

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

Доказательствоважно отметить, что нам не нужно строить такой цикл; нам важенлишь факт его существованияразбив вершины только что построенного цикла на четные инечетные, мы получим два паросочетания

вес хотя бы одного из них будет не более Wopt/2значит, и вес минимального паросочетания не превосходитWopt/2

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 14 / 26

Page 90: 20071007 efficientalgorithms kulikov_lecture03

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

Доказательствоважно отметить, что нам не нужно строить такой цикл; нам важенлишь факт его существованияразбив вершины только что построенного цикла на четные инечетные, мы получим два паросочетаниявес хотя бы одного из них будет не более Wopt/2

значит, и вес минимального паросочетания не превосходитWopt/2

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 14 / 26

Page 91: 20071007 efficientalgorithms kulikov_lecture03

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

Доказательствоважно отметить, что нам не нужно строить такой цикл; нам важенлишь факт его существованияразбив вершины только что построенного цикла на четные инечетные, мы получим два паросочетаниявес хотя бы одного из них будет не более Wopt/2значит, и вес минимального паросочетания не превосходитWopt/2

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 14 / 26

Page 92: 20071007 efficientalgorithms kulikov_lecture03

Известные оценки

Факт

Если P ̸= NP , то не существует 117116 -приближенного алгоритма для

задачи о коммивояжере в метрическом пространстве.3/2 — лучшее известное приближение для задачи окоммивояжере в метрическом пространстве.Для случая, когда все ребра имеют вес 1 или 2, известен5/6-приближенный алгоритм.

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

Page 93: 20071007 efficientalgorithms kulikov_lecture03

Известные оценки

ФактЕсли P ̸= NP , то не существует 117

116 -приближенного алгоритма длязадачи о коммивояжере в метрическом пространстве.

3/2 — лучшее известное приближение для задачи окоммивояжере в метрическом пространстве.Для случая, когда все ребра имеют вес 1 или 2, известен5/6-приближенный алгоритм.

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

Page 94: 20071007 efficientalgorithms kulikov_lecture03

Известные оценки

ФактЕсли P ̸= NP , то не существует 117

116 -приближенного алгоритма длязадачи о коммивояжере в метрическом пространстве.3/2 — лучшее известное приближение для задачи окоммивояжере в метрическом пространстве.

Для случая, когда все ребра имеют вес 1 или 2, известен5/6-приближенный алгоритм.

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

Page 95: 20071007 efficientalgorithms kulikov_lecture03

Известные оценки

ФактЕсли P ̸= NP , то не существует 117

116 -приближенного алгоритма длязадачи о коммивояжере в метрическом пространстве.3/2 — лучшее известное приближение для задачи окоммивояжере в метрическом пространстве.Для случая, когда все ребра имеют вес 1 или 2, известен5/6-приближенный алгоритм.

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

Page 96: 20071007 efficientalgorithms kulikov_lecture03

Неприближаемость задачи о коммивояжере

ТеоремаПусть P ̸= NP и 𝛼(n) = c ∈ N. Тогда не существует𝛼(n)-приближенного алгоритма для задачи о коммивояжере.

Доказательствопредположим, что такой алгоритм все-таки существуетвозьмем произвольный граф и присвоим всем его ребрам вес 1между любыми двумя не соединенными ребром вершинамидобавим ребро веса cn + 1заметим теперь, что если в исходном графе существуетгамильтонов цикл, то в новом графе существует гамильтоновцикл веса n

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 16 / 26

Page 97: 20071007 efficientalgorithms kulikov_lecture03

Неприближаемость задачи о коммивояжере

ТеоремаПусть P ̸= NP и 𝛼(n) = c ∈ N. Тогда не существует𝛼(n)-приближенного алгоритма для задачи о коммивояжере.

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

предположим, что такой алгоритм все-таки существуетвозьмем произвольный граф и присвоим всем его ребрам вес 1между любыми двумя не соединенными ребром вершинамидобавим ребро веса cn + 1заметим теперь, что если в исходном графе существуетгамильтонов цикл, то в новом графе существует гамильтоновцикл веса n

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 16 / 26

Page 98: 20071007 efficientalgorithms kulikov_lecture03

Неприближаемость задачи о коммивояжере

ТеоремаПусть P ̸= NP и 𝛼(n) = c ∈ N. Тогда не существует𝛼(n)-приближенного алгоритма для задачи о коммивояжере.

Доказательствопредположим, что такой алгоритм все-таки существует

возьмем произвольный граф и присвоим всем его ребрам вес 1между любыми двумя не соединенными ребром вершинамидобавим ребро веса cn + 1заметим теперь, что если в исходном графе существуетгамильтонов цикл, то в новом графе существует гамильтоновцикл веса n

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 16 / 26

Page 99: 20071007 efficientalgorithms kulikov_lecture03

Неприближаемость задачи о коммивояжере

ТеоремаПусть P ̸= NP и 𝛼(n) = c ∈ N. Тогда не существует𝛼(n)-приближенного алгоритма для задачи о коммивояжере.

Доказательствопредположим, что такой алгоритм все-таки существуетвозьмем произвольный граф и присвоим всем его ребрам вес 1

между любыми двумя не соединенными ребром вершинамидобавим ребро веса cn + 1заметим теперь, что если в исходном графе существуетгамильтонов цикл, то в новом графе существует гамильтоновцикл веса n

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 16 / 26

Page 100: 20071007 efficientalgorithms kulikov_lecture03

Неприближаемость задачи о коммивояжере

ТеоремаПусть P ̸= NP и 𝛼(n) = c ∈ N. Тогда не существует𝛼(n)-приближенного алгоритма для задачи о коммивояжере.

Доказательствопредположим, что такой алгоритм все-таки существуетвозьмем произвольный граф и присвоим всем его ребрам вес 1между любыми двумя не соединенными ребром вершинамидобавим ребро веса cn + 1

заметим теперь, что если в исходном графе существуетгамильтонов цикл, то в новом графе существует гамильтоновцикл веса n

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 16 / 26

Page 101: 20071007 efficientalgorithms kulikov_lecture03

Неприближаемость задачи о коммивояжере

ТеоремаПусть P ̸= NP и 𝛼(n) = c ∈ N. Тогда не существует𝛼(n)-приближенного алгоритма для задачи о коммивояжере.

Доказательствопредположим, что такой алгоритм все-таки существуетвозьмем произвольный граф и присвоим всем его ребрам вес 1между любыми двумя не соединенными ребром вершинамидобавим ребро веса cn + 1заметим теперь, что если в исходном графе существуетгамильтонов цикл, то в новом графе существует гамильтоновцикл веса n

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 16 / 26

Page 102: 20071007 efficientalgorithms kulikov_lecture03

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

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

если же такого цикла в исходном графе нет, то самый дешевыйцикл в новом графе имеет вес хотя бы (nc + 1) + (n − 1) > ncтаким образом, с помощью 𝛼(n)-приближенного алгоритма длязадачи о коммивояжере мы можем понять, стоимостьоптимального цикла в построенном графе превосходит n или нета это позволит нам понять (за полиномиальное время!), есть висходном графе гамильтонов цикл или нетно тогда P = NP

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 17 / 26

Page 103: 20071007 efficientalgorithms kulikov_lecture03

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

Доказательствоесли же такого цикла в исходном графе нет, то самый дешевыйцикл в новом графе имеет вес хотя бы (nc + 1) + (n − 1) > nc

таким образом, с помощью 𝛼(n)-приближенного алгоритма длязадачи о коммивояжере мы можем понять, стоимостьоптимального цикла в построенном графе превосходит n или нета это позволит нам понять (за полиномиальное время!), есть висходном графе гамильтонов цикл или нетно тогда P = NP

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 17 / 26

Page 104: 20071007 efficientalgorithms kulikov_lecture03

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

Доказательствоесли же такого цикла в исходном графе нет, то самый дешевыйцикл в новом графе имеет вес хотя бы (nc + 1) + (n − 1) > ncтаким образом, с помощью 𝛼(n)-приближенного алгоритма длязадачи о коммивояжере мы можем понять, стоимостьоптимального цикла в построенном графе превосходит n или нет

а это позволит нам понять (за полиномиальное время!), есть висходном графе гамильтонов цикл или нетно тогда P = NP

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 17 / 26

Page 105: 20071007 efficientalgorithms kulikov_lecture03

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

Доказательствоесли же такого цикла в исходном графе нет, то самый дешевыйцикл в новом графе имеет вес хотя бы (nc + 1) + (n − 1) > ncтаким образом, с помощью 𝛼(n)-приближенного алгоритма длязадачи о коммивояжере мы можем понять, стоимостьоптимального цикла в построенном графе превосходит n или нета это позволит нам понять (за полиномиальное время!), есть висходном графе гамильтонов цикл или нет

но тогда P = NP

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 17 / 26

Page 106: 20071007 efficientalgorithms kulikov_lecture03

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

Доказательствоесли же такого цикла в исходном графе нет, то самый дешевыйцикл в новом графе имеет вес хотя бы (nc + 1) + (n − 1) > ncтаким образом, с помощью 𝛼(n)-приближенного алгоритма длязадачи о коммивояжере мы можем понять, стоимостьоптимального цикла в построенном графе превосходит n или нета это позволит нам понять (за полиномиальное время!), есть висходном графе гамильтонов цикл или нетно тогда P = NP

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 17 / 26

Page 107: 20071007 efficientalgorithms kulikov_lecture03

План лекции

1 Задача о коммивояжере

2 Задача о рюкзаке

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 18 / 26

Page 108: 20071007 efficientalgorithms kulikov_lecture03

Задача о рюкзаке

Определение

Дано n предметов с весами w1, . . . , wn ∈ N и стоимостямиp1, . . . , pn ∈ N, а также общий вес W .Задача о рюкзаке (knapsack problem) заключается в нахождениитакого множества предметов I ⊆ [1..n], что

∑︀i∈I wi ≤ W и∑︀

i∈I pi максимально.НУО, maxi∈[1..n] wi ≤ W .

ФактЗадача о рюкзаке является NP-трудной.Одна из знаменитых 21-й NP-полной задачи Карпа.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 19 / 26

Page 109: 20071007 efficientalgorithms kulikov_lecture03

Задача о рюкзаке

ОпределениеДано n предметов с весами w1, . . . , wn ∈ N и стоимостямиp1, . . . , pn ∈ N, а также общий вес W .

Задача о рюкзаке (knapsack problem) заключается в нахождениитакого множества предметов I ⊆ [1..n], что

∑︀i∈I wi ≤ W и∑︀

i∈I pi максимально.НУО, maxi∈[1..n] wi ≤ W .

ФактЗадача о рюкзаке является NP-трудной.Одна из знаменитых 21-й NP-полной задачи Карпа.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 19 / 26

Page 110: 20071007 efficientalgorithms kulikov_lecture03

Задача о рюкзаке

ОпределениеДано n предметов с весами w1, . . . , wn ∈ N и стоимостямиp1, . . . , pn ∈ N, а также общий вес W .Задача о рюкзаке (knapsack problem) заключается в нахождениитакого множества предметов I ⊆ [1..n], что

∑︀i∈I wi ≤ W и∑︀

i∈I pi максимально.

НУО, maxi∈[1..n] wi ≤ W .

ФактЗадача о рюкзаке является NP-трудной.Одна из знаменитых 21-й NP-полной задачи Карпа.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 19 / 26

Page 111: 20071007 efficientalgorithms kulikov_lecture03

Задача о рюкзаке

ОпределениеДано n предметов с весами w1, . . . , wn ∈ N и стоимостямиp1, . . . , pn ∈ N, а также общий вес W .Задача о рюкзаке (knapsack problem) заключается в нахождениитакого множества предметов I ⊆ [1..n], что

∑︀i∈I wi ≤ W и∑︀

i∈I pi максимально.НУО, maxi∈[1..n] wi ≤ W .

ФактЗадача о рюкзаке является NP-трудной.Одна из знаменитых 21-й NP-полной задачи Карпа.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 19 / 26

Page 112: 20071007 efficientalgorithms kulikov_lecture03

Задача о рюкзаке

ОпределениеДано n предметов с весами w1, . . . , wn ∈ N и стоимостямиp1, . . . , pn ∈ N, а также общий вес W .Задача о рюкзаке (knapsack problem) заключается в нахождениитакого множества предметов I ⊆ [1..n], что

∑︀i∈I wi ≤ W и∑︀

i∈I pi максимально.НУО, maxi∈[1..n] wi ≤ W .

Факт

Задача о рюкзаке является NP-трудной.Одна из знаменитых 21-й NP-полной задачи Карпа.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 19 / 26

Page 113: 20071007 efficientalgorithms kulikov_lecture03

Задача о рюкзаке

ОпределениеДано n предметов с весами w1, . . . , wn ∈ N и стоимостямиp1, . . . , pn ∈ N, а также общий вес W .Задача о рюкзаке (knapsack problem) заключается в нахождениитакого множества предметов I ⊆ [1..n], что

∑︀i∈I wi ≤ W и∑︀

i∈I pi максимально.НУО, maxi∈[1..n] wi ≤ W .

ФактЗадача о рюкзаке является NP-трудной.

Одна из знаменитых 21-й NP-полной задачи Карпа.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 19 / 26

Page 114: 20071007 efficientalgorithms kulikov_lecture03

Задача о рюкзаке

ОпределениеДано n предметов с весами w1, . . . , wn ∈ N и стоимостямиp1, . . . , pn ∈ N, а также общий вес W .Задача о рюкзаке (knapsack problem) заключается в нахождениитакого множества предметов I ⊆ [1..n], что

∑︀i∈I wi ≤ W и∑︀

i∈I pi максимально.НУО, maxi∈[1..n] wi ≤ W .

ФактЗадача о рюкзаке является NP-трудной.Одна из знаменитых 21-й NP-полной задачи Карпа.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 19 / 26

Page 115: 20071007 efficientalgorithms kulikov_lecture03

Точный псевдополиномиальный алгоритм

АлгоритмPsuedopoly-Knapsack({wi}, {pi}, W )

S :=∑︀

i∈[1..n] pi

P := maxi∈[1..n] pi

через w(k , p) обозначим минимальный объем, необходимый длятого, чтобы уложить предметы с номерами, не превосходящимиk ∈ [1..n], общей стоимостью не менее p ≤ Sв цикле по k от 1 до n вычисляем w(k , p) для каждого p от 1 доS

I w(0, 0) = 0; w(0, p) = ∞, p > 0I w(k + 1, p) = min{w(k, p), w(k, p − pk+1) + wk+1}

return максимальное p, для которого w(n, p) ≤ W

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 20 / 26

Page 116: 20071007 efficientalgorithms kulikov_lecture03

Точный псевдополиномиальный алгоритм

АлгоритмPsuedopoly-Knapsack({wi}, {pi}, W )

S :=∑︀

i∈[1..n] pi

P := maxi∈[1..n] pi

через w(k , p) обозначим минимальный объем, необходимый длятого, чтобы уложить предметы с номерами, не превосходящимиk ∈ [1..n], общей стоимостью не менее p ≤ Sв цикле по k от 1 до n вычисляем w(k , p) для каждого p от 1 доS

I w(0, 0) = 0; w(0, p) = ∞, p > 0I w(k + 1, p) = min{w(k, p), w(k, p − pk+1) + wk+1}

return максимальное p, для которого w(n, p) ≤ W

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 20 / 26

Page 117: 20071007 efficientalgorithms kulikov_lecture03

Точный псевдополиномиальный алгоритм

АлгоритмPsuedopoly-Knapsack({wi}, {pi}, W )

S :=∑︀

i∈[1..n] pi

P := maxi∈[1..n] pi

через w(k , p) обозначим минимальный объем, необходимый длятого, чтобы уложить предметы с номерами, не превосходящимиk ∈ [1..n], общей стоимостью не менее p ≤ Sв цикле по k от 1 до n вычисляем w(k , p) для каждого p от 1 доS

I w(0, 0) = 0; w(0, p) = ∞, p > 0I w(k + 1, p) = min{w(k, p), w(k, p − pk+1) + wk+1}

return максимальное p, для которого w(n, p) ≤ W

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 20 / 26

Page 118: 20071007 efficientalgorithms kulikov_lecture03

Точный псевдополиномиальный алгоритм

АлгоритмPsuedopoly-Knapsack({wi}, {pi}, W )

S :=∑︀

i∈[1..n] pi

P := maxi∈[1..n] pi

через w(k , p) обозначим минимальный объем, необходимый длятого, чтобы уложить предметы с номерами, не превосходящимиk ∈ [1..n], общей стоимостью не менее p ≤ S

в цикле по k от 1 до n вычисляем w(k , p) для каждого p от 1 доS

I w(0, 0) = 0; w(0, p) = ∞, p > 0I w(k + 1, p) = min{w(k, p), w(k, p − pk+1) + wk+1}

return максимальное p, для которого w(n, p) ≤ W

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 20 / 26

Page 119: 20071007 efficientalgorithms kulikov_lecture03

Точный псевдополиномиальный алгоритм

АлгоритмPsuedopoly-Knapsack({wi}, {pi}, W )

S :=∑︀

i∈[1..n] pi

P := maxi∈[1..n] pi

через w(k , p) обозначим минимальный объем, необходимый длятого, чтобы уложить предметы с номерами, не превосходящимиk ∈ [1..n], общей стоимостью не менее p ≤ Sв цикле по k от 1 до n вычисляем w(k , p) для каждого p от 1 доS

I w(0, 0) = 0; w(0, p) = ∞, p > 0I w(k + 1, p) = min{w(k, p), w(k, p − pk+1) + wk+1}

return максимальное p, для которого w(n, p) ≤ W

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 20 / 26

Page 120: 20071007 efficientalgorithms kulikov_lecture03

Точный псевдополиномиальный алгоритм

АлгоритмPsuedopoly-Knapsack({wi}, {pi}, W )

S :=∑︀

i∈[1..n] pi

P := maxi∈[1..n] pi

через w(k , p) обозначим минимальный объем, необходимый длятого, чтобы уложить предметы с номерами, не превосходящимиk ∈ [1..n], общей стоимостью не менее p ≤ Sв цикле по k от 1 до n вычисляем w(k , p) для каждого p от 1 доS

I w(0, 0) = 0; w(0, p) = ∞, p > 0

I w(k + 1, p) = min{w(k, p), w(k, p − pk+1) + wk+1}return максимальное p, для которого w(n, p) ≤ W

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 20 / 26

Page 121: 20071007 efficientalgorithms kulikov_lecture03

Точный псевдополиномиальный алгоритм

АлгоритмPsuedopoly-Knapsack({wi}, {pi}, W )

S :=∑︀

i∈[1..n] pi

P := maxi∈[1..n] pi

через w(k , p) обозначим минимальный объем, необходимый длятого, чтобы уложить предметы с номерами, не превосходящимиk ∈ [1..n], общей стоимостью не менее p ≤ Sв цикле по k от 1 до n вычисляем w(k , p) для каждого p от 1 доS

I w(0, 0) = 0; w(0, p) = ∞, p > 0I w(k + 1, p) = min{w(k, p), w(k, p − pk+1) + wk+1}

return максимальное p, для которого w(n, p) ≤ W

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 20 / 26

Page 122: 20071007 efficientalgorithms kulikov_lecture03

Точный псевдополиномиальный алгоритм

АлгоритмPsuedopoly-Knapsack({wi}, {pi}, W )

S :=∑︀

i∈[1..n] pi

P := maxi∈[1..n] pi

через w(k , p) обозначим минимальный объем, необходимый длятого, чтобы уложить предметы с номерами, не превосходящимиk ∈ [1..n], общей стоимостью не менее p ≤ Sв цикле по k от 1 до n вычисляем w(k , p) для каждого p от 1 доS

I w(0, 0) = 0; w(0, p) = ∞, p > 0I w(k + 1, p) = min{w(k, p), w(k, p − pk+1) + wk+1}

return максимальное p, для которого w(n, p) ≤ W

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 20 / 26

Page 123: 20071007 efficientalgorithms kulikov_lecture03

Анализ времени работы

Ясно, что алгоритм работает не более, чем nS , то есть не болееn2P .Значит, мы могли бы решить задачу за полиномиальное время,если бы pi были достаточно маленькими.Идея: выберем достаточно большое число и разделим на него всестоимости. Оптимальное решение не перестанет бытьоптимальным, а время работы алгоритма уменьшится.В чем же тогда подвох?Стоимости могут перестать быть целыми после деления.Округлим их и будем надеяться, что потеряли мы от этого неочень много.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 21 / 26

Page 124: 20071007 efficientalgorithms kulikov_lecture03

Анализ времени работы

Ясно, что алгоритм работает не более, чем nS , то есть не болееn2P .

Значит, мы могли бы решить задачу за полиномиальное время,если бы pi были достаточно маленькими.Идея: выберем достаточно большое число и разделим на него всестоимости. Оптимальное решение не перестанет бытьоптимальным, а время работы алгоритма уменьшится.В чем же тогда подвох?Стоимости могут перестать быть целыми после деления.Округлим их и будем надеяться, что потеряли мы от этого неочень много.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 21 / 26

Page 125: 20071007 efficientalgorithms kulikov_lecture03

Анализ времени работы

Ясно, что алгоритм работает не более, чем nS , то есть не болееn2P .Значит, мы могли бы решить задачу за полиномиальное время,если бы pi были достаточно маленькими.

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

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 21 / 26

Page 126: 20071007 efficientalgorithms kulikov_lecture03

Анализ времени работы

Ясно, что алгоритм работает не более, чем nS , то есть не болееn2P .Значит, мы могли бы решить задачу за полиномиальное время,если бы pi были достаточно маленькими.Идея: выберем достаточно большое число и разделим на него всестоимости. Оптимальное решение не перестанет бытьоптимальным, а время работы алгоритма уменьшится.

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

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 21 / 26

Page 127: 20071007 efficientalgorithms kulikov_lecture03

Анализ времени работы

Ясно, что алгоритм работает не более, чем nS , то есть не болееn2P .Значит, мы могли бы решить задачу за полиномиальное время,если бы pi были достаточно маленькими.Идея: выберем достаточно большое число и разделим на него всестоимости. Оптимальное решение не перестанет бытьоптимальным, а время работы алгоритма уменьшится.В чем же тогда подвох?

Стоимости могут перестать быть целыми после деления.Округлим их и будем надеяться, что потеряли мы от этого неочень много.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 21 / 26

Page 128: 20071007 efficientalgorithms kulikov_lecture03

Анализ времени работы

Ясно, что алгоритм работает не более, чем nS , то есть не болееn2P .Значит, мы могли бы решить задачу за полиномиальное время,если бы pi были достаточно маленькими.Идея: выберем достаточно большое число и разделим на него всестоимости. Оптимальное решение не перестанет бытьоптимальным, а время работы алгоритма уменьшится.В чем же тогда подвох?Стоимости могут перестать быть целыми после деления.

Округлим их и будем надеяться, что потеряли мы от этого неочень много.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 21 / 26

Page 129: 20071007 efficientalgorithms kulikov_lecture03

Анализ времени работы

Ясно, что алгоритм работает не более, чем nS , то есть не болееn2P .Значит, мы могли бы решить задачу за полиномиальное время,если бы pi были достаточно маленькими.Идея: выберем достаточно большое число и разделим на него всестоимости. Оптимальное решение не перестанет бытьоптимальным, а время работы алгоритма уменьшится.В чем же тогда подвох?Стоимости могут перестать быть целыми после деления.Округлим их и будем надеяться, что потеряли мы от этого неочень много.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 21 / 26

Page 130: 20071007 efficientalgorithms kulikov_lecture03

Полностью полиномиальная приближенная схема

итак, пусть задан 𝜖, определяющий, с какой точностью мы хотимнайти ответпусть K𝜖 = P

(1+1/𝜖)n

поделим все pi на K𝜖 и округлим: p′i = ⌈pi/K𝜖⌉запустим Psuedopoly-Knapsack на полученном наборестоимостейвремя работы алгорита не превосходит n2 max p′i ≤ n3P(1 + 1/𝜖)/Pосталось доказать, что полученный алгоритм дает достаточнохорошее приближение

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 22 / 26

Page 131: 20071007 efficientalgorithms kulikov_lecture03

Полностью полиномиальная приближенная схема

итак, пусть задан 𝜖, определяющий, с какой точностью мы хотимнайти ответ

пусть K𝜖 = P(1+1/𝜖)n

поделим все pi на K𝜖 и округлим: p′i = ⌈pi/K𝜖⌉запустим Psuedopoly-Knapsack на полученном наборестоимостейвремя работы алгорита не превосходит n2 max p′i ≤ n3P(1 + 1/𝜖)/Pосталось доказать, что полученный алгоритм дает достаточнохорошее приближение

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 22 / 26

Page 132: 20071007 efficientalgorithms kulikov_lecture03

Полностью полиномиальная приближенная схема

итак, пусть задан 𝜖, определяющий, с какой точностью мы хотимнайти ответпусть K𝜖 = P

(1+1/𝜖)n

поделим все pi на K𝜖 и округлим: p′i = ⌈pi/K𝜖⌉запустим Psuedopoly-Knapsack на полученном наборестоимостейвремя работы алгорита не превосходит n2 max p′i ≤ n3P(1 + 1/𝜖)/Pосталось доказать, что полученный алгоритм дает достаточнохорошее приближение

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 22 / 26

Page 133: 20071007 efficientalgorithms kulikov_lecture03

Полностью полиномиальная приближенная схема

итак, пусть задан 𝜖, определяющий, с какой точностью мы хотимнайти ответпусть K𝜖 = P

(1+1/𝜖)n

поделим все pi на K𝜖 и округлим: p′i = ⌈pi/K𝜖⌉

запустим Psuedopoly-Knapsack на полученном наборестоимостейвремя работы алгорита не превосходит n2 max p′i ≤ n3P(1 + 1/𝜖)/Pосталось доказать, что полученный алгоритм дает достаточнохорошее приближение

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 22 / 26

Page 134: 20071007 efficientalgorithms kulikov_lecture03

Полностью полиномиальная приближенная схема

итак, пусть задан 𝜖, определяющий, с какой точностью мы хотимнайти ответпусть K𝜖 = P

(1+1/𝜖)n

поделим все pi на K𝜖 и округлим: p′i = ⌈pi/K𝜖⌉запустим Psuedopoly-Knapsack на полученном наборестоимостей

время работы алгорита не превосходит n2 max p′i ≤ n3P(1 + 1/𝜖)/Pосталось доказать, что полученный алгоритм дает достаточнохорошее приближение

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 22 / 26

Page 135: 20071007 efficientalgorithms kulikov_lecture03

Полностью полиномиальная приближенная схема

итак, пусть задан 𝜖, определяющий, с какой точностью мы хотимнайти ответпусть K𝜖 = P

(1+1/𝜖)n

поделим все pi на K𝜖 и округлим: p′i = ⌈pi/K𝜖⌉запустим Psuedopoly-Knapsack на полученном наборестоимостейвремя работы алгорита не превосходит n2 max p′i ≤ n3P(1 + 1/𝜖)/P

осталось доказать, что полученный алгоритм дает достаточнохорошее приближение

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 22 / 26

Page 136: 20071007 efficientalgorithms kulikov_lecture03

Полностью полиномиальная приближенная схема

итак, пусть задан 𝜖, определяющий, с какой точностью мы хотимнайти ответпусть K𝜖 = P

(1+1/𝜖)n

поделим все pi на K𝜖 и округлим: p′i = ⌈pi/K𝜖⌉запустим Psuedopoly-Knapsack на полученном наборестоимостейвремя работы алгорита не превосходит n2 max p′i ≤ n3P(1 + 1/𝜖)/Pосталось доказать, что полученный алгоритм дает достаточнохорошее приближение

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 22 / 26

Page 137: 20071007 efficientalgorithms kulikov_lecture03

Оценка приближения

пусть A𝜖 — общая стоимость набора предметов, который вернулалгоритмзаметим, что A𝜖 ≥ Aopt − K𝜖n: псевдополиномиальный алгоритмнаходит точное решение, поэтому отклонение могло появитьсятолько при округлении; при округлении могло потеряться не более1 на каждом предмете, эта потеря домножается на K𝜖 приобратном переходе от p′i к pi

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 23 / 26

Page 138: 20071007 efficientalgorithms kulikov_lecture03

Оценка приближения

пусть A𝜖 — общая стоимость набора предметов, который вернулалгоритм

заметим, что A𝜖 ≥ Aopt − K𝜖n: псевдополиномиальный алгоритмнаходит точное решение, поэтому отклонение могло появитьсятолько при округлении; при округлении могло потеряться не более1 на каждом предмете, эта потеря домножается на K𝜖 приобратном переходе от p′i к pi

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 23 / 26

Page 139: 20071007 efficientalgorithms kulikov_lecture03

Оценка приближения

пусть A𝜖 — общая стоимость набора предметов, который вернулалгоритмзаметим, что A𝜖 ≥ Aopt − K𝜖n: псевдополиномиальный алгоритмнаходит точное решение, поэтому отклонение могло появитьсятолько при округлении; при округлении могло потеряться не более1 на каждом предмете, эта потеря домножается на K𝜖 приобратном переходе от p′i к pi

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 23 / 26

Page 140: 20071007 efficientalgorithms kulikov_lecture03

Оценка приближения (продолжение)

Aopt ≥ P , так как в рюкзак можно просто засунуть самый дорогойпредметтогда

A𝜖

Aopt≥ Aopt − K𝜖

Aopt=

1− PnAoptn(1 + 1/𝜖)

≥ 1− 11 + 1/𝜖

=1

𝜖 + 1

следовательно, A𝜖 ≥ (1− 𝜖)Aopt

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 24 / 26

Page 141: 20071007 efficientalgorithms kulikov_lecture03

Оценка приближения (продолжение)

Aopt ≥ P , так как в рюкзак можно просто засунуть самый дорогойпредмет

тогда

A𝜖

Aopt≥ Aopt − K𝜖

Aopt=

1− PnAoptn(1 + 1/𝜖)

≥ 1− 11 + 1/𝜖

=1

𝜖 + 1

следовательно, A𝜖 ≥ (1− 𝜖)Aopt

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 24 / 26

Page 142: 20071007 efficientalgorithms kulikov_lecture03

Оценка приближения (продолжение)

Aopt ≥ P , так как в рюкзак можно просто засунуть самый дорогойпредметтогда

A𝜖

Aopt≥ Aopt − K𝜖

Aopt=

1− PnAoptn(1 + 1/𝜖)

≥ 1− 11 + 1/𝜖

=1

𝜖 + 1

следовательно, A𝜖 ≥ (1− 𝜖)Aopt

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 24 / 26

Page 143: 20071007 efficientalgorithms kulikov_lecture03

Оценка приближения (продолжение)

Aopt ≥ P , так как в рюкзак можно просто засунуть самый дорогойпредметтогда

A𝜖

Aopt≥ Aopt − K𝜖

Aopt=

1− PnAoptn(1 + 1/𝜖)

≥ 1− 11 + 1/𝜖

=1

𝜖 + 1

следовательно, A𝜖 ≥ (1− 𝜖)Aopt

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 24 / 26

Page 144: 20071007 efficientalgorithms kulikov_lecture03

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

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

3/2-приближенный алгоритм для задачи о коммивояжере вметрическом пространстве.Полностью полиномиальную приближенную схему для задачи орюкзаке.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 25 / 26

Page 145: 20071007 efficientalgorithms kulikov_lecture03

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

Что мы узнали за сегодня?3/2-приближенный алгоритм для задачи о коммивояжере вметрическом пространстве.

Полностью полиномиальную приближенную схему для задачи орюкзаке.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 25 / 26

Page 146: 20071007 efficientalgorithms kulikov_lecture03

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

Что мы узнали за сегодня?3/2-приближенный алгоритм для задачи о коммивояжере вметрическом пространстве.Полностью полиномиальную приближенную схему для задачи орюкзаке.

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 25 / 26

Page 147: 20071007 efficientalgorithms kulikov_lecture03

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

А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 26 / 26