Научная статья на тему 'Алгоритм точного решения дискретной задачи Вебера для простого цикла'

Алгоритм точного решения дискретной задачи Вебера для простого цикла Текст научной статьи по специальности «Математика»

CC BY
545
58
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
ЗАДАЧА ВЕБЕРА / ПРОСТОЙ ЦИКЛ / ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ / ТОЧНЫЙ АЛГОРИТМ / WEBER PROBLEM / CYCLE / DYNAMIC PROGRAMMING / EXACT ALGORITHM

Аннотация научной статьи по математике, автор научной работы — Шангин Роман Эдуардович

Предлагается полиномиальный алгоритм, находящий точное решение задачи Ве-бера в дискретной постановке для простого цикла и конечного множества позиций размещения, основанный на динамическом программировании. Проведен вычислительный эксперимент по анализу эффективности предложенного алгоритма в сравнении с пакетом IBM ILOG CPLEX.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Exact algorithm for solving discrete Weber problem for a cycle

A polynomial algorithm solving discrete Weber problem for cycle and for finite set of location positions is presented. The algorithm is based on the dynamic programming idea. The comparison of action times of the given algorithm and of an integer linear programming model, which was realized in IBM ILOG CPLEX, is carried out.

Текст научной работы на тему «Алгоритм точного решения дискретной задачи Вебера для простого цикла»

2013 Вычислительные методы в дискретной математике №4(22)

УДК 519.863

АЛГОРИТМ ТОЧНОГО РЕШЕНИЯ ДИСКРЕТНОЙ ЗАДАЧИ ВЕБЕРА

ДЛЯ ПРОСТОГО ЦИКЛА

Р. Э. Шангин

Южно-Уральский государственный университет, г. Челябинск, Россия E-mail: shanginre@gmail.com

Предлагается полиномиальный алгоритм, находящий точное решение задачи Вебера в дискретной постановке для простого цикла и конечного множества позиций размещения, основанный на динамическом программировании. Проведен вычислительный эксперимент по анализу эффективности предложенного алгоритма в сравнении с пакетом IBM ILOG CPLEX.

Ключевые слова: задача Вебера, простой цикл, динамическое программирование, точный алгоритм.

Введение

Рассматривается дискретная задача Вебера [1, 2] для случая, когда размещаемый граф имеет вид простого цикла. Приведём математическую формулировку задачи.

Пусть G = (J, E) —простой цикл, где J — множество вершин (размещаемые объекты); E — множество рёбер графа G (связи между размещаемыми объектами). Пусть

V — конечное множество позиций (точек), предназначенных для размещения вершин графа G. Размещением вершин графа G назовём однозначное отображение п : J ^ V, то есть вершина i Е J размещается в позицию ^ Е V. Множество всех однозначных отображений множества вершин J в множество позиций V обозначим через П= {п : J ^ V}.

