ЧАСТЬ 1
МАТЕМАТИЧЕСКИЕ ОСНОВЫ ПЛАНИРОВАНИЯ И ПРИНЯТИЯ РЕШЕНИЙ
Глава 1
МИНИМИЗАЦИЯ СУММАРНОГО ЗАПАЗДЫВАНИЯ
ВЫПОЛНЕНИЯ ЗАДАНИЙ ОДНИМ ПРИБОРОМ
Введение
Труднорешаемая задача комбинаторной оптимизации «Минимизация суммарного запаздывания при выполнении независимых заданий на одном приборе» (МСЗ) формулируется следующим образом.
Предположим, что задано множество независимых заданий J = { j1 ,
jn },
j2 ,
...,
каждое из которых состоит из одной операции. Для каждого задания j из-
вестны длительность выполнения
lj
и директивный срок выполнения
ния поступают в систему одновременно в момент времени
a j  0, j  1, n .
dj.
Зада-
Прерыва-
ния не допускаются. Необходимо построить расписание выполнения заданий
для одного прибора, минимизирующее суммарное опоздание при выполнении
заданий:
f 
 max0,C j  d j  ,
n
j 1
где Cj – момент завершения выполнения задания j.
Обзор известных методов решения этой задачи приведен в [190].
Согласно Ду и Люнгу [109], задача является NP-сложной. Эммонс [110] разработал правила доминантности, которые были применены в алгоритмах ветвей
и границ [88, 114, 83], так же как и в алгоритмах динамического программирования [88, 99, 100, 185, 188]. Алгоритм динамического программирования
Шрейга и Бейкера [185] находится в категории второго поколения, так как он
решает задачи с количеством заданий до 50-ти для 1 
lk
 10. Лоулер [149] об-
наружил, что задача может быть декомпозирована на подзадачи, если определить позицию задания с наибольшим временем выполнения в оптимальной последовательности. Затем он представил правило для уменьшения списка возможных позиций. Этот список в дальнейшем укорачивается правилами Поттса и
16
Минимизация суммарного запаздывания при выполнении независимых заданий
Ван Вассенгова [99] и Шварца [189]. Последние алгоритмы третьего поколения
Поттса и Ван Вассенгова [99, 100] комбинируют результат Лоулера [149] – сначала разбить задачу на подзадачи допустимой размерности, а затем решить каждую подзадачу динамическим алгоритмом Шрейга и Бейкера [185]. Они были
способны решить задачи с количеством заданий до 100 при 1 
lk
 100. Поттс и
Ван Вассенгов [100, с.413] указывают, что для решения задач с более чем 100
заданиями необходим новый подход. Для решения данной задачи созданы конструктивные и декомпозиционные эвристики; наиболее известные из них исследуются в [106], где показано, что все они представляют очень плохие нижние
границы коэффициентов аппроксимации: их нижние границы по меньшей мере линейно зависят от размерности задачи. Конструктивные методы используют правила диспетчирования для построения решений с помощью фиксирования позиции одного из заданий на каждом шаге. Они имеют высокое быстродействие, но качество решений оставляет желать лучшего. Перестановочные методы начинают процесс с некоторого начального решения и итеративно пытаются улучшить текущее решение с помощью локальных изменений. Перестановки продолжаются, пока не получено решение, которое не может быть улучшено, являющееся локальным минимумом. Для улучшения работы алгоритмов
локального поиска используются мета-эвристики, такие, как табу-поиск, моделируемый обжиг, генетические алгоритмы, оптимизация колонии муравьев. В
статье [190] рассматривается алгоритм четвертого поколения, который эффективно решает задачи с количеством заданий до 150. Самый современный точный метод Шварца, Гроссо и Кросе [192] может решать задачи с размерностью
до 500 заданий.
В данной главе предложен эффективный точный ПДС-алгоритм решения
исследуемой задачи, обладающий следующими свойствами. В процессе исследования теоретических свойств задачи МСЗ:
а) найдены логико-аналитические условия (p-условия), выполнение которых
в процессе решения ПДС-алгоритмом произвольной индивидуальной задачи
данного класса приводит к получению оптимального решения полиномиальной
вычислительной процедурой заранее известной сложности;
17
Глава 1
б) если в процессе решения индивидуальной задачи выполняются теоретически обоснованные логико-аналитические условия (d-условия), то она разбивается (декомпозируется) на подзадачи меньшей размерности.
В параграфе 1.7 «Статистические исследования ПДС-алгоритма решения задачи» приведены результаты решения разработанным ПДС-алгоритмом тестовых задач размерности до 1000 заданий. Результаты решения известных задач
размерности до 500 заданий сравнивались с результатами, приведенными в [23].
Исследования
показали
высокую
эффективность
разработанного
ПДС-
алгоритма.
Задача МСЗ находит широкое применение при разработке систем планирования производства, управления проектами, управления строительством и в других
областях. В частности, алгоритм решения задачи использован в трехуровневой
иерархической модели планирования и управления сложными системами, имеющими сетевое представление технологических процессов и ограниченные ресурсы (глава 8). Результаты теоретических исследований и свойства ПДС-алгоритма
решения задачи МСЗ могут быть использованы при построении ПДС-алгоритмов
для решения задач «Минимизация суммарного взвешенного запаздывания при
выполнении независимых заданий на одном приборе» (МСВЗ) и «Минимизация
суммарного опережения и запаздывания относительно директивных сроков при
выполнении независимых задач одним прибором» (О/З).
1.1 Основные теоретические положения
Введем следующие обозначения и определения [54].
Пусть j и ji обозначает номер работы в соответствии с индексацией, заданной
функционалом;
j[g ]
– номер работы, стоящей в допустимом расписании на позиции g.
Определение 1.1. Резервом времени
r j[ g ]  d j[ g ]  C j[ g ]
rj[g ]
задания
j[g ]
называется величина
> 0.
Определение 1.2. Перестановкой называется процедура переноса задания
j[g ]
на позицию k (k > g) и, одновременно, заданий, занимающих позиции g + 1, g +
2,..., k – 1, k на позиции g, g + 1,..., k – 2, k – 1, соответственно.
18
Минимизация суммарного запаздывания при выполнении независимых заданий
Определение 1.3. Интервалом перестановки задания j[g ] на позицию k в последовательности  называется интервал, определяемый суммой длительностей
заданий, занимающих в этой последовательности позиции g+1, g+2,..., k–1, k.
Определение 1.4. Встраиванием называется процедура переноса задания
j[g ]
на позицию p (g > p) и, одновременно, заданий p, p + 1,..., g – 2, g – 1 на позиции
p + 1, р + 2, ..., g – 1, g, соответственно.
Определение 1.5. Интервалом встраивания
I j[g ]
задания
j[g ]
на позицию p
(g > p) в последовательности  называется интервал, определяемый суммой длительностей заданий, занимающих в этой последовательности позиции p,
p+1,...g–1, где p определяется из условия
g 1

i  p 1
l j[ i ]  C j[ g ]  d j[ g ] 
g 1
l j
i p
(1.1)
[i ]
Если же условие (1.1) не выполняется ни для одной позиции, то p = 1. Таким
образом, опоздание по заданию j на позиции p должно быть равно нулю или минимально.
Определение 1.6. Задание
j[g ]
называется запаздывающим в последователь-
ности , если для него выполняется условие
Определение 1.7. Последовательностью
d j[ g ]  C j[ g ] .
(сигма упорядоченная) называ-
 уп
ется последовательность заданий множества J,
дочены по неубыванию длительностей
lj ,
т. е.
j  1, n ,
в которой задания упоря-
j, i, j  i : l j  li ,
а при l j  li , d j  di .
Справедливы следующие утверждения [54].
Утверждение 1.1. Если в последовательности
 уп
запаздывающим заданиям
не предшествуют задания с резервом времени, то не существует переносов
(встраиваний и перестановок) заданий, приводящих к улучшению целевой
функции.
Доказательство. Пусть в последовательности
позициях i = 1, s , выполняется
i=
s 1, n ,
выполняется
C j[ i ]  d j[ i ]  0 ,
C j[ i ]  d j[ i ]  0 .
 уп
для заданий, стоящих на
а для заданий, занимающих позиции
Очевидно, что переносы, которые могли бы
19
Глава 1
привести к уменьшению целевой функции, возможны только для заданий, занимающих позиции i = 1, s .
Докажем, что не существует перестановок, приводящих к уменьшению f.
Пусть в последовательности  позиции
дания
j[l ]
l, g 1, s, l  g .
Выполним перестановку за-
на позицию [g]. Значение целевой функции на интервале
l, g
до пере-
становки равно
g

f   C j[ i ]  d j[ i ]
i l
.
После перестановки с учетом предположения, что задания, занимавшие позиции l+1, l+2,..., g–1, g, перестали запаздывать (т. е. пусть до перестановки выполнялось
C j[ i ]  d j[ i ]  l j[ l ] , i  l  1, g ):
f   C j[ l ] 
где
C j[l ] –
C j[l ] 
g

i  l 1
l j[ i ]  d j[ l ]
момент окончания выполнения задания
,
j[l ]
до перестановки;
g
 l j[i ] – момент окончания выполнения заданий
i  l 1
Необходимо доказать, что
g
i  l 1
в силу того, что
C
j[ i ]
после перестановки.
f  f   0:
f  f   C j[ l ]  d j[ l ] 
= 
j[l ]
 C
g
i  l 1

 d j[ i ] 
j[ i ]

g


 d j[ i ]   C j[ l ]   l j[ i ]  d j[ l ]  =
i  l 1


g

i  l 1
g
l j[ i ]

i l 1
l
j[ l ]
 l j[ i ]
0
l j[l ]  l j[i ] , i  l 1, g .
Докажем, что не существует встраиваний, приводящих к увеличению f. Значение целевой функции до встраивания равно
f 
 C j
g
i p
После встраивания задания
ивания задание
j[g ]
 d j[ i ]
 , g, p 1, s .
на позицию p с учетом того, что после встра-
перестанет запаздывать, т. е.
вой функции составляет
20
j[g ]
[i ]
C j[ g ]  d j[ g ] 
g 1
 l j , значение целе-
i p
[i ]
Минимизация суммарного запаздывания при выполнении независимых заданий
f
 C j
g 1
[i ]
i p
,
 l j[ g ]  d j[ i ]
где C j[i ] – момент окончания выполнения заданий
встраивания задания
заданий
j[i ]
j[g ] i, i  p, g 1 ; C j[i ]  l j[ g ] –
j[i ]
до выполнения процедуры
момент окончания выполнения
после выполнения процедуры встраивания задания
Необходимо доказать, что
f  f 0:
 

g 1
g 1
f  f   C j[ g ]  d j[ g ]   C j[ i ]  d j[ i ]   C j[ i ]  l j[ g ]  d j[ i ]
i p
i p
  l j
g 1
i p
в силу того, что
C j[ g ]  d j[ g ] 
g 1
l j ,
[i ]
i p
j[g ] .
[i ]
 l j[ g ]

0
l j[ g ]  l j[i ] i  p, g 1 .
Утверждение 1.2. Встраивание запаздывающего задания
на позицию
j[g ]
f < p не может привести к улучшению целевой функции.
Доказательство. В соответствии с определением 1.5, позиция p определяется как позиция, на которой опоздание по заданию
Встраивание задания
j[g ]
j[g ]
становится равным нулю.
на любую позицию f < p приводит к увеличению его
резерва и перемещает задания, стоящие на позициях f, f+1,..., p–1 на позиции
f+1, f+2,..., p. Такое перемещение приводит к увеличению целевой функции, если для какого-либо задания на
1) для задания
f , p 1
j[i ], i  f , p 1
выполняется хотя бы одно из условий:
выполняется
C j[ i ]  d j[ i ] ,
т. е. задание
j[i ]
является
запаздывающим, и в результате встраивания опоздание по нему увеличивается
на величину
l j[g ] ;
2) для задания
j[i ]
j[i ], i  f , p 1
до встраивания задания
j[g ]
нет запаздывать на величину
выполняется
C j[ i ]  d j[ i ]
и
d j[i ]  C j[i ]  l j[ g ]
, т. е. задание
не запаздывало, но в результате встраивания ста-
C j[ i ]  d j[ i ]  l j[ g ]
Если ни для одного из заданий
.
j[i ], i  f , p 1
не выполняется ни одно из пере-
численных условий, то целевая функция не ухудшается, но и не может быть
21
улучшена в результате встраивания задания
дание на позиции p по заданию
j[g ]
Глава 1
на позицию f < p, так как опоз-
j[g ]
равно нулю.
Утверждение 1.3. Если в последовательности
дания
j[g ]
существует предшествующее задание
 уп
для запаздывающего за-
j[k ]
такое, что выполняются
условия


d j[ k ]  C j[ g ]  l j[ g ] , min l j[ k ] , C j[ g ]  d j[ g ]  C j[ g ]  d j[ k ]
то перестановка задания
j[k ]
,
на позицию g приводит к уменьшению целевой
функции.
Доказательство. Для доказательства утверждения выведем условия перестановки, при выполнении которых уменьшается целевая функция, т. е.

g
f   max 0, C j[ i ]  d j[ i ]
i k
После перестановки



 max0, C j
g
[i ]
i  k 1

–


f  f    max 0, C j[ i ]  d j[ i ]  C j[ g ]  d j[ k ]
i k
=  C j
[g]
 d j[ k ]
Пусть все задания
+
.
на позицию g имеем
j[k ]
f   max 0, C j[ g ]  d j[ k ] 
g
f  f 0:
g

i  k 1
max 0, C j[ i ]  d j[ i ] 
i = k  1, g  1
g

i  k 1
g

i  k 1
 l j[ k ]  d j[ i ]
.

=

.
max 0, C j[ i ]  l j[ k ]  d j[ i ]
max 0, C j[ i ]  l j[ k ]  d j[ i ]
не запаздывают до переноса, т. е.
C j[ i ]  d j[ i ]  0 .
Тогда

 


f  f    C j[ g ]  d j[ k ]  C j[ g ]  d j[ g ]  max 0, C j[ g ]  l j[ k ]  d j[ g ]
=



=

 C j[ g ]  d j[ k ]  min l j[ k ] , C j[ g ]  d j[ g ]  0 .
Таким образом, если выполняется условие


min l j[ k ] , C j[ g ]  D j[ g ]  C j[ g ]  D j[ k ] ,
то при перестановке задания
функции.
22
j[k ]
на позицию g происходит уменьшение целевой
Минимизация суммарного запаздывания при выполнении независимых заданий
На основании доказанных утверждений сформулируем необходимые условия для перемещения запаздывающих заданий на более ранние позиции, при котором значение функционала уменьшается за счет использования существующих резервов.
Утверждение 1.4. Пусть в последовательности
ющее,
ее
j[i ], i  1, p 1 rj[i ]  0 ,
 уп1 .
Задание
где p – позиция встраивания задания
в последовательности
j[g ]
задание
 уп
 уп1
j[g ]
запаздыва-
j[g ] .
Обозначим
в результате выполнения встраи-
вания ( I j[g ] = p, g 1 ) может занять более раннюю позицию, что приведет к улучшению целевой функции только в том случае, если в последовательности
хотя бы у одного из заданий на интервале встраивания
 уп1
есть резерв времени,
I j[g ]
больший нуля.
Доказательство. Для доказательства данного утверждения выведем условия, при выполнении которых в результате процедуры встраивания значение целевой функции уменьшается, т. е. выполняется
Пусть для задания
ний i 
I j[g ]
имеем
j[z ]
f  f > 0.
(p  z < g) выполняется
d j[ i ]  C j[ i ] .
d j[ z ]  C j[ z ] ,
для остальных зада-
Согласно утверждениям 1.1 и 1.2, встраивание, ко-
торое может улучшить f, должно быть выполнено на позицию z. Встроим задание
j[g ]
на позицию z:
f 
 C j
z 1
i p
[i ]

 d j[ i ] 
g

i  z 1
C
j[ i ]
 d j[ i ]
;

g 1

 z 1
f   max 0, C j[ g ]   l j[ i ]  d j[ g ]    C j[ i ]  d j[ i ]
iz

 i p
g 1
+ 
i  z 1
f  f
 C
z 1
i p
j[ i ]
C
j[ i ]



+
 l j[ g ]  d j[ i ]  max 0, C j[ z ]  l j[ g ]  d j[ z ]
 d j[ i ] 
 C
g
i  z 1
j[ i ]

z 1


 d j[ i ]   C j[ i ]  d j[ i ] 

i p
;
g 1

i  z 1
C
j[ i ]
 d j[ i ]
–

g 1


 g  z 1l j[ g ]  max 0,C j[ z ]  l j[ g ]  d j[ z ]  max 0, C j[ g ]   l j[ i ]  d j[ g ]  
iz




g 1


 g  z  1 l j[ g ]  C j[ g ]  d j[ g ]  max 0, C j[ g ]   l j[ i ]  d j[ g ]  –
iz


23
Глава 1

 max 0,C j[ z ]  l j[ g ]  d j[ z ]
=
=

g 1


min  C j[ g ]  d j[ g ] ,  l j[ i ]   g  z 1l j[ g ]  max 0, l j[ g ]  rj[z ]
iz


.
(1.2)
Заметим, что если существует несколько заданий z k  Z с резервами времени
на
p, g 1 ,
то выражение (1.2) при встраивании задания
j[g ]
на одну из позиций z k
примет вид


g 1

 g 1
f  f   min  C j[ g ]  d j[ g ] ,  l j[ i ]    max 0, min l j[ g ]  rj[i ] , l j[ g ]

 i z
i  zk
k


,
(1.3)
где:
g 1


min  C j[ g ]  d j[ g ] ,  l j[ i ]  –
iz


уменьшение опоздания по заданию
j[g ]
в результате
встраивания на позицию z. Определяется величиной опоздания и длиной интервала встраивания и не зависит от длительности выполнения самого задания;
 max 0, min l j[ g ]  rj[i ] , l j[ g ]  – увеличение опоздания заданий на интервале встраg 1
i z
ивания в результате выполнения процедуры встраивания задания
j[g ]
на пози-
цию z. Определяется наличием и величиной резерва на этом интервале.
Следовательно, улучшение целевой функции возможно только в том случае,
если на интервале встраивания
I j[g ]
есть резерв, больший нуля. В случае отсут-
ствия резервов выражение (1.3) принимает отрицательное значение, так как длительность выполнения задания
j[g ]
больше длительности заданий на интервале
встраивания.
Пусть в последовательности
ним следуют задания
няется:
d j[ z ]  C j[ z ] .
 уп1 j[g ]
j[i ] , i  g  1, n , d j[ i ]  C j[ i ]  0 .
Для остальных заданий
последовательность
– первое запаздывающее задание. За
j[k ]
Для задания
 I j[g ] –
p < z < g, выпол-
d j[ k ]  C j[ k ] .
Обозначим эту
 уп2 .
Утверждение 1.5. Если в последовательности
встраивания задания
24
j[z ] ,
j[g ]
 уп2
в результате процедуры
на позицию z значение функционала уменьшилось, и
Минимизация суммарного запаздывания при выполнении независимых заданий
для всех j[k ]  I j[g ] справедливо rj[k ]  0 , то полученная последовательность оптимальна.
Доказательство. Для всех
тельности
j[g ]
 уп1 .
Для всех
j[i ] , i  g  1, n ,
выполняется
на позицию z имеем  j[k ]  I j[g ] значение
задания
j[i ] , i  g  1, n ,
по определению последова-
j[s ] , s  1, p 1 , rj[s ]  0
rj[k ]  0 ,
l j[i ]  l j[ g ] .
После встраивания
следовательно, встраивание
на позицию z приведет, в соответствии с (1.3), к увеличе-
нию потерь по заданиям, смещенным на более поздние позиции в результате
выполнения процедуры встраивания, и, следовательно, к ухудшению значения
функционала.
Утверждение 1.6. Если в последовательности
сти встраивания задания
j[g ]
 уп2
при проверке возможно-
на позицию z значение функционала ухудшится, то
не существует перестановок и встраиваний, приводящих к уменьшению значения функционала, и последовательность
 уп2
оптимальна.
Доказательство. В результате выполнения встраивания задания
зицию z получаем
f  f0.
на по-
Следовательно, существующих резервов на позиции
z недостаточно для выполнения встраивания задания
l j[i ]  l j[ g ] .
j[g ]
j[g ] .
Но  j[i ] , i  g 1, n ,
Следовательно, не существует перестановок и встраиваний, приводя-
щих к уменьшению значения функционала.
Утверждение 1.7. Если в последовательности
вающих заданий
j[g ]
 уп
нет предшествующих заданий
ни для одного из запазды-
j[i ] , i  1, g 1 ,
для которых вы-
полняется
d j[ i ]  C j[ i ]  0 , d j[ i ]  d j[ g ] ,
то не существует перестановок и встраиваний, приводящих к улучшению целевой функции.
Доказательство. Встраивание. Встроим задание
j[g ]
на позицию p (см.
определение 1.5). Учитывая условие утверждения, что не существует предшествующих заданий
j[s ] ,
для которых
d j[ s ]  C j[ s ]  0
и
d j[ s ]  d j[ g ] ,
получаем, что
25
встраивание
j[i ]
j[g ]
Глава 1
произойдет на интервале p, g  1 , на котором для любого задания
выполняется
C j[ i ]  d j[ i ]  0 ,
Пусть в выражении (1.4)
C j[ i ]  d j[ i ]  0 ,
i = p, g  1 .
i = p, g  1 . Тогда
f  C j[ g ]  d j[ g ]
f
 C j
g 1
i p

g 1
f  f   C j[ g ]  d j[ g ]   C j[ i ]  l j[ g ]  d j[ i ]
i p
Доказательство для случая
[i ]
,
,
 l j[ g ]  d j[ i ]
   l
g 1
i p
C j[ i ]  d j[ i ] >
(1.4)
j[i ]

 l j[ g ]  0 ,
так как
l j[i ]  l j[ g ] i  g .
0 – аналогичное.
Перестановки. Возможны перестановки задания с нулевым резервом времени и задания с ненулевым резервом. Рассмотрим все возможные случаи.
1. Пусть
ет, т. е.
и задание
d j[ s ]  C j[ s ]  0 , d j[ s ]  d j[ g ]
C j[ g ]  l j[ s ]  d j[ g ] .
В этом случае
f  C j[ g ]  d j[ g ]

после перестановки запаздыва-
j[g ]
,
 

f   C j[ g ]  l j[ s ]  d j[ g ]  C j[ g ]  d j[ s ] ,




f  f   C j[ g ]  d j[ g ]  C j[ g ]  l j[ s ]  d j[ g ]  C j[ g ]  d j[ s ] 
=lj
[s]
2. Пусть
вает, т. е.

 C j[ g ]  d j[ s ]
  l C
j[ s ]
d j[ s ]  C j[ s ]  0 , d j[ s ]  d j[ g ]
C j[ g ]  d j[ g ]  l j[ s ] .
j[ g ]
 d j[ g ]
  0, так как C
и задание
j[g ]
j[ g ]
 d j[ g ]  l j[ s ] .
после перестановки не запазды-
Тогда
f   C j[ g ]  d j[ s ] ,


f  f   C j[ g ]  d j[ g ]  C j[ g ]  d j[ s ]
3. Пусть
d j[ s ]  C j[ s ]  0 , d j[ s ]  d j[ g ]
  0, так как d
и задание
j[g ]
j[ s ]
 d j[ g ]
.
после перестановки запаздыва-
ет, тогда


f  f   C j[ g ]  d j[ g ]  C j[ g ]  l j[ s ]  d j[ g ] 
26
g

i  s 1
l j[ i ]
=
l j[s ] –
g
 l j[i ] =
i  s 1
Минимизация суммарного запаздывания при выполнении независимых заданий
= l j[s ]
4. Пусть
вает, т. е.
 l j[ g ] 
g 1
 l j[i ] <
i  s 1
l j[s ]  l j[g ]
и задание
d j[ s ]  C j[ s ]  0 , d j[ s ]  d j[ g ]
C j[ g ]  d j[ g ]  l j[ s ] .
f  f   C j[ g ]  d j[ g ] 
g

i  s 1
 0, так как
j[g ]
l j[s ]  l j[ g ] , s  g .
после перестановки не запазды-
В этом случае
l j[ i ]  l j[ s ] 
g
 l j[i ]  0
i  s 1
аналогично п. 3.
Следовательно, так как для запаздывающего задания
j[g ]
нет предшествую-
щих заданий, имеющих резервы на интервале переноса задания
j[g ] ,
то не суще-
ствует перестановок, приводящих к уменьшению значения функционала.
Следствие 1. Если в последовательности
паздывающего задания
ствуют, то задание
j[g ]
j[g ] ,
 уп
на интервале встраивания за-
определяемом позициями
p, g  1 ,
резервы отсут-
сможет занять более раннюю позицию, что приведет к
уменьшению значения функционала только в том случае, если в последовательности
 уп
на интервале
d j[ k ]  C j[ k ]  0 , d j[ k ]  d j[ g ] .
j[g ]
1, p  1
есть задания
j[k ] ,
для которых справедливо:
В этом случае резервы на интервале встраивания задания
могут быть образованы в результате перестановок заданий
j[k ]
на более
поздние позиции.
Следствие 2. Если в последовательности
 уп
для каждого задания
надлежащего множеству R заданий с резервами, и каждого задания
j[g ] ,
лежащего множеству Y запаздывающих заданий, выполняется
d j[ k ]  d j[ g ] ,
j[k ] ,
при-
принадl j[k ]  l j[ g ] ,
то не существует перестановок и встраиваний, приводящих к умень-
шению значения функционала.
Утверждение 1.8. Пусть в последовательности
дания
j[g ]
составляет
ивания для задания
I j[g ] = p, g  1 .
j[g ]
 уп интервал
