УПРАВЛЕНИЕ, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И ИНФОРМАТИКА
УДК 681.3+681.5
МОДИФИКАЦИЯ ГЕНЕТИЧЕСКОГО АЛГОРИТМА РАСПРЕДЕЛЕНИЯ ДЛЯ ЧЕТНОГО КОЛИЧЕСТВА ОДНОРОДНЫХ ПРИБОРОВ
© 2010 г. Д.В. Титов
Донской государственный технический Donskoy State Technical
университет, г. Ростов-на-Дону University, Rostov-on-Don
Рассматривается генетический алгоритм решения однородной минимаксной задачи теории расписаний, позволяющий получить решение, близкое к оптимальному. Проведен анализ эффективности предлагаемого алгоритма в сравнении со списочным алгоритмом, а также с генетическим алгоритмом, использующим турнир с родителем для формирования нового поколения. Анализ проведен на основе большого количества вычислительных экспериментов.
Ключевые слова: распределительная задача; приближенные алгоритмы; списочные алгоритмы; метод критического пути; генетические алгоритмы; операторы генетического алгоритма.
In the given work the genetic algorithm of the decision of a homogeneous minimax problem of the theory of the schedules is considered, allowing to receive the decision close to the optimum decision. The analysis of efficiency of offered algorithm in comparison with list algorithm, and also with the genetic algorithm, using tournament with the parent for formation of new generation is lead. The analysis is lead, using a plenty of computing experiments.
Keywords: the distributive problem, the approached algorithms, list algorithms, critical path method, genetic algorithms, operators of genetic algorithm.
Введение
Во многих отраслях промышленности и производства очень часто применяются многопроцессорные (многоядерные) вычислительные системы для решения различного рода задач. Для упорядочивания и распределения независимых задач по параллельно работающим независимым процессорам возникает необходимость в эффективном планировании. Построение оптимального плана (расписания) относится к задачам ЖР-полным, т.е. трудоемкость решения распределительной задачи определяется по экспоненте, как 0(пт), где О - временная асимптотическая сложность алгоритма, а п, т - целые числа больше единицы, задающие размерность задачи. Исследование задач теории расписаний помогает изучить фундаментальные свойства практических задач и направлено на построение более эффективных алгоритмов решения. Исследование методов построения расписаний, близких к оптимальным расписаниям, определяется возможностью экономии вычислительных ресурсов и времени на получение решения распределительной задачи.
Постановка задачи
Задача теории расписаний для однородных систем обработки информации может быть сформулирована следующим образом. Имеется однородная вычислительная система, состоящая из п идентичных параллельных процессоров Р = {р!,.,рп}, на которые
поступает m независимых заданий Q = {q1,...,qm}, образующих параллельную программу, причем известно время выполнения j-го задания t}- на любом из
процессоров вычислительной системы, где j = 1, m . В каждый момент времени отдельный процессор обслуживает не более одного задания, которое не передаётся на другой процессор. Задача составления расписания сводится к разбиению исходного множества заданий на n непересекающихся подмножеств, т.е.
Q, : Vi, j е [1, n] ^ Qt П Q} = 0 и UQ = Q. Критерием
i=1
разбиения, обеспечивающего оптимальность расписания по быстродействию, служит минимаксный критерий и определяет такое распределение заданий по процессорам, при котором время завершения T параллельной программы минимально, т.е. T = max{Timin, где Ti = £ t, - загрузка i-го
1äiän tjeQi j
процессора (время окончания выполнения множества заданий Qi с Q, назначенных на процессор pi, где
i = \n) [1].
Алгоритмы решения задачи получения расписания
Для решения распределительной задачи существуют несколько разновидностей алгоритмов: точные и приближенные.
Для построения оптимального расписания используются точные алгоритмы, основанные на методе ветвей и границ. Однако построение оптимального расписания с увеличением количества устройств и заданий на современных вычислительных системах может занять очень большое количество времени - от нескольких часов до нескольких месяцев или даже лет. К этому классу алгоритмам относится алгоритмы Романовского и Алексеева.
Если необходимо построить расписание для большого числа независимых заданий за небольшой промежуток времени, причем допускается решение, близкое оптимальному, то для этих целей можно использовать приближенные алгоритмы. Приближенные алгоритмы делятся на несколько классов: списочные (метод критического пути, алгоритм Пашкеева), эвристические (методы роящихся частиц и отжига) и эволюционные (генетические алгоритмы).
Списочные алгоритмы
Списочные методы отличаются простотой в построении и реализации и характеризуются достаточно высокой эффективностью с точки зрения времени выполнения. Физический смысл списочных расписаний можно понимать таким образом. Если распределять работы на устройства, на данный момент наименее загруженные, то общее время выполнения будет также близким к минимальному. Реализация списочных расписаний основана на применении линейных списков работ, упорядоченных по убыванию приоритета в соответствии с принятым алгоритмом выбора работ.
Одним из самых распространенных списочных алгоритмов является метод критического пути (critical path method, CPM). Принцип действия CPM заключается в том, что очередное задание, из списка заданий упорядоченных по убыванию, назначается на процессор с самой минимальной суммарной загрузкой, таким образом, CPM обладает незначительной вычислительной сложностью. Алгоритм работы CPM следующий: на первом шаге формируется список заданий, упорядоченных по убыванию; на втором шаге, поскольку начальная загрузка всех процессоров равна нулю, назначаем на первый процессор первое задание из списка; на третьем шаге выбираем процессор с минимальным временем загрузки на текущий момент и назначаем следующее задание из списка заданий на данный процессор, причем пересчитываем время загрузки данного процессора; на четвертом шаге, если назначены не все задания на процессоры, то выбираем следующее задание и переходим на шаг 3, иначе алгоритм заканчивается с построенным расписанием.
CPM имеет теоретически вычисленную максимальную оценку погрешности, и сама погрешность не зависит от количества распределяемых заданий или их размера [1]. Уровень точности задается соотношением FCPM / F0 < 4/3 -1/ 3n, где n - количество заданий,
FCPM - решение, полученное с помощью CPM, F0 -
точное решение. Следовательно, lim FCPM / F0 < 4/3,
т.е. при росте размерности задачи погрешность не будет превышать 0,33. Данный факт позволяет использовать CPM в качестве базового алгоритма при анализе приближенных и вероятностных алгоритмов между собой на задачах большой размерности.
Генетические алгоритмы
Генетические алгоритмы (ГА), относящиеся к эвристическим методам, представляют собой алгоритмы поиска лучшего решения, а не оптимального, используя при этом принципы, сходные с принципами естественного отбора и генетики. Они имеют вероятностную природу, поэтому результаты, полученные с помощью их, отличаются друг от друга при каждом запуске алгоритма и определяются случайной последовательностью, переданной в схему алгоритма. Точность алгоритма зависит не только от входной последовательности случайных чисел, но и от условий задачи, таких как размерность задачи и конкретное распределение весов.
Базовая схема работы ГА следующая: на первом шаге формируется начальное поколение, состоящее из заданного числа особей; на втором шаге происходит отбор особей и применение операторов кроссовера и мутации ГА с заданной вероятностью, формирование нового поколения; на шаге 3 происходит проверка условия останова, которая обычно заключается в неизменности лучшего решения в течение заданного числа поколений; если проверка прошла успешно, то лучшая особь выбирается как найденное решение, иначе происходит переход на второй шаг.
Такая схема является наиболее общим алгоритмом для решения разнотипных задач. В данном случае решения задачи теории расписания минимаксный критерий будет являться оптимизационной функцией, а условием останова будет неизменность лучшего решения в течение заданного числа поколений. При отборе родительских пар для оператора кроссовера берется текущая особь и случайно выбранная из исходного вектора особей. Для формирования нового поколения используется турнирный отбор, при котором из заданного числа особей (в данном случае две особи) выбирается лучшая, которая перейдет в новое поколение. Лучшей особью считается та, для которой значение оптимизационной функции минимально.
В статье [2] была предложена модификация ГА, которая являлась самой лучшей из рассмотренных в данной статье других модификаций ГА. Данная модификация заключалась в том, что при формировании нового поколения использовался турнирный отбор, в котором участвовала очередная особь (родительская) и результирующая, полученная в ходе выполнения операторов кроссовера и мутации. Данный способ формирования нового поколения будем называть турнир с родителем (т.р.). Данную модификацию ГА, использующую турнир с родителем, будем обозначать как ГА [т.р.].
Сравнение эффективности базового ГА и модификации ГА
В статье [2] был описан ряд вычислительных экспериментов, для 2-4-процессорных систем обработки информации. Количество работ, которые распределялись между процессорами, увеличивалось с 25 до 30. В ходе экспериментов были случайным образом сгенерированы по 100 векторов загрузки, содержащие задачи в диапазоне [25, 30], каждый из векторов решался базовым ГА и ГА [т.р.]. Для всех используемых ГА были выбраны следующие фиксированные параметры: число особей составляло 50, условием останова являлось появление в процессе решения более 500 поколений с лучшей одинаковой особью, вероятность кроссовера составляла 90 %, а вероятность мутации 10 %. Полученные результаты усреднялись по количе-
100
ству экспериментов, т.е. Тср = ^ Т /100. Для оценки
i=1
эффективности рассматриваемых алгоритмов приведен график зависимости АТ = ТсГА - ТсГА[тр] (рис. 1),
где ТсГА - усредненный результат для базового ГА,
ТсГА[тр ] - усредненный результат для ГА [т.р.].
Таким образом, проанализировав результаты, приведенные на диаграмме (рис. 1), можно отметить, что эффективным является ГА [т.р.]. Среднее время работы предложенных алгоритмов очень быстрое, и практически соизмеримо друг с другом.
АТ
5 4 3 2 1 0
ству экспериментов. Для оценки эффективности рассматриваемых алгоритмов приведен график зависи-
ус-
мости АТ = ТС™ - ТсГА[тр ] (рис. 2), где Тс
CPM
25 26 27
30 m
1ср
редненный результат для СРМ, ТсГА[тр] - усредненный результат для ГА [т.р.].
Таким образом, проанализировав результаты, приведенные на диаграмме (рис. 2), можно отметить, что с увеличением количества процессоров от 2 до 10 результаты, выдаваемые методом СРМ, приближаются к результатам ГА [т.р.], а при количестве процессоров более 8 метод СРМ начинает давать результат лучше с увеличением количества процессоров, чем ГА [т.р.]. Причем время выполнения СРМ не превышает 1 мс. Следовательно, при количестве процессоров более 8 целесообразнее вместо ГА [т.р.] использовать СРМ, который дает не только более точные результаты, но и быстрее работает.
АТ
10 5 0
-5 -10 -15
Рис. 1. Сравнение АТ для базового ГА и ГА [т.р.]:
■ - п = 2; - п = 3; - п = 4
Сравнение эффективности ГА и CPM
В статье [3] был описан ряд вычислительных экспериментов для 2-, 4-, 6-, 8- и 10-процессорных систем обработки информации. Количество работ, которые распределялись между процессорами, задавалось равным 39, 99 и 159. В ходе экспериментов были случайным образом сгенерированы по 100 векторов загрузки, содержащих задачи в диапазоне [25, 30], каждый из векторов решался ГА [т.р.] и СРМ. Для ГА были выбраны следующие фиксированные параметры: число особей составляло 50, условием останова являлось появление в процессе решения более 100 поколений с лучшей одинаковой особью, вероятность кроссовера составляла 90 %, а вероятность мутации 10 %. Полученные результаты усреднялись по количе-
Рис. 2. Сравнение АТ для СРМ и ГА [т.р.]:
- п = 2; - п = 4; - п = 6; ■ - п = 8; - п = 10
Модификация ГА (распределительный генетический алгоритм)
В работе [4] была предложена модификация ГА [т.р.], которая заключается в распределенном построении расписания для четырехпроцессорных вычислительных систем. В данной работе описанная идея была перенесена на вычислительные системы, содержащие четное количество процессоров.
Требуется построить расписание для вычислительной системы, состоящей из п однородных процессоров, где п - четное число, на которые поступает т независимых заданий. Для этого вначале распределяем т заданий с помощью ГА [т.р.] на k процессоров, где k = п /2, получаем k непересекающихся подмножеств заданий, т.е. и и — и Qk = Q. Далее распределяем каждое подмножество заданий Q1, Q2,..., Qk, применяя ГА [т.р.], на два процессора,
в результате получаем 2k = п непересекающихся подмножеств заданий, т.е. Q11 и Q12 = Q1,•••, Qk 1 и Qk 2 = Qk , образующих расписание для п-процессорной вычислительной системы, т.е.
Й1 и Ql2 и —и Qkl и Qk2 = Q.
m
Данную модификацию ГА будем называть распределительным генетическим алгоритмом (РГА). Соответственно предложенную модификацию ГА [т.р.] будем обозначать как РГА [т.р.].
Экспериментальное сравнение алгоритмов
В рамках исследования РГА [т.р.] были произведены вычислительные эксперименты, позволяющие собрать статистику решений для 4-, 6- и 8-процес-сорных систем обработки информации. Количество работ, которые распределялись между процессорами, задавалось равным 23, 73 и 123. В ходе экспериментов были случайным образом сгенерированы по 100 векторов загрузки, содержащих задачи в диапазоне [25, 30], каждый из векторов решался СРМ, ГА [т.р.] и РГА [т.р.]. Для всех используемых ГА были выбраны следующие фиксированные параметры: число особей составляло 50, условием останова являлось появление в процессе решения более 500 поколений с лучшей одинаковой особью, вероятность кроссовера составляла 90 %, а вероятность мутации 10 %. Полученные результаты усреднялись по количеству экспериментов, а также аналогично усреднялись по времени решения задач (таблица).
n m Усредненный результат работы Усредненное время решения, мс
CPM ГА [т.р.] РГА [т.р.] СРМ ГА [т.р.] РГА [т.р.]
23 164 163 166 менее 1 28 54
4 73 520 507 502 менее 1 88 134
123 851 848 845 менее 1 147 212
23 109 110 111 менее 1 29 59
6 73 355 345 336 менее 1 89 162
123 575 572 563 менее 1 157 241
23 82 83 83 менее 1 31 64
8 73 272 264 256 менее 1 96 169
123 437 434 424 менее 1 188 271
Таким образом, проанализировав результаты, приведенные в сводной таблице, можно отметить, что эффективность РГА [т.р.] увеличивается не только с ростом числа заданий, но и с увеличением количества процессоров. Для сравнительно малого числа заданий РГА [т.р.] несколько уступает СРМ и ГА [т.р.], однако при таких размерностях есть возможность использовать точные алгоритмы. По времени решения РГА [т.р.] в среднем уступает сравниваемым алгоритмам, однако время решения не превышает несколько сот миллисекунд.
Выводы
Предложенный в данной работе РГА [т.р.] работает гораздо эффективнее СРМ и ГА [т.р.] при большом количестве заданий, что позволяет получать решения, близкие к оптимальным. Следовательно, РГА [т.р.] можно рекомендовать для составления расписаний для информационных систем, состоящих из четного количества процессоров (от 2 до 10), на которые поступает количество заданий, на порядок превышающее количество процессоров.
Литература
1. Коффман Э.Г. Теория расписания и вычислительные машины. М., 1987.
2. Кобак В.Г., Титов Д.В. Анализ подходов к улучшению результатов работы генетического алгоритма при решении однородной минимаксной задачи // Проблемы информатики в образовании, управлении, экономике и технике. Пенза, 2008.
3. Кобак В.Г., Титов Д.В. Анализ работы списочных и генетических алгоритмов в однородных системах обработки информации // Мат. методы в технике и технологиях -ММТТ-22. Псков, ППИ, 2009.
4. Кобак В.Г., Титов Д.В. Алгоритмическое улучшение работы генетического алгоритма для четного количества процессоров // Сб. науч.-метод. статей вузов связи МО РФ по математическим и общим естественно-научным дисциплинам / Новочеркасское высшее военное командное училище связи. Новочеркасск, 2009.
Поступила в редакцию 24 ноября 2009 г.
Титов Дмитрий Вячеславович - аспирант, Донской государственный технический университет, г. Ростов-на-Дону. E-mail: titov_dima@mail.ru
Titov DmitriyVjacheslavovich - post-graduate student, Donskoy State Technical University, Rostov-on-Don. E-mail: titov_dima@mail. ru