и
нформационные технологии в управлении
УДК 621.396
МЕТОД РЕШЕНИЯ ЗАДАЧИ О МИНИМАЛЬНОМ ПОКРЫТИИ КАК СРЕДСТВО ПЛАНИРОВАНИЯ В GRID
B.C. Пономаренко(1), С.В. Листровой(2)
(1) Харьковский национальный экономический университет;
(2) Украинская академия железнодорожного транспорта, г. Харьков
Предложен метод решения задач о наименьшем покрытии и наименьшем вершинном покрытии в произвольных графах, позволяющий строить эффективные алгоритмы решения задачи определения минимального числа кластеров, позволяющего решить в GRID заданное подмножество задач с требуемой эффективностью.
ВВЕДЕНИЕ
Глобальные вычислительные сети GRID [1] были предложены в качестве новой парадигмы для решения крупномасштабных вычислительных задач в науке, технике и бизнесе [2]. Они дают возможность одновременного использования многочисленных вычислительных ресурсов [3], принадлежащих различным организациям и расположенных в различных административных регионах. Системы GRID объединяют разнородные вычислительные ресурсы (персональные компьютеры, рабочие станции, кластеры, суперкомпьютеры), используя разные стратегии доступа, выполняя различные приложения (научные, инженерные и коммерческие), предъявляющие к системе различные требования. Ресурсы принадлежат различным организациям, имеющим свои правила управления, использования и определения их стоимости для различных пользователей в различное время. Доступность и загруженность ресурсов также может динамически изменяться во времени. Последние работы в области GRID позволяют приложениям использовать вычислительные ресурсы, принадлежащие различным организациям, распределенным по различным странам и континентам. Один из видов ресурсов GRID — однородные многопроцессорные системы (кластеры), которые могут состоять из сотен или даже тысяч процессоров. В процессе распределения ресурсов в GRID возникает необходимость в определении
минимального числа кластеров, на которых можно выполнить заданное подмножество задач.
Рассмотрим двухуровневую систему, в которой на первом уровне несколько независимых брокеров распределяют вычислительные задачи на кластеры, а на втором уровне каждый кластер распределяет задачи, присвоенные ему локальным планировщиком. Пусть имеется п кластеров и каждый і-й процессор в кластере в состоянии решить некоторое подмножество Ьі задач с требуемой эффективностью. Положим, что на решение поступило т задач, которые нужно решить. Требуется определить минимальное число кластеров, обеспечивающее решение всех т задач, как правило, т > п. Пусть возможности по решению задач определены графом, приведенным на рис. 1, кластеры
Кластеры 1 2 3 4
1 2 3 4 5 6
Задачи
Рис. 1. Граф, отображающий возможности решения задач
соединены ребрами с теми задачами, которые они могут выполнить с требуемой эффективностью.
Требуется найти минимальное число кластеров, обеспечивающих выполнение всех задач с требуемой эффективностью. Представим граф (см. рис. 1) булевой матрицей В, в которой строкам соответствуют задачи, а столбцам — кластеры. Элемент (i, у) матрицы будем считать равным 1, если у-й кластер способен с требуемой эффективностью обеспечить решение ^й задачи, и равным нулю — в противном случае:
B =
1 2 3 4
1 І І О І
2 І І І О
3 І О І І
4 О І О О
5 О О І І
6 О О І І
В данном случае задача сводится к определению минимального числа столбцов в матрице В, покрывающих единицами все строки в ней. Эта же задача может быть сформулирована как задача линейного булевого программирования, постановка которой в общем виде имеет вид:
L = V c.x. ^ min J J
j = і
(І)
при ограничениях
n
V в, xj 1 І, i = І, m, xj є {О, І}; c. 1 О, (2) j = і
где
ву =
1, если i-я переменная может быть покрыта переменной х^,
0 — в противном случае.
(З)
Задачи о наименьшем покрытии (ЗНП) и о наименьшем вершинном покрытии (ЗНВП) имеют широкое прикладное значение в теории построения сложных систем, в системах диагностики вычислительных систем и сетей [4], при разработке их программного и математического обеспечения, а также для планирования распределения ресурсов в GRID. Основное требование к алгоритмам решения данных задач состоит в высокой оперативности решения и обеспечении минимально возможной погрешности этих решений.
Частным случаем ЗНП является задача о наименьшем разбиении (ЗНР), которая получается из задачи (1)—(3) путем замены неравенства (2) на
равенство. Вследствие особой природы задачи часто при ее исследовании удается сделать хорошо известные заранее выводы и упрощения [4, 5]: например, если в строке матрицы В присутствует одна единица, то столбец, в котором находится эта единица, обязательно принадлежит минимальному покрытию; если в матрице В есть столбцы, частично совпадающие с другими, но покрывающие меньшее число строк, то они могут быть исключены из анализа, так как любое множество, которое покрывает столбец с большим числом единиц, покрывает и все множества, которые покрывает столбец с меньшим числом единиц. Таким образом, в этом случае столбец с большим числом единиц доминирует над столбцом с меньшим числом единиц.
Ряд методов сначала разрабатывался для решения ЗНР, а потом адаптировался к решению в работах [6, 7]. В работе [1] предложены методы решения ЗНП, в которых используется дерево поиска и линейное программирование. Подходы, базирующиеся на рассмотрении отсекающих плоскостей и подобные в принципе тем, которые применяются в общем 0-1-программировании [8], представлены в работах [4, 9]. Сравнение этих методов и исследование их вычислительных характеристик приведено в работе [4]. Наиболее полный обзор методов решения ЗНП как задачи линейного булевого программирования, дан в статье [10], где показано, что алгоритмы на основе идей рангового подхода [15, 16] отличаются от методов, основанных на идеях метода ветвей и границ, меньшими временной сложностью и погрешностью.
Задачу нахождения независимых максимальных множеств или вершинных покрытий можно, например, решить последовательным перебором независимых множеств с одновременной проверкой каждого множества на максимальность (последнее осуществляется добавлением к исследуемому множеству дополнительной вершины, не принадлежащей ему, и выяснением, сохраняется ли независимость) и запоминанием максимальных множеств.
Однако с увеличением числа вершин этот способ становится весьма громоздким. На основе усовершенствования этой процедуры построены алгоритмы Брона и Кэрбоша [4]. Как показано в работах [13, 14], задача вершинного покрытия является ЛР-полной, и эффективные алгоритмы ее решения для произвольных графов неизвестны. Для двудольных графов на основе алгоритмов Хоп-крофта и Карпа (с поиском в глубину) разработаны методы [11], позволяющие находить минимальное вершинное покрытие и максимальное независимое множество вершин в произвольном двудольном графе Н = (X, Y, Е) за время 0((т + п)4п), где п = IX и Y| и т = |Е|. Полиномиальные алгоритмы
n
вычисления числа устойчивости были получены для совершенных графов — графов, у которых для любого его порожденного подграфа хроматическое число равно кликовому числу. Алгоритм вычисления числа устойчивости графа [16] основан на методе эллипсоидов и использует процедуру отделения матриц графа. В вычислительном плане этот алгоритм обладает рядом существенных недостатков, не позволяющих использовать его на практике. Как показано в работе [16], получить правильное решение при числе вершин в графе более 10-ти практически невозможно. Применение т-алгоритмов позволило увеличить размерность решаемых задач до 50, а при использовании двойственных оценок в схеме ветвей и границ — до 100, с погрешностью, не превышающей 5 % [16].
Таким образом, поскольку размерности задач, решаемых в GRID-системах, достаточно велики, представляется актуальной разработка эффективного приближенного алгоритма, решающего с единых позиций ЗНВП и ЗНП и обладающего малой временной сложностью и погрешностью.
1. ПОСТАНОВКА И МЕТОД РЕШЕНИЯ ЗАДАЧИ
Для решения с единых позиций ЗНВП и ЗНП будем представлять как граф Є (X, Е), так и произвольную матрицу В в виде булевой функции. Рассмотрим конъюнктивное представление булевой матрицы В. Пусть задана булева матрица В с п столбцами и т строками. Столбцы будем задавать вектором X = {х1, х2, ..., хп}, а строки — вектором М = {ц1, ц2,..., цт}. Покрытием 0 строк Мматрицы В назовем такое множество столбцов В, которое покрывает единицами все строки М. Для определения всех покрытий матрицы будем применять алгебраический метод получения по импликант-ной таблице приведенных систем простых импли-кант булевых функций. Если каждый столбец из совокупности X = {х1, х2, ..., хп} рассматривать как «простую импликанту», покрывающую совокупность строк М = {ц1, ц2,..., цт}, каждую строку ц, как набор переменных, покрываемых простыми импликантами, то матрицу В можно представить как импликантную таблицу булевой функции. При такой интерпретации матрицы В для каждой строки ц, можно записать дизъюнкцию столбцов Ьі, покрывающих рассматриваемую строку, в следующем виде:
= (X V хк V ...)
... (4)
^ = (X, V X V ...).
Конъюнкция дизъюнкций (4) по всем строкам ц1, ц2, ..., цт матрицы В образует конъюнктивное
О
5
Рис. 2. Граф Є
представление матрицы В, содержащее в себе все покрытия совокупности строк М:
к(М) = аЦ • ф2 •...• =
= (X V Хк V ...)-...-(Хр V X V ...). (5)
Раскрывая скобки в соответствии с законами дистрибутивности, получаем дизъюнктивное представление матрицы В, образующее перечень всех возможных покрытий совокупности строк М = {ц1, ц2, ..., цш}. Так, в соответствии с выражением (5) конъюнктивное представление матрицы
1 2 3 4 5 6 7
1- -2 1 1 0 0 0 0 0’
1- 3 1 0 1 0 0 0 0
1- 4 1 0 0 1 0 0 0
2- -7 0 1 0 0 0 0 1
3- -6 0 0 1 0 0 1 0
4- -5 0 0 0 1 1 0 0
задающей граф Є (рис. 2), имеет вид:
F = (X V Х)(Х V XXX V XXX V X) х
х (X V Х)(Х V X). (6)
Как показано в работе [17], если f — булева функция, построенная по графу Є = (V, Е) в виде произведения дизъюнктов (V, V V ), где {V,} Є {0, 1},
і = (1, п), j = (1, п), і ф у, и при этом каждый дизъюнкт (V, V V) соответствует ребру (V,, V), то все наборы переменных {V,, ^}, на которых она принимает значение «истинно», соответствуют вершинным покрытиям в графе Є = (V, Е). И для перечисления всех вершинных покрытий графа Є = (V, Е) необходимо определить те системы зна-
чений переменных {у,, V.}, при которых высказывание
F(^1, ^, ..., Г„) = 1 (7)
«истинно». Чтобы найти эти системы значений переменных {у, у.}, необходимо привести левую часть выражения (7) к минимальной дизъюнктивной нормальной форме, раскрывая скобки и пользуясь законом поглощения. Такая форма единственная, ввиду отсутствия в выражении (7) логических отрицаний.
Введем следующие понятия и определения для элементов булевой матрицы В, задающей некоторый граф G (X, Е). Если в матрице В выделить произвольный столбец у, то с ним можно связать некоторое подмножество столбцов {#}, с которыми данный столбец пересекается, поскольку столбец у соответствует вершине графа, а число единиц в столбце определяется степенью вершины А., и подмножество {#} будет всегда содержать А. таких столбцов. Будем говорить, что подмножество столбцов {#}■ образует связку столбцов относительно столбца у. Число столбцов в матрице В равно числу вершин п в графе (/(X, Е), а число возможных связок столбцов для матрицы В равно п. Отметим, что все столбцы в матрице В пересекаются друг с другом только в одной строке, поскольку в каждой строке матрицы В находится по две единицы. Поэтому, с точки зрения их пересекаемости, возможность их принадлежности минимальному покрытию равновелика. Каждая связка столбцов {#}.. покрывает определенное число строк IСвязку {#}., покрывающую максимальное число строк в матрице В, назовем максимальной. Если в графе С (X, Е) есть висячие вершины, то это означает, что в матрице В есть столбцы Р, содержащие только одну единицу, и, следовательно, связки этих столбцов содержат только по одному столбцу в каждой. Эти столбцы обладают интересным свойством, которое для произвольных графов С (X, Е) определяет следующее
Утверждение. Если граф Е) содержит
некоторое подмножество висячих вершин О е X, то подмножество вершин Р е X смежных с О может быть дополнено до одного из минимальных вершинных покрытий графа С (X, Е)>
Доказательство. Пусть граф С(X, Е) содержит висячую вершину у, которая соединена с ним ребром (/, у). Тогда граф С (X, Е) можно представить в виде объединения подграфов С"' и С"", при этом вершина / является точкой сочленения, т. е. принадлежит подграфам С' и С". Пусть подграф С' содержит к вершин, тогда степени вершин в подграфе С" могут изменяться от 1 до к — 1. Предпо-
ложим, что в графе С^, Е) покрытие {^^ не включает в себя вершину /, но тогда оно должно включать в себя вершину у (т. е. у е {^^ш) ддя того, чтобы ребро (/, у) оказалось покрытым. Пусть степень вершины / в подграфе С" равна 1 и вершина / в подграфе С" соединена с вершиной XI. Поскольку ребро (/, XI) должно быть покрыто, а вершина / в покрытие не входит, то XI е {^^щ. Следовательно, обе вершины (/, XI) е {^^щ. Если вместо вершин (/, XI) в покрытие ввести вершину /, то мы получаем новое покрытие {X,}, которое содержит на одну вершину меньше, чем покрытие {^^т. Это противоречит первоначальному предположению о том, что покрытие {^^т, содержащее вершину у, является минимальным вершинным покрытием в графе С (X, Е). Аналогичное рассуждение можно провести, полагая степени вершины / в подграфе С" равными 2, 3, ..., к — 1; следовательно, по индукции следует, что во всех возможных случаях возникает противоречие с первоначальным предположением, и вершина / принадлежит минимальному вершинному покрытию. Поскольку аналогичное рассуждение можно провести для любой висячей вершины графа С (X, Е), то по индукции утверждение можно считать доказанным. ♦
В общем случае, если в графе существует несколько минимальных вершинных покрытий, то могут существовать и минимальные вершинные покрытия без вершины, смежной с висячей вершиной графа С (X, Е), но если оно одно, то эта вершина обязательно в нем присутствует. Таким образом, если в матрице В есть столбец у, содержащий одну единицу, то связка столбцов относительно столбца у (в данном случае она состоит из одного столбца) принадлежит минимальному покрытию Xmin. В случае представления графа в виде булевой функции F(X1, 22, ..., 2^) данное утверждение эквивалентно тому, что если в дизъюнктах есть переменная Хр, которая в них встречается один раз, то переменная Xи, составляющая ей пару, в дизъюнкции входит в покрытие. И, следовательно, данную дизъюнкцию можно заменить переменной 2^, при этом исключить из анализа все дизъюнкции, содержащие переменную Xи. В работе [8] при анализе графов С(X, Е), не имеющих висячих вершин, представленных в конъюнктивной нормальной форме в виде некоторой булевой функции Е, для определения наименьшего множества переменных {X,.}, которые покрывают все дизъюнкты в конъюнктивном представлении графа С (X, Е), предложено применять принцип су-
перпозиции в булевой алгебре, основанный на следующем равенстве:
ЛХ, А2,..., X,,) = f(Xl = 0, X, ..., X,,) V
V Д^, ^2 = 0, ..., X,) V ... V f(Xl, 2^, ..., X, = 0). (8)
Не нарушая принципа суперпозиции, соотношение (8) можно представить в виде
ЛХ, X, ..., X,) = ХЛ(Х, х, ..., X,) V
V ^2 Д^, ^2, ..., X,) V ... V X, Д^, ^2, ..., X,). (9)
Особенность конъюнктивного представления графа Є (X, Е) в виде булевой функции состоит в том, что она содержит число дизъюнктов, равное числу ребер в графе, а число переменных в каждом дизъюнкте равно 2, и каждая переменная соответствует некоторой вершине графа Є (X, Е). Введем
понятие характеристического вектора hq = (й,-^ 1, ^2= 2, ..., М”= п)Ч некоторой булевой функции
Л = ^•...Ч Л^р ^ ..., ^ (10)
в которой переменные X,, X., ..., X, не встречаются
у п 4
в функции Д(Х, X2, ..., X,).
Вес у, в векторе h указывает, как часто переменная X встречается в дизъюнктах функции Д^, X2, ..., X,), а сам вектор будем описывать суммарной весовой характеристикой
V, = I у,.
(11)
, = 1
Рассмотрим алгоритм решения данной задачи в виде следующей процедуры А преобразования булевой функции XXI, X2, ..., X,), задающей некоторый граф С (X, Е).
Шаг 1. Проверяем, есть ли в дизъюнктах /(XI, X2, ..., X,) переменные {X} встречающиеся по одному разу. Если да, то умножаем/(XI, X2, ..., X,) на переменные {X}, стоящие совместно в дизъюнктах с переменными и образующие сомножитель X -Х, •... -X,, состоящий из г переменных, нахо-
р п Я.
дившихся в дизъюнктах совместно с Хк, при этом все дизъюнкты в/(XI, X2, ..., X,), содержащие переменные X, X,,
Р,
X,, исключаем из дальнейшего
анализа.
Шаг 2. Проверяем, встречаются ли в полученной функции / = X,•X/^•...•X^•/(X1, X2, ..., X,) оставшиеся переменные по одному разу или нет; если да, то мы получили минимальное вершинное покрытие, в которое входят вершины, соответствующие переменным X • X. •... • X, и переменным,
у п Я
выбираемым по одной из каждого оставшегося дизъюнкта, и процедура заканчивается; если нет, то выполняем следующий шаг.
Шаг 3. Полученные функции / = Xр•Xn•... ... • X, X2, ..., X,) умножаем поочередно на пе-
ременные X,, оставшиеся в/^^ Х,..., X,), и исключаем при этом дизъюнкты, содержащие X., если их #, то мы получим q таких функций /2, ..., У',},
и для каждой функции вычисляем характеристи-
ческий вектор hq = (h^1= 1, ^2= 2,
весовую характеристику V, = I /. Среди них вы, = 1
бираем функцию Д с минимальным значением весовой характеристики и переходим к шагу 1. Если же все весовые характеристики функций окажутся одинаковыми, то выбираем любую из них. ♦
Данная процедура представляет собой «жадный» алгоритм, который строит минимальное вершинное покрытие в графе Є (X, Е) заданным в виде конъюнктивного представления матрицы В, в которой столбцам і соответствуют вершины графа {X}, а строкам 5 — ребра (X,, X) є Е графа.
, 0.3
В процессе выполнения алгоритма, когда мы полагаем X = 1, появляется произведение XуX:, ..., X,, которое поглощает все дизъюнкты, содержащие эти переменные, последнее эквивалентно удалению из графа вершин (і, р, к, ..., с) и ребер, им инцидентных. В результате такого преобразования исходного графа возможны два варианта: вновь полученный подграф может содержать или не содержать висячие вершины.
Если подграф содержит висячую вершину, то, включая ее в минимальное покрытие и удаляя из графа вместе с инцидентными ей ребрами, получим новый подграф. Если в процессе преобразования мы каждый раз получаем подграф с висячими вершинами, то в соответствии с утверждением мы получим в худшем случае за п шагов минимальное вершинное покрытие исходного графа. Так, если исходный граф является деревом, содержащим п ярусов и имеющим ширину, равную h (под шириной дерева подразумевается максимально возможное число вершин на ярусе дерева), то данная стратегия последовательного включения в покрытие вершин, смежных с висячими, позволит построить минимальное вершинное покрытие дерева за О^п) шагов.
В случае, когда после удаления вершин (і, р, к, ..., с) и ребер, им инцидентных, получается подграф, не содержащий висячих вершин, можно выделить три варианта: два предельных случая, когда получаемый подграф является полно связанным компонентом или образует простой цикл на остав-
,
,
шемся множестве вершин, и оптимальность работы алгоритма в этих крайних случаях очевидна; промежуточный вариант — когда в подграфе нет висячих вершин и степени его вершин произвольны. Обоснование оптимальности работы алгоритма в этом случае дает следующая
Теорема. Если при Xj = 1 получается связка
столбцов {q}*, покрывающая максимальное число
строк в матрице B, то применение к ней процедуры A приводит к построению минимального покрытия матрицы B. ♦
Доказательство. Предположим, что множество столбцов, принадлежащее связке {q}* покрывает максимально возможное из всех связок столбцов число строк l, а оставшиеся (m — l) строк непокрытые. Процедура A, добавляющая число столбцов до полного покрытия строк матрицы B, на каждом шаге добавляет в покрытие каждый раз столбец, покрывающий максимальное число строк из непокрытых. Следовательно, к столбцам {q }*
добавится минимальное число столбцов {р}. Итак, мы получили покрытие, состоящее из множества
столбцов {q }* u {p}. Предположим, что оно не
минимально, но поскольку число добавленных до покрытия столбцов {р} процедурой A минимально, последнее возможно, если существует связка столбцов, а связку столбцов {q}. покрывает число строк k > l. Это противоречит первоначальному предположению о том, что {q }* является максимальной
связкой столбцов, следовательно наше предположение неверно и множество столбцов образует минимальное покрытие матрицы B графа G (X, Е)> Потеря оптимального решения при работе процедуры A происходит тогда, когда возникает ситуация, при которой весовые характеристики всех булевых функций f в процедуре A оказываются одинаковыми, и тогда мы выбираем любую из них. Однако возникновение такой ситуации возможно в основном на однородных графах, что в задачах планирования ресурсов в GRID встречается довольно редко. Ясно, что процедура A может быть применена не только для булевых матриц, которые задают некоторый граф G (X, Е), но и для произвольных булевых матриц.
Пример. Определим минимальное вершинное покрытие в графе, приведенном на рис. 3.
Строим булеву функцию графа:
f = (Xj V x2)(xt V *3)^ V x5)(x2 V x3) S s (x2 V x6)(x3 V x4)(x4 V x5)(x5 V x6).
Определяем, есть ли переменные, которые встречаются один раз. Если да, то умножаем функцию на переменную, соседнюю с ней, иначе вы-
Рис. 3. Граф G
писываем все функции, умноженные поочередно на все переменные, присутствующие в ней, и вычисляем векторы, характеризующие данные функции и их весовые характеристики:
Д = х1(х2 V х3)(х2 V х6)(х3 V х4)(х4 V х5)(х5 V Х6);
*1 = (22, 13, 24, 25, 2б); ^ = 9;
Д Х2(х1 V х3)(х1 V х5)(хз V х4)(х4 V х5)(х5 V х6);
*2 = (21, 23, 24, З5, 1б); V, = 10;
Д3 Х3(Х1 V х5)(х2 V х6)(х4 V х5)(х5 V Х6);
*3 = (21, 22, 14, 25, 26); ^3 = 9;
Д = Х4(х1 V х2)(х1 V х3)(х1 V х5)(х2 V х3)(х2 V Х3) X
X (х5 V х6); *4 = (31, 32, 23, 25, 26); V2 = 12;
Д = х5(х1 V х2)(х1 V х3)(х2 V х3)(х2 V х6)(х3 V х4);
*5 = (31, 22, 23, 14, 16); V, = 9*;
Д = Х6(х1 V х2)(х1 V х3)(х1 V х5)(х2 V х3)(х3 V Х4) X
X (х4 V х5); *6 = (31, 22, 33, 24, 25); V5 = 12.
Из полученных таким образом функций выбираем ту, в которой суммарная весовая характеристика вектора минимальна: функция /5. Поскольку в выражении для Д переменная х4 встречается только один раз, умножаем Д на переменную соседнюю с ней — это х3 — и получаем:
Д53 = х5х3(х1 V х2)(х2 V х6).
Поскольку в выражении для Д53 переменные х6 и х 1 встречается только один раз, то умножаем Д на переменную соседнюю с ней — это х2 — и получаем:
*^532 = х5х3х2.
Таким образом, минимальное вершинное покрытие образуют вершины {2, 3, 5}.
2. ЭКСПЕРИМЕНТАЛЬНОЕ ИССЛЕДОВАНИЕ
Исследование временной сложности разработанного алгоритма проводилось для произвольных графов с различными плотностями ребер в графе. Плотность А изменялась от 0,1 до 0,5, а число N вершин — от 4 до 100. Графики зависимости числа Q элементарных операций от числа вершин в графе приведены на рис. 4. Как видно, временная сложность алгоритма определения минимальных вершинных покрытий в графе в среднем не
превышает величины 0(0,9п ).
Все результаты получены с доверительной вероятностью 0,95, погрешность решений не превышала 2—6 %, а процент неточных решений не превышал 20 %.
ЗАКЛЮЧЕНИЕ
Предложенный метод позволяет с достаточно высокой оперативностью и точностью решать как задачи о наименьшем покрытии, так и задачи о наименьшем вершинном покрытии. Временную сложность соответствующего алгоритма можно
легко понизить до O(n ), если его реализовывать на n-процессорной вычислительной системе, поскольку функции f при реализации процедуры А можно вычислять одновременно независимо друг от друга, что очень важно для планирования распределением ресурсов в системах, работающих в реальном времени, к которым и относятся системы распределения ресурсов в GRID. Данный ме-
Qx ю5
10i------
9--------
8--------
7--------
6--------
5--------
4--------
3--------
2--------
1--------
0 ЬЮЮЮ«В
4 12 20 28 36 44 52 60 68 76 84 92 п
Рис. 4. Зависимость числа элементарных операций от размерности графа при различных значениях плотностей ребер
в графе:---------— Л = 0,1; —х— — Л = 0,3;
-а- — Л = 0,5;--------------Л = 0,9и3
тод даст возможность эффективно решать динамически изменяющуюся задачу определения минимального числа кластеров, позволяющих решить заданное подмножество задач с требуемой эффективностью.
ЛИТЕРАТУРА
1. Brucker P. Scheduling Algorithms. — Springer Ferlag, 1998. — P. 217—218.
2. Methods and Experiences of Parallelizing Flood Models / L. Hluchy, et al. // The 10th EuroPVM/MPI Conference. LNCS 2840. Sept. 2003, Venice. — P. 677—681.
3. Baker B.S., Brown D.J. and Katseff H.P. A 5/4 algorithm for two-dimensional packing // Jornal of Algorithms. — 1981. — Vol. 2, — P. 348—368.
4. Кристофидес Н. Теория графов. Алгоритмический подход. — М.: Мир, 1978. — 309 с.
5. Balinski M. Integer programming: methods, uses, computation // Man. Sci. — 1965. — N 12. — P. 253.
6. Garfmkel R.S., Nemhauser G.L. The set partitioning problem: set covering with equality constraints // Ops. Res. — 1969. — N 17. — P. 848.
7. Pierce J.F. Application of combinatorial programming to a class of all-zero-one integer programming problems // Man. Sci. — 1968. — N 15. — P. 191.
8. Gomory R. An algorithm for integer solutions to linear programs, Recent Advances in mathematical Programming. — N-Y.: McGraw-Hill, 1963.
9. Bellmore M., Ratliff H.D. Set covering and involuntary bases // Man. Sci. — 1971. — N 18. — P. 427.
10. Листровой С.В., Симашкевич О.Н. Об использовании гарантированных прогнозов в методах решения задач буле-вого программирования на основе рангового подхода // Электронное моделирование. — 2003. — Т. 25. — № 4. — С. 89—103.
11. Липский В. Комбинаторика для программистов. — М.: Мир, 1988. — 203 с.
12. Шор Н.З., Стеценко С.И. Квадратичные экстремальные задачи и недифференцируемая оптимизация. — Киев: Наукова думка, 1989. — 196 с.
13. Пападимитриу К., Стайглиц М. Комбинаторная оптимизация. Алгоритмы и сложность. — М.: Мир, 1985. — 512 с.
14. Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. — М.: Мир, 1982. — 416 с.
15. Листровой С.В., Гуль А.Ю. Метод решения задачи о минимальном покрытии на основе рангового подхода // Электронное моделирование. — 1999. — № 1. — С. 58—70.
16. Listrovoy S.V. and Gul A.Yu. Method of Minimum Covering Problem Solution on the Basis of Rank Approach // Engineering Simulation. — 1999. — Vol. 17. — P. 73—89.
17. Листровой С.В., Яблочков С.В. Метод решения задачи определения минимальных вершинных покрытий и независимых максимальных множеств // Электронное моделирование. — 2003. — Т. 25. — № 2. — С. 31—43.
@ +38057-730-10-62, e-mail: [email protected]
Статья представлена к публикации членом редколлегии В.Д. Малюгиным. □
84
CONTROL SCIENCES № З • 2008