встраивания за-
Дополнительные резервы на интервале встра-
могут образовать только те задания j[i ] , i1, p  1 , для ко-
торых справедливо:
d j[ i ]  d j[ g ] , d j[ i ]  C j[ i ] , d j[ i ]  C j[ p1] .
(1.5)
27
Доказательство. Для всех заданий j[i ] , i1, p  1 , справедливо l j[i ]
Глава 1
 l j[ k ] , k I j[g ] .
При невыполнении условий (1.5) задание j[i ] на позиции p будет запаздывать.
Следовательно, в соответствии с утверждением 1.1 перемещение его на интервал встраивания задания j[i ] приведет к увеличению значения функционала.
Утверждение 1.9. Пусть в последовательности
вы претендуют задания
j[g ]
 уп
на существующие резер-
и j[k ] , l j[ g ]  l j[ k ] , max r(  уп ) < l j[ g ] . В этом случае за-
дание j[k ] может претендовать на резервы, только если d j[ k ] < d j[ g ] .
Доказательство. В соответствии с выражением (1.3) при выполнении процедуры встраивания запаздывающего задания
уменьшение опоздания по заданию
j[g ]
j[g ]
на более раннюю позицию
определяется величиной опоздания и
длиной интервала встраивания и не зависит от длительности выполнения самого
задания. Увеличение же опоздания по заданиям, смещенным на более поздние
позиции в результате встраивания, определяется наличием резерва на интервале
встраивания и зависит от длительности встраиваемого задания. При встраивании на один и тот же интервал чем больше длительность встраиваемого задания,
тем возможно большее суммарное опоздание заданий на интервале встраивания,
и только при условии, что у заданий большей длительности директивный срок
меньше, возможно уменьшение значения функционала.
Утверждение 1.10. Пусть в последовательности
 уп
j[g ]
– запаздывающее
задание. Уменьшение значения функционала при перемещении
j[g ]
на более
ранние позиции в результате перестановок и встраиваний возможно только при
выполнении хотя бы одного из следующих условий:
1.  j[i ] , p  i  g | rj[i ] > 0, d j[i ] > d j[ g ] . На интервале встраивания задания
есть задания
j[i ]
j[g ]
с резервами времени, для которых d j[i ] > d j[ g ] . p – позиция, на ко-
торой запаздывание по заданию
j[g ]
минимально (или равно нулю).
2.  j[q ] , q < g, d j[ q ] > C j[ g ] . В последовательности
 уп
на позиции q, предше-
ствующей позиции g, есть задание с резервом времени, перестановка которого
28
Минимизация суммарного запаздывания при выполнении независимых заданий
после задания j[g ] уменьшает опоздание по заданию j[g ] . Задание j[q ] остается
незапаздывающим.
3.  j[q ] , q < g, C j[ g ]  l j[ g ] < d j[ q ] < C j[g ] . Существует незапаздывающее задание
j[q ] ,
директивный срок которого больше момента начала выполнения задания
j[g ] ,
но меньше момента окончания задания

j[g ] .
При этом выполняется:


min C j[ g ]  d j[ g ] , l j[ q ]  C j[ g ]  d j[ q ]  0 .
Следовательно, перестановка задания
j[q ]
после задания
j[g ]
приведет к
уменьшению значения функционала за счет использования резерва задания
4. i | p  i  g | r j[ i ]  0, но  j[ k ] , k < p | d j > d j[ g ] ,
[k ]
тервале перестановки задания
j[ k ] ,
j[ g ]
r j[ k ]
j[q ] .
> 0, d j[ k ]  C j p 1 . На ин-
резервы отсутствуют, но существует задание
k < p, директивный срок которого больше d j[ g ] и резерв больше нуля.
Выполнение одного из условий 1–4 означает, что на интервале встраивания
задания
j[ g ]
существуют резервы (условия 1–3) или они будут образованы в ре-
зультате перестановок (условие 4). При невыполнении условия 4 перестановка
заданий, занимающих позиции
1, p  1 ,
на интервал встраивания задания
j[ g ] ,
при-
ведет к запаздыванию этих заданий, и так как они имеют меньшую длительность, чем
j[ g ] ,
то встраивание задания
приведет к увеличению значения
j[ g ]
функционала. Следовательно, если не выполняется ни одно из условий 1–4, то
не существует встраиваний задания
j[ g ]
на более ранние позиции, приводящих к
улучшению целевой функции.
Следствие. Пусть в последовательности
nç
> 1. Тогда, если в последовательности
заданий
j[ g ]
 уп
 уп
нет предшествующих заданий
число запаздывающих заданий
ни для одного из запаздывающих
j[ s ] ,
s < g, для которых выполняется
хотя бы одно из условий 1–4, то последовательности
 уп
отвечает оптимальное
значение функционала.
29
Пусть в последовательности
 уп =
Глава 1
, j[ g ] } запаздывающее задание j[ g ]
{ j[1] , j[2] ,
в результате встраивания заняло позицию p = m. Пометим его
j[*m ] ,
а полученную
последовательность  ( j[ g ] ) .
Утверждение 1.11. Запаздывающее задание
j[ k ] ,
k=
m  1,g ,
в последователь-
ности  ( j[ g ] ) , может быть встроено на более раннюю позицию, что приведет к
улучшению целевой функции, только в том случае, если хотя бы у одного предшествующего задания есть резерв времени, либо (в случае отсутствия резервов)
только в результате перестановки
j[*m ]
после задания
j[ k ] .
Доказательство. Доказательство в случае наличия резервов приведено в
утверждениях 1.4 и 1.10. Рассмотрим случай, когда в последовательности  ( j[ g ] )
нет резервов.
Очевидно, что среди заданий на интервале
возможна только для задания
j[*m ] ,
1,k  1
перестановка на позицию k
так как i = 1,k  1 , d j[ i ] – C j[ i ]  0, а для всех не-
помеченных заданий выполняется:
lji  ljk

 
, i = 1,k  1 .
Выполним перестановку на позицию k задания
j[*m ] .
Значение целевой функции до перестановки:
 max0, C j   d j   =  C j   d j   .
k
f 
k
i
i m
После переноса
*
j[m
]
 
Cjm
 
k

i m1
lji  d j

 m
k


i m1
f  f


 


m

j[*m ]
 
,
до перестановки.
может быть больше нуля:
f  f   Cj m  d j m 
– C j
i
max 0, C j i  d j i  l j m
– момент окончания выполнения задания
Докажем, что

k

i  m 1
lji  d j
= C j
30
i
i m
на позицию k:
f   Cj m 
где
i

m
 m
 

k
i m1
C
ji 
dji

–



max 0, C j i  d j i  l j m  =


 
i  m 1

k

 d j m Cj m 
 

 
k

i  m1
lji  d jm

 
+
Минимизация суммарного запаздывания при выполнении независимых заданий


k
C  d  max 0, C  d  l

ji
ji 
ji
ji
j m  =


i m1 
+ 
k


 min l , C  d

j m
ji 
ji   l ji   .


= 
i  m1 
(1.6)
Проанализируем выражение (1.6). Разобьем сумму (1.6) на две части.
Пусть P – множество заданий на
m+1,k ,
которые после перестановки
j[*m ]
пе-
рестали запаздывать, следовательно,
P:
Q – множество заданий на
l
j m
m+1,k ,
 Cji  d ji


.
которые после перестановки
j[*m ]
остались
запаздывающими и, следовательно,
Q:
l
j m
 Cji  d ji


.
Выражение (1.6) примет вид

j[ i ] P
C
j i 

 d ji   l ji  
Так как справедливо  j[i ] , i = m+1,k ,

j[ i ] Q
l j[i ]  l
l
j m 
j[*m ]
 l j i 
.
(1.7)
, то полученное значение выра-
жения (1.7) может быть больше нуля и перестановка задания
*
j[m
]
на позицию k
может привести к уменьшению f.
Пример к утверждению 1.11.
Таблица 1.1 – Исходные данные для примера к утверждению 1.11
№ задания 1
2
3
4
5
6
7
25 30 45 50 67 71 80
lj
55 80 120 160 217 290 70
dj
lj – длительность выполнения задания j;
dj – директивный срок задания j.
В последующих таблицах fj = max(0; Cj – dj).
 уп –
последовательность, упорядоченная по неубыванию значений длитель-
ностей заданий j:
31
Глава 1
Таблица 1.2 – Последовательность  уп
№ п/п № задания lj
1
1
25
2
2
30
3
3
45
4
4
50
5
5
67
6
6
71
7
7
80
dj
55
80
120
160
217
290
70
Cj
25
55
100
150
217
288
368
fj
–
–
–
–
–
–
298
298
Последовательность 1 получена в результате итерации оптимизации для задания 7. Позиция встраивания задания 7 равна 1. На первой позиции находится
задание 1, для которого l1 < l7, d1 < d7. Следовательно, позиция встраивания задания 7 равна 2. Задание 7 помечается «*», все следующие за ним упорядочиваются по неубыванию длительностей.
Таблица 1.3 – Итерация 1
№ п/п № задания
1
1
2
7*
3
2
4
3
5
4
6
5
7
6
lj
25
80
30
45
50
67
71
dj
55
70
80
120
160
217
290
Cj
25
105
135
180
230
297
368
fj
–
35
55
60
70
80
78
378
Итерация оптимизации 2 для задания 2. Позиция встраивания задания 2 равна 2.
C2н =
80 – 30 = 50. На позиции 2 находится задание 7, помеченное «*», для
которого l7 > l2. Так как на предыдущих позициях нет незапаздывающих заданий
j[i], для которых d j[i ] > d j , то выполняется процедура освобождения резервов
[ 2]
заданием, помеченным «*».
32
Минимизация суммарного запаздывания при выполнении независимых заданий
Таблица 1.4 – Итерация 2
№ п/п № задания lj
dj
Cj
fj
1
1
25
55
25
–
2
2
30
80
55
–
**
3
7
80
70 135 65
4
3
45 120 180 60
5
4
50 160 230 70
6
5
67 217 297 80
7
6
71 290 368 78
353
Аналогичными процедурами оптимизация выполняется для заданий 3, 4, 5, 6.
Таблица 1.5 – Итерация 3
№ п/п № задания
1
1
2
2
3
3
4
7**
5
4
6
5
7
6
lj
25
30
45
80
50
67
71
dj
55
80
120
70
160
217
290
Cj
25
55
100
180
230
297
368
fj
–
–
–
110
70
80
78
338
Таблица 1.6 – Итерация 4
№ п/п № задания
1
1
2
2
3
3
4
4
5
7**
6
5
7
6
lj
25
30
45
50
80
67
71
dj
55
80
120
160
70
217
290
Cj
25
55
100
150
230
297
368
fj
–
–
–
–
160
80
78
318
Таблица 1.7 – Итерация 5
№ п/п № задания
1
1
2
2
3
3
4
4
5
5
6
7**
7
6
lj
25
30
45
50
67
80
71
dj
55
80
120
160
217
70
290
Cj
25
55
100
150
217
297
368
fj
–
–
–
–
–
227
78
305
33
Глава 1
Таблица 1.8 – Итерация 6
№ п/п № задания
1
1
2
2
3
3
4
4
5
5
6
6
7
7
lj
25
30
45
50
67
71
80
dj
55
80
120
160
217
290
70
Cj
25
55
100
150
217
288
368
fj
–
–
–
–
–
–
298
298 opt
Решение данного примера реализовано полиномиальной составляющей алгоритма.
Утверждение 1.12. Пусть в последовательности
( j[g ] )
– запаздывающие, и у всех предшествующих заданий
случае в оптимальной последовательности задания
позициях на интервале
j[l ]
j[i ] ,
задания
i =1, g ,
j[l ] ,
l = g+1, n ,
rj[i ]  0 .
В этом
останутся на занимаемых
g+1, n .
Справедливость этого утверждения основывается на том факте, что  j[l ] ,
l = g+1, n , выполняется
l jl   l jg  .
Резервы последовательности
 уп
(исходной по-
следовательности до встраивания задания j[g ] на позицию m) в последовательности ( j[g ] ) использованы заданием меньшей длительности j[g ] . Следовательно,
встраивание заданий j[l ] , l = g+1, n , на более ранние позиции приведет к увеличению потерь по заданиям, перемещаемым на более поздние позиции, и к ухудшению целевой функции.
Пример к утверждению 1.12.
Таблица 1.9 – Исходные данные для примера к утверждению 1.12
№ задания 1
2
3
4
5
6
7
25 30 45 50 67 71 80
lj
75 100 130 40 50 30 10
dj
lj – длительность выполнения задания j;
dj – директивный срок задания j
 уп –
последовательность, упорядоченная по неубыванию значений длитель-
ностей заданий j:
34
Минимизация суммарного запаздывания при выполнении независимых заданий
Таблица 1.10 – Последовательность  уп
№ п/п № задания lj
dj
Cj
fj
1
1
25
75
25
–
2
2
30 100 55
–
3
3
45 130 100 –
4
4
50
40 150 110
5
5
67
50 217 167
6
6
71
30 288 258
7
7
80
10 368 358
893
Последовательность 1 получена в результате итерации оптимизации для задания 4. Позиция встраивания задания 4 равна 1. Так как после выполнения итерации 1 резервы отсутствуют, то в соответствии с утверждением 1.12 получена
оптимальная последовательность:
Таблица 1.11 – Последовательность 1
№ п/п № задания lj
1
4*
50
2
1
25
3
2
30
4
3
45
5
5
67
6
6
71
7
7
80
dj
40
75
100
130
50
30
10
Cj
50
75
105
150
217
288
368
fj
10
–
5
20
167
258
358
818 opt
Трудоемкость выполнения равна О(n log n).
Определение 1.8. Процедурой свободной перестановки называется процедура перестановки задания
d j[ k ]  C j[ q 1] ,
j[k ]
на позицию q (k < q) такую, что
если хотя бы для одного задания на интервале
k  1, q
d j[ k ]  C j[ q ] ,
выполняется:
d j[ i ]  C j[ i ] , i  k  1, q .
Таким образом, свободная перестановка задания k выполняется на позицию
с максимальным номером, на которой задание k не будет запаздывать. Очевидно, что в результате выполнения всех свободных перестановок в последовательности
 уп
значение целевой функции уменьшается.
При выполнении одной свободной перестановки значение целевой функции
уменьшается на величину  min l j
iz
[k ]
, C j[ i ]  d j[ i ]
, где
35
Глава 1

Z  j[i ] C j[ i ]  d j[ i ] , i  k  1, q
.
Примечание к определению 1.8.
При выполнении нескольких свободных перестановок во избежание зацикливания начинать следует с задания, имеющего максимальный директивный срок, т. е.
просматривать незапаздывающие задания по убыванию их директивных сроков.
Определение 1.9. Последовательность заданий, полученную в результате выполнения всех свободных перестановок в последовательности
 уп ,
назовем
сп .
Утверждение 1.13. Утверждения 1.1, 1.2, 1.7, 1.8, 1.10 справедливы для последовательности
сп .
Доказательство. Выделим различия между последовательностями
 уп
и
сп
и покажем, что эти различия не нарушают доказательств приведенных выше
утверждений. При доказательстве утверждений 1.1, 1.2, 1.7, 1.8, 1.10 основными
приемами являлись перестановки и встраивания.
Для перестановок доказательства утверждений аналогичны, если вместо
использовать
сп ,
 уп
по причинам:
– все задания на интервале перестановки сдвигаются на более ранние позиции и, следовательно, их запаздывание уменьшается. При этом задания, нарушающие последовательность
 уп
(перенесенные в результате
свободных перестановок), имеют запаздывание, равное нулю, и поэтому
могут быть исключены из рассмотрения как в f, так и в f ' ;
– для запаздывающих заданий в последовательности
сп
упорядоченность
в соответствии с длительностями сохраняется и, следовательно, длительность задания, которое переставляется, меньше длительности любого из заданий на интервале перестановки.
Процедура встраивания для последовательности
встраивания для последовательности
задания в
сп
 уп ,
сп
аналогична процедуре
так как длительность встраиваемого
всегда больше или равна длительности любого из заданий на ин-
тервале встраивания, что обуславливает необходимость для выполнения процедуры встраивания наличия резервов у заданий, занимающих более ранние позиции.
36
Минимизация суммарного запаздывания при выполнении независимых заданий
Таким образом, утверждения 1.1, 1.2, 1.7, 1.8, 1.10 верны и для последовательности
сп .
На интервале встраивания в последовательности
сп
могут находиться зада-
ния, перенесенные в результате свободных перестановок и нарушающие упорядоченность в соответствии с длительностями. Поэтому все задания, следующие
за встраиваемым заданием, необходимо переупорядочить в соответствии с их
длительностями, и для запаздывающих заданий в этой последовательности в
свою очередь проверять возможность переноса на более ранние позиции за счет
резервов незапаздывающих заданий.
Таким образом, условие встраивания (1.3), справедливое для последовательности
 уп ,
в последовательности
сп
не выполняется.
Утверждение 1.14. Для последовательности
сп
не существует перестановок
и встраиваний, приводящих к улучшению целевой функции, если выполняется
хотя бы одно из условий:
а) d j
[i ]
б) d j
[i ]
в)
 C j[ i ]  0, i  1, n ;
 C j[ i ]  0, i  1, l , d j[ i ]  C j[ i ]  0, i  l  1, n ;
d j[ i ]  C j[ i ]  0, i  1, n ;
г) для каждого задания
(R), и каждого задания
(Y), выполняется:
j[g ] ,
j[k ] ,
принадлежащего множеству заданий с резервами
принадлежащего множеству запаздывающих заданий
d j[ k ]  d j[ g ] ,
l j[ k ]  l j[ g ] k 1, n , g  Y
.
Пункт (а) не требует доказательства, так как f = 0. Доказательство пунктов
(б)–(г) аналогично доказательству утверждений 1.1, 1.4 и 1.7.
Следствие. При выполнении хотя бы одного из условий, сформулированных
в утверждении 1.14, в последовательности
сп
достигается оптимальное значе-
ние функционала.
Пример к утверждению 1.14.
37
Глава 1
Таблица 1.12 – Исходные данные для примера к утверждению 1.14
№ задания 1
2
3
4
5
6
7
25 30 45 50 67 71 80
lj
375 192 50 110 120 130 120
dj
уп
 – последовательность, упорядоченная по неубыванию значений длительностей заданий j:
Таблица 1.13 – Последовательность  уп
№ п/п № задания lj
1
1
25
2
2
30
3
3
45
4
4
50
5
5
67
6
6
71
7
7
80
dj
375
192
50
110
120
130
120
Cj
25
55
100
150
217
288
368
fj
–
–
50
40
97
158
248
593
Последовательность 1 получена после свободных перестановок (заданий 1
и 2). Последовательность оптимальна, так как длительность и директивный срок
для каждого задания с резервами меньше длительности и директивного срока
каждого запаздывающего задания, занимающего более позднюю позицию.
Трудоемкость выполнения равна О(n log n).
Таблица 1.14 – Последовательность 1
№ п/п № задания lj
1
3
45
2
4
50
3
5
67
4
2
30
5
6
71
6
7
80
7
1
25
dj
50
110
120
192
130
120
375
Cj
45
95
162
192
263
343
368
fj
–
–
42
–
133
223
–
398 opt
Рассмотрим некоторые случаи, когда оптимальное решение достигается полиномиальной составляющей алгоритма.
Определение 1.10. Запаздывающее задание
j[g ]
в последовательности
сп
называется конкурирующим, если в этой последовательности найдется хотя бы
одно предшествующее задание
38
j[l ] ,
для которого выполняются условия
Минимизация суммарного запаздывания при выполнении независимых заданий
d j  d j и dj Cj  0 .
[l ]
[g]
[l ]
[l ]
Число итераций предлагаемого алгоритма определяется количеством конкурирующих заданий в последовательности
сп .
На каждой итерации определяется
возможность использования резервов времени предшествующих заданий очередным конкурирующим заданием последовательности
сп
и строится оптимальное
расписание рассматриваемой подпоследовательности. На первой итерации строится оптимальное расписание для заданий на интервале 1, g1 последовательности
сп ,
где j[ g ] – первое запаздывающее конкурирующее задание. На следующей
1
итерации рассматривается подпоследовательность заданий на интервале 1, g 2 , в
которой позиции 1, g1 занимает оптимальная подпоследовательность, полученная
на первой итерации; позиции g1  1, g 2 занимают задания, стоящие на этих позициях в последовательности
сп ; j[ g2 ]
задание в последовательности
– следующее запаздывающее конкурирующее
сп .
Пусть уже выполнена k–1 итерация и построено оптимальное расписание для
подпоследовательности заданий на интервале 1, gk 1 , где j[ g
задание в последовательности
сп .
– конкурирующее
Переходим к очередному конкурирующему
заданию j[ g ] , определенному в последовательности
k
вилам строим последовательность
k 1 ]
k ,
сп ,
и по аналогичным пра-
включающую задания на интервале 1, g k .
Проверяется возможность уменьшения функционала за счет использования заданием j[ g ] существующих резервов времени или резервов, полученных в резульk
тате перемещения на более поздние позиции заданий, ранее использовавших эти
резервы на предыдущих итерациях. На каждой итерации значение функционала
уменьшается или остается неизменным.
Введем следующие определения.
Определение 1.11. Текущей итерацией оптимизации называется итерация,
выполняемая для очередного конкурирующего задания, определенного в последовательности
сп .
Определение 1.12. Текущей подпоследовательностью
k
называется подпо-
следовательность, в которой выполняется текущая итерация оптимизации. Эта
39
подпоследовательность ограничена позициями 1, g k , где j[ g ]
k
рирующее запаздывающее задание в
сп ,
и получена из
сп
Глава 1
– очередное конку-
в результате выпол-
нения ряда перестановок и встраиваний на предыдущих итерациях.
В последовательности
k
звездочкой «*» обозначены задания, которые были
запаздывающими в последовательности
сп
и в результате выполнения встраива-
ний переместились на более ранние позиции, использовав резервы времени предшествующих заданий. Двумя звездочками «**» помечены задания, ранее помеченные «*», которые в результате последующих перестановок переместились на более
поздние позиции, освободив часть использованных резервов.
Необходимо различать конкурирующие запаздывающие задания, определенные в последовательности
сп ,
и задания, запаздывание которых относительно их
директивных сроков возникло в процессе выполнения процедур встраивания.
Определение 1.13. Задания j[i ] , для которых в последовательности
сп
вы-
полнялось d j  C j  0 , и которые в результате выполнения процедур встраива[i ]
[i ]
ния запаздывающих заданий на более ранние позиции в свою очередь стали запаздывающими, называются порожденными запаздывающими заданиями.
Используются следующие типы перестановок и встраиваний [134].
Перестановки (EFSR – extraction and forward-shifted reinsertion – извлечение
и повторная вставка со сдвигом вперед – определение 1.2):
а) заданий, для которых резерв времени больше нуля;
б) заданий, использовавших резервы в результате перестановок и встраиваний.
Перестановки осуществляются, если при их выполнении значение функционала уменьшается.
Встраивания (EBSR – extraction and backward-shifted reinsertion – извлечение
и повторная вставка со сдвигом назад – определение 1.4). Встраивание реализуется при:
а) наличии резервов на интервале встраивания;
б) образовании резервов на интервале встраивания в соответствии с условием 4, сформулированным в утверждении 1.10.
40
Минимизация суммарного запаздывания при выполнении независимых заданий
Правила выполнения перестановок и встраиваний в последовательности k
приведены ниже.
Пусть уже выполнена k–1 итерация. Переход к очередному конкурирующему заданию
ности
k .
j[g ]
определяет начало новой итерации k в текущей последователь-
В этой последовательности выполняется: l j[ g ]  l j[i ] , i = 1, g  1 . Следова-
тельно, нет заданий
j[l* ] ,
помеченных «*» («**»), для которых l j[i ] > l j[ g ] . На следу-
ющих итерациях, выполняемых для других конкурирующих заданий, этому заданию
j[g ]
и задание
могут предшествовать помеченные задания
j[g ] ,
j[l* ] ,
для которых
l j*  l j[ g ] ,
[l ]
если оно запаздывающее, как и задания, запаздывание которых
возникло в процессе выполнения алгоритма, претендуют на резервы заданий,
помеченных «*» («**»).
Утверждение 1.15. Пусть уже выполнено k итераций. Переходим к очередному конкурирующему заданию
j[g ] .
Итерация k + 1. Необходимые условия для
встраивания конкурирующего задания
j[g ]
в последовательности
p, где p – позиция, на которой запаздывание по заданию
k
на позицию
минимально или
j[g ]
равно нулю:
а) наличие резервов на интервале встраивания задания
j[g ]
у заданий j[i ] , для
d j[ i ]  d j[ g ] , j[i ]  I j[ g ] ;
которых
б) если резервы на интервале
циях 1, p  1 у заданий
j[i ] ,
p, g  1
отсутствуют, наличие резервов на пози-
для которых
d j[ i ]  d j[ g ] , d j[ i ]  C j[ i ] , d j[ i ]  C j[ p 1]
Доказательство. В последовательности
k
.
(1.8)
выполняется:
l j[ i ]  l j[ g ]
,
j[i ]  I j[ g ] .
Пусть не выполняется условие (а) утверждения. Возможны следующие случаи.
1. d j  d j . В соответствии с [99], так как
[i ]
задания
j[i ] ,
[g]
l j[ i ]  l j[ g ]
для всех
j[i ] ,
i = 1, g  1 , то
i = 1, g  1 , в оптимальной последовательности предшествуют заданию
j[g ] .
41
2. d j  d j , C j  d j  0, i  1, g  1 . В этом случае, так как
[i ]
[g]
[i ]
[i ]
i = 1, g  1 , встраивание задания
j[g ]
l j[ i ]  l j[ g ]
Глава 1
для всех j[i ] ,
на более раннюю позицию приведет к увели-
чению запаздывания на интервале встраивания (утверждение 1.1).
Пусть не выполняется условие (б) утверждения 1.15. В соответствии с условием (1.8), задания
j[i ] ,
которые могут быть перенесены на интервал встраивания для
образования резервов, должны отвечать следующим требованиям: 1) они должны
быть незапаздывающими; 2) d j  d j ; 3) у задания
[i ]
[g]
должен быть резерв на по-
j[i ]
зиции p  1 и, следовательно, на интервале встраивания задания
нении указанных требований перенос задания
j[g ]
приведет к запаздыванию задания
j[i ]
j[i ]
j[g ] .
При невыпол-
на интервал встраивания задания
и, в соответствии с утверждением 1.1,
ухудшению значения функционала.
Следовательно, при невыполнении условий утверждения 1.15 встраивание
конкурирующего задания
j[g ]
на более раннюю позицию приведет к увеличению
суммарного запаздывания.
Сформулируем необходимые условия для перемещения в последовательности
k
запаздывающих заданий на более ранние позиции, при которых значение
функционала уменьшается за счет существующих и освободившихся резервов.
Утверждение 1.16. Пусть в последовательности
 k j[g ]
– запаздывающее за-
дание. Уменьшение значения функционала при перемещении
j[g ]
на более ран-
ние позиции возможно только при выполнении хотя бы одного из следующих
условий:
1.  j[i ] , p  i  g | rj[i ] > 0, d j[i ] > d j[ g ] . На интервале встраивания задания
задания
j[i ] ,
есть
для которых d j[i ] > d j[ g ] , d j[i ] > C j[i ] , p – позиция, на которой запаздыва-
ние по заданию
j[g ]
минимально (или равно нулю).
2.  j[q ] , q < g, d j[ q ] > C j[ g ] .
3.  j[l ] , l < g, d j[l ] > C j[ g ]  l j[ g ] ;

min l j[ l ] , C j[ g ]  d j[ g ]
4. i | p  i  g | rj[i ]  0, но  j[k ] , k < p |
42
j[g ]
 > Cj
[g]
 d j[ l ] .
d j[ k ] > d j[ g ] , d j[ k ] > C j[ k ] , d j[ k ] > C j[ p 1] .
Минимизация суммарного запаздывания при выполнении независимых заданий
*
**
5. i | i = 1, g  1 , rj[i ]  0, но  j[m
] ( j[m ] ), m < g.
Аналогично утверждению 1.10, выполнение одного из условий 1–4 означает,
что на интервале встраивания задания
j[g ]
существуют резервы (условия 1–3)
или они будут образованы в результате перестановок (условие 4). Выполнение
условия 5 означает, что в последовательности
k
присутствуют задания, ис-
пользовавшие резервы на интервале встраивания задания
j[g ] , и
перемещение их
на более поздние позиции приведет к образованию резервов на этом интервале.
Если не выполняется ни одно из условий 1–5, то перемещение задания
j[g ]
на
более ранние позиции приведет к увеличению значения функционала.
Следствие 1. Пусть в результате выполнения алгоритма построена оптимальная подпоследовательность на интервале
вающих заданий на интервале
последовательность
k
k  1, n
1, k .
Если для каждого из запазды-
не выполняется ни одно из условий 1–5, то
оптимальна.
Следствие 2. При выполнении итераций оптимизации для текущей подпоследовательности необходимо выполнение для запаздывающих заданий следующих процедур:
а) определение и расширение интервала встраивания (условия 1–4 утверждения 1.16);
б) определение резервов времени на интервале встраивания (определение 1.1);
в) в случае наличия резервов времени на расширенном интервале встраивания
выполнение процедуры встраивания запаздывающего задания на позицию, определенную интервалом встраивания (определение 1.5). Все задания, занимающие позиции после встроенного запаздывающего задания, упорядочиваются по неубыванию
значений их длительности (утверждение 1.10). Все пункты а)—д) выполняются, в
свою очередь, для запаздывающих заданий на интервале встраивания;
г) в случае отсутствия резервов на расширенном интервале встраивания выполнение процедуры освобождения резервов посредством перестановки заданий, ранее их использовавших в результате предыдущих шагов итерации
(утверждение 1.16, п.5);
43
Глава 1
д) проверка возможности использования освобожденных резервов запаздывающими заданиями на интервале перестановки (утверждение 1.16, п.5).
Утверждение 1.17. Текущая итерация оптимизации, основанная на направленных перестановках и реализованная посредством конечного числа операций
оптимизационных процедур а)—д), выполняемых для очередного конкурирующего задания, входящего в состав текущей подпоследовательности, а также рекурсивно выполняемых для переупорядочения заданий на интервалах встраивания и интервалах перестановок, 1) является конечной и 2) позволяет достичь оптимального значения функционала на текущей подпоследовательности.
Доказательство. Конечность основывается на следующих положениях:
1.1. Направленность перестановок, основанных на использовании запаздывающими заданиями резервов предшествующих незапаздывающих заданий;
1.2. Формализация необходимых условий и оптимизационных процедур а)—
д) (утверждение 1.16), позволяющих построить оптимальное расписание на текущей итерации;
1.3. Типы выполняемых перестановок;
1.4. Пошаговая оптимизация на интервале встраивания и, аналогично, на интервалах перестановок, позволяющая последовательно переходить к очередному
запаздывающему заданию на этом интервале и строить оптимальное расписание
на подпоследовательности, ограниченной первым заданием текущей последовательности и этим запаздывающим заданием. В результате выполнения процедуры встраивания запаздывающего задания дополнительно образуются порожденные запаздывающие задания, количество которых ограничено числом незапаздывающих заданий, что также обусловливает конечность числа операций оптимизационных процедур;
1.5. Направленное построение неповторяющихся расписаний, за исключением случаев, когда мы после выполнения оптимизационных процедур в подпоследовательностях заданий на интервалах встраивания и перестановок возвращаемся к исходным подпоследовательностям, которые в этом случае изначально
были оптимальными. Число таких подпоследовательностей не превышает числа
заданий в текущей подпоследовательности.
44
Минимизация суммарного запаздывания при выполнении независимых заданий
2. Доказательство оптимальности построенного расписания в результате выполнения текущей итерации оптимизации основывается на утверждениях 1.10,
1.11, 1.16 и следствии к утверждению 1.16.
Утверждение 1.18. Если на интервале встраивания запаздывающего задания
j[g ]
находится задание
j[k ] , d j[ k ]  d j[ g ] , l j[ k ]  l j[ g ] , то
j[g ]
определяется позициями
интервал встраивания задания
k  1, g  1 .
Доказательство. Справедливость этого утверждения основана на утверждении
1.15 и следующем свойстве [99]: при выполнении условий
l j[ i ]  l j[ g ]
, dj  dj
[ i]
[ g]
в оп-
тимальном расписании j[ k ]  j[ g ] . Следовательно, позиция встраивания задания
j[g ]
p  k  1. Оптимизация осуществляется за счет резервов незапаздывающих заданий
на интервале встраивания и заданий на позициях
1, p  1 ,
отвечающих требованиям
утверждения 1.15, посредством переноса их на интервал встраивания.
Таким образом, условия, сформулированные в утверждении 1.18, позволяют
уменьшить интервал встраивания очередного запаздывающего задания, и так
как процедура оптимизации выполняется на этом интервале, то соответственно
сокращается число выполняемых перестановок.
Утверждение 1.19. Пусть уже выполнено k итераций. Переходим к очередному конкурирующему заданию
j[g ] .
Если на позиции p встраивания задания
j[g ]
находится запаздывающее задание или задание с нулевым резервом, и на позициях
1, p  1
нет заданий, отвечающих условиям (1.8), то задание j[ g ] встраивается
на позицию p+1; при выполнении аналогичных условий на позиции p+1 – на позицию p+2, и т.д. до позиции g.
Доказательство. Длительность выполнения встраиваемого конкурирующего задания j[ g ] больше или равна длительности выполнения заданий на интервале встраивания и заданий на позициях 1, p  1 . Так как на позициях 1, p  1 нет заданий, отвечающих условиям (1.8), эти задания в перестановках не участвуют.
Задание на позиции встраивания p запаздывает или имеет нулевой резерв, следовательно, встраивание на позицию, занимаемую этим заданием, только увеличит значение функционала. Аналогично, если на позициях p+1, p+2, … нахо45
Глава 1
дятся запаздывающие задания или задания с нулевым резервом, встраивание
выполняется на следующую позицию, и так до позиции g.
Таким образом, в утверждении 1.19 сформулированы условия, позволяющие
сократить интервал встраивания конкурирующего задания j[ g ] . Так как на позициях 1, p Ô  1 ( p Ô – фактическая позиция встраивания задания j[ g ] ) нет заданий,
отвечающих условиям (1.8), то задания на интервале 1, p Ô  1 в перестановках не
участвуют. Реализуется декомпозиция рассматриваемой подпоследовательности. Перестановки осуществляются только на интервале встраивания, и если задание j[ g ] осталось на занимаемой позиции, то оно исключается из множества
заданий, конкурирующих за резервы незапаздывающих заданий на интервале
1, g  1 , и в дальнейших перестановках на этом интервале не участвует.
Следующие утверждения, доказательство которых очевидно, позволяют
определить и исключить бесперспективные перестановки и встраивания.
Утверждение 1.20. Пусть уже выполнено k итераций. Переходим к очередному конкурирующему заданию
j[g ] .
ции для конкурирующего задания
ющих заданий
j[i ]
выполняется:
ствуют, то задание
j[g ]
Если при выполнении итерации оптимиза-
j[g ]
для всех предшествующих незапаздыва-
d j[ i ]  d j[ g ] ,
или на интервале
1, g  1
резервы отсут-
остается на занимаемой позиции и в оптимальном распи-
сании не может занять позицию меньше g.
Доказательство. Справедливость этого утверждения основано на утверждении 1.15. Необходимые условия для встраивания задания
зицию не выполняются. Задание
j[g ]
j[g ]
на более раннюю по-
остается на занимаемой позиции, исключается
из множества заданий, конкурирующих за резервы незапаздывающих заданий на
интервале 1, g  1 , и в дальнейших перестановках на этом интервале не участвует.
Утверждение 1.21. Если в последовательности
дывающего задания
j[g ]
на интервале
1, g  1
k
при встраивании запаз-
нет предшествующих заданий, для
которых d j[i ] > d j[ g ] и d j[i ] > C j[i ] , но есть задания
*
j[m
]
**
( j[m
] ), для которых
l j* ( l j ** ) ≥ l j[g ] , то оптимизация осуществляется за счет резервов, освобожден[ m]
46
[m]
Минимизация суммарного запаздывания при выполнении независимых заданий
*
**
ных заданиями j[m
] ( j[m ] ) при встраивании их после задания j[g ] . При этом необходимо выполнение следующего условия:
C j[g]  d j *
<  max0, C j   d j  .

g
m
i
i m
(1.9)
i
Доказательство. Справедливость этого утверждения основана на утверждении
1.16. Т.к. резервы для встраивания запаздывающего задания
j[g ]
на более ранние по-
зиции отсутствуют, оптимизация осуществляется за счет резервов, освобожденных
заданиями
*
j[m
]
**
( j[m
] ), ранее их использовавших при выполнении условия
l j* ( l j ** ) ≥ l j[g ] . В условии (1.9) C j[g]  d j *
[ m]
m 
[m]
тате встраивания его после задания
j[g ] ,
– запаздывание по заданию
*
j[m
]
в резуль-
а сумма в правой части условия (1.9) отра-
жает максимально возможное уменьшение суммарного запаздывания в результате
такого перемещения. При невыполнении условия (1.9) перестановки помеченных
заданий не выполняются, что существенно сокращает количество перестановок.
Утверждение 1.22. Если очередное конкурирующее задание
j[g ]
в результа-
те выполнения для него итерации оптимизации, определяющей возможность
использования резервов этим заданием, заняло позицию k > p, то следующие за
ним конкурирующие задания
j[l ] ,
для которых
d j[ l ]  d j[ g ] ,
в оптимальном распи-
сании не смогут занять позицию меньшую, чем k+1.
Доказательство. Конкурирующие задания
j[l ]
на интервале
g  1, n
чены по неубыванию значений длительности. Следовательно, если
в оптимальном расписании j[ g ]
упорядо-
d j[ l ]  d j[ g ] ,
то
j[l ] . Таким образом, условия, сформулирован-
ные в утверждении 1.22, позволяют уменьшить интервал встраивания очередного запаздывающего задания, и так как процедура оптимизации выполняется на
этом интервале, то соответственно сокращается число выполняемых перестановок.
Утверждение 1.23. Пусть в последовательности
даний
j[k ] , j[r ] 
нии задание
j[k ]
J выполняется:
l j[k ]  l j[r ] , d j[ k ]  d j[ r ]
будет предшествовать заданию
k
для запаздывающих за-
. Тогда в оптимальном расписаj[r ]
[99].
47
Утверждение 1.24. Если конкурирующее задание
j[g ]
Глава 1
в результате выполне-
ния для него итерации оптимизации осталось на исходной позиции, и все задания на позициях
g  1, n
запаздывающие, то задания, для которых
d j[ l ]  d j[ g ] ,
i g  1, n , исключаются из числа конкурирующих за резервы предшествующих
заданий и в оптимальном расписании не смогут занимать более ранние позиции.
Доказательство основано на том факте, что для задания j[i ] , i= g  1, n , выполняется: l j[i ]  l j[ g ] , и на утверждении 1.23.
Пример к утверждению 1.24.
Таблица 1.15 – Исходные данные для примера к утверждению 1.24
№ задания 1
2
3
4
5
6
7
25 30 45 50 67 71 80
lj
25 122 100 140 150 150 200
dj
 уп –
последовательность, упорядоченная по неубыванию значений длитель-
ностей заданий j:
Таблица 1.16 – Последовательность
№ п/п № задания
1
1
2
2
3
3
4
4
5
5
6
6
7
7
 уп
lj
25
30
45
50
67
71
80
dj
25
122
100
140
150
150
200
Cj
25
55
100
150
217
288
368
fj
–
–
–
10
67
138
168
383 opt
Конкурирующее задание 4 в результате выполнения итерации оптимизации
осталось на исходной позиции. У заданий 5, 6, 7 директивные сроки больше директивного срока задания 4. Следовательно, данная последовательность оптимальна.
Утверждение 1.25. Запаздывающее задание
j[g ]
на k-й итерации может за-
нять более раннюю позицию, что приведет к улучшению целевой функции,
только в том случае, если хотя бы у одного задания
резерв и выполняется:
d j[ k ]  d j[ g ] ,
на интервале
1, g  1
есть
либо (в случае отсутствия резервов) на интер-
вале 1, g  1 есть задания с метками.
48
j[k ]
Минимизация суммарного запаздывания при выполнении независимых заданий
Доказательство основано на утверждении 1.16.
Утверждение 1.26. Неконкурирующие задания в последовательности
могут занять более ранние позиции, чем позиции, занимаемые ими в
k
не
сп .
Утверждение 1.27. Пусть уже построена оптимальная подпоследовательность на интервале
1, g  1 .
Запаздывающее конкурирующее задание
j[g ]
на k-й
итерации, выполняемой для определения возможности использования резервов
этим заданием, не может быть перемещено на более раннюю позицию, если на
интервале
1, g  1
ни у одного из заданий нет резервов, и для всех помеченных за-
 l
даний выполняется: l j l j
*
[i]
**
[i]
j[ g ]
, i = 1, g  1 .
Доказательство. В рассматриваемой последовательности справедливо:
l j[ i ]  l j[ g ] , i = 1, g  1 . Так как резервы в этой последовательности отсутствуют, то
оптимизация возможна за счет резервов, полученных посредством перемещения
помеченных заданий на более поздние позиции. Но в этой последовательности
 l
для всех помеченных заданий выполняется: l j l j
*
[i]
**
[i]
j[ g ]
, следовательно, такое
перемещение приведет к увеличению значения функционала. Таким образом,
запаздывающее конкурирующее задание
j[g ]
не может быть перемещено на бо-
лее раннюю позицию. Аналогично, запаздывающие задания на интервале
g  1, n
не могут занять более ранние позиции на интервале 1, g , что существенно сокращает количество выполняемых перестановок.
Пример к утверждению 1.27.
Таблица 1.17 – Исходные данные для примера к утверждению 1.27
№ задания 1
2
3
4
5
6
7
25 30 45 50 67 71 80
lj
25 122 150 120 1 50 100
dj
уп
 – последовательность, упорядоченная по неубыванию значений длительностей заданий j:
49
Глава 1
Таблица 1.18 – Последовательность  уп
№ п/п № задания lj
1
1
25
2
2
30
3
3
45
4
4
50
5
5
67
6
6
71
7
7
80
 сп –
dj
25
122
150
120
1
50
100
Cj
25
55
100
150
217
288
368
fj
–
–
–
30
216
238
268
752
последовательность, полученная после выполнения свободных пере-
становок:
Таблица 1.19 – Последовательность
№ п/п № задания
1
1
2
2
3
4
4
3
5
5
6
6
7
7
 сп
lj
25
30
50
45
67
71
80
dj
25
122
120
150
1
50
100
Cj
25
55
105
150
217
288
368
fj
–
–
–
–
216
238
268
722
Последовательность 1 получена в результате выполнения процедуры встраивания задания 5 на позицию 2 и упорядочения на интервале встраивания.
Для заданий 3–7 не существует перестановок и встраиваний, улучшающих значение функционала. Для заданий 3 и 4 не выполняется условие (1.9). Для заданий 6 и 7
выполняется l6 > l5, d6 > d5, l7 > l5, d7 > d5. Последовательность 1 – оптимальная.
Таблица 1.20 – Последовательность 1
№ п/п № задания lj
1
1
25
*
2
5
67
3
2
30
4
3
45
5
4
50
6
6
71
7
7
80
dj
25
1
122
150
120
50
100
Cj
25
92
122
167
217
288
368
fj
–
91
–
17
97
238
268
711 opt
В утверждениях 1.28, 1.29 сформулированы признаки оптимальности полученного решения.
50
Минимизация суммарного запаздывания при выполнении независимых заданий
Утверждение 1.28. Если в последовательности k конкурирующее задание
j[g ]
в результате выполнения для него итерации оптимизации не использовало
существующие резервы, минимальное значение функционала соответствует позиции g, занимаемой этим заданием, и  j[r ] , r = g  1, n ,
дания
d j[ r ]  d j[ g ] и C j[ r ]  d j[ r ] ,
то за-
исключаются из множества конкурирующих, а последовательность
j[r ]
k
оптимальна.
Доказательство. В последовательности
Т.к. для задания
j[g ]
выполняется: l j[ g ]  l j[ r ] , r = g  1, n .
k
оказались недостаточными для перемещения на более ран-
ние позиции существующие резервы и резервы помеченных заданий, а также
отсутствуют резервы на интервале
g  1, n ,
то для заданий
j[r ] ,
r = g  1, n , не суще-
ствует перестановок и встраиваний, приводящих к уменьшению значения функционала. Таким образом, получено оптимальное расписание всего множества
заданий.
Утверждение 1.29. Пусть на итерации k, выполняющейся для очередного
конкурирующего запаздывающего задания
во
d jl   C jl  ,
для всех
j[l* ]
j[g ] ,
для всех
 l
( j[**l ] ) выполняется l j l j
*
[l ]
**
[l ]
j[ g ]
j[l ] , l = 1, g  1 ,
справедли-
, и на интервале
g, n
вы отсутствуют. Тогда запаздывающие задания, занимающие позиции
ключаются из множества конкурирующих, а последовательности
k
резер-
g, n ,
ис-
отвечает
оптимальное значения функционала.
Доказательство. В рассматриваемой последовательности
k
резервы на ин-
тервале 1, g  1 отсутствуют и не могут быть образованы посредством перемещения помеченных заданий на более поздние позиции, так как  j[l* ] ( j[**l ] ) выполня-
 l
ется l j l j
*
[l ]
**
[l ]
j[ g ]
. На интервале
g, n
резервы отсутствуют. Следовательно, не су-
ществует перестановок и встраиваний, приводящих к уменьшению значения
функционала, и последовательности
k
отвечает оптимальное значение функ-
ционала.
Утверждение 1.30. Пусть на итерации k, выполняемой для очередного конкурирующего задания
j[g ] ,
на интервале его встраивания есть задание
j[r ] ,
для
51
которого
d j[ r ]  d j[ g ] , l j[r ]  l j[ g ] ,
и задание
j[r ]
Глава 1
запаздывает, тогда осуществляется де-
композиция рассматриваемой подпоследовательности, и при выполнении итерации оптимизации для задания
j[g ]
задания на интервале
и оптимизация осуществляется на интервале
1, r
не рассматриваются,
r  1, g  1 .
Доказательство. В соответствии с [99], j[ r ]
j[ g ] , и так как j[r ] запаздывает,
то существующих резервов оказалось недостаточно для уменьшения запаздывания по этому заданию. Следовательно, реализуется декомпозиция подпоследовательности и выполняются отсечения, сформулированные в условии утверждения, что существенно сокращает число выполняемых перестановок.
Утверждение 1.31. Пусть на итерации k в последовательности
j[g ]
и
j[k ]
конкурирующие (g < k), выполняется:
встраивания задания
j[g ] ),
и на интервале
1, p н
d j[ k ]  d j[ g ] < C j н  l j н
p
j[k ]
задания
(pн – позиция
резервы отсутствуют. Если в ре-
зультате выполнения итерации оптимизации задание
то задание
p
k
j[g ]
заняло позицию s > pн,
в оптимальном расписании не сможет занять позицию меньшую,
чем s + 1.
Доказательство. В последовательности
ствуют. Задание
j[g ] ,
k
на интервале
1, p н
резервы отсут-
для которого l j[ g ]  l j[ k ] , в результате выполнения оптимиза-
ции заняло позицию s > pн, на которой осталось запаздывающим. Следовательно,
и задание
задания
j[k ]
j[k ]
не сможет занять позицию, меньшую, чем s + 1. Оптимизация для
осуществляется на интервале s  1, k , что существенно сокращает
число выполняемых перестановок.
Утверждение 1.32. Алгоритм решения задачи МСЗ является конечным и
точным.
Доказательство утверждения 1.32 естественным образом вытекает из
структуры алгоритма и утверждений 1.1–1.31. Приведем лишь основные базовые положения.
52
Минимизация суммарного запаздывания при выполнении независимых заданий
1. Алгоритм построен на направленных перестановках, основанных на использовании запаздывающими заданиями резервов времени (определение 1.1)
предшествующих незапаздывающих заданий в текущей последовательности.
2. Построение последовательности
 уп ,
в которой задания упорядочены по
неубыванию значений их длительностей выполнения (определение 1.7). В
утверждениях 1.1–1.9 сформулированы свойства последовательности
 уп ,
а в
утверждении 1.10 – признак ее оптимальности.
При реализации алгоритма используются следующие типы перестановок:
1) свободные перестановки. Свободная перестановка – перестановка незапаздывающего задания с резервом времени на позицию с максимальным номером, на которой это задание остается незапаздывающим, в том случае, если на
интервале перестановки есть запаздывающие задания (определение 1.9).
2) Перестановки (EFSR – extraction and forward-shifted reinsertion – извлечение и повторная вставка со сдвигом вперед – определение 1.2) [134];
3) Встраивания (EBSR – extraction and backward-shifted reinsertion – извлечение и повторная вставка со сдвигом назад – определение 1.4) [134].
Перестановки (EFSR) осуществляются для:
а) заданий, у которых резерв времени больше нуля (условия 1–4 утверждения
1.10, условия 1–4 утверждения 1.16);
б) заданий, использовавших в процессе решения задачи резервы времени в результате выполнения перестановок и встраиваний (условие 5 утверждения 1.16).
Встраивания (EBSR) выполняются при:
а) наличии резервов на интервале встраивания (условия 1–3 утверждения 1.10,
условия 1–3 утверждения 1.16);
б) образовании резервов на интервале встраивания в соответствии с условием 4 утверждения 1.10 и условиями 4 и 5 утверждения 1.16.
3. Предварительный этап – построение последовательности  сп – последовательности заданий, полученной в результате выполнения всех свободных перестановок в последовательности
 уп
(определение 1.9).
53
Глава 1
В утверждении 1.13 сформулированы свойства последовательности  сп , в
утверждении 1.14 – признаки оптимальности этой последовательности.
В последовательности  сп определяется множество конкурирующих заданий,
т. е. заданий, претендующих на резервы времени предшествующих незапаздывающих заданий (определение 1.10). Все эти задания в последовательности  сп упорядочены по неубыванию значений их длительностей.
4. Текущая итерация оптимизации.
4.1. Текущая итерация оптимизации реализуется в соответствии с утверждением 1.17, является конечной и приводит к построению оптимального расписания на
множестве заданий, определенном в текущей подпоследовательности.
4.2. Использование в текущей итерации оптимизации, основанной на утверждении 1.17, результатов утверждений 1.18–1.31, позволяющих уменьшить число
необходимых направленных перестановок для получения оптимального решения:
– в утверждениях 1.18, 1.19, 1.22, 1.25, 1.30, 1.31 сформулированы условия
уменьшения интервала встраивания;
– в утверждениях 1.20, 1.27 – условия сокращения бесперспективных процедур встраивания;
– в утверждении 1.21 – условия сокращения бесперспективных процедур перестановок;
– в утверждении 1.30 – условия декомпозиции текущей подпоследовательности;
– условия утверждений 1.24, 1.28, 1.29 позволяют исключить часть конкурирующих заданий из множества конкурирующих;
– в утверждениях 1.28, 1.29 сформулированы признаки оптимальности полученного решения.
5. Обоснование конечности и оптимальности алгоритма:
а) число итераций оптимизации является конечным и определяется количеством конкурирующих заданий в последовательности  сп ;
б) структура оптимального расписания в общем случае состоит из оптимальной подпоследовательности, полученной на последней итерации оптимизации, вы54
Минимизация суммарного запаздывания при выполнении независимых заданий
полненной для очередного конкурирующего задания, следующие позиции за которой занимают задания, исключенные из множества конкурирующих в соответствии с утверждениями 1.28, 1.29.
Следствие 1. Положения 1, 2, 3, 4.1 являются инвариантными и определяют
принципиальную суть и новизну предложенного алгоритма.
Следствие 2. Положение 4.2 может измениться в процессе появления новых
правил отсечения, признаков оптимальности и расширения полиномиальной составляющей.
1.2 Общая структура ПДС-алгоритма
Решение рассматриваемой задачи осуществляется в 2 этапа: предварительного и оптимизационного.
На предварительном этапе реализуется:
а) построение последовательности, в которой задания упорядочены по неубыванию длительностей выполнения (последовательность
 уп );
б) выполнение свободных перестановок. В результате этой процедуры незапаздывающие задания в последовательности
 уп
перемещаются на более позд-
ние позиции, если на интервале перестановки находились запаздывающие задания (получена последовательность
сп ).
в) формирование множества конкурирующих заданий, т. е. запаздывающих
заданий в последовательности
сп ,
которым в этой последовательности предше-
ствуют задания с резервами времени и бóльшим директивным сроком. Если таких заданий в последовательности
сп
нет, то последовательность
сп
опти-
мальна.
Этап оптимизации: на этом этапе последовательность
сп
декомпозируется на
подпоследовательности меньшего размера. На каждой итерации строится оптимальное расписание для последовательности
k
для заданий
j[i ] ,
i =1, gk , где
j[ g
k
]
–
очередное конкурирующее задание. На первой итерации рассматривается подпоследовательность 1  сп , включающая задания, которые занимают в последовательности
сп
позиции
1, g1 ,
где
g1
– позиция первого конкурирующего запаздыва55
Глава 1
ющего задания. На второй итерации полученная оптимальная подпоследовательность дополняется заданиями
j[l ] ,
которые в последовательности
сп
занимают по-
зиции l = g1 1, g2 , и строится оптимальное расписание для подпоследовательности
на интервале 1, g 2 . На каждой итерации оптимизация осуществляется за счет использования резервов времени незапаздывающих заданий очередным конкурирующим заданием и порожденными в результате его перестановок новыми запаздывающими заданиями. Оптимизация выполняется посредством ряда перестановок и
встраиваний, направленных на улучшение значения функционала на рассматриваемом подмножестве заданий. Исключаются только те перестановки, которые заведомо ухудшают значение функционала. Таким образом, строится оптимальное
расписание для всего множества заданий.
В процессе решения задачи проверяются условия, сформулированные в
утверждениях, приведенных выше.
1.3 Блок-схема и описание ПДС-алгоритма
Блок-схема алгоритма решения задачи дaна на рис. 1.1–1.3.
Предлагаемый алгоритм решения рассматриваемой задачи состоит из двух этапов – предварительного этапа (алгоритм А0) и этапа оптимизации (алгоритм А1).
Нумерация блоков алгоритма соответствует нумерации блоков в блок-схеме.
Алгоритм А0 (предварительный этап)
1
Упорядочить задания по неубыванию их длительностей lj. Полученную
последовательность обозначить
 уп .
Если в последовательности
ни для одного из запаздывающих заданий
 уп
Проверить условия утверждения 1.10.
нет предшествующих заданий, для которых выполняется хотя бы одно из
условий 1–4, то последовательность
Иначе перейти на п.2.
56
 уп
оптимальна, конец алгоритма.
Минимизация суммарного запаздывания при выполнении независимых заданий
БЛОК 1. ОПРЕДЕЛЕНИЕ МНОЖЕСТВА КОНКУРИРУЮЩИХ ЗАДАНИЙ
2
Выполнить свободные перестановки в последовательности
 уп ,
начиная с
задания с максимальным директивным сроком:
2.1
Определить множество заданий W:
W = {k:
d j[ k ]  C j[q ] ; d j[ k ]  C j[q 1] ;
k, q = 1, n , k < q,  j[i ] : d j[i ] < C j[i ] , i =
2.2
Найти задание
j[k ]
k  1, q }.
с максимальным директивным сроком из множества
W. Если W = , то получена последовательность
2.3
Выполнить перестановку задания
зицию
2.4
q
и исключить
j[k ]
j[k ]
сп , перейти на п. 2.4.
на соответствующую ему по-
из множества W. Перейти на пункт 2.2.
Проверить условия а)–г) утверждения 1.14. Если выполняется хотя
бы одно из этих условий, последовательность
сп
оптимальна, конец
алгоритма. Иначе определить множество конкурирующих заданий K
и перейти к этапу оптимизации.
Алгоритм А1 (этап оптимизации)
Алгоритм состоит из k однотипных итераций, где k – количество конкурирующих запаздывающих заданий. Множество конкурирующих заданий K определяется последовательностью
новок в последовательности
сп ,
 уп ,
полученной в результате свободных переста-
упорядоченной по неубыванию длительностей
заданий.
На каждой итерации проверяется возможность использования резервов времени незапаздывающих заданий очередным конкурирующим заданием и порожденными в результате его перестановок новыми запаздывающими заданиями. В результате выполнения каждой итерации значение функционала уменьшается (или остается неизменным).
1
Пусть уже выполнена k – 1 итерация. Рассмотрим выполнение итерации k
для очередного конкурирующего задания
j[g ] .
Пусть
g пр
(читается как «g
предыдущее») – позиция предыдущего запаздывающего задания, для которо57
го выполнилась оптимизация; на первой итерации
g пр
Глава 1
= 0. С позиции g пр +
1 осуществляется поиск очередного запаздывающего задания, для которого
будет выполняться оптимизация.
Начало
А0
Предварительный
этап. Свободные
перестановки
1
Определение
множества K
конкурирующих
заданий
2
Поиск очередного
запаздывающего
задания j[g]
g ≤ n?
С
Нет
Да
3
Определение позиции
p встраивания
задания
j[g]
Конец
4
На позиции p находится
незапаздывающее задание j[p],
dj[p]>dj[g], dj[p] – Cj[p]>0
Нет
5
Анализ заданий
на позициях
[1, p – 1].
Проверка
условий (1.11)
D
Да
6
Встраивание задания
j[g] на позицию p
A
Рис. 1.1 – Блок-схема алгоритма (часть 1)
58
Минимизация суммарного запаздывания при выполнении независимых заданий
D
7
Задания,
отвечающие условиям (1.11),
имеются?
Нет
Да
10
8
Корректировка
позиции встраивания
pн
Встраивание задания
j[g] на позицию pн
9
Оптимизация
за счет резервов
заданий
на позициях
[1, pн – 1]
11
pнк < g?
Нет
Да
А
В
Нет
Задание j[g] заняло
более раннюю позицию?
Да
А
Рис. 1.2 – Блок-схема алгоритма (часть 2)
БЛОК 2. ПОИСК ОЧЕРЕДНОГО ЗАПАЗДЫВАЮЩЕГО ЗАДАНИЯ
2
Найти очередное запаздывающее задание
j[g ]
на интервале
запаздывающее задание не найдено, то конец. Иначе: если
g пр  1, n .
j[g ]  K,
Если
то пе-
рейти на п. 3.1, а если оно конкурирующее и для него выполняется итерация оптимизации – проверить условия утверждений 1.24, 1.28, 1.29, позволяющие исключить задание
Если в результате задание
j[g ]
j[g ]
из множества конкурирующих заданий K.
не исключено из множества K, запомнить те-
кущую последовательность и значение функционала, перейти на п. 3.1.
Иначе: установить
g пр = g.
Если
g пр = n,
то конец алгоритма, текущая по-
следовательность оптимальна. Иначе: вернуться на п. 2.
59
Глава 1
А
12
Упорядочение
заданий по
неубыванию
длительностей. jн[p]
помечается *
13
Задание jн[p]
запаздывает?
Нет
14.8
Да
14.1
Поиск задания j*[m],
для которого
lj*[m] ≥ ljн[p] и
справедливо условие
(1.12)
14.2
Задание j*[m]
найдено?
Запомнить наиболее
раннее время начала
выполнения j*[m]
С
В
14.9
Для задания j*[m],
занявшего позицию
pн, в свою очередь
ищем задания,
отвечающие (1.12)
Нет
Да
14.3
Запоминание текущей
последовательности
на интервале [1, pн]
(Ф)
C
E
Нет
Задание j*[m]
найдено?
Да
14.4
14.6
Перестановка задания
j*[m] после задания jн[p]
Функционал
уменьшился?
Да
С
E
Нет
14.5
Оптимизация
последовательности
на интервале [1, pн–1]
(н)
14.7
Возврат к Ф
B
Рис. 1.3 – Блок-схема алгоритма (часть 3)
БЛОК 3. ОПРЕДЕЛЕНИЕ ПОЗИЦИИ ВСТРАИВАНИЯ
3.1
Найти позицию p, на которой запаздывание по заданию
нимальным или равным нулю. Обозначим
60
T jн g   d j g   l j g 
j[g ]
станет ми-
– максимальный
Минимизация суммарного запаздывания при выполнении независимых заданий
момент начала выполнения задания j[g ] , при котором это задание остается незапаздывающим. Если задание
вания p определяется из условия:
помечено «**», позиция встраи-
j[g ]
C j p1  T jн*g*  C j p  ,
где
T jн*g*
– запомненный
наиболее ранний момент начала выполнения задания j*g* на предыдущих
итерациях алгоритма. Иначе позиция p определяется по условию:
C j p1  T jí g   C j p . При этом возможны следующие специфические случаи:
а) T jí   0 . В этом случае p = 1.
g
б) C j   T jí  i  1, g  1 . В этом случае p = 1.
i
3.2
g
Позиция pн встраивания задания
j[g ]
определяется на интервале p, g  1
как максимальная из следующих позиций: позиции p, позиции k+1, если
позицию k занимает задание
j[k ] ,
для которого
ции i+1, если позицию i занимает задание
j*i 
l jk   l j g  ; d jk   d j g  ,
и пози-
( j*i* ), для которого l j  l j 
*
i 
g
( l j  l j  ):
**
i 
g
p í  max{ p, i  1, k  1}, p  i  1  g , p  k  1  g ,
 
l j* l j**  l j g  , l jk   l j g  , d jk   d j g  .
i 
3.3
i 
Если pн = p и на этой позиции находится непомеченное задание j p , для
которого
d j p  C j p  0 , d j p   d j g  , p ≠ g,
то встроить задание
j[g ]
(1.10)
на позицию pн, перейти к Блоку 12, иначе к Бло-
ку 5.
БЛОК 5. АНАЛИЗ РЕЗЕРВОВ ЗАДАНИЙ НА ПОЗИЦИЯХ 1, p н  1
5.1
Проверить, имеется ли на интервале 1, p н  1 задание jr  , для которого
d j r   d j g  , d j r   C j r   0 , d j
r 
 Cj
 p H 1


(1.11)
Если такое задание найдено, то перейти на Блок 8, иначе на Блок 10.
61
Глава 1
БЛОК 8. ВСТРАИВАНИЕ ЗАДАНИЯ j[g ] НА НОВУЮ ПОЗИЦИЮ
8.1
Задание
j[g ]
встраивается на позицию pн. Обозначим его
jнp  .
Перейти к
Блоку 9.
БЛОК 9. ОПТИМИЗАЦИЯ ЗА СЧЕТ РЕЗЕРВОВ ЗАДАНИЙ НА ПОЗИЦИЯХ 1, p н  1
Пункты 9.1 – 9.3 выполняются, начиная с заданий большей длительности, т. е. рассматриваются позиции pн – 1, pн – 2 и т. д.
9.1
Выполнить свободные перестановки, которые уменьшают опоздание по
заданию
jнp  .
Переопределить позицию pн. Если задание
jнp 
перестало
опаздывать, перейти к Блоку 12 (п.12.1), иначе на п.9.2.
9.2
Найти задание
jl 
(l < pн), для которого выполняется:
d j l   C j l  , d j l   d j  pН  , d j l   C j pн  – l j  p н  .
Если такое задание найдено, перейти на п.9.3, иначе на Блок 12. Если
условия, сформулированные в пунктах 9.1–9.2, в процессе оптимизации
не выполнились (позиция pн осталась прежней), перейти на Блок 10.
9.3
Выполнить перестановку задания
pн = pн – 1. Если задание
jнp 
jl 
на позицию pн (после задания
jнp  ).
перестало запаздывать, перейти к Блоку 12,
иначе на п.9.1.
БЛОК 10. КОРРЕКЦИЯ ПОЗИЦИИ ВСТРАИВАНИЯ
Блок 10 выполняется, если на позициях 1, pí  1 нет резервов для расширения интервала встраивания задания
либо если существующие ре-
j[g ] ,
зервы оказались недостаточными.
10.1
Ищем на интервале
pн , g 1
позицию вставки задания
зиции pн (pн – новая позиция задания
для всех заданий
ji 
j[g ] )
начиная с по-
и последовательно проверяя
на этом интервале условия: d j   C j  и d j   d j  . Если
оба эти условия выполняются, то задание
62
j[g ] ,
i
j[g ]
i
i
g
встраивается на позицию i,
Минимизация суммарного запаздывания при выполнении независимых заданий
установить pн = i, перейти к Блоку 12. Если же хотя бы одно из этих
условий не выполняется на всем интервале
pн , g 1 ,
то задание
оста-
j[g ]
ется на исходной позиции g, установить pн = g, переход к Блоку 14.
БЛОК 12. БЛОК УПОРЯДОЧЕНИЯ
12.1
Задание
jнp 
пометить знаком «*» (pн – новая позиция задания
дания на интервале
p н  1, g
j[g ] ).
Все за-
упорядочить по неубыванию значений их дли-
тельностей (g – позиция рассматриваемого конкурирующего задания, для
которого выполняется итерация). Если упорядочение выполняется после
встраивания порожденного запаздывающего задания, занимающего промежуточную позицию на интервале
всего интервала
p н  1, g .
1, g ,
то упорядочение выполнить для
Выполнить на упорядоченном интервале свобод-
ные перестановки. Знак «*» с заданий на упорядоченном интервале снимается. Если на интервале упорядочения
p н  1, g
за заданием, помеченным
«*», следовали задания, помеченные «**», то знак «**» у этих заданий снимается. Если задание
g пр = n,
jнp 
не запаздывает, то установить
g пр = pн;
если
то конец алгоритма, текущая последовательность оптимальна,
иначе перейти к Блоку 2 на п.2. Если же задание
jнp 
запаздывает, перейти
на Блок 14.
БЛОК 14. ОПТИМИЗАЦИЯ ЗА СЧЕТ ОСВОБОЖДЕНИЯ РЕЗЕРВОВ ЗАДАНИЙ, ПОМЕЧЕННЫХ «*» («**»)
14.1
Найти очередное задание
позиция задания
j[g ]
j*m
( j*m*  ) на интервале
где pн – новая
(если в результате выполнения процедуры встраи-
вания и Блока 9 задание
j[g ]
осталось на позиции g, то pн = g). Задания
l  <
j*m
( j*m*  ), для которых l j
l
, то рассматриваются только те задания
jн
 p
1, p н  1 ,
*
 m
j**m
l
jн
 p
, не рассматриваются. Если l j
*
 m
j*m
( j*m*  ), для которых
l  =
j**m
d j*
m 
>
63
Глава 1
d j . В первую очередь анализируется задание, помеченное «*» («**») по 
н
p
следним, затем предпоследним и т. д. Если помеченное задание найдено,
то перейти на п. 14.2. Иначе: установить
g пр = pн.
Если
g пр =
n, то конец
алгоритма, текущая последовательность – оптимальна. Иначе перейти на
Блок 2.
14.2
Проверить условие:
C j н  d j*
 p
m 
<  max0, C j   d j   .
pн
i
im
(1.12)
i
При выполнении этого условия перейти на п. 14.3, иначе на п. 14.1.
14.3
Запомнить текущую подпоследовательность заданий 1, p í , обозначив ее
ф .
14.4
Выполнить перестановку задания
*
j[m
]
*
j[m
]
**
( j[m
] ) после задания
jнp  .
Задание
(если оно не помечено «**») пометить «**» и запомнить новое время
начала выполнения как наиболее ранний момент начала выполнения.
Если задание
*
j[m
]
**
( j[m
] ) не является конкурирующим заданием, для кото-
рого выполняется итерация оптимизации, перейти на п. 14.5. Иначе, если
задание
*
j[m
]
**
( j[m
] ) является конкурирующим и в результате перестановки
заняло промежуточную позицию (за ним следует непомеченное задание
меньшей длительности), то перейти на п. 14.5. Иначе, если задание
*
j[m
]
**
( j[m
] ) в результате перестановки заняло исходную позицию g в соответ-
ствии с его длительностью (за ним следует непомеченное задание большей длительности), то сравнить значения функционалов подпоследовательности
ф
и подпоследовательности, запомненной на шаге 1
предыдущей итерации, выбрать подпоследовательность с наименьшим
значением функционала. Проверить условия утверждений 1.24, 1.28, 1.29
и исключить из множества конкурирующих часть заданий, следующих
за
j[g ] .
Если за
j[g ]
следуют как запаздывающие, так и незапаздывающие
задания, то запомнить момент начала его выполнения
64
T jнg 
как наиболее
Минимизация суммарного запаздывания при выполнении независимых заданий
ранний момент начала его выполнения. Установить g пр = g, перейти на
Блок 2, начало следующей итерации.
14.5
Установить
g пр = m – 1,
где m – позиция задания
*
j[m
]
до перестановки, пе-
рейти на Блок 2, переупорядочивая по вышеизложенным правилам задания
на интервале 1, p н  1 (обозначим подпоследовательность 1, p í через
14.6
Определить значение функционала полученной подпоследовательности
н
14.7
и сравнить его со значением функционала подпоследовательности
ф .
Если значение функционала не уменьшилось, возвратиться к последовательности
14.8
н ).
ф
и перейти на п.14.1.
В случае уменьшения значения целевой функции в последовательности
н
обозначение «*» («**») снимается с задания
*
j[m
]
**
( j[m
] ), если это задание
заняло позицию в соответствии с его длительностью (за ним следуют
непомеченные задания такой же или большей длительности). Иначе это
задание помечается «**» и запоминается наиболее раннее время начала
его выполнения. Если на интервале перемещения задания
*
j[m
]
**
( j[m
] ) есть
другие задания, помеченные «**», то эти задания помечаются «*» и уничтожается наиболее раннее время начала их выполнения.
14.9
Ищем очередное задание
*
j[m
]
**
( j[m
] ), для которого выполняется условие
(1.12). Если такое задание найдено, переходим к п.14.1, выполняя его в свою
очередь для задания
*
j[m
]
(обозначив его
jнp  ).
Иначе установить
g пр = pн,
пе-
рейти на Блок 2, п. 2.
1.4 Характеристика полиномиальной составляющей ПДС-алгоритма
Если в процессе решения произвольной индивидуальной задачи выполняются строго определенные для полиномиальной составляющей алгоритма логикоаналитические условия, полученные в результате исследования свойств задачи,
то данная произвольная индивидуальная задача решается этим подалгоритмом
точно (сложность решения – полином от размерности произвольной индивиду-
65
Глава 1
альной задачи). В этом случае точное решение достигается выполнением только
тех блоков алгоритма, которые имеют полиномиальную трудоемкость.
В следующих утверждениях рассматриваются отдельные случаи, когда оптимальное решение задачи достигается полиномиальной составляющей алгоритма.
Утверждение 1.33. Пусть в последовательности
 уп j[g ]
– первое запазды-
вающее задание, и выполняется: max r(  уп )  l j[ g ] . В этом случае оптимальное
значение функционала достигается за полиномиальное время с трудоемкостью,
определяемой функцией О(n log n).
Доказательство. При выполнении условий данного утверждения процедура
встраивания и последующей оптимизации за счет использования резервов
предшествующих заданий в соответствии с условием (1.3) может быть реализована только для одного из запаздывающих заданий. Трудоемкость алгоритма
определяется трудоемкостью сортировки О(n log n).
Пример к утверждению 1.33.
Таблица 1.21 – Исходные данные для примера к утверждению 1.33
№ задания 1
2
3
4
5
6
7
8
9 10
11 12 13 14 15 16 17 18 19 20
lj
27 39 52 66 81 97 67 68 55 1
dj
lj – длительность выполнения задания j;
dj – директивный срок задания j
 уп –
последовательность, упорядоченная по неубыванию значений длитель-
ностей заданий j:
66
Минимизация суммарного запаздывания при выполнении независимых заданий
Таблица 1.22 – Последовательность  уп
№ п/п № задания lj
dj
Cj
fj
1
1
11
27
11
–
2
2
12
39
23
–
3
3
13
52
36
–
4
4
14
66
50
–
5
5
15
81
65
–
6
6
16
97
81
–
7
7
17
67
98
31
8
8
18
68 116 48
9
9
19
55 135 80
10
10
20
1
155 154
313
C7н =
67 – 17 = 50 – момент начала выполнения задания 7.
Итерация 1 для задания 7. Позиция встраивания задания 7 равна 5. Последовательность 1, полученная в результате встраивания задания 7 и последующего
упорядочения:
Таблица 1.23 – Итерация 1
№ п/п № задания
1
1
2
2
3
3
4
4
5
7*
6
5
7
6
8
8
9
9
10
10
Итерация 2 для задания 5.
C5н =
lj
11
12
13
14
17
15
16
18
19
20
dj
27
39
52
66
67
81
97
68
55
1
Cj
11
23
36
50
67
82
98
116
135
155
fj
–
–
–
–
–
1
1
48
80
154
284
81 – 15 = 66. Позиция встраивания задания 5
равна 5. Так как эту позицию занимает задание 7, для которого условие (1.12) не
выполняется, и у незапаздывающих заданий j[i], i = 1, 4 , d j[i ] < d5, то задание 5
остается на занимаемой позиции.
Аналогичны рассуждения на итерации 3 для задания 6, занимающего позицию 7. Задание 6 также остается на занимаемой позиции.
Итерация 4 для задания 8. Позиция встраивания задания 8 равна 5.
C8н =
68 –
18 = 50. На позиции 5 находится задание 7, для которого l7 < l8, d7 < d8. Следова67
Глава 1
тельно, позиция встраивания задания 8 равна 6. Позицию 6 занимает запаздывающее задание 5, l5 < l8, аналогично l6 < l8, задание 6 запаздывает. Следовательно, задание 8 остается на занимаемой позиции.
Итерация 5 для задания 9. Позиция встраивания задания 9 равна 4.
Таблица 1.24 – Итерация 5
№ п/п № задания
1
1
2
2
3
3
4
9
5
4
6
5
7
6
8
7
9
8
10
10
lj
11
12
13
19
14
15
16
17
18
20
dj
27
39
52
55
66
81
97
67
68
1
Cj
11
23
36
55
69
84
100
117
135
155
fj
–
–
–
–
3
3
3
50
67
154
280
Итерация 6 для задания 10. Позиция встраивания равна 1.
Таблица 1.25 – Итерация 6
№ п/п № задания
1
10*
2
1
3
2
4
3
5
4
6
5
7
6
8
7
9
8
10
9
lj
20
11
12
13
14
15
16
17
18
19
dj
1
27
39
52
66
81
97
67
68
55
Cj
20
31
43
46
70
85
101
118
136
155
fj
19
4
4
4
4
4
4
51
68
100
262 opt
На итерации 6 получено оптимальное решение.
В приведенном примере максимальный резерв в последовательности
 уп
меньше длительности первого запаздывающего задания. Следовательно, существующие резервы в оптимальном расписании может использовать только одно
из конкурирующих запаздывающих заданий.
Оптимальное значение функционала достигается за полиномиальное время с
трудоемкостью O(n log n).
68
Минимизация суммарного запаздывания при выполнении независимых заданий
Утверждение 1.34. Пусть j[g ] – первое запаздывающее задание в последовательности  сп . Если в этой последовательности на интервале
ция встраивания задания
j[g ] ,
1, p  1 ,
резервы отсутствуют, задание
где p – позина позиции p
j[g ]
остается запаздывающим, на интервале p, g  1 для каждой пары заданий j[ s ] , j[t ]
выполняется l j[ s ]  l j[ t ] , d j[ s ]  d j[ t ] , и  j[r ] , r =
g  1, n ,
выполняется d j[ r ]  C j[ r ] ,
d j[ g ]  d j[ r ] , то задача решается за полиномиальное время с трудоемкостью, не пре-
вышающей O(n2).
Доказательство. Так как задание
и резервы на интервале
1, p  1
j[g ]
на позиции p остается запаздывающим,
отсутствуют, то задания j[r ] , r =
мальном расписании будут выполняться после задания
g  1, n ,
в опти-
j[g ] .
При выполнении условий утверждения 1.34 последовательность  сп декомпозируется на подпоследовательности меньшего размера, и использование резервов
каждым очередным конкурирующим заданием осуществляется по остаточному
принципу. Трудоемкость выполнения определяется функцией O(n2).
Пример к утверждению 1.34.
Таблица 1.26 – Исходные данные для примера к утверждению 1.34
№ задания 1
2
3
4
5
6
7
8
25 30 45 50 50 67 71 80
lj
25 418 190 200 200 50 40 1
dj
уп
 – последовательность, упорядоченная по неубыванию значений длительностей заданий j:
69
Глава 1
Таблица 1.27 – Последовательность  уп
№ п/п № задания lj
dj
1
1
25
25
2
2
30 418
3
3
45 190
4
4
50 200
5
5
50 200
6
6
67
50
7
7
71
40
8
8
80
1
 сп –
Cj
25
55
100
150
200
267
338
418
fj
–
–
–
–
–
217
298
417
932
последовательность, полученная после выполнения свободных пере-
становок:
Таблица 1.28 – Последовательность  cп
№ п/п № задания lj
1
1
25
2
3
45
3
4
50
4
5
50
5
6
67
6
7
71
7
8
80
8
2
30
dj
25
190
200
200
50
40
1
418
Cj
25
70
120
170
237
308
388
418
fj
–
–
–
–
187
268
387
–
842
Последовательность 1 получена в результате выполнения процедуры встраивания конкурирующего задания 6 и последующего упорядочения.
Таблица 1.29 – Последовательность 1
№ п/п № задания lj
1
1
25
*
2
6
67
3
3
45
4
4
50
5
5
50
6
7
71
7
8
80
8
2
30
dj
25
50
190
200
200
40
1
418
Cj
25
92
137
187
237
308
388
418
fj
0
42
0
0
37
268
387
0
734
Последовательность 2 получена в результате встраивания конкурирующего
задания 7 и последующего упорядочения.
70
Минимизация суммарного запаздывания при выполнении независимых заданий
Таблица 1.30 – Последовательность 2
№ п/п № задания lj
dj
Cj
fj
1
1
25
25
25
0
*
2
6
67
50
92
42
*
3
7
71
40 163
123
4
3
45 190 208
18
5
4
50 200 258
58
6
5
50 200 308
108
7
8
80
1
388
387
8
2
30 418 418
0
736
Последовательность 3 получена в результате переноса конкурирующего задания 7* на более позднюю позицию. Проверка условия (1.9) показала, что перемещение задания 7 после заданий 3 и 4 приводит к ухудшению значения
функционала, после задания 5 – условие (1.9) выполнилось. Задание 8 аналогичным образом не может занять более раннюю позицию. Последовательность 3
оптимальна, получена посредством выполнения полиномиальной составляющей
алгоритма с трудоемкостью O(n2).
Примечание. Задание 2 оставалось на занимаемой позиции при выполнении
процедур упорядочения, так как за ним не следуют запаздывающие задания.
Таблица 1.31 – Последовательность 3
№ п/п № задания lj
1
1
25
*
2
6
67
3
3
45
4
4
50
5
5
50
6
7
71
7
8
80
8
2
30
Утверждение 1.35. Пусть
ности  сп . Если на интервале
j[g ]
dj
25
50
190
200
200
40
1
418
Cj
25
92
137
187
237
308
388
418
fj
0
42
0
0
37
268
387
0
734 opt
– первое запаздывающее задание в последователь-
1, g  1
все задания упорядочены по неубыванию значе-
ний длительности выполнения; max ri  l j[ g ] ,
i  1, g  1
и  j[s ] , s =
g  1, n , d j[ s ]  C j[ s ] ,
то
задача решается за полиномиальное время с трудоемкостью O(n2).
71
Глава 1
Доказательство. При выполнении условий данного утверждения процедура
встраивания и последующей оптимизации за счет использования резервов
предшествующих заданий в соответствии с условием (1.3) может быть реализована только для одного из запаздывающих заданий. Трудоемкость алгоритма
определяется трудоемкостью построения последовательности  сп – O(n2).
Утверждение 1.36. Пусть при выполнении каждой итерации оптимизации
при встраивании очередного запаздывающего задания
j[g ]
(конкурирующего или
порожденного) выполняется: а) фактическая позиция встраивания p H , определяемая в процессе выполнения алгоритма, больше позиции задания, встроенного
последним на предыдущих шагах алгоритма; б) на интервале 1, p H  1 нет заданий
j[k ] ,
для которых выполняются условия:
d j[ k ] > d j[ g ] , d j[ k ] > C j[ k ] , d j[ k ] > C j
[ p H 1]
;
в) на интервале 1, p H  1 для заданий, помеченных «*» («**»), условие (1.12), позволяющее сместить эти задания на более поздние позиции, не выполняется. Тогда задача решается за полиномиальное время с трудоемкостью O(n3).
Доказательство. При выполнении условий утверждения 1.36 каждая текущая
последовательность  k декомпозируется на подпоследовательности меньшего
размера, и использование резервов осуществляется по остаточному принципу.
Следовательно, трудоемкость выполнения алгоритма не превышает O(n3).
Пример к утверждению 1.36.
Таблица 1.32 – Исходные данные для примера к утверждению 1.36
№ задания 1
2
3
4
5
6
7
8
9 10
1
2
7 13 15 17 28 29 29 36
lj
536 538 221 220 332 195 535 303 507 263
dj
№ задания 11 12 13 14 15 16 17 18 19 20
50 66 72 76 76 79 87 90 90 91
lj
209 534 449 198 316 566 374 352 475 535
dj
72
 уп –
последовательность, упоря-
 сп –
последовательность, полу-
доченная по неубыванию значений
ченная после выполнения свободных
длительностей заданий j.
перестановок:
Таблица 1.33 –
Последовательность  уп
№ №
l
dj Cj
п/п зад. j
1
1
1 536 1
2
2
2 538 3
3
3
7 221 10
4
4 13 220 23
5
5 15 332 38
6
6 17 195 55
7
7 28 538 83
8
8 29 303 112
9
9 29 507 141
10 10 36 263 177
11 11 50 209 227
12 12 66 534 293
13 13 72 449 365
14 14 76 198 441
15 15 76 316 517
16 16 79 566 596
17 17 87 374 683
18 18 90 352 773
19 19 90 475 863
20 20 91 535 954
Таблица 1.34 –
Последовательность  сп
№ №
l
dj Cj
п/п зад. j
1 3 7 221 7
2 4 13 220 20
3 6 17 195 37
4 11 50 209 87
5 14 76 198 163
6 10 36 263 199
7 8 29 303 228
8 15 76 316 304
9 5 15 332 319
10 13 72 449 391
11 9 29 507 420
12 12 66 534 486
13 7 28 535 514
14 1 1 536 515
15 2 2 538 517
16 16 79 566 596
17 17 87 374 683
18 18 90 352 773
19 19 90 475 863
20 20 91 535 954
fj
–
–
–
–
–
–
–
–
–
–
18
–
–
243
201
30
309
421
388
419
2029
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
30
309
421
388
419
1567
Множество конкурирующих за-
даний: 17, 18, 19, 20.
73
fj
Последовательность 1 получена в
результате
выполнения
процедуры
встраивания задания 17 на позицию
p = 10 и последующего упорядочения:
Таблица 1.35 –
Последовательность 1
№ №
l
dj Cj
п/п зад. j
1 3 7 221 7
2 4 13 220 20
3 6 17 195 37
4 11 50 209 87
5 14 76 198 163
6 10 36 263 199
7 8 29 303 228
8 15 76 316 304
9 5 15 332 319
10 17* 87 374 406
11 1 1 536 407
12 2 2 538 409
13 7 28 535 437
14 9 29 507 466
15 12 66 534 532
16 13 72 449 604
17 16 79 566 683
18 18 90 352 773
19 19 90 475 863
20 20 91 535 954
74
fj
–
–
–
–
–
–
–
–
–
32
–
–
–
–
–
155
117
421
388
419
1532
Глава 1
Последовательность 2: встраивание задания 13, упорядочение:
Таблица 1.36 –
Последовательность 2
№ №
l
dj Cj
п/п зад. j
1 3 7 221 7
2 4 13 220 20
3 6 17 195 37
4 11 50 209 87
5 14 76 198 163
6 10 36 263 199
7 8 29 303 228
8 15 76 316 304
9 5 15 332 319
10 17* 87 374 406
11 13* 72 449 478
12 1 1 536 479
13 2 2 538 481
14 7 28 535 509
15 9 29 507 538
16 12 66 534 604
17 16 79 566 683
18 18 90 352 773
19 19 90 475 863
20 20 91 535 954
fj
–
–
–
–
–
–
–
–
–
32
29
–
–
–
31
70
117
421
388
419
1507
Минимизация суммарного запаздывания при выполнении независимых заданий
7 8 29 303 228 –
Последовательность 3: свобод8 15 76 316 304 –
ные перестановки заданий 1, 2, 7 по9 5 15 332 319 –
10 17* 87 374 406 32
сле задания 9:
11 13* 72 449 478 29
12 9 29 507 507 –
Таблица 1.37 –
13 7 28 535 535 –
Последовательность 3
14 1 1 536 536 –
№ №
15 2 2 538 538 –
l
dj Cj fj
п/п зад. j
16 12 66 534 604 70
1 3 7 221 7
–
17 16 79 566 683 117
2 4 13 220 20 –
18 18 90 352 773 421
3 6 17 195 37 –
19 19 90 475 863 388
4 11 50 209 87 –
20 20 91 535 954 419
5 14 76 198 163 –
1476
6 10 36 263 199 –
opt
Задание 12 остается на занимаемой позиции, так как на интервале 1,15 выполняется условие (б) утверждения 1.36, а для заданий 17* и 13* выполняется
условие (в) утверждения 1.36. Задание 16 не может занять более раннюю позицию, так как это задание не конкурирующее. Задание 18 остается на занимаемой
позиции, так как выполняются условия (б) и (в) утверждения 1.36. l19 > l18, d19 >
d18; l20 > l19, d20 > d19. Следовательно, последовательность 3 оптимальна.
Утверждение 1.37. Если условия утверждений 1.10 или 1.16 (для всех конкурирующих заданий) не выполняются, или выполняются условия хотя бы одного из утверждений 1.14 или 1.33–1.36, то задача решается посредством полиномиальной составляющей предложенного алгоритма.
Таким образом, реализацию полиномиальной составляющей алгоритма
можно представить в виде следующей блок-схемы (рис. 1.4).
На этой схеме отражены следующие основные этапы решения задач:
– упорядочение заданий по неубыванию длительностей выполнения (последовательность уп);
– выполнение свободных перестановок и определение множества конкурирующих заданий (последовательность сп);
– выполнение итераций оптимизации для использования резервов предшествующих заданий каждым конкурирующим заданием j[k] (последовательность k).
75
Глава 1
Для каждого этапа сформулированы условия (утверждения 1.33–1.37), при
выполнении которых оптимальное решение задачи достигается за полиномиальное время.
Начало
Нет
Выполняются условия
утверждения 1.15
Упорядочение
заданий по
неубыванию
длительностей
Да
Да
уп
Выполняются условия
утверждений 1.14
или 1.34–1.35
Нет
Нет
Выполняются условия
утверждения 1.10
Выполнение
итерации
оптимизации для
конкурирующих
заданий
Да
Выполняются условия
утверждения 1.33
Да
k
Нет
Да
Свободные
перестановки
Выполняются условия
утверждения 1.36
Нет
сп
Задача решается
экспоненциальной
составляющей
алгоритма
Задача решается
полиномиальной
составляющей
алгоритма
Конец
Рис. 1.4 – Условия выполнения полиномиальной составляющей
ПДС-алгоритма
Если в последовательности уп не выполняются условия утверждения 1.10,
то эта последовательность оптимальна, иначе проверяем условия утверждения
1.33, при выполнении которых решение достигается за полиномиальное время с
76
Минимизация суммарного запаздывания при выполнении независимых заданий
трудоемкостью О(n log n). Иначе выполняются свободные перестановки и анализируется полученная последовательность сп. При выполнении условий
утверждения 1.14 или при невыполнении 1.16 (для всех конкурирующих заданий) последовательность сп оптимальна, время выполнения алгоритма определяется трудоемкостью O(n2). Иначе проверяются условия утверждений 1.34–
1.35. Если условия хотя бы одного из утверждений выполняются, то задача решается за полиномиальное время с максимальной трудоемкостью О(n2). Иначе
выполняются итерации оптимизации для конкурирующих заданий, и на каждой
итерации для текущей последовательности k проверяются условия утверждения 1.36. При выполнении этих условий задача решается за полиномиальное
время с трудоемкостью О(n3). Иначе реализуется экспоненциальная составляющая алгоритма.
Таким образом, общая трудоемкость выполнения полиномиальной составляющей ПДС-алгоритма не превышает О(n3).
В процессе выполнения алгоритма задача декомпозируется на подзадачи
меньшего размера, а в результате проверки условий утверждений 1.24, 1.28, 1.29
часть конкурирующих заданий исключается из множества конкурирующих, что
существенно сокращает число выполняемых итераций.
Экспериментальные исследования показали статистическую значимость полиномиальной составляющей. При решении индивидуальных задач выполнение
итераций оптимизации реализуется далеко не для всего множества запаздывающих заданий, что существенно сокращает трудоемкость алгоритма.
1.5 Характеристика экспоненциальной составляющей ПДС-алгоритма
Трудоемкий перебор различных вариантов использования резервов конкурирующими заданиями возникает, если для всех конкурирующих заданий выполняется
lj  lj
[i ]
[g]
d j[ i ]  d j[ g ] ,
(1.13)
причем длительности выполнения отличаются на незначительную величину, а
резервы таковы, что итерации оптимизации выполняются для каждого конкури77
Глава 1
рующего задания. В этом случае реализуется переход на п.14.9 алгоритма. При
*
**
этом для задания j[m
] ( j[m ] ) в свою очередь ищется другое задание, помеченное
«*» («**»), которое может быть встроено после него, что приведет к уменьшению
значения функционала. В этом случае осуществляется перебор заданий, помеченных «*» («**») с последующей оптимизацией подпоследовательности, что
может быть связано с экспоненциальной трудоемкостью.
Эффективность экспоненциальной составляющей алгоритма в целом определяется следующими факторами:
1. На этапе оптимизации последовательность СП декомпозируется на подпоследовательности меньшего размера. Оптимизация осуществляется на подпоследовательности, ограниченной позицией встраивания очередного конкурирующего задания и позицией, занимаемой этим заданием в последовательности
СП. В эту подпоследовательность в процессе решения могут быть включены
только задания, образующие резервы на интервале встраивания рассматриваемого конкурирующего задания. Таким образом, реализуется декомпозиция задачи на подзадачи меньшего размера.
2. В процессе решения задачи проверяются условия утверждений 1.24, 1.28,
1.29, позволяющие часть заданий исключить из множества конкурирующих. В
утверждениях 1.28, 1.29 сформулированы признаки оптимальности полученных
решений, что существенно сокращает число выполняемых итераций оптимизации, а следовательно, и время решения задачи.
3. Экспериментальные исследования в целом показали, что при невыполнении условия (1.13) при решении индивидуальных задач существует лишь незначительный перебор. И только для специальных случаев параметров задачи можно выйти на полный перебор вариантов для отдельных подпоследовательностей.
Дальнейшие исследования будут проводиться по следующим направлениям,
дополняющим друг друга: а) выделение случаев, когда с учетом декомпозиции
реализуется трудоемкий перебор различных вариантов использования резервов
предшествующих заданий конкурирующими заданиями, и доказательство эффективности экспоненциальной составляющей алгоритма на основе эксперимен78
Минимизация суммарного запаздывания при выполнении независимых заданий
тальных исследований; б) выделение и обоснование случаев, когда с учетом декомпозиции реализуется трудоемкий перебор вариантов решения задачи, и теоретическое обоснование расширения области определения полиномиальной составляющей алгоритма в тех случаях, когда экспоненциальная составляющая приводит
к незначительному перебору вариантов.
1.6 Иллюстративные примеры
В следующих примерах показана эффективность как полиномиальной, так и
экспоненциальной составляющих разработанного ПДС-алгоритма.
ПРИМЕР 1 (20 ЗАДАНИЙ)
Таблица 1.38 – Исходные данные для иллюстративного примера
№ задания 1
2
3
4
5
6
7
8
9 10
1
4 10 16 18 24 27 30 34 36
lj
450 570 544 489 476 514 552 547 578 463
dj
№ задания 11 12 13 14 15 16 17 18 19 20
40 40 60 65 66 67 68 78 92 92
lj
448 481 575 545 510 474 522 598 530 600
dj
79
 уп
– последовательность, упо-
 сп
– последовательность, полу-
рядоченная по неубыванию значений
ченная после выполнения свободных
длительностей заданий j:
перестановок. Конкурирующие зада-
Таблица 1.39 –
Последовательность  уп
№ №
l
dj Cj
п/п зад. j
1
1
1 450 1
2
2
4 570 5
3
3 10 544 15
4
4 16 489 31
5
5 18 476 49
6
6 24 514 73
7
7 27 552 100
8
8 30 547 130
9
9 34 578 164
10 10 36 463 200
11 11 40 448 240
12 12 40 481 280
13 13 60 575 340
14 14 65 545 405
15 15 66 510 471
16 16 67 474 538
17 17 68 522 606
18 18 78 598 684
19 19 92 530 776
20 20 92 600 868
80
ния – 17 и 19:
fj
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
64
84
86
246
268
748
Таблица 1.40 –
Последовательность  сп
№ №
l
dj Cj
п/п зад. j
1 1 1 450 1
2 2 4 570 5
3 3 10 544 15
4 4 16 489 31
5 5 18 476 49
6 6 24 514 73
7 7 27 552 100
8 8 30 547 130
9 10 36 463 166
10 11 40 448 206
11 12 40 481 246
12 14 65 545 311
13 15 66 510 377
14 16 67 474 444
15 13 60 575 504
16 9 34 578 538
17 17 68 522 606
18 18 78 598 684
19 19 92 530 776
20 20 92 600 868
fj
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
84
86
246
268
684
Минимизация суммарного запаздывания при выполнении независимых заданий
Последовательность 1 получена
Последовательность 2: испольв результате выполнения процедуры
зование резервов. Задание 9 встраи-
встраивания задания 17 на позицию
ваем после задания 13. Определение
p = 15 и упорядочения на интервале
позиции встраивания задания 19:
встраивания:
Таблица 1.41 –
Последовательность 1
№ №
l
dj Cj
п/п зад. j
1 1 1 450 1
2 2 4 570 5
3 3 10 544 15
4 4 16 489 31
5 5 18 476 49
6 6 24 514 73
7 7 27 552 100
8 8 30 547 130
9 10 36 463 166
10 11 40 448 206
11 12 40 481 246
12 14 65 545 311
13 15 66 510 377
14 16 67 474 444
15 17* 68 522 512
16 9 34 578 546
17 13 60 575 606
18 18 78 598 684
19 19 92 530 776
20 20 92 600 868
fj
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
31
86
246
268
631
Таблица 1.42 –
Последовательность 2
№ №
l
dj Cj
п/п зад. j
1 1 1 450 1
2 2 4 570 5
3 3 10 544 15
4 4 16 489 31
5 5 18 476 49
6 6 24 514 73
7 7 27 552 100
8 8 30 547 130
9 10 36 463 166
10 11 40 448 206
11 12 40 481 246
12 14 65 545 311
13 15 66 510 377
14 16 67 474 444
15 17* 68 522 512
16 13 60 575 572
17 9 34 578 606
18 18 78 598 684
19 19 92 530 776
20 20 92 600 868
fj
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
28
86
246
268
628
81
Последовательность 3: встраи-
Глава 1
Последовательность 4 получена
вание задания 19 на позицию после
в результате расширения интервала
задания 17, так как l19  l17 , d19  d17 .
встраивания задания 19 (перестанов-
Упорядочение:
ка заданий 8 и 14 и последующее
Таблица 1.43 –
Последовательность 3
№ №
l
dj Cj
п/п зад. j
1 1 1 450 1
2 2 4 570 5
3 3 10 544 15
4 4 16 489 31
5 5 18 476 49
6 6 24 514 73
7 7 27 552 100
8 8 30 547 130
9 10 36 463 166
10 11 40 448 206
11 12 40 481 246
12 14 65 545 311
13 15 66 510 377
14 16 67 474 444
15 17* 68 522 512
16 19* 92 530 604
17 9 34 578 638
18 13 60 575 698
19 18 78 598 776
20 20 92 600 868
82
упорядочение):
fj
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
74
60
123
178
268
703
Таблица 1.44 –
Последовательность 4
№ №
l
dj Cj
п/п зад. j
1 1 1 450 1
2 2 4 570 5
3 3 10 544 15
4 4 16 489 31
5 5 18 476 49
6 6 24 514 73
7 7 27 552 100
8 10 36 463 136
9 11 40 448 176
10 12 40 481 216
11 15 66 510 282
12 16 67 474 349
13 17* 68 522 417
14 19* 92 530 509
15 8 30 547 539
16 9 34 578 573
17 13 60 575 633
18 14 65 545 698
19 18 78 598 776
20 20 92 600 868
fj
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
58
153
178
268
657
Минимизация суммарного запаздывания при выполнении независимых заданий
Последовательность 5: встраиПоследовательность 6: расшивание задания 14, упорядочение:
Таблица 1.45 –
Последовательность 5
№ №
l
dj Cj
п/п зад. j
1 1 1 450 1
2 2 4 570 5
3 3 10 544 15
4 4 16 489 31
5 5 18 476 49
6 6 24 514 73
7 7 27 552 100
8 10 36 463 136
9 11 40 448 176
10 12 40 481 216
11 15 66 510 282
12 16 67 474 349
13 17* 68 522 417
14 19* 92 530 509
15 14* 65 545 574
16 8 30 547 604
17 9 34 578 638
18 13 60 575 698
19 18 78 598 776
20 20 92 600 868
рение интервала встраивания задания 14 (перестановка задания 7 после
задания 14):
fj
–
–
–
–
–
–
–
–
–
–
–
–
–
–
29
57
60
123
178
268
715
Таблица 1.46 –
Последовательность 6
№ №
l
dj Cj
п/п зад. j
1 1 1 450 1
2 2 4 570 5
3 3 10 544 15
4 4 16 489 31
5 5 18 476 49
6 6 24 514 73
7 10 36 463 109
8 11 40 448 149
9 12 40 481 189
10 15 66 510 255
11 16 67 474 322
12 17* 68 522 390
13 19* 92 530 482
14 14* 65 545 547
15 7 27 552 574
16 8 30 547 604
17 9 34 578 638
18 13 60 575 698
19 18 78 598 776
20 20 92 600 868
fj
–
–
–
–
–
–
–
–
–
–
–
–
–
2
22
57
60
123
178
268
710
83
Последовательность 7: свобод-
Последовательность
Глава 1
8: осво-
ная перестановка задания 2 после за-
бождение резервов заданием 14*.
дания 14, упорядочение:
Встраивание его после задания 8. За-
Таблица 1.47 –
Последовательность 7
№ №
l
dj Cj
п/п зад. j
1 1 1 450 1
2 3 10 544 11
3 4 16 489 27
4 5 18 476 45
5 6 24 514 69
6 10 36 463 105
7 11 40 448 145
8 12 40 481 185
9 15 66 510 251
10 16 67 474 318
11 17* 68 522 386
12 19* 92 530 478
13 14* 65 545 543
14 2 4 570 547
15 7 27 552 574
16 8 30 547 604
17 9 34 578 638
18 13 60 575 698
19 18 78 598 776
20 20 92 600 868
84
дание 14* помечаем «**»:
fj
–
–
–
–
–
–
–
–
–
–
–
–
–
–
22
57
60
123
178
268
708
Таблица 1.48 –
Последовательность 8
№ №
l
dj Cj
п/п зад. j
1 1 1 450 1
2 3 10 544 11
3 4 16 489 27
4 5 18 476 45
5 6 24 514 69
6 10 36 463 105
7 11 40 448 145
8 12 40 481 185
9 15 66 510 251
10 16 67 474 318
11 17* 68 522 386
12 19* 92 530 478
13 2 4 570 482
14 7 27 552 509
15 8 30 547 539
16 14** 65 545 604
17 9 34 578 638
18 13 60 575 698
19 18 78 598 776
20 20 92 600 868
fj
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
59
60
123
178
268
688
Минимизация суммарного запаздывания при выполнении независимых заданий
Последовательность 9: встраиПоследовательность 10: переставание задания 14** после задания 9:
новка задания 14** после задания 13:
Таблица 1.49 –
Последовательность 9
№ №
l
dj Cj
п/п зад. j
1 1 1 450 1
2 3 10 544 11
3 4 16 489 27
4 5 18 476 45
5 6 24 514 69
6 10 36 463 105
7 11 40 448 145
8 12 40 481 185
9 15 66 510 251
10 16 67 474 318
11 17* 68 522 386
12 19* 92 530 478
13 2 4 570 482
14 7 27 552 509
15 8 30 547 539
16 9 34 578 573
17 14** 65 545 638
18 13 60 575 698
19 18 78 598 776
20 20 92 600 868
Таблица 1.50 –
Последовательность 10
№ №
l
dj Cj
п/п зад. j
1 1 1 450 1
2 3 10 544 11
3 4 16 489 27
4 5 18 476 45
5 6 24 514 69
6 10 36 463 105
7 11 40 448 145
8 12 40 481 185
9 15 66 510 251
10 16 67 474 318
11 17* 68 522 386
12 19* 92 530 478
13 2 4 570 482
14 7 27 552 509
15 8 30 547 539
16 9 34 578 573
17 13 60 575 633
18 14** 65 545 698
19 18 78 598 776
20 20 92 600 868
fj
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
93
123
178
268
662
fj
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
58
153
178
268
657
85
Последовательность 11: для за-
Глава 1
Последовательность 12: исполь-
дания 14 в свою очередь ищем зада-
зование заданием 14 резервов, осво-
ния, помеченные «*» («**»), проверяя
божденных заданием 19**. Значение
условие (1.12), встраиваем задание
функционала уменьшилось.
19* после задания 14. Запоминаем
последовательность 10:
Таблица 1.51 –
Последовательность 11
№ №
l
dj Cj
п/п зад. j
1 1 1 450 1
2 3 10 544 11
3 4 16 489 27
4 5 18 476 45
5 6 24 514 69
6 10 36 463 105
7 11 40 448 145
8 12 40 481 185
9 15 66 510 251
10 16 67 474 318
11 17* 68 522 386
12 2 4 570 390
13 7 27 552 417
14 8 30 547 447
15 9 34 578 481
16 13 60 575 541
17 14 65 545 606
18 19** 92 530 698
19 18 78 598 776
20 20 92 600 868
86
fj
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
61
168
178
268
675
Таблица 1.52 –
Последовательность 12
№ №
l
dj Cj
п/п зад. j
1 1 1 450 1
2 3 10 544 11
3 4 16 489 27
4 5 18 476 45
5 6 24 514 69
6 10 36 463 105
7 11 40 448 145
8 12 40 481 185
9 15 66 510 251
10 16 67 474 318
11 17* 68 522 386
12 2 4 570 390
13 7 27 552 417
14 8 30 547 447
15 14* 65 545 512
16 13 60 575 572
17 9 34 578 606
18 19** 92 530 698
19 18 78 598 776
20 20 92 600 868
fj
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
28
168
178
268
642
Минимизация суммарного запаздывания при выполнении независимых заданий
Последовательность 13: задание 19** встраиваем на исходную позицию
после задания 18. Последовательность 13 оптимальна.
Таблица 1.53 – Последовательность 13 (оптимальная)
№ п/п № зад.
lj dj Cj
fj
1
1
1 450 1
–
2
3
10 544 11
–
3
4
16 489 27
–
4
5
18 476 45
–
5
6
24 514 69
–
6
10
36 463 105
–
7
11
40 448 145
–
8
12
40 481 185
–
9
15
66 510 251
–
10
16
67 474 318
–
*
11
17
68 522 386
–
12
2
4 570 390
–
13
7
27 552 417
–
14
8
30 547 447
–
*
15
14
65 545 512
–
16
13
60 575 572
–
17
9
34 578 606
28
18
18
78 598 684
86
19
19
92 530 776 246
20
20
92 600 868 268
628 opt
ПРИМЕР 2 (100 ЗАДАНИЙ)
Таблица 1.54 – Исходные данные для примера (последовательность
j
1
2
3
4
1
1
1
3
lj
dj 1340 1556 1832 1458
1
2
3
6
Cj
0
0
0
0
Tj
j
11 12 13 14
7
7
7
7
lj
dj 1854 1905 1918 2161
Cj 44 51 58 65
0
0
0
0
Tj
5
4
1922
10
0
15
8
1371
73
0
6
4
1999
14
0
16
8
1747
81
0
7
5
1555
19
0
17
10
1473
91
0
8
6
1414
25
0
18
10
1485
101
0
9
6
1453
31
0
19
10
1527
111
0
 уп ).
10
6
1940
37
0
20
11
1765
122
0
87
Глава 1
Окончание таблицы 1.54.
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
21
11
2065
133
0
31
20
1815
294
0
41
28
2139
539
0
51
38
1687
877
0
61
50
2083
1337
0
71
63
1986
1915
0
81
77
1883
2638
755
91
89
1975
3479
1504
22
13
1654
146
0
32
22
1884
316
0
42
29
1380
568
0
52
41
1367
918
0
62
51
1690
1388
0
72
65
1675
1980
305
82
77
1901
2715
814
92
90
1809
3569
1760
23
13
1705
159
0
33
22
1935
338
0
43
30
1826
598
0
53
43
2161
961
0
63
53
1319
1441
122
73
67
1667
2047
380
83
79
1886
2794
908
93
90
1994
3659
1665
24
14
1397
173
0
34
22
2047
360
0
44
32
1555
630
0
54
44
1526
1005
0
64
54
1335
1495
160
74
72
1318
2119
801
84
81
1932
2875
943
94
91
2005
3750
1745
25
14
1914
187
0
35
24
1789
384
0
45
33
1684
663
0
55
44
1536
1049
0
65
56
1839
1551
0
75
72
2096
2191
95
85
81
1992
2956
964
95
93
1901
3843
1942
26
16
1743
203
0
36
24
1934
408
0
46
33
1814
696
0
56
45
1569
1094
0
66
59
1531
1610
79
76
73
1338
2264
926
86
83
1893
3039
1146
96
93
1959
3936
1977
27
16
2151
219
0
37
24
2093
432
0
47
34
1327
730
0
57
46
1339
1140
0
67
59
1542
1669
127
77
73
1415
2337
922
87
87
1854
3126
1272
97
95
1882
4031
2149
28
17
1853
236
0
38
24
2148
456
0
48
34
1927
764
0
58
48
2152
1188
0
68
59
1799
1728
0
78
74
1351
2411
1060
88
87
1964
3213
1249
98
96
1882
4127
2245
29
19
1312
255
0
39
27
1496
483
0
49
37
1538
801
0
59
49
1665
1237
0
69
61
1765
1789
24
79
74
1733
2485
752
89
88
1977
3301
1324
99
98
1921
4225
2304
30
19
1479
274
0
40
28
1406
511
0
50
38
1660
839
0
60
50
1468
1287
0
70
63
1386
1852
466
80
76
1793
2561
768
90
89
1872
3390
1518
100
100
1898
4325
2427
Значение функционала: 37598. В результате решения задачи выполнены 6
итераций (для заданий 75, 76, 77, 78, 79, 80). Задания на позициях 81–100 были
выведены из множества конкурирующих в процессе решения.
Значение функционала в оптимальной последовательности: f опт = 33163.
88
Минимизация суммарного запаздывания при выполнении независимых заданий
Таблица 1.55 – Последовательность
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
1
1
1340
1
0
22
13
1654
73
0
49
37
1538
345
0
64
54
1335
809
0
16
8
1747
1422
0
3
1
1832
1690
0
5
4
1922
1913
0
41
28
2139
2138
0
81
77
1883
2638
755
2
1
1556
2
0
24
14
1397
87
0
50
38
1660
383
0
66
59
1531
868
0
20
11
1765
1433
0
43
30
1826
1720
0
33
22
1935
1935
0
27
16
2151
2154
3
82
77
1901
2715
814
4
3
1458
5
0
29
19
1312
106
0
52
41
1367
424
0
67
59
1542
927
0
23
13
1705
1446
0
68
59
1799
1779
0
10
6
1940
1941
1
14
7
2161
2161
0
83
79
1886
2794
908
7
5
1555
10
0
30
19
1479
125
0
54
44
1526
468
0
70
63
1386
990
0
26
16
1743
1462
0
65
56
1839
1835
0
36
24
1934
1965
31
38
24
2148
2185
37
84
81
1932
2875
943
опт .
8
6
1414
16
0
39
27
1496
152
0
55
44
1536
512
0
72
65
1675
1055
0
35
24
1789
1486
0
28
17
1853
1852
0
48
34
1927
1999
72
53
43
2161
2228
67
85
81
1992
2956
964
9
6
1453
22
0
40
28
1406
180
0
56
45
1569
557
0
73
67
1667
1122
0
51
38
1687
1524
0
11
7
1854
1859
5
6
4
1999
2003
4
58
48
2152
2276
124
86
83
1893
3039
1146
15
8
1371
30
0
42
29
1380
209
0
57
46
1339
603
0
74
72
1318
1194
0
62
51
1690
1575
0
32
22
1884
1881
0
21
11
2065
2014
0
71
63
1986
2339
353
87
87
1854
3126
1272
17
10
1473
40
0
44
32
1555
241
0
59
49
1665
652
0
76
73
1338
1267
0
69
61
1765
1636
0
12
7
1905
1888
0
34
22
2047
2036
0
75
72
2096
2411
315
88
87
1964
3213
1249
18
10
1485
50
0
45
33
1684
274
0
60
50
1468
702
0
78
74
1351
1341
0
46
33
1814
1669
0
25
14
1914
1902
0
61
50
2083
2086
3
79
74
1733
2485
752
89
88
1977
3301
1324
19
10
1527
60
0
47
34
1327
308
0
63
53
1319
755
0
77
73
1415
1414
0
31
20
1815
1689
0
13
7
1918
1909
0
37
24
2093
2110
17
80
76
1793
2561
768
90
89
1872
3390
1518
89
Глава 1
Окончание таблицы 1.55.
j
91 92 93
89 90 90
lj
dj 1975 1809 1994
Cj 3479 3569 3659
Tj 1504 1760 1665
94
91
2005
3750
1745
95
93
1901
3843
1942
96
93
1959
3936
1977
97
95
1882
4031
2149
98
96
1882
4127
2245
99
98
1921
4225
2304
100
100
1898
4325
2427
ПРИМЕР 3 (100 ЗАДАНИЙ)
Таблица 1.56 – Исходные данные для примера (последовательность
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
90
1
1
2180
1
–
11
9
3283
52
–
21
15
3230
171
–
31
29
2568
390
–
41
36
3277
724
–
51
46
3680
1125
–
61
54
3413
1629
–
2
1
3034
2
–
12
10
2078
62
–
22
15
3682
186
–
32
29
3040
419
–
42
37
1971
761
–
52
47
2800
1172
–
62
56
2150
1685
–
3
1
3513
3
–
13
11
2793
73
–
23
17
2136
203
–
33
31
2247
450
–
43
37
2035
798
–
53
47
3059
1219
–
63
60
2919
1745
–
4
4
2607
7
–
14
11
3144
84
–
24
18
2708
221
–
34
32
2135
482
–
44
37
2436
835
–
54
47
3133
1266
–
64
62
2608
1807
–
5
4
3209
11
–
15
11
3212
95
–
25
18
3640
239
–
35
33
2203
515
–
45
37
2722
872
–
55
49
2834
1315
–
65
62
3497
1869
–
6
4
3619
15
–
16
11
3557
106
–
26
23
2244
262
–
36
34
2310
549
–
46
38
3374
910
–
56
50
3274
1365
–
66
64
2142
1933
–
7
5
3676
20
–
17
11
3663
117
–
27
23
2795
285
–
37
34
2319
583
–
47
40
3305
950
–
57
51
3268
1416
–
67
64
2146
1997
–
8
7
2390
27
–
18
12
3312
129
–
28
24
2278
309
–
38
35
2280
618
–
48
41
2589
991
–
58
52
2387
1468
–
68
64
3485
2061
–
9
7
3262
34
–
19
13
3272
142
–
29
26
2383
335
–
39
35
2863
653
–
49
42
2414
1033
–
59
53
3461
1521
–
69
66
2239
2127
–
10
9
2085
43
–
20
14
3643
156
–
30
26
3634
361
–
40
35
3027
688
–
50
46
2797
1079
–
60
54
2695
1575
–
70
66
2651
2193
–
 уп ).
Минимизация суммарного запаздывания при выполнении независимых заданий
Окончание таблицы 1.56.
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
71
67
2300
2260
–
81
83
2396
3023
627
91
94
2453
3921
1468
72
69
3757
2329
–
82
85
2487
3108
621
92
94
3419
4015
596
73
70
2876
2399
–
83
86
3591
3194
–
93
96
2164
4111
1947
74
72
2625
2471
–
84
89
3209
3283
74
94
96
3049
4207
1158
75
75
1973
2546
573
85
89
3279
3372
93
95
97
1954
4304
2350
76
76
2473
2622
149
86
90
2908
3462
554
96
97
3755
4401
646
77
77
3197
2699
–
87
90
3175
3552
377
97
98
2475
4499
2024
Значение функционала по последовательности
78
77
3769
2776
–
88
91
2516
3643
1127
98
98
3439
4597
1158
 уп
79
82
3011
2858
–
89
92
2550
3735
1185
99
99
1946
4696
2750
80
82
3339
2940
–
90
92
3766
3827
61
100
99
2405
4795
2390
составляет 21928.
Оптимальное решение задачи получено посредством экспоненциальной
составляющей алгоритма. Хотя при решении задачи был использован блок
14.9, реализующий перебор различных вариантов использования резервов запаздывающими заданиями, но фактически перебор был незначительным, и задача была решена быстро. Было выполнено 6 итераций (по конкурирующим
заданиям 91, 93, 95, 97, 99, 100). Задания 94, 96 и 98 были исключены из множества конкурирующих в процессе решения задачи.
В таблице 1.57 приведена оптимальная последовательность
функционала в оптимальной последовательности:
Таблица 1.57 – Последовательность
f
опт
опт .
Значение
= 10074.
опт .
j
4
8
10 12 23
4
7
9
10 17
lj
dj 2607 2390 2085 2078 2136
4
11 20 30 47
Cj
–
–
–
–
–
Tj
26
23
2244
70
–
28
24
2278
94
–
29
26
2383
120
–
31
29
2568
149
–
33
31
2247
180
–
Окончание таблицы 1.57.
91
Глава 1
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
j
lj
dj
Cj
Tj
92
34
32
2135
212
–
58
52
2387
594
–
81
83
2396
1279
–
60
54
2695
2054
–
2
1
3034
2483
–
5
4
3209
2911
–
57
51
3268
3262
–
6
4
3619
3601
–
80
82
3339
3964
625
35
33
2203
245
–
62
56
2150
650
–
82
85
2487
1364
–
24
18
2708
2072
–
14
11
3144
2494
–
15
11
3212
2922
–
47
40
3305
3302
–
30
26
3634
3627
–
83
86
3591
4050
459
36
34
2310
279
–
64
62
2608
712
–
88
91
2516
1455
–
45
37
2722
2109
–
32
29
3040
2523
–
79
82
3011
3004
–
18
12
3312
3314
2
20
14
3643
3641
–
84
89
3209
4139
930
37
34
2319
313
–
66
64
2142
776
–
89
92
2550
1547
–
13
11
2793
2120
–
39
35
2863
2558
–
9
7
3262
3011
–
46
38
3374
3352
–
25
18
3640
3659
19
85
89
3279
4228
949
38
35
2280
348
–
67
64
2146
840
–
91
94
2453
1641
–
27
23
2795
2143
–
40
35
3027
2593
–
11
9
3283
3020
–
61
54
3413
3406
–
17
11
3663
3670
7
87
90
3175
4318
1143
42
37
1971
385
–
69
66
2239
906
–
93
96
2164
1737
–
50
46
2797
2189
–
53
47
3059
2640
–
19
13
3272
3033
–
59
53
3461
3459
–
7
5
3676
3675
–
90
92
3766
4410
644
43
37
2035
422
–
71
67
2300
973
–
99
99
1946
1836
–
52
47
2800
2236
–
54
47
3133
2687
–
21
15
3230
3048
–
3
1
3513
3460
–
22
15
3682
3690
8
92
94
3419
4504
1085
44
37
2436
459
–
74
72
2625
1045
–
95
97
1954
1933
–
100
99
2405
2335
–
63
60
2919
2747
–
41
36
3277
3084
–
65
62
3497
3522
25
51
46
3680
3736
56
94
96
3049
4600
1551
48
41
2589
500
–
75
75
1973
1120
–
70
66
2651
1999
–
97
98
2475
2433
–
73
70
2876
2817
–
77
77
3197
3161
–
16
11
3557
3533
–
72
69
3757
3805
48
96
97
3755
4697
942
49
42
2414
542
–
76
76
2473
1196
–
1
1
2180
2000
–
55
49
2834
2482
–
86
90
2908
2907
–
56
50
3274
3211
–
68
64
3485
3597
112
78
77
3769
3882
113
98
98
3439
4795
1356
Минимизация суммарного запаздывания при выполнении независимых заданий
1.7 Статистические исследования ПДС-алгоритма решения задачи
С помощью системы моделирования для исследования эффективности ПДСалгоритма был проведен ряд тестов. Система написана на языке C# в среде разработки Visual Studio 2010 под библиотеку Microsoft .NET 4.0. Испытания проводились на персональном компьютере с процессором Pentіum CORE 2 Duo 2.0 ГГц с
оперативной памятью 2 Гбайта под управлением ОС Mіcrosoft Wіndows Vіsta.
Сложность задачи и, соответственно, время ее выполнения существенно зависит от двух исходных параметров: фактора запаздывания T и диапазона директивных сроков R [114]. Схема генерации данных, первоначально предложенная Фишером [114], используется для тестирования алгоритма на различных типах примеров, тип задачи определяется комбинацией (R, T). Для каждой задачи
сначала генерируются длительности выполнения из равномерного распределения с заданными границами. Затем вычисляются директивные сроки из распределения, равномерного на  p* 1  T  R 2  , p* 1  T  R 2  , где p* – сумма всех длительностей. Значения T и R выбираются из множеств {0.2, 0.4, 0.6, 0.8} и {0.2,
0.4, 0.6, 0.8, l.0}, соответственно, давая по 20 задач каждого типа [23].
Статистическое исследование проводилось по следующим направлениям:
– влияние различных комбинаций значений факторов R и T на среднее
время решения задачи, количество итераций, количество заданий, конкурирующих на первой итерации;
– влияние значения фактора T на среднее время решения, количество
итераций алгоритма;
– влияние размерности задачи на время решения и количество итераций
для разных значений факторов R и T;
– влияние границ длительности заданий на среднее время решения задач,
количество итераций и конкурирующих заданий на первой итерации.
Исследование влияния значений факторов R и T
Для определения влияния диапазона директивных сроков R и фактора запаздывания T была промоделирована работа алгоритма на задачах с параметрами R и T в диапазоне от 0 до 1 с шагом 0,2. Для каждой пары значений кри93
Глава 1
териев R и T и размерности было решено не менее 50 задач. Это позволило
определить такие параметры R и Т, при которых алгоритм будет решать задачи
относительно быстро, при каких значениях R и Т алгоритм будет работать по
декомпозиционной составляющей и какие значения параметров являются
самыми сложными для исследуемого алгоритма.
Чтобы продемонстрировать общую картину на небольших задачах, в таблицах 1.58–1.63 представлено среднеарифметическое время решения задач
размерности 25-50. С ростом размерности характеристики будут такими же.
Длительности выполнения выбраны в границах [50, 100].
Таблица 1.58 – Среднее время решения задач размерности 25 (мс.)
R
T
0
0,2
0,4
0,6
0,8
1
0
0,2
0,4
0,6
0,8
1
6
14
17
17
19
13
9
26
38
39
36
20
9
20
38
39
34
25
8
9
34
41
38
30
9
8
28
45
37
34
8
8
21
42
37
34
Таблица 1.59 – Среднее время решения задач размерности 30 (мс.)
R
T
0
0,2
0,4
0,6
0,8
1
0
0,2
0,4
0,6
0,8
1
7
17
18
16
19
18
9
34
40
46
31
22
6
19
45
52
37
29
8
9
37
57
39
33
9
9
26
65
47
33
9
8
19
60
50
34
Таблица 1.60 – Среднее время решения задач размерности 35 (мс.)
R
T
0
0,2
0,4
0,6
0,8
1
94
0
0,2
0,4
0,6
0,8
1
6
14
15
15
15
16
8
33
72
164
43
23
8
18
51
119
36
30
8
8
37
108
46
33
8
8
30
140
61
33
8
8
40
180
97
37
Минимизация суммарного запаздывания при выполнении независимых заданий
Таблица 1.61 – Среднее время решения задач размерности 40 (мс.)
R
T
0
0,2
0,4
0,6
0,8
1
0
0,2
0,4
0,6
0,8
1
6
13
14
15
16
15
8
33
199
352
50
24
8
19
117
371
49
30
9
8
44
240
71
34
8
8
56
359
160
40
8
8
15
461
294
48
Таблица 1.62 – Среднее время решения задач размерности 45 (мс.)
R
T
0
0,2
0,4
0,6
0,8
1
0
0,2
0,4
0,6
0,8
1
6
12
12
13
14
14
8
33
308
596
62
25
9
19
194
592
118
33
8
9
46
1139
177
39
8
9
31
870
495
46
9
8
44
1856
1601
75
Таблица 1.63 – Среднее время решения задач размерности 50 (мс.)
R
T
0
0,2
0,4
0,6
0,8
1
0
0,2
0,4
0,6
0,8
1
6
12
12
12
12
12
6
31
1166
1386
111
20
6
15
566
2269
106
28
7
7
97
2369
268
31
7
7
23
3175
1224
58
7
9
19
3780
3499
198
Данные результаты очень удобно представить в виде трехмерных графиков
(рис. 1.5–1.10). Из рисунков хорошо видно, что множество решений задач с разными значениями критериев R и Т имеет точку максимума со значениями R=0,8;
Т=0,6. Также можно выделить область с локальным максимумом в точке со значениями параметров R=0,2; Т=0,6. Это именно те области, в которых решение
задач является самым трудным для алгоритма. С увеличением размерности задач разность в быстродействии между задачами с параметрами, соответствующими области максимума, и всеми другими задачами возрастает. Это объясняется тем, что в большинстве областей алгоритм работает полиномиальное время,
95
Глава 1
в то время как в двух выше упомянутых максимумах он возрастает экспоненциально, соответственно разность увеличивается по экспоненциальному закону.
Рис. 1.5 – Среднее время решения
задач размерности 25 (мс.)
Рис. 1.6 – Среднее время решения
задач размерности 30 (мс.)
Рис. 1.8 – Среднее время решения
задач размерности 40 (мс.)
Рис. 1.9 – Среднее время решения
задач размерности 45 (мс.)
Рис. 1.7 – Среднее время решения
задач размерности 35 (мс.)
Рис. 1.10 – Среднее время решения
задач размерности 50 (мс.)
96
Минимизация суммарного запаздывания при выполнении независимых заданий
Эта информация даст возможность сформулировать более точные отсечения, ограничение и условия, которые помогут уменьшить количество итераций
и ускорить работу алгоритма.
Для определения числа итераций при разных значениях параметров R и Т был
взят тот же набор тестовых задач, которые были сгенерированы для определения
среднестатистического времени решения. Число итераций удобнее рассматривать
в процентном отношении к размерности задачи. В процентном отношении к общему количеству заданий в каждом примере для задач всех размерностей количество итераций почти не изменяется. Поэтому на рисунке 1.11 представлен график, полученный по результатам решения задач всех размерностей.
Рис. 1.11 – Среднеарифметическое число итераций (%)
На графике хорошо видно, что количество итераций, как и время решения,
также имеет определенную область (труднорешаемых задач), в которой число
итераций достигает уровня до 15 % от общего количества заданий. Графики среднестатистического количества итераций и среднестатистического времени решения также демонстрируют четкую корреляцию между количеством итераций
алгоритма и временем решения.
В таблице 1.64 представлены данные по среднеарифметическому числу конкурирующих заданий для задач с разными значениями параметров R и Т. Хорошо видно, что с увеличением фактора запаздывания Т число конкурирующих
97
Глава 1
заданий увеличивается. Это утверждение также отвечает постановке задачи.
Фактор диапазона директивных сроков почти не влияет на число конкурирующих заданий. Если сопоставить данные в этой таблице с числом итераций алгоритма, то очевидно, что для значений параметра Т, приближающихся к 1, число
конкурирующих заданий увеличивается, но число итераций алгоритма, наоборот, резко уменьшается. Это объясняется тем, что во время выполнения итераций, благодаря специальным условиям, некоторые задания исключаются из
множества конкурирующих и, таким образом, уменьшают общее количество
итераций и продолжительность работы алгоритма.
Таблица 1.64 – Среднее число конкурирующих заданий, %
R
T
0
0,2
0,4
0,6
0,8
1
0
0,2
0,4
0,6
0,8
1
0,00
0,00
0,00
0,00
0,00
0,00
0,00
8,83
24,98
41,61
60,69
53,69
0,00
2,65
18,16
34,98
58,27
68,39
0,00
0,00
10,65
29,16
56,75
68,84
0,00
0,00
5,31
28,88
54,45
66,21
0,00
0,00
3,23
28,92
50,08
62,73
Анализ влияния фактора T на среднее время решения задачи
Для исследования влияния фактора запаздывания на работу алгоритма был
сгенерирован ряд задач разной размерности и с разными значениями фактора
R на всем диапазоне возможных значений [0, 1] для критерия T. Сведенные результаты проведенного моделирования представлены в таблице 1.65.
Таблица 1.65 – Среднеарифметическое время решения, мс, для задач
разной размерности и параметра T
Размерность
30
T
8
0
17
0,2
31
0,4
50
0,6
38
0,8
29
1
Из полученных результатов
35
40
8
9
15
16
41
75
121
435
50
107
29
32
видно, что при
45
50
60
8
5
8
16
14
21
106
440
958
836
1948 5104
596
678
1742
38
58
271
значении фактора запаздыва-
ния, равном 0,6, задачи самые сложные. С увеличением количества заданий в
98
Минимизация суммарного запаздывания при выполнении независимых заданий
каждом примере труднорешаемые задачи соответствуют такому же значению
параметра T, только разность между ними увеличивается.
Влияние размерности задачи на ее решение
Для того чтобы показать, какие результаты дает алгоритм на задачах разной размерности, было решено выбрать несколько пар значений факторов запаздывания T и диапазона директивных сроков R из области, где алгоритм относительно быстро дает результат, и из области, где время выполнения наибольшее. Сведенные результаты по задачам с фактором T, равным 0,4, и фактором R, равным 0,8, для размерности от 50 до 500, приведены в табл. 1.66.
Для каждой размерности было сгенерировано около 100 задач.
Таблица 1.66 – Результаты решения задач
Количество
заданий
50
100
150
200
250
300
350
400
450
500
Среднее
Среднее
время
количество
решения, итераций
мс
50
1,050667
321
1,094949
440
1,192
218
1,081787
371
1,111111
409
1,123024
568
1,138246
584
1,081648
758
1,174815
408
1,021245
Среднее количество конкурирующих заданий
4,3
3,81818
4,18
3,896906
3,875
3,814432
3,894736
3,910112
3,71111
3,472526
Средний результат (запаздывание)
716
820
921
765
693
632
702
705
750
527
Чтобы более наглядно увидеть зависимость времени решения от размерности задачи, построим полиномиальную аппроксимацию для полученных результатов (рис.1.12).
99
Глава 1
Рис. 1.12 – Полиномиальная аппроксимация времени решения задач, мс, с
параметрами T=0,4; R=0,8
Как видно из графика, среднее время решения задач возрастает почти пропорционально количеству заданий. Приведенные результаты наглядно показывают, что в данной области алгоритм работает так быстро благодаря своей
полиномиальной составляющей. В задачах всех размерностей среднее количество итераций и среднее количество конкурирующих заданий почти одинаковы.
Следовательно, время, необходимое на решение задачи, возрастает при увеличении размерности из-за того, что объем данных, над которыми выполняются
операции вставки, поиска, свободных перестановок и упорядочений, становится
бóльшим, а не из-за увеличения количества выполняемых процедур. Соответственно, обработка бóльшего объема данных требует больше ресурсов и времени.
Такая полиномиальная зависимость свидетельствует о высокой эффективности
использованных отсечений и условий, уменьшающих количество итераций алгоритма.
Теперь рассмотрим задачи из самой сложной области значений параметра
запаздывания и диапазона директивных сроков (T=0,6; R=0,9). В таблице 1.67
приведены детальные результаты для данных значений параметров.
100
Минимизация суммарного запаздывания при выполнении независимых заданий
Таблица 1.67 – Результаты решения задач
Коли- Среднее
Среднее
чество
время
количество
заданий решения, итераций
мс
25
31
3,508
26
30
3,544
27
37
3,788
28
31
3,76
29
45
3,812245
30
60
4,304
31
66
4,3
32
72
4,370833
33
109
4,2625
34
107
4,6
35
121
4,708
36
276
4,754167
37
221
5,0125
38
503
5,17551
39
661
5,295833
40
736
5,164
41
739
5,224
42
698
5,384
43
1505
5,66
44
1537
5,542222
45
1582
5,675
46
2042
5,910638
47
2316
6,213333
48
2488
6,075556
49
2996
6,430435
50
2929
6,62
Среднее количество конкурирующих заданий
7,6
7,66
8,24
8,14
8,530612
9,1
8,96
9,625
8,979166
9,98
10,64
10,5625
11,270833
11,122448
11,020833
11,26
12
11,64
11,84
12,822222
12,520833
12,914893
13,044444
13,333333
13,760869
14,85
Средний результат (запаздывание)
4879
5254
5849
5704
6013
7069
7080
7930
7596
8879
9261
9172
10678
10514
10098
11641
12595
12186
12502
13693
14376
15209
14712
15919
16432
18860
Среднее количество конкурирующих заданий, %
30,4
29,46154
30,51852
29,07143
29,4159
30,33333
28,90323
30,07813
27,20959
29,35294
30,4
29,34028
30,46171
29,2696
28,25855
28,15
29,26829
27,71429
27,53488
29,14141
27,82407
28,07585
27,75414
27,77778
28,08341
29,7
Чтобы более наглядно увидеть зависимость времени решения от размерности задачи, построим экспоненциальную аппроксимацию для полученных результатов (рис. 1.13).
101
Глава 1
Рис. 1.13 – Экспоненциальная аппроксимация среднего времени решения
задач (мс) с параметрами T=0,6; R=0,9
Как видно из графика, время решения экспоненциально зависит от размерности для задач с заданными параметрами. Также для задач такого класса сразу заметно, что количество итераций и количество конкурирующих заданий
значительно больше, чем для более простых задач, рассмотренных раньше.
Для всех задач такого типа среднее количество конкурирующих заданий держится на уровне 30 %. Поэтому такое большое количество необходимых итераций приводит к необходимости перебора большого количества вариантов
возможного оптимального расписания. Среднее количество итераций для задач данного типа находится на уровне 70 % от общего количества задач. Следовательно, для улучшения результатов нужно ввести некоторые дополнительные условия и отсечения, которые бы дали возможность уменьшить количество конкурирующих заданий, что в свою очередь может уменьшить время решения на порядки.
Влияние границ длительности заданий
Для определения влияния границ длительностей заданий на характеристики
алгоритма был сгенерирован ряд задач с параметрами T=0,4; R=0,8. Размерность всех задач равна 100. Нижняя и верхняя граница длительности заданий
изменялись в диапазоне от 50 до 250 и от 500 до 300 соответственно с шагом
25 каждая. Таким образом, диапазон длительности заданий изменяется от 450
102
Минимизация суммарного запаздывания при выполнении независимых заданий
до 50, что отвечает 90% и 16,7% от максимальной длительности. Сведенные
результаты представлены в таблице 1.68.
Таблица 1.68 – Результаты решения задач с разными границами времени
Диапазон Диапазон
длитель- длительностей, %
ностей
90
84,2
77,8
70,6
62,5
53,3
42,9
30,8
16,7
450
400
350
300
250
200
150
100
50
Среднее запаздывание
3445,58
2803,86
1396,02
3343,12
3274,837
3792,18
1958,49
2252,149
3937,262
Среднее
Среднее
время
количество
решения итераций
мс
82,76
1,093333
124,32
1,138667
30,59184
0,911667
290,96
1,205333
191,4286
1,257143
270,82
1,213333
193,167
1,175
72,255
1,165957
15,385
0,246838
Среднее количество конкурирующих заданий
3,76
3,72
3,06122
3,92
4,163266
4,4
3,854166
4,191488
0,78
Из таблицы видно, что среднее время решения зависит от диапазона длительности заданий. Сложнейшие задачи для алгоритма генерируются, когда
границы длительностей составляют 40 – 70 % от максимальной длительности.
Простейшими являются те задачи, в которых диапазон длительностей небольшой. Независимо от разного времени решения среднее количество итераций
почти одинаково для всех рассмотренных границ длительностей.
Сравнение результатов
Большинство методов решения задачи минимизации суммарного запаздывания основано на разнообразных эвристиках. Хотя эти методы и имеют
достаточное быстродействие, они не дают гарантированный оптимальный результат, а только приближаются к нему. Особенно на задачах большой размерности эти методы дают результат, далекий от оптимального. Поэтому сравнивать скорость работы с такими методами не представляется возможным. Кроме
того, до сих пор ни одним известным точным методом не удавалось решать задачи большей размерности, чем 500. Поэтому результаты тестов на больших
размерностях будут приведены без сравнения.
103
Глава 1
Результаты работы алгоритма на задачах размерности 500
Представим сводные таблицы и проанализируем полученные результаты.
Таблица 1.69 – Среднеарифметическое значение времени решения (сек.)
T
R
0.5
0.4
0.3
0.2
0.1
0.6
0.7
323.6
308.1
286.6
262.1
235.3
309.7
290.2
236.6
227.7
183.3
0.8
0.9
209.9 199.9
249.8 118.6
257.0 87.8
173.5 74.6
127.8 59.5
Результаты решения задач размерностью 500 другими современными алгоритмами можно найти в [23]. Результаты исследований времени решения известных примеров [23] размерностью до 500 заданий показали эффективность
ПДС-алгоритма. Оптимальные значения функционала, полученные нашим алгоритмом, совпали с приведенными в [23] значениями функционала. В таблице
1.70 приведено время решения известных примеров [23] с размерностью 500
заданий.
Таблица 1.70 – Сравнение времени решения с известными методами (n=500)
Время решения
Суммарное заВремя решения ПДСизвестными мето№ примера из [23]
паздывание
алгоритмом (мс)
дами (мс)1
41
56
250
41
42
42
250
42
43
45
50
28
44
14
50
20
45
24
67
18
46
83
250
21
47
86
267
38
48
31
50
21
49
26
50
18
50
56
150
32
81
0
50
10
90
0
50
9
121
0
50
10
122
0
67
11
1
Испытания проводились на рабочей станции Sparc Station Classic с 8 процессорами 60
МГц microSPARC и оперативной памятью на 384 Гбайта [23].
104
Минимизация суммарного запаздывания при выполнении независимых заданий
Окончание таблицы 1.70.
№ примера из [23]
Суммарное запаздывание
123
124
125
126
127
129
130
131
134
135
136
138
139
140
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
177
178
179
180
0
0
0
0
0
0
0
178
119
1169
299
204
69
361
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Время решения
Время решения ПДСизвестными метоалгоритмом (мс)
дами (мс)
50
12
50
10
67
10
50
12
50
12
50
11
50
9
267
51
250
27
1833
167
133
43
250
27
150
42
267
57
67
10
67
14
50
13
50
10
67
10
50
10
50
10
50
9
50
10
50
10
33
11
67
11
50
10
50
10
50
12
50
10
50
10
50
10
67
9
Даже при непродолжительном ознакомлении с показателями продолжительности работы алгоритмов видна значительная разность в сравнении с разработанным ПДС-алгоритмом. Достижение такой экономии времени можно
объяснить использованием в алгоритме свободных перестановок с продуманной стратегией последующих действий.
105
Глава 1
В частности, учитывая, что работа генератора задач организована таким
образом, что он с высокой вероятностью может генерировать задачи, требующие полного перебора, в сводную таблицу включены все флуктуации. Эти
флуктуации являются равновероятными случаями быстрого построения оптимального решения и продолжительного перебора среди множества подобных
решений. Среди 200 задач, предложенных для решения, оказалось 16 случаев
флуктуаций в сторону сокращения времени решения и 10 случаев – в сторону
увеличения. Анализ пошаговых отчетов решения задач этих случаев должен
проявить зависимости и новые особенности расписаний на каждой итерации
алгоритма, которые привели к появлению лишних переборов, или наоборот –
сократили их количество. Такие условия, как отмечалось выше, должны впоследствии дополнить ПДС-алгоритм, что расширит класс задач, решаемых им
за приемлемое время.
Результаты работы алгоритма на задачах размерности 750
Таблица 1.71 – Среднеарифметическое значение времени решения, с
T
R
0.5
0.4
0.3
0.2
0.1
0.6
0.7
0.8
0.9
809.00
770.25
716.50
655.25
588.25
774.25
725.50
591.50
569.25
458.25
524.75
624.50
642.50
433.75
319.50
499.75
296.50
219.50
186.50
148.75
Сравнить работу алгоритма с другими методами не представляется возможным, поскольку ни одному из современных методов не давались задачи размерностью свыше 500. Бесспорное преимущество ПДС-алгоритма в этом случае – отсутствие запоминаний любых предыдущих результатов, что резко сокращает потребность в дополнительных ресурсах.
Соотношение количества итераций к количеству конкурирующих заданий
в начале первой итерации принадлежит диапазону от 7 до 53 %.
Среди 200 задач, предложенных для решения, оказалось 23 случая флуктуаций в сторону сокращения времени решения и 26 случаев – в сторону увеличения.
106
Минимизация суммарного запаздывания при выполнении независимых заданий
Результаты работы алгоритма на задачах размерности 1000
Таблица 1.72 – Среднеарифметическое значение времени решения, с
T
R
0.5
0.4
0.3
0.2
0.1
0.6
0.7
2022.50
1925.63
1791.25
1638.13
1470.63
1935.63
1813.75
1478.75
1423.13
1145.63
0.8
0.9
1311.88 1249.38
1561.25 741.25
1606.25 548.75
1084.38 466.25
798.75 371.88
Сравнить работу алгоритма с другими методами не представляется возможным, поскольку ни одному из современных методов не давались задачи размерностью свыше 500. Бесспорным преимуществом ПДС-алгоритма в этом
случае есть отсутствие запоминаний любых предыдущих результатов, что резко сокращает потребность в дополнительных ресурсах.
Соотношение количества итераций к количеству конкурирующих заданий
в начале первой итерации принадлежит диапазону от 19 до 46 %.
Выводы
По результатам проведенных статистических исследований по четырем
критериям можно сделать следующие выводы:
– увеличение значения фактора T приводит к уменьшению директивных
сроков и к увеличению количества конкурирующих заданий;
– уменьшение значения фактора R приводит к уменьшению дисперсии
директивных сроков;
– одновременное увеличение значений факторов R и T приводит к увеличению
количества заданий, запаздывающих на первой итерации алгоритма;
– увеличение значения фактора R с одновременным уменьшением значения фактора T приводит к увеличению количества заданий, имеющих
резервы на первой итерации алгоритма;
– для задач с большим количеством итераций время решения будет больше;
– для значений критерия T, близких к 1, количество конкурирующих заданий увеличивается, но количество итераций алгоритма, наоборот,
резко уменьшается.
107
Глава 1
СПИСОК ЛИТЕРАТУРЫ НЕ ПЕЧАТАЕТСЯ, НО ДОЛЖЕН БЫТЬ В КОНЦЕ КАЖДОЙ ГЛАВЫ, ЧТОБЫ ПОЛЯ ПРАВИЛЬНО ОБНОВЛЯЛИСЬ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
108
Адлер Ю.П., Маркова Е.В., Грановский Ю.В. Планирование эксперимента при поиске оптимальных условий. – 2-е изд., перераб. и доп. – М.:
Наука, 1976. – 280 с.
Айвазян С.А. Многомерный статистический анализ // Математическая
энциклопедия / Гл. ред. И.М. Виноградов. – М., 1982. – Т.З. – Стб. 732738.
Аксенова Л.А. Новые полиномиальные подклассы труднорешаемой задачи
«Минимизация суммарного взвешенного момента» для множества одного
приоритета // Управляющие системы и машины, – 2002.– №6.– С.21-28
Андерсон Т. Введение в многомерный статистический анализ / Пер. с
англ. Ю.Ф. Кичатова; Под ред. Б.В. Гнеденко. – М.: Физматтиз, 1963. –
500 с.
Андрейчиков А.В., Андрейчикова О.Н. Анализ, синтез, планирование решений в экономике. – Москва: Финансы и статистика. – 2001.
Веселов С.И., Шевченко В.Н. Об экспоненциальном росте коэффициентов
агрегирующего уравнения: Тез. докл. 4 Феодосийской конф. по пробл.
теорет. кибернетики. – Новосибирск: Ин-т математики СО АН СССР,
1977. – 53 с.
Галочкин И., Нестеренко Ю.В., Шидковский А.Б. Введение в теорию чисел. – М.: Изд-во Моск. ун-та, 1984. – 280 с.
Гери М.Р., Джонсон Д.С. Вычислительные машины и труднорешаемые
задачи. – М.: Мир, 1982. – 416 с.
Д. Худсон. Статистика для физиков. Москва, Мир, 1970.
Емельянов С.В. Управление гибкими производственными системами. Модели и алгоритмы.– Л.: Машиностроение; Берлин: Техник,– 1987.– 364 с.
Ершов А. А. Стабильные методы оценки параметров: (Обзор) // Автоматика и телемеханика. – 1978. – № 8. – С. 66-100.
Зайченко Ю.П. Дослідження операцій, – Київ: Слово – 2006 р. – 814с.
Згуровский М.З., Павлов А.А. Иерархическое планирование в системах,
имеющих сетевое представление технологических процессов и ограниченные ресурсы, как задача принятия решений // Системні дослідження
та інформаційні технології.– 2009.– №.__ С.____ .
Згуровский М.З., Павлов А.А., Штанькевич А.С. Модифицированный метод анализа иерархий // Системні дослідження та інформаційні технології.– 2010.– №.1. – С.____ .
Згуровский М.З., Павлов А.А., Мисюра Е.Б. ПДС-алгоритмы и труднорешаемые задачи комбинаторной оптимизации. Анализ эффективности, методология построения // Системні дослідження та інформаційні технології.– 2009.– №.__ С.____ .
Минимизация суммарного запаздывания при выполнении независимых заданий
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Згуровский М.З., Павлов А.А., Мисюра Е.Б., Мельников О.В. Методология построения эффективного решения многоэтапных задач календарного
планирования на основе принципа иерархии и комплекса взаимосвязанных моделей и методов // Вісник НТУУ “КПІ”. Інформатика, управління
та обчислювальна техніка. К.: “ВЕК+”, 2010.– №50
Згуровский М.З., Павлов А.А., Мисюра Е.Б., Мельников О.В. Методы
оперативного планирования и принятия решений в сложных организационно-технологических системах // Вісник НТУУ “КПІ”. Інформатика,
управління та обчислювальна техніка. К.: “ВЕК+”, 2010.– №50
Згуровський М.З., Панкратова Н.Д. Основи системного аналізу // К.: Видавнича група BHV, 2007. – 544c.
И. Экланд. Элементы математической экономики. – М.: Мир, 1983. –
245ст.
Ивахненко А.Г. Моделирование сложных систем. – Киев: Высшая школа,
1997.
Ивахненко А.Г., Мюллер И.А.Самоорганизация прогнозирующих моделей. – Киев: Техника, 1985. – 221с.
Ивахненко А.Г., Юрачковский Ю.В. Моделирование сложных систем по
экспериментальным данным. – М: Радио и связь, 1986. – 118с.
Интернет-страница: http://www.bilkent.edu.tr/~bkara/start.html
Информатика в Украине: становление, развитие, проблемы. / Сергієнко И.В., Капітонова Ю.В., Лебедєва Т.Т. – НАН Украины. Ін-т кибернетики им. В.М. Глушкова.– К.: Наук. думка.– 1999 – 354 с.
Катренко А.В., Пасічник В.В., Пасько В.П. Теорія прийняття рішень. –
Київ: Видавнича группа BHV, – 2009, – 438 с.
Кини Р.Л., Райфа X. Принятие решений при многих критериях: предпочтения и замещения.—М.: Радио и связь, 1981. – 560 с.
Колмогоров А.Н. К обоснованию метода наименьших квадратов // Успехи
математических наук. – 1946. – Т. 1, Вып. 1. – С.57-70.
Конвей Р.В., Максвелл У.Л. Теория расписаний.– М.: Наука, 1975.– 359 с.
Конструктивные полиномиальные алгоритмы решения индивидуальных
задач из класса NP / Павлов А.А. и др., – Киев: Техника, – 1993. – 128 с.
Котлер Ф. Основы маркетинга: Пер. с англ.. / Под общ. ред.
Е.М.Пеньковой.– М.: Прогресс,– 1990.–736 с.
Ларичев О.И. Теория и методы принятие решений. – М.:Логос, 2000.
Меншикова О.Г., Подиновский В.В. Построение отношения предпочтения
и ядра в многокритериальных задачах с упорядоченными по важности неоднородными критериями // ЖВМ и МФ. 1988. № 5. С. 647 – 659.
Миллер Г. Магическое число семь плюс или минус два // Инж. психология. – М: Прогресс, – 1964.
Многоуровневая система оперативного управления ГПС в машиностроении / С.А.Соколицын, В.А.Дуболазов, Ю.Н.Демченко; под общ.ред.
С.А.Соколицына. – СПб: Политехника,– 1991. – 208 с.
109
Глава 1
35
36
37
38
39
40
41
42
43
44
45
46
47
48
110
Ногин В.Д. Упрощенный вариант метода анализа иерархий на основе нелинейной свертки критериев // Журнал вычислительной математики и математической физики. – 2004. – т.44. – № 7. – С.1259-1268.
Норманн Р. Дрейпер, Гарри Смит. Прикладной регрессионный анализ, 3е изд.: Пер. с англ. – М.: Издательский дом «Вильямс», 2007. – 912 с
Общая модель и методы иерархического планирования функционирования
сложных организационно-производственных систем с ограниченными ресурсами / А.А. Павлов, Е.Б. Мисюра, О.В.Мельников, Сераржи Али Рухани
// Системні дослідження та інформаційні технології.– 2005.– №4.– С.7-24
Основы системного анализа и проектирования АСУ: Учебн. пособие. /
А.А. Павлов, С.Н. Гриша, В.Н.Томашевский и др. Под общ. ред.
А.А.Павлова, К.: Выща шк.,– 1991.– 367 с.
Павлов А.А. Линейные модели в нелинейных системах управления. – К.:
Техніка, 1982. – 166 с.
Павлов А.А. Алгоритмическое обеспечение сложных систем управления. /
К.: Выща школа, 1989. – 162 с.
Павлов А.А., Аксенова Л.А. Новые условия полиномиальной составляющей ПДС-алгоритма задачи «Минимизация суммарного взвешенного момента» // Проблемы программирования.– 2001.– №1.– C.69-75.
Павлов А.А., Анализ оценок сложности вычислений точных алгоритмов
решения задачи линейного целочисленного программирования общего
вида//Автоматика. – 1985. – № 5. – С. 42-48.
Павлов А.А., Гершгорин А. Е. Об одном методе сведения задачи линейного целочисленного программирования общего вида к задаче «о ранце»
//Автоматика. – 1985. – № 1. – С. 52-56.
Павлов А.А., Гриша С.Н., Томашевский В.Н. и др. Основы системного
анализа и проектирования АСУ: учеб. пособие./ под общ. ред. Павлова
А.А. – К.: Выща шк., 1991. – 367 с.
Павлов А.А., Иванова А.А. Алгоритм идентификации функции цели в методе анализа иерархий. / Вісник НТУУ “КПІ”. Інформатика, управління та
обчислювальна техніка. К.: “ВЕК+”, 2008.– №48.– С.46-48
Павлов А.А., Иванова А.А., Зигура Р.А. Метод группового учета аргументов и анализа иерархий (МГУАиАИ) в задачах принятия решений. //
Віснік НТУУ «КПІ» Інформатика, управління та обчислювальна техніка,
Київ – 2007р. №47. – 350с. – С. 205-214.
Павлов А.А., Иванова А.А., Чеховский А.В. Восстановление функции
принятия решения с использованием модифицированного метода анализа
иерархий // Вестник НТУ “ХПИ”: Сборник научных трудов. Тематический выпуск «Системный анализ, управление и информационные технологии».– Харьков: НТУ «ХПИ».– 2009.– №4.– С.17-23
Павлов А.А., Кут В.И. Математические модели оптимизации для обоснования и нахождения весов объектов по неоднородным матрицам парных
сравнений // Системні дослідження та інформаційні технології. 2007.–
№3.– С. 28–37
Минимизация суммарного запаздывания при выполнении независимых заданий
49
50
51
52
53
54
55
56
57
58
59
60
Павлов А.А., Кут В.И., Штанкевич А.С. Нахождение весов по матрице
парных сравнений с односторонними ограничениями. / Вісник НТУУ
“КПІ”. Інформатика, управління та обчислювальна техніка. К.: “ВЕК+”,
2008.– №48.– С.29-32
Павлов А.А., Лищук Е.И. Оперативное корректирование в задаче многокритериального выбора. / Автоматизированные системы управления и
приборы автоматики. – 2007. – В печати.
Павлов А.А., Лищук Е.И. Принятие решений на основе метода анализа
иерархий. // Вестник НТУ «ХПИ». Системный анализ, управление и информационные технологии. – 2007. – №41. – С. 69-76.
Павлов А.А., Лищук Е.И., Кут В.И. Математические модели оптимизации
для обоснования и нахождения весов в методе парных сравнений // Системні дослідження та інформаційні технології.– 2007.– №2.– С.13–21
Павлов А.А., Лищук Е.И., Кут В.И. Многокритериальный выбор в задаче
обработки данных матрицы парных сравнений // Вісник НТУУ “КПІ”. Інформатика, управління та обчислювальна техніка. К.: “ВЕК+”, 2007.–
№46.– С.84-88
Павлов А.А., Мисюра Е.Б. Новый подход к решению задачи «Минимизация суммарного взвешенного опоздания при выполнении независимых
заданий с директивными сроками одним прибором» // Системні дослідження та інформаційні технології, – 2002, №2, С.7-32.
Павлов А.А., Павлова Л.А. Основы методологии проектирования ПДСалгоритмов для труднорешаемых комбинаторных задач/ Киев.– Проблемы
информатики и управления.– 1995.–№ 4.– ст. 135-141.
Павлов А.А., Теленик С.Ф. Информационные технологии и алгоритмизация в управлении.– К.: Техника.– 2002.– 344 с.
Павлов А.А., Чеховский А.В. Построение многомерной полиномиальной
регрессии (активный эксперимент) // Системні дослідження та інформаційні технології, – 2009, №1. – С.87-99
Павлов А.А., Чеховский А.В. Построение многомерной полиномиальной
регрессии. Активный эксперимент с ограничениями // Вестник НТУ
“ХПИ”: Сборник научных трудов. Тематический выпуск «Системный
анализ, управление и информационные технологии».– Харьков: НТУ
«ХПИ».– 2009.– №4.– С.174-186
Павлов А.А., Чеховский А.В. Сведение задачи построения многомерной
регрессии к последовательности одномерных задач // Вісник НТУУ
“КПІ”. Інформатика, управління та обчислювальна техніка. К.: “ВЕК+”,
2008.– №48.– С.111-112
Павлов А.А., Штанькевич А.С. Восстановление закономерности по результатам пассивного эксперимента с ограниченным набором данных. /
Вестник НТУ «ХПИ». Системный анализ, управление и информационные
технологии. – Харьков: НТУ «ХПИ».– 2009.– №4.– С.160-169
111
Глава 1
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
112
Павлов А.А., Штанькевич А.С. Восстановление неизвестной закономерности по ограниченному набору экспериментальных данных с ошибкой./
Вестник НТУУ «ХПИ». Системный анализ, управление и информационные технологии. Харьков: НТУ «ХПИ». – 2009. – №5. – 10с.
Пападимитриу X. Стайглиц К. Комбинаторная оптимизация. Алгоритмы и
сложность. – М.: Мир, 1985. – 510 с.
Первин Ю. А., Португал В. М., Семенов А. И. Планирование мелкосерийного производства в АСУП. – М.: Наука, – 1973. – 459 с.
Петров В.А., Масленников А.Н., Осипов Л.А. Планирование гибких производственных систем.– Л.: Машиностроение, ЛО,– 1985.– 182 с.
Планирование и управление в автоматизированном производстве / В.В.
Шкурба, С.А. Белецкий, К.Ф. Ефетова и др.– К.: Наукова думка, 1985.–
224 с.
Планирование производства в условиях АСУ: Справочник / Ефетова К.Ф.,
Подчасова Т.П., Португал В.М., Тринчук Б.Е.– К.: Техніка,– 1984.– 135 с.
Подиновский В.В. Многокритериальные задачи с однородными равноценными критериями // ЖВМ и МФ. 1975. № 2. С. 330 – 344.
Радченко С.Г. Устойчивые методы оценивания статистических моделей:
Монография – К.: ПП «Санспарель», 2005. – 504 с.
Саати Т. Принятие решений. Метод анализа иерархий: Tomas Saaty. The
Analytic Hierarchy Process. –Пер. с англ. Р.Г. Вачнадзе. – М.: Радио и
связь, 1993. – 315 с.
Саати Т. Целочисленные методы оптимизации и связанные с ними экстремальные проблемы. – М.: Мир, 1973. – 302 с.
Саати Т., Кернс К. Аналитическое планирование. Организация систем:
Пер. с англ. Р.Г. Вачнадзе: Под ред. И.А. Ушакова. – М.: Радио и связь,
1991. – 223 с.
Сергиенко И.В. Математические модели и методы решения задач дискретной оптимизации. / К.: Наукова думка, 1985. – 382 с.; 2-е изд., доп. и
перераб., 1988. – 472 с.
Сергиенко І.В. Інформатика в Україні: становлення, розвиток, проблеми /
К.: Наукова думка, 1999. – 354 с.
Системы автоматизированного планирования и диспетчирования групповых производственных процессов / А.А.Павлов, З.Банашак, С.Н.Гриша,
Е.Б.Мисюра; под ред. А.А.Павлова.– К.: Тэхника, 1990.– 260 с.
Скурихин В.И., Павлов А.А., Путилов Э.П., Гриша С.Н. Автоматизированные системы управления гибкими технологиями. – К.: Техніка, 1987. –
184 с.
Танаев В.С., Шкурба В.В. Введение в теорию расписаний. – М.: Наука,
1975.– 256 с.
Таха Хемди. Введение в исследование операций, 6-е издание: Пер. с англ.
– М.: Издательский дом «Вильямс», 2001. – 912с.: ил. – Парал. тит. англ.
Тоценко В.Г. Методы и системы поддержки принятия решений. Алгоритмический аспект. – Киев: Наукова думка. – 2002. – 381с.
Минимизация суммарного запаздывания при выполнении независимых заданий
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
Универсальный алгоритм решения задачи «Минимизация взвешенного
момента окончания работ при отношении порядка, заданном ориентированным ациклическим графом» / А.А.Павлов, Л.А.Павлова, А.Б.Литвин,
Е.Б.Мисюра.– К., 1992.– 58с.– Деп. в УкрНИИНТИ 05.05.90, №569 – Ук
92
Форсайт Дж., Малькольм М., Моулер К. Машинные методы математических вычислений / Пер. с англ. Х.Д. Икрамова. – М.: Мир, 1980. – 280 с.
Ху Т. Целочисленное программирование и потоки в сетях. – М.: Мир,
1974.-519 с.
Шило В.П. Метод глобального равновесного поиска / Кибернетика и систем. анализ, 1999. -№1. – С. 74-80.
A.H.G. Rinnooy Kan, B.J. Lageweg and J.K.Lenstra, Minimizing total costs in
one-machine scheduling / Oper. Res. 23, 908–927 (1975).
Aarts, E.H.L., Van Laarhooven, P.J.M., Ulder, N.L.J. Local search based algorithms for job-shop scheduling. Working Paper.– Eindhoven: University of
Technology, Department of Mathematics and Computer Science,– 1991.– 20 p.
Adams, J., Balas, E., Zawack, D. The shifting bottleneck procedure for jobshop scheduling // Management Science,– 1988.– №34 (3).– pp. 391–401.
Akers, S.B., Jr. A graphical approach to production scheduling problems // Operations Research.– 1956.– №4.– pp. 244–245.
Baker K.R., Scudder G.D. Sequencing with earliness and tardiness penalties: a
review // Operations Research.– 1990.– Vol.1.– №38.– Р.22-36
Baker K.R., Shrage L.E. Finding an optimal sequence by dynamic programming: an extension to precedence-related tasks / Oper. Res. 26, 111–120 (1978).
Balas, E., Lancia, G., Serafini, P., Vazacopoulos, A. Job-shop scheduling with
deadlines // Journal of Combinatorial Optimization.– 1998.– №1 (4).– pp. 324–
353.
Balas, E., Vazacopoulos, A. Guided local search with shifting bottleneck for
job-shop scheduling // Management Science.– 1998.– №44 (2).– pp. 262–275.
Bitran G.R., Haas E.A., Hax A.C. Hierarchical Production Planning: A Single
Stage System. Operations Research 29,– 1981.– pp.717-743.
Bitran G.R., Hax A.C. Disaggregation and Resource Allocation Using Convex
Knapsack Problems. Management Science 27,– 1981.– pp.431-441.
Bitran G.R., Hax A.C. One the Design of Hierarchical Production Planning
Systems. Decision Science 8,– 1977.– pp.28-55.
Bitran G.R., Tirupati D., Hierarchical Production Planning, in: Handbooks in
Operations Research and Management Science, Volume 4, Logistics of Production and Inventory, edited by S. C. Graves, A. H. G. Rinnooy Kan and P. H. Zipkin, Amsterdam, Elsevier Science Publishers B. V.,– 1993, pp. 523-568.
Bradley G.Н. Transformation of Integer Programs to Knapsack Problems
//Discrate Mathematics. – 1971. – 1. – P. 29-45.
Bräsel, H. Lateinische Rechtecke und Maschinenbelegung.– Magdeburg: Habilitationschrift, TU Magdeburg, 1990.– 272 p.
113
Глава 1
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
114
Brucker P., Hurink J., Werner F. Improving local search heuristics for some
scheduling problems part I // Discrete Applied Mathematics.– 1996.– №65 (1–
3).– pp. 97–122.
Brucker P., Hurink J., Werner F. Improving local search heuristics for some
scheduling problems part II // Discrete Applied Mathematics.– 1997.– №72
(1/2).– pp. 47–69.
C.N.Potts and L.N.Van Wassenhove, A decomposition algorithm for the single
machine total tardiness problem / Oper. Res. Lett. 1, 177–181 (1982).
C.N.Potts and L.N.Van Wassenhove, Dynamic programming and decomposition approaches for single machine total tardiness problem / European J. Oper.
Res. 32, 405–414 (1987).
Caseau Y., Laburthe F. Disjunctive scheduling with task intervals. LIENS
Technical Report No 95-25.– Paris: Laboratoire d’Informatique de l’ Ecole
Normale Superieure Departement de Mathematiques et d’Informatique, 1995.–
35 p.
Chen B., Potts C.N., Woeginger G.J. A Review of Machine Scheduling: Complexity, Algorithms and Approximability // In: D.-Z. Du and P. Pardalos, eds.,
Handbook of Combinatorial Optimization, Vol. 3 (Kluwer Academic Publishers),– 1998.– pp.21-169.
Chris N. Potts, Mikhail Y. Kovalyov. Scheduling with batching: A review //
European Journal of Operational Research.– 2000, Vol.120.– P.228-249.
Cook, S.A.: The complexity of theorem-proving procedures // Proc. 3rd.
Annual ACM Symp. Theory of Computing.– New York, 1971.– pp. 151–158.
Davis J.S., Kanet J.J. Single-machine scheduling with early and tardy completion costs // Naval Research Logistics.– 1996.– №40.– Р.85-101
Delia Croce F., Grosso A., Paschos V.Т. Lower bounds on the approximation
ratios of leading heuristics for the single-machine total tardiness problem /
Journal of Scheduling 7: 85-91, 2004.
Demirkol, E., Mehta, S., Uzsoy, R. A computational study of shifting bottleneck procedures for shop scheduling problems // Journal of Heuristics.– 1997.–
№3 (2).– pp. 111–137.
Dorndorf U., Pesch E. Evolution based learning in a job-shop scheduling environment // Computers and Operations Research.– 1995.– №22 (1).– pp. 25–40.
Du J., Leung J.Y.-T. Minimizing total tardiness on one processor is NP-hard. /
Math. Oper. Res. 15, 483–495 (1990).
Emmons H. One machine sequencing to minimize certain functions of job tardiness / Oper. Res. 17, 701–715 (1969).
Falkenauer, E., Bouffouix, S. A genetic algorithm for the job-shop. // The Proceedings of the IEEE International Conference on Robotics and Automation.–
Sacremento, California, USA, 1991.– pp. 41-48.
Feldmann M., Biskup D. Single-machine scheduling for minimizing earliness
and tardiness penalties by meta-heuristic approaches // Computers & Industrial
Engineering.– 2003.– №44.– P.307-323
Минимизация суммарного запаздывания при выполнении независимых заданий
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
Fisher H., Thompson G.L. Probabilistic learning combinations of local jobshop scheduling rules. / In: Muth, J.F., Thompson, G.L. Industrial Scheduling.–
Englewood Cliffs: Prentice-Hall, 1963.– pp. 225–251.
Fisher M.L. A dual algorithm for the one-machine scheduling problem / Math.
Programming 11, 229–251 (1976).
Fisher, M.L., Rinnooy Kan, A.H.G. The design, analysis and implementation of
heuristics (special issue) // Management Science.– 1988.– №34 (3).– pp. 263–
401.
Foo, S.Y., Takefuji, Y. Integer linear programming neural networks for jobshop scheduling // IEEE International Conference on Neural Networks.– San
Diego, 1988.– pp. 341–348.
Foo, S.Y., Takefuji, Y. Stochastic neural networks for solving job-shop scheduling: Part 1. Problem representation // IEEE International Conference on Neural Networks.– San Diego, 1988.– pp. 275–282.
Foo, S.Y., Takefuji, Y. Stochastic neural networks for solving job-shop scheduling: Part 2. Architecture and simulations // IEEE International Conference on
Neural Networks.– San Diego, 1988.– pp. 283–290.
Forsythe G, journ. Sos.Ind. Appl. Math 5,74 (1957)
Fox, M.S. Constraint-Directed Search: A Case Study of Job-Shop Scheduling //
Research Notes in Artificial Intelligence.– London:Pitman, 1987.– pp. 12-23.
Garey, M.R., Tarjan, R.E., Wilfong, G.T. One-processor scheduling with symmetric earliness and tardiness penalties // Mathematics of Operations Research.– 1988.– №13.– Р.330-348
Glover F. Future paths for integer programming and links to artificial intelligence // Computers and Operations Research.– 1986.– №13 (5).– pp. 533–549.
Glover F. Heuristics for integer programming using surrogate constraints // Decision Sciences.–1977.– №8 (1).– pp. 156–166.
Glover F. Tabu search – Part I // ORSA Journal on Computing.– 1989.–
№1(3).– pp. 190–206.
Glover F. Tabu search – Part II // ORSA Journal on Computing.– 1990.– №2
(1).– pp. 4–32.
Glover, F., Greenberg, H.J. New approaches for heuristic search: A bilateral
linkage with artificial intelligence // European Journal of Operations Research.–
1989.– №39 (2).– pp. 119–130.
Glover, F., Laguna, M. Tabu Search. Kluwer, Norwell: Kluwer.– 1989.– 85 p.
Goldman R.P., Boddy M.S. A constraint-based scheduler for batch manufacturing. // IEEE Expert 12 (1),– 1997.– pp.49-56.
Grabot B., Geneste L. Dispatching rules in scheduling: A fuzzy approach // International Journal of Production Research.– 1994.– №32 (4).– pp. 903–915.
Graham, R.L., Lawler, E.L., Lenstra, J.K., Rinnooy Kan, A.E.G.: Optimization
and approximation in deterministic sequencing and scheduling: a survey // Ann.
Discrete Math.– 1979.– №5.– pp. 287–326.
Graves S.C. Manufacturing Planning and Control. Massachusetts Institute of
Technology. / Working paper // In: Handbook of Applied Optimization, edited
by P. Pardalos and M. Resende,– 1999.– 26 p.
115
Глава 1
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
116
Grefenstette J.J. Incorporating problem specific knowledge into genetic algorithms. / In: Davis L. Genetic Algorithms and Simulated Annealing.– London:
Pitman, 1987.– pp. 42–60.
Grossmann I.E., Quesada I., Raman R. et. al. Mixed integer optimization techniques for the design and scheduling of batch processes. Presented at NATO
Advanced Study Institute – Batch process system engineering. Antalya,
Turkey, – 1992.
Grosso A., Della Croce F., Tadei R. An enhanced dynasearch neighborhood for
the single-machine total weighted tardiness scheduling problem // Operations
Research Letters. – 2004.– №32.– pp.68–72
Hax A. C., Meal H. C. Hierarchical Integration of Production Planning and
Scheduling. // Studies in Management Sciences, Vol. 1. Logistics, M. A. Geisler (ed.), North Holland-American Elsevier, New York, – 1975.
Hefetz, N., Adiri, I. An efficient optimal algorithm for the two-machines unittime job-shop schedule-length problem // Mathematics of Operations Research.– 1982.– №7.– pp. 354–360.
Jackson, J.R. An extension of Johnson's result on job lot scheduling. // Naval
Research Logistics Quarterly.– 1956.– №3 (3).– pp. 201–203.
Jain, A.S., Meeran, S. Deterministic job-shop scheduling: Past, present and future. European Journal of Operational Research.– 1999.– №113.– pp. 390–434.
Jin S., Mason S.J. Minimizing earliness and tardiness costs on a single machine
with uncommon job due dates // Department of Industrial Engineering, Bell
Engineering Center, University of Arkansas Fayetteville, 2004.– 23 p.
Johnson, D.S., Papadimitriou, C.H., Yannakakis, M. How easy is local search?
// Journal of Computer and System Sciences.– 1988.– №37 (1).– pp. 79–100.
Johnson, S.M. Optimal two– and three-stage production schedules with set-up
times included // Naval Research Logistics Quarterly.– 1954.– №1.– pp. 61–68.
Karp, R.M.: Reducibility among combinatorial problems / In: Miller, R.E.,
Thather, J.W. (eds.): Complexity of Computer Computations, Plenum press,
New York, 1972.– pp. 85–103.
Kempf K.G., Le Pape C, Smith S. F., Fox B. R. Issues in the Design of AIBased Schedulers: A Workshop Report. AI Magazine, Special Issue.– 1991
Kirkpatrick S., Gelatt C.D., Vecchi M.P. Optimization by simulated annealing /
Science. – 1983. -220. –P. 671-680.
Kolonko, M. Some new results on simulated annealing applied to the job shop
scheduling problem // The European Journal of Operational Research.– 1999.–
№113.– pp. 435–467.
Kovacs A. Novel Models and Algorithms for Integrated Production Planning
and Scheduling: Ph.D. Thesis. Computer and Automation Research Institute:
Budapest,– 2005.
Lageweg, B.J., Lawler, E.L., Lenstra, J.K., Rinnooy Kan, A.H.G. Computer-aided
complexity classification of deterministic scheduling problems, Report BM
№138.– New York: Centre for Mathematics and Computer Science, 1981.– 41 p.
Минимизация суммарного запаздывания при выполнении независимых заданий
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
Lageweg, B.J., Lawler, E.L., Lenstra, J.K., Rinnooy Kan, A.H.G. Computeraided complexity classification of combinatorial problems // Comm. ACM.–
1982.– №25.– pp.817-822.
Lawler E.L. A pseudopolynomial algorithm for sequencing jobs to minimize
total tardiness / Ann. Discrete Math. 1, 331–342 (1977).
Lawler E.L. Sequencing jobs to minimize total weighted completion time subject to precedence constraints // Ann. Discrete Math.– 1978.– №2.– P.75–90.
Lawler E.L., Lenstra J.K., Rinnooy Kan A.H.G., Shmoys D.B. Sequencing and
scheduling: Algorithms and complexity / In: Lawler, E.L., Lenstra, J.K. Handbook in Operations Research and Management Science 4: Logistics of Production and Inventory.– New York: Academic Press, 1993.– pp 120-182.
Lawler, E.L. A fully polynomial approximation scheme for the total tardiness
problem // Operations Research Letters.– 1982.– №1.– Р.207-208
Lawrence S. Supplement to resource constrained project scheduling: An experimental investigation of heuristic scheduling techniques.– Pittsburgh: Graduate
School of Industrial Administration, Carnegie-Mellon University, 1984.– 120 p.
Liu R. A Framework for Operational Strategies for Pipeless Plants. (Ph.D. thesis, Department of Chemical Engineering, The University of Leeds).– 1996.–
pp. 26-28.
Lourenco H.R.D. A computational study of the job-shop and the flow-shop
scheduling problems. Ph.D. Thesis TR – New York: School of Operations Research and Industrial Engineering, Cornell University, 1993.– 185 p.
Lourenco H.R.D. Job-shop scheduling: Computational study of local search
and large-step optimization methods // European Journal of Operational Research.– 1995.– №83.– pp. 347–364.
Lourenco H.R.D., Zwijnenburg M. Combining the large-step optimization with
tabu-search: Application to the job-shop scheduling problem / In: Osman, I.H.,
Kelly, J.P. Meta-heuristics: Theory and Applications.– Boston, MA: Kluwer
Academic Publishers, 1996.– pp. 219–236.
Martin O., Otto S.W., Felten E.W. Large-step Markov chains for traveling
salesman problem // Complex Systems.– 1989.– №5.– pp. 299–326.
Martin O., Otto S.W., Felten E.W. Large-step Markov chains for TSP incorporating local search heuristics // Operations Research Letters.– 1992.– №11.– pp.
219–224.
Matsuo, H., Suh, C.J., Sullivan, R.S. A controlled search simulated annealing
method for the general job-shop scheduling problem. Working Paper, 03-04-88.–
Austin: Graduate School of Business, University of Texas at Austin, 1988.– 42 p.
Morton, T.E., Pentico, D.W. Heuristic Scheduling Systems // Wiley Series in
Engineering and Technology Management.– New York, 1993.– pp.35-47.
Moscato P. On evolution, search, optimization, genetic algorithms and martial
arts: Towards memetic algorithms. // C3P Report 826: Caltech Concurrent
Computation Program.– Caltech, CA, 1989.– pp. 33-48.
Musier R.F.H., Evans L.B. An approximate method for the production scheduling of industrial batch processes with parallel units. / Computers & Chemical
Engineering, 13 (1-2),– 1989.– pp. 229-238.
117
Глава 1
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
118
Nakano, R., Yamada, T. Conventional genetic algorithm for job-shop problems. / In: Kenneth, M.K., Booker, L.B. (Eds.), Proceedings of the Fourth International Conference on Genetic Algorithms and their Applications.– San
Diego, CA, USA, 1991.– pp. 474–479.
Nowicki E., Smutnicki C. A fast taboo search algorithm for the job-shop problem // Management Science.– 1996.– №42 (6).– pp.797– 813.
Nuijten W.P.M., Le Pape C. Constraint-based job-shop scheduling with ILOG
SCHEDULER // Journal of Heuristics.– 1998.– №3 (4).– pp. 271–286.
Nussbaum M., Parra E.A. A Production Scheduling System. ORSA Journal on
Computing. Vol. 5, No. 2, Spring 1993, pp.168-181
Overturf B.W., Reklaitis G.V., Woods J.W. GASP IV and the simulation of
batch/semi-continuous operations: single train process. // Industrial and Engineering Chemistry, Process Design and Development, 17 (2),– 1978.– pp. 161165.
Ow P.S.; Morton T.E.The Single Machine Early/Tardy Problem / Management
Science, Vol. 35, №2, 1989,– p.177-191
Panwalkar S.S., Iskander W. A survey of scheduling rules // Operations Research.– 1977.– №25 (1).– pp.45–61.
Pavlov A., Pavlova L. PDC-algorithms for intractable combinatorial problems.
Theory and methodology of design. – Uzhhorod, «Karpatskij region» shelf
№15, 1998,– 320 pp.
Pavlov A.A., Pavlova L.A. About one subclass of polynomially solvable problems from class «Sequencing jobs to minimize total weighted completion time
subject to precedence constraints»// Вестник международного Соломоновского университета (Киев).– 1999.– №1.– C. 109-116.
Pesch E., Tetzlaff U.A.W. Constraint propagation based scheduling of job
shops // INFORMS Journal on Computing.– 1996.– №8 (2).– pp. 144–157.
Plaggenborg, S. Ein Algorithmus zur komplexitaetsmaessigen Klassifikation
von Schedulingproblemen. – Osnabrueck: Diplomarbeit Fachbereich Mathematik/Informatik, Universitaet Osnabrueck, 1994.– 112 S.
Resende, M.G.C. A GRASP for job shop scheduling // INFORMS Spring
Meeting.– San Diego, CA, 1997.– pp. 23-31.
Rich S.H., Prokopakis G.J. Scheduling and sequencing of batch operations in a
multipurpose plant. / Industrial and Engineering Chemistry, Process Design and
Development, 25,– 1986.– pp. 979-988.
Rippin D.W.T. Design and operations of multiproduct and multipurpose batch
chemical plants – an analysis of problem structure. / Computers & Chemical
Engineering, 7 (4),– 1983.– pp.463-481.
Rippin D.W.T. Simulation of single- and multiproduct batch chemical plants
for optimal design and operation. / Computers & Chemical Engineering, 7 (3),–
1983.– pp.137-156.
Rodammer, F.A., White, K.P., Jr. A recent survey of production scheduling //
IEEE Transactions of Systems, Man and Cybernetics.– 1988.– №18 (6).– pp.
841–851.
Минимизация суммарного запаздывания при выполнении независимых заданий
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
Saaty T.L. Multycriteric Decision Making. The Analytic Hierarchy Process,
McGraw Hill International. – New York, 1980. Translated to Russian, Portuguese, and Chinese. Revised edition, Paperback. – Pittsburgh, PA: RWS Publications, 1990, 1996.
Saaty T.L. The Analytic Network Process. – Pittsburgh: RWS Publications,
2001.– p.386.
Sabuncuoglu, I., Bayiz, M. A beam search based algorithm for the job shop
scheduling problem. Research Report IEOR-9705.– Bilkent: Department of
Industrial Engineering, Bilkent University, Turkey, 1997.– 24 p.
Sabuncuoglu, I., Gurgun, B. A neural network model for scheduling problems
// European Journal of Operations Research.– 1996.– №93 (2).– pp. 288–299.
Sadeh, N. Look-ahead techniques for micro-opportunistic job shop scheduling.
Ph.D. Thesis.– Pittsburgh, PA: School of Computer Science, Carnegie Mellon
University, 1991.– 168 p.
Shrage L., Baker K.R. Dynamic programming solution of sequencing problems
with precedence constraints / Oper. Res. 26, 444–449 (1978).
Sidney J.B. Decomposition algorithm for Single-Machine Sequencing with
Precedence Relation and Deferral Costs // Operation Res.– 1975.– N23.–
P.283-298
Sridharan V., Zhou, Z. A decision theory based scheduling procedure for single-machine weighted earliness and tardiness problem // European Journal of
Operations Research.– 1996.– №94.– Р.292-301
Srinivasan V. A hybrid algorithm for the one-machine sequencing problem to
minimize total tardiness / Naval Res. Logist. Quart. 18, 317–327 (1971).
Szwarc W. Single machine total tardiness problem revisited, in: Y.Ijiri (ed.),
Creative and Innovative Approaches to the Science of Management, Quorum
Books, 1993, pp.407–419.
Szwarz W., Mukhopadhyay S.K. Decomposition of the single machine total
tardiness problem // Operations Research Letters 19 (1996) pp.243-250.
Szwarc W., Mukhopadhyay S.K. Optimal timing scheduling in earlinesstardiness single machine sequencing // Naval Research Logistics.– 1995.–
№42.– Р.1109-1114
Szwarc W., Grosso A., Delia Croce F. Algorithmic paradoxes of the single machine total tardiness problem / Journal of Scheduling 4, 93-104 (2001).
Taillard, E. Parallel taboo search technique for the job-shop scheduling problem.
Internal Research Report ORWP89/11.– Lausanne, Switzerland: Department de
Mathematiques (DMA), Ecole Polytechnique Federale de Lausanne, 1989.– 38 p.
Tϋtϋncϋoglu R.A. Sequencing with earliness and tardiness penalties.–
Department of Industrial Engineering, Bilkent University, 1999.– 14 p.
Ulder N.L.J., Aarts E.H.L., Bandelt H.-J. et al. Genetic local search algorithm
for the travelling salesman problem // Lecture Notes in Computer Science.–
1991.– №496.– pp. 109–116.
Ulder N.L.J., Aarts E.H.L., Bandelt H.-J. et al. Improving TSP exchange heuristics by population genetics // First International Workshop on Parallel Problem solving from Nature (PPSN’1).– Dortmund, Germany, 1990.– pp. 45-51.
119
Глава 1
197
198
199
200
201
202
203
204
205
206
207
120
Vaessens, R.J.M. Operations research library of problems. London: Management School, Imperial College, 1996.– 150 p.
Valente J. M. S., Alves R. A. F. S. Improved heuristics for the early/tardy
scheduling problem with no idle time // Computers & Operations Research.–
2005.– №32.– P.557-569
Van Laarhoven, P.J.M., Aarts, E.H.L., Lenstra, J.K. Job-shop scheduling by
simulated annealing. Report OS-R8809.– Amsterdam: Centrum voor Wiskunde
en Informatica, 1988.– 58 p.
Wallace M.G. Practical applications of constraint programming. Constraints,
1(1):139-168, 1996.
Werner, F., Winkler, A. Insertion techniques for the heuristic solution of the
job-shop problem // Discrete Appl. Math.– 1995.– №58 (2).– pp. 191–211.
Yamada T., Nakano R. Job-shop scheduling by simulated annealing combined
with deterministic local search. Meta-heuristics: Theory and Applications.–
Hingham, MA: Kluwer Academic Publishers, 1996.– pp. 237–248.
Yamada, T., Nakano, R. Job-shop scheduling by simulated annealing combined
with deterministic local search. // Metaheuristics International Conference
(MIC’95).– Hilton, Breckenridge, Colorado, USA, 1995.– pp. 344–349.
Yannakakis, M. The analysis of local search problems and their heuristics //
Lecture Notes in Computer Science.– 1990.– №415.– Berlin: Springer-Verlag.–
pp. 298–311.
Yano C.A., Kim Y.D. Algorithms for a class of single-machine weighted tardiness and earliness problems // European Journal of Operations Research.–
1991.– №52.– pp.167–178
Zhou, D.N., Cherkassky, V., Baldwin, T.R., Hong, D.W. Scaling neural networks for job-shop scheduling. // International Joint Conference on Neural
Networks (IJCNN'90).– San Diego, CA, 1990.– pp. 889–894.
Zhou, D.N., Cherkassky, V., Baldwin, T.R., Olson, D.E. A neural network approach to job-shop scheduling // IEEE Transactions on Neural Network.–
1991.– №2 (1).– pp.175–179.