МАТЕМАТИКА
Вестн. Ом. ун-та. 2013. № 2. С. 48-50.
УДК 512
Р.Ю. Симанчев, Н.Ю. Шерешик
СХЕМА ДИХОТОМИИ
ДЛЯ ПОИСКА МИНИМАЛЬНОГО ДИРЕКТИВНОГО СРОКА В ЗАДАЧЕ ОБСЛУЖИВАНИЯ РАЗЛИЧНЫХ ТРЕБОВАНИЙ ОДНИМ ПРИБОРОМ
Определен минимальный директивный срок для задачи минимизации общего времени обслуживания различных требований одним прибором с прерываниями, достаточный для поиска оптимума. Предлагается алгоритм нахождения минимального директивного срока, основанный на дихотомии множеств расписаний.
Ключевые слова: директивный срок, дихотомия, релаксационный полиэдр, теория расписаний.
1. Постановка задачи
В статье рассматривается задача обслуживания различных требований одним прибором. Задано множество V требований, | V |= п . В обслуживании требований разрешены прерывания. Каждое требование г имеет положительный вес оз1 и «время ожидания» - некоторое время, в течение которого оно недоступно для обслуживания, - г . Длительности обслуживания требований равны между собой р1 = р, г = 1...п . Требуется минимизировать суммарное взвешенное время завершения обслуживания всех требований. В обозначениях, принятых в теории расписаний,
задача имеет вид 1 ртЫ;р{ = р;г |С 1 .
В зависимости от типа ограничений вычислительная сложность задачи может меняться. Если в исходной формулировке не учитывать веса требований, запретить прерывания и считать времена обслуживания всех
требований различными (в обозначении теории расписаний) - 1 |г| ^ С 1 ,
задача становится МР-трудной [1]. При условии ненулевого времени ожидания каждого требования и возможности прерывания обработки требований 1 ртЫ; г | ^0,-С 1 задача также является МР-трудной [1]. В случае
когда запрещены прерывания обработки требований 1 р{ = р;г|,
задача является полиномиально разрешимой [2]. Случай, когда не учитывается вес каждого требования, разрешены прерывания и время обработки требований различны 1 ртМ; г | ^ С 1 , также является полиномиально разрешимой задачей [1].
Кроме того, в [3] предложен полиномиальный алгоритм для частного
случая задачи: 1 ртМ;р1 = 2;г.|.
Что касается рассматриваемой нами формулировки 1 ртШ; р1 = р;
Г|Е0' , то в настоящее время эта задача остаётся открытой в смысле
теории сложности. Определим величину ё - директивный срок окончания обслуживания всех требований. Априори эта величина не известна, но ясно, что её всегда можно выбрать. Соответственно, дискретные единичные моменты обслуживания требований могут быть перенумерованы как к = 1,2...ё .
Расписание обслуживания требований будем понимать как (0,1) -вектор х е Мпё с координатами х к е {0,1} , единица означает, что в к -й
© Р.Ю. Симанчев, Н.Ю. Шерешик, 2013
Схема дихотомии для поиска минимального директивного срока в задаче обслуживания..
49
момент времени обслуживается г -е требование, ноль иначе. Всякое расписание х удовлетворяет следующей системе ограничений:
ЕхЛ <1, к = , (1)
1=1
ё
Е хк = р, .=1---п, (2)
к=1
хЛ > 0, г= 1...п , к = 1. ё , (3)
хк = 0, г = 1 .п , к = 1. г . (4)
Ограничения (1) гарантируют, что в каждый момент времени обслуживается не более одного требования; ограничения (2) означают, что на обслуживание требования необходимо ровно р единиц времени; ограничения (4) - время ожидания каждого требования г еV.
Полиэдр, задаваемый ограничениями
(1)-(4), обозначим через Мл . Как известно,
ограничения вида (1)-(3) задают в Мпё целочисленный полиэдр (так как, по сути дела, они совпадают с ограничениями транспортной задачи). Ограничения (4) не нарушают его целочисленности. Таким образом, полиэдр Мё является целочисленным и, следовательно, Мл = еопу , где - множество всех расписаний обслуживания требований при данном директивном сроке. Теперь обозначим через Сг (х) время окончания обслуживания требования при данном расписании х . Во введенных терминах целевую
функцию задачи 1 рт№; р г = р; г| Е^С можно записать следующим образом:
/(х) = Е 0С](х) .
=1
Тогда рассматриваемую задачу минимизации суммарного взвешенного времени завершения обслуживания всех требований можно сформулировать как
шт |ЕЕ 0С ‘(х)1х е Мё
при условии «поиска по вершинам». В данном случае целочисленность полиэдра Мё не облегчает задачу (как это было бы в случае задачи ЦЛП), так как целевая функция не является линейной по х .
Будем называть расписание х еЕё оптимальным, если /(х) < /(х) для любого хе^.
Для удобства будем представлять всю работу обслуживания требований в виде таблицы, где строки - это требования, а столбцы - моменты времени. Соответственно, размерность таблицы п х ё . Она заполняется следующим образом. На пересечении к -го столбца и -й строки ставится либо ноль, либо единица. Единица означает, что в к -й момент времени обслуживается -е требование. Состояние ячейки на данном пересечении будем обозначать х к . Соответственно, х Л е {0,1} .
В качестве примера рассмотрим таблицу расписания обслуживания четырёх требований с временем обслуживания, равным трём (см. рис.). На этом примере видно, что требования 1 и 2 обрабатывались в 5, 6, 10 и 4, 11, 12 моменты времени соответственно. Требования 3 и 4 обрабатывались в 7-9 и 1-3 моменты времени соответственно. Суммарное взвешенное время завершения обрабатывания всех требований равно 100 + 48 + 108 + 21 = 277.
Столбец к будем называть нулевым, ес-
п
ли Е хк = 0.
=1
2. Анализ директивного срока и процедура дихотомии
Будем называть директивный срок ё минимальным, если Ф0 , _1 = 0 , и обо-
значать ёшп.
Очевидно, что множества при росте
ё удовлетворяют условию монотонности, т. е. с , при ё < ё'. Докажем следую-
щее утверждение.
р = 3, п = 4 (серым цветом выделены г)
50
Р.Ю. Симанчев, Н.Ю. Шерешик
Лемма. Пусть г1 < г2 < . < гп . Если существует такая строка г еV, что ё _ г =(п _ г + 1)р, то ё < ёшт .
Доказательство. Предположим, что ё _ г = (п _ г +1)р и ё > ёШп . Исходя из определения ёШп, мы можем уменьшить ё, и при этом множество расписаний будет не пусто. Условие ё _ г = (п _ г +1)р означает, что количество столбцов, стоящих правее г и не превосходящих ё , равно количеству единиц в строках не выше г -й. Значит, при уменьшении ё количество единиц в столбцах и, соответственно, в строках станет меньше (п _ г +1)р , а значит, не все требования будут обработаны. Таким образом, мы не можем уменьшить ё , значит, наше предположение не верно.
Лемма доказана.
Теорема. Пусть ё > ёшП. Для любого расписания х е Ей+1 существует такое х' е!,Л , что выполняется /(х') < /(х) .
Доказательство. Для расписания х введем обозначения
г(х) = шах{к | хк = 0,г = 1,...,п} ,
5 = шт{/1 г(х) < Г } .
Если г(х) < г5, то в столбце г5 есть единица, которую мы перенесем влево по той же строке в столбец г(х) . Получим расписание х1, в котором г(х1) = г5. При этом значение целевой функции не уменьшится. Таким образом, без ограничения общности можем считать, что г(х) е{г1,г2,...,гп,ё +1} .
Итак, пусть г(х) = г . Это означает, что для каждого к > г существует такая строка 7 е V , что хк = 1. Рассмотрим две альтернативные ситуации: 1) 7 > г и 2) 7 <г.
В первом случае для любой строки 5 < г и для любого столбца к > г имеем х5к = 0 . Исходя из того, что все столбцы с номерами к > г ненулевые, получаем равенство ё +1 _ г = (п _ г +1)р . Согласно лемме, это означает, что ё +1 < ёшп. Последнее противоречит условию теоремы.
Во втором случае, т. е. при 7 < г, формируем расписание х1 посредством переноса единицы из клетки (7, к) в клетку (7, г) .
Расписание х1 отличается от х компонентами хг = 1 и хкк = 0 . Тогда г(х1) = к > г и,
следовательно, r(х1) = r , где i < il . При этом
ясно, что f (х1) < f (х) .
С помощью тех же рассуждений мы
можем перейти от расписания х1 к распи-
2
санию х и так далее до тех пор, пока r(х‘) = d +1. Это означает, что столбец d +1
нулевой и х‘ eSd .
Теорема доказана.
Прямым следствием этого результата является тот факт, что оптимальное расписание задачи лежит в множестве Z, , ко-
dmin
торое, как уже говорилось, определяется условием
sd. *0, sd. , = 0 .
dmin dmin 1
В этой связи становится актуальным поиск минимального директивного срока dmln. Для ответа на этот вопрос нами разработана процедура дихотомии, использующая целочисленность полиэдра Md .
Схема дихотомии для поиска dmln.
Полагаем A = 1, B = np + max r .
i=1,...,n
t-я итерация..
Шаг 1. Вычисляем d =
A + B
Шаг 2. Если Md = 0, то A = d , B = B и переход на шаг 3. Если Md *0 то A = A , B = d и переход на шаг 3.
Шаг 3. Если B - A = 1, то выход: dmln = B .
Иначе переход на t +1 -ю итерацию.
Конец алгоритма..
Проверку условия Md =0 на шаге 2 удобно делать посредством решения задачи ЛП с произвольной целевой функцией на множестве Md . Поскольку полиэдр целочисленный, то наличие решения в этой задаче означает, что Md * 0 , а отсутствие решения означает, что Md = 0 .
ЛИТЕРАТУРА
[1] Peter Brucker. Scheduling Algorithms. Fifth edition. Germany, 2006.
[2] Baptiste Ph. Batching identical jobs // Mathematical Methods of Operations Research. 2000. № 53(3). Р. 355-367.
[3] Bouma H. W, Goldengorin B.. A Polytime Algorithm Based on a Primal LP Model for the Scheduling Problem 1\pmtn;pt = 2;r |// Recent Advance in Applied Mathematics. 2010.