ЧАСТЬ 1 МАТЕМАТИЧЕСКИЕ ОСНОВЫ ПЛАНИРОВАНИЯ И ПРИНЯТИЯ РЕШЕНИЙ Глава 1 МИНИМИЗАЦИЯ СУММАРНОГО ЗАПАЗДЫВАНИЯ ВЫПОЛНЕНИЯ ЗАДАНИЙ ОДНИМ ПРИБОРОМ Введение Труднорешаемая задача комбинаторной оптимизации «Минимизация суммарного запаздывания при выполнении независимых заданий на одном приборе» (МСЗ) формулируется следующим образом. Предположим, что задано множество независимых заданий J = { j1 , jn }, j2 , ..., каждое из которых состоит из одной операции. Для каждого задания j из- вестны длительность выполнения lj и директивный срок выполнения ния поступают в систему одновременно в момент времени a j 0, j 1, n . dj. Зада- Прерыва- ния не допускаются. Необходимо построить расписание выполнения заданий для одного прибора, минимизирующее суммарное опоздание при выполнении заданий: f max0,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 После перестановки max0, 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 ] iz 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 1l j[ g ] max 0,C j[ z ] l j[ g ] d j[ z ] max 0, C j[ g ] l j[ i ] d j[ g ] iz 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 ] – iz 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 1l j[ g ] max 0, l j[ g ] rj[z ] iz . (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 ] – iz уменьшение опоздания по заданию 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 f0. на по- Следовательно, существующих резервов на позиции 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 ] , i1, p 1 , для ко- торых справедливо: d j[ i ] d j[ g ] , d j[ i ] C j[ i ] , d j[ i ] C j[ p1] . (1.5) 27 Доказательство. Для всех заданий j[i ] , i1, 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 ] . Значение целевой функции до перестановки: max0, C j d j = C j d j . k f k i i m После переноса * j[m ] Cjm k i m1 lji d j m k i m1 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 m1 C ji dji – max 0, C j i d j i l j m = i m 1 k d j m Cj m k i m1 lji d jm + Минимизация суммарного запаздывания при выполнении независимых заданий k C d max 0, C d l ji ji ji ji j m = i m1 + k min l , C d j m ji ji l ji . = i m1 (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 ji l ji Так как справедливо 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 jl l jg . Резервы последовательности уп (исходной по- следовательности до встраивания задания 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 iz [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 * < max0, 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 jl C jl , для всех 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 p1 T jн*g* C j p , где T jн*g* – запомненный наиболее ранний момент начала выполнения задания j*g* на предыдущих итерациях алгоритма. Иначе позиция p определяется по условию: C j p1 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 jk l j g ; d jk 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 jk l j g , d jk 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 задание jr , для которого 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 Найти задание jl (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 jl на позицию pн (после задания jнp ). перестало запаздывать, перейти к Блоку 12, иначе на п.9.1. БЛОК 10. КОРРЕКЦИЯ ПОЗИЦИИ ВСТРАИВАНИЯ Блок 10 выполняется, если на позициях 1, pí 1 нет резервов для расширения интервала встраивания задания либо если существующие ре- j[g ] , зервы оказались недостаточными. 10.1 Ищем на интервале pн , g 1 позицию вставки задания зиции pн (pн – новая позиция задания для всех заданий ji 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 < max0, C j d j . pн i im (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.