Стоимость размещения вершины i Е J в множестве позиций V задаётся функцией p : J х V ^ R+, где p(i,'di) — стоимость размещения вершины i Е J в позиции ^ Е V. Стоимость размещения ребра [i, j] Е E на V2 определяется функцией c : E х V2 ^ R+, где c([i,j],'di,'dj) —стоимость размещения ребра [i,j] Е E на V2 при размещении его концевых вершин i,j Е J в позициях 'di,'dj Е V соответственно. Отметим, что зависимость между стоимостью размещения ребра [i,j] и стоимостью размещения его концевых вершин i, j отсутствует.

Необходимо разместить вершины графа G в позициях множества V таким образом, чтобы суммарная стоимость размещения вершин и рёбер графа G была минимальной:

F(п) = Е c([i,j],n(i),n(j)) + ЕP(i,n(i)) ^ mill. (1)

[i,j]eE iEJ

Заметим, что в дискретной постановке задачи Вебера размещаемые объекты рассматриваются как точки, а структура области, в которой производится размещение, является дискретной, то есть для размещения объектов указывается конечное количество позиций, причём ограничения на размещение объектов отсутствуют.

В общем случае дискретная задача Вебера является NP-трудной [3] и представляет собой релаксацию квадратичной задачи о назначениях [4], где условие инъективности

отображения множества вершин J графа G в конечное множество позиций размещения V снимается, то есть в дискретной задаче Вебера в одну позицию возможно размещение нескольких вершин графа [5-7].

Задача Вебера исследовалась в различных постановках, в том числе для непрерывной области размещения [8], в многокритериальной постановке [9] и др. Известны полиномиально разрешимые частные случаи. Для решения задачи Вебера на древовидной сети в непрерывной постановке, то есть когда допускается размещение объектов на дугах, разработаны полиномиальные алгоритмы [10]. В [11] предложен полиномиальный алгоритм решения минимаксной задачи Вебера на дереве. Предложен полиномиальный алгоритм для решения задачи Вебера для корневого дерева и конечного множества позиций размещения [6].

1. Точный алгоритм для решения дискретной задачи Вебера для цикла

Обозначим тройкой (G, V, F) рассматриваемую дискретную задачу Вебера (1), где G = (J, E) —простой цикл, V — конечное множество позиций размещения и F — функция стоимости размещения графа G. Предлагается полиномиальный алгоритм CyWPA (Cycle Weber Problem Algorithm), основанный на динамическом программировании (ДП) и находящий оптимальное решение задачи (G, V, F).

Введём следующие обозначения. Пусть s Е J — произвольная вершина цикла G и T = (I, W) —подграф графа G, индуцированный множеством вершин J \ {s}. Пусть N = |I1 —мощность множества вершин цепи T и in Е I — висячая вершина цепи T. Выбор вершины i_N в качестве корня дерева T = (I, W) индуцирует на множестве вершин I отношение частичного порядка

L = {(i,j) : i,j Е I,j принадлежит цепи в T между i и iN}. (2)

В дальнейшем будем считать, что I = {1, 2,..., N} и выполняется условие (/, m) Е L ^ ^ I < m, где /, m Е I. Обозначим Gi — подграф графа G, индуцированный множеством вершин {s, 1, 2,... , i — 1, i}. На рис. 1 представлены цепь T и подграф G3 в цикле G.

Рис. 1. Цепь Т и подграф Сз в простом цикле С

Положим, что С(^5), Е V, есть граф С, в котором вершина в размещена в позицию $8. Исходную задачу (С, V, Е) разобьём на ряд подзадач (С($8), V, Е) для любых Е V, где тройка (С(^5), V, Е) есть дискретная задача Вебера. Решение каждой подзадачи (С(^5), V, Е), в свою очередь, разбивается на N + 1 шагов процесса ДП. Значение функции Беллмана /г($г), вычисленное на шаге г процесса ДП решения подзадачи (С(^5), V, Е) для некоторого состояния Е V, есть стоимость оптимального размещения подграфа Gi в множестве позиций V, когда размещение вершин в и г в множестве V

равно $3 и $г соответственно. На шаге г процесса ДП решения подзадачи (С($3), V, Г) для каждого состояния $г Е V определяется также множество V ($г) оптимального размещения вершин подграфа в множестве позиций V, когда размещение вершин в и г в множестве V равно $5 и $г соответственно.

Алгоритм CyWPA

Этап 0. Выбрать произвольную вершину в Е 3. Определить подграф Т = = (I, Ш) и на множестве его вершин задать отношение порядка (2). Для каждого $3 Е V определить граф С($3).

Этап 1. Для каждого $3 Е V решить подзадачу (С($3), V, Г).

Шаг 1 процесса ДП. Для каждого состояния $1 Е V вычислить значение функции Беллмана

Л($1) = р(1,$1) + с([1,в],$1,$в) + Р(в,$з)

и определить множество размещения

V ($1) = {$1 }и{$*}.

Шаг г, г = 2, 3,..., N — 1, процесса ДП. Для каждого $г Е V и любого $г-1 Е V вычислить значение функции Я($г, $г-1) стоимости оптимального размещения подграфа в множестве позиций V, когда вершины в, г и г — 1 размещены в позициях $3, $г и $г-1 соответственно:

Д($г,$г-1) = р(г, $г) + с([г,г — 1],$г,$г-1) + /г-1 ($^-1).

Для каждого состояния $г Е V вычислить значение функции Беллмана

/г($г) = ШШ {Я($г,$г_1)} (3)

$г-1€У

и определить множество размещения

V($г) = {$г}и V($*-1), $*-1 = а^ шт {Д($г,$г-1)}_ (4)

$г-1€У

Шаг N процесса ДП. Для каждого $г^ Е V и любого $г^-1 Е V вычислить значение функции Я($г^ , $^ -1) по формуле

Л($ад ,$г*-1) = р(гм ) + с([гм ,гм — 1]

, $г^, $г^ -1

) + /м -1 ($г^-1) + с([гм ,в],$*„ ,$*)•

Для каждого состояния $г^ Е Ум вычислить значение функции Беллмана /м ($г^) и определить множество V($г^) по формулам (3) и (4) соответственно.

Шаг N + 1 процесса ДП. Определить оптимальное размещение пс($в) вершин графа С($3) и его стоимость Гс(^з) по формулам

пС(^) = V($*^ ) , $*у = arg Шп {/м ($г^ ) }, (5)

^ У

ГС(^) = ЩП {/М($гм)}-^ еУ

Этап 2. После того, как оптимальное решение подзадач (С($3), V, Г) для каждого

$3 Е V найдено, определить оптимальное решение исходной задачи (С, V, Г):

пс = ^(^ $3 = а^ {ГС(^)}- (6)

Стоп.

Теорема 1. Алгоритм СуШРА находит точное решение задачи Вебера (С, V, Г), где С = (3, Е) —простой цикл; V — конечное множество позиций размещения.

Доказательство. Докажем, что подзадача (С^),^ Г) при каждом фиксированном размещении $3 Е V решается алгоритмом СуШРА оптимально. Очевидно, на шаге 2 процесса ДП для любых $3, $2 Е V алгоритм находит оптимальное размещение вершины 1 относительно заданного размещения $3,$2 вершин в и 2, причём в данном случае это достигается путем полного перебора всех способов размещения $1 вершины 1 в множестве позиций V. На шаге 3 процесса ДП для любых $3,$3 Е V алгоритм находит оптимальное размещение вершин 1 и 2 относительно заданного размещения $3, $3 вершин в и 3, поскольку для вершины 1 оптимальное размещение определено на предыдущем шаге 1 процесса ДП для каждого заданного размещения $2 вершины 2, а оптимальное размещение вершины 2, согласно формуле (4), находится перебором способов размещения $2 в множестве позиций V с целью минимизации стоимости размещения подграфа С3, когда размещение вершин в и 3 в V равно $3 и $3 соответственно.

Аналогично, на последующих шагах г = 4, 5,... , N динамического процесса для любых $3,$г Е V алгоритм находит оптимальное размещение вершин 1, 2,..., г — 1 относительно заданного размещения $3,$г вершин в и г.

Таким образом, рекуррентно определяя оптимальное размещение вершин подграфа на шагах г = 2, 3,..., N, алгоритм на шаге N + 1 процесса ДП, согласно формуле (5), зная оптимальное размещение вершин 1, 2,... , N — 1 относительно любых заданных размещений $3 и $гм, находит оптимальное размещение графа С($3).

Поскольку размещение графа С($3) для любых $3 Е V найдено оптимально, то алгоритм на этапе 2, осуществив полный перебор способов размещения $3 вершины в в множестве позиций V согласно формуле (6), находит оптимальное решение исходной задачи (С, V, Г). ■

Теорема 2. Вычислительная сложность алгоритма СуШРА не превосходит 0(^|3(|31 — 2)) операций. Пространственная сложность равна 0(^|2) памяти.

Доказательство. Определим оценку числа операций, требуемых для решения одной подзадачи (С($3), V, Г), $3 Е V. На шаге 1 процесса ДП необходимо выполнить 0(| V|) операций, так как 0(^|) операций требуется для вычисления значений функции Беллмана /1(-) и 0(^|) операций — для определения множеств размещения V(■) вершин подграфа С1. На каждом из последующих шагов г = 2, 3,... , N процесса ДП требуется выполнить 0(|V|2) операций, поскольку 0(|V|2) операций необходимо для вычисления значений функции Я(-), столько же — для вычисления значений функции Беллмана /г(-) и столько же — для определения множеств размещения V(■) вершин подграфа Сг. На шаге N + 1 требуется выполнить 0(^|) операций, так как столько операций необходимо для определения множества пс($в) оптимального размещения вершин графа С($3) и для вычисления значения функции ГЬ($в) стоимости такого оптимального размещения. В соответствии с этим для решения одной подзадачи (С($3), V, Г) требуется 0(^|2(|31 — 2)) вычислительных операций, где

0(| V |2(| 31 — 2)) = 0(^ |) + 0(^ |2)(| 31 — 2) + 0(^ |).

Заметим, что для определения множества п£. оптимального размещения вершин графа С требуется 0(^|) операций. Исходя из того, что количество решаемых подзадач (С($3), V, Г) равно IV|, а для решения одной подзадачи требуется 0(| V|2 ■ (|31 — 2))

операций, оценка вычислительной сложности алгоритма CyWPA равна O(|V|3•(I J| — 2)) операций.

Определим оценку пространственной сложности алгоритма. Положим, что для хранения множества V(•) требуется O(|V|) памяти. При решении любой подзадачи (G($s), V, F) на шаге 1 процесса ДП требуется O(|V|2) памяти, так как O(|V|2) памяти требуется для хранения множеств V($1), $1 G V, и O(|V|) памяти — для хранения массива /!(•), где для хранения одного значения функции /j(-) требуется O(1) памяти. На каждом из последующих шагов i = 2, 3,... , N процесса ДП требуется O(| V|2) памяти, поскольку O(|V|2) памяти требуется для хранения множеств V($i-1), $i-1 G V, и массива /i-1(^), полученных на предыдущем шаге i — 1 процесса ДП; O(|V|2) памяти требуется для хранения массива R($i,$i-1), $i,$i-1 G V, и O(|V|2) памяти — для хранения множеств V($j), $ G V, и массива /*(•). На шаге N + 1 требуется O(|V|2) памяти, так как столько памяти требуется для хранения множеств V($iN), G V, и массива /n(•), полученных на предыдущем шаге N процесса ДП, и O(| V|) памяти требуется для хранения множества nc(^s) оптимального размещения вершин графа G($s). Заметим, что на каждом шаге i = 2, 3,... , N процесса ДП для определения множеств

V($i), $ G V, и массива /;(•) требуются только соответствующие множества V($i-1), $i-1 G V, и массив /i_1 (•), полученные на предыдущем шаге i — 1, поэтому необходимость хранения в памяти на шаге i = 2, 3,..., N массивов V($j), G V, и /(•), определённых на всех предшествующих шагах j = i — 2, i — 3,... процесса ДП, отпадает.

На этапе 2 для определения множества оптимального размещения вершин графа G требуется O(| V|2) памяти, поскольку O(|V|) памяти требуется для хранения одного множества размещения nc(^s), а количество хранимых в памяти множеств nc(^s) на этапе 2 равно | V|. В соответствии с этим оценка пространственной сложности предложенного алгоритма CyWPA равна O(|V|2) памяти. ■

2. Экспериментальное исследование эффективности алгоритма CyWPA

Алгоритм CyWPA реализован на ЭВМ в среде MATLAB. Проведён вычислительный эксперимент по анализу его эффективности. Для оценки эффективности алгоритма использовался программный пакет IBM ILOG CPLEX Optimization Studio 12.2 (решение модели целочисленного линейного программирования (ЦЛП) дискретной задачи Вебера алгоритмом ветвей и границ с ограничением по времени работы).

Для проведения эксперимента был случайным образом с равномерным распределением сгенерирован класс тестовых задач, состоящий из серий, каждая из которых включает 30 задач одинаковой размерности. Вычисления проводились на компьютере с процессором Intel Pentium 1.86 GHz.

Результаты вычислительного эксперимента приведены в таблице, где taig — среднее время работы предложенного алгоритма, с; tiLp — среднее время работы модели ЦЛП, реализованной в среде IBM ILOG CPLEX Optimization Studio 12.2, с.

Результаты эксперимента

IJI IVI ^alg ^ILP

5 5 0,0167 0,0071

10 10 0,0854 0,6927

20 20 0,9139 15,3793

40 40 9,2132 —

100 100 386,8167 —

«—» —решение не удалось получить за приемлемое время (1000 с)

Для дискретной задачи Вебера для простого цикла G = (J, E) и конечного множества позиций размещения V размерности | J | = 40, |V | =40 и выше не удалось получить решение с помощью пакета IBM ILOG CPLEX за приемлемое время (1000с); среднее время решения задачи Вебера такой размерности с помощью предлагаемого алгоритма CyWPA не превысило 10 с. Для задачи Вебера размерности |J| = 20, |V| = 20 среднее время работы предлагаемого алгоритма не превысило 1 с, тогда как среднее время работы пакета IBM ILOG CPLEX составило 16 с. Стоит отметить, что среднее время решения задачи Вебера размерности |J| = 5, |V| = 5 и ниже с помощью предложенного алгоритма CyWPA значительно превзошло среднее время работы пакета IBM ILOG CPLEX.

Заключение

Предложен полиномиальный алгоритм, основанный на динамическом программировании, находящий оптимальное решение дискретной задачи Вебера, когда размещаемый граф имеет вид простого цикла. Определены оценки вычислительной и пространственной сложности предложенного алгоритма.

Проведён вычислительный эксперимент по анализу эффективности предложенного алгоритма в сравнении с пакетом IBM ILOG CPLEX Optimization Studio 12.2. Среднее время решения дискретной задачи Вебера размерности |J| = 100, |V| = 100 для простого цикла и конечного множества позиций размещения с помощью предложенного алгоритма CyWPA не превысило 400 с, в то время как с помощью пакета IBM ILOG CPLEX 12.2 не удалось получить решение задачи размерности | J| = 40, |V| = 40 за 1000 с. Из результатов эксперимента следует, что применение предложенного алгоритма перспективно для решения дискретной задачи Вебера для простого цикла средней и большой размерности.

ЛИТЕРАТУРА

1. Шангин Р. Э. Исследование эффективности приближенных алгоритмов решения одного частного случая задачи Вебера // Экономика, статистика и информатика. Вестник УМО. 2012. №1. С. 163-168.

2. ПанюковА.В., Пельцвергер Б Ф. Оптимальное размещение дерева в конечном множестве // Журн. вычисл. математики и матем. физики. 1988. Т. 28. №2. С. 618-620.

3. Панюков А. В. Модели и методы решения задач построения и идентификации геометрического размещения: дис. ... д-ра физ.-мат. наук. Челябинск, 1999. 260 с.

4. Сергеев С. А. Квадратичная задача о назначениях I // Автоматика и телемеханика. 1999. №8. С. 127-147.

5. Панюков А. В., Пельцвергер Б. Ф., Шафир А. Ю. Оптимальное размещение точек ветвления транспортной сети на цифровой модели местности // Автоматика и телемеханика. 1990. №9. С. 153-162.

6. Panyukov А. V. and Pelzwerger B. V. Polynomial algorithms to finite Weber problem for a tree network // J. Comput. Appl. Math. 1991. V. 35. P. 291-296.

7. Шангин Р. Э. Разработка и анализ алгоритмов для задачи Вебера // Проблемы оптимизации и экономические приложения. Омск, 2012. С. 121-122.

8. Трубин В. А. Эффективный алгоритм для задачи Вебера с прямоугольной метрикой // Кибернетика. 1978. №6. С. 67-70.

9. Zabudsky G. G. and Filimonov D. V. An algorithm for minimax location problem on tree with maximal distances // Proc. Second Intern. Workshop “Discrete Optimization Methods in Production and Logistics” (D0M2004). Omsk, 2004. P. 81-85.

10. Забудский Г. Г., Филимонов Д. В. О минимаксной и минисуммной задачах размещения на сетях // Труды XII Байкальской Междунар. конф. «Методы оптимизации и их приложения». Омск, 2001. С. 150-155.

11. Филимонов Д. В. Решение дискретной минимаксной задачи размещения на древовидной сети // Материалы ежегодного научного семинара аспирантов. Омск, 2003. С. 58-61.

i Надоели баннеры? Вы всегда можете отключить рекламу.