Алгоритмы - higher school of economics · Алгоритмы Метод...
TRANSCRIPT
![Page 1: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/1.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Алгоритмы
Alexander Lazarev
Institute of Control Sciences of Russian Academy of Sciences
2009-2010 учебный год
![Page 2: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/2.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Outline
1 Алгоритмы
2 Метод динамического программированияЗадача РанецЗадача КоммивояжёрРаскрой выпуклого многоугольникаРасписание работы конвейера
3 Метод ветвей и границЗадача коммивояжёра
4 Задача двух станков
![Page 3: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/3.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Элементы теории алгоритмов
1 Метод динамического программирования;2 Метод ветвей и границ.
![Page 4: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/4.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
![Page 5: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/5.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
В 1900 году в Париже прошла Всемирная конференцияматематиков, на которой Давид Гильберт (David Hilbert,1862–1943) изложил в виде тезисов сформулированные им 23наиважнейшие, по его мнению, задачи, которые предстоялорешить ученым-теоретикам наступающего ХХ века. Подвторым номером в его списке значилась одна из тех простыхзадач, ответ на которые кажется очевидным, пока не копнешьнемножечко глубже. Говоря современным языком, это былвопрос: самодостаточна ли математика? Вторая задачаГильберта сводилась к необходимости строго доказать, чтосистема аксиом — базовых утверждений, принимаемых вматематике за основу без доказательств, —- совершенна иполна, то есть позволяет математически описать всё сущее.
![Page 6: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/6.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Надо было доказать, что можно задать такую систему аксиом,что они будут, во-первых, взаимно непротиворечивы, аво-вторых, из них можно вывести заключение относительноистинности или ложности любого утверждения.И тут в 1931 году какой-то венский очкарик —- математик КуртГёдель —- взял и опубликовал короткую статью, попростуопрокинувшую весь мир так называемой «математическойлогики».
![Page 7: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/7.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Гёдель попросту доказал следующее удивительное свойстволюбой системы аксиом:«Если можно доказать утверждение A, то можно доказать иутверждение не-A».
![Page 8: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/8.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Слабая теорема Гёделя о неполноте:«Любая формальная система аксиом содержит неразрешенныепредположения».Сильная теорема Гёделя о неполноте:«Логическая полнота (или неполнота) любой системы аксиомне может быть доказана в рамках этой системы. Для еедоказательства или опровержения требуются дополнительныеаксиомы (усиление системы)».
![Page 9: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/9.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Ричард Эрнст Беллман (англ. Richard Ernest Bellman; род.26.8.1920, Нью-Йорк — ум.19.3.1984, Лос-Анджелес) —американский математик, один из ведущих специалистов вобласти математики и вычислительной техники.
![Page 10: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/10.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Ассистент математики в Принстонском университете(1946—1948).Associate Professor математики, Стэнфордский университет(1948—1952).Научный сотрудник, RAND Corporation (1953—1965).Профессор, Университет Южной Калифорнии (1965—1984).Получил многочисленные результаты, связанные сприменением динамического программирования в разныхобластях математики (вариационное исчисление,автоматическое регулирование, теория аппроксимации,исследование операций и др.). В вариационном исчисленииважную роль играет функциональное уравнение Беллмана. Вматематических методах оптимального управления известныБеллмана функция и уравнение. Р.Беллман опубликовал 619статей и 39 книг. Многие его работы переведены на русскийязык.
![Page 11: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/11.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Динамическое программирование обычно придерживается двухподходов к решению задач:
1 нисходящее динамическое программирование: задачаразбивается на подзадачи меньшего размера, онирешаются и затем комбинируются для решения исходнойзадачи. Используется запоминание для решений частовстречающихся подзадач;
2 восходящее динамическое программирование: всеподзадачи, которые впоследствии понадобятся длярешения исходной задачи просчитываются заранее и затемиспользуются для построения решения исходной задачи.Этот способ лучше нисходящего программирования всмысле размера необходимого стека и количества вызовафункций, но иногда бывает нелегко заранее выяснитьрешение каких подзадач нам потребуется в дальнейшем.
![Page 12: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/12.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
![Page 13: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/13.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
![Page 14: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/14.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
![Page 15: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/15.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача Ранец
Задача Ранец
n∑i=1
vixi → max
n∑i=1
wixi ≤W
xi ∈ {0, 1},wi > 0, i = 1, . . . , n.
(1)
![Page 16: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/16.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача Ранец
![Page 17: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/17.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача Ранец
![Page 18: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/18.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача Ранец
![Page 19: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/19.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача Ранец
![Page 20: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/20.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача Ранец
![Page 21: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/21.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача Ранец
![Page 22: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/22.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача Ранец
![Page 23: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/23.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача Ранец
![Page 24: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/24.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача Ранец
![Page 25: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/25.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача Коммивояжёр
![Page 26: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/26.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача Коммивояжёр
![Page 27: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/27.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача Коммивояжёр
![Page 28: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/28.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача Коммивояжёр
![Page 29: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/29.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача Коммивояжёр
![Page 30: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/30.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача Коммивояжёр
![Page 31: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/31.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача Коммивояжёр
![Page 32: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/32.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
Рассмотрим применение техники динамическогопрограммирования еще на одном простом примере.Рассматривается множество так называемых раскроеввыпуклого n-угольника или, что то же самое, различныхразбиений его на треугольники с помощью n − 3непересекающихся диагоналей. Стоимость конкретного раскроя– это суммарная длина проведенных диагоналей. Пусть данвыпуклый n-угольник. Требуется найти его раскройминимальной стоимости.
![Page 33: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/33.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
![Page 34: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/34.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
Будем считать, что все вершины исходного многоугольникапронумерованы в порядке обхода n-угольника по часовойстрелки, т.е. n-угольник образован отрезками(1, 2), (2, 3), . . . , (n − 1, n), (n, 1). Через M(k , l) обозначиммногоугольник, отрезаемый от исходного диагональю (k , l), гдеk ≤ l . Он образован отрезками(k , k + 1), (k + 1, k + 2), . . . , (l − 1, l), (k , l).Ясно, что при l = k + 1 многоугольник M(k , l) вырождается вотрезок, при l = k + 2 – треугольник, а M(1, n) – это исходныйn-угольник.
![Page 35: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/35.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
Для любых вершин k и l через n(k , l) обозначим минимальнуюстоимость раскроя многоугольника M(k , l), если l > k + 2, иполагаем
n(k , l) = 0, если l = k + 1,n(k , l) = 0, если l = k + 2.
Получаем следующее очевидное рекуррентное соотношение
n(k , l) = min{n(k , i) + n(i , l) + d(k , i) + d(i , l) : k < i < l},
где d(s, r) – это длина диагонали (s, r), если r > s + 1, иd(s, r) = 0, если r = s + 1.
![Page 36: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/36.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
Указанное соотношение позволяет составить таблицу дляn(k , l), заполняя ее в порядке возрастания числа l − k + 1 –количества вершин в многоугольнике M(k , l). Программатакого заполнения таблицы будет использовать память O(n2) итребовать время O(n3), поскольку всего существует O(n2)элементов таблицы, а для однократного применениярекуррентной формулы требуется осуществить выборминимального числа из не более чем n чисел.
![Page 37: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/37.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
После того, как вычислена таблица значений n(k , l), мыполучаем минимальную стоимость раскроя (она равна n(1, n))и легко можем вычислить раскрой минимальной стоимости.Для этого можно реализовать процесс обработки подзадач впорядке убывания их размера. Процесс начинается обработкойисходной задачи и постепенно шаг за шагом находитдиагонали, образующие разрез минимальной стоимости. Накаждом шаге рассматривается многоугольник M(k , l) и ищетсятакая вершина i , k < i < l , что
n(k , l) = n(k , i) + n(i , l) + d(k , i) + d(i , l).
![Page 38: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/38.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
Поскольку таких шагов будет меньше n, а на каждом шагетребуется осуществить сравнение числа n(k , l) со значениямине более чем сумм
n(k , i) + n(i , l) + d(k , i) + d(i , l),
получаем оценку O(n3) для суммарной временной сложностидвух этапов рассмотренного алгоритма.
![Page 39: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/39.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
Пример
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
![Page 40: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/40.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
n(1, 9) = min{n(1, 2) + n(2, 9) + d(1, 2) + d(2, 9);n(1, 3) + n(3, 9) + d(1, 3) + d(3, 9);n(1, 4) + n(4, 9) + d(1, 4) + d(4, 9);n(1, 5) + n(5, 9) + d(1, 5) + d(5, 9);n(1, 6) + n(6, 9) + d(1, 6) + d(6, 9);n(1, 7) + n(7, 9) + d(1, 7) + d(7, 9);n(1, 8) + n(8, 9) + d(1, 8) + d(8, 9)}
(2)
n(2, 9) = min{n(2, 3) + n(3, 9) + d(2, 3) + d(3, 9);n(2, 4) + n(4, 9) + d(2, 4) + d(4, 9);n(2, 5) + n(5, 9) + d(2, 5) + d(5, 9);n(2, 6) + n(6, 9) + d(2, 6) + d(6, 9);n(2, 7) + n(7, 9) + d(2, 7) + d(7, 9);n(2, 8) + n(8, 9) + d(2, 8) + d(8, 9)}
(3)
![Page 41: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/41.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
n(1, 9) = min{n(1, 2) + n(2, 9) + d(1, 2) + d(2, 9);n(1, 3) + n(3, 9) + d(1, 3) + d(3, 9);n(1, 4) + n(4, 9) + d(1, 4) + d(4, 9);n(1, 5) + n(5, 9) + d(1, 5) + d(5, 9);n(1, 6) + n(6, 9) + d(1, 6) + d(6, 9);n(1, 7) + n(7, 9) + d(1, 7) + d(7, 9);n(1, 8) + n(8, 9) + d(1, 8) + d(8, 9)}
n(1, 8) = min{n(1, 2) + n(2, 8) + d(1, 2) + d(2, 8);n(1, 3) + n(3, 8) + d(1, 3) + d(3, 8);n(1, 4) + n(4, 8) + d(1, 4) + d(4, 8);n(1, 5) + n(5, 8) + d(1, 5) + d(5, 8);n(1, 6) + n(6, 8) + d(1, 6) + d(6, 8);n(1, 7) + n(7, 8) + d(1, 7) + d(7, 8)}
(4)
![Page 42: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/42.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
n(k , l), 1 ≤ k < l ≤ n, O(n2) O(n3) трудоёмкостьO(n2) память
![Page 43: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/43.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(1, 2) = n(1, 3) = n(2, 4) = n(3, 4) = 0
n(1, 4) = min{n(1, 2) + n(2, 4) + d(1, 2) + d(2, 4);n(1, 3) + n(3, 4) + d(1, 3) + d(3, 4)} =min{0+ 6; 5+ 0} = 5
![Page 44: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/44.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(2, 3) = n(2, 4) = n(4, 5) = n(3, 5) = 0
n(2, 5) = min{n(2, 3) + n(3, 5) + d(2, 3) + d(3, 5);n(2, 4) + n(4, 5) + d(2, 4) + d(4, 5)} =min{0+ 7; 6+ 0} = 6
![Page 45: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/45.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(3, 4) = n(3, 5) = n(4, 6) = n(5, 6) = 0
n(3, 6) = min{n(3, 4) + n(4, 6) + d(3, 4) + d(4, 6);n(3, 5) + n(5, 6) + d(3, 5) + d(5, 6)} =min{0+ 8; 7+ 0} = 7
![Page 46: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/46.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(4, 5) = n(5, 7) = n(4, 6) = n(6, 7) = 0
n(4, 7) = min{n(4, 5) + n(5, 7) + d(4, 5) + d(5, 7);n(4, 6) + n(6, 7) + d(4, 6) + d(6, 7)} =min{0+ 5; 8+ 0} = 5
![Page 47: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/47.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(5, 6) = n(6, 8) = n(5, 7) = n(7, 8) = 0
n(5, 8) = min{n(5, 6) + n(6, 8) + d(5, 6) + d(6, 8);n(5, 7) + n(7, 8) + d(5, 7) + d(7, 8)} =min{0+ 12; 5+ 0} = 5
![Page 48: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/48.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(6, 7) = n(7, 9) = n(6, 8) = n(8, 9) = 0
n(6, 9) = min{n(6, 7) + n(7, 9) + d(6, 7) + d(7, 9);n(6, 8) + n(8, 9) + d(6, 8) + d(8, 9)} =min{0+ 7; 12+ 0} = 7
![Page 49: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/49.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(1, 2) = n(1, 3) = n(3, 5) = n(4, 5) = 0; n(2, 5) = 6; n(1, 4) = 5
n(1, 5) = min{n(1, 2) + n(2, 5) + d(1, 2) + d(2, 5);n(1, 3) + n(3, 5) + d(1, 3) + d(3, 5);n(1, 4) + n(4, 5) + d(1, 4) + d(4, 5)} =min{6+ 0+ 9; 5+ 7; 5+ 10+ 0} = 12
![Page 50: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/50.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(2, 3) = n(2, 4) = n(4, 6) = n(5, 6) = 0; n(3, 6) = 7; n(2, 5) = 6
n(2, 6) = min{n(2, 3) + n(3, 6) + d(2, 3) + d(3, 6);n(2, 4) + n(4, 6) + d(2, 4) + d(4, 6);n(2, 5) + n(5, 6) + d(2, 5) + d(5, 6)} =min{7+ 0+ 4; 6+ 8; 6+ 9+ 0} = 11
![Page 51: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/51.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(3, 4) = n(3, 5) = n(5, 7) = n(6, 7) = 0; n(4, 7) = 5; n(3, 6) = 7
n(3, 7) = min{n(3, 4) + n(4, 7) + d(3, 4) + d(4, 7);n(3, 5) + n(5, 7) + d(3, 5) + d(5, 7);n(3, 6) + n(6, 7) + d(3, 6) + d(6, 7)} =min{5+ 0+ 5; 7+ 5; 7+ 4+ 0} = 10
![Page 52: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/52.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(4, 5) = n(4, 6) = n(6, 8) = n(7, 8) = 0; n(5, 8) = 5; n(4, 7) = 5
n(4, 8) = min{n(4, 5) + n(5, 8) + d(4, 5) + d(5, 8);n(4, 6) + n(6, 8) + d(4, 6) + d(6, 8);n(4, 7) + n(7, 8) + d(4, 7) + d(7, 8)} =min{5+ 0+ 8; 8+ 12; 5+ 5+ 0} = 10
![Page 53: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/53.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(5, 6) = n(5, 7) = n(7, 9) = n(8, 9) = 0; n(6, 9) = 7; n(5, 8) = 5
n(5, 9) = min{n(5, 6) + n(6, 9) + d(5, 6) + d(6, 9);n(5, 7) + n(7, 9) + d(5, 7) + d(7, 9);n(5, 8) + n(8, 9) + d(5, 8) + d(8, 9)} =min{7+ 0+ 6; 5+ 7; 5+ 8+ 0} = 12
![Page 54: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/54.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(1, 2) = n(1, 3) = n(4, 6) =n(5, 6) = 0;n(2, 6) = 11;n(3, 6) = 7;n(1, 4) = 5;n(1, 5) = 12
n(1, 6) = min{n(1, 2) + n(2, 6) + d(1, 2) + d(2, 6);n(1, 3) + n(3, 6) + d(1, 3) + d(3, 6);n(1, 4) + n(4, 6) + d(1, 4) + d(4, 6);n(1, 5) + n(5, 6) + d(1, 5) + d(5, 6)} =min{11+ 0+ 8; 7+ 5+ 4; 5+ 10+ 8; 12+ 15+ 0} = 16
![Page 55: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/55.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(2, 3) = n(2, 4) = n(5, 7) =n(6, 7) = 0;n(3, 7) = 10;n(4, 7) = 5;n(2, 5) = 6;n(2, 6) = 11
n(2, 7) = min{n(2, 3) + n(3, 7) + d(2, 3) + d(3, 7);n(2, 4) + n(4, 7) + d(2, 4) + d(4, 7);n(2, 5) + n(5, 7) + d(2, 5) + d(5, 7);n(2, 6) + n(6, 7) + d(2, 6) + d(6, 7)} =min{10+ 0+ 8; 5+ 6+ 5; 6+ 9+ 5; 11+ 8+ 0} = 16
![Page 56: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/56.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(3, 4) = n(3, 5) = n(6, 8) =n(7, 8) = 0;n(4, 8) = 10;n(5, 8) = 5;n(3, 6) = 7;n(3, 7) = 10
n(3, 8) = min{n(3, 4) + n(4, 8) + d(3, 4) + d(4, 8);n(3, 5) + n(5, 8) + d(3, 5) + d(5, 8);n(3, 6) + n(6, 8) + d(3, 6) + d(6, 8);n(3, 7) + n(7, 8) + d(3, 7) + d(7, 8)} =min{10+ 0+ 7; 5+ 7+ 8; 7+ 4+ 12; 10+ 8+ 0} = 17
![Page 57: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/57.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(4, 5) = n(4, 6) = n(7, 9) =n(8, 9) = 0;n(5, 9) = 12;n(6, 9) = 7;n(4, 7) = 5;n(4, 8) = 10
n(4, 9) = min{n(4, 5) + n(5, 9) + d(4, 5) + d(5, 9);n(4, 6) + n(6, 9) + d(4, 6) + d(6, 9);n(4, 7+ n(7, 9) + d(4, 7) + d(7, 9);n(4, 8) + n(8, 9) + d(4, 8) + d(8, 9)} =min{12+ 0+ 10; 7+ 8+ 6; 5+ 5+ 7; 10+ 7+ 0} = 17
![Page 58: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/58.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(1, 2) = n(1, 3) = n(5, 7) =n(6, 7) = 0;n(2, 7) = 16;n(3, 7) = 10;n(1, 4) = 5; n(4, 7) = 5;n(1, 5) = 12;n(1, 6) = 16
n(1, 7) = min{n(1, 2) + n(2, 7) + d(1, 2) + d(2, 7);n(1, 3) + n(3, 7) + d(1, 3) + d(3, 7);n(1, 4) + n(4, 7) + d(1, 4) + d(4, 7);n(1, 5) + n(5, 7) + d(1, 5) + d(5, 7);n(1, 6) + n(6, 7) + d(1, 6) + d(6, 7)} =
min{16 + 0 + 5; 10 + 5 + 8; 5 + 5 + 10 + 5; 12 + 15 + 5; 16 + 7 + 0} = 21
![Page 59: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/59.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(2, 3) = n(2, 4) = n(6, 8) =n(7, 8) = 0;n(3, 8) = 17;n(4, 8) = 10;n(2, 5) = 6; n(5, 8) = 5;n(2, 6) = 11;n(2, 7) = 16
n(2, 8) = min{n(2, 3) + n(3, 8) + d(2, 3) + d(3, 8);n(2, 4) + n(4, 8) + d(2, 4) + d(4, 8);n(2, 5) + n(5, 8) + d(2, 5) + d(5, 8);n(2, 6) + n(6, 8) + d(2, 6) + d(6, 8);n(2, 7) + n(7, 8) + d(2, 7) + d(7, 8)} =
min{17 + 0 + 4; 10 + 6 + 7; 6 + 5 + 9 + 8; 11 + 8 + 12; 16 + 5 + 0} = 21
![Page 60: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/60.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(3, 4) = n(3, 5) = n(7, 9) =n(8, 9) = 0;n(4, 9) = 17;n(5, 9) = 12;n(3, 6) = 7; n(6, 9) = 7;n(3, 7) = 10;n(3, 8) = 17
n(3, 9) = min{n(3, 4) + n(4, 9) + d(3, 4) + d(4, 9);n(3, 5) + n(5, 9) + d(3, 5) + d(5, 9);n(3, 6) + n(6, 9) + d(3, 6) + d(6, 9);n(3, 7) + n(7, 9) + d(3, 7) + d(7, 9);n(3, 8) + n(8, 9) + d(3, 8) + d(8, 9)} =
min{17 + 0 + 6; 12 + 7 + 10; 7 + 7 + 4 + 6; 10 + 8 + 7; 17 + 4 + 0} = 21
![Page 61: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/61.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(1, 2) = n(1, 3) = n(6, 8) =n(7, 8) = 0;n(2, 8) = 21;n(3, 8) = 17;n(1, 4) = 5; n(4, 8) = 10;n(1, 5) = 12; n(5, 8) = 5;n(1, 6) = 16;n(1, 7) = 21;
n(1, 8) = min{n(1, 2) + n(2, 8) + d(1, 2) + d(2, 8);
n(1, 3) + n(3, 8) + d(1, 3) + d(3, 8);
n(1, 4) + n(4, 8) + d(1, 4) + d(4, 8);
n(1, 5) + n(5, 8) + d(1, 5) + d(5, 8);
n(1, 6) + n(6, 8) + d(1, 6) + d(6, 8);
n(1, 7) + n(7, 8) + d(1, 7) + d(7, 8)} =
min{21 + 0 + 8; 17 + 5 + 4; 5 + 10 + 10 + 7; 12 + 5 + 15 + 8; 16 + 7 + 12; 21 + 6 + 0} =26
![Page 62: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/62.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(2, 3) = n(2, 4) = n(7, 9) =n(8, 9) = 0;n(3, 9) = 21;n(4, 9) = 17;n(2, 5) = 6; n(5, 9) = 12;n(2, 6) = 11; n(6, 9) = 7;n(2, 7) = 16;n(2, 8) = 21;
n(2, 9) = min{n(2, 3) + n(3, 9) + d(2, 3) + d(3, 9);
n(2, 4) + n(4, 9) + d(2, 4) + d(4, 9);
n(2, 5) + n(5, 9) + d(2, 5) + d(5, 9);
n(2, 6) + n(6, 9) + d(2, 6) + d(6, 9);
n(2, 7) + n(7, 9) + d(2, 7) + d(7, 9);
n(2, 8) + n(8, 9) + d(2, 8) + d(8, 9)} =
min{21 + 0 + 8; 17 + 6 + 6; 6 + 12 + 9 + 10; 11 + 7 + 8 + 6; 16 + 5 + 7; 21 + 8 + 0} =28
![Page 63: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/63.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Раскрой выпуклого многоугольника
0 0 5 10 15 7 6 9 00 0 0 6 9 8 5 8 65 0 0 0 7 4 8 4 810 6 0 0 0 8 5 7 615 9 7 0 0 0 5 8 107 8 4 8 0 0 0 12 66 5 8 5 5 0 0 0 79 8 4 7 8 12 0 0 00 6 8 6 10 6 7 0 0
n(1, 2) = n(1, 3) = n(7, 9) =n(8, 9) = 0;n(2, 9) = 28;n(3, 9) = 21;n(1, 4) = 5; n(4, 9) = 17;n(1, 5) = 12; n(5, 9) = 12;n(1, 6) = 16; n(6, 9) = 7;n(1, 7) = 21;n(1, 8) = 26.
n(1, 9) = min{n(1, 2) + n(2, 9) + d(1, 2) + d(2, 9);
n(1, 3) + n(3, 9) + d(1, 3) + d(3, 9);
n(1, 4) + n(4, 9) + d(1, 4) + d(4, 9);
n(1, 5) + n(5, 9) + d(1, 5) + d(5, 9);
n(1, 6) + n(6, 9) + d(1, 6) + d(6, 9);
n(1, 7) + n(7, 9) + d(1, 7) + d(7, 9);
n(1, 8) + n(8, 9) + d(1, 8) + d(8, 9)} =
min{28 + 0 + 6; 21 + 5 + 8; 5 + 17 + 10 + 6; 12 + 12 + 15 + 10;
16 + 7 + 7 + 6; 21 + 6 + 7; 26 + 9 + 0} = 34
![Page 64: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/64.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 65: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/65.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
O(2n)
![Page 66: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/66.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 67: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/67.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 68: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/68.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 69: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/69.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 70: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/70.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 71: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/71.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 72: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/72.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 73: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/73.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 74: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/74.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 75: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/75.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 76: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/76.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 77: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/77.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 78: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/78.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 79: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/79.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 80: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/80.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 81: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/81.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 82: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/82.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 83: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/83.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 84: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/84.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 85: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/85.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 86: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/86.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 87: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/87.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 88: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/88.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
![Page 89: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/89.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Расписание работы конвейера
Прямой ход.На итерации алгоритма j = 1: суммирований 2; сравнений 0.На итерации алгоритма j = 2, . . . , n: суммирований 6;сравнений 2.Обратный ход.n операций перехода.Трудоёмкость O(n)Память O(n)
![Page 90: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/90.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
Задача коммивояжёра (коммивояжёр -— бродячий торговец,Traveling Salesman Problem) является одной из самыхизвестных задач комбинаторной оптимизации. Задачазаключается в отыскании самого выгодного маршрута,проходящего через указанные города хотя бы по одному разу споследующим возвратом в исходный город. В условиях задачиуказываются критерий выгодности маршрута (кратчайший,самый дешёвый, совокупный критерий и т. п.) исоответствующие матрицы расстояний, стоимости и т. п. Какправило, указывается, что маршрут должен проходить черезкаждый город только один раз —- в таком случае выборосуществляется среди гамильтоновых циклов.
![Page 91: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/91.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
Существует несколько частных случаев общей постановкизадачи, в частности геометрическая задача коммивояжёра(также называемая планарной или евклидовой, когда матрицарасстояний отражает расстояния между точками наплоскости), треугольная задача коммивояжёра (когда наматрице стоимостей выполняется неравенство треугольника),симметричная и асимметричная задачи коммивояжёра. Такжесуществует обобщение задачи, так называемая обобщённаязадача коммивояжёра.Общая постановка задачи, впрочем как и большинство еёчастных случаев, относится к классу NP-сложных задач.
![Page 92: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/92.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 93: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/93.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 94: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/94.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 95: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/95.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 96: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/96.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 97: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/97.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 98: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/98.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 99: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/99.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 100: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/100.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 101: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/101.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 102: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/102.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 103: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/103.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 104: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/104.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 105: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/105.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 106: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/106.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 107: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/107.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 108: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/108.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 109: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/109.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 110: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/110.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 111: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/111.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 112: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/112.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 113: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/113.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 114: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/114.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 115: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/115.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 116: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/116.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 117: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/117.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 118: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/118.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 119: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/119.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 120: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/120.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 121: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/121.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 122: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/122.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
![Page 123: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/123.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача коммивояжёра
Для решения задачи коммивояжёра предложен в 1963 годугруппой авторов (Дж. Литл, К. Мурти, Д. Суини, К.Кэрол).
Пример
∞ 9 5 10 15 8 6 9 86 ∞ 7 6 9 8 5 8 65 8 ∞ 5 7 4 8 4 810 6 6 ∞ 4 8 5 7 615 9 8 6 ∞ 11 5 8 107 8 4 8 7 ∞ 9 12 66 5 8 5 5 5 ∞ 7 79 8 4 7 8 12 5 ∞ 67 6 8 6 10 6 7 6 ∞
5
![Page 124: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/124.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Задача двух станков
Дано:
1 N12 – множество требований, стехнологическим маршрутом(1 −→ 2);
2 для каждого требования заданы p1i
и p2i – времена обслуживания на
первом и втором приборесоответственно;
3 целевая функция – суммарное(общее) время обслуживания всехтребований.
Аэропорт: "прибор" 1 – регистрация, паспортный, таможенныйконтроль. . . ; "прибор" 2 – взлётно-посадочная полоса.
![Page 125: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/125.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Ограничения:
1 на каждом приборе в каждыймомент времени выполняется неболее одного требования;
2 каждое требование может начатьвыполняться на втором приборе,только если оно завершилось напервом, то есть момент окончанияобслуживания на первом приборе недолжен превосходить моментаначала обслуживания на втором;
3 непрерываемость требований: еслиi-тое требование началообслуживаться в момент времени tна j-том приборе, то оно должнообслуживаться на том же приборедо момента времени t + pj
i .
![Page 126: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/126.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Алгоритм Джонсона:
![Page 127: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/127.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
![Page 128: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/128.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
![Page 129: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/129.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
![Page 130: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/130.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Пример 1.
j 1 2 3 4 5 6 7
p1j 5 7 4 3 5 7 6
p2j 6 5 6 7 4 6 8
π = ( , , , , , , )
![Page 131: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/131.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Пример 1.
j 1 2 3 4 5 6 7
p1j 5 7 4 3 5 7 6
p2j 6 5 6 7 4 6 8
π = (4 , , , , , , )
![Page 132: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/132.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Пример 1.
j 1 2 3 5 6 7
p1j 5 7 4 5 7 6
p2j 6 5 6 4 6 8
π = (4 , , , , , , )
![Page 133: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/133.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Пример 1.
j 1 2 3 5 6 7
p1j 5 7 4 5 7 6
p2j 6 5 6 4 6 8
π = (4 , , , , , , 5)
![Page 134: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/134.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Пример 1.
j 1 2 3 6 7
p1j 5 7 4 7 6
p2j 6 5 6 6 8
π = (4 , 3 , , , , , 5)
![Page 135: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/135.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Пример 1.
j 1 2 6 7
p1j 5 7 7 6
p2j 6 5 6 8
π = (4 , 3 , , , , , 5)
![Page 136: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/136.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Пример 1.
j 1 2 6 7
p1j 5 7 7 6
p2j 6 5 6 8
π = (4 , 3 , , , , 2 , 5)
![Page 137: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/137.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Пример 1.
j 1 6 7
p1j 5 7 6
p2j 6 6 8
π = (4 , 3 , 1 , , , 2 , 5)
![Page 138: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/138.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Пример 1.
j 6 7
p1j 7 6
p2j 6 8
π = (4 , 3 , 1 , 6 , 7 , 2 , 5)O(n log n)
![Page 139: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/139.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
![Page 140: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/140.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
![Page 141: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/141.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
![Page 142: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/142.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Используя Алгоритм 1, строим две перестановки π12 и π21 длямножеств требований N12 и N21, соответственно. В силуТеорем 1 и 2, расписания с такими порядками являютсяоптимальными в задачах 1 и 2, соответственно. Пусть c∗ и c∗∗
оптимальные значения целевой функции. Считаем, чтовыполнены условия Лемм 1 и 2. Обозначим c∗∗∗ оптимальноезначение целевой функции в задаче 3. Все требования имеютположительное время обслуживания, поэтому
c∗∗∗ ≥ max{c∗, c∗∗}.
![Page 143: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/143.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Также общее суммарное время обслуживание не может бытьменьше, чем суммарное время обслуживания на каждомприборе
c∗∗∗ ≥ max{p1, p2},
гдеp1 = p1
12 + p121, p2 = p2
12 + p221.
![Page 144: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/144.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
Возможны два случая:
1max{p1, p2} ≥ max{c∗, c∗∗};
2max{c∗, c∗∗} ≥ max{p1, p2}.
![Page 145: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/145.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
![Page 146: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/146.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
![Page 147: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/147.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
![Page 148: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/148.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
![Page 149: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/149.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
![Page 150: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/150.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
![Page 151: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/151.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
![Page 152: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/152.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
O(n log n)
![Page 153: Алгоритмы - Higher School of Economics · Алгоритмы Метод динамического программирования Метод ветвей и границЗадача](https://reader033.vdocuments.us/reader033/viewer/2022060314/5f0b83ba7e708231d430e559/html5/thumbnails/153.jpg)
Алгоритмы Метод динамического программирования Метод ветвей и границ Задача двух станков
O(n log n)