Задача минимизации максимального временного смещения для параллельных процессоров

УДК 519.8

Н. С. Григорьева

Вестник СПбГУ. Сер. 10. 2016. Вып. 4

ЗАДАЧА МИНИМИЗАЦИИ МАКСИМАЛЬНОГО ВРЕМЕННОГО СМЕЩЕНИЯ ДЛЯ ПАРАЛЛЕЛЬНЫХ ПРОЦЕССОРОВ

Санкт-Петербургский государственный университет, Российская Федерация, 199034, Санкт-Петербург, Университетская наб., 7—9

Задача минимизации максимального временного смещения для составления расписаний для параллельных идентичных процессоров — классическая комбинаторная оптимизационная задача, имеет много приложений и является WP-трудной. Эта задача составления расписаний обозначается как P\rj\Lmax и формулируется следующим образом: задания должны быть выполнены на нескольких параллельных идентичных процессорах; требуется определить, где и когда каждое задание должно быть выполнено так, чтобы минимизировать максимальное смещение. Для каждого задания известны время поступления задания на выполнение, время выполнения и директивный срок, к которому задание должно быть закончено. Прерывания выполнения заданий не допускаются. Большинство разработок приближенных алгоритмов концентрируется на построении незадерживающих расписаний, в которых процессор не может простаивать, если есть готовое к выполнению задание. Но для построения оптимального расписания необходимо рассматривать такие допустимые расписания, в которых невынужденный простой процессора возможен. Цель данной статьи — представить приближенный алгоритм с невынужденными простоями ELS/IIT (в котором наибольшим приоритетом обладает задание с минимальным поздним началом) и метод ветвей и границ, который строит допустимое расписание с заданным значением максимального смещения. Для нахождения оптимального решения предлагается комбинировать метод ветвей и границ с бинарным поиском. Библиогр. 14 назв. Табл. 5.

Ключевые слова: параллельные процессоры, метод ветвей и границ, максимальное временное смещение.

N. S. Grigoreva

SCHEDULING PROBLEM TO MINIMIZE

THE MAXIMUM LATENESS FOR PARALLEL PROCESSORS

St. Petersburg State University, 7—9, Universitetskaya nab., St. Petersburg, 199034, Russian Federation

The problem of minimizing the maximum lateness while scheduling tasks to parallel identical processors is a classical combinatorial optimization problem. It has many applications, and it is NP-hard. This problem relates to the scheduling problem and it is denoted by P\rj\Lmax. The multiprocessor scheduling problem is defined as follows: tasks have to be executed on several parallel identical processors. We must find where and when each task will be executed, such that the maximum lateness is minimum. The duration, release time and due date of each task are known. Preemption on processors is not allowed. A lot of research in scheduling has concentrated on the construction of the nondelay schedule. A nondelay schedule is a feasible schedule in which no processor is kept idle at a time when it could begin processing a task. An inserted idle time schedule (IIT) as a feasible schedule in which the processor is kept idle at a time when it could begin processing a task. The goal of this paper is to propose an IIT schedule for the P\rj\Lmax problem. We propose an approximate IIT algorithm named ELS/IIT (earliest latest start/ inserted idle time) and depth first branch and bound algorithm, which produces

Григорьева Наталья Сергеевна — кандидат физико-математических наук, доцент; n.s.grig@ gmail.com

Grigoreva Natalia Sergeevna — PhD of physical and mathematical sciences, associate professor; n.s.grig@gmail.com

© Санкт-Петербургский государственный университет, 2016

a feasible IIT (inserted idle time) schedule for a fixed maximum lateness L. The algorithm may be used in a binary search mode to find the smallest maximum lateness. The branch and bound algorithm is based on the earliest latest start/ inserted idle time branching strategy. Two new dominance criterions between decision nodes are used. A new method for evaluating unfeasible partial solutions was designed. To illustrate the effectiveness of this approach we tested algorithms on instances, which were randomly generated with the number of jobs from 50 to 300. Refs 14. Tables 5.

Keywords: parallel identical processors, branch and bound algorithm, maximum lateness.

1. Введение. Задачи составления расписаний для параллельных процессоров — один из важных разделов теории расписаний [1]. Максимальное временное смещение Lmax, которое будет описано ниже, — широко используемый критерий качества расписания. Следуя схеме, предложенной P. Грехемом и др. [2], задача минимизации максимального временного смещения Lmax для множества заданий, которые выполняются на параллельных идентичных процессорах, обозначается как P\rj |Lmax, имеет много приложений и является NP-трудной в сильном смысле [3]. Ряд работ посвящен различным вариантам данной задачи: чаще всего рассматривались модели с единичными длительностями заданий P\rj,pj = 1\Lmax [4], в которых все задания выполнялись на одном процессоре 1\rj\Lmax, и задачи с разрешением прерываний при выполнении заданий [5].

В большинстве исследований описываются незадерживающие расписания, определенные K. Бейкером [6] как допустимые расписания, где процессор не может простаивать, если есть задания, которые процессор может выполнять, и класс списочных алгоритмов, строящих незадерживающие расписания. Но известно, что оптимальные расписания могут содержать невынужденные простои, и в этих случаях списочные алгоритмы не могут построить оптимальное расписание. Расписания с невынужденными простоями (inserted idle time — IIT) были определены в [7] как допустимые, в которых процессор может простаивать при наличии готовых к выполнению заданий. В [7] дан обзор литературы для задач составления расписаний, в которых актуально использование невынужденных простоев, в нем большинство рассмотренных задач относится к моделям с одним процессором. Для многих моделей разрешение невынужденных простоев не приводит к улучшению расписаний, этот подход не продуктивен для задач с одинаковой длительностью заданий и для расписаний с прерываниями. Для задачи 1\rj\Lmax в [8] был представлен алгоритм, позволяющий вставлять невынужденные простои в расписание.

