№ 3(33) 2011
Е.В.Ларкин,докт. техн. наук, профессор Тульского государственного университета Д. В. Изотов, программист Тульского государственного университета
Оптимальное размещение центров хранения и обработки информации по критерию максимума интенсивности запросов
Актуальность рассматриваемой задачи обусловлена ростом требований к вычислительной инфраструктуре информационной системы. Применение предложенного авторами подхода способствует наиболее эффективному проектированию компьютерной сети АСУ предприятия.
Введение
Широкое распространение распределенных компьютерных сетей в настоящее время обусловлено ростом объемов хранимой информации, увеличением интенсивности информационного обмена, повышенными требованиями к оперативности и надежности обработки данных, а также масштабами современных территориально распределенных информационных систем. Главными требованиями к вычислительной инфраструктуре информационной системы становится надежность, производительность и адаптируемость к меняющимся задачам. Перечисленным требованиям в наибольшей степени удовлетворяют высокопроизводительные центры хранения и обработки информации (ЦХИ), обеспечивающие непрерывную работу информационных систем, к тому же имеющие относительно невысокую стоимость хранения информации.
Для оптимизации ЦХИ в компьютерной сети (КС) был выбран критерий максимума интенсивности поступления запросов на информационное обслуживание. Этот выбор логически оправдан ввиду того, что именно в узлах с наибольшей интенсивностью поступающих запросов на информационное обслуживание целесообразно размещать ЦХИ, при этом требования по оперативно-
сти и надежности можно задать в ограничениях. Задачу оптимизации размещения ЦХИ можно рассматривать как задачу о р-цен-трах [1].
Существует несколько подходов к решению этой задачи, один из которых заключается в ее сведении к задаче о покрытии неориентированного графа.
Общая задача определения р-центров может быть сформулирована следующим образом [1]: для заданного критического расстояния найти такое наименьшее число центров и такое их размещение, чтобы все вершины графа лежали в пределах этого критического расстояния (по крайней мере, каждая вершина — от ближайшего к ней центра).
Очевидно, что центры графа могут легко быть получены из матрицы весов дуг графа. Однако находить этим же способом (полным перебором) р-центр можно лишь для небольших графов и небольших значений величины р. Для нахождения р-центров существует ряд эвристических методов, например метод Сингера [1]. Они имеют низкую эффективность по быстродействию. Для уменьшения числа переборов предлагается метод, основанный на сведении задачи о р-центрах к задаче о покрытии. Идея метода состоит в следующем.
На предварительном этапе матрица весов дуг преобразуется в матрицу С = |ШI,
№ 3(33) 2011
элементами которой являются кратчайшие пути между всеми парами вершин графа в. Затем, исходя из полученной матрицы О = , составляется бинарная матрица (матрица покрытий) А = ЩЦ, каждый элемент которой равен 1, если /'-я вершина достижима из/-й вершины в пределах критического расстояния, т. е. если а^ < Ттах, и 0 — в противном случае. На заключительном этапе решается задача о покрытии, исходные данные для которой — матрица покрытий/4 и веса q¡, приписанные вершинам графа й, а результат — искомый р-центр.
Рассмотрим подробно каждый этап.
Нахождение кратчайших путей
Для графа в = (X,А), дугам которого приписаны веса, задаваемые матрицей С = Цс^|, задача о кратчайшем пути состоит в нахождении кратчайшего пути от заданной начальной вершины э е X до заданной конечной вершины Г е X, при условии, что такой путь существует, т.е. при условии Г е Я(э), где Я(э) — множество, достижимое из вершины э.
Наиболее простым и эффективным алгоритмом решения этой задачи для случая неотрицательной матрицы весов (когда все Сц > 0) является алгоритм Дейкстры, описанный в [1].
Очевидно, что для нахождения кратчайших путей между всеми парами вершин графа необходимо ^-кратное (где N — число вершин графа) применение алгоритма Дейкстры, причем каждый раз в качестве начальной вершины э берутся различные вершины. В случае полного графа с неотрицательной матрицей весов С время, необходимое для вычислений, пропорционально Ы3, поэтому если задача о кратчайшем пути имеет бо'льшую размерность, то ее невозможно решить с помощью последовательного применения алгоритма Дейкстры.
В данной статье предлагается совершенно иной подход к задаче нахождения кратчайших путей между всеми парами вершин,
который применим как к неотрицательным, так и к произвольным матрицам весов. Его использование экономит почти 50% времени по сравнению с N-кратным применением алгоритма Дейкстры. Метод был предложен первоначально Флойдом и развит Мерчлэн-дом. Он базируется на использовании последовательности из ^-преобразований (итераций) начальной матрицы весов С. При этом на к-й итерации матрица представляет длины кратчайших путей между каждой парой вершин с тем ограничением, что путь между xj и ху (для любых xj и ху) содержит в качестве промежуточных только вершины из множества {х1,х2,...,хк}.
Предположим, что в начальной матрице весов Сц = 0 для всех / = 1,2,...,N и с^ =<*>, если в графе отсутствует дуга (х(,х]).
Присвоение начальных значений:
Шаг1. Положить к = 0.
Итерация:
Шаг 2. к = к +1.
Шаг 3. Для всех / ф к таких, что cjk ф ^ и для всех у ф к таких, что ckj ф ™ , введем операцию
cü= min + s)] ■
Проверка на окончание:
Шаг 4 (а). Если к = N, то получено решение. Матрица Цс^Ц дает длины всех кратчайших путей. Останов.
(б). Если к < N,to вернуться к шагу 2.
После ввода дополнительно величин qn обратных значениям весов q, соответствующих вершин этого графа, решим задачу о покрытии.
Задачи о покрытии
Используя матрицу кратчайших путей D = Ца^Ц, перейдем к матрице покрытий
А = Ца^Ц, которая составляется по следующим правилам:
а П. ™ёё ^max ' [О, ä TöTöeäfTi näö+ää.
№ 3(33) 2011
Задача о нахождении р-центра на графе, удовлетворяющего заданным условиям, сводится к нахождению такого наименьшего множества X*, чтобы из каждой вершины графа была достижима в пределах заданного расстояния Гтах хотя бы одна вершина, входящая в множество X*, т.е. чтобы ^ аг > 1, у = 1,..., N .Сумма ^ qi должна
/ёх" /ёх"
быть при этом максимально возможной (для обеспечения минимума передаваемой в сети информации). Данная задача может быть сформулирована в виде задачи целочисленного линейного программирования с булевыми переменными следующим образом.
Требуется минимизировать целевую функцию
N
О = 1 Я, X,, (1)
/=1
при ограничениях
жа, но эти методы являются достаточно трудоемкими. Специфические особенности задачи (1)-(3) позволяют использовать для оценки нижней границы решения двойственную задачу [2]. По отношению к основной задаче двойственная задача имеет следующий вид.
Найти
/У
7 = тах ^ V
/=1
при ограничениях
Xя1 / = 1,... N.
/=1
(5)
(6)
- < 0, / = 1,... N. \ = 1,... N. (7)
где V, \AWjj — переменные двойственной задачи.
0
§
со
1
£а1]х1 > 1, у = 1,... N,
х = {0; 1},/ = 1,... N,
(2)
(3)
где
q'i = 1/ qi, qi > 0, —значения весов соответствующих вершин графа
а _ [1. бСЛИ Тта,
" [о, в противном случае
бц— кратчайшие пути между соответствующими вершинами графа.
Задача (1)-(3) относится к классу задач целочисленного программирования с булевыми переменными и может быть решена общими методами целочисленного программирования. Большую группу таких методов составляют алгоритмы неявного перебора, основанные на идеях метода ветвей и границ. Заменим условие целочисленности условием
О < х, < 1,... N.
(4)
что позволит использовать для вычисления нижней границы решения симплексный метод или метод множителей Лагран-
Из теории двойственности известно, что оптимальные решения основной и двойственной задачи совпадают, т.е. О = Следовательно, приближенное решение двойственной задачи может быть использовано для оценки нижней границы при применении метода ветвей и границ. Время решения с помощью приближенного алгоритма значительно меньше, чем при точном решении с помощью симплекс-метода. Использование двойственной задачи, таким образом, позволяет значительно упростить оценку нижней границы без существенного уменьшения ее точности.
Введем следующие обозначения: Эк — множество индексов переменных, включенных в исследуемую ветвь дерева вариантов, — множество индексов переменных, не включенных во множество Эк, Ы3 — множество индексов элементов, которые не покрыты. При построении дерева вариантов используется фронтальная схема ветвления. Нижняя граница решения для ветви дерева возможных вариантов вычисляется с помощью выражения:
а = 01 + Ос,
(8)
39
№ 3(33) 2011
где
= 1 Я,
/ Е&.
= т'П X Я/ Х1 >
при ограничениях (6), (7) для /',у е .
Рассмотрим алгоритм приближенного решения задачи (5)-(7) для / е , у е . Определим
а, =
= X V е ^
и упорядочим элементы так, что
а, < а 0 < < а < < а г < N
// - У 2 — ■ ■ ■ — "ур — ■ ■ 1 — "уг > 1 ~ ' "'
Тогда для нахождения приближенного решения задачи может быть использовано следующее выражение:
^ = х
/р
где
р-1
/=0
\р е ^ ={ур|р = 1.....|^I}. - о, Ул
= 0.
Так как величина Z¡. < 05., то для оценки нижней границы вместо (8) может быть использовано выражение:
а = + ,
Экспериментальная проверка алгоритмов
Первая серия вычислительных экспериментов была проведена с целью оценки временной сложности алгоритма Флойда для нахождения кратчайших путей между всеми парами вершин графа. Анализируя данный алгоритм, нетрудно установить, что затраты времени на решение с его помощью указанной задачи будут существенно зависеть лишь от размерности исходного графа. В проведенных экспериментах исходные матрицы весов С = ||с9|| различной размерности п формировались с помощью программного датчика псевдослучайных чисел, равномерно распределенных в интервале (0,10). В таблице 1 приведено среднее время Гср решения задач в секундах.
Следующая серия экспериментов проводилась в целях исследования эффективности алгоритма для решения задачи о покрытии с использованием для оценки нижней границы приближенного решения двойственной задачи.
Как уже отмечалось, задача о покрытии относится к классу универсальных комбинаторных задач. Отличительной особенностью алгоритмов, используемых для решения таких задач, является то, что их эффективность зависит не только от размерности решаемых задач, но и от характера исходных данных для них.
В проведенных экспериментах матрицы покрытия А = ЩЦ различной размерности п и плотности единиц
Полученный в результате решения задачи (1)-(3) оптимальный план покрытия соответствует оптимальному для заданных условий плану размещения ЦХИ в узлах рассматриваемой сети.
* = хх
II
/=1 У=1
п X п
А™ = 2/п
формировались с помощью программного датчика псевдослучайных чисел, равномер-
Таблица 1
Время решения задачи о кратчайших путях
п 20 30 40 50 60 70 80 90 100
'ср <0,01 0,05 0,16 0,27 0,44 0,71 1,09 1,59 2,20
40
№ 3(33) 2011
Таблица 2
Время решения задачи о покрытии
й
п 0,2 0,4 0,6 0,8
^тах ^тах ^тах ^тах
20 0,05 0,01 <0,01 <0,01 <0,01 <0,01 <0,01 <0,01
30 0,11 0,07 0,11 0,07 0,11 0,05 0,06 0,02
40 0,77 0,31 0,33 0,24 0,33 0,20 0,11 0,08
50 1,92 0,86 1,26 0,68 0,82 0,59 0,22 0,19
60 5,65 2,05 4,95 1,84 2,64 1,18 0,55 0,41
70 9,01 4,42 9,44 3,67 3,52 1,89 0,87 0,74
80 29,38 13,89 8,46 6,27 5,82 3,51 1,37 1,20
90 54,60 30,14 32,57 12,62 9,50 4,99 1,97 1,79
100 108,76 42,88 56,61 22,32 13,57 8,56 3,46 2,67
но распределенных в интервале (0,1). Величины д(были получены как произведение числа единиц в строке /' на случайное число, полученное от того же датчика. Результаты проведенных экспериментов представлены в табл. 2, где Гтах — максимальное, а Гср — среднее время решения задач в секундах.
Анализ полученных результатов показывает, что время решения задач растет не только при увеличении размерности матрицы покрытий, но и в значительной степени при уменьшении плотности единиц ^ матрицы покрытий.
Это объясняется тем, что с уменьшением ^ увеличивается число переменных, включенных в решение, ввиду чего увеличивается число ветвей дерева вариантов. Вследствие резкого возрастания числа вариантов перебора и происходит увеличение времени решения.
Завершает исследования проведение вычислительного эксперимента для оценки алгоритма решения задачи о р-центре в целом. Затраты времени на решение указанной задачи будут складываться из затрат времени на решение задачи о кратчайших путях между всеми парами вершин графа, на осуществление перехода от матрицы кратчайших путей к матрице покрытий и, наконец, на решение задачи о покрытии.
Следует отметить, что затраты времени на осуществление перехода от матрицы кратчайших путей к матрице покрытий крайне незначительны и даже для матриц размерностью 100 х 100 не превышают нескольких сотых долей секунды.
Исходя из приведенных выше результатов предыдущих экспериментов, можно сделать вывод, что время решения задач о р-центрах будет зависеть не только от размерности исходного графа, но и от характера исходных данных, определяющих плотность единиц ^ получаемой в ходе решения матрицы покрытий. Нетрудно установить, что величина Л будет зависеть от степени связности исходного графа, а также от величины критического расстояния X (т. е. от величины предельно допустимого значения среднего времени задержки сообщения).
Для построения графика зависимости времени решения задачи о покрытии от размерности и плотности заполнения матрицы исходных данных был проведен дополнительный эксперимент для значения Л = 0,2 (табл. 3). Зависимость приведена на рис. 1.
Анализ полученных результатов показывает, что время решения задач растет не только при увеличении размерности исходного графа, но и при уменьшении степе-
№ 3(33) 2011
Таблица 3
Размерность Среднее время решения задачи (с)
й = 0,2 й = 0,4 й = 0,6 й = 0,8
20x20 0,05 0,05 0,04 0,02
40x40 1,12 0,88 0,64 0,27
60x60 6,20 4,80 2,89 1,30
80x80 48,36 16,31 11,89 3,78
100x100 188,20 85,92 26,04 9,94
ни его связности, а также при уменьшении величины «критического» расстояния. Это объясняется тем, что уменьшение количества дуг, соединяющих вершины графа, вызывает удлинение кратчайших путей, что, в свою очередь, приводит к уменьшению плотности единиц Л получаемой матрицы покрытий, а следовательно, к увеличению времени решения задач. Очевидно, что к уменьшению величины Л приводит и уменьшение величины критического расстояния.
Заключение
Полученные в ходе проведенных вычислительных экспериментов результаты подтверждают высокую эффективность исследованных алгоритмов. Разработанная для их реализации программа позволяет получать точное решение поставленой задачи.
Существенное снижение вычислительной сложности алгоритмов и повышение их быстродействия достигается за счет:
• применения метода, заключающегося в последовательном решении задачи о крат-
чайших путях между всеми парами вершин графа, изображающего рассматриваемую компьютерную сеть, и затем — задачи о покрытии, к которой может быть сведена задача о нахождении р-центра на данном графе;
• использования эффективного итерационного алгоритма для нахождения кратчайших путей между всеми парами вершин графа, который базируется на последовательном п-кратном преобразовании начальной матрицы весов дуг графа;
• применения метода ветвей и границ и более точного способа оценки нижней границы с помощью приближенного решения двойственной задачи, позволяющего значительно упростить оценку нижней границы без существенного уменьшения ее точности.
Описок литературы
1. Кристофидес Н. Теория графов. Алгоритмический подход. М.: Мир, 1978.
2. Алексеев О. Г. Комплексное применение методов дискретной оптимизации. М.: Наука, 1987. — 248 с.
= 0,2
и
_ = 0,4
и
= 0,6
11
= 0,8
И
Рис. 1. Эмпирическая зависимость времени решения задачи о покрытии от размерности и плотности заполнения матрицы исходных данных
42