УДК 004.75
DOI: 10.14529/ctcr180118
ЗАДАЧА РАВНОМЕРНОГО РАСПРЕДЕЛЕНИЯ ТРЕБОВАНИЙ ПО УЗЛАМ ВЫЧИСЛИТЕЛЬНОЙ СЕТИ
Е.В. Ляпунцова1, М.С. Шихалиев2
1 Московский государственный технический университет им. В.Э. Баумана, г. Москва, Россия,
2 Российский университет транспорта (МИИТ), г. Москва, Россия
Задачи организаций вычислений в вычислительных сетях стали весьма популярными за последнее время. Это и составление расписаний решения многих задач на единой вычислительной сети, и различного рода задачи загрузки узлов вычислительной сети. В статье рассматривается задача равномерной загрузки узлов вычислительной сети. В качестве критерия берется максимальная относительная загрузка узлов по объему занимаемой памяти. Задача обобщена на случай двух критериев. Предложены эвристические алгоритмы решения задач, которые выгодно отличаются от используемого ранее алгоритма ветвей и границ с получением оценок на основе метода сетевого программирования, так как при большом числе требований этот метод получения оценок приводит к большому объему вычислений, поскольку получение оценок требует на каждом шаге решения систем линейных неравенств.
Ключевые слова: узлы вычислительной сети, равномерная загрузка, объем занимаемой памяти, эвристические алгоритмы
1. Постановка задачи
Имеются m узлов вычислительной сети и n требований (запросов). Необходимо распределить требования по узлам по критерию равномерной загрузки узлов (по объему занимаемой памяти). Обозначим b - объем памяти, занимаемый i-м требованием, xj = 1, если требование i размещено в узле j, xij = 0, в противном случае.
Задача. Определить j Xj, i = 1, n, j = 1, mj, минимизирующие
Y ( x ) = max j У blxlJ (1)
i
при ограничениях
Уx,j = 1, i = 1,n. (2)
i
Поставленная задача известна как «задача о камнях» [1]: необходимо разделить n камней разного веса на m максимально близких по суммарному весу групп. Для ее решения в [1] предложен алгоритм ветвей и границ с получением оценок на основе метода сетевого программирования.
Однако при больших n этот метод получения оценок приводит к большому объему вычислений, поскольку получение оценок требует на каждом шаге решения систем линейных неравенств. Рассмотрим эвристический алгоритм решения задачи.
Без ограничения общности будем считать все b целыми положительными числами. Описание алгоритма
Предварительный шаг. Пусть xij могут принимать любые значения на отрезке [0; 1]. В этом случае задача легко решается. Определяем
M =
- У
m^bi
где [•] ближайшее сверху целое число. 1 этап. Решаем задачу максимизации
Уxab, (3)
i
при ограничении
I bixij < M, j = 1, m для j = 1.
(4)
Это частный случай задачи о ранце, для которого при целочисленных значениях параметров существует эффективный метод дихотомического программирования [2]. Обозначим Q1 множество требований, загруженных в первый узел. Далее решаем задачу (3), (4) для второго узла, исключив из множества требований множество Q1, и т. д. После решения т задач для всех узлов остается множество Q0 требований, не вошедших в решения предыдущих задач. Имеет место теорема.
Теорема. Число требований множества Q0 не превышает (т - 1).
Доказател ьство
Обозначим
А, = М -X х°Ьг, ] = , (5)
где |x j j - оптимальное решение j-й задачи. Заметим, что для любого i е Q0 имеет место
b > maxAу, i е Q0, (6)
j
в противном случае запрос i был бы включен в решение одной из задач. С другой стороны,
LA, >-1Ьг-Ix0bi = I bt. (7)
m - ieQ о
Условия (6), (7) могут выполняться, только если число элементов множества Q0 не превышает (m - 1).
Если Q0 = 0, то задача решена. Теорема доказана.
Если Q0 ф 0, то распределяем требования i е Q0 по узлам так, чтобы минимизировать максимальную загрузку. Эта задача легко решается на основе следующего правила.
Пусть узлы упорядочены по убыванию A j, а требования упорядочены по убыванию bi, i е Q0,
то есть
A j1 > A j 2 > • • • > A jm,
bii > bi2 > • > bp,
где p - число элементов множества Q0. Размещаем требование i1 на узел j1, требование i2 на узел j2 и т. д.
2 этап. Определяем
M2= max (M -Alk + blk),
k
где bik = 0 для k > p. Берем M2 = [ 12 (M1 + M2 )] и повторяем шаги первого этапа. Возможны два
варианта.
1 вариант. Q0 = 0.
В этом случае определяем M3 = j j2 (M1 + M2 )] и повторяем шаги первого этапа.
2 вариант. Q0Ф0. В этом случае определяем M3 =jjУ2(m2 + M2)] и повторяем шаги 1 этапа алгоритма.
За конечное число этапов получаем ситуацию, когда на очередном этапе s имеет место Ms = Ms-1.
Алгоритм закончен.
Пример 1. Имеются 8 требований и 5 узлов, данные о которых приведены в табл. 1.
Таблица 1
i 1 2 3 4 5 6 7 8
Ьг 15 13 11 10 9 8 5 3
1 этап. Вычисляем Ых =
Z bi
m
= 15
1 шаг. Решаем задачу максимизации 15х] + 13х2 + 11х5 + 10х4 + 9х5 +8х6 + 5х7 + 3х8 при ограничении
15x1 + 13х2 + 1 1х3 + 10х4 + 9х5 +8х6 + 5х7 + 3х8 < 15.
Задачу решаем для R = 18, чтобы использовать результаты для следующих этапов. Делаем это методом дихотомического программирования.
Рассматриваем требования 1 и 2. Решение приведено в табл. 2. Рассматриваем требования 3 и 4 (табл. 3). Рассматриваем требования 5 и 6 (табл. 4). Рассматриваем требования 7 и 8 (табл. 5).
Таблица 2 Объединенное требование I
Таблица 3 Объединенное требование II
Таблица 4 Объединенное требование III
Таблица 5 Объединенное требование IV
1 13 -
0 0 15
2 / /1 0 1
1 10 -
0 0 11
4 / / 3 0 1
1 8 17
0 0 9
6 / /5 0 1
1 3 8
0 0 5
8 / / 7 0 1
Рассматриваем объединенные требования I и II (табл. 6). Рассматриваем объединенные проекты III и IV (табл. 7).
Таблица 6 Таблица 7
Объединенное требование V Объединенный проект VI
2 11 - -
1 10 - -
0 0 13 15
II X / I 0 1 2
3 8 16 17 -
2 5 13 14 -
1 0 11 12 -
0 0 8 9 17
0 1 2 3
Рассматриваем объединенные проекты V и VI (табл. 8).
Таблица 8
Объединенный проект VII
4 15 18
3 13 16
2 11 14 16
1 10 13 15
0 0 3 5 8 9 11 12 13 14 16 17 -
V X /""VI 0 1 2 3 4 5 6 7 8 - - -
1 шаг. Определяем решение для R = 15.
Имеются два решения для 1-го узла. Берем одно из них. Это требование 1.
2 шаг. Определяем решение для 2-го узла. Единственное решение без учета требования [1] это требование (4, 7).
3 шаг. Определяем решение для 3-го узла. Имеется одно решение. Это требование (3, 8).
4 шаг. Определяем решение для 4-го узла. Это требование 2.
5 шаг. Определяем решение для 5-го узла. Это требование 5. Множество Q0 = (6). Загружаем требование 6 в узел 5. Получаем максимальную загрузку М2 = 17 .
2 этап. Вычисляем М 2 = [ X М1 + М 2 )]= 16.
Решаем задачу при R = 16. Определяем решение для 1-го узла.
1 шаг. Имеются три решения: (2, 8), (3, 7) и (6, 7, 8). Выбираем, например, требование (2, 8).
2 шаг. Определяем решение для 2-го узла. Берем требование (3, 7).
3 шаг. Определяем решение для третьего узла. Берем требование 1.
4 шаг. Определяем решение для четвертого узла. Берем требование 4.
5 шаг. Определяем решение для пятого узла. Берем требование 5. Множество Q0 = (6). Загружаем требование 6 в узел 5. Получаем максимальную загрузку М3 = 17. Имеем
М3 =[X (М3 + М2)] = 17 . Алгоритм закончен. Нетрудно показать, что в данном случае получено
оптимальное решение.
2. Двухкритериальная задача
Рассмотрим задачу с двумя критериями:
F1 = max^j = maxL XjCi;
j-, j j v (8) F = max" j = max I xijai. j j i В качестве интегрального критерия возьмем F = max (qF1; F2 ) ^ min, где q - коэффициент значимости критерия F1 по сравнению с F2.
Положим Ьг = qc, i = 1, n . В этом случае интегральный критерий принимает вид
F = max (F1; F2 ) , где F1 = max I bixij. (9)
ji
3. Описание алгоритма 1 этап. Вычисляем
М1 = [—тах(У Ь; У а,)].
т /
Решаем задачу о ранце для первого узла: определить х, = (0, 1), , = 1, п , максимизирующие
У ЬЛ (10)
при ограничениях
У ьх < мь (11)
/
У а,х, <Мх. (12)
1
Обозначим Ql множество требований, загруженных в первый узел.
Решаем задачу (10), (11), (12) для второго узла, исключив множество требований Q1, и т. д. После решения т задач возможны два варианта.
1. Множество нераспределенных требований Q0 = 0. В этом случае алгоритм закончен.
2. Множество Q0 Ф 0. В этом случае загружаем требования множества Q0 следующим образом.
Рассматриваем их в любом порядке. Для рассматриваемого требования 7 определяем узел q, такой что величина
Yq = max
q j
Z ai + aq
ieQj
принимает минимальное значение. Загружаем требование 7 в узел q. Обозначим М2 - значение М ( х) в решении задачи.
2 этап. Вычисляем
м 2 =[ 12(м 1+м 2)]
и повторяем алгоритм 1 этапа.
3 этап. Обозначим М3 - значение М(х) в решении задачи на втором этапе. Если М33 = М2, то задача решена.
Если М3 < М2, то определяем М 3 =[ 12 (М 2 + М3)] и повторяем алгоритм этапа 1. Если М3 > М2, то определяем М 3 = [ 12 (М2 + М 2)] и повторяем алгоритм этапа 1. За конечное число этапов 5 получим ситуацию, когда М[ = М5_. Алгоритм окончен. Пример 2. Имеются 8 требований и 5 узлов, данные о которых приведены в табл. 9
Таблица 9
i 1 2 3 4 5 6 7 8
аг 18 16 15 13 10 9 6 3
bi 5 6 7 10 14 15 16 17
1 этап. Вычисляем Мг = [1тах(90; 90)] = 18.
1 шаг. Решаем следующую задачу о ранце: максимизировать
18x1 + 16х2 + 15х3 + 13х4+10х5 +9х6 + 6х7 + 3х8 при ограничениях
18x1 + 16х2 + 15х3 + 13х4+10х5 +9х6 + 6х7 + 3х8 < 18 5x1 + 6х2 + 7х3 + 10х4+14х5 +15х6 + 16х7 + 17х8 < 18. Одно из решений х1 = 1. Загружаем требование 1 в узел 1.
2 шаг. Решаем задачу о ранце без требования 1. Решение х2 = 1. Загружаем требование 2 в узел 2.
3 шаг. Решаем задачу без требований 1 и 2. Решение х3 = 1. Загружаем требование 3 в узел 3.
4 шаг. Решаем задачу без требований 1, 2, 3. Решение х4 = 1. Загружаем требование 4 в узел 4.
5 шаг. Решаем задачу без требований 1, 2, 3, 4. Решение х5 = 1. Загружаем требование 5 в узел 5. Имеем Q0 = (6, 7, 8). Берем требование 6. Вычисляем:
Y1 = тах(18 + 9; 5 + 15) = 27, Y2 = тах(16 + 9; 6 + 15) = 25, Y3 = тах(15 + 9; 7 + 15) = 24, Y4 = тах(13 + 9; 10 + 15) = 25, Y5 = тах(10 + 9; 14 + 15) = 29. Загружаем требование 6 в узел 3. Берем требование 7. Вычисляем Y1 = тах(18 + 6; 5 + 16) = 24, Y2 = тах(16 + 6; 6 + 16) = 22, Yз = тах(24 + 6; 22 + 16 ) = 38,
Y4 = тах(13 + 6; 10 + 16) = 26, Y5 = тах(10 + 6; 14 + 16) = 30. Загружаем требование 7 в узел 2. Берем требование 8. Вычисляем Yl = тах(18 + 3; 5 + 17) = 22 Y2 = тах(22 + 3; 22 + 17) = 39 Y3 = тах(24 + 3; 22 + 17) = 39 Y4 = тах(13 + 3; 10 + 17) = 27 Y5 = тах(10 + 3; 14 + 17) = 31 Загружаем требование 8 в узел 1. Имеем
М2 = тах(22; 22; 24; 13; 14) = 24.
2 этап. Берем
М 2 = 1 (18 + 24) = 21.
1 шаг. Повторяем алгоритм этапа 1 при М2 = 21. Нетрудно проверить, что то же самое решение с М3 =24.
3 этап. Берем
М3 =
2 ( 21 + 24 )
= 23
Повторяем алгоритм этапа 1 при М3 = 23.
1 шаг. Решение х2 = 1, х7 = 1. Загружаем требования 2 и 7 в узел 1.
2 шаг. Решение Х] = 1, х8 = 1. Загружаем требования 1 и 8 в узел 2.
3 шаг. Решение х3 = 1. Загружаем требование 3 в узел 3.
4 шаг. Решение х4 = 1. Загружаем требование 4 в узел 4.
5 шаг. Решение х5 = 1. Загружаем требование 5 в узел 5. Имеем Q0 = 6.
Вычисляем
Yl = тах(22 + 9; 22 + 15) = 37,
Y2 = тах(21 + 9; 22 + 15) = 37,
Y3 = тах(15 + 9; 7 + 15) = 24,
Y4 = тах(13 + 9; 10 + 15) = 25,
Y5 = тах(10 + 9; 14 + 15) = 29.
Загружаем требование 6 в узел 3.
Имеем М4 =24 . Поскольку М4 = [ 12 (М3 + М4)] = 24 = М4 , то алгоритм закончен.
Заключение
Рассмотренные алгоритмы требуют решения задач о ранце. Существует эффективный приближенный алгоритм решения задач о ранце, когда предметы (требования) упорядочиваются по убыванию эффективностей qi = а,/Ь, и отбираются в этой очередности. Этот алгоритм дает небольшую погрешность при большой величине отношения п/т [3].
В частности, в задаче с одним критерием это означает, что требования могут отбираться в любом порядке. Поскольку эффективности равны 1. Результаты экспериментального исследования предложенных алгоритмов будут представлены в следующих публикациях.
Литература
1. Буркова, И.В. Метод сетевого программирования в задачах управления проектами: дис. ... д-ра техн. наук /И.В. Буркова. -М.: ИПУРАН, 2012.
2. Буркова, И.В. Метод сетевого программирования в задачах нелинейной оптимизации / И.В. Буркова // Автоматика и телемеханика. - 2009. - № 10. - С. 15-21.
3. Сигал, И.Х. Введение в прикладное дискретное программирование: модели и вычислительные алгоритмы: учеб. пособие /И.Х. Сигал, А.П. Иванова. - 2-е изд., испр. и доп. - М. : Физмат-лит, 2007. - 304 с.
Ляпунцова Елена Вячеславовна, д-р техн. наук, профессор, кафедра ИБМ 7 «Техническое предпринимательство», Московский государственный технический университет им. В.Э. Баумана, г. Москва; [email protected].
Шихалиев Марат Сираджеддинович, аспирант, Российский университет транспорта (МИИТ), г. Москва; [email protected].
Поступила в редакцию 6 декабря 2017 г
DOI: 10.14529/ctcr180118
THE PROBLEM OF UNIFORM DISTRIBUTION REQUIREMENTS FOR NODES OF THE COMPUTER NETWORK
E.V. Lyapuntsova1, [email protected], M.S. Shikhaliyev2, [email protected]
1 Bauman Moscow State Technical University, Moscow, Russian Federation,
2 Russian University of Transport, Moscow, Russian Federation
The tasks of computing organizations in computer networks have become very popular lately. This is the scheduling of solving many problems on a single computer network and various tasks of loading nodes of the computer network. The article deals with the problem of uniform loading of nodes of the computer network. As a criterion, the maximum relative loading of nodes by the amount of memory is taken. The problem is generalized to the case of two criteria. Heuristic algorithms for solving problems are offered, which favorably differ from the algorithm of branches and boundaries used earlier to obtain estimates based on the method of network programming. With a large number of requirements, this method of obtaining estimates leads to a large amount of computation, since obtaining estimates requires, at each step, solutions of systems of linear inequalities.
Keywords: knots of the computer network, uniform loading, volume of the occupied memory, heuristic algorithms.
References
1. Burkova I.V. Metod setevogo programmirovaniya v zadachakh upravleniyaproektami: dis. dokt. tekhn. nauk [Method of Network Programming in Project Management Tasks. Doct. diss.]. Moscow, IPC RAS, 2012.
2. Burkova I.V. [Method of Network Programming in Tasks of Non-Linear Optimization]. Automatic Equipment and Telemechanics, 2009, no. 10, pp. 15-21. (in Russ.)
3. Sigal I.Kh., Ivanova A.P. Vvedeniye v prikladnoye diskretnoye programmirovaniye: modeli i vychislitelnyye algoritmy: ucheb. posobiye [Introduction to Applied Discrete Programming: Models and Computing Algorithms: Manual]. Moscow, Fizmatlit Publ., 2007. 304 p.
Received 6 December 2017
ОБРАЗЕЦ ЦИТИРОВАНИЯ
Ляпунцова, Е.В. Задача равномерного распределения требований по узлам вычислительной сети / Е.В. Ляпунцова, М.С. Шихалиев // Вестник ЮУрГУ. Серия «Компьютерные технологии, управление, радиоэлектроника». - 2018. - Т. 18, № 1. - С. 148-154. DOI: 10.14529/о1ег180118
FOR CITATION
Lyapuntsova E.V., Shikhaliyev M.S. The Problem of Uniform Distribution Requirements for Nodes of the Computer Network. Bulletin of the South Ural State University. Ser. Computer Technologies, Automatic Control, Radio Electronics, 2018, vol. 18, no. 1, pp. 148-154. (in Russ.) DOI: 10.14529/ctcr180118