В работе [9] разработан алгоритм построения расписаний с невынужденными простоями для задачи P\prec\Cmax, в которой на множестве заданий задано отношение частичного порядка и целевой функциией служит длина расписания. Для этой задачи предлагались приближенный жадный алгоритм и метод ветвей и границ, конструирующий допустимое IIT расписание с заданной длиной. Для получения оптимального решения задачи метод ветвей и границ комбинировался c бинарным поиском. Тестирование таких алгоритмов показало продуктивность данных подходов.

В [10] для задачи P\rj\Lmax были предложены приближенный алгоритм составления расписания и общая схема метода ветвей и границ.

Цель данной статьи — применить основные идеи методов из [9] для задачи P\rj\Lmax и установить для нее эффективность алгоримов с невынужденными простоями, для чего исследуются несколько вариантов приближенных алгоритмов минимизации максимального временного смещения и приводится детальное описание метода ветвей и границ, который конструирует допустимое IIT расписание

с заданным временным смещением L. Для получения оптимального решения задачи метод ветвей и границ комбинируется с бинарным поиском.

Для проверки эффективности алгоритмов c невынужденными простоями для задачи P\rj\Lmax мы протестировали их на случайно сгенерированных тестовых примерах.

2. Постановка задачи. Имеются множество заданий U = {u\, U2,..., un} и m параллельных идентичных процессоров для их выполнения. Для каждого задания Ui G U заданы время выполнения t(u), время поступления в систему r(ui) и директивный срок его завершения D(ui). Любое задание может выполняться на любом процессоре, и каждый процессор может выполнять не более одного задания в каждый момент времени. Прерывания выполнения заданий не допускаются.

Составить расписание для множества заданий U — значит, назначить каждому заданию ui G U время начала выполнения т(ui) и процессор num(ui). В качестве характеристики расписания будем рассматривать максимальное временное смещение, которое для расписания S определяется по формуле

Lmax = max{т(ui) +t(ui) — D(ui)\ui G U}.

Требуется составить расписание, минимизирующее Lmax.

Сначала опишем и сравним приближенные жадные алгоритмы, затем, комбинируя их и метод ветвей и границ, представим BB/IIT алгоритм, который позволяет получить оптимальные решения для многопроцессорной задачи составления расписаний c директивными сроками.

3. Приближенные жадные алгоритмы. Рассмотрим пять вариантов жадных приближенных алгоритмов. На каждом шаге жадного алгоритма одно из заданий будет окончательно устанавливаться на процессор. Для задания ui известны раннее возможное время начала задания r(ui) и позднее время начала задания vmax(ui) = D(ui) — t(ui), при котором задание будет закончено до наступления директивного срока. Если к заданий уже поставлено в расписание, то обозначим множество таких заданий через Sk.

Определим две очевидные нижние границы целевой функции:

LB1 = max{r(ui) + t(ui) — D(ui)\ui G U},

n

LB2 = max{^ t(ui)/m\ — Dmax}.

i=i

Тогда нижняя граница LB = max{LB1,LB2}. Будем считать, что для пустого решения So нижняя оценка целевой функции L(So) равна LB. В процессе построения расписания будем корректировать нижнюю оценку целевой функции следующим образом: при установке задания uo на процессор в момент времени т(uo) нижняя оценка пересчитывается по формуле

LB(Sk+1) = max{LB(Sk), t(uo) + t(uo) — D(uo)}.

Для построения приближенного алгоритма надо задать стратегию выбора очередного задания для включения в расписание и разрешить или запретить невынужденные простои. Одним из классических вариантов жадного алгоритма является выбор очередного задания с минимальным директивным сроком — EDD (eailest due

date) алгоритм [11]. Для частного случая, при котором все задания имеют одинаковые времена поступления, этот алгоритм строит оптимальное расписание [11]. Для задачи с частичным порядком в [9] было предложено и хорошо себя зарекомендовало правило выбора задания с минимальным поздним началом. Будем называть такое задание критическим, а алгоритм, реализующий данную стратегию, — ELS (eailest latest start) алгоритмом.

При любом выборе приоритета заданий можно строить незадерживающие расписания (nodelay — ND) или расписания с простоями (IIT). Комбинируя разные подходы, получим четыре варианта жадного алгоритма. Если перед началом выполнения критического задания возникает невынужденный простой, то, для того чтобы исключить нерациональное использование времени процессора, будем подбирать другое задание, которое можно выполнять во время простоя процессора. Таким образом, выбор задания будет осуществляться в два этапа. Возможны несколько различных стратегий заполнения времени простоя, в [9] для задачи с частичным порядком на множестве заданий предлагалось не увеличивать время начала критического задания. Для задачи P\rj\Lmax мы модифицировали алгоритм, разрешив сдвигать время начала критического задания так, чтобы не увеличивать нижнюю оценку целевой функции. Опишем два варианта алгоритма.

Пусть k заданий уже поставлено в расписание, нам известны timek[1 : m] времена освобождения процессоров после выполнения всех заданий из множества Sk и текущая нижняя оценка целевой функции L(Sk). Приближенное решение конструируется алгоритмами ELSM/IIT и ELS/IIT следующим образом.

