Научная статья на тему 'Генетический алгоритм диспетчеризации пакетов независимых задач'

Генетический алгоритм диспетчеризации пакетов независимых задач Текст научной статьи по специальности «Математика»

CC BY
139
35
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по математике, автор научной работы — Дергачев С. П.

В этой статье представлен эффективный алгоритм для решения задачи диспетчеризации пакетов независимых задач на многопроцессорных системах без прерываний. Предлагается кодировка многопроцессорного расписания в виде последовательности номеров процессоров, на которых будет выполнена соответствующая работа. Данная кодировка позволяет единообразно подсчитывать длину расписания независимо от числа задач. Экспериментальные результаты на пакетах порядка 600 задач показывают, что предлагаемый алгоритм может генерировать субоптимальные расписания с относительной погрешностью порядка 0.3%.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Генетический алгоритм диспетчеризации пакетов независимых задач»

3. Если при предварительной сортировке элементов не все блоки оказались оптимально заполненными, то дальнейшее применение скрещивания не дает эффективных результатов, т.е. время решения значительно увеличивается.

4. При применении эвристики Bester коэффициент упаковки - наивысший по сравнению с другими рассмотренными эвристиками, уменьшается количество псевдогенетических циклов, сокращается время решения задачи.

5. Наиболее эффективное применение эвристики Bester - при заданном 80-90-процентном минимальном заполнении блоков (COEF).

6. Время решения задачи значительно увеличивается в соответствии с увеличением разногабаритности и количества элементов.

7. Работа алгоритма не эффективна при отношении размера блока и максимального элемента, равного 4 и менее процентам.

8. Устойчивая работа алгоритма на компьютере IBM 486DX80 4MB при количестве элементов меньшем 2500.

9. Этот алгоритм имеет множество решений, иногда решение может быть не найдено, в таких случаях требуется повторение решения этой же задачи.

УДК 681.356

СЛ. Дергачев

Генетический алгоритм диспетчеризации пакетов независимых задач

В этой статье представлен эффективный алгоритм для решения задачи диспетчеризации пакетов независимых задач на многопроцессорных системах без прерываний. Предлагается кодировка многопроцессорного расписания в виде последовательности номеров процессоров, на которых будет выполнена соответствующая работа. Данная кодировка позволяет единообразно подсчитывать длину расписания независимо от числа задач. Экспериментальные результаты на пакетах порядка 600 задач показывают, что предлагаемый алгоритм ”оТГаТЬ суб0ПТИМальные Расписания с относительной погрешностью

1. Введение

Задача оптимизации расписания хорошо известна как одна из самых практичных из числа ЫР-трудных проблем. Хорошо известны различные приближения решения данной задачи,как например, метод ветвей и границ, ЬРТ(1оп8е8Ьргосе88.п^п*), МиШШ и т.д. Так как оптимальное решение не может1 быть получено за полиномиальное время, то известные в настоящее время алгоритмы предназначены для поиска субоптимальных расписаний Таким образом, задача составления расписания была и остается актуальной проблемой.

2. Постановка задачи составления расписания

Задача составления расписания, рассматриваемая в данной статье имеет следующую постановку. Расмотрим систему, содержащую п идентичных процессоров, на которой необходимо решить без прерываний набор из Ь независимых задач с временами решения 11,1=(1 ,.Ь).

Необходимо найти такое размещение задач на процессоры, при котором время выполнения всех работ будет минимальным.

3. Простой генетический алгоритм

Простой генетический алгоритм может быть описан следующим образом[1]:

Шаг 1: Определяется генетическое представление проблемы;

Шаг2:Создается начальная популяция Р(0) = х01,..х0п;

ШагЗ:Вычисляется функция фитности для каждой хромосомы F(xit);

Шаг4:Случайно выбираются хромосомы для формирования

N/2 пар; выполняем операцию кроссовера с вероятностью рс для каждой пары и далее операцию мутации с вероятностью рш;

Шаг5:На этом шаге проводится операция селекции для формирования новой популяции P(t+1);

Шаг6:Устанавливаем t=t+l; Возврат к шагу 3.

3.1. Кодирование хромосомы

В данной работе предлагается следующая кодировка, основанная на

нижеследующей эвристике. Как известно, хромосома представляет собой массив Данных, в котором существует некоторое отображение индекса массива на содержимое соответствующей ячейки, т.е. одно множество отображается на другое. В нашей задаче заданы следующие два множества: множество работ и множество процессоров. Проблема кодировки и заключается в том, что на что отображать. Предлагаемая эвристика гласит: необходимо отображать множество меньшей мощности на множество большей. В нашем случае нужно процессоры

отображать на задачи, т.е. индексом хромосомы будет номер работы, а содержимым соответствующей ячейки - номер процессора, на котором будет

выполняться соответствующая работа.

3.2. Вычисление функции фитности

Для каждого процессора заводится свой счетчик , в котором фиксируется суммарное время всех задач, выполняемых на данном процессоре. В начале каждый счетчик инициализируется нулем. Далее просматривается заданная хромосома и в зависимости от номера процессора наращивается тот или иной счетчик на время соответствующей работы. В заключение, выбирается содержимое счетчика с максимальным значением. Это и будет длина расписания, закодированного в данной хромосоме.

4. Экспериментальные результаты

Предлагаемый генетический алгоритм был апробирован на следующей тестовой задаче: на 3-х процессорах предлагалось решить набор из 100 задач. Суммарное время выполнения всех задач равно 1800. Времена решения отдельных задач подобраны так, что существует их плотная упаковка. Тогда длина °лтимального расписания подсчитывается тривиально: 1800/3=600 условных еДиниц времени. График сходимости, усредненный для 100 запусков, приведен ниже. Относительная погрешность составила менее 0.33%.

ЛИТЕРАТУРА

1. D.E. Goldberg, Genetic Algorithms in Search, Optimisation & Machine

Learning, Addison-Wesley, Reading, MA, 1989.

УДК 658.512

И.В. Мухлаева

Организация макроэволюции для одномерной генетической упаковки.

В алгоритме предложен макроэволюционный подход, при котором используются не одна, а несколько начальных популяций (субпопуляции). Каждую субпопуляцию макроэволюционный ГА (МГА) обрабатывает независимо, за исключением периодов коммуникации, или миграции. Во время фазы коммуникации индивиды из различных субпопуляций мигрируют в соседние субпопуляции и выступают там в качестве одного из родителей при межпопуляционном кроссинговере.

МГА может быть описан следующим образом:

MGA- (Ро, sp, spn, np, it, GA, lo, stop), где РО - начальная популяция, sp - количество субпопуляций,

spn - количество индивидов в субпопуляции (размер субпопуляции) пр - количество соседних субпопуляций (субпопуляций, С которыми некоторая субпопуляция вступает в коммуникацию), it - время изоляции (в поколениях),

GA - ГА, действующий в субпопуляции,

1о - локальный оптимизатор, stop - критерий прерывания.

Коммуникация имеет место в периоды, равные it, 2it, 3it, поколений ГА, действующий в субпопуляции, может быть описан следующим образом-

GA = (Ро, spn, s, с, т, г, stop), где s - оператор селекции, с - оператор кроссинговера, m - оператор мутации, г - оператор рекомбинации.

Прерывание работы МГА осуществляется:

• при достижении в какой-либо субпопуляции глобального оптимума,

i Надоели баннеры? Вы всегда можете отключить рекламу.