20071007 efficientalgorithms kulikov_lecture03
-
Upload
computer-science-club -
Category
Documents
-
view
162 -
download
1
Transcript of 20071007 efficientalgorithms kulikov_lecture03
![Page 1: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/1.jpg)
с/к “Эффективные алгоритмы”Лекция 3: Приближенные алгоритмы
А. Куликов
Computer Science клуб при ПОМИhttp://logic.pdmi.ras.ru/∼infclub/
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 1 / 26
![Page 2: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/2.jpg)
План лекции
1 Задача о коммивояжере
2 Задача о рюкзаке
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 2 / 26
![Page 3: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/3.jpg)
План лекции
1 Задача о коммивояжере
2 Задача о рюкзаке
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 2 / 26
![Page 4: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/4.jpg)
Приближенный алгоритм
Определение
Приближенный алгоритм 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/5.jpg)
Приближенный алгоритм
ОпределениеПриближенный алгоритм 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/6.jpg)
Приближенный алгоритм
ОпределениеПриближенный алгоритм 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/7.jpg)
Приближенный алгоритм
ОпределениеПриближенный алгоритм 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/8.jpg)
Приближенный алгоритм
ОпределениеПриближенный алгоритм 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/9.jpg)
Приближенный алгоритм
ОпределениеПриближенный алгоритм 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/10.jpg)
Полиномиальная приближенная схема
Определение
Пусть дана максимизационная задача Π.Π имеет полиномиальную приближенную схему (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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/11.jpg)
Полиномиальная приближенная схема
ОпределениеПусть дана максимизационная задача Π.
Π имеет полиномиальную приближенную схему (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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/12.jpg)
Полиномиальная приближенная схема
ОпределениеПусть дана максимизационная задача Π.Π имеет полиномиальную приближенную схему (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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/13.jpg)
Полиномиальная приближенная схема
ОпределениеПусть дана максимизационная задача Π.Π имеет полиномиальную приближенную схему (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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/14.jpg)
Полиномиальная приближенная схема
ОпределениеПусть дана максимизационная задача Π.Π имеет полиномиальную приближенную схему (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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/15.jpg)
Полиномиальная приближенная схема
ОпределениеПусть дана максимизационная задача Π.Π имеет полиномиальную приближенную схему (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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/16.jpg)
Полиномиальная приближенная схема
ОпределениеПусть дана максимизационная задача Π.Π имеет полиномиальную приближенную схему (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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/17.jpg)
План лекции
1 Задача о коммивояжере
2 Задача о рюкзаке
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 5 / 26
![Page 18: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/18.jpg)
Задача о коммивояжере
Определение
Дан полный неориентированный граф 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/19.jpg)
Задача о коммивояжере
ОпределениеДан полный неориентированный граф 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/20.jpg)
Задача о коммивояжере
ОпределениеДан полный неориентированный граф 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/21.jpg)
Задача о коммивояжере
ОпределениеДан полный неориентированный граф 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/22.jpg)
NP-трудность
Задача о коммивояжере является NP-трудной.Тривиальный алгоритм перебирает все возможные пути за времяn!.Наилучший известный на данный момент алгоритм основан надинамическом программировании и имеет время работы (а такжепамять) 2n.Задача о коммивояжере в метрическом пространстве тожеявляется NP-трудной.
I допустим, мы умеем решать эту задачу за полиномиальное времяI возьмем произвольный граф и присвоим всем его ребрам вес 1I между любыми двумя не соединенными ребром вершинами
добавим ребро веса 2I тогда построение минимального гамильтонова цикла в полученном
графе эквивалентно ответу на вопрос, существует ли в исходномграфе гамильтонов цикл
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 7 / 26
![Page 23: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/23.jpg)
NP-трудность
Задача о коммивояжере является NP-трудной.
Тривиальный алгоритм перебирает все возможные пути за времяn!.Наилучший известный на данный момент алгоритм основан надинамическом программировании и имеет время работы (а такжепамять) 2n.Задача о коммивояжере в метрическом пространстве тожеявляется NP-трудной.
I допустим, мы умеем решать эту задачу за полиномиальное времяI возьмем произвольный граф и присвоим всем его ребрам вес 1I между любыми двумя не соединенными ребром вершинами
добавим ребро веса 2I тогда построение минимального гамильтонова цикла в полученном
графе эквивалентно ответу на вопрос, существует ли в исходномграфе гамильтонов цикл
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 7 / 26
![Page 24: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/24.jpg)
NP-трудность
Задача о коммивояжере является NP-трудной.Тривиальный алгоритм перебирает все возможные пути за времяn!.
Наилучший известный на данный момент алгоритм основан надинамическом программировании и имеет время работы (а такжепамять) 2n.Задача о коммивояжере в метрическом пространстве тожеявляется NP-трудной.
I допустим, мы умеем решать эту задачу за полиномиальное времяI возьмем произвольный граф и присвоим всем его ребрам вес 1I между любыми двумя не соединенными ребром вершинами
добавим ребро веса 2I тогда построение минимального гамильтонова цикла в полученном
графе эквивалентно ответу на вопрос, существует ли в исходномграфе гамильтонов цикл
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 7 / 26
![Page 25: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/25.jpg)
NP-трудность
Задача о коммивояжере является NP-трудной.Тривиальный алгоритм перебирает все возможные пути за времяn!.Наилучший известный на данный момент алгоритм основан надинамическом программировании и имеет время работы (а такжепамять) 2n.
Задача о коммивояжере в метрическом пространстве тожеявляется NP-трудной.
I допустим, мы умеем решать эту задачу за полиномиальное времяI возьмем произвольный граф и присвоим всем его ребрам вес 1I между любыми двумя не соединенными ребром вершинами
добавим ребро веса 2I тогда построение минимального гамильтонова цикла в полученном
графе эквивалентно ответу на вопрос, существует ли в исходномграфе гамильтонов цикл
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 7 / 26
![Page 26: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/26.jpg)
NP-трудность
Задача о коммивояжере является NP-трудной.Тривиальный алгоритм перебирает все возможные пути за времяn!.Наилучший известный на данный момент алгоритм основан надинамическом программировании и имеет время работы (а такжепамять) 2n.Задача о коммивояжере в метрическом пространстве тожеявляется NP-трудной.
I допустим, мы умеем решать эту задачу за полиномиальное времяI возьмем произвольный граф и присвоим всем его ребрам вес 1I между любыми двумя не соединенными ребром вершинами
добавим ребро веса 2I тогда построение минимального гамильтонова цикла в полученном
графе эквивалентно ответу на вопрос, существует ли в исходномграфе гамильтонов цикл
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 7 / 26
![Page 27: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/27.jpg)
NP-трудность
Задача о коммивояжере является NP-трудной.Тривиальный алгоритм перебирает все возможные пути за времяn!.Наилучший известный на данный момент алгоритм основан надинамическом программировании и имеет время работы (а такжепамять) 2n.Задача о коммивояжере в метрическом пространстве тожеявляется NP-трудной.
I допустим, мы умеем решать эту задачу за полиномиальное время
I возьмем произвольный граф и присвоим всем его ребрам вес 1I между любыми двумя не соединенными ребром вершинами
добавим ребро веса 2I тогда построение минимального гамильтонова цикла в полученном
графе эквивалентно ответу на вопрос, существует ли в исходномграфе гамильтонов цикл
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 7 / 26
![Page 28: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/28.jpg)
NP-трудность
Задача о коммивояжере является NP-трудной.Тривиальный алгоритм перебирает все возможные пути за времяn!.Наилучший известный на данный момент алгоритм основан надинамическом программировании и имеет время работы (а такжепамять) 2n.Задача о коммивояжере в метрическом пространстве тожеявляется NP-трудной.
I допустим, мы умеем решать эту задачу за полиномиальное времяI возьмем произвольный граф и присвоим всем его ребрам вес 1
I между любыми двумя не соединенными ребром вершинамидобавим ребро веса 2
I тогда построение минимального гамильтонова цикла в полученномграфе эквивалентно ответу на вопрос, существует ли в исходномграфе гамильтонов цикл
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 7 / 26
![Page 29: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/29.jpg)
NP-трудность
Задача о коммивояжере является NP-трудной.Тривиальный алгоритм перебирает все возможные пути за времяn!.Наилучший известный на данный момент алгоритм основан надинамическом программировании и имеет время работы (а такжепамять) 2n.Задача о коммивояжере в метрическом пространстве тожеявляется NP-трудной.
I допустим, мы умеем решать эту задачу за полиномиальное времяI возьмем произвольный граф и присвоим всем его ребрам вес 1I между любыми двумя не соединенными ребром вершинами
добавим ребро веса 2
I тогда построение минимального гамильтонова цикла в полученномграфе эквивалентно ответу на вопрос, существует ли в исходномграфе гамильтонов цикл
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 7 / 26
![Page 30: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/30.jpg)
NP-трудность
Задача о коммивояжере является NP-трудной.Тривиальный алгоритм перебирает все возможные пути за времяn!.Наилучший известный на данный момент алгоритм основан надинамическом программировании и имеет время работы (а такжепамять) 2n.Задача о коммивояжере в метрическом пространстве тожеявляется NP-трудной.
I допустим, мы умеем решать эту задачу за полиномиальное времяI возьмем произвольный граф и присвоим всем его ребрам вес 1I между любыми двумя не соединенными ребром вершинами
добавим ребро веса 2I тогда построение минимального гамильтонова цикла в полученном
графе эквивалентно ответу на вопрос, существует ли в исходномграфе гамильтонов цикл
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 7 / 26
![Page 31: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/31.jpg)
2-оптимальный алгоритм
АлгоритмApprox-TSP(G )
строим минимальное остовное дерево T графа Gпродублируем каждое ребро дерева T и в полученном графенайдем эйлеров циклвыкинем из полученного цикла все повторения вершин и вернемполученный цикл
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 8 / 26
![Page 32: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/32.jpg)
2-оптимальный алгоритм
АлгоритмApprox-TSP(G )
строим минимальное остовное дерево T графа G
продублируем каждое ребро дерева T и в полученном графенайдем эйлеров циклвыкинем из полученного цикла все повторения вершин и вернемполученный цикл
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 8 / 26
![Page 33: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/33.jpg)
2-оптимальный алгоритм
АлгоритмApprox-TSP(G )
строим минимальное остовное дерево T графа Gпродублируем каждое ребро дерева T и в полученном графенайдем эйлеров цикл
выкинем из полученного цикла все повторения вершин и вернемполученный цикл
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 8 / 26
![Page 34: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/34.jpg)
2-оптимальный алгоритм
АлгоритмApprox-TSP(G )
строим минимальное остовное дерево T графа Gпродублируем каждое ребро дерева T и в полученном графенайдем эйлеров циклвыкинем из полученного цикла все повторения вершин и вернемполученный цикл
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 8 / 26
![Page 35: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/35.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 36: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/36.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа G
продублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 37: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/37.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл
выкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 38: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/38.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл
выкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 39: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/39.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл
выкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 40: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/40.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл
выкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 41: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/41.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл
выкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 42: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/42.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл
выкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 43: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/43.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл
выкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 44: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/44.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл
выкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 45: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/45.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл
выкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 46: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/46.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл
выкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 47: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/47.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл
выкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 48: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/48.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл
выкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 49: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/49.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл
выкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 50: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/50.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл
выкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 51: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/51.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров цикл
выкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 52: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/52.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 53: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/53.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 54: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/54.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 55: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/55.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 56: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/56.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 57: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/57.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 58: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/58.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 59: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/59.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 60: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/60.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 61: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/61.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 62: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/62.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 63: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/63.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 64: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/64.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 65: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/65.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 66: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/66.jpg)
Пример работы алгоритма
АлгоритмApprox-TSP(G )
строим минимальноеостовное дерево Tграфа Gпродублируем каждоеребро дерева T и вполученном графенайдем эйлеров циклвыкинем из полученногоцикла все повторениявершин и вернемполученный цикл
a
b
c
d
e
f g
h
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 9 / 26
![Page 67: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/67.jpg)
Анализ алгоритма
ТеоремаАлгоритм Approx-TSP является 2-приближенным.
Доказательствопусть WT — вес минимального остовного дерева, а Wopt — весоптимального гамильтонова циклаWT ≤ Wopt, поскольку при выкидывании ребра из гамильтонвацикла получается остовное деревокаждое ребро построенного гамильтонова цикла заменяеткакой-то путь эйлерова цикла, длина которого по неравенствутреугольника не менее длины этого ребразначит, длина найденного пути не превосходит 2WT , аследовательно, и 2Wopt
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 10 / 26
![Page 68: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/68.jpg)
Анализ алгоритма
ТеоремаАлгоритм Approx-TSP является 2-приближенным.
Доказательство
пусть WT — вес минимального остовного дерева, а Wopt — весоптимального гамильтонова циклаWT ≤ Wopt, поскольку при выкидывании ребра из гамильтонвацикла получается остовное деревокаждое ребро построенного гамильтонова цикла заменяеткакой-то путь эйлерова цикла, длина которого по неравенствутреугольника не менее длины этого ребразначит, длина найденного пути не превосходит 2WT , аследовательно, и 2Wopt
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 10 / 26
![Page 69: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/69.jpg)
Анализ алгоритма
ТеоремаАлгоритм Approx-TSP является 2-приближенным.
Доказательствопусть WT — вес минимального остовного дерева, а Wopt — весоптимального гамильтонова цикла
WT ≤ Wopt, поскольку при выкидывании ребра из гамильтонвацикла получается остовное деревокаждое ребро построенного гамильтонова цикла заменяеткакой-то путь эйлерова цикла, длина которого по неравенствутреугольника не менее длины этого ребразначит, длина найденного пути не превосходит 2WT , аследовательно, и 2Wopt
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 10 / 26
![Page 70: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/70.jpg)
Анализ алгоритма
ТеоремаАлгоритм Approx-TSP является 2-приближенным.
Доказательствопусть WT — вес минимального остовного дерева, а Wopt — весоптимального гамильтонова циклаWT ≤ Wopt, поскольку при выкидывании ребра из гамильтонвацикла получается остовное дерево
каждое ребро построенного гамильтонова цикла заменяеткакой-то путь эйлерова цикла, длина которого по неравенствутреугольника не менее длины этого ребразначит, длина найденного пути не превосходит 2WT , аследовательно, и 2Wopt
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 10 / 26
![Page 71: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/71.jpg)
Анализ алгоритма
ТеоремаАлгоритм Approx-TSP является 2-приближенным.
Доказательствопусть WT — вес минимального остовного дерева, а Wopt — весоптимального гамильтонова циклаWT ≤ Wopt, поскольку при выкидывании ребра из гамильтонвацикла получается остовное деревокаждое ребро построенного гамильтонова цикла заменяеткакой-то путь эйлерова цикла, длина которого по неравенствутреугольника не менее длины этого ребра
значит, длина найденного пути не превосходит 2WT , аследовательно, и 2Wopt
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 10 / 26
![Page 72: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/72.jpg)
Анализ алгоритма
ТеоремаАлгоритм Approx-TSP является 2-приближенным.
Доказательствопусть WT — вес минимального остовного дерева, а Wopt — весоптимального гамильтонова циклаWT ≤ Wopt, поскольку при выкидывании ребра из гамильтонвацикла получается остовное деревокаждое ребро построенного гамильтонова цикла заменяеткакой-то путь эйлерова цикла, длина которого по неравенствутреугольника не менее длины этого ребразначит, длина найденного пути не превосходит 2WT , аследовательно, и 2Wopt
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 10 / 26
![Page 73: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/73.jpg)
3/2-оптимальный алгоритм
АлгоритмApprox-TSP-Improved(G )
строим минимальное остовное дерево T графа Gнайдем минимальное полное паросочетание всех вершин дерева Tнечетной степенидобавим найденные ребра в дерево T и найдем в полученномграфе эйлеров циклвыкинем из полученного цикла все повторения вершин и вернемполученный цикл
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 11 / 26
![Page 74: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/74.jpg)
3/2-оптимальный алгоритм
АлгоритмApprox-TSP-Improved(G )
строим минимальное остовное дерево T графа G
найдем минимальное полное паросочетание всех вершин дерева Tнечетной степенидобавим найденные ребра в дерево T и найдем в полученномграфе эйлеров циклвыкинем из полученного цикла все повторения вершин и вернемполученный цикл
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 11 / 26
![Page 75: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/75.jpg)
3/2-оптимальный алгоритм
АлгоритмApprox-TSP-Improved(G )
строим минимальное остовное дерево T графа Gнайдем минимальное полное паросочетание всех вершин дерева Tнечетной степени
добавим найденные ребра в дерево T и найдем в полученномграфе эйлеров циклвыкинем из полученного цикла все повторения вершин и вернемполученный цикл
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 11 / 26
![Page 76: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/76.jpg)
3/2-оптимальный алгоритм
АлгоритмApprox-TSP-Improved(G )
строим минимальное остовное дерево T графа Gнайдем минимальное полное паросочетание всех вершин дерева Tнечетной степенидобавим найденные ребра в дерево T и найдем в полученномграфе эйлеров цикл
выкинем из полученного цикла все повторения вершин и вернемполученный цикл
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 11 / 26
![Page 77: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/77.jpg)
3/2-оптимальный алгоритм
АлгоритмApprox-TSP-Improved(G )
строим минимальное остовное дерево T графа Gнайдем минимальное полное паросочетание всех вершин дерева Tнечетной степенидобавим найденные ребра в дерево T и найдем в полученномграфе эйлеров циклвыкинем из полученного цикла все повторения вершин и вернемполученный цикл
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 11 / 26
![Page 78: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/78.jpg)
О чем вы забыли меня спросить?
О чем вы забыли меня спросить?
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 12 / 26
![Page 79: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/79.jpg)
О чем вы забыли меня спросить?
О том, как искать минимальное полное паросочетание в графе.
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 12 / 26
![Page 80: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/80.jpg)
О чем вы забыли меня спросить?
О том, как искать минимальное полное паросочетание в графе.Давайте пока просто поверим в то, что оно находится заполиномиальное время.
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 12 / 26
![Page 81: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/81.jpg)
Анализ алгоритма
ТеоремаАлгоритм 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/82.jpg)
Анализ алгоритма
ТеоремаАлгоритм 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/83.jpg)
Анализ алгоритма
ТеоремаАлгоритм 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/84.jpg)
Анализ алгоритма
ТеоремаАлгоритм 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/85.jpg)
Анализ алгоритма
ТеоремаАлгоритм 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/86.jpg)
Анализ алгоритма
ТеоремаАлгоритм 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/87.jpg)
Доказательство (продолжение)
Доказательство
важно отметить, что нам не нужно строить такой цикл; нам важенлишь факт его существованияразбив вершины только что построенного цикла на четные инечетные, мы получим два паросочетаниявес хотя бы одного из них будет не более Wopt/2значит, и вес минимального паросочетания не превосходитWopt/2
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 14 / 26
![Page 88: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/88.jpg)
Доказательство (продолжение)
Доказательствоважно отметить, что нам не нужно строить такой цикл; нам важенлишь факт его существования
разбив вершины только что построенного цикла на четные инечетные, мы получим два паросочетаниявес хотя бы одного из них будет не более Wopt/2значит, и вес минимального паросочетания не превосходитWopt/2
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 14 / 26
![Page 89: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/89.jpg)
Доказательство (продолжение)
Доказательствоважно отметить, что нам не нужно строить такой цикл; нам важенлишь факт его существованияразбив вершины только что построенного цикла на четные инечетные, мы получим два паросочетания
вес хотя бы одного из них будет не более Wopt/2значит, и вес минимального паросочетания не превосходитWopt/2
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 14 / 26
![Page 90: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/90.jpg)
Доказательство (продолжение)
Доказательствоважно отметить, что нам не нужно строить такой цикл; нам важенлишь факт его существованияразбив вершины только что построенного цикла на четные инечетные, мы получим два паросочетаниявес хотя бы одного из них будет не более Wopt/2
значит, и вес минимального паросочетания не превосходитWopt/2
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 14 / 26
![Page 91: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/91.jpg)
Доказательство (продолжение)
Доказательствоважно отметить, что нам не нужно строить такой цикл; нам важенлишь факт его существованияразбив вершины только что построенного цикла на четные инечетные, мы получим два паросочетаниявес хотя бы одного из них будет не более Wopt/2значит, и вес минимального паросочетания не превосходитWopt/2
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 14 / 26
![Page 92: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/92.jpg)
Известные оценки
Факт
Если P ̸= NP , то не существует 117116 -приближенного алгоритма для
задачи о коммивояжере в метрическом пространстве.3/2 — лучшее известное приближение для задачи окоммивояжере в метрическом пространстве.Для случая, когда все ребра имеют вес 1 или 2, известен5/6-приближенный алгоритм.
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 15 / 26
![Page 93: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/93.jpg)
Известные оценки
ФактЕсли P ̸= NP , то не существует 117
116 -приближенного алгоритма длязадачи о коммивояжере в метрическом пространстве.
3/2 — лучшее известное приближение для задачи окоммивояжере в метрическом пространстве.Для случая, когда все ребра имеют вес 1 или 2, известен5/6-приближенный алгоритм.
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 15 / 26
![Page 94: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/94.jpg)
Известные оценки
ФактЕсли P ̸= NP , то не существует 117
116 -приближенного алгоритма длязадачи о коммивояжере в метрическом пространстве.3/2 — лучшее известное приближение для задачи окоммивояжере в метрическом пространстве.
Для случая, когда все ребра имеют вес 1 или 2, известен5/6-приближенный алгоритм.
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 15 / 26
![Page 95: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/95.jpg)
Известные оценки
ФактЕсли P ̸= NP , то не существует 117
116 -приближенного алгоритма длязадачи о коммивояжере в метрическом пространстве.3/2 — лучшее известное приближение для задачи окоммивояжере в метрическом пространстве.Для случая, когда все ребра имеют вес 1 или 2, известен5/6-приближенный алгоритм.
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 15 / 26
![Page 96: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/96.jpg)
Неприближаемость задачи о коммивояжере
ТеоремаПусть P ̸= NP и 𝛼(n) = c ∈ N. Тогда не существует𝛼(n)-приближенного алгоритма для задачи о коммивояжере.
Доказательствопредположим, что такой алгоритм все-таки существуетвозьмем произвольный граф и присвоим всем его ребрам вес 1между любыми двумя не соединенными ребром вершинамидобавим ребро веса cn + 1заметим теперь, что если в исходном графе существуетгамильтонов цикл, то в новом графе существует гамильтоновцикл веса n
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 16 / 26
![Page 97: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/97.jpg)
Неприближаемость задачи о коммивояжере
ТеоремаПусть P ̸= NP и 𝛼(n) = c ∈ N. Тогда не существует𝛼(n)-приближенного алгоритма для задачи о коммивояжере.
Доказательство
предположим, что такой алгоритм все-таки существуетвозьмем произвольный граф и присвоим всем его ребрам вес 1между любыми двумя не соединенными ребром вершинамидобавим ребро веса cn + 1заметим теперь, что если в исходном графе существуетгамильтонов цикл, то в новом графе существует гамильтоновцикл веса n
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 16 / 26
![Page 98: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/98.jpg)
Неприближаемость задачи о коммивояжере
ТеоремаПусть P ̸= NP и 𝛼(n) = c ∈ N. Тогда не существует𝛼(n)-приближенного алгоритма для задачи о коммивояжере.
Доказательствопредположим, что такой алгоритм все-таки существует
возьмем произвольный граф и присвоим всем его ребрам вес 1между любыми двумя не соединенными ребром вершинамидобавим ребро веса cn + 1заметим теперь, что если в исходном графе существуетгамильтонов цикл, то в новом графе существует гамильтоновцикл веса n
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 16 / 26
![Page 99: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/99.jpg)
Неприближаемость задачи о коммивояжере
ТеоремаПусть P ̸= NP и 𝛼(n) = c ∈ N. Тогда не существует𝛼(n)-приближенного алгоритма для задачи о коммивояжере.
Доказательствопредположим, что такой алгоритм все-таки существуетвозьмем произвольный граф и присвоим всем его ребрам вес 1
между любыми двумя не соединенными ребром вершинамидобавим ребро веса cn + 1заметим теперь, что если в исходном графе существуетгамильтонов цикл, то в новом графе существует гамильтоновцикл веса n
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 16 / 26
![Page 100: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/100.jpg)
Неприближаемость задачи о коммивояжере
ТеоремаПусть P ̸= NP и 𝛼(n) = c ∈ N. Тогда не существует𝛼(n)-приближенного алгоритма для задачи о коммивояжере.
Доказательствопредположим, что такой алгоритм все-таки существуетвозьмем произвольный граф и присвоим всем его ребрам вес 1между любыми двумя не соединенными ребром вершинамидобавим ребро веса cn + 1
заметим теперь, что если в исходном графе существуетгамильтонов цикл, то в новом графе существует гамильтоновцикл веса n
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 16 / 26
![Page 101: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/101.jpg)
Неприближаемость задачи о коммивояжере
ТеоремаПусть P ̸= NP и 𝛼(n) = c ∈ N. Тогда не существует𝛼(n)-приближенного алгоритма для задачи о коммивояжере.
Доказательствопредположим, что такой алгоритм все-таки существуетвозьмем произвольный граф и присвоим всем его ребрам вес 1между любыми двумя не соединенными ребром вершинамидобавим ребро веса cn + 1заметим теперь, что если в исходном графе существуетгамильтонов цикл, то в новом графе существует гамильтоновцикл веса n
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 16 / 26
![Page 102: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/102.jpg)
Доказательство (продолжение)
Доказательство
если же такого цикла в исходном графе нет, то самый дешевыйцикл в новом графе имеет вес хотя бы (nc + 1) + (n − 1) > ncтаким образом, с помощью 𝛼(n)-приближенного алгоритма длязадачи о коммивояжере мы можем понять, стоимостьоптимального цикла в построенном графе превосходит n или нета это позволит нам понять (за полиномиальное время!), есть висходном графе гамильтонов цикл или нетно тогда P = NP
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 17 / 26
![Page 103: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/103.jpg)
Доказательство (продолжение)
Доказательствоесли же такого цикла в исходном графе нет, то самый дешевыйцикл в новом графе имеет вес хотя бы (nc + 1) + (n − 1) > nc
таким образом, с помощью 𝛼(n)-приближенного алгоритма длязадачи о коммивояжере мы можем понять, стоимостьоптимального цикла в построенном графе превосходит n или нета это позволит нам понять (за полиномиальное время!), есть висходном графе гамильтонов цикл или нетно тогда P = NP
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 17 / 26
![Page 104: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/104.jpg)
Доказательство (продолжение)
Доказательствоесли же такого цикла в исходном графе нет, то самый дешевыйцикл в новом графе имеет вес хотя бы (nc + 1) + (n − 1) > ncтаким образом, с помощью 𝛼(n)-приближенного алгоритма длязадачи о коммивояжере мы можем понять, стоимостьоптимального цикла в построенном графе превосходит n или нет
а это позволит нам понять (за полиномиальное время!), есть висходном графе гамильтонов цикл или нетно тогда P = NP
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 17 / 26
![Page 105: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/105.jpg)
Доказательство (продолжение)
Доказательствоесли же такого цикла в исходном графе нет, то самый дешевыйцикл в новом графе имеет вес хотя бы (nc + 1) + (n − 1) > ncтаким образом, с помощью 𝛼(n)-приближенного алгоритма длязадачи о коммивояжере мы можем понять, стоимостьоптимального цикла в построенном графе превосходит n или нета это позволит нам понять (за полиномиальное время!), есть висходном графе гамильтонов цикл или нет
но тогда P = NP
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 17 / 26
![Page 106: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/106.jpg)
Доказательство (продолжение)
Доказательствоесли же такого цикла в исходном графе нет, то самый дешевыйцикл в новом графе имеет вес хотя бы (nc + 1) + (n − 1) > ncтаким образом, с помощью 𝛼(n)-приближенного алгоритма длязадачи о коммивояжере мы можем понять, стоимостьоптимального цикла в построенном графе превосходит n или нета это позволит нам понять (за полиномиальное время!), есть висходном графе гамильтонов цикл или нетно тогда P = NP
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 17 / 26
![Page 107: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/107.jpg)
План лекции
1 Задача о коммивояжере
2 Задача о рюкзаке
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 18 / 26
![Page 108: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/108.jpg)
Задача о рюкзаке
Определение
Дано 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/109.jpg)
Задача о рюкзаке
ОпределениеДано 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/110.jpg)
Задача о рюкзаке
ОпределениеДано 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/111.jpg)
Задача о рюкзаке
ОпределениеДано 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/112.jpg)
Задача о рюкзаке
ОпределениеДано 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/113.jpg)
Задача о рюкзаке
ОпределениеДано 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/114.jpg)
Задача о рюкзаке
ОпределениеДано 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/115.jpg)
Точный псевдополиномиальный алгоритм
Алгоритм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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/116.jpg)
Точный псевдополиномиальный алгоритм
Алгоритм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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/117.jpg)
Точный псевдополиномиальный алгоритм
Алгоритм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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/118.jpg)
Точный псевдополиномиальный алгоритм
Алгоритм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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/119.jpg)
Точный псевдополиномиальный алгоритм
Алгоритм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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/120.jpg)
Точный псевдополиномиальный алгоритм
Алгоритм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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/121.jpg)
Точный псевдополиномиальный алгоритм
Алгоритм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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/122.jpg)
Точный псевдополиномиальный алгоритм
Алгоритм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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/123.jpg)
Анализ времени работы
Ясно, что алгоритм работает не более, чем nS , то есть не болееn2P .Значит, мы могли бы решить задачу за полиномиальное время,если бы pi были достаточно маленькими.Идея: выберем достаточно большое число и разделим на него всестоимости. Оптимальное решение не перестанет бытьоптимальным, а время работы алгоритма уменьшится.В чем же тогда подвох?Стоимости могут перестать быть целыми после деления.Округлим их и будем надеяться, что потеряли мы от этого неочень много.
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 21 / 26
![Page 124: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/124.jpg)
Анализ времени работы
Ясно, что алгоритм работает не более, чем nS , то есть не болееn2P .
Значит, мы могли бы решить задачу за полиномиальное время,если бы pi были достаточно маленькими.Идея: выберем достаточно большое число и разделим на него всестоимости. Оптимальное решение не перестанет бытьоптимальным, а время работы алгоритма уменьшится.В чем же тогда подвох?Стоимости могут перестать быть целыми после деления.Округлим их и будем надеяться, что потеряли мы от этого неочень много.
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 21 / 26
![Page 125: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/125.jpg)
Анализ времени работы
Ясно, что алгоритм работает не более, чем nS , то есть не болееn2P .Значит, мы могли бы решить задачу за полиномиальное время,если бы pi были достаточно маленькими.
Идея: выберем достаточно большое число и разделим на него всестоимости. Оптимальное решение не перестанет бытьоптимальным, а время работы алгоритма уменьшится.В чем же тогда подвох?Стоимости могут перестать быть целыми после деления.Округлим их и будем надеяться, что потеряли мы от этого неочень много.
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 21 / 26
![Page 126: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/126.jpg)
Анализ времени работы
Ясно, что алгоритм работает не более, чем nS , то есть не болееn2P .Значит, мы могли бы решить задачу за полиномиальное время,если бы pi были достаточно маленькими.Идея: выберем достаточно большое число и разделим на него всестоимости. Оптимальное решение не перестанет бытьоптимальным, а время работы алгоритма уменьшится.
В чем же тогда подвох?Стоимости могут перестать быть целыми после деления.Округлим их и будем надеяться, что потеряли мы от этого неочень много.
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 21 / 26
![Page 127: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/127.jpg)
Анализ времени работы
Ясно, что алгоритм работает не более, чем nS , то есть не болееn2P .Значит, мы могли бы решить задачу за полиномиальное время,если бы pi были достаточно маленькими.Идея: выберем достаточно большое число и разделим на него всестоимости. Оптимальное решение не перестанет бытьоптимальным, а время работы алгоритма уменьшится.В чем же тогда подвох?
Стоимости могут перестать быть целыми после деления.Округлим их и будем надеяться, что потеряли мы от этого неочень много.
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 21 / 26
![Page 128: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/128.jpg)
Анализ времени работы
Ясно, что алгоритм работает не более, чем nS , то есть не болееn2P .Значит, мы могли бы решить задачу за полиномиальное время,если бы pi были достаточно маленькими.Идея: выберем достаточно большое число и разделим на него всестоимости. Оптимальное решение не перестанет бытьоптимальным, а время работы алгоритма уменьшится.В чем же тогда подвох?Стоимости могут перестать быть целыми после деления.
Округлим их и будем надеяться, что потеряли мы от этого неочень много.
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 21 / 26
![Page 129: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/129.jpg)
Анализ времени работы
Ясно, что алгоритм работает не более, чем nS , то есть не болееn2P .Значит, мы могли бы решить задачу за полиномиальное время,если бы pi были достаточно маленькими.Идея: выберем достаточно большое число и разделим на него всестоимости. Оптимальное решение не перестанет бытьоптимальным, а время работы алгоритма уменьшится.В чем же тогда подвох?Стоимости могут перестать быть целыми после деления.Округлим их и будем надеяться, что потеряли мы от этого неочень много.
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 21 / 26
![Page 130: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/130.jpg)
Полностью полиномиальная приближенная схема
итак, пусть задан 𝜖, определяющий, с какой точностью мы хотимнайти ответпусть 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/131.jpg)
Полностью полиномиальная приближенная схема
итак, пусть задан 𝜖, определяющий, с какой точностью мы хотимнайти ответ
пусть 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/132.jpg)
Полностью полиномиальная приближенная схема
итак, пусть задан 𝜖, определяющий, с какой точностью мы хотимнайти ответпусть 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/133.jpg)
Полностью полиномиальная приближенная схема
итак, пусть задан 𝜖, определяющий, с какой точностью мы хотимнайти ответпусть 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/134.jpg)
Полностью полиномиальная приближенная схема
итак, пусть задан 𝜖, определяющий, с какой точностью мы хотимнайти ответпусть 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/135.jpg)
Полностью полиномиальная приближенная схема
итак, пусть задан 𝜖, определяющий, с какой точностью мы хотимнайти ответпусть 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/136.jpg)
Полностью полиномиальная приближенная схема
итак, пусть задан 𝜖, определяющий, с какой точностью мы хотимнайти ответпусть 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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/137.jpg)
Оценка приближения
пусть A𝜖 — общая стоимость набора предметов, который вернулалгоритмзаметим, что A𝜖 ≥ Aopt − K𝜖n: псевдополиномиальный алгоритмнаходит точное решение, поэтому отклонение могло появитьсятолько при округлении; при округлении могло потеряться не более1 на каждом предмете, эта потеря домножается на K𝜖 приобратном переходе от p′i к pi
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 23 / 26
![Page 138: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/138.jpg)
Оценка приближения
пусть A𝜖 — общая стоимость набора предметов, который вернулалгоритм
заметим, что A𝜖 ≥ Aopt − K𝜖n: псевдополиномиальный алгоритмнаходит точное решение, поэтому отклонение могло появитьсятолько при округлении; при округлении могло потеряться не более1 на каждом предмете, эта потеря домножается на K𝜖 приобратном переходе от p′i к pi
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 23 / 26
![Page 139: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/139.jpg)
Оценка приближения
пусть A𝜖 — общая стоимость набора предметов, который вернулалгоритмзаметим, что A𝜖 ≥ Aopt − K𝜖n: псевдополиномиальный алгоритмнаходит точное решение, поэтому отклонение могло появитьсятолько при округлении; при округлении могло потеряться не более1 на каждом предмете, эта потеря домножается на K𝜖 приобратном переходе от p′i к pi
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 23 / 26
![Page 140: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/140.jpg)
Оценка приближения (продолжение)
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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/141.jpg)
Оценка приближения (продолжение)
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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/142.jpg)
Оценка приближения (продолжение)
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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/143.jpg)
Оценка приближения (продолжение)
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](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/144.jpg)
Что мы узнали за сегодня?
Что мы узнали за сегодня?
3/2-приближенный алгоритм для задачи о коммивояжере вметрическом пространстве.Полностью полиномиальную приближенную схему для задачи орюкзаке.
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 25 / 26
![Page 145: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/145.jpg)
Что мы узнали за сегодня?
Что мы узнали за сегодня?3/2-приближенный алгоритм для задачи о коммивояжере вметрическом пространстве.
Полностью полиномиальную приближенную схему для задачи орюкзаке.
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 25 / 26
![Page 146: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/146.jpg)
Что мы узнали за сегодня?
Что мы узнали за сегодня?3/2-приближенный алгоритм для задачи о коммивояжере вметрическом пространстве.Полностью полиномиальную приближенную схему для задачи орюкзаке.
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 25 / 26
![Page 147: 20071007 efficientalgorithms kulikov_lecture03](https://reader033.fdocuments.us/reader033/viewer/2022060205/55a0ffc81a28ab0d2e8b4731/html5/thumbnails/147.jpg)
Спасибо за внимание!
А. Куликов (CS клуб при ПОМИ) 3. Приближенные алгоритмы 26 / 26