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

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

CC BY
179
24
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
ЗАДАЧА РАЗБИЕНИЯ МНОЖЕСТВА / SET PARTITION PROBLEM / СИСТЕМЫ ПОДДЕРЖКИ ПРИНЯТИЙ РЕШЕНИЙ / DECISION SUPPORT SYSTEM / МЕТОД ВЕТВЕЙ И ГРАНИЦ / BRANCH AND BOUND METHOD / МАКСИМАЛЬНЫЙ ПОТОК В СЕТИ / MAXIMUM FLOW IN NETWORK

Аннотация научной статьи по математике, автор научной работы — Беркетов Геннадий Александрович, Микрюков Андрей Александрович, Полоус Анатолий Иванович

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

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

Похожие темы научных работ по математике , автор научной работы — Беркетов Геннадий Александрович, Микрюков Андрей Александрович, Полоус Анатолий Иванович

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

THE SET PARTITION PROBLEM SOLUTION USING RELAXATION METHOD TO THE SPECIALITY NETWORK PROBLEM

The article considers the original algorithm for solving the partition set problem, which has numerous applications in the analysis and synthesis of organizational, technical and economic systems and processes. Efficiency the proposed algorithm allows to solve with its help specific practices for large-scale problems. Instruments for solving such problems included in the decision support system in multicomputer and multiprocessor systems.

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

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

УДК 330.46 ВАК 05.13.00 ГРНТИ 28.29.00

Геннадий Александрович Беркетов,

к.т.н., профессор,

Российский экономический университет им. Г.В. Плеханова

Тел.: (495) 442-61-11

Эл. почта: GABerketov@mesi.ru

Андрей Александрович Микрюков,

к.т.н., доцент

Российский экономический университет им. Г.В. Плеханова

Тел.: (495) 442-61-11

Эл. почта: AMikrukov@mesi.ru

Анатолий Иванович Полоус,

к.т.н., доцент

Российский экономический университет им. Г.В. Плеханова

Тел.: (495) 442-61-11

Эл. почта: APolous@mesi.ru

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

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

THE SET PARTITION PROBLEM SOLUTION USING RELAXATION METHOD TO THE SPECIALITY NETWORK PROBLEM

Gennadij A. Berketov,

PhD in Technical science, Professor Plekhanov Russian University of Economics Tel.: (495) 442-61-11 E-mail: GABerketov@mesi.ru

Andrej A. Mikrukov,

PhD in Technical science, Associate professor

Plekhanov Russian University

of Economics

Tel.: (495) 442-61-11

E-mail: AMikrukov@mesi.ru

Anatolij I. Polous,

PhD in Technical science, Associate professor

Plekhanov Russian University

of Economics

Tel.: (495) 442-61-11

E-mail: APolous@mesi.ru

The article considers the original algorithm for solving the partition set problem, which has numerous applications in the analysis and synthesis of organizational, technical and economic systems and processes. Efficiency the proposed algorithm allows to solve with its help specific practices for large-scale problems. Instruments for solving such problems included in the decision support system in multicomputer and multiprocessor systems.

Keywords: set partition problem, branch and bound method, maximum flow in network, decision support system.

1. Введение

Данная задача имеет многочисленные приложения. К ней, например, сводятся многие экстремальные задачи комбинаторного типа, например, задача оптимизации распределения вычислительных ресурсов в многомашинных и многопроцессорных вычислительных комплексах. Обзор приложений и методов решения ЗРМ приведен в [1,2].

Задача разбиения множества (ЗРМ) может быть записана следующим образом:

I

CjXj ^ min,

Z<

(1) (2)

аух] = 1, I е М = {1,...,т},

X/ = 0 V 1,/ £ N = {1,...,п}, (3)

где С/ - затраты некоторого ресурса для /-го элемента, а/ = 0 V 1, i £ М, j £ N.

