УДК 519.863
ТОЧНЫЙ АЛГОРИТМ ДЛЯ РЕШЕНИЯ ОДНОГО ЧАСТНОГО СЛУЧАЯ ЗАДАЧИ ВЕБЕРА В ДИСКРЕТНОЙ ПОСТАНОВКЕ
Р. Э. Шангин
Предлагается детерминированный квазиполиномиальный алгоритм, находящий точное решение задачи Вебера в дискретной постановке для п-последовательно-связной цепи и конечного множества позиций размещения, основанный на динамическом программировании. Дан теоретический анализ предложенного алгоритма. Проведен вычислительный эксперимент по анализу эффективности предложенного алгоритма в сравнении с пакетом 1ВЫ ^00 CPLEX.
Ключевые слова: задача Вебера, п-последовательносвязная цепь, динамическое программирование, точный алгоритм, квазиполиномиальный алгоритм.
Рассматривается задача Вебера в дискретной постановке [1] для п-последовательно-связной цепи [2] и конечного множества позиций размещения.
Пусть О = (3, Е) — п-последовательносвязная цепь, где 3 — множество вершин графа (размещаемые объекты), Е = {(г,^) : г,^ € 3} — множество рёбер (связи между размещаемыми объектами). Пусть V — конечное множество, элементами которого являются позиции, предназначенные для размещения вершин графа О. Размещением вершин графа О назовем однозначное отображение п : 3 ^ V, то есть вершина г € 3 размещается в позицию ^ € V, причём в одну позицию возможно размещение нескольких вершин графа.
Стоимость размещения вершины г € 3 в множестве позиций V задается функцией р : 3 х V ^ К+, где р(г,^) —стоимость размещения вершины г € 3 в позиции ^ € V. Стоимость размещения ребра (г, ]) € Е на V2 определяется функцией с : Е х V2 ^ К+, где с((г,]),^дi,^дj) — стоимость размещения ребра (г,]) € Е на V2 при размещении его концевых вершин г,€ 3 в позициях '&i,'&j € V соответственно.
Требуется разместить вершины графа О в позициях множества V таким образом, чтобы суммарная стоимость размещения вершин и рёбер графа О была минимальной. Формулировка исследуемой задачи в терминах отображений имеет вид
Р(п) = Е с((г,.7),п(г),п(?)) + ЕР(г,п(г)) ^ тт. (1)
Задача Вебера в дискретной постановке в случае, когда структура связей между размещаемыми объектами задается графом произвольной структуры, является ЫР-трудной [3], однако известны её полиномиально разрешимые частные случаи [1, 4, 5].
Предлагается квазиполиномиальный алгоритм, находящий точное решение задачи Вебера для п-последовательносвязной цепи и конечного множества позиций размещения, основанный на динамическом программировании (ДП).
Идея алгоритма заключается в следующем. Обозначим тройкой (О, V, Р) задачу Вебера (1), где О = (3, Е) — п-последовательносвязная цепь; V — конечное множество позиций размещения и Р — функция стоимости размещения графа О. На множестве вершин цепи О задается нумерация согласно определению 1, предложенному в работе [2]. Процесс решения задачи (О,^ Р) разбивается на |31 — п шагов процесса ДП, где переход от одного шага динамического процесса к другому рассматривается как последовательный перебор вершин графа О в соответствии с их нумерацией. Обозначим Gi = (^,Е^ подграф графа О, индуцированный вершинами, номера которых принадлежат множеству {1, 2,... , г + п}, где 1 ^ г ^ 131 — п. На каждом шаге
i = 1, 2,..., |J | — n процесса ДП алгоритм рекуррентно находит оптимальное решение подзадачи (Gj, V, F), зная оптимальное решение подзадачи (Gi-i, V, F), полученное им на предыдущем шаге. Так, на конечном шаге | J| — n алгоритм находит оптимальное решение исходной задачи (G, V, F), поскольку G|j|-n = G, а подзадачи (Gj, V, F) на предыдущих шагах решены оптимально. Доказана
Теорема 1. Предложенный алгоритм находит точное решение задачи Вебера (1), где G - n-последовательносвязная цепь; V - конечное множество позиций размещения.
Вычислительная сложность алгоритма не превосходит O(|V|n+1(| J| — n)) операций, пространственная сложность равна O(| V|n+2). Проведён вычислительный эксперимент по анализу времени работы алгоритма. Для оценки эффективности алгоритма использовался программный пакет IBM ILOG CPLEX Optimization Studio 12.2 (решение модели целочисленного линейного программирования задачи Вебера (1) алгоритмом ветвей и границ с ограничением по времени работы). Тестовые данные генерировались случайным образом с равномерным распределением. Решались серии из 30 задач одинакового размера (| J|, |V|) —от (5,5) до (100,100).
Вычислительный эксперимент показал, что применение данного алгоритма перспективно при сравнительно малых значениях n, причём чем меньше n и чем больше количество вершин размещаемого графа, тем предлагаемый алгоритм более эффективен по сравнению с точными алгоритмами, являющимися вариациями полного перебора с отсевом заведомо бесперспективных подмножеств допустимых решений. Чем ближе n к числу вершин размещаемого графа, тем предлагаемый алгоритм менее эффективен. Например, при решении задачи Вебера для n-последовательносвязной цепи G = (J, E) с количеством вершин |J| = n + 1 время работы предложенного алгоритма оказалось сравнимо с временем работы алгоритма, использующего идею тривиального последовательного перебора допустимых решений.
ЛИТЕРАТУРА
1. Panyukov А. V. and Pelzwerger B. V. Polynomial algorithms to finite Veber problem for a tree network // J. Comput. Appl. Math. 1991. V. 35. P. 291-296.
2. Шангин Р. Э. О некоторых свойствах n-последовательносвязной цепи // Вестник ЮУрГУ. Сер. Вычислительная математика и информатика. 2013. Т. 2. №1. С. 106-113.
3. Панюков А. В. Модели и методы решения задач построения и идентификации геометрического размещения: дис. ... докт. физ.-мат. наук. М., 1999.
4. Забудский Г. Г., Филимонов Д. В. Решение дискретной минимаксной задачи размещения на сети // Изв. вузов. Математика. 2004. №5. С. 33-36.
5. Трубин В. А. Эффективный алгоритм для задачи Вебера с прямоугольной метрикой // Кибернетика. 1978. №6. С. 67-70.