Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)Alexey Paznikov
ЛЕКЦИЯ 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
Факторизационные модели в рекомендательных системахromovpa
Факторизационные модели, модели разложения матриц для коллаборативной фильтрации в рекомендательных системах. В презентации рассматриваются теоретические аспекты и алгоритмы.
С доклада на спецсеминаре "Machine Learning & Information Retrieval" в Школе Анализа Данных Яндекса.
Введение в архитектуры нейронных сетей / HighLoad++ 2016Grigory Sapunov
Slides from HighLoad++ 2016 conference.
Introduction into neural network architectures (Rus)
Презентация для конференции HighLoad++ 2016.
http://www.highload.ru/2016/abstracts/2454.html
Видеозапись доклада:
https://www.youtube.com/watch?v=XY5AczPW7V4
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)Alexey Paznikov
ЛЕКЦИЯ 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
Факторизационные модели в рекомендательных системахromovpa
Факторизационные модели, модели разложения матриц для коллаборативной фильтрации в рекомендательных системах. В презентации рассматриваются теоретические аспекты и алгоритмы.
С доклада на спецсеминаре "Machine Learning & Information Retrieval" в Школе Анализа Данных Яндекса.
Введение в архитектуры нейронных сетей / HighLoad++ 2016Grigory Sapunov
Slides from HighLoad++ 2016 conference.
Introduction into neural network architectures (Rus)
Презентация для конференции HighLoad++ 2016.
http://www.highload.ru/2016/abstracts/2454.html
Видеозапись доклада:
https://www.youtube.com/watch?v=XY5AczPW7V4
Matchmaking multiplace, formazione, incontri domanda offerta, ricerca industr...Paolo Nesi
http://www.apretoscana.org
10.00: Apertura dei lavori del Prof. Paolo Nesi, APRE
Toscana, Università degli Studi di Firenze
– ApreToscana
– Matchmaking Multiplace
– proprio profilo, PAL (Offerta di Base) sul portale APRE
Toscana
• 11.00: Dott.ssa Valentina Maltagliati, esperta di
comunicazione efficace
– ottimizzazione del proprio profilo (Offerta di Base)
– come prepararsi ai singoli match
– come fare una presentazione efficace e utilizzare i 30 minuti a
disposizione per l’ascolto delle esigenze specifiche di ogni
Azienda/laboratorio che si presenta al match
– come produrre rapidamente il materiale per promuovere le
proprie competenze da portare all’evento (biglietti da visita,
slide su iPad, brochure, pagine Facebook, ecc.)
Рассматривается метод отдельных тел (метод А. Ф. Верещагина) для построения уравнений движения систем тел со структурой дерева. Приводится пример программы моделирования движения цепи n тел на языке MATLAB.
ЛЕКЦИЯ 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Многоядерные вычислительные систем с общей памятью
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
1. Алгоритмы для NP-трудных задач
Лекция 6: Приближенные алгоритмы
А. Куликов
Computer Science клуб при ПОМИ
http://logic.pdmi.ras.ru/∼infclub/
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 1 / 28
2. План лекции
1 Задача о коммивояжере
Точный алгоритм для TSP
2-приближенный алгоритм для Metric TSP
3/2-приближенный алгоритм для Metric TSP
Неприближаемость TSP
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 2 / 28
3. План лекции
1 Задача о коммивояжере
Точный алгоритм для TSP
2-приближенный алгоритм для Metric TSP
3/2-приближенный алгоритм для Metric TSP
Неприближаемость TSP
2 Задача о рюкзаке
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 2 / 28
4. Задача о коммивояжере
План лекции
1 Задача о коммивояжере
Точный алгоритм для TSP
2-приближенный алгоритм для Metric TSP
3/2-приближенный алгоритм для Metric TSP
Неприближаемость TSP
2 Задача о рюкзаке
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 3 / 28
5. Задача о коммивояжере
Задача о коммивояжере
Определение
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 4 / 28
6. Задача о коммивояжере
Задача о коммивояжере
Определение
Дан полный неориентированный граф G = (V , E ), каждому ребру
(u, v ) которого приписана некоторая стоимость c(u, v ).
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 4 / 28
7. Задача о коммивояжере
Задача о коммивояжере
Определение
Дан полный неориентированный граф G = (V , E ), каждому ребру
(u, v ) которого приписана некоторая стоимость c(u, v ).
Задача о коммивояжере (travelling salesman problem, TSP)
заключается в нахождении в графе гамильтонова цикла
минимальной стоимости.
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 4 / 28
8. Задача о коммивояжере
Задача о коммивояжере
Определение
Дан полный неориентированный граф 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 .
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 4 / 28
9. Задача о коммивояжере
NP-трудность
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 5 / 28
10. Задача о коммивояжере
NP-трудность
Задача о коммивояжере является NP-трудной.
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 5 / 28
11. Задача о коммивояжере
NP-трудность
Задача о коммивояжере является NP-трудной.
Тривиальный алгоритм перебирает все возможные пути за время
n!.
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 5 / 28
12. Задача о коммивояжере
NP-трудность
Задача о коммивояжере является NP-трудной.
Тривиальный алгоритм перебирает все возможные пути за время
n!.
Наилучший известный на данный момент алгоритм основан на
динамическом программировании и имеет время работы (а также
память) 2n .
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 5 / 28
13. Задача о коммивояжере
NP-трудность
Задача о коммивояжере является NP-трудной.
Тривиальный алгоритм перебирает все возможные пути за время
n!.
Наилучший известный на данный момент алгоритм основан на
динамическом программировании и имеет время работы (а также
память) 2n .
Задача о коммивояжере в метрическом пространстве тоже
является NP-трудной.
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 5 / 28
14. Задача о коммивояжере
NP-трудность
Задача о коммивояжере является NP-трудной.
Тривиальный алгоритм перебирает все возможные пути за время
n!.
Наилучший известный на данный момент алгоритм основан на
динамическом программировании и имеет время работы (а также
память) 2n .
Задача о коммивояжере в метрическом пространстве тоже
является NP-трудной.
допустим, мы умеем решать эту задачу за полиномиальное время
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 5 / 28
15. Задача о коммивояжере
NP-трудность
Задача о коммивояжере является NP-трудной.
Тривиальный алгоритм перебирает все возможные пути за время
n!.
Наилучший известный на данный момент алгоритм основан на
динамическом программировании и имеет время работы (а также
память) 2n .
Задача о коммивояжере в метрическом пространстве тоже
является NP-трудной.
допустим, мы умеем решать эту задачу за полиномиальное время
возьмем произвольный граф и присвоим всем его ребрам вес 1
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 5 / 28
16. Задача о коммивояжере
NP-трудность
Задача о коммивояжере является NP-трудной.
Тривиальный алгоритм перебирает все возможные пути за время
n!.
Наилучший известный на данный момент алгоритм основан на
динамическом программировании и имеет время работы (а также
память) 2n .
Задача о коммивояжере в метрическом пространстве тоже
является NP-трудной.
допустим, мы умеем решать эту задачу за полиномиальное время
возьмем произвольный граф и присвоим всем его ребрам вес 1
между любыми двумя не соединенными ребром вершинами
добавим ребро веса 2
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 5 / 28
17. Задача о коммивояжере
NP-трудность
Задача о коммивояжере является NP-трудной.
Тривиальный алгоритм перебирает все возможные пути за время
n!.
Наилучший известный на данный момент алгоритм основан на
динамическом программировании и имеет время работы (а также
память) 2n .
Задача о коммивояжере в метрическом пространстве тоже
является NP-трудной.
допустим, мы умеем решать эту задачу за полиномиальное время
возьмем произвольный граф и присвоим всем его ребрам вес 1
между любыми двумя не соединенными ребром вершинами
добавим ребро веса 2
тогда построение минимального гамильтонова цикла в полученном
графе эквивалентно ответу на вопрос, существует ли в исходном
графе гамильтонов цикл
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 5 / 28
18. Задача о коммивояжере Точный алгоритм для TSP
План лекции
1 Задача о коммивояжере
Точный алгоритм для TSP
2-приближенный алгоритм для Metric TSP
3/2-приближенный алгоритм для Metric TSP
Неприближаемость TSP
2 Задача о рюкзаке
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 6 / 28
19. Задача о коммивояжере Точный алгоритм для TSP
Задача о коммивояжере
Алгоритм
Dynamic-TSP(G )
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 7 / 28
20. Задача о коммивояжере Точный алгоритм для TSP
Задача о коммивояжере
Алгоритм
Dynamic-TSP(G )
для каждого непустого подмножества S ⊆ {2, . . . , n} и для каждой
вершины i ∈ S через Opt[S, i] будем обозначать длину
кратчайшего маршрута, начнинающегося в вершине 1,
проходящему через все вершины S − {i} и заканчивающегося в
вершине i
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 7 / 28
21. Задача о коммивояжере Точный алгоритм для TSP
Задача о коммивояжере
Алгоритм
Dynamic-TSP(G )
для каждого непустого подмножества S ⊆ {2, . . . , n} и для каждой
вершины i ∈ S через Opt[S, i] будем обозначать длину
кратчайшего маршрута, начнинающегося в вершине 1,
проходящему через все вершины S − {i} и заканчивающегося в
вершине i
последовательно заполнить матрицу:
Opt[S, i] = min{Opt[S − {i}, j] + d (i, j) : j ∈ S − {i}}
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 7 / 28
22. Задача о коммивояжере Точный алгоритм для TSP
Задача о коммивояжере
Алгоритм
Dynamic-TSP(G )
для каждого непустого подмножества S ⊆ {2, . . . , n} и для каждой
вершины i ∈ S через Opt[S, i] будем обозначать длину
кратчайшего маршрута, начнинающегося в вершине 1,
проходящему через все вершины S − {i} и заканчивающегося в
вершине i
последовательно заполнить матрицу:
Opt[S, i] = min{Opt[S − {i}, j] + d (i, j) : j ∈ S − {i}}
вернуть оптимальную стоимость маршрута:
min{Opt[{2, . . . , n}, j] + d (j, 1) : 2 ≤ j ≤ n}
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 7 / 28
23. Задача о коммивояжере Точный алгоритм для TSP
Сложность алгоритма
Лемма
Сложность алгоритма Dynamic-TSP по времени и по памяти есть
poly(n)2n .
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 8 / 28
24. Задача о коммивояжере Точный алгоритм для TSP
Сложность алгоритма
Лемма
Сложность алгоритма Dynamic-TSP по времени и по памяти есть
poly(n)2n .
Факт
Данный теоретический алгоритм был представлен в 1962-м году и до
сих пор является самым быстрым из известных.
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 8 / 28
25. Задача о коммивояжере 2-приближенный алгоритм для Metric TSP
План лекции
1 Задача о коммивояжере
Точный алгоритм для TSP
2-приближенный алгоритм для Metric TSP
3/2-приближенный алгоритм для Metric TSP
Неприближаемость TSP
2 Задача о рюкзаке
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 9 / 28
26. Задача о коммивояжере 2-приближенный алгоритм для Metric TSP
2-оптимальный алгоритм
Алгоритм
Approx-TSP(G )
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 10 / 28
27. Задача о коммивояжере 2-приближенный алгоритм для Metric TSP
2-оптимальный алгоритм
Алгоритм
Approx-TSP(G )
строим минимальное остовное дерево T графа G
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 10 / 28
28. Задача о коммивояжере 2-приближенный алгоритм для Metric TSP
2-оптимальный алгоритм
Алгоритм
Approx-TSP(G )
строим минимальное остовное дерево T графа G
продублируем каждое ребро дерева T и в полученном графе
найдем эйлеров цикл
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 10 / 28
29. Задача о коммивояжере 2-приближенный алгоритм для Metric TSP
2-оптимальный алгоритм
Алгоритм
Approx-TSP(G )
строим минимальное остовное дерево T графа G
продублируем каждое ребро дерева T и в полученном графе
найдем эйлеров цикл
выкинем из полученного цикла все повторения вершин и вернем
полученный цикл
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 10 / 28
30. Задача о коммивояжере 2-приближенный алгоритм для Metric TSP
Пример работы алгоритма
Алгоритм
Approx-TSP(G ) a d
e
b f g
c
h
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 11 / 28
31. Задача о коммивояжере 2-приближенный алгоритм для Metric TSP
Пример работы алгоритма
Алгоритм
Approx-TSP(G ) a d
строим минимальное
остовное дерево T e
графа G g
b f
c
h
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 11 / 28
32. Задача о коммивояжере 2-приближенный алгоритм для Metric TSP
Пример работы алгоритма
Алгоритм
Approx-TSP(G ) a d
строим минимальное
остовное дерево T e
графа G g
b f
продублируем каждое
ребро дерева T и в c
полученном графе
h
найдем эйлеров цикл
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 11 / 28
33. Задача о коммивояжере 2-приближенный алгоритм для Metric TSP
Пример работы алгоритма
Алгоритм
Approx-TSP(G ) a d
строим минимальное
остовное дерево T e
графа G g
b f
продублируем каждое
ребро дерева T и в c
полученном графе
h
найдем эйлеров цикл
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 11 / 28
34. Задача о коммивояжере 2-приближенный алгоритм для Metric TSP
Пример работы алгоритма
Алгоритм
Approx-TSP(G ) a d
строим минимальное
остовное дерево T e
графа G g
b f
продублируем каждое
ребро дерева T и в c
полученном графе
h
найдем эйлеров цикл
выкинем из полученного
цикла все повторения
вершин и вернем
полученный цикл
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 11 / 28
35. Задача о коммивояжере 2-приближенный алгоритм для Metric TSP
Анализ алгоритма
Теорема
Алгоритм Approx-TSP является 2-приближенным.
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 12 / 28
36. Задача о коммивояжере 2-приближенный алгоритм для Metric TSP
Анализ алгоритма
Теорема
Алгоритм Approx-TSP является 2-приближенным.
Доказательство
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 12 / 28
37. Задача о коммивояжере 2-приближенный алгоритм для Metric TSP
Анализ алгоритма
Теорема
Алгоритм Approx-TSP является 2-приближенным.
Доказательство
пусть WT — вес минимального остовного дерева, а Wopt — вес
оптимального гамильтонова цикла
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 12 / 28
38. Задача о коммивояжере 2-приближенный алгоритм для Metric TSP
Анализ алгоритма
Теорема
Алгоритм Approx-TSP является 2-приближенным.
Доказательство
пусть WT — вес минимального остовного дерева, а Wopt — вес
оптимального гамильтонова цикла
WT ≤ Wopt , поскольку при выкидывании ребра из гамильтонва
цикла получается остовное дерево
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 12 / 28
39. Задача о коммивояжере 2-приближенный алгоритм для Metric TSP
Анализ алгоритма
Теорема
Алгоритм Approx-TSP является 2-приближенным.
Доказательство
пусть WT — вес минимального остовного дерева, а Wopt — вес
оптимального гамильтонова цикла
WT ≤ Wopt , поскольку при выкидывании ребра из гамильтонва
цикла получается остовное дерево
каждое ребро построенного гамильтонова цикла заменяет
какой-то путь эйлерова цикла, длина которого по неравенству
треугольника не менее длины этого ребра
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 12 / 28
40. Задача о коммивояжере 2-приближенный алгоритм для Metric TSP
Анализ алгоритма
Теорема
Алгоритм Approx-TSP является 2-приближенным.
Доказательство
пусть WT — вес минимального остовного дерева, а Wopt — вес
оптимального гамильтонова цикла
WT ≤ Wopt , поскольку при выкидывании ребра из гамильтонва
цикла получается остовное дерево
каждое ребро построенного гамильтонова цикла заменяет
какой-то путь эйлерова цикла, длина которого по неравенству
треугольника не менее длины этого ребра
значит, длина найденного пути не превосходит 2WT , а
следовательно, и 2Wopt
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 12 / 28
41. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
План лекции
1 Задача о коммивояжере
Точный алгоритм для TSP
2-приближенный алгоритм для Metric TSP
3/2-приближенный алгоритм для Metric TSP
Неприближаемость TSP
2 Задача о рюкзаке
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 13 / 28
42. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
3/2-оптимальный алгоритм
Алгоритм
Approx-TSP-Improved(G )
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 14 / 28
43. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
3/2-оптимальный алгоритм
Алгоритм
Approx-TSP-Improved(G )
строим минимальное остовное дерево T графа G
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 14 / 28
44. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
3/2-оптимальный алгоритм
Алгоритм
Approx-TSP-Improved(G )
строим минимальное остовное дерево T графа G
найдем минимальное полное паросочетание всех вершин дерева T
нечетной степени
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 14 / 28
45. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
3/2-оптимальный алгоритм
Алгоритм
Approx-TSP-Improved(G )
строим минимальное остовное дерево T графа G
найдем минимальное полное паросочетание всех вершин дерева T
нечетной степени
добавим найденные ребра в дерево T и найдем в полученном
графе эйлеров цикл
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 14 / 28
46. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
3/2-оптимальный алгоритм
Алгоритм
Approx-TSP-Improved(G )
строим минимальное остовное дерево T графа G
найдем минимальное полное паросочетание всех вершин дерева T
нечетной степени
добавим найденные ребра в дерево T и найдем в полученном
графе эйлеров цикл
выкинем из полученного цикла все повторения вершин и вернем
полученный цикл
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 14 / 28
47. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
Анализ алгоритма
Теорема
Алгоритм Approx-TSP-Improved является 3/2-приближенным.
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 15 / 28
48. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
Анализ алгоритма
Теорема
Алгоритм Approx-TSP-Improved является 3/2-приближенным.
Доказательство
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 15 / 28
49. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
Анализ алгоритма
Теорема
Алгоритм Approx-TSP-Improved является 3/2-приближенным.
Доказательство
как и в предыдущем доказательстве, вес построенного цикла не
провосходит WT + WP , где WP — вес минимального
паросочетания вершин нечетной степени дерева T
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 15 / 28
50. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
Анализ алгоритма
Теорема
Алгоритм Approx-TSP-Improved является 3/2-приближенным.
Доказательство
как и в предыдущем доказательстве, вес построенного цикла не
провосходит WT + WP , где WP — вес минимального
паросочетания вершин нечетной степени дерева T
нужно показать, что WP ≤ Wopt /2
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 15 / 28
51. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
Анализ алгоритма
Теорема
Алгоритм Approx-TSP-Improved является 3/2-приближенным.
Доказательство
как и в предыдущем доказательстве, вес построенного цикла не
провосходит WT + WP , где WP — вес минимального
паросочетания вершин нечетной степени дерева T
нужно показать, что WP ≤ Wopt /2
обозначим через A множество всех вершин нечетной степени
дерева T
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 15 / 28
52. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
Анализ алгоритма
Теорема
Алгоритм Approx-TSP-Improved является 3/2-приближенным.
Доказательство
как и в предыдущем доказательстве, вес построенного цикла не
провосходит WT + WP , где WP — вес минимального
паросочетания вершин нечетной степени дерева T
нужно показать, что WP ≤ Wopt /2
обозначим через A множество всех вершин нечетной степени
дерева T
рассмотрим такой гамильтонов цикл на вершинах множества A:
вершины множества A в нем будут встречаться в такой
последовательности, в какой они идут в оптимальном
гамильтоновом цикле графа G
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 15 / 28
53. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
Доказательство (продолжение)
Доказательство
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 16 / 28
54. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
Доказательство (продолжение)
Доказательство
важно отметить, что нам не нужно строить такой цикл; нам важен
лишь факт его существования
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 16 / 28
55. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
Доказательство (продолжение)
Доказательство
важно отметить, что нам не нужно строить такой цикл; нам важен
лишь факт его существования
разбив вершины только что построенного цикла на четные и
нечетные, мы получим два паросочетания
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 16 / 28
56. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
Доказательство (продолжение)
Доказательство
важно отметить, что нам не нужно строить такой цикл; нам важен
лишь факт его существования
разбив вершины только что построенного цикла на четные и
нечетные, мы получим два паросочетания
вес хотя бы одного из них будет не более Wopt /2
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 16 / 28
57. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
Доказательство (продолжение)
Доказательство
важно отметить, что нам не нужно строить такой цикл; нам важен
лишь факт его существования
разбив вершины только что построенного цикла на четные и
нечетные, мы получим два паросочетания
вес хотя бы одного из них будет не более Wopt /2
значит, и вес минимального паросочетания не превосходит
Wopt /2
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 16 / 28
58. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
Известные оценки
Факт
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 17 / 28
59. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
Известные оценки
Факт
Если P̸=NP, то не существует 117 -приближенного алгоритма для
116
задачи о коммивояжере в метрическом пространстве.
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 17 / 28
60. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
Известные оценки
Факт
Если P̸=NP, то не существует 117 -приближенного алгоритма для
116
задачи о коммивояжере в метрическом пространстве.
3/2 — лучшее известное приближение для задачи о
коммивояжере в метрическом пространстве.
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 17 / 28
61. Задача о коммивояжере 3/2-приближенный алгоритм для Metric TSP
Известные оценки
Факт
Если P̸=NP, то не существует 117 -приближенного алгоритма для
116
задачи о коммивояжере в метрическом пространстве.
3/2 — лучшее известное приближение для задачи о
коммивояжере в метрическом пространстве.
Для случая, когда все ребра имеют вес 1 или 2, известен
5/6-приближенный алгоритм.
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 17 / 28
62. Задача о коммивояжере Неприближаемость TSP
План лекции
1 Задача о коммивояжере
Точный алгоритм для TSP
2-приближенный алгоритм для Metric TSP
3/2-приближенный алгоритм для Metric TSP
Неприближаемость TSP
2 Задача о рюкзаке
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 18 / 28
63. Задача о коммивояжере Неприближаемость TSP
Неприближаемость задачи о коммивояжере
Теорема
Пусть P̸=NP и ������(n) = c ∈ N. Тогда не существует ������(n)-приближенного
алгоритма для задачи о коммивояжере.
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 19 / 28
64. Задача о коммивояжере Неприближаемость TSP
Неприближаемость задачи о коммивояжере
Теорема
Пусть P̸=NP и ������(n) = c ∈ N. Тогда не существует ������(n)-приближенного
алгоритма для задачи о коммивояжере.
Доказательство
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 19 / 28
65. Задача о коммивояжере Неприближаемость TSP
Неприближаемость задачи о коммивояжере
Теорема
Пусть P̸=NP и ������(n) = c ∈ N. Тогда не существует ������(n)-приближенного
алгоритма для задачи о коммивояжере.
Доказательство
предположим, что такой алгоритм все-таки существует
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 19 / 28
66. Задача о коммивояжере Неприближаемость TSP
Неприближаемость задачи о коммивояжере
Теорема
Пусть P̸=NP и ������(n) = c ∈ N. Тогда не существует ������(n)-приближенного
алгоритма для задачи о коммивояжере.
Доказательство
предположим, что такой алгоритм все-таки существует
возьмем произвольный граф и присвоим всем его ребрам вес 1
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 19 / 28
67. Задача о коммивояжере Неприближаемость TSP
Неприближаемость задачи о коммивояжере
Теорема
Пусть P̸=NP и ������(n) = c ∈ N. Тогда не существует ������(n)-приближенного
алгоритма для задачи о коммивояжере.
Доказательство
предположим, что такой алгоритм все-таки существует
возьмем произвольный граф и присвоим всем его ребрам вес 1
между любыми двумя не соединенными ребром вершинами
добавим ребро веса cn + 1
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 19 / 28
68. Задача о коммивояжере Неприближаемость TSP
Неприближаемость задачи о коммивояжере
Теорема
Пусть P̸=NP и ������(n) = c ∈ N. Тогда не существует ������(n)-приближенного
алгоритма для задачи о коммивояжере.
Доказательство
предположим, что такой алгоритм все-таки существует
возьмем произвольный граф и присвоим всем его ребрам вес 1
между любыми двумя не соединенными ребром вершинами
добавим ребро веса cn + 1
заметим теперь, что если в исходном графе существует
гамильтонов цикл, то в новом графе существует гамильтонов
цикл веса n
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 19 / 28
69. Задача о коммивояжере Неприближаемость TSP
Доказательство (продолжение)
Доказательство
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 20 / 28
70. Задача о коммивояжере Неприближаемость TSP
Доказательство (продолжение)
Доказательство
если же такого цикла в исходном графе нет, то самый дешевый
цикл в новом графе имеет вес хотя бы (nc + 1) + (n − 1) > nc
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 20 / 28
71. Задача о коммивояжере Неприближаемость TSP
Доказательство (продолжение)
Доказательство
если же такого цикла в исходном графе нет, то самый дешевый
цикл в новом графе имеет вес хотя бы (nc + 1) + (n − 1) > nc
таким образом, с помощью ������(n)-приближенного алгоритма для
задачи о коммивояжере мы можем понять, стоимость
оптимального цикла в построенном графе превосходит n или нет
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 20 / 28
72. Задача о коммивояжере Неприближаемость TSP
Доказательство (продолжение)
Доказательство
если же такого цикла в исходном графе нет, то самый дешевый
цикл в новом графе имеет вес хотя бы (nc + 1) + (n − 1) > nc
таким образом, с помощью ������(n)-приближенного алгоритма для
задачи о коммивояжере мы можем понять, стоимость
оптимального цикла в построенном графе превосходит n или нет
а это позволит нам понять (за полиномиальное время!), есть в
исходном графе гамильтонов цикл или нет
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 20 / 28
73. Задача о коммивояжере Неприближаемость TSP
Доказательство (продолжение)
Доказательство
если же такого цикла в исходном графе нет, то самый дешевый
цикл в новом графе имеет вес хотя бы (nc + 1) + (n − 1) > nc
таким образом, с помощью ������(n)-приближенного алгоритма для
задачи о коммивояжере мы можем понять, стоимость
оптимального цикла в построенном графе превосходит n или нет
а это позволит нам понять (за полиномиальное время!), есть в
исходном графе гамильтонов цикл или нет
но тогда P=NP
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 20 / 28
74. Задача о рюкзаке
План лекции
1 Задача о коммивояжере
Точный алгоритм для TSP
2-приближенный алгоритм для Metric TSP
3/2-приближенный алгоритм для Metric TSP
Неприближаемость TSP
2 Задача о рюкзаке
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 21 / 28
75. Задача о рюкзаке
Задача о рюкзаке
Определение
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 22 / 28
76. Задача о рюкзаке
Задача о рюкзаке
Определение
Дано n предметов с весами w1 , . . . , wn ∈ N и стоимостями
p1 , . . . , pn ∈ N, а также общий вес W .
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 22 / 28
77. Задача о рюкзаке
Задача о рюкзаке
Определение
Дано n предметов с весами w1 , . . . , wn ∈ N и стоимостями
p1 , . . . , pn ∈ N, а также общий вес W .
Задача о рюкзаке (knapsack problem) заключается в нахождении
∑︀
такого множества предметов I ⊆ [1..n], что i∈I wi ≤ W и
∑︀
i∈I pi максимально.
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 22 / 28
78. Задача о рюкзаке
Задача о рюкзаке
Определение
Дано 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 .
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 22 / 28
79. Задача о рюкзаке
Точный псевдополиномиальный алгоритм
Алгоритм
Psuedopoly-Knapsack({wi }, {pi }, W )
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 23 / 28
80. Задача о рюкзаке
Точный псевдополиномиальный алгоритм
Алгоритм
Psuedopoly-Knapsack({wi }, {pi }, W )
∑︀
S := i∈[1..n] pi
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 23 / 28
81. Задача о рюкзаке
Точный псевдополиномиальный алгоритм
Алгоритм
Psuedopoly-Knapsack({wi }, {pi }, W )
∑︀
S := i∈[1..n] pi
P := maxi∈[1..n] pi
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 23 / 28
82. Задача о рюкзаке
Точный псевдополиномиальный алгоритм
Алгоритм
Psuedopoly-Knapsack({wi }, {pi }, W )
∑︀
S := i∈[1..n] pi
P := maxi∈[1..n] pi
через w (k, p) обозначим минимальный объем, необходимый для
того, чтобы уложить предметы с номерами, не превосходящими
k ∈ [1..n], общей стоимостью не менее p ≤ S
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 23 / 28
83. Задача о рюкзаке
Точный псевдополиномиальный алгоритм
Алгоритм
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
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 23 / 28
84. Задача о рюкзаке
Точный псевдополиномиальный алгоритм
Алгоритм
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
w (0, 0) = 0; w (0, p) = ∞, p > 0
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 23 / 28
85. Задача о рюкзаке
Точный псевдополиномиальный алгоритм
Алгоритм
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
w (0, 0) = 0; w (0, p) = ∞, p > 0
w (k + 1, p) = min{w (k, p), w (k, p − pk+1 ) + wk+1 }
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 23 / 28
86. Задача о рюкзаке
Точный псевдополиномиальный алгоритм
Алгоритм
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
w (0, 0) = 0; w (0, p) = ∞, p > 0
w (k + 1, p) = min{w (k, p), w (k, p − pk+1 ) + wk+1 }
return максимальное p, для которого w (n, p) ≤ W
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 23 / 28
87. Задача о рюкзаке
Анализ времени работы
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 24 / 28
88. Задача о рюкзаке
Анализ времени работы
Ясно, что алгоритм работает не более, чем nS, то есть не более
n2 P.
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 24 / 28
89. Задача о рюкзаке
Анализ времени работы
Ясно, что алгоритм работает не более, чем nS, то есть не более
n2 P.
Значит, мы могли бы решить задачу за полиномиальное время,
если бы pi были достаточно маленькими.
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 24 / 28
90. Задача о рюкзаке
Анализ времени работы
Ясно, что алгоритм работает не более, чем nS, то есть не более
n2 P.
Значит, мы могли бы решить задачу за полиномиальное время,
если бы pi были достаточно маленькими.
Идея: выберем достаточно большое число и разделим на него все
стоимости. Оптимальное решение не перестанет быть
оптимальным, а время работы алгоритма уменьшится.
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 24 / 28
91. Задача о рюкзаке
Анализ времени работы
Ясно, что алгоритм работает не более, чем nS, то есть не более
n2 P.
Значит, мы могли бы решить задачу за полиномиальное время,
если бы pi были достаточно маленькими.
Идея: выберем достаточно большое число и разделим на него все
стоимости. Оптимальное решение не перестанет быть
оптимальным, а время работы алгоритма уменьшится.
В чем же тогда подвох?
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 24 / 28
92. Задача о рюкзаке
Анализ времени работы
Ясно, что алгоритм работает не более, чем nS, то есть не более
n2 P.
Значит, мы могли бы решить задачу за полиномиальное время,
если бы pi были достаточно маленькими.
Идея: выберем достаточно большое число и разделим на него все
стоимости. Оптимальное решение не перестанет быть
оптимальным, а время работы алгоритма уменьшится.
В чем же тогда подвох?
Стоимости могут перестать быть целыми после деления.
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 24 / 28
93. Задача о рюкзаке
Анализ времени работы
Ясно, что алгоритм работает не более, чем nS, то есть не более
n2 P.
Значит, мы могли бы решить задачу за полиномиальное время,
если бы pi были достаточно маленькими.
Идея: выберем достаточно большое число и разделим на него все
стоимости. Оптимальное решение не перестанет быть
оптимальным, а время работы алгоритма уменьшится.
В чем же тогда подвох?
Стоимости могут перестать быть целыми после деления.
Округлим их и будем надеяться, что потеряли мы от этого не
очень много.
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 24 / 28
94. Задача о рюкзаке
Полностью полиномиальная приближенная схема
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 25 / 28
95. Задача о рюкзаке
Полностью полиномиальная приближенная схема
итак, пусть задан ������, определяющий, с какой точностью мы хотим
найти ответ
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 25 / 28
96. Задача о рюкзаке
Полностью полиномиальная приближенная схема
итак, пусть задан ������, определяющий, с какой точностью мы хотим
найти ответ
P
пусть K������ = (1+1/������)n
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 25 / 28
97. Задача о рюкзаке
Полностью полиномиальная приближенная схема
итак, пусть задан ������, определяющий, с какой точностью мы хотим
найти ответ
P
пусть K������ = (1+1/������)n
поделим все pi на K������ и округлим: pi′ = ⌈pi /K������ ⌉
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 25 / 28
98. Задача о рюкзаке
Полностью полиномиальная приближенная схема
итак, пусть задан ������, определяющий, с какой точностью мы хотим
найти ответ
P
пусть K������ = (1+1/������)n
поделим все pi на K������ и округлим: pi′ = ⌈pi /K������ ⌉
запустим Psuedopoly-Knapsack на полученном наборе
стоимостей
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 25 / 28
99. Задача о рюкзаке
Полностью полиномиальная приближенная схема
итак, пусть задан ������, определяющий, с какой точностью мы хотим
найти ответ
P
пусть K������ = (1+1/������)n
поделим все pi на K������ и округлим: pi′ = ⌈pi /K������ ⌉
запустим Psuedopoly-Knapsack на полученном наборе
стоимостей
время работы алгорита не превосходит n2 max pi′ ≤ n3 P(1 + 1/������)/P
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 25 / 28
100. Задача о рюкзаке
Полностью полиномиальная приближенная схема
итак, пусть задан ������, определяющий, с какой точностью мы хотим
найти ответ
P
пусть K������ = (1+1/������)n
поделим все pi на K������ и округлим: pi′ = ⌈pi /K������ ⌉
запустим Psuedopoly-Knapsack на полученном наборе
стоимостей
время работы алгорита не превосходит n2 max pi′ ≤ n3 P(1 + 1/������)/P
осталось доказать, что полученный алгоритм дает достаточно
хорошее приближение
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 25 / 28
101. Задача о рюкзаке
Оценка приближения
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 26 / 28
102. Задача о рюкзаке
Оценка приближения
пусть A������ — общая стоимость набора предметов, который вернул
алгоритм
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 26 / 28
103. Задача о рюкзаке
Оценка приближения
пусть A������ — общая стоимость набора предметов, который вернул
алгоритм
заметим, что A������ ≥ Aopt − K������ n: псевдополиномиальный алгоритм
находит точное решение, поэтому отклонение могло появиться
только при округлении; при округлении могло потеряться не более
1 на каждом предмете, эта потеря домножается на K������ при
обратном переходе от pi′ к pi
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 26 / 28
104. Задача о рюкзаке
Оценка приближения (продолжение)
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 27 / 28
105. Задача о рюкзаке
Оценка приближения (продолжение)
Aopt ≥ P, так как в рюкзак можно просто засунуть самый дорогой
предмет
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 27 / 28
106. Задача о рюкзаке
Оценка приближения (продолжение)
Aopt ≥ P, так как в рюкзак можно просто засунуть самый дорогой
предмет
тогда
A������ Aopt − K������
≥ =
Aopt Aopt
Pn 1 1
1− ≥1− =
Aopt n(1 + 1/������) 1 + 1/������ ������ + 1
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 27 / 28
107. Задача о рюкзаке
Оценка приближения (продолжение)
Aopt ≥ P, так как в рюкзак можно просто засунуть самый дорогой
предмет
тогда
A������ Aopt − K������
≥ =
Aopt Aopt
Pn 1 1
1− ≥1− =
Aopt n(1 + 1/������) 1 + 1/������ ������ + 1
следовательно, A������ ≥ (1 − ������)Aopt
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 27 / 28
108. Задача о рюкзаке
Спасибо за внимание!
А. Куликов (Computer Science клуб) 6. Приближенные алгоритмы 28 / 28