В настоящей статье предлагается новый эффективный метод решения ЗРМ, основанный на её сведении к сетевой задаче специального вида.

2. Построение моделирующей сети и сведение решаемой задачи к задаче о максимальном потоке.

Пусть М] = { £ Ма/ Ф 0}. Для построения моделирующей сети возьмем т вершин по одной для каждого ограничения вида (2) и добавим к ним п вершин по одной для каждой переменной X/. Вершины первого вида будем обозначать с помощью индекса г, а вершины второго вида будем обозначать с помощью индекса /.

Для каждого г £ М/ построим дугу (/, г) с единичной пропускной способностью и нулевой ценой. Введем две дополнительные вершины: - источник и t - сеток. Каждую вершину / £ N соединим с источником 5 дугой (5, /), которой припишем пропускную способность а5/ = |М1 в цену, равную коэффициенту с/, деленному на пропускную способность С5/ = С/1 а/. Каждую вершину г £ Мсоединим со стоком t дугой (г, 0 с единичной пропускной способностью и нулевой ценой. Построенную таким образом сеть обозначим через О (2, V), где Q = {5, О и N иМ - множество вершин, а V - множество дуг. Через а/ и С/ будем обозначать соответственно пропускную способность и стоимость дуги (г,/) £ V.

Рассмотрим следующую задачу об оптимальном потоке:

Z Cijfij

^ mm,

(i, j)eU

Z fy- Z =ai,1 e

jer(i) jer-1(i)

0 <fj < ац, (i, j) £ U,

(4)

(5)

гдеfij - поток по дуге (i, j), Г(г) = {j £ Q / (i, j) £ U}, а - интенсивность потока из вершины i £ Q: aS = -at ф 0; ai = 0, V/ ф S, t.

Дополнительно положим: поток по дугам (Щ, /) равняется или нулю, или пропускной способности этих дуг, т.е.

fs] = 0 V а/, / е N (7)

Кроме того, потребуем насыщения дуг, идущих в сток t.

Это означает выполнение равенства

ащ = -а = |М|. (8)

Легко видеть, что сетевая задача (4) - (8) эквивалентна исходной задаче, так как приписывание дуге (Щ,/), / е N потока, равного нулю или её пропускной способности приводит к такому же решению, как приписывание переменной х/ значения 0 или 1 соответственно.

3. Алгоритмы решения основной и вспомогательной задачи

Для решения задачи (1) - (3) можно применить алгоритм, построенный на основе метода ветвей и границ [1,5]. Опишем способ вычисления нижней оценки, используемой в алгоритме.

Пусть f * - оптимальный поток для задачи (4) - (8) и С/) - и его стоимость. Оптимальный поток по сети О, полученный без учета ограничения (7), обозначим через/, а его стоимость - через С/). Очевидно, что С/ > С/). ^

Оценка С/*) для стоимости потока / * может быть вычислена с помощью известного алгоритма поиска максимального потока минимальной стоимости [3]. Специальная структура сети О позволяет упростить общий алгоритм и значительно сократить необходимый объем вычислений.

Поток по сети О полностью определяется потоком по дугам (Щ, /), / е N, и (г, г е М. Обозначим через ¥ текущее множество вершин/ е N, для которых поток по дугам (Щ, /) фиксирован; положим Н = N / ¥. Обозначим, далее, через Я текущее множество вершин г е М, для которых дуги (г, t) не насыщены, т.е., /и = 0. В начале работы алгоритма Н = N, Я = М. Упорядочим элементы множества Н по возрастанию С(Щ, /) стоимости дуг (Щ, Г). Для этой цели можно использовать один из алгоритмов быстрой сортировки, напри-

мер, алгоритм Шели [4]. Естественным представлением множества Н является стек. Операцию выделения первого элемента множества Н (вершины стока) обозначим через У(Н). Для упрощения описания алгоритма введем символ «^», который будем использовать как знак присваивания значения переменной.

Ниже приведен алгоритм решения оценочной задачи (алгоритм 1).

Алгоритм 1

1. Если Н = 0 - перейти к п.4, иначе к ^ У(Н).

2. Мк* ^ Мк П Я.

Если Мк = 0, то

/Щк ^ 0, Н ^ НМк и перейти к п.1.

3./щк ^ Мк I, Н ^ Н\{к},

Я ^ ЯМ* , С ^ С + Сщк х /щк.

Перейти к п.1.

4. Конец алгоритма. С(/) = С.

Для решения задачи (1) - (3) методом ветвей и границ необходимо определить: а) схему ветвления дерева вариантов; б) способ вычисления нижней оценки вариантов; в) метод движения к оптимуму.

Рассмотрим отдельно каждый из этих компонентов алгоритма.

1. Схема ветвления. Введем дерево вариантов Т, которое организовано следующим образом. Каждая вершина имеет 2(п - к) соседних снизу вершин, где - номер яруса дерева вариантов. Обозначим эти вершины символами +Хк+1 - Хк+1,...,+ х„, -х„ (п - число переменных в задаче). Дерево Т имеет п + 1 ярусов (уровней). Процесс поиска решения интерпретируется как процесс движения по дереву Т. Условимся, что при попадании в вершину +ху, переменная ху = 1, а при попадании в вершину -ху, переменной ху присваивается значение 0. Пусть Щ - путь по дереву, которому соответствует некоторая цепочка символов +ху или -ху. Такие цепочки символов будем называть частичными решениями. Частичные решения, соответствующие конечным вершинам дерева, называются допустимыми решениями. Каждому допустимому решению соответствует значение целевой функции С(Щ). У - оптимальное решение, если

С(Щ) < С(Щ) для всех допустимых Щ.

Вычисление оценки. На произвольном шаге алгоритма имеем фиксированные (со значением 0 либо 1) переменные ху, вошедшие в Щ, и некоторую ЗРМ вида:

X

CjXj ^ шп,

Е

аух] = 1, V/ е Мц,

(9) (10) (11)

х/ = 0 V 1, У/ е N,

где N3 = N\Щ , Щ = {у е ху е 5 либо ху е 5}, МЩ = {г е М\^/е_игау > 1}.

Для вычисления оценки условие (11) заменяется условием

0 < х/ < 1, У/ е N5. (12)

Задача (9,10,12) решается с помощью алгоритма 1. Минимальное значение С(хь), хх = {х// е N4 обозначим через С^.

3. Поиск оптимального решения. Алгоритм не требует запоминания дерева вариантов: вся информация, необходимая для вычислений, запоминается в виде текущего частичного решения. В процесс поиска дерево Т обходится в последовательно устанавливаемом порядке. При этому, могут встретиться два случая: когда рассматриваемый путь продолжается и когда его продолжение следует прекратить и выполнить «шаг назад», т.е. вернуться к ранее пройденной вершине. Такое возвращение выполняется в следующих случаях: 1) становится известным, что данный путь не может быть продолжен до оптимального пути задачи, т.е. оценка снизу значения целевой функции на всех последующих продолжениях пути превышает значение рекорда; 2) данный путь является допустимым решением, в этом случае нужно сравнить полученное решение с рекордным и, если оно лучше, запомнить его в качестве нового рекордного решения.

Для формального описания алгоритма введем следующие обозначения:

Н - текущее множество (список) свободных переменных, упорядоченное в порядке возрастания С/, в начале все х/ е Н;

Я - верхняя граница (рекорд) для минимума задачи;

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

Экономика, Статистика и Информатика

113

№6, 2015

_

С - нижняя граница (оценка) значения целевой функции на всех допустимых продолжениях пути 5;

5я - рекордное решение.

На первых шагах алгоритма считаем, что Я = +да, в дальнейшем полагаем Я равным минимальному значению целевой функции на множестве найденных допустимых решений. В начале алгоритма 5 = 0.

Ниже приведен алгоритм решения задачи (1-3).

Алгоритм 2

1. Выбирается переменная X/ £ Н с наименьшим номером /, т.е. с наименьшим значением коэффициента С/. Переменной X/ присваивается значение 1, т.е. X/ вычеркивается из Н и приписывается со знаком (+) к правому концу 5. Если Н = 0 (5 -допустимое решение), то 5Я ^ 5 и перейти к п.4.

2. Исключаются все пути дерева, которые не ведут к допустимому решению. Для этого определяется множество зависимых переменных

Xj = {хк е Н\iXjk + ар > 1, VI е М, Ур е N}

Всем Xk £ X/ присваивается значение 0, т.е. переменные Xk вычеркиваются из Н и приписываются справа к 5 со знаком (-).

3. Реализуется основная идея метода ветвей и границ. Вычисляется оценка С(5) наименьшего значения С, которое можно получиться, двигаясь «вниз» по дереву из вершины X (X - последняя вершина в частичном решении 5).

Для этого решается оценочная задача (9) - (12) и полагается

С(5) = С(5) + С5

Если С(5) < Я - перейти к п.1. Если С(5) > Я или оценочная задача не имеет решения, то осуществляется переход к следующему пункту.

4. Осуществляется возврат к еще не исследованным ветвям дерева Т. Список 5 просматривается в обратном направлении и находится первый символ XI со знаком (+), заменяется его значение на противоположное. Все символы правее его удаляются из 5 и переносятся в Н, после чего осуществляется переход к п.1. Если таких символов в 5 нет, алгоритм заканчивает свою работу. Если Я < да, то 5Я - оптимальное решение задачи (1) - (3). В противном случае задача не имеет решения.

5. Алгоритм 2 либо находит (за конечное число шагов) решение, либо сообщает, что решений нет.

Заключение

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

Литература

1. Бурков В.Н., Ловецкий С.Е. Методы решения экстремальных комбинаторных задач (обзор). -«Извест. АН СССР.Техническая кибернетика», №4, 1969.

2. Трубин В.А. О методе решения целочисленного линейного программирования специального вида. -«Докл. АН СССР», 189, №5, 1969.

3. Кристофидес Н.К. Теория графов. Алгоритмический подход. «Мир», 1978.

4. Э. Рейнгольд, Ю. Нивергельт, Н. Део. Комбинаторные алгоритмы. «Мир», 198О.

5. Беркетов Г. А., Микрюков А.А., Федосеев С.В. Оптимизация технологических процессов обработки информации в АСУ// Сб. трудов Международной научно-практической конференции «Инновации в условиях развития информационно-коммуникационных технологий «Инфо-2ОО8». - Сочи, 2ОО8. -С. 197-2ОО.

References

1. Burkov V.N.. Lovetskiy S.E. Metody resheniya ekstremalnykh kombinatornykh zadach (obzor). -«Izvest. AN SSSR.Tekhnicheskaya kibernetika». №4. 1969

2. Trubin V.A. O metode resheniya tselochislennogo lineynogo programmirovaniya spetsialnogo vida. - «Dokl. AN SSSR». 189. №5. 1969.

3. Kristofides N.K. Teoriya grafov. Algoritmicheskiy podkhod. «Mir». 1978.

4. E. Reyngold. Yu. Nivergelt. N. Deo. Kombinatornyye algoritmy. «Mil». 198О.

5. Berketov G.A., Mikryukov A.A., Fedoseyev S.V. Optimizatsiya tekhnologicheskikh protsessov obrabotki informatsii v ASU// Sb. trudov Mezhdunarodnoy nauchno-prakticheskoy konferentsii «Innovatsii v usloviyakh razvitiya informatsionno-kommunikatsionnykh tekhnologiy «ШЪ-2ОО8». - Sochi. 2ОО8. - S. 197-2ОО.

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