Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Поток минимальной стоимости и труднорешаемые задачи. Учебно-методическое пособие
.pdf
2.3. Задача коммивояжера 81
1 3 4
2 ∞ 3 3
3 1 ∞ 0
4 0 0 ∞
1 3 4
2 ∞ 0 0
3 1 ∞ 0
4 0 0 ∞
1 2 3 4
∞ ∞ 4 3
1
2 ∞ ∞ 3 3
3 1 0 ∞ 0
4 0 0 0 ∞
1 2 3 4
1 ∞ ∞ 1 0
2 ∞ ∞ 0 0
3 1 0 ∞ 0
4 0 0 0 ∞
Рис. 2.11. Ветвление вершины v
0
Дерево решений выглядит так (см. рис. 2.11), а так выглядят матрицы сыновей вершины v
1 3
2 ∞ 0
4 0 ∞
:
00
1 3 4
2 ∞ 0 0
3 1 ∞ ∞
4 0 ∞ ∞
Дальше все почти однозначно, v00ветвится по ребру (2,3),
а затем остается единственный выбор — ребро (4,1), т.е. во мно-

82 Глава 2. Труднорешаемые задачи
жестве МК, соответствующих вершине v
, всего один марш-
000
рут. После выбора ребра (1,4) алгоритм завершит работу.
Получившееся дерево решений изображено на рис. 2.12.
Итак, построен следующий МК 1—2—3—
4—1. Этот МК оптимален.
Заметим, что получившееся дерево решений «однобокое».
В примере мы все время шли влево. Но так
бывает далеко не всегда, иногда приходится
и возвращаться. Возвращаться приходится
к правому сыну какой-
Рис. 2.12. Дерево решений
либо вершины.
Имеющиеся экспериментальные данные говорят, что в сред-
n
нем дерево решений содержит 1,21
вершин.
2.4. Задачи
УПАКОВКА В ЯЩИКИ. Имеется N объектов, причем
i-й объект имеет размер s
их в минимальное число ящиков, каждый из которых может
вместить любое число объектов, суммарный размер которых
не превосходит 1.
Известно, что эта задача является NP -трудной.
Пусть S — суммарный размер всех объектов.
Рассмотрим жадный алгоритм.
Последовательно помещаем очередной объект в первый
по номеру подходящий ящик, если таковых нет, то в новый.
,где0 <si< 1. Требуется упаковать
i

2.4. Задачи 83
A. Докажите, что при таком подходе не более чем один ящик
будет заполнен менее чем наполовину.
B. Докажите, что использованных ящиков будет не более
2S.
C. Докажите, что этот алгоритм дает решение не более чем
в два раза хуже, чем оптимальный.
D. Предложите эффективную реализацию этого алгоритма
и оцените его сложность.
УПАКОВКА РЮКЗАКА. Пусть имеется набор из k
предметов, каждый из которых задан двумя числами — его
объемом V
и стоимостью wi,i=1, 2,...,k. Задан объем рюк-
i
зака — V . Требуется упаковать предметы в рюкзак так, чтобы
общий объем упакованных в рюкзак предметов W был не больше V и суммарная стоимость упакованных предметов была
наибольшая. Известно, что эта задача NP-полна.
Некоторые задачи обладают таким свойством, что их можно свести как к труднорешаемой, так и к легкорешаемой. Одну
из таких задач мы предлагаем ниже.
ГОРОДА. Всем известны правила игры в «города»: первый игрок называет произвольный город, следующий — город,
название которого начинается на ту же букву, на которую заканчивается название предыдущего города, и т.д. Аналогичным образом можно играть не в названия городов, а, например,
в названия животных. Задан список допустимых для описанной игры слов, слова в нем могут повторяться.
Предложите модель этой задачи как задачи на графе и алгоритм, который определяет, в каком порядке в процессе игры
должны быть названы слова из списка, чтобы каждое слово
было использовано ровно столько раз, сколько оно в нем встречается. Опишите алгоритм решения, если задача решается.
A. Сведите эту задачу к легкорешаемой задаче;
B. Сведите эту задачу к труднорешаемой задаче.

84 Глава 2. Труднорешаемые задачи
ВЫПУКЛЫЙ ГРАФ. Двудольный граф G =(X, Y, E)
называется Y -выпуклым, если множество вершин Y можно упорядочить так, что для каждого x из X множество смежных
ей вершин является отрезком.
Подмножество A множества X называется Y -доминирующим, если каждая вершина y из Y смежна хотя бы одной вершине x из A. Известно, что задача построения наименьшего
по числу вершин Y -доминирующего множества NP -полна.
Предложите эффективный (т. е. полиномиальный) алгоритм построения наименьшего Y -доминирующего множества
в Y -выпуклом графе.
РАСПРЕДЕЛЕНИЕ ОБОРУДОВАНИЯ. Заданы множества V = {v
,...,vn} и S = {s1,s2,...,sn} работ и ме-
1,v2
ханизмов соответственно. Для выполнения каждой из работ
требуется некоторое время, одинаковое для всех работ, и некоторые механизмы. При этом никакой из механизмов не может
быть одновременно занят в нескольких работах. Требуется так
распределить механизмы, чтобы общее время выполнения всех
работ было минимальным.
Предложите математическую модель этой задачи как задачи оптимизации на графе и опишите (неформально) алгоритм
ее решения.
Подсказка. Задача сводится к труднорешаемой, а именно, к задаче ВЕРШИННАЯ РАСКРАСКA, а она NP -полна.
Нужен эвристический алгоритм решения.
КОММИВОЯЖЕР. Рассмотрим следующий алгоритм
построения маршрута коммивояжера в полном взвешенном метрическом графе G =(V, E,c).

2.4. Задачи 85
Algorithm 16: Построение МК
1 Упорядочить все ребра по возрастанию весов;
2 T положить равным пустому (T и будет МК);
3 while |T| <n− 1 do
4 добавлять в T очередное по весу ребро,
5 не образующее цикла с уже имеющимися
6 и не приводящее к появлению в T вершины
степени 3
7 end
8 Добавить в T минимальное по весу ребро, замыкающее
цикл;
9 Вывести T
Привести примеры:
1) правильной работы алгоритма;
2) неправильной работы алгоритма.
РАСКРАСКА. Разработайте алгоритм сложности O(n)
для раскраски вершин планарного графа в шесть цветов.
Дополнение. Раскраска графа — необычная задача! Построение раскраски, близкой к оптимальной, зачастую дается
столь же сложно, что и оптимальной. Число красок, даваемое наилучшим известным полиномиальным алгоритмом, более чем вдвое превышает оптимальное решение. Более того,
доказано, что если существует полиномиальный алгоритм
с оценкой точности 2 (т. е. раскрашивающий вершины числом красок не более чем вдвое превышающим оптимальное)
произвольного графа, то существует и полиномиальный алгоритм оптимальной раскраски любого графа. Существование
такого алгоритма означало бы равенство P = NP .

Библиографические
ссылки
[1] Асанов М. О. Дискретная математика: графы, матроиды,
алгоритмы / М. О. Асанов, В. А. Баранский, В. В. Расин. —
Санкт-Петербург : Лань, 2010. — 368 с. — ISBN 978-5-8114-
1068-2.
[2] Алгоритмы: построение и анализ / Томас Х. Кормен,
Чарльз И. Лейзерсон, Рональд Л. Ривест, Клиффорд
Штайн. — 3-е изд. — Москва : Диалектика-Вильямс, 2020. —
1328 с. — ISBN 978-5-907114-11-1.
[3] Макконелл Дж. Основы современных алгоритмов /
Дж. Макконелл. — Москва : Техносфера, 2006. — 368 с. —
ISBN 0-7637-1634-0.
[4] Гэри М. Вычислительные машины и труднорешаемые зада-
чи / М. Гэри, Д. Джонсон. — Москва : Книга по Требова-
нию, 2012. — 420 с. — ISBN 978-5-458-26100-5.
86

Оглавление
Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Глава 1. Потоки в сетях . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1. Основные понятия и обозначения . . . . . . . . . . . . . 5
1.2. Построение максимального потока . . . . . . . . . . . . 12
1.3. Некоторые другие задачи о потоках в сетях . . . . . 23
1.3.1. Поток в сети со многими источниками
истоками ............................ 23
1.3.2. Поток в мультиграфе . . . . . . . . . . . . . . . . . . 24
1.3.3. Поток в сети с ограничениями
на пропускную способность вершин
иребер .............................. 25
1.3.4. Поток заданной величины . . . . . . . . . . . . . . 26
1.3.5. Поток в сети с ограничениями снизу . . . . . . 28
1.4. Задача о потоке минимальной стоимости . . . . . . . 31
1.4.1. Прямой алгоритм решения задачи
о потоке минимальной стоимости . . . . . . . . 36
1.4.2. Двойственный алгоритм . . . . . . . . . . . . . . . . 41
1.5. Задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Глава 2. Труднорешаемые задачи . . . . . . . . . . . . . . . . . . . . 52
2.1. Введение в теорию труднорешаемых задач . . . . . . 52
2.2. Задача о вершинном покрытии . . . . . . . . . . . . . . . 55
2.2.1. Эвристический алгоритм . . . . . . . . . . . . . . . 55
2.2.2. Алгоритмы с гарантированной
оценкой точности . . . . . . . . . . . . . . . . . . . . . . 57
2.2.3. Частные случаи . . . . . . . . . . . . . . . . . . . . . . . 59
87

88 Оглавление
2.2.4. Построение наименьшего вершинного
покрытия . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.3. Задача коммивояжера . . . . . . . . . . . . . . . . . . . . . . . 62
2.3.1. Эвристический алгоритм. Алгоритм
«Ближайший сосед» . . . . . . . . . . . . . . . . . . . 65
2.3.2. Алгоритмы с гарантированной оценкой
точности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.3.3. Стохастические алгоритмы . . . . . . . . . . . . . 73
2.3.4. Точные решения. Метод ветвей и границ . . 78
2.4. Задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Библиографические ссылки . . . . . . . . . . . . . . . . . . . . . . . . . 86

Учебное издание
Асанов
Березин
Гальперин
Зайнуллина
Сеньчонок
-
М. А. Овечкина
А. А. Бахтерева
А. А. Бахтерева
А. Л. Гальперин

01.11.2023 . 60 × 84 ⁄.
. . . . . 5,35.
.-. . 4,0. 30 . 142
-
620083, , . , 4
.: +7 (343) 389-94-79, 350-43-28
E-mail: rio.marina.ovechkina@mail.ru
-
620083, , . , 4
.: +7 (343) 358-93-06, 350-58-20, 350-90-13
: +7 (343) 358-93-06
http://print.urfu.ru
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