Алгоритмы ELS/IIT и ELSM/IIT:

1. Найдем процессор lo такой, что timek[lo] = m\n{timek[i]\i Ф 1 : m}, обозначим tmin(k) = timek[lo].

2. Выберем задание u0 такое, что vmax(uo) = min{vmax(ui)\ui ф Sk}.

3. Если idle

Vmax

Vmax(u*) = min{Vmax(v'i )\r(ui )+t(u ) < Vmax(uo) + LB (Sk) ф Sk}.

4. Если задание u* найдено, то примем, что u(k) = u*, иначе положим u(k) := uo.

5. Назначим на процессор lo задание u(k).

6. Пересчитаем нижнюю оценку целевой функции

LB(Sk+1) = max{LB(Sk ),r(u(k)) + t(u(k)) — D(u(k))}.

В вычислительном эксперименте сравним расписания, построенные алгоритмами ELS/IIT и EDD/IIT с расписаниями, построенными алгоритмами без невынужденных простоев ELS/ND и EDD/ND. Приближенное расписание строится алгоритмом ELS/ND следующим образом.

Алгоритм ELS/ND:

1. Определить процессор lo такой, что timek[lo] = m\n{timek[i]\i G 1 : m}, обозначим tmin (к) = timek[lo].

2. Выбрать задание uo такое, что vmax(uo) = min{vmax(ui)\ui G Sk}.

3. Если idle(uo) = r(uo) — tmin(k) > 0, то выбрать задание u* G Sk, которое может выполняться без простоя:

Vmax(u*) = min{Vmax(ui)\r(ui) < tmin(k),ui G Sk}.

4. Если задание u* найдено, то назначить на процессор lo задание u*, иначе — задание uo.

Алгоритмы различаются в шаге 3, ELS/ND алгоритм является списочным, в котором процессор не может простаивать, если есть готовое к выполнению задание. Вычислительная сложность предложенных алгоритмов O(n2).

Для иллюстрации различия алгоритмов рассмотрим пример [11], в котором алгоритм EDD/ND строит самое плохое расписание. Пусть имеются m2 + m + 1 задание, которые выполняются на m параллельных процессорах. Среди них есть m заданий длины tmax, для которых времена поступления равны нулю, а директивные сроки — большому числу K. Также имеются m2 заданий длины tmax/m и одно задание длины tmax, для которых времена поступления равны r, а директивные сроки — нулю.

Для такой системы заданий алгоритм EDD/ND построит расписание c максимальным временным смещением Lmax = 3tmax, алгоритм EDD/IIT — расписание с Lmax = 3tmax + r, а алгоритм ELS/ND — с Lmax = 2tmax + tmax/m. Алгоритмы ELS/IIT и ELSM/IIT построят оптимальное расписание со значением целевой функции Lmax = tmax + tmax/m + r. Следует заметить, что если для всех заданий t(ui) = 1, то все алгоритмы построят одно и тоже оптимальное расписание. В случае, когда все времена поступлений и все директивные сроки одинаковы, простоев в расписаниях не будет. При этом алгоритм EDD будет ставить задания в расписание в произвольном порядке, а алгоритм ELS будет работать как алгоритм LPT, в нем сначала ставятся задания с наибольшим временем выполнения, и он имеет гарантированную оценку точности, равную 4/3 — 1/3m [2]. Сравнение работы пяти жадных алгоритмов приведены в п. 6. По их результатам для метода ветвей и границ была выбрана стратегия выбора задания ELS/IIT.

4. Алгоритм построения оптимального расписания. Для построения оптимального расписания предлагается комбинировать бинарный поиск и метод ветвей и границ. Такой подход для ряда минимаксных задач был предложен И. В. Романовским и Н. П. Христовой [12], в частности рассматривалась задача составления расписаний для параллельных процессоров P \\Cmax.

Обозначим Lopt максимальное временное смещение оптимального расписания. Необходимо определить интервал (а, b] такой, что а < Lopt ^ b.

Нижняя граница значения целевой функции LB была установлена выше, положим а := LB — 1. Далее опишем процедуру построения оценки частичного решения, которая позволяет уточнять нижнюю оценку целевой функции. Верхняя оценка целевой функции b = IXn=1 t(ui)/m\ + rmax + tmax — Dmin, где rmax = max{r(ui)\ui G U}, tmax = max{t(ui)\ui GU} и Dmin = mm{D(ui)\ui G U} [13].

Для уточнения верхней границы рекомендуется применить приближенный метод решения задачи ELSM/IIT и выбрать величину целевой функции, полученную этим методом, в качестве b. Тогда Lopt Ф (a,b].

Выберем z = [(a + b)/2\ и используем метод ветвей и границ для построения допустимого расписания BB(U, D + z,m; S) со значением максимального временного смещения, не превосходящим z. Если будет построено такое расписание, то выберем интервал (a, z], в противном случае выберем интервал (z, b] и повторим процесс.

Алгоритм OPT SCHEDULE (U; Sopt,Lopt):

1. Вычислить a и b.

2. Пока b — a > 1 выполнять

3. Начало цикла.

4. Положить z := [(a + b)/2\. Пересчитать директивные сроки D(ui), положив D*(ui) = D(ui) + z, максимальный директивный срок D*Tiax = max{D* (ui)\ui Ф U} и поздние времена начала заданий vmax(ui) = D*(u) — t(uj).

5. Использовать процедуру метода ветвей и границ BB(U, D*; S, LS) для построения допустимого расписания.

6. Если построено допустимое решение S, то найти величину целевой функции Ls = max{r(u) + t(ui) — D(ui)\ui Ф U}, запомнить расписание Srec := S и значение целевой функции Lrec := Ls, положить b := Ls. Если допустимого решения не существует, то положить a := z.

7. Конец цикла.

8. Sopt := Srec и Lopt := Lrec.

5. Метод ветвей и границ построения допустимого расписания BB(U, D*; S,Ls). Этот метод строит допустимое IIT расписание, в котором каждое задание ui U должно заканчиваться не позже модифицированного директивного срока D*(uj). В нем применяется односторонний обход дерева перебора. Для формального описания метода ветвей и границ необходимо определить частичное решение, применить метод продолжения частичного решения (шаг вперед), метод выяснения недопустимости частичного решения и шаг назад, который восстанавливает предыдущее частичное решение.

Будем представлять частичное решение как частичную перестановку заданий. Для каждой перестановки заданий п = (uil, ui2,..., uin) можно построить расписание Sn следующим образом: на каждом шаге находится процессор, который раньше всех освобождается. Затем очередное задание устанавливается на этот процессор, и его выполнение начинается в минимально возможный момент времени. Таким образом, каждая перестановка будет однозначно определять расписание Sn. Частичное решение o~k, где k — число заданий, будем представлять как частичную перестановку &k = (uil ,ui2,..., uik), которая задает частичное расписание.

Определение 1. Расписание Yn = (l1, l2,..., ln) называется продолжением частичного расписания ak = (q1, q2,..., qk), если l1 = q1, l2 = q2, ..., lk = qk.

Определение 2. Частичное решение ak называется допустимым, если существует его продолжение ak, которое является допустимым расписанием.

Для каждого задания ui известны ранний возможный срок начала задания r(ui) и поздний срок начала задания vmax(ui) = D*(ui) — t(ui). Для построения допустимого расписания необходимо, чтобы для каждого задания ui U время начала его выполнения т(u) удовлетворяло неравенству

г(щ) < Т(щ) < Утах(щ).

Модифицированные директивные сроки задают для допустимого расписания Б суммарное возможное время простоев I всех процессоров. Для т процессоров суммарное время простоев вычисляется по формуле

п

1 = т • П*тах г(щ).

¿=1

На каждом уровне перебора к будем формировать множество заданий Пи, которые будем называть готовыми заданиями. Это те задания, которые следует добавить к частичному решению аи-1 так, чтобы проверить все возможные допустимые продолжения частичного решения. Так как метод ветвей и границ должен изучать все перестановки заданий, то любое задание, еще не включенное в частичное решение на данном уровне перебора, необходимо проверить. Но очевидно, если простой перед выполнением выбранного задания будет слишком велик, то построить допустимое расписание, в котором все задания должны быть выполнены до момента времени Дтах, не удастся. Следующее определение готового задания исключает из рассмотрения те задания, для которых простой превышает возможное значение. Уменьшение множества готовых заданий дает возможность сократить перебор.

Определение 3. Задание и ф аи называется готовым заданием на уровне к, если время его поступления г (и) удовлетворяет неравенству

г (и) - ¿шт(к) < I - гЛв(щ).

Выбор задания из множества готовых заданий выполняется так же, как в приближенном алгоритме ЕЬБ/НТ. Алгоритм останавливается, как только удается построить полное допустимое решение. Если обнаружено, что частичное решение недопустимо, последнее назначенное задание удаляется из частичного решения, исключается из множества Пи и процедурой выбора задания выбирается новое задание для установки на процессор. Если множество Пи пусто, то отменяется последнее назначенное задание, и алгоритм поднимается еще на один уровень вверх в дереве перебора.

Основной путь сокращения перебора в методе ветвей и границ — это раннее определение недопустимости частичного решения и исключение неперспективных заданий из множества готовых.

Определение 4. Пусть задание исг ф аи удовлетворяет условию утах(иС1) = шт{г>тах(и)|и ф аи}. Задание исг ф аи будем называть опоздавшим для частичного решения ак, если «тах(и

сг) < ^тт (к) .

Сформулируем и докажем несколько правил определения недопустимых частичных решений.

Лемма 1. Если опоздавшее задание исг для частичного решения существует, то частичное решение недопустимо.

Доказательство очевидно.

Сформулируем условие, которое позволяет после обнаружения опоздавшего задания удалить дополнительно некоторые недопустимые частичные решения и сократить число заданий в множестве Пи.

Лемма 2. Если для частичного решения ак = ак-1 иик существует опоздавшее задание исг, тогда для любого задания и такого, что шах{£т;п(к — 1),т(и)} + Ь(и) > ^тах (ист), частичное решение ак-1 и и недопустимо.

Доказательство. Пусть 1т{п(к) есть самый ранний момент времени окончания выполнения всех заданий из частичного решения а к. Пусть ¡о — самый ранний освободившийся процессор, а именно процессор, для которого выполнено Ишвк[1о] = Ьтт(к). Если задание ист является опоздавшим, то верно Утах(и сг) < ^тт (к).

Следовательно, нельзя назначить задание исг на любой другой процессор, кроме ¡о. После удаления последнего поставленного в расписание задания ик алгоритм возвращается к частичному решению ак-1. Пусть процессор ¡1 — самый ранний освободившийся процессор для частичного решения ак-1, и он заканчивает работу в момент времени ¿т1п(к — 1). (Возможно, что ¡о = ¡1.) Если добавить задание и к частичному решению ак-1 на шаге к — 1, то на следующем шаге к следует назначить задание исг только на тот же самый процессор ¡1. Таким образом, должно быть выполнено

шах{^1п(к — 1), т(и)} + Ь(и) < «тах(исг).

В противном случае частичное решение ак-1 и и будет недопустимым, так как для него задание исг будет опоздавшим.

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

Лемма 3. Если существует опоздавшее задание исг для частичного решения ак = ак-1 иик и выполнено шах{£т;п(к — 1),т(исг)} + 1(исг) > утах(ик), то частичное решение ак-1 недопустимо.

Доказательство. Рассмотрим два частичных решения ак и ак-1. Пусть процессор ¡о — самый ранний освободившийся процессор для частичного решения ак на шаге к и ¡1 — самый ранний освободившийся процессор для частичного решения

ак-1.

Рассмотрим следующие случаи.

1. Пусть Утах(ик) < «тах(исг). Если исг — опоздавшее задание, то «тах(ист) < tmín(k). Таким образом, утах(ик) < tmin(k), и назначить задание ик на процессор ¡0 тоже нельзя.

После удаления задания ик задание исг назначается на процессор ¡1, который заканчивает выполнение заданий в момент времени ИшвкЦ!] = шах{£т1п(к — 1), т(исг)}+ г(исг). По условию леммы шах{£т;п(к — 1), т(исг)} + 1(исг) > утах(ик). Следовательно, задание ик невозможно назначить на процессор ¡1 и ик будет опоздавшим заданием для частичного решения ак = &к-1 и исг.

2. Если утах(ик) > утах(исг), то возможны два варианта. Первый, когда частичное решение ак-1 иисг было проверено раньше и оказалось недопустимым. Для любого решения ак-1 и и, где и € и к, задания ик и исг будут опоздавшими. Во втором задание ик было поставлено в расписание раньше исг, если заполняло простой перед началом выполнения задания исг. Но тогда исг не может быть опоздавшим заданием по свойствам алгоритма. Частичное решение а к = &к-1 и и недопустимо для всех и € ик, таким образом, частичное решение ак-1 недопустимо.

Следующий способ определения недопустимого частичного решения основан на сравнении суммарной потребности заданий в ресурсах и общей мощности процессоров на некотором интервале. В этом случае модифицируем алгоритм для определения

интервала концентрации [14] для полного решения, применим его к частичному решению аи. Времена поступления заданий г(и) отсортируем по неубыванию и выделим из них различные значения, которые сохраним в массиве гС(г), где г Ф 1 : п1. Аналогично отсортируем директивные сроки В* (и) и разные значения сохраним в массиве ВС(г), где г Ф 1 : п2. При п1 = п2 = 1 такая задача будет эквивалентна задаче

Р11 ^тах.

Выберем временной интервал [¿1^2] С [¿т;п(к),Втах], где t1 < ¿2. Моментами времени ¿1 будем считать элементы массива гС(г), а значение ¿2 будем выбирать из массива ВС. Обозначим через МР(11,12) общее время свободных процессоров во временном интервале [¿^,¿2]. Тогда

т

МР(Ь1,Ь2) = тах{0, (Ь2 — т&х{11,ИтеиЩ})}.

¿=1

Для всех заданий, не входящих в частичное решение щ ф а и, определим минимальное время начала выполнения: Уи(щ) = тах{г(и¿), ¿тп(к)}, а затем найдем минимальный интервал его выполнения, пересекающийся с интервалом [¿1, ¿2]. Для этого вычислим

хи(щ) = [уи(щ),ук(щ) + Ь(щ)\ П [Ь1М], У(Щ) = Утах(^),Утах(^) + г(щ)] П [¿1^2].

Обозначим Ь(хи(щ)) и Ь(у(щ)) длины временных интервалов хи(щ) и у(щ) соответственно. Пусть Ми(¿1 ,¿2) — общее минимальное время, которое требуется всем, еще не включенным в частичное расписание, заданиям в интервале [¿1, ¿2], тогда

Ми^М) = тт{Ь(хи(щ)),Ь(у(щ))}.

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

Пусть

вв^аи) = тах[и^2]е [^¡„(и). ах]{Ми&1^2) — МР(Ь1,г2)}.

Эту процедуру будем применять также для уточнения нижней оценки целевой функции, которая вычисляется до начала метода ветвей и границ. Пусть нижняя оценка целевой функции ЬБ определена, как указано выше. Пересчитаем исходные директивные сроки В (и), положив В*(щ) = В(щ) + ЬБ. Для пустого частичного решения ао положим ¿т;п = 0 и найдем ввЬ(ао). При ввЬ(ао) > 0 нижняя оценка целевой функции ЬБ должна быть увеличена.

Лемма 4. Если ввЬ(ао) > 0, то нижняя оценка целевой функции ЬБМ = ЬБ + \вв1(а0 )/т\. Если вв1(аи) > 0, то частичное решение аи недопустимо.

Представим псевдокод метода ветвей и границ построения допустимого расписания ББ(П, В*; Б,Ь3):

Algorithm 1 : BB/IIT алгоритм

1: Положить к := 1; time[i] = 0; i G 1 : m; ao = 0.

2: while (к > 0) (к <n +1) do

3: Определить процессор l0 такой, что tmin(l0) = min{(timek[i]\i G 1, ...,m)}.

4: Найти задание ucr такое, что vmax(ucr) = min{vmax(u)\u G ak—l}.

5: if Vmax(Ucr) > tmin(lo) then

6: Вычислить EST = est(ak-i).

7: if EST < 0 then

8: Выбрать задание uo аналогично алгоритму ELS/IIT Select(Uk,tmin(k); uo).

9: Назначить задание u0 на процессор l0 и создать частичное решение ak =

ak—i U uo.

10: else

11: Выполнить шаг назад и восстановить частичное решение ak—i.

12: end if

13: else

14: Определить опоздавшее задание ucr. Удалить все недопустимые решения по

леммам 2 и 3.

15: end if

16: end while

17: if к = 0, then

18: Максимальное временное смещение оптимального расписания больше, чем Ls .

19: end if

20: if к = n, then

21: Найдено допустимое решение S = an, и его максимальное временное смещение

меньше либо равно Ls .

22: end if

6. Вычислительные результаты. Представим численные результаты тестирования предложенных приближенных алгоритмов и метода ветвей и границ BB/IIT.

Для тестирования алгоритмов были использованы тесты из Standard Task Graph Set, доступные на сайте http://www.kasahara.elec.waseda.ac.jp/schedule/. Standard Task Graph Set является своего рода эталоном для оценки алгоритмов составления многопроцессорных расписаний и включает наборы как случайно сгенерированных тестов, так и тестов, смоделированных из реальных прикладных задач. В этом наборе тестов заданы отношения частичного порядка на множестве заданий U, которые случайно генерируются с помощью четырех различных алгоритмов, и времена выполнения заданий, генерирующиеся также с использованием нескольких методов.

В задаче минимизации максимального временного смещения задания множества U независимы, но для каждого задания должны быть известны время поступления и директивный срок. Поэтому тесты адаптировались для рассматриваемой задачи следующим образом. По графу, задающему отношения частичного порядка на множестве заданий U, для каждого задания вычислялся самый ранний возможный срок начала задания, и он брался в качестве времени поступления задания r(u). Для каждого задания вычислялось наиболее позднее время его окончания и принималось в качестве директивного срока D(u). Каждая серия тестов в данном наборе состоит из 180 примеров. При этом всюду строились оптимальные расписания для 2, 4 и 8 процессоров. Были рассмотрены тесты из Standard Task Graph Set для n = 50, n = 100 и n = 300, где n — количество заданий.

Количество итераций для поиска допустимых решений методом ветвей и границ было ограничено. Если допустимое расписание S с заданным максимальным временным смещением Ь для т процессоров не удавалось построить за 20 000 итераций, то предполагалось, что такое расписание не существует, и целевая функция Ь увеличивалась. Такой подход позволил построить расписания для всех тестовых задач, но оставался открытым вопрос: построено оптимальное решение или нет?

Результаты вычислительных экспериментов приведены в табл. 1-5. Первая колонка во всех таблицах содержит число заданий п, вторая — количество процессоров т.

Прежде всего была проверена эффективность пяти вариантов приближенных алгоритмов. В табл. 1 приведено среднее относительное отклонение от нижней оценки целевой функции КТ = (Ьтах — ЬБ)/ЬБ для пяти рассмотренных алгоритмов.

Таблица 1. Средние данные для приближенных алгоритмов

п т ELSM/IIT ELS/IIT ELS/ND EDD/IIT EDD/ND

100 2 0.0001 0.0001 0.001 0.002 0.002

100 4 0.639 0.710 0.816 0.897 0.775

100 8 0.369 0.364 0.497 1.111 0.912

300 2 0.001 0.001 0.002 0.005 0.004

300 4 0.799 0.801 0.967 2.624 1.289

300 8 0.442 0.489 0.501 6.982 1.326

Среднее 0.374 0.394 0.463 1.995 0.717

Из табл. 1 следует, что лучшие приближенные расписания получены модифицированным алгоритмом ELSM. Правило выбора задания EDD существенно проигрывает правилу выбора задания с минимальным поздним началом, поэтому в методе ветвей и границ правило EDD не используется. В методе ветвей и границ, строящем допустимое расписание, нельзя увеличивать директивные сроки, потому выбор задания будет осуществляться стратегией ELS, для которой проверяются варианты построения расписания с простоями и без простоев.

Таблица 2 показывает результаты работы приближенного алгоритма ELSM/IIT.

Таблица 2. Относительная погрешность для алгоритма ELSM/IIT

п т Wopt RT < 0.05 RT < 0.1 RT > 0.1

100 2 79.1 17.3 2.9 0.7

100 4 62.4 22.4 3.4 13.1

100 8 76.2 12.1 2.1 9.6

300 2 72.1 27.9 0 0

300 4 43.3 37.2 4.4 15.1

300 8 65.1 18.3 3.1 11.5

Среднее 66.3 22.53 2.84 8.33

Колонка Мор1 содержит количество тестов (в процентах), в которых были получены оптимальные решения. Следующая колонка — это число тестов (в процентах), в которых были получены приближенные решения со средним относительным отклонением не больше, чем 0.05, но для которых не была доказана оптимальность решений из-за ограничения на число итераций. Но эти решения могут быть оптимальными. Две следующие колонки содержат число тестов, в которых КТ € (0.05,0.1] и КТ > 0.1 соответственно. Приближенные решения с относительной погрешностью КТ менее чем 10% были получены приближенным ЕЬБМ/ИТ алгоритмом в 91.5% тестов. Оптимальные решения были получены в среднем в 66.3% тестов.

В табл. 3 приведены результаты сравнения эффективности разных способов определения недопустимых частичных решений. В ней EST — число частичных решений, удаленных по лемме 4, LATE — число частичных решений, удаленных при обнаружении опоздавшего задания, DEL — число частичных решений, удаленных по леммам 2 и 3, ITER — число итераций.

Таблица 3. Средние данные для удаления недопустимых решений

п т EST/ITER LATE/ITER DEL/ITER

100 2 0.0610 0.081 0.054

100 4 0.1590 0.063 0.028

100 8 0.2561 0.043 0.011

300 2 0.0120 0.080 0.063

300 4 0.1480 0.079 0.021

300 8 0.2431 0.085 0.009

Среднее 0.147 0.071 0.039

Как вытекает из табл. 3, условия леммы 4 позволяют удалить 14% недопустимых частичных решений, условия лемм 2 и 3-4 и 7% недопустимых частичных решений удаляются при обнаружении опоздавшего задания. Вычислительный эксперимент подтвердил, что применение всех предложенных правил удаления недопустимых частичных решений приводит к сокращению перебора в методе ветвей и границ.

В табл. 4 приведены результаты сравнения расписаний, полученных двумя вариантами метода ветвей и границ, которые отличаются процедурой выбора задания для продолжения частичного решения. Выбор очередного задания для продолжения частичного решения в методе ветвей и границ ВВ/11Т выполняется процедурой ЕЬБ/НТ, а в методе BB/ND — процедурой ELS/ND. В первом варианте сначала строятся расписания с простоями, а во втором более приоритетны незадерживающие расписания.

Также было проведено сравнение максимального временного смещения Ь(11Т) для расписания, полученного методом ветвей и границ ВВ/11Т, и максимального временного смещения L(ND) для расписания, построенного в результате работы BB/ND алгоритма (см. табл. 4).

Таблица 4 Средние данные для ББ/11Т и BB/ND алгоритмов

n m BUT BND NEQ L

100 2 3.1 0 96.8 1.02

100 4 51.1 0 48.9 1.04

100 8 59.2 0 41.8 1.14

300 2 11.8 1.8 86.2 1.02

300 4 18.6 21.8 60.5 1.05

300 8 19.1 18.4 61.8 1.03

Среднее 27.13 7 65.87 1.05

Третья колонка табл. 4 содержит число лучших решений (в процентах) для алгоритма ВВ/11Т, четвертая — число лучших решений для алгоритма BB/ND, пятая — число одинаковых решений для двух алгоритмов. Для всех серий тестов вычислялось отношение целевой функции L(ND), полученной алгоритмом BB/ND, к значению целевой функции Ь(11Т), полученной алгоритмом ВВ/11Т. Последняя колонка содержит среднее значение отношения L(ND)/L(IIT).

Рассматривались только те случаи, в которых целевая функция не равна нулю. Из табл. 4 следует, что в 65% тестов алгоритмы дают одинаковое значение целевой функции, но лучших решений существенно больше в среднем у метода с простоями (27% против 7% ). Для группы тестов из 300 заданий для 4 и 8 процессоров количество лучших решений примерно одинаково для обоих рассматриваемых алгоритмов.

Среднее относительное отклонение от нижней оценки целевой функции КТ для расписаний, построенных методом ветвей и границ ВВ/11Т, представлено в табл. 5. Из нее вытекает, что оптимальные решения методом ветвей и границ были получены в 77.83% тестов (в среднем), а для 87% тестов приближенные решения имели относительную погрешность менее 5%.

Таблица 5. Относительная погрешность для метода ветвей и границ ББ/11Т

п т Wopt RT < 0.05 RT < 0.1 RT > 0.1

100 2 96 1 3 1

100 4 73 11 5 10

100 8 76 12 4 8

300 2 92 7 1 0

300 4 66 12.5 11 11

300 8 64 13 2 21

Среднее 77.83 9.25 4.33 8.5

7. Заключение. В этой работе рассматривались задача составления расписания P\vj\Lmax и алгоритмы ее решения, в которых разрешается допускать в расписании невынужденные простои процессоров. Для такой задачи были предложены новый жадный приближенный IIT алгоритм и алгоритм, в котором метод ветвей и границ для построения допустимого расписания комбинируется с бинарным поиском. Приближенные решения с относительной погрешностью RT < 10% были получены приближенным ESTM/IIT алгоритмом в 90% тестов, оптимальные решения — в среднем в 66% тестов.

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

С увеличением числа заданий метод ветвей и границ требует все больше времени на получение оптимального решения. Представляется оправданным и перспективным использовать данный метод для получения приближенного решения путем ограничения числа итераций на построение расписания при каждом заданном значении L. Применение метода ветвей и границ увеличило число построенных оптимальных расписаний для задачи P\rj\Lmax на 11% в среднем и составило 77.83% от общего количества тестов. Для 87% тестов приближенные решения, найденные с помощью метода ветвей и границ, имели относительную погрешность менее 5%.

Литература

1. Brucker P. Scheduling algorithms. Heidelberg: Springer, 2007. 378 p.

2. Graham R. L., Lawner E. L., Kan R. Optimization and approximation in deterministic sequencing and scheduling: A survey // Ann. of Disc. Math. 1979. Vol. 5, N 10. P. 287-326.

3. Lenstra J. A., Kan R., Brucker P. Complexity of machine scheduling problems // Ann. of Disc. Math. 1977. Vol. 1. P. 343-362.

4. Brucker P, Garey M. R., Johnson D. S. Scheduling equal-length tasks under tree-like precendence constraints to minimize maximum lateness // Matematics of Operations Research. 1977. N 2. P. 275-284.

5. Zinder Y., Singh G. Preemptive scheduling on parallel processors with due dates // Asia Pacific Journal of Operational Research. 2005. N 22. P. 445-462.

6. Baker K. R. Introduction to Sequencing and Scheduling. New York: John Wiley & Son, 1974. 318 p.

7. Kanet J. J., Sridharan V. Scheduling with inserted idle time: problem taxonomy and literature review // Operations Research. 2000. Vol. 48, N 1. P. 99-100.

8. Carlier J. The one-machine sequencing problem // European J. Oper. Res. 1982. N 11. P. 42-47.

9. Григорьева Н. С. Алгоритм ветвей и границ для задачи составления расписаний на параллельных процессорах // Вестн. С.-Петерб. ун-та. Сер. 10. Прикладная математика. Информатика. Процессы управления. 2009. Вып. 1. С. 44-55.

10. Grigoreva N. S. Multiprocessor scheduling with inserted idle time to minimize the maximum lateness // Proceedings of the 7th Multidisciplinary Intern. Conference of Scheduling: Theory and Applications. Prague: MISTA, 2015. P. 814-816.

11. Gusfield D. Bounds for naive multiple machine scheduling with release times and deadlines // Journal of Algorithms. 1984. Vol. 5. P. 1-6.

12. Романовский И. В., Христова Н. П. Решение минимаксных задач методом дихотомии // Журн. вычисл. математики и матем. физики. 1973. Т. 13, № 5. С. 200-209.

13. Mastrolilli M. Efficient approximation schemes for scheduling problems with release dates and delivery times // Journal of Scheduling. 2003. Vol. 6. P. 521-531.

14. Fernandez E., Bussell B. Bounds the number of processors and time for multiprocessor optimal schedules // IEEE Trans. on Computers. 1973. Vol. 4, N 11. P. 745-751.

Для цитирования: Григорьева Н. С. Задача минимизации максимального временного смещения для параллельных процессоров // Вестник Санкт-Петербургского университета. Сер. 10. Прикладная математика. Информатика. Процессы управления. 2016. Вып. 4. С. 51-65. DOI: 10.21638/11701/ spbu10.2016.405

References

1. Brucker P. Scheduling algorithms. Heidelberg, Springer Press, 2007, 378 p.

2. Graham R. L., Lawner E. L., Kan R. Optimization and approximation in deterministic sequencing and scheduling: A survey. Ann. of Disc. Math., 1979, vol. 5, no. 10, pp. 287-326.

3. Lenstra J. A., Kan R., Brucker P. Complexity of machine scheduling problems. Ann. of Disc. Math., 1977, vol. 1, pp. 343-362.

4. Brucker P., Garey M. R., Johnson D. S. Scheduling equal-length tasks under tree-like precendence constraints to minimize maximum lateness. Matematics of Operations Research, 1977, no. 2, pp. 275-284.

5. Zinder Y., Singh G. Preemptive scheduling on parallel processors with due dates. Asia Pacific Journal of Operational Research, 2005, no. 22, pp. 445-462.

6. Baker K. R. Introduction to Sequencing and Scheduling. New York, John Wiley & Son Press, 1974, 318 p.

7. Kanet J. J., Sridharan V. Scheduling with inserted idle time: problem taxonomy and literature review. Operations Research, 2000, vol. 48, no. 1, pp. 99-100.

8. Carlier J. The one-machine sequencing problem. European J. Oper. Res., 1982, no. 11, pp. 42-47.

9. Grigoreva N. S. Algoritm vetvey i granits dlya zadachi sostavleniya raspisaniya na parallelnykh protsessorakh [Branch and bound algorithm for multiprocessor scheduling problem]. Vestnik of Saint Petersburg University. Series 10. Applied mathematics. Comruter science. Control processes, 2009, issue 1, pp. 44-55.

10. Grigoreva N. S. Multiprocessor scheduling with inserted idle time to minimize the maximum lateness. Proceedings of the 7th Multidisciplinary Intern. Conference of Scheduling: Theory and Applications. Prague, MISTA Press, 2015, pp. 814-816.

11. Gusfield D. Bounds for naive multiple machine scheduling with release times and deadlines. Journal of Algorithms, 1984, vol. 5, pp. 1-6.

12. Romanovskii I. V., Khristova N. P. Reshenie minimaksnykh zadach metodom dikhotomii [The solution of minimax problem by the method of dichotomy]. Computational mathematics and mathematical physics, 1973, vol. 13, no. 5, pp. 200-209.

13. Mastrolilli M. Efficient approximation schemes for scheduling problems with release dates and delivery times. Journal of Scheduling, 2003, vol. 6, pp. 521—531.

14. Fernandez E., Bussell B. Bounds the number of processors and time for multiprocessor optimal schedules. IEEE Trans. on Computers, 1973, vol. 4, no. 11, pp. 745—751.

For citation: Grigoreva N. S. Scheduling problem to minimize the maximum lateness for parallel processors. Vestnik of Saint Petersburg University. Series 10. Applied mathematics. Computer science. Control processes, 2016, issue 4, pp. 51-65. DOI: 10.21638/11701/spbu10.2016.405

Статья рекомендована к печати проф. Л. А. Петросяном. Статья поступила в редакцию 9 марта 2016 г. Статья принята к печати 29 сентября 2016 г.