И нформационные технологии в управлении
УДК 519.8
СВОЙСТВА ДОПУСТИМЫХ И ОПТИМАЛЬНЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ ВЫПОЛНЕНИЯ РАБОТ НА ОДНОЙ МАШИНЕ
Ю.А. Зак
Рассмотрены свойства допустимых и оптимальных последовательностей выполнения заданий на одной машине в условиях наличия ограничений на сроки начала и завершения выполнения работ. Предложены методы решения сформулированной задачи последовательными алгоритмами оптимизации на основе преобразования расписания, допускающего разрывы в выполнении работ в оптимальную последовательность, в которой такие разрывы не допускаются. Приведены числовые примеры.
Ключевые слова: допустимые и оптимальные последовательности выполнения заданий, ограничения на времена выполнения работ, разрывы во времени выполнения работ, последовательные алгоритмы оптимизации.
ВВЕДЕНИЕ
Известно большое число публикаций, в которых рассматриваются постановки и эффективные методы решения «one-machine sequencing problem» — определения оптимальной последовательности выполнения n работ (заданий) на одной машине в условиях, когда заданы времена выполнения работ t, ограничения на начальные сроки их выполнения а,, а также заключительные времена g, необходимые для завершения выполнения каждой работы после окончания выполнения ее на данной машине. Все значения t, а,, g, i = 1, ..., n, — целые числа. Одновременно на машине не может выполняться более одной работы. Необходимо найти оптимальную последовательность выполнения всех работ на этой машине, а также времена начала x, и завершения о, выполнения каждой из них. В качестве критерия оптимальности рассматривается минимизация срока g. завершения наиболее поздней из всех работ с учетом добавления заключительного времени обработки каждой из них на других машинах.
Для сформулированной, как показано в работах [1, 2], NP-сложной задачи предложены достаточно эффективные алгоритмы решения (см., например, работы [1—5]), позволяющие находить точные и
приближенные решения практических задач достаточно большой размерности. Эффективные алгоритмы точного решения задачи с помощью Schrage-algorithms и их модификаций впервые были предложены в работе [1] и развиты в работах [3—5]. Эти алгоритмы наиболее часто применяются в настоящее время для получения точных решений практических задач большой размерности.
Однако для практических приложений календарного планирования производства, организации обслуживания и вычислительного процесса чрезвычайно актуальна постановка задачи, в которой учитываются ограничения на сроки завершения каждого из заданий d, i = 1, ..., n. Такая постановка задачи важна как в условиях, когда допускаются разрывы во времени выполнения отдельных работ, так и в условиях, когда ни одна из работ не может прерываться в процессе своего выполнения. В условиях ограничений на сроки завершения отдельных работ даже задача поиска допустимой последовательности их выполнения, как и известная «One-machine sequencing problem» [1—6], также относится к классу NP-сложных задач. В условиях этих дополнительных ограничений автором были предложены алгоритмы решения сформулированных задач [6, 7], позволяющие с таким же объемом вычислений, как и в работе [1], решать такие задачи при отсутствии ограничений. Поиск допустимых и оптимальных расписаний осуществляется
последовательными алгоритмами оптимизации в процессе анализа некоторого множества последовательностей, не допускающих разрывов во времени выполнения заданий.
В данной работе предлагается другой подход, основанный на преобразовании оптимальной и (или) допустимой последовательности, в которой допускаются разрывы во времени выполнения отдельных работ в допустимое и оптимальное расписание, в котором такие прерывания устранены. К преимуществам таких методов следует отнести возможность как на начальном, так и на каждом этапе решения установить факт несовместности заданной системы ограничений и выявить подмножество заданий, временной ресурс выполнения которых должен быть расширен. Оптимальное решение задачи как при наличии ограничений на времена выполнения работ, так и при их отсутствии может быть получено предлагаемым методом с эффективностью, сравнимой с эффективностью упомянутых методов [1].
2. ПОСТАНОВКА И МАТЕМАТИЧЕСКАЯ ФОРМУЛИРОВКА ЗАДАЧИ
Пусть I — подмножество работ, которые должны быть выполнены на одной машине. Заданы
времена выполнения операций t¡, I е I, ограничения на начальные и конечные сроки их выполнения х1 1 йр о. т й, а также заключительные времена g., необходимые для завершения выполнения каждой работы после окончания выполнения ее на данной машине. Ни одна из операций не может прерываться в процессе ее выполнения, и одновременно на машине не может выполняться более одной операции. Необходимо построить расписание выполнения работ, удовлетворяющее всем сформулированным требованиям и минимизирующее время завершения выполнения наиболее поздней из всех работ с учетом добавления заключительного времени g¡ обработки каждого из них на других машинах.
Следовательно, необходимо при выполнении условий, что ни одна из работ не может быть прервана в процессе ее выполнения, найти решение следующей экстремальной задачи:
п; (1)
atm хр di1 xi + 4
- xt = 4 i = 1,
xt + t. + 1 m x. или x. + t. + 1 m x,,
t t J J J t
i ф j, i = 1, ..., n; (2)
F = max(a; + g,) ^ min. (3)
ttt
Без ограничения общности будем полагать, что для всех заданий выполняются условия a. + t, m d,
i e I.
Даже при отсутствии условий непрерывности выполнения каждого из заданий из-за наличия альтернативных ограничений (2), которые могут быть математически строго сформулированы только введением булевых переменных, задача поиска допустимого расписания носит комбинаторный характер и требует специальных методов решения.
3. СВОЙСТВА ДОПУСТИМЫХ И ОПТИМАЛЬНЫХ РАСПИСАНИЙ
Пусть на каком-то 5-м этапе решения, 5 = 0, 1, 2, ..., определено некоторое значение критерия
оптимальности (3), равное Fs. Минимальная длина расписания не может быть меньше величины
F0 = max
minat + ^ t. + mrng, I;
t e I t e I t e I )
max (a. + t, + g) \. (4)
t e I J
Определив Fs 1 F0, s = 1, 2, ..., S, обозначим f di если di + gi < Fs,
D. =
Fs - gi если dt + gi > Fs.
(5)
Обозначим 9] и т] — соответственно наиболее ранние и допустимые наиболее поздние сроки начала выполнения 1-й работы на машине, обеспечивающие выполнение всех ограничений задачи (1), (2) и значение критерия оптимальности (3) не
более величины Fs,
es 1 at, tS m Di - t, + 1,
(6)
где es m xs m ts , i = 1,
n.
Если в результате преобразований значений 9г-
и т] для какой-либо из работ строящейся последовательности будет выполняться неравенство 9] > т], то не может быть построена последовательность, удовлетворяющая всем ограничениям на сроки выполнения работ, со значением критерия оптимальности меньшим или равным величине F
Утверждение 1. Если для каких-либо двух работ
О. и О,, выполняемых на машине, справедлива следу-
¡ )
ющая система неравенств
eS + t.. + 1 1 tS
eJ + t. + 1 1 t, ,
(7)
то не существует допустимых расписаний выполнения всех работ на машине за время, меньшее или равное Fs.
Утверждение 2. Если для двух работ О. и О, вы* }
полняемых на машине, справедливо хотя бы одно из пары условий
Tj < e;, е; + ; + 1 > т,,
(8)
то в допустимых расписаниях, удовлетворяющих системе ограничений (1), (2) и F < Fs, работа O, должна выполняться раньше работы O;, т. е.
xS + ts + 1 m xj.
Следствия утверждения 2.
es = max{( es + t,s + 1); eS},
TS = min{( eS - tS); tS }.
(9)
Здесь 9- и г,- — скорректированные допусти) I
мые наиболее ранние и поздние сроки начала выполнения соответственно 1-й и у-й работы на 5-й итерации решения задачи.
Утверждение 3. Если для нескольких работ Ор, р = 1, ..., Р, выполняемых на машине, установлено, что они стоят в последовательности их выполнения перед работой О, т. е. выполняется условие
хр + {р + 1 т х,, р = 1, ..., Р, то справедливы соотношения
е, = min<! eS; ( max ep + tp + 1);
' [ 1 < p < p f f
p
(min ep + у tpS + P)
1 < p < P p ^ p p p = 1
(10)
Доказательство следует из условий (7)—(9), а также из того, что время начала выполнения работы О; не может быть ранее времени завершения всех работ Ор, р = 1, ..., Р, предшествующих ей, плюс допустимый наиболее ранний срок начала выполнения работ этого подмножества.
Разобьем все множество выполняемых работ I на два подмножества 11 и 12 — соответственно подмножества работ, для которых заданы и не заданы граничные сроки их завершения выполнения, 11 и 12 = 1, 11 п 12 = 0.
При установленном значении максимальной
длины расписания Р- в условиях заданной системы ограничений на сроки выполнения заданий рассмотрим следующий алгоритм вычислений.
Алгоритм 1^). Значения счетчиков гА1 и гВ1 положим равными нулю.
Шаг 1. Для каждой из двух работ О. и О., вы* }
полняемых на машине, проверяется выполнение условий (7) и (8). Если выполняется хотя бы одно
из этих неравенств, то устанавливаем значения := 2 и Zai := 2 и
А- := шт(9, - т,), либо (11)
А- := шin{( 9, + $ + 1 - т;); (9. + . + 1 - т,)}.
Если выполняемая работа принадлежит подмножеству работ 11, то система ограничений задачи является несовместной, и необходимо расширить временной ресурс, выделенный для выполнения соответствующей работы на величину, не меньшую чем значение А4, и алгоритм завершает работу. Если I е 12 или у е 12, то выполним необходимые вычисления, предусмотренные в шаге 5. В противном случае переходим к шагу 2.
Шаг 2. Рассматриваем все пары работ, выполняемых на машине. Если для какой-то пары работ О. и О. выполняются условия (8), то полагаем * )
1А1 := 1, 1В1 := 1, корректируем соответствующие граничные значения времен начала выполнения работ, выполнив преобразования (9). Переходим к шагу 3.
Шаг 3. Если для нескольких работ О , р = 1, ..., Р, выполняемых на машине, установлено, что они должны выполняться раньше работы О, т. е.
хр + *р + 1 < хр, р = 1, ..., Р, то полагаем гА1 := 1 и гВ1 := 1 и выполняем пересчет граничных значений времен начала выполнения этих работ по формулам (11), для 1-й работы рассчитываем значение
9,; по формуле (10). Переходим к шагу 4.
Шаг 4. Если гА1 := 0, то алгоритм выполнения преобразований завершает свою работу. Если гА1 := 1, то полагаем zA1 := 0, и переходим к выполнению шага 1.
Шаг 5. Положив Р* + 1 = Р* + А5, 5 := (5 + 1), выполняем пересчет значений 9р и тр по формулам (5) и (7), после чего снова выполняем алгоритм 1(8).
Упорядочим все работы по неубыванию значений в последовательность
и = {ы„ ы„ ..., ыр, .., ып \ы„ е I; Ли < Ли ,
I р 2 ' Р' ' пк' Р ' "а "А +1
р = 1, ..., (п - 1)}. (12)
Утверждение 4. Если хотя бы для одной из работ
ыр е и, упорядоченных в последовательности (12), несправедливы условия
max
p -1
min qu + у tu ; а..
1 < i < p - 1м' у u' u
U' / i U'^
i = 1 p = 1,
+ tu m du , •p i up up
n
то не существует расписаний, удовлетворяющих системе ограничений задачи. ♦
Доказательство утверждения 4 приведено в работах [6, 7].
4. АЛГОРИТМЫ РЕШЕНИЯ ЗАДАЧИ
Рассмотрим следующий алгоритм построения расписания выполнения работ на одной машине, допускающий прерывание работ в процессе их выполнения (обозначим такое расписание т. е. построения некоторой последовательности выполнения работ W (^), а также определения времен начала и завершения выполнения каждой операции этой последовательности.
Алгоритм 2(s). Обозначим Q = q(up)|, p = 1, ..., n, количества временных интервалов в момент времени ^ = 1, ..., T, необходимых для завершения выполнения каждой операции. Все операции упорядочены в последовательности (12). В начале работы алгоритма положим q^(up) = tu , p = 1, ..., n.
В каждый из временных интервалов ^ = 1, ..., T выполняем работу ur, выбираемую из условий
ur = arg mn {Du k e U, eu m q,(u ) > 0}. (13)
' 1 < p < n p p p s p
Если таких работ несколько, то среди них выбираем работу с наименьшим индексом р. Для выбранной операции ur, полагаем q^(ur) := q^(ur) — 1. Если работ, удовлетворяющих условиям (13) не существует, то в данном ^-м временном интервале не выполняется ни одна из множества работ. Полагаем ^ = (^ + 1) и переходим к следующему временному интервалу
Алгоритм завершает свою работу в некоторый момент времени T, когда выполняются условия
qT(up) = 0, up e U, p = 1, 2, ..., n.
Обозначим N1 n — суммарное число отрезков времен полного и частичного выполнения различных работ в расписании
Пусть построено допустимое расписание выполнения заданий т. е. последовательность выполнения операций W (^1). Обозначим CTt m ст, — времена завершения выполнения работ в последовательности W (^1).
Рассмотрим некоторые свойства преобразований этого расписания в расписание работ, не допускающее прерываний времени их выполнения (расписание ¥2).
Показано [6], что для последовательности выполнения работ на одной машине U, временах вы-
полнения этих работ tu и наиболее ранних сроках начала выполнения работ 9и , а также в условиях
недопустимости прерываний времени выполнения работ справедливо утверждение 5.
Утверждение 5. Если выполняется хотя бы одно из системы неравенств
max
min eup + z ч; eup+1
upe ii
+ eu
p = 1
p = 1, 2, ..., (N — 1),
up +1
> D
up + 1'
то не существует допустимых расписаний выполнения работ на этой машине, удовлетворяющих всей системе ограничений на сроки начала и завершения их выполнения. ♦
Пусть некоторая работа у в последовательности
№ начинает выполняться в момент времени ^ и выполняется в течение Ь,, I. = 1, ..., Ь,, различных отрезков времени. Обозначим соответственно:
I I А
х,, о,, , — время начала, окончания и длительности выполнения этой работы на 1-м отрезке времени;
О (у) — подмножество работ, выполняемых в № в промежутках времени
1 Ь1 -у е [ о, + 1, о, = о, ], т. е.
~ ~ ■ 1 1
О (у) = [I е Ж(^1)|о] < х1 < о,; = о,}; (14)
тг, х; — допустимые наиболее поздние и фактические сроки начала выполнения подмножества работ
I е О (у) в расписании
Как следствие утверждения 5 может быть сформулировано
Утверждение 6. (1) Если в последовательности Ж (^1) хотя бы для одной из работ I е I выполняется неравенство ог > Б, то не существует допустимых расписаний выполнения работ на машине, удовлетворяющей всей системе ограничений при установленной длине расписания Fs.
(2) Если в последовательности Ж (^1) хотя бы для одной из работ I е 11 выполняется неравенство о1 > Б., то система ограничений задачи является несовместной. ♦
Доказательство следует из утверждения 4, так как допустимость прерывания выполнения заданий ослабляет систему ограничений утверждения 4.
В качестве другого способа доказательства утверждения 6 может быть рассмотрена возможность
увеличения числа выполняемых работ. Представим каждую у-ю работу расписания W (^1), которая выполняется с Ь. прерываниями, длительнос-
.1 I
тью каждого отрезка выполнения . и началом х., I = 1, ..., Ь., в виде Ь. различных операций со значениями 9. = 9., ^ = и временем выполнения,
равным .. Тогда доказательство утверждения 6
полностью совпадает с доказательством утверждений 4 и 5.
Утверждение 7. Если выполняется система неравенств
1
х, + . - . т т, V I е £2 (у),
то увеличение длительности интервала выполнения ]-й работы до величины t■ и выполнение этой операции до конца без прерываний не приведет к нарушению ограничений на сроки выполнения всех других работ расписания ♦
Обозначим и1(^) и и2 соответственно подмножество работ последовательности и , выполнение которых в момент времени ^ завершено
или требуется их завершение, и1 и и2 = и, и1(^) п и2 = 0. Число членов в последовательности и1 равно п1(^), и они, как и в последова-
получено расписание, удовлетворяющее всем ограничениям задачи и не содержащее разрывов во времени выполнения работ.
Каждое преобразованное расписание или
определяется временем ^ начала выполнения работы, разрыв во времени выполнения которой является первым среди всех работ этой последовательности, индексом этой работы у е
временем начала ^ = {х.\ у е (^)} и длительности
ее выполнения на данном отрезке {. |у е ^в (^)}, а
также некоторым признаком а[ (^)]; а = -2, если данная подпоследовательность не содержит допустимых продолжений, удовлетворяющих системе ограничений на времена выполнения работ; а = -1, если не существует допустимых продолжений при значении критерия оптимальности, меньшем или равном Ря, и это значение должно быть увеличено; а = 1, если не установлен факт, что не может быть построено расписание, не содержащее разрывов во времени выполнения работ, со значением критерия оптимальности, меньшем или равном Р,; а = 0, если рассмотрены все возможные перспективные преобразования данного расписания; а = 0,5, если рассмотрен только один из двух вариантов устранения прерывания выполнения
этой работы. Обозначим 11[(£)], 12 [(^)] со-
тельности и , упорядочены по возрастанию значе- ответственно подмножество работ в расписании ний Ьир. Пусть в момент времени $ в анализиру- ^ ф, выполняемых без прерывания до момента
времени и работ, для которых х. 1 т. е. выполняемых после времени
/1 [ ($)] и 12 [ ^ ($)] = I, / [ ($)] п /2 [^ ($)] = 0.
Алгоритм 3 Шаг 0. В расписании находим
первую работу у, у которой . < .. Если таких работ не существует, то = и получено решение задачи. В противном случае, полагаем ^ = х1. Определяем
^ ($) = ^1, у е ^ ф, {е ($)} = . , а[ ^ ($)] = 1.
емой последовательности назначено начало первого отрезка времени выполнения работы у, и длительность этого отрезка равна . временным интервалам. Определим
— ~ — 1
9, = 9, V I е {\]2Ш}; 9. = 9. + . + 1.
Рассмотрим алгоритм преобразования расписания в допустимое расписание не допускающее разрывов во времени выполнения работ. Алгоритм решения задачи представляет собой ветвящийся процесс последовательного преобразования расписания в различные расписания ^
и (^), каждое из которых некоторым образом
устраняет процесс прерывания выполнения первой претерпевающей разрывы работы, начало выполнения которой было в момент времени После этого анализируется возможность выполнения всех ограничений задачи и исключаются недопустимые продолжения. Процесс решения завершает-
Определим подмножества работ /1 [(^)] и
ся, если на каком-то ^ -м временном интервале /2[ (^)]. Переходим к шагу 1.
58
СОЫТВОЬ БС!ЕМСЕ8 № 5 • 2012
Шаг 1. Находим расписание (ю), удовлетворяющее требованиям
У в (ю) = {max max{ у в (£)| у в (£) m 1}.
в = 1,2 %
Если таких расписаний не существует, то переходим к шагу 2. В противном случае — к шагу 3.
Пусть j — номер первой работы в последовательности Ув (ю), которая прерывается в процессе ее выполнения.
Шаг 2. Если среди всех расписаний Ув (£), ß = 1, 2, найдется хотя бы одно, для которого признак {а| Ув (£)} = 1, то это расписание принимается в качестве У2, т. е. является решением задачи. Если таких расписаний не существует, то задача не содержит допустимых решений. Как в первом, так и во втором случаях, алгоритм завершает свою работу, и переходим к шагу 6.
Шаг 3. Преобразуем расписание Ув (ю) в расписание Ур (£), устранив прерывания в выполнении работы j е
ув (ю), для которой х, = ю, определив
{Xjl j е Ур (£)} = ю, {ст, j е у1 (£)} = ю + j, £ = ю + j + 1,
Ji [Ур (£)] = J [ Ув (£)] и j, J [ Ур (£)] = J [ ув (£)]/j.
Если J2 [Ур (£)] = 0, то определяем подмножество работ {Q (j)|у1 (ю)} в соответствии с выв
ражением (14), где Wk(Ур) = Ур (ю). Для всех работ
~ в 11 i е {Q (j)| У в (ю)} значения хг- и стг- увеличиваем на
Aj = (j - tj1), т. е. х1 = х1 + Д, ст1 = ст1 + Д..
Если справедлива система неравенств
ст, < D V i е {Q (j)| У в (ю)}, то получено решение задачи, и алгоритм завершает свою работу. Если 12 [ у1 (£)] ^ 0, то положив ю = £, переходим к шагу 5.
Шаг 4. Если а[Ув (£)] = 0,5, преобразуем рас-
в2 писание У1 (ю) в расписание У1 (£), перенеся начало выполнения операции j е Ув (ю) на более поздний срок. Полагаем
Для всех остальных работ множества
- 2 в /2 [ У1 (£)] * 0, выполняемых в расписании У1 (ю)
после момента времени ю, оставляем значения
2 _ ~ [9г|/ е (г) и Щ (ю), I * у} = 9Г
Шаг 5. С помощью алгоритма 28, начиная с момента времени ю, строим расписание У? (£), допускающее разрывы во времени выполнения операций. Если для вновь построенного расписания выполняется хотя бы одно из неравенств системы неравенств
[о,]/ е уЦ (£)} > й¡, I е 11 П /2 [У' (£)],
то данное расписание не содержит допустимых решений, и полагаем а[ У2 (£)] = —2. Если выполняются условия [ог|/ е У? (£)} < V I е 11 и при этом для некоторых работ выполняются неравенства [ог|/ е у1 (£)} > V I е 12, то полагаем
а[ У? (£)] = —1. Как в первом, так и во втором случаях строящееся расписание не содержит допустимых продолжений и полагаем £ = ю + 1.
В случае если ог- < Б V I е I, полагаем
а{ У? (£)} = 1. В качестве £ выбираем, как и в шаге 3,
время начала первой работы в расписании выполнение которой не было осуществлено до конца. Значение У? (ю) полагаем равным 0, у1 (ю) = 0. Переходим к шагу 1.
Для расписаний У? (£), в = 1, 2, если а{ У? (£)} =
= 1, значение £ как время начала выполнения той операции, в которой происходит прерывание, т. е.
£ = { min х.111 < t.}.
i е ^(ffl)
(15)
{6,-1 j е У2 (£)} = ю + xj .
Если задача (15) не имеет решений, то построено допустимое расписание У2, не содержащее прерываний во временах выполнения операций, и алгоритм завершает работу.
Шаг 6. Если алгоритм 3(8) завершил свою работу, не построив ни одного расписания У2, и среди
всех расписаний У? (£) содержатся только расписания с признаком а{ У? (£)} = —2, то задача не имеет допустимых решений и временные ресурсы выполнения некоторых работ должны быть расширены. Если при этом содержатся некоторые расписания, для которых а{ У? (£)} = —1, то граничное значение критерия оптимальности должно быть
увеличено на некоторую величину Fs := Fs + 8s, где 8s = min min min (a- — D ).
Таблица 1
ß
5 i e J2 [¥?(5)]
С новым значением критерия оптимальности последовательно выполняем вычисления (5), (6), алгоритмы 1(^), 2(^) и 3(я) до тех пор, пока не получим решения задачи, либо подтверждения того, что система ограничений задачи является несовместной. ♦
Предложенный алгоритм реализует метод последовательного приближения к оптимальному расписанию снизу F0 < Г1 < ... < Fs < ... < Гкаждая большая итерация которого — некоторая модификация метода ветвей и границ с отсевом неперспективных продолжений. Ветви дерева, не обеспечивающие выполнение всех ограничений задачи или значение критерия оптимальности, равное величине Г5, отсеиваются как неперспективные. На первых шагах алгоритма устанавливается факт несовместности системы ограничений и идентификация узких мест.
5. ИЛЛЮСТРАТИВНЫЕ ПРИМЕРЫ
Пример 1. Необходимо найти допустимую последовательность выполнения пяти работ, начальные сроки, времена и граничные сроки завершения выполнения которых сведены в табл. 1.
При ограничениях на сроки завершения пятой работы й5 = 28 уже в процессе выполнения алгоритма определяется, что система ограничений задачи является несовместна. При увеличении значения й5 = 29 было получено допустимое расписание выполнения работ.
Рассчитав по формулам (5) значения Б, построим
последовательность и = {1, 2, 4, 5, 3}. Процесс решения сведен в табл. 2. Допустимая последовательность выполнения работ — Ж (^2) = {3, 1, 2, 4, 5}, сроки начала и завершения выполнения работ для расписания см. в табл. 2.
Пример 2. Необходимо найти оптимальную последовательность выполнения шести работ, начальные сроки а¡, времена ^ и граничные сроки завершения выполнения й¡, а также поствремена g¡ (табл. 3).
Вычисленное по формуле (4) значение нижней границы критерия оптимальности равно ¥0 = 33. Положив ¥1 = 35, по формуле (5) вычислим значения Б, которые приведены в последней строке табл. 3.
В соответствии с этими значениями построена последовательность выполняемых работ и = {2, 3, 1, 4, 6, 5}. Вычисленные по формулам (6) и преобразованные в процессе работы алгоритма значения 9, и т, приведены во втором и третьем столбцах табл. 4. Последовательность Ж (^1) определяет построенное алгоритмом 2б расписание, в котором допускается прерывание выпол-
Исходные данные Примера 1
Показатели Индексы работ
1 2 3 4 5
ai 6 3 1 19 15
ti 5 4 7 6 5
Di ' II 15 18 32 25 (28) 29
Таблица 2
Процесс и результаты решения Примера 1
Номер работы Допусти- мое время начала Последовательность (Yj), допускающая разрывы времени выполнения работ Расписание не допускающее разрывы времени выполнения работ
е,- Т 1 tl 1 2 2 x t
1 6 11 6 5 10 _ _ _ 8 5 12
2 3 15 3 3 5 11 1 11 13 4 16
3 1 12 1 2 2 12 5 16 1 7 7
4 19 19 19 6 24 _ _ _ 19 6 24
5 25 25 25 5 29 _ _ _ 25 5 29
Таблица 3
Исходные данные Примера 2
Показатель
ai t d gi D
Индексы работ
1 2 3 4 5 6
12 4 1 8 10 15
7 4 5 4 2 3
28 15 18 32 32 35
15 6 5 11 6 10
20 15 18 24 29 25
Таблица 4
Процесс и результаты решения Примера 2
Номер работы Допусти- мое время начала Последовательность (Yj), допускающая разрывы времени выполнения работ Расписание не допускающее разрывы времени выполнения работ
е Ti 1 tl 1 ai 2 t2 2 x t
1 12 14 12 7 18 — - - 12 7 18
2 4 10 4 4 7 - - - 6 4 9
3 1 14 1 3 3 8 2 9 1 5 5
4 8 21 10 2 11 19 2 20 19 4 22
5 10 28 24 2 25 - - - 10 2 11
6 19 23 21 3 23 - - - 23 3 25
нения работ. Алгоритмом Зб на 2-м шаге преобразования это расписание было преобразовано в последовательность, не допускающую разрывов во времени выполнения работ Ж (У2) = {3, 2, 5, 1, 4, 6}, в которой выполнены все ограничения на сроки выполнения работ и значение критерия оптимальности минимально. Времена начала и завершения выполнения каждой работы в этом расписании приведены в последних столбцах табл. 4. Значение критерия оптимальности определяется шестой работой и равно И = а6 + g6 = 25 + 10 = 35.
6. РЕЗУЛЬТАТЫ ВЫЧИСЛИТЕЛЬНЫХ ЭКСПЕРИМЕНТОВ
Поскольку сформулированная задача относится к классу МР-сложных, то предложенный алгоритм, реализующий некоторую модификацию метода ветвей и границ, как и алгоритм [1], относится к классу экспоненциально сложных.
Разработанные алгоритмы прошли апробацию при решении тестовых задач построения расписаний, включающих в себя несколько сотен работ. Исходные данные примеров выбирались случайным образом в пределах заданного диапазона значений.
Эффективность алгоритмов решения задач построения расписаний, не допускающих прерывания выполнения работ, зависит от трех параметров:
числа N и среднего времени Т выполняемых заданий и процента работ Р, на завершение выполнения которых наложены ограничения. Объем вычислений определяется числом Q пересчетов нижней границы длины расписания, числом Ж развиваемых ветвей дерева и числом Я устраняемых разрывов выполнения работ в процессе решения задачи. Результаты проведенных вычислительных экспериментов приведены в табл. 5.
Как показали результаты большого количества вычислительных экспериментов, при решении тестовых задач достаточно большой размерности (до 1500 работ) благодаря эффективности оценки
Таблица 5
Результаты вычислительных экспериментов
Параметры задачи
Параметры эффективности алгоритма
N T Р, % Q W R
До 200 5-7 10-20 0-6 10-15 12-30
100-200 8-10 До 50 7-11 20-30 25-38
400-500 3-5 До 30 12-20 40-45 42-50
800-100 3-7 До 25 30-42 65-80 90-105
1500 4 15 52 114 136
длины оптимального расписания точное решение задачи было получено при относительно небольшом числе приближений и ветвлений. Число устранений разрывов в выполнении работ и преобразований расписания в расписание при отсутствии ограничений на сроки завершения работ в несколько десятков раз меньше размерности решаемой задачи. Получение допустимых расписаний выполнения работ достигалось за полиномиальное время при числе преобразований расписаний, допускающих разрывы в выполнении работ, равном 5—15.
ЗАКЛЮЧЕНИЕ
Построение допустимых и оптимальных расписаний, допускающих разрывы во времени выполнения работ, осуществляется предложенными алгоритмами за полиномиальное время. Факт несовместности системы ограничений и определение «узких мест», требующих расширения временных ресурсов выполнения отдельных работ, устанавливается на первых шагах алгоритмов.
Эффективность решения задач построения оптимальных расписаний без учета ограничений на сроки завершения выполнения работ с помощью предложенных алгоритмов сравнима с эффективностью известных ранее алгоритмов [1].
Предложенные алгоритмы могут успешно применяться в алгоритмах точного и приближенного решения ]оЪ-8Иор-ргоЪ1еш.
ЛИТЕРАТУРА
1.
Carlier J. The one-machine sequencing problem. — European
Journal of Operational Research. — 1982. — N 11. — P. 42—47. Lenstra J.K., Rinnooy Kan A.H.G., Brucker P. Complexity of machine scheduling problema. — Annals of Diskrete Mathematics. — 1977. — N 1. — P. 343—362. Domschke W., Scholl A., Voß S. Produktionsplanung. Ablauforganisatorische Aspekte. — Berlin, Heidelberg: Springer Verlag. — 2005. — 456 p.
Brucker P. Scheduling Algorithms. — Berlin, Heidelberg und New York: Springer-Verlag, 1998.
5. Лазарев A.A., Графов Е.Р. Теория расписаний. Минимизация суммарного запаздывания для одного прибора. — М.: ВЦ им. А.А. Дородницина РАН, 2004. — 129 с. Зак Ю.А. Прикладные задачи теории расписаний и маршрутизации перевозок. — М.: URSS, 2012. — 394 с. Зак Ю.А. Построение допустимых и оптимальных расписаний выполнения работ на одной машине // Кибернетика и системный анализ. — 2012. — № 1. — С. 62—82.
2.
3.
4.
6.
7.
Статья представлена к публикации членом редколлегии В.Н. Бурковым.
Зак Юрий Александрович — д-р техн. наук, науч. консультант, г. Аахен, Германия, ®+49 (0) 241/543255, И [email protected], http\\www.optmorum.de.