Серия «Математика»
2011. Т. 4, № 2. С. 114-123
Онлайн-доступ к журналу: http://isu.ru/izvestia
УДК 519.854.2
Построение минимального остова с ограниченной пропускной способностью методом имитации отжига
А. В. Ипатов
Уральский государственный университет им. А. М.Горького
Аннотация. В статье рассматривается задача о минимальном остове с ограниченной пропускной способностью (СМЯТ), относящаяся к классу NP-трудных. Разработан модифицированный метод имитации отжига, позволяющий получать лучшие решения СМЯТ, чем классическая версия метода. Приводятся результаты вычислительного эксперимента.
Ключевые слова: минимальный остов, имитация отжига, метаэвристика, окрестность.
Пусть дан неориентированный граф С = (V, Е), где V = [Уо,У\,..., Уп}, Е = {{^, у-} | г = ]} и для каждого ребра из Е определена его неотрицательная стоимость йц. Назовём вершину Уо корнем, а все остальные вершины — терминалами. Будем считать, что для каждого терминала определён его вес qi — неотрицательное действительное число.
Пусть Т — остов графа С с корнем в у0. Назовём шлюзом терминал, смежный с корнем в графе Т, а шлюзовым поддеревом — максимальное корневое поддерево дерева Т с корнем в шлюзе. Зафиксируем действительное число ^ тах qi, называемое пропускной способностью
Задача о минимальном остове с ограниченной пропускной способностью (далее CMST = Capacitated minimum spanning tree) состоит в нахождении такого остова T графа G с корнем в vo, что:
1) для любого шлюза T сумма весов всех терминалов в его шлюзовом поддереве не превосходит Q;
1. Введение
v;€V\vo
шлюза.
2) среди всех остовов, удовлетворяющих первому свойству, T имеет наименьшую стоимость.
Задача CMST возникает при проектировании сетей телекоммуникаций, гидравлических сетей и автомобильных дорог. Она является NP-трудной даже в том случае, если все q = 1 (см. [8]), в связи с чем большое внимание уделяется разработке эвристических и метаэври-стических методов её решения. Краткий обзор существующих методов можно найти в [11].
В данной работе рассматриваются два метода построения окрестности, возникающей при применении алгоритмов локального поиска. На их основе разработаны алгоритмы решения задачи CMST, реализующие классический и модифицированный метод имитации отжига.
2. Общая схема метода имитации отжига
Метод имитации отжига (simulated annealing) строит последовательность планов оптимизационной задачи на минимум, начиная с начального плана xo и на t-й итерации (итерации нумеруются с нуля) переходя от плана xt к плану xt+i. На каждой из итераций метод действует следующим образом. Сначала явно или неявно для плана xt строится так называемая окрестность N(xt) — дискретная случайная величина, задающая множество «соседних» к xt планов и для каждого из соседних планов — вероятность его выбора. Затем, с учётом вероятностей выбора, из окрестности случайным образом выбирается план xnew. Пусть f (x) — стоимость плана x. Если f (xnew) < f (xt), то в качестве xt+1 выбирается план xnew. Иначе xt+1 задаётся по правилу
= / xnew с вероятностью pt xt+1 \ xt с вероятностью 1 — pt
Здесь pt — вероятность перехода к худшему решению на t-й итерации — некоторая функция от t, xnew и xt.
Процесс построения последовательности планов задачи завершается после выполнения T итераций. Среди всех построенных планов x^ выбирается план с наименьшей стоимостью. Этот план и является результатом работы алгоритма, реализующего метод имитации отжига.
Центральный момент любого алгоритма, основанного на описанном методе — построение окрестности N(x). Явное построение требует перечисления всех лежащих в N(x) планов и для каждого — указания вероятности его выбора в качестве соседнего к плану x. Но поскольку метод имитации отжига не предполагает на каждой итерации перебора всех планов из окрестности, то, как правило, нет необходимости строить N(x) явно. Вместо этого используется алгоритм случайной модификации плана x, а под N(x) понимается множество всех планов, которые
могут быть получены из х применением этого алгоритма (каждый план из N(х) с некоторой вероятностью возвращается алгоритмом).
3. Построение окрестности
В этом разделе мы кратко приведём некоторые алгоритмы модификации плана х, встречающиеся в литературе, посвящённой задаче СМЯТ. Каждый из этих алгоритмов задаёт некоторую окрестность N (х). Можно разделить эти алгоритмы на две группы, исходя из принципа их работы.
Л) Алгоритмы, основанные на удалении/добавлении рёбер.
Алгоритм 1. (см. [7]) Добавим к дереву х случайное ребро, ранее не принадлежащее ему. В образовавшемся при этом цикле найдём максимальное ребро, удаление которого не нарушит ограничения на пропускную способность. Удалим это ребро.
Алгоритм 2. (см. [6]) Удалим из дерева х случайное ребро. Дерево разобьётся на две компоненты связности. Среди всех рёбер, концы которых лежат в разных компонентах, найдём минимальное ребро, добавление которого не нарушит ограничения на пропускную способность. Добавим это ребро.
Алгоритм 3. (см. [2]) Удалим из дерева х два случайных ребра. Найдём два ребра минимального суммарного веса, добавление которых восстанавливает целостность дерева и не нарушает ограничения на пропускную способность (при этом одно из этих рёбер может совпадать с одним из удалённых). Добавим эти два ребра.
В) Алгоритмы, основанные на переносе вершин.
Алгоритмы этой группы оперируют с каждым шлюзовым поддеревом как со множеством вершин, лежащих в этом поддереве. Стоимость такого поддерева определяется как стоимость минимального остова, построенного на множестве вершин поддерева и вершине го. Если степень го в данном минимальном остове больше единицы, то шлюзовое поддерево разбивается на несколько поддеревьев, каждое — с корнем в своём шлюзе.
Алгоритм 4. (см. [4]) Выберем случайный терминал г^. Найдём шлюзовое поддерево Т, отличное от того, в котором лежит г^, и такое, что сумма весов терминалов в Т не превышает Q — ^. Переместим г^ в Т.
Алгоритм 5. (см. [4]) Выберем пару случайных терминалов г^ и г^-, лежащих в шлюзовых поддеревьях Ті и Т, таких, что сумма весов терминалов в Ті не превышает Q — ^ + ^, а сумма весов терминалов в Т не превышает Q — ^ ^. Переместим г^ в Т, а г^- — в Ті.
Алгоритм 6. (см. [9]) Выберем случайный терминал г^ Найдём шлюзовое поддерево Тц, отличное от того, в котором лежит гJi, и такое, что сумма весов всех терминалов, лежащих в Тц либо являющихся потомками гi в дереве х, не превышает Q (здесь и далее вершина гi также считается своим потомком). Переместим всех потомков гi в поддерево Тц либо создадим новое шлюзовое поддерево, состоящее из всех потомков гi (другими словами, перевесим поддерево вершины гi к корню дерева).
Алгоритм 7. (см. [3]) Рассмотрим множество терминалов гР1, гР2, ..., гРй. Пусть Тц — шлюзовое поддерево, в котором лежит терминал гJpj. Также положим гРй+1 = гР1, Тк+1 = Т1. Если для любых 1 ^ г < ] ^ к поддеревья Т и Тц различаются и для любого 1 ^ г ^ к суммарный вес терминалов в 1^+1 не превышает Q —qpi +qpi+1, переместим все вершины гР4 в поддеревья Тт.
4. Реализация алгоритма
Остановимся на алгоритме 4 из предыдущего раздела (Amberg и др., 1996).
Будем обозначать T [v] шлюзовое поддерево с корнем v. В качестве N(xt) возьмём множество планов, получаемых из xt перемещением некоторого терминала vs из шлюзового поддерева T[vo^d] в шлюзовое поддерево T [vnew]. Ниже приведён алгоритм выбора случайного плана xnew из N(xt).
1. Пусть V — множество всех шлюзов в xt. Выберем из V случайный шлюз void.
2. Рассмотрим множество всех терминалов шлюзового поддерева T[v0id]. Выберем из них случайный терминал vs. Удалим vs из T[v0id].
3. Пусть Q = {vi € у \ void | Е qj < Q — qs} U vs. Выберем из Q
Vj €T [vi]
случайную вершину vnew.
4. Если vnew = vs, добавим ребро {v0,vs}, создав тем самым новое шлюзовое поддерево T [vs].
5. Иначе добавим vs в шлюзовое поддерево T[vnew].
6. Искомый план является планом xnew.
При выборе случайного элемента из множества на шагах 1-3 будем считать все элементы данного множества равновероятными.
Оценим временную сложность описанного алгоритма. Пусть перед началом его работы поддерево T[void] содержит им вершин, а поддерево T[vnew] — nnew вершин. Выбор шлюзов на шагах 1 и 3 имеет сложность 0(|у|), выбор терминала на шаге 2 — 0(пои). Шаг 4 выполняется за 0(1).
Осталось оценить сложность вычисления стоимости изменённых шлюзовых поддеревьев Т[г0и] и Т[ггаЄад] на шагах 2 и 5. На шаге 2 требуется построить минимальный остов на множестве из п0и вершин: п0и—1 вершины поддерева Т[г0и] и корня г0. Это может быть сделано за 0(п2и) алгоритмом Прима [5]. На шаге 5 требуется построить минимальный остов на множестве из ПгаЄад + 2 вершин: ПгаЄад + 1 вершины поддерева Т [ггаЄад ] и корня г0. Это можно сделать быстрее чем за 0(пПеад), если воспользоваться следующим утверждением.
Утверждение 1. Любой минимальный остов Т полного графа на множестве вершин V можно превратить в некоторый минимальный остов Т2 полного графа на множестве вершин V и г, где г / V, добавив некоторые рёбра вида {и, г}, где и Є V, и, возможно, удалив некоторые рёбра Ті .
Доказательство. Среди всех минимальных остовов полного графа на множестве вершин V и г выберем остов, отличающийся от Ті наименьшим количеством рёбер. Обозначим его Т2. Докажем, что Т2 не содержит рёбер вида {и1;и2}, где иі;и2 Є V и {иі;и2} / Ті. От противного, пусть в Т2 есть такое ребро {иі, и2}. Удалим его из Т2, разбив Т2 на компоненты связности Сі и С2, иі Є Сі и и2 Є С2. Рассмотрим простой путь из вершины иі в вершину и2 по рёбрам дерева Ті. Найдём в этом пути ребро {и^и} такое, что и Є Сі и и Є С2. Стоимость ребра {и^и} не превосходит стоимости ребра {иі,и2}, поскольку Ті — минимальный остов. Добавив в Т2 ребро {и, и}, получим противоречие с выбором остова Т2. Отсюда следует, что таких рёбер {иі,и2} не существует, то есть любое ребро Т2 либо содержится в Ті, либо инцидентно вершине г. □
Из утверждения 1 следует, что стоимость изменённого шлюзового поддерева Т[ггаеад] на шаге 5 можно найти за время 0(пгаеад ■ ^(пгаеад)) алгоритмом Краскала [5]. Следовательно, общая временная сложность описанного алгоритма — 0(|V"| + + пгаеад ■ ^(пгаеад)).
Приведённая оценка сложности показывает, что основное время уходит на удаление терминала из поддерева Т[г0и] с последующим перестроением минимального остова. Можно ускорить работу алгоритма, если потребовать, чтобы перемещаемый терминал г8 обязательно являлся листом поддерева Т[г0и]. В самом деле, после удаления листа на шаге 2 оставшиеся в Т[г0и] рёбра уже будут образовывать минимальный остов, поэтому нет необходимости использовать алгоритм Прима. Сложность алгоритма уменьшается до 0(|V| + п0и + пгаеад ■ ^(ппеш)).
5. Модифицированный метод имитации отжига
Пусть алгоритм, реализующий классический метод имитации отжига, последовательно строил следующие планы оптимизационной задачи на минимум: жй; жй+1 = жй; жй+2 = жй; ...; жй+г = жй; жй+г+1 = жй. Допустим, /(ж^+г+1) ^ /(ж&). Это означает, что на (к + 1)-й итерации был осуществлён вероятностный переход к худшему решению. Заметим, что все планы жгаеад, найденные с к-й по (к + 1 — 1)-ю итерацию, имели стоимость не меньше /(жк), но некоторые из них, вообще говоря, могли иметь стоимость меньше / (жк+г+1). Это свойство специфично для классического метода имитации отжига.
Можно модифицировать метод имитации отжига так, чтобы в случае вероятностного перехода к худшему решению переход осуществлялся не к текущему соседу, а к лучшему из просмотренных ранее соседей (см. [1]). Полученный в результате такой модификации метод может быть применён к любой оптимизационной задаче, к которой применим классический метод.
Приведём формальное описание модифицированного метода.
1. Выберем некоторый план оптимизационной задачи в качестве начального. Обозначим его жо. Положим ж* = жо, Ь* = +го.
2. Для £ от 0 до Т — 1:
a) Рассмотрим окрестность N (ж*). Выберем из неё случайным образом план жгаеад. Положим Ь = /(жгаеад) — /(ж*).
b) Если Ь < Ь*, положим ж* = жгаеад, Ь* = Ь.
c) Если Ь < 0, положим ж*+1 = жгаеад, Ь* = +ГО.
ё) Иначе с вероятностью р* положим ж*+1 = ж*, Ь* = +го. С вероятностью 1 — р* положим ж*+1 = ж*.
Среди всех построенных планов Жi выбирается план с наименьшей стоимостью. Он является результатом работы алгоритма. Как и в случае классического метода имитации отжига, для создания алгоритма, укладывающегося в описанную схему, нужно зафиксировать три составляющие:
1) алгоритм построения начального плана жо;
2) алгоритм построения окрестности N (ж*);
3) функцию р*.
6. Вычислительный эксперимент
Для сравнения качества различных точных, эвристических и метаэв-ристических алгоритмов разработаны специальные тестовые примеры СМЯТ. Мы будем использовать в ходе вычислительного эксперимента тестовый набор ет200гХ-У из библиотеки ОИ-ЫЬгагу [12]. Примеры из этого набора были предложены У. БЬагаШа. Граф в них содержит 200
вершин (n = 199). Веса терминалов и стоимости всех рёбер — целые числа, имеющие равномерное распределение на отрезке [1,100]. Примеры не удовлетворяют неравенству треугольника. В имени примера cm200rX-Y число X обозначает номер серии (от 1 до 5), а число Y — пропускную способность Q (200, 400 или 800). Примеры из одной серии различаются только значением Q.
Мы реализовали алгоритмы с перемещением произвольного терминала и с перемещением листа, для каждого — классическую и моди-
фицированную версию имитации отжига. В качестве Хо было выбрано тривиальное решение «звезда», в котором каждый терминал является шлюзом. После этого производилось 100 миллионов итераций отжига. В качестве вероятности pt перехода к худшему соседу мы использовали функцию вида:
p ( p, если f (xnew) - f (xt) < D
Pt \ 0, если f (xnew) - f (xt) > D
где p и D — параметры алгоритма.
Каждая из программ была запущена 10 раз на каждом из 15 тестовых примеров. Тестирование производилось на персональном компьютере с процессором Intel Core2 Duo E4600 2.40 GHz.
Программы, реализующие перемещение произвольного терминала, запускались с параметрами p = 0.003 и D = 5, программы, реализующие перемещение листа — с параметрами p = 0.005 и D = 20.
В таблицах I и II приведены результаты работы программ: в Basic — реализующей классический метод имитации отжига, в Enhanced — реализующей модифицированный метод имитации отжига. Для каждого примера приведена стоимость лучшего известного решения (Best), указаны лучший (Min) и средний (Avg) результат работы программы на этом примере и среднее относительное отклонение найденного решения от оптимального (¿) в процентах. Лучшие известные решения для примеров взяты из работы [10].
Результаты эксперимента показывают, что на всех примерах модифицированная версия имитации отжига даёт значительно лучший результат, чем классическая, как для окрестности с перемещением произвольного терминала, так и для окрестности с перемещением листа. Если сравнивать алгоритмы построения окрестностей, то видно, что при применении модифицированного метода перемещение произвольного терминала даёт результаты лучше на всех примерах, кроме cm200r2-400, cm200r4-200 и cm200r5-400, хотя это улучшение для большинства примеров не превышает 1%.
В таблице III отражено время работы программ. Время работы существенно зависит от значения Q (так как оно влияет на количество терминалов в шлюзовых поддеревьях), несущественно зависит от примера (время работы для примеров с одинаковыми Q отличается незна-
Таблица 1.
Перемещение произвольного терминала
Test Basic Enhanced Best
Min Avg S, % Min Avg S, %
cm200r1-200 1075 1133.4 14.02 1019 1028.8 3.50 994
cm200r1-400 415 428.6 9.62 400 405.1 3.61 391
cm200r1-800 265 268.5 5.71 257 258.8 1.89 254
cm200r2-200 1316 1392.9 17.25 1221 1242.9 4.62 1188
cm200r2-400 492 509.7 7.08 485 488.5 2.63 476
cm200r2-800 306 308.3 4.86 296 297.3 1.12 294
cm200r3-200 1474 1507.7 14.83 1358 1372.2 4.51 1313
cm200r3-400 583 591.8 5.87 565 568.2 1.65 559
cm200r3-800 373 374.9 3.85 362 364.5 0.97 361
cm200r4-200 1017 1081.4 17.93 945 962.7 4.98 917
cm200r4-400 409 416.5 7.07 395 398.7 2.49 389
cm200r4-800 283 287.5 4.55 277 278.4 1.24 275
cm200r5-200 1056 1096.3 15.64 966 989.5 4.38 948
cm200r5-400 444 452.2 8.18 429 433.7 3.76 418
cm200r5-800 304 305.9 4.76 295 295.8 1.30 292
чительно) и не зависит от того, классическая или модифицированная версия имитации отжига применяется. Отметим также, что применение алгоритма Краскала вместо алгоритма Прима, несмотря на выигрыш в асимптотике, не даёт реального ускорения на данных примерах, поскольку приходится строить минимальный остов для графа с малым числом вершин. Программы, реализующие перемещение листа, работают быстрее программ, реализующих перемещение произвольного терминала, за счёт того, что на каждой итерации ищется минимальный остов в одном шлюзовом поддереве, а не в двух. Эта разница наиболее ярко выражена на примерах с Q = 800, на которых основное время работы программ уходит на поиск минимального остова.
Список литературы
1. Ипатов А. В. Модифицированный метод имитации отжига в задаче CMST / А. В. Ипатов // Информ. бюл. Ассоциации мат. программирования. -Екатеринбург : УрО РАН, 2011. - Вып. 12. - С. 182-183.
2. Ипатов А. В. Об одном методе построения окрестности в задаче CMST / А.
В. Ипатов // Современные проблемы математики : тез. 42-й всерос. молодёж. шк.-конф. - Екатеринбург : ИММ УрО РАН, 2011. - С. 161-163.
3. Ahuja R. K. Multi-exchange neighborhood search algorithms for the capacitated minimum spanning tree problem / R. K. Ahuja, J. B. Orlin, D. Sharma // Mathematical Programming. - 2001. - Vol. 91. - P. 71-97.
Таблица 2.
Перемещение листа
Test Basic Enhanced Best
Min Avg S, % Min Avg S, %
cm200r1-200 1082 1092.2 9.88 1027 1034.7 4.09 994
cm200r1-400 431 433.9 10.97 402 408.7 4.53 391
cm200r1-800 266 268.8 5.83 259 262.3 3.27 254
cm200r2-200 1275 1308.6 10.15 1232 1248.8 5.12 1188
cm200r2-400 510 514.9 8.17 482 487.7 2.46 476
cm200r2-800 305 308.5 4.93 298 299.6 1.90 294
cm200r3-200 1420 1450.5 10.47 1375 1383.9 5.40 1313
cm200r3-400 592 594.9 6.42 566 572 2.33 559
cm200r3-800 372 375.9 4.13 366 367.7 1.86 361
cm200r4-200 980 1003.9 9.48 951 955.9 4.24 917
cm200r4-400 423 427.2 9.82 399 401.9 3.32 389
cm200r4-800 286 287.3 4.47 277 279.9 1.78 275
cm200r5-200 1038 1049.6 10.72 992 997.3 5.20 948
cm200r5-400 450 458.3 9.64 427 432.4 3.44 418
cm200r5-800 304 306 4.79 297 298.8 2.33 292
Таблица 3.
Время работы программ
Q Перемещение терминала Перемещение листа
200 400 800 109-121 сек 235-244 сек 617-633 сек 85-95 сек 145-154 сек 300-314 сек
4. Amberg A. Capacitated minimum spanning trees: Algorithms using intelligent search / A. Amberg, W. Domschke, S. Voss // Combinatorial Optimization: Theory and Practice. - 1996. - Vol. 1. - P. 9-39.
5. Introduction to algorithms, second edition / T. Cormen, C. Leiserson, R. Rivest,
C. Stein. - The MIT Press, Cambridge, MA, 2001. - 1184 p.
6. Elias D. Topological design of multipoint teleprocessing networks / D. Elias, M. Ferguson // IEEE Transactions on Communications. - 1974. - Vol. 22. -P. 1753-1762.
7. Optimal design of centralized computer networks / H. Frank, I.T. Frisch, R. Van Slyke, W. S. Chou // Networks. - 1971. - Vol. 1. - P. 43-57.
8. Papadimitriou C. H. The complexity of the capacitated tree problem / C. H. Papadimitriou // Networks. - 1978. - Vol. 8. - P. 217-230.
9. A tabu search algorithm for the capacitated shortest spanning tree / Y. M. Sharaiha, M. Gendreau, G. Laporte, I. H. Osman // Networks. - 1997. -Vol. 29. - P. 161-171.
10. Robust branch-cut-and-price for the capacitated minimum spanning tree problem over a large extended formulation / E. Uchoa [et al.] // Mathematical Programming: Series A and B. - 2007. - Vol. 112, Iss. 2. - P. 443-472.
11. Voss S. Capacitated minimum spanning trees / S. Voss // Encyclopedia of optimization / eds. C. A. Floudas, P. M. Pardalos. - Kluwer Academic Publishers, Doordrecht, 2001. - Vol. 6. - P. 225-235.
12. Capacitated minimal spanning tree [Electronic resource]. - URL: http://people.brunel.ac.uk/~mastjjb/jeb/orlib/capmstinfo.html
A. Ipatov
Building a capacitated minimum spanning tree using simulated annealing
Abstract. In this paper we consider capacitated minimum spanning tree problem (CMST) which is NP-hard. We have developed enhanced simulated annealing method, which allows getting better solutions for CMST than the classical one. Computational results on the benchmark instances are reported.
Keywords: capacitated minimum spanning tree; simulated annealing; metaheuristic; neighborhood
Ипатов Александр Владимирович, Уральский государственный университет им. А.М.Горького ([email protected])
Ipatov Aleksandr, Ural State University ([email protected])