УДК 681.3.681.5
ТОЧНОЕ РЕШЕНИЕ НЕОДНОРОДНОЙ РАСПРЕДЕЛИТЕЛЬНОЙ ЗАДАЧИ МОДИФИКАЦИЕЙ АЛГОРИТМА АЛЕКСЕЕВА
© 2008 г. Р.А. Нейдорф, В.Г. Кобак, Д.Г. Красный
Введение
Классическая задача теории расписаний служит моделью для многих задач, встречающихся практически в любой научно-технической области, например при построении сложных технических систем, связанных с массовым обслуживанием. Поэтому исследование задач теории расписаний помогает изучить фундаментальные свойства практических задач и строить более эффективные алгоритмы их решения. Необходимость исследования методов построения оптимальных расписаний определяется возможностью экономии вычислительных ресурсов и времени на решение распределительной задачи [1].
Постановка задачи
В терминах теории расписаний упомянутая выше задача может быть сформулирована следующим образом. Имеется система обслуживания, состоящая из n независимых устройств. На обслуживание поступает конечный поток m независимых параллельных заданий. Каждое независимое задание характеризуется вычислительной сложностью tj е S, которая позволяет оценить время обслуживания /-го задания на j-м устройстве. Приборы не идентичны, и /-е задание может быть обслужено любым устройством, но не более одного в момент времени. Необходимо определить такое распределение заданий по устройствам без прерывания их выполнения, чтобы время обслуживания всей совокупности заданий было минимальным. Расписание задает ограничения на последовательность выполнения заданий и удовлетворяет условию транзитивности. Критерием разбиения, обеспечивающего оптимальность расписания по быстродействию, служит минимаксный критерий, который определяется в следующем виде: Q = max f j ^ min, где
l<j<n '
f j = £ tj - общее время загрузки j -го устройства
reNj
[2] при условиях: Nk n N = 0, k, l = 1...n , к Ф l и
U N} = M , M = [1...m] .
j=i
Алгоритмы решения задачи
Для решения распределительной задачи существуют два вида алгоритмов: приближенные и точные [3].
Широкое распространение получили простые алгоритмы построения списочного расписания, основанные на эвристических подходах, к примеру алгоритм Плотникова - Зверева. Они относятся к методам
приближенного решения и не гарантируют получение оптимального расписания, но могут, однако, давать приемлемые по точности решения. Достоинством приближенных алгоритмов является быстродействие, так как решение они находят за полиномиальное время.
Для построения оптимального расписания используются точные алгоритмы, основанные на методе ветвей и границ. Они позволяют получить оптимальное решение поставленной задачи, но за «экспоненциальное» время. Среди точных алгоритмов умеренностью выделяется алгоритм Алексеева (АА), который позволяет получить оптимальное решение для общего класса распределительных задач [4].
Краткая характеристика алгоритма Алексеева
Процесс поиска оптимального решения заключается в движении по вершинам дерева вариантов распределения заданий. Дерево состоит из m +1 уровней. На z -м уровне дерева формируется n вариантов распределения z -го задания, для чего последовательно принимается z е Nz , j е [1..n], Nz - распределенные задания на j-е устройство до уровня z . Полученные варианты оцениваются с помощью выраже-
1 m
ния: T0 = max{— i ;max т i} - начальная нижняя
n i =1 z+1<i< m
граница, где тi = min tij; T7 = max{Tz;Tz ;maxт},
1< ■<n J ' 'n
[<j<n z+1<i<m
1 f r m Л
где Tz определяется как Tz = — I £ Tjs + £ т i I,
r ^ s=1 i = z+1 )
Tz j - определяет нижнюю границу варианта распределения, при котором z-е требование назначено на j-е устройство.
В качестве активной вершины для ветвления на уровне z выбирается вершина, соответствующая варианту с наименьшей оценкой Tz p = min Tz1. Ос-
zp 1< j< n 1
тальные вершины текущего уровня z - концевые.
Первые z < m заданий распределяются по устройствам и для j-го устройства рассчитываются Tj - частичные загрузки, для m - z заданий определение устройств обслуживания выполняется по схеме: r = n при z < m - n, иначе r = m - z .
Значение Tzj дает оценку нижней границы распределения, улучшить которую можно, перераспределив на предыдущем уровне z . Решение оптимально, если дерево вариантов не имеет концевых вершин
с оценками T, , < T *, где T * = max T < - значение
1 1<1< n 1
целевой функции полученного решения. В противном случае производится проверка и уточнение решения
путем ветвления из вершин, отвечающих неравенству
*
T ■ < T
z 1 ^ L
Модификация алгоритма Алексеева
Время поиска оптимального решения в АА зависит от размерности задачи и значений матрицы t ^.
Ввиду экспоненциальности этого времени целесообразно рассмотреть возможность минимизации при построении оптимального расписания.
Недостатком АА является то, что при одновременном поступлении заданий в систему не учитывается их порядок по стоимости времени выполнения каждого отдельного задания. Поэтому, используя особенность независимости заданий, алгоритм можно улучшить, внеся изменения в последовательность назначения заданий на обслуживание.
Можно определить предварительный порядок обслуживания задания устройством по уменьшению времени, затраченного на каждое отдельное задание, но так как система неоднородна, время выполнения i-го задания может быть различно для каждого из устройств, то порядок обслуживания будем определять по сумме весов /-го задания каждого 1-го устройства. То есть надо упорядочить строки матрицы S по убыванию суммы всех элементов строки
n n n
Е (ti 1) ^ Е (t21) ^ ■■■ ^ Е (tmj). Таким образом,
1=1 1=1 1=1
достигается более «плотное» распределение заданий с большим временем обслуживания и более равномерная загрузка обрабатывающих устройств. Преобразованную матрицу определили как S', с t! е S', и последующие шаги исходного АА необходимо выполнять над ней.
Для наглядности работу алгоритма рассмотрим на примере: имеется система n = 3 и m = 7 значения ty е [15,40]. Выполнив описанные выше преобразования над матрицей S (табл. 1), получим матрицу S' (табл. 2). Решение эталонным алгоритмом Алексеева строится по матрице S , решение, построенное по матрице S' - модификация алгоритма Алексеева.
В табл. 3, 4 приведены рассчитанные значения оценки для каждого уровня z , после выполнения первой итерации построения расписания алгоритмами эталонным Алексеева и модифицированным.
Для модифицированного алгоритма на уровне при z = 7 элемент распределяем на устройство 1 = 1 в
результате T * = max T,, T1 = 51, T2 = 51, T3 = 64 ^
1< 1<n
^ T * = 64 и полученное расписание N17 = {1;7}, N27 = {3;4}, N37 = {2;5;6}.
Для алгоритма Алексеева на уровне z = 7 последний распределяемый элемент имеет значения t71 = 32 ,
t72 = 23 , t73 = 20 . Если седьмое задание поступит на обслуживание первому устройству, то значение оценки T71 = 79, аналогично для j = 2 ^ T72 = 77 и для
j = 3 ^ T73 = 64 (табл. 3). Таким образом, так как T7 = min T7 = 64, седьмой элемент распределяем
3 1<j<n j
на третье устройство с минимальным значением
оценки для уровня z = 7 . Алгоритм Алексеева в пер*
вом приближении дает решение T = max T i,
1<j<n '
*
T1 = 47, T2 = 54, T3 = 64 ^ T = 64 с расписанием N7 = {3;5}, N27 = (1; 4}, N37 = {2; 6; 7}.
Таблица 1
Исходная матрица
S t,1 ta ta n E (tj) j=1
t1j 37 19 30 86
t2j 19 28 15 62
t3j 28 32 32 92
t4j 32 35 38 105
t5j 19 22 19 60
t6j 33 34 29 96
t7j 32 23 20 75
Таблица 2
Преобразованная матрица
S' t'a n E (t'j) j=1
t'j t4j 32 35 38 105
t6j 33 34 29 96
% 28 32 32 92
t 4j t1j 37 19 30 86
t'j t7j 32 23 20 75
t 6j t2j 19 28 15 62
t'j t5j 19 22 19 60
При первой итерации решения эталонным и мо*
дифицированным алгоритмами Т = 64 совпадают. Но если рассматривать решение модифицированным алгоритмом (табл. 4), то заметно, что после изменения порядка поступления заданий на обслуживание, в ходе решения полученные значения оценок отличаются от значений оценок эталонного алгоритма, соответственно отличается и дерево вариантов решения.
Дальнейший поиск по дереву решений выполняется исходя из свойств графа. Для уточнения полученного решения выполняется ветвление из вершин дерева решения, удовлетворяющих условию Тг< Т *. Для эталонного алгоритма число вершин,
из которых можно продолжить поиск решения, равно 9 (табл. 3), а для модифицированного алгоритма число вершин 6 (табл. 4).
Таблица 3
Алгоритм Алексеева
Z 1 2 3 T ^
0 0 0 0
0 0 0 0 54
0 0 0 0
37 0 0 60
1 0 19 0 54
0 0 30 58
19 19 0 59
2 0 47 0 59
0 19 15 54
28 19 15 54
3 0 51 15 56
0 19 47 56
60 19 15 60
4 28 54 15 55
28 19 53 56
47 54 15 56
5 28 76 15 76
28 54 34 56
80 54 15 80
6 47 88 15 88
47 54 44 64
79 54 44 79
7 47 77 44 77
47 54 64 64
Таблица Модифицированный алгоритм Алексеева
Z 1 2 3 T ^
0 0 0 0
0 0 0 0 54
0 0 0 0
32 0 0 54
1 0 35 0 55
0 0 38 56
65 0 0 65
2 32 34 0 56
32 0 29 54
60 0 29 60
3 32 32 29 56
32 0 61 61
69 32 29 69
4 32 51 29 56
32 32 59 59
64 51 29 646
5 32 74 29 74
32 51 49 58
51 51 49 68
6 32 79 49 79
32 51 64 64
79 54 44 79
7 32 73 64 73
32 51 83 83
Т = 64 и 113 < /11, но направление поиска оказывается неправильным, для вновь построенного дерева решений не существует такого варианта, чтобы при г = 7 полученное значение оценки удовлетворяло
Т7< Т *. Эталонным алгоритмом решение удалось улучшить, изменив распределение на уровне г = 4, -задание / = 4 назначили на } = 1 устройство, где
Т41 = 60. Последующее решение для эталонного ал*
горитма Алексеева приводит к значению Т = 63 и построенному расписанию , где N1 = {3; 4},
N 27 = {1;7}, N 37 = {2;5;6}.
Для модифицированного алгоритма Алексеева на уровне г = 1 выбираем вариант направления на } = 2
обрабатывающее устройство, так как Т12 < Т *, Т12 = 55 , Т * = 64, но дальнейшее решение приводит к отказу от данного направления по графу; поскольку улучшить Т * из данной вершины нельзя, выбираем
следующий доступный вариант ] = 3 на уровне г = 1,
* *
Т13 < Т при Т13 = 56 , Т = 64 . Но последующее решение приводит также к отказу от выбранного направления. Просматриваем следующие доступные варианты, но уже на уровне г = 2, и выбираем I = 2,
Т22 = 56, построив решение из данной вершины,
*
удалось улучшить оценку Т = 60 и построить расписание , где Ы/ = {1;3}, N27 = {2;4},N37 = {5;6;7}. Дальнейший обход вершин со значением оценки удовлетворяющим условию Тг< Т *, при Т * = 60 , а их 4 (рис. 1), для модифицированного алгоритма Алексеева не позволяет улучшить Т * - оптимум найден.
Из возможных вариантов на уровне графа при г = 1 выбираем следующий по возрастанию элемент , но не выбранный ранее и удовлетворяющий условию Тг : < Т *. Для эталонного алгоритма Алексеева
выбирается j = 3 , так как
T13 < T
T1 з = 58,
Рис. 1. Дерево решения: а - алгоритм Алексеева; б - модифицированный алгоритм Алексеева: О - вершины,
удовлетворяющие условию Т^<Т ;-----► - варианты
движения по графу; -* - выбранный вариант движения
по графу
б
а
Решение с помощью эталонного алгоритма приводит к расписанию N7 = {3;4}, N27 = (1;6>, N37 = {2;5;7}, со значение оценки Т * = 60 (рис. 1 а) и числом вершин, удовлетворяющим условию Тг- < Т * 9, в то
время как модифицированный алгоритм позволил получить оптимальное решение на предыдущей итерации.
Дерево решения, при котором достигнуто оптимальное расписание алгоритмом Алексеева и модифицированным алгоритмом Алексеева представлено на рис 1. а, б соответственно.
Экспериментальное сравнение алгоритмов
Рассмотренный пример демонстрирует процесс поиска оптимального расписания, но не позволяет
сделать однозначный вывод о соотношении свойств эталонного и модифицированного алгоритма Алексеева. Поэтому в рамках исследования алгоритмов поставили вычислительные эксперименты, позволяющие собрать статистику решений алгоритмами. Эксперименты: п е [2,3,4] независимых устройств,
те [12,13,...22] независимых заданий, е [5..50],
е [25..30], для каждой размерности выполняется
100 генераций заданий. На основе полученных данных вычисляется среднее значение времени решения
^ Ат 1 ср
для модификации алгоритма Алексеева и та
ср
для алгоритма Алексеева.
Для сравнения приведем графики времени решения двумя алгоритмами при числе устройств п = {2,4}, где та - время в миллисекундах рис. 2, 3).
Решение при п = 2
700,00 600,00 500,00 400,00 300,00 200,00 100,00 0,00
12 13 14 15 16 17 18
Рис. 2. Сравнение таА и та¡Арт при е [25,30] : 1 - алгоритм Алексеева; 2 - модифицированный алгоритм Алексеева
19
20
та
600,00 500,00 400,00 300,00 200,00 100,00 0,00
Решение при п = 4
12
13
14
15
16
17
18
1
19
20
21
22 т
Рис. 3. Сравнение та А, и та А при е [5,50] : 1 - алгоритм Алексеева; 2 - модифицированный алгоритм Алексеева
А
та
т
2
Выводы
1. Модифицированный алгоритм Алексеева при всех размерностях n х m и на всех наборах данных [5,50] (рис. 3), [25, 30] позволяет получить результат за более короткое время.
2. Чем шире интервал, которому принадлежит ty ,
тем за более быстрое время позволяет получить решение алгоритм Алексеева, а для модифицированного алгоритма Алексеева время, затраченное на решение, еще меньше.
3. Оптимальное расписание эталонным алгоритмом и модифицированным алгоритмом Алексеева при выполнении условия кратности, т.е. когда число заданий делится на число устройств без остатка m mod n = 0, строится за меньшее в разы время, чем в случае невыполнения условия кратности. Причем
Донской государственный технический университет
решение модифицированным алгоритмом строится быстрее, чем эталонным алгоритмом Алексеева (рис. 2).
Литература
1. Сергиенко И.В., Каспшицкая М.Ф. Модели и методы решения на ЭВМ комбинаторных задач оптимизации. Киев, 1981.
2. Коффман Э.Г. Теория расписания и вычислительные машины. М., 1987.
3. Пашкеев С.Д, Минязов Р.И., Могилевский В.Д. Машинные методы оптимизации в технике связи. М., 1976.
4. Алексеев О.Т. Комплексное применение методов дискретной оптимизации. М., 1987.
29 ноября 2007 г.