Текст
                    Экономико-
математическая
БИБЛИОТЕКА
ТЕОРИЯ РАСПИСАНИЙ
И ВЫЧИСЛИТЕЛЬНЫЕ
МАШИНЫ
Под редакцией Э. Г. КОФФМАНА
Перевод с английского В. М. АМОЧКИНА
Под редакцией Б. А. ГОЛОВКИНА
МОСКВА «НАУКА»
ГЛАВНАЯ РЕДАКЦИЯ
ФИЗИКО-МАТЕМАТИЧЕСКОЙ ЛИТЕРАТУРЫ
1984

22.18 Т 33 УДК 519.1 COMPUTER AND JOB-SHOP SCHEDULING THEORY Ed. by E. G. COFFMAN, Jr. Coauthors: J. L. BRUNO, E. G. COFFMAN, Jr., R. L. GRAHAM, W. H. KOHLER, R. SETHI, K. STEIGLITZ, J. D. ULLMAN John Wiley & Sons 1976 _ 1702070000-047 T 053T02)?4— 49'83 © 1976 by John Wiley & Sons, Inc. <g) Перевод па русский язык. Издательство «Наука». Главная редакция физико-математической литературы, 1984
ОГЛАВЛЕНИЕ От редактора перевода ........................................ 5 Предисловие................................................... 7 Глава 1. Введение в детерминированную теорию расписаний. Э. Г. Коффман.............................................. 9 1.1. Цели и предпосылки................................. 9 1.2. Основная модель................................... 13 1.3. Предшествующие результаты для случая одного про- цессора .............................................. 22 1.4. Точные и приближенные результаты для задач миними- зации длины расписаний и среднего времени прохождения 27 1.5. Другие задачи упорядочения........................ 49 1.6. Обозначения...................................... 63 Глава 2. Алгоритмы построения расписаний минимальной длины. Р. Сети................................. 65 2.1. Введение.......................................... 65 2.2. Системы заданий с древовидной структурой.......... 68 2.3. Двухпроцессорные расписания для систем заданий с произвольным частичным упорядочением.................... 75 2.4. Реализация алгоритмов без прерываний.............. 86 2.5. Прерывания при независимых заданиях............... 92 2.6. Обобщения алгоритмов без прерываний............... 96 2.7. Преимущества прерываний.......................... 104 2.8. Процессоры с разным быстродействием.............. 108 2.9. Конвейерная задача...............................• 112 библиографическая справка ............................. 116 Глава 3. Критерий среднего взвешенного времени прохожде- ния. Дж. Л. Бруно........................................ 118 3.1. Введение......................................... 118 3.2. Модель........................................... 119 3.3. Предварительные замечания........................ 120 3.4. Алгоритмы........................................ 126 3.5. Модель со случайными величинами.................. 132 3.6. Ранговая функция................................. 136 3.7. Оптимальные расписания........................... 138 3.8. Алгоритмы для моделей, содержащих случайные вели- чины .................................................. 142 3.9. Составление расписаний для многопроцессорных сис- тем ................................................... 146 3.10. Сведение........................................ 146 3.11. Многопроцессорные алгоритмы..................... 149 3.12. Специальные случаи.............................. 156 1* 3
Глава 4. Сложность задач упорядочения. Дж. Ульман . . 158 4.1. Введение......................................... 158 4.2. Задачи и полиномиальная сводимость............... 159 4.3. Модель вычислительной машины..................... 163 4.4. Недетерминированные вычисления................... 165 4.5. АР-полная задача................................. 168 4.6. АР-полнота задачи составления расписаний......... 174 4.7. АР-полнота задачи минимизации среднего взвешенного времени прохождения.................................... 177 4.8. АР-полнота задачи составления расписаний при еди- ничных временах выполнения ............................ 179 4.9. Составление расписаний для двух процессоров и времен выполнения, равных 1 и 2............................... 184 4.10. Составление расписаний с ограничениями на ресурсы 186 Библиографическая справка............................. 188 Глава 5. Оценки характеристик алгоритмов составления расписаний. Р. Грэхем..................................... 190 5.1. Аномалии многопроцессорных расписаний............ 190 5.2. Оценки для независимых заданий без дополнительных ресурсов................ ............................... 202 5.3. Замечания о составлении расписаний методом критическо- го пути................................................. 212 5.4. Составление расписаний при наличии многих ресурсов 217 5.5. Задача об упаковке в контейнеры................... 229 5.6. Оценки для некоторых других задач................. 246 Глава 6. Перечислительные и итеративные алгоритмы. В. Коглер, /С. Штаглац.................................... 249 6.1. Введение.......................................... 249 6.2. Алгоритмы ветвей и границ для задач о перестановках 251 6.3. Приближенные алгоритмы............................ 288 6.4. Алгоритмы решения конвейерной задачи.............. 293 6.5. Взаимосвязь между методом ветвей и границ и динами- ческим программированием................................ 307 6.6. Заключительные замечания.......................... 315 Литература................................................ 318 Литература, добавленная при переводе .................. 326 Предметный указатель...................................... 333 4
ОТ РЕДАКТОРА ПЕРЕВОДА Предлагаемая книга посвящена задачам теории расписаний — важной области прикладной математики, имеющей многочисленные и разнообразные применения. Она содержит достаточно полное и одновре-' менно компактное изложение результатов решения основных задач, таких, как минимизация конечного и среднего времени завершения ра- бот одним и несколькими исполнителями с учетом различных условий. Ранее советский читатель мог ознакомиться с теорией расписаний по книге В. С. Танаева и В. В. Шкурбы «Введение в теорию расписаний» и по переводу на русский язык книги Р. В. Конвея, В. Л. Максвелла и Л. В. Миллера «Теория расписаний», вышедшими в свет в издательстве «Наука» в 1975 г. Материал данной книги изложен в терминах расписаний для одно- процессорных и многопроцессорных вычислительных систем. Для рас- писаний использованы, в основном, детерминированные математические модели (с заранее известными параметрами), в которых предусмотрены наборы как взаимосвязанных, так и независимых заданий или работ и соответствующие совокупности ресурсов для их исполнения. Эти моде- ли, несмотря на их простоту, настолько содержательны, что охватывают очень широкий круг практически важных задач упорядочения, выходя- щих за рамки начальных формулировок. Результаты решений даны в виде эффективных оптимальных алгоритмов, эвристических алгоритмов с оценкой их эффективности и соответствующими границами, а также эффективных алгоритмов перебора и приближенных алгоритмов для построения разнообразных расписаний. Специфические вопросы при- менения ЭВМ не рассматриваются. Книга содержит шесть глав. В первой (вводной) главе приведены основные понятия детерминированной теории расписаний и дан обзор последующих глав. Главы со второй по шестую фактически независимы между собой, и каждую из них можно читать после первой без обраще- ния к другим главам. Порядок следования глав, однако, выбран таким, чтобы облегчить восприятие материала в целом при чтении книги под- ряд (от первой главы до последней). Во второй и третьей главах рассмотрены основные алгоритмы со- ставления расписаний, обеспечивающих минимизацию времени завер- шения комплекса работ и минимизацию среднего времени завершения работ соответственно для случаев различного числа тех или иных про- цессоров, различных видов заданий, их исходного упорядочения и ус- ловий исполнения. Четвертая глава посвящена вычислительной слож- ности решения задач упорядочения при построении расписаний. В пя- той главе рассмотрены верхние оценки длин расписаний, а в шестой— точные и приближенные алгоритмы ветвей и границ для составления расписаний и результаты вычислительных экспериментов, а также осуществлено сравнение с алгоритмами динамического програм- мирования. 5
В книге умело раскрыто смысловое содержание постановок задач и методов их решения и одновременно даны строгие математические дока- зательства. Широко использована наглядная табличная форма пред- ставления сводок результатов, приведено большое число поясняющих примеров и графических иллюстраций. Список литературы включает около полутора сотен работ зарубежных авторов. При переводе добав- лен краткий список работ отечественных и зарубежных авторов по теме книги, опубликованных после написания данной книги, в котором акцент сделан на многопроцессорные расписания. Вследствие того, что главы книги написаны разными авторами, имеются некоторые различия в стиле изложения, способах представ- ления результатов и обозначениях. Эти обстоятельства, а также все еще недостаточно устоявшаяся терминология в теории расписаний выз- вали определенные трудности при переводе. Предлагаемая книга выдержала проверку временем и является одной из наиболее цитируемых в своей области. Несмотря на то, что после ее выхода в свет получен ряд новых результатов (см., например, [165, 179, 188, 214, 219)], материал книги представляет большой ин- терес для читателей в нашей стране, поскольку многие приведенные в ней результаты имеют основополагающий характер в теории расписа- ний и, кроме того, большинство изложенных результатов не публико- валось на русском языке. Декабрь 1982 г. Б. А. Головкин
ПРЕДИСЛОВИЕ В последние годы отмечается все возрастающий интерес к детерминированной теории расписаний, сопровождающий- ся новыми результатами. Данная книга является попыткой представить современное состояние этой области с точки зрения направлений исследований и характера решаемых задач. Поэтому большая часть материала посвящена отно- сительно недавним результатам, которые впервые обобще- ны и собраны воедино. Хотя книга и состоит из шести от- дельных согласованных глав, ее следует рассматривать не как сборник статей, а, скорее, как текст, специально по- священный определенной проблеме и имеющий много авто- ров. При таком количестве авторов возникла необходи- мость в редакторе, который скоординировал бы усилия се- ми человек. Книга представляет собой теоретическое исследование проблем упорядочения, возникающих при организации вы- полнения работ в вычислительных системах. При этом рас- сматриваемые модели являются простыми по структуре и содержательными по отношению к большому количеству прикладных проблем. Если говорить кратко, изучаемая общая модель предполагает наличие множества заданий или работ и множества ресурсов, которые используются при обслуживании заданий. Почти во всех случаях модели яв- ляются детерминированными в том смысле, что информа- ция, описывающая задания, известна заранее. Эта инфор- мация включает времена выполнения заданий, ограничения предшествования при обслуживании заданий, стоимости пребывания в системе и требуемые ресурсы. Рассматрива- ются основные задачи упорядочения по критериям миними- зации длины расписания и минимизации времени пребыва- ния в системе (взвешенного по стоимостям пребывания за- даний в системе), а также упорядочения, связанного с вы- полнением директивных или крайних сроков. Рассматри- вается также ряд сопутствующих задач. Представленные результаты включают эффективные оптимальные алгорит- мы, эвристические алгоритмы и оценки их характеристик, эффективные перечислительные и приближенные методы, а также математическое обоснование оценок сложности ши- рокого класса задач упорядочения. 7
Вычислительные машины рассматриваются, по крайней мере, в трех аспектах. Во-первых, для нас они представ- ляют практически универсальную область приложений. Прикладную сторону рассматриваемых задач можно про- иллюстрировать на примере конструирования операцион- ных систем общего назначения, хотя ряд проблем может иметь первостепенную важность в других применениях. Во-вторых, вычислительные машины должны рассматри- ваться как инструмент, позволяющий реализовать пере- числительные и приближенные. методы. Наконец, инфор- матика породила теорию вычислительной сложности, ко- торую мы здесь рассматриваем применительно к задачам упорядочения. Как и другие разделы прикладной математики, теория расписаний позволяет решать задачи из многих научных дисциплин. В нашем случае к ним относятся организация производственных процессов, наука об управлении, эко- номика, исследование операций, информатика и электро- техника. Книга непосредственно предназначена для тех подразделений исследовательских и учебных институтов, в которых занимаются задачами в области детерминирован- ной теории расписаний. Сущность рассматриваемого мате- риала требует от читателей определенной математической подготовки. Таким образом, предполагается, что книга доступна студентам, по крайней мере, после первого года обучения. Я благодарен Исследовательскому институту по инфор- мации и автоматике (Роканкур, Франция) за главную под- держку в создании этой’книги. Начальный этап и большая часть работы над главами 2 и 3 проходили в университете штата Пенсильвания при поддержке со стороны Нацио- нального научного фонда по субсидии NSF-28290. Работа над главой 6 была поддержана Национальным научным фондом по субсидии NSF-GK-37400 и NSF-GK-42048 и Ис- следовательским бюро армии США по контракту DANCO4- 69-С-0012. Выражаю благодарность миссис Тедди Поттер и миссис Ханне Кресс за перепечатку части рукописи. Наконец, выражаю особую признательность д-ру М. Гэ- ри и д-ру Д. Джонсону, взявшим на себя труд по прочте- нию и исправлению рукописи. Они особенно помогли мне как редактору в постоянном стремлении включать в книгу как можно больше новых результатов, чтобы не дать ей устареть ^до выхода |в |свет. Э. Г. Коффман Пенсильванский университет Май 1975 г. 8
ГЛАВА 1 ВВЕДЕНИЕ В ДЕТЕРМИНИРОВАННУЮ ТЕОРИЮ РАСПИСАНИЙ В этой главе мы рассмотрим с общих позиций круг проб- лем, составляющих содержание книги. Для этого введем общую систему обозначений, применяемую при описании моделей, и приведем ряд результатов, которые служат для обоснования основных положений или расширяют и обоб- щают область задач, охватываемых книгой. Поэтому мы рекомендуем читателю вначале ознакомиться с этой гла- вой, а затем уже приступать к изучению глав 2—6. Хотя каждая глава может быть прочитана независимо, читатель заметит, что в выбранном порядке изложения заложен опре- деленный смысл. Взаимная независимость глав 2—6 является в некоторой степени результатом того, что книга написана многими ав- торами; в данной ситуации независимость глав представ- ляет, конечно, удобство для авторов. Однако предмет ис- следования разбит на части таким образом, что эта незави- симость не кажется неестественной, ввиду чего некоторое несовпадение стилей и обозначений, которое может быть замечено при переходе от одной главы к другой, не поме- шает пониманию, особенно если предварительно ознако- миться с настоящей главой. В § 1.1 обсуждаются цели и предпосылки книги. Общая модель, изучаемая в дальнейшем, представлена в § 1.2. Параграф 1.3 посвящен предшествующим результатам, за- имствованным в основном из [28]. В § 1.4 дан обзор резуль- татов глав 2—6, с использованием,- где это возможно, таб- личного представления. Ряд сопутствующих результатов, которые служат дополнением к главам 2—6, приведен в § 1.5. Наконец, § 1.6 содержит некоторые замечания по по- воду обозначений, использованных в последующих главах. 1.1. Цели и предпосылки В наиболее общей формулировке задачи составления расписаний, изучаемые в этой книге, состоят в следующем. С помоЩЬю некоторого множества ресурсов или обслужи- 9
бающих устройств должна быть выполнена некоторая фик- сированная система заданий. Цель заключается в том, что- бы при заданных свойствах заданий и ресурсов и наложен- ных на них ограничениях найти эффективный алгоритм упорядочения заданий, оптимизирующий или стремящий- ся оптимизировать желаемую меру эффективности. В ка- честве основных мер эффективности изучаются длина рас- писания и среднее время пребывания заданий в системе. Модели этих задач являются детерминированными в том смысле, что вся информация, на основе которой принимают- ся решения об упорядочении, известна заранее. В част- ности, задания и все данные о них предполагаются извест- ными в начальный момент, за который обычно принимает- ся время t—Q. Поскольку невозможно эффективно организовать рабо- чий день, составить расписание экзаменов в университете или даже приготовить пищу, не решая на каждом шагу задачи упорядочения, нет нужды доказывать обоснован- ность предпосылок к изучению этих проблем. С другой стороны, наше внимание должно быть сосредоточено на формулировках задач, которые были бы ориентированы на применение в тех случаях, когда неэффективное упорядоче- ние обходится слишком дорого. Допущения, в рамках ко- торых задача может быть формализована, должны, напри- мер, отражать общие черты производственных задач. В дан- ном случае, в силу научных интересов авторов, природа рассматриваемых моделей, в основном, связана с вычисли- тельными системами. Читатели, хорошо знакомые с архитектурой вычисли- тельных систем общего назначения и с проблемами эконом- ной организации вычислительных работ, убедятся, что при этом мы практически не теряем общности. Редко можно встретить фундаментальную проблему упорядочения, кото- рая не была бы интересной и важной применительно к су- ществующим или разрабатываемым вычислительным си- стемам. С другой стороны, специальные вопросы, связан- ные с применениями, рассматриваться не будут. Как мы увидим позднее, книга отражает тот факт, что важные тео- ретические результаты (за исключением тех, которые свя- заны с вопросами сложности) могут быть получены на ба- зе весьма простых моделей, которые применимы к широко- му спектру практических задач составления расписаний. В книге использованы многие сходные термины без их формального уточнения. Например (если не оговорено осо- бо), такие слова, как «работы», «задания», «программы» 10
(в вычислительной машине) и «заявки», могут, с учетом на- ших целей, считаться эквивалентными. Понятие «ресурсы» может быть отнесено к машинам, накопителям и, наиболее часто, к процессорам. По отношению к соответствующим ресурсам работы могут быть совершены, просчитаны, вы- полнены, записаны в память или обслужены. Вместо сло- ва «алгоритм» мы можем использовать такие слова, как «правило», «процедура», или соответствующая «функция», или «отображение». Такие слова и выражения, как «со- ставление расписаний», «упорядочение», «распределение» и «назначение», используются как синонимы или аналоги, в зависимости от контекста. Как обычно в современной литературе, нетривиальные алгоритмы описываются с по- мощью неформальной алголоподобной нотации; здесь не используются никакие специальные средства, которые мог- ли бы оказаться читателю непонятными. Вообще говоря, цель данной книги состоит в описании детерминированных задач упорядочения и в столь исчер- пывающем их анализе, чтобы создать уверенность в том, что: 1) полностью охвачено состояние исследований в этой области, выполненных в последние годы; 2) хорошо представлены основополагающие принципы, которые могут быть абстрагированы от проведенного здесь и ранее анализа и формальных подходов к этим задачам. В наши дни любая попытка написать книгу, которая имела бы явный успех в обоих аспектах, обречена на не- удачу, так как такая книга будет постоянно находиться в стадии написания. Основная причина этого заключена в обычной трудности находиться au courant *) в области науки, которая набрала такие темпы, как теория расписа- ний. Но проблема усугубляется еще тем, что теория рас- писаний проникла в несколько дисциплин, каждая из ко- торых представляет собой обширную и развивающуюся об- ласть науки. В нашей книге учтены многие результаты в области исследования операций, информатики, науки об управлении, организации производственных процессов, электротехники и прикладной математики, полученные как в промышленности, так и в научных организациях, где трудится большое (и все возрастающее) число ученых, стре- мящихся продвинуть вперед теорию расписаний. Невоз- можно охватить огромное разнообразие специальных си- *) Au courant — в курсе (быть в курсе) (фр*яц.). (Прим, перев.) 11
стем, которые образуют принципиальные предпосылки для исследований в рамках этих дисциплин. Таким образом, наша более скромная цель заключается в том, чтобы сосре- доточить усилия на простых и характерных моделях, имеющих простую структуру, которые с точки зрения ком- бинаторной сложности и методов анализа напоминают или уточняют различные структуры, встречающиеся в пере- численных разделах науки и техники. После более формального обсуждения результатов по- следующих глав мы вернемся к вопросу о целях, когда будем обсуждать задачи и подходы, не подвергшиеся де- тальному исследованию. В заключение данного параграфа сделаем некоторые замечания по поводу литературы, для того чтобы указать нашу отправную точку. Основное вни- мание в последующих главах уделено результатам, которые появились в течение последних 7—8 лет; фактически, большинство из них стало известно в последние 4—5 лет. Что касается книг, то первые главы монографии [28] (опуб- ликованной в 1967 г.) составили естественную основу на- стоящей книги. Мы особенно рекомендуем эту моногра- фию читателям, интересующимся предпосылками из обла- сти промышленности, которые здесь не рассматриваются. Мы снова подчеркиваем, что наше исследование носит по- чти полностью математический характер и в очень незна- чительной степени касается прикладных аспектов. Приме- нимость (и, конечно, неприменимость) нашей книги будет совершенно очевидна практически во всех случаях, главным образом благодаря простоте моделей. Но [28] дает хорошее представление об общих практических задачах и содер- жит многие черты таких задач, которые расширяют рас- сматриваемые здесь модели, но для которых сравнимые ре- зультаты отсутствуют (см. также [91). В данной книге представлены, фактически, все теорети- ческие результаты, содержащиеся в [28], которые попа- дают в область детерминированной теории расписаний. Они образуют основу для новых результатов. В действительно- сти исходный материал лишь кратко излагается в отдель- ных параграфах первой и второй глав. Дополнительные результаты, относящиеся к главам 2—5 и связанные с про- блемами упорядочения в вычислительных системах, кото- рые также можно рассматривать как исходные, имеются в более поздней книге по теории операционных систем [22]. Именно ограниченные размеры третьей главы книги [221 дали толчок к написанию'настоящей'книги. Таким образом, книга содержит, в основном, новые результаты, до сих пор 12
не публиковавшиеся в виде отдельного издания. Из недав- них обзорных работ, касающихся многих вопросов, ко- торым посвящена данная книга, следует отметить [5, 14, 29, 47]. 1.2. Основная модель Модель процесса упорядочения, в терминах которой формулируются все последующие задачи, представлена в виде совокупности моделей, описывающих ресурсы, систе- му заданий, ограничения предшествования и меры оценки расписаний. (В конце главы мы кратко рассмотрим вопросы, связанные с системой обозначений в этой и последующих главах.) 1.2.1. Ресурсы. В большинстве изучаемых моделей ре- сурсы состоят просто из набора процессоров /Э = {Р1,. . . ..., Рт}. В зависимости от особенностей задачи они явля- ются либо идентичными, либо одинаковыми только по функциональным возможностям, но разными по быстро- действию, либо разными как по возможностям, так и по быстродействию. В наиболее общей модели еще имеется набор дополни- тельных типов ресурсов M={Pi,. . .,7?s}, некоторое (воз- можно, пустое) подмножество которых используется на протяжении всего выполнения задания на некотором про- цессоре. Общее количество ресурса типа Rj задается поло- жительным числом rrij. Применительно к вычислительным машинам, например, такими ресурсами могут быть устрой- ства оперативной и внешней памяти, устройства ввода-вы- вода или библиотеки подпрограмм *). Хотя возможно вклю- чить в SZ и процессоры, однако более удобно рассматривать их отдельно, потому что: 1) они образуют ресурс такого типа, который с необ- ходимостью является общим для всех заданий (хотя для двух различных заданий нет необходимости требовать один и тот же процессор); 2) дискретность ресурсов этого типа такова, что задание в каждый момент времени может выполняться, самое боль- шее, на одном процессоре. *) В данной главе и в гл. 4 (если не оговорено особо) ресурс типа R; рассматривается как набор, состоящий из т,- единиц одинакового ресурса. В несколько более общей модели гл. 5 т; обозначает количе- ство ресурса R;, обычно приведенное путем нормализации к 1, произ- вольная доля которого может потребоваться для выполнения данного задания, 13
Эти особенности не относятся к ресурсам типа siirsCs). 1.2.2. Система заданий. Общая система заданий для заданного набора ресурсов может быть определена как система cF", К, [ту,-], {иу} следующим образом. 1. S' = • • ., Тп} есть набор заданий, подлежащих выполнению. 2. < обозначает заданное на S' отношение частичного порядка (нерефлексивное), которое определяет ограниче- ния на последовательность выполнения заданий. Запись Тj < Т} означает, что 7\- должно быть завершено раньше, чем начнется выполнение Тj. 3. [тг;] представляет собой матрицу размера тХп, эле- мент которой т;/>0 есть время выполнения задания Т} (1С/Ся) на процессоре Рг(1^1^т). Мы полагаем, что t;j=oo, если Tj не может быть выполнено на Pit и что для каждого / существует по крайней мере одно i, для которого В случае, когда все процессоры идентичны, т,- обо- значает время выполнения Т j на любом процессоре. 4. j),. . ,,Rs(Tj)\ (!</<«) есть набор, i-я компонента которого представляет собой количество ре- сурса типа Ri, необходимое для выполнения задания Тj. Далее везде предполагается, что Ri(Tj)^.nii для всех i и /• 5. Веса интерпретируются как стоимости пребывания заданий в системе (или, точнее, удельные стои- мости), которые в общем случае могут быть произвольными функциями параметров, связанных с Tt. Мы, однако, счи- таем wt постоянными величинами. Таким образом, «стои- мость» завершения задания Tt в момент t равна просто Wjt. Данная формулировка является намного более общей, чем те, которые мы собираемся использовать в последую- щих главах, зато модель каждой из исследуемых нами за- дач может быть представлена как частный случай описан- ной общей модели. Стоит особо отметить ограничение, на- ложенное на отношение порядка между заданиями. Мы не можем, например, представить в рассмотренном виде про- грамму, содержащую циклы. Отметим, что отношение час- тичного порядка < обычно представляется в виде ориен- тированного ациклического графа (орграфа), у которого отсутствуют транзитивные (избыточные) дуги. Если не ого- ворено особо, мы полагаем, что < задается в виде списка дуг в'таком графе. Однако, вообще говоря, способ, с по- мощью которого описывается частичное упорядочение, вли- 14
. е. «задание 1» может Задание/время выполнения, идентичные процессоры яет на сложность решения задачи. (Мы вернемся к этому вопросу позднее.) На рис. 1.1, например, чтобы отметить вершины гра- фа, использованы обозначения Т^. Задания иногда обо- значаются просто их номерами быть использовано вместо Ти особенно когда вершины графа более удобно помечать целыми числами). Как и следовало ожидать, мы предпочитаем графический способ определения систем за- даний описанию их с помощью соответствующей пятерки объек- тов. В связи с этим мы выбрали ряд более или менее общеупот- ребительных терминов, относя- щихся к орграфам. В частности, путем длины k от Т к Т' в за- данном графе G называется по- следовательность вершин *) (за- даний) Т. .., Т; такая, что T=TIlt T' = T.k и (Т,-., Г, ) еСТЬ ДУГа В Для ВСеХ 1 k — 1. Кроме того, если такой путь существует, Т будет называться предшественником Т', а Т'—преемником Т. Если k = 2, то будут использоваться термины непосредственный пред- шественник и непосредственный преемник. Начальными являются вершины, не имеющие предшест- венников, а конечными—не име- ющие преемников. Граф образует лес, если либо каждая вер- шина имеет не более одного предшественника, либо каждая вершина имеет не более одного преемника. Если лес в пер- вом случае имеет ровно одну вершину без предшествен- ников, а во втором—ровно одну вершину без преемников, то он называется также деревом. В обоих случаях термины корень и листья имеют обычное значение. Уровнем вер- шины Т называется сумма времен выполнения, приписан- Рис. 1.1. Представление си- стемы заданий (^г, — в виде ациклического оргра- фа. Обозначения и свойства: 1) Ацикличность. 2) Отсутст- вие транзитивных ребер (та- ким могло бы быть ребро (Tj, Тв)). 3) Начальные вершины Г1, Т2, Т,„ 7"10, конечные вер- шины Ta, Ть, TJ0. 4) Т7, на- пример, является преемни- ком 7\, Т2, Тз, Ть Тг>, но непосредственным преемни- ком—.только Т4,Т&; Т5 яв- ляется предшественником Т7, Та, Т9, но непосредственным предшественником — только Т7, Т8. 5) Уровни: Ту—8, Т2—9, Т3—8, Т4—7, Тъ—7, 7>3. Т7—5, Та—6, Ta—2, Ту,,— I. 6) Критические пути: Т2, Tg, 7’я и Т.,, Ту, Т-, Тв. *) В качестве синонима употребляется также термин узел. 15
них вершинам, находящимся на таком пути от Т к конеч- ной вершине, на котором эта сумма имеет максимальное значение. Такой путь называется критическим путем, если вершина Т имеет наибольший уровень в графе. 1.2.3. Ограничения при составлении расписаний. Под словом «ограничения» здесь|подразумевается то, что мы ограничиваем круг алгоритмов составления расписаний двумя (хотя и широкими) классами. Рассматриваются два основных ограничения. 1. Составление расписаний без прерываний. При этом ограничении выполнение задания, раз начавшись, не мо- жет быть прервано, т. е. выполнение задания всегда дохо- дит до конца. В общем случае — при составлении расписа- ний с прерываниями — разрешается прерывать задания и снимать их с процессора; при этом полагается, что общее время, требуемое для выполнения задания, остается неиз- менным и при прерываниях отсутствуют потери времени об- служивания (т. е. выполнение прерванного задания возоб- новляется с того места, в котором произошло прерывание) *). 2. Составление расписаний с помощью списка. При та- ком способе составления расписаний предполагается, что вначале готовится упорядоченный список заданий из S’. Этот список часто называется списком приоритетов. По- следовательность, в соответствии с которой задания на- значаются на процессоры, составляется путем многократ- ного просмотра списка. В частности, если появляется ос- вободившийся процессор, то список начинает просматри- ваться сначала и просматривается до тех пор, пока не най- дется первое невыполненное задание Т, которое готово к выполнению. Задание считается готовым к выполнению на данном процессоре, если выполнение всех предшественни- ков Т завершено и имеющегося количества ресурсов доста- точно для того, чтобы обеспечить Rt (Г) для всех i, Это задание назначается для выполнения на свободный про- цессор. Мы предполагаем, что каждый просмотр осуществ- ляется мгновенно. Кроме того, если одновременно два или более процессоров оказываются свободными, мы предпо- лагаем, что сначала назначается задание на Pi, затем на Р2, затем на Р3 и так далее. Для удобства записи предпо- лагаем, что список упорядочивается (и просматривается) слева направо и записывается в виде L=(Tiv. . *) Рассматриваемый вид прерываний не следует путать с прерыва- ниями, возникающими в машине по ходу вычислительного процесса и связанными с обработкой, например, внешних сигналов. (Прим, ие- рее.) . 16
При этом прерывания не рассматриваются. Таким обра- зом, расписания, составленные с помощью списка, обра- зуют подмножество расписаний без прерываний. Перед тем как перейти к рассмотрению показателей эф- фективности расписаний, проиллюстрируем способ графи- ческого представления расписаний, полагая s=0. Для это- го используем временную диаграмму, показанную на рис 1.2, которая соответствует системе заданий, изобра- женной на рис. 1.1. Число процессоров очевидным об- разом определяет число го- ризонтальных линий, обо- значающих оси времени. Заштрихованные области Рис. 1.2. обозначают периоды, когда процессоры свободны. Для того чтобы при необходимости можно было ссылаться на свободные периоды, они обозна- чены символом 0. Для обозначения таких диаграмм ис- пользуется при необходимости символ D. Символы st и fi обозначают соответственно моменты на- чала и окончания выполнения задания ТКогда необхо- димо подчеркнуть зависимость от конкретного расписания S, используются обозначения St(S) и f^S). Для задач, в которых предполагается наличие дополни- тельных ресурсов, мы будем пользоваться временной диаг- раммой только при s=l. В этом случае вертикальная ось обозначает количество требуемого дополнительного ресур- са, число вертикальных сегментов соответствует количест- ву использованных процессоров. Такой пример дан чуть ниже на рис. 1.4, б. Временная диаграмма на рис. 1.2 дает неформальное и интуитивное понятие о расписании. Несколько более фор- мально расписание может быть определено как некоторое отображение, которое, в общем случае, сопоставляет каж- дому заданию последовательность из одного или более не- пересекающихся временных интервалов, лежащих в [0, <х>), так что: 1. На каждый интервал назначается один процессор. 2. Сумма длин интервалов в точности равна времени вы- полнения задания, с учетом, если это необходимо, разной скорости выполнения на разных процессорах. 3. Никакие два интервала, относящиеся к разным зада- ниям, назначенным на один и тот же процессор, не' пере- крываются. 17
4. Учтены ограничения на порядок выполнения зада- ний п использование дополнительных видов ресурсов. 5. На отрезке 10, max {f,}\ не существует интервалов, на которых ни один из процессоров не был бы выделен ка- кому-либо заданию (т. е. в расписании не разрешается иметь все процессоры свободными, если остаются незавершенные задания). В расписаниях без прерываний для каждого задания от- водится ровно один интервал, а при составлении расписаний с помощью списка еще накладывается требование, чтобы ни один процессор не мог быть свободным, если имеются готовые к выполнению задания, которые могут быть на него назначены. Мы не будем пытаться дальше углублять- ся в формализацию понятия расписаний, поскольку строгое математическое определение не является необходимым, к тому же оно чрезвычайно сложно для общей модели. 1.2.4. Показатели эффективности расписаний. Будем рассматривать два основных показателя эффективности, а именно: длину расписания, или максимальное время завер- шения, о>(5)= max (f;(S)} (1) 1 < I < п и среднее взвешенное время завершения, или прохождения, п Основная проблема, таким образом, заключается в нахож- дении эффективных алгоритмов, .позволяющих находить среди всех расписаний (относящихся, возможно, к выде- ленным ранее классам) такие, для которых эти величины достигают минимума. Здесь уместно показать, что алгоритмы составления рас- писаний с прерываниями, без прерываний и использующие список приоритетов дают различные результаты с точки зрения минимальной длины расписания и среднего взве- шенного времени прохождения, причем «мощность» этих алгоритмов убывает в том порядке, в котором они пере- числены. На рис. 1.3, а, б, в, г приведены, соответственно, граф системы заданий, расписание минимальной длины, в котором разрешены прерывания, расписание минимальной длины без прерываний и расписание минимальной длины, составленное с помощью списка приоритетов. Предоставля- ем читателю убедиться в оптимальности расписаний. Заме- 18
тим, что при W;—l среднее взвешенное время ми- нимально во всех рассмотренных случаях и может быть ис- пользовано как критерий для составления расписаний с минимальной длиной. Рис. 1.3. Иерархия методов, а) т—‘2, идентичные процессоры, s—О, (0/=1 (1 <КЖб). б) Оптимальное расписание с прерываниями; w=8, w=29/6. в) Оптимальное расписание без прерываний; со=9, <о=ЗО/6. г) Оптимальное списочное расписание; <о=11, <в=32/6. Расписания с прерываниями могут быть более коротки- ми по сравнению с расписаниями без прерываний и в том случае, когда отношение < пусто (например, для ш=2 и трех заданий с единичными временами выполнения). За- метим, однако, что для идентичных процессоров списочное расписание минимальной длины совпадает при пустом от- ношении < с расписанием минимальной длины в классе всех расписаний без прерываний. Для критерия минимума среднего взвешенного времени прохождения при пустом отношении < и идентичных процессорах списочное распи- сание также является оптимальным в этом классе. Таким образом, в указанных условиях различие между этими дву- мя классами отсутствуют. 19
Многие результаты, особенно относящиеся к сложности задач и приближенным и перечислительным методам, мо- гут быть распространены и на другие важные критерии эффективности упорядочения. Например, предположим, что процессоры идентичны и величина (S)=fz(S)—тг опреде- лена как время ожидания обслуживания Tt в 3. Как легко заметить, расписание, минимизирующее <о, одновременно минимизирует среднее взвешенное время ожидания. Расширим общую модель, сопоставив каждому заданию Tt положительное число dz(l^i^n) которое назовем ди- рективным сроком для этого задания. Директивный срок представляет собой момент времени, к которому желательно завершить выполнение задания. Определим временное сме- щение задания в расписании 3 как разность ft (3)—di и запаздывание — как тах{0, Л (S)—dt}. Такие критерии эффективности, как минимальные и средние значения вре- менного смещения и запаздывания, также представляют ин- терес. Как и в случае с временем ожидания, легко видеть, что расписание, минимизирующее среднее взвешенное вре- мя выполнения, минимизирует и среднее взвешенное вре- менное смещение; для среднего взвешенного запаздывания это не так. Существуют задачи, в которых директивные сроки не должны нарушаться (т. е. Д (3)^с!г, тогда они называются крайними сроками. Одной из таких задач, на которую мы хотели бы обратить особое внимание, являет- ся задача о нахождении минимального числа процессоров, необходимых для выполнения системы заданий к общему крайнему сроку di=d, при условиях, что < пус- то, s=0, а процессоры идентичны. Данная задача связана с задачей об упаковке в контейнеры и рассматривается в гл. 5. Любопытно, что, как мы установили, она эквива- лентна задаче нахождения расписания минимальной дли- ны для случая идентичных процессоров при условиях: < пусто, тг = 1 tri^n u s=l. На рис. 1.4, а, б показана эта эквивалентность. Отметим, что если из спис- ка условий исключить ограничение т^п, то получаем за- дачу, эквивалентную упорядочению с общим крайним сро- ком с целью минимизации числа процессоров при условии назначения на один процессор в целом не более т заданий. Хотя для нужд гл. 2—6 нет необходимости вводить в об- щую модель крайние сроки, дополненная система с произ- вольным набором {dt} кратко рассмотрена в следующем параграфе для случая, когда имеется один процессор, а также в п. 1.4.1. 20
В качестве последнего критерия эффективности, пред- ставляющего большой интерес, рассмотрим М (S) —• сред- нее количество заданий, выполненных на интервале [О, Pt Р, Р* Ps 13 16 I Крайний срок rf = 18 Рис. 1.4. со (S)]. В общем случае эта величина характеризует ожи- даемые потребности системы в процессорах или накопите- лях, возникающие при выполнении вычислений. Мы можем записать <о (S) S<S>=dsrJ Nmit' о где N(t) есть количество заданий, не выполненных к мо- менту t. Очевидно, что N (t) представляет собой убываю- щую ступенчатую функцию, которая изменяет значение в моменты окончания выполнения заданий (для нескольких заданий эти моменты могут совпадать). Действительно, ин- теграл можно представить в виде суммы n + ("-1) + • • • где нумерация заданий предполагается такой, что ^/>(S) Для При единичных весах в (2) 21
получим <3» Заметим, что данное выражение получено независимо от дисциплины обслуживания, числа процессоров и других параметров, отличных от времен окончания выполнения заданий. Из этого выражения сразу следует, что при т—\ (единственный процессор) N (S) минимально тогда, когда минимально <в(5), так как при т=1 <o(S) не зависит от S. Позже мы рассмотрим случай т^2. 1.3. Предшествующие результаты для случая одного процессора В этом параграфе мы приведем классические результаты для частного случая, когда имеется один процессор (т-1), < пусто и s=0. При т=1 задача минимизации шах не имеет смысла, поэтому будем рассматривать другие меры эффективности, введенные в предыдущем параграфе. Важнейшие результаты перечислены в следующих теоре- мах. Теорема 1.1 [1361. Минимальные значения средне- го взвешенного времени прохождения, временного смещения и времени ожидания достигаются в том случае, когда на- значение заданий на выполнение производится в порядке не- убывания отношений тг/даг. Поскольку max {/,} фиксирова- но, то из (3) следует, что при таком расписании N также минимально. | Теперь предположим, что имеются директивные сроки и задача заключается в нахождении расписаний, оптималь- ных в смысле временного смещения и запаздывания. Пра- вило упорядочения в этом случае состоит в следующем. Теорема 1.2 [81]. Наибольшие величины временного смещения и запаздывания достигают минимума при обслу- живании заданий в порядке неубывания директивных сроков. ] Наконец, для систем с директивными сроками опреде- лим величину dt~тг—t, которую назовем резервным вре- менем Tt в момент t. Результат упорядочения заданий в соответствии^ с кажущимся привлекательным правилом по неубыванию резервного времени дается следующей не- сколько неожиданной теоремой. Теорема 1.3 [28]. Упорядочение по неубыванию ре- зервного времени максимизирует минимальное временное сме- щение и минимальное запаздывание. 22
Все три теоремы доказываются одинаковым способом, суть которого заключается в следующем. Пусть имеется последовательность S, обладающая требуемыми оптимальны- ми характеристиками, но в которой нарушен указанный порядок следования. (В случае заданий с равными приори- тетами упорядочиваем их произвольно и получаем линей- ный порядок.) Тогда должны существовать два соседних задания, которые нарушают порядок следования. Покажем, что перестановка этих заданий местами улучшит расписа- ние, что противоречит предположению об оптимальности S. Проиллюстрируем эту процедуру на примере доказа- тельства первой части теоремы 1.1 для случая среднего взвешенного времени. Пусть в рассматриваемой гипотетической последователь- ности S величины /(t), т(г) и w(i) обозначают соответственно момент завершения, время выполнения и стоимость пре- бывания задания, занимающего i-e место в последователь- ности, и предположим, что ^(fe+l) ’ ИЛИ <w(k+l)T(k). (4) Теперь рассмотрим, что произойдет с величиной сред- него взвешенного времени ю при перестановке местами й-го и (#+1)-го заданий. Перестановка приведет к увеличению времени окончания задания k на т(£+1) единиц и внесет в со дополнительное слагаемое (l/ri)w(k)x(k-\-\). В то же время задание £+1 завершится на x(k) единиц раньше, что приведет к уменьшению ю на величину (1/п)ш(£+1)т(k). В результате получаем <о' =со-{-[ш (k) т(& +1)—w (А+ 1) т (&)]/п. Учитывая (4), получим о/ < со, что противоречит мини- мальности со. Большое внимание привлекли задачи с директивными сроками для случая одного процессора, в которых в каче- стве показателя эффективности выступает величина запаз- дывания. С подходами, рассмотренными в гл. 6, связаны работы [98, 68], а также [121], где имеется обзор последних работ. В § 1.4 мы рассмотрим вопросы, связанные с вычис- лительной сложностью этих задач. Хорошо известен результат, относящийся к задаче о нахождении такой последовательности, при которой мини- мизируется число заданий, завершенных с опозданием [114]. Оптимальный алгоритм заключается в следующем. Вна- 23
чале составляется последовательность в соответствии с пра- вилом теоремы 1.2. Далее отыскивается первое задание Т, выполнение которого завершено с опозданием, и из началь- ной последовательности, оканчивающейся заданием Т, ис- ключается такое задание Т', которое имеет максимальное время выполнения. Этот процесс повторяется с новой по- следовательностью до тех пор, пока не останется запазды- вающих заданий. Любая последовательность, начинающаяся с подпоследовательности, найденной описанным способом, содержит минимальное число заданий, завершенных с опо- зданием. Обобщения этой задачи рассмотрены в [135] *). В [99] исследуется задача о минимизации максимального взвешенного времени завершения. Найден простой алго- ритм, минимизирующий maxfayj;} для системы с одним процессором и произвольным <. Представляет интерес оценка эффективности алгорит- мов упорядочения путем их сравнения с процедурой слу- чайного выбора. Важно также исследовать алгоритм, яв- ляющийся оптимальным в предположении о детерминиро- ванных временах выполнения заданий, в условиях, когда имеется лишь частичная информация (например, если зада- но распределение вероятностей). Исследование проблем, возникающих при такой постановке задачи, проведенное в последующих главах, показывает, что применение данно- го подхода во всех практически важных случаях связано со значительными трудностями. Тем не менее мы здесь при- ведем ряд результатов для системы с одним процессором с целью иллюстрации возможностей вероятностных моде- лей. Рассмотрим алгоритм случайного выбора и алгоритм упорядочения по наименьшему времени выполнения (SPT— shortest processing time) в предположении, что tn=l, Wi=l (1<г<п), а времена выполнения {тг} — независимые слу- чайные величины с функцией распределения F(t). Пусть Е (т) обозначает первый момент функции Т(т). Прежде все- го, если т(г) есть случайная величина, обозначающая время выполнения i-ro задания, то 2 f (О = 2 2 (/) = 2 (п—/ +1) т (/). i=l i=1j=1 j=1 Отсюда для упорядочения методом случайного выбора имеем Е(^) = ^Е(х). (5) *) Дальнейшее обсуждение и ссылки см. в [9]. 24
Предположим теперь, что мы выбрали какие-то значе- ния времен выполнения и упорядочили последовательность в соответствии с правилом SPT. Для того чтобы рассчи- тать математическое ожидание Е(ios) среднего времени прохождения заданий для последовательности, вначале получим величину Е (а>Л), соответствующую обратному алго- ритму, когда упорядочение производится по максимальному времени выполнения (LPT—largest processing time), а затем простым способом перейдем к £(со$). Пусть выбранные значения времен выполнения пронумерованы в порядке возрастания их величин Тогда имеем £(со£) = £ !+1)т(п—1’4-1) Вычисляя распределение Ft(x) для времени выполнения задания, занимающего i-e место, получим (т) = F‘,_1 t1 ~F dF откуда получаем, что £[т (г)] = xdF; (т). В частности, находим Е (а^ — Е (т) + (п — 1) \ xF (г) dF (т). Теперь мы имеем соотношение Е (ю5) = ± V (rt_j-}. 1) Е [т (i)] = (п + 1) Е (х)—Е (<о£), и, следовательно, Е (ti>s) = nE (т)—(п—1) f xF (т) dF (т). (6) Это позволяет сравнивать результаты, полученные для последовательности, составленной с помощью алгоритма SPT, с результатами случайного выбора. Заметим, что 25
E (®s) достигает максимума, когда дисперсия F (т) равна нулю, и принимает при этом значение Е(сой). Теперь рассмотрим задачу, отличающуюся от предыду- щей тем, что информация о случайных величинах известна лишь частично. Пусть имеется семейство функций распре- деления {G;(t)}, описывающих независимые случайные ве- личины тх, т2,. . тп. Если известны только математиче- ские ожидания Е(т;), то для последовательности, составлен- ной по неубыванию значений получим п 1=1 Оценим теперь погрешность, возникающую из-за того, что использовались только математические ожидания рас- сматриваемых величин. Выберем некоторые значения времен выполнения в со- ответствии с функциями распределения G, (т) и располо- жим их в порядке неубывания. В этом случае для матема- тического ожидания среднего времени прохождения может быть доказано следующее [28]: п Г QO/fl Еч й=22 Е (ту)-т \г 22 (т)) d°i (т) /= 1L о '.«=#/ 7 (8) Идея доказательства состоит в следующем. Рассмотрим слагаемое Е2(<Оу) внешней суммы, представляющее собой вклад задания Т;- в Е2 (со). Для заданного значения вре- мени выполнения т задания Тобозначим через pin (т) вероятность того, что задание Tj занимает с-е место в по- следовательности, содержащей п заданий. Непосредствен- ное вычисление дает рекуррентные соотношения Pi, n+i W = Pin (т) [1 — G„+1 (т)] 4- p:_it п (т) G,I+1 (т), 1 = 2, 3, ..., и, Pi, n+i (t) = Pm (т) [1 — G„+1 (т)], Рп+1,п+1 W==Pn„(T) G„+1(t), на основании которых по индукции получим формулу для Е2 Базис индукции (п = 1) легко получить из (8). Далее, пусть Е2 [©„(/)] обозначает результат для п зада- ний; тогда со п+ 1 £2[®я+1 (/)]= [(n + 0—»+l]P/,n+i (T)dGz.(T), 0 l'sl 26
или Е2 [ю„+1 (/)] = = п_|_ 1 Ег [со„ (/)]+ n_|_1 У tG„+j (?) dGt (т). о Подставив сюда Д2 [«„(/)] из (8), завершим индукцию: <о /п+1 \ ^2 K+i (/)] = Е (Xj)—J т £ (G { (?) dGj (?). о J Сравнение (7) и (8) дает нам возможность оценить погреш- ность в определении характеристик расписаний в условиях, когда известны только математические ожидания времен выполнения. 1.4. Точные и приближенные результаты для задач минимизации длины расписаний и среднего времени прохождения Результаты, приведенные в гл. 2 и 3, удобно рассмат- ривать совместно с результатами гл. 4, так как обсуждение проблем вычислительной сложности позволяет оценить как значение результатов гл. 2 и 3, так и возможности их обоб- щения. Необходимо, однако, сделать ряд предваритель- ных замечаний по поводу мер вычислительной сложности. Несмотря на краткость этих замечаний, их достаточно для понимания материала данного параграфа. Подробно эти вопросы рассмотрены в гл. 4. В общем случае термин «сложность» алгоритма решения какой-либо задачи связывают только с временем получе- ния решения, выраженного в виде функции от длины входа, т. е. количества битов, необходимых для задания конкрет- ного набора параметров задачи. В нашем случае будем определять сложность в виде функции от основных парамет- ров задачи, в первую очередь от количества заданий п. В ряде ситуаций это является существенным упрощением, которое, однако, вполне допустимо для наших целей. (Мы попросту полагаем, что время считывания и преобразова- ния чисел всегда постоянно *), что оправдано с точки зре- ния практики.) Детальное описание функций, определяющих слож- ность, зависит от особенностей алгоритма и структуры дан- *) И не зависит от их длины. (Прим, перев.) 27
них и не входит в сферу нашего рассмотрения. Поэтому мы будем пользоваться символом О(-), обозначающим зави- симость по порядку величины, ограничиваясь тем’самым описанием свойств, определяющих поведение функции на бесконечности. Так, если мы говорим, что алгоритм имеет сложность О(п2), то это просто означает, что существует постоянная с такая, что функция сп2 ограничивает сверху время выполнения алгоритма как функции от п. Напри- мер, если необходимо упорядочить произвольную последо- вательность из п времен, то, как известно, существуют ал- горитмы, использующие только попарные сравнения и имеющие сложность О(п log2 ri). Однако точное выражение для сложности в различных алгоритмах содержит величи- ны порядка 0(п), O(log2n) или 0(1) и может иметь коэффи- циент перед п log2 п. Алгоритм упорядочения, сложность которого ограниче- на полиномом от п, называется полиномиальным алгорит- мом или алгоритмом, работающим полиномиальное время. Соответствующая задача называется полиномиально раз- решимой. В дальнейшем мы будем называть алгоритм эф- фективным, если он полиномиален. Для такого определе- ния имеются веские основания с практической точки зре- ния, особенно при больших п. В этой связи необходимо отметить, что задачи упорядочения, которые мы рассмат- риваем, относятся или могут быть сведены к конечным за- дачам в том смысле, что множество их решений конечно. Поэтому введенное понятие эффективного алгоритма соот- ветствует непереборным алгоритмам; «неэффективные» ал- горитмы требуют перебора (перечисления) множества ре- шений и имеют сложность, определяемую, по крайней ме- ре, экспоненциальной функцией от п. Однако в гл. 6, где рассматриваются приближенные и перечислительные алго- ритмы *), понятие эффективности используется в обычном смысле, а не в указанном выше. Существует группа задач, называемых АД-полными (иногда их называют полиномиально полными или просто полными), в которую входят многие классические трудно- разрешимые задачи. К их числу относятся задача комми- вояжера, задача нахождения хроматического числа гра- фа, задача о ранце и другие. Известно, что с точки зрения сложности все AfP-полные задачи эквивалентны друг другу в том смысле, что если найдется полиномиальный алгоритм *) Под перечислительными алгоритмами понимаются алгоритмы направленного перебора. (Прим, перев.) 28
для одной из этих задач, то такой же алгоритм можно пост- роить и для всех других задач данного класса в соответст- вии с процедурой перехода, которая, правда, различна для различных задач. Таким образом, либо алгоритм, имеющий полиномиальную сложность, существует для всех NP-пол- ных задач, либо не существует ни для одной из них, при- чем неизвестно, какой из ответов правильный. Однако, не- смотря на отсутствие ответа на этот «основной» вопрос, имеются большие основания считать, что Л/Р-полные зада- чи чрезвычайно трудны. Как мы увидим в дальнейшем, по- чти все задачи составления расписаний в общем случае являются AfP-полными *). Предыдущие интуитивные рассуждения являются, ко- нечно, совершенно неформальными. Для формализации та- кого анализа нужно разработать математические средства представления алгоритмов и конкретных задач, определить вычислительную сложность в терминах введенной модели, а также описать процесс сведения одной задачи к другой. Такая формализация позволяет для каждой конкретной за- дачи выразить ее сложность в виде функции от характер- ных для данной задачи параметров, установить зависимость между временной и емкостной сложностью, определить те аспекты задачи, которые дают наибольший вклад в ее сложность, и так далее. Математическая сторона этой проб- лемы рассмотрена в гл. 4. Далее мы, снова неформально, иллюстрируем применение этой техники, рассматривая но- вую комбинаторную задачу и доказывая, что она полино- миально разрешима, только если полиномиально разреши- ма некоторая известная МР-полная задача. 1.4.1. Задачи минимизации длины расписаний. В гл. 2 рассматриваются задачи минимизации длины расписаний для т^2. В табл. 1.1 представлены результаты, получен- ные в данной области к настоящему времени. Чтобы облег- чить изучение таблицы, необходимо сделать ряд замечаний. 1. Столбцы соответствуют различным параметрам за- дач; каждая строка определяет конкретную задачу. В не- которых позициях указаны значения параметров, при ко- торых справедливы описанные результаты. Рассмотрим, например, задачу (строку) 2. В этой задаче т не является параметром, а имеет фиксированное значение т=2. Оди- наковая для всех заданий величина тг также не является *) Подробное изложение теории А^Р-полных задач с многочислен- ными примерами дано в книге М. Гэри и Д. Джонсона «Вычислительные машины и труднорешаемые задачи».— М.: Мир, 1982.— 416 с. (Прим, перев.) 29
w ф Таблица 1.1 Результаты для задач минимизации ю = max {/,} Задача Сложность задачи т {*) < Дисциплина обслуживай ия $ ’есурсы Ссылки 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 * о (п) 0 (п2) не определена JVP-полна 1У.Р-полна JVP-полна 0 (п log2 п) 0 (п2) не определена NP-полна 0 (п3) А/Р-полна Л1Р-полна А/Р-полна О (п log2 п) NP-полна Л1Р-полна МР-полна Везде, кроме задач 15 2 фиксировано, т^З фиксировано, т^2 фиксировано, т^-.2 2 фиксировано, т 2? 3 2 фиксировано, т^2 фиксировано, т^2 фиксировано, т^З 2 фиксировано, т 2^ 3 фиксировано, гп>2 фиксировано, т2гЗ —17, процессоры предпола равные равные равные равные Т| — 1 или 2 для всех i равные равные равные равные конвейер » система с по вательными борами гаются идентич лес 0 лес 0 лес И следо- при- 0 -1ЫМИ. без прерываний без прерываний без прерываний без прерываний без прерываний без прерываний с прерываниями с прерываниями с прерываниями с прерываниями без прерываний без прерываний без прерываний без прерываний без прерываний без прерываний без прерываний S fi является мини- мальной 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 7711= 1 [65] [24] [143] [143] [109] [Ю9] (см. гл. 4) [54] [54] (см. гл. 4) [54] [83] [57] [57] [32]
параметром, так как ее конкретные значения не оказывают влияния на алгоритм. Частичное упорядочение является свободным параметром для этой задачи, однако не разреше- ны прерывания и не должны использоваться дополнитель- ные ресурсы. Здесь и везде далее п предполагается парамет- ром, принимающим любые допустимые значения. 2. В некоторых позициях столбца, в котором указана сложность, стоит запись «не определена»; это означает, что вопрос о сложности соответствующей задачи не решен. 3. Для каждой из задач, в которой запрещены прерыва- ния и для которой известны оптимальные алгоритмы поли- номиальной сложности, существует оптимальный алгоритм упорядочения с помощью списка приоритетов. 4. Важным моментом, касающимся УР-полных задач, приведенных в табл. 1.1, является то, что они представляют собой простейшие случаи, для которых доказана А/Р-полно- та. Читатель может и должен сделать соответствующие вы- воды для более общих постановок. Снятие любого из огра- ничений на параметры исходной задачи, например рассмот- рение неидентичных процессоров, непустого отношения предшествования, дополнительных ресурсов и т. д., оче- видно приводит к задаче не менее сложной, чем исходная. Одно важное наблюдение следует из сравнения строк 4 и 6. Задача 6 является МР-полной, следовательно, как легко видеть, такую же сложность имеет задача, в которой т произвольно. Обратное не всегда верно. Задача 4 отно- сится к МР-полным, однако неизвестно, является ли та- ковой соответствующая ей задача 3 для любого фиксиро- ванного т^З (более того, были потрачены значительные усилия на отыскание эффективного алгоритма решения этой задачи при /и=3). 5. Мы не беремся утверждать, что для всех полиномиаль- ных алгоритмов, приведенных в таблице, указанная там сложность является минимальной. Однако, как показывает анализ, проведенный в последующих главах, во многих случаях имеются практически неопровержимые доказатель- ства минимальности этих оценок. Например, алгоритмы, которые производят упорядочение времен выполнения, должны по меньшей мере иметь сложность 0(n log2n) при условии, что в начальный момент все задания распо- лагались в произвольном порядке. Алгоритмы, анализи- рующие структуру отношения предшествования, должны иметь сложность по меньшей мере О(п2), так как в графе, задающем порядок следования заданий, может быть О(м2) ребер (см., например, задачу 2). Как показано в гл. 2, 31
сложность зависит также и от способа представления исход ных данных. Например, если граф задан в виде списка ре бер, содержащего избыточные транзитивные ребра, слож- ность задачи может значительно возрасти. Задача 2 пред- ставляет собой соответствующий пример, так как указан- ная сложность достигается при отсутствии транзитивных ребер; заметим, что лучший из известных на сегодняшний день алгоритмов удаления транзитивных ребер из орграфа [2] имеет сложность О(п2’8). Таким образом, если не делать предположения об отсутствии транзитивных ребер, слож- ность задачи 2 будет определяться сложностью этого ал- горитма. Алгоритмы решения задач 1, 2, 7 и 8 основываются, по существу, на нахождении критического пути в графе (они названы в гл. 2 уровневыми алгоритмами), при этом дис- циплина назначения на каждом шаге представляет собой последовательный выбор из заданий, оставшихся на выс- шем уровне. (В действительности в задаче 2 к этому до- бавляется определение еще одной характеристики зада- ний, которая по отношению к графу предшествования яв- ляется локально вычисляемой.) Ясно, что сложность таких алгоритмов определяется сложностью поиска крити- ческих путей в графе. Отметим, что обобщения «первого порядка» этих задач являются jVP-полными, как показано в задачах 4, 5 и 10. Задача 15 решается, по существу, путем соответствую- щего упорядочения заданий, следовательно, ее сложность определяется сложностью сортировки. Это самый ранний (1954 г.) из результатов, полученных в области миними- зации длины расписаний. За исключением задачи 1 (1961 г.) и частных случаев задачи 16 (рассмотренных в гл. 2), ос- тальные результаты получены после 1968 г. Конвейерная задача, которая упоминается в строках 15 и 16, состоит в следующем. Каждая система заданий пред- ставляет собой набор п/т цепочек длины т, которые в ли- тературе обычно называются работами, при этом имеется условие, что i-e задание в цепочке выполняется на процес- соре Pt (п кратно т). В терминах величин [то-1, введенных в основной модели, столбцы ktn+i, k—0, 1, . . ., nltn—1, соответствуют заданиям, которые должны выполняться на Pt, причем т/г для всех /У=г. Величины Tkrn+l, i=l, 2, . . ., т, будут соответствовать последовательности заданий в работе k. Задача 17 — это так называемая «простая задача с по- следовательными приборами», которая состоит в следую- 32
щем. Так же как и в конвейерной задаче, отношение < за- дает набор цепочек произвольной длины, называемых рабо- тами (в общей задаче распределения работ отсутствует ог- раничение на тип отношения <). Каждая работа ха- рактеризуется последовательностью пар (а0-, РгД где а-ч обозначает время выполнения /-го задания в работе J a Ptj — процессор, на котором это задание должно выпол- няться. Общая задача является АР-полной для всех т'>2. В гл. 4 это не доказано, но в настоящем пункте мы опишем технику, применяемую для получения такого результата. Существует, однако, интересный частный случай, который мы здесь рассмотрим, когда имеется алгоритм с полиноми- альной сложностью для т—2. Каждая работа Jt содержит одну операцию для .каждой машины (т. е. любая /г представляет собой двухзвенную це- почку), при этом либо вначале выполняется задание на процессоре Р,, а затем на Р2, либо вначале — на Р2, а затем на Рх. Пусть (хь уг) — времена выполнения заданий, составляющих Jt. Построим два упорядоченных набора С\ и С2 таких, что все работы Jx, в которых задание вначале выполняется на Рг (соответственно на Р2), а затем на Р2 (соответственно на Рг), являются элементами Ci (соответ- ственно С2), причем если (хг, yt) и (х/, //;) оба принадлежат Ci, то из min{x;, //,}<min{Xy-, г/г} следует, что Jt предшест- вует Jj в Ci (это правило используется в задаче 15). Упоря- дочим таким же образом С2. В соответствии с этим упорядо- чением назначаем на процессор Pj задания вначале из Сх, а затем из С2, выдерживая при этом ограничения на порядок следования. Аналогично, назначаем на Р2 задания вначале из С2, азатем из С1. Легко показать (см., например, теорему 2.12), что такая процедура назначения приводит к распи- санию минимальной длины. Отметим, что хг или уг могут равняться нулю. Это позволяет рассматривать работы, со- стоящие из одного задания, либо для одной машины, либо для другой. Труднорешаемость задач с дополнительными ресурсами становится ясной из рассмотрения задач 12—14. Задача 11, которая в этой книге не обсуждается, может рассмат- риваться как применение задачи о максимальном паросоче- тании [38]. За время, не превосходящее О(п3), можно по- строить неориентированный граф G такой, что (Т,, Tj)^G тогда и только тогда, когда Т, и Т, совместимы, т. е. когда Rh (T'O+^fe Для всех k, а значит, Tt и Т} могут выполняться параллельно. Максимальное паросочетание в 2 Под ред. Э. Коффмана 33
графе G дает кратчайшее расписание и может быть найдено за время О(д3). Задача 18 обсуждается в § 1.5. Для задачи 7, в которой < = 0, имеется алгоритм со сложностью О(п), который будет рассмотрен в данной главе. В гл. 2 также обсуждают- ся эти задачи в связи с изучением способов количественно- го сравнения различных дисциплин упорядочения. В заключение данного пункта кратко рассмотрим недав- ние результаты для задач, аналогичных рассмотренным, но с крайними сроками. Рассмотрим задачу распределения заданий равной длительности между двумя идентичными процессорами в случае произвольного частичного упорядо- чения и различных крайних сроков. В случае, когда час- тичное упорядочение задано в виде транзитивно замкну- того графа, известен способ [551, который позволяет за время О (zi2) определить, существует ли расписание, при котором удовлетворяются все крайние сроки, и если оно существует, то позволяет его найти. Если желательно знать, существует ли расписание, при котором нарушается не более k крайних сроков, где k — фиксированное число, то это можно определить за время O(nft+2). Однако задача о существовании расписания, при котором нарушается не более k крайних сроков, где k — переменное, является Л^Р-полной даже для системы с одним процессором. 1.4.2. Результаты для задачи о среднем времени прохож- дения. В гл. 3 рассмотрены недавно полученные результа- ты, обобщающие результаты из предыдущего пункта для однопроцессорной системы. Вопросы, связанные с допол- нительными ресурсами, не рассматриваются ввиду отсутст- вия соответствующих результатов. Различные виды дис- циплины обслуживания заданий также не рассматриваются, так как во всех задачах предполагается составление распи- саний без прерываний, причем по той же причине, что и в предыдущем случае. Напомним, впрочем, что возможность прерываний не приводит к улучшениям в случае идентич- ных процессоров, неотрицательных весов и пустого отно- шения предшествования. Замечания 1, 2, 4 и 5, сделанные по поводу табл. 1.1, относятся также и к табл. 1.2, которая содержит основные результаты гл. 3. В задаче 1 табл. 1.2 существование алгоритма, имеюще- го полиномиальную сложность, показано для наиболее об- щего случая независимых заданий и равных стоимостей. Ранее были известны некоторые частные случаи, например алгоритм SPT, рассмотренный в § 1.3. Результаты, полу- ченные для задачи 1, основаны на том, что она пред- 34
Таблиц al.2 Результаты для задачи минимизации i | Задача 1 Сложность задачи Параметры Ссылки < {“;} Fij} т 1 О (л3) 0 равные — — [12, 72] 2 WP-полна набор цепочек равные идентичные процессоры — [18] 3 О (л2) лес — идентичные процессоры 1 [71]; см. также [48, 134] 4 не определе- на — — идентичные процессоры 1 5 Л'Р-полна 0 —“ идентичные процессоры фиксиро- вано, mS&2 [И] 6 WP-полна конвей- ерная система фиксиро- вано, /и». 2 [57] ставлена как частный случай общей транспортной за- дачи. При решении задачи 3 используется локально вычисля- емая функция стоимости (критерий упорядочения), сопостав- ленная каждой вершине (поддереву) леса. Эта функция в действительности является обобщением функции тг/со;, упо- мянутой в теореме 1.1. Использование упорядочения в соот- ветствии со значениями вычисленной стоимости приводит к оптимальному расписанию путем рекурсивного выявле- ния поддеревьев леса, которые должны выполняться сле- дующими. Задача 6 табл. 1.2 связана с проблемой конвейерной об- работки, которой уделялось значительное внимание. Эта УУР-полная задача используется в гл. 6 для иллюстрации перечислительных и приближенных методов составления расписаний. За полиномиальное время может быть также решена задача, не охваченная нашей основной моделью, но являю- щаяся естественным обобщением задачи 3. Здесь снова имеется лес и однопроцессорная система, но каждое дерево леса, называемое работой, рассматривается как дерево ре- шений в следующем смысле. Имеется произвольное (дис- 2* 35
кретное) распределение вероятностей на множестве вер- шин, которое служит для принятия решения о том, какое задание (вершина) в данной работе должно выполняться следующим. Таким образом, выполнение работы состоит из последовательности, или цепочки, заданий, начинающихся в корне дерева и оканчивающихся в конечной вершине, при этом цепочка может быть прервана только в моменты окон- чания входящих в нее заданий. Данная последовательность и общее время ее выполнения являются случайными, сле- довательно, проблема заключается в минимизации ожидае- мого значения среднего взвешенного времени завершения. Правило, в соответствии с которым принимается решение о том, из какой работы выбирать на выполнение следующее задание, представляет собой дальнейшее развитие идей, со- держащихся в задаче 3. Вычислительная сложность су- ществующих алгоритмов решения этой задачи определяется как О (п2). Задача минимизации среднего значения задержки (см. предыдущий пункт) также относится к представленным в табл. 1.2, причем директивные сроки выступают в качест- ве параметра. В [14] доказано, что задача минимизации среднего взвешенного запаздывания является УУР-полной для всех т^А. Интересной нерешенной проблемой остается определение сложности задачи о минимизации средней за- держки (при одинаковых весах) в случае т=1. 1.4.3. Сложность задач упорядочения. В гл. 4 развит формальный подход к определению сложности, который ис- пользован для того, чтобы прямо или косвенно доказать УУР-полноту широкого класса различных задач упорядоче- ния. Отличительной особенностью принятого там подхода является то, что в нем не используется в явном виде абст- рактная теория вычислений, которая, собственно, и поро- дила понятие сложности. Это сделано для того; чтобы при- влечь внимание широкого круга читателей и предложить механизм, который может быть использован в практических задачах. Изложение начинается с описания модели вычислитель-. ной машины, на которой реализуются алгоритмы решения комбинаторных задач; модель выбрана так, чтобы упро- стить анализ и сравнение сложности алгоритмов. Опреде- ляется понятие полиномиальных недетерминированных ал- горитмов; они соответствуют задачам, которые решаются путем перебора, описываемого деревом поиска полиноми- альной глубины. По определению существование такого рода алгоритма является необходимым для УУР-полноты за- 36
дачи упорядочения. Далее обсуждаются тонкости, необхо- димые для проникновения в суть данной модели и выясне- ния ее ограничений. Вводится понятие полиномиальной сво- димости комбинаторных задач, которым пользуются, когда хотят доказать, что та или иная задача имеет полиномиаль- ное решение тогда и только тогда, когда некоторая NP-пол- ная задача имеет такое решение. Здесь уместно напомнить комментарий 4 к табл. 1.1. В нем говорится, что читатель получит возможность выяв- лять TVP-полноту новых задач, пользуясь результатами гл. 4. Например, в гл. 4 показано, что для N/’-полной зада- чи 6 из табл. 1.1 полиномиальный алгоритм существует тогда и только тогда, когда такой алгоритм существует для классической задачи с крайними сроками. Напомним, что в этой задаче задан общий для всех (независимых) заданий крайний срок d и спрашивается, существует ли такое рас- писание для т идентичных процессоров, при котором край- ний срок d не нарушается ни на одном из процессоров? Доказанная ниже Л/Р-полнота этой задачи непосредствен- но влечет за собой AfP-полноту общей задачи с дополни- тельными ресурсами 6Д=1) и задачи об упаковке в контей- неры, рассмотренных в гл. 5. Опишем неформальный, но эффективный способ сведе- ния комбинаторных задач на примере нескольких задач, не исследованных строго в гл. 4. Рассмотрим в качестве осно- вы простую версию задачи о ранце, которая состоит в сле- дующем. Пусть задан набор п целых положительных чи- сел X={alt. . .,ап} и целое число Ь; требуется узнать, су- ществует ли подмножество элементов из X, сумма кото- рых точно равна Ь? Другими словами, имеет ли уравнение п 2 решение при условии, что с,- принимают зна- i = i чение 0 или 1? Как хорошо известно, эта задача являет- ся 2VP-полной [86]. Мы используем этот факт для исследо- вания сложности следующих задач упорядочения. 1. Рассмотрим задачу 7 из табл. 1.1 при <=0, которая, как легко установить, может иметь О(п!) решений. Предпо- ложим, что в столбец «Дисциплина обслуживания» мы включили требование минимальности числа прерываний. Назовем такую задачу РМ (т)-задачей для т процессоров. п Пример для случая т = 2 и шах {т,-} < У т,-/2 пока- z' —« 1 зан на рис. 1.5, а. Заметим, что к такому же результату приводит и любой другой порядок выполнения этих зада- 37
ний; достаточно лишь в случае необходимости органи- зовать прерывание последнего задания, выполняемого на Pt (первого задания, выполняемого на Р2). Следовательно, в данном случае достаточно одного прерывания, а его _______________7________________15 17 Р’ Т . I I % -< = 0 •, да =2 Рг Т3 | Г4 | 7, | Т6 Ю .-7,8,10,4,2,3 8 12 14 необходимость определяется существованием подмножества п {т,}, в котором сумма элементов точно равна 2 1= 1 Таким образом, задача о ранце может быть сведена к РМ (2)-задаче следующим образом. Пусть b и суть параметры задачи о ранце. Рассмотрим параметры РМ (2)- — 26 — 2 ai • i= 1 Легко видеть, что данная РМ (2)-задача имеет решение, при котором отсутствуют прерывания, тогда и только тогда, когда имеет решение исходная задача о ранце. На рис. 1.5, б представлен соответствующий пример. Оче- видно, ввиду простоты сведения ; вычисление -26 мы вправе ожидать, что РМ (2)-задача имеет по крайней мере такую же сложность, как и задача о ранце. Такое же утверждение мы можем сделать относительно общего случая так как можно добавить tn—2 задания п длины т,/2 и тем самым свести РМ (2)-задачу к РМ (tri)- задаче. 38 задачи где т,= я;, и т, п У а.
2. Рассмотрим задачу 16 из табл. 1.1 и предположим, что работы (т. е. трехзвенные цепочки) описываются трой- ками (Xj, yit Zi), l^i'^n, где Xi (соответственно и z;) есть время выполнения первого (соответственно второго и третьего) задания на процессоре Рх (соответственно на Р2 и Ря). Покажем, каким образом можно доказать NP-пол- ноту этой задачи. г- По заданным b и {а,} из задачи о ранце построим вход задачи 16 для т=3 в виде (0, 0),. . ., (0, 0), ( b, 1, X а,-—b ). На рис. 1.6 представлен пример расписа- \ »=1 ния. Заметим, что длина кратчайшего расписания не может п быть меньше чем 2 Но, как было показано, мы i = I можем определить, является ли расписание оптимальным, только в том случае, если ответим на вопрос: существует ли набор величин а,-, сумма которых точно равна Ь? Следова- тельно, с помощью простого правила мы можем трансформи- ровать входные данные задачи о ранце в исходные данные конвейерной задачи (т=3) таким образом, что оптимальное решение конвейерной задачи будет найдено в том и только в том случае, когда исходная задача о ранце имеет решение. Как и ранее, не представляет трудности сформулировать общую задачу для т>3 — это делается так же, как для т—3. Следовательно, мы вправе ожидать, что данная за- дача имеет по крайней мере такую же сложность, как и задача о ранце. Такой же способ доказательства легко может быть при- менен к задаче 17. Читателям предлагается это проделать, учитывая отсутствие «упорядочения процессоров», имеюще- гося в конвейерной задаче. Важно отметить, что задача о ранце может быть решена за время, полиномиально зави- сящее от b (это не противоречит УУР-полноте задачи о ран- це, так как b может быть выражено с помощью log2 b дво- ичных разрядов). Таким образом, если параметр, по отно- 39
шению к которому рассматривается сложность, есть сумма времен выполнения заданий, то из приведенных выше рас- суждений не вытекает, что такие задачи труднорешаемы. Например, задача 6 из табл. 1.1 полиномиально разрешима для фиксированного т'^2 с точки зрения этого менее стро- гого показателя, характеризующего вход задачи. Однако задачи 16 и 17 остаются AfP-полными даже в этом случае [57]. Как легко заметить, мы показали лишь, что рассмот- ренные задачи являются, по крайней мере, такими же слож- ными, как jVP-полные задачи; мы не проверили, что они не являются более трудными. Полные доказательства NP- полноты мы оставляем тем, кто уже изучил гл. 4. Здесь необходимо отметить, однако, что общая схема метода све- дения не разработана (в табл. 1.1 и 1.2 имеются задачи, для которых вопрос о сложности остается открытым) и что оценка сложности иногда оказывается очень трудоемкой задачей, как это подробно показано в гл. 4. Мы завершаем обсуждение проблемы сложности реко- мендацией, чтобы читатель, столкнувшийся с какой-либо задачей, самым пристальным образом исследовал все ее особенности и ограничения. Имейте в виду: МР-полнота общей задачи, которой соответствует данная конкретная задача, не должна убивать надежду найти эффективный оп- тимальный алгоритм. Специфические ограничения в кон- кретной задаче могут позволить построить алгоритм, слож- ность которого будет находиться в пределах полиномиальной зависимости от основных параметров этой задачи. 1.4.4. Оценки характеристик алгоритмов составления расписаний. Изучение вопросов сложности довольно ясно показывает, что наибольшего прогресса в области теории расписаний следует ожидать от исследования эвристичес- ких (приближенных) алгоритмов и разработки эффектив- ных процедур перебора. В гл. 5, содержание которой мы здесь рассмотрим, основное внимание сосредоточено на про- стых процедурах (обычно имеющих сложность не более 0(н2)) и оценках их характеристик в наихудших случаях по сравнению с оптимальными алгоритмами. Вначале оцен- ки характеристик устанавливаются для произвольных (не- упорядоченных или случайных) правил составления рас- писаний; это делается для того, чтобы показать важность разработки эффективных эвристических алгоритмов и вы- явить комбинаторную структуру задач. Затем предлагаются легко реализуемые эвристические алгоритмы, из анализа оценок которых становится ясно, что даже простые эври- 40
стические правила могут обеспечивать адекватное решение многих АР-полных задач составления расписаний. Мы ограничиваемся рассмотрением списочных (приори- тетных) правил назначения без прерываний, при которых процессор никогда не остается свободным, если имеется задание, готовое к выполнению. Как уже было отмечено, это ограничение не приводит к ухудшению расписаний при условии независимости заданий и идентичности процессо- ров; впрочем, его нетрудно обосновать и в общем случае. Мы уже показали, что суще- ствующие оптимальные алго- ритмы без прерываний могут рассматриваться как списоч- ные правила составления рас- писаний. В такой форме пред- ставимы простейшие легко ре- ализуемые эвристические ал- горитмы, и, более того, труд- но себе представить, что су- ществуют их эффективные модификации, которые уже не укладываются в рамки списочных правил. Исследование начинается с весьма подробно обсуждае- мого примера анализа общей задачи минимизации длины расписания при условиях от- рис ] 7 сутствия дополнительных ре- сурсов, идентичности процессоров и произвольных т, {тг} и < Рассматривается ряд аномальных случаев, показы- вающих, что при уменьшении времени выполнения заданий, увеличении количества процессоров и устранении ограниче- ний на порядок следования длина расписания может уве- личиваться. Аномальный случай, когда исключение зада- ния из системы приводит к увеличению длины расписания, изображен на рис. 1.7. Анализ показывает, что длина но- вого расписания, полученного в результате таких измене- ний, не может быть более чем в 1+(ш—1)//п' раз больше первоначальной, где т'~^т есть новое .число процессоров. Кроме того, показано, что эта оценка является наилучшей в том смысле, что она достижима (по крайней мере, асимпто- тически). В гл. 5 подробно рассмотрены алгоритмы упорядочения на основе критического пути и их возможности, при этом 4)
приведено много примеров, служащих дополнением к мате- риалу гл. 2. В частности, приводится полный анализ эф- фективности алгоритма LPT (критического пути) при неза- висимых заданиях. В табл. 1.3 представлено большинство результатов, о которых пойдет речь в дальнейшем. (Если не оговорено противное, все оценки длин расписаний, ука- занные в данном пункте, являются наилучшими.) Отметим, что решение задачи 1 из табл. 1.3 вытекает из анализа влия- ния аномалий на оценки длин, о котором говорилось ра- нее. Таблица 1.3 Оценки для списочных расписаний Задача Оценка Параметры L (<>') < Ссылки [45] т 2 3 _4_____1 3 (Зт) 1 — 1 /т 1 + \_kjm J LPT (СР) [46] первые k эле- ментов дают оптимальное расписание для k наибольших заданий [46] 0 0 4 max {т,} п 0 [46] СР дерево [85] СР 5 см. §5.2 (mod т). Примечание. Оценка для задачи 3 неулучшаема при /? = 0 Обозначения: о) — длина оптимального списочного расписания; СР — критический путь; LPT — обслуживание в порядке наибольших времен выполнения; L(io') — список, порождающий со'; J — наибольшее целое число, не превосходящее х. Затем рассматриваются задачи составления расписаний в предположении, что имеются дополнительные ресурсы (s>l). Основной целью является нахождение оценок в наи- худшем случае для произвольных расписаний. Значение этих результатов заключается в том, что они позволяют 42
проникнуть в суть этих трудных задач, а сами оценки пока- зывают, что необходимы дальнейшие исследования в обла- сти эвристических алгоритмов. Значительное внимание уде- лено эффективности простых эвристических алгоритмов, в основном для случая, когда все т;=1. Основные резуль- таты (в виде наилучших оценок) приведены в табл. 1.4; их обоснование, за исключением первого, неожиданно ока- зывается весьма трудной задачей. Таблица 1.4 Оценки для задач с дополнительными ресурсами Задача Оценка Параметры Ссылки s tn < 1 со'/со < т 1 — [49, 50] 2 со'/со <s-(- 1 — tn^ n. 0 [49, 50] 3 t. 1 (tn -|~ 1) „ (2s 1) ) co co < mm <-—s + 2— -—!— ( 2 m f — m^2 0 [50] Обозначения: со' соответствует произвольному L; со соответствует оптимальному L. В заключение главы рассмотрены оценки для задачи об упаковке в контейнеры, являющейся частным случаем рас- смотренной ранее модели с дополнительными ресурсами, в которой s—1, <=0, все т, = 1 и Подчеркнем зна- чение данной задачи, сформулировав ее в виде задачи с крайними сроками, как показано на рис. 1.4. В дальней- шем приведены результаты для таких задач, в которых ог- раничения s=l и т^п сняты. Для простой задачи об упа- ковке в контейнеры рассмотрены четыре эвристических ал- горитма; они описываются в терминах задачи с крайними сроками следующим образом. Заданный произвольный список заданий последователь- но просматривается, при этом используются следующие правила. 1. Назначение на первый подходящий процессор (FF : first-fit), при котором каждое задание назначается на про- цессор с минимальным номером из числа тех, которые под- ходят для этой цели (т. е. при таком назначении крайний срок не нарушается). 43
2. Назначение на лучший из подходящих процессоров (BF: best-fit), при котором каждое задание назначается на процессор, имеющий минимальное суммарное неисполь- зованное время (в пределах крайнего срока). 3. Назначение по убыванию на первый подходящий про- цессор (FFD: first-fit-decreasing), при котором назна- чение происходит, как в п. 1, но список заданий предвари-, тельно упорядочивается по невозрастанию времен выпол- нения. 4. Назначение по убыванию на лучший из подходя- щих процессоров (BFD: best-fit-decreasing), при кото- ром действия остаются такими же, как в п. 3, с той разни- Рис. 1.8. Примеры решения задачи об упаковке в контейнеры, а) При- мер эффекта упорядочения. Списки: (7\, Тг, Т3, Т4, Т5,Тв, Тъ Т и (Т3, Т3, Т„ Т„ Ts, Тъ Т4, Т2), т,=3, 1, 4, 2, 4, 4, 4, 4. б) Пример, де- монстрирующий преимущества методов BF и BFD: Tj=20, 18, 14, 5, 3, 2, 2, 2. Пример применения этих алгоритмов- приведен на рис. 1.8. В табл. 1.5а сведены основные результаты для данных эвристических алгоритмов, а в табл. 1.56 представлены до- 44
Таблица 1,5а Оценки для задачи об упаковке в контейнеры Асимптотические оценки Параметры Ссылки . J (a\ A Ra (а) =17/10 (1/2, 1) [143, 52, 82] 1 “1 1 8 “Н О'. S § + i- "’ll in S S ® s s Ч X t, -ч; -ч; Of й; O' 0^ C; (0, 1/2] (1/2, 1] (8/29, 1-/2] (1/4, 8/29] (1/5, 1/4] FF и BF FFD и BFD [52, 82] [82, 77] Аа(«)П+ ^=LaJ-1 ♦) Гипотеза. (0, 1/4] [78, 82] Таблица 1.56 Оценки для обобщенных задач Асимптотические оценки А Параметры Ссылки S < т 27/10—37/(10m) < Я л < 27/10 — -24/(1 От) — ~1 0 — [91] /?4 = 2—2/т FFD 1 0 2 [91] Ял = *+7/10 —• — 0 т п [51] Ra = (17/10) s-|-l СР — — m^i п [51] полнительные результаты для некоторых случаев, когда ограничения на параметры ослаблены. Оценки для исход- ной задачи об упаковке в контейнеры асимптотически наи- лучшие. В терминах задачи составления расписаний при наличии дополнительных ресурсов эти оценки более точ- но вычисляются как функции наибольшей потребности в ресурсах в предположении, что объем дополнительного ре- сурса /«1=1 и что любая его доля может потребоваться при выполнении данного задания. В частности, пусть 45
wa(L) обозначает длину расписания (ей соответствует коли- чество контейнеров), требуемую для назначения заданий из списка L в соответствии с правилом А. В табл. 1.5а сим- вол А обозначает одно или несколько из рассмотренных выше правил, при этом количество процессоров (контейне- ров) равно числу единиц времени, а времена выполнения заданий (как на рис. 1.8) рассматриваются как потребно- сти в ресурсе. Пусть о>* (L) обозначает минимальную дли- ну расписания, которая требуется для выполнения зада- ний из L. В табл. 1.5а приведены значения для асимптоти- ческой оценки Кд (а) = Нт , ю* <£.) оо ® где L пробегает все списки, для которых max {R £ £ / (ос) и 7(a) есть интервал (0, 1). В табл. 1.56 представле- ны результаты для смежных задач в виде асимптотических оценок, которые не являются функциями от шах {7?(Тг)}. Получение результатов, представленных в табл. 1.5, потребовало больших усилий. Для того чтобы привести до- казательства всех этих результатов, пришлось бы удвоить объем книги. Все же те доказательства, которые удалось при- вести в полном объеме или кратко, должны облегчить изу- чение подобных комбинаторных задач. Подход к решению комбинаторных задач, развитый в гл. 5, в которой проводится исследование многообещающих и быстродействующих эвристических алгоритмов для наи- худших с точки зрения эффективности случаев, относится к сравнительно недавним достижениям, и он оказался пло- дотворным в других областях, например, при динамичес- ком распределении памяти (см. гл. 5). Как показано в § 1.5, этот подход применим и к другим задачам упорядо- чения и может оказаться полезным при решении общей за- дачи составления расписаний. Например, можно легко по- казать, что произвольное расписание для конвейерной за- дачи может быть длиннее оптимального примерно в т раз. Представляет интерес исследование простых и удобных в применении эвристических алгоритмов и определение гра- ниц их эффективности. Это позволит определить, могут ли характеристики этих алгоритмов в наихудшем случае быть доведены до «приемлемого» уровня. Оказывается, что часто довольно трудно найти столь же простые хорошие эвристи- ческие алгоритмы, как рассмотренные в гл. 5? Имеется не- давний обзор [34], в котором сравниваются эвристические алгоритмы для конвейерной задачи. Однако ясно, что не 4Ь
обязательно иметь наилучшие (т. е. достижимые) оценки, и это обстоятельство может существенно облегчить мате- матическую работу. Возможно, наиболее ранней работой по определению границ эффективности алгоритмов составления расписаний является [39], в которой вычислены границы для среднего взвешенного времени прохождения. В частности, для < = 0, s=0 и одинаковых процессоров можно показать, что , <о (1) . m — 1 — , j <-^«(1)(н), где ю(£) есть среднее взвешенное время прохождения для k процессоров. Заметим, что со (1) и ы(п) могут быть легко рассчитаны для набора {соД стоимостей пребывания. 1.4.5. Итеративные и перечислительные методы состав- ления расписаний. В соответствии с выбранной последова- тельностью изложения книга завершается главой, содержа- ние которой так или иначе связано с предыдущими главами и которая посвящена практическим методам решения воз- никающих непосредственно на практике задач. Главной целью шестой главы является описание принципов созда- ния эффективных точных и приближенных (или эвристи- ческих) алгоритмов в соответствии со следующими требо- ваниями. I. Формулировка должна быть достаточно общей, чтобы охватывать по возможности все практические приложения задач упорядочения. 2. При развитии того или иного подхода необходимо по- стоянно учитывать соотношение между вычислительными затратами и качеством получаемых решений. 3. Средства анализа должны обеспечивать возможность формального доказательства корректности алгоритмов, раз- работанных на основе метода ветвей и границ, и позволять изучать характеристики алгоритмов при изменении пара- метров задачи. Проблема рассматривается в абстрактном виде, не за- висящем от конкретных приложений, и, так же как в пре- дыдущих главах, подвергается формальному анализу. Та- кие ограничения обусловлены не только общими принци- пами построения книги; они являются неизбежными, если принять во внимание следующее соображения: наличие 47
большого количества литературы, посвященной перечис- лительным и приближенным алгоритмам решения конкрет- ных Л^-полных задач, и тот факт, что эти частные прило- жения содержат очень много специальных методов, эффек- тивность которых базируется на исследовании особенностей конкретных задач. Однако модели, общая методика и прин- ципы, в соответствии с которыми решаются эти прикладные задачи, хорошо иллюстрируются при детальном изучении частной задачи о конвейере. В шестой главе методы подразделяются на точные, чис- то эвристические и с гарантированной точностью (т. е. та- кие, с помощью которых можно разработать и использо- вать эффективный алгоритм получения решения с заданной заранее точностью). Главные усилия направлены прежде всего на обобщение полученных ранее результатов и вопло- щение их в полностью параметризованной модели метода ветвей и границ, которая, в частности, включает в себя ме- тод динамического программирования. Те, кто знаком с методом ветвей и границ, смогут оценить возможности по- строенной модели, ознакомившись со следующим перечнем ее параметров. 1. Правило ветвления, которое определяет процесс вет- вления по отношению к дереву поиска; назначение правила заключается в разбиении пространства решений на непере- секающиеся подмножества, которые либо подвергаются даль- нейшему исследованию, либо отбрасываются. 2. Правило выбора, позволяющее выбрать следующую вершину дерева, с которой должно начаться ветвление. 3. Характеристическая функция, которая служит для отбрасывания тех поддеревьев полного дерева поиска, кото- рые не содержат искомого решения. 4. Отношение доминирования вершин, используемое ни- же, в п. 7. 5. Функция нижней оценки, которая ставит в соответст- вие каждому частичному решению нижнюю оценку его стоимости, служащую оценкой всех полных решений, по- лучаемых из данного частичного решения. 6. Верхняя граница стоимости, которая равна стоимо- сти некоторого полного решения, известного в начальный момент, или бесконечности, если ни одного решения внача- ле не известно. 7. Правила исключения, которые совместное отноше- нием доминирования и верхней границей стоимости служат для отбрасывания вновь возникающих или уже известных вершин на дереве поиска. 48
8. Допуск — действительное число на интервале [0, 1], которое представляет собой заданное максимальное отно- сительное отклонение оптимального значения стоимости от стоимости приемлемого решения. 9. Вектор предельных ресурсов, компоненты которого представляют собой границы величин времени работы ал- горитма, объема памяти для хранения активных вершин и- непосредственных преемников ветвящихся вершин. Доказательство корректности общего алгоритма прово- дится параллельно с рассмотрением изменений (в некото- рых случаях аномальных) характеристик при изменении параметров. Затем дано описание эвристического алгорит- ма поиска в локальной окрестности и метода ветвей и гра- ниц с ограниченным возвратом, которые с успехом приме- няются на практике, при этом вновь обсуждается важный вопрос о соотношении между стоимостью вычислений и до- стигаемой точностью решения. Далее в главе показано применение перечислительных и приближенных методов к нетривиальной конвейерной за- даче, в которой требуется минимизировать среднее время прохождения (задача 6 из табл. 1.2). Представлены чис- ленные результаты и сделанные на их основании выводы. Глава заканчивается обсуждением вопроса о близкой связи между подходами к построению переборных или при- ближенных методов с помощью динамического программи- рования и с помощью метода ветвей и границ. Подробно рассмотрен пример, иллюстрирующий эту связь. 1.5. Другие задачи упорядочения В данном параграфе мы рассмотрим некоторые задачи упорядочения, имеющие непосредственное отношение к за- дачам, о которых идет речь в последующих главах, но от- личающиеся от них. Начнем с теоретических результатов, связанных с задачей организации работы таких систем реального времени с крайними сроками, в которых осуще- ствляется циклическое выполнение заданий. Затем рас- смотрим задачи упорядочения, в которых используется более одной меры качества. Примером служит задача, за- нимающая 18-ю строку в табл. 1.1. В заключение приведем некоторые замечания по общим вопросам, которые непосредственно примыкают к рассматриваемым в последующих главах, но не вклю- чены в них. 49
1.5.1. Однопроцессорное расписание для циклической системы заданий с крайними сроками. Существует очень много важных прикладных задач, возникающих в систе- мах управления, диспетчирования и других системах реаль- ного времени, в которых выполнение заданий представля- ет собой вычисления, повторяемые периодически. При этом каждая реализация вычислений имеет фиксированный край- нийсрок,до которого она должна быть завершена. Крайний срок для данной реализации не может превосходить момента времени, в который потребуется начать очередную реали- зацию вычислений. Далее мы рассмотрим модель, в кото- рой несколько заданий такого типа делят между собой вре- мя одного процессора и при этом должны соблюдаться крайние сроки (так называемый жесткий режим реального времени). Результаты, полученные в данной области, не- велики, однако проводимые исследования, обусловленные важностью этих задач, несомненно, увенчаются многими но- выми достижениями, подобными описанным в данной книге. 'Определим формально модель рассматриваемой задачи как систему ^ = ({ЛЬ К-Ь {ЛЬ Ш {М). где ТI, есть задание, состоящее из периодической последовательности заявок на выполнение вычислений. При этом выполняются следующие условия. 1. Заявка на k-ю реализацию поступает к моменту toi+ + (£—1)/;, k~l, 2. . .; /г называется периодом 7\. 2. Для k-ii реализации требуется тг единиц машинного времени. 3. Для /г-й реализации установлен крайний срок t9i-\- + (k—1)/i+d-i, до наступления которого она должна быть завершена. Рис. 1.9. Пример расписания с крайними строками: /1=10, 7а=6, /3= 15, di~6, <^з=11, /0i=0, ^о2=^> ^оз=9, И—4, т2 2, т3=1; Ту обозначает j-ю реализацию вычисления Тг-. На рис. 1.9 приведен пример такого расписания. Будем говорить, что алгоритм А допускает систему &, если по- 50
рождаемое им расписание (содержащее в случае необходи- мости прерывания) выполнения заданий на одном процес- соре таково, что реализуются все вычисления и не нару- шаются крайние сроки. Введем для произвольного алгоритма функцию | 1, если вычисление 7\ происходит в момент t, ~~ | 0 в противном случае. п Для допустимого расписания У для всех t. i=i Расписание полностью определено, если заданы функ- ции ц; (/) для всех I и всех £>min {/Ог}. Мы говорим, что задание 7\ является активным в момент t, если для некото- рого /г1Д0 справедливо toi+klt+dt и t п(.(/)Л<Т(.. Алгоритм относительной срочности (RU — relative ur- gency), аналогичный алгоритму резервных времен из тео- ремы 1.3, назначает на процессор в каждый момент време- ни t такое активное задание, крайний срок которого ближе всего к t, т. е. для некоторого i ( L если tOldj—t j-\-dj—t p. (/) = •! для всех активных заданий I. О в противном случае, где £г== pz/лф !</-<«. Некоторая неопределенность возникает тогда, когда не- сколько заданий оказываются равноправными с точки зре- ния критерия RU. Будем пока предполагать, что этого не происходит, а позже вернемся к данному вопросу. Теперь мы хотим показать, что алгоритм RU является оптимальным в том смысле, что если система допускается некоторым алгоритмом А, то она должна допускаться и алгоритмом RU. Теорема 1.4 [97]. Алгоритм RU является опти- мальным *). Доказательство. Проведем доказательство от противного, т. е. предположим, что существует система &, которую допускает некоторый алгоритм А, но не допускает *) Частный случай этой задачи ранее был рассмотрен в [103]. 51
RU-алгоритм. Нашей первой задачей будет описание таких RU-расписаний для системы а?, в которых нарушаются директивные сроки. Для этого необходимо ввести ряд опре- делений. Будем считать без потери общности, что min{/0i}=0, и предположим, что t2 — самый ранний из нарушенных крайних сроков. Пусть We(t) есть объем работы, выполнен- ной процессором при исполнении заданий из к моменту t, т. е. п с (/) = У] \ р. (х) dx. ‘=1 о Пусть Wr(t) — объем работы, требуемый для выполнения тех же заданий, т. е. t—tOi Определим t0 как наибольшее время, не превышающее t2, при котором We(t)=Wr(t). Тогда мы можем высказать сле- дующие утверждения. 1. О^/о</2, так как Ге(0) = Гг(0)=0 и Ге(^2)<Гг(/2). 2. Все реализации заданий, заявки на выполнение кото- рых поступили к моменту t0, завершены, так как = №Г(А>). 3. На интервале (/0, /2] процессор должен быть полно- стью загружен RU-алгоритмом, так как для ££ (t0, t2\ Wr(t)>We(t). Введем величину Л, представляющую собой последний момент времени, не превышающий t2, когда процессор вы- полняет вычисление, входящее в систему &, крайний срок которого превышает /2, при условии, что такое вычисление имеется; в противном случае Мы утверждаем, что ни одно вычисление, заявка на которое поступила до момен- та tt, не производилось в любой момент времени, находя- щийся в интервале (^, /2]. Поскольку для случая Л=/о это утверждение тривиально, предположим, что Пусть Т обозначает реализацию задания, которое выполняется на интервале (ti, /2], но заявка на которое поступила до мо- мента ti. По определению tr, крайний срок для Т должен предшест- вовать t2. Но, по определению RU-алгоритма, вычисление, выполняющееся в момент t\, должно иметь крайний срок меньший, чем у задания Т, следовательно, меньщий, чем t2. 52
Это противоречит определению /х и доказывает справедли- вость сформулированного утверждения. Таким образом, интервал (/ь /2] обладает следующими свойствами. 1. Вычисление может выполняться в интервале (/ь /2] только в том случае, если заявка на него поступила в дан- ном интервале и его крайний .срок не превышает t2. 2. Если заявка на вычисление поступила в интервале и если его крайний срок строго меньше t2, то этот крайний срок будет соблюден. 3. Существует хотя бы одно вычисление, заявка на кото- рое поступила в интервале (/ь /2], у которого крайний срок равен t2 и этот срок нё соблюдается. Остается сделать небольшой шаг к доказательству тео- ремы. Пусть Ci есть набор вычислений, заявки на которые поступили в интервале (/15 t2] и которые имеют крайние сроки, строго меньшие t2. Пусть, далее, С2 есть непустой набор вычислений, заявки на которые поступили в этом же интервале и которые имеют крайний срок, равный t2. Если обозначить через IFj время, выделенное RU-алгоритмом вычислениям из Clt то получим 1Г1 = /2—*i— где б есть время, выделенное на интервале (tlt /21 вычисле- ниям из набора С2. Объем 1Га работы, проделанной на ин- тервале (#!, t2} с помощью гипотетического алгоритма А, должен быть больше, чем Wi (по определению С) и С2). Следовательно, мы можем записать W2 = W1 + ^', где б' есть время, которое было затребовано и, следовательно, выделено для выполнения вычислений из С2 и, возможно, также и для какой-либо другой работы. Поскольку алго- ритм А допускает &, мы имеем б' >б и Г2 = /2—/1 + 6'—б> t2 — 1Х. Полученное противоречие доказывает теорему. Теперь вернемся к вопросу о равноправных заданиях при применении RU-алгоритма. Формальное решение этой проблемы, согласующееся с RU-критерием, заключается в том, чтобы все задания с ближайшим общим крайним сроком делили время процессора между собой на равные части, осу- ществляя тем самым режим «разделения времени». То есть, если Тi представляет собой одно из k заданий (вычислений) с общим ближайшим крайним сроком, то считаем, что р.;(/)=Mk в течение всего времени, пока данная ситуация имеет место. С практической точки зрения, не нарушая 53
оптимальности, можно заранее рассчитать самый ранний момент времени, при котором возникнет такая ситуация, разделить найденный интервал на k равных частей и рас- пределить эти части между «равноправными» заданиями. Большой интерес представляет определение необходи- мых и достаточных условий, которым должны удовлетво- рять параметры системы, чтобы она допускалась оптималь- ным (в указанном выше смысле) RU-алгоритмом. Ясно, что наилучшее из того, что можно предпринять,— это постоянно держать процессор загруженным, а это дает необходимое п условие 1. Достаточное условие в общем случае 1 = 1 не найдено. Однако для интересного частного случая, когда dt=Ih l^t'^n, указанное выше необходимое условие яв- ляется также достаточным. (Отметим, что данный частный случай соответствует таким прикладным задачам, в которых вычисления производить никогда не поздно, лишь бы их окончание происходило раньше, чем начнется следующий цикл.) Действительно, рассмотрим такой алгоритм разделе- ния времени А, который в моменты времени toi^rklt (1^ /г=0, 1, 2,. . .) выделяет для реализации вычисле- ния Tt кванты времени, равные тг/7;. Очевидно, каждый крайний срок будет соблюден в точности, так как d^Ij. п Более того, поскольку мы предполагаем, что 2 ^7/^1, (=1 то, следовательно, алгоритм А допускает рассматриваемую систему. Принимая во внимание, что RU-алгоритм пригоден для всех систем, для которых пригоден алгоритм А, полу- чаем следующую теорему. Теорема 1.5. RU-алгоритм будет допускать систе- му &, в которой di = Ii, тогда и только тогда, п когда y'xi/Ii^A. Пусть по-прежнему тогда естественное обоб- щение предшествующей модели на случай т^2 процессоров Л приводит аналогичным образом к тому, что условие 2тг//г^ является необходимым и достаточным для существова- ния допускающего алгоритма. Вопрос об использовании процессора при произвольных правилах упорядочения или распределениях приоритетов для заданий был исследован Лишь для частного случая toi = = tQj и di = Ii для всех i и j [103]. Будем говорить, что систе- 54
ма полностью использует процессор при данном алгоритме диспетчирования, если увеличение любых значений т(- приводит к тому, что система перестает быть допустимой. При сформулированных. предположениях показано, что существуют системы из п заданий, полностью использую- щие процессор, при этом коэффициент загрузки (доля времени, когда процессор занят) не превышает п(2'/"—1). 1.5.2. Упорядочение с использованием вторичных пока- зателей эффективности. Желательно знать такие характе- ристики расписаний, как длина, среднее время выполнения, среднее число обслуживаемых заданий, максимальное и среднее запаздывание, хотя используются они обычно в различных целях. С другой стороны, при планировании вычислительного процесса или при распределении работ может возникнуть необходимость использовать более одного показателя эффективности. Например, с точки зрения поль- зователя ЭВМ очень часто желательно иметь минимальное среднее время завершения (или ожидания), тогда как с точ- ки зрения руководства вычислительного центра желательно иметь расписания с минимальной длиной, чтобы достигнуть максимальной пропускной способности. Несмотря на важ- ность этой проблемы, ей посвящено небольшое количество работ. В данном пункте мы рассмотрим три таких работы, две из которых совсем недавние. Во всех работах предпола- гается s=0. 1.5.2.1. Директивные сроки и (как вторичный показа- тель) среднее время прохождения. Предположим, что < пусто, Wj = l для всех г, и пусть заданы директивные сроки d;, как в § 1.2. В сравнительно ранней работе [136] рассматри- вается задача минимизации среднего времени завершения для однопроцессорной системы, если известно, что все ди- рективные сроки могут быть соблюдены (т. е. максимальное запаздывание равно 0). Теорема 1.2 дает простую (имею- щую сложность О(п log2/i)) процедуру определения, явля- ется ли это возможным. В этом случае описываемый далее алгоритм состоит из SPT-упорядочения, осуществляемого так, чтобы сохранить выполнение директивных сроков [1361. Для набора заданий S' алгоритм заключается в следую- щем. Вначале нужно найти в S' наибольшее задание Т, п директивный срок которого не превышает величину т; (длина расписания для S), и поставить это задание послед- ним в очереди на выполнение (на п-е место). Затем нужно найти наибольшее задание в системе S—{Т}, директивный 55
п срок которого не превышает У т(-—т (длина расписания для t = i S~—{Т}), и назначить его на (м—1)-е место. Процедура ре- курсивно продолжается до тех пор, пока останется только одно задание. Таким образом, мы имеем относительно про- стой полиномиальный алгоритм, минимизирующий среднее время выполнения при соблюдении директивных сроков. Оптимальность доказывается непосредственно путем пере- становки двух заданий, как это показано в § 1.2. 1.5.2.2. Длина расписания и (как вторичный показатель) среднее время прохождения. В рассматриваемой здесь задаче < = 0, /п>1, процессоры идентичны, а величины стоимостей пребывания единичные. Последовательность, порождаемая алгоритмом SPT, является.оптимальной по критерию сред- него времени; поэтому можно ожидать, что последователь- ность, порождаемая алгоритмом LPT, должна давать по этому критерию очень плохой результат (действительно, для т=\ — наихудший). С другой стороны, расписание, порождаемое LPT, должно быть в среднем короче, чем расписание, порождаемое SPT. (Это утверждение согласу- ется с табл. 1.6.) Одно из решений возникшей дилеммы Таблица 1.6 Оценки для SPT-упорядочения Оценки Параметры Ссылки ь (СО) Ь (со') со'/® <2— 1/т LPT SPT [11] со'/со <3/2 SPT SPT [32] со'/со < (5m—2)/(4m— 1) SPT LPT [12] со'/со < (5m — 4)/(4m—3) SPT SPTi [32] очень простое и заключается в том, чтобы построить распи- сание, обратное LPT, называемое RPT-расписанием. При этом длина расписания остается неизменной, но на каждом отдельном процессоре задания выполняются в порядке неубывания. Пример приведен на рис. 1.10. Известно, что можно подобрать, примеры, в которых отношение <olpt/®spt становится сколь угодно большим, в то время как для RPT выполняется оценка corpt/wspt^/^, 56
являющаяся наилучшей в том смысле, что она может быть достигнута с любой степенью близости [11]. Однако ре- зультаты моделирования показывают, что эта оценка весьма неинформативна, так как для очень широкого класса рас- пределений времен выполнения заданий среднее время Рис. 1.10. Пример сравнения (a) LPT-, (б) RPT- (обратного LPT) и (в) SPT-расписаний. прохождения RPT-расписания всегда оказывалось лишь на несколько процентов хуже оптимального. 1.5.2.3. Среднее время прохождения и (как вторичный показатель) длина расписания. Снова предполагаем, что < = 0, т>1, процессоры идентичны, а величины стоимо- стей пребывания единичные. Теперь мы обратимся к задаче нахождения расписания с минимальной длиной, при кото- ром минимизируется среднее время прохождения. Вначале убедимся, что для произвольного т существует большое количество расписаний, минимизирующих среднее время прохождения (все они называются SPT-расписаниями). Заметим, что среднее время прохождения для системы </* из п заданий может быть записано как
где k{ есть число, на единицу большее, чем количество заданий, следующих за 7\ на данном процессоре. Данная формула отражает тот факт, что время выполнения Т( (для каждого i) входит как в его собственное время завер- шения, так и во времена завершения всех заданий, сле- дующих за Т; на данном процессоре. Теперь предположим, что п кратно tn (этого всегда можно достичь, добавив необходимое количество заданий с нулевым временем вы- полнения). Назовем tn заданий, которые выполняются /-ми по счету на соответствующих процессорах, заданиями ранга j. Если расписание минимизирует среднее время прохождения, то задания ранга 1 оказываются самыми короткими, задания ранга 2—чуть длиннее и так далее. Из (9) видно, что в SPT-расписании в случае tn процес- соров мы можем любым способом переставить tn заданий одного ранга, не изменяя со. Это означает, что при такой перестановке мы не выходим за рамки SPT-расписаний. Таким образом, существует О (/п!''/''!) SPT-расписаний. Строгое (списочное) SPT-расписание образуется при упорядочении списка заданий по неубыванию времен вы- полнения и является самым длинным из всех SPT-распи- саний (оно называется SPT-расписанием), при этом наи- большие задания каждого ранга оказываются на одном и том же процессоре. Таким образом, задача заключается в том, чтобы найти такой набор перестановок, при котором достигается минимальная длина SPT-расписания (он назы- вается SPT-расписанием). К сожалению, эта задача NP- полна, как указано в строке 18 табл. 1.1. Изучался эври- стический алгоритм решения этой задачи, заключающийся в том, что задания назначаются на выполнение в порядке убывания рангов, т. е. задания ранга j назначается после заданий ранга /—1. При этом LPT-правило локально применяется к соседним рангам и i < j влечет, что все задания ранга i имеют меньшее время выполнения, чем все задания ранга /. Таким образом, после того, как рас- пределены задания ранга /—1, назначаются задания ранга / по одному на каждый процессор. Назначение осуществляется в LPT-порядке с учетом времени заверше- ния заданий ранга /— 1. Назовем это SPT,-правилом. В табл. 1.6 собраны известные результаты по наилучшим оценкам для правил SPT, LPT, SPT, и SPTZ. Доказательство результатов, приведенных в первой и второй строках, относительно простое, а для получения третьей и четвертой строк требуется большое искусство. 58
Пример, приведенный на рис. 1.11, позволяет проникнуть в комбинаторную сущность этих задач, показывая возмож- ность достижения или асимптотического приближения к двум последним границам. 1.5.2.4. Другие критерии эффективности. Другим первичным или вторичным критерием может быть среднее 00): Задание длины О “751 (71 ГЖ? ЩПЗГ W У//////Д//Д (2)| (1)1 (4) (2) | (3) (4) 6) c^sptz, _ 11 _ 5m~4 <wSPr 9 4m-3 Рис. 1.11. число заданий N, находящихся на обслуживании. Как было показано в § 1.2, для системы с п заданиями имеем N — nm/u). Прит = 1 N минимизируется SPT-алгоритмом. Однако, как показано на рис. 1.12, для т>1 сущест- вуют списочные расписания, минимизирующие IV и не являющиеся SPT-расписаниями. В действительности для т 1 и < = 0 можно показать, что строгое SPT- расписание может оказаться в 2m/(/n-|-l) раз хуже опти- мального по значению критерия N [26]. Устремляя k к оо и е к 0 при постоянном ke, убеждаемся (см. рис. 1.12,6), что эта оценка является наилучшей при т = 2. (Пример легко распространяется на произвольные т.) Рассмотрение примеров приводит к мысли о том, что оценка 2m/(m-|-l) является не очень информативной. Однако проблема на- хождения расписания, минимизирующего У, как легко показать, относится к числу WP-полных; поэтому оценка 59
эффективности эвристических алгоритмов с помощью моде- лирования окажется значительно более дорогостоящим делом, чем упомянутое ранее сравнительное изучение сред- них времен прохождения для правил SPT и RPT. г 2е № 'ZZZZZZZZZZZZZ/ г 2г Не 1 + ке SPT 3+Ks 1+Ке 2 + ке 4+Ке Оптимальное расписание а) 4 6 8 12__16 .20 24 SPT "<4 4 6 8 16 28 Оптимальное расписание Рис. 1.12. В связи с задачами, рассматриваемыми в данном параг- рафе, уместно упомянуть так называемые таймерные задачи, или задачи управления процессом обслуживания, которые не охватываются материалом этой книги. Для задач такого типа в первую очередь важно найти хотя бы одно правиль- ное решение, а не заниматься оптимизацией. Мы имеем в виду прежде всего проблемы тупиков, взаимного исклю- чения, детерминированности и синхронизации. Материалы по этим вопросам можно найти в [22, 17]. На практике решение данных проблем нужно обеспечить в первую оче- редь, после чего можно улучшать среднюю или максималь- ную длительность обслуживания. Заметим тем не менее, что решение трех последних из названных задач управле- ния процессом обслуживания непосредственно связано с правильностью разработки спецификаций системы заданий и, следовательно, с точки зрения нашего исследования может считаться очевидным. Задача о тупиковых ситуациях, в свою очередь, приводит к обобщению модели дополнительных ресурсов, рассмотрен- ной в гл. 5. В частности, в такой обобщенной модели счи- тается, что задание может захватывать и освобождать дополнительные ресурсы в произвольный момент своего 60
выполнения. При этом естественные ограничения состоят в том, что (а) заявки на дополнительные ресурсы в любой момент времени не превышают объемов этих ресурсов в системе и (б) все ресурсы, используемые заданием, освобож- даются перед его завершением. Отметим, что если ресурсы не являются делимыми (не могут быть изъяты у задания, которое в данный момент ими пользуется), то может воз- никнуть ситуация, называемая тупиковой: два или более активных задания для своего продолжения требуют допол- нительных ресурсов, но, ввиду ограниченного их количест- ва, ни одно из заданий не может выполняться. Учет этих факторов требует существенного обобщения базовой модели, которая и без того весьма сложна. В на- стоящее время имеется лишь небольшое число результатов, относящихся к задачам, в которых рассматриваются вто- ричные критерии эффективности, однако важность этих проблем несомненно послужит стимулом для дальнейшего развития исследований в этой области. 1.5.3. Заключительные замечания. Как можно заметить, предмет данной книги относится, в основном, к области комбинаторики. Однако структура задач и методы, исполь- зуемые для их решения, существенно выходят за узкие рам- ки детерминированных задач упорядочения. Это подтверж- дается материалами гл. 6, в которой развиты перечисли- тельные и приближенные методы, являющиеся общими для комбинаторных задач. Результаты в области сложно- сти, изложенные в гл. 4, хотя и ориентированы на задачи составления расписаний, но могут также применяться при решении многих других задач назначения, размещения или распределения, возникающих в приложениях исследования операций. Подход к решению комбинаторных задач, разви- тый в гл. 5, может применяться в других областях, где есть основания считать, что очень быстрые эвристические алго- ритмы могут оказаться практически эффективными. Крат- кое обсуждение этого вопроса содержится в гл. 5, предше- ствуя анализу задачи об упаковке в контейнеры. Результаты гл. 2 и 3, а также некоторых частей гл. 4 и 5, по-видимому, наиболее тесно связаны собственно с теорией расписаний. Но и при решении других комбинаторных задач читатель может руководствоваться общими принципами и техникой доказательств, которые с успехом применяются в детермини- рованной теории расписаний. С математической точки зрения книга не является легкой для чтения. При этом, как мы отметили ранее, в нее было невозможно включить доказательства всех результатов. 61
Хотя доказательства, приведенные или намеченные в общих чертах в книге, обычно содержат тонкие моменты, следует иметь в виду, что абсолютно строгое доказательство часто сводится к трудоемкому перебору различных случаев. Как бы то ни было, математическая сторона книги верно отра- жает природу исследуемой области. Она также частично объясняет попытку дать в этой главе как можно более пол- ный обзор известных на сегодня результатов по теории расписаний; его цель заключается в том, чтобы ознакомить студентов и исследователей с современным состоянием спе- циальных разделов теории расписаний без предваритель- ного изучения большого количества литературы. В качестве последнего замечания укажем, что теория массового обслуживания представляет собой дополнитель- ное средство для изучения систем обслуживания. Она яв- ляется дополнительным средством в том смысле, что имеет дело, в основном, с анализом поведения заданных алгорит- мов в стохастической среде, т. е. когда времена обслужи- вания и моменты поступления заявок являются случайны- ми величинами, подчиняющимися заданным законам рас- пределения вероятностей. Как будет видно из дальнейшего материала, наши усилия сосредоточены на синтезе или по- строении оптимальных или эвристических алгоритмов, анализ которых, в основном, ограничивается лишь опреде- лением их сложности и построением оценок для критериев эффективности. Модели, успешно изучаемые в теории мас- сового обслуживания, отличаются существенно более про- стой структурой, что необходимо ввиду математических трудностей. Действительно, если бы не трудности анализа, то практически более полезным подходом к решению наших задач был бы подход с позиций вероятностных моделей. Используя эти модели, можно определить влияние случай- ных факторов на поведение задания или заявки в вычис- лительной или любой другой обслуживающей системе. Читателю будет нетрудно представить себе множество обобщений и расширений материала данной книги. Под- ходы, развитые в гл. 5 и 6, открывают обширное поле для исследования. Например, важным расширением рассмот- ренного в книге круга задач явились бы задачи, в которых учитывались бы стоимости прерываний и стоимости подго- товки работ. Только в очень редких случаях последователь- ности заданий, составляющих работы, являются независи- мыми, и тогда указанные факторы могут быть учтены путем простого увеличения времени выполнения. Так же как и Конвей, Максвелл и Миллер [28] в 1967 г., мы должны 62
ожидать, что успех этой книги будет зависеть от того, на- сколько она послужит стимулом для решения множества все еще не решенных проблем в теории расписаний. 1.6. Обозначения В дальнейшем используются следующие обозначения: S'—множество заданий; п— количество элементов в S’; Tj—i-e задание S'; Т, Т' и т. п. также используются для обозначения заданий из S’’, < — антирефлексивное отношение частичного порядка, заданное на S. Типичный элемент < записывается как (Т,, Т ) и означает, что Т; должно быть выполнено до того, как может начаться выполнение Tj. Как описано в § 1.2, < часто представляется в виде ациклического ориентированного графа (орграфа); Р—набор процессоров или машин; m—количество элементов в Р\ Р{ — i-й процессор в Р\ т(у—время выполнения Т} на Р,-; xf-—время выполнения Т}- при идентичных Рz; Wj—стоимость пребывания Т/ в системе. Следующие символы используются только в гл. 1, 4 и 5: 3?—множество видов ресурсов (отличных от процес- соров); s—число элементов в .7?; /?,•—i-й тип ресурса в 52; mt-—общий объем ресурса типа Ri(Tj)—объем ресурса типа требуемый в процессе выполнения Т ; ri(t) — объем ресурса типа Rt, используемый при вы- полнении заданий в момент t; и — длина расписания или максимальное время про- хождения (часто снабжается индексами для того, чтобы указать то или иное правило построения расписания). Другие обозначения характеристик расписаний опреде- ляются в тексте (например, среднее время завершения). Читатель должен, однако, иметь в виду, что в гл. 3 и 4 используется ненормализованное среднее взвешенное время завершения (т. е. только взвешенная сумма времен завер- шения или пю, с учетом определения <в). Булевские операторы + и ”] используются в гл. 4 в обычном понимании как «дизъюнкция» и «отрицание» соот- ветственно; между членами, стоящими вплотную, подразу- 63
мевается оператор конъюнкции. Символ т используется в гл. 5 для обозначения «функции времени выполнения», т. е. т(Тг)=т;. Символ используется в гл. 6 как эквивалент «равно по определению». Система заданий представляется различными способами. Запись в виде пятерки объектов, как в § 1.2, непосредствен- но не используется, так как упрощенные варианты общей модели, рассматриваемые в гл. 2—6, задаются в более сокра- щенной записи. В этом плане, хотя слово «работа» иногда используется как синоним слова «задание», тем не менее в §§ 3.5—3.8 и в § 6.4 оно имеет специальное значение — как некоторая подсистема заданий. Значительная часть необходимых обозначений кратко определяется в начале соответствующих глав или непосредственно перед их ис- пользованием. Все обозначения, не представленные в этой главе, даются по мере их использования.
ГЛАВА 2 АЛГОРИТМЫ ПОСТРОЕНИЯ РАСПИСАНИЙ МИНИМАЛЬНОЙ ДЛИНЫ 2.1. Введение Рассмотрим систему заданий (Jr, <), где S'—множе- ство заданий, которые нужно распределить между т про- цессорами, а <—частичное упорядочение на S', задающее ограничения на порядок выполнения заданий. Последнее означает, что если для заданий Т и Т' из S' имеет место Т <Т', то выполнение задания Т должно быть завершено до того, как начнется выполнение задания Т'. В общем случае времена выполнения заданий из S' произвольны. Длиной некоторого расписания для (JT, <) называется время, необходимое для выполнения всех заданий. Нас интересуют эффективные алгоритмы нахождения расписаний минимальной длины. С нашей точки зрения, эффективным алгоритмом считается такой, который дает расписание минимальной длины для системы, состоящей из п заданий, за время, ограниченное величиной пс, где с — константа. Такой алгоритм называется полиномиальным. Расписание минимальной длины позволяет не только завершать выполнение всех заданий как можно раньше, но и обеспечивает максимальное использование ресурсов си- стемы. Длина расписания зависит от общего времени выпол- нения всех заданий и общего времени незанятости процес- соров. Минимизация длины расписания минимизирует время простоя, что в свою очередь приводит к максималь- ному использованию процессоров. Этот критерий эффек- тивности применяется в тех случаях, когда порядок выпол- нения заданий не имеет значения. Если важна последова- тельность выполнения заданий, то более подходящим может быть критерий типа «среднее время обслуживания» (см. гл. 3). Мы собираемся рассматривать расписания двух типов. В расписаниях с прерываниями допускается прерывание выполнения задания и последующее возобновление с точки прерывания. В расписаниях без прерываний выполнение задания, раз начавшись, происходит до завершения. На рис. 2.1 приведены примеры расписаний обоих типов. Здесь 3 Под ред. Э. Коффмана 65
требуется составить расписание выполнения системы из трех независимых заданий, каждое из которых имеет дли- ну 2, на двух процессорах. Расписание без прерываний занимает 4 единицы времени. Минимальное расписание с прерываниями занимает 3 единицы; экономия составляет 25%. Платой за выигрыш является снятие задания с обслу- живания (до его завершения) и сохранение информации о нем в течение всего времени ожидания. Если в состав обо- рудования вычислительной системы входит внешний нако- питель типа быстродействующего барабана, то обмен инфор- мацией между основной памятью и накопителем осуществля- ется относительно эффективно. В этом случае стоимостью прерывания можно пренебречь. Даже если эта стоимость оказывается заметной, все равно, стремление быстрее за- вершить выполнение системы заданий может сделать кри- терий минимизации длины расписания превалирующим над другими соображениями. Известно очень мало полиномиальных алгоритмов на- хождения расписаний минимальной длины даже для тех случаев, когда наложены строгие ограничения на частич- ное упорядочение и времена выполнения заданий. Для на- чала мы будем считать, что все процессоры идентичны, сле- довательно, время выполнения задания Т на всех процес- сорах одно и то же. В сущности, имеются два случая, для которых известны полиномиальные алгоритмы: (а) когда граф системы заданий является деревом и (б) когда в систе- ме имеются только два процессора. Если требуется построить расписание без прерывания, то в обоих случаях появляется дополнительное ограничение: все задания имеют одинаковое время выполнения. Как показано в гл. 4, большинство проблем, связанных с построением расписаний, попадает в класс комбинаторных •задач, для которых в течение длительного времени пред- принимаются попытки найти решение, менее трудоемкое по сравнению с перебором. Задачи этого класса называют NP- 66
полными, полиномиально полными или просто полными. Интересное свойство данного класса состоит в том, что наличие полиномиального решения для одного представи- теля класса влечет за собой наличие такого решения для остальных задач данного класса. Размер этого класса и характер содержащихся в нем задач таковы, что мы пес- симистически относимся к возможности найти полиноми- альное решение для какой-либо полной задачи. Некоторые результаты, показывающие, что задачи рас- писаний являются полными, содержатся в гл. 4. Часть из них имеет отношение к предмету нашего обсуждения и приведена ниже.' В каждом из перечисленных случаев опре- деление расписания минимальной длины без прерываний представляет собой полную задачу. 1. Времена выполнения заданий произвольные; имеется два или более процессоров. (Результат остается в силе, даже если все задания независимы.) 2. Времена выполнения заданий равны одной или двум единицам, частичное упорядочение является произвольным, имеется два или более процессоров. Первый результат говорит о том, что для получения по- линомиального алгоритма нельзя допускать произвольные значения времен выполнения. Если эти времена не произ- вольные, то их значения должны выбираться из некоторого набора допустимых величин. Второй результат приводит к необходимости рассмотрения систем с одинаковыми време- нами выполнения заданий, по крайней мере в случае про- извольного частичного упорядочения. При изучении систем заданий, в которых все задания име- ют одинаковые времена выполнения, можно без потери об- щности считать, что все эти времена равны единице. В этом случае мы имеем так называемую UET-систему (unit-exe- cution-time). В § 2.2 рассматривается алгоритм, имеющий почти линейную сложность, который для UET-системы {S', <), состоящей из п задач, строит расписание минималь- ной длины без прерываний при условии, что граф системы представляет собой дерево. Произвольное частичное упоря- дочение может быть представлено в виде ориентированного ациклического графа *). Параграф 2.3 посвящен орграфам. Для случая т=2 рассмотрен оптимальный (т. е. опреде- ляющий кратчайшее расписание без прерываний) алгоритм, имеющий сложность О(п2). Для т=3, 4, 5,. . . вопрос о *) В дальнейшем для этого класса графов будем употреблять тер- мин орграф. (Прим, перев.) 3* 67
существовании оптимального полиномиального алгоритма остается открытым. Более детально этот вопрос рассмотрен в гл. 4. В § 2.6 мы увидим, что алгоритмы без прерываний, описанные в §§ 2.2, 2.3, естественным образом приводят к алгоритмам с прерываниями. Рассмотрим систему заданий (<^, <) с произвольными временами выполнения. Мы можем расщепить каждое задание на одинаковые части и получить цепочку заданий с равными временами выполнения. Бла- годаря этому получаем, с точностью до некоторых деталей, которые рассмотрены в § 2.6, UET-систему. Неудивительно поэтому, что единственными случаями, для которых изве- стны полиномиальные алгоритмы нахождения расписаний минимальной длины с прерываниями, являются следующие: (а) граф (S, <) представляет собой дерево, или (б) имеются только два процессора. Частный случай системы с незави- симыми заданиями рассмотрен в § 2.5. До сих пор мы ограничивались рассмотрением идентич- ных процессоров. В § 2.8 предполагается, что задан набор из т процессоров Р = {РХ, Р2,. . ., Рт}> имеющих быстро- действия bi Ь2~^. . Ssbm. Задание, требующее т единиц времени, на процессоре Р} выполняется за i/bj единиц вре- мени. Оказывается, что алгоритм с прерываниями, рассмот- ренный в § 2.6, может быть непосредственно распространен на набор процессоров Р. Новый алгоритм является опти- мальным для независимых заданий. В заключение данной главы мы рассматриваем конвейер- ную задачу. В этом случае набор заданий состоит из цепо- чек длины т, в которых задания, стоящие на i-м месте, должны выполняться на процессоре Рг. Цепочки заданий можно интерпретировать следующим образом: первое зада- ние соответствует процессу ввода, который должен быть осуществлен с устройства чтения с перфокарт, второе соответствует счету на процессоре, и третье соответствует выводу на печатающее устройство. Мы предлагаем алгоритм для двухпроцессорной конвейерной задачи. Для /п=3, 4, . . . определение расписания минимальной длины в кон- вейерной задаче является полной задачей. 2.2. Системы заданий с древовидной структурой В данном параграфе мы рассмотрим систему заданий (S’, <), граф которой представляет собой лес. Каждое задание имеет единичное время выполнения. Имеется tn идентичных процессоров, т произвольно. Опишем почти 68
Линейный по сложности алгоритм определния расписания минимальной длины без прерываний. Поскольку все задания имеют одинаковые времена, а прерывания запрещены, то удобно вместо непрерывного времени ввести дискретное. Выполнение расписания начи- нается в момент времени 0. Для всех целых i i-я едини- ца времени (i-й интервал) представляет собой интервал 0—1, 0- Рассмотрим дерево на рис. 2.2. На пути от вершины 14 к конечной вершине расположены вершины 14, 12, 7, 3 и 1. Рис. 2.2. Поскольку 14<12<...<1,то, независимо от количест- ва процессоров, потребуется по меньшей мере 5 единиц времени, чтобы выполнить все задания. При наличии боль- шого числа процессоров оптимальная стратегия будет зак- лючаться в том, чтобы начать с наиболее удаленных заданий и продвигаться к конечной вершине. Как станет ясно, та- кая стратегия дает неплохие результаты при любом коли- честве процессоров. Назовем уровнем вершины х в орграфе максимальное число вершин (включая х), находящихся на пути от х к конечной вершине. В лесу имеется ровно один такой путь. Конечное задание имеет уровень 1. Назовем задание гото- вым, если выполнены все его предшественники. Мы можем показать, что следующая стратегия приводит к оптималь- ному расписанию для леса при любом количестве процес- соров. Уровневая стратегия: всякий раз, когда процессор освобождается, на него назначается невыполнен- ное, но готовое задание из числа имеющих высший уровень (находящихся дальше всего от конечной вершины). Полу- 69
чаемое таким образом расписание называется уровневым расписанием. Вначале ограничим наше обсуждение рассмотрением деревьев; как будет показано, последующий переход к лесу является тривиальным. Пример 1. Применение уровневой стратегии для трех процессов к системе заданий, изображенной на рис.2.2, позволяет построить соответствующее расписание. Вначале назначаются задания 14 и 13, имеющие уровень 5. Задание 12 уровня 4 должно ожидать окончания выполнения зада- ний 14 и 13, поэтому на третий процессор в первую едини- цу времени назначается задание 11. Задания 12, 10 и 9 уров- ня 4 выполняются в течение второй единицы времени. Читателю предлагается убедиться, что получаемое расписа- ние является действительно уровневым. Расписание, приведенное на рис. 2.2, иллюстрирует важ- ное свойство расписаний минимальной длины без преры- ваний. Задание 1, будучи единственной конечной вершиной, должно ожидать окончания всех других заданий, а для того, чтобы на трех процессорах выполнить без прерываний 13 заданий, предшествующих заданию 1, требуется по меньшей мере 5 единиц времени. Таким образом, длина любых расписаний для данной системы заданий должна быть по крайней мере равна 6. Другими словами, в любом расписании для дерева в последнюю единицу времени может выполняться только одно задание — конечное. Расписание оказывается оптимальным, если в нем нет простоев во все интервалы времени, предшествующие предпоследнему. Теорема 2.1. Пусть граф UET-системы (S', <) является деревом; тогда уровневая стратегия обеспечивает построение расписания минимальной длины без прерываний. Доказательство. Доказательство теоремы стро- ится по следующему плану. 1. Предположим, что уровневая стратегия не опти- мальна. Тогда существует наименьшая (по количеству заданий) система (S', <), для которой уровневое распи- сание S имеет не минимальную длину. 2. Пусть со есть длина 5. Поскольку S не оптимально, в интервале со—2 должен быть свободный процессор. 3. Рассмотрим систему заданий (S'1, <'), образованную из (S', <) путем исключения конечной вершины и всех ее непосредственных предшественников. Уровневое рас- писание S' для (S'', <') может быть получено из S путем замены исключенных заданий на пустые интервалы. 4. Длина S' равна со—2. 70
5. Превратим лес <') в дерево {S’", <"), добавив задание Тг, являющееся непосредственным преемником всех терминальных вершин (JT', <'), Длина уровневого расписания S" для (JT", <") равна и—1. 6. Поскольку система (<^Г", <") была образована из (еГ, <) путем исключения двух уровней и добавления одного, система <") должна иметь ио крайней мере на одно задание меньше, чем {S, <). Но уровневое рас- писание S" для {S'", <") не может быть оптимальным. Таким образом, мы нашли систему, меньшую чем {S, <), для которой уровневая стратегия не является оптимальной, что противоречат первому предположению. Следовательно, теорема верна. Перед тем как приступить к осуществлению данного плана, отметим, что при уровневой стратегии вершины на каждом уровне могут назначаться в различном порядке. Таким образом, расписание, полученное с помощью этой стратегии, не является единственным. Стратегия будет считаться неоптимальной, если найдется по крайней мере одно уровневое расписание, которое не будет оптимальным. Пусть (оГ, <) — система с минимальным числом зада- ний из тех, для которых уровневое расписание превосходит по длине оптимальное. Обозначим через п число заданий в этой системе, через ю — длину ее уровневого расписания S, через <о0 — длину ее оптимального расписания. Поскольку число выполняемых заданий зафиксировано, длина расписания 5 для (S, <) зависит от количества неза- нятых периодов в S. В соответствии с обсуждением, предше- ствовавшим формулировке теоремы, на некотором процес- соре должен быть пустой единичный интервал t, t —2. Поскольку в интервале t имеется свободный процессор, из определения уровневой стратегии следует, что ни одно из заданий, выполняемых после t, не может быть готово в интервале t. Поэтому все задания, выполняемые после t, должны иметь предшественника, выполняемого на некото- ром процессоре в течение t. Поскольку граф {S, <) есть дерево, каждое задание имеет, самое большее, одного непосредственного преемника; таким образом, количество заданий, выполняемых в интервале /+1, не может превысить числа заданий, выполняемых в интервале t. Из этого следу- ет, что после t всегда имеется свободный процессор, в част- ности, должен быть свободный процессор и в интервале ®—2. Конечное задание Т из {S, <) выполняется в интер- вале ®. Поэтому непосредственный предшественник R вер- 71
шины Т должен выполняться на некотором процессоре в единицу времени со—1. Поскольку на интервале со—2 имеется свободный процессор, то предшественник Q зада- ния R должен выполняться в единицу времени со—2. Рассмотрим систему заданий (S", <'), образованную путем исключения конечной вершины и всех ее непосред- ственных предшественников. Мы утверждаем, что расписа- ние S', образованное путем замены исключенных заданий пустыми интервалами, является уровневым расписанием для (S", <'). Конечное задание Т выполняется на последнем интерва- ле; следовательно, оно является преемником всех заданий и замена его пустым интервалом не может изменить уровневую структуру остальной системы. Теперь рассмотрим непосред- ственного предшественника U задания Т, который выпол- няется в течение некоторой единицы времени t. Единствен- ными заданиями, которые могли бы выполняться в течение t после исключения U, являются задания того же уровня либо более низкого. Если имеются задания более высокого уровня, которые выполняются после t, они должны были быть рассмотрены перед U и признаны не готовыми к выпол- нению. Поскольку все задания того же или более низкого уровня, чем U, исключены, ни одно задание не может заполнить пустой интервал, образовавшийся после исключе- ния U. Задание Q уровня 3 выполняется в интервале со—2. Таким образом, не существует интервал, предшествующий со—2, в котором выполняются только задания уровня 2. Следовательно, длина S' равна со—2. Поскольку уровни всех заданий в (S" <') на 2 ниже, чем уровни соот- ветствующих значений в (S', <), S' является уровневым расписанием для (S'', К'). Поскольку в формулировке теоремы речь идет о дере- вьях, превратим (S'', <') в дерево путем добавления нового задания Тг, являющегося непосредственным преемником всех терминальных вершин системы (S", <'). Обозначим новую систему заданий (S'", Уровневое расписание S" для (S"', <") может быть образовано из S' путем на- значения задания Тг на некоторый процессор в интервале оз—1. Заметим, что Тг не может выполняться до интерва- ла со—1, потому что Q, • предшествующее Тг, выполняет- ся в <о—2. Таким образом, длина расписания S" равна со— 1. Кроме того, (S'", <") содержит не более п—1 задания. В оптимальном расписании для (Г, <) конечное зада- ние может выполняться только на интервале со0, а на интер- 72
вале и»—1 могут выполняться только его непосредственные предшественники. Следовательно, исключение конечного задания и его непосредственных предшественников приводит к минимальному расписанию, длина которого не больше чем w0—2. Добавление нового задания Тг, как это сделано ранее, приводит к системе заданий, для которой минималь- ная длина расписания не превышает w0—1. Из w0<w получаем о0—l<w—1, и, следовательно, мы нашли меньшую систему заданий, чем {S', <), для которой уровневая стратегия не является оптимальной,— противо- речие. Теорема доказана. Следствие 2.1. Пусть граф UET-снтелгы явля- ется лесом; тогда уровневая стратегия строит расписание минимальной длины без прерываний. Доказательство. Если уровневая стратегия не строит расписание минимальной длины для {S’, <), она не может построить расписание минимальной длины для дерева {S", <'), образованного путем добавления нового задания, являющегося непосредственным преемником тер- минальных заданий из {S', <). К системе {S'', <') приме- нима теорема 2.1. Мы показали, что уровневая стратегия приводит к опти- мальному результату, а теперь должны разработать алго- ритм составления расписания. Алгоритм, который мы рассмотрим, приписывает приоритеты всем заданиям. Зада- ния более высоких уровней имеют более высокий при- оритет. В дальнейшем наше обсуждение относится к лесам. Поскольку уровни отсчитываются от конечных вершин, то, начиная с конечных вершин, последовательно просмат- риваются все вершины на одном уровне, затем на следую- щем и так далее, при этом каждой вершине приписывается метка. Для системы из п заданий метка вершины пред- ставляет собой целое число от 1 до п.На рис. 2.2 конечная вершина помечена меткой 1, вершины уровня 2 имеют метки 2, 3 и 4 и так далее до 13 и 14, которыми помечены два задания уровня 5. После того, как процесс расстановки меток завершен, составляется список заданий в порядке убывания меток. Как и в гл. 1, этот список используется для составления рас- писаний следующим образом. Составление списочного расписа- ния: всякий раз, когда процессор освобождается, список просматривается слева направо и первое еще не выполненное готовое задание назначается на процессор. 73
Расписание, показанное на рис. 2.2, б, представляет собой списочное расписание для системы заданий, изобра- женной на рис. 2.2, а, в котором список упорядочен по убыванию меток. Отметим, что на первом интервале зада- ние 12 неготово к выполнению, так как до него должны быть выполнены задания 14 и 13. Поэтому задание 11, следую- щее по списку после задания 12, назначается на третий процессор. Аналогично, на третьем интервале задание 6 не готово и на третий процессор назначается задание 5. Алгоритм 2.1. Пусть граф системы (<1Г, <) является лесом. Вначале каждому заданию из S' приписывается метка. Имеется функция*) £;(•), которая ставит в соот- ветствие заданиям числа из набора {1, 2, ..., п}. Метки затем используются для построения списка для (S', <). Этот список приводит к расписанию минимальной длины без прерываний для системы (S', <) на т процессорах. Временно будем считать, что (S, <) имеет одну ко- нечную вершину. 1. Если Т есть конечная вершина (S', <), пометим Т меткой 1 (т. е. Аг(Т)=1). 2. Пусть метки 1, 2,. . ., /—1 уже расставлены. Если Т есть задание, непосредственный преемник которого имеет минимальную метку, положим Lt(T)=j. (Отметим, что процесс расстановки меток переходит от уровня к уровню, приписывая последовательные значения меток заданиям одного уровня.) 3. Используем список (Тп, Тп_1,. . ., 7\), в котором Lt(Tt)=i, l^t^n, для построения расписания. Расписание для леса (S, <) может быть получено путем добавления фиктивного задания, являющегося непосредст- венным преемником всех конечных вершин (S', <), и пос- ледующего применения пунктов 1—3 к новой системе зада- ний. Расстановка меток, показанная на рис. 2.2, а, выполнена с использованием алгоритма 2.1. Теорема 2.2. Пусть граф UET-системы (S, <) представляет собой лес; тогда алгоритм 2.1 строит для (S, <) расписание минимальной длины без прерываний. Доказательство. Из следствия 2.1 вытекает, что нужно только показать, что алгоритм 2.1 строит уров- невое расписание для (S, <). Из описания шага 3 видно, *) Мы использовали нижний индекс t, чтобы отличить функцию расстановки меток для деревьев от функций, выполняющих аналогич- ную роль в других разделах. 74
что алгоритм расставляет метки от уровня к уровню. Чита- телю предоставляется самому завершить доказательство. Один из путей может заключаться в том, чтобы показать с помощью индукции по /, что когда метка / приписыва- ется заданию Т, то на уровнях, меньших уровня Т, нет ни одного непомеченного задания. В этом параграфе мы показали, что при оптимальной стратегии составления расписаний для UET-лесов в первую очередь назначаются на выполнение задания наиболее высоких уровней. Рассмотренный алгоритм помечает зада- ния от уровня к уровню так, что, чем выше уровень задания, тем большая метка ему приписывается. Структура данных для алгоритма обсуждается в § 2.4. Там же показано, что с помощью функции Lt () процесс составления оптимального расписания может быть завершен за почти линейное время. В рассматриваемых совокупностях деревьев (лесах) каждое задание может иметь несколько непосредственных предшественников, но непосредственный преемник задания всегда единственный. Представляет также интерес противо- положная ориентация ограничений предшествования, а именно: завершение некоторого задания может позволить начать выполнение более чем одного задания, но непосред- ственный предшественник задания всегда единственный. Такая система заданий называется антилесом *). Нефор- мально, антилес может быть построен, если у леса изменить на обратную ориентацию всех ребер. Результаты настоя- щего параграфа также применимы к антилесам. Для этого просто игнорируется направление ребер и строится уровне- вое расписание. Для антилеса расписание следует читать наоборот, т. е. справа налево. Утверждения такого рода можно сделать для многих алгоритмов, рассматриваемых в данной главе (см. также § 2.7). 2.3. Двухпроцессорные расписания для систем заданий с произвольным частичным упорядочением В настоящее время не известны полиномиальные алго- ритмы составления расписаний для UET-систем при фик- сированном количестве процессоров т, если т>2. Для т=2 мы в этом параграфе рассмотрим алгоритм, имеющий сложность 0(п2). Здесь применяется подход, аналогичный *) Граф такой системы называют также выходящим деревом, в про- тивоположность термину входящее дерево, употребляемому для обо- значения графа, рассматривавшегося выше. (Прим, перев.) 75
тому, который был использован для лесов, а именно: каж- дому заданию приписываются метки, определяющие их приоритеты, на основе которых строится список, используе- мый для составления расписания. Для того чтобы алгоритм мог работать, граф UET-системы не должен иметь транзитив- ных ребер. В предыдущем параграфе было установлено, что страте- гия «первым идет самый высокий уровень» является опти- мальной для лесов. Поскольку деревья являются частным случаем орграфов, следует ожидать, что и для произволь- ных орграфов уровни играют определенную роль при по- строении расписаний. Было бы хорошо, если бы мы смогли снова расставить приоритеты по уровням, после чего при- шлось бы только заботиться о порядке, в котором должны выполняться задания одного уровня. Поэтому сформулиру- ем желательное свойство процесса расстановки меток Л(-) для орграфов. Свойство 1. Если Т имеет, более высокий уровень, чем Т, mo L(T)>L(T'). Помня о том, что мы собираемся строить расписание для двух процессоров, заметим, что если на каждом уровне имеется четное число заданий, то все задания одного уровня будут завершаться до начала заданий следующего уровня, и, таким образом, свойство 1 является достаточным для того, чтобы расписание было оптимальным. Для того чтобы выявить ряд факторов, существенных для оптимальной расстановки меток, рассмотрим систему заданий на рис. 2.3. На самый высокий уровень (7) мы поме- стили три задания: О, Р и Q. Таким образом, во вторую единицу времени нам придется искать задание, готовое к выполнению на более низком уровне. Поскольку Q имеет, кроме N, непосредственного преемн ика J, приоритет Q дол- жен быть выше, чем у О и Р. Мы приходим к следующему свойству. Свойство 2. Если множество непосредственных пре- емников задания Т содержит в себе множество непосредст- венных преемников Т, то L(T)>L(T'). Свойство 2 не является достаточным для оптимальности расписания, однако продолжим рассуждения. Поскольку в системе имеется 17 заданий, метка 17 приписывается зада, нию Q, а метки 15 и 16 — заданиям О и Р соответственно. Единственным заданием уровня 6 является N, и оно полу- чает метку 14. Мы поместили на уровень 6 только одно задание, чтобы продемонстрировать тот факт, что и в опти- мальном расписании могут встречаться простои процессора 76
Свойств 1 и 2 оказывается достаточно до тех пор, пока мы не достигнем уровня 3, на котором нужно поместить за- дания G, Н, I и J. Поскольку G < А и Н < F, задания G и Н неразличимы по свойству 2. Отметим, что А имеет уровень 1, a F имеет уровень 2. Поскольку F (как имеющее Рис. 2.3. более высокий уровень, чем А), возможно, будет выпол- няться раньше, чем Л, присвоим И большую метку, чем G. Выясняются два взаимосвязанных обстоятельства: (а) нам необходим механизм для сравнения преемников зада- ний, и (б) при сравнении необходимо принимать в расчет приоритеты преемников. Поскольку приоритеты задаются метками, нам, похоже, удастся использовать метки при сравнении. Если мы собираемся использовать метки, то нужно вначале помечать преемников, а затем предшествен- ников. Оказывается, существует оптимальный алгоритм поуровневой расстановки меток. Алгоритм расстановки меток, который мы используем, начинается с приписывания метки 1 одному из конечных заданий. Предположим, что метки 1, 2, . . ., /—1 уже расставлены. Поскольку метки определяют приоритеты заданий, метка / приписывается такому заданию, которое имеет наинизший приоритет из множества заданий, готовых 77
к помечиванию. Для того чтобы выявить такое задание, сравним множества непосредственных преемников заданий, готовых к помечиванию. Для каждого задания построим убывающую последовательность, используя метки его не- посредственных преемников. Наименьшая (лексикографи- чески) последовательность определяет задание, которое помечается меткой /. Более строго, пусть / = («!, п2, ..., nft) и /' = («{, п2, . .., nk,)—две последовательности целых чисел, k'^0. Когда k = Q, последовательность I пустая. Будем говорить, что I лексикографически меньше, чем /' (записы- вается 1^Г), если: (1) обе последовательности совпадают до /-й позиции (для некоторого /), однако н,- < и) (т. е. существует такое /, 1 <7 i^k, что для всех i, 1 i < /, n(. = ц. и tij n’j) или (2) две последовательности совпа- дают, но I более короткая (т. е. k < k' и n(- = n[- для всех i, 1 г k). Следующий алгоритм определяет процесс расстановки меток, описанный выше неформально. . Алгоритм 2.2. Пусть <)—система из п зада- ний с единичными временами выполнения. Функция А() ставит в соответствие каждому заданию из некоторую метку из набора {1,2, ..., п\. Метки затем используются для построения списка, с помощью которого формируется расписание минимальной длины без прерываний на двух процессорах для (^Г, <). 1. Припишем метку 1 одному из конечных заданий. 2. Пусть метки 1, 2,. . ., /—1 уже ра,оставлены. Пусть S есть набор непомеченных заданий, не имеющих непоме- ченных преемников. Выберем элемент S который должен быть помечен меткой /. Для каждой вершины х из S определим I (х) следующим образом. Пусть уи у2,. ., Уь — непосредственные преем- ники х. Тогда 1(х) представляет собой убывающую после- довательность целых чисел, которая образуется путем упорядочения набора {L(z/i), L(y2),. . ., L(yk)}. Пусть х есть элемент S такой, что для всех х' из S выполняется l(x)^Zl(x'). Тогда положим L(x)=j. 3. Когда все задания помечены, полученный список (Т,„ Тп_г,. . 7\), в котором для всех i L(Tt)=i, определяет расписание для системы заданий. Поскольку каждое задание выполняется за единичное время, процессоры 1 и 2 оказываются свободными одновре- менно. Будем считать, что вначале занимается процессор 1, а затем 2. 78
Для доказательства оптимальности алгоритма 2.2 для двух процессоров необходимо установить взаимосвязь между системой заданий и соответствующим расписанием. Основ- ная идея доказательства заключается в следующем. Определим множества Fk, Fk^1, , . ., Fo, FiSeT, »0, такие, что все задания F-, предшествуют всем зада- ниям F;_y. Все задания в Ft должны, таким образом, быть завершены до того, как можтг начаться выполнение любого задания из Fl^1. Множества Ft обладают тем свойством, что любое расписание, при котором они выполняются после- довательно, имеет по крайней мере такую же длину, как и расписание, порожденное алгоритмом 2.2 (см. рис. 2.4). I 17 I 15 I 14 ।___4===Ц?— 13 I 12 I 10 I 6 I 4 I 3 I L L । Л -III--------------------1! -ML-r-J—_________1. 123456789 Рис. 2.4. Мы хотим дать как можно более наглядное определение множества F,. Рассмотрим задание 14, выполняющееся в третью единицу времени в расписании, показанном на рис. 2.3, б. Поскольку второй процессор в это время не занят, то задание 14 должно быть предшественником всех других заданий, выполняемых после него. Таким образом, как сле- дует из определения списочного расписания, все остальные задания в третью единицу времени были просмотрены и среди них не нашлось готовых к выполнению. Однако мы не можем разделить задания на два множества S, и S2 таких, чтобы Si содержало все задания, выпол- няющиеся не позже задания 14, a S2 содержало все осталь- ные задания, надеясь, что все задания из Sx предшествуют всем заданиям из S2. Задание 7, выполняемое во вторую единицу времени, не предшествует никакому заданию с уровнем выше чем 7. Рассмотрим задания, которые выпол- няются не по порядку, и покажем, что, если не принимать в расчет такие задания, как 7, можно определить множества Fk-r,. . F, Для заданного расписания будем обозначать через Х(Т) единицу времени, в течение которой выполняется задание Т. Соглашение о том, что вначале занимается процессор 1, а затем процессор 2, приводит к полезному свойству распи- саний. 79
Лемма 2.1. Пусть S есть списочное расписание, по- строенное для системы заданий (^Г, <) при помощи про- цесса расстановки меток в соответствии с алгоритмом 2.2. Если задание Т выполняется на процессоре 1, то для всех Т S' можно утверждать, что если Т’ выполняется не раньше, чем Т, то метка Т' меньше метки Т. Иными слова- ми, условие A(T) Х(Т') влечет L(T) > ЦТ1). Доказательство. Поскольку задание Т назна- чено на процессор 1 в течение Х(Т’), задание Т имеет наи- большую метку из числа заданий, готовых к выполнению на этот момент времени. Все задания, не готовые к выполне- нию, должны ожидать выполнения какого-либо из готовых. Из процесса расстановки пометок L следует, что для всех U, U' таких, что U < U', должно быть справедливо L(U)> >L(U'). Лемма доказана. Для того чтобы показать, что алгоритм 2.2 является оптимальным, мы исследуем расписания, порождаемые им, аналогично тому, как это делается в обсуждении, пред- шествующем лемме 2.1. Пусть S—списочное расписание для системы (S', <), построенное методом расстановки пометок в соответствии с алгоритмом 2.2. Определим последовательные множе- ства Fk, Fk_lt ..., Fo, где k зависит от расписания, такие, что каждое задание из является предшест- венником всех заданий из F Последовательные множества зависят от зада- ний Dk, Dk_„ ..., Do nJk, Jk-i’ •••> гДе Di «за- мыкает» группу заданий из । 1 -О; Д-i Рис. 2.6. последовательного множества Fi_i, a «возглавляет» эту группу. Как D,:, так и J; выполняются на одном и том же единичном интервале. Рис. 2.5 иллюстрирует следую- щие определения. 1. Пусть задания Т и Т' (Т' может быть и периодом простоя) выполняются на последнем единичном интервале в 5 на процессорах 1 и 2 соответственно. Заметим, что задание Т имеет большую метку, чем Т'. Тогда Do—это задание Т, a Jo—это задание Т'. 2. Предположим, что Dk_1, Dk_2, ..., Do и Jk_1, Jk~2, ..., Jq уже определены. Определим Jk как (воз- можно пустое) задание Т такое, что: a) L (Т) < L (Dk_1), где пустые задания считаются имею- щими метку 0;
б) А.(Т') < и л (7)—максимальное из йсех 1 удовлетворяющих этому неравенству. Неформально, Т «возглавляет» Dk_t и является ближайшим к Dk_1 заданием, обладающим этим свойством. Теперь Dk—попросту задание, выполняемое на процес- соре 2 на том же единичном интервале, что и J к; /-(Dk) = =Л(Jk). Из леммы2.1 следует, что задания Dk, Dk_1, .. .,Da выполняются на процессоре 1, а задания Jk, Jk_t, ..., Jo— на процессоре 2. 3. Пусть Dk, Dk_1, ..., Do уже определены, a Dk+1 не существует. Для всех i, &>i^0, Ft есть множество всех заданий, выполняемых после Di+1, но перед Dit а также само Следовательно, мы имеем Л- = {т IX (Di+1) < X (7) < X (D,)} и Р,}. Поскольку Dk+1 не существует, Fk определяется отдель- но: Следующие две леммы показывают, что для всех i, k i 1, каждое задание из F, является предшествен- ником любого задания из К,.^. Лемма 2.2. Для любого i, D^T для всех Т из Fi-^ Доказательство. Как и на рис. 2.5, задания П,- и J i выполняются на одном и том же интервале. Напом- ним, что задание, обозначенное Jit получило это «звание» потому, что Л (Д) < L (£),_!), и Д является ближайшим к D(._x заданием с таким свойством. Из этого следует, что для всех других заданий Т из F^ имеем L(T)^ L (Di_1). Поскольку Д(/() < Л (Dj.j), то из транзитив- ности получаем, что LQ^^LtT). Из определения спи- сочного расписания следует, что, поскольку каждое зада- ние Т из Fz_1 имеет большую метку, чем Jit задание Т рассматривалось перед тем, как назначать на процессор J Следовательно, задание не могло быть готовым к выпол- нению в этом единичном интервале. Поэтому D(- должно быть предшественником Т. Следует заметить, что D; не обязано быть непосредственным предшественником Т. Доказательство следующей леммы основывается на изу- чении причины, по которой одно задание получает большую метку, чем другое. Рассмотрим задания 5 и 4 на рис. 2.4. Из леммы 2.2 мы знаем, что задание 4 предшествует зада- нию. 3. Следовательно, при составлении списка непосред- ственных преемников в соответствии с шагом 2 алгоритма 81
2.2 Первый элемент* в 1(4) должен был быть 3. Поскольку задание 5 имеет большую метку, чем 4, первым элементом в I (5) должно быть, по крайней мере, тоже 3. Вообще говоря, есть две возможности — 3 и 4,— однако в обоих случаях задание 5 является предшественником задания 3. Лемма 2.3. Для всех i, если Т принадле- жит Ft, а Т' принадлежит F 1_г, то Т <,Т'. Доказательство. Предположим, что лемма не- верна. Тогда для некоторого i, найдется зада- ние Т из Fi такое, что оно не предшествует заданию Т' из Fz_v Допустим временно, что Т не имеет преемников в Fz. Из леммы 2.2 следует, что Dt предшествует Т'. Из определения Fz должно следовать, что Т имеет большую метку, чем D(, ибо в противном случае Т было бы кан- дидатом на место JZ+1 и не смогло бы входить в Fz. Из правила расстановки меток вытекает, что /(£)Z)^/(F). Пусть Z(D1) = (n1, /г2, ..., пг). Докажем, что несколько первых элементов l(D{) являются метками заданий из F^. Из леммы 2.1 следует, что £),•_, имеет метку большую, чем все задания, выполняемые после По определе- нию все другие задания в F^ имеют метки большие, чем Таким образом, элементы последовательного множества Fj., имеют наибольшие метки из всех зада- ний, выполняемых после 1(DZ). Теперь ясно, что наиболь- шие элементы I (Ц) должны набираться из заданий мно- жества Fz_x. В частности, если I есть максимальный набор заданий в F,-^, не имеющих предшественников в то первые |/| элементов множества I (£),) долж- ны быть метками заданий, входящих в I. Последнее утверждение следует из введенного в гл. 1 предположе- ния, что граф системы заданий (£Г, <) не имеет транзи- тивных ребер. Как показано на рис. 2.6, в случае, когда 82
граф содержит транзитивные ребра, алгоритм 2.2 не явля- ется оптимальным. Мы выбрали Т таким образом, чтобы оно не имело преем- ников в Ft. Для завершения доказательства заметим, что для того, чтобы l(Dt) было лексикографически меньше, чем КТ), Т должно быть непосредственным предшественником каждого элемента из I. Таким образом, Т должно быть предшественником всех элементов множества Т;_г, что является противоречием. Наконец, последний случай, когда Т должно иметь пре- емника в Ft, следует из транзитивности, так как Т будет предшествовать всем заданиям, которым предшествует его преемник. Рано или поздно мы найдем такого преемника Т в Fit который сам не имеет преемников в Ft. Лемма дока- зана. Теорема 2.3. Пусть <) — КЕТ-система; тогда алгоритм 2.2 генерирует расписание минимальной длины без прерываний для (£Г, <) на двух процессорах. Доказательство. Пусть S — списочное рас- писание, построенное алгоритмом 2.2 для (jT, <). Пусть в S имеется &+1 последовательных множеств Fk, Fk_1,. . ., Fo. Из леммы 2.3 следует, что каждое задание в Fk является предшественником всех заданий в Fj для всех /, k>j. Таким образом, все задания из Fk должны быть завершены перед тем, как могут начать выполняться задания из Fj. Поскольку каждое последовательное множество имеет не- четное количество заданий, обозначим количество заданий в Ft через 2иг—1. Ясно, что для выполнения всех заданий, входящих в Ft, потребуется nt единиц времени. Следова- тельно, любое расписание для (<£*, <) будет иметь длину, k по крайней мере, в п: единиц времени. Таким образом, 1 = 0 k если расписание S имеет длину У П;, то оно должно быть £ = 0 оптимальным. Леса являются частным случаем орграфов. Читатель мо- жет убедиться, что функция расстановки меток L назначает метки от уровня к уровню. Таким образом, возможно, хотя и нецелесообразно, применять алгоритм 2.2 для построения оптимальных расписаний для лесов на т процессорах. Следует еще раз подчеркнуть, что алгоритм 2.2 позволяет построить оптимальное расписание только в том случае, когда граф, описывающий систему заданий, не содержит транзитивных ребер. Тем, кто в этом сомневается, рекомен- 83
дуем взглянуть на рис. 2.6. Однако, как нетрудно убедить- ся, транзитивные ребра могут быть удалены со сложностью О (и2’8) в наихудшем случае [2]. Процесс расстановки пометок L приводит к оптималь- ному расписанию для двух процессоров. Естественно за- дать вопрос, будет ли он хорош или плох для большего Рис. 2.7. числа процессоров. Как показано на рис. 2.7, в случае трех процессоров расписание, составленное путем расстановки меток, имеет длину 5, а оптимальное расписание имеет дли- ну 4. В самом деле, если на рис. 2.7 удалить задания 1 и 2 и для такой системы расставить метки, которые будут «неправильными», то списочное расписание, полученное для этого случая, будет иметь длину 4, а оптимальное расписа- ние будет иметь длину 3. Для случая шести процессоров рассмотрим систему зада- ний, изображенную на рис. 2.8. Пусть функция L расстав- ляет метки в следующем порядке: Л18, Ви. . ., Bls, Clt. . ., С18, Dx. В списочном расписании, основанном на таких метках, потребуется один единичный интервал для каждого уровня, содержащего два задания, и два единичных интер- вала для каждого уровня, содержащего т+2 задания, где т=6. Следовательно, длина расписания ы равна 11. Опти- мальное расписание требует и0=8 единичных интервалов. На каждом процессоре наблюдается такая же картина, следовательно, <о/со0 равно (5&+1)/(3&+2) и стремится к 84
Рис. 2.8. Путем повторения кар- тины можно построить систему заданий, для которой отношение длины расписания, полученного с помощью функции расстанов- ки меток L, к длине оптималь- ного расписания достигает 2—2/б=5/3. Для произвольно- го т аналогичная конструкция приводит к системе заданий, для которой это отношение достига- ет l—ilm. Некоторые ребра для ясности даны штриховыми ли- ниями. Все ребра направлены вниз. 5/3. Для т процессоров подобная конструкция приводит к отношению [(т—1)/г+1]/(тй/2+2), которое при увеличении k стремится к 2—21т. Из рис. 2.8 становится очевидным, что процесс расста- новки меток при большом числе процессоров может давать совершенно неудовлетвори- тельные результаты. Почему же он является оптимальным для двух процессоров? На ин- туитивном уровне это можно объяснить следующим обра- зом. Рассмотрим последователь- ные множества, построенные для двухпроцессорного вари- анта. Для т процессоров мы можем определить аналоги последовательных множеств, отыскивая единичные интерва- лы, в течение которых т—1 процессоров либо свободны, либо выполняют «возглавляю- щие» задания. Для этих новых последовательных множеств мы можем доказать лемму, ана- логичную лемме 2.3, показав, что все задания из одного последовательного множества должны быть завершены пе- ред тем, как может начаться выполнение заданий следую- щего последовательного мно- жества. Поскольку последова- тельные множества должны выполняться друг за другом, эффективность процесса рас- становки меток зависит от то- го, как спланировать выполне- ние заданий каждого из последовательных множеств. Из определения последовательного множества следует, что для любого единичного интервала, в течение которого вы- полняются задания этого множества, по крайней мере два процессора заняты выполнением заданий этого множества. Если процессоров всего два, получаем оптимальное расписа- ние. 85
В [106] показано, что если со —длина расписания, осно- ванного на расстановке меток с использованием функции L, и соо — длина оптимального расписания, то co/(oo^2— —21т. Как показывает рис. 2.8, оценка 2—21т неулучшаема. 2.4. Реализация алгоритмов без прерываний Временная сложность алгоритмов 2.1 и 2.2 зависит от структуры данных, используемой для представления графов, и от механизма расстановки меток и построения списочного расписания. Матричное представление содержит О(п2) эле- ментов, следовательно, требуется О(п2) времени, чтобы вы- яснить, какие элементы матрицы являются ненулевыми. Поэтому представление леса в виде матрицы нецелесообраз- но, так как он содержит О (и) ребер. В этом параграфе мы вначале рассмотрим линейный ал- горитм расстановки меток в дереве. При распространении алгоритма на произвольные орграфы его временная слож- ность возрастает до О(п2). В худшем случае орграф может содержать О (и2) ребер, но часто число ребер оказывается относительно небольшим. Алгоритм расстановки меток, время работы которого линейно зависит от числа ребер, можно найти в [130]. Чуть позже мы приведем почти ли- нейный алгоритм построения расписания по заданным меткам. Для алгоритма 2.1 удобно представлять данные в виде списка непосредственных предшественников каждой вер- шины. В дополнение к нему нужно иметь очередь Q заданий, готовых к помечиванию. Алгоритм состоит из следующих шагов. 1. Начиная с пустой очереди Q, поместим в эту очередь все конечные вершины леса. В результате в очереди бу- дут все задания уровня 1. Ни^одно задание еще не по- мечено. 2. Предположим, что метки 1,2, . . ., /—1 уже расстав- лены. Возьмем из очереди задание Т и дадим ему метку /. Поместим всех непосредственных предшественников Т в конец очереди Q. Останов, если очередь пуста. Легко показать, что с помощью данной процедуры рас- становка меток в лесе происходит от уровня к уровню и в соответствии с алгоритмом 2.1. Кроме того, выполнение шагов займет линейное от числа вершин время. Для орграфов мы также можем использовать список непосредственных предшественников и очередь заданий, готовых к помечиванию. Различие заключается в том, что 86
помечивание какого-либо задания йе делает его непосред- ственных предшественников сразу готовивши к помечива- нию. В примере, показанном на рис. 2.9,-задание Л получает метку 1 в тот момент, когда F и G все еще имеют непоме- ченных преемников. Рассматривая реализацию алгоритма 2.2, отметим, что в этом случае можно обойтись без составления списка меток в убывающем порядке. Мы про- иллюстрируем этот момент, рас- сматривая процесс расстановки меток для системы заданий на рис. 2.9. Предположим, что мет- ки от 1 до 4 уже расставлены. Поскольку вершины D и F еще не помечены, о списках для вер- шин G и 77 на этом этапе можно Рис. 2.9. сказать лишь то, что /(G) окончится метками 4,1, а /(77) окончится меткой 4. Причина этого в том, что все метки, расставленные позже, будут больше 4. Вместо того, чтобы прослеживать изменение списков для G и 77, нам достаточ- но лишь заметить, что список Н теперь лексикографически меньше, чем список G. Когда ставится метка 5, список /7 становится больше, чем список G, поскольку 5 является непосредственным преемником 77, но не G. Если бы 5 было непосредственным преемником как G, так и 77, относи- тельное упорядочение их списков осталось бы тем же самым. Алгоритм 2.2 может быть реализован с использованием очереди заданий, готовых к помечиванию, и списка LEX, который упорядочивает остальные задания по отношению к меткам, которые уже были приписаны. Пусть LEX; пред- ставляет собой список после того, как метка / приписана. Когда метка /+1 приписывается некоторой вершине х, строится новый список LEX;+1, который формируется из LEX, путем просмотра LEX, от наименьшего элемента к наибольшему и отбора непосредственных предшественников х. У этих заданий максимальная метка в их частичной по- следовательности равна i+1, поэтому они окажутся послед- ними элементами списка LEX1+1. Мы не заботились спе- циально о тех предшественниках х, которых не было в LEX,-, и не говорили ничего о заданиях, готовых к поме- чиванию. Следующий пример иллюстрирует эту проце- ДУРУ- Пример 2. Рассмотрим систему заданий на рис. 2.9. Очередь заданий, готовых к помечиванию, и список LEX 87
й процессе расстановки меток имеют следующие состоя^ ния: Назначаемая метка 1 2 3 4 5 6 Очередь ВС с EFD FD DJ JG1H LEX GF GFD G HG G1H — Метки с 7 по 10 назначаются заданиям J, G, I и // по мере того, как они выбираются из очереди. Мы предоставляем читателю проделать процедуру моди- фикации LEX, воспользовавшись предыдущим обсужде- нием. Далее рассмотрим вопрос о временной сложности процесса расстановки меток в целом. Если ответ на вопрос, является ли у непосредственным предшественником х, может быть получен за постоянное*) время, то для каждой помечаемой вершины построение модифицированного мно- жества LEX для системы с п заданиями требует не более п шагов. При этом временная сложность составляет О(п2). Упомянутый вопрос может быть решен с помощью построен- ной заранее 0—1-матрицы, описываю- 2„+1. щей отношение предшествования. После того, как в системе заданий расставлены все метки, следующий 2П ' шаг заключается в построении по ним расписания. Как показано на рис. : 2.10, составление списочного расписа- 3\, ния в том виде, в котором мы его рассматривали ранее, в некоторых случаях может оказаться неэффектив- Рис. 2.10. ным. Рассмотрим список заданий, с помощью которого строится расписание для системы, показанной на рис. 2.10. Если список просматривается слева направо до встречи с заданием, готовым к выполнению, то такой последователь- *) Не зависящее от п. (Прим, перев.) 88
ный просмотр пройдет через п—1, п—2, . . 1 заданий соответственно. Построение расписания, таким образом, займет 0(п2) шагов. Мы покажем, что можно построить списочное расписа- ние за почти линейное время. Алгоритм основан на двух обстоятельствах: 1) каждое задание имеет единичное время выполнения, и 2) в списке, с которым мы работаем, предше- ственники появляются раньше, чем их преемники: в списке (Тп, Тп-1, . . ., 7\) все предшественники задания Т; встре- чаются раньше ТI. Неформально говоря, алгоритм строит расписание путем формирования последовательности расписаний для списков (Тп), (Тп, Tn_J и так далее до тех пор, пока не будет построено расписание для полного списка (Тп, T„_lt . . . Рассмотрим систему заданий на рис. 2.3. Расписания, соответствующие некоторым частичным спискам для данной системы заданий, показаны на рис. 2.11. Взяв списки (17) и (17, 16), мы получим расписания, представленные на рис. 2.11, а, б, где задания 16 и 17 назначены на процессо- ры 1 и 2 соответственно. Следующим рассматривается список (17, 16, 15). Задание 15 готово к выполнению уже на первом единичном интервале, но в это время отсутствует свободный процессор. Поэтому задание 15 назначается на выполнение в следующем временном интервале. Как пока- зывает следующая лемма, существует простой алгоритм построения расписания для нарастающего списка. Лемма 2.4. Пусть Si+1 — списочное расписание для (Тп, Тп j, . . ., 7\+1); тогда списочное расписание St для (тп, Tn_lt ..., т;) может быть получено из S;+l следую- щим образом. Преть t — первый единичный интервал вре-
мени, к началу которого выполнены все предшественники Tt. Назначение Tt на процессор осуществляется в течение пер- вого единичного интервала и, и t, на котором процессор оказывается свободным. Доказательство. Для всех единичных интер- валов, предшествующих t, задание Tit по утверждению леммы, не готово к выполнению. Следовательно, даже если до него и доходит просмотр списка, оно не может быть назначено на выполнение. В процессе построения расписа- ния S; Tt может быть достигнуто в следующие после t интервалы, если имеется свободный процессор и нет других заданий, подлежащих назначению. Ясно, что такая ситуация соответствует первому после t свободному единичному ин- тервалу в расписании Sz+1. Следовательно, лемма верна. Лемма 2.4 дает нам надежду использовать повторяю- щиеся просмотры списка таким образом, чтобы при просмот- рах определялись единичные временные интервалы, в тече- ние которых процессор простаивает. Мы покажем, что с помощью эффективного алгоритма объединения непересе- кающихся множеств можно исключить повторные просмот- ры интервалов, в течение которых все процессоры заняты. Предположим, что на интервале i все процессоры заня- ты и остаются занятыми до интервала /. Тогда для всех t, iпервым интервалом, на котором процессор свободен, является /. Соберем все такие t в набор с именем /. Вообще, мы выбираем такие имена наборов, что если t входит в набор и, то и и есть первый временной интервал, совпа- дающий с t или стоящий после него, на котором процессор свободен. Для того чтобы построить расписание, как это намечено в лемме 2.4, мы должны иметь возможность вы- являть набор, в который входит свободный интервал, и определять первый интервал, на котором задание становится готовым к выполнению. Алгоритм 2.3. Пусть D — орграф, в котором метки расставлены с помощью алгоритма 2.2, или дерево, в кото- ром метки расставлены с помощью алгоритма 2.1. Настоя- щий алгоритм строит списочное расписание для системы заданий, представленной графом D, с помощью списка за- даний, упорядоченного по убыванию меток. В качестве структуры данных мы будем использовать множества, определенные для каждого единичного интер- вала. Вначале SET(t)={t} для каждого единичного интер- вала. 1. Все начальные задания из D объявляются готовыми в единичном интервале 1. 90
2. Для всех заданий х из D выполняется шаг 3 в поряд- ке убывания меток. 3. Рассмотрим задание .V. Пусть х готово к выполнению в единичном интервале t. Если t находится в SET (и), назначаем х на процессор в единичном интервале и. Если на интервале и нет свободного процессора, рассмотрим интер- вал u+L Пусть «+1 входит в SET (у). Объединим SET (и) и SET (у) и назовем новый набор SET (у). Рассмотрим все у, являющиеся непосредственными преемниками х. Если все предшественники у уже рас- смотрены, говорят, что у становится готовым в интервале и \ I. Для того чтобы доказать корректность алгоритма 2.3, мы вначале должны показать, что корректно производятся действия с наборами. Лемма 2.5. Пусть на некотором этапе интервал t входит в набор SET(u). Тогда и является первым единичным интервалом, превосходящим t, на котором процессор оказы- вается свободным. Доказательство. Вначале интервал t входит в SET(t) и все процессоры свободны. Предположим, что на некотором интервале и все процессоры загружены. Тогда и и «+1 имеют в качестве первого свободного единичного интервала один и тот же интервал. Если и\-1 входит в SET (у), то алгоритм объединяет SET (и) и SET (у) и назы- вает новый набор SET (у). Читателю предлагается построить более строгое доказательство, основывающееся на количест- ве выполнений шага 3 алгоритма. Теорема 2.4. Алгоритм 2.3 строит списочное рас- писание с помощью списка заданий, упорядоченного по убы- ванию меток. Д о,к азательство. При просмотре списка зада- ния встречаются в порядке убывания меток; поэтому, когда мы рассматриваем задание х, все предшественники х уже были назначены на выполнение. Таким образом, единичный интервал, на котором х становится готовым, известен. Из леммы 2.5 следует, что алгоритм правильно определяет следующий свободный единичный интервал. Поскольку расписание наращивается в соответствии с леммой 2.4, тео- рема должна быть верна. Мы не вдаемся в подробности того, как осуществляются действия с наборами, отсылая читателя к [142, 75]. Заметим, что шаг 3 алгоритма 2.3 применяется к каждому ребру в системе заданий ровно один раз. Число операций с набо- рами пропорционально числу заданий п. В [142] показано, 91
Что п операций с наборами могут быть выполнены за время, почти линейно зависящее от п. Более точно, п операций могут быть выполнены за время О (па (п)), где а (п) — функ- ция, обратная функции Аккермана. Следующая таблица дает представление о том, как мед- ленно растет а (п): п а (л) п а (л) 255 1 65536 3 256 2 2вййзв_] 3 65535 2 £65536 4 Пусть A(i, /) — целочисленная функция, определяемая следующим образом: А(0, /) = 2/, ' A (i, 0) = 0, A(i, 1) = 2, A(i, j) = A(i— 1, A(i, j—1)) при i^l, /^2. Тогда a (/г) = min {i | A (i, 3) > [log2 n]}. 2.5. Прерывания при независимых заданиях В предыдущих параграфах предполагалось, что выпол- нение задания, раз начавшись, происходит до его заверше- ния. В § 2.1 мы отметили, что на существование полиноми- ального алгоритма составления расписаний без прерываний можно надеяться только в том случае, когда все задания имеют одинаковые времена выполнения. В двух частных случаях — когда система заданий представляет собой лес и когда имеются только два процессора — мы получили поли- номиальные алгоритмы нахождения расписаний минималь- ной длины. Обратимся теперь к расписаниям с прерываниями. Поскольку в этом случае не требуется, чтобы задание вы- полнялось до конца, времена выполнения могут считаться произвольными. Оказывается, что известные полиномиа- льные алгоритмы с прерываниями очень тесно связаны с алгоритмами без прерываний, рассмотренными в §§ 2.2, 2.3. Кроме того, мы должны рассмотреть случай, когда задания независимы, поскольку теперь времена выполнения считаются произвольными. Для независимых заданий су- ществует простой алгоритм определения расписания мини- 92
мальвой длины с прерываниями. Пусть независимые зада- ния 7\, Т2,. . Тп с временами выполнения т1( т2>. . тп должны быть выполнены на пг процессорах. Расписание наименьшей длины соответствует ситуации, когда отсутст- вуют простои процессоров. Длина такого расписания есть п а=Х/т, где Х= 2 т;. Мы увидим позднее, что расписание i = 1 такой длины действительно может быть составлено в том случае, когда время выполнения каждого задания не превы- шает Х/т. Если одно из заданий оказывается более длинным, чем Х/т, то со равна длине наибольшего задания. Рис. 2.12. Работа алгоритма заключается, в общих чертах, в сле- дующем. Вначале вычисляем со так, как в предыдущем абзаце. Для системы заданий, изображенной на рис. 2.12, со=7. Назначаем задания на первый процессор до тех пор, пока одно из них не превысит срок со, означающий конец расписания. Назначаем остаток на следующий процессор, начиная с момента времени 0. На рис. 2.12 показано, что задание 4 не укладывается в интервал (6,7) и его оставшая- ся часть переносится на процессор Р2- Заметим, что интер- валы выполнения одного задания на двух процессорах не перекрываются, так как, согласно нашему выбору, ве- личина со, по крайней мере, не меньше, чем длина самого длинного задания. Алгоритм 2.4. Пусть (<^Г, <) — система, состоя- щая из независимых заданий Tlt Тг,. . ., Тп с временами выполнения тх, т21. . ., хп. Приведенный ниже алгоритм определяет расписание минимальной длины с прерывания- ми для системы заданий, выполняемой на m процессорах. Время работы алгоритма, очевидно, составляет О(«). п 1. Пусть X = 2 Tz> и пусть т есть длина самого длинно- i = i го задания в системе; длина будущего расписания со опре- деляется выражением со = max {X/m, т}. 93
2. Вначале задания не назначены ни на один из про- цессоров, Применим шаг 3 к заданиям Ти Т2.Тп. 3. Пусть задания 7\, Т2,. . Tt_x уже назначены на процессоры Р2). . ,, Р._' на интервале (0, ®) и на про- цессор Pj — на интервале (0, f) для некоторого Ка. Рас- смотрим задание 1\. Если /+т;^ло, назначим Tt на Pj на интервале (Е /+тг). В противном случае назначим Т( на Pj на интервале (Е <о) и на Р +1 на интервале (0, тг— На рис. 2.1, б приведен пример расписания, составлен- ного в соответствии с алгоритмом 2.4. Другой пример при- веден на рис. 2.12. Теперь мы покажем, что алгоритм 2.4 действительно определяет оптимальное расписание. Теорема 2.5. Алгоритм 2.4 строит расписание ми- нимальной длины с прерываниями для системы независимых заданий, выполняемых на т процессорах. Доказательство. Ясно, что в лучшем из всех мыслимых расписаний все задания выполняются за время ы = тах{Х/т, длина самого длинного задания}, где X есть сумма времен выполнения всех заданий. Из описания шага 3 алгоритма следует, что в каждый момент времени на один и тот же процессор назначается не более одного задания. Поскольку <о превышает длину самого длинного задания в системе, то в каждый момент времени одно и то же задание назначается не более чем на один процессор. Ни одно задание не назначается на время более позднее, чем со. Более того, поскольку шт заведомо не меньше X, имеется возможность разместить все задания внутри интер- вала (0, со). Следовательно, расписание, определяемое алгоритмом 2.4, является оптимальным. С каждым прерыванием связаны затраты, пусть даже и небольшие, поэтому нас интересует наибольшее количество прерываний, которое может встретиться в расписании мини- мальной длины. В гл. 1 было показано, что определение расписания минимальной длины с наименьшим количеством прерываний является достаточно сложной задачей, выходя- щей за рамки нашего обсуждения. Здесь мы ограничимся определением верхней оценки для количества прерываний. По сравнению с оценкой алгоритм 2.4 дает хорошие резуль- таты. Говорят, что задание Т прервано в момент t, если в мо- мент t выполнение Т на некотором процессоре приостанов- лено, но при этом еще не завершено. Говорят, что задание является активным в момент Е если в этот момент какой- либо процессор выполняет Т. Если задание начинает выпол- 94
няться на процессоре Р в момент t и выполняется непрерыв- но на Р до момента t', где f максимально, интервал (t, f) называется активным периодом для задания на процес- соре Р. Теорема 2.6. Пусть S — расписание, построенное с помощью алгоритма 2.4 для системы из независимых заданий, выполняемых на т идентичных процессорах. Тогда S имеет не более т—1 прерываний. Более того, оценка т—1 для числа прерываний неулучшаема в том смысле, что суще- ствует такая система заданий, для которой всякое распи- сание минимальной длины содержит не менее т—1 преры- ваний. Доказательство. Из алгоритма 2.4 следует, что каждое задание имеет не более двух активных перио- дов. Когда задание имеет два активных периода, первый из них начинается в момент времени 0 на некотором про- цессоре, а второй период оканчивается в конце расписания на процессоре с меньшим номером. Таких заданий может быть не более т—1, и каждое из них прерывается один раз. Следовательно, расписание, определяемое алгоритмом, содержит не более т—1 прерываний. Теперь мы покажем, что оптимальное расписание для системы, состоящей из m-Н заданий длины т, будет иметь по меньшей мере т—1 прерываний. Предположим, что для такой системы может быть составлено оптимальное распи- сание, содержащее меньше чем т—1 прерываний. Тогда в расписании будет не меньше двух процессоров, на которых нет ни одного прерывания. Можно считать без потери общ- ности, что это Pi и Р2. Поскольку все задания имеют длину т, на интервале (0, т) эти процессоры выполняют некото- рые задания Л и Т2. Из алгоритма 2.4 следует, что опти- мальное расписание для данной системы заданий не имеет 95
простоев и его длина равна /п+1. Таким образом, Pi и должны выполнять задания до момента /п+1. Пусть для некоторых t и f, таких, что +Эп+1, в интервале (t, t') на Pi выполняется Ts, а на Р2 — (см. рис. 2.13). Заметим, что возобновление выполнения Т9 и Tt на Pi и Р2 не считается прерыванием. В течение интервала (t, t') на оставшихся пг—2 процессорах могут выполняться только задания 7\, Тв,. . ., Тт+1. Следовательно, мы имеем только /п—3 задания, которые должны быть назначены на m—2 процессора в интервале (t, t'), т. е. в расписании должны быть простои. Следовательно, такое расписание неопти- мально, что и доказывает теорему. 2.6. Обобщения алгоритмов без прерываний Рассмотрим систему заданий <), приведенную на рис. 2.14,а. Оптимальное расписание без прерываний для этой системы имеет длину 9 (см. рис. 2.14,в). Множество Рис. 2.14. заданий {Щ, U......... Uk\ назовем цепочкой, если L/jK . .<Uk. Посмотрим, что получится, если расще- пить каждое задание из (<эГ, <) на цепочки заданий еди- 96
ничной длины (см. рис. 2.14, б). Оптимальное расписание без прерываний для новой системы заданий имеет длину 8 (см. рис. 2.14,а). Таким образом, расщепление каждого задания на цепочки заданий меньшего размера приводит, по крайней мере в данном примере, к лучшему прибли- жению без прерываний оптимального расписания с пре- рываниями. Алгоритмы, строящие расписания без прерываний, рас- смотренные в предыдущих параграфах данной главы, применимы к системам заданий с одинаковыми временами выполнения. Мы сможем использовать эти алгоритмы для получения приближенных расписаний, если удастся пре- вратить задания произвольной длины в цепочки, состоящие - из заданий одинаковой длины. Поэтому сделаем следующее предположение: пусть (^Г, <) есть система заданий с вре- менами выполнения Tj, т2,. . ., тп. Если существует дей- ствительное положительное число w, такое, что времена выполнения всех заданий являются целыми кратными ш, то задания из называют соизмеримыми. Мы предпола- гаем, что все рассматриваемые системы состоят из соизме- римых заданий. Это предположение не слишком ограничи- тельно, так как любые действительные числа могут быть с любой степенью точности приближены рациональными числами. Кроме того, числа, которые вводятся в вычисли- тельную машину, ввиду ограниченной точности их пред- ставления являются соизмеримыми. Пусть G—ориентированный ациклический граф, пред- ставляющий систему заданий , <). Вершина х,- в G представляет задание Т; длины т,- для всех i, l^i^n. Учитывая тесную взаимосвязь между системой заданий и графом, мы используем термины «вершина» и «задание» как синонимы. Более того, мы иногда говорим о графе G так, как будто это есть система заданий, для которой нужно составить расписание. Определим Gw как граф, получающийся из G заменой вершины Т{ цепочкой Т!г, Ti2, ..., Т!п., где n^Xi/w. Предшественники Т{ стано- вятся предшественниками Т(1, а преемник Т; становится преемником Tin. (см. рис. 2.14). После этого каждая вер- шина в Gw представляет задание длины w, что позво- ляет [применить к Gw алгоритмы составления расписаний без прерываний, рассмотренные ранее в этой главе. Вер- шины в Gw могут быть 'еще раз расщеплены и представ- лены в виде цепочек заданий одинаковой ’длины. Опреде- лим Gw/k как граф, получающийся из Gw заменой каждой 4 Под ред. Э. Коффмана 97
вершины £-звенной цепочкой заданий одинаковой длины. При увеличении k можно ожидать, что оптимальное рас- писание без прерываний для Gw/k становится все ближе оптимальному расписанию с прерываниями для G. Пусть m(G, т) и и' (G, т)—длины оптимального рас- писания без прерываний и оптимального расписания с пре- рываниями для системы, представленной графом G и вы- полняемой на т одинаковых процессорах. Теорема 2.7. Пусть G—граф, представляющий си- стему заданий (£Г, <), состоящую из заданий 7\, Т2, . . .... Т„ с временами выполнения rlt т2, . .., т„, w—поло- жительное действительное число, которому пропорцио- нальны все вре мена выполнения. Тогда (G, m)^M(Gw/k, т)^ <о>' (G, m)-f-C/k, k = 1,2, . .., где С—константа, зави- сящая только от G. Доказательство. Пусть S — оптимальное рас- писание с прерываниями для G. Поскольку G содержит п заданий, в расписании будет не более п моментов заверше- ния заданий. Пусть этими моментами будут • • . . .^/п. Заметим, что Л не обязаны различаться, потому что в одно и то же время могут быть завершены несколько за- даний. Пусть — начало выполнения системы. Рассмотрим интервалы для всех i, Поскольку ни одно задание не завершается внутри интервала /г, все задания, выполняющиеся на нем, должны быть независимы. Поскольку 5 может быть любым опти- мальным расписанием с прерываниями, то в интервале Ц может произойти произвольное число прерываний. Пусть в интервале Л выполняются задания 7Д, Ti2,. . ., Т;п., и пусть есть время, в течение которого на этом интервале выполнялось задание Tif. Рассматривая Тц как задания длины 'Kj, мы можем перераспределить интервал Ц с помо- щью алгоритма 2.4. Обозначим через S' расписание, полу- ченное в результате перераспределения во всех интервалах. Перераспределение позволяет нам ограничить число актив- ных периодов каждого задания внутри интервала. Заметим, что длина расписания S' такая же, как длина S. Пусть S' (/, /') означает часть расписания S', заключенную между моментами t и f. Для любого i, S' G) соот- ветствует интервалу Л в расписании S. Поскольку нет никаких ограничений на моменты возник- новения прерываний, в общем случае длина активного пе- риода для данного задания не будет кратной w/k. Можно построить новое расписание S", в котором каждый актив- ный период является кратным w/k. Вдобавок S" может быть 98
построено из п сегментов S;, l^z^n, конкатенация кото- рых дает S". Для всех i, построим S'[ следующим образом: удлиним каждый активный период в S' Л) так, чтобы он стал кратным w/k, а в конец расписания доба- вим фиктивные задания так, чтобы все процессоры окончили работу в одно и то же время. Мы утверждаем, что S" не более чем на 2n-w/k длиннее расписания S' и, следовательно, S. Рассмотрим S’ ti), соответствующую интервалу в S. В худшем случае в этом интервале присутствуют все задания. Из алгоритма 2.4 следует, что у каждого задания в S' 1,) может быть не более двух активных периодов. Поэтому длина сегмента S” превосходит длину S' ?/) не более чем на 2nw/k. Поскольку в S" содержится не более п сегментов, то длина S" не более чем на 2nW/s превышает длину S и S'. Длина каждого активного периода в S" кратна w/k. Следовательно, мы можем использовать S” для построения расписания без прерываний для Gw/k. Поскольку при по- строении S” времена выполнения заданий были увеличены, для получения расписания без прерываний для Gw/k нам, возможно, придется допустить простои. Ясно, что опти- мальное расписание без прерываний для Gw,k не может быть длиннее S”. Из этого следует, что w (Gw/k, th) s^co' (G, tri)-l-2n2w/k. Нижняя оценка теоремы очевидна, так как любое расписание без прерываний является част- ным случаем расписания с прерываниями. Из теоремы 2.7 следует, что всяки?! раз, когда мы можем построить оптимальное расписание без прерываний для системы, состоящей из заданий с одинаковыми временами выполнения, мы можем построить расписание с прерыва- ниями для системы заданий с произвольными временами выполнения, которое будет сколь угодно близким к опти- мальному. Немногие случаи, для которых известны алго- ритмы построения расписаний без прерываний, рассмотре- ны в §§ 2.2, 2.3, а именно деревья при произвольном числе процессоров и произвольные частичные упорядочения при двух процессорах. Рассмотрим алгоритм расстановки меток, приведенный в § 2.3, который был использован для построения расписа- ния при произвольном частичном упорядочении и двух про- цессорах. В нем метки расставлялись от уровня к уровню. Как следует из § 2.2, уровневая стратегия строит расписа- ния для деревьев от уровня к уровню. По мере того, как задания расщепляются на цепочки более мелких заданий, количество уровней увеличивается и в пределе становится 4* 99
бесконечным. При этом даже системы заданий с произволь- ным отношением предшествования могут выполняться^ров- невыми алгоритмами. Переработаем поуровневую процедуру, выполнения Gw/k в расписание для G. Уровни определяются по отно- шению к конечной вершине, поэтому нам необходима мера расстояния от задания до конечной вершины, которая была бы выражена в терминах времен выполнения заданий, следующих за рассматриваемым. Задания одного и того же уровня обслуживаются одинаково. Для того чтобы наглядно показать, как это получается, введем понятие разделение процессора. Если процессоров оказывается больше, чем заданий, то каждое задание получает процессор в собствен- ное пользование. Иначе задания должны делить доступные процессоры между собой. Таким образом, каждое задание получает а «процессоров», где 0<а^1. Вместо того, чтобы говорить, что задание Т имеет время выполнения т, сопо- ставим Т требование на обслуживание, составляющее т единиц процессорного времени. Пример системы заданий, расписание для которой составлено с использованием разде- ления процессоров, приведен на рис. 2.15. В случае отсут- ствия прерываний задание Т, назначенное на а «процессо- ров», будет выполняться в течение т/а единиц времени, при- чем т/а т, так как 0<а^1. Таким образом, а может рас- сматриваться как скорость, с которой выполняется Т. Пусть (S', <)—система, состоящая из заданий 7\, Т2, ..., Тп с требованиями на обслуживание tv т2, ..., Т(1, 7\...... Tin.—цепь в <F. Говорят, что цепь начи- нается с задания Т{р, длина цепи есть У, т... Уровень /= 1 7 задания Т в ST равен длине максимальной цепи, начинаю- щейся с задания Т. Заметим, что данное определение со- гласуется с определением уровней в UET-системах. Алгоритм 2.5. Пусть (S', <)—система, состоящая из соизмеримых заданий. Данный алгоритм вначале опре- деляет для этой системы расписание с разделением про- цессоров, а затем преобразует его в расписание с преры- ваниями. 1. Пусть имеется а доступных процессоров, и пусть на верхнем уровне находится b заданий. Если Ь>а, выделим а/b процессоров каждому из b заданий. В противном случае выделим по одному процессору на каждое задание. Если при этом остаются свободные процессоры, рассмотрим задания со следующего по высоте уровня и так далее. 100
2. Перераспределяем все процессоры среди невыпол- ненных заданий, если происходит одно из следующих событий: Событие 1: завершено выполнение задания. Рис. 2.15. Событие 2: достигнута точка, в которой продолжение ра- боты с прежним распределением процессоров приводит к тому, что задания более низкого уровня будут обслужи- ваться с большей скоростью, чем задания более высокого уровня. 3. Пусть — моменты завершения зада- ний в расписании, построенном к концу выполнения шага 2. Заметим, что в моменты tlt tt,. . ., tn происходит событие 1. Пусть t0 — момент начала работы. Ясно, что все задания, выполняемые в интервале /;), для всех i, 101
должны быть независимыми. Для построения расписания с прерываниями для нашей системы применим алгоритм 2.4 к порциям заданий, выполняемым внутри каждого такого интервала. Пример 3. Рассмотрим систему заданий на рис. 2.15. Для нахождения расписания минимальной длины с преры- ваниями для данной системы заданий воспользуемся алго- ритмом 2.5. Для начала заметим, что из готовых заданий 7\ имеет уровень 7, Т2, Tt и Тв имеют уровень би Т\ имеет уровень 5. Согласно шагу 1, заданию Ts предоставляется целиком процессор. Задания Т2, 7\и 7\ находятся на следующем по высоте уровне, и каждое из них получает по 2/3 процессора. По истечении 3/2 единиц времени задания Т2, 7\ и Тв отра- ботают по единице процессорного времени каждое и будут настигнуты на уровне 5 заданием 7\; возникнет ситуация 2. Теперь рассмотрим уровни невыполненной части систе- мы заданий. Задание Ts при переназначении получает выс- к 1 шии уровень о-g , и, поскольку оно по-прежнему единствен- но на этом уровне, ему предоставляется процессор целиком. Задания Т\, Т2, Ti и 7\, находящиеся на уровне 5, долж- ны разделить между собой оставшиеся два процессора. В мо- мент времени 2у задание Ts находится на уровне 4у и по-прежнему не выполнено. Задания Т\, Т2, Tt и Тв вы- полнялись со скоростью 1/2 процессора и также достигли уровня 4у , так что опять произойдет событие 2. Теперь задания I\, Т2, Т6 и Ts находятся на одном и том же уровне и распределяют между собой поровну три процессо- •з 1 ра до тех пор, пока в момент Зу не завершится выполнение 7\ и Т 2, произойдет событие 1. Когда расписание с разделением процессоров найдено, остается построить расписание с прерываниями. Отметим, что первыми завершены в момент времени Зу задания Tt и Т2. Перераспределяя интервалы между временами оконча- ния заданий, мы получим расписание с прерываниями, показанное на рис. 2.15. Пусть G—граф системы заданий (Jr, <) и времена вы- полнения всех заданий из кратны w. Рассмотрим уров- невое расписание для GWjk- Мы ожидаем, что по мере уве- личения k уровневое расписание все больше и больше приближается к расписанию с разделением процессоров, 102
порождаемому алгоритмом 2.5. Таким образом, оба рас- писания в пределе имеют одну и ту же . длину. Для де- ревьев уровневое расписание является оптимальным. По- этому, как следует из теоремы 2.7, в пределе расписание с разделением процессоров имеет такую же длину, как оптимальное расписание с прерываниями. В действитель- ности справедливо более сильное утверждение. Теорема 2.8. Алгоритм 2.5 строит оптимальное расписание для системы заданий <), если граф (^г, <) представляет собой лес или если расписание строится для двух процессоров. Доказательство. Мы наметим общий путь доказательства, детали которого можно найти в [ПО, 111]. 1. В расписании с разделением процессоров в каждом интервале между событиями каждое задание выполняется в течение рационального отрезка времени. 2. В процессе доказательства утверждения 1 мы можем определить, с какой точностью нужно расщеплять задания. Поскольку каждое зада- , > . ние выполняется в тече- ние рационального вре- мени, мы можем найти такое k, чтобы уровневое расписание для Gw/k «ук- ладывалось» в интерва- лы между событиями. 3. Из § 2.2 следует, что уровневое расписа- ние является оптималь- ным для деревьев. Мож- но показать, что для орграфов и четных k уровневое расписание является оптимальным для Gw/k при двух про- цессорах. 4. Заметим теперь, что дальнейшее дробле- ние Gw/k не может привести к более короткому расписанию. В частности, для всех j (t>(Gw/k, m) = a(Gw/ki, т). Из теоремы 2.7 следует, что a(Gm/kj, т) достигает длины оптимального расписания с прерываниями для G. Из этого вытекает, что величина (e(Gwik, т) должна быть равна a'(G, т). Поскольку расписание с разделением процессоров имеет такую же длину, как и <e(Gw/k, т), теорема 2.8 верна. ^777-1 Пример уровневого распи- Рис. 2.16. сания с прерываниями, имеющего дли- ну 2(3—2//п)+1, в то время как опти- мальное расписание без прерываний имеет длину 2(2)+2. При добавлении к системе заданий новых уровней от- ношение длин уровневого и опти- мального расписаний приближается к 3/2—\/т. 103
Как и в случае, когда прерывания запрещены, уровне- вый алгоритм не приводит к оптимальному расписанию для орграфов, если число процессоров больше двух. Пример изображен на рис. 2.16. В недавней работе [106] показано, что верхняя оценка отношения длины уровневого расписа- ния к длине оптимального расписания с прерываниями рав- на 2—2//п. 2.7. Преимущества прерываний На рис. 2.1 показано, что для данной системы заданий расписание с прерываниями может оказаться короче, чем расписание минимальной длины без прерываний. В этом параграфе мы сравним длины расписаний с прерываниями и без прерываний. Кроме расписаний общего вида, имеется специальный класс расписаний, представляющий интерес. Это расписа- ния, называемые списочными; они строятся путем назначе- ния приоритетов заданиям с последующим назначением заданий на процессоры в порядке этих приоритетов. Су- щественная разница между расписанием без прерываний общего вида и списочным расписанием заключается в том, что в последнем случае процессор не может простаивать при наличии заданий, готовых к выполнению. Как мы увидим в данном параграфе это ограничение приводит к тому, что оптимальное списочное расписание может быть длиннее, чем общее расписание без прерываний. Свойства списочных расписаний более подробно исследованы в гл. 5. Пусть ®£(б, т)— длина кратчайшего списочного рас- писания *) для системы заданий, определяемой графом G, на т идентичных процессорах. Напомним, что в § 2.6 были введены величины co(G, т) и со' (G, т), представляющие собой длины кратчайших расписаний без прерываний и с прерываниями соответственно. Когда ясно, о каких G и т идет речь, мы будем опускать их и писать просто соЛ, со, со'. Можно утверждать, что со<^соЛ, поскольку в списочных расписаниях задания выполняются без прерываний. Более того, класс расписаний без прерываний содержится в классе расписаний с прерываниями, и поэтому со'^со. Можно доказать, что ®£/®'s^2—Мт. Из co^coL теперь немедленно следует, что ю/ю'^2—Мт. Пример, изображенный на рис. 2.17, показывает, что предельное значение 2—Мт может быть достигнуто величиной а>£/со' с любой степенью *) Кратчайшего по всем возможным спискам. 104
точности. Для со/со' столь точная оценка отсутствует. В при- мере, который мы можем построить, это отношение равно 2/п/(т+1), что немного меньше, чем 2—Мт. Для того чтобы доказать приведенные выше оценки, нам необходима лемма, которая доказывается в гл. 5. Лемма 2.6.*Пусть S — списочное расписание на т про- цессорах для системы заданий (S', <), / — суммарное время простоя процессоров в расписании S. Тогда в (S~, <) су- ществует цепочка заданий, длина которой не меньше 1/(т—1). Доказательство. См. теорему 5.1. Лемма 2.7. Пусть u>L и со' — длины] кратчайшего списочного расписания и кратчайшего расписания с преры- ваниями для системы (S', <) на т идентичных процессо- рах. Тогда (Oj/co'^2—Мт. Доказательство. Пусть 5 — кратчайшее спи- сочное расписание (длины со£) на т процессорах для систе- мы заданий (S', <). Если / есть суммарное время простоя в X, то, как следует из леммы 2.6, в (S', <) существует цепочка заданий длины, не меньшей //(т— 1). Таким обра- зом, <о'^7/(т—1), что дает /<ло'(т—1). 105
Пусть X — сумма времен выполнения всех заданий в Ни одно расписание, независимо от наличия прерываний, не может обеспечить ничего лучшего, чем полностью устра- нить простои процессоров. Поэтому откуда =s7mco'. Из определения / и X имеем = (I-^-Xj/m. Подставляя оценки для I и X через со', получаем <оЛ^((т—l)co'-|-mco')/m, откуда немедленно следует, что соь/со'^2—1/т. Как уже было отмечено, система заданий, изображенная на рис. 2.17, показывает, что величина 2—Мт является наилучшей оценкой для ©L/o>'. На этом рисунке также дано сравнение списочного расписания и расписания общего вида без прерываний. Рассмотрим систему заданий на рис. 2.17. Предположим, что задание Т выполняется на процес- соре 1; при этом процессоры от 2 до т простаивают на ин- тервале (0, е). В момент 8 процессоры могут начать выпол- нение W, V2 , • • Vm- В момент 14-е процессоры могут на- чать выполнение W и Uu U2, . . ., Мт_1, окончив выполне- ние всей системы заданий в момент /и+е. Таким образом, как видно из этого примера, азь/ю стремится к 2—Мт. Объединим все полученные оценки в следующей тео- реме. Теорема 2.9. Пусть соь, со и а>' — длины кратчай- ших расписаний для системы (JT, <) на т идентичных процессорах — соответственно списочного, без прерываний и с прерываниями. Тогда: 1) со'г^иОь; 2) о)ь/(о'^2—Мт\ 3) соь/с>С2—Мт\ 4) существуют системы заданий, для которых <oL/co' и (oL/co стремятся к 2—1/т; 5) существует система заданий, для которой <о/со' = =2т/(/и+1). Доказательство. Единственным утверждением, которое не вытекает из предыдущего обсуждения, является 5). Рассмотрим систему, состоящую из /п+1 одинаковых заданий длины т каждое. Кратчайшее расписание без пре- рываний имеет длину 2m; кратчайшее расписание с пре- рываниями имеет длину m-j-M 106
Рассмотрим систему заданий на рис. 2.17. Пусть (S, <R) получается из нее изменением ориентации всех дуг, задаю- щих ограничения предшествования. Независимо от исполь- зуемого списка, списочное расписание для (<^Г, <й) имеет длину т-фе. Таким образом, изменение ориентации дуг приводит к более короткому списочному расписанию. Такая аномалия не возникает в расписании без прерываний об- щего вида. Пусть S—расписание для системы заданий (S, <). Обозначим через (S, <₽) систему заданий, образованную из (S, К) изменением ориентации всех ребер в графе пред- шествования (S, <) (т. е. Т <*Т' тогда и только тогда, когда Т' < Т). Пусть 3^ есть расписание, обратное к 3 (зеркальное изображение: момент завершения 3 является начальным моментом в Sft, и последовательность выполне- ний заданий в 3^ определяется путем чтения 3 в обратном направлении по оси времени). Заметим, что в 3Л процес- сор может оставаться свободным, даже если в (S', <й) имеются готовые к выполнению задания. Теорема 2.10. Пусть S есть расписание с прерыва- ниями или расписание без прерываний общего вида для системы (S, <). S является кратчайшим расписанием для (S, <) тогда и только тогда, когда SR—кратчайшее расписание для (S, <R). (Эта теорема неприменима к спи- сочным расписаниям.) Доказательство. В силу симметрии нам нужно доказать только необходимость. Вначале заметим, что 3^ действительно расписание для (S, <,R), так как в нем соблюдаются ограничения предшествования и каждое зада- ние выполняется в течение положенного времени. Пред- положим, что 3—кратчайшее расписание для (S, <), но 3/? не является таковым для (S, <R). Тогда существует расписание S', более короткое, чем S*, которое оказы- вается кратчайшим для (S, <R). Поскольку < = (</?)/?, (S')R должно быть расписанием для (S, <). Но (S")R. короче, чем 3, что противоречит минимальности S. Тео- рема доказана. Интересный случай, не охватываемый теоремой 2.10, встречается, когда (S, <) представляет собой UET-лес. Несмотря на то, что при построении оптимального расписа- ния с помощью алгоритма 2.1 используется список, теорема 2.1 утверждает, чтоЗ является кратчайшим из всех расписа- ний без прерываний. Таким образом, аргументы, аналогич- ные использованным при доказательстве теоремы 2.10, применимы к UET-лесам и антилесам. 107
2.8. Процессоры с разным быстродействием До сих пор в данной главе мы рассматривали процессо- ры, имеющие одинаковые вычислительные возможности. В общем случае процессоры могут выполнять задания с раз- ной скоростью. Даже если аппаратная часть процессоров одинакова, процессор может часть своего времени затра- чивать, например, на обслуживание удаленного термина- ла. Если доля времени, затрачиваемого процессором на вы- полнение других функций, относительно постоянна, то та- кой процессор может рассматриваться как имеющий мень- шее быстродействие. И наконец, всегда имеется возмож- ность, что в систему будет включен быстрый процессор. Итак, мы имеем набор из т процессоров Р—{Р1У Р2, . . . .. ., Рт}, быстродействия которых суть b^b^...^bm. Для обозначения этого набора используем запись Р= (&ь b2,. . . .... Ьт). В этом параграфе мы рассмотрим задачу опреде- ления кратчайшего расписания с прерываниями для мно- жества независимых заданий. Наличие признаков «труд- ной» комбинаторной задачи заставляет отбросить попытку поиска для этой задачи расписания минимальной длины без прерываний. Рассмотрим набор независимых заданий, имеющих потребности в ресурсе*) Так же как и для процессоров, запись = (тъ т2, . . ., тп) обозна- чает набор заданий и их потребности в ресурсе. Задание Т} выполняется на процессоре Р, со скоростью bj. Предположим, мы хотим исполнить =(8, 7) на Р= = (2, 1). Для выполнения задания 7\ на процессоре /^тре- буется 4 единицы времени. Если Д назначить на Рг, а Рис. 2.18. Т2 на Р2, как показано на рис. 2.18, а, то получим расписа- ние длиной 7. Более короткое расписание можно получить, если замедлить выполнение 7\ и ускорить выполнение Т2, как показано на рис. 2.18, б. Представляет интерес частный случай, когда P=(bi, b2, . . ., bm) и имеется m заданий с *) Под ресурсом здесь понимается процессорное время. (Прим, перев.) 108
одинаковыми требованиями т на ресурс. Чтобы все зада- ния были завершены в одно и то же время, необходимо, чтобы они, в некотором смысле, выполнялись с одинаковой средней скоростью. Здесь снова может быть использован подход, показанный на рис. 2.18, б. Мы начинаем обсуждать совместные возможности набора процессоров, поэтому введем В = ^/?(-для всех /, 7 r = i ! Аналогично, положим Ху = т; для всех /, Используя введенные обозначения, можно сказать, что алгоритм 2.4 из § 2.5, определявший расписания для неза- висимых заданий, выполняемых на идентичных процессо- рах, строил расписание длиной"со=тах {т,, Хп/Вт}. За- метим, что XJBm соответствует расписанию, в котором от- сутствуют простои, и является нижней "оценкой длины рас- писания. Однако, как показано на рис. 2.18, если процес- соры идентичны, при выборе аналога величины т, следует быть осторожным. Рассмотрим систему1^ =(тх, т2, . . ., тп), которую нуж- но исполнить на наборе процессоров"'/’= (blt b2, . . ., Ът). Каждое задание в каждый 'момент времени может выпол- няться не более чем на одном процессоре, поэтому длина рас- писания будет не меньше xjbt единиц времени. Задание Л на любом другом процессоре будет'выполняться’дольше. Если второй процессор имеет значительно"меньшее быстро- действие, чем первый, то отношение т2/&2"может"быть"'боль- ше, чем x-jjbi? Как и в примере гна грис. 2.18, мы можем усреднить выполнение двух заданий. Общий потребный ре- сурс есть Х2=Т1+т2. Суммарное быстродействие двух про- цессоров есть В2=Ь1~гЬ2. Таким’образом, длина усреднен- ного расписания должна гбыть’ не менее Х2/В2 единиц времени. В общем случае мы должны рассматривать щах Хув качестве нижней оценки длины’расписания, поскольку х3/Ь3 может быть больше, чем Х2/В2, и так далее. Алгоритм, который мы опишем, строит расписание, имеющее длину <o=max{ max XflBj, Хп/Вт}. Из^предыдущих рассуждений следует, что значение со является оптимальным. Алгоритм представляет собой не- значительную модификацию алгоритма 2.5 из § 2.6, который 109
строил расписание методом разделения процессоров для деревьев и т идентичных процессоров. Алгоритм 2.6. Рассмотрим систему независимых заданий S' = (тъ т2 , . . ., тп), которые нужно распределить между процессорами Р= (bi, b2, . . Ьт). Напомним, что Т1>т2> ... >тп и b1^b2'^...'^bm. Данный алгоритм опре- деляет кратчайшее расписание с прерываниями для выпол- нения системы заданий S' на процессорах Р. Алгоритм мо- жет быть также использован для построения расписаний выполнения произвольных систем заданий. 1. Уровнем задания в произвольный момент времени является размер требования на ресурс у невыполненной части задания. Пусть j — количество неназначенных про- цессоров, a k — число заданий, имеющих наиболее высокий уровень. Если k^j, назначаем k заданий таким образом, чтобы они выполнялись с одинаковой скоростью на k наи- более быстрых процессорах. В противном случае назначим k заданий на / процессоров. Если остаются свободные про- цессоры, рассматриваем задания более низкого уровня и так далее. 2. Перераспределяем все процессоры среди невыполнен- ных заданий при возникновении одного из следующих со- бытий: Событие 1: завершено выполнение задания. Событие 2: достигнута точка, в которой продолжение работы с прежним распределением процессоров приводит к тому, что задания более низкого уровня будут обслужи- ваться с большей скоростью, чем задания более высокого уровня. 3. Для того чтобы построить расписание с прерывания- ми из расписания с разделением процессоров, произведем переназначение заданий на интервалах, заключенных меж- ду каждой парой событий. Если k заданий разделяли меж- ду собой k процессоров, назначим задания таким образом, чтобы они выполнялись на k процессорах с той же средней скоростью (см. рис. 2.19). Пусть k заданий разделяли j процессоров, k>j; обозна- чим через т потребность каждого из k заданий в ресурсе на рассматриваемом интервале. Пусть b обозначает быстро- действие самого медленного из / процессоров. Если х/Ь меньше длины интервала, то задания можно назначать в со- ответствии с алгоритмом 2.4, не принимая в расчет разное быстродействие процессоров. В противном случае разделим интервал на k равных частей. Распределим k заданий та- ким образом, чтобы каждое из них встречалось ровно на / НО
интервалах каждый раз на разных процессорах. Необхо- димость распределения четырех заданий между тремя процессорами возникает на интервале (6, 10) на рис. 2.19. Этот рисунок дает пример расписания, построенного с помощью алгоритма 2.6. Рис. 2.19. Расписание для системы заданий Jr=(41, 25, 13, 11) и Р= =(6, 2, 1). Т е о р ем а 2.11. Алгоритм 2.6 строит расписания ми- нимальной длины с прерываниями для системы независимых заданий ST ==(т1, т2, . . ., тп), выполняемой набором процес- соров Р= (Ьи Ь2, . . Ьт). Доказательство. Если в расписании с разделе- нием процессоров, построенном с помощью алгоритма, нет простоев, оно является оптимальным и его длина есть ю= = Хп/Ьт. Предположим теперь, что Pt — самый быстрый из про- цессоров, имеющих простои. В этом случае последнее зада- ние, завершаемое на Pit имеет более низкий уровень, чем задания, которые уже завершены на Ри Р2, . . ., P,_i. Как следует из алгоритма, с течением времени уровень вы- полняемых заданий уменьшается. Следовательно, Plt Р2 , . . ., Pi-r выполняли Tt, Т2, . . ., Тс самого начала расписания. Поскольку процессоры Ри Р2, , P;~i не имеют простоев, задания 7\, Т2, . . ., Т;_} завершаются в одно и то же время. Отсюда следует, что длина расписания равна Xi-j/B,-!. Заметим, что если какое-либо из заданий Tlt Т2, . . ., будет назначено на более медленный, чем Pi-i, процессор, то длина расписания только увеличится. 111
Легко видеть, что расписание с разделением процессо- ров преобразуется в допустимое расписание с прерыва- ниями. Поэтому алгоритм действительно строит оптималь- ное расписание с прерываниями для S' на Р. Отметим, что алгоритм 2.6 может применяться также к деревьям и орграфам. Можно ожидать, что для двух про- цессоров он строит опти- мальное расписание, по- скольку простои могут воз- никать только на медлен- ном процессоре. В случае деревьев и трех или более процессоров алгоритм 2.6 не оптимален. Рассмотрим дерево, в котором задания расположены на трех уров- нях, как показано на рис. 2.20, а набор процессоров таков, что Ьг = 1 и Ь;=1 для всех г, 2^г^/и. Пусть имеется К tn заданий Vi, У2, . .., Vy~, непосред- ственно предшествующих конечному заданию. На рис. 2.20 т=9, а значит, Времена выполне- ния заданий выбраны так, чтобы расписания были та- кими, как на рис. 2.20. По мере увеличения т отношение длины уровневого расписания к длине оптимального рас- писания стремится к 2. 2.9. Конвейерная задача Во время пребывания в вычислительной системе про- грамма обрабатывается различными устройствами. Все программы проходят фазы ввода, исполнения и вывода; поэтому система заданий может быть представлена в виде цепочек, состоящих из т заданий, в которых t-e задание об- рабатывается на устройстве Pt. Определение расписания минимальной длины в данной ситуации составляет предмет так называемой конвейерной задачи. Мы дадим алгоритм отыскания расписания минимальной длины для т=2. Для больших значений т задача является MP-полной (см. гл. 1). 112
Для двухпроцессорной задачи рассмотрим систему зада- ний (£~, <), состоящую из п цепочек Съ С2 , . . Сп, каж- дая из которых состоит из двух заданий At и Д, А^В,. Задание At должно выполняться на процессоре Р, в течение а; единиц времени, а затем, после завершения At, на процессоре Р2 в течение |Зг единиц времени должно вы- полняться В[. Пример приведен на рис. 2.21. Рис. 2.21. Два конвейерных]расписания для цепочек С1г С2,. . ., С6. Оптимальный порядок — 362514. На этом рисунке задания Blt В2....Вп выполняются на Р2 в том же порядке, в котором Лх, Л2, . . ., Лп выпол- няются на P-l. Мы покажем, что и в общем случае можно ограничиться рассмотрением расписаний, в которых если Лг выполняется перед Л;, то Bt также предшествует Bj. Пусть S — расписание на двух процессорах для набора цепочек Сь С2, . . ., Сп. Скажем, что цепочка С, предшест- вует цепочке Q тогда и только тогда, когда Лг выполняет- ся раньше, чем Л7- и Bi — раньше, чем Bj. Рис. 2.22. Лемма 2.8. Пусть 8 — расписание на двух процессо- рах для набора цепочек Clt С2 , . . ., Сп; тогда можно по- строить расписание не длиннее, чем S, в котором для каждой пары цепочек Ct и Cj либо Ci предшествует Cj, либо Cj пред- шествует Ci. Доказательство. Предположим, что лемма не- верна. Тогда существуют две цепочки С; и Cj, подобные тем, что показаны на рис. 2.22, а, такие, что Л г выполняется перед Aj, но Bj выполняется перед Д. Пусть Bj и Bt явля- 113
ются последними такими заданиями на Р2. Очевидно, мы можем отложить выполнение А,- так, чтобы оно непосред- ственно следовало после при этом все задания, находя- щиеся между Лг и Aj (включая Л;-), будут выполнены на аг единиц времени раньше, как показано на рис. 2.22, б. Преобразование расписания, при котором задания на про- цессоре Рг будут выполнены раньше, не нарушает ограни- чений предшествования между заданиями в цепочке. Более того, А, все еще выполняется перед В,, и длина расписа- ния не увеличилась. Доказательство леммы получается теперь индукцией по числу перестановок, необходимых для получения нужного расписания. С помощью леммы 2.8 мы показали, что можно ограни- читься расписаниями, в которых задания Ль Л2, . . ., Ап на процессоре Pi выполняются в том же порядке, что и зада- ния Bi, В2 , . . ., Вп на процессоре Р2. Нам осталось лишь определить порядок, в соответствии с которым должны выполняться цепочки Съ С2, . . ., Сп. Для того чтобы наметить подход к решению задачи, рассмотрим две цепочки Сг и Cj. Если Ct выполняется перед Рис. 2.23. С}, как показано на рис. 2.23, то длина промежутка време- ни о)гу, в течение которого выполняется по крайней мере од- на из цепочек С; или Cj, есть w,7 = a,-|-max{a/, PJ+P,- Аналогично, для <а7-г, имеющей тот же смысл для распи- сания, в котором Cj выполняется перед С;, получаем + max {az,.p7' + Р(-. Следующая лемма показывает, что условием, при котором ыл короче, чем является min {a7, РД < min {а,, РД 114
Лемма 2.9. Пусть S — расписание на двух процессо- рах для набора цепочек С1у С2 , ., Сп. Предположим, что в S Ct выполняется непосредственно перед Cj. Если min {а7-, {аь р7}, то расписание, полученное путем перемены порядка, в котором выполняются Ct и Cj, не длиннее S. Доказательство. Вначале предположим, что С, и Cj — первые две цепочки, выполняемые в S. Процес- сор Pi освобождается по истечении а;+«7 единиц времени, независимо от порядка, в котором выполняются Сг и Cj. Таким образом, нужно рассматривать только время, когда освободится процессор Р2. Пусть a>ij и (вл — величины, определенные выше. Мы должны показать, что (oi7^o)7i. Из выражения min {а7-, рг}^ min {а;, Р7} получаем max {—а7,—Р/}^ max {—аг, —Р7}. Прибавляя к обеим частям аг+а7~ТРг+Р7, получаем аг+Р7+тах{Р(-, а7}^а7+ + Pi+max{p>, аг}. В левой и правой частях этого неравенства стоят выра- жения для coi7 и (Hji, откуда получаем сог7^(1)7г, что и требо- валось доказать. Если Ci и Cj не являются первыми цепочками в расписа- нии, то, как показано на рис. 2.23, может существовать временной интервал х такой, что выполнение Вг не может начаться раньше, чем через х единиц времени после начала /1;. Если интервал х невелик, то В7- завершается через ю;7 единиц времени после того, как начнется Дг. Если интер- вал х большой, то Bj завершится через х+рг+Р; единиц времени. Аналогично, если С7- выполняется перед Сг, то Bt за- канчивается через max {<o7i, х+Р;+Р7} единиц. Таким об- разом, даже в том случае, когда две цепочки не являются первыми в расписании, перестановка С7 и Сг местами не может удлинить расписание. Как и следовало ожидать, условие, полученное в лемме 2.9, является основой алгоритма определения расписаний минимальной длины. Теорема 2.12. Рассмотрим систему, состоящую из п цепочек С= (Аг, Вг), в двухпроцессорной конвейер- ной задаче. Пусть аг и рг — времена выполнения At и Bt на процессорах Р, и Р2 соответственно. Если min {аг, р7) < <min {а7-, рг}, то можно построить расписание мини- мальной длины, в котором С{ выполняется перед Cj. Доказательство. Пусть S — кратчайшее рас- писание для данной системы. Из леммы 2.8 следует, что 115
можно без ограничения общности считать, что для всех цепочек Сг и Cj, если Лг выполняется перед Aj, то Bt вы- полняется перед Bj. Если в S найдутся две соседние цепочки, для которых условия теоремы не выполняются, то мы можем на основа- нии леммы 2.9 переставить их местами. Нам осталось прос- то показать, что перестановки приводят к искомому рас- писанию. С помощью условия min {аг, 0>}<min {а,, мы можем частично упорядочить цепочки. Зафиксировав правило раз- решения конфликтов, можно получить полностью упорядо- ченную последовательность. Можно показать, что переста- новка цепочек в соответствии с полным упорядочением прев- ращает S в расписание, удовлетворяющее условиям тес ремы. Двухпроцессорная конвейерная задача, которую мы рассмотрели, не охватывает все три фазы исполнения про- грамм, а именно: ввод, вычисления, вывод. Хотя трехпро- цессорная конвейерная задача является МД полной, сущест- вует частный случай, относительно которого можно сделать важные утверждения. Пусть теперь цепочка С; состоит из трех задач, имеющих времена выполнения аг, и уг. Рассмотрим, например, систему ввода-вывода (//0), в кото- рой считается, что в процессе вывода имеется некоторое вре- мя простоя. В частности, если min {аг, аД max’{0z, 07-} или если min {у;, у7-}^тах {рг, РД, то мы можем’использовать ус- ловие min{az + 0z, Py+уД < mmlay + Py, ₽z + yz} для того, чтобы поместить Ci перед Cj. Экспериментальные исследования [281 показали, что это условие дает хорошие эвристики и для других систем. Применение теоремы 2.12 к простой задаче конвейер- ного типа рассмотрено в п. 1.4.1. Библиографическая справка Уровневая стратегия, рассмотренная в § 2.2, разработана Т. Ху [65]. Алгоритмы определения кратчайших расписаний без прерываний на двух процессорах для UET-систем’’разработаны Фужи, Касами и Ниномия [43], Мураокой [116], а’также Коффманом и Грэхемом [24]. В [43] для системы заданий построен неориентированный граф G. При- сутствие ребра (Г, Т') в G означает, что ни одно из отношений|7'<7'' и Т'-^Т не выполнено. Расписание для двух процессоров определяется с помощью максимального паросочетания в G. Алгоритм не удается обобщить для получения эвристических правил в случае трех и более 116
процессоров. В [116] предлагается подход, при котором вначале рас- сматриваются «компактные» графы — системы заданий, в которых для каждого задания Т сумма длины максимального пути, ведущего от начальной вершины к Т, и уровня Т является постоянной. Затем алго- ритм распространяется на системы заданий общего вида. Описание до- вольно длинное. Алгоритм 2.2 изложен в соответствии с [24], так как процесс расстановки меток, приводящий к оптимальному расписанию для двух процессоров, может быть тотчас же превращен в эвристичес- кий алгоритм для большого числа процессоров. Другое доказательство алгоритма Коффмана — Грэхема дано в [108]. Вообще говоря, расписания минимальной длины, построенные с помощью алгоритмов 2.1 и 2.2, не являются единственными. Попытка описать класс всех оптимальных расписаний на двух процессорах пред- принята Шиндлером и Симонсмейером [137]. Расписания с прерываниями для независимых заданий, рассмот- ренные в §2.5, излагаются по работам Мак-Нотона [109] и Роткопфа [119]. Понятия разделения процессора и уровневых расписаний развиты Мюнтцем и Коффманом в [НО, 111], откуда взяты теоремы 2.7 и 2.8. Сравнение длин расписаний с прерываниями и без прерываний прове- дено в [24]. Задачи с процессорами, имеющими разное быстродействие, рас- сматривались разными авторами. Работа Байера [6] посвящена исследо- ванию расписаний без прерываний для двух различных процессоров. Им получен алгоритм определения расписаний минимальной длины для UET-деревьев в случае, когда один процессор вдвое быстрее другого. Лю и Лю 4101] предложили алгоритм определения расписания мини- мальной длины с прерываниями для независимых заданий, выполняе- мых на вычислительной системе, в которой один из процессоров — быстрый. Ими же получено выражение для минимальной длины распи- сания, использованное в теореме 2.11 (см. также [102]). Материал §2.8 излагается в соответствии с [74]. Решение двухпроцессорной конвейерной задачи впервые получено Джонсоном [83]; см. также работу Джексона [80].
ГЛАВА 3 КРИТЕРИЙ СРЕДНЕГО ВЗВЕШЕННОГО ВРЕМЕНИ ПРОХОЖДЕНИЯ 3.1. Введение В этой главе мы рассмотрим задачи составления распи- саний, в которых в качестве критерия стоимости выступает взвешенная сумма времен окончания всех обслуживаемых заданий, т. е. среднее взвешенное время завершения (про- хождения) заданий *). Мы рассмотрим три аспекта этой проблемы. 1. В первой модели рассматривается один процессор и система заданий, в которой с каждым заданием связано время обработки и стоимость его пребывания в системе. Мы представим эффективные алгоритмы определения опти- мальных расписаний для частного случая, когда ограниче- ния предшествования имеют вид леса. 2. Во второй модели вводится понятие работы, которая представляет собой упорядоченную последовательность заданий, генерируемую вероятностным методом. Задача заключается в том, чтобы составить расписание выполне- ния совокупности работ на одной машине. Времена выпол- нения и стоимости заданы в виде случайных величин, а критерием качества является математическое ожидание суммы взвешенных времен окончания всех заданий, побы- вавших на обслуживании. 3. В последней модели мы рассмотрим задачу при нали- чии более одной машины. Сами машины не обязательно яв- ляются одинаковыми. Мы положим значения стоимостей равными единице и покажем, как эту задачу построения расписания свести к транспортной задаче. Вопросы сложности, относящиеся к перечисленным за- дачам, рассмотрены в гл. 1 и 4. *) Заметим, что в отличие от определения со, данного в гл. 1, взве- шенная сумма не делится на количество заданий п. Легко видеть, что результаты, полученные для нашего более простого определения, при- менимы к определению со из гл. 1. 118
3.2. Модель В задачу 3s составления расписания входят следующие компоненты. 1. Система заданий (S', <), где S' есть индексирован- ное множество из п. заданий, п^О, а <—отношение час- тичного порядка, заданное на S'. Набор индексов S' обо- значается / (5s). Для каждого / из I (5s) Т}- есть элемент S'. 2. Положительное число ту-, для каждого j из I (5s) обозначающее потребность задания Т,- во времени обслу- живания. 3. Действительное число Wj для каждого / из /(5s), называемое стоимостью пребывания Т}- в системе. На числа wf не накладываются никакие ограничения, в частности, они могут быть как положительными, так и отрицатель- ными. Поскольку мы рассматриваем лишь один процессор, можно ограничиться расписаниями, задаваемыми переста- новкой индексов заданий. Говорят, что перестановка а= = а,, а2, . . ., а„ элементов I (5s) совместима с < (или с 5s), если Тj<Tj’ влечет k < k', где afc = / и оц- = /'. Перестановка а = аг, а2, ..., а„ элементов /(5s) опре- деляет расписание естественным образом: задание Та, вы- полняется первым, задание Таг—вторым, Та,—третьим и так далее. Среднее взвешенное время завершения для расписания, определяемого перестановкой а, дается выра- жением Л / / \ mwft (а) = S “’«у ^.5 Тх. J • Перестановка а (последовательность, расписание) назы- вается оптимальной, если а совместима с 5s и при этом достигается минимум mwft среди всех перестановок, сов- местимых с 5s. При отсутствии ограничений предшествования можно легко построить оптимальное расписание. Пусть р/. = шу/т/. для всех / из /(5s). Теорема 3.1 [136]. Пусть 3* — задача упорядочения с < = 0. Тогда перестановка а — а2, ..., ал оптимальна по отношению к 3s в том и только в том случае, когда Ра, Ра,г^ • • • Рап- Доказательство. Данный результат вытекает из рассмотрения произвольной перестановки р = рх, ..., Р„ и подсчета изменения mwft при перестановке местами двух соседних элементов р, и Р/+1. Оказывается, это приводит 119
к уменьшению mwft тогда и только тогда, когда рру < рр/+1> и не влияет на результат тогда и только тогда, когда Р|зу-— Рру+1- Отсюда вытекает утверждение теоремы. Более детальное доказательство приведено в § 1.3. Идея об использовании отношений р7 может быть рас- пространена на случай, когда К является произвольным отношением предшествования. Это приводит к интересному описанию оптимальных расписаний [134, 135] и к эффектив- ным алгоритмам построения оптимальных расписаний для задач с некоторыми видами ограничений предшествования [71, 134, 135]. В следующем параграфе мы определим функцию р, которая является обобщением отношений р7. Функция р задается на непустых подмножествах индексов заданий и используется для введения упорядочения на множестве на- боров заданий. Мы введем также понятия начального мно- жества и p-максимального множества индексов заданий, р- максимальные множества играют важную роль, поскольку, как показано в следующем параграфе, индексы в таком мно- жестве должны появляться в виде непрерывной последова- тельности во всех оптимальных перестановках. Наконец, мы дадим «двойственную» формулировку в терминах конечных множеств и p-минимальных множеств, которая использует- ся при доказательстве оптимальности алгоритмов состав- ления расписаний. 3.3. Предварительные замечания В данном параграфе мы дадим более общее определение отношениям р7, введенным в предыдущем параграфе, задав их на непустых подмножествах множества индексов. Пусть U^I (3*) и U=£0. Определим т(£7), w(U) з р (С/) следующим образом: t (^) = 2 т , w (U) = 2 wp it и ietz Набор U s I (5J) называется начальным множеством по отношению к 3*, если выполняются условия: 2) если то влечет j'(£U. Например, для системы заданий, изображенной на рис. 3.1, начальными множествами среди других являются {1}, {1, 2, 3}, {1, 2, 4} и {1, 2, 3, 4, 6}. Пусть обозна- 120
чает класс начальных множеств (по отношению к 3*). Опре- делим число р* как p* = maxp(t7). Мы говорим, что множество U S / (5*) является ^-ма- ксимальным множеством по отношению к 3*, если выпол- няются условия: 1) 2) р(С7) = р*; 3) если V£ (F; р(Ю = Р* и V— U> то V — U Рис. 3.1. Задача составления расписания. Обозначения: Tjlrjlatj. Значение р* для задачи, изображенной на рис. 3.1, составляет 6/5 и достигается на £/={!, 2, 3}; U является p-максимальным множеством. Очень часто в задаче упорядочения 5s нам приходится ограничиваться рассмотрением подмножества заданий и вычислять p-максимальные множества с учетом этого огра- ничения. Положим и определим £TIU и </£/ как </t/={(T(, tz)€<, i^u, ieu\. Задача упорядочения 3*/U получается из 5s, если огра- ничиться системой заданий (S~lU, <JU), где (£Г, <) есть система заданий для В связи с этим мы можем также рассмотреть переста- новки подмножеств множества 1(3*). Пусть U I (3*) и « = «!, а2, ..., ak есть перестановка подмножества мно- жества 1 (3*). Тогда а/U будет обозначать перестановку подмножества’'множества U, образованного из тех элемен- тов а, которые соответствуют элементам 77.* Например, если U = {2, 3, 4, 51 и а= 1, 2, 8, 5, 6, 3, то a/U = 2, 5, 3. Пусть % обозначает пустую перестановку; тем самым для произвольной перестановки а имеем 0-10=^. 121
Ограничение перестановок является коммутативным. Так, если (У иУ — произвольные подмножества множества / (У?) и а— произвольная перестановка подмножества эле- ментов 7 (5s), то а/77/V a/V/77 —a/U QV. Пусть аир — две перестановки. Тогда композицией а, р перестановок аир называется последовательность эле- ментов а, следом за которыми стоят элементы р. Предполо- жим, что а=2, 3, 7 и р=4, 5, 6, 1; тогда а,р=2, 3, 7, 4, 5, 6, 1, Р, а-=4, 5, 6, 1, 2, 3, 7 и а,Х=Х,а=2, 3, 7. В выражениях вида a/Т/, р/Е оператор /выполняется раньше композиций перестановок, так что a/77, р/У=а/77, (Р/Ю- Теперь мы дадим ряд лемм, описывающих свойства функции р и p-максимальных множеств, которые потре- буются для дальнейшего исследования. Если U S 7(5’), то обозначим через U множество 7(^)— U. Если a—перестановка, совместимая с 5s, то mwft (a/U) есть среднее взвешенное время прохождения a/U относительно ^/77. Лемма 3.1. Пусть 3*— задача упорядочения и а — перестановка 7(5’), совместимая с 3*. Если U—такое подмножество 1(3*), что a = а/77, а/77, то mwft (a) = mwft (a/77) -|~ mwft(a/77) + w (77) т(77). Доказательство. Положим k= |77|. Имеем mwft (a) = У wa. f У ta.4) = i = l /\< = i '/ k f i \ n / i \ = У У Ta. ) + У Wa\ У Ta = / = i i v = > / /=fe + i* 7\i = i './ " , / k \ = mwft (a/77) + У wa i У та + У xa. i = i=k+i 7v=fc+i ' f=i = mwft (a,'U) 4- mwft (a/77) -f-w (77) т (77). Из леммы 3.1 следует, что если а оптимальна относи- тельно 3* и <x — a,lU,alU, то а/77 оптимальна относительно 5’/77, а a/77 оптимальна относительно 3*/U. Обратное не обязательно верно. Лемма 3.2. Пусть 3*—задача упорядочения, U, U, и U 2 — подмножества 1(3*) такие, что U ==U1r\U2, U1f\U2=0, и U2^0. Тогда с. \ о / * \'-/ / 122
Доказательство. Имеем „ (П\ — _^(£Л)+ш(^2) ._ T(U1) 1{Г} I т(С2) „ ,гг \ г' и'~ x(U) x(U) ~~ т (U) 1 '"** т (U) р 1 аЛ Лемма 3.2 утверждает, что р(П) представляет собой вы- пуклую комбинацию р (t7i) и р((/2), т. е. р((7)—ррШ2)+ +(1—г]) p(f72), где 0<т)<1. Поэтому, если p(t/i)<p(t/2), то p(t/i)<p(t/)<p(t/2); если р((72)<р(П1), то р([/2)< <'р(б/)<р((71); наконец, еслир(6/])- -р(6,2), rop(f7)=p(t/1). Лемма 3.3. (Перестановка соседних элементов.) Пусть 9* — задача упорядочения, а а и р — две переста- новки 1(9*), совместимые с 9*, такие, что a,=aHJ,a.jU lt a/t/g.a/tt?' м |3^a/t/,a/V2,a/V1,a/tt7, где U, V\, V2 и W — непересекающиеся множества, Vr^=0 и V2=#0. Тогда mwft (a)^mwft (Р) в том и только в том случае, когда p(V1)>p(V2). Доказательство. Легко выразить mwft (Р) через mwft (а), а именно: mwft (Р) = mwft (a) + w (VJ т (V2) — w (И2) т (7J = = mwft (a) + т (V2) т (VJ [p (Vj) —p (V2)]. Отсюда получаем mwft (P) — mwft (a) = т (V2) т (VJ [p (VJ — p (V2)], что доказывает лемму, так как r(V2) т(У1)>0. . Лемма 3.4. Пусть U и V — два различных p-макси- мальных множества относительно 9*. Тогда UnV=0. Доказательство. Пусть W~U П V и при этом W является начальным множеством, и, поскольку U является p-максимальным, мы заключаем на основании леммы 3.2, что р(№)<р*. Следовательно, в силу леммы 3.2 p(U—1Е)>р*. Еще раз используя лемму 3.2, можем за- писать р(Йи Е)=т|р(С/’— 1Г)+(1—т])р(Е), гДе 0<т|<1, откуда следует, что p(t/(jE)>P*- Получили противоре- чие, так как U U V — начальное множество. Следующие леммы показывают, что изучение р-макси- мальных множеств позволяет глубже понять структуру оп- тимального расписания. Лемма 3.5. Если U является р-максимальным мно- жеством относительно 9*, то U содержится в виде непре- рывной последовательности во всех оптимальных переста- новках для 9*. Доказательство. Вначале покажем, что U должно появиться в виде непрерывной последовательности во всех оптимальных перестановках для некоторой системы 123
З3', выбранной так, что оптимальные перестановки относи- тельно З3 образуют подмножество оптимальных переста- новок относительно З3'. Из этого будет вытекать доказа- тельство леммы. Положим < = т7) । (Т;, ту) е <, Л € и, Л- С Определение З3' точно такое же, как З3, с той разницей, что < заменяется на Ясно, что все перестановки, со- вместимые с З3, являются совместимыми с З3'. Позже мы покажем, что существует оптимальная перестановка отно- сительно З3', которая совместима с З3. Таким образом, все оптимальные перестановки для З3 будут оптимальными для З3'. Пусть а—оптимальная перестановка относительно З3'. Покажем, что U появляется в виде непрерывной последо- вательности в а. Предположим обратное, т. е. что а имеет ВИД а = a/V\, a/t/v а/У2, a!Ut, . . a/Vr, a/Ur, a/Vr+1, где все множества Vi, Ut попарно не пересекаются, г>1, все непусты, за исключением, возможно, Vi и Ег+1, и при Г этом U = и Ui- i — 1 Положим &=min {j |р (Uj)^p (Uj) для всех Величина k должна быть больше 1, так как, в противном слу- чае, на основании леммы 3.2 мы получим противоречие с р-максимальностью U. Таким образом, мы можем записать p(^_1)<p(t/ft). Более того, р(ЕЛ)^р((7Л), поскольку если предположить обратное, то с помощью леммы 3.3 можно показать, что а не оптимальна относительно З3. Принимая во внимание эти обстоятельства и учитывая лемму 3.3, можно поменять местами allJk_1 и a/Vfc в а, получив при этом новую перестановку а', такую, что mwft(a')<mwft(a). Это противоречит оптимальности а относительно З3 и мы можем сделать вывод о том, что U должно появиться в’виде непрерывной последовательности во всех оптималь- ных перестановках для З3'. [Остается показать, что существует оптимальная пере- становка в З3', которая является оптимальной также и для З3. Пусть а есть оптимальная перестановка относи- тельно З3' и a = a/V,a/U,a/W. Если V=0, то утверж- дение доказано. Поэтому предположим, что V 0. Ясно, что a' — a/U,a/V,a/W совместима с З3 и З3'. Из леммы 3.3 и оптимальности а мы знаем, что p(V)3>p(£/). Будем 124
считать, что p(V)>p(t7). На основании леммы 3.2 имеем р(£7иЮ > Р(^)- Но эго невозможно, поскольку t/uV является начальным множеством относительно 5s. Следо- вательно, p(V) = p(£/) и согласно лемме 3.3 mwft(a') — = mwft (a). [Лемма 3.6. Если множество Е р-максимально отно- сительно 3, то существует оптимальная перестановка a для 3 такая, что а = а/Е,а/Е. Доказательство. См. доказательство леммы 3.5. Лемма 3.7. Если перестановка а оптимальна отно- сительно 3, то а может быть представлена в виде а— —ajV, a/U, где U — некоторое множество, p-максималь- ное относительно 3. Доказательство. Пусть Е есть р-максимальное множество, которое раньше всех встречается в а. Тогда на основании леммы 3.5 мы можем записать а как alV, а/Е, a/W. Если V непусто, то оно является начальным множест- вом, а значит, p(V)^.p(E). Используя лемму 3.3, можно исключить случай р (V)<p (47). Следовательно, p(E)=p(i/) и V либо само p-максимально, либо содержит р-максималь- ное множество. Это противоречит нашему выбору Е\ сле- довательно, V=0. Результаты этого параграфа могут быть^представлены в двойственной форме следующим образом. Множество U s I (3) называется конечным множеством относительно 3, если выполняются условия: 1) U 0; 2) если Т^Тр, то ](£Е. Пусть <F означает класс конечных множеств относи- тельно 3. Определим р* как р«= min р (£/)• 1/е? .Скажем, что Е является p-минимальным множеством относительно 3, если выполняются условия: 1) Е^Г-, 2) р(£7) = р*; 3) если V С <F, р (V) = р* u^V s Е, то V — Е. Все леммы данного параграфа, относящиеся к р-макси- мальным множествам, имеют соответствующие двойствен- ные формулировки в терминах p-минимальных множеств. В дополнение к ним имеем следующую лемму. Лемма 3.8. Пусть Е—p-максимальное, а V—р-мини- мальное множество относительно 3. Если Е =^=V, то EnV = 0. 125
Доказательство. Пусть W — U п V. Предположим, что W 0. Тогда р(^==г|р({/-^) + (1-Л)р(В7), где 0< т| < 1, и Р (Ю=ТР(И-Г) + (1-?)р(Г), где 0 < у < 1. Поскольку IT содержится как в начальном, так и в конечном множествах, множества U — W и V—W являются, соответственно, начальным и конечным. Отсюда получим р(6/ — W) < р*, р (V —IV) > р». Таким образом, р (W7) > р* р,: > р (W7). Мы вынуждены заключить, что = При доказательстве мы предполагали, что как U—V, так и V—U непусты. Доказательство проходит и в том случае, когда одно из них пусто. 3.4. Алгоритмы Отношение предшествования < называется входящим лесом, если каждая вершина в графе предшествования име- ет не более одного непосредственного преемника. Анало- гично, < является выходящим лесом, если каждая вершина в графе предшествования имеет не более одного непосред- ственного предшественника. В данном параграфе мы рас- смотрим эффективные алгоритмы отыскания оптимальных расписаний для задач, в которых ограничения предшество- вания являются входящими либо выходящими лесами. Вна- чале рассматривается задача с входящим лесом, а затем для получения алгоритмов составления расписаний в слу- чае выходящего леса используются соображения двойст- венности. Мы также представим алгоритм для случая, ког- да задача составления расписания может быть разделена на две или более «независимых» задачи. Пусть 5s—задача составления расписания такая, что < является входящим лесом. С помощью леммы 3.2 и опре- деления p-максимального множества можно показать, что для нахождения р-максимального множества относительно У1 нет необходимости рассматривать все начальные множе- ства в действительности нам нужно рассмотреть только п из них, где п есть число заданий. Обозначим через Hj множество, состоящее из индекса / и индексов i всех заданий, для которых Т;<Т}. Лемма 3.9. Пусть SP—задача составления расписа- ния для входящего леса и U—р-максимальное множество 126
относительно S'. Тогда существует индекс j £ I (S') та- кой, что U--=Hj. Доказательство. Пусть I есть индекс из U, соот- ветствующий такому заданию Тt, что индексы преемников Tt не входят в U. Мы утверждаем, что U = Ht. Очевидно, H^U. Пусть V—U—Ht, и предположим, что V=£0. Утверждается, что V—начальное множество. Допустим обратное. Тогда Яг<К*). Но это невозможно, потому что в U нет преемников 1\, а также потому, что, как следует из свойства входящего леса и определения Нt, ни один из элементов Н( не имеет преемников в U. Следовательно, V является начальным множеством и U представляет собой объединение двух непересекающихся начальных мно- жеств. Это противоречит р-максимальности U, а значит, И=0. Неформально говоря, построение оптимальной пере- становки в задаче S' составления расписания для входя- щего леса может быть осуществлено следующим образом. Каждому заданию Tj ставится в соответствие число р(Яу), а затем определяется индекс I такой, что р (Ht) р (Hj) для j^-I(S'), причем р(//г) > р(//у) для всех индексов j /, Поскольку Ti является предшественником всех за- даний, индексы которых входят в Ht, существует опти- мальная относительно S' перестановка а, такая, что а = a/(Hi-{l}),l,а/([ (S')-Ht). Таким образом, наша задача может быть «разложена» на две меньшие, а именно: 3'!(Н1— {1\) и S'!(I (S')—Ht). Алгоритм 3.1. Вход: S'—задача составления расписания для входя- щего леса. Выход: оптимальное расписание для S'. -Метод: procedure TRF (S') begin if S' пусто then return X else begin Пусть l есть индекс задания из S' такой, что Ht яв- ляется p-максимальным множеством для S' U:=Ht-{l}-, V:—I(S')—Hl *) Пусть U и V— подмножества US') - Мы записываем если существует пара заданий Т, и Т j такая, что Тi<Tj, i^U и /'£ V. 127
return TRF(W),Z,TRF(^/V) end end TRF Процедура TRF является рекурсивной, она имеет в качестве единственного входного параметра задачу упоря- дочения; результатом ее выполнения оказывается оптималь- ная перестановка по отношению к входной задаче. Вы- полнение оператора return < выражением встречающегося в процедуре, заключается в вычислении <выражения> и возврате в точку вызова процедуры с вычисленным значе- нием в качестве результата. Результат выполнения проце- дуры TRF, вообще говоря, не единствен, потому что мо- жет существовать более одного p-максимального множества. Однако независимо от выбора такого множества TRF дает оптимальную перестановку. Теорема 3.2. Пусть 5s—задача упорядочения для входящего леса. Перестановка а оптимальна для 9* в том и только в том случае, когда она может быть получена в результате применения процедуры TRF к 9\ Доказательство. Проведем доказательство методом индукции по п, где п—число заданий в 9*. Справедливость теоремы для п = \ очевидна. Пусть п—целое число, боль- шее 1. Предположим, что теорема верна для всех задач составления расписаний, количество заданий в которых меньше п. Пусть 5s—задача, содержащая п заданий, а — перестановка, полученная в результате применения проце- дуры TRF. Мы можем представить а в виде a = a/U,l, a/V, где U, V и I определены с помощью TRF, a есть p-максимальное множество. Из леммы 3.6 следует, что существует оптимальная перестановка p = p/(Z/(j {/}), р/V. Поскольку Т[ является преемником всех заданий, индексы которых находятся в U, мы можем записать Р = P/Z7,Z,P/V, где P/Z7—оптимальная перестановка для 9*1 U, a P/F—оптимальная перестановка для 9*/V. По предположению индукции а/U и a/V являются оптималь- ными перестановками для 5s/U и 9*/V соответственно. Поэтому а есть оптимальная перестановка для 9*. Пусть р—произвольная оптимальная перестановка для 9*. На основании леммы 3.7 мы можем записать р в виде р = Р/(7,р/77, где U является p-максимальным множеством относительно 9*. Из леммы [3.9 следует, что существует индекс I такой, что H[ — U. Поэтому TRF может сгене- рировать перестановку а вида TRF (9*119—{/}),Z,TRF (9s/U). Очевидно, р может быть записана в виде |3 = Р/(£7—{Z}), 128
Ift/U. Теперь, используя предположение индукции, мы заключаем, что процедура TRF строит оптимальную пе- рестановку |3. Легко посчитать асимптотическую оценку времени счета при разумном применении TRF. Пусть Тj—задание из 5s, 7fl, ..., Tik—его непосредственные предшественники. Имеем k Wj+ 2 w(H{ ) Р=1 р <#/) — Т (Hj) ~ k Мы можем проходить граф предшествования < таким образом, чтобы для каждого задания Tj величины w и т для множеств Hi,, ..., Htk вычислялись до посещения Tj [87]. Поэтому для всех заданий в З3 величины р (//у) могут быть вычислены за время 0(п). Эта процедура определяет положение по крайней мере одного задания в оптимальной последовательности, и, поскольку потре- буется не более О(п) времени, чтобы определить положе- ние каждого из оставшихся заданий, временная сложность процедуры TRF в худшем случае определяется как О(«2). Пусть теперь З3—задача составления расписания для выходящего леса и /Q есть множество, состоящее из ин- декса / и всех индексов i таких, что Tj < 7С. Следующая лемма показывает, что задачи составления расписаний для выходящих лесов являются двойственными по отношению к задачам для входящих лесов. Лемма 3.10. Пусть З3—задача составления расписа- ния для выходящего леса, U—множество, р-мини мольное относительно З3. Тогда U = Kj для некоторого j С I (З3). Доказательство. Двойственно доказательству, дан- ному для леммы 3.9. Алгоритм 3.2. Вход: З3—задача составления расписания для выходя- щего леса. Выход: оптимальное расписание для З3. Метод: procedure IRF (S3) begin if З3 пусто return X else begin 5 Под ред. Э. Коффмана 129
Пусть I есть индекс задания из 3 такой, что /<z яв- ляется p-минимальным множеством для 5s return IRF (Ж), I, IRF(W) end end IRF Теорема 3.3. Пусть 3—задача составления распи- сания для выходящего леса. Перестановка а оптимальна для 3 в том и только в том случае, когда она может быть получена в результате применения процедуры IRF к 3. Доказательство. Двойственно доказательству тео- ремы 3.2. Рассмотрим задачу 3 составления расписания и пред- положим, что существует разбиение I (3) на два непустых множества и U 2 таких, что < = </471 U </П2. Тогда мы будем писать 55 = 551||^52, где 3i = 3/U;, i = l, 2. Нефор- мально говоря, систему 3 можно рассматривать как со- стоящую из двух независимых (параллельных) систем за- даний и ^2. Следующие леммы показывают некоторые важные свойства такой декомпозиции и образуют основу для до- казательства корректности последующего алгоритма. Лемма 3.11. Пусть 3 — задача составления расписа- ния такая, что 55 = 5>1||^*2. Если множество U р-макси- мально (минимально) относительно 3, то U является р-максимальным (минимальным) либо для Зг, либо для 32. Более того, если и V2—р-максимальные (минимальные) множества для и 32 соответственно, то по крайней мере одно из них является р-максимальным (минимальным) множеством для 3. Доказательство. Эту лемму легко доказать на основе леммы 3.2. Лемма 3.12. Пусть 3—задача составления распи- сания такая, что 3 = 31Ц32, U1 и U,г -множества индексов для 3\ и 32 соответственно. Если перестановка а оптимальна относительно 3, то и a/t/2 опти- мальны. относительно Зг и 32 соответственно. Более того, если ах и а2 оптимальны для 3Y и 32, то существует оптимальная относительно 3 перестановка а такая, что = и a/U2 = а2. Доказательство. Доказательство проведем методом индукции по п—числу заданий в 3. Для п = 1 утвержде- но
ние, очевидно, верно. Пусть п > 1 и а—перестановка, оптимальная относительно 5s. На основании леммы 3.7 мы можем представить а в виде а = а/£/,а/(7, где U — множество, p-максимальное для 9* и, в силу предыдущей леммы, p-максимальное либо для 9\, либо для 9\ (скажем, для По предположению индукции a/U2 оптимальна от- носительно ^2, a а/(6\—U)—относительно —U). На основании леммы 3.6 теперь заключаем, что последова- тельность a/U,a,/(Ul—U)~a/Ul является оптимальной относительно 9\. Пусть и а2—перестановки, оптимальные относи- тельно 9\ и 5% соответственно. Без потери общности предположим, что ах = 0.^19 ,о.х1(U±~U) и U р-макси- мально относительно 9>. Из леммы 3.6 следует, что су- ществует оптимальная относительно 9* перестановка а такая, что a = a.[U ,o!(I (93)— U) = a,1/U ,а/(1 (9*)— U). Используя индуктивное предположение, мы теперь получа- ем, что а/(/(У)—U)/U2=a2 и а/(/(.‘75)—[/)//71=а1/({71—U). Лемма может быть легко обобщена на случай, когда 9* можно «разложить» более чем на две задачи. В следующем алгоритме принцип декомпозиции используется для упро- щения поиска оптимальной перестановки. Алгоритм 3.3. Вход: задача составления расписания 5s такая, что = где&>1. Выход: а—перестановка, оптимальная относительно 93. Обозначения: обозначает отношение предшествова- ния для 9\, 1 Метод: procedure PAL begin for i: = 1 until k do begin a: = оптимальная перестановка относительно 9\ = <iU {(Tr, Ts)fr появляется в а раньше, чем s} end k <:= U <9 a: = TRF(9>) i = i end PAL Из предыдущих лемм следует, что PAL строит опти- мальную перестановку для 9* и, более того, что любая 5* 131
оптимальная перестановка для 5s может быть получена в результате выполнения процедуры PAL. Теорема 3.4. Пусть 3*—задача составления распи- саний такая, что г^е £> 1- Тогда а является оптимальной перестановкой относительно 3* в том и только в том случае, когда она может быть получена в результате применения процедуры PAL. 3.5. Модель со случайными величинами В этом параграфе мы обобщим предыдущие результаты, полученные для детерминированных цепочек заданий, пу- тем введения вероятностной модели, описывающей вре- мена выполнения, стоимости пребывания заданий в сис- теме, в также последовательности заданий, составляющих каждую работу. В частности, каждая работа может быть представлена в виде дерева решений, вершины которого соответствует заданиям. Для каждого задания Т имеется произвольное, но известное совместное распределение ве- роятностей, описывающее время выполнения, стоимость пребывания в системе и выбор задания, если таковое име- ется, которое должно выполняться следующим после Т. Таким образом, выполнение работы состоит из выполнения некоторой цепочки заданий в дереве, начинающейся в кор- невом задании и оканчивающейся в некотором его преем- нике. Единственными точками, в которых выполнение работы может быть прервано, а процессор назначен на выполнение другой работы, являются моменты завершения заданий. Среднее время завершения расписания для совокупности независимых работ (так называемой системы работ) вычис- ляется как взвешенная сумма времен завершения заданий. Нашим основным результатом является эффективный ал- горитм, выбирающий в каждый момент завершения задания работу, которая должна быть назначена на процессор, при- чем таким образом, чтобы математическое ожидание сред- него взвешенного времени завершения всей системы зада- ний было минимальным [10]. В систему работ входят следующие компоненты. 1. Система заданий (S', S), где S'—индексированное множество из п заданий, п^О, а < обозначает частичное упорядочение на S'. Множество индексов S’ обозначается через /(^), и каждому j из /(^) соответствует Tj в S’. Тип частичного упорядочения ограничен выходящим лесом (напомним, что < является выходящим лесом, если каждая 132
вершина в графе предшествования, соответствующем к, имеет не более одного непосредственного предшественника). 2. Каждому j в I ffi) сопоставлена случайная величина Sy, принимающая положительные значения; она опреде- ляет время, необходимое для выполнения Ту. Обозначим через т, математическое ожидание Sy. 3. Каждому j в 1 ($) сопоставлена случайная величина Су, которая задает стоимость пребывания задания Ту в си- стеме. Диапазон изменения Су не ограничен. Обозначим через Wy математическое ожидание Су. 4. Каждому / в /(^) сопоставлена случайная величина Dy, которая принимает значения, соответствующие индексам непосредственных преемников Ту, либо нуль (нуль не яв- ляется индексом какого-либо задания). Мы накладываем ограничение, что если Tt является непосредственным пре- емником Ту, то Р {Dy = i)>0, т. е. вероятность выполне- ния всех заданий отлична от нуля. 5. Для каждого j в /(^) задано трехмерное распре- деление вероятностей Fy, которое определяет совместное поведение совокупности величин Sy, Су и Dy. Для всех i и j Тройки чисел (S;, Ct, Dp и (Sy, Су, Dy) независимы. Система работ с одним начальным заданием называется работой. Непустая система работ может быть представ- лена в виде где Jr-—работа, 1 i «С г. Пусть Tj}, ..., Tj —начальные задания в ..., Jr соответственно. Процессор должен быть выделен для вы- полнения одного из заданий Тд, . .., Т/ . Если на про- цессор в момент времени t 0 назначено выполнение задания Tj, являющегося начальным в работе J t, то про- цессор не может быть перераспределен до момента t+Sj Завершение задания Г/ дает в среднее взвешенное время завершения вклад величины (/-|-S/z) С^. Величина Dj( оп- ределяет «подработу» работы J(, которая должна заме- нить J{ в а именно: если £)/( = 0, то Jt должна быть удалена из если же£>/ =i^=0, то JJK, заменяет Jt в (напомним, что К; представляет собой множество индексов, включающее i и все индексы / такие, что Т{ < Ту). Введем функцию переходов 6, которая имеет в качестве аргументов систему работ начальное задание Ту в и величину I, где i есть либо нуль, либо индекс непо- 133
средственного преемника Тj. Значением 6 является (воз- можно, пустая) система работ d (J^, Тj, i), определяемая сле- дующим образом: если1 = 0,то б (^, Тj, i)==^/(/ (^)—/(.); если же /^0, то 6(f, Т,, = W На рис. 3.2 изображена система работ, состоящая из двух работ и J2. Начальное задание Тг работы J г имеет два возможных «исхода»: D^-2 или D1 = 3. Случайные величины Sj, С\ и распределены следующим образом: Р{51=1, С4 = 1/2, D1 = 2} = p, P{S1 = 2, C1 = l, D1 = 3} = 1—р, где Распределение остальных переменных имеет вид Р {£). = 0} = 1 для i = 2, 3, 4, Р = 1} = 1 для i = 2, 3, 4, Р{С(. ==1} = 1 для / = 2,4, . Р(С3=5} = 1. Следовательно, работа J v имеет две возможные реализа- ции, а именно: 7’1/1/(1/2) и затем Tj\l\ или 7\/2/1 и затем 7\/1/5, где обозначения даны в следующем порядке: задание /вре- мя выполнения/стоимость. Первая реализация имеет ве- роятность р, а вторая — ве- w 1 Q)Tr роятность 1—р. Работа /2 / \ имеет ровно одну реализацию Д=г/ \д=з / \ Если в момент Д=0 назна- / \ чить на процессор задание 1\, О то имеются только две воз- ,_____, можности: j j l-^i завершается в мо- рис з 2 мент t = 1, вклад в среднее взвешенное время составляет 1/2, результирующая система работ имеет вид 6(^, Т\, 2) = f/{2, 4). 2. 7\ завершается в момент t = 2, вклад в среднее взвешенное время составляет 2, результирующая система работ имеет вид б(^, 7\, 3) = ^/(3, 4}. Правило упорядочения | представляет собой целочислен- ную функцию, которая ставит в соответствие каждой не- 134
пустой системе работ начальное задание этой системы. Величина среднего взвешенного времени завершения при использовании в системе правила упорядочения Е в момент t^Q определяется с помощью процедуры mwft, примененной к £, и t. Алгоритм 3.4. Вход: правило упорядочения система работ и неотрицательное число t. Выход: величина среднего взвешенного времени для решающего правила примененного к в предположе- нии, что процессор недоступен до момента / ^0. Метод: procedure mwft(g, t) begin if пуста then return 0 else begin Пусть j таково, что T, = g(^);(T, w, = C-, Dj) return (t4-T)®4-mwft(|, 6(^, T-, i), t + т) end end mwft Оператор присвоения (т, w, i): = (Sj, Cj, Dj) выпол- няется -путем генерирования случайных величин Sy-, С}- и Dj- в соответствии с Fj и присвоения значений этих величин переменным т, w, i соответственно. Таким образом, mwft (^, t) представляет собой случайную величину, значения которой зависят от исходов экспериментов, произ- водимых в процессе выполнения алгоритма 3.4. Обозначим через £ среднее значение случайной вели- чины £. Мы говорим, что правило упорядочения g является оптимальным, если для всех правил упорядочения и всех систем работ имеет место соотношение mwft (g, 0)<mwft(g', 0). Пусть —система работ, изображенная на рис. 3.2, a g—такое правило упорядочения, что g(^) = T'1, g (^/{2, 4)) = 7\ и £(^/{3, 4}) = Т3. Легко видеть, что mwft(£, 0) принимает два возможных значения в за- висимости от исхода Dx. Эти два значения суть 1/2 4-2 4- + 3 = 11/2 и 24-154-4 = 21, причем первое из них реа- лизуется с вероятностью р, а второе—с вероятностью I—р. Поэтому mwft(£, 0) = 21—(31/2) р. 135
Существует лишь одна иная стратегия, которую нужно рассмотреть, а именно правило упорядочения назна- чающее вначале Т4 вместо Тх. В этом случае также имеются только два возможных исхода, и мы получаем mwft(£', 0) = 24—19р. Из этого делаем вывод о том, что £ дает лучший результат при 0 р 6/7, а ока- зывается лучшим, когда 6/7 р 1. 3.6. Ранговая функция Целью данного параграфа является определение ранго- вой функции р, которая ставит в соответствие каждой рабо- те J положительное число р («/), называемое рангом J. Свой- ство этой функции заключается в том, что для получения оптимального расписания необходимо назначать на про- цессор начальное задание из той работы, которая имеет наибольший ранг. В следующем параграфе мы докажем, что расписание, построенное на основе стратегии «наиболь- ший ранг — первым», является оптимальным и, наоборот, что все оптимальные правила упорядочения соответствуют этой стратегии. Пусть J есть работа, Tj — начальное задание в J и U — подмножество индексов заданий в J. Определим слу- чайные величины s(J, U) и c(J, U) следующим образом: J 0, если s(J, = | 5/ + s(S(t/j если i 0, если jffcU, c(J, (7) = | С/ + г(б(</> 7^ если Пусть т(7, U) и w(J, U) обозначают средние значения s(J, U) и c(J, U) соответственно. Пусть U — начальное множество относительно J. Определим р(7, U) как р(7, l/) = o>(7, U). Рангом работы J назовем величину р (7) = max {р (7, U) | U является начальным множеством относительно J}. Мы говорим, что множество UsI (J) является р-мак- симальным относительно J, если: 1) U — начальное множество относительно 7; 2)р(7, Ц)=р(7); 136
3) из того, что V является начальным множеством отно- сительно J, V^U и p(J, У)=р(7), следует, что V=U. В оставшейся части параграфа мы рассмотрим некото- рые свойства ранговой функции р. Пусть Tj—задание в J, а Тi±, ..., Tt—последова- тельность заданий в J такая, что Ti является непосред- ственным преемником Т([ для / = 1, k — 1, Ti яв- ляется начальным заданием J и Tlk = Tj. Определим pj—вероятность «достижения» Tj—как А-1 Pj — IIР = h+1} Произведение пустого множества сомножителей (k—1=0) равно 1. Из данного нами определения работы следует, что р/>Р> для всех j С I (J). Лемма 3.13. Пусть J есть работа и U — начальное множество относительно J. Тогда U) = 5 р.т., isu w(J, U) = J] PiW: jeu Доказательство. Доказательство проводится индукцией по числу заданий в U. База индукции (при |U |= = 1) получается легко, так как т(Д Г/)==т; и w(J, U)=Wj, где Т} — начальное задание J. Пусть U — начальное множество в J такое, что |£71^2, и предположим, что лемма верна для любой работы и соот- ветствующего ей начального множества с меньшим чем |(7| числом элементов. Пусть Tt—начальное задание в J и Tit, Tt — непосредственные преемники Tt. Положим Ui^Ka i\U для / = 1, ..., k. Множество Ui является либо пустым, либо начальным для / = 1, •••, k. Мы можем записать x(J, U) в виде k x(J, t/) = rz+S P{D. = iJr(J/.Kiz, UQ. Применяя предположение индукции к т(J/Kt, и используя определение величин pj, нетрудно увидеть, что T(J, t/)= 2 PjUj- ieu J J 137
Аналогично доказывается выражение для w(J, U). Оп- ределим величины x(U), w(U) и р((7), где U — произволь- ное непустое подмножество индексов работы J: = S РА’’ X Р W ; /еи /ей p(U)=w(U)/r(U). Лемма 3.14. Пусть J — работа, U — непустое под- множество I (J). Если I — такой индекс в I (J), что U <=. КI, то г (^) = Pi 2 р/ь-> w (и) = pi X ieu ieu где вероятность р{ вычислена для работы J, а р], j £U, — для работы 7/Мг. Доказательство. Доказательство непосредст- венно следует из определения упомянутых величин. Следующая лемма связывает ранг некоторой «подрабо- ты» данной работы с рангом самой работы. Мы используем этот результат в § 3.7. Лемма 3.15. Пусть U есть р-максимальное мно- жество относительно работы J, а I—такой индекс в U, что Tt не является начальным заданием J. Тогда р(ОД>р(У). Доказательство. Пусть Uy = U — Kt и U 2 = U. Применяя лемму 3.2, получаем р (</) = т|р (6/J + (1 —я) р (U2), где 0<т|<1. Поскольку U является начальным множеством в J, мы имеем p(U d^pfJ)', поэтому р(П2)>р(7). Поскольку p(J/Ki)i^p(JIU%, U2), остается показать, что p(J/U2, U2)=p(U2)==w(U2)h(U2), где w(U2) и т((/2) определены для работы J, а это прямо следует из леммы 3.14. 3.7. Оптимальные расписания Пусть |—правило упорядочения, а = Jt [|.. .|| Jr — непустая система, состоящая из работ J-, z = l, ..., г. Пусть I—такой индекс, что является начальным за- данием работы Jt. Скажем, что назначено по наи- большему рангу, если p(Jz) р (7() для 1 = 1, .... г. Правило упорядочения £ называется ER-правилом 138
упорядочения*), если для всех систем работ ф g(^) назна- чено по наибольшему рангу. Теорема 3.5. Правило упорядочения £ оптимально тогда и только тогда, когда оно является LR-правилом. Доказательство. Правило упорядочения g назовем п-оптимальным, если для всех правил упорядочения и всех систем работ из | J ffi) | п следует mwft (£, У, 0) ^mwft(B', У, 0). Правило упорядочения g называется n-ER-правилом, если для всех систем работ У, таких, что 11 ($-) | < п, В (У) назначено по наибольшему рангу. Для того чтобы доказать теорему, мы покажем для каж- дого п 1, что | является n-оптимальным правилом упо- рядочения в том и только в том случае, когда оно является n-LR-правилом. Доказательство проводится методом индук- ции по п; для п—1 результат очевиден. Пусть п 2; предположим, что существуют «-опти- мальное правило упорядочения £ и система работ ф = J±\\.. ,|| Jr такие, что | / (У) | = n, а£(У) назначено не по наибольшему рангу. Пусть Ту^^У) есть начальное задание работы JПо предположению г ^2, и, следова- тельно, существует начальное задание Tj2 работы Jti, которое назначено LR-правилом (относительно У), прги этом р(Л,)>Р(Л2)- Наша це воречие, построив правило упорядочения %' такое, что mwft(|', У, 0) < mwft (£,у, 0). Представим процесс при- менения £ к У в виде помечен- ного дереваЕ**). Каждая вер- шина v из Е имеет две метки: Т (v) (задание) и $-(v) (непус- тая система работ), связанные соотношением Т (и) = £ (У (о)), и У (ио) = У- У каждой вершины имеется по одному подде- реву для каждой непустой системы работ, которые полу- чаются из У (v) после назначения Т (v) на процессор. Дерево, изображенное на рис. 3.3, иллюстрирует прави- ло упорядочения, примененное к задаче, представленной на теперь—получить проти- О ЫМ О Т^/{4} Рис. 3.3. Корнем дерева является п„, *) LR — largest rank — наибольший ранг. (Прим, перев.) **) Дерево Е представляет собой конечное множество элементов, называемых вершинами, в котором имеется выделенный элемент, назы- ваемый корнем, и разбиение Et,. . ,,Eh множества остальных элементов (если таковые имеются) на fcsl деревьев. Деревья Ег,. . .,£fc называют- ся поддеревьями с данным корнем. 139
рис. 3.2. Здесь использовано одно из правил упорядоче- ния, рассмотренных в предыдущем параграфе. Если V есть подмножество вершин Е, положим HV) = {i\veV, T(v) = Ti}. Пусть А является максимальным подмножеством вер- шин Е, т. е.: 1) По находится в Л; 2) если п С Л, п#=Уо> т0 непосредственный предшест- венник v находится в Л; 3) если vgA, то Т (v) принадлежит Jlt. Ясно, что множество Л единственно и 1(A) является начальным множеством в J Вершина о называется непосредственным преемником подмножества вершин V, если v не принадлежит V и не- посредственный предшественник v содержится в V. Пусть ух, ..., va—непосредственные преемники Л. Пусть также (у,-) для i = 1, ..., а. Поскольку 11 (^i)l п— 1 >мы можем воспользоваться предположением индукции для того, чтобы заключить, что назначения, произведенные при помощи £ в осуществлены в соот- ветствии с LR-правилом, более того, мы можем изменять эти назначения, сохраняя указанное свойство, не оказывая при этом влияние на среднее взвешенное’'время прохож- дения. Пусть Et—поддерево дерева Е с корнем vt, соответ- ствующее ^i, i=l, ..., а|(см. рис. 3.4). Поскольку все назначения в Л произведены в Jlt, p(Ji2)—наибольший ранг среди всех работ в ^z, i = 1, ’..., а.’ Пусть U есть p-максимальное множество для Используя предполо- жение индукции и лемму 3.15, мы можем представить Et в виде, изображенном на рис. 3.5, где I(B) = U. Мы не показываем зависимость В от i, поскольку, на 140
основании леммы 3.15, назначения заданий из Jl2, индексы которых входят в U, произведены LR-правилом. Следова- тельно, в качестве начальной «структуры» £;, 1 = 1, ..., а, может быть взято Ев. На рис. 3.6 представлена структура Е и структура £', получающегося из Е путем «перестановки». Мы не будем Рис. 3.6. описывать все детали перестановки; идея ее заключается просто в том, что задания с индексами из 1(B) выпол- няются раньше заданий с индексами из I (А). Метки 34’) вершин из Еа и Ев в дереве Е' отличаются от аналогич- ных меток в Е из-за изменения порядка выполнения. Пусть I' обозначает правило упорядочения, изображенное с помощью Е'. Легко вычислить изменение математиче- ского ожидания среднего взвешенного времени прохожде- ния при переходе от £ к g': mwft (I', 0) = mwft (£, У, 0) + + s(Jt„ I(B))c(Jit, 1(A))—s(Jz, (A))c(Jl2J(B)). Принимая во внимание независимость s(Jtj, 1(B)) и c(Jti, ! (А)), а также независимость s(Jlt, I (Л)) и c(J 1г, I (B)), получим 0) = E^ft(g,^,0)-bT(Jz2, I(B))uu(Jt„ 1(A))- -T (Jz„ I (A)) w (Jl2, I (B)) = = mwft (g, 0)+?(p(A„ I(A))-p(Jl2))t где у > 0. Поскольку p(/G) > p(JZ1) > р(/г,, /(Л)), мы получаем противоречие. Для того чтобы завершить доказательство, мы должны показать, что если I(^) = n, то все n-LR-расписания для 3^ имеют одну и ту же стоимость. С этой целью может быть использован предыдущий метод «перестановки», с по- 141
мощью которого одно n-LR-расписание сводится к дру- гому n-LR-расписанию, и при этом математическое ожи- дание среднего взвешенного времени прохождения не увеличится. Детали доказательства мы опускаем. 3.8. Алгоритмы для моделей, содержащих случайные величины В данном параграфе мы рассмотрим вычислительные аспекты применения LR-правила упорядочения. Алгоритм 3.5 является LR-алгоритмом упорядочения; он имеет на входе систему работ и определяет последовательность назначений и среднее взвешенное время завершения. Этот алгоритм имеет такую же структуру, как и алгоритм 3.4, однако здесь мы можем быть уверены, что все назначения произведены по LR-правилу. Алгоритм 3.5. Вход: ^ = Л||...рг. Выход: последовательность LR-назначений и среднее взвешенное время завершения получившегося расписания. Метод: 1. procedure LR(^) 2. begin 3. L=0 4. mwft: = О 5. I [i]: = индекс начального задания J для i = 1, ..., г 6. while не выполняется (/[/] = 0 для г = 1, ..., г) do 7. begin 8. Пусть / таково, что /[/]#= 0и р(^/К/[/])> р(7//Лф]) для всех 1 i г и I [j] #= О 9. U: = p-максимальное множество относительно 10. while I [j] C U do И. begin 12. (т, w, d): = (Siin, GZ[y], Ap]) 13. mwft: = mwft + (/4-r)w 14. = 15. l[j]: = d 16. end 17. end 18. return mwft 19. end LR Как и в алгоритме 3.4, LR (^) является случайной ве- личиной, конкретные значения которой зависят от выбора j в строке 8 и от результата операции присвоения в строке 12. Из сравнения строк 13 и 14 процедуры 142
LR(^) с оператором return в процедуре mwft будет следовать, что эта случайная величина равна среднему взвешенному времени завершения для построенного рас- писания. Теорема 3.6. Пусть —система работ, —правило упорядочения. Тогда LR mwft (£, 0). Доказательство. Данный результат является прямым следствием теоремы 3.5 и леммы 3.15. В строке 8 процедуры LR определяется работа с наиболь- шим рангом, что может оказаться обременительным в вы- числительном аспекте, если не принять некоторых мер пред- осторожности. Это относится и к определению р-максималь- ного множества U в строке 9. Предварительное применение к каждой работе приведенного ниже алгоритма дает инфор- мацию, которая может быть использована для эффективного выполнения вычислений, соответствующих строкам 8 и 9 процедуры LR. Пусть J есть работа. Скажем, что разбиение Blt ... . . ., Bq множества I (J) является полным относительно J, если для каждого i в {1, . . ., q} выполняются следую- щие условия. 1. Bi содержит единственный элемент, скажем I, такой, что если Тj является предшественником Tt в J, то / не.явля- ется элементом В,. Индекс I называется начальным индек- сом Вг. 2. Если j — индекс из Вг, не являющийся начальным, то /' находится в Bit где Тр — непосредственный предшест- венник Т ]. 3. Если I есть начальный индекс Bz, то В{ является p-максимальным множеством относительно J/Kt. Не составляет труда показать, что полное разбиение от- носительно J существует и является единственным. Следую- щий алгоритм описывает стратегию определения полного разбиения работы. Алгоритм 3.6. Вход: работа J. Выход: полное разбиение В,, ..., В7 относительно J и числа ..., Rq такие, что Rz = р(J/Rz.), где /z есть начальный индекс набора Bz для г=1, ..., q. Метод: 1. procedure RANK 2. begin 3. 7: = 0 4. [/: = /(/) 143
5. while (7 0 do 6. begin 7. Пусть I—такой индекс в U, что р(Кг П U) р(К, A U) для всех i в U и р (Кг Л U) < р (Kj A U) для всех / в Kt Л U, j^=i 8- q:=q+l = p(Kt(lU) = u-Kt 12. end 13. end RANK Лемма 3.16. Пусть Blt Bq и Rlt Rq по- лучены в результате применения процедуры RANK к ра- боте J. Тогда Вх, Bq—полное разбиение J, и если —начальный индекс множества Bt, то р(//K;.) = R;. Доказательство. Естественными орудиями до- казательства этого утверждения являются лемма 3.8 и метод индукции. В целом процедура стандартная, и мы оставляем детали доказательства заинтересованному чи- тателю. В предположении, что для каждого задания Tj в J известны числа Ту, Wj и P{Dy = i} для каждого i такого, что Т/ является непосредственным преемником Ту, прямая реализация алгоритма 3.6 будет иметь сложность 0(п2) в наихудшем случае, где n = | 7(J)|. Основная идея заклю- чается в расчете величин x'-t = pjX} и w'/ = p-Wj для каждого / в I (J). Это может быть проделано путем однократного просмотра графа предшествования J и занимает О(п) времени. Процедура минимизации в строке 7 также может быть выполнена путем просмотра графа предшествова- ния J снизу вверх, а именно: если Ту есть задание с не- посредственными преемниками TZj, ..., T;ft и для Tt, 1 = 1, ..., k, известны т и w (KQ, мы можем записать : k Поэтому, если мы посетим задания Тц, Tik перед посещением Ту, нам удастся вычислить р(Ду) на основе локальной информации. Поскольку строка 7 выполняется за время О(п), то общая временная сложность алгоритма 3.6 в наихудшем случае составляет О(п2).. Р(^/) - т(Ку) 144
Начального вычисления произведений p-Wj и рд,- можно избежать, если заметить, что при расчете отно- шений w(Kj)/x(Kj) происходит сокращение, описанное в лемме 3.14. Поэтому, если вместо w(Kj) и х(К;) мы вычислим и t(R/) = (1/p/)t(R/), иско- мые отношения не изменятся: Р^~т(К7) r(Kj)‘ Оказывается, w и т могут быть получены без выпол- нения начального вычисления величин w] и х] для каждого задания Т j, а именно: w (Kj) = + £ Р {Dj = Zz} w , ^(^)=T/+ip{D/ = ii}^(^z). Вернемся теперь к процедуре LR и используем пол- ные разбиения для получения эффективной реализации LR-правила упорядочения. Пусть J—работа и ^(7) = = {(Bj, Rx).... (В^, RJ}; здесь Вх, ..., Вч—полное разбиение J и R,- = p(J/A/.) = p (Bz), где /,• есть началь- ный индекс множества Bz для i = 1, .. ., q. Лемма 3.17. Пусть [|... || J2—система работ, а I}, ..., 1Г—значения программных переменных Z[l], ... ..., I [г] непосредственно перед очередным выполнением строки 6 в процедуре LR при ее применении к ty. Если то существует пара (В, такая, что li является начальным индексом в В. Лемма 3.17 гарантирует, что информация в .“В (/J, ... ..., Зд (J г) является достаточной (т. е. она может быть использована для эффективного выполнения шагов 8 и 9 в процедуре LR). В самом деле, мы предварительно определяем все ранги и p-максимальные множества, кото- рые потребуются при выполнении LR(^). Очевидно, что если ранги работ хранятся в очереди с приоритетами, то определение j в строке 8 может быть выполнено за фик- сированное время. Организация очереди с приоритетами может быть осуществлена за О (log2 г) шагов при каждом обращении к очереди [3]. Поэтому в предположении, что мы имеем ..., S(Jr), LR-правило упорядочения может быть реализовано за O(nlog2r) единиц времени, где п = |7(^)|, г—число работ в 145
3.9. Составление расписаний для многопроцессорных систем В данном параграфе мы рассмотрим детерминированные задачи составления расписаний для нескольких процессо- ров. Для того чтобы сделать проблему решаемой, вве- дем два ограничения: 1) задания независимым (т. е. <=0), и 2) все стоимости пребывания заданий в системе равны 1. Таким образом, описание задачи упорядочения состоит из матрицы времен выполнения. Пусть [т^] обозначает матрицу размером пгХп, где Хц есть время выполнения за- дания Tj на процессоре i для 1</^п и 1 [72, 11, 12]. Расписание g состоит из разбиения множества {1, . . . . .., п} натблоков Bit . .Вт, некоторые из которых могут быть пустыми, и перестановок аг элементов Д для i=l, . . . . . ., т. Блок Bt содержит индексы тех заданий, которые должны выполняться на процессоре i, а а,- определяет по- рядок выполнения заданий на i-м процессоре, l^i^/n. Рассмотрим пример, в котором n=8, т=3, а [тгД имеет вид ’2 3 1 4 6 5 2 3’ [т..]= 1 4 1 5 5 4 3 4 . 17 3 2 3 2 3 5 1 2, , Расписание | состоит из блоков Bi={3, 5, 8}, В2=0 и В3= = {1,2, 4, 6, 7} и перестановок «1=3, 8, 5, а2=А. и «;1=7, 4, 2, 6, 1. Для этого расписания имеем mwft (£)= X (£) = 47.- В следующих параграфах мы покажем, как свести такую задачу упорядочения к задаче о потоке минимальной сто- имости [42], и дадим эффективный алгоритм, входом кото- рого является матрица [тг7], а выходом— оптимальное рас- писание %*. 3.10. Сведение Пусть It(J] — mX/г-матрица времен выполнения, £— некоторое расписание. Предположим, что, согласно В, задание Tj должно выполняться на i-м процессоре и что имеется ровно k, Q0k<Zn, заданий, которые выполняются на этом процессоре следом за Tj. Величина xtj вносит вклад во время завершения задания Tj и тех k заданий., которые 14G
выполняются следом за Т}. Учитывая это, мы запишем mwftQ) таким образом, чтобы выделить члены, зависящие от тгу, а именно: mwft (|) = = (k +1) тг7 + другие слагаемые, не содержащие т;/. Если Tj выполняется на i-м процессоре последним, то коэффициент при т;;- равен Г, если Tj выполняется на i-м процессоре предпоследним, то коэффициент равен 2, и так далее. Это позволяет переформулировать нашу задачу следующим образом. Образуем матрицу С размером tn' Хп, имеющую вид Тчк [2т,-у] [«т,7р где [гт,у] обозначает матрицу, получающуюся из [т/7] умножением каждого ее- элемента на г. Элементы С обозна- чаются c(j, l^i^m', m’—mn. Неформально говоря, элементы матрицы [1тгу] пред- ставляет собой возможные вклады в mwft при условии, что задания выполняются последними на соответствующих процессорах, элементы [2тгу1 представляют собой возмож- ные вклады в mwft при условии, что эти задания выпол- няются предпоследними, и так далее. Используя матрицу С в качестве матрицы стоимости, сформулируем задачу о потоке минимальной стоимости в сети, где (i, /)-й элемент матрицы С определяет стоимость перемещения единицы потока (чего-либо) из точки в точку г/у. После постановки этой задачи мы покажем, ка- ким образом оптимальный поток определяет оптимальное расписание. В транспортной сети N [42], изображенной на рис. 3.7, каждая дуга имеет единичную пропускную способность в направлении стрелки, за исключением обратной дуги, ко- торая имеет пропускную способность п единиц. Пусть (г, г') — дуга в N и c(z, z') обозначает стоимость переноса единицы потока от z к Мы имеем с(х, г/)=сг7-для’1^г^т' и а все другие стоимости равны нулю. Поток в N определяется заданием функции h, которая ставит в соответствие дугам сети N числа из множества {О, 1.....}. Пусть (z, г') — дуга в N и h (z, z’) обозначает 147
поток от z к г'. Поток называется допустимым, если для всех дуг (г, г') в N величина h (z, z) меньше или равна про- пускной способности дуги (г, г') и поток сохраняется в каж- дой вершине N. Величина h допустимого потока равна h(x0, у9). Допустимый поток h называется оптимальным, если его величина равна п, а его стоимость т' п cost (й) = .2.2 с (xz, t/7) h (Xi, у/} i=l /=! достигает минимума по всем допустимым потокам величи- ны п. Дуга возврата Рис. 3.7. Расписание £ легко представить в виде допустимого по- тока в сети N. Для всех заданий Tj, если задание Ту наз- начено на i-й процессор и имеется k заданий, выполняемых на i-м процессоре после Ту, положим й (xz,, yy)=h (х0, х^)~ 1, где i'—km+i. Положим также h(y0, х0)=п и й(у,, Уо) = 1 для Все остальные переменные положим равными нулю. Легко видеть, что поток h является допустимым и что mwft (g)=cost(/i). С другой стороны, если тг/>0 для l^iCm и 1</<п, то любой оптимальный поток может быть интерпретирован как оптимальное расписание. Если h(xt,, уу) = 1, то Ту назначается на процессор I, а после него на этом процессоре выполняется еще k заданий, где i и k определяются следую- щей системой уравнений: Г = km -f-1, 0<й<п, (1) 1 148
Уравнения (1) однозначно определяют k и I. Вклад за- дания Тj в mwft составляет (Л+1) и в точности совпадает с коэффициентом при h(X{,, yj) в выражении для стоимости. Нетрудно показать, что расписание, полученное таким пу- тем из оптимального потока h, составляется хорошо в том смысле, что h определяет k дополнительных заданий, сле- дующих за Tj. Это вытекает из ограничений на величины хц. Если существует задание Tj с тг^=0 для некоторого i, то Tj может быть распределено на i-й процессор в момент f=0 без внесения вклада в mwft для расписания. Таким образом, мы можем игнорировать все такие задания в любых алгоритмах упорядочения. Теорема 3.7. Пусть 3 есть задача упорядочения, определяемая тХп-матрицей [т^] времен выполнения, при- чем Xij>Q для \^.i^.m и Если h — оптимальный поток в сети N, соответствующей 3, то расписание £, определяемое из h с помощью системы уравнений (1), опти- мально для 3. 3.11. Многопроцессорные алгоритмы Допустимый поток h в N называется экстремальным, если он имеет минимальную стоимость среди всех допусти- мых потоков величины Н(хо, у0). Хорошо известный метод отыскания оптимального потока заключается в последова- тельном построении экстремальных потоков h0, . . ., hp таких, что величина hp равна р, [421. Начальный поток ha имеет нулевые значения на всех дугах АЛ Предпо- ложим, что мы определили hp для некоторого р, меньшего чем] п. Для того чтобы найти hp+1, мы выделим путь из хЛ в у0 в N, вдоль которого поток может быть увеличен на одну единицу и такой, что стоимость единичного увеличения по- тока является минимальной среди стоимостей всех таких путей. Этот путь называется увеличивающим путем мини- мальной стоимости и может быть найден с помощью алго- ритма определения кратчайшего пути. Известно, что если hp является экстремальным и hp+1 получается при единич- ном увеличении потока вдоль увеличивающего пути с ми- нимальной стоимостью, то /г„+1 являетсяХэкстремальным [42]. Пусть Х = {х1, ..., хт-} и У = ]у1, ..., уп}. Увеличи- вающий путь относительно допустимого потока h опреде- ляется как последовательность различных вершин v = x0, Xi,, у!,, .... Xir, у1г, у0, удовлетворяющая следующим 149
условиям: г 1; xtk С X и у/ £ Y для 1 k г; М*«. х(,)=И(у/г, уо)=О; h. (xifs У1к) = О Для 1 < & С г; M^fc+1. = { для 1 </г^г- Следующий алгоритм, на вход которого поступает уве- личивающий путь v=Zi, z2....zr, определяет новый поток h', отличающийся от исходного h тем, что величина потока увеличена на единицу вдоль v. Алгоритм 3.7. Вход: допустимый поток h и увеличивающий путь v = ®Zi, . . ., zr относительно h. Выход: допустимый поток h, полученный из исходного при единичном увеличении потока вдоль v. Метод: procedure AUGMENT FLOW begin h(y0, x0):=h(y0, x0)4-l /i(x0, z2):=ft(z2, z3): = l ft: = 4 while k r—2 do begin h(zk, h(zk, zfe+1): = l k-.=k + 2 end end AUGMENT FLOW Легко видеть, что поток, получаемый в результате вы- полнения процедуры AUGMENT FLOW, является допус- тимым. Обозначив этот поток через h', а первоначальный — через h, получим cost (ft') = cost (Й) 4- Xc(zft, zk+i)—T c(zk+i, zk), keE к g О где E={2, 4....r—2}, O={3, 5, . . ., r—3}. Положитель- ные слагаемые получаются в результате увеличения потока от нуля до единицы в дугах (х, у), где х£Х, y£Y и h(x, у)=0. Отрицательные слагаемые соответствуют дугам, в которых мы уменьшаем поток от единицы до нуля. Увеличивающий путь минимальной стоимости можно отыскать, применяя алгоритм пометок для определения 150
кратчайшего пути в сети N- при этом функция расстояния а выбирается так, чтобы выделять в N только увеличиваю- щие пути. Пусть X1 = {xi\h(xi, для некоторого /} и Yi—{y/\h(xi, у/)=1 для некоторого г'}. Пусть функция л ставит в соответствие каждой вершине некоторое неотрица- тельное целое число. Функция расстояния d определяется следующим образом: d (z, z') = л (z)4-c (г, г')—л(г'), z£X, z' £Y и h(z, z') = 0, л (z)—c(z',z) —л (г'), z'£X, z £Y и h(z', z) = 1, л (x0) — n(z'), z = хЛ и z' £ X — Xj, л(г) — л(1/0), z£Y—Y, и z' = ya, oo в остальных случаях. Функция л введена для того, чтобы обеспечить неотри- цательность d. Пусть v=zb . . ., zr — увеличивающий путь относительно h, и пусть h' — поток, получившийся в ре- зультате применения процедуры AUGMENT FLOW к v и h. Длина v дается выражением I (v) = y,d(zi_1, Zi). i=2 Легко показать, что /(v)=n(x0)—л (z/0)+cost (Л')—• —cost (h). Следовательно, увеличивающий путь минималь- ной длины соответствует увеличивающему пути минималь- ной стоимости. Таким образом, для нахождения кратчайшего пути, увеличивающего поток, мы можем использовать алгоритм расстановки меток. Как было отмечено ранее, роль функции л заключается в обеспечении неотрица- тельности d, что позволяет нам использовать эффективный алгоритм определения кратчайшего пути. Алгоритм 3.8 в основном совпадает с алгоритмом, пред- ложенным Эдмондсом и Карпом [40] для определения по- токов минимальной стоимости. Алгоритм 3.8. Вход: сеть N, соответствующая задаче составления рас- писания 3\ Выход: оптимальный поток h. Структура данных: Хг и Y± являются множествами, h определено на XxY, л определена на X и Y (J {х0- Уо! - а и Р определены на XxUKu^o}- Метод: 1. procedure MF Г 2. begin 151
3. X1: = 0; Yp. = 0 4. for each u£ X U У (J {x0, y0\ do л (и): = 0 5. for each (x, y')£XxY do h(x, y): = 0 6. p: = Q 7. while p < n do 8. begin 9. call FIND PATH 10. call UPDATE FLOW H- p: = p4-l 12. end 13. end MFT Подпрограммы, использованные в MFT, реализованы алгоритмами 3.9—3.11. Алгоритм MFT определяет поток только в дугах (х, у), где х£Х и y£Y. Величины потоков в дугах (х0, х) и (У> Уо) Для х£Х и уg Y легко получаются из h, а поток в обратной дуге (у0, х0) равен р. В дальнейшем, говоря о потоке h, вычисленном процедурой MFT, мы подразу- меваем, что он уже расширен указанным образом на все дуги’в N. Корректность MFT основана на следующей теореме. Теорема 3.8. [42]. Пусть h—экстремальный поток в N и v — увеличивающий путь минимальной стоимости относительно h. Тогда поток h', полученный в результате применения процедуры AUGMENT FLOW Kh и kv, являет- ся экстремальным. Алгоритм 3.9. procedure FIND PATH begin call INITIALIZE LABELS S: = Y while S=?= 0 do begin Выбор y*£S такого, что a(y*)?0c>(y) Для всех У^$ $: = £-{!/*} if у* С Yt then begin Пусть х* таково, что h(x*, t/*)=l Р (%*): = «/* for each у £ S do if o(x*) + d(x*, y) <o(t/) then begin a(z/): = o(x*)4-d(x*, y) 152
P(z/): = x* end end else if a(y*) + d(y*, y0) <ff(y0) then begin ° (f/o): =o-(t/*)+d(y*, y0) Р(Уо):=У* end end end FIND PATH Алгоритм 3.10. procedure INITIALIZE LABELS begin for each у £ Y do begin or(z/):= min d(x, y) хЦХ-Х,) p («/): = x, где x таково, что d (x, у) — о (у) end end INITIALIZE LABELS Алгоритм 3.11. procedure UPDATE FLOW begin y-=P(y<>) x: = P (y) while x£Xr do begin z/': = P(x) h(x, y)'. = 1 h(x, /): = 0 y. = y’ x:=P(«/) end h (x, y)-. = 1 VY = Ли{Р(^)} for each и £ Xx U Y U \ул} do л (и): = л («) + о (и) Хх: = X, и М end UPDATE FLOW ' Оператор 5 процедуры MFT присваивает нулевые зна- чения h, что соответствует экстремальному потоку величи- ны р—0 (строка 6). Индуктивное предположение, исполь- зуемое в строке 7, таково. 153
П1. Поток h является экстремальным потоком величи- ны р. Другим ключевым фактором, определяющим коррект- ность MFT, является функция расстояния d. Вначале (стро- ка 4) л принимает значение 0 во всех вершинах А. Это оз- начает, что для всех х£Х и y£Y d(x, у)=с(х, у) и d(x0, x)=d(y, z/o)=O. Индуктивные предположения относитель- но d, используемые в строке 7 MFT, заключаются в следую- щем. П2. Для всех х £ X и y£Y, если h (х, у) =0, то d(x, у)^ ^0, и если h(x, у) = 1, то d (х, у)=0. ПЗ. Для всех х£ (X—Х\) и у£ (Y—YJ d(x0, х)=0 и d(y, Уо)>О. Процедура FIND PATH — это алгоритм определения кратчайшего пути методом расстановки пометок, который позволяет определить кратчайшие пути (относительно d) из х0 во все вершины множества X U Y U {Уо}- Поскольку d(x0, х) равно нулю для всех х£ (X—XJ, процедура MFT записывает информацию о пути в виде пометок о и |3, ко- торые приписываются только вершинам, входящим в Хг (J (J F U {Уо}- Так же как и в отношении функции h, мы полагаем, что о и f распространены на вершины, входящие в (X—X1')U{x0}, следующим образом: для всех х£(Х— —Х1)и{*0} а(х)=0 и 0(х)=хо. Процедура FIND PATH— не что иное, как хорошо из- вестный метод нахождения кратчайшего пути при неотри- цательной функции расстояния. Мы использовали свойства d (П2 и ПЗ) для ускорения процесса расстановки пометок. Первая стадия этого процесса заключается в выполнении процедуры INITIALIZE LABELS. Поскольку d(x0, х)=0 для всех xg X — Х1; мы знаем, что вершины в X—Хг бу- дут просмотрены первыми. Легко видеть, что после просмот- ра всех вершин в X—АФ мы имеем для всех у G Y о (у) = min d (х, у) A- g X - X, и P(z/)=x, где х таково, что d(x, y)=<J(y). Более того, все вершины в Y являются кандидатами на просмотр. ! С другой стороны, мы использовали преимущества П2 для осуществления двойных шагов помечивания, а именно: если у* входит в Ylt то мы знаем, что d(у*, х*)=0 и что х* является единственной вершиной, достижимой из у* от- носительно d. Поэтому мы немедленно полагаем ст(х*) = = о(р*) и P(x*)=z/* и переходим|к просмотру х*. Подве- дем итоги предыдущего обсуждения в следующей лемме. 154
Лемма 3.18. Если перед вызовом процедуры FIND PATH выполняются условия П2, ПЗ и р<лг, то после ее завершения переменные о и р удовлетворяют следующим условиям. 1. Для всех вершин и в N, отличных от х0, о (и) есть длина кратчайшего пути (относительно d) из х0 в и. 2. Для всех вершин и в N, отличных от xQ, р (и) является непосредственным предшественником вершины, находящейся на кратчайшем пути (относительно d) из хЛ в и. Процедура UPDATE FLOW использует данные о крат- чайшем пути для увеличения потока вдоль увеличивающе- го пути минимальной стоимости, а также готовит перемен- ные h, Xi, и л для использования в следующем цикле оператора while в MFT. Легко видеть, что при доказанных свойствах о и р (лемма 3.18) процедура UPDATE FLOW правильно изменяет поток h, что подтверждает индуктивное предположение Ш. Предположения П2 и ПЗ остаются спра- ведливыми для нового потока благодаря соответствующему определению л, осуществленному в конце процедуры UP- DATE FLOW. Корректность процедуры MFT следует из теоремы 3.8 и справедливости индуктивных предположений П1, П2 и ПЗ. Теорема 3.9. Процедура MFT правильно вычисляет оптимальный поток h в сети N, соответствуюицей задаче составления расписания 9*. Временная сложность MFT в худшем случае может быть определена как O(mn2+n3). Происхождение слагаемого и3 очевидно, а слагаемое тп2 появляется за счет процедуры INITIALIZE LABELS. На первый взгляд, минимизация для каждого у С Y по всем х, входящим в X—Xlt требует О(тп2) времени и, поскольку эта минимизация встреча- ется п раз, то общее время всей процедуры составляет О(тп3). Однако мы можем использовать преимущества структуры матрицы С для того, чтобы снизить общую стои- мость процедуры INITIALIZE LABELS до О(тпг). Идея заключается в том, чтобы заметить, что Сц<^с[+т< •, вслед- ствие чего минимизация для каждого у может быть ограни- чена рассмотрением только т различных вершин в X—Хъ Алгоритм MFT может быть использован для построения оптимального расписания в случае, когда каждый процес- сор становится доступным с некоторой задержкой. Пусть т1; . . ., тт — набор из т неотрицательных чисел, и допус- тим, что i-й процессор не может быть назначен на выпол- нение какого-либо задания до момента тг для 1 = 1, . . ., т. 155
Следовательно, в любом заданном расписании завершение каждого задания, выполняемого на i-м процессоре, будет задержано на тг единиц времени. Обозначим через [тг1 матрицу размера тХп, имеющую вид Т1 ... Т1 Гт.] —- Т'З ^2 * * ' ^2 _Ут ^т • • • и пусть D есть т' X n-матрица вида Если в качестве матрицы стоимостей транспортной сети N взять матрицу C+D (вместо С), то оптимальный поток для М определит оптимальное расписание относительно [тг;-1 и задержек Tj, . . ., тт. 3.12. Специальные случаи Во многих случаях нет необходимости решать задачу в такой общей постановке, как в предыдущем параграфе. Более часто может встречаться ситуация, когда т процес- соров, в основном, имеют одинаковые характеристики, за исключением их относительного быстродействия; таковы, например, печатающие устройства. Один из способов по- строения модели в этой ситуации состоит в том, чтобы по- ставить в соответствие каждому процессору положительное число и каждому заданию Tj— время выполнения т/>0. Время, необходимое i-му процессору для обслужива- ния задания ТJt равно у;т,- [28]. Очевидно, что, обозначив т^-угТ;, мы можем использо- вать MFT для определения оптимального расписания. Од- нако более экономный метод определения оптимального рас- писания базируется на следующей лемме. Лемма 3.19. Пусть а-^а^...^ап и Ьи . . ., bn — две последовательности. Перестановка а=аТ.....ап ми- нимизирует величину п ^а,Ьа{ в том и только в том случае, когда ba, baz Ьап. Доказательство. Рассмотрите перестановку мес- тами двух членов последовательности. 156
Построим матрицу Г размера rtiXn: У1 2у! Зу! ... nyj у2 2у2 Зу2 ... пу2 Г = -Ут 2уот Зут ... пут~ Обозначим (Z, /)-й элемент Г через и пусть yi,^, ... • • ’ есть такая последовательность элементов мат- рицы Г (m' = mn), что TG/i ‘ У1т'Ьп'' Предположим также, что величины т удовлетворяют условию «Объединим в пару» тй с для А=1, ..., п. Если гк объединено с ytkik, то Тк назначается на процессор ik и имеется Д—1 заданий, следующих за Тк на процес- соре ik. Доказательство корректности такого подхода основано на том, что некоторые расписания могут быть интерпре- тированы как объединение в пары величин т с элемен- тами матриц Г. Более того, лемма 3.19 дает способ опти- мального объединения в пары, которое связывает гк с уск1к- Наконец, мы видим, что это оптимальное объеди- нение в пары дает правильное расписание, поскольку величины появляются в последовательности у/,/,, ... •••’ Км раньше, чем Используя эффективный алгоритм организации очере- дей с приоритетами [3], мы _ можем построить алгоритм для составления оптимальных расписаний, временная сложность которого для наиболее трудного случая опре- деляется как O(nlogn-f-nlog/n-|-/n). Здесь O(nlogn) представляет собой стоимость сортировки времен выпол- нения, а О (nlog/n + m) есть стоимость использования очереди с приоритетами для получения величин у(1/1, ... Рассматривая еще более частный случай, возьмем зна- чения yt равными друг другу. Это соответствует случаю идентичных машин, для которого оптимальные расписания известны под общим названием «первым обслуживается имеющий минимальное время обслуживания» (SPT). Класс SPT-расписаний довольно широк, и их свойства, связан- ные с максимальным временем завершения заданий, хорошо изучены. Обзор результатов в этой области можно найти в п. 1.5.2.3 гл. 1.
ГЛАВА 4 СЛОЖНОСТЬ ЗАДАЧ УПОРЯДОЧЕНИЯ 4.1. Введение В области теории расписаний, так же как и во многих других областях, мы сталкиваемся с многочисленными задачами, которые могут быть решены относительно легко, в то время как другие похожие задачи оказываются чрезвы- чайно трудными. Например, как показано в гл. 2, оптималь- ное расписание на двух процессорах для системы из п заданий с единичными временами выполнения может быть получено за О(н2) шагов. Однако оказывается, что такая же задача с тремя процессорами требует для своего решения времени, экспоненциально зависящего от п. Это означает, что мы должны испытать практически все расписания, преж- де чем найдем наилучшее. В сущности, в настоящее время отсутствуют способы до- казательства того, что для решения задачи упорядочения на трех процессорах для системы заданий с единичными временами выполнения или других задач такого типа дей- ствительно требуется экспоненциальное время. Однако мы можем сделать следующее: показать, что существует большой класс задач, называемых ДГР-полными, которые либо все разрешимы за полиномиальное время, либо все не- разрешимы за полиномиальное время. В класс /VP-полных задач входят многие хорошо известные задачи [861, такие, как задача коммивояжера или общая задача упорядочения п работ на т процессорах, для которых математики и спе- циалисты в области информатики десятилетиями безуспеш- но ищут решения, требующие менее чем экспоненциального времени. Таким образом, имеются серьезные основания счи- тать, что ни одна из /VP-полных задач неразрешима за по- линомиальное время. Вследствие этого становится важным уметь определять, является ли задача /VP-полной, потому что в случае поло- жительного ответа нам, скорее всего, понадобится эвристи- ческий метод, позволяющий получить приближения к 158
оптимальному решению. Неудивительно поэтому, чтоэврис- тические методы для задач упорядочения привлекли к себе такое внимание (см. гл. 5 и 6). Если же задача разрешима за полиномиальное время, то мы, скорее всего, попытаемся найти точное решение. Известно, что решить задачу, слож- ность которой определяется как О(п10), в действительности не легче, чем задачу сложности 0(2"), по крайней мере для разумных значений п. Однако сложность большинства встречающихся на практике задач, разрешимых за поли- номиальное время, оказывается, растет как О(п2) или в крайнем случае как 0(п3). Таким образом, чисто эмпирически мы можем считать задачи, разрешимые за полиномиальное время, легкорешае- мыми и искать для них точные решения, а NP-полные или еще более сложные задачи — относить к классу трудно- решаемых, не подлежащих точному решению. Как читатель, наверное, догадывается, существует обширная область задач, MP-полнота (или еще большая сложность) которых не установлена, а полиномиальные алгоритмы решения также неизвестны. Примерами являются трехпроцессорная задача упорядочения с единичными временами выполне- ния заданий, а также задача составления расписания по критерию минимума среднего взвешенного времени про- хождения при произвольном отношении предшествования (см. табл. 1.1 и 1.2). 4.2. Задачи и полиномиальная сводимость В качестве отправной точки определим формально зада- чу как вопрос, на который следует ответить «да» или «нет» *). Обычно вопрос имеет «параметры», т. е. свободные перемен- ные. Совокупность выбранных значений параметров назы- вается входом задачи. Размер входа определяется как дли- на строки, используемой для представления значений пара- метров. Алфавит, используемый в строках, описывающих входы, должен быть фиксированным для данной задачи и не зависеть от входов. Пример 1. Мы можем сформулировать общую задачу составления расписаний следующим образом: «Существует ли расписание на т процессорах для множества заданий Ти Т2, . . ., Тп с отношением предшествования < и време- нами выполнения тъ т2, . . ., тп такое, что его время за- *) Такие задачи называются обычно задачами распознавания. {Прим, перев.) 159
вершения не превосходит со?» Параметрами здесь являются п, т, со, <, тъ т2, . . ., гп. Входы этой задачи удобно зада- вать с помощью следующих пяти символов: 0, 1, открываю- щая и закрывающая скобки и запятая. Числа п, т и со могут быть представлены в двоичной записи. Разделенные запятыми, они образуют начало строки. Затем следуют па- ры вида (i, /), где i и / являются двоичными числами. Пара (i, /) присутствует в строке в том и только в том случае, когда, в соответствии с отношением предшествования К, задание Тt предшествует заданию Tj. Наконец, записываем в двоичном представлении п времен выполнения тп т2) . . . . . ., тп, разделенных запятыми. Для примера положим п—Ъ, т=2, со=8, < зададим как 1<4<5 и 2<3, а {тг} определим таблицей 1 1 2 3 4 5 4 5 4 2 1 Тогда строка, задающая этот вход, есть т п со 1 < 4 4 < 5 2 < 3 т2 т3 т4 т5 101,10,1000(1,100)(100,101)(10,11)100,101,100,10,1 Ответ в этом случае гласит: «Нет». Естественно, возникает вопрос, не теряем ли мы в общ- ности, формулируя задачу в виде вопроса, требующего от- вета «да» или «нет», по сравнению с постановкой задачи оптимизации. Другими словами, можно предположить, что задача, сформулированная в примере 1 в виде вопроса, требующего ответа «да» или «нет», может быть решена за полиномиальное время, а соответствующая оптимизацион- ная задача вида «заданы п, т, < и т; каково минимальное значение t, при котором задача распознавания со входом п, tn, t, <, тъ . . ., тп имеет ответ «да»?» может не иметь полиномиального решения. Оказывается, в этом случае такая ситуация невозможна; невозможна она и для любой другой известной WP-полной задачи. Для доказательства этого утверждения предположим, что существует полиномиальный алгоритм решения нашей задачи упорядочения, заданной в виде задачи распознава- ния. Пусть алгоритм требует времени р (s) на входе длины s. 160
Для минимизации t при заданных п, т < и наборе т*) мы могли бы использовать следующий алгоритм. Во-первых, если т=0, то такое t не существует, и задача решена. Если п zn^sl, то минимальное значение t не превосходит По- i= 1 скольку в строке, представляющей рассматриваемый вход оптимизационной задачи, записаны в двоичном представ- лении все тг, мы видим, что длина входа s по меньшей мере п равна У log2T;. Отсюда следует, что оптимальное значение i=i t не превышает 2’. Наш алгоритм будет обращаться к гипотетическому ал- горитму решения задачи распознавания s раз, каждый раз с другим значением t. Мы начинаем с получения ответа для входа п, т, 2’-1, <, т;, . . ., гп задачи распознавания. Если получен ответ «да», то решаем задачу для входа п, т, 25-2, К, Tj, . . ., тп; если ответ «нет», то решаем задачу для входа п, т, 3(25'-2), <, Тх, . . ., тп. Будем продолжать в том же духе, при каждом обращении сокращая вдвое область, в которой обязательно находится оптимальное значе- ние t. Длины строк, представляющих входы каждой из рас- смотренных задач распознавания, не превосходят 2s+2, поскольку эти строки получаются из строк, представляю- щих входы оптимизационной задачи, добавлением числа t. Двоичное представление t требует не более s+1 битов плюс запятая,^поскольку /sj;2s. Таким образом, каждое обраще- ние к гипотетическому алгоритму для задачи распознавания потребует времени не более чем p(2s+2), а поскольку коли- чество обращений не превосходит s, то общее время составит не более чем sp(2s+2). Время работы нашего алгоритма есть это время плюс время, необходимое для составления строк, участвующих в различных обращениях, и принятия решения о том, какой вход рассматривать следующим. По- скольку вычисления, необходимые для этого, просты, чита- тель может убедиться в том, что эта процедура требует не более cs2 шагов, где с — некоторая постоянная. Таким об- разом, наш алгоритм затрачивает время sp (2s+2)+cs2. Поскольку р — полином, полиномом будет и sp (2s+2)+ -pcs2. Следовательно, наш алгоритм также полиномиален. *) Будем считать, что величины п, т, <, ту, . . .,т„ в оптимизаци- онной постановке задачи упорядочения закодированы так же, как и в примере 1, а со опущена. 6 Под ред. Э. Коффмана 161
Предыдущее доказательство является хорошим приме- ром, иллюстрирующим общий принцип, используемый в теории JVP-полных задач,— полиномиальное сведение од- ной задачи к другой. Вход одной задачи (в данном случае — оптимизации) был преобразован в один или несколько вхо- дов другой задачи (упорядочения в форме задачи распозна- вания), и для решения этих задач был применен гипотети- ческий алгоритм решения второй задачи. Полученные реше- ния были использованы для решения первой задачи. Су- щественным моментом являлось то, что вход первой задачи был преобразован во входы второй задачи быстро — за полиномиальное время; следовательно, входы второй зада- чи оказались не слишком длинными, во всяком случае не вышли за пределы, определяемые полиномом от длины перво- начального входа. Таким образом, мы приходим к следую- щему определению. Мы говорим, что задача 3\ полиномиально сводится к задаче 3\, и записываем это как се ^2, если задача может быть решена алгоритмом А, имеющим следующие свойства: 1. А вызывает подпрограмму А' для решения задачи 3s2 нуль или более раз. 2. Исключая время, затраченное на обращение к А', алгоритм А затрачивает время, полиномиально зависящее от длины того входа 3\, который является входом для А. Сделаем следующие замечания относительно полино- миальной сводимости. Если 3>1 сс и для .!Р2 есть поли- номиальный алгоритм, то такой же алгоритм имеется и для Для уяснения этого обстоятельства предполо- жим, что алгоритм А' требует рДп) единиц времени. Алгоритм А затрачивает время р2(п), исключая обращения к А', где р2—некоторый полином. Тогда, очевидно, про- исходит не более р2 (п) вызовов А', и ни один из аргу- ментов при обращении к А’ не имеет длину, превышаю- щую р2(п), потому что больший аргумент просто не может быть записан за время р2(п). Таким образом, каждый вызов А’ занимает не более Pi(/?2(«)) единиц времени. Поскольку таких вызовов не более р2(н), общее время, затрачиваемое алгоритмом А при длине входа п, не пре- восходит р2(и) + Р2(п) Pi(P2(n))> а это—полином, если полиномами являются р2 и Заметим, что время, затра- чиваемое алгоритмом А, может быть значительно больше времени, затрачиваемого алгоритмом А', но оно тем не менее остается полиномиальным, если таковым является время, затрачиваемое А’. 162
В дальнейшем мы покажем, что существует много раз- ных WP-полных задач среди них и различные задачи упорядочения, которые имеют то свойство, что любая задача из огромного класса задач (называемого NP) поли- номиально сводится к Таким образом, если бы неко- торая WP-полная задача имела полиномиальный алгоритм, то такой алгоритм имели бы все задачи в NP. 4.3. Модель вычислительной машины Теперь нам следует выбрать модель вычислительной ма- шины. Мы построим модель, которая является простой, но достаточно общей, чтобы читатель убедился, что с ее по- мощью можно моделировать любые реальные машины. Нач- нем с того, что любая вычислительная машина, включая все ее регистры, устройства управления, а также основную и внешнюю память, может быть представлена в любой момент времени в виде последовательности битов, называемой сос- тоянием. Конечное фиксированное количество битов слу- жит для представления содержимого основной памяти и всех цепей, обычно называемых «управлением». Только число битов, хранящихся на внешних накопителях (напри- мер, на лентах), может рассматриваться как потенциально неограниченное, поскольку, хотя каждая лента имеет ко- нечную емкость, - программа может обращаться к беско- нечному числу лент; все ленты, когда-либо использованные программой, могут считаться частью состояния, так как даже если какая-то лента в данный момент снята с устрой- ства, то она может быть вновь поставлена позднее по требо- ванию программы. Введем ряд допущений относительно работы машины. 1. Состояние машины изменяется в фиксированные мо- менты времени, называемые шагами. В промежутках меж- ду шагами состояние остается неизменным. 2. Значение каждого бита после выполнения шага за- висит от значений некоторого фиксированного набора би- тов непосредственно перед шагом. 3. При любом целом п число битов, используемых про- граммой, когда ее вход имеет длину п, не зависит от самой вводимой информации. Более того, существует константа с такая, что если программа выполняется за t шагов, то в машине может быть использовано не более ct битов. Условие 1 не требует пояснений. Условие 2 сначала мо- жет показаться не очевидным. Начнем объяснение с того, что обозначим каждый бит, находящийся на внешнем на- 6* 163
копителе, таком, как лента, в соответствии с положением этого бита относительно считывающей головки накопителя. Так, если лента сдвигается влево на один шаг, то значение бита зависит только от значения на предыдущем шаге его первого соседа по дорожке. Таким образом, в общем случае значение бита на внешнем накопителе может быть опреде- лено путем обследования конечной основной памяти, чтобы увидеть, требуется ли перемещение накопителя (в случае непрерывно вращающихся диска или барабана в этом нет необходимости), и определения значения соседнего бита, если такое перемещение требуется. Значения всех битов в основной памяти и устройстве управления вычислительной машины зависят только от них самих и от значений тех би- тов на внешних накопителях, которые в данный момент находятся под считывающими головками. Заметим, что, объем основной памяти хотя и велик, но всегда огра- ничен. Условие 3 еще более тонко. Мы можем представить себе вырожденную программу, которая при считывании входа в виде п десятичных цифр требует, чтобы был установлен t'-й пакет дисков, где i есть введенное десятичное число. Поскольку i изменяется в диапазоне от 0 до 10" — 1, число битов памяти, используемой при некотором входе, имеющем длину п, определяется экспонентой от п, хотя программа требует очень малого времени для своего выполнения,— разумеется, полиномиально (в действительности линейно) зависящего от п. Мы хотели бы узнать, всегда ли, когда программа выполняется за полиномиальное время, объем памяти также подчиняется полиномиальной зависимости. К счастью, ра- боту любой полиномиальной программы на входе длины п мы можем промоделировать за время, не превосходящее квадрата времени ее выполнения, использовав при этом фиксированный набор ячеек памяти. Количества времени и памяти, затрачиваемые моделирующей программой, могут достигать квадрата времени выполнения моделируемой программы, но если последняя полиномиальна по времени, то первая будет полиномиальной и по времени, и по памя- ти. Здесь мы не будем вдаваться в детали моделирования. Дальнейшие сведения можно найти в статье Кука и Реш- кова [31] и книге Ахо, Хопкрофта и Ульмана [3]. Читатель и сам может убедиться в том, что только в вырожденных случаях может появиться потребность использовать много различных непересекающихся областей памяти при раз- ных входах одинаковой длины. 164
4.4. Недетерминированные вычисления Выбрав подходящую модель детерминированной вычи- слительной машины, мы теперь добавим в нее чисто аб- страктное свойство — недетерминированность. Представим себе, что в обычной машине имеется команда CHOICE LI, L2. В результате выполнения этой команды одновременно образуются две копии машины, находящиеся в ее текущем состоянии. Затем каждая копия изменяет свое состояние: одна — выполняя следующей команду L1, другая — коман- ду L2. Таким образом, после /г-кратного выполнения коман- ды CHOICE образуются 2'г копий машины, причем все они могут быть в разных состояниях. Недетерминированная машина может быть использована (разумеется, абстрактно) для решения задач распознавания, если мы объявим, что ответ, выданный машиной, будет счи- таться как «да» в том случае, если одна или более копий дают этот ответ, независимо от того, сколько копий выдает ответ «нет». Мы можем абстрактно определить время, затрачиваемое недетерминированной машиной, как длину самой длинной последовательности изме- нений состояния. Пример 2. Рассмот- рим работу недетерминиро- ванной вычислительной ма- шины, изображенную на рис. 4.1. В момент времени t=Q машина начинает ра- боту, имея состояние s0. Она выполняет команду CHOICE и образует две ко- пии В СОСТОЯНИЯХ Si И SjB t=0 t=1 t“Z t=3 t=4 Рис. 4.1. момент/=1. В состоянии s2 машина выполняет команду, отличную от CHOICE, пере- ходя в состояние s5. В противоположность этому, в состоя- нии Sjl команда CHOICE выполняется, и двумя новыми состояниями оказываются s3 и s4. В s4 нет следующего состояния, и вырабатывается ответ «нет» (т. е. не печатается ответ «да»). Из состояния s3 происходит переход к s6 в момент /=3. На последнем шаге, вероятно, печатается «да», потому что для se показан этот ответ. Мы теперь знаем, что эта недетерминированная машина дает ответ «да» для 165
любого входа в s0. Мы можем проследить изменения состоя- ния до момента /=4, когда обнаруживается, что все копии вышли на оператор вывода и дальнейшие переходы невоз- можны. Это означает, что все копии машины остановились. Мы говорим, таким образом, что вычислительная машина, начав работу в состоянии s0, затрачивает 4 единицы времени. Следует подчеркнуть, что время, «затрачиваемое» не- детерминированной машиной, может быть намного меньше времени, необходимого для ее детерминированного модели- рования. Как было отмечено, недетерминированная маши- на, затрачивающая время п, может достигнуть (при условии, что выполняются только команды CHOICE) 2" различных состояний. Обычное моделирование такого устройства на реальной машине займет по меньшей мере 2" единиц вре- мени. Таким образом, представляется, что существует по крайней мере некоторое количество задач, которые могут быть решены на недетерминированной машине за полиноми- альное время, но требуют экспоненциального времени на реальной машине, хотя никто не смог доказать это утвер- ждение (или, наоборот, показать, что недетерминированные машины можно эффективно моделировать на реальных машинах). Мы можем определить класс NP как совокупность всех задач, которые могут быть решены на недетермини- рованной машине за полиномиальное время. Определим Р как класс задач, решаемых детерминированной машиной за полиномиальное время. Назовем задачу 53 NP-полной, если любая задача из NP полиномиально сводится к Из только что данного определения следует, что если некоторая MP-полная задача имеет полиномиальный детер- минированный алгоритм, то все задачи в NP также имеют такой алгоритм (т. е. P=NP). Таким образом, если одна Л/'Р-полная задача имеет полиномиальное решение, то и все остальные—тоже. Поскольку в класс МР-полных задач входят такие задачи, как задача коммивояжера, задача о ранце, общая задача составления расписания, и ни для одной из них не найден полиномиальный алгоритм (и притом не из-за недостатка попыток), мы имеем осно- вания предполагать, что все WP-полные задачи требуют при детерминированном подходе более чем полиномиаль- ного времени, а в действительности, по-видимому, тре- буют экспоненциального времени. Пример 3. Покажем, что общая задача составления расписания входит в NP. В действительности задача яв- 166
ляется Л^Р-полной, хотя для того, чтобы это показать, требуется приложить дополнительные усилия. Алгоритм для недетерминированной машины может быть построен следующим образом. Допустим, что нам дано п заданий 7\, Т2, . .., Тп, которые должны быть упорядочены на m процессорах, и что ограничения предшествования < за- даны в виде списка пар Т; < Т j. Предположим также, что времена выполнения ти т2, .... т„ заданы в виде списка двоичных чисел. Наконец, будем полагать, что предельное время со также задано в двоичном представ- лении. 1. Многократно применяя операцию CHOICE, назна- чим каждому заданию 7\ процессор Рц и время начала выполнения tt < со. Тем самым мы угадываем расписание. 2. Для каждых k и I, 1 & </^п, убедимся в том, что либо Pj ^=Pj либо tk + т/гС; tt, либо /z + tz^^. Тем самым мы убеждаемся в том, что никакие два задания не назначены на один и тот же процессор в одно и то же время. 3. Для каждого k, проверим, что выпол- няется tk + Tk со. Тем самым мы убеждаемся в том/ что все работы завершаются до со-го шага по времени. Для того чтобы определить время, затрачиваемое при- веденным недетерминированным алгоритмом, установим нижнюю границу длины входа (V, предполагая, что вход закодирован так, как в примере 1. Поскольку со, п, пг и значения т должны быть представлены в двоичной записи и разделены запятыми и поскольку имеется п вре- мен выполнения, мы видим, что п. W>n4-log2/n4-logaco +Slog2Tt-. (1) c=i Оценим теперь сверху время Т, затрачиваемое алгорит- мом. Будем с явным запасом считать, что для записи сло- жения или вычитания /г-разрядных чисел требуется k еди- ниц времени. Тогда шаг 1 требует не более О(п(log2co+ +log2m)) времени для записи номера процессора и времени начала выполнения каждого из п заданий. Заметим, что к окончанию выполнения шага 1 существует огромное число копий машины. Однако длина любого пути'в дереве копий (как на рис. 4.1) сравнительно невелика. На шаге 2 рассматривается не более п2 (в действитель- ности п(п—1)/2) пар (k, I). Арифметические действия по выполнению трех проверок на шаге 2 требуют не более 167
0(log2Tfc4-log2Tz+log2co4-log2m) времени. Таким образом, легко показать, что общее время, затрачиваемое на вы- полнение шага 2, составляет не более О ( п2(п 4- log2 <в +log2m . Наконец, шаг 3 занимает, очевидно, О nlog2<r>+ 2 log2T- I времени. \ < = i Следовательно, доминирующим чиваемое на выполнение шага 2, и является время, затра- мы получаем / п \ Т < си8 \п + log2 со + log2 tn -I- у logs t,J, (2) где с — некоторая константа. Из (1) и (2) получаем T^cN3. Таким образом, выражение (1) дает нижнюю оценку длины входа, а (2) — верхнюю оценку времени работы, и мы мо- жем быть уверены в том, что время работы нашей недетер- минированной программы решения общей задачи составле- ния расписаний определяется полиномом не выше третьей степени от длины входа. Следовательно, общая задача составления расписаний входит в класс NP. 4.5. VP-полная задача Теперь мы можем показать, что VP-полной является задача о выполнимости булевских выражений, которая для заданного булевского выражения состоит в следующем: существует ли такая подстановка значений истинности О и 1 (ложь и истина) в пропозициональные переменные, при которой выражение оказывается истинным? Напомним, что для доказательства .VP-полноты задачи о выполнимости необходимо показать, что наличие для нее детерминированного полиномиального алгоритма влечет за собой наличие детерминированного полиномиального алгоритма для любой задачи 5s, входящей в NP. Это означает, что 9* полиномиально сводится к задаче о вы- полнимости. Заметим, что полиномиальное время, необхо- димое для сведения 5* к задаче о выполнимости, не обя- зано быть одинаковым для всех 5s. Теорема 4.1. Задача о выполнимости булевских вы- ражений является NP-полной. Доказательство. Заметим сначала, что задача о выполнимости входит в NP. Используя процедуру 168
CHOICE, мы можем сгенерировать все возможные наборы значений истинности логических переменных. Для каждого из 2" способов приписывания переменным значений «истина» или «ложь» создается одна копия машины. На это требуется только О (и) шагов, поскольку процесс яв- ляется недетерминированным. Теперь значение булевского выражения может быть вычислено каждой копией машины на основе своего набора значений истинности. Читатель должен без труда построить детерминированный алгоритм, осуществляющий это вычисление за О(№) шагов, где N — длина исходного .булевского выражения (заметим, что ^N) *). На самом деле существует алгоритм со сложностью O(N). Таким образом, недетерминированная машина мо- жет дать ответ на вопрос, является ли входное выражение выполнимым'за время, полиномиально зависящее от длины этого выражения. Заметим, что недетерминированная ма- шина дает ответ «да», если хотя бы одна ее копия дает та- кой ответ. Это свойство является принципиальным, так же как способность машины порождать свои копии. Теперь мы должны проделать трудную часть работы, показав, что любая задача входящая в NP, полино- миально сводится к задаче о выполнимости. Напомним сформулированные в § 4.3 допущения, связанные с нашей моделью машины. Предположим, что нам дана недетерми- нированная машина, в которую загружена программа решения задачи З3, и что эта программа затрачивает время р<у>(п) при длине входа п, где рдь— некоторый по- лином. Допустим, что для решения задачи о выполнимости задан гипотетический полиномиальный детерминированный алгоритм А, скажем, со сложностью р(п). Тогда мы можем построить следующий полиномиальный детерминированный алгоритм для решения задачи З3: для любого задан- ного входа 1, имеющего длину п, А<^ строит за полино- миальное время булевское выражение В,, которое является выполнимым в том и только в том случае, когда недетер- минированная машина дает ответ «да» при входе I. Выра- жение В, будет иметь порядка (и)]2 переменных Хд, *) Мы подразумеваем здесь, что «длина» булевского выражения есть число символов +, •, скобок и пропозициональных переменных в строке, определяющей выражение. В действительности, поскольку все задачи должны быть записаны в некотором фиксированном алфавите, пропозициональные переменные должны быть занумерованы и закоди- рованы в двоичной или иной форме. Таким образом, мы можем даже показать, что если в выражении встречается п переменных, то п log2 n<iV. 169
l^i^cp<p(n), О С(«), гДё с—верхняя граница отношения числа использованных битов к числу выпол- ненных шагов. Постоянная с существует согласно допу- щениям нашей модели. Интуитивно ясно, что Х;/=1 в том и только в том случае, когда i-й бит, используемый про- граммой, равен 1 в момент t. Заметим, что, поскольку программа недетерминированно выполняется в течение не более рд> (п) шагов, нам нужно заботиться только о тех моментах, когда 0^.1 р<р (п). Мы также предполагаем, что на каждом шаге используется не более с битов, при этом число шагов не превышает р^ (м). Таким образом, имеется не более ср<р (п) битов, которые следует принимать во внимание. Из наших допущений следует, что машина использует одни и те же биты^при любом входе длины п. Теперь выражение В, может быть записано в виде булевского произведения («и») трех выражений С, D и Е, которые утверждают следующее. 1. Выражение С утверждает, что начальная конфигу- рация машины является корректной. Это означает, что на вход подано I, программа присутствует в машине и счет- чик команд (адресов ячеек) указывает на первую команду, а все неиспользуемые разряды установлены в 0. Таким обра- зом, С просто есть булевское произведение переменных Х;0 или 1 Xi0 для всех г, 1 i^cp^ (п), и С имеет длину О(р^(п)). 2. Выражение D означает, что в каждый момент t 1 содержимое каждого бита i такое, каким оно должно быть, исходя из значений в момент t — 1 фиксированного числа битов, от которых зависит данный i-й бит. Если команда, выполненная машиной в момент t—1, не является коман- дой CHOICE, то значение бита i в момент t однозначно определяется содержимым соответствующих битов в мо- мент t—1. Если же в момент t—1 выполняется команда CHOICE, то изменяется только счетчик адресов, и в мо- мент t имеются два разрешенных состояния фиксирован- црго числа битов этого счетчика. Таким образом, мы можем записать D в виде произ- ведения выражений Dt для 1 t р<р (и) и Dit для всех i и t, 1 «С t рдл (п), 1 i «С срд* (»)• При этом Dlt утверж- дает, что либо в момент t—1 выполняется команда CHOICE, либо нет, и тогда Xit сохраняет свое значение в момент Dt утверждает, что либо в момент t—1 вы- полняется команда, отличная от CHOICE, либо выпол- 170
няется CHOICE, и тогда счетчик адресов в момент t имеет одно из двух возможных значений, а все остальные биты имеют в момент t те же значения, которые они имели в момент t—1. В соответствии с нашими допущениями о машине каждое из выражений Dit может быть записано в виде строки фиксированной длины, не зависящей от п. Таким образом, их общая длина составляет O(/?i^(n)), и мы можем записать их за это время с помощью очевидного алгоритма. Каждое выражение Dt требует строки длиной О (п)) и может быть легко записано. Для этого вполне достаточно О(^(п)) времени и памяти. Следовательно, все выражение D может быть записано за время (и в па- мяти), определяемое как О(р^>(м)). 3. Выражение Е утверждает, что последовательность конфигураций, описываемых переменными Xit, заканчи- вается печатью «да». Без потери общности предположим, что имеется определенный бит /, который устанавливается в 1 в том и только в том случае, когда вырабатывается ответ «да». Таким образом, Е является попросту суммой выражений Хн для Ясно, что длина Е есть О (р<р (п)). Легко проверить, что «да» является ответом в задаче при входе I в том и только в том случае, когда выра- жение B[ — C D E выполнено. Выполняющий набор зна- чений истинности может быть легко определен по вычис- лению, приводящему к печати ответа «да», и такое вычисление может быть легко определено по набору зна- чений величин Xit, при котором выполняется В,. Мы убе- дились в том, что В{ имеет длину где q — неко- торая константа, и что В, может быть построено по I за время О(р^>(ц)). Теперь мы можем применить гипоте- тический алгоритм А к В, и определить, выполнимо ли В,. Поскольку А требует р fap^ (п)) времени при входе Bt, то весь этот алгоритм требует О (р^> (я) + р (с1р2^> (п))) времени и является детерминированным, потому что А и способ построения Bt по I являются детерминирован- ными. Поскольку р и р$> представляют собой полиномы, то время выполнения А^>, очевидно, полиномиально зави- сит от п, т. е. от длины входа /. 171
Таким образом, мы показали, что произвольная за- дача 5s, входящая в NP, полиномиально сводится к задаче о выполнимости. В действительности мы можем показать большее, чем утверждается в теореме 4.1. Определим задачу о выпол- нимости конъюнктивной нормальной формы (КНФ) как вопрос, является ли выполнимым булевское выражение, представленное в конъюнктивной нормальной форме (про- изведение сумм литералов*)). Определим задачу о k-вы- полнимости как вопрос, является ли выполнимым булев- ское выражение в КНФ, содержащее точно k литералов в каждом сомножителе (выражение в k-КНФ). Пример 4. Выражение (х + i/4-z)( “] х ф- w ф- "] z) за- писано в 3-КНФ. Выражение (хф-у + г) (к'ф- "] х) (гф- “|у) записано в КНФ, но. не в /г-КНФ ни при каком k. Нетрудно показать, что задача о 2-выполнимости от- носится к классу Р; в действительности ее можно решить детерминированным алгоритмом за линейное время. Однако оказывается, что ситуация меняется при k^3, поскольку мы можем доказать следующее. Теорема 4.2. Задача о 3-выполнимости является NP-полной. Доказательство. Вначале заметим, что выражение Вг, построенное при доказательстве теоремы 4.1, представ- лено почти в КНФ. В самом деле, выражение С представ- лено в КНФ, поскольку оно является произведением многих «сумм», состоящих из одного литерала. Выражение Е пред- ставлено в КНФ потому, что оно является «произведением» одной суммы литералов. Выражение D является произве- дением выражений Dt и Dit, введенных при доказательстве теоремы 4.1. Каждое из этих выражений имеет фиксиро- ванную длину, не зависящую от длины входа I. Следова- тельно, используя законы булевой алгебры, мы можем перевести это выражение в КНФ, возможно увеличив при этом его длину в постоянное число раз, но не более. Таким образом, доказательство теоремы 4.1 может быть исполь- зовано также для того, чтобы показать Л^Р-полноту задачи о КНФ-выполнимости, и мы можем считать этот результат доказанным. Теперь для того, чтобы доказать МР-полноту задачи о 3-выполнимости, покажем, что КНФ-выполнимость может быть сведена к ней. Предположим, что нам задано выраже- *) Литералом является переменная или отрицание переменной (т. е. х или ~]х). 172
ние E=Ei, Е2, . . Ek в КНФ, где каждое из Et является суммой литералов. Мы можем построить новое выражение F в 3-КНФ такое, что F является выполнимым в том и только в том случае, когда Е является выполнимым. Время, за- трачиваемое на построение F, будет полиномиальным по отношению к длине Е, что даст полиномиальное сведение КНФ-выполнимости к задаче о 3-выполнимости. Исследуем отдельно каждый элемент Ег в зависимости от того, сколько литералов он имеет. Случай!. Et имеет один литерал х. Введем две новые переменные у и z и заменим Е, на (x+i/+z) (x+«/+“|z) • ♦ (хф- ”| y+z) (х+ у+ 1 z). Тогда подстановка значений ис- ходных переменных (включая х) делает Ег истинным в том и только в том случае, когда существует такая подста- новка значений исходных переменных и переменных у и г (для переменных у и г подойдет любая подстановка), что модифицированное выражение оказывается истинным. Случай 2. Ei имеет два литерала. Этот случай ана- логичен случаю 1. Случай 3. Ei имеет три литералаЛЗдесь не требует- ся никакой модификации. Случай 4. Et имеет k>3 литералов, скажем Ег = =Х!+х2+. . .+xfe. Введем новые переменные уи у2, . . . . . -,ук-з и заменим Ег на (xi+x8+#i) (х3+"] z/i+t/2)« •(*« + ^г/г + г/з). • .(XA_g+ Если £=4, то замена для Е; есть (Х1+Х2+У1) (х3+х4+ "] yt). Читателю предоставляется проверить, что для всех набо- ров значений истинности, которые приводят к выполнению Ei, и только для них, существуют наборы значений истин- ности для всех переменных, включая все у,, которые делают истинным построенное выражение. Определим F как произведение выражений, построенных из всех выражений Ег. Заметим, что ни в одном из случаев длина модифицированного выражения не превышает длину исходного более чем в 32 раза *), при этом F легко может быть построено по Е, разумеется за полиномиальное отно- сительно длины Е время. Таким образом, КНФ-выполни- мость полиномиально сведена к 3-выполнимости. *) В предположении, что каждая переменная считается одним сим- волом. Если мы закодируем имена переменных в двоичном коде, мы должны будем включить множитель в виде логарифма от длины входа, но сведение все равно остается полиномиальным. 173
4.6. NP-полнота задачи составления расписаний Теперь мы готовы к тому, чтобы полиномиально свести задачу о 3-выполнимости к общей задаче составления рас- писаний, показав тем самым, что последняя является NP-полной. Теорема 4.3. Задача составления расписаний яв- ляется N Р-полной. Доказательство. Мы сейчас покажем, как по- строить за полиномиальное время из любого булевского выражения Е, заданного в 3-КНФ, вход S задачи упорядо- чения такой, что выполнение всех заданий из S может за- вершиться до установленного срока в том и только в том случае, когда Е является выполнимым. Вход S будет иметь пустое отношение предшествования и всего лишь два про- цессора. Времена выполнения заданий в S будут огромны, а именно экспоненциальны от длины Е. Однако, поскольку времена выполнения представлены в двоичной записи, длина представления S будет все еще полиномом от длины Е, и S может быть записана за время, которое является полиномом от длины Е. Вначале положим Е - Е^ Е2 . . . Eh и пусть Ej=(xj-\- +yj+2j), где каждое xjt у} и zj является литералом (т. е. пе- ременной или ее отрицанием). Пусть в выражении Е встре- чаются р переменных, скажем, fi, и2, . . .,vp. Построим множество заданий, время выполнения каждого из которых является (А+р+1)-разрядным десятичным числом. Младшие разряды соответствуют суммам £;, а старшие разряды, за исключением самого старшего, соответствуют переменным. Назначение самого старшего разряда мы объясним позднее. 1. Для каждой переменной vit построим задания Т; и Т'( с временами выполнения т(- и т-. Деся- тичные представления т,- и имеют 0 во всех разрядах, за исключением следующих: а) в каждом представлении имеется 1 в (г'4-1)-м разряде слева (в разряде, соответствующем vz); б) в представлении т,- имеется 1 в /-м разряде справа (в разряде, соответствующем Ej), если подстановка и; = 1 делает Ej истинным, т. е. если один из литералов ху-, у^ или Zj- представляет собой vp в) в представлении имеется 1 в /-м разряде справа, если одно из ху-, yf, Zj есть “]v(- (т. е. подстановка v,- = 0 делает Е; истинным). 2. Для каждого j, 1 «С построим Два задания Uj и U'j. Пусть времена выполнения U juU] суть оу = oj = 174
т. е. в ст- и а]- все разряды равны 0, кроме единственной единицы в разряде, соответствующем Е.-. p+k 3. Пусть VQ—задание с временем выполнения р0 = 2 i=k Тем самым р0 имеет 1 в самом левом разряде и во всех разрядах, соответствующих переменным, и 0 — в разрядах, соответствующих всем Е-. p+k 4. Пусть Vj — задание с временем выполнения pt — 2 Ю1 i = 0 Задания Времена выполнения 1 р Л П , Т[ ч , П- 1 1 ... 1 ... 11 Uj, и- 6J , 6j 1 И Р<> 1 11... 1 Ц Р\ 1 11... 1 11 ... 1 О) 1 22... 2 33... 3 Рис. 4.2. Распределение ненулевых цифр для времен выполнения различных заданий представлено на рис. 4.2. Для завершения описания задачи упорядочения S по- ложим p+k-i fe-i <0-10^*+2 2 +3 210' 1=0 Распределение цифр со также представлено на рис. 4.2. Заметим, что сумма всех времен выполнения в точности равна 2<о; следовательно, ответ «да» для S будет в том и только в том случае, когда времена выполнения могут быть разделены на два равных набора. Мы можем показать, что S имеет ответ «да» в том и только в том случае, когда Е является выполнимым. Достаточность. Предположим, что Е выполнено, если в и, подставлено значение (0 или 1) для каждого Е Основываясь на этом наборе значений, выберем множество заданий, общее время выполнения которых в точности рав- но и. Эти задания будут выполняться на одном процессоре в любом порядке, а оставшиеся работы будут выполняться на другом процессоре, и таким образом будет соблюден срок (О. 175
Вначале выберем 7\, если а,- = 1, и T't, если а; = 0. Поскольку Е выполняется при заданном наборе значений, мы знаем, что в десятичном представлении суммы времен выполнения заданий, выбранных таким способом, в первых k разрядах справа стоят цифры 1, 2 или 3. Ни один нуль здесь появиться не может. Поэтому мы можем выбрать еще от нуля до двух заданий Uи U] для каждого J, а это означает, что сумма времен выполнения будет иметь цифры 3 в первых k разрядах справа. Заметим также, что поскольку мы выбрали Т,- или Т'{, но не оба сразу, в крайнем слева разряде суммы времен выполнения имеем О, а в каждом из р следующих разрядов имеем 1. Следова- тельно, выбирая теперь Ко, мы получаем задания с общим временем выполнения, в точности равным со. Необходимость. Вначале заметим, что Ко и Vr должны выполняться на разных процессорах, поскольку их сум- марное время выполнения превышает со. Рассмотрим другие задания, выполняемые на том же процессоре (скажем, PJ, что и Уо. Чтобы быть уверенным в том, что сумма времен выполнения всех задач, выполняемых на Р1У будет иметь 2 в разрядах со второго по (р + 1)-й, нужно назначить на Pt в точности одно из заданий 7\ и T’i для каждого i. Сумма времен выполнения выбранных заданий должна иметь по крайней мере одну единицу в каждом из k крайних справа разрядов. Это объясняется тем, что если бы в j-м разряде справа не было единицы, то даже выполнение обоих зада- ний Uj и U 'j на Рг не обеспечило бы наличия тройки в этом разряде у общего времени выполнения для процессо- ра Л- Теперь мы можем легко построить набор значений пере- менных, приводящий к выполнимости Е. Конкретно, под- ставим в Xj значение 1, если Ту выполняется процессором Р1г и подставим 0, если Tj выполняется процессором Pv Предыдущий анализ показывает, что при такой подстановке каждое £у получает значение 1. На самом деле мы доказали большее, чем утверждает теорема 4.3, поскольку не использовали ограничений пред- шествования и рассматривали только два процессора. Следствие 4.1. Задача упорядочения, в которой отсутствуют ограничения предшествования и имеются только два процессора, все еще остается NР-полной. Более абстрактно, можно сказать следующее. Следствие 4.2. Для заданного списка целых чисел за- дача определения того, можно ли этот список разбить на две части таким образом, чтобы сумма чисел в одной части 176
оказалась бы в точности, равна сумме чисел в другой части, является NP-полной. Следует отметить, что в предыдущем доказательстве WP-полноты задачи упорядочения важную роль играли большие значения времен выполнения. Нам могут возра- зить, сказав, что действительный «размер» задачи зависит не от длины строки, в которой записаны времена выполне- ния, а от суммы величин этих времен выполнения. Для слу- чая фиксированного числа процессоров и отсутствия огра- ничений предшествования читатель без особого труда най- дет алгоритм, который требует время, пропорциональное сумме времен выполнения (но экспоненциальное от суммы длин десятичных представлений времен выполнения). Данная ситуация, бесспорно, выявляет скрытый изъян теории WP-полных задач. Способность различных аспектов задачи сделать эту задачу трудной не всегда пропорцио- нальна длине записи, описывающей тот или иной аспект. В рассмотренном нами случае интуитивно чувствуется, что из-за своей длины числа, записанные в десятичном виде, создают гораздо большие трудности в проведении анализа, чем другие аспекты задачи упорядочения. Например, запись ограничений предшествования требует по крайней мере нескольких символов для каждого ограничения; таким образом, представление ограничений предшествования будет иметь относительно большую длину при меньшем вкладе в сложность задачи. К счастью, для задач составления расписаний мы можем показать, что и в частном случае, когда времена выполнения равны 2 или даже 1 (но при наличии ограничений пред- шествования), они все еще остаются WP-полными. Следова- тельно, в некотором смысле структура ограничений пред- шествования вбирает в себя всю комбинаторную сложность, которая содержалась в больших временах выполнения. 4.7. NP- пол нота задачи минимизации среднего взвешенного времени прохождения Перед тем как перейти к результатам, упомянутым ранее, рассмотрим другой тип задач упорядочения, в которых величины времен выполнения способствуют возникновению WP-полноты. Задача минимизации среднего взвешенного времени про- хождения (поставленная в виде задачи распознавания) сос- тоит в следующем. Заданы набор из т процессоров для выполнения п заданий с временами выполнения тп т2, . . . 177
..тп, веса wt, w2, . . .,wn, предельная стоимость L и огра- ничения предшествования <. Спрашивается, существует ли п такое расписание, что где /г есть время завер- 1=1 шения t-ro задания. Теорема 4.4. Задача минимизации среднего взве- шенного времени прохождения является NP-полной. Доказательство. Мы можем полиномиально свести к этой задаче задачу, упомянутую в следствии 4.2 теоремы 4.3. Последняя задача является АР-полпой и за- ключается в ответе на вопрос, может ли заданный список целых чисел ах, а2, . . ., ап быть разбит на два подмножества Si и S2, обладающих следующими свойствами: 1) SxU sa={l, 2, . . ., п}; 2) S1nS2=0; 3) ,2а;= X az. I € Sj i 6 Sg По заданному входу щ, а2, . . ., ап этой задачи (задачи о разбиении) мы можем за полиномиальное время построить вход задачи минимизации среднего взвешенного времени прохождения следующим образом. Пусть имеются два про- цессора Pt и Р2, пустое отношение предшествования и п заданий Ти Т2, . . Тп таких, что время выполнения и вес t-го задания равны аг. Положим предельное время L 1 равным п Д2 п 1=1 J 1=1 Предположим, что для этого множества заданий имеется некоторое расписание, в котором процессор Pi последова- тельно выполняет задания с временами выполнения (и, следовательно, весами) Oj, о2> • Oj, а процессор Р2 выполняет остальные задания с временами выполнения pi, р2, . . ., Рь (в указанном порядке). Заметим, что сущест- вует однозначное соответствие между набором всех и объединением всех <т; и р(-. Среднее взвешенное время про- хождения для приведенного расписания есть ! i k i 2^-2^+ 2p,-2pp i=i /=i i=i z=i (3) поскольку i-e задание, выполняемое на Pi, имеет вес о, и I время окончания 2<rz (для Рг — аналогично). Алгебраи- i=i 178
ческие преобразования над (3) дают (4) п п Пусть А = 2 и В = 24 Тогда предельное время L 1=1 4 = 1 I * равно Л2/4+В2/2. Положим Аг = Тогда = А — >=1 <=1 —Лх, и (4) может быть представлено в виде F = + л2у. (5) Поскольку из (5) следует, что F>L, за исключением слу- чая АГ=А12, при котором F=L, мы видим, что ответ для построенного входа задачи минимизации среднего взвешен- ного времени гласит «да» в том и только в том случае, когда ответ для входа alt а2, . . ап задачи о разбиении есть «да». Следовательно, имея решение задачи о разбиении, мы мо- жем выполнять соответствующую половину заданий на процессоре Pi в любом порядке. Наоборот, имея решение за- дачи минимизации среднего взвешенного времени прохож- дения, мы можем поместить величины аг, соответствующие заданиям, выполняемым на процессоре Р1? в один набор Si, а остальные поместить в S2, получив при этом решение за- дачи о разбиении. Следствие 4.3. Задача минимизации среднего взве- шенного времени прохождения с двумя процессорами при отсутствии ограничений предшествования является NP- полной. 4.8. NP-полнота задачи составления расписаний] при единичных временах выполнения Определение. Задача составления расписаний при единичных временах выполнения (ПЕТ-задача) в форме за- дачи распознавания определяется следующим образом: существует ли расписание для п заданий на т процессорах с тг=1, предельным временем со и ограничениями предшествования <? Легче оперировать с модифицированной версией этой задачи, в которой в каждый момент времени оказывается доступным разное количество процессоров. | Модифицированная \УЕЛ-задача состоит в том, чтобы определить, существует ли расписание для п заданий с 179
T;=l, IsCt^n, заданным предельным временем со, огра- ничениями предшествования < и с m(i) процессорами, до- ступными в момент времени i, ОСдС® *)• Вначале мы покажем, что модифицированная UET-зада- ча является /VP-полной (путем полиномиального сведения к ней задачи о 3-выполнимости). Затем покажем, что UET- задача упорядочения является /VP-полной, сведя к ней моди- фицированную UET-задачу Лемма 4.L Модифицированная UET-задача явля- ется NP-полной. Доказательство. Сведем задачу 3-выполнимо- сти к модифицированной UET-задаче. Пусть E=Ei . . . Ek — булевское выражение в 3-КНФ, и пусть Fj^Xj+yj+Zj, где Xj, у, и Zj являются литералами. Пусть vlf v2, . . ., vp— переменные, входящие в Е. Построим вход модифицированной UET-задачи следующим образом. Заданиями являются: 1) Тц кТц, О «С/«Ср; 2) и S;, 1 i р; 3) Du-, Задания Т и S представляют переменные, а задания D описывают множители, входящие в выражение для Е. Ограничения предшествования заданы следующим обра- зом. 2. 7\, ;•_!<s(. и Tt•, Кs;, 3. Рассмотрим Dfj, и пусть ара3а3—двоичное представ- ление / (заметим, что случай «1 = а2 = а3 = 0 встретиться не может). Напомним, что Et есть xt-\- у1-\-2;. Пусть лите- ралы Х(, У[ и г; представляют собой переменные vri, vr2 и оГз либо их отрицания. Положим ТГг1 р<Оц, если Xf есть vrt (а не “| сГ1) и аг = 1 или х,- = ~| vri и ах = 0. Иначе, положим Tr^ p<Dij- Аналогично, Т р<^В^, если //, —г\2 и а2 = 1 или у,= "|оГ1 и а2 = 0; иначе, Тг^р<,Пц. Нако- нец, ТГз, р < О(/, если z(- = оГз и а3 = 1 или zz = "] иГз и а3 = 0; иначе, Tr3<p<Dif. *) Процессор, доступный в момент времени I, может быть исполь- зован для выполнения задания, начинающегося в момент i и завершаю- щегося в момент времени i+1. 180
Срок завершения ®=р+3. Число процессоров т(1), доступных в момент i, определяется следующим образом: т (0) = р, щ(1) = 2р4-1, т (t) = 2р 4- 2, 2 i т (p-f-1) =k + p+ 1, т (р 4- 2) = 6/г. Мы можем показать, что построенная модифицированная UET-задача имеет решение в том и только в том случае, когда имеет решение исходная задача о 3-выполнимости. Неформально, идея доказательства состоит в том, что мы можем считать, что о,- (или ~] о;) принимает значение «истина» в том и только в том случае, когда Т[0 (или соответст- венно Ti0) выполняется, начиная с момента времени 0. Мы увидим, что наличие S и S приводит к тому, что ровно одно из заданий Ti0 и TiB начинает выполняться в момент времени 0, а другое выполняется, начиная с момента вре- мени 1. Тогда требование, чтобы k-\-tn-'r\ заданий выпол- нялись, начиная с момента времени р4"1> равносильно требованию того, чтобы для каждого i существовал один момент j такой, что О,-7- может выполняться, начиная с этого времени (таких моментов не может быть больше одного). Но это условие эквивалентно заявлению, что сумма членов, представленных с помощью D;, имеет значение «истина», когда те из о,- и ц(., для которых соответствующие TiB и Т/0 выполнялись в момент времени 0, получили значение «истина». Вначале покажем, что в любом решении модифициро- ванной UET-задачи выполнение обоих заданий Т iB и Т iB для любого i не может начинаться в момент 0. Предполо- жим противное. Тогда, поскольку iB = р, должно найтись / такое, что ни TJQ, ни TJB не начинают выполняться в момент времени 0. В таком случае ни Sy-, ни Sf не начнут выполняться в момент / или ранее, потому что, например, перед Sy должны выполняться одно за другим задания Т/о, ^ут> /-1- Таким образом, общее число зада- ний, которые могут быть выполнены, начиная с момента / или до него, определяется следующим образом: 1) не более р(2/4-1) заданий типа Т и Т, а именно TiB, Tit, ..., Т(у, если Т1В выполнялось в момент времени 0, и TiB, Тц, ..., Tf,7_1 в противном случае; 181
2) не более 2(/—1)- заданий типа S, а именно Sp Sp s2, s2, .... Sy_p S,..,. Следовательно, общее число заданий, которые могут быть начаты к моменту времени /, не превосходит 2р/+2/+ +р—2. Однако для IC/CP имеем ^m(i) = 3P+l+(j-2) (2p + 2) = 2pj + 2j + p-l. i= О Мы заключаем, что в любом решении нашей модифи- цированной UET-задачи только одно из заданий Tit) и Ti0 может начинаться в момент времени 0. Более того, зная, какие из заданий Т;о и Т!о выполняются в момент вре- мени 0, мы можем точно определить задания, которые будут выполняться, начиная с каждого момента между I и р. А именно, если Т in начинало выполняться в момент 0, то в момент / нужно начинать выполнение Tip-, в противном случае нужно выполнять 7\ /_1. Кроме того, мы должны выполнять Sj (соответственно Sy), начиная с момента вре- мени /, если Tj0 (соответственно TJO) выполнялось, начи- ная с момента 0, и должны выполнять SJ_1 (соответственно Sy_j) в момент /, если TJ0 (соответственно Тро) выполнялось, начиная с момента 1. Начиная с момента р +1, мы можем выполнять р остав- шихся заданий типа Т и Т и одно оставшееся из S или S. Поскольку m (рЦ-1) = p + 1, то для получения реше- ния мы должны иметь возможность выполнить k заданий типа D. Заметим, что для каждой пары D,-- и D(y,, j', существует по крайней мере одно I такое, что Т1р <_ Dip и Tip<Dij,, или наоборот. Поскольку мы уже доказали, что ровно одно из заданий Т[р и Ttp может начаться в момент р или ранее, из этого следует, что для каждого i не более одного задания из Di2, .. ., £)/7 может выпол- няться, начиная с момента р + 1. Кроме того, если мы подставили значение «истина» в Vy (соответственно ~]Цу) в том и только в том случае, когда Тj0 (соответственно Ту0) выполнялось, начиная с мо- мента времени 0, то мы можем выполнить одно из заданий D(1, DZ2, ..., Di7, начиная с момента р ф-1, в том и только в том случае, когда Е; при такой подстановке значений переменных принимает значение «истина». Мы получаем, что решение нашей модифицированной UET-задачи сущест- 182
вует тогда и только тогда, когда первоначальное произ- ведение сумм является выполнимым. Пример 5. Рассмотрим булевское выражение (лу-г + "|х2 + х3) (']х1+ 1-Гз + лу). Здесь k = 2, р = 4, Е = = (Хх+ Пх2 + х3), £а = ( 1*1+ 1*3+ х4) и /п(0), . т(6) есть, соответственно, 4, 9, 10, 10, 10, 7, 12. Одно^из возможных решений соответствующей модифицированной Начи- Число НЭЯ С а о п А» нонен- та П ИИ > 0 4 1 9 2 10 3 10 4 10 5 7 6 12 D12 Dk Ц1б Z>,7 2?21 ^22 -^24 Д.Л ^27 Рис. 4.3. UET-задачи, в основу которого положена подстановка значения «истина» в xv ха, “1^3 и х4, показано на рис. 4.3. Линии представляют отношениеза исключением послед- ней строки, где необходимые многочисленные линии опу- щены. Теорема 4.5. UET-задача упорядочения является NP-полной. Доказательство. Построим полиномиальное све- дение модифицированной UET-задачи к UET-задаче. Кон- струкция очень проста. Если в модифицированной задаче указано предельное время’ю и в момент i доступны т(Г) процессоров, 0 ^со, то положим т = 1 4-max т (i). Затем для O=CZt<® введем т—т(1) новых заданий’ ^,-2- ’ Ri, ,п~т (/>• Пусть у < Rik для всех 0 < I < (О и любых j и k. Тогда, если исходная модифицированная UET-задача имеет решение, то будет существовать распи- сание и для системы, дополненной новыми заданиями и ис- пользующей в каждый момент времени т процессоров, и наоборот. 183
Следствие 4.4. Задача составления расписаний с прерываниями является NР-полной. Доказательство. Легко убедиться, что если происходит любое прерывание, то выполнение системы зада- ний модифицированной UET-задачи, построенной в лемме 4.1, не может завершиться вовремя. Следовательно, для построенного входа расписание с прерываниями сущест- вует тогда и только тогда, когда заданное булевское выра- жение является выполнимым. 4.9. Составление расписаний для двух процессоров и времен выполнения, равных 1 и 2 В предыдущем параграфе мы видели, что задача, являю- щаяся частным случаем общей задачи составления расписа- ний, может быть МР-полной даже тогда, когда не использу- ется возможность назначения больших времен выполнения. Числовыми параметрами UET-задачи были только пре- дельное время и число процессоров. В действительности воз- можность двоичного кодирования параметров т и со UET- задачи не имеет существенного значения. Читатель может проверить процедуру сведения, исполь- зованную в лемме 4.1 и теореме 4.5, в случае, когда т, числа т (i) и со представлены в унарном коде, и убедиться в том, что сложность этой процедуры по-прежнему полиномиально за- висит от длины входа. Теперь мы рассмотрим А/Р-полную задачу, являющуюся частным случаем задачи упорядочения, в которой число про- цессоров и предельное время не выступают как параметры, а времена выполнения, хотя и являются параметрами, огра- ничены значениями 1 и 2. А^Р-полнота этой задачи ясно показывает, что комбинаторная структура ограничений предшествования является достаточным фактором, чтобы сделать задачу трудной; при этом нам не придется опираться на сложность, присущую большим числам. Задача S12 состоит в определении того, имеет ли мно- жество из п заданий с тг, равными 1 или 2 для l=gjs£?z, и с наибольшим временем завершения п >= 1 расписание на двух процессорах. Заметим, что если такое расписание существует, то в нем нет простоев. Для того чтобы доказать NP-полноту задачи S12, нужно несколько усилить теорему 4.5. 184
Лемма 4.2. UET-задача упорядочения с п=(ат (tn. е. с таким ограничением, чтобы в решении не было простоев) является NP-полной. Доказательство. Анализ доказательств лем- мы 4.1 и теоремы 4.5 показывает, что в каждом случае, если решение существует, то в нем нет простоев. Поэтому мы могли бы с самого начала ограничить соответствую- щим образом определение UET-задачи и модифициро- ванной UET-задачи, и все доказательства остались бы в силе. Теорема 4.6. Задача S12 является NP-полной. Доказательство. На основании леммы 4.2 для доказательства достаточно свести UET-задачу упорядочения с n=iom к задаче S12. Предположим, что имеется вход UET-задачи, в котором заданы предельное время <о, число процессоров т и отношение предшествования < на множе- стве S из со.тг заданий. Построим следующий вход задачи S12. Заданиями являются: 1) Хг, О^г<со', где w' = (4m+l)w; 2) Yij, 0<Д-;Ст; 3) T и Т для каждого Т в S. Время выполнения равно 2 для Т, входящих в S, и 1 для всех остальных заданий. Отношение <' описывается следующим образом: a) Xi<’Xi+1, 0<г<о>' —1; б) Х„< 'у,7< 'Ха+2, где ц = (4т + 1) 1'4-2/— 1 (в случае г = / = 0, когда м = —1, мы имеем только отношение в) Т' < 'Т для всех Т из г) 'Т' для 5 и Т из S' тогда и только тогда, когда S<7\ Предельное время завершения — ю', определенное в п. 1). Вначале отметим, что, как следует из а), для того, чтобы уложиться в предельное время, в каждый момент один про- цессор должен быть занят выполнением заданий типа X. Можно положить, что процессор Pi полностью выделяется для этой цели. Из условия б) следует, что задания типа Y должны выполняться на процессоре Р2 в специальные мо- менты времени, как показано на рис. 4.4. Это означает, что, передвигаясь по оси времени, мы по- лучаем чередование разрывов, в которых каждой второй 185
единичный интервал свободен для Рг, и полос, которые пред- ставляют собой 2m последовательных свободных интерва- лов для Рг. Поскольку в нашей задаче задания Т из S требуют двух единиц времени каждое, ясно, что они долж- ны выполняться только в полосах. Поскольку имеется ©т таких заданий, они должны полностью заполнить полосы. Это означает, что задания Т должны выполняться только в разрывах. X, х2 Х3 " Х2П1, У'2гп*\'“ ^4/77+3 PY Y • • • Y . 1 2 '00 '01 1 ок - Разрыв 0 Полоса 0 Разрыв 1 Полоса w- 1 Рис. 4.4. Вследствие этого, если задания S и Т выполняются в одной полосе, то отношение S<T невозможно. Действитель- но, если бы такое случилось, то, поскольку мы имеем S<'T'<'7’, задание Т' также должно было бы выполнять- ся в этой полосе, что противоречит только что сделанному выводу. Таким образом, если наша задача .8 12 имеет реше- ние, то мы можем найти решение исходной UET-задачи, начиная в момент времени i выполнение в точности тех за- даний, которые выполнялись в i-й полосе. Наоборот, если мы имеем решение исходной UET-задачи, то мы можем найти решение построенной задачи S12, вы- полняя Т' в i-м разрыве, а Г —в t-й полосе всякий раз, когда в исходной задаче Т начинает выполняться в момент времени I. 4.10. Составление расписаний с ограничениями на ресурсы Если в задачу упорядочения ввести ограничения на ре- сурсы, то мы можем показать ее Л'/’-полноту даже при бо- лее строгих условиях, чем те, которые были приняты в пре- дыдущих двух параграфах. Задача упорядочения с ограничениями на ресурсы вклю- чает множество из п заданий с заданными временами выпол- нения, m процессоров, предельное время © и ограничения предшествования <, т. е. все как обычно, однако вводится еще множество = . ., /?6) ограничений ресур- 186
сов и предельные ресурсы mt, Каждое Rt ставит в соответствие заданиям неотрицательные числа, означаю- щие объем ресурса ;-го типа, требуемый для выполнения задания *). Задача заключается в определении того, суще- ствует ли такое расписание, укладывающееся в предельное время, которое в процессе выполнения заданий требует в каждый момент времени не более тг единиц t-ro ресурса для всех I. С помощью методики, использованной в примере 3 для задачи без ограничений на ресурсы, легко показать, что общая задача составления расписаний с ограничениями на ресурсы принадлежит NP. А именно, угадываем расписа- ние и проверяем, что оно укладывается в предельное время и в ограниченные ресурсы. Здесь мы приведем две сильные теоремы об АР-полных вариантах задачи составления рас- писаний с ограничениями на ресурсы, доказанные Гэри и Джонсоном [541. Теорема 4.7. Задача упорядочения на двух процес- сорах, при единичных временах выполнения, одном ресурсе и ограничениях предшествования в виде леса является NP-пол- ной. Теорема 4.8. Задача упорядочения на трех про- цессорах, при единичных временах выполнения, одном ре- сурсе и пустом отношении предшествования является NP-полной. Хотя мы не доказываем ни одну из этих теорем, мы можем легко доказать утверждение, аналогичное теоре- ме 4.7. Теорема 4.9. Задача упорядочения на двух процес- сорах, при единичных временах выполнения и одном ресурсе с предельным значением 1 является NР-полной. Доказательство. Способом, аналогичным ис- пользованному при доказательстве теоремы 4.6, мы можем полиномиально свести UET-задачу с ат=п к сформулиро- ванному варианту задачи упорядочения с ограничениями на ресурсы. Вместо того, чтобы заставлять задания с вре- менами исполнения, равными 2, выполняться в полосах, мы можем заставить выполняться в полосах те задания, которые не требуют единичного ресурса. Формально, предположим, что задан вход UET-задачи, а именно: множество состоящее из п заданий, отношение *) Типичными видами ресурсов могут быть память и устройства ввода-вывода. Процессоры не рассматриваются здесь как ресурсы, хотя это и можно было сделать. 187
предшествования <, предельное время завершения со и т процессоров, где п=й>т. Построим вход UET-задачи с двумя процессорами и одним ресурсом следующим обра- зом. Берется последовательность, состоящая из 2сот зада- ний ХОХЬ . . ., Хаапг-!- Кроме того, каждому заданию Т из S' соответствуют два задания Т и Т' в новой системе. Ограничения предшествования <' заданы следующим об- разом: 1) Х, <'Х;+1, 0 i < 2<от —2; 2) Т' < 'Т для всех Т из S~\ 3) S < 'Т тогда и только тогда, когда S < Т для S и Т из S'. Предельное время а>' = 2<от. Наконец, имеется один ресурс с предельной величиной 1. Задания Т из S' требуют по единице этого ресурса. Задания Т' (для Т из S') не требуют никаких ресурсов. Задания типа X,, у которых индекс i находится в диапазонах от О до m—1, от 2m до 3m—1, от 4m до 5m —1 и т. д., тре- буют по единице ресурса. Остальным заданиям ресурс не требуется. Хо X,--' Хот_| X^X^+j"’ Х2т-( Х2от ^2®И'" ’Gw-I pz РазрывО Полоса 0 Разрыв 1 Ресурсы не Ресурсы Ресурсы не доступны доступны доступны Полоса а>-1 Ресурсы доступны Рис. 4.5. Как и в теореме 4.6, мы можем считать, что если распи- сание существует, то один процессор Pi используется для всех заданий типа X. Тогда задания типа Т и Т’ могут вы- полняться на Рг. Однако наличие ресурса заставляет нас выполнять задания типа Т в полосах, определяемых интер- валами от m до 2m, затем от 3m до 4m и т. д., как показано на рис. 4.5. Дальнейший ход доказательства такой же, как в теореме 4.6. Все задания типа Т должны выполняться в полосах, и при этом никакие два задания, выполняемые в одной и той же полосе, не могут быть связаны отношением <. Таким образом, расписание для исходной UET-задачи существует тогда и только тогда, когда существует реше- ние построенной задачи, что и завершает полиномиальное сведение. 188
Библиографическая справка Родоначальником концепции WP-полных задач является Кук [30]. Он также показал WP-полноту 3-КНФ задачи. Им были доказаны тео- ремы 4.1 и 4.2. Большой вклад в доказательство широты класса WP- полных задач внес Карп [86]; см. также книгу Ахо, Хопкрофта и Уль- мана [3], содержащую обзор результатов в этой области. Теорема 4.3, утверждающая, что общая задача упорядочения яв- ляется WP-полной, имеется в неявном виде в работе Карпа [86]. Теоре- ма 4.4 о минимуме взвешенного времени завершения взята из работы Бруно, Коффмана и Сети [11]. Теоремы 4.5 и 4.6 об UET-упорядочении и об упорядочении при временах выполнения 1 и 2 взяты из работы Ульмана [143]. Теоремы 4.7 и 4.8 об упорядочении при ограничениях на ресурсы получены Гэри и Джонсоном [54]. Недавние работы [14, 55, 57] содержат дополнительные результаты, касающиеся WP-полноты задач упорядочения, многие из которых упомянуты в § 1.4.
ГЛАВА 5 ОЦЕНКИ ХАРАКТЕРИСТИК АЛГОРИТМОВ СОСТАВЛЕНИЯ РАСПИСАНИЙ В этой главе мы исследуем поведение ряда алгоритмов составления мультипроцессорных расписаний с ограниче- ниями на ресурсы при наиболее неблагоприятных условиях и рассмотрим многочисленные важные частные случаи. Модель и система обозначений описаны в гл. 1. В § 5.1 ис- следована довольно неожиданная зависимость длины спи- сочного расписания (о от различных параметров задачи — даже в случае отсутствия ограничений на дополнительные ресурсы. В §§ 5.2, 5.3 исследованы характеристики алго- ритмов составления расписаний с помощью критического пути. В § 5.4 выведены верхние оценки характеристик для расширенной модели, в которой имеются ограничения на дополнительные ресурсы. В § 5.5 рассмотрены эвристические алгоритмы решения задачи о минимизации числа процессо- ров, требуемых для выполнения системы заданий без на- рушения заданных крайних сроков, известной как задача об упаковке в контейнеры. Наконец, в § 5.6 представлены верхние оценки для ряда смежных задач. Вопрос об опре- делении сложности рассматриваемых в данной главе задач был исследован в предыдущей главе. 5.1. Аномалии многопроцессорных расписаний Мы начнем с примера, который иллюстрирует на основе системы, состоящей из одиночных заданий, аномальные эф- фекты, возникающие при варьировании любого из пара- метров, включая и список приоритетов. Пример 1. Граф (?(<, т) системы заданий изобра- жен на рис. 5.1, а. Зафиксировав параметры, рассмотрим эффекты, сопровождающие изменение списка приоритетов, увеличение числа процессоров, уменьшение времени вы- выполнения и ослабление ограничений предшествования, которые изображены на рис. 5.2.— 5.5. Эталоном для срав- нения служит оптимальное расписание, представленное на рис. 5.1, б. 190
Рис. 5.1. Система заданий (а) и оптимальное расписание (6);m=3, L= = (7’1, 7\, Т я, Т4, Т-„ Те, Т„ Т8, 7<|). На рис. 5.2.— 5.5 показано, как изменяется расписание при изменении L, т, т и <(. Г, г} Тя Т-, т, т, Тв Рис. 5.2. Изменение списка приоритетов. Здесь L'=(Ti, 7\, Tt, Т6, Тв, Т3, Тв, Т„ Ts). О': Т, Л Т9 т2 4 т, w'= 15 Рис. 5.3. Эффект увеличения числа процессоров: m заменено на т'=4. Рис. 5.4. Эффект уменьшения времен выполнения: т заменены на т'= =т—1. 191
Заметим, что хотя для случаев, изображенных на рис. 5.3, 5.4 и 5.5, интуитивно можно предположить умень- шение со, однако на самом деле оказывается, что в этих случаях со увеличивается. Рис. 5.5. Эффект ослабления ограничений предшествования: заменено на <=<-{(Т4, Т5),(Т4, Тв,)}; т=3, £=(ТЬ Т2, Т3, Т4, Т5, Тв, Т„ Ts, Т9). Следующий пример показывает, что такое увеличение (о не обязательно происходит вследствие плохого выбора списка приоритетов L, а является в действительности свой- ством, присущим самой модели. Пример 2. На рис. 5.6, а изображена система зада- ний и указан список приоритетов; предполагается, что Рис. 5.6. т-2. Оптимальное расписание дано на рис. 5.6, б. Теперь рассмотрим такую же систему заданий, но времена выполне- ния заменим на т'=т—1. Мы обнаружим, что независимо от того, каков список приоритетов, для новой системы мы не можем получить расписание, длина которого была бы меньше, чем у изображенного на рис. 5.7. 192
Теперь выведем общую верхнюю оценку относительного изменения длины "расписания при изменении одного или более параметров задачи. Предположим, нам задано~мно- жество заданий, которые мы выполняем дважды. В пер- вый раз мы используем времена выполнения т, частичное Рис. 5.7. упорядочение <, список приоритетов L и вычислительную систему, состоящую из т идентичных процессоров. Во второй раз мы используем времена выполнения т'^т, ча- стичное упорядочение <'е<, список приоритетов L' и вычислительную систему, состоящую из т' идентичных про- цессоров. Соответствующие времена завершения обозначим через (о и со'. Теорема 5.1 [45]. При введенных предположениях имеем <в'/со 'С 1 + (т— Доказательство. Рассмотрим временную ди- аграмму D', полученную в результате выполнения заданий Т; из S' при втором наборе параметров. Определим раз- биение интервала [0, «') на два подмножества А и В следу- ющим образом: ®')|все процессоры заняты в момент t}, В = [0, ©')—А. Заметим, что как А, так и В являются объединениями непересекающихся полуоткрытых интервалов. Пусть 7’/1 обозначает задание, выполнение которого в D' завершается в момент ®' (т. е. такое, что о/). Тогда существуют две возможности. I. Если syi — время начала выполнения задания — яв- ляется внутренней точкой В, то согласно определению В имеется некоторый процессор Р;, который для некоторого е>0 свободен на интервале [s/t—е, s/t). Единственная ситуация, при которой это может произойти, состоит в том, что для некоторого Tj выполняется и 2. С другой стороны, предположим, что не является внутренней точкой В. Более того, предположим, что s/t #= 0. Пусть Xj =sup {х | х < sx С В}-, если указанное множество пусто, полагаем Xj —0. Из определения А и В видно, что 7 Под род. Э. Коффмана 193
х} £ А и для некоторого е. > О Р{ является свободным на интервале [лу—е, хх). Но опять это может произойти только потому, что существует некоторое задание Т'Ткото- рое выполняется в течение этого интервала времени. Таким образом, мы видим, что либо существует задание такое, что у С [/Л, s?t) влечет у £ А, либо х < влечет х£ А или х < 0. Мы можем индуктивно повторять эту процедуру, фор- мируя Tjs, ТJt, ..., до тех пор, пока не достигнем зада- ния Tjr, для ‘ которого х < Sjr влечет либо х£ А, либо х < 0. Следовательно, мы показали существование цепочки заданий Tir<fTir_t<' (1) такой, что в D' в любой момент t С В выполняется неко- торое задание Т, . Из этого следует, что 2 т'(9'Х(т' —1)2 < , (2) в'eD' fe=l R где сумма, стоящая слева, взята по всем пустым заданиям *) 0' в D’. Но из (1) и предположения, что <'^ К, имеем (3) Значит, ю > 2 т/ > 2 <• А=1 R k=l (4) Следовательно, из (2) и (4) получаем w' = -^-)2Tfe+ 2 T'(0')l^i(/nco + (/n'—1)со). (5) m U=1 0'ео' J m Отсюда получаем 1 + (tn—(6) и теорема доказана. Следующие примеры показывают, что оценка теоремы 5.1 не только является наилучшей, но и может на самом деле быть достигнута (асимптотически) при варьировании любого из параметров. Пример 3. В этом примере L изменяется, < пусто й tn произвольно. Задания и времена выполнения заданы *) То есть по всем интервалам простоя процессоров. (Прим, перев.) 194
следующим образом: Л/1, Г2/1, .... 7^/1, Tjm—Л, Тт+1/т-\, ... • • •> Т2т-11т’ На рис. 5.8 представлены первый из используемых списков и получившееся в результате его применения расписание. Рис. 5.8. Оптимальное расписание; L=(Tlt Т2, . . ., Т m-i, T2m-i Тт, Тт+1„ . „ 7'2т_2). Второй список и получившееся более длинное расписание даны на рис. 5.9. Как можно убедиться, — 2 — 1]т. Пример 4. В этом примере уменьшаются величины т. Здесь, так же как и в остальной части главы, е обозна- Рис. 5.9. Плохое расписание; L'=(Tm, Тт + 1>. . Т2т_2, 7\, Т2,... • •> т-1> T'im-i)- чает достаточно малое положительное число. Система зада- ний и соответствующее оптимальное расписание изображены на рис. 5.10. На рис. 5.11 показан эффект, возникающий при 7* 195
Рис. 5.11. изменении времен выполнения следующим образом: [ т(-—в для —1, Tj 1 I т,- в противном случае. Сравнивая рисунки, находим, что со' 2т—1Л-8 о 1 п — =----тег----------при е—>0. со т 2s т 1 Пример 5. В этом примере мы ослабим ограничения предшествования <. Сравним систему заданий и оптималь- 196
Рис. 5.13. ное расписание (рис. 5.12) с тем, что получается, когда ограничения предшествования устранены (рис. 5.13). Из этих диаграмм получаем, что !- при е —0. со т + е т г 197
Пример 6. Наконец, рассмотрим, что происходит при увеличении числа процессоров. Предположим, задана система заданий, представленная на рис. 5.14, а, оптималь- ное расписание для которой при наличии т процессоров б) Л 7/7? *2 Tfnm'-f7i'+m + 2 Л Ъп+3 жиж • ^гпт - 2 т'+ 2 т + 2 ^7+1 Л»/7-/77'+/?7 + 1 Tri+rn'+i ш'- т’+ П7-1 +S Рис. 5.14. изображено на рис. 5.14, б. Теперь положим т’>т. Мы получаем более длинное расписание, показанное на рис. 5.14, в. Вычисляя отношение длин расписаний, полу- чим со' т'-\-т— 1+е j , m— 1 со /п'4-2е т' при е—>-0. 198
Аналогичный пример существует и для случая т’<т, но мы его здесь не приводим. Следующий пример, предложенный Кауфманом [84], показывает, что оценка (6) может быть достигнута при из- менении L даже в том случае, когда < пред- ставляет собой лес и все тг=1. Пример 7. Рас- смотрим граф, изобра- женный на рис. 5.15, а, и предположим, что все задания имеют единич- ные времена выполне- ния. Оптимальное рас- писание и соответствую- щий список показаны на рис. 5.15, б. Если изме- нить список так, как по- казано на рис. 5.16, то расписание окажется длиннее. Очевидно, ы'/а> = 2—\/т. Наконец, дадим при- мер, в котором снова до- стигается оценка 2—1/т при изменении L, на этот раз для случая, когда < пусто и max {Tj/min {т,-} 4. Рис. 5.15. Система заданий и опти- мальное расписание; L=(7\i,................... Si, Т12,. . . •> T’zzi-i.a, Sj, T21, Sm). Неизвестно, является ли константа 4 лучшей из возможных. Во всяком случае, мы видим, что достижимость наихудшего результата не зависит от наличия заданий с большим раз- бросом времен выполнения. Рис. 5.16. Очень плохое расписание; L~(TlltT12,. . ., Т1<т,. . ., Тт-1<т, Sx..........Sm). 199
Пример 8. Пусть < пусто, и предположим, что максимум отношения времен выполнения не превышает 4. Рассмотрим три случая в зависимости от величины т (mod 4). Для т=2г положим, что набор t=(tj, . . ., т2т+1) задан в виде (г, г, г 4-1, г 4-1, • • •, 2г—2, 2г—2, 2г—1, 2г—1, Зг—2, Зг —2, Зг —3, Зг —3, ..., 2г—1, 2г —1, 4г). Тогда с помощью соответствующего списка L (Tlt . . . ,,T2m+1) получим расписание, показанное на рис. 5.17, а. Рис. 5.17. Поскольку для оптимального расписания, изображенного на рис. 5.17, б, (Л0=т, получаем — = 2—^- = 2---- (оо 2г т t Для ги=4г+1 пусть набор т задан в виде (2г4-1, 2г4-1, 2г + 1, 2г + 1, 2г4-3, 2г4-3, 2г4-3, 2г4-3.....4г—1, 4г—1, 4г—1, 4г— 1, 4г, 6г —1, 6г—1, 6г— 1, 6г—1, 6г—3, 6г —3, 6г—3, 6г—3, ..., 4г-! 1, 4г4-1, 4г4-1, 4г, 8г4-2). 200
В этом случае, используя список L—(T\, . . Т2т+1), по- лучим расписание, изображенное на рис. 5.18, а, в то время как оптимальное расписание имеет вид, изображенный на Рис. 5.18. рис. 5.18, б. Снова получаем ^ = 2__—^- = 2--. w0 4r 1 т Наконец, пусть /и=4г4-3 и набор т задан в виде (г 1, г -У 1, г 4-1, г 4-1, г -j-2, г 4- 2, г 4- 2, г 4*2.....2г 4-1, 2г4-1, 2г4-1, Зг4-1, Зг4-1, Зг4-1, Зг4-1, Зг, Зг, Зг, Зг, .... 2г4-2, 2г4-2, 2г4-2, 2г4-2, 2г4-1, 2г4-1, 2г4-1, 4г4-3). Расписание, составленное при этих параметрах с по- мощью списка £=(7\, . . ., Т'2т+1), представлено на 201
Рис. 5.19, рис. 5.19, а. Оптимальное расписание изображено на рис. 5.19,6, и оно показывает, что ©/._2_____1 __2 1 w0 4r 3 ~~ tn ' 5.2. Оценки для независимых заданий без дополнительных ресурсов В этом параграфе мы исследуем частный случай, когда отношение частичного порядка < пусто и, как и ранее, s=0 (т. е. отсутствуют ограничения, связанные с дополни- тельными ресурсами)'. Как показано в примере 3, неудач- ный выбор списка L может привести к наихудшему времени завершения ©, а именно ©=(2—17/п)©0- Однако если при формировании L принять небольшие меры предосторож- ности, то оценка для © может быть значительно улучшена. Рассмотрим в качестве первого алгоритма составления 202
расписания для системы S один из вариантов алгоритма упорядочения по критическому пути (см. гл. 1). В этом случае список L составляется просто путем расположения в порядке убывания величин тг. Обозначим соответству- ющее время завершения через соСР (СР — critical path). Т е.о р ем а 5.2 [46], Если < пусто, то “ср J.___L (7) ^^3 3m- Более того, существуют примеры, в которых достига- ется равенство. . Доказательство. Предположим, что S= = {7\, . . ., Тп} — набор заданий, с временами выполне- ния тг, такой, что (7) не выполняется. Более того, мы можем предположить, что Tt пронумерованы так, что т^Та^ . . . •/ • .^тп. Для теорема, очевидно, верна. Поэтому мы можем предположить, что т^2 и что п есть минимальное значение, для которого теорема не выполняется. Вначале заметим, что, как следует из определения соСР, порядок, в котором . выполняются задания, в точности соответствует тому, который имеется в списке L = = (7’1,7'а, .... Т„). Предположим, что на соответствующей временной диаграмме DL имеется задание Тг такое, что г<_п и fr = ®СР. Если мы рассмотрим подмножество J7"' = (Т,, . .. ..., Тг} и список L’ = (Ti, ..., Тг), то увидим, что для S' время завершения со' при использовании L' в точности равно соСР. С другой стороны, оптимальное значение для S', очевидно, удовлетворяет условию ®о^соо. Сле- довательно, мы имеем со' юср 4 1 <Во “о 3 3m ’ поэтому S' образует меньший контрпример для данной теоремы, что противоречит минимальности п. Следова- тельно, мы можем предположить, что fk < соСР для k < п. Ясно, что п 1=1 Кроме того, имеем л- 1 ^х^т.8п,' aL==sn + Xn, (9) t=i где sn обозначает время начала выполнения Тп, поскольку ни один процессор не простаивал до того, как начало 203
выполняться Тп. Следовательно, мы можем записать __ Sra + Тд Гп_ Шо а>0 ''~<оо л-1 _(от—1)т„ .____1 у т ^(т—1)тп . t ma>o *" ота>0 1 mQo • Поскольку по предположению для S' (7) не выпол- няется, получаем ! (от— 1) т„ 4____1_ OTCOq w0 3 Зот ’ . откуда (от—1) тп J_____1___от—1 отшо ' 3 Зот-” 3m ’ ...... или т„>ш0/3. (10) Поэтому, если (7) не верно, то в оптимальном реше- нии (с временной диаграммой Do) ни один процессор не может выполнять больше двух заданий. Предположим, что ди- аграмма, изображенная на рис. 5.20, представляет со- бой фрагмент Do, в котором т;- > Ту, тг/ > Ту,. Если по- менять местами Ту, и Ту, (по- лучив диаграмму, изобра- женную на рис. 5.21), то новое время завершения <о' в Do, очевидно, будет удов- летворять неравенству ^со0. Аналогично, если встречается конфигурация, показанная на рис. 5.22, где Ту > Ту, то в ней пере- мещение Тi, с процессора, выполняющего Т на про- цессор, выполняющий Tj, не может привести к увели- чению времени завершения. Назовем каждое из двух вышеописанных действий опера- цией типа I. Под операцией типа II на Do мы подразумеваем пре- образование любой «инверсии» типа той, что показана на 201
рис. 5.23, в «нормализованную» форму, изображенную на рис. 5.24. Очевидно, такая операция не меняет ю0. Для произвольной временной диаграммы D определим функцию ef(D) следующим образом. Пусть т' обозначает наименьшее время t такое, что для всех t'^t процессор Pt находится в D в состоянии простоя; тогда <^(0= 2 К—т71- Нетрудно убедиться в следующем: 1) если D' получено из D с помощью операции типа 1, то & (£>')< (£>); 2) если D' получено из D с помощью операции типа II, то (D')= У (D). ' Теперь, начиная с Da, будем применять все возможные операции типов I и II до тех пор, пока в получившейся в результате временной диаг- рамме D* не останется внут- ренних конфигураций, к ко- торым эти правила можно бы- ло бы применить. Существо- вание такой диаграммы D* вытекает из следующих со- ображений: (а) имеется конеч- ное число возможных вари- антов назначений п заданий на т процессоров, (б) между типа I может быть выполнено раций типа II, и (в) вследствие условия 1) может быть выполнено лишь конечное число операций типа I. Из это- го следует, что в D* для любой конфигурации, подобной изображенной на рис. 5.25, имеем: т(-> Ту влечет т;'^тг, Д С тй и т( >т,-. (И) любыми двумя операциями лишь конечное число one* 205
Таким образом, с помощью соответствующего переназна- чения процессоров для D* мы можем довести D* до вида, изображенного на рис. 5.26, где и, на основании (11), - . - > . .<тг. ‘1 12 Ч Но (11) влечет-также т*5 т(1 и Tlf т^. Следовательно, объединяя эти неравенства, получим Поскольку ни одна из операций, совершенных над Do, не приводит к увеличению ®0, то ввиду оптимальности <оо время завершения D должно также быть равным ы0. Но D теперь стала очень похожей на временную диаграмму DL< которая получена с помощью списка Л = (7\, ..., Тп), упорядоченного по убыванию длительностей (с точностью до перенумерации заданий равной длины). Фактически, единственное отличие DL от D может возникнуть только при назначении задания Т^, выполняемого на своем про- цессоре вторым. Точнее, оно может появиться только в том случае, если для некоторой пары Tik, возникнет ситуа- ция, изображенная на рис. 5.27, где + т(./т(г для г < k. В этом случае в DL задание Тимеющее длину т(.<> должно быть назначено на Pj вместо Pt. Однако если бы 206
эта ситуация была возможной, то мы получили бы в D картину, показанную на рис. 5.28. Следовательно, было бы возможно переместить Т., с Р, на Pj. Кроме того, поскольку время завершения не увеличивается, оно по- прежнему равно ®0. Но это —противоречие, поскольку мы получили оптимальное решение, в котором на один про- цессор назначены три задания. Отсюда заключаем, что DL и D изоморфны (в очевидном смысле) и —иСр- Но это противоречит гипотезе, что ®ср/шо > 4/3—1/(Зт); следо- 4 вательно, (7) доказано. Чтобы убедиться в том, что в (7) возможно равенство, рассмотрим множество зада- ний, имеющих длины (тх, = (2m—1, 2m—1, 2m—2, 2m—2, ..., m-|-l, m + 1, m, tn, m), где n=2m4~l, т. е. Tft = 2m— L(fe4-l)/2 J, l^A^2m, и T2m+i = m. Соответствующие временные диаграммы для соСР и ю0 при- ведены на рис. 5.29. Можно убедиться в том, что ___1_ . со0 3 3m’ что и требовалось доказать. 207
Теперь мы докажем следующий интуитивно ясный ре- зультат: по мере того, как отношение.наибольшего времени выполнения одного задания к сумме времен выполнения всех заданий стремится к нулю,‘‘отношение со/соа стремится к 1. Теорема 5.3. Пусть < пусто-, тогда max т/ “о К i (13) Доказательство. Положим т* = тахт(-. Как i следует из правил, в соответствии с которыми работает система, ни один процессор не простаивает до момента со—т*. Поскольку по меньшей мере один процессор оказы- вается занятым в течение всего времени со, мы видим, что ^г^<п + (т—1) (со—т*). Следовательно, «0 > (со 4- (т— 1) (со—т*)), т._е. 0) (00 max т/ т «о v 7 ут. и теорема доказана. Следующий результат помогает получить количест- венную оценку зависимости между стоимостью составления «частично» оптимального расписания и соответствующим уменьшением отношения со/соо. Теорема 5.4 [46]. Пусть < пусто и Lh — список из k заданий Т,, имеющих наибольшее тг, который является оптимальным для этого набора заданий. Построим список L(k) путем добавления оставшихся заданий в про- извольном порядке, и пусть со (k) обозначает время заверше- ния при использовании L(k). Тогда со (k) «0 <1 l-1/m 1+ \_k/m J’ (14) Эта оценка является наилучшей при k=Q (mod т). Доказательство. Пусть сой — время заверше- ния списка Lk. Если со (fe)=coft, то со (fe)=coa, и теорема спра- ведлива. Поэтому можно предполагать, что <о(6)>>сой. 208
Можно также предполагать, что n>k. Пусть т* = max т,-. k+ !</<« Как и в доказательстве предыдущей теоремы, при исполь- зовании списка L (k) ни один процессор не может простаи- вать до момента ш(£)—т*. Следовательно, 2 ту > т (о> (Л)—т*) + т*, откуда «о > — 5L И > “ (^) — (} т*- “ m 1 ' \ т j / = 1 Существуют по меньшей мере &+1 заданий, имеющих длину не менее т*. Следовательно, какой-то процессор должен выполнить не менее 1+ \_k!m J из этих «длинных» заданий. Из этого следует »о>(1 + \_klm _|)т*. Объединяя предыдущие неравенства, получим . /т—1\ /. 1 —1/т \ <') (k) + ------ Т* СО0 1 + . , '---: , \ о । у т j \ Ч- L ь/т J / что доказывает (14). Чтобы убедиться в том, что оценка (14) неулучшаема при й=0 (mod m), рассмотрим следующий пример. Пример 9. Определим тг для —1) следующим образом: _ | т для 1 'С i -С k 4-1, Т' ~ ( 1 для +т(т — 1). Для этого набора времен выполнения и списка приори- тетов L(/z) = (7\, ..., Тк, Тк+2, Тк+1+т (m_D, Tk+i) получаем a)(k)=k-\-2m—1. Поскольку a^k+m, то со(/г) й + 2/n—1 । . 1 — 1/т <в0 k-\-m ’ так как £=0 (mod т), и равенство в (14) достигнуто. Это доказывает теорему 5.4. При достаточно больших й, мы, таким образом, полу- чаем лучшую верхнюю оценку для <о(&), чем дает (7) для й)СР. Однако поиск оптимального списка для k первых за- даний при больших k сам по себе является трудной зада- чей. Вместо этого при больших k можно попытаться начи- нать со списка, близкого к оптимальному. 209
Пусть L'k обозначает список, сформированный из k наибольших значений тг, такой, что для некоторого а^О выполняется Wa/(o0< 1 +а, и пусть L' (k) образуется из L' k путем добавления оставших- ся заданий. Тогда предыдущие аргументы могут быть ис- пользованы для доказательства следующего обобщения теоремы 5.4. Теорема 5.4'. Для L'k, определенного выше, спра- ведливо соотношение (fe) 1 I tr-Y Irr m~1 1 /i^ 5^- J “i max \ ОС, г /1. । i \ I if* (1 О/ Wo I ’ Более специфический метод нахождения списка приори- тетов, близкого к оптимальному, рассмотрен в [73]. Здесь вместо значения величины соо используется ее предполагае- мое значение и частичное решение строится следующим образом. Задания упорядочиваются в порядке невозраста- ния величин т;. Первое (наибольшее) задание назначается первым в числе выполняемых на первом процессоре. В об- щем случае i-e задание назначается очередным заданием на процессоре с наименьшим номером, на котором оно может быть выполнено без нарушения крайнего срока <%. Процесс останавливается, когда появляется задание, которое не- возможно назначить ни на один процессор, не нарушив при этом крайнего срока. Пусть Li обозначает список заданий, назначенных к моменту остановки описанного процесса, и Lz обозначает оставшуюся часть списка. Пусть Li — пере- становка элементов Llt которая, будучи использованной в качестве списка приоритетов, дает такое же расписание, как построенное выше, и пусть L'— список, полученный из L[ путем добавления к нему L2. Доказан следующий ре- зультат. Теорема [73]. Для L' и со„, определенных выше, вы- полнение условия влечет <Щ/М<5/4. Это выражение непосредственно не дает оценку для <о^,/соо. Однако, чем ближе предполагаемое значение к ю0, тем лучше будет отношение wl,/<b0. Более того, можно использовать повторные применения алгоритма для полу- чения более хороших предполагаемых значений с помощью методов двоичного поиска. Пусть L' (j) обозначает список, полученный в результате /-Й итерации. Имеет место сле- дующий результат. 210
Теорема [73]. Справедливо неравенство Это выражение будет давать лучшую, чем (7), оценку для соСР при т/э5 и //э8. Могут, однако, возразить, что метод составления рас- писания с помощью нахождения критического пути для не- зависимых заданий (т. е. пустого <) дает для других пока- зателей эффективности лучшие оценки, чем (7). В частности, естественно рассматривать в качестве такого показателя величину и* (L) (см. [33]), которая для данного списка L определяется выражением т со* (L) = Ъ со? (L), с = 1 где сог(Л) — время, за которое процессор Pt обслуживает задания, упорядоченные с помощью списка L. Этот пока- затель эффективности используется при изучении сегмен- тации массивов во внешней памяти с целью минимизации времени доступа. Доказан следующий результат. Теорема [33]. Справедливо неравенство ®ср/ио =С 25/24. С другой стороны, в [33] приводится пример, для которого ®ср/®о ^37/36—1/(36m). Сложность доказательства не позволила нам включить его в книгу. -С V ’ В другой задаче распределения внешней памяти рассмо- трен сходный показатель эффективности, а именно миними- зируется функция (m—2)/2+(т/2)со*. Для этого случая доказано неравенство [21] (т—2)/т + иср <;- ] 1 (т—' I6(m—1) ’ которое снова показывает увеличение эффективности СР- назначений при использовании квадратичных критериев. Наконец, CP-упорядочение применялось также для по- лучения достаточно «коротких» расписаний, в которых обе- спечивается минимальное среднее время завершения (см. гл. 3). В частности, предположим, что назначение независи- мых заданий осуществляется следующим образом. Первыми назначаются т наименьших заданий (ранга 1) по одному на каждый процессор. Следующие т наименьших заданий (ранга 2) назначаются следом по одному на процессор по 211
мере завершения заданий ранга 1, причем первыми назна- чаются наибольшие задания. Этот процесс продолжается для последующих рангов до тех пор, пока все задания не будут назначены и на каждом процессоре не окажутся за- дания всех рангов (предполагается, что п кратно т). Для критерия «первым обслуживается наибольшее задание» (CP-критерий) можно показать 1321, что оценка мср/®о (5m—4)/(4m—3) оптимальна; здесь штрих означает, что рассматриваются только те расписания, которые минимизируют среднее вре- мя прохождения. 5.3. Замечания о составлении расписаний методом критического пути гКак показывает пример 7, даже в том случае, ког^а < представляет собой дерево и все т(= 1, возможна ситуа- &>cp = 2m + S Рис. 5.30. 212
(m-r 1 )e ш0=(т *1)(1 +е; Рис. 5.31. ция, в которой й)л/(оо = 2 — 1/т .при достаточно плохом списке L. Если при этом используется метод составления расписаний с помощью критического пути, то, как известно, соСР = (о0 (см. гл. 2). Следующий пример, предложенный Грэхемом [61], показывает, что если допустить произволь- ные т?, то даже в случае, когда <—дерево, отношение (оСР/о)0 может быть очень близ- ким к 2. Пример 10. Рассмот- рим дерево и расписание, сос- тавленное гметодом критиче- ского пути, представленные на рис. 5.30, а и б соответст- венно. Оптимальный список может привести к расписа- нию, представленному на рис. 5.31. Эти диаграммы по- называют, что соср 2m ~[- s . (i|o (m-j-1) (1 +8) ’ в пределе при е^О получаем 2—2/(/п1). Предположи- тельно, это асимптотически наихудшее поведение ®СР в слу- чае, когда < является деревом. Кауфман показал [85], что если < является деревом, то max т,- ^<1+^-1)^-; % / i ч i этот результат аналогичен оценке теоремы 5.3 для пустого < и произвольного списка L. Однако, как показывает следующий пример, при ча- стичном порядке общего вида и произвольных значениях тг расписание, составленное методом критического пути, может оказаться наихудшим из возможных. Пример 11. Пусть имеется граф, изображенный на рис. 5.32, а. В результате применения метода критического пути получим расписание, показанное на рис. 5.32, б. Оптимальный список имеет вид .....е„, Ult ..., Um, Т1( ..., Тл). 213
Соответствующее ему расписание представлено на рис. 5.33. Очевидно, что юср 2m— 1 —2е , % 1 «0 т т при е—*0. Это, как мы уже видели, соответствует наихудшему слу- чаю, какой только может иметь место для списочного рас- 6) Рис. 5.32. писания. Заметим, что этот пример также показывает, что если в качестве очередного задания, подлежащего выполне- нию, выбирается то, кото- рое имеет наибольшее зна- чение суммы У т,-, то ве- т < г,- личина co/cot) может быть сколь угодно близкой К 2—1/zn; здесь «—длина соответствующего расписа- ния. Рис. 5.33. Если допустить произ- вольное частичное упоря- дочение <, но теперь положить все тг равными 1, то оценка для наихудшего варианта расписания, составленного мето- 214
дом критического пути, задается выражением [271 ClVn 1 — <2--------, m>3. (16) <о0 m—l ’ ’ В [27] приведены также примеры, из которых следует, что эта оценка является лучшей из возможных. Рассмотрим такой пример для т—3. Рис. 5.34. Пример 12. Пусть в графе, изображенном на рис. 5.34, а, всетг=1. Один из возможных списков, состав- ленных методом критического пути (в котором осуществлен наихудший из возможных способов разрешения конфликт- ных ситуаций), имеет вид L= (7\, Т2, Т3, . . ., 7\2). Соот- ветствующее расписание показано на рис. 5.34, б. Опти- мальное расписание, которому соответствует список Z,o= — (Т1*. Т3, 7\, Т2, Т3, Тъ, Тв, Т,, Т9, Т10, Тц, Tia), приве- 215
ис. 5.35. 216
дено на рис. 5.34, в. Сравнивая два расписания, находим О)ср/шо = 3/2, что в точности совпадает с оценкой (16) для т—3. Наконец, приведем несколько неожиданный пример, показывающий, что даже если все тг=1, то может не най- тись списка L, который бы обеспечивал оптимальное вы- полнение £Г как при /и=2, так и при т=3. Пример 13. Рассмотрим граф, изображенный на рис. 5.35, в котором все тг предполагаются равными 1. В любом оптимальном списке для т=2 Та должно предше- ствовать некоторым заданиям Tt, l^i^6. В любом опти- мальном списке для т=3 все Тh l^i^6, должны предше- ствовать То! 5.4. Составление расписаний при наличии многих ресурсов В этом параграфе мы рассмотрим общий случай, когда число типов ресурсов в отлично от нуля. Напомним, что cR={7?i, . . ., 7?s} обозначает множество ресурсов, Ri(Tj) обозначает объем ресурса типа /?{, необходимый в течение всего времени выполнения задания Tj, ri(t) обозначает (для фиксированного расписания) общий объем ресурса типа RI, используемый в’момент t. Как и следовало ожидать, включение в задачу дополнительных ресурсов приводит к тому, что величина ю/<о0 может стать намного больше, чем прежде. Это ясно видно из следующей теоремы и соот- ветствующего примера. 'Теорема 5.5 [49]. Для в=1, произвольных L, К, тит выполняется условие <п/(й')^.т. (17) Д о к а з а т е л ь с т в о. Справедливость (17) доказы- вается очень просто. Для этого достаточно лишь заметить, что п С0< X Т1^.тсоо, поскольку при использовании списка L до момента <о все время имеется хотя бы один работающий процессор, а чис- ло одновременно занятых процессоров никогда не превы- шает т. Г Для того чтобы убедиться в том, что*(17) является наи- лучшей возможной оценкой, рассмотрим следующий пример. 217
Пример 14. Пусть & = {7\, • Тт, 7\ , . . Т'т], s=l, (7^1)= 1/ш, 7?i(7"9 = l, l^i^m, тг=1, т; = е>0. Рис. 5.36. Пусть < определено так, что T'i<T i для l^i^m. Для списков Л = (Т1( .... Тт, Т’, .... Т'т), l' = (t; .... т;п, т\, ..., тт) получаем расписания, изображенные на рис. 5.36 и 5.37 соответственно. Сравнивая эти расписания, получаем со/©' = (m-|-me)/(l + + me)—>m при е—>0. Более интересная оценка дается следующей теоремой. Теорема 5.6 [50]. Если множество < пусто, т^п, s, L, т — произволь- ные, то со/соо 1. Доказательство. Вначале докажем ряд пред- варительных результатов. Пусть G — граф с множеством вершин V=V(G) и мно- жеством ребер E—E(G). Правильной разметкой X графа G назовем функцию Л.: V->[0, оо), удовлетворяющую ус- ловию: ?.(а) 1 для всех е={а, Ь}£Е. (18) Определим величину t*(G) следующим образом: т* (G) = inf /. (а), X og V где нижняя грань берется по всем правильным разметкам Л. графа G. 218
Лемма 5.1. Для любого графа G существует пра- вильная разметка X : У->{0, 1/2, 1} такая, что х* (G) = 2 Му)- об У - Доказате ль с т в о. Для случая, когда G является двудольным графом (т. е. G не имеет нечетных циклов), хо- рошо известная теорема Кенига утверждает, что количество ребер в максимальном паросочетании равно мощности ми- нимального множества вершин G, инцидентных каждому ребру G. Таким образом, для двудольного графа G существу- ет правильная разметка X : У->{0, 1} такая, что f(G)==21.(o).- Для произвольного графа G построим двудольный граф G8 следующим образом. Для каждой вершины u£V(G) образуем две вершины v2CK(GB); для каждого ребра {н, у} £ Е (G) образуем два ребра \и,, vj, {u2, vj £ Е (GB). Нетрудно убедиться, что т* (GB) = 2т* (G), и более того, если Хв: V (GB) > {0, 1} является правильной разметкой GB, то разметка V(G)--{0, 1/2, 1}, определенная формулой Х(п) (X(Uj)+ Х(о2)), является правильной разметкой G. Для положительных целых чисел k и s обозначим через G(k, s) граф, в котором множество вершин есть {О, 1, . . . . . ., (s~H)£—1}, а множество ребер состоит из всех пар {а, Ь} таких, что \а—b(^k. Лемма 5.2. Предположим, что G(k, s) разбит на s ос- товных подграфов Ht, l^isgCs. Тогда max {т* (//,•)}> fe. (19) 1 < t < s Доказательство. Предположим, что лемма не верна, т. е. существует разбиение G(k, s) на подграфы Hi, Ki<s, такое, что т*(//)•)<$ для Isg/i^s. В этом слу- чае, на основании леммы 5.1, для каждого i существует правильная разметка Хг: V(Я;)—-{О, 1/2, 1} такая, что 2 Х,-(ц) = т*(Я;)<А. (20) .6 !/(«,•) Пусть Л = {ах<. . .<ap|X;(aj)^l/2 для всех г, l^t<s}, и S пусть Т = 2 т* (Hi)- i = l Имеется три случая. 219
1. p^k. В атом случае имеем (s-f-1)—р > k (s4-l)—k — ks, что противоречит (20). 2. k<.p<2k+\. Для каждого ребра {ajt a}+h}, •Ср—k, должно существовать i такое, что Ма>)+Ма;+лХ> >1. Следовательно, т > k (s 4-1)—р 4- (р—k) = ks, что снова противоречит (20). 3. р> 2k4-1. Вначале заметим, что для каждой вер- шины v$V(fi(k, s)) существует i такое, что A/(v)>l/2. Действительно, предположим, что Xz(t») = O для 1 С i < s. Должно существовать такое, что |о/—v\^k. Но поскольку Xz(ayX 1/2 для всех I, то ^(в/)4-Л/(»)< 1/2 для всех i, что является противоречием. Для каждого i обозначим через nt число верший о Таких, что Л/ (ti) = 1. Тогда имеем поскольку в противном случае мы получили бы 2 Л,- (у) >nrl +(2k—2tti) -±=k, Что противоречит (20). Следовательно, £1MM0>O}|<(2*-I)s-Snz. (21) i = i i = i Пусть q обозначает число вершин v таких, что существует только одно 4, для которого (и)>0. Тогда имеем 211^|\^>0}|>2^(54-1)-(/)4-(7. (22) Объединяя (21) и (22), получим «I q 2^4-s 4- 2 пг (23) 4 = 1 Разумеется, мы можем без потери общности положить, что если X, (v)=l, то hj(v)=O для всех j^=i. Поэтому на основа- нии определения должно существовать по меньшей мере 2k+s вершин, скажем bi<. . .<Zbak+s> таких, что 220
т. е. для каждого Ь, существует единственная разметка такая,Лчто \(Ьу) = 1/2_и kt(bj) — 0 для всех l=£i. Поэтому, если | bj — bt\.^k, то для некоторого i A.z(dy) = Xf (Ьх) = 1/2. Поскольку |ЬХ—bik+s\~^k, то существует i0 такое, что 4(z?i) = 4(z?2fs+J = 1/2. Но по той же причине Ч (&*+/) в = ЧА)=1/2 “ Ч^ч^Ч^/^^ДЛя Поэтому 1,6 ЧЧ) что является противоречием. Таким образом, доказательст- во леммы 5.2 завершено. Напомним, что когда система заданий S' выполняется с помощью фиксированного списка L, то s( обозначает мо- мент начала выполнения Tt. Как следует из определения списочного расписания, каждое s( является суммой под- множества величин тр Без потери общности можно положить <х>0— 1. Предпо- ложим теперь, что <в>$-Н. Кроме того, предположим, что для некоторого k каждое т4 может быть записано в виде где — положительное целое число. Поскольку т^а>0=1, то l^k. Далее, все (Z), постоянны на каждом интервале Шт, и их значения равны Важно отметить, что поскольку < пусто и т^п, то для tlt t2 б [0, ш) при ti—должно выполняться max {r, (/x)4-rz (/s)} > 1- 1 < i < s В противном случае любое задание, выполняемое в момент tit должно было бы выполняться в момент /х или ранее. Поэтому для каждого i, можно определить граф 1Ц следующим образом: V(Hz) = {0, 1..(s + DA-l}; {а, b) является ребром Я; тогда и только тогда, когда ri(a/k) + ri(b/k)>l. (24) Заметим, что если [a—Ь[^к, то {а, Ь} является ребром по крайней мере одного из Ht. Поэтому нетрудно видеть, что G (k, s) s и Н,. I < i 4 s Из (24) следует, что разметка л^: У(Д,)->[0, оо), зада- ваемая формулой Аг(а)=г,(а/&), является правильной раз- меткой графа Поскольку GsG' влечет т* (G)<5* (G') и 221
условие (24) для гг является строгим неравенством, то на основании леммы 5.2 получаем С другой стороны, должно выполняться условие (S+ 1) k- 1 со i=o ' ' о откуда (s+1) fe-I 1=0 ' ' Поскольку это является противоречием, теорему 5.6 можно считать доказанной для случая, когда тi=ltlk (при положительных целых k и /г). Разумеется, из этого немед- ленно следует, что теорема 5.6 верна, когда все тг рацио- нальны. Доказательство теоремы может быть завершено с помощью следующей леммы. Лемма 5.3. Пусть т=(т1, . . ., тп) — последователь- ность положительных действительных чисел. Тогда для любого б>0 существует последовательность т'=(т(, . . . ..., т,') такая, что: 1) \x't—тг|<е для 2) для всех A, fe{l, . . ., п} - ае A be В аеА be В 3) все xt являются положительными рациональными чис- лами. Замечание. Значение условия 2) заключается в том, что оно гарантирует одинаковый для тг и т'- порядок следования заданий Tt при использовании списка L. По- этому, если при выполнении системы заданий S’ использует- ся список L (один раз при временах выполнения тг, дру- гой раз при временах тД, то соответствующие значения со и <в' удовлетворяют условию | со—ft>' | Следовательно, если имеется система заданий J7’, в которой ft)/ft)0>s+1 и при этом некоторые тг являются иррацио- 222
нальными, то можно построить другую систему , в ко- торой иррациональные величины тг будут заменены раци- ональными r'it а соответствующие значения ®* и®*'будут удовлетворять условиям I®—со* | не, |о/—®*'|^пе. Таким образом, если е достаточно мало, то по-прежнему Однако это противоречило бы тому, что'уже доказано. Лемма 5.3 вытекает из следующего несколько более общего результата. Приведенное здесь доказательство по- лучено Хваталом [20]. Лемма 5.3'. Пусть S обозначает конечную систему неравенств вида п п X a;Xi >5- а0 или 2 ^txi > °о> i = 1 i = 1 где ah—рациональные числа. Если S’ имеет действительное решение (хи .. хп), то для любого е > 0 S имеет рацио- нальное решение (х[, ..., х'п), для которого \xt—х]|<е для всех i. Доказательство. Проведем доказательство мето- дом индукции по п. Для п — 1 результат очевиден. Теперь допустим, что S является системой неравенств с п > 1 переменными, разрешимой в действительных числах. S есте- ственно распадается на две части: — подмножество нера- венств, содержащих хп, и S й — оставшиеся неравенства системы S. Каждое неравенство в Sr может быть записано в одной из следующих четырех форм: а) п-1 «0 + Т' а,-Х,. г i = 1 п-1 ^Хп б) а0 + UiXt < 'ХП’ в) ₽о + ₽,х,- - i =1 ^Хп г) Ро + 2 fiixi i = l > Хп Для каждой пары неравенств, одно из которых типа а), а другое — типа в), рассмотрим неравенство п-1 п-1 д) «о + 2 < ₽0 + S Р,Х,- 1=1 1 = 1 223
Аналогично, для сочетаний {а), г)}, {б), в)} и {б), г)} получим неравенства п-1 п-1 е) а0 4- V а.х < р0 + £ р х i=i i=i Пусть <Т*—множество всех неравенств типов д), е), которые получены из Так как по предположению система <5<’ = <S*’O и имеет действительное решение (хх, ..., х„), то и vf п и имеет действительное решение (хп хп_1). Но <5% U cS0* включает только п—1 пере- менных, так что на основании предположения индукции имеет рациональное решение (xj, ..., x„_j), для которого | х{—х'{ | < ъ' для всех i и любого заданного s'> 0. Подставляя х'( в а), б), в) и г), получим систему неравенств ж) а'^х„, b'<x„, с'^хп, d' > х„, где a', b', с', d' являются рациональными числами. Поскольку хг удовлетворяют неравенствам' д) и е), получаем а'^с', b’<c’, a'<d', b'<dr. Таким обра- зом, для любого е > 0, если s' выбрано достаточно малым, существует рациональное число х'п, удовлетворяющее ж), для которого \хп—х'п | < е. Доказательство завершено. Это одновременно доказывает лемму 5.3 и теорему 5.6. Следующий пример показывает, что верхняя оценка, полученная в предыдущей теореме, не может быть улучшена. Пример 15. Пусть & = {Л, Т2, •••> T’j+h T’t, T’t, ..., T’sN}, m^s (АГ 4-1)4-1=пи< пусто. Положим т; = 1, l<t<s4-l, Ti = l/A7, /?,.(Т,.) = 1 —1/У, 7?,.(7’/) = 1/«У, А = (7’1, Т1; ..., TN, Т2, TN+1, ..., T2N, Тв, ..., T’k+i, T'k +ii TkX'+Zf • • • iTf.k+1) N< Tj. + 2, •••> TsN-> Ts+iY, L = (Tj, T2, ..., TsN, Tj, T2, ..., Ts+1). Легко убедиться, что для этого примера co = s-|-l, co' = 14*s/lV. Таким образом, со/со', а значит, и сколь угодно близки к s4-l при больших N, Последний результат этого параграфа точно показывает, какое влияние оказывает ограничение количества процес- соров на величину отношения со/<о0 (т. е. здесь не предпо- лагается, что rri^n). 224
Теорема 5.7 [50]. В случае, когда < пусто, т^2, s, L,x — произвольные, справедлива оценка со__ . Гт-{-1 . о 2s + l] — ~ , s-4-2------— > . (25) <о0 I 2 r т ( v ' Доказательство. Необходимо доказать две ос- новных леммы, каждая из которых дает оценку сверху для ®/й>0. Каждая из этих оценок является наилучшей при не- которых значениях s и т. Пусть X представляет собой объединение непересекающихся интервалов из [0, со). Обозначим через ц(Х) сумму длин этих интервалов. Лемма 5.4. Если < пусто us,L,x,m — произвольные, то со/соо< (m-f-l)/2. Д о к а з а т е л ь с т в о. Пусть I={t\ |/(0|=1}, где f(t), напомним, определено как подмножество заданий Tit которые находятся на обслуживании в момент t (рассма- тривается фиксированный список L). Вначале покажем, что р(/)<ц,. (26) Рассмотрим множество заданий Т, определяемое как Т= U f(t). tel Для любой пары заданий ТTj, принадлежащих Т, должно существовать некоторое число k, такое, что Rk(Ti)+Rk(Tj)>i, так как в противном случае одно из этих заданий должно было бы начаться раньше (кроме случая т=1, для которо- го лемма очевидна). Но из этого следует, что в оптимальном расписании никакие два задания, принадлежащие Т, не могут выполняться одновременно. Поэтому получаем S ^>р(/), т что доказывает (26). Для того чтобы завершить доказательство леммы 5.4, заметим, что по крайней мере два процессора должны ра- ботать во все моменты времени /g/=[0, <о)—I. Поэтому 2 т»>2ц(/)-|-|*(/) = 2(о—и. (7) 2о>—ю0, г = | и окончательно получаем (т+1)и0^2ю. 8 Под ред. Э. Коффмана 225
Лемма 5.5. Если < пусто, пС^З us, L,x — произволь- ные, то — CsH-2—2^+1. (27) соо ' т ' ' Доказательство. Предположим, что существует пример, противоречащий лемме. На основании леммы 5.3 можно считать, что все тг рациональны, т. е. существует положительное целое число k такое, что для каждого i, существует целое число lt такое, что тг=/Д. Без потери общности можно также положить й0=1. Таким об- разом, w>s+2—(2s+l)/m и каждое lt удовлетворяет ус- ловию Рассмотрим работу системы, использующей список L. Как и раньше, положим /={?GlO, (о)| |/(7)|=1}, /'= = {/£[0, <о)| Пусть также 7=10, <в)—7. Издо- казательства леммы 5.4 следует, что р(7)^1. Поскольку по крайней мере два процессора находятся в рабочем сос- тоянии в каждый момент времени t£l, получим п 2 T,>m-p(7')+p(/)-|-2(w—р(7) —р(/'))> i = 1 откуда (/??—2) р (7')-}-2со— 1, р (Г) (/»+ 1 —2ы)/(т—2). (28) Поскольку <i»s+2—(2s+l)/m, получим /п т+1—2(0 Р (/) = О)—р (7 ) > 0)-—-— > > S4-2 — 2s+1 _m+l—2(s4-2—(2s+l)/m), ] /2g\ ” Y]\ rn — 9 ’ * ' ' т—2 Теперь заметим, что для любых tlt t^I, удовлетво- ряющих условию t2—1^\, должно существовать i, 1 такое, что r/-(^) + r,(Q> 1. (30) В противном случае обслуживание некоторого задания, выполняемого в момент времени /2, должно было бы начаться в момент tr или раньше. Напомним, что 7 пред- ставляет собой совокупность интервалов, каждый из кото- рых имеет вид [l/k, (1-\-1)/&] для некоторого целого чис- ла /, и введем набор целых чисел а0 < аЛ < < ар таких, что 1 = (cti + Yj/k)-. 226
Заметим, что неравенство (29) влечет неравенство (s+l)A. Для каждого i, построим граф Ht, в котором мно- жество вершин V(Hi) определяется как У(Я,.) = {0, 1, 2, .... (s-H)k-1}, а множество ребер определяется следующим образом: {«, v} является ребром в Н, тогда и только тогда, когда /-ДаД^+гДаДЛ) > 1. Заметим, что условие | и—и| Увлечет условие | аа—av\^k, из которого на основании (30) вытекает, что {и, и) яв- ляется ребром хотя бы одного из Н(, 1 i s. Поэтому нетрудно убедиться, что G(k, С помощью тех же рассуждений, которые применялись в доказательстве теоремы 5.6, можно показать, что для некоторого i, 1 s, г,- (/) dt > 1, о а это противоречит предположению о том, что (оо= 1. Таким образом, лемма 5.5 доказана. Доказательство теоремы 5.7 вытекает из лемм 5.4 и 5.5. Теперь рассмотрим примеры, показывающие, что оцен- ка, определяемая теоремой 5.7, является наилучшей из возможных. Эти примеры несколько сложнее предыдущих. Проверку правильности приведенных выражений для о и ®' мы оставляем читателю. Пример 16. Рассмотрим три случая. 1) Пусть 2^m^s + l, где S' = {710, Tt, Т2, ... . .., Tm.lt Т’1Г Т2..Тт_1\, < пусто, s произвольной, кроме того, т0 = 1, Ту —т)—1/2, 1^/^т—1; 7?,. (То) = 1/(2;п), 1 'С * :С Ядт,.) = /?дт;-) = 1/2, ₽ДТ/) = /?ДТ/) = 1/(2щ), A--=(Tlt ту т2, т2, 1 Д i Д m — 1; i^=j, 1ДгД5, 1Д j Д tn—1; •••> T'm-l’ T'm-l’ To\, L' = (T0, Tlt T2, Tm_lt T[, T2, ..., Тогда (D = (tn 4- l)/2, O)o = w' = l. 2) Пусть s+l<ms^2s+l. Для достаточно малого s>0 и произвольного положительного целого k определим 8* 227
&i=E\m—1)' 2fe, l^t‘^2^. Положим i i. (J {T'ij 11 i^m—1,1 $C/^£}- Далее, < пусто, s произвольно и, кроме того, т0 = 2/г, т,-. = 1^ = 1, 1<3<т—1, /?Л^о) = В1, IsCiXs; 1=С/<£; l=£i, 1</<$, —1, 1 < j ^k-, (T;/) = e2y, 1^/^S, l^i^/71—-I, l<Kk\ L — {Ai, /4j, >•>, Ak, At, Alt <<., A/i-i, Ло); где Л/==(5П, B2(, ..., Bs!), 1 </</:* B/,= (7’//i r;-o, i</<s; л;=(в;,-, B'2i, ..., в^_ъ,), B'lt = (T’+i,(, Ts+/if+1), l^i^-l, 1 m — 1; Ao = (TQ, Ts+ltl, Ts+2' i, ..., Tm_u j, Ts+i' Bs+2, fe, • • •, T’m-i, k)‘< L’ = {Ca, Q, Cl, C2, q, ..., Ck, C'k), с0 = (Л); C,. = (T1(., T2Z..Tm_i, J, Ci = (Ti, T'2i, ..., Тогда и = k (m +1) — (m—s—1), co' = (o0 = 2&, . а значит, 3) Пусть tn > 2s 4-1 • Для достаточно малого s > О и произвольного целого числа k' положим k = k'm и опре- делим 8( = 8(ffl—Пусть <Г = Го}иГ,7|1^1<т-1, 228
< пусто, s произвольно и, кроме того, т0 = &, т(у- = 1, 1 i гй—1, 1^/'^^; R1(T0) = e1, l<r<s; /?,• (Т1у) = 1—(m—l)e;-, 1 i ;C s, /?z (T,;) 8y, l=£i, 1^/^s, l^i^m—1, 1 --C jk', L = (Alt A2, . .., Am_2s_1, Blt B2, ..., Bs, C), где = (Tts+i, i> ^2s+/, 2’ •••> »)« 2s 1; = Ts+!, 2, T{2, Ts+/tS, ..., T [, j_j, T’J+i,fe)> 1 < i < s; Ce(7’0, Ts+1, x, Ts+i, j, ..., 7'ai)i, T^, T2k, ..., T^); Z/-=(T0, Dx, D2, ..., Dk), D^(TwT2i, ..., Тт^г), Тогда получим a> = (s-j-2) k'in—(2s-Y 1) k'—s, co' ==®0 — k'm, а значит, JH=s+2_..2£±1 too m s k'm . q 2s-|-1 if — при k 5.5. Задача об упаковке в контейнеры В этом параграфе *) мы рассмотрим важный частный случай, когда $=1, < пусто, все т;=1 и ггС^п. Эта задача известна в литературе под названием задачи об упаковке в контейнеры из-за очевидной эквивалентности проблемы составления расписания для этого случая и задачи «упа- ковки» совокупности «весов» (7?1(Т1), . . . , Ri(Tn)) в ми- нимальное число «контейнеров» (т. е. единичных временных интервалов) единичной емкости (т. е. максимальный ис- пользуемый ресурс равен 1) таким образом, чтобы содер- жимое ни одного контейнера не имело бы вес, превышаю- щий 1. Как и в гл. 1, отметим, что эта задача является двойст- венной для задачи минимизации количества процессоров, требуемых для выполнения заданий, имеющих общий край- ний срок w. Без потери общности можно предположить, что времена выполнения нормированы таким образом, что ) Содержание и способ изложения материала основаны на [82]. 229
со= 1. В этом случае процессоры становятся «свободным» ресурсом, а ресурс «время выполнения» ограничен вели- чиной й>=1. В дальнейшем оказывается удобным принять эту точку зрения, согласно которой наша задача рассма- тривается как частный случай задачи из предыдущего па- раграфа. Рассматриваемая задача эквивалентна также одномер- ной задаче раскроя (разновидности задачи о рюкзаке); поэтому эффективные алгоритмы определения оптимальных или близких к оптимальным вариантов упаковки (т. е. расписаний) имеют очевидное практическое применение, например, при составлении таблиц, распределении фай- лов, нарезании колец (формирование колец разной шири- ны из материала, имеющего одну стандартную ширину), решении задачи оптимизации длины кабеля и вообще таких задач, в которых несколько «кусков» различной «длины» должны быть образованы из кусков, имеющих стандартную «длину». В данном параграфе мы несколько изменим обозначения для того, чтобы они соответствовали стандартным. 1. Вес Ri(Ti) обозначен через а,. Можно считать, что 0<аг<1. 2. Последовательность весов обозначена через L= (аи «а, . - ап). 3. Минимальное количество контейнеров, в которые могут быть упакованы элементы множества L, обозначено через L*. 4. Контейнер i, обозначенный через Вг, соответствует временному интервалу [t—1, i). Существует четыре алгоритма упаковки в контейнеры, которые в основном составят предмет нашего исследования. В каждом из этих алгоритмов вес at загружается первым, а вес ah загружается раньше, чем ak+1, для всех £>1. 1. Загрузка в первый подходящий контейнер (или FF: first-fit). Каждый вес ak помещается в контейнер, имеющий минимальный индекс из числа тех, которые подходят для размещения ак. 2. Загрузка в лучший из подходящих контейнеров (или BF: best-fit). Каждый вес ah помещается в такой контей- нер, который после помещения в него ak будет иметь наи- меньший неиспользованный объем. 3. Загрузка в первый! подходящий контейнер по убы- ванию весов (или FFD: first-fit-decreasing). Множество L представляется в виде списка, упорядоченного по не- возрастанию весов, и к нему применяется правило FF. 230
4. Загрузка в лучший из подходящих контейнеров по убыванию весов (или BFD: best-fit-decreasing). То)’же, что и в п. 3, но с заменой FF на BF. Количества контейнеров, требуемых в каждом из этих алгоритмов при работе со списком L, обозначаются через FF(L), BF(L), FFD(L) и BFD(L) соответственно. Начнем с простого примера, иллюстрирующего виды списков, для которых FF и BF дают неудачные решения. Пример 17. Пусть п делится на 18, и пусть 6 удов- летворяет условию 0<6<1/84. Определим список +— = (ai, а2, . . ап) следующим образом: + = 1/6—26 для 1/3 4- 6 для 1/2 + 8 для 1 + i ^ti/3, п/3 < i 2п/3, 2n/3 < i + п. Очевидно, L*=n/3, так как элементы можно загрузить оптимально, помещая по одному элементу каждого типа в каждый контейнер. Однако, как легко проверить, оба ал- горитма упаковки (FF и BF), примененные к списку L, приведут к такому варианту упаковки, когда имеется +18 контейнеров, каждый из которых содержит по шесть эле- ментов размером 1/6—26, п/6 контейнеров, каждый из ко- торых содержит по два элемента размером 1/3+6 и п/3 контейнеров, каждый из которых содержит единственный элемент размером 1/2+6. Два варианта упаковки показа- ны на рис. 5.38. Таким образом, получаем FF (L) _ BF (L) _ n/18 + n/6 + ;i/3 _ 5 L* ~~ L* ~~ п/3 ~ 3 ' Несколько модифицировав список L, описанный в при- мере 16, можно получить еще худший результат. Теорема 5.8. Для любого существует список L, для которого L*=k и FF(L) = BF(L) >^L*—8. Доказательство. Как и в предыдущем при- мере, элементы L принадлежат трем группам, и их размеры приблизительно равны 1/6, 1/3 и 1/2. Количество элементов во всех группах одинаково. В списке L элементы первой группы предшествуют элементам второй группы, которые в свою очередь предшествуют элементам третьей группы. Пусть п—положительное число, делящееся на 17, и пусть 6 выбрано так, что 0 < 6 < 18“'1/17. Первая группа разбита на п/17 блоков по 10 чисел в каждом. Обозна- 231
чим 10 чисел в i-м блоке первой группы через а0/, а1Л,..., а„л. Эти числа определены следующим образом: aai — 1/6 + 336,-, аи= 1/6-36,-, +< = +/ = 1/6—76,-, п4, = 1/6—136,., +; = 1/6 + 96,., ай;. = а7,. = а8,. = «9,. = 1/6—26,-, 6,. = 6-18('г/1,>~‘ для l^i^n/17. Предположим, что первые Ю/г/17 элементов списка L суть (а01, аи, ..., ап, а02, а12, ..., а92, ...). Заметим, что ++i+ • • • ++i = 5/6 + 36,- и a6i-\-afiL +. .. +«„• = 5/6+6;. Следовательно, для всех i при использовании алгоритма FF либо BF первые пять элементов i-ro блока займут (2i—1)-й контейнер, а последние пять элементов i-ro блока займут (2/)-й контейнер. Для того чтобы убедиться в этом, нам необходимо только заметить, что ai( (наименьший элемент 232
в блоке г) не будет загружен ни в один из предыдущих контейнеров из-за того, что даже наименее заполненный из них (2г— 2)-й содержит в сумме 5/6 + 6,.j = 5/6 + 186,. Кроме того, наименьший элемент из набора а^, aei, . .., ati имеет величину 1/6—26, и не будет загружен в (2г— 1)-й контейнер, наполнение которого составляет 5,-6 + 36,. Сле- довательно, п/17 блоков в первой группе должны занять 2п/17 контейнеров. Обратимся теперь ко второй группе. Элементы этой группы равны примерно 1/3, и они снова разбиваются на п/17 блоков, по 10 элементов в каждом. Элементы этих блоков обозначим через boi, blt, .. ., bsi. В списке L все эти эле- менты идут вслед за о,, и образуют последовательность (Ьо1, Ь41, ..., Ья1, Ь02, Ь12, . .Ь92, Значения bj4 опре- делены следующим образом: Ьо. = 1/3 + 466,, ^, = 1/3—346,, 1/3 + 66,-, b4i =--1/3 + 126,, b6i= 1/3-106,, Ь61 = &7< = ^1=^( = 1/3 + б/- Элементы г-го блока занимают контейнеры от (2п/17) + + 5г—4 до (2гг/17) + 5г, причем bt)i упаковано вместе с b4i, b2i—вместе с b3i и так далее. Чтобы в этом убедиться, рассмотрим наполнение пяти контейнеров, занятых i-м бло- ком; оно выглядит следующим образом: 2/3 + 126,, 2/34 126,, 2/3 + 26,, 2/3 + 26, и 2/3 + 26,-. Следовательно, вес bsi= 1/3—106, не может быть поме- щен ни в один из первых двух контейнеров, а вес Ьц = = 1/3—346, не может быть помещен ни в один из контей- неров, содержащих предыдущие блоки, поскольку все они наполнены по крайней мере до уровня 2/3+26,_г=2/3+ +366,. Следовательно, п/17 блоков второй группы зани- мают 5п717 контейнеров. Третья группа состоит из 10п/17 элементов, каждый из которых имеет вес 1/2+6. Очевидно, каждый из них за- нимает один контейнер. Таким образом, список L исчерпан. Общее число контейнеров, потребовавшихся при загрузке алгоритмами FF или BF, в точности равно п. Однако элементы списка L могут быть упакованы в (10и/17)+1 контейнеров следующим образом. Все контей- неры, кроме двух, содержат по одному весу 1/2+6. Остав- 233
Шееся пространство в каждом из таких контейнеров запол- нено одной из трех следующих комбинаций: 1) cijt+bji для некоторых i, j таких, что 2^/^9, 2) а<ц+Ьц для некоторых, i, l^i^n/17; 3) ai; + b0, i+1 для некоторых i, l^i^n/17. Остаются b01, au (n,17) и один вес 1/2 4-6, которые легко могут быть загружены в два оставшихся контейнера. Таким образом, мы показали, что L* 1 4- Юн/17, поэтому FF (£) 17л £* 10/7 4-Г7 > 17__2_ 10 £* ’ и аналогично BF (£) 17 2 £* > 10 £* ‘ Чтобы получить значения L* , не сравнимые с 1 по мо- дулю 10, мы можем сформировать список L' путем присое- динения к L k элементов, каждый из которых имеет размер 1, где k — фиксированное число, не,большее 9. В этом слу- чае предыдущие рассуждения приводят к выражениям FF (L')=FF (L)~Fk и L'*=L*4~^i, поэтому FF (L') ^17 8 £'♦ =' 10 £'* ’ причем такая оценка имеет место и для BF (L')IL'*. Это доказывает теорему 5.8. Теперь покажем, что примеры, построенные в предыду- щем доказательстве, соответствуют наихудшему случаю и что число 17/10 является асимптотической нижней оцен- кой для отношений FF(L)/L* и BF(L)IL* при больших L. Теорема 5.9 [144, 50]. Для всех списков L справедли- вы следующие оценки: FF(L)^L*+2, BF(L)^L*+2. Доказательство. Используем только два сле- дующих свойства алгоритмов FF и BF. • 14 1. Ни один элемент не загружается в пустой контейнер до тех пор, пока не будет установлено, что этот элемент не может быть загружен ни в один из частично заполненных контейнеров. 2. Если имеется единственный непустой контейнер с наименьшим уровнем, то ни один элемент не может быть’в него помещен, пока не будет установлено, что этот элемент 234
не может быть помещен ни в один из контейнеров с мень- шим номером. (Под уровнем контейнера понимается просто суммарный содержащийся в нем вес.) Определим отображение W: [0, 1]->[0, 1] следующим образом (см. рис. 5.39): 6а/5 для 0 1/6, 9а/5—1/10 для 1/6 <а^ 1/3, 6а/5-)-1/10 для 1/3 < а ^1/2, 1 для 1 /2 < а 1. некоторый контейнер Утверждение 1. Пусть содержит элементы Ьх, Ь2, . . ., bh-, тогда k 17 Доказательство. Если 6^1/2, то W(6)/Ь^З/2. Экстремум отношения достигается только при Ь=1/3, а в остальных случаях оно имеет меньшую величину. Таким об- разом, утверждение очевидно, если в наборе нет элемента bt, превышающего 1/2. Если же такой элемент есть, можно считать, что это blt и тогда нужно показать, что если то k S. ь, < 1/2, 1=2 k 7 s w (/>,.) 1=2 Ш Следует отметить, что по- скольку наклон графика W (Ь) одинаков в интервалах [0, 1/6] и bt из второго интервала может заменен двумя элементами 1/3 [1/3, 1/2], то любой элемент быть без потери общности и bt—1/3. Поэтому пред- положим, что 6^1/3 для Кроме того, если bj и bj. оба меньше или равны 1/6, то они могут быть объединены в один элемент, даже при этом У, W (&,-) не уменьшится (но может в действительности увеличиться). Следовательно, можно предположить, что в интервале (0, 1/6] находится, самое большее, один из элементов bit i^2, а остальные на- ходятся в интервале (1/6, 1/3]. 235
Это предположение дает возможность свести доказатель- ство к рассмотрению четырех случаев: 1) k=2, 62^1/3; 2) k=3, 1/6<62=Оз<1/3; 3) 6=3, 62<1/6<63<1/3; 4) k = 4, 62^1/6<63^64<1/3. В случае 1) немедленно получаем 1Г(62)^7/10, так как 62^1/2. В случае 2) W (62)+W (Ь3) = (9/5) (62+63)— 1/5С ^9/54/2—1/5=7/10, поскольку 62+63^1/2. В случае 3) Г(62)+Г(6з)=(6/5)62+(9/5)63—1/10^1/5+3/5— 1/10 = =7/10. И наконец, в случае 4) W(b2)+W (b3)+W(bjs^. ^(6/5)62+(9/5) (63+64) — 1/5=(9/5) (62+63+64) — (3/5)62— —1/5<9/10—1/5=7/10, поскольку 62+63+64<1/2. Введем понятие крупности контейнера, означающее наибольшее число а такое, что некоторый контейнер с меньшим номером наполняется до уровня 1—а. Крупность первого контейнера равна 0. Утверждение 2. П редположим, что контейнеры заполнены в соответствии с алгоритмом FF или BF и не- который контейнер В имеет крупность а. Тогда любой эле- мент, находящийся в В, который был помещен в него перед тем, как В оказался заполненным больше чем наполовину, превышает а. Доказательство. До тех пор, пока контейнер не оказался заполненным до уровня, превышающего 1/2, он либо пуст, либо является единственным непустым кон- тейнером самого низкого уровня (в соответствии со свой- ством 1 алгоритма загрузки). При этом согласно ограниче- ниям 1 и 2 любой элемент, помещенный в контейнер, должен оказаться неподходящим для любого другого контейнера с меньшим номером, следовательно, должен превышать а. Утверждение 3. Пусть контейнер, имеющий крупность а<1 /2, заполнен элементами b-^b^. . .^bh по- k средством VB-упаковки (BF-упаковки). Если 2 Ь^Х —а, 1= 1 k то 2 Г (6,)^1. 1 = 1 Доказательство. Если 64>1 /2, то справедли- вость утверждения следует немедленно, так как W (bp-1. Поэтому предположим, что 61^1/2. Если £>2, то второй элемент, помещенный в контейнер, был помещен до того, как контейнер оказался заполненным больше чем наполо- вину. Следовательно, согласно утверждению 2, по меньшей мере два элемента превышают а. В частности, должно вы- 236
подняться Рассмотрим несколько случаев в за- висимости от диапазона значений а. k Случай 1. а^1/6. Тогдаb;1—а^5/6. По- i = i скольку W(Р)/р^6/5 в диапазоне 0^р^1/2, немедленно получаем k 2>(»,)?44=L 1=1 Случай 2. 1/6^а^ 1/3. Рассмотрим варианты в за- висимости от значений k. 1) k=\. Здесь должно быть 1—a^l/2 или оС^1/2, по- скольку fej^l/2, но это противоречит предположению, что а<1/3. 2) &=2. Если как blt так и Ь2 оба больше или равны. 1/3, то №(6j.)+WW^(6/5-1/3+1/10)-2=1. Если оба мень- ше 1/3, то &1+&3<2/3<1—а, что противоречит нашей гипо- тезе. Если &х^1/3 и 62<1/3, то, поскольку Ьг и Ь2 должны быть больше, чем а, получаем a</?2<l/3^/?iCl/2. Сле- довательно, W (/>i)+UZ(fc2)=(9/5)fe1—l/10+(6/5)b2+l/10= = (6/5) (fei+b2)+(3/5)fe1. Поскольку Ь1+&2^1—« и 6i>a, получаем W(bt)+IF(&2)>(6/5) (1— a)+(3/5)a=l+(l/5— —(3/5)a)^l, так как а^1/3. 3) k^3. Как и в предыдущем случае, если два элемента bt больше или равны 1/3, результат следует немедленно. Если b-^\!3>b^a, то k № (^) + Г (62)+У> (&,.)> 1 = 3 k . 1 . 9 < 1 . 6 V L > 5 Ь1 + 10 + 5 10 + 5 Ь' 4 = 3 k 6 V и । 3 , 6 ,, , . 3 , . 1 3 . =у2Л-+у&2>5-0 1+у-та>1- 4 = 1 Если 1 /3>61^62>а, то W (bt] + W (b2) + £ W (&,.) > (4) (^ + Ьг)-1 + 4 Е bi (4) о—“)+(4) 4-=1 +4а~+а=*• 237
Случай 3. 1/3<а<1/2. При k={ имеем Ь^{—а> >1/2, так что W(bt) = l. Если /г^2, то Ь^Ь2> 1/3, и ре- зультат следует немедленно. Утверждение 4. Если контейнер, имеющий круп- k ноешь a.<Z\/2, заполнен элементами . .^bhu^ W (bl) = i= i = 1—p, где p>0, то имеет место один из двух случаев: 1) 6=1 и Ь^1/2; k 2) Z>,<l-a-|p. Доказательство. Если k=\ и ЬЕ>\/2, то не может быть р>0. Поэтому, если условие 1) не выполняется, мы можем считать, что £^2; отсюда так же, как и при до- казательстве предыдущего утверждения, получаем Ь^ k ^Ьз^а. Пусть = 1—а—у-Тогда можно построить >= 1 контейнер, заполненный элементами Ь3, Ь4.bh и дву- мя другими элементами 6Х и б2, выбранными таким образом, ЧТО б1 + б2=^1 + &2+Т, 62i>b2 и при этом ни 6Ъ ни 62 не превышает 1/2. Из доказательства утверждения 3 и того факта, что 6j и 62 превышают а, следует, что k 2 г(ь/)+г(б1) + г(б2)^1. <=з Но поскольку наклон W в диапазоне [0, 1/2] не превышает 9/5, получаем W (6i)+lT (bz^Wfb^-'rW (Ь2)+(9/5)у. Поэто- му у^(5/9)6, и условие 2) выполняется. Теперь мы готовы к тому, чтобы завершить доказа- тельство теоремы 5.9. Пусть L = (a1, а2, ..., ап) и W = = 2 (а>)- Согласно утверждению 1 (17/10)L*^ W. < = 1 Предположим, что в алгоритме FF (BF) контейнеры Bi, В2, .. ., B'k таковы, что в каждом из них находится хотя бы один элемент и для каждого из них 2 («/) = / = 1—р,-, р; > 0, где / пробегает все элементы в контей- нере В(. Мы полагаем, что из условия 1 г < j ^.k выте- кает, что в первоначальной нумерации контейнеров В'с имеет меньший номер, чем В/. Пусть обозначает круп- ность B'i- Поскольку В'{ не содержит ни одного элемента, превышающего 1/2, для всех у, должно выполняться у,- < 1/2. На основании утверждения 4 и определения крупности 238
получим Vi > Vi-1 + gP(-P Поэтому /г — 1 k E (Vz—Ь-l) =4(T»-T1) =^1'T< l 1=1 1 = 2 Поскольку pft не может превышать 1, то ip,<2. t=i Применяя утверждение 3, получим FF (L) < Г 4-2< 1.7L* + 2, BF (L) С VT+2< 1.7L*4-2, что завершает доказательство теоремы. Если список L = (щ, . . ап) таков, что для некоторого 1/2 все а, меньше или равны а, то наихудший случай для обоих алгоритмов загрузки не является столь экстре- мальным. В частности, имеет место следующий результат. Теорема 5.10 [52]. Для любого положительного числа а^1/2 положим k=[a~1]. Тогда справедливы следую- щие утверждения. 1. Для каждого существует список L=(alt . . в котором все at£(0y а] и L*=l, такой, что 2. Для любого списка L = (a1, . . ., ап), в котором все щ £ (0, а], имеем ЕЕ(Л)^(Щ)л* + 2. Утверждения 1 и 2 выполняются также для алгоритма BF. Доказательство. Вначале опишем способ по- строения списка L, в котором ни один элемент не превыша- ет а и при этом FF (L) _BF (L) fe-J-1 1 L* ~ L* “7 k kL* • Пусть I — произвольное положительное число. Список L составляется из элементов, которые все очень близки к !/(£-]-1). Участвуют два типа элементов, определяемые 2.39
следующим образом: ^=г+-1-^'+16’ / = 1-2........‘-1’ «1/ = «2/= / = 1, 2, ..., /, где 6>0 — достаточно малое число. В списке L элементы типа а располагаются в порядке невозрастания, а элементы типа b располагаются в порядке строгого возрастания и распределены так, что между каждой парой bj и Ь]_1 после- довательных элементов типа b оказывается ровно k эле- ментов типа а. Список L полностью характеризуется тем свойством, что элемент Ь1_1 оказывается во второй позиции. Мы предоставляем читателю убедиться, что FF (L) = BF (L) = ~ 1 ] • Легко видеть, что элементы L могут быть оптимально упакованы путем загрузки bj, aij, a2j, . . ., ahj в один кон- тейнер для каждого /=1, . . ., I—1 и загрузки alz, at[,.. . . . ., akl в один дополнительный контейнер. Это дает L*=l. Тогда получим FF (L) BF (L) k-^l 1 L* ~ L* kt — k kL* ' Так же легко может быть получена верхняя оценка. Предположим, что список L не содержит элементов, пре- вышающих \/k, где k — целое число. Рассмотрим процесс упаковки L с помощью алгоритма FF. Каждый контейнер, кроме, быть может, последнего, содержит по меньшей мере k элементов. Предположим, что каждый из контейнеров Bt и Вj (i<Z]'<ZFF (L)) содержит элементы, составляющие в сумме меньше чем k/(k~F\). Тог- да, поскольку Bj содержит k элементов, Bj должен содер- жать элемент, размер которого меньше чем 1/(^+1). Но этот элемент должен был бы поместиться в В, и поэтому не может быть помещен в Bj алгоритмом FF; получаем проти- воречие. Таким образом, все контейнеры, за исключением, быть может, двух, должны быть заполнены не менее чем до уровня k/(k-FY). Следовательно, обозначив сумму всех элементов в L через w(L), получим L*^W(L)^^(FF(L)-2), и, окончательно, FF(L)s^ (fe+^ Z~* + 2. 240
Аналогичный, но несколько более сложный способ до- казательства может быть применен для алгоритма BF. Та- ким образом, теорема доказана. Из теоремы 5.10 немедленно следует, что если а^1/2 и L=(alt. . ,,ап), причем все at£(0, а], то для всех е>0 < 1 -На-’Г + е при условии, что L * достаточно велико. Такая же оценка справедлива для BF. Наиболее глубокие из известных результатов, относя- щихся к задаче упаковки в контейнеры, получены для ал- горитмов загрузки FFD и BFD. Для того чтобы описать эти результаты, положим AfFFD (“) = lim FFD (А)/А*, где L пробегает все списки, в которых все элементы аг- удовлетворяют условию а; £ (0, а]. Например, из предыдущих результатов вытекает, что I 17/10 при а £(1/2, 1], FF ' | j a-i j-1 ПрИ ag(0, 1/2]. Теорема 5.11 [77]. Справедливо равенство f 11/9 при а С (1/2, 1], I 71/60 при а £(8/29, 1/2], A?FFD(a)-2 7/6 при а€(1/4> 8/29], [ 23/20 при а £(1/5, 1/4]. Единственное известное доказательство теоремы 5.11» принадлежащее Д. Джонсону [77, 82], чрезвычайно остро* умно и довольно сложно; оно занимает более 100 страниц- Нет нужды говорить, что ограниченный объем книги не позволяет привести его здесь. Наиболее трудная часть дока- зательства, а именно установление верхней оценки для /?ffd(«), базируется на такой же стратегии, которая была использована для получения верхних оценок для FF и BF. Она заключается в том, что вводится весовая функция, ко- торая ставит в соответствие элементам списка L действи- тельные числа или веса, зависящие от их размеров, таким образом, чтобы соблюдались следующие условия. 1. Общий вес всех элементов, содержащихся в списке L, отличается от общего числа контейнеров, используемых в конкретном алгоритме загрузки (например, FF или FFD), не более чем на некоторую абсолютную постоянную с. 241
2. Общий вес любого правильно упакованного контейне- ра должен быть меньше некоторой фиксированной постоян- ной С . Для FF мы имели с' = 17/10 и с=2; для FFD можно вы- брать с'= 11/9 и с=4. Как и для случая FF и BF, оценки, установленные- в теореме 5.11 для FFD, справедливы также и для BFD. Однако между алгоритмом FFD и алгоритмом BFD сущест- вует некоторая асимметрия, как показывает следующий ре- зультат (который также используется для доказательства равенства /?Вре> (1) = 11/9). Теорема 5.12 [52, 82]. Для всех списков L-= (alt. . . . . ., ап) имеют место соотношения 1) BFD (L)t^FFD (L), если все а;£11/6, 1]; 2) BFD(L)—FFD (L), если все at £ [1/5, 1]. —-2е -—2s 4 >4 Рис. 5.40. Даже для этой теоремы доказательство занимает около 15 страниц и здесь не приводится. Возможно, что полная формулировка теоремы 5.11 за- ключается в следующем [78]. 242
Оптимальная упаковка * L =60 (хвп) 5__е 29 29 (х Збп) Рис. 5.41. _£ 4 4 ± 4 1 4 (X 3/7) J_2g 4 Z£ j-2e |-Z£ (хзл) Рис. 5.42. 243
(x4n) ("xlSn) Рис. 5.43. 1 5 Z 5 Z 5 (x 5n) 2 5 2. 5 (xnj (x5n) Pnc. 5.44. 244
FFD(£)-9lT- 2. Г ипотеза. Справедливо равенство / 11/9 при а£(1/2, 1], 71/60 при а е (8/29, 1/2J, ^ffd(°0 = \ 7/6 при а £(1/4, 8/29], I b — 9 1 ' 1 +k^~V) пРи а<Т- fe==L« lJ- Приведенные значения Rffd (а) при представ- ляют собой верхние оценки, которые могут быть получены путем прямого обобщения примеров, изображенных на рис. 5.42, 5.43. На рис. 5.40—5.45 приведены говорящие сами за себя примеры, показывающие, что пределы изменения аг, ука- занные в теоремах 5.11 и 5.12, неулучшаемы. Одна из причин, по которой доказательства большого числа результатов, относящихся к задаче об упаковке в контейнеры, оказываются чрезвычайно сложными, заклю- чается в том, что существуют примеры, подобные приведен- ному ниже (найденному Сильвией Галац [66]). В этом при- 2-15
мере рассматриваются список L и его подсписок L', L'^L, для которых FFD (L')>FFD (L). Такое положение может Рис. 5.46. Пример 17. Пусть Д = (285, 188(х6), 126(х18), 115(х3), 112(х3), 75, 60, 51, 12(хЗ), 10(х6), 9(х 12)), L' = L—{751, где a(xb) означает b копий а. Контейнеры имеют емкость 396. Упаковки, полученные с помощью алгоритма FFD для L и L', показаны на рис. 5.46. . ^Довольно полное обсуждение многочисленных других алгоритмов упаковки в контейнеры, а также анализ их поведения в среднем (в отличие от поведения в худшем) можно найти в докторской диссертации Д. Джонсона [77, 78]. 5.6. Оценки для некоторых других задач Последний параграф главы мы посвятим описанию не- которых недавних результатов, относящихся к оценке от- ношения w/coo при других значениях параметров s, L, <, тит. . 246
При условии отсутствия ограничений на количество процессоров задача составления расписания с параметра- ми: s — 1, все= 1, < пусто, т и L произвольные—-совпа- дает с задачей упаковки в контейнеры, в которой мы полу- чили для co/coq асимптотическую оценку 17/10. Когда чис- ло процессоров т фиксировано (оно может быть много мень- ше, чем число заданий /г), то это эквивалентно условию, чтобы каждый контейнер содержал не более т элемен- тов. Для этого случая справедлив результат, полученный Краузе. Теорема [91]. При s=l, -гг —1, пустом <, произ- вольных т и L справедливы следующие утверждения: 1) (о>—2)/а>„ <27/10—24/(10т); 2) существуют примеры, для которых ы/<оо^27/10— —(37)/(10 т). Следовательно, наличие ограничения на количество про- цессоров увеличивает рассматриваемое отношение пример- но на 1. Если задания в L расположены в порядке убывания тре- бований на размер ресурса, то списочное расписание ока- зывается в точности таким, которое получается путем при- менения алгоритма FFD к соответствующей задаче упаков- ки в контейнеры, в которой введено ограничение, что ни один контейнер не может содержать больше чем т элемен- тов. Время завершения в расписании обозначено здесь че- рез ®ffd- Теорема [91]. Пусть s = 1, < пусто, все т,= 1, т произвольно-, тогда справедлива оценка (wFFD—I)/oj0<(2—2/т при т^2. Теперь обратимся к ряду интересных результатов, ка- сающихся задач с многими ресурсами (т. е. таких, в кото- рых s может иметь произвольное значение). Быть может, наиболее поразительный из них заключается в следую- щем. Теорема 5.13151]. Пусть < пусто, все тг = 1, т^п и s и L произвольны, тогда справедлива оценка <о^(«4-7/10)л)у-|-5/2. (31) Более того, коэффициент при соо является неулучшаемым. Разумеется, при s=l эта оценка в точности совпадает с оценкой теоремы 5.9 (с несколько меньшим постоянным слагаемым). В действительности доказательство теоремы 5.13 методом индукции основано на использовании теоремы 5.9 для базы индукции. 247
Сравнивая этот результат с результатом теоремы 5.6, мы видим, что ограничение, заключающееся в равенстве 1 всех т;, позволяет усилить верхнюю оценку отношения оэ/со0 от s-f-1 до$+7/10. Еще раньше Яо было показано [146], что асимптотическая оценка для ©/©„ не может превы- шать $+17/20. Как можно заподозрить на основании теоремы 5.5, введения ограничения, чтовсет( = 1, при сохранении общего вида упорядочения < недостаточно для того, чтобы по- мешать отношению ®/(о0 сильно увеличиваться. Наиболее сильный из известных в настоящее время результатов, от-, носящихся к этому вопросу, заключается в следующем. Теорема 5.14 [51]. Если все т(-=1, tri^n, s, <, L— произвольные, то справедливы следующие утверждения: 1 \ ® 1 । 1 । 1 2 ) существуют примеры, для которых со со0 , 1 , , 2s Если расписание составляется методом критического пути, то оценка величины ©/©0 для наихудшего случая значительно улучшается. В частности, может быть доказан следующий результат [51]. Теорема 5.15. Если все т(-= 1, т^п, s и < — произ- вольные, то справедливы следующие утверждения: 1) 2Ь+]; ' о)о 10 ‘ 2) для любого 8>0 существуют примеры, для которых 2ср>17 +1_8> со0 10 1 Напомним, что в частном случае s = 0, даже если имеются ограничения на число процессоров (т. е. допу- скается т < и), Ху показал, что ©ср = ©0 (см. гл. 2). Имеется несколько естественных обобщений рассмотрен- ной модели системы с дополнительными ресурсами, иссле- дование которых только начинается. Эти обобщения допу- скают различное быстродействие процессоров (см. гл. 2), невозможность выполнять некоторые задания на некоторых процессорах, а также наличие контейнеров различного объема. Однако ограниченный объем книги не позволяет нам здесь рассмотреть эти вопросы.
.ГЛАВА 6 ПЕРЕЧИСЛИТЕЛЬНЫЕ И ИТЕРАТИВНЫЕ АЛГОРИТМЫ 6.1. Введение В этой главе мы рассмотрим практические методы реше- ния таких задач составления расписаний, для которых от- сутствуют полиномиальные алгоритмы нахождения опти- мальных расписаний. Как показано в гл. 4, общая задача упорядочения выполнения работ и, в частности, конвейер- ная задача попадают в эту категорию. Разумеется, термин «практический» является весьма расплывчатым; в некото- рых случаях мы можем потребовать, чтобы алгоритм, ра- ботающий в реальном времени, производил упорядочение двух десятков работ за считанные миллисекунды. В дру- гих случаях расчет оптимального или субоптимального рас- писания за несколько минут оказывается вполне допусти- мым. Мы можем разбить вычислительные методы, предназна- ченные для составления расписаний (или решения других комбинаторных оптимизационных задач), на классы в соот- ветствии с тем, предназначены ли они для определения оп- тимального решения или только приближенного решения. Назовем методы первого класса точными, а методы второго класса — приближенными. Мы также рассмотрим третий важный класс методов, а именно таких, которые позволяют найти приближенное решение с допустимым гарантирован- ным отклонением от оптимального решения. Мы их назо- вем методами с гарантированной точностью. Когда мы сталкиваемся с задачей, такой большой и сложной,-что поиск оптимального решения оказывается неосуществимым, хо- рошим выходом является нахождение решения, качество которого было бы известным. Если данные содержат не- определенность или критерий стоимости допускает некото- рый произвол, то решение с гарантированной точностью может оказаться фактически таким же хорошим, как и точ- ное, 249
Все точные методы, предназначенные для решения об- щих задач, рассматриваемых в этой главе, включают в том или ином виде перебор, так как невозможно избежать взрывоподобного увеличения размерности пространства ре- шений (по крайней мере, сейчас мы не знаем, как это сде- лать). Идея заключается в том, чтобы осуществлять пере- бор эффективно, используя при этом как можно больше информации для сокращения дерева поиска. Здесь мы об- судим общую схему такого перебора с возвратом, включаю- щую все, что в литературе обычно называют алгоритмами ветвей и границ. В настоящей главе представлено обобще- ние подходов, изложенных в [88, 94, 96]. Приближенные алгоритмы — это любые схемы, кото- рые могут привести к получению допустимого решения с низкой стоимостью. Плодотворный подход часто форми- руется при исследовании частных случаев, и правило, дающее оптимальный результат в простых случаях, такое, как «первой назначается работа с наименьшей длительно- стью», может быть перенесено на сложные ситуации. Не- смотря на кажущуюся уязвимость этого подхода, в послед- ние десятилетия появилось несколько общих методов, кото- рые представляются эффективными для широкого круга за- дач. Одним из них является поиск в локальной окрестности, другим - - метод ветвей и границ без возвратов. Мы рас- смотрим оба этих подхода совместно с экспериментальны- ми результатами для среднего времени завершения в кон- вейерной задаче для двух машин. В заключение мы обсудим подход, в котором сочетают- ся точный и приближенный методы, а именно применяется комбинация точного и приближенного алгоритмов для бо- лее быстрого получения точного решения или для нахож- дения решения, обладающего заданной точностью. Подход, гарантирующий-заданную точность, может рассматривать- ся как метод доказательства теорем в очень частном случае, когда допустимое расписание предъявляется вместе с до- казательством того, что его стоимость лежит в некоторых границах по отношению к оптимальной.^?Я! При создании эффективного алгоритма для задачи, яв- ляющейся слишком большой и сложной для точного реше- ния, разработчик в основном полагается на интуицию и зна- ние особенностей задачи. В алгоритмах ветвей и границ это отражается на построении процедур вычисления нижней границы (оценки), правила доминирования и расчета верх- ней границы (оценки). Нижняя оценка сложности для ме- тода ветвей и границ невозможна, так как если бы была из- 250
вестна идеальная нижняя граница и идеальный эвристичес- кий алгоритм определения начального решения, то работа была бы закончена, не начавшись. В следующем параграфе вводится общая схема для ал- горитмов ветвей и границ. Она включает ситуации перепол- нения памяти, превышения времени счета, а также оста- новки при достижении заданной точности. За этим следуют доказательство корректности и ряд недавних результатов, касающихся зависимости потребностей в вычислительных ресурсах от правил отсечения, определения допустимых ре- шений, от правила доминирования, нижней оценки и задан- ной степени точности. Далее мы рассмотрим приближенные алгоритмы, включающие эвристические процедуры и поиск в локальной окрестности. В заключение представлены ре- зультаты расчетов для двухмашинной конвейерной задачи, которая упоминалась выше. Описаны характеристики точ- ных, приближенных и гарантирующих заданную точность алгоритмов. Особое внимание уделено извлечению из ре- зультатов машинных расчетов наиболее полезной информа- ции — в виде допустимых решений и нижних оценок опти- мальных решений. 6.2. Алгоритмы ветвей и границ для задач о перестановках 6.2.1. Предпосылки. Под методами ветвей и границ подразумевают алгоритмы перебора, которые появились не так давно как фундаментальный общий метод нахождения оптимальных решений дискретных оптимизационных задач. Методика ветвей и границ быстро развилась, и сейчас пол- ный список работ, связанных с ней, расчитывает несколько сотен наименований. Характерными примерами являются работы, посвященные конвейерным задачам и общей зада- че составления расписаний [8, 76, 128, 129], задаче комми- вояжера [68], общим квадратичным задачам о назначении [53, 118] и задачам целочисленного программирования [58, 60]. Хотя метод ветвей и границ был развит и обобщен мно- гими авторами [1, 7, 60, 107, 113, 120, 123], очень немно- гие из них рассматривали зависимость относительных по- требностей в вычислительных ресурсах от выбора пара- метров алгоритма. Одним из исключений является недав- няя работа Фокса и Шрейджа [44], которые теоретически сравнили относительное число вершин, обследуемых ал- горитмами ветвей и границ, для задачи целочисленного 251
программирования при трех различных стратегиях ветвле- ния (правилах выбора следующей вершины). Хотя алгоритмы ветвей и границ обычно являются бо- лее эффективными, чем полный перебор, все же их требо- вания в вычислительных ресурсах растут как экспоненты или полиномы высокой степени от размера задачи п. В та- кой ситуации реальные задачи, как правило, не могут быть решены точно. Недавние результаты в области вычисли- тельной сложности дают большие основания считать (хотя это еще не доказано), что потребности в вычислительных ресурсах для нахождения точных решений большого числа таких комбинаторных задач не могут быть ограничены по- линомом от длины строки входных данных 111, 86, 143]. Такие задачи называются NP-полными (см. гл. 4). Во многих практических ситуациях не обязательно по- лучить точное решение. Приемлемыми могут считаться та- кие решения, о которых известно, что их стоимость отли- чается от оптимальной на несколько процентов. Проблемы получения решений, стоимость которых отличалась бы от оптимального значения не более чем на заданное число процентов, привлекли сравнительно небольшое внимание [53, 96, 90]. Похожий подход заключается в нахождении решений с помощью таких эвристических алгоритмов, для которых вычислены границы характеристик для наихуд- шего случая [36, 49, 46] (см. ГЛ. 5). Эти границы являются фиксированными. Поскольку они должны быть справедли- вы во всех случаях (включая вырожденные), то часто они оказываются весьма широкими. В методах, рассматривае- мых в настоящей главе, допуск, определяющий величину максимального допустимого отклонения, может быть за- дан произвольно. Точность, определяемая этим допуском, в принципе достижима, но это может потребовать больше вычислительных ресурсов, чем выделено. Важную роль при этом играет получаемое эвристическими методами субопти- мальное решение, которое дает начальную верхнюю гра- ницу. Алгоритм ветвей и границ может либо проверить, что данное решение удовлетворяет заданному допуску, ли- бо построить новое решение, которое бы ему удовлет- воряло. В следующих двух пунктах мы рассмотрим общую схему классификации алгоритмов ветвей и границ для решения задачи о перестановках, основанную на девятке парамет- ров (Вр, S, Е, F, D, L, U, BR, RB), где Вр — правило вет- вления, или разбиения, S — правило выбора следующей вершины, Е — набор правил исключения вершин, F —ха- 252
рактеристическая функция, позволяющая обнаруживать вершины, не обеспечивающие допустимого решения, D — отношение доминирования для вершин, L — функция нижней оценки вершин, U — верхняя оценка стоимости решения, BR — заданная точность решения, RB — пре- дельное количество имеющихся ресурсов, включая время вычислений и память. Общая схема метода в терминах за- дачи целочисленного программирования, недавно предло- женная Джоффрионом и Марстеном [581, согласуется с на- шим подходом, но является менее подробной. Мы покажем, каким образом девятка параметров может быть использова- на для описания класса обычных алгоритмов ветвей и гра- ниц для общей задачи о перестановках, включая общую за- дачу составления расписаний [25, 128], пространство допу- стимых решений которой является подмножеством множе- ства всех перестановок п объектов. В рамках этой основ- ной схемы мы опишем ряд теоретических результатов, ка- сающихся поведения чисел порождаемых вершин и актив- ных вершин как функций от выбора девятки параметров. Как мы увидим, эти результаты подтверждают одни наши интуитивные представления и опровергают другие. 6.2.2. Предварительные определения и обозначения. 1. Общая задача о перестановках размерности п является комбинаторной оптимизационной задачей, определяемой тройкой (5s, X, f), элементы которой обозначают сле- дующее: а) дд—пространство решений-, дРs {перестановка из п объектов,' = {л}; б) X—пространство параметров', каждая точка х£Х представляет собой допустимый набор «данных» задачи; в) f—функция стоимости-, f : д’хХ —> R, где / (л, х) — стоимость решения л при значении параметра х. 2. Глобально оптимальное решение для значения пара- метра х представляет собой решение л* £ дР такое, что /(л*, х) для всех лС^\ 3. Для заданного множества M = i2, ..., S = AfA{l, 2, ..., n\ лЛ1 означает перестановку на мно- жестве М: а) если M — N, то л711 называется полной перестановкой на N-, б) если М s N, то лЛ1 называется частичной переста- новкой на N-, в) если М — 0, то еАл0. 4. Пусть задано л^А(г1( г2, ..., гу). Тогда: 253
а) | л^ | А {размерность частичной перестановки л^} = б) MAW; в) если 1£М, то полагаем л^[о/А(г1, га, 0, /); г) если л^—перестановка множества KsM и л* = =(s1, s2, ..., sk), то полагаем л/11 о л^ А (.. .((А о sJoSj)... ... О SA); _ _ д) {л" о} А {л/11 о Л5М I л" есть некоторая перестановка на М} А {продолжение л,'}• А {множество всех полных перестановок, начинающихся с частичной перестановки л^}. 5. Для заданного множества Y частичных перестано- вок на N {У °} А { U {л* о} | л£€ У} ^{продолжение V}. 6. Для заданного л^, М S /V: а) потомком л?4 называется любая частичная переста- новка л/5 = л^ о л? при К sA4; б) непосредственным потомком (сыном) л}1 называется любой потомок л£ —л^ол^ такой, что /(.является одно- элементным множеством и К S М (т. е. л£ = л^1 о I для некоторого I £ М.); в) предком л;и называется любая перестановка л£ такая, ЧТО Л™ = л£ о л{(, К 7^ 0 ; г) непосредственным предком (отцом) л^ называется предок Лц такой, что /( является одноэлементным мно- жеством, т. е. если л/й = (г1, г2, ..., Гу), то отцом л{У является л^ = (г1, г2, ..., r^j). 7. Между множеством частичных решений задачи о пере- становках (У, х, [) и множеством частичных перестановок на N имеется взаимно однозначное соответствие. Каждое частичное решение может быть затем представлено в виде соответствующей частичной перестановки. Термины частич- ное решение и частичная перестановка используются как синонимы. 6. 2.3. Девятка (Вр, S, Е, F, D, L, U, BR, RB). Класс алгоритмов ветвей и границ, обычно используемых для ре- шения общей задачей о перестановках (3\ X, f), может быть описан с помощью девятки объектов (Вр, S, Е, F, D, L, U, BR, RB). Это является обобщением подхода, рас- смотренного в [94]. Девятка параметров определяется сле- дующим образом. 1. Правило ветвления Вр описывает процесс ветвления в задаче о перестановках. Целью ветвления является раз- 254
биение множества полных перестановок на неиере- секающиеся подмножества. Эти подмножества представ- ляются в виде вершин. Каждой вершине поставлена в соот- ветствие перестановка :пЛ (метка), заданная на множест- ве Му для М = 2, ..., п}. Вершина, помечен- ная п^у , представляет собой множество полных переста- новок у °}. Частичная перестановка лу у является пред- ком каждой перестановки, входящей в множество {лу и о Ветвление в вершине ль ь = (Ь1; Ь2, .... bk) представляет собой процесс разбиения множества {л^о} на непере- секающиеся подмножества: {n^b0}= и {(л6 6 о I) о }. м Назовем ль ь вершиной ветвления. Из сказанного следует, что 01)0} п ° /) °} = 0 Для ч / i=£i- Вер- шины ль 6 о I, Мь, являются сыновьями вершины ветвле- ния ль ь. Эти вершины называются порожденными при шаге ветвления л^ь. Для того чтобы упростить это громоздкое обозначение, вместо л^у используется запись лу, в кото- рой множество Му подразумевается. 2. Правило выбора S служит для выбора следующей вершины ветвления ль из текущего множества активных вершин. В процессе выполнения алгоритма (Вр, S, Е, F, D, L, U, BR, RB) вершина л называется текущей актив- ной вершиной в том и только в том случае, когда она порождена, но еще не исключена и не подвергнута ветвле- нию. Сыновья вершины ветвления ль порождаются в лек- сикографическом порядке. Сын ль о /, I £ Мь, добавляется к множеству текущих активных вершин тогда (но не тоДько тогда), когда: 1) он имеет допустимое продолжение, т. е. {(ль о/) о } 0, 2) он не исключается путем приме- нения одного из правил исключения вершин Е и 3) он не потерян в результате превышения заранее заданного объема множества текущих активных вершин. Алгоритм всегда начинает работу с выбора е = л0 в качестве первой вер- шины ветвления (можно также считать, что е—первая порожденная вершина). Работа алгоритма завершается, когда следующая вершина ветвления представляет собой полное решение. Для иллюстрации одного из общеупотребительных пра- вил исключения рассмотрим следующий пример. Дано-, множество независимых заданий Т„ Т3}, имеющих времена выполнения т, = 3, т? = 2 и т3=1. 255
Найти: расписание л* выполнения заданий на одном процессоре, которое минимизирует сумму времен заверше- ния заданий. В этой задаче ^ = ^s, —вектор времен выполне- ния, х = (т1; т2, т3), а функция стоимости /(л, х) пред- ставляет собой сумму времен завершения при данном рас- писании и временах выполнения х^Х. Например, при л = (1, 2, 3) Ту завершается в момент времени 3, Т2—в момент времени 3 4-2 = 5 и Т3—в момент 54-1 =6. Следовательно, /(л, х) = 14. На рис. 6.1 показано полное дерево перебора. а) Правило S = LLB (least-lower-bound)._ Выбирается текущая активная вершина ла, которая имеет наименьшую нижнюю оценку стоимости А(ла). В случае, когда не- сколько вершин оказываются равноправными по этому критерию, то выбирается либо первая порожденная вер- шина, (LLBF1FO), либо последняя, (LLBlifo). В обоих слу- чаях порядок, в котором вершины подвергаются ветвле- нию, определяется функцией нижней оценки L. На рис. 6.2 показан порядок, в котором вершины из примера, изобра- женного на рис. 6.1, выбираются для ветвления при использовании правил LLB. б) Правило S==FIFO (first-in first-out). Выбирается та текущая активная вершина, которая была порождена пер- вой. Этот метод поиска в ширину не зависит от функции нижней оценки L. На рис. 6.3 показан пример дерева, вер- шины которого пронумерованы в соответствии с правилом FIFO. 256
в) Правило S=LIFO (last-in first-out). Выбирается та текущая активная вершина, которая была порождена по- следней, и пропускаются активные вершины, которые со- “) б) Рис. 6.2. Процесс перебора с использованием правил LLB. a) LLBfjfo’» б) LLBlifo- Рис. 6.3. Рис. 6.4. держат полные решения, до тех пор, пока нет незавершен- ных активных вершин. Получаем поиск в глубину, при ко- тором порядок выбора вершин снова не зависит от функции нижней оценки L (см. рис. 6.4). ? Под ред. Э. Коффмана 257
г) Правило S = DF/LLB (depth-first/least-lower-bound). Из множества последних порожденных активных сыновей выбирается сын с наименьшей нижней оценкой, но при этом пропускаются множества сыновей, представляющих собой полные решения, до тех пор, пока отсутствуют не- завершенные активные вершины. В случае равнозначности • вершин по этому критерию выбирается сын, который был порожден первым, т. е. DF/LLBfiF0, или последним, т. е. DF/LLBlifo- На рис. 6.5 показано наше дерево, вершины которого пронумерованы в соответствии с правилом DF/LLB (при отсутствии случаев равенства). 3. Характеристическая функция F используется для исключения тех частичных перестановок, о которых известно, что они имеют продолжения на множестве до- пустимых решений 0. Конкретно, функция F ставит в соот- ветствие каждой частичной перестановке из (л(/ | (л о} £ число 0 или 1 следующим образом: a) F(ntf) = l для любой частичной перестановки л , если {лм о } fl S* 0; б) F (л^) = 1 для любой полной перестановки л^ тогда и только тогда, когда Заметим, что наше определение не требует, чтобы F(nv) = 0, когда {л;/о} п = 0, если только л не яв- ляется полной перестановкой. Это отражает то, что при порождении л;у бывает нелегко определить, что она не имеет допустимого продолжения. Множество всех частич- ных перестановок л,/( для которых F (лt) = 1, обозначается буквой Р. Это есть множество возможных частичных решений. 4. Отношение доминирования D представляет собой бинарное отношение, определенное на множестве частичных 258
решений задачи (5>, х, f). Для любого частичного реше- ния (вершины) л;/ такого, что {лу о} п ? =£ 0, л-у будет обозначать полное решение с минимальной стоимостью, начинающееся с л;/. Это означает, что л;)' £ {л,, о) п 3* и /(л*, х) = min {/(лт, х)| ла,^(луо}п^}- является транзитивным бинарным отношением на множестве частич- ных решений таким, что nS)nl тогда и только тогда, когда: а) {Лу о}П?#=0 и {лг о}(]5’^0; б) /(л^, %)</(л^, х). Отношение D является подмножеством обладающим следующими’ свойствами: а) (Транзитивность) nwDnIJ и л^Рл^ только тогда, когда Ли,Рлг. б) (Согласованность) л Dnz только тогда, когда L (л ) Поскольку D — S), то это сразу означает, что лГл, только в том случае, когда л))'—потомок с минимальной стоимостью вершины л—-имеет не большую стоимость, чем л^—потомок с минимальной стоимостью вершины лг. Когда л„£>лг, то говорят, что л„ доминирует над лг. Это похоже на метод, предложенный Шварцем для конвейер- ной задачи составления расписания [141]. Обычно пред- полагают, что D определено так, чтобы содержать по крайней мере все пары лг/Рлг, для которых L (л ) L (лг) и = При использовании алгоритма ветвей и границ пары вида (л , лг) проверяются на предмет принадлежно- сти к D. Следовательно, при выборе отношения D обычно' приходится идти на компромисс между сильным отноше- нием и таким, принадлежность к которому легко прове- ряется. 5. Функция нижней оценки С ставит в соответствие каждому частичному решению л С Р действительное число £(л ), представляющее собой нижнюю оценку стоимости для всех полных решений, содержащихся в множестве Требуется, чтобы для всех л , л2 £ Р L имела следующие свойства: а) если л2—потомок л„, то L (лг) L (л); б) для каждого полного решения л‘у Ь(л$) = [(лу, х). При выборе L обычно принимается компромиссное реше- ние между строгой функцией нижней оценки, т. е. такой, которая вычисляет нижнюю оценку L (п ) так, что ее зна- чение оказывается очень близким к действительному зна- 9* 259
чению f (Пу , х) для потомка с минимальной стоимостью, и такой функцией нижней оценки, которая была бы легко вычислимой. Рассмотрим задачу, изображенную на рис. 6.1. В этом случае частичное решение л^=--(у1, у2, ..., у}) представ- ляет собой такую последовательность, в которой задание 1У1 выполняется первым, за ним следует Ти так далее. Ниж- няя оценка суммы времен завершения всех заданий, начи- нающихся с частичного решения л^у , была вычислена сле- дующим образом: L(n ) = У, {время завершения задания + S ({время завершения задания Ту.\ 4-Ту.). у, е Му 6. Верхняя оценка стоимости U представляет собой стоимость / (л;)', х) некоторого полного решения л]У, извест- ного в начале выполнения алгоритма. Если не известно ни одного полного решения, то полагают П = оо, т. е. U больше любого возможного значения стоимости. На каждом этапе алгоритма известное решение с наименьшей стоимостью обозначается через л{У, а его стоимость—через U = f(Ku, х). Показано, что начальный выбор решения, верхняя оценка стоимости которого близка к оптимальному значению, может существенно сократить общий объем вы- числений [96]. 7. Правила исключения Е представляют собой множе- ство правил использования функции доминирования D и верхней оценки стоимости V с целью вывода из числа активных (исключения) вновь порожденных и текущих активных вершин. Длязаданного алгоритма (Вр, S, Е, F, D, L, U, BR, RB) пусть лй — текущая вершина ветвле- ния, лй о I—ее непосредственный потомок в множестве до- пустимых частичных решений Р и ла—член текущего актив- ного множества на шаге ветвления лй, л6=£ла. Множест- во Е представляет собой подмножество набора из следую- щих трех правил. a) (//DBAS (проверяется доминирование потомков вер- шины ветвления над текущими активными вершинами по критерию верхней оценки). Если L(n6o/)>f7, то все члены {(л6 о /) о} п имеют большую стоимость, чем реше- ,ние л„ с верхней оценкой U х). В этом случае ль о I исключается сразу после порождения, не будучи 260
занесенным в число активных. Если Л(лв)>{/, то все члены {лс о} fl 5s имеют большую стоимость, чем решение л^ (верхняя оценка), и ла удаляется (исключается из актив- ного множества). б) AS, DB (проверяется доминирование множества актив- ных вершин над потомками вершины ветвления). Каждая текущая активная вершина проверяется на доминирование по отношению к каждому потомку вершины ветвления. Если лД)(ль о Z), то ль о I исключается после порождения до занесения в число активных. в) DB/AS (проверяется доминирование потомков вер- шины ветвления над множеством текущих активных вер- шин). Каждый потомок текущей вершины ветвления про- веряется на доминирование по отношению к каждой теку- щей активной вершине. Если (л6 о /) Dna, то ла удаляется (исключается) из множества текущих активных вершин. Если Е содержит правила AS/DB и DB/AS, то множест- во активных вершин может зависеть от порядка, в котором эти правила применяются. Мы полагаем, что AS/DB при- меняется раньше, чем DB/AS. 8. Допуском BR называется действительное число, О гС BR 1, представляющее собой желаемую величину максимального относительного отклонения оптимальной стоимости от стоимости приемлемого решения. На каждой стадии алгоритма U представляет собой стоимость луч- шего из известных полных решений, a L—известную ниж- нюю оценку стоимости оптимального решения. При (0 — L)/U У) BR имеем (l-BR)U^L. Следовательно, стоимость /(л*, х) оптимального решения л* удовлетворяет неравенству (1— BR)U^f(n*, x)^U. Если BR выбрано равным 0, то лучшее из текущих решений Лц считается приемлемым только тогда, когда оно является оптимальным; если же BR выбрано рав- ным 0,05, то решение считается приемлемым, если опти- мальная стоимость оказывается ниже полученной верхней оценки U не более чем на 5%. Опыт практических рас- четов показывает, что если допуск задается в пределах от 5 до 10%, то требуемый объем вычислений может быть существенно сокращен [96]. 261
9. Предельное количество ресурсов RB представляет со- бой вектор, компонентами которого являются верхние гра- ницы общего времени, отведенного для расчетов, и объем памяти для хранения активных вершин и непосредствен- ных потомков вершины ветвления. В частности, RB — = (TIMELIMIT, MAXSZAS, MAXSZDB), где TIMELIMIT обозначает заранее заданное максимальное время счета, MAXSZAS^ 1—максимальный разрешенный размер мно- жества активных вершин и MAXSZDB^ 1 — максималь- ный разрешенный размер множества потомков каждой вер- шины ветвления. Когда требуемое время счета превышает TIMELIMIT, выполнение алгоритма останавливается и вы- водится последнее состояние процесса поиска. Если пре- вышается предел по памяти, то теряются одно или несколь- ко частичных решений, потомки которых могли бы стать оптимальными решениями. Нижняя оценка стоимости всех потомков устанавливается с учетом наименьшей нижней оценки вершин, отброшенных в результате переполнения. Эта оценка обозначается LaPs. Нижняя оценка оптималь- ного решения L не может превышать LOPS. 6.2.4. Описание параметров и блок-схема алгоритма. Для подробного описания алгоритма ВВ— (Вр, S, Е, F, D, L, U, BR, RB) введены следующие обозначения: Р = ] л^и | и F (jiz)=1 J-—множество всех допусти- мых частичных решений для (У*, х, f); BFS(«6)—множество предыдущих вершин ветвления перед началом шага ветвления ль; DB (ль) s |('л,Иьо/) 11 £ Л4}—множество допустимых не- посредственных потомков, порожденных в процессе шага ветвления ль и не отброшенных в результате переполнения; AS(nb)—множество текущих активных вершин перед началом шага ветвления ль; OFS(nJ—множество всех вершин, которые вызвали переполнение либо AS (n J, либо DB (л ) для некоторого л„ЕВЕ5(ль) (множество всех вершин, ‘ вызвавших пере- полнение в результате начала шага ветвления ль); ES (ль)—множество допустимых вершин, исключенных в процессе шага ветвления ль одним из правил исключе- ния, входящих в Е; U (ль)—стоимость решения, имеющего минимальную верхнюю оценку стоимости перед началом шага ветвления ль; ~LAs(nb)—нижняя оценка стоимости всех решений, вы- 262
численная по полному множеству активных вершин в на- чале шага ветвления ль; Z-OFsOb)— нижняя оценка стоимости всех решений, вычисленная по полному множеству вершин, вызывающих переполнение, в начале шага ветвления (равна сю, если OFS =А= 0); L(nb)“ min (tAs (ль), £OfsW'— нижняя оценка стои- мости оптимального решения в начале шага ветвления ль. С помощью введенных обозначений правила исключе- ния Е могут быть представлены в одном из двух видов: (1) любое из множества В исключается, если 0 (пь) < или (2) любое л2 из В исключается, если сущест- Аз/DB \з> вует некоторое л„ из множе- ства А такое, что л„Т)л2. На AS(ub)(-—* * и($ь) рис. 6.6 представлено полное \ j множество правил исключе- \ J ния, где А—-В представляет \^u/dbas^/ правило Блок-схема общего алго- Рис. 6.6. ритма ветвей и границ ВВ = = (Вр, S, Е, F, D, L, U, BR, RB) изображена на рис. 6.7 в обозначениях, предложенных Бруно и Штиглицем [19]. При использовании алгоритма ВВ множество BFS вершин, подлежащих ветвлению, и множество OFS вершин, вызы- вающих переполнение, не будут запоминаться. Они пока- заны на схеме только для наглядности. В этом случае £Ofs изменяется всякий раз, когда вершина, имеющая меньшую нижнюю оценку стоимости, чем текущее значе- ние LOFs, вызывает переполнение AS или DB. На рис. 6.8 представлена детальная блок-схема, описывающая процесс непосредственного применения правил исключения. Можно использовать и более- эффективные в вычислительном аспекте методы, но простота данного способа придает ему значительные преимущества. 6.2.5. Доказательство корректности. В данном пункте доказывается ряд лемм, с помощью которых устанавлива- ется, что общий алгоритм ветвей и границ (Вр, S, Е, F, D, L, U, BR, RB) завершается (1) нахождением решения, удовлетворяющего допуску BR при условии, что не пре- вышается предельное количество требуемых ресурсов, или (2) нахождением допуска на величину оптимального реше- ния, даже если превышается предельное количество ресур- сов. Начнем с доказательства того факта, что объединение 263
Рис. 6.7. 264
265 1___U/DBASE Е [правило lf/PBAS [ 1 2 AS/РВЕ Е | Правило AS/BB | pb/ase Е [правило ДЗ/АЗ-1 ( Правило U/DBAS) F/F0,i)l __L^___E(jra)>U | E5^-f5U{^}~| ( Правило AS/PE/) 1 I I * |ДД| ^(DB,FIF0,i) _ _j*-1 ____ Справило ДВ/АЗ.У П^АЗ] (7«|АЗ|)л(агИ ES) tta-^(AS,S,l) Mas[ jZa-^-(AS,SdT\ U(Va)^>U |E5^ESU'{?r4| а) Рис- 6,8, | гг^ГАЗл/П |—----fs) | ЕХзи {гг^}~| es) ---1 I ^(DB,FIFO,7)\ ES) | f5-f5U{"fo)| Я
множества активных вершин и множества вершин, вызы- вающих переполнение, наверняка содержит оптимальное ре- шение. Лемма 6.1. (Продолжение объединения активного множества и множества вершин, вызывающих переполне- ние, содержит оптимальное решение.) Пусть ВВ = (Вр, S, Е, F, D, L, U, BR, RB). Если ль является текущей вершиной ветвления, то существует вершина л^ g ([AS (ль) U OFS (л6)]о} такая, что л;)' £ и f(n), x) = f(n*, х). Доказательство. Применим индукцию на множе- стве AS (лД (J OFS (ль) по вершинам с успешным исходом ветвления. База индукции. Справедливость утверждения для пер- вой вершины ветвления е = л0 не вызывает сомнений, по- скольку AS (е) U OFS(e) = {е} и 0 — (е( и (ео[ = (лио} = Шаг индукции. Пусть гипотеза справедлива для вер- шины ветвления ль и всех других вершин, подвергнутых ветвлению раньше. Покажем, что гипотеза справедлива для следующей вершины ветвления ле. Блок-схема ВВ (рис. 6.7) показывает, что новое множество представляет собой старое множество, плюс новые допустимые потомки вершины ветвления, минус исключенные вершины и вершина вет- вления: AS (лс) U OFS (лс) = = [(AS (лй) и {(льо I) 11С Мь, А(лйо/) = 1[) — -(Е5(ль)и{л6})]иОР5(ль). (1) Мы должны показать, что ((AS (лJ и OFS (лJ)о} содер- жит оптимальное решение. Предположим, что л £ AS (лй) U OFS (ль), но л ( (£ AS (лс) U OFS (л,.). Из (1) следует, что либо л,; была ра- нее исключена посредством Е, при этом л £ ES (ль), либо была подвергнута ветвлению, л =ль. Если л была исключена посредством Е, то л;/ была исключена посредством правил (//DBAS или DBAS. Если она была исключена посредством (//DBAS, то Б(лу)> > 0 (ль), и, следовательно, ни один из членов {л о) не является оптимальным решением. Если л была исключена посредством DB/AS, то (nbol)Dn для некоторого l£Mb. В этом случае л следовало бы заменить в объединении множества активных вершин и множества вершин, вызы- вающих переполнение, на (льо(). Из определения D сле- 266
дует, что {(льоГ)о\ содержит оптимальное решение, если его содержит (л,;о[. Если л = л&, то каждый непосредственный потомок ль— nbol для всех 1^МЬ — находится в AS (лс) U OFS (лс), если только он не имеет допустимого продолжения, F ((льо1)) = 0, или не исключен посредством одного из следующих правил исключения Е: 1) t//DBAS, Ь((л6о/))>(/(ль); 2) AS/DB, лаП(льо/), ла^А5(Л(,). Если Е((лг,о/)) = 0, то в ](Л(,о/)о} не содержится опти- мального решения, поскольку {(льо/)о ( п = 0. Если (лйо/) исключена посредством правила t7/DBAS, то стоимость любого полного решения, содержащегося в {(льо/)о} Q 5А превышает U (ль) (стоимость решения л£', дающего верхнюю оценку). Правило AS/DB исключает потомков (л6о/) только в том случае, когда существует другая текущая активная вершина лг £ AS (ль) fl AS (лс) такая, что nzD(nbol). Из определения D следует, что (л,о) содержит оптимальное решение в том случае, когда его содержит [(лйо/)о’. 1Аы заключаем, что для каждой вершины л £ g [AS (л6) U OFS (л^)]—[AS (лс) U OFS (л4.)] либо л^ не имеет оптимального продолжения, либо существует вершина лг С AS (лс) U OFS (лс) такая, что лД)лу, т. е. /(л(У, х) <Д(л[Д х). Следовательно, ([AS(лс)иOFS(л6.)]оj содер- жит оптимальное решение в том случае, когда его содер- жит {[AS(nft)uOFS(n6)]o[. Следствие 6.1. (Продолжение активного множества содержит оптимальное решение, если требуемый объем памяти не превышает заранее заданного предела.") Пусть ВВ = (Вр, S, Е, F, D, L, U, BR, RB). Если ль является текущей вершиной ветвления и ни одна вер- шина не оказывается потерянной в результате превыше- ния объема AS или DB, то существует вершина л;) £ С{А5(ль)о[ такая, что и /(л;)', x) = f(n*, х). Доказательство. Справедливость следствия не- посредственно вытекает из леммы 6.1, так как при усло- вии, что объемы массивов AS или DB не превышены, OFS(nft)=0. Следовательно, AS(ль) U OFS (ль) = AS (ль) для каждой вершины ветвления л&. Лемма 6.2. (Когда потребности в ресурсах не пре- вышают заранее установленных границ, то алгоритм за- вершится нахождением решения, стоимость которого удовлетворяет заданному допуску.) 267
Пусть ВВ = (Вр, S, Е, 'Е, D, L, U, BR, RB). Если RUNTIME < TIMELIMIT, |{(льо/) 11 £ Mb, F (льо1)^ 1 } 1< ^MAXSZDB и |[AS(n6) и DB(n„)]—[Е5(ль)и{л6}]| ^MAXSZAS для всех ль g BFS (nJ, где nt—вершина ветвле- ния в момент окончания, то ВВ заканчивается получе- нием решения л„ такого, что (\—BR) U (л9, х) < U (л,) = / (л{/, х). Доказательство. Поскольку требуемый объем па- мяти не превышает заданного предела, то OFS(n6) = 0; следовательно, LOfs (nJ = оо. Поэтому L(nt) = min {LAS (nJ, Lqfs (nJ} = LAs (nJ = min {L (ла) | ла g AS (nJ}. Функция L определена таким образом, что для всех л , лг £ Р она обладает следующими свойствами: 1) L (лг) L (Лу), если лл является потомком л ; 2) L (л^) = f (nJ, х) для каждого полного решения nJ. Из этого сразу следует, что Z(nJ является нижней оценкой для всех полных решений, содержащихся в мно- жестве {AS (л JoПоскольку, на основании следствия 6.1, множество {AS (л Jo} обязательно содержит оптимальное решение, то L(nJ является нижней оценкой оптимального решения, т. е. L (л J f (л*, х). Ветвление закончится при л6 = в том и только в том случае, когда справедливо одно из следующих условий: 1) (£(nJ-£(nJ)/£(nft)<BR; 2) RUNTIME > TIMELIMIT; ’ 3) | мь 1 = 1 N |. Предположим, что окончание наступает в результате выполнения условия 1). Тогда мы можем записать U (nJ—-L (nj^ BR U (nJ, или (1—BR)U(nJ^L(nJ. Мы уже видели, что L(nJ^/(n*, х), и знаем, что /(л*, x)^f(nj, x) = U(nJ. Следовательно, (1 — BR) £(nj (л*, x)< 0 (nt) = f (nJ, x), где л^—решение, дающее верхнюю оценку в момент окончания алгоритма. Теперь предположим, что окончание наступило в ре- зультате выполнения условия 2). Но это противоречит на- 268
шему предположению о том, что требуемые ресурсы не превышают заранее установленных пределов. Наконец, предположим, что работа алгоритма ВВ за- канчивается потому, что | Мь | = | N |. Это происходит в том случае, когда следующая вершина ветвления уже является полным решением. Покажем, что это может произойти, еслидолько условие 1), (0 (nt)—L{nt))/U (n,t)^BR, также выполняется. Мы должны рассмотреть четыре случая, соответствующие разным правилам ветвления: LLB, FIFO, LIFO и DF/LLB. Когда S = LLB, вершина ветвления лй такова, что L(n6) = min (£(ла)| ла£ А5(л&)}. Поскольку | Мь | = | Л' |, то ль должно быть полным решением со стоимостью f (ль, х)= = L (ль) = L (л6). Поскольку AS (ль) содержит оптимальное решение (следствие 6.1), мы заключаем, что лг = л& должно быть оптимальным. Это означает, что U (nf) = f (nt, х) и U (л()—L(nt) = f (л(, х)— f (nt, х) = 0. Следовательно, (О (л()—£(л,))/(7(л() = 0<В/?. Когда S = FIFO, все активные вершины размера k вы- бираются для ветвления раньше, чем любая активная верши- на размера Л+1. Следовательно, если | Мь | = |Д/'| = |{1,2, ... ..., п}|, то в AS(n&) отсутствуют активные вершины раз- мера п—1 или менее. Поскольку AS (ль) должно содержать оптимальное решение и все вершины в AS (л6) являются пол- ными, 1(Л(,) = min {Л (ла) | ла £ AS(nb)} = /(л*, х). Как и в предыдущем случае, при л& = (t7 (л()—£ (л())/(7 (л,) = Когда S = FIFO или S = DF/LLB, все активные вер- шины размера k < п выбираются для ветвления раньше, чем любая активная вершина размера п. Следовательно, если вершина ль такова, что | Mb ] = | Af |, то AS (ль) должно состоять из полных решений. Так же, как и в предыду- щем случае, это означает, что когда л( = ль, то (О (nt)—L (nt))/U (л,) = 0 < BR. Лемма 6.3. (Алгоритм ветвей и границ всегда дает нижнюю оценку стоимости оптимального решения-, если известно некоторое полное решение, то он также дает ве- личину отклонения стоимости этого решения от оптималь- ной.) Пусть ВВ — (Вр, S, Е, F, D, L, U, BR, RB). Если nt является вершиной ветвления в момент окончания ра- боты ВВ, то стоимость оптимального решения л* удов- летворяет неравенству L(nt)^f(n*, x)^.U(nt). Если 269
известно полное решение, то л';—полное решение с мини- мальной стоимостью и = х). Выражение (U (л,)—L(nt))/U (nf) определяет границу разности между стоимостью этого известного решения и стоимостью оптимального решения. Доказательство. Из определения функции нижней оценки L следует, что для каждого допустимого частич- ного решения лг/ £ Р имеет место L (лу) L (л^) = f (л^, х) для всех продолжений л;/ £ {луо} f] Из леммы 6.1 также известно, что AS (л,) (J OFS (л,) обязательно содержит оптимальное решение. Следовательно, имеем L (л,) = min >Lis (лД Lofs:^)} = = min [L (лу) | лу C AS (л()сОР5 (л()}. Используя предыдущее неравенство, можем записать £(л,)< С min {[ (л^, х) | л^1 € {луо} п ли g AS (л,) и OFS (л,)} = = /(л*, х). Мы установили, что L (л() f (л*, х). Покажем теперь, что f (л*, х) U (л4) и л„ является известным решением с минимальной стоимостью f (л;У, х) = = U (л,). Для начальной вершины ветвления ль~е в ка- честве U (е) принимается значение U, т. е. стоимость наилучшего решения л;У, известного к началу выполне- ния ВВ ((./ является одним из девяти параметров алго- ритма). Если U =У= сю, то в качестве л^ задается известное решение л„; в противном случае л„ остается неопреде- ленным до тех пор, пока не будет порождено некоторое решение. Если в течение текущего шага ветвления поро- ждаются улучшенные решения, то лучшее из них —пусть это будет л^ со стоимостью /(л(У, xj — U-—запоминается (см. рис. 6.7). Перед началом следующего шага ветвления л^ и U заменяются на л^ и U, которые соответствуют лучшим из известных решений. Как л^, так и U остаются неизменными в течение всего шага ветвления, что облег- чает анализ, проводимый в следующем пункте. Мы заклю- чаем, что f (л*, х) -Д U (nt)t и если полное решение из- вестно в начале шага ветвления ль то оно есть л£\ а его стоимость/ (л'У, х) = U (л;). 270
Теперь мы можем записать L (nf) (л*, х) U (лг) = f (л^, х), и, следовательно, f (лц , x)—f (л*, х) <- и (щ) —L (щ) f х) "" V (л,) где (U (nJ—L(nt))/U (nJ является границей разности между стоимостью лучшего из известных и стоимостью оптималь- ного решений. 6.2.6. Теоретическое сравнение потребностей в вычисли- тельных ресурсах. В этом п. рассматриваются относительные потребности алгоритмов ветвей и границ в ресурсах как функции параметров Е, F, D, L, U и BR при фиксирован- ных Вр, S и RB. Будем считать, что требуемые ресурсы (вре- мя и память) никогда не превышают предельного значения RB. Это соответствует заданию RB А ос. В этом случае лем- ма 6.2 гарантирует, что выполнение алгоритма завершится нахождением решения, точность которого находится в пре- делах, определяемых величиной BR. Сравнительный анализ, представленный в этом пункте, справедлив для любых мер оценки объема вычислений, лишь бы они являлись монотонными неубывающими функ- циями от размера множеств BFST = BFS (nJ U {nJ, AS (ль) и DB(ni) для всех ль С BFST, где nt—вершина ветвления в момент окончания работы алгоритма. Например, | U DB (л6) | n6eBFs (я<) — общее число генерируемых вершин— представляет собой монотонную неубывающую функцию от размера DB (лй) для всех ль С BFST. Эта величина может быть использована в качестве грубого показателя относитель- ной потребности во времени. Максимальный размер мно- жества активных вершин max I AS (ль) I является моно- n^eBFST тонной неубывающей функцией от BFST и AS (ль), пь С BFST, и может служить мерой оценки требуемого максималь- ного объема памяти. Нас интересует проблема выбора параметров £;, F,-, D;, Lj, Ui uBR; для ВВ. = (Вр, S., Ег, Ft, Dlt L., U., BR., RB. = oo) и BB2 = (Bp,S2, Et, F2, D2, L2, U.,, BR2, RB2 — oo), для которых выполняется следующая совокуп- ность соотношений для всех n^CBFSTp 1) BFSJnJsBFSJnJ; 2) ASJnJsAS^nJ; 3) DBX (пь) = DB2 (ль); 271
4) ?i(nb)<p2(nb); 5) 4(л6)^£2(лй). В дополнение к этому будет также проверяться спра- ведливость следующих соотношений для всех ль g BFSTX: 6) если лу б BFS2 (ль)—BFSj (ль), то L1 (л ) > (/х (ль) либо (Луо}П^ = 0; 7) если G AS2 (л6)—ASX (ль), то Lr (л ) > 01 (лй) либо ]ЛуО}п5> = 0. Полный набор соотношений 1)—7) обозначается симво- лом (*). В процессе сравнительного анализа параметров исполь- зуются следующие обозначения. 1. £2 S £х, если множество правил исключения £2 является подмножеством (не обязательнб собственным) множества правил Ег. 2. FX^F2, если для каждой частичной перестановки (вершины) Лу такой, что (луо\ s S\, F1(a)=\ только в том случае, когда F2 (л ) = 1. 3. если для каждой пары частичных решений Лу и л, Лу£>2лг только в том случае, когда л Dtnz. 4. L2^.Llt если для всех частичных решений ли, для которых Fi (Лу)=1, £2 (лу)^£1 (лр). 5. U^Ui, если стоимость начального решения, даю- щего верхнюю оценку для BBlt меньше или равна стоимости начального решения, дающего верхнюю оценку для ВВ2. 6. BR^BRi, если допуск на допустимое решение для BBi не меньше допуска на допустимое решение для ВВ2. Теперь сравним относительные потребности в вычисли- тельных ресурсах для ВВ\ и ВВ2 при условии, что парамет- ры Е, F, D, L, U и BR связаны только что описанным спо- собом. Первая теорема показывает, что потребности в ресур- сах не увеличатся, если к Е добавить правило исключения (//DBAS. Мы приводим полное доказательство, поскольку оно хорошо иллюстрирует технику, применяемую для до- казательства других теорем в этом параграфе. Теорема 6.1. (Потребности в вычислительных ре- сурсах не увеличиваются (но могут уменьшиться), если исключаются вершины, у которых нижняя оценка стоимости превышает верхнюю оценку стоимости.) Пусть ВВ1 = {ВР, S, £х, F, D, L, U, BR, RB^oo) и ВВ, = (ВР, S, Е2, F, D, L, U, BR, RB = <x>). Если Et = £2 и {(//DBAS), то соотношения (») выполняются для всех jrjCBFSTj. 272
Доказательство. Теорема доказывается мето- дом индукции по последовательным вершинам ветвления вплоть до окончания ВВг. База индукции. Соотношения (*), очевидно, выполня- ются для начальной вершины ветвления л.ь — е = л,0. В част- ности, справедливы следующие соотношения: 1) BFS1(e) = BFS2(e) = 0; 2) AS1(e) = AS2(e) = {ef; 3) DBi = DB2=;/|Z€0 = ^ и 4) O2(e) = U2(e) = U-, 5) Ll(e) = L2(e) = L(e); 6) BFS2(e)—BFS1(e) = 0; 7) AS2 (e) — ASt (e) = 0. Шаг индукции. В целях нумерации последовательных вершин ветвления положим, что nh обозначает k-ю верши- ну вётвления в ситуации, когда полное дерево допустимых частичных решений Р просмотрено с использованием пра- вила S и вершины не исключены посредством какого бы то ни было правила исключения. Когда в ВВг или ВВ2 до- бавляются правила исключения, то не будет подвергну- та ветвлению, если она или кто-либо из ее предков были ис- ключены из активного множества. Если лл не входит в чис- ло активных, то она пропускается, все переменные остаются неизменными, и в качестве кандидата для ветвления выби- рается следующая вершина Поскольку и L-1=L2^-L. последовательности ветвлений в BBi и ВВ2 являются подпоследовательностями только что описанного порядка. Эти подпоследовательности отыскиваются путем рассмотрения только тех вершин, которые действительно подвергаются ветвлению. Докажем (*) методом индукции по вершинам лй, являющимся последовательными кан- дидатами для ветвления, вплоть до окончания ВВг (при л^л^. В качестве предположения индукции примем, что система (*) справедлива для ль=лк. Покажем, что (*) справедлива для вершины лА+1, являющейся следующим возможным кандидатом на ветвление. Правильность шага индукции проверяется путем рассмотрения следующих возможных случаев: 1) л, е BFST, П BFST2; 2) л* е BFST, л BFST2; 3) пк е BFSTj П BFST2; 4) лк е BFSTj n bfst2. Пусть выполняется, случай I), пк С BFSTj п BFST2. То- гда пк подвергается ветвлению в ВВ} и ВВ2. В этом Ю Под ред. Э. Коффмана 273
случае мы можем записать BFS, (nft+,) = BFS, (nJ (J (njs S BFS2(nJ u {nJ = BFS2(nft+1), поскольку BFS, (nJ s sBFS2 (nJ согласно предположению индукции (*1). Сле- довательно, мы доказали (*1) для nft+1. Для того чтобы показать справедливость соотноше- ния (*2), AS, (nft+1) s AS2 (nft+,), заметим, что, поскольку потребности в памяти никогда не выходят за пределы граничных значений RB, можно записать ASz(nft+1) = = (ASZ(nJ U DB,-(nJ)—F.S,-(nJ для i = l, 2. Согласно предположению индукции (*2) AS, (nfc) AS2 (nJ, а из (*3) DB, (nJ s DB2 (nJ. Следовательно, AS, (nft+I) = AS2 (nfc+J, если ES, (nJ = ES2 (nk) Я (AS, (nft) U DB, (nJ). Мы покажем, что если пг£ ESa (nJ Г1 (AS, (nJ (j DB, (nJ), то одновре- менно nz g ES, (nJ. Это доказывает (*2) для nft+1. Поскольку nz E ES2 (nJ n (AS, (nJ U DB, (nJ), вершина лг должна была быть удалена в ВВ2 посредством некоторого правила из набора Ё2 е Е. Рассмотрим теперь все возможные слу- чаи и покажем, что nz будет удалена также и в ВВ1. Если п2 была удалена в ВВ2 посредством (//DBAS, то Е, = Е2 и AS, (nft+J = AS2 (nft+1), поскольку BB, = BB2. Из этого следует, что лг должна быть удалена в BBV Если л2 была удалена в ВВ2 посредством правила AS/DB, то луЕлг для некоторого n £AS2(nJ. Поскольку согласно предположению индукции AS, (nJ <= AS2 (nJ, мы можем записать AS2 (nJ = (AS2 (nJ—AS, (nJ) U AS, (nJ. Если ny^AS,(nJ, to icDn,, и nz удаляется в BB, по- средством правила AS/DB. Если nyE(AS2(nJ—AS, (nJ), то, согласно предположению индукции (*7), L(ny) = =L1(ny') > О Поскольку L(nJ^L(nJ при nyDnz (условие согласованности D), мы видим, что L(nJ)> )>L(nJ> (7 (nJ, и nk должна быть удалена в ЕВ, посред- ством правила (//DBAS. Если пг была удалена в ВВ2 посредством правила DB/AS, то ndDnz для некоторого nd£DB2(nJ. Но по- скольку DB, (nJ — DB2 (nJ при E, = E2 = F, то п2 должна быть удалена также и в ВВ,. Мы заключаем, что пу С ES2 (nJ П (AS, (nJ U DB, (nJ) только в том случае, когда ny£ES,(nJ. Следовательно, условие (*2) выполняется для п4+1. Поскольку мы уже доказали, что AS, (nft+J = AS2 (nft+J, получаем, что nfc+1 С BFST, только в том случае, когда лк+1 С BFSTa. Если nft+i Е BFST,, то DB, (ns+,) = DB2 (nft+J, так как Е, = Е2 = Е. Если nft+1(£BFST,, то DB,(nt+1)= = 0 cDBs(nH,j. Это доказывает (*3) для nfc+l. 274
Для того чтобы доказать (*4), IJ х С 2 (лЛ+1), используем предположение индукции йг (лк) и за' метим, что множество непосредственных потомков вер- шины пк составляют только те решения, которые были порождены между шагами лк и л^+1. Если як°1, l£Mk, является допустимым полным решением, то F (пк о /) = 1 и лк о /Е DB1(njS,) = DB2(nft). Любое решение, улучшаю- щее верхнюю оценку, найденное на этапе лк, найдется как в ВВ±, так и в ВВ2, и, следовательно, 01(пк+1)^: 02(як+1) ^и2(лк) и С\(лл+1)«С/72(лл+1). Соот- ношение (*4) доказано для лк+1. Поскольку мы уже доказали (*3), AS, (лй+1) s AS2 (nft+J), получаем, что LAS1 (nft+J) A min {L (ла) | ла £ ASt (лй+1)} > > min {L (ла) | ла С ASa (nft+1)[ A£ASi(л4+1). Так как потребности в памяти никогда не превышают предельного объема, то OFSj (nft+1) = OFS2(nft+1) = 0 и Aofs, (n^+1) = LoFs2(nft+1) = оо. Следовательно, /а(лй+1)А A min {Las, (лИ1), LOfs, (nft+1){ > min {LASa (nfc+1), LofsJ^+j)} AL2(nft+1), что доказывает (*5) для nh+1. По предположению индукции (#6) для лк, если лу £ eBFS2(nft)—BFSj(nft), то L1(nJZ)> (/Дл^) либо {nyo}n П^=0. Но поскольку лй BFSTj В BFST2, получаем BFS2 (n^J-BFS, (л,+1) = BFS2 (л^-BFS, (л,). Анало- гично, (лй+1)^ О-L (л6). Следовательно, если лу£ GBFS2(nft+1)—BFS^n^J, то Lt (лу) > 0г (лА+1) либо {лу о }Л^ = 0. Наконец, покажем, что выполняется (*7), а именно, если лу£ AS2(nft+1)—ASi(nft+1), то Ц (лу) > U1 (nft+1) либо {луо}п^ = 0. Поскольку предельный объем ресур- сов не превышается, мы можем записать А52(ла+1) — —• ASj (лй+1) = [(AS2 (лй) U РВ2 (ла)) ES2 (л^)] [(ASj (лй) и U DBj (лА)—ESj(nft)]. Правая часть может быть перепи- сана в следующем виде: = [(AS2 U DB2) П ES2] П [(ASt Ц DBt) п Ж] = = [(AS2 U DB2) П ES2] П [(AS! П DBJU ES,] = = [(AS2 п ES?) U (РВ2 ПЁК)] П [(АКП DB]) U ESJ = = (AS2 П ESj П n DB?) U ESi]U U [(РВ2 ЛЁД.) П (ASj П ЁГВ]) U ESJ = = [(Asa nWn ЁКп dbj u (As2 п ёКп ESj)] и 10* 275
и [(DB, A DB, Л ES, П AS1) U (DB, A ES-, A ES,)] = = [(AS,—ASJП (ESa f] DBJ]U[(AS, U DB,) A (ES, A ESJ]U U [(DB,—DBJ A (ES, A ASJ]. Для лй£ AS,(nfc+i)—ASx(nft + J покажем, что Ax(nJ> > IJ (nft+J либо [n^ojA^ —0 в каждом из трех слу- чаев, определяемых последним выражением. Во-первых, если nff £ [(AS, (nJ—ASX (nJ) A (ES, (nJ А ADBx(nJ)], то лу £ (AS, (nJ—ASX (nJ), и на основании предположения индукции (*7) получаем L (nJ = Lt (лу) > (nJ > 0t (nft+J либо (лй о} п = 0. __ Во-вторых, если лу С [(AS, (лк) и DB, (nJ) Л (ES, (nJ Л Л ESx(nJ)J, то вершина п была удалена на шаге ветвле- ния nft в ВВ1, но не в ВВ2. Это могло бы случиться только тогда, когда лу была удалена посредством правила LJDBASC£X. В этом случае Lx (лу) — Ь (nJ > 0х (лк) Uг(лк+1), что доказывает (*7) для пй+х. Наконец, если лу £ [(DB, (nJ—DBX (nJ) П (ES, (лк) Л A ASX (nJ)], то nFe(DB,(nJ—DBX (nJ). Ho (DB, (nJ — — DBx(nJ) = 0, так как FX = F, = F, и, следовательно, последний случай оказывается невозможным. Тем самым мы завершили доказательство соотношений (*1)—(*7) для случая 1). Теперь предположим, что выполняется случай 2), лк £ BFSTX П BFST,. Вершина лк будет подвергнута ветв- лению в BBt в том и только в том случае, когда лк С £ASz(nJ. Согласно предположению индукции (*2) ASX (nJ s AS, (nJ, и, следовательно, nft£ AS, (nJ, если лк С ASX (nJ. Из этого следует, что лк С BFSTX только тогда, когда nfc£BFST,. Следовательно, BFSTX ПBFST,=0, а это доказывает, что случай 2) невозможен. Предположим, что выполняется случай (3), лк С BFSTX Г) A BFST,. Тогда nfcC AS, (nJ—ASX (nJ. Мы снова должны доказать справедливость соотношений (si)—(*7) для nfe+]. Поскольку nft С BFSTX A BFST,, то мы можем записать BFSX (nft+1) = BFSj (nJ и BFS,(nft+J = BFS,(nJU{nJ. Теперь из (*1) следует, что BFS1(nfe+1) = BFS1(n/I) s £ BFS, (nA) s BFS, (nJ U [nJ = BFS,(nfc+l). Это доказы- вает (*lj для nft+1. Для того чтобы доказать (*2), ASX (nfc+1) AS, (nft+1)'„ заметим, что ASX (лй+1) = ASX (nJ, так как лк не подвер- галась ветвлению в ВВ1. Но AS, (nft+1) = (AS, (nJ LI 276
(jD6s(n/)—ES2(nA), так как nfc£BFST2 и предельный объем памяти не превышается. Поскольку, согласно пред- положению индукции (*2), ASj (n/=AS2 (л/, то AS, (лА+1) = sAS2(ns+1) при условии, что ESa (л/A AS, (л/= 0. Предположим, что ES2 (л/ A AS, (nk)=£ 0. Тогда сущест- вует некоторая вершина л2 £ ES2 (nft) A AS, (л/, которая должна была быть удалена в ВВ2 посредством какого- нибудь правила из £2. Нужно рассмотреть три возможных случая для каждого из допустимых правил исключения, вхо- дящих в Е2. Если лг была исключена посредством правила t//DBAS, то £, = £s(j{t//DBAS} = £а, н п этому ВВ1 и ВВ2 оказа- лись бы идентичными. Следоват л;.но, BFST, A BFST2=0, что невозможно. Если лг была исключена посредством правила AS/DB, то л(/£)лл для некоторых вершин пу С AS2 (л/ ил/- DB2 (л/. Следовательно, лл(£А52(л/ и на основании предположе- ния индукции (*2) получаем лг(£АЗ,(л/ Полученное противоречие доказывает, что этот случай невозможен. Наконец, если л, была исключена посредством пр а- вила DB/AS, то лг £ ASa (лй) A AS, (л,.) и ndDnz для неко- торого лй С ОВ2(лй) = {лй о 111 $ Mk и £(лй о/)=!}. Вследствие монотонного неубывания функции нижней оценки L L(n,d)^L(nk), и из согласованности D полу- чаем £(л/^£(л/. Но поскольку л^АЗ/л/—AS/л/, то на основании предположения индукции (*7) получаем, что либо £2(л/ = £(л/ > б\(л/, либо {лао}а5> = 0. Вторая возможность может быть сразу исключена, по- скольку из нее вытекает соотношение о} А {лй с/ А А^ = 0, что противоречит определению D и, следова- тельно, ndDnz. В случае реализации первой возможности видно, что L (лг) /s £ (л/ L (л/ > U± (л/. Из этого сле- дует, что лг(£ AS,, (л/, так как в ВВ± она была бы отбро- шена посредством правила (7/DBAS или правила DB/AS. Это снова приводит к противоречию, и этот случай также является невозможным. Поэтому («2) выполняется для лА Ь1. Доказательство (*3) для лй+1 аналогично приведенному ранее для случая 1). Доказательство (*4), (лл+1) U2 (лй+1), следует из того, что £, (лй+1) = £, (л/ и любые новые решения nd G DB (л/, которые порождаются в течение шага ветвления лА в ВВ2, должны иметь стоимость £(л/^ ;>£(л/. Согласно предположению индукции (*7) £(л/= 277
—Li (nk) > Ux (пА) либо {nk о} fl & = 0. Следовательно, Vi (nA+i) = Oi(nk) ^02(лк+1), что доказывает (*4) для nfe+1. Утверждение (*5), (лА+1)^ L2 (nA+J, непосредственно вытекает из (*2), AS1(nA+1) = AS2(nk+1), как было дока- зано в случае 1). На основании предположения индукции (*7) известно, что поскольку nk£AS2(nJ— ASl(nft), то либо Цлк)— =Lt (ла) > (яа)> либо {nft о} п ? = 0. На основании пред- положения индукции (*6) известно, что если п С BFS2 (nJ — —BFS, (лк), toLj (п_)>С\ (лк) либо ]пуо} п ^=0. Посколь- ку BFS2 (nAil)—BFSj (nA+1) = (BFS2 (nJ U ]nj)—BFSj (nJ и (Д (nJ = (Д (nk+1) при n^CBFSTj, можно заключить, что если ny BFS2 (nft+1)—BFSj (nfc+1), to L, (nJ > (nk+J либо (nyo}f)5!> = 0. Это доказывает (»6) для nft+1. Нам осталось доказать (*7), а именно, если пу£ £ AS2(nft+I)—ASJn^J, то либо Ei(nJ> С\(пк+1), либо (ntfo^n^ = 0. Поскольку n^BFSfj, то DB, (nj= =ESi(nJ = 0, и, следовательно, AS! (пк+1) = AS, (nJ. Для AS2(nfc+J имеем AS, (nk+J = (AS2 (nJ 1) DB2 (nJ) — — ES2 (nJ, так как предельный объем памяти не превы- шается. Следовательно, AS2 (па+1) AS1(nk+1) = = [(AS2 (nJ U DB2 (nJ) —ES2 (nJ]—AS, (nJ = = [(AS2uDB2)nM]AAS?== = [(AS2 BAS1)U(DB2nASJ)]nES^= ______ = [(AS2 (nJ—ASj (nJ) и DB2 (nJ] П ES2 (nJ. Если n„ £ AS2 (nft+1)—ASX (nft+1), то либо ny £ AS2 (nJ — — ASx(nJ, либо ny£DB2(nJ. В первом случае предпо- ложение индукции (*7) для лк гласит, что Z.x(nJ> > U1 (nA) = 01 (nft+1) либо {л„о}п53 = 0. Во втором слу- чае лу € DB2 (nJ, где nfcCAS2(nJ — А5Х (nJ. Поскольку лу является потомком лк, заключаем, что Ь(лу) = Ь1(лу)'^ ^Ь^л^ > 01(лк) либо {лу о}п^ = 0. Наконец, предположим, что выполняется случай 4), лк С BFSTj п BFST2. В этом случае лк не подвергается ветвлению ни в BBlt ни в ВВг, и все параметры остаются неизменными до шага ветвления nk+1. Индукция осуществ- ляется тривиальным образом. 278
Следующая теорема подтверждает, что исключение час- тичных решений, не имеющих допустимых продолжений, не увеличит потребности в вычислительных ресурсах. Теорема 6.2. (Потребности в вычислительных, ре- сурсах не увеличатся, если для исключения бесперспективных частичных решений используется более сильная характе- ристическая функция.) Пусть ВВг =- (Вр, S, Е, Ег, D, L, U, BR, RB) и ВВ2= =(Вр, S, Е, F2, D, L, U, BR, RB). Если F1-^.Fi, то сово- купность соотношений (*) выполняется для всех ль С BFST1# Доказательство. Формальное доказательство тео- ремы аналогично доказательству предыдущей теоремы. Заметим, что если ГДлу) = 0, то из определения Ft, соот- ношения {лу о} п 3* — 0 и определения отношения домини- рования D следует, что лу не может быть использована для доминирования любого другого частичного решения. Если лу порождена в ВВ2 и F2 (лу) = 1, то л не имеет допусти- мого продолжения и не может вытеснить другие частич- ные решения. Соотношения (») справедливы для всех n^gBPSTj, так как все частичные решения лу в ВВ2, для которых Fi(ny) = 0, исключен^ в ВВг без изменения других параметров. Хотя предыдущие теоремы подтверждают наши интуи- тивные представления о полезности введения правила ис- ключения 67DBAS и усиления характеристической функ- ции, тем не менее можно построить противоречащий нашей интуиции пример, касающийся усиления отношения доми- нирования. Зная это, мы заключаем, что потребности в вы- числительных ресурсах алгоритма (Вр, S, Е, F, D, L, U, BR, RB) не обязательно являются монотонными невоз- растающими функциями от отношения доминирования D. Мы приведем контрпример для некоторого набора парамет- ров, но легко можно найти контрпримеры и для других наборов. Теорема 6.3. (Потребности в вычислительных ресурсах могут возрастать при использовании более силь- ного отношения доминирования.) Пусть BB1 = (Bt>, S, Е, F, Dt, L, U, BR, RB) и ВВ2= =(Вр, S, Е, F, D2, L, U, BR, RB). Если D2 s Dx, то соот- ношения (*) не обязательно выполняются для всех ль С BFSTV Доказательство. Построим пример, демонстри- рующий, что соотношения («) не обязательно являются справедливыми для всех nb£BFSTj. Полное дерево поиска для этого примера приведено на рис. 6.9. Пространство решений и, следовательно, Е(лу)=1 для всех лу. 279
Нижняя оценка стоимости L(n ), сопоставленная каждой вершине л , записывается слева над соответствующей вершиной. Для упрощения записи вместо обозначения Рис. 6.9. ЛдДДоу, а2, используется at, а.,, ..., af, а члены отношения доминирования D,-, л!/Оглг записываются в виде пары (л , лг). Теперь положим BBl~(B., LLB, {DB/ASJ, 1, L, оо, 0, оо) и ВВ2 = (В , LLBJDB/AS}, 1, D3, L,
бо, О, оо), где Д, = {(24, 4), (23, 3)} и {(л, лг)|£(лj < <L(nJ, = 2, 3, 4}} и £, = {(12, 2)}. Запись uL оо означает, что в начальный момент работы алгоритма не известно ни одного решения. Поскольку В7? = 0, то алго- ритм завершается при L (ль) = 0 (ль). Шаги ВВ, и ВВ2 описываются в терминах упорядо- ченных множеств AS, DB и ES, при этом запись (A, R, /) означает /-й элемент множества А, упорядоченного с по- мощью правила R. Шаги алгоритмов ВВ, и ВВ2 имеют вид как на таблицах (с. 282). Заметим, что BFST, $£ BFST а и соотношения (*) не выполняются для всех nbgBFST2. В этом примере I U DB, (ль) I = 22 > ) U DBg (л^) I = 17 I Лье BFST, I | лье BFST2 . I и max | AS, (ль) | | AS, (123) | = nbe BFST, = 13> max | AS2(ni)) = | ASa(123)l = 9. ль g BFST, Следующие теоремы показывают, каким образом изме- няются потребности в вычислительных ресурсах при улуч- шении функции нижней оценки и начального решения, дающего верхнюю оценку. Теорема 6.4. (При использовании правил выбора FIFO или LIFO потребности в вычислительных ресурсах не увеличиваются при использовании более точной функции нижней оценки и улучшенного начального решения, дающего верхнюю оценку.) Пусть ВВ,~(ВР, S, Е, F, D, Ux, BE, RB = <x>) и BB2 = (B„, S, E, F, D, L2, U2, BR, RB = оо). Если S=FIFO или S = LIFO, a L1'^L2 и U,^U2, то соотношения (*) выполняются для всех n()CBFST1. Доказательство. Формальное доказательство этой теоремы приводится методом индукции так же, как в теореме 6.1. Заметим, что поскольку S = FIFO или S = LIFO, то порядок ветвления одинаков для ВВ, и ВВ2, так как он не зависит от функции нижней оценки. Для доказательства теоремы следует рассмотреть два различ- ных случая: (1) U/DBAS 6Е и (2) E/DBAS£E. В первом случае BFS, (ль) = BFSa (ль) и AS, (лй) = AS2 (л&) для всех jtjCBFSTj. В обоих случаях можно показать, что соот- ношения (*) выполняются для всех ль С BFST,. Алгоритм ВВ, завершится раньше, чем ВВ2, если для последней 281
BBt nb (AS, (nb), LLB, /) (DB, (ль), LEX, k) (ESj (JT&), FIFO. /) £i(nb) (яь) e (e) (1, 2, 3, 4) 0 0 00 1 (1, 2, 4, 3) (12, 13, 14) (2) 1 00 12 (12, 4, 3, 13, 14) (123, 124) 0 2 00 4 (4, 3, 123, 13, 14, 124) (41, 42, 43) 0 5 00 3 (3, 123, 13, 14, 41, 42, 43, 124) (31, 32, 34) 0 7 00 31 (31, 32, 34, 123, 13, 14, 41, 42, 43, 124) (312, 314) 0 8 00 32 (32, 34, 123, 13, 14, 41, 42, 43, 124, 312, 314) (321, 324) 0 9 00 34 (34, 123, 13, 14, 41, 42, 43, 124, 312, 314, 321, 324) (341, 342) 0 10 00 123 (123, 13, 14, 41, 42 , 43, 124 , 312, 314, 321, 324, 341, 342) (1234) (13, 14, 41, 42, 124, 312, 314, 321, 324, 341, 342) 11 00 1234 (1234) 11 11 л* = 1234 BB-i ль (AS2 (ль), LLB, /) (DB, (ль), LEX, k) (ES, (ль). FIFO, I) it (nj,) &.(ль) e U) (1, 2, 3, 4) 0 0 00 1 (1, 2, 3, 4) (12, 13, 14) 0 i 00 12 (12, 2, 4, 3, 13, 14) (123, 124) 0 2 00 2 (2, 4, 3, 123, 13, 14, 124) (21, 23, 24) (3, 4) 3 00 24 (24, 23, 123, 13, 14, 21, 124) (241, 243) 0 4 00 23 (23, 123, 13, 14, 21, 241, 243, 124) (231, 234) 0 6 00 123 1234 (123, 13, 14, 21, 231, 234 , 241, 243, 124) (1234) л*—-1234 1234 (13, 14, 21, 231, 34, 241, 43, 124) 11 11 co 11 282
Вершины ветвления nt в ВВг выполняется (Ol(nt'j — — Lt (nt)^BR < (Ог (nf)—£2;(л,))/С7г(л,). Следующая теорема показывает, что, когда S=LLB или S=DF/LLB, при улучшении функции нижней оценки может произойти возрастание требований к вычислитель- ным ресурсам. Такая ситуация возможна, однако в боль- шинстве случаев все же следует ожидать уменьшения пот- ребностей. Теорема 6.5. (При S=LLB или S = DF/LLB пот- ребности в вычислительных ресурсах могут увеличиваться при использовании более точной функции нижней оценки.) Пусть ВВ^- (В,„ S, Е, F, D, U, BR, RB) и ВВ2= =(ВР, S, Е, F, D, Li, U, BR, RB). Если S=LLB или S = DF/LLB и при этом L(^L2, то соотношения (*) не обязательно выполняются для всех ль £ BFSTj. Доказательство. Рассмотрим пример, показы- вающий, что соотношения (*) не обязательно выполняются для всех ль£ BFSTX. Функции нижних оценок Li и Ьг оп- ределяются деревьями частичного перебора, изображенны- ми на рис. 6.10. Мы исследуем случай, когда S=DF/LLB, но эта же задача может быть использована как контрпример и для S = LLB. Пусть 88,= (8^, DF/LLBufo, 0, 1, 0, Llt оо, 0, оо) hBB2 = (B/,,DF/LLBlifo, 0, 1 > 0, L3, оо, 0, оо). Поскольку BR = 0 ц 7? В = оо, то алгоритмы завершатся получением оптимального решения, т. е. такого, для которого £/(лй)= = t/; (nb), В алгоритмах BBt и 8В2 выполняются следую- щие шаги (см. таблицы на с. 285). Мы видим, что BFSTj^BFSTj и соотношения (*) не выполняются для всех n^BFSTj. В частности, заметим, что I U DB, (Л(,)| = 19 > I и DB, (ль) I = 10 | ЛЬ€ BFST, | | л6е BFST, | И max I ASi (лй) | =| ASj (124) | = 9 > max |AS, (ль)[ = л&е BFST, л6е BFST, = |AS2(123)| = 7. Теорема 6.6. (При S=LLB или S=DF/LLB пот- ребности в вычислительных ресурсах не возрастут, если ис- пользовать лучшее начальное решение, дающее верхнюю оценку.) Заданы ВВ^~(Вь, S, Е, F, D, L, Ult BR, RB~oo) и BB2=(Bb, S, E, F, D, L, U2, BR, RB=<x>). Если S=LLB 283
или S=DF/LLB и при этом U^S'U.^ то соотношения (*) выполняются для всех ль £ BFSTp Доказательство. Пусть jift представляет собой k-ю вершину ветвления в ситуации, когда перебор полного дерева допустимых частичных решений осуществляется с Рис. 6.10. помощью правила S и функции нижней оценки L и при этом вершины не удаляются посредством какого бы то ни было правила. Поскольку S=Si=S2 и L=L1=L2, то последова- тельности ветвлений в ВВА и ВВ2 представляют собой под- последовательности первоначально установленного поряд- ка. Рассмотрим два различных случая: (1) (7/DBAS^E и (2) L7DBAS££. Доказательство соотношений (*) для каждого из этих случаев проводится так же, как доказа- тельство теоремы 6.1. В первом случае мы фактически пока- 28 i
BBi л& (AS, (лй), DF/LLBj ipq, /) (DB, (л/,), LEX, /г) (ES, (лй), FIFO, Z) С (ль) Uг (ЛЬ) е (е) (1, 2, 3, 4) 0 0 00 1 (1, 2, 3, 4) (12, 13, 14) 0 1 00 14 (14, 13, 12, 2, 3, 4) (142, 143) 0 2 сю 143 (143, 142, 13, 12, 2, 3, 4) (1432) 0 2 00 142 (1432, 142, 13, 12, .2. 3, 4) (1423) 0 2 3 13 (1423, 1432, 13, 12, 2, 3, 4) (132, 134) 0 2 3 134 (134, 132, 1423, 1432, 12, 2, 3, 4) (1342) 0 2 3 132 (1342, 132, 1423. 1432, 12 2, 3, 4) (1324) 0 2 з 12 (1324, 1342. 1423. 1432, 12, 2. 3, 4) (12’, 124) 0 2 3 124 (124, 123, 1324. 1342, 1423, 14'2, 2, 3, 4) (1243) 0 2 3 12 3 (1243, 12?, 1324, 1342, 1423. 1432, 2, 3, 4) (1234) 0 2 о 1234 (1234, 1243, 1324, 1423, 1432, 2,3,4) л* = 1234 0 2 9 вв.. (AS2 (п&), llbLIFO’ /) (DB2 (ль). LEX, k) (BS, (nfe), FIFO, Z) Т-2 (ЛЙ) &2(ЛЙ) е (?) (1, 2, 3, 4) 0 0 00 1 (1, 2, 3, 4) (12, 13, 14) 0 1 00 12 (12, 14, 13, 2, 3. 4) (123, 124) 0 2 00 123 1234 (123, 14, 13, 124, 2, 3, 4) (1234, 14, 13, 124. 2, 3, 4) л* = 1234 (1234) 0 2 2 сю • 2 зываем, что BFSj (n(,)--=BFS2 (nh) и ASi (nb)=AS2 (ль) для всех ль £ BFSTj. Снова ВВГ закончит работу раньше, чем ВВ2, если для последней вершины ветвления rct в BBt вы- полняется (*Л(л<)—Л (л/))/С\ (л,) < BR < (£/г(л,) —£,2 285
Как и ожидалось, наша последняя теорема подтвержда- ет, что можно уменьшить, но нельзя увеличить потребности в вычислительных ресурсах, если считать допустимыми ре- шения, имеющие меньшую точность. Теорема 6.7. (Если увеличить допустимую разницу между стоимостью допустимых решений и стоимостью оптимального решения, то потребности в вычислительных ресурсах не увеличатся.) Пусть ВВ1=(В,1, S, Е, F, D, L, U, BRlt RB = oo) и ВВ2--(Вр, S, Е, F, D, L, U, BR2, RB = oc). Если BR(^ ^BR2, то соотношения (*) выполняются для всехпь £ BFSTj. Доказательство. Алгоритмы BBt и ВВ2 оди- наковы, во всем, за исключением того, что BBr может за- вершить свою работу раньше, чем ВВ2, так как BR(^BR2. В частности, очевидно, что для всех nb^BFSTx имеем: 1) BFSX (mJ = BFS2 (л&); 2) ASX (n6)=AS2 (ль); 3) DBX (ль)=рВ2 (л6); 4) 01(ль) = 02(пь) = 0 (ль); 5) £1(ль) = £2(ль) = £(л(,). Более того, ВВг закончит работу раньше, чем ВВ2, если для последней в BBt вершины ветвления л( выпол- няется условие B/?13^({7(nt)—L (nt))/U (nt) > BR2. Эти соотношения представляют собой частный случай (*). Все предыдущие теоремы, кроме одной, касаются изме- нения только одного параметра. Однако эти результаты применимы также и к более общему случаю, когда мы хо- тим узнать, будут ли потребности в вычислительных ре- сурсах алгоритма 5ВХ= (Вр, Slt Еи Flt Dt, Ls, LF, BRU RBi) меньше или равны потребностям алгоритма ВВ2= = (В„, S2, Е2, F2,D2, L2, U2, BR2, RB2). Например, если Si = = S2=S,B1=B2U {{//DBAS}, F1<F2,D1=D2=D, M=7,2= =L, Ut^U2, BR^BRs и /?В1=/?В2=оо, то потребности в вычислительных ресурсах алгоритма ВВХ не превысят пот- ребности ВВ2. Это можно доказать следующим образом: ВВ1 = (В/), S, Е2, Flt D, L, Ult BRlt оо)< ^(Вр, S, Е2, Flt D, L, U1,BR1, оо) <7 (теорема 6.1) (Вр, S, Е2, F2, D, L, U^BR^ оо)^ (теорема 6.2) ^.(Вр, S, Е2, F2, D, L, U2, BRT, оо)(теорема 6.6) ^(Вр, S, Е2, F2, D, L, U,, BR2, оо) = (теорема 6.7) = ВВ2. 6.2.7. Комментарии к применению метода ветвей и границ. Для описания класса точных и приближенных алгоритмов 286
ветвей и границ мы использовали девятку параметров (В , S, Е, F, D, L, U, BR, RB). Для этого класса алгоритмов было проведено теоретическое сравнение относительных потребностей в вычислительных ресурсах в зависимости от выбора параметров Е, F, D, L, U и BR при фиксированных Вр, S и RB=oo. Все результаты подытожены на рис. 6.11. Параметр Соотношения^*) 1. £i=EaUU/DBAS Истина (теорема 6.1) 2. Истина (теорема 6.2) 3. Di^_D2 Ложь (теорема 6.3) 4. L^L^, a) S = FIFO или S = LIFO Истина (теорема 6.4) б) S = LLB или Ложь (теорема 6.5) S = DF/LLB 5. Ui<Ut Истина (теоремы 6.4 и 6.6) 6. Истина (теорема 6.7) Рис. 6.11. Теорема 6.1 показывает, что мы ничего не теряем при ис- ключении текущих активных и только что порожденных вершин, стоимость которых превышает стоимость решения, дающего верхнюю оценку. Теорема 6.2 показывает, что потребности в вычислительных ресурсах не увеличатся, если будут исключены вершины, не имеющие допустимого продолжения. Потребности в ресурсах могут увеличиться при использовании более строгого отношения доминирова- ния (теорема 6.3), но это происходит обычно в вырожденных случаях. Даже в том случае, когда соотношения (*) выпол- няются, нет никакой гарантии, что реальное время выпол- нения алгоритма не увеличится. Например, более сильное отношение доминирования может потребовать большего вре- мени счета. Теоремы 6.4 и 6.5 утверждают, что соотношения (*) остаются в силе, когда более точная функция нижней оценки используется совместно с правилами FIFO и LIFO, но они не обязательно выполняются при использовании правил LLB или DF/LLB. На практике более точная функ- ция нижней оценки обычно сокращает общий объем вычис- лений, но для того, чтобы выигрыш оказался реальным, это сокращение должно компенсировать увеличение затрат, связанных с вычислением более точной нижней оценки. Те- оремы 6.4, 6.6 и 6.7 подтверждают естественное предполо- жение о том, что лучшее начальное решение, дающее верх- 287
нюю оценку, и более широкие пределы допустимого откло- нения от оптимальной точности не могут увеличить объем вычислений. Экспериментальные расчеты для конвейерной задачи показывают, что объем вычислений может быть зна- чительно уменьшен при использовании хорошего решения, дающего верхнюю оценку, и малого ненулевого допустимо- го отклонения [96] (к чему мы еще вернемся в § 6.4). Метод ветвей и границ, описанный в этом параграфе, тесно связан с динамическим программированием, но мы отложим обсуждение этой связи до § 6.5. В следующем па- раграфе дан обзор приближенных алгоритмов и пред- ставлены результаты практических расчетов для конвейер- ной задачи. 6.3. Приближенные алгоритмы 6.3.1. Метод ветвей и границ с ограниченными возвра- тами. При использовании метода ветвей и границ можно специально сократить объем используемой памяти (путем выбора MAXSZAS или MAXSZDB) при условии, что конеч- ный результат не обязательно должен быть точным. Край- ним случаем такого подхода является полный отказ от возвращений; для этого нужно просто продвигаться по ветви вглубь в направлении наименьшей нижней оценки вплоть до получения после п шагов полного решения [4]. Это соответствует MAXSZAS=MAXSZDB= 1. Назовем та- кую процедуру методом ветвей и границ «без возвратов». Она требует вычисления нижних оценок для О (п2) вершин. Поскольку размеры множеств вершин заранее ограни- чены, то лишняя информация просто отбрасывается. Од- нако обязательно хранится наименьшая нижняя оценка, связанная с отброшенными вершинами. Это позволяет по- лучить нижнюю оценку решения в момент завершения. Такая нижняя оценка совместно с верхней оценкой, вычис- ленной для лучшего полного решения, используется для обеспечения точности решения. Другим ограничивающим фактором может стать время вычислений. Если в ситуации, когда превышается отве- денное время счета, мы имеем полное решение, то оно, сов- местно с наименьшей нижней оценкой для вершин из актив- ного множества, определяет границы точности нашего решения. 6.3.2. Эвристические алгоритмы. Мы не можем сделать особых обобщений, касающихся эвристических конструк- 288
ций. Сталкиваясь с конкретной задачей, человек может обдумывать способ получения решения’ обладающего не- высокой стоимостью, очень мало заботясь при этом (или совсем не заботясь) о теоретическом обосновании. Напри- мер, при решении задачи коммивояжера можно использо- вать правило, согласно которому из i-ro города коммивоя- жер направляется в ближайший непосещенный город. Этот так называемый метод «иди в ближний» в данном случае оказывается не очень эффективным, но он иллюстрирует произвольную природу такого рода конструкций. Другой пример связан с эвристическими алгоритмами, рассмотренными в гл. 5. Здесь иногда можно найти оценки характеристик для наихудшего случая, но дальнейшее уве- личение объема вычислений не приводит, вообще говоря, к улучшению оценки или к получению оптимального реше- ния. Мы снова подчеркиваем, однако, что эвристические про- цедуры при всей своей произвольности и слабости могут быть с успехом использованы в методе ветвей и границ как средство получения начальных решений и верхних оце- нок 167, 125]. |^6.3.3. Поиск в локальной окрестности. В последние 15лет для приближенного решения большого количества комби- наторных задач успешно применялись совершенно различ- ные подходы, из которых недавно возник общий метод. Мы называем этот метод поиском в локальной окрестности (LNS—local neighborhood search), хотя некоторые авторы называют его естественным отбором [35], эвристическим программированием 192, 93], локальным поиском [140] и поиском в окрестности [126, 145], не считая менее распро- страненных названий. Для данной задачи о перестановках размерности n(5\ X, f) (см. п. 6.2.2) этот метод можно опи- сать следующим образом [23, 92, 100, 104, 124, 122, 126, 140, 145]. 1. Для каждой перестановки л £ З3 определяется под- множество 3, называемое окрестностью N (л) перестанов- ки л. Когда такая окрестность N (л) определена для каж- дой перестановки л £ З3, мы говорим, что окрестность N определена для задачи. 2. Задан алгоритм I, который просто выбирает началь- ное решение Л1 £ 3. Часто алгоритм I рандомизируется для того, чтобы при последовательных обращениях к нему генерировались различные решения. 3. Задана стратегия Q, предназначенная для поиска N (л) и выбора при заданном i. некоторой перестановки 289
Яг + 1£ N (л,) такой, что f x)<f(ni, x), если такая точка, улучшающая решение, существует в ЛЦл,)- Если для некоторого k x)^.f(a, х) для всех n£N(n,h), то nh называют локально оптимальной в окрест- ности N. Идея таких алгоритмов состоит в обследовании некото- рой окрестности данного решения и в восприятии всех улучшений по мере их отыскания. Данный процесс продол- жается до тех пор, пока все вовможности по улучшению решения в данной окрестности не окажутся исчерпанными. Процедура может повторяться для различных начальных решений, после чего выбирается лучшее решение. Этот класс алгоритмов обозначается LNS (/, Q, ;V), где: I — метод выбора начальных решений; Q — стратегия поиска в окрестности и улучшения ре- шения; N — окрестность, подвергаемая обследованию с целью улучшения решения. В качестве примера очень успешного применения такой методологии опишем метод, разработанный Чень Лином [100] для решения задачи коммивояжера, которая факти- чески может рассматриваться как задача составления рас- писания. Следуя Лину, назовем маршрут коммивояжера ^-оптимальным, если невозможно получить новый маршрут, имеющий меньшую стоимость, путем замены любых X его дуг на другие X дуг. Для любого маршрута л необходи- мо найти окрестность размерности О(пк), где п — число городов. Лин генерирует Х-оптимальные маршруты путем выбора случайных начальных маршрутов и включения в них первых улучшений, которые отыскиваются при обследова- нии каждой окрестности. Он установил, что 3-оптимальные маршруты оказываются намного лучше 2-оптимальных в том смысле, что (1) все 3-оптимальные маршруты являются одновременно и 2-оптимальными, (2) средняя длина 3-оп- тимальных маршрутов значительно меньше, чем средняя длина 2-оптимальных, и (3) вероятность того, что 3-опти- мальный маршрут окажется оптимальным, значительно выше, чем для 2-оптимального маршрута. Он также уста- новил, что 4-оптимальные маршруты строить нецелесооб- разно, так как они требуют значительно большего времени для их построения, при этом вероятность оказаться опти- мальными для них ненамного выше. Эта взаимосвязь между размером окрестности и качеством решения является по- 290
стоянным предметом обсуждения при использовании мето- да LNS. Лин утверждает, что выбор одного из двух алго- ритмов Ах или А2 следует производить не только в зависи- мости от того, какой из них позволяет быстрее найти опти- мальный маршрут, но также с учетом относительной дли- тельности их работы. Таким образом, алгоритму может быть отдано предпочтение перед А2 из-за того, что Л2 тре- бует непропорционально большого времени, хотя и нахо- дит оптимальное решение более часто. Если имеется время для kt экспериментов с алгоритмом Лг и если Лг находит оптимальный маршрут с вероятностью рг, то следует выби- рать такой алгоритм, для которого вероятность успеха р* = 1-(1-р,.Л . максимальна. Можно возразить, что выбор наилучшей окрестности может зависеть от размерности задачи п, пользуясь при этом следующими правдоподобными аргументами. Пред- положим, например, что имеется семейство окрестностей размерности s=s(n, X) и что вероятность нахождения опти- мального решения есть р=р(п, %). Мы хотим минимизиро- вать по X вероятность неудачи 1— р* = (1—ру/“ ^e~tp!c\ т. е., имея в своем распоряжении t секунд машинного вре- мени, мы тратим cs секунд на определение локально опти- мального решения, при этом значение р, удовлетворяющее уравнению, оказывается малым. (Заметим, что мы предпо- ложили пропорциональность общего времени счета разме- ру окрестности. Это представляется правильным для 3-оп- тимальности в задаче коммивояжера, йо в общем случае неверно. Справедливость данного предположения сущест- венно зависит от того, сколько шагов должно быть сделано от начальной точки до локального оптимума.) Таким обра- зом, величина X, которая максимизирует окончательную вероятность успеха, приблизительно равна величине, ко- торая максимизирует отношение pls, а она зависит, вообще говоря, от п. Лин эмпирически нашел, что для 3-оптималь- ности р ^2-г1/10. Считая разного рода догадки предметом дискуссии, положим р(п, %)=е~ап/к. Тогда, если s=n\ то оптимальное значение X равно (ап/Inn)'12. Аналогичные рассуждения остаются в силе, если вместо вероятности на- хождения оптимального решения рассматривать вопрос о близости стоимости полученного решения к оптимальной. 291
Для конкретной задачи построение LNS (/, Q, 7V) тре- бует столь же тщательного выбора структуры N, как и ее размерности, причем это относится также к / и Q. В [951 предлагается подход, при котором N «изучается» экспери- ментально с помощью эволюционного процесса. В работе Крона обсуждается проблема определения «структуры» окрестности и детально описываются два случая, в кото- рых метод LNS применялся для решения задач упорядоче- ния; за подробностями читатель может обратиться к [92]. В качестве последнего комментария к проблеме окрестности отметим, что в [126, 145, 140] поднимается вопрос о том, ког- да поиски в окрестностях приводят к глобально оптималь- ным решениям; указано при этом, что точная окрестность для задачи коммивояжера должна иметь размерность О(п!). Метод выбора начальных решений I может быть либо случайным, либо конструктивным (к таким относятся метод ветвей и границ с ограниченным возвратом или эвристи- ческие конструкции), либо представлять собой комбина- цию этих методов, получаемую рандомизацией конструк- тивной процедуры. Обычно целью рандомизации кон- структивной- процедуры является получение различных начальных решений, которые, отличаясь друг от друга, все имели бы достаточно низкую стоимость. Вопрос о том, является ли локальная оптимизация, осуществляемая из неслучайно выбранной точки, более предпочтительной, чем оптимизация из совершенно случайной точки, имеет большое значение, и ответ на него зависит от конкретной задачи. В задаче коммивояжера применение чисто случай- ной начальной точки дает, как нам кажется, лучший резуль- тат, хотя в одном из методов предлагается начинать с «хо- рошего» маршрута [138]. В других задачах выбор хорошего начального решения играет существенную роль, поскольку реальный размер окрестности оказывается слишком малым для получения хороших решений из совершенно случайных начальных точек [139, 62, 63]. Применительно к задаче о размещении багажа, как отмечают Хенен и Куртцберг [70], этот вопрос не решен. Интуитивно кажется, что, чем слабее окрестность в конкретной задаче, тем’бблыцую выгоду мож- но извлечь из правильного выбораначального решения. В заключение общего обсуждения’метода LNS рассмот- рим проблему выбора Q, т. е. стратегии’поиска в окрестнос- ти и усовершенствования решения. Представляется спра- ведливым в общем случае утверждение, что нецелесообразно во что бы то ни стало исследовать всю окрестность с целью нахождения наилучшего усовершенствования (так называе- 292
мая стратегия наискорейшего спуска). Более разумным пред- ставляется способ, при котопом первое же найденное улуч- шение вводится в решение. Это означает, что, как прави то, нужно полностью исследовать только последнюю окрест- ность. Последний поиск, согласно Лину, называется «от- меткой перед окончанием работы». Существуют два основных способа упорядочения процесса обследования окрестности: во-первых, окрестность может быть обследована случай- ным образом, и, во-вторых, окрестность может быть лек- сикографически упорядочена с помощью фиксированной нумерации. В последнем случае можно вводить лексикогра- фию заново или продолжать ее циклически, начиная от точки, в которой был окончен предыдущий поиск в окрест- ности. Эти процедуры, согласно Крону (921, называются вариантами А и В соответственно. Возможное преимущест- во варианта В заключается в том, что он позволяет избегать возможных повторных выполнений неудачных преобразо- ваний, которые, скорее всего, останутся неудачными и пос- ле улучшения. Подводя итог, отметим, что построение хорошего алго- ритма LNS для конкретной задачи является отчасти искус- ством, отчасти наукой; изобретательность и глубина пони- мания задачи обычно с лихвой вознаграждаются. Следую- щий параграф посвящен применению рассмотренных ра- нае вычислительных методов к решению конвейерной за- дачи. 6.4. Алгоритмы решения конвейерной задачи 6.4.1. Предпосылки. Здесь мы приведем ряд результа- тов, связанных с практическим применением рассмотрен- ных точных и приближенных методов к решению класси- ческой конвейерной задачи, состоящей в упорядочении вы- полнения п работ на двух машинах с целью минимизации среднего времени прохождения *). В этой задаче составле- ния расписания предполагается, что каждая работа J,-, 1С/<п, состоит не более чем из двух различных заданий, причем каждое из этих заданий может быть выполнено толь- ко на одной из двух различных машин Р, или Р,. Время, требуемое для выполнения работы Jj на машине t, обозна- чается через r{j. Для соблюдения характерного для кон- вейерной задачи условия, заключающегося в том, что все работы выполняются на машинах в одинаковом порядке, *) Как указано в табл. 1.2, эта задача является УР-полпой. 243
считаем, что каждая работа завершает свое выполнение на машине Pi раньше, чем она начнет выполняться на маши- не Р2. Перестановочное расписание составлено, если обе машины выполняют работы в одинаковом порядке (опреде- ляемом перестановкой) и при этом отсутствуют бесполезные простои между операциями. Если в качестве меры эффек- тивности расписания используется среднее время заверше- ния работ, то, как хорошо известно, класс перестановочных расписаний обязательно содержит оптимальное решение [28]. Хотя критерий среднего времени завершения не прив- лек такого большого внимания, как критерий длины распи- сания (длительность, или максимальное время, завершения) [4,28,37, 41,64,112], Игнолл иШрейдж [76] получили прак- тические результаты для точного метода ветвей и границ, а Крон и Штиглиц [93] применили метод LNS к общей зада- че с т машинами. Представленные здесь точные и прибли- женные алгоритмы для случая двух машин демонстрируют практическую эффективность объединения метода LNS и метода ветвей и границ для получения оптимальных реше- ний и решений с гарантированной точностью. 6.4.2. Применение точного метода ветвей и границ. Для применения точных алгоритмов метода ветвей и границ к конвейерной задаче были выбраны следующие пара- метры. 1. S=LLBf ifo (наименьшая нижняя оценка). Выби- рается текущая активная вершина с наименьшей нижней оценкой стоимости. В случае, если этому критерию удовлет- воряет несколько вершин, то выбирается вершина, порож- денная первой. 2. £={t//DBAS, t//DB, AS/DB}; a) (7/DBAS (доминирующие вершины выявляются среди потомков вершин ветвления и элементов активного множест- ва с помощью верхней оценки стоимости). Исключаются те потомки актйвных вершин, нижняя оценка стоимости кото- рых превышает текущую верхнюю оценку U; б) t7/DB (доминирующие вершины выявляются среди потомков вершин ветвления с помощью верхней оценки). Исключаются те потомки вершин ветвления, нижняя оцен- ка стоимости которых превышает текущую верхнюю оцен- ку U-, в) AS/DB (проверяется доминирование активных вер- шин над потомками вершин ветвления). Исключаются те потомки вершин ветвления, которые доминируются эле- ментами активного множества. 3. F(nI/)=l для всех пу, следовательно, 5' = ^’п. 294
4. Z) = Dis (по Игноллу и Шрейджу [76]). Пусть и л2—две вершины, представляющие частичные расписания для подмножества работ Ма, где |М | = г; пусть Г(7(я) — время окончания работы Jj на машине Р1 в частичном расписании л, и, наконец, пусть xk означает k-ю работу в расписании л*. В этом случае (ла, nz)gDjS (т. е. пу доминирует над л2) тогда и только тогда, когда p2yr^„}<Fizг(лг) и X F2Z(nvX 2 5. L — L\$ (по Игноллу и Шрейджу [76]). Эта функция нижней оценки взята из [76]. В ней использованы следую- щие величины: Ti z—время выполнения работы 7,- на машине 1; та /—время выполнения работы 7; на машине 2; F2j = F2i(nt)—время завершения работы 7,- на машине 2 в расписании л(. Для заданного частичного решения ли, определенного на множестве работ Му, где | А4 | = г, сумма времен за- вершения для любого расписания nz£(nao[ имеет вид 5= 2 F2!+ 2 F2i, (2) 1ёМу где Fа во второй сумме вычисляется по расписанию nt. Вторая сумма может быть ограничена снизу следующим образом: если бы каждая работа могла начинаться на ма- шине Р2 сразу после ее завершения на машине Ри то 2 F2! — S1 — 2 +(л—& + 0+T2/ft]- • it Му k=r+l Здесь работы в расписании л( упорядочены по величине tk. С другой стороны, если каждая работа на машине Р2 долж- на ожидать только окончания предыдущей работы на Р2, то 2 F2,-(nf) = S2 = ie Му п = 2 [max {Fa (nf), Fi/(n,) + min т1(.]+(п—/г+1)т2/ ]. *=Г+ 1 r ieMy Если хотя бы одно из двух предыдущих условий не вы- полняется, то вторая сумма в (2) может только увеличиться; 295
следовательно, имеем Z F2,-4-max jS,, SJ. in My Более того, минимизируется при выборе такого л(, в котором работы Tlifc, располагаются в порядке возрастания, что приводит к <$i=Si. S2 также минимизи- руется при выборе такого nt, в котором работы т2/ ik £ Л4У, располагаются в порядке возрастания, что приводит к S2=S2. Следовательно, S Л, + тах^, S2). i 6 Му Заметим, что, поскольку упорядочение и T2ifc не- обходимо сделать только один раз, нижняя оценка может быть вычислена для л,, за время О(п). 6. Пусть U обозначает верхнюю оценку, заданную в начале алгоритма. Она отличается от U (ль)— верхней оценки, известной в процессе работы алгоритма в тот момент, когда ль является текущей вершиной ветвления. Здесь имеются две возможности: U = oo, если не задано никакого начального решения; L/<oo, если задано не- которое начальное решение. 7. Желая получить точное решение, полагаем BR = Q. 8. RB= (TIMELIMIT, MAXSZAS, MAXSZDB). В ка- честве предельного времени счета TIMELIMIT устанавлива- лись различные значения при разных вариантах входных данных; эти значения указаны вместе счисленными резуль- татами. Величина MAXSZDB была взята равной п (чтобы DB никогда не переполнялось), за исключением случая, когда использовался алгоритм без возвратов, в котором MAXSZDB=1. Наконец, MAXSZAS=999, и вычисления прекращались, если размер AS превышал MAXSZAS. Мы используем два следующих точных алгоритма вет- вей и границ: ВВ^Вр, LLBfifo, (AS/DB, 7//DB), F = l, Dls, Lis, Uu BR = 0, RB), BB2 = (Bp, LLBFIfo, {AS/DB), F=I, DIS, LIS, f/2 = oo, BR = 0, RB), где t/i — верхняя оценка, полученная способом, рассмот- ренным в § 6.3 и, более детально, в следующем пункте. 296
6.4.3. Применение метода ветвей и границ без возвратов. Дерево поиска при отсутствии возвратов может быть ис- пользовано для получения полного решения, стоимость ко- торого служит затем верхней оценкой для всех остальных значений стоимости. Этот алгоритм формируется путем вы- бора следующих параметров: S = LLBfifo. Е—0, F=l, D—0, L — L\$, U — oo, RB = (TIMELIMIT, MAXSZAS, MAXSZDB) = (оо, I, I). В этом случае потомок каждой вершины ветвления, который имеет наименьшую нижнюю оценку, становится следующей вершиной ветвления. Этот алгоритм обозна- чается BBLB(l); он аналогичен алгоритму, описанному в [4]. 6.4.4. Применение метода поиска в локальной окрестно- сти. Здесь мы рассмотрим следующие варианты. 1. a) /=UPRS (равномерный псевдослучайный выбор начального решения — uniform pseudorandom start); на- чальное решение генерируется с помощью случайной пере- становки. б) Z=BBLB(1); результат однократного выполнения алгоритма BBLB(l) принимается за начальное решение. 2. Q=RFI (случайный поиск первого улучшения — random first impovement); окрестность исследуется слу- чайным образом, и реализуется первое же найденное улуч- шение. 3. a) N=BSI (одиночная вставка назад — backward single insertion) представляет собой множество переста- новок (решений), порожденных путем помещения работы, занимавшей i-ю позицию, сразу после работы, занимавшей /-ю позицию (£<.]) Например, при i=2, j=4 решение abcde преобразуется в acd.be. б) W=FSI (одиночная вставка вперед — forward single insertion) представляет собой множество перестановок, порожденных путем помещения работы, занимавшей i-ю позицию, сразу перед работой, занимавшей /-ю позицию Например, при г=4, /=2 решение abcde превра- щается в adbce. в) М=АР12 (двойная перемена мест в соседних парах — adjacent pair interchange 2) представляет собой множество перестановок, порожденных следующим образом. В на- чале меняются местами работы, занимающие позиции i и i+1, затем, если задано второе число то меняются мес- тами работы, занимающие позиции j и /+1. Например, при 297
i—-2, j=4 решение abcde превращается в acbed. При i=2, /=3 abcde превращается в acdbe. г) Af=BSIuAPI2. Все эти окрестности имеют размерность О (и2). 6.4.5. Числовые данные. Для проверки точных и приб- лиженных алгоритмов использовалось двадцать пять на- боров случайных величин, по пяти наборов на каждую за- дачу; размеры этих наборов п=5, 10, 15, 20 и 25. В качест- ве времен выполнения были приняты независимые выбор- ки целых чисел, имеющих равномерное распределение Р{то=г}= 1/10. Вместо вычисления среднего времени за- вершения, которое может не быть целым числом, мы ис- пользовали эквивалентную величину, равную сумме вре- мен завершения. 6.4.6. Характеристики приближенных алгоритмов. В 25 исследованных задачах для построения субоптимальных решений использовался метод поиска в локальной окрест- ности и метод ветвей и границ без возвратов. В первой се- рии экспериментов алгоритм LNS использовался при /= = PRS, Q RFI и окрестностях W=BSI, FSI, API2 и BSI U UAPI2. В табл. 6.1 представлены лучшие решения, полученные с помощью каждой окрестности; там же указано, сколько раз получалось это решение и сколько было использовано различных начальных решений (т. е. в столбце «Количест- во» указано количество нахождений лучшего решения/ количество использованных начальных решений). Решения, отмеченные звездочкой, являются оптимальными, что было доказано с помощью точного метода, а решения, набранные полужирным шрифтом, являются лучшими субоптималь- ными решениями для этих наборов данных. Задачи, имею- щие размерность п=5, не включены в таблицу, так как они относительно просты и все окрестности в них часто дают оптимальное решение при любых наборах входных данных. Сравнение качества решений, проведенное на этом неболь- шом количестве наборов входных данных, показывает, что различия между окрестностями являются незначительны- ми. Ни одна из окрестностей не оказалась лучше, чем дру- гие, при всех наборах данных. В частности, интересно отметить, что BSI и API2 не является стабильно лучшей окрестностью, чем BSI или API2. Для получения субоптимальных решений использовал- ся также метод ветвей и границ без возвратов BBLB (1). Решения, генерируемые этим эвристическим алгоритмом, оказались, вообще говоря, нестоль хорошими, как решения, 298
Лучшие решения, полученные с помощью приближенных методов Таблица 61 п Набор данных Лучшее известное решение LNS (PRS, RFI, А) BBLB (1) Решение LNS(BBLB (1), RFI, Л’) N = BSI 7V = FSI W = API2 ;V = BSIUAPI2 ?V = BSI W = FSI Лучшее решение Количе- ство 1 Лучшее решение Количе- ство = Я 3 о Ч с. Количе- ство Лучшее , решение Количе- ство Лучшее решение 1 Количе- ство 1 Ф X э S а. Количе- ство 10 1 298* 299 2/10 298* 3/10 304 2/10 299 1/10 .305 298* 6/10 298* 5/10 2 326* 326* 3/10 326* 7/10 326* 5/10 326* 5/10 335 326* 9/10 326* 10/19 3 375* 375* 4/10 375* 6/10 375* 3/10 375* 3/10 375* 375* 1 1 375* 1/1 4 340* 340* 1/10 340* 5/10 340* 1'10 340* 5/10 340* 349* 1/1 34 С* 1/1 5 291* 291* 1/10 291* 8/10 291* 4/10 291* 3/10 294* 291* 1/10 291* 10/10 15 I 598 605 2/10 599 1/10 602 3/10 598 1/10 667 693 3/10 690 5/10 2 6'’8* 608* 6/10 608* 8/10 6п8* 9/10 6°8* 8/19 6 9 608* 10/10 6 '8* 10, то 3 573 576 1/10 573 1/10 574 1/10 577 1/10 600 578 1/10 578 6/10 4 713* 713* 8/10 713* 7/10 713* 7/10 713* 8/Ю 713* 713* 1/1 713* 1/1 5 634* 639 1/10 636 1/10 642 1/10 637 1/10 638 638 1/1 638 1/1 20 1 954 971 1/10 956 1/10 958 1/10 955 1/10 956 956 1/1 954 10/10 2 1161 1166 1/10 1173 1/10 1177 1/10 1.170 2/10 1319 1161 1 • 1 0 1179 1/10 3 957 958 2/10 958 1/10 962 1/10 957 1/10 991 $’57 1 но 958 4/10 4 1015 1020 1/10 1018 1/10 1019 1/10. 1016 1/10 1041 1015 1/10 1019 5/10 5 881* 885 1/10 886 1/10 884 1 ТО 890 2/10 886 885 10 то 885 10/10 50 1 6295 6334 1/5 6327 1 /5 7127 6295 1/5 6324 1/5 2 5046 5151 1/5 5079 1 5 58''7 5046 1/5 5'68 1/5 3 6300 6392 1/5 6455 1 5 6993 6300 1/5 6409 1/5 4 6362 6519 1/5 6460 1/5 6389 6362 1 5 6382 1/5 5 5726 5927 1/5 5949 1/3 - 6017 5726 1/5 5805 1/5 *—Звездочка означает оптимальное решение.
Полученные методом поиска в локальной окрестности, но для их получения требовалось вдвое меньше времени. Сле- дующий шаг состоял в_использовании этих^решений в ка- честве улучшенного начального решения для поиска в ло- кальной окрестности: алгоритм LNS (BBLB(l), RFI, N) был проверен с двумя окрестностями A—BS1 и Ar=FSI. Для небольших задач (п^15) оказалось, что решения, получаемые на основе этих улучшенных начальных реше- ний, были почти такими же, как и при использовании слу- чайных начальных решений, однако в задачах большей раз- мерности (п=20, 50) использование улучшенного началь- ного решения обычно приводило к улучшению конечного результата. Кроме того, отметим, что генерирование реше- ний методом BSI стабильно дает лучшие результаты, чем FSI, для задачи с 50 работами, но для задач меньшего раз- мера качество этих процедур одинаково. Решения, сведен- ные в табл. 6.1, представляют собой оптимальные или луч- шие из найденных решений для каждого набора данных. При п^15 среднее время, требуемое для получения ре- шения с помощью LNS (UPRS, RFI, BSI), было больше, чем сумма времен, требуемых для выполнения BBLB (1) и LNS (BBLB (1), RFI, BSI). Это наводит на мысль, что в хорошем эвристическом алгоритме минимизации среднего времени завершения в конвейерных задачах большой раз- мерности следует вначале получить улучшенное началь- ное решение с помощью метода ветвей и границ без возвра- тов, а затем попытаться улучшить решение с помощью по- иска в локальной окрестности. Среднее число соседних решений, которые необходимо проверить (выбрать и сравнить их стоимость со стоимостью базового решения) прежде, чем будет найден локальный оптимум, может быть использовано в качестве меры оцен- ки времени, требуемого для реализации процедуры локаль- ного поиска. Оно также дает количество вычислений функ- ции стоимости. В конвейерной задаче с п работами и т машинами каждое вычисление стоимости требует времени, линейно зависящего от произведения тп, поскольку вре- мена завершения каждой из п работ на т машинах должны быть вычислены с помощью рекурсивной процедуры по- строения перестановочного расписания, выполняющейся до тех пор, пока для всех п работ не будет назначено время начала на каждой машине. Экспериментальные результаты для пяти вариантов задач показывают, что число соседних расписаний, проверяемых алгоритмами LNS(UPRS, RFI, N) и LNS (BBLB(l), RFI, N) для A=BSI, FSI, API2 и 300
BSI U API2, растет как n2’3-?n2,s, а время счета — как л3,34-п3’7. Таким образом, можно предположить, что число проверяемых соседних расписаний растет чуть быстрее, чем размер окрестности (О(п2)). Алгоритм ветвей и границ без возвратов всегда генерирует п(п—2)/2-f-l вершин, для каждой из которых необходимо вычислять функцию ниж- ней оценки; следовательно, время счета растет приблизи- тельно как п3. 6.4,7. Характеристики точных алгоритмов и алгоритмов с гарантированной точностью. Метод ветвей и границ, использованный Игноллом и Шрейджем [761 для задачи минимизации среднего времени прохождения в двухмашин- ной задаче, эквивалентен описанному выше алгоритму BBt, за исключением того, что они использовали LLBlifo, разрешая равноценные ситуации с помощью правила «пос- ледний пришел — первый обслужен» вместо использован- ного нами правила «первый пришел — первый обслужен». Как было установлено, эти изменения практически не ока- зывают влияния на результаты обсуждаемых эксперимен- тов. Из анализа, проведенного в п. 6.2.6, следует, что пот- ребности алгоритма в вычислительных ресурсах могут быть уменьшены, но не могут увеличиться при дополнении набора правил исключения Е правилом (7/13BAS. Кроме того, бы- ло показано, что потребности в вычислительных ресурсах являются монотонными невозрастающими функциями на- чальной верхней оценки стоимости U. Вообще, приводимый ниже набор экспериментальных данных показывает, что средняя величина потребностей в вычислительных ресур- сах одной и той же конвейерной задачи, в которой в ка- честве критерия оценки выступает среднее время завер- шения, может быть значительно уменьшена с помощью добавления к Е слегка ослабленной версии {//DBAS и ис- пользования хорошего субоптимального решения для на- чальной верхней оценки U. В наших машинных экспериментах предполагалось, что верхняя оценка стоимости каждой вершины ветвления будет использоваться только для исключения потомков вершин ветвления, но не элементов текущего активного множества. Это новое правило обозначается t//DB. Прави ло L7DB слабее, чем L//DBAS, так как активная вершина ла, не исключенная по критерию верхней оценки в момент порождения (т. е. когда Е(ла)>£/(А(ла)), где А (ла) обоз- начает отца вершины ла), может удовлетворять неравенст- ву А(ла)>£/ (ль) для некоторой вершины ль, подвергнутой ветвлению позднее. Если пренебречь повторной проверкой 301
Потребности в вычислительных ресурсах точных вв1 й X ф 3 X £ X о, 2 п 3 S к га tt 5 X ® га к S £ S 2 « я ® ч ® га 2 га х ° ? Ч X о X X я IME О и _ я К «й X ® S X я я =_£ О X К ffi Л X ч н га х S га х | Набор Консч НЯЯ OL Макси число верши Общее порож верш и RUNT га ° * я ™ я X к ф ° я к Макси число верши 10 1 R1 298 381 724 2.787 298 R1 298 50 2 R1 326 132 178 .256 326 R1 326 12 3 R1 375 61 83 .060 375 R1 375 4 4 R1 340 54 69 .045 340 R1 340 2 5 R1 291 456 1579 8.079 291 R1 291 95 15 1 EN 580 999 1819 17.062 693 ЕТ 589 942 2 R1 608 237 291 .743 608 R1 608 11 3 EN 563 999 1716 16.829 578 EN 567 999 4 R1 713 428 738 3.073 713 R1 713 29 5 EN 629 999 2242 22.271 638 R1 624 167 20 1 EN 923 999 2494 26.631 956 ЕТ 943 893 2 EN 1122 999 1495 15.764 1161 EN 1122 999 3 EN 940 999 1887 22.160 957 EN 944 999 4 EN 976 999 1650 16.802 1015 EN 980 999 5 EN 876 999 2462 27.367 885 R1 881 124 50 1 EN 5842 999 ИЗО 10.882 6295 EN 5842 999 2 EN 4716 999 1050 9.507 5046 EN 4716 999 3 EN 5795 999 1070 10.516 6300 EN 5795 999 4 EN 5945 999 1046 10.304 6362 EN 5946 999 5 EN 5950 999 1136 10.390 5726 EN 5050 999 *) Получено на IBM 360/91. Транслятор с ФОРТРАНА Н возможного доминирования над активным множеством при улучшении верхней оценки, то может оказаться, что часть бесполезных вершин остается в списке активных и эти вер- шины могут быть подвергнуты ветвлению. Однако в наших экспериментах начальная верхняя оценка часто оказыва- лась взятой по оптимальному решению, следовательно, и [У/DB и Р/DBAS исключали одни и те же вершины. Кроме того, поскольку мы используем только правило выбора LLB, то множество вершин, подвергнутых ветвлению, не может содержать вершины, имеющей нижнюю оценку, превышаю- щую оптимальную стоимость (лемма б, [94]). Поэтому ис- пользование L7DB вместо t//DBAS не может изменить сос- 302
Т а б л и ц а 6.2 алгоритмов и алгоритмов с заданной точностью :BR = .05 (n=10, 15, 20), . I 0 (л = 50) Общее число по- рожденных вер- шин RUNTIME *) (с) U-L Начальная верх- няя оценка Конечная ниж- няя оценка Максимальное число активных вершин Общее число порожденных вершин RUNTIME •) (с) и- L и и 622 .319 .0 298 АВ 285 33 75 .046 .045 109 .048 .0 326 АВ 320 4 11 .013 .018 64 .030 .0 375 АВ 367 1 11 .010 .021 43 .022 .0 340 АВ 339 1 11 .011 .003 1366 1.026 .0 291 АВ 282 6 11 .011 .031 5726 30.072 .023 б^З АВ 573 242 553 1.221 .050 168 0.089 .0 608 АВ 6 6 2 16 .016 .033 4263 29.856 .019 578 АВ 550 21 30 .026 .048 497 .264 713 АВ 709 4 16 .016 .006 4605 3.872 .0 638 АВ 607 49 153 . 128 .049 16524 40.026 .014 956 АВ 909 87 299 .32' .049 1738 15.842 .035 1161 АВ 1111 17 21 .024 .043 6656 32.531 .014 957 АВ 935 10 21 .023 .023 3244 23.156 .036 1015 АВ 968 8 21 .022 .046 5415 4.436 .0 885 АВ 858 4 21 .022 .031 ИЗО 10.635 .065 6295 АВ 5835 50 51 .114 .073 1050 9.260 .065 5046 АВ 4716 50 51 .117 .065 1070 10.017 .080 6300 АВ 5788 50 51 .117 .081 1079 9.920 .050 6362 АВ 5925 43 51 .106 .069 1136 9.855 .118 5726 EN 5050 999 1136 10.330 .118 тав множества вершин, подвергнутых ветвлению. Теперь рассмотрим ВВ2 = (Вр, LLBfjfo, 1, {AS/DB}, Dis, Lis, oo, BR, RB), BBl = (Bp, LLBFIFo, 1, -{AS/DB, D/DB}, Dis, Lis, L\, BR, RB), где Ui — стоимость лучшего решения, полученного с по- мощью LNS(BBLB(1), RFI, BSI), и BR=Q. Потребности в вычислительных ресурсах алгоритмов BBY и ВВ2 отражены в табл. 6.2. Столбец S описывает условия, при которых ал- горитм завершает работу для каждого набора данных: R1 означает, что L = U, т. е. доказана оптимальность реше- 303
ния, давшего верхнюю оценку; ЕТ — что время счета равно или превышает TIMELIMIT; EN — что число активных вершин равно MAXSZAS. Если алгоритм завершается с превышением предельных ресурсов (ЕТ или EN в колонке S), то в качестве минимальной нижней оценки стоимости заносится наименьшая нижняя оценка, взятая по активным вершинам. Если алгоритм завершается нахождением опти- мального решения (R1 в колонке S), то последняя нижняя оценка является стоимостью этого оптимального реше- ния л*. Как BBt, так и ВВ2 для всех задач, имеющих размер п=10, оканчиваются нахождением оптимального решения (R1), но анализ табл. 6.2 показывает, что потребности в вычислительных ресурсах у алгоритма ВВг значительно меньше, чем у ВВ2. Статистика размеров максимального множества активных вершин может быть принята в качест- ве оценки минимального объема памяти, требуемого для выполнения алгоритма. Средний объем требуемой памяти для задач данного размера п может быть найден путем ус- реднения этих данных. При и=10 средний объем памяти для алгоритма ВВ± составляет только 15% от требуемого объема памяти для алгоритма ВВ2, а среднее время счета В Bi составляет всего лишь 13% от времени счета ВВ2- Если в оценку времени включить время получения началь- ного решения, дающего верхнюю оценку (т. е. время, зат- раченное алгоритмом LNS (BBLB (1), RFI, BSI), считая, что он выполняет по 10 попыток для одного набора данных), то и тогда еще средний выигрыш составляет 76%. Улучше- ние характеристик по времени и по памяти возникло за счет того, что все потомки вершины имеющие нижнюю оценку стоимости L(nd), превышающую верхнюю оценку U, немедленно исключались посредством правила I//DB. Эти потомки никогда не стали бы активными, и для них не было необходимости проверять с помощью правила AS/DB, доминируют ли над ними текущие активные вер- шины. Когда размер задачи превышает 10, предельные значе- ния объема памяти и времени счета быстро превышаются. Однако поскольку потребности в вычислительных ресурсах алгоритма BBi меньше или равны потребностям ВВ2, то BBi, в целом, оканчивает работу, имея решения, более близ- кие к оптимальным. В некоторых случаях (задачи 15—5 и 20—5) В Bi находит оптимальное решение, а ВВ2 не успе- вает из-за превышения лимитов по ресурсам. Когда оба ал- горитма заканчивают работу из-за превышения времени 304
счета, то конечная нижняя оценка, достигнутая ВВ1; ока- зывается, по меньшей мере, такой же, а часто и превышает оценку, достигнутую алгоритмом ВВг. Поскольку мы исполь- зуем’правило ветвления LLB.to активная вершина, имеющая наименьшую нижнюю оценку стоимости, всегда является текущей вершиной ветвления. Эта нижняя оценка стоимос- ти, обозначенная L, совместно с окончательной верхней оценкой U может быть использована для оценки точности приближения к оптимальному решению. В табл. 6.2 по- грешность (U—tyu меняется от 0 до 2,3% для задач, име- ющих размер п=15, от 0 до 3,6% для задач, имеющих раз- мер п=20, и от 5,0 до 1!,8% для задач, имеющих размер п—-50. g Эти экспериментальные данные показывают, что, прежде чем'пытаться найти оптимальное решение с помощью метода ветвей и границ, следует найти хорошее субоптимальное ре- шение. Использование правила исключения f//DB совмест- но с хорошим начальным решением, дающим верхнюю оцен- ку, существенно уменьшает объем вычислений, и если ал- горитм ветвей и границ превышает заданные предельные значения объема памяти и времени счета, то, тем не менее, известное решение, дающее верхнюю оценку, и наименьшая нижняя оценка, взятая по активным вершинам, позволяют с хорошей точностью оценить степень близости получен- ного решения к оптимальному. 6.4.8. Оценка точности субоптимальных решений. Когда нет необходимости находить оптимальное решение, можно получить еще больший выигрыш в вычислительных ресур- сах. В этом пункте мы покажем, что стоимость субоптималь- ного решения, полученного с помощью метода ветвей и границ, превышает оптимальное значение не более чем на заранее заданную величину. Этот метод достижения задан- ной точности был предложен другими авторами и рассмот- рен в [60, 67, 53, 125]. Снова воспользуемся алгоритмом BBlt но уже при заданном значении BR, O^BR<_1. Слу- чай, когда BR=Q, был рассмотрен в предыдущем пункте. В табл. 6.2 даны потребности в вычислительных ресурсах алгоритма BBi при BR =0,05 для п~ 10J15 и 20 и BR =0,10 для п=50; запись S—AB означает, что алгоритм достиг заданной точности. В большинстве случаев требуемая точ- ность достигается на первом шаге ветвления (общее число порожденных вершин в этом случае равно п+1), при этом время счета оказывается ничтожным по сравнению с тре- буемым для получения при помощи алгоритма ветвей и гра- 11 Под ред. Э. Коффмана 305
ниц оптимального решения. Это является результатом применения хорошего решения, дающего верхнюю оценку, и хорошей границы, вычисляемой с помощью функции ниж- ней оценки L. Когда заданная степень точности устанавли- вается близкой к 0,01, то среднее количество затрачивае- мых вычислительных ресурсов незначительно отличается от того, какое необходимо для получения оптимального реше- ния, поскольку в этом случае оба способа обычно превышают заданные предельные значения вычислительных ресурсов. Однако в тех случаях, когда этого не происходит, достига- ется экономия. 6.4.9. Выводы относительно результатов экспериментов. Результаты машинных экспериментов для описанных алго- ритмов решения конвейерной задачи позволяют сделать следующие выводы. 1. Потребности в вычислительных ресурсах алгоритмов нахождения оптимальных решений методом ветвей и границ могут быть сокращены путем использования хорошего на- чального решения, дающего верхнюю оценку, совместно с правилом доминирования, учитывающим верхнюю оценку, таким, как £7/DB или t//DBAS. 2. Если необходимо получить точное решение задачи, то общий объем вычислений (т. е. затраты на получение начального решения, дающего верхнюю оценку, плюс затра- ты на выполнение оптимального алгоритма) может быть значительно уменьшен, если вначале найти хорошее субоп- тимальное решение. 3. Оптимальные алгоритмы ветвей и границ с точки зрения потребностей в вычислительных ресурсах могут быть не хуже приближенных алгоритмов для задач, размер которых не превышает 20. 4. Когда достаточно иметь субоптимальное решение, которое бы гарантированно удовлетворяло заданной гра- нице точности, метод ветвей и границ может быть использо- ван для проверки качества субоптимального решения или для генерирования другого субоптимального решения, обладающего желаемой точностью. Задание точности от 5 до 10% часто приводит к значительной экономии вычис- лительных ресурсов по сравнению с тем количеством ресур- сов, которое требуется для нахождения оптимального решения (отклонение 0%). 5. Метод ветвей и границ без возвратов, используемый для получения начального решения, совместно с методом поиска в локальной окрестности дает хороший эвристичес- кий способ решения рассмотренной задачи. 306
6.5. Взаимосвязь между методом ветвей и границ и динамическим программированием 6.5.1. Предпосылки. Впервые метод динамического про- граммирования для решения задач упорядочения был при- менен Хелдом и Карпом [68]. Позже Лоулер и Моор [105] нашли более совершенные алгоритмы для нескольких ча- стных случаев. Не так давно Сахни [127] и Горовиц и Сахни [731 предложили сходные алгоритмы, основанные на идеях динамического программирования, для решения задачи упорядочения независимых заданий при различных предпо- ложениях относительно процессоров и функции стоимости. Мы не собираемся подробно обсуждать эти работы, а рас- смотрим модельную задачу, которая показывает, как метод ветвей и границ связан с динамическим программированием. 6.5.2. Модельная задача. Рассмотрим задачу организа- ции выполнения п независимых заданий на одном процес- соре. Время выполнения задания Tt представлено неотрица- тельным целым числом тг. Кроме того, вводится понятие стоимости пребывания, или потерь, где wt(t) явля- ется монотонной неубывающей функцией от t, которая обозначает стоимость завершения задания 7\ в момент t. Цель заключается в том, чтобы найти расписание, при кото- ром минимизируются суммарные потери по всем п заданиям. Оптимальное решение может быть представлено в виде перестановки л, где л (/)=£, если Тк должно быть выполне- но j-м по счету. Хелд и Карп [68] вывели рекуррентные соотношения, которые позволяют решить задачу за О(п2") шагов. Позднее Коглер [88] использовал такой же подход для создания эквивалентного алгоритма ветвей и границ, имеющего сложность О(п2п). 6.5.3. Частный случай применения метода динамичес- кого программирования. Лоулер и Моор [105] первыми установили, что когда ’'Но, (т. е. когда с завершением Тt позже директивного срока dt связана фиксированная величина потерь /;), задача может быть решена путем оптимального разбиения заданий на два множества. Назовем ее задачей составления расписания с директивными сроками и фиксированными потерями (FLDS: fixed-loss due-date scheduling). Задания, входящие в первое множество J, все выполняются с соблюдением директивных сроков, а оставшиеся задания, образующие и* 307
Множество J, выполняются с нарушением директивных сроков. Множества J и J могут быть определены путем упорядочения заданий по значениям директивных сроков, причем в первую позицию помещается задание с наиболее ранним сроком, а к остальным применяется следующий алгоритм динамического программирования [105]. Пусть f (j, t) обозначает минимальную сумму потерь пер- вых j заданий при^условии, что задание j завершено не позднее, чем t. Установим следующие граничные условия: f (0, t) = Q при t^Q-, f(j, t) — + оо для /=1, 2, ..., п\ t < О, а затем решим рекуррентное уравнение И (/, г-1), /(/, t) = min j w} (/)+f (/—1, t—ty), /=1,2.n; i^O, U7+/(/-i, Поскольку выполнение всех заданий завершается за время п со= т;, то это уравнение должно быть решено только i=i для 0 t со. Задания, которым в результате решения уравнения будет выделено нулевое процессорное время, попадают в множество J запаздывающих заданий, в то время как остальные задания, образующие множество J, выполняются в порядке неубывания их директивных сроков. Задания, попавшие в] J, выполняются в любом порядке вслед за заданиями из J. Поскольку наше рекуррентное уравнение должно -быть решено для п значений j для каждого t от 0 до со, то решение {может быть получено за О(псо) шагов. 6.5.4. Представление пространства решений в виде двоичного дерева. Нетрудно понять и сопоставить с ме- тодом ветвей и границ некоторую модификацию этого алгоритма динамического программирования. Как и преж- де, предположим, что задания перенумерованы в порядке неубывания директивных сроков (т. е. di^d2^.. .^d„). Тогда все допустимые решения (разбиения) могут быть представлены в виде последовательностей литералов alf ос2, ..., а„, где а = i или i. Если а7 = i, то Т{ g J и за- дание Т[ выполняется в указанном порядке и завершается с соблюдением директивного срока dz. Если же a: — i, то T^J и задание Т{ относится к запаздывающим. Все воз- 308
можные последовательности (решения) можно представить в виде листьев полного двоичного дерева высотой п. На- пример, для п = 4 дерево имеет вид, изображенный на рис. 6.12, где корень обозначен через е, а остальным Рис. 6.12. вершинам поставлены в соответствие последовательности вида a1a.i.. .аг. Лист 1 2 3 4 обозначает разбиение Т\}, 7 = {Л, TV- Рассмотрим FLDS-задачу для 4 заданий, в которой ис- ходные величины имеют следующие значения: dl = 2, = 3, Tj = 2, 72 = 4, /2 = 2, т2 = 3, ^3 == б, Zg = 1 , Tg = 2, <4 = 6, Z4 — 2, т4 = 3. 309
Параметры dit 1[ и rz представляют собой, соответственно, директивный срок, величину потерь и время выполнения задания ТСопоставим каждой вершине (частичному разбиению) а±а2.. ,аг двоичного дерева пару (/, т), где I обозначает сумму потерь, соответствующую заданиям, уже находящимся в J, а т обозначает общее время выполнения заданий, уже находящихся в J, т. е. I = 2 h и т= 2 V а(-= i Эти пары используются как метки вершин. На рис.. 6.13 представлен сокращенный вариант рис. 6.12, в котором (4,4) (3,5) (5,2) (5,5) (4,6) (6,6) (5,5) (7,2) (6,3) (8,0' Рис. 6.13. недопустимые частичные решения и их потомки перечерк- нуты. Например, вершина 12 и ее потомки не являются допустимыми, так как задание Т2 не может быть выполнено в директивный срок, если ему предшествует задание 7\. 310
(Допустимость легко проверить; для этого нужно убедиться, что для каждого задания в J соблюдается его директивный срок.) Мы предполагаем, что все задания, находящиеся в J, являются запаздывающими. В некоторых случаях это может быть достигнуто лишь путем вставки дополнитель- ного времени простоя между заданиями, относящимися к J, и заданиями, относящимися к J. Например, вершина 1 2 3 4 представляет решение, в котором все задания являются запаздывающими. Оптимальное расписание не требует наличия простоев между заданиями; следовательно, расписания, в которых имеются простои, не представляют интереса. 6.5.5. Алгоритм динамического программирования. Те- перь найдем оптимальное решение с помощью алгоритма динамического программирования, подобного тому, кото- рый использовали Сахни [127] и Горовиц и Сахни [73]. Работа алгоритма заключается в вычислении последо- вательности множеств S(o), S(1), ..., SM. Каждое множество S'0 представляет собой лексикографически упорядоченный набор пар (/, т), сопоставленных каждой вершине уровня i в соответствующем двоичном дереве; компоненты пары соответствуют суммарным потерям и суммарному времени выполнения. FLDS-a л го р ит м динамического програм- мирования Вход: dj, lj, т,-, 1 при этом Выход: расписание . ,аг, которому соответствует минимальная сумма потерь. Метод: Шаг 1 [Начальная установка] S(o> {(0, 0)] Шаг 2 [Генерирование S(1), S(2)...S1"’] for i = 1,2, .. ., ti do begin V-<— 0; V *- 0_ for каждой пары (/, т) в do begin ifT-f-r^d; thenl/--V(j ](7, t-J-t,)} V — KU t)} end слияние V и V для получения S (j) Если в процессе слияния мы вычисляли (la, Vj и (/р, Tf)) такие, что 1а /р и та^тр, то (7Р, тр) исключается end 311
Шаг 3 [Оптимальное решение]. Пара из S(,,) с наи- меньшим значением I является меткой оптимального ре- шения а^.. .ап. Этот алгоритм просматривает дерево частичных реше- ний путем непосредственного перебора вершин в ширину (breadth-first). Метод, использованный в шаге 2 для слияния множеств и исключения пар, отличается от других обще- употребительных методов перебора. Заметим, что если вершинам ata,2. . .аг и Р1Р2...РГ, соответствуют пары (/а, та) и (/р, т₽) такие, что Та^/р и та^тр, то лучшее полное решение, начинающееся с является, по крайней мере, таким же хорошим, как и лучшее полное решение, начинающееся с . .рг. Следовательно, частич- ное решение р^2... Рг может быть исключено, поскольку над ним доминирует ага2.. ,аг. Аналогично, для каждой вершины а^.. которой сопоставлена пара (Z, т) в S(i~v, если т4-т,->г/(-, то ага2.. не является допу- стимым и не включается в SU). Правило исключения и проверка на допустимость обеспечивают, что ни одно |из ( п п 1 S(Z) не содержит больше чем М = min | У пар. Поскольку число вершин на уровне i в двоичном дереве равно, самое большее, 2', то другой границей размера S(z> является 2П. _Для того чтобы показать, что элементы множеств V и V и объединенное множество S(i> генерируется в лекси- кографическом порядке, можно воспользоваться методом индукции. Поскольку ни V, ни V не содержат большего числа вершин, чем S(Z-1), размер которого ограничен ве- личиной min {М, 2”}, то и V и V могут быть порождены и слиты (шаг 2) для получения S(i) за 0{min[M, 2n]j- шагов. Эта процедура повторяется п раз, прежде чем будет найдено оптимальное решение. Поэтому общее число шагов оценивается как 0]min[nA4, n2n][. Заметим, что потребности в количестве шагов для наихудших вариантов выполнения алгоритма ограничены величинами пМ и п2л. Граница п2'г не зависит от данных задачи, в’то время как граница пМ зависит от значений параметров 1(, т, и d[. Если т(- и dt имеют^заданные распределения, ограниченные величинами L, Т и nD соответственно, то min \nL, пТ, nD}. В этом частном случае число шагов, необходимых для получения оптимального решения, есть О(п2). 312
Таблица 6. Шаги алгоритма динамического программирования FLDS i V V Исключен- ные двойки S' 0 ((0, 0)) 1 ((0. 2)) ((3, 0)) — ((0, 2)), (3, 0)) 2 ((3, 3)) ((2, 2), (5, 0)) ((3, 3)) ((2, 2), (5, 0)) 3 ((2, 4), (5, 2)) ((3,2) (6,0)) ((5, 2)) ((2, 4), (3,2), (6,0)) 4 ((3, 5), (6, 3)) (4, 4), (5,2), (8,0)) ((6, 3)) ((3,5), (4, 4), (5, 2), (8, 0)) Оптимальное р гшение (/, т) = (3, t ) => 1234 В табл. 6.3 показаны шаги алгоритма динамического программирования FLDS, выполняемые при решении за- дачи с четырьмя заданиями. Заметим, что V, V и S1'1 лексикографически упорядочены. Окончательное решение может быть найдено путем сопоставления каждой пары с соответствующей ей вершиной на двоичном дереве, изо- браженном на рис. 6.13. 6.5.6. Эквивалентный алгоритм ветвей и’границ. Экви- валентный алгоритм ветвей и границ для задачи FLDS может быть описан с помощью девятки параметров BBFLDS=(Bb, FIFO, {AS/DB, DB/AS}, Fflds. Dflds. Lflds, оо, 0, оо). Параметры определяются следующим образом. 1. Вь представляет собой правило ветвления для задачи двоичного разбиения. Пусть пга обозначает вершину типа аха2. . .аг, где аг=1 или i. Тогда {л^о} представляет листья полного поддерева, имеющего л^ в качестве корня. Это поддерево соответствует множеству полных решений, имею- щих в качестве общего предка частичное решение л£. Пра- вило ветвления Въ осуществляет разбиение множества {л „о} на два непересекающихся подмножества {(л'о (r+1)) о} и {(л'о (г+1)) °}. Это правило ветвления приводит к очевид- ной модификации общего алгоритма ветвей и границ для решения задач о перестановках, которая представлена на рис. 6.7. Каждая вершина л' имеет теперь двух потомков (л'о(г~1)) и (л'о(г+Т)). 2. S=FIFO. Правило выбора FIFO приводит к тому, что двоичное дерево просматривается в ширину. 3. £={AS/DB, DB/AS). Данный набор правил исключе- ния, используемых совместно с отношением доминирования 313
£>flds> обеспечивает исключение всех вершин, для которых существуют доминирующие вершины. 4. Характеристическая функция FFLDs служит для ис- ключения недопустимых частичных решений. В частности, для данной вершины л^ = а1а2.. ,аг [ 1, если для каждого i при а4- = 1 задание I Т1 завершается в соответствии с дирек- ^FLOS(Ла)= 1 ТИВНЫМ СрОКОМ df, { 0 в противном случае. 5. Пусть заданы две вершины п'а = ata2... а,- и Лр = • -Р*. которым соответствуют пары (1а, та), (/3, tg). Правило доминирования Dflds определяется таким образом, что яр) С £>flds в том и только в том случае, когда j — k, la^lp и таг^тр. Это эквивалентно условию, кото- рое было использовано в методе динамического програм- мирования для исключения пар. 6. Нижняя оценка стоимости £рьоз(ла)> приписываемая каждой вершине ла, определяется как стоимость частич- ного решения ла = aja2. . .аг, т. е. LFLDS(na)A £ 1; = 1а. ai=‘ 7. t/ = oo, поскольку предполагается, что нет ни одного заранее известного решения. 8. BR = Q, поскольку требуется оптимальное решение. 9. RB = oo. Для того чтобы провести сравнение с методом динамического программирования, предполагается, что ресурсы по времени счета и по объему памяти не ограничены. Этапы выполнения алгоритма BBPPDs представлены в табл. 6.4. То обстоятельство, что в качестве примера также взято дерево, изображенное на рис. 6.13, позволяет срав- нить эти этапы с этапами метода динамического програм- мирования, представленными в табл. 6.3. Это сравнение показывает, что генерируются и исключаются одни и те же вершины, кроме последнего шага, на котором выпол- нение BBFlds завершается нахождением решения 1234 и проверкой его оптимальности. Единственное существенное различие состоит в том, что алгоритм динамического программирования генерирует все необходимые вершины на каждом уровне дерева до объединения и исключения, в то время как в алгоритме ветвей и границ каждая но- вая вершина проверяется сразу после ее генерирования. Поскольку для осуществления одного шага в алгоритме 314
Таблица 6.4 Шаги алгоритма BBflds "ь AS DB (,Ъ) ES (ль) L (ль) & (ль) е (е) _ (Г В 0 0 00 1 (1. 1) (12) __ 0 0 00 1 (1. 12) (12, 12) (12) 2 00 12 (12, 12) .... (123, 123) 0 2 00 12 (12, 123, 123) (123, 123) (123) 2 00 123 (123, 123, 123) (1234) 0 2 00 123 (123, 123, 1234) (1234, 1234) 0 3 4 123 и (12?, 1234, 1234, 1234) ^-^ = 0=>л=з> 1234 и —оптимальное р гшение. 3 3 динамического программирования требуется меньшее общее число сравнений для проверки доминирования, то он является более эффективным. Общий алгоритм ветвей и границ также может быть модифицирован и доведен до этого же уровня эффективности. 6.5.7. Комментарии. Связь между методом ветвей и границ и динамическим программированием была продемон- стрирована на примере модельной задачи. В общем случае для заданной задачи составления расписания и заданного алгоритма динамического программирования, предназна- ченного для ее решения, может быть также найден эквива- лентный алгоритм ветвей и границ. Эта связь не должна вызывать удивление. В обоих случаях соответствующее про- странство решений может быть представлено в виде конеч- ного ориентированного дерева частичных решений, и задача заключается в локализации и извлечении оптимального решения, при этом полный перебор осуществляется лишь в небольшой части полного дерева. Применение метода ветвей и границ и динамического программирования к другим задачам составления расписаний рассмотрено в работах Горовица и Сахни [73], Коглера [89], Ринноу Кана и др. [121] и Сахни [127]. 6.6. Заключительные замечания Мы рассмотрели с определенной степенью детализации вычислительные методы^практического решения задач со- ставления расписаний, не поддающихся решению анали'ти- 315
ческими методами. Эти задачи составления расписаний по- падают в категорию «больших» комбинаторных оптимизаци- онных задач, многие из которых являются УР-полными и считаются традиционно трудноразрешимыми. Главное вни- мание в этой главе было уделено получению при заданном количестве вычислительных ресурсов наиболее полезной информации, необходимой для осуществления упорядоче- ния заданий либо в виде оптимального расписания (когда это возможно), либо в виде расписания с обеспечением заданной точности относительно оптимального. В этой главе обобщены работы многих исследователей, и некоторые из работ представлены в списке цитированной литературы. Развитие этих исследований представляется идущим в направлении «численного анализа» для комбина- торных задач — некоторой теории и методологии, которые позволят нам работать с переборными задачами и получать результаты, имеющие предсказуемое качество в зависимости от затраченного объема работы. Продолжая аналогию с задачами, в которых участвуют непрерывные величины, нельзя рассчитывать получить с помощью численных мето- дов «точное» решение нелинейной оптимизационной задачи или даже задачи линейного программирования. Одна- ко можно надеяться получить решения, обладающие достаточной точностью, с помощью математического ап- парата, оперирующего числами конечной длины. С другой стороны, правомерна ли вообще постановка вопроса о по- лучении «оптимального» решения большой А/Р-полной за- дачи? Недавно был опубликован ряд результатов, относящихся к только что затронутым проблемам [127, 133, 56]. В част- ности, в [127] на основании того факта, что в задаче'состав- ления расписания с директивными сроками и фиксирован- ными значениями потерь, которая была рассмотрена в § 6.0, время счета ограничено 0(пМ), делается вывод о том, что для этой задачи (и ряда сходных задач) решения со степенью точности BR=e, могут быть получены за время 0(п2/е). С другой] стороны, в [133] показано, что существуют при- ближенные постановки AfP-полных (задач (более точно, P-полных, если следовать обозначениям, принятым в [133]), которые также являются А/Р-полными, а в [56] показано, что приближенная постановка задачи раскраски графа является в’некотором смысле такой же трудной, как и сама задача раскраски графа. Таким образом, Сахни и Гонзалес [1331 указывают,5что некоторые «трудные» комбинаторные задачи являются «более трудными», чем другие. 316
С нашей точки зрения, имеется несколько областей для дальнейшего исследования. Прежде всего, представляется заслуживающим рассмотрения вопрос о сложности «при- ближенных» комбинаторных задач, т. е. задач, в которых требуется получение скорее хороших решений, чем опти- мальных. К этой области относится общий вопрос о чув- ствительности решения таких задач к параметрам. Кажет- ся, что разработка алгоритмов решения такого рода задач уже началась. Много усилий требует создание автомати- ческих методов построения нижних оценок, нахождение хороших окрестностей для метода поиска в локальной ок- рестности и совершенствование метода ветвей и границ в целом.
ЛИТЕРАТУРА i 1. Agin N. Optimum Seeking with Branch and Bound.— Manage- ment Science, 1966, 13, № 4, p. 176—185. 2. A h о A. V., Garey M. R., U 1 1 m a n J. D. The Transitive Re- duction of a Directed Graph.— SIAM Journal on Computing, 1972, № 1, p. 131—137. 3. Aho A. V., H о p с г о f t J. E., U 1 1 m a n J. D. The Design and Analysis of Computer Algorithms.— Reading, Mass.: Addison- Wesley, 1974. [P у с с к. п e p e в.: Ахо А., Хопкрофт Дж., Уль- ман Дж., Построение и анализ вычислительных алгоритмов.— М-: Мир, 1979.] 4. A s h о u г S. Ап Experimental Investigation and Comparative Evaluation of Flow-Shop Scheduling Techniques.— Operations Research, 1970, 18, № 3, p. 541—549. 5. Baer J. L. A Survey of Some Theoretical Aspects of Multiprocess- ing.— Computing .Surveys, 1973, 5, № 1, pp. 31—80. 6. Baer J. L. Optimal Scheduling on Two Processors of Different Speeds. Computer Architectures and Networks/E. Gelenbe and R. Mahl (Eds.).— North Holland, 1974, p. 27—45. 7. В a 1 a s E. A Note on the Branch-and-Bound Principle.— Opera- tions Research, 1968, 16, №2, p. 442—444; Erratum, 1968, 16, № 4, p. 886. 8. В a 1 a s E. Machine Sequencing via Disjunctive Graphs: An Im- plicit Enumeration Algorithm.— Operations Research, 1969, 17, № 6, p. 941—957. 9. BakerK. Introduction to Sequencing and Scheduling.— N. Y.: John Wiley, 1974. 10. В r u n о J., С о f f m a n E. G., Jr., Johnson D. B. On Batch Scheduling of Jobs with Stochastic Service Times and Cost Structures on a Single Server. Technical Report № 154, Computer Science Department, Pennsylvania State University, August 1974.— Journal of Computer and System Sciences, 1976, 12, № 3, p. 319— 335. 11. Bruno J., Coffman E. G., Jr., Sethi R. Scheduling In- dependent Tasks to Reduce Mean Finishing Time.— Communications of the ACM, 1974, 17, № 7, p. 382—387. 12. В r u и о J., Coffman E. G., Jr., Sethi R. Algorithms for Minimizing Mean Flow Time. Proceedings.— IFIPS Congress, North Holland, August 1974, p. 504—510. 13. В r u n о J., H о f r i M. On Scheduling Chains of Jobs on One Processor with Limited Preemptions. Technical Report № 153, Computer Science Department, Pennsylvania State University, March 1974,— SIAM Journal on Computing, 1975, 4, № 4, p. 478— 490. 318
14. Brucker P., Lenstr a J. K-, R i n nooy К a n A. H. G. \ Complexity of Machine Scheduling Problems. Technical Report BW 43/75.— Mathematisch Centrum, Amsterdam, 1975 *). 15. Bowden E. K- Priority Assignment in a Network of Computers.— I IEEE Transactions on Computers, 1969, C-18, № 11, p. 1021—1026. 16. В г ц с к e r P. On Hu’s «Cutting the Longest Queue» Algorithm. Technical Report № 14, Series B.— University of Regensburg, West Germany, July 1973. 17. Brinch-Hansen P. Operating Systems Principles.— N. J.: Prentice-Hall, Englewood Cliffs, 1973. 18. В r u n о J., Sethi R. On the Complexity of Mean Flow-Time Scheduling. Technical Report.— Computer Science Department, Pennsylvania State University, 1975. 19. В r u n о J., S t e i g 1 i t z K. The Expression of Algorithms by Charts.— Journal of the ACM, 1972, 19, № 3, p. 517—525. 20. C h v a t a 1 V. (personal communication). 21. Cody R., Coffman E. G., Jr. Record Allocation for Mini- mizing Expected Retrieval Costs on Drum-Like Storage Devices.— Proceedings, 8th Annual Princeton Conference on Information Sciences and Systems, March 1973. 22. С о f f m a n E. G., Jr., Denning P. J. Operating Systems Theory.— N. J.: Prentice-Hall, Englewood Cliffs, 1973. 23. Christofides N., E i 1 0 n S. Algorithms for Large-Scale Travelling Salesman Problems.— Operational Research Quarterly, 1972 , 23, № 4, p. 511—518. 24. С о f f m a n E. G., Jr., Graham R. L. Optimal Scheduling for Two Processor Systems.— Acta Informatics, 1972, 1, № 3, p. 200—213. 25. C h a r 1 t о n J. M-, Death С. C. A Method of Solution for Ge- neral Machine-Scheduling Problems.— Operations Research, 1970, 18, № 4, p. 689—707. 26. С 0 f f m a n E. G., Jr., Labetoulle L. Deterministic Sche- duling to Minimize Mean Number in System. Technical Report, Institut de Recherche d’Informatique et d’Automatique, Rocquen- court, France, 1975. 27. C h e n N. F., L i u C. L. Technical Report, Computer Science Dept. University of Illinois, 1975. 28. С 0 n w a у R. W., Maxwell W. L., M i 1 1 e r L. W. Theory of Scheduling.— Reading, Mass.: Addison-Wesley, 1967. [P у cc k. перев.: Конвей P. В., Максвелл В. Л., Миллер Л. В. Теория расписаний.— М.: Наука, 1975.] 29. С о f f m a n Е. G., Jr. A Survey of Mathematical Results in Flow- Time Scheduling for Computer Systems. Proceedings, GI 73.— Ham- burg: Springer-Verlag, 1973, p. 25—46. (Leet. Notes Comput. Sci., 1973, № 1, p. 25—46.) 30. С о о k S. A. The Complexity of Theorem Proving Procedures. Proceedings, 3rd ACM Symposium on Theory of Computing.—• 1971, p. 151—158. [P у с с к. п e p e в.: Кук С. А. Сложность процедур вывода теорем.— В кн.: Кибернетический сборник. Новая серия. Вып. 12. Сборник переводов. М.: Мир, 1975, с. 5—15.] 31. С о о k S. A., R е с h к о w R. A. Time-Bounded Random Access Machines.— Journal of Computer and System Sciences, 1973, № 4. *) См. соответствующую работу: Lenstra J. K-, R i n n о о у К a n A. H. G., В r u с к e r P. Complexity of Machine Scheduling Problems.— Ann. Discrete Math., 1977, № 1, p. 343—362. 319
32. С о f f m a n E. G., Jr., Sethi R. Algorithms Minimizing Mead" Flow-Time: Schedule-Length Properties. Technical Report, Compir ter Science Department, Pennsylvania State University, 1973. Acta Informatica, 1976, 6, № 1, p. 1—14. 33. Ch an d г a A. K-, W ong С. K- Worst-Case Analysis of a Pla- cement Algorithm Related to Storage Allocation.— SIAM Jo- urnal on Computing, 1975, 4, № 3, p. 249—263. 34. D a n n e n b r i n g D. G. An Evaluation of Flow-Shop Heuristics. Technical Report.— University of North Carolina, 1974. 35. Dunham B., F r i d s h a 1 D., F r i d s h a 1 R., N о r t'h J. H. Design by Natural Selection.— IBM Research Report №^RC-476, June 1961. 36. D e n n i n g P. J., G r a h a m G. S. A Note on Subexpression Or- dering in the Execution of Arithmetic Expressions.— Communica- tions of the ACM, 1973, 16, № 11, p. 700—702; Erratum, 1974, 17, № 8, p. 455. 37. D a у J. E., H о t t e n s t e i n M. P. Review of Sequencing Re- search.— Naval Research and Logistics Quarterly, 1970, 17, № 1, p. 11—40. 38. Edmonds J. Paths, Trees, and Flowers.— Canadian Journal of Mathematics, 1965, 17, № 3, p. 449—467. 39. E a s t m a n W. L., E ven S., I s a a c s I. M. Bounds for the Optimal Scheduling of n Jobs on tn Processors.— Management Science, 1964, 11, № 2, p. 268—279. 40. E dmonds J., Kar pR. Theoretical Improvements in Algorith- mic Efficiency for Network Flow Problems.— Journal of the ACM, 1972, 19, № 2, p. 248—264. 41. E 1 m a g h r a b у S. E. The Machine Sequencing Problem — Re- view and Extensions.— Naval Research and Logistics Quarterly, 1968, 15, № 2, p. 205—232. 42. F о r d L. R., Fulkerson D. R. Flows in Networks.— N. J.: Princeton University Press, Princeton, 1962. [P у с с к. n e p e b.: Форд Л. P., Фалкерсон Д. P. Потоки в сетях.— M.: Мир, 1966.] 43. F u j i i M., К a s a m i T., N i n о m i у a K- Optimal Sequencing of Two Equivalent Processors.— SIAM Journal on Applied Mathe- matics, 1969, 17, № 4, p. 784—789; Erratum, 1971, 20, № 1, p. 141. 44. F о x В. L., S chr age L. E. The Value of Various Strategies in Branch-and-Bound (unpublished report), June 1972. 45. G r a h a m R. L. Bounds for Certain Multiprocessing Anomalies.— Bell System Technical Journal, 1966, 45, № 9, p. 1563—1581. 46. Grab am R. L. Bounds on Multiprocessing Timing Anomalies.— SIAM Journal on Applied Mathematics, 1969, 17, № 2, p. 416—429. 47. G r a h a m R. L. Bounds on Multiprocessing Anomalies and Re- lated Packing Algorithms.— Proceedings, AFIPS Conference, 1972, № 40, p. 205—217. 48. Garey M. R. Optimal Task Sequencing with Precedence Constra- ints.— Discrete Mathematics, 1973, № 4, p. 37—56. 49. G а г e у M. R., G r a h a m R- L. Bounds on Scheduling with Limited Resources.— Operating Systems Review, 1973, 7, № 4, p. 104—111. 50. G a г e у M. R., Graham R. L. Bounds for Multiprocessing Scheduling with Resource Constraints.— SIAM Journal on Comput- ing, 1975, 4, № 2, p. 187—200. 51. Garey M. R.,Graham R.L.,Johnson D.S., Y aoA. C. Resource Constrained Scheduling as Generalized Bin-Packing.— Journal of Combinatorial Theory, 1976, 21, № 3. 320
\ 52. G а г е у М. R., G г a h a m R. L., U 1 1 m a n J. D. Worst-Case Analysis of Memory Allocation Algorithms.— Proceedings, 4th Annual ACM Symposium on the Theory of Computing, 1972, p. 143. 53. G i 1 m о r e P. C. Optimal and Suboptimal Algorithms for the Quadratic Assignment Problem.— SIAM Journal on Applied Ma- thematics, 1962, 10, № 2, p. 305—313. 54. G а г e у M. R., J о hn son D. S. Complexity Results for Mul- tiprocessor Scheduling Under Resource Constraints.— Proceedings, 8th Annual Princeton Conference on Information Sciences and Sys- tems, 1974, p. 168—182; SIAM Journal on Computing, 1975, 4, № 4, p. 397—411. 55. G a г e у M. R., J о h n s о n D. S. Deadline Scheduling of Equal Execution Time Tasks on Two Processors. Technical Report.— Mur- ray Hill, N. J.: Bell Laboratories, 1975. 56. G а г e у M. R., J о h n s о n D. S. The Complexity of Near-Op- timal Graph Coloring. Technical Report.— Murray Hill, N. J.: Bell Laboratories, 1975; Journal of the ACM, 1976, № 23, p. 43—49. 57. G a г e у M. R., Johnson D. S., S e t h i R. The Complexity of Flowshop and Jobshop Scheduling. Technical Report № 168, Computer Science Dept.— The Pennsylvania State University, 1975; Math. Oper. Res., 1976, 1, № 2, p. 117—129. 58. G e о f f г i о п A. M., M a r s t e n R. E. Integer Programming Algorithms: A Framework and State of the Art Survey.— Manage- ment Science, 1972, 18, № 9, p. 465—491. 59. G a p p W., M a n к e 1 a r P. S., M i 11 e n L. G. Sequencing Operations to Minimize In-Process Inventory Costs.— Management Science, 1965, № 11, p. 476—484. 6Э. GarfinkelR. S., Nemhauser G. L. A Survey of Integer Programming Emphasizing Computation and Relations among Mo- dels. Mathematical Programming/T. C. Hu and S. M. Robinson (Eds.) — New York: Academic Press, 1973, p. 77—156. 61. Graham G. S. (personal communication). 62. Gratzer F. J. Computer Solution of Large Multicommodity Flow Problems, Ph. D. thesis.— Electrical Engineering Depart- ment, Princeton University, 1970. 63. Gratzer F. J.,SteiglitzK. A Heuristic Approach to Large Multicommodity Flow Problems. Proceedings of the Symposium on Computer-Communications Networks and Teletraffic, Microwave Research Institute Symposia Series, v. XXII.— New York: Brook- lyn Polytechnic Press, 1972, p. 311—324. 64. G u p t a J. N. D. Economic Aspects of Production Scheduling Systems.— Journal Operations Research Society of Japan, 1971, 13, № 4, p. 169—193. 65. Hu T. C. Parallel Sequencing and Assembly Line Problems.— Operations Research, 1961, 9, №6, p. 841—848. [Ру сск. перев.: Ху T. С. Параллельное упорядочивание и проблемы линии сбор- ки.— В кн.: Кибернетический сборник. Новая серия. Вып. 4. Сборник переводов.—М.: Мир, 1967, с. 43—56.] 66. Н а 1 a s z S. (personal communication). 67. Н i 1 1 i е г F. S. A Bound-and-Scan Algorithm for Pure Integer Linear Programming with General Variables.— Operations Rese- arch, 1969, № 17, p. 638—679. 68. Held M., Karp R. A Dynamic Programming Approach to Sequencing Problems.— SIAM Journal on Applied Mathematics, 1962, 10, №1, p. 196—210. [Русск. перев.: Хелд M., Карп Р. М. Применение динамического программирования.— 321
В кн.: Кибернетический сборник. Вып. 9. Сборник переводов. М.: Мир, 1964, с. 202-218. 69. Н е I d М., К а г р R. The Traveling-Salesman Problem and Mini- mum Spanning Trees. Part II.— Mathematical Programming, 1971, 1, № 1, p. 6- 25. 70. Hanan M., Kurtzberg J.M. Placement Techniques. Ch. 5. Design Automation of Digital Systems/M. A. Breuer (Ed.) — Eng- lewood Cliffs, N. J.: Prentice-Hall, 1972. 71. Horn W. A. Single-Machine Job Sequencing with Treelike Prece- dence Ordering and Linear Delay Penalties.— SIAM Journal on Applied Mathematics, 1972, 23, № 2, p. 189—202. 72. H om W. A. Minimizing Average Flow Time with Parallel Machi- nes.—Operations Research, 1973, 21, № 3, p. 846—847. 73. Horowitz E., Sahni S. Exact and Approximate Algorithms for Scheduling Non-Identical Processors.— Technical Report, Com- puter Science Program, University of Southern California, 1974; Journal of the ACM, 1976, 23, A'» 2, p. 317—327. 74. H orv a t h E. C., Set h i R. Preemptive Schedules for Indepen- dent Tasks. Technical Report № 162.— Computer Science Depart- ment, The Pennsylvania State University, 1975. 75. HopcroftJ. E., Ullman J. D. Set Merging Algorithms.— SIAM Journal on Computing, 1973, 2, № 4, p. 294—303. 76. IgnallE.,Schrage L. Application of the Branch and Bound Technique to Some Flow-Shop Scheduling Problems.— Operations Research, 1965, 13, № 3, p. 400—412. 77. J о h n s о n D. S. Near-Optimal Bin-Packing Algorithms, Ph. D. thesis.— Electrical Engineering Department, Massachusetts In- stitute of Technology, 1974. 78. J о h n s о n D. S. Fast Algorithms for Bin Packing.— Journal of Computer and System Sciences, 1974 , 8, № 3, p. 272—314. 79. J ohn son D. S. Fast Allocation Algorithms.— Proceedings, 13th Annual IEEE Symposium on Switching and Automata Theory, 1972, p. 144—154. 80. J a c k s о n J. R. An Extension of Johnson’s Results on Job-Lot Scheduling.— Naval Research and Logistics Quarterly 1956, 3, № 3, p. 201—203. 81. J a c k s о n J. R. Scheduling a Production Line to Minimize Ma- ximum Tardiness. Research Report № 43, Management Sciences Research Project.— University of California at Los Angeles, Ja- nuary 1955. 82. J о h n s о n D. S., D e m e r s A., U 1 1 m a n J. D., Garey M. R., G r a h a m R. L. Worst-Case Performance Bounds for Sim- ple One-Dimensional Packing Algorithms.— SIAM Journal on Com- puting, 1974, № 3, p. 299—326. 83. J о h n s о n S. M. Optimal Two-and-Three-Stage Production Sche- dules.— Naval Research and Logistics Quarterly, 1954, 1, № 1, p. 61—68. [P у с с к. п e p e в.: Джонсон С. Оптимальное распи- сание для двух- и трехступенчатых процессов с учетом времени наладки.— В кн.: Кибернетический сборник. Новая серия. Вып. 1. Сборник переводов. М.: Мир, 1965, с. 78—86; см. также кн.: Календарное планирование.— М.: Прогресс, 1966, с. 33—41.] 84. К a u f m a n М. Т. Anomalies in Scheduling Unit-Time Tasks.— Stanford Electronics Laboratory Technical Report № 34, 1972. 85. К a u f m a n M. T. An Almost-Optimal Algorithm for the As- sembly Line Scheduling Problem.— IEEE Transactions on Com- puters, 1974, TC-74, № 11, p. 1169—1174. 322
86. К a r p R. М. Reducibility Among Combinatorial Problems.— In’ Complexity of Computer Computation/R. E. Miller and J. W. Thatcher (Eds.) New York: Plenum Press, 1972, p. 85—104. [Русек, перев.: Карп P. M. Сводимость комбинаторных проблем.— В кн.: Кибернетический сборник. Новая серия. Вып. 12. Сборник переводов. М.: Мир, 1975, с. 16—38.] 87. К n u t h D. Е. The Art of Computer Programming. V. 1, Funda- mental Algorithms.— Reading, Mass.: Addison-Wesley, 1968. [P у с с к. перев.: Кнут Д. Искусство программирования для ЭВМ. Т. 1. Основные алгоритмы.— М.: Мир, 1976.] 88. К о h 1 е г W. Н. Exact and Approximate Algorithms for Permu- tation Problems, Ph. D. thesis.— Princeton University, Electrical Engineering Department, 1972. 89. Koh 1 er W. H. A Preliminary Evaluation of the Critical Path Method for Scheduling Tasks on Multiprocessor Systems.— Tech nical Report NSF GK 37400-74-2, Department of Electrical and Computer Engineering, University of Massachusetts, 1974. IEEE. Transactions on Computers, 1975, C-24, № 12, p. 1235—1238. 90. К о 1 e s a r P. J. A Branch and Bound Algorithm for the Knap- sack Problem.— Management Science, 1967, 13, Ks 9, p. 723—735. 91. К r a u s e K- L. Analysis of Computer Scheduling with Memory Constraints, Ph. D. thesis.— Purdue University, Computer Science Department, 1973. 92. К г о n e M. J. Heuristic Programming Applied to Scheduling Problems, Ph. D. thesis.— Princeton University; Electrical Engi- neering Department, 1970. 93. Krone M., Steiglitz K- Heuristic Programming Solution of a Flowshop Scheduling Problem.— Operations Research, 1974, 22, № 3, p. 629—638. 94. К о h 1 e r W. H., S t e i g 1 i t z K. Characterization and Theo- retical Comparison of Branch-and-Bound Algorithms for Permu- tation Problems.— Journal of the ACM, 1974 , 21, № 1, p. 140—156. 95. К о h 1 e r W. H., S t e i g 1 i t z K- Evolutionary Learning of Neigh- borhoods for Heuristic Programs and Application to a Sequencing Problem.— Proceedings, 9th Allerton Conference on Circuit and System Theory, October 1971, p. 377—389. 96. К о h 1 e r W. H-, S t e i g 1 i t z K- Exact, Approximate, and Gu- aranteed Accuracy Algorithms for the Flow-Shop Problem nlilFlF.— Journal of the ACM, 1975, 22, № 1, p. 106—114. 97. LabetoulleJ. Some Theorems on Real Time Scheduling.— In: Computer Architecture and Networks/E. Gelenbe and R. Mahl (Eds.).— North Holland, 1974, p. 285—298. 98. Lawler E. L. On Scheduling Problems with Deferral Costs.— Management Science, 1964, 11, № 2, p. 280—288. 99. L a w 1 e r E. L. Optimal Sequencing of a Single Machine Subject to Precedence Constraints.— Management Science, 1973, 19, № 5, p. 544—546. 100. L i n S. Computer Solutions to the Traveling Salesman Problem.— Bell System Technical Journal, 1965, 44, № 10, p. 2245—2269. 101. L i u J. W. S., Liu C. L. Performance Analysis of Heterogeneous Multiprocessor Computing Systems. In: Computer Architecture and Networks/E. Gelenbe and R. Mahl (Eds.).— North Holland, 1974, p. 331—343. 102. L.i u J. W. S., L i u C. L. Bounds on Scheduling Algorithms for Heterogeneous Computer Systems. Proceedings, IFIPS 74 Congress.—' North Holland, August 1974, p. 349—353. ЗЙ
г 103. Liu С. L., L а у 1 a n d J. W. Scheduling Algorithms for Multi- programming in a Hard Real-Time Environment.— Journal of the ACM, 1973, 20, № 1, p. 46—61. 104. Lin S., К e r n i g h a n B. W. An Effective Heuristic for the Tra- veling-Salesman Problem.— Operations Research, 1973, 21, № 2, p. 498—516. 105. Lawler E. L., Moore J.M. A Functional Equation and its Application to Resource Allocation and Sequencing Problems.— Management Science, 1969, 16, № 1, p. 77—84. 106. Lam S., S e t h i R. Worst-case Analysis of Two Scheduling Al- gorithms. Technical Report, Computer Science Department, Pennsyl- vania State University, 1975.— SIAM Journal of Computing, 1977, 6, № 3, p. 518—536. 107. Lawler E. L., W о о d D. E. Branch-and-Bound Methods; A Survey.— Operations Research, 1966, 14, № 4, p. 699—719. 108. Misra J. Constructive Proofs of Two Scheduling Algorithms: Technical Report.— Gaithersburg: IBM, April 1974. 109. McNaughton R. Scheduling with Deadlines and Loss Func- tions.— Management Science, 1959, 6, № 1, p. 1—12. ПО. M u n t z R. R., С о f f m a n E. G., Jr. Preemptive Scheduling of Real Time Tasks on Multiprocessor Systems.— Journal of the ACM, 1970', 17, № 2, p. 324—338. 111. Muntz R. R., Coffman E. G., Jr. Optimal Preemptive Scheduling on Two-Processor Systems.— IEEE Transactions on Computers, 1969, C-18, № 11, p. 1014—1020. 112. Mellor P. A Review of Job Shop Scheduling.— Operational Research Quarterly, 1966, 17, № 2, p. 161—171. 113. Mitten L. G. Branch-and-Bound Methods: General Formula- tion and Properties.— Operations Research, 1970, 18, № 1, p. 24— 34. 114. M о о r e J. M. An n Job, One Machine Sequencing Algorithm for Minimizing the Number of Late Jobs.— Management Science, 1968, 15, № 1, p. 102—109. 115. M u n к r e s J. Algorithms for the Assignment and Transportation Problems.— SIAM Journal on Applied Mathematics, 1957, № 5, p. 32—38. 116. M u г а о к a Y. Parallelism, Exposure and Exploitation in Prog- rams, Ph. D. thesis.— University of Illinois, Computer Science Department, 1971. 117. N о 11 e m e i e г H. E in Branch-and-Bound-Verfahren-Genera- tor.—Computing, 1971, № 8, p. 99—106. 118. Pierce J. F., С г о w s t о n W. B. Three-Search Algorithms for Quadratic Assignment Problems.— Naval Research and Logis- tics Quarterly, 1971, 18, № 1, p. 1—36. 119. Rothkopf M. H. Scheduling Independent Tasks on Parallel Processors.— Management Science, 1966, 12, № 5, p. 437—447. 120. R i n n о о у К a n A. H. G. On Mitten’s Axioms for Branch-and- Bound.— In: Working Paper W/74/45/03, Graduate School of Ma- nagement. Interfaculteit Bedr’jfskunde, Delft, The Netherlands, April 1974. 121. RinnooyKan A. H. G., Lageweg B. J., Lenstra J. K- Minimizing Total Costs in One-Machine Scheduling. Technical [Report № BW33/74, Mathematisch Centrum, Amsterdam, 1974.— [Operations Research, 1975, 23, № 5, p. 908—927. 122. R о t h R. H. An Approach to Solving Linear Discrete Optimiza- tion Problems.— Journal of the ACM, 1970, 17, № 2, p. 303—313. 324
123. Roy В. Procedure d’Exploration par Separation et Evaluation.— Revue Francaise d’Informatique et de Recherche Operationelle, 1969, № 6, p. 61—90. 124. Reiter S., Sherman G. Discrete Optimizing.— SIAM Journal on Applied Mathematics, 1965, 13, № 3, p. 864—889. 125. S a 1 к i n H. M. On the Merit of the Generalized Origin and Re- starts in Implicit Enumeration.— Operations Research, 1970, № 18, p. 549—554. 126. Savage S. L. The Solution of Discrete Linear Optimization Pro- blems by Neighborhood Search Techniques, Ph. D. thesis.— Yale University, Computer Science Department, March 1973. 127. S a h n i S. Algorithms for Scheduling Independent Tasks. Depart- ment of Computer Science, University of Minnesota, 1974.— Jour- nal of the ДСМ, 1976, 23, № 1, p. 116—127. 128. Schrage L. Solving Resource-Constrained Network Problems by Implicit Enumeration-Nonpreemptive Case.— Operations Re- search, 1970, 18, № 2, p. 263—278. 129. Schrage L. Solving Resource-Constrained Network Problems by Implicit Enumeration-Preemptive Case.— Operations Research, 1972, 20, № 3, p. 668—677. 130. Sethi R. Scheduling Graphs on Two Processors.— SIAM Jour- nal on Computing, 1976, 5, № 1, p. 73—82. 131. Sethi R. Complexity of Flow-Shop Scheduling. Technical Re- port № 161.— Pennsylvania State University, Computer Science Department, December 1974. 132. S e v c i к К- C. Scheduling for Minimum Total Cost Using Service Time Distributions.— Journal of the ACM, 1974, 21, № 1, p. 66—75. 133. Sahni S.,Gonzalez T. Р-Complete Problems and Approxi- mate Solutions. Technical Report 74-5, Computer.— University of Minnesota; Information, and Control Sciences Department, March 1974. 134. Sidney J. B. One Machine Sequencing with Precedence Rela- tions and Deferral Costs. Part I. Working Paper № 124; Part II. Working Paper № 125.— University of British Columbia, Faculty of Commerce and Business Administration, 1972. 135. Sidney J. B. An Extension of Moore’s Due-Date Algorithm. Symposium on the Theory of Scheduling and Its Applications/ S. M. Elmagrabhy (Ed.) — Springer-Verlag, 1973, p. 393—398. (Leet. Notes in Economics and Math. Syst., 1973, № 86, p. 393— 398.) 136. Smith W. E. Various Optimizers for Single-Stage Production.— jNaval Research and Logistics Quarterly, 1956, 3, № 1, p. 59—66. 137. Schindler S., S imonsm ei er W. The Class of All Op- timal Schedules for Two Processor Systems.— Proceedings, 7th Annual Princeton Conference on Information Sciences and Systems, 1973. 138. Steiglitz K-, Weiner P. Some Improved Algorithms for ^Computer Solution to the Traveling Salesman Problem.— Proce- 1 edings, 6th Allerton Conference on Circuit and System Theory, October 1968, p. 814—821. 139. Steiglitz K-, Weiner P„ KI e i tm an D. J. The Design of Minimum Cost Survivable Networks.—1ЁЕЕ Transactions on Circuit Theory, 1969, CT-16, № 4, p. 455—460. 140. Savage S. L., Weiner P., Krone M. J. Convergent Local Search. Research Report № 14— Yale University, Computer Science Department, March 1973. 325
141. S z w a r c W, Optimal Elimination Methods in the mn Flow-Shop Scheduling Problem.— Operations Research, 1973, 21, №6, p. 1250— 1259. 142. Tar j an R. E. Efficiency of a Good but not Linear Set Union Algorithm.— Memorandum ERL-M434.— University of California, Department of Electrical Engineering and Computer Science, March 1974. 143. Ullman J. D. Polynomial Complete Scheduling Problems.— Operating Systems Review, 1973, 7, № 4, p. 96—101. 144. U 1 1 m a n J. D. The Performance of a Memory Allocation Algo- rithm. Technical Report № 100.— Princeton University, Electrical Engineering Department, 1971. 145. Weiner P. S., S a v a g e S. L., В agch i A. Neighborhood Search Algorithms for Finding Optimal Traveling Salesman Tours Must Be Inefficient. Research Report № 13.— Yale University, Com- puter Science Department, March 1973. 146. Y а о A. C. Scheduling Unit-Time Tasks with Limited Resources. Proceedings Sagamore Computer Conference, 1974.— Leet. Notes Comput. Sci., 1975, № 24, p. 17—36. 147. Y а о A. C. On Scheduling with Limited Resources. Computer Scien- ce Dept.— University of Illinois. Литература, -добавленная при переводе*) 148. Авен О. И., Г у р и и Н. Н., К о г а н Я А. Оценка качества и оптимизация вычислительных систем.— М.: Наука, 1982. 149. А и д о н Ф. И., К у к с а А. И., Поляченко Б. Е Об оп- тимальном планировании процесса обработки на ЭВМ взаимосвя- занных задач.— Кибернетика, 1980, №3, с. 51—53. 150. БакенротВ. Ю-. М а к а р(е в и ч О. Б., Чефранов А. Г. Об эффективности алгоритмов оперативной диспетчеризации сложных задач в пакетном режиме работы однородных вычислитель- ных систем.— Управляющие системы и машины, 1981, №5, с. 72—75. 151. Б а р а н о в С. И., Г р е б н е в А. Д., Щ е р с А. Л. Методы управления потоком работ в вычислительных системах коллектив- ного пользования (обзор).— М.: ВНИИ ПОУ ГКНТ СССР, 1980.— (Деп. в ВИНИТИ, №4507-81, 17 сентября 1981 г.). 152. Б а р с к и й А. Б. Планирование параллельных вычислитель- ных процессов.— М.: Машиностроение, 1980. 153. Бондаренко В. Ф., Кирпичников В. М., Ш к л я р В. Б. Методы оптимального планирования и диспетчирования вычислительных систем. Обзорная информация.— Минск: БелНИИНТИ, 1976. 154. Б р о н ш т е й н И. И., Трахтенгерц Э. А., Шу- ра й ц Ю. М. Минимизация времени выполнения набора программ с различной длительностью обработки на многопроцессорной ЦВМ.— Автоматика и телемеханика, 1976, № 1, с. 179—186. 155. Буланже Д. Ю., Сушков Б. Г. Алгоритмы управления вычислительными системами жесткого реального времени.— Изв. АН СССР, Техническая кибернетика, 1982, №6, с. 160—169. 156. ВайрадянА. С., Коро в'и и А. В., У д а л о в В. Н. Эффективное функционирование мультипроцессорных систем.— М.: Радио и связь, 1983 (в печати). *) Содержит работы, опубликованные с 1976 г., т. е. после написа- ния данной книги, 326
157. В и з и н г В. Г. Минимизация максимального запаздывания в системах обслуживания с прерываниями.— Журнал вычислит, матем. и матем. физики, 1982, 22, № 3, с. 717—722. 158. Г а в р и л о в А. В., Ж и р а т к о в В. И. Алгоритмы опера- тивного планирования работы РВС в режиме интерактивных вы- числений.— Программирование, 1978, № 5, с. 62—68. 159. Г е н с Г. В., Л е в н е р Е. В. Приближенные алгоритмы для некоторых универсальных задач теории расписаний.— Изв. АН СССР, Техническая кибернетика, 1978, № 6, с. 38—43. 160. Головкин Б. А. Методы и средства параллельной обработки информации.— В кн.: Итоги науки и техники. Сер. Теория вероят- ностей. Математическая статистика. Теоретическая кибернетика. Том 17.—М.: ВИНИТИ, 1979, с. 85—193. 161. Головкин Б. А. Расчет характеристик и планирование па- раллельных вычислительных процессов—.М.: Радио и связь, 1983. 162. Гол ьдгабер Е. М. Задача минимизации времени исполне- ния проекта работ, заданного деревом.— Кибернетика, 1977, № 2, с. 102—107. 163. Гордон В. С., Шафранский Я- М. К вопросу миними- зации функций на множестве перестановок частично упорядочен- ных элементов.— Изв. АН БССР. Сер. физ.- матем. наук, 1979, №2, с. 122—124. 164. Гордон В. С., Танаев В. С. О минимаксных задачах теории расписаний с одним прибором.— Изв. АН БССР. Сер. физ,- матем. наук, 1982, № 3. 165. Г э р и М., Д ж о н с о и Д. Вычислительные машины и трудно- решаемые задачи.— М.: Мир, 1982. 166. ЕвреиновЭ. В., Хорошевский В. Г. Однородные вычислительные системы.— Новосибирск: Наука, 1978. 167. Емеличев В. А., С у пр у пен ко Д. А., Тана- е в В. С. О работах белорусских математиков в области дискрет- ной оптимизации.— Изв. АН СССР, Техническая кибернетика, 1982, № 6, с. 25—45. 168. Каляев А. В., БакенротВ. ГО., Макаревич О. Б. Об алгоритмах функционирования ОВС в режиме пакетной обра- ботки сложных задач.— Кибернетика, 1982, №3, с. 68—71. 169. КанцедалС. А. Вычислительные алгоритмы решения задач теории расписаний.— Изв. АН СССР, Техническая кибернетика, 1982, №3, с. 42—51. 170. К л е й и р о к Л. Вычислительные системы с очередями.— М.: Мир, 1979. 171. К о р б у т А. А., Ф и и к е л ь ш т е й н Ю. Ю. Приближен- ные методы дискретного программирования.— Изв. АН СССР, Техническая кибернетика, 1983, № 1, с. 165—176. 172. К у к с а А. И. К использованию теории двойственности для решения сетевых задач теории расписаний.— Журнал вычислит, матем. и матем. физики, 1982, 22, № 5, с. 1074—1079. 173. Левин Г. М., Т а н а е в В. С. Декомпозиционные методы оптимизации проектных решений.— Минск: Наука и техника, 1978. 174. Левин М. Ш. Детерминированные задачи планирования при идентичных процессорах и одновременном поступлении заявок.— Изв. АН СССР. Техническая кибернетика, 1982, №4, с. 51—57. 175. Л и и а е в В. В. Распределение ресурсов в вычислительных си- стемах.— М.: Статистика, 1979. 327
176. Л и п а е в В. В., С о б к и н С. С. Эффективность детермини- рованного планирования вычислительного процесса.— Изв. АН СССР, Техническая кибернетика, 1960, № 1, с. 128—133. 177. МаксименковА. В. Формирование расписания с учетом ограничения на интенсивность потребления ресурса.— Киберне- тика, 1979, № 6, с. 91—95. 178. Михалевич В. С., Сергиенко И. В. и др. Пакет при- кладных программ ДИСПРО, предназначенный для решения задач дискретного программирования.—Кибернетика, 1981, №3, с. 117-137. 179. Михалевич В. С., Кукса А. И. Методы последователь- ной оптимизации в дискретных сетевых задачах оптимального рас- пределения^ ресурсов.— М-: Наука, 1983. 180. О н д а ш Й. Алгоритмы распределения ресурсов неоднородной многопроцессорной системы..— В кн.: Алгоритмы, математическое обеспечение и архитектура многопроцессорных вычислительных систем. М.: Наука, 1982, с. 320—333. 181. О н д а ш Й. Алгоритмы распределения ресурсов однородной многопроцессорной системы.— Там же, с. 292—319. 182. Панфилов И. В., ПоловкоА. М. Вычислительные си- стемы/Под ред. А. М. Половко.— М.: Советское радио, 1980. 183. Пашкеев С. Д., МинязовР. И. Машинный алгоритм загрузки мультипроцессорной вычислительной системы.— В кн.:' Вычислительные средства в технике и системах связи. Вып. 2. М.: Связь, 1977, с. 87—95. 184. Подчасова Т. П., ПортугалВ. М. и др. Эвристиче- ские методы календарного планирования.— Киев: Техника, 1980. 185. Сергиенко И. В., Каспшиц ка я М. Ф. Модели и ме- тоды решения на ЭВМ комбинаторных задач оптимизации.— Киев: Наукова думка, 1981. 186. С е р и к А. Е. Исследование интервалов очередности для реше- ния задач очередности с ограничениями.— Кибернетика, 1982, №4, с. 61—65, 73. 187. Танаев В. С., Гордон В. С. О построении расписаний с наименьшим взвешенным числом запаздывающих требований.— Изв. АН БССР. Сер. физ.-матем. наук, 1982, № 5. 188. Танаев В. С., Гордон В. С., Шафранский Я- М. Теория расписаний. Одностадийные системы.— М.: Наука, 1983 (в печати). 189. ТрахтенгерцЭ. А., Шу р ай ц Ю. М. Минимизация ис- пользования вычислительных ресурсов многопроцессорной систе- мы при групповом обслуживании программ.— Программирование, 1976, № 5, с. 48—51. 190. ШафранскийЯ-М. Об алгоритме отыскания минимума приоритетопорождающих функций на специальных множествах перестановок. I, II.— Изв. АН БССР. Сер. физ.-мат. наук, 1982, № 3, с. 38—42; 1983, № 1, с. 15—20. 191. Шахбазян К. В., Туш кин а Т. А., С о х р а н- с к а я В. С. Статистические испытания различных методов дис- петчеризации для многопроцессорных систем.— Программирова- ние, 1976, № 4, с. 91—100. 192. Шахбазян К- В., Лебединская Н. Б. Эффективные методы оптимизации составления расписаний для одной машины (обзор).— Записки научных семинаров ЛОМЙ АН СССР, 1981, 111, с. 195—217. 193. Шкурба В. В., Белецкий С. А. Численные методы в 328
решении задачи балансирования сборочной линии (обзор).— Кибер- нетика, 1977, № 1, с. 96—108. 194. ШкурбаВ. В., СеливончикВ. М. Расписания, ими- тационное моделирование и оптимизация.— Кибернетика, 1981, № 1, с. 91—96. 195. Ш у р а й ц Ю. М. Оптимальное распределение ресурсов при многократном выполнении комплекса работ.— В кн.: Актуальные вопросы теории и практики управления. М.: Наука, 1977, с. 122— 125. 196. Abdel-Waxab Н. М., Kamed а Т. Scheduling to mini- mize maximum cumulative cost subject to series-parallel constra- ints.— Oper. Res., 1978, 26, Xs 1, p. 141—158. 197. Adorni G., Boccalatte A., Di Manzo M. Evalua- tion of scheduling algorithms in the multiprocessor environment.— Computer Performance, 1981, 2, Xs 2, p. 70—76. 198. Adrabinski A., Wodecki M. An algorithm for solving the machine sequencing problem with parallel machines.— Zast. mat., 1979, 16, Xs 3, p. 513—541. 199. Arora R. K-> R an a S. P., S h a r m a N. K- On the design of process assigner for distributed computing systems.— Austral. Comput. J., 1981, 13, Xs 3, p. 77—82. 200. В ak er K. R., S chr age L. E. Finding an optimal sequence by dynamic programming: An extension to precedence-related tasks.— Oper. Res., 1978, 26, Xs 1, p. 111—120. 201. Baker K. R., Nuttie H. L. W. Sequencing independent jobs with a single resource.— Nav. Res. Log. Quart., 1980, 27, Xs 3, p. 499—510. 202. BlazewiczJ. Deadline scheduling of tasks — a survey.— Fo- und. Contr. Eng. (PRL), 1976 (1977), 1, Xs 4, p. 203—216. 203. В 1 a z e w i c z J., Weglarz J. Scheduling under resource constraints-achievements and prospects.— In: 4th Int. Symp. Mo- dell. and Performance Eval. Comput. Syst., Vienna, 1979, 2, p. 4—22. 204. BruckerP. A linear time algorithm to minimize maximum la- teness for the two-machine, unit-time, job-shop, scheduling pro- blem.— Leet. Notes and Inf. Sci., 1982, 38, p. 566—671. 205. Bruno J., Downey P. Complexity of task sequencing with deadlines, set-up times and changeover costs.—SIAM J. Comput., 1978, 7, Xs 4, p. 494—504. 206. Bruno J., Jones J. W., So K- Deterministic scheduling with pipelined processors.— IEEE Trans. Comput., 1980, C-29, Xs 4, p. 308—316. 207. Casey L. M. Decentralized scheduling.—Austr. Comput. J., 1981, 13, Xs 2, p. 58—63. 208. Cho Y., Sahni S. Preemptive scheduling of independent jobs with release and due times on open flow and job shops.— Oper. Res., 1981, 29, Xs 3. 209. С о f f m a n E. G., G a г e у M. R-, J ohnson D. S. An appli- cation of bin-packing to multiprocessor scheduling.— SIAM J. Com- put., 1978, 7, Xs 1, p. 1—17 (Auerbach Annu. 1979, Best Comput. Pap.— New York, Oxford, 1979, p. 283—301). 210. Coffman E. G., Garey M. R., Johnson D. S., Tar- ja n R. E. Performance bounds for level-oriented two-dimensional packing algorithms.— SIAM J. Comput., 1980, 9, Xs 4, p. 808—826. 211. D a v i s E., J a f f e J. M. Algorithms for scheduling tasks on un- related processors.— J. ACM, 1981, 28, № 4, p. 721—736 (In: MIT 329
Lab. Comput. Sci. Techn. Memo.—Cambridge, 1979, № 137.— 28 p.). 212. De P., Morton T. E. Scheduling to minimize maximum la- teness on unequal parallel processors.— Int. J. Comput. and Oper. Res., 1982, 9, № 3, p. 221—232. 213. Dessouky M. I., Deogun J. S. Sequencing jobs with une- qual ready times to minimize mean flow time.— SIAM J. Comput., 1981, 10, № 1, p. 192—202. 214. Deterministic and Stochastic Scheduling.— In: Proc. NATO Adv. Study and Res. Inst. Theor. Approaches Scheduling Probl., Dur- ham, 1981/M. A. H- Dempster et al. Dordrecht, 1982. 215. Dutton R. D., Brigham R. C. The complexity of a multi- processor task assignment problem without deadlines — Theor. Comput. Sci., 1982, 17, № 2, p. 213—216. 216. E 1 m a g h r a b у S. A., E 1 i m a n A. A. Knapsack-based ap- proaches to the makespan problem on multiple processors.— AIIE Trans. 1980, 12, № 1, p. 87—96. 217. Erschler J., Fon t an G., Merce C., RoubellatF. Applying new dominance concepts to job scheduling optimization.— Eur. J. Oper. Res., 1982, 11, № 1, p. 60—66. 218. Fernandez E. B., Lang T. Scheduling as graph transforma- tion.— IBM J. Res. and Develop., 1976, 20, № 6, p. 551—559. 219. French S. Sequencing and scheduling. An introduction to the mathematics of the job-shop.—Chichester: Horwood, 1982. 220. Garey M. R., Graham R. L., J о h n s о n D. S. Perfor- mance guarantees for scheduling algorithms.— Oper. Res., 1978, 26, № 1, p. 3—21. 221. Garey M. R., Johnson D. S., Simons В. B., Tar- ja n R. E. Scheduling unit-time tasks with arbitrary release times and dead-lines.— SIAM J. Comput., 1981, 10, № 2, p. 256—269. 222. Gonzalez M. J. Deterministic processor scheduling.— Comput- ing Surveys, 1977, 9, № 3, p. 173—204. 223. Gonzales T., Johnson D. B. A new algorithm for preemp- tive scheduling of trees.—-J. ACM, 1980, 27, № 2, p. 287—312- 224. Graham R. L., La wl er E. L., Lenstra J. K-, R i n. n о о у Kan A. H. G- Optimization and approximation in detere ministic sequencing and scheduling: a survey.— Annals of Discrete Math., 1979, 5, p. 287—326. 225. J a f f e J. M. Efficient scheduling of tasks without full use of pro- cessor resources.— Theor. Compt. Sci., 1980, 12, № 1, p. 1—17 (In: MIT Lab. Comput. Sci. Techn. Memo., 1979, № 122.—40 p.). 226. К a f u r a D. G., Shen V. Y. Task scheduling on a multiproces- sor system with independent memories.— SIAM J. Comput., 1977, 6, № 1, p. 167—187. 227. King J. R., Spachis A. S. Scheduling: bibliography and [review.— Int. J. Phys. Distrib. and Mater. Manag., 1980, 10, № 3, p. 100—132. 228. Kise H., Ibaraki T., Mine H- Performance analysis of six approximation algorithms for the one-machine maximum la- teness scheduling problems with ready times.—J. Oper. Res. Soc. Japan, 1979, 22, № 3, p. 205—224. 229. Kleinrock L., Ni Isson A. On optimal scheduling algo- rithms for time-shared systems.— J. ACM, 1981, 28, № 3, p. 477— 486. 230. Kunde M. Nonpreemptive LP-scheduling on homogeneous mul- tiprocessor systems.— SIAM J. Comput., 10, № 1, p. 151—173. 330
231. К u r i s u T. Three-machine scheduling problem with precedence constraints.— J. Oper. Res. Soc. Japan, 1977, 20, № 3, p. 231—242. 232. L a g e w e g B. J., L e n s t r a J. K.,R innooy Kan A. H. G. Minimizing maximum lateness on one machinea computational ex- perience and some applications.— Statistica Neerlandica, 1976, 30, № 1, p. 25—41. 233. Lawler E. L. Preemptive scheduling of precedence-constrained jobs on parallel machines.— In: Deterministic and Stochastic Sche- duling. Proc. NATO Adv. Study and Res. Inst. Theor. Approaches Scheduling Probl., Durham, 1981. Dordrecht, 1982, p. 101 — 123. 2. 34. Lawler E. L, Lenstra J. K-, R i n n о о у Kan A. H. G. Recent developments in deterministic sequencing and scheduling: a survey.— In: Deterministic and Stochastic Scheduling. Proc. NATO Adv. Study and Res. Inst. Theor. Approaches Scheduling ProbL, Durham, 1981.— Dordrecht, 1982, p. 35—73. 235. Lenstra J. K- Sequencing by enumerative methods.— Am- sterdam: Mathematisch Centrum, 1977. 236. Lenstra J. K- R innooy Kan A. H. G. Complexity of vehicle routing and scheduling problems.— Networks, 1981, 11, p. 221—227. 237. Liu C. L., L i u J. W. S., L iestm an A. L. Scheduling with slack time.— Acta Inform., 1982, 17, № 1, p. 31—41. 238. Liu J. W. S., L i u C. L. Performance analysis of multiproces- sor systems containing functionally dedicated processors.— Acta Inform., 1978, 10, № 1, p. 95—104. 239. Lloyd E. L. Critical path scheduling with resource and proces- sor constraints.— J. ACM, 1982, 29, № 3, p. 781—811. 240. Martel C. Preemptive scheduling with release times, dead- lines, and due times.— J. ACM, 1982, 29, № 3, p. 812—829. 241. M опт a C. L. Sequencing with general precedence constraints.— Discrete Appl. Math., 1981, № 3, p. 137—150. 242. N a k a j i m a K-, H a k i m i S. L., Lenstra J. K- Com- plexity results for scheduling tasks in fixed intervals on two types of machines.— SIAM J. Comput., 1982, 11, № 3, p. 512—520. 243. Panwalkar S. S., Iskander W. A survey of scheduling rules.— Oper. Res., 1977, 25, № 1, p. 45—61. 244. Pinedo M. On the computational complexity of stochastic sche- duling problems.— In: Deterministic and Stochastic Scheduling. Proc. NATO Adv. Study and Res. Inst. Theor. Approaches Schedul- ing Probl., Durham, 1981. Dordrecht, 1982, p. 355—365. 245. Ramamoorthy С. V., Fox T. F., L i H. F. Scheduling parallel processable tasks for a uniprocessor.— IEEE Trans. Corn- put., 1976, C-25, № 5, p. 485—495. 246. Rao G. S., S t о n e H. S., H u T. C. Assignment of tasks in a distributed processor system with limited memory.— IEEE Trans. Comput., 1979, C-28, p. 291—299. 247. Rinnooy Kan A. H. G. Machine scheduling problems: Clas- sification, complexity, and computations.— The Hague: Martinus Nijhoff, 1976. 248. R о w i c k i A. On the optimal preemptive scheduling for multi- processor system.— Bull. Acad. Pol. Sci. Ser. sci. math., astron, et phys., 1978, 26, № 7, p. 651—660. 249. S a h n i S., C h о Y. Scheduling independent tasks with due ti- mes on a uniform processor system.— J. ACM, 1980, 27, № 3, p. 550—563. 331
250. Satyanarayanan M. Multiprocessing: an annotated bib- liography.— Computer, 1980, 13, №5, p. 101—116. 251. S c h r a g e L., В а к e r K- R- Dynamic programming solution of sequencing problems with precedence constraints.— Oper. Res., 1978, 26, № 3, p. 444—449. 252 Sethi R. On the complexity of mean flow time scheduling.— Math. Oper. Res., 1977, 2, № 4, p. 320—330. 253. Sidney J. B. Optimal-single-machine scheduling with earlines and tardines penalties.— Oper. Res., 1977, 25, № 1, p. 62—69. 254. Simons B. On scheduling with release times and deadlines.— In: Deterministic and Stochastic Scheduling. Proc. NATO Adv. Study and Res. Inst. Theor. Approaches Scheduling Probl., Dur- ham, 1981.— Dordrecht, 1982, p. 75—88. 255. Steinacker M., Hennings D., Schindler S. Sche- duling two-processor systems.— In: Proc. Int. Conf. Parallel Pro- cessing, 1977. New York: IEEE, 1977, p. 31—37. 256. Stone H. S. Critical load factors in two-processor distributed systems.— IEEE Trans. Software Eng., 1978, SE-4, № 3, p. 254— 258. 257. S z w а г c W. Dominance conditions for the three machine flow- shop problem.— Oper. Res., 1978, 26, p. 203—206. 258. Van Wassenho v e L. N., Baker K-R-A bicriterion approach to time/cost trade-offs in sequencing.— Eur. J. Oper. Res., 1982, 11, № 1, p. 48—52. 259. Weglarz J. Multiprocessor scheduling with memory alloca- tion — a deterministic approach.— IEEE Trans. Comput., 1980, C-29, № 8, p. 703—709. 260. Yang C.-C. Fast algorithms for bounding the performance of multiprocessor systems.— In: Proc. Int. Conf. Parallel Processing, 1976 New York: IEEE, 1976, p. 73—82.
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Активная вершина 255 Алгоритм ветвей и границ 48, 250 ----------без возвратов 297 ---------- — с ограниченными воз- вратами 288 — динамического программиро- вания 307 — поиска в локальной окрест- ности 250, 289, 297 — с гарантированной точностью 249 —• точный 249, 288 — уровневый 32 Аномалии 41, 190 Антилес 75 Булевское выражение 168 Вектор предельных ресурсов 49, 186 Вес 14 Временная диаграмма 17 Временное смещение 20, 22 Время выполнения 14, 30, 63 — ожидания 20, 22 Вторичные показатели эффектив- ности 55 Вход задачи 159 Входящий (выходящий) лес 126 Дерево 15, 212 Динамическое программирование 307 Директивный срок 20, 23 Длина расписания 18, 27 Допуск 49, 261 Допустимый поток 147 Задание 10 Задача о выполнимости булевских выражений 168 Задача о КНФ-выполнимости 172 — коммивояжера 291 — о минимальном потоке 147 — о перестановках 253 — о ранце 39 — о раскраске графа 316 — составления расписаний 159, 174 — о 3-выполнимости 172 — об упаковке в контейнеры 20, 43, 229 Запаздывание 20, 22 Композиция перестановок 122 Конвейерная задача 32 Конечная вершина 15 Конечное множество 125 Конъюнктивная нормальная фор- ма (КНФ) 172 Крайний срок 20 Критический путь 16 Крупность контейнера 236 Легкорешаемая задача 159 Лексикографический порядок 78 Лес 15 Литерал 172 Максимальное время завершения 18 Метод ветвей и границ 47, 249 Многопроцессорная система 146 Модифицированная UET-задача 179 Начальная вершина 15 Начальное множество 120 Независимые задания 202 Непосредственный предшествен- ник (преемник) 15 MP-полная задача 28, 30, 35, 158, 163, 252, 316 333
Обратное расписание 107 Ограничения предшествования 176, 179, 187 Оптимальная последовательность 119 Оптимальный поток 148 Орграф 14 Оптимизационная задача 160 Относительная срочность 51, 53 Отношение доминирования вер- шин 48, 258 — частичного порядка 14, 63 Оценки характеристик 40, 190 Полиномиальное решение 28, 158 — сведение 162 Полная перестановка 253 Последовательные множества 80 Правило ветвления 48, 254 — выбора 48, 255 — исключения 48, 260 — упорядочения 134 Правильная разметка 218 Предшественник 15 Преемник 15 Продолжение перестановки 254 Простая задача с последователь- ными приборами 32 Пространство параметров 253 — решений 253 Разделение процессора 100 110 Размер входа задачи 159, 177 Ранг работы 136 Расписание без прерываний 16, 30, 65 — двухпроцессорное 30, 174, 179, 187 — обратное 107 — однопроцессорное 22 — списочное 16, 73, 87 — с прерываниями 65 Расписание трехпроцессорное 30, 187 — уровневое 70 Система заданий с древовидной структурой 68 • — работ 132 — с последовательными прибо- рами 30 Соизмеримые задания 97 Состояние машины 163 Среднее взвешенное время за- вершения 18, 22 Стоимость 14 -- пребывания в системе 63 Транзитивные ребра 83 Труднорешаемая задача 159 Увеличивающий путь 149 Уровень 15 Уровневая стратегия 69 Функция верхней оценки 48, 260 — нижней оценки 48, 259 Характеристическая функция 48, 258 Цепочка заданий 96 Частичная перестановка 253 Шаг машины 163 Эвристический метод 158, 288 Экстремальный поток 149
Бруно Дж. Л , Грэхем Р. Л., [Коглер В. Г., Коффман Э. Г., мл.9 Сети Р.9 Ульман Дж. Д., Штиглиц К. ТЕОРИЯ РАСПИСАНИЙ И ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ (Серия: «Экономико-математическая библиотека») Редактор А. Д. Вайнштейн Техн, редактор И. Ш. Аксельрод Корректоры Т. С. Плетнева, Н. Д. Дорохова ИБ № 12242 Сдано в набор 23.10.83. Подписано к печати 01.02.84. Формат 84Х1081/»* Бумага тип. № 1. Литературная гарнитура. Высокая печать. Условн. печ. л. 17,64. Условн. кр.-отт. 17,64. Уч.-изд. л. 19,25. Тираж 7900 экз. Заказ № 2334. Цена 1 р. 70 к. Издательство «Наука» Главная редакция физико-математической литературы 1 1 7071, Москва, В-71, Ленинский проспект, 15 Ордена Октябрьской Революции и ордена Трудового Красного Знамени Первая Образцовая типография имени А. А. Жданова Союзполиграфирома при Государственном комитете СССР по делам издательств, полиграфии и книжной торговли. Москва, М-54, Валовая, 28 Отпечатано во 2-й типографии издательства «Наука». 121099, Москва. Г-99, ШубинскиЙ пер., 10. Зак. 3746
ИЗДАТЕЛЬСТВО «НАУКА»] ГЛАВНАЯ РЕДАКЦИЯ ФИЗИКО-МАТЕМАТИЧЕСКОЙ ЛИТЕРАТУРЫ 117071, Москва, В-71, Ленинский проспект, 15 СЕРИЯ: «ЭКОНОМИКО-МАТЕМАТИЧЕСКАЯ! [ БИБЛИОТЕКА»: Г отвеятся к печати: Поспелов Г. С., Ириков В. А., {Курилов А. Е. Процедуры и алгоритмы формирования комплексных программ. Танаев В. С., Гордон В. С,, Шафранский Я. М. Теория расписаний. Одностадийные системы. Маленво Э. Лекции по микроэкономическому анализу: Пер. с франц./ Под ред. К. А. Б а г- риновского. Эльстер К. и др. Введение в нелинейную оп- тимизацию: Пер. с нем./ Под ред. И. И. Е р е- м и н а.