Text
                    Экономико-
математическая
БИБЛИОТЕКА
В.С.ТАНАЕВ
В.С.ГОРДОН
Я.М.ШАФРАНСКИЙ
ТЕОРИЯ
РАСПИСАНИЙ
ОДНОСТАДИЙНЫЕ
СИСТЕМЫ



Экономико¬ математическая БИБЛИОТЕКА В. С. ТАНАЕВ, В. С. ГОРДОН, Я. М. ШАФРАНСКИЙ ТЕОРИЯ РАСПИСАНИЙ. ОДНОСТАДИЙНЫЕ СИСТЕМЫ МОСКВА «НАУКА» ГЛАВНАЯ РЕДАКЦИЯ ФИЗИКО-МАТЕМАТИЧЕСКОЙ ЛЦТЕРАТУРЫ 1984
22.18 Т 18 УДК 519.8 Танеев В. С., Гордон В. С., Ш а ф р а н с к и й Я. М. Теория расписаний. Одностадийные системы.— М.: Наука. Главная редакция физико-математической литературы, 1984.— 384 с. Рассматриваются вопросы, связанные с построением алгоритмов решения задач теории расписаний для обслуживающих систем с одним и несколькими параллельными приборами. Детально исследуются задачи с ограничениями предшествования в обслуживании требований. Значительное внимание уделяется вопросам сложности решения задач теории расписаний. Для специалистов в области прикладной математики и кибернетики, студентов и преподавателей математических специальностей вузов, а также специалистов в области экономики, применяющих в своей работе математические методы. Рецензент доктор технических наук Б. А. Головкин т 1702070000—154 / ас/ 053(02)-84 ©Издательство «Наука»! Главная редакция физико-математической литературы, 1984
ОГЛАВЛЕНИЕ Предисловие 7 Введение Глава 1. Элементы теории графов и вычислительной сложности алгоритмов . • 42 § 1. Множества, порядки, графы 42 § 2. Сбалансированные 2-3-деревья 54 § 3. Полиномиальная сводимость дискретных задач. Сложность алгоритмов . 64 § 4. Библиографическая справка 76 Глава 2. Полиномиально разрешимые задачи 77 § 1. Прерывания . . • 78 § 2. Обслуживание в заданные сроки 88 § 3. Одип прибор. Максимальный штраф 106 § 4. Один прибор. Суммарный штраф 118 § 5. Идентичные приборы. Общее время обслуживания. Одинаковые длительности . 141 § 6. Идентичные приборы. Общее время обслуживания. Прерывания 154 § 7. Идентичные приборы. Директивные сроки. Одинаковые длительности . . 172 § 8. Идентичные приборы. Максимальное временное смещение 185 § 9. Различные приборы. Суммарный и максимальный штраф . . 191 § 10. Библиографическая справка 206 Глава 3. Приоритето-порождающие функционалы. Упорядоченные множества требований 212 § 1. Приоритето-порождающие функционалы . . . . 213 § 2. Условия элиминации 224 § 3. Древовидный порядок 230 § 4. Последовательно-параллельный порядок .... 242 § 5. Общий случай 255 1*
§ 6. Условия сходимости . 26 § 7. 1-приоритето-порождающие функционалы . . . . 281 § 8. Библиографическая справка 285 Глава 4. ^VP-трудные задачи 289 § 1. Сводимость задачи о разбиении 289 § 2. Сводимость задачи о 3-разбиении 298 § 3. Сводимость задачи о вершинном покрытии . . . 324 § 4. Сводимость задачи о клике 333 § 5. Сводимость задачи о линейном размещении графа . 344 § 6. Библиографическая справка 351 Список литературы 356 Предметный указатель 379
ПРЕДИСЛОВИЕ После выхода в свет в 1975 г. в издательстве «Наука» книги В. С. Танаева, В. В. Шкурбы «Введение в теорию расписаний» и перевода на русский язык книги Р. В. Конвея, В. Л. Максвелла, Л. В. Миллера «Теория расписаний» советские читатели получили возможность широкого ознакомления с этой новой областью современной прикладной математики. За прошедшее с тех пор время в теории расписаний получен ряд новых результатов, позволивших существенно расширить область возможных приложений этой теории и более глубоко осмыслить те принципиальные затруднения, которые связаны с построением оптимальных расписаний. В этой книге предпринята попытка в сжатой и вместе с тем доступной для широкого круга читателей форме отразить современное состояние одного из разделов теории расписаний — построения расписаний для детерминированных обслуживающих систем с одним и несколькими параллельными приборами: Одностадийные системы являются не только наиболее изученными в настоящее время, но и позволяют без сколь-нибудь громоздких выкладок продемонстрировать характерные особенности подхода к изучению детерминированных обслуживающих систем и проследить основные направления современного развития теории расписаний. Основные понятия и определения приводятся во введении к книге. Глава 1 носит вспомогательный характер и содержит некоторые необходимые в дальнейшем сведения из комбинаторного анализа, теории графов, теории сложности алгоритмов. В главе 2 рассматривается ряд типичных задач одностадийного обслуживания и описываются эффективные методы их решения. В главе 3 рассматривается класс задач теории расписаний, естественным образом формулируемых в терминах минимизации так называемых приоритето-порождающих функционалов. Глава 4 посвящена установлению TVP-трудности ряда задач построения оптимальных расписаний. 5
Все главы книги, а подчас и отдельные параграфы, относительно независимы. Каждая глава сопровождается библиографической справкой. Во введении приводятся таблицы, содержащие перечень большинства рассматриваемых задач, их краткую характеристику, информацию о методах решения и ссылки на соответствующие разделы книги либо цитированную литературу. Ввиду ограниченности объема книги в ней отсутствует раздел по приближенным метода+м и методам направленного перебора, используемым для решения АР-трудных задач. Для восполнения этого пробела авторы дополнили введение таблицей, содержащей информацию о приближенных методах решения ряда задач теории расписаний, а библиографическую справку к главе 4 — краткой информацией о методах направленного перебора. В книге принята двойная нумерация разделов параграфов, утверждений и формул (первое число означает номер параграфа). Используемые обозначения и терминология в основном те же, что и в упомянутой книге В. С. Танаева и В. В. Шкурбы. При написании книги были учтены замечания и пожелания, высказанные участниками семинара по теории управления в дискретных системах Института технической кибернетики АН БССР. Соответствующие курсы лекций читались авторами в Белорусском государственном университете им. В. И. Ленина, что наложило определенный отпечаток на характер изложения материала. Авторы искренне признательны А. Д. Вайнштейну, Б. А. Головкину, В. П. Черенину за доброжелательную критику и полезные советы. Ряд полезных замечаний по рукописи сделали Д. Ю. Буланже, М. Я. Ковалев, О. И. Мельников, В. И. Сарванов и А. В. Тузиков. Большую помощь в оформлении рукописи оказали И. А. Власова, С. Н. Воронкова и С. И. Крючкова. Авторы считают своим приятным долгом поблагодарить В. С. Михалевича, Н. Н. Моисеева, Г. С. Поспелова и Д. А. Супруненко за постоянную помощь и внимание к работе. В. С. Танаев, В. С. Гордон, Я. М. Шафранский
ВВЕДЕНИЕ В теории расписаний основное внимание уделяется вопросам оптимального распределения и упорядочения конечного множества требований, обслуживаемых детерминированными системами с одним или несколькими приборами, при различных предположениях относительно характера их обслуживания. В качестве «приборов» могут фигурировать станки, железнодорожные пути, учебные помещения, вычислительные машины и т. п., в качестве «требований» — обрабатываемые детали, поезда, группы студентов, программы и т. п. Поскольку природа «цриборов» и «требований» для нас безразлична, пронумеруем их числами 1,2, ..., М и 1, 2, ..., п соответственно и в дальнейшем будем говорить об обслуживании требований множества N = {1, 2, ..., п} системой, состоящей из М приборов: 1,2, ..., М. Обычно каждому требованию i<=N сопоставляется некоторое множество ()(<)^{1, 2, ..., М} приборов, каждый из которых может или должен обслуживать это требование. Если каждое требование i может быть обслужено любым прибором L е то обслуживающая система называется одностадийной (с одним или несколькими параллельными приборами). В многостадийных системах процесс обслуживания требования i включает U стадий. При этом каждому требованию i^N и каждой стадии / его обслуживания со¬ поставляется некоторое множество Q^ ^ (?(i) приборов. Требование i на стадии / может быть обслужено любым из приборов L е но не более чем одним одновременно. В любом случае предполагается, что каждый прибор одновременно может обслуживать не более одного требования. Если li~l^ 2Л Q\ = Qji i = ixnt Qjl f| Qj2=0 f 1^ 7i =7^/2^^ то обслуживающая система является системой поточного 7
типа. В системе с последовательными приборами = = 1 (i = 1, п, / = 1, li). В системе поточного типа с после- довательпыми приборами приборы, как правило, нумеруются таким образом, что каждое требование сначала обслуживается прибором 1, затем прибором 2 и т. д., пока оно не будет обслужено прибором Z = Af. Определенный интерес представляют многостадийные системы с нефиксированной последовательностью прохождения стадий для всех или некоторых требований. В этой книге основное внимание уделяется одностадийным обслуживающим системам, в которых: а) <2(i) = {l, 2, ..., М) (i = 1, /г), т. е. каждый прибор может обслуживать любое из требований множества N; б) в любой момент времени каждое требование обслуживается не более чем одним прибором, и каждый прибор обслуживает пе более одного требования. Для требования i ^ N задан момент времени di> 0 (момент поступления в очередь на обслуживание), начиная с которого оно может обслуживаться. Длительности tiL > 0 обслуживания каждого требования i е N каждым прибором К L^M предполагаются заданными. Если tiL = aLti (i =- 1, п, L = 1, Af), то говорят, что прибор L обладает «производительностью», равной 1 /аь. Если aL = 1 (£ = 1,ДО, то приборы идентичны. В зависимости от характера обслуживающей системы процесс обслуживания каждого требования либо должен протекать непрерывно, либо могут допускаться прерывания с последующим дообслуживанием требования любым из приборов. Прерывания могут допускаться как в заданные сроки, так и в произвольные моменты времени. Обычно предполагается, что прерывания не сопряжены с временными затратами и их число конечно. Процесс обслуживания требований может быть описан заданием совокупности s = {Si(Z), s2(t), ..., sM(t)} кусочнопостоянных непрерывных слева функций sL =■= sL(t) (L =■= 1, М), каждая из которых задана на интервале 0 ^ t < оо и принимает значения 0, 1, ..., п. Если sL(t') = 0, то в момент времени t' прибор L обслуживает требование L Если SlU,)=0, то в момент времени t' прибор L простаивает. Поскольку каждое требование не может одновременно обслуживаться двумя и более приборами, то из условия sL(t/) = iib 0 следует sH(t')¥=i для всех 1 ^ IIФ L ^ М. Поскольку требование i поступает в очередь па обслужи- 8
ваште в момент времени d,-, то sL(l) ^ i (Г = 1, Л/) при t ^ d* U = 1, /г). Если tiL—суммарная длина временных интервалов, на которых функция sL(t) принимает значение г, то должны м ' выполняться соотношения 2 (^гь/^ь)=1 (i = l,/г). В част- L=1 ности, если приборы идептичны, то суммарная длипа всех временных интервалов, на которых функции sL(t) (£,= 1, Л/) принимают значение i, должна быть равна Совокупность функций 5, обладающая перечисленными свойствами, называется расписанием обслуживания требований множества N системой, содержащей М параллельных приборов. На рис. В.1 приведен график расписания sit) обслуживания требований множества iV = {l, 2, 3, 4} одним прибором. Значения d{ = 0, d2 = 2, d3 = d4 = 3, £i = 4, £2=1, t3 = tik = 2. Если сйстема содержит два и более приборов, то графики функций sL(t) обычно совмещают, как это сделано, is(t) J 1—1 I ! i ! 1 приЗсрЗ прибор 2 прибор 1 3 , л М ! ! ! 1 1 1 1 ! ! 2 4 ! \г\ / ! i ! 1 1 1 1— 1 1 2 ! ! | / ! —J j ; > /! —1 1 [5\ ] 1 ! > 1 1 1 12 3 4 5 6 7 8 9 10 11 t / 2 г 1 <—■ - | >■ 3 ч 5 St Рис. В.1. Рис. В.2. например, на рис. В.2. Здесь М = 3, приборы идентичны, N = { 1, 2, 3, 4, 5); d1 = d2 = d3 = 0, d4 = l, d5 = 2; ft = l, t2 = t3 = 3, tik = trJ = 2. Прибор 1 во временном интервале «(О, 1] обслуживает требование 1, а в интервале (3, 4] — требование 5. Прибор 2 в интервалах времени (0, 1] и (3, 5] обслуживает требование 2, а в интервале (1, 3] — требование 4. Накопец, прибор 3 обслуживает требование 3 во временном интервале (0, 3] и требование 5 — в интервале (4, 5]. Говорят, что расписание s2(t), ..., sAt)} до¬ пускает прерывания в процессе обслуживания требований, если существуют такие К i < л, 1 *^L¥*H и 0 ^ < t' < t < t" < °°, что выполняется хотя бы одно из уело- ВИЙ: 1) sL(t')~*sL(t")-i, но sL{t) + i\ 2) sL(t') = s„(t") = i. Если при этом sL(t' + б) ¥= i для любого достаточно малого
б > 0, то в момент времени t' имеет место прерывание обслуживания требования i прибором L. Не исключается возможность непосредственного продолжения обслуживания требования i, но другим прибором. Содержательно процесс обслуживания требований без прерываний удовлетворяет следующему условию. Каждое требование обслуживается только одним прибором. Если обслуживание некоторого требования i прибором L начинается в момент времени t\t то оно протекает непрерывно и завершается в момент времени £*=£? + tiL. В этом случае расписание, очевидно, полностью определяется распределением требований по приборам и указанием для каждого требования i момента t\ начала его обслуживания. Если в процессе обслуживания требования допускаются прерывания, то каждое отдельное требование может обслуживаться «по частям» и не обязательно одним и тем же прибором. Так, при расписании, изображенном на рис. В.2, допускаются прерывания в обслуживании требований 2 и 5. Обслуживание требования 2 прибором 2 прерывается в момент времени t = 1 с последующим его дообслуживанием тем же прибором, начиная с момента времени t = 3. Обслуживание требования 5 прибором 1 прерывается в момент времени t = 4 и продолжается с этого момента времени прибором 3. При расписании, изображенном на рис. В.1, допускаются прерывания в обслуживании требований 1 и 4. Во временном интервале (7, 8] прибор простаивает. В приложениях числа di и tiL являются рациональными, и при выборе соответствующей единицы измерения их можно считать целыми. В этом случае зачастую ограничиваются рассмотрением расписаний с прерываниями в целочисленные моменты времени. При этом предполагается, что моменты начала обслуживания и дообслужщзания каждого требования также целочисленны. Такие расписания, очевидно, однозначно определяются заданием для каждого временного интервала единичной длины М-мерного вектора с компонентами 0, 1, ..., п. Если L-я компонента этого вектора равна i¥* 0, то в рассматриваемом единичном временном интервале прибор L обслуживает требование i. В противном случае прибор простаивает. При разрешении прерываний в произвольные моменты времени, наряду с предположением об ограниченности числа прерываний, естественно предполагать, что длительность каждого частичного обслуживания требования является конечной величиной. 10
4 Кроме запрещения прерываний, к расписанию могут предъявляться и другие требования, вытекающие из постановки конкретно рассматриваемой задачи. Так, для каждого требования i может быть задан директивный срок А, к которому необходимо или, во всяком случае, желательно завершить обслуживание требования г. Расписание, при котором все требования обслуживаются в заданные директивные сроки, называется допустимым относительно этих сроков. В общем случае такие расписания могут, очевидно, не существовать. Весьма распространенными являются ситуации, в которых накладываются некоторые ограничения на возможную последовательность обслуживания требований. Если по условию задачи требование / может обслуживаться только после завершения обслуживания требования г, то расписание s должно удовлетворять условию: если sL(t') = i при некотором 1 < L ^ М и некотором t' > 0, то sH(t) Ф j при всех 1 Я ^ М и £ < £'. Ситуации такого рода обычно описываются заданием на множестве требований N некоторого отношения строгого порядка согласно которому обслуживание требования i должно завершиться до начала обслуживания требования /, если i -*■ /. При этом говорят о расписаниях, допустимых относительно заданного на N порядка. Процесс обслуживания требований может быть сопряжен с потреблением или использованием некоторых дополнительных ресурсов. Типичную ситуацию такого рода можно описать следующим образом. При обслуживании требований используется q видов ресурсов. В момент времени t ресурс вида к имеется в количестве Rh(t) (к = 1, q). Для обслуживания требования i в момент времени t необходим ресурс вида к в количестве rih(t) 0 = 1, п, Л = 1, q). Если в момент времени t обслуживаются требования iu г2, ..., U и только i они, то необходимо, чтобы 2 (£)< ДЛ(£) для всех 1^ 3=1 J ^ к < q. Расписание s, при котором указанные ресурсные ограничения выполняются для всех t > 0, называется допустимым по ресурсам. Определенный практический интерес представляют также расписания, которые удовлетворяют ограничениям, связанным с необходимостью учета переналадок обслуживающих приборов, соблюдения условий группирования требований при их обслуживании и т. п. При рассмотрении задач такого рода под допустимым понимается такое расписание, 11
которое удовлетворяет всем ограничениям, вытекающим из постановки конкретно рассматриваемой задачи. Следует отметить, что построение допустимого расписания или даже выяснение того факта, существует ли оно вообще, является зачастую далеко не тривиальной задачей. Вместе с тем во многих ситуациях построение допустимых расписаний не вызывает сколь-нибудь серьезных затруднений, и речь идет о выборе среди них наилучшего в том пли ином смысле расписания. Наиболее распространенный способ оценки качества расписаний обслуживания требований в одностадийных системах состоит в следующем. Каждому расписанию s соответствует вектор tis) = ihis), ..., tnis)) моментов завершения обслуживания требований при этом расписании. Здесь Uis) — наибольшее значение t, при котором существует такое L^{ 1, 2, ..., М}, что sLit) = i. Задается действительная неубывающая по всем аргументам функция п переменных Fix) = Fixt, хг, ..хп). Качество расписания s характеризуется значением этой функции при x = tis). Из двух расписаний лучшим считается то, которому соответствует меньшее значение Fix). Расписание, которому соответствует наименьшее значение Fix) (среди всех допустимых расписаний), называется оптимальным расписанием. При задании функции Fix) каждому требованию i обычно сопоставляют некоторую неубывающую функцию — функцию штрафа фгШ, выражающую в количественном отношении «штраф», который необходимо «заплатить», если обслуживание этого требования завершится в момент времени t. Качество расписания характеризуется суммарным или максимальным штрафом, который необходимо заплатить при обслуживании требований по расписанию s, т. е. п _ F-L (s) = 2 Ф» (h (s)) или Fmax (s) = max {<р< (*4 (s))}. г=1 1 <i<n В частности, если cpAt) =t ii = 1, n), to /'’max {$) = = max (Ms)) — момент завершения обслуживания всех тре- 1<г<п бований (общее время обслуживания). В этом случае Fmsxis) обозначают через £тах_Ы, и расписание s, доставляющее наименьшее значение £mai(s), называют оптимальным по быстродействию расписанием. Если q)iit)=t — Diy то FmSiXis) обозначают через Lmax(s). Имеем Lmах (s) = max {Д (s)}, где LAs) = tAs) — Д — вре- ккп меиное смещение момента завершения обслуживания требования i относительно директивного срока Д. 12
Если ср,Ш = max {0, t — Dx), то Fmax(s) обозначают через Zmax(s)- Имеем zm3iX(s)= шах {^(s)}, где zM = Ki<n = inax{0, ti(s)—Di]—запаздывание в обслуживании требования i относительно директивного срока Д. В этом случае п ($) = 2 Zi(s) — суммарное запаздывание. i—1 п Если фг(^) = sign (max (0, t — Д}), то F2 (s) = 2 и% (s)> где Uiis) == sign (zi(s)), представляет собой число запаздывающих (относительно директивных сроков) требований. В ряде случаев каждому требованию i сопоставляется некоторое число а; — «вес» требования i, и говорят о взвешенной сумме моментов завершения обслуживания требо- п ваний 2 o&jti (s)у взвешенном суммарном запаздывании i—1 п 2 (5) и о сумме весов запаздывающих требований i=l п (взвешенном числе запаздывающих требований) 2aiwi(5)* i=1 Перечисленные критерии оптимальности отражают стремление скорейшего завершения обслуживания каждого требования с учетом их возможной неоднородности. В этих условиях при поиске оптимального расписания можно ограничиться рассмотрением класса расписаний, при которых не допускаются неоправданные простои обслуживающих приборов. Если прерывания процесса обслуживания требований запрещены либо допускаются только в целочисленные моменты времени, то указанный класс содержит конечное число расписаний. Действительно, пусть s — расписание обслуживания требований одним прибором без прерываний, при котором требования обслуживаются в последовательности я = (^, £2, ... ..., in), где я — некоторая перестановка элементов множества N. Момент tij (s) начала обслуживания требования ц при этом расписании удовлетворяет, очевидно, неравенству *ij (s) ^ шах (5), d{.], а момент завершения обслуживания этого требования равен tij (s) = t\. (s) + ti. (7 = 1, n); tiQ (s)= = 0. Рассмотрим расписание s', при котором требования обслуживаются в той же последовательности л, *?Д5') = = max {^ij_](s ), di.]r tij(s ) = + t\. (7 =1, n)% tiQ(s')=0. 13
Нетрудно видеть, что ti.(s') <ti.(s) (/ = 1, п), и, поскольку функция F(x) является неубывающей, то F(t(s')) < F(t(s)). Расписание s' однозначно определяется заданием перестановки я, и, следовательно, при поиске оптимального расписания достаточно рассмотреть п\ расписаний. Аналогично, пусть s — расписание обслуживания требований М параллельными приборами без прерываний, при котором прибор L обслуживает требования множества NL в последовательности nL={ii, inL)i L = 1, М. Здесь NiV А2и...1Шм = А, АяПАп = 0, l^II¥=R^M и необязательно Nl Ф 0. Рассмотрим расписание s', при котором момент времени начала обслуживания требования равен t°L= max ft l момент завершения обслужива- гз I V-i Ч 1 _ ния этого требования t l = t\ + t l {] = 1, nL), t l = 0 4 *0 (L = l,Af). Очевидно, F(t(s')) < F(t(s)). Расписание s' однозначно определяется заданием разбиения множества N на подмножества Niy N2, ..NM (некоторые из них могут быть пустыми) и заданием перестановок элементов этих множеств. Следовательно, при поиске оптимального расписания достаточно рассмотреть не более п\ См+n-i расписаний, где Cq — число сочетаний из q по р элементов. Если приборы идентичны, то число рассматриваемых расписаний уменьшается в М\ раз. Если прерывания процесса обслуживания требований допускаются только в целочисленные моменты времени, то, как уже отмечалось, расписание однозначно определяется заданием для каждого временного интервала единичной длины Д/-мерного вектора с компонентами 0, 1, ..., п. При этом, очевидно, достаточно рассматривать временной диапазон (так называемый интервал планирования) от mind,- Ki<n п до max di + 2 max Обозначая длину этого диапазона l<i<n i=l 1 <L<M через Т, приходим к заключению, что при поиске оптимального расписания достаточно рассмотреть не более Т»Сп+1 расписаний. В случае, когда прерывания допускаются в произвольные моменты времени, при поиске оптимального расписания, вообще говоря, нельзя ограничиться рассмотрением конечного множества расписаний. Однако при определенных условиях и в этом случае может быть выделено конечное 14
множество расписаний, содержащее хотя бы одно оптимальное расписание. Аналогичные рассуждения можно провести и относительно допустимых в том или ином смысле расписаний. Таким образом, оптимальное расписание может быть найдено, как правило, в результате перебора конечного множества возможных вариантов. Основное затруднение состоит в том, что число таких вариантов обычно оказывается исключительно большим (так, например, уже 10! = = 3 628 800) и растет по меньшей мере экспоненциально с ростом размерности задачи. Стремлению максимально сократить этот перебор, построить оптимальное расписание в результате проведения возможно меньшего объема вычислений подчинены все работы в области теории расписаний. Если объем вычислений ограничен некоторым полиномом от размерности задачи, то говорят, что задача относится к классу полиномиально разрешимых. Соответствующий алгоритм при этом называют полиномиальным. Наряду с полиномиально разрешимыми задачами известны так называемые ЛФ-трудные задачи, для которых полиномиальных алгоритмов, по-видимому, не существует. В этой книге описывается современное состояние исследований по изучению одностадийных обслуживающий систем. Первая глава носит вспомогательный характер. В § 1 этой главы приводятся некоторые необходимые в дальнейшем сведения из комбинаторного анализа и теории графов. В § 2 описывается специфическая форма представления данных с использованием так называемых 2-3-деревьев. В § 3 вводятся основные понятия, связанные с оценкой сложности комбинаторных экстремальных задач и алгоритмов их решения. Описанию эффективных в вычислительном отношении алгоритмов построения оптимальных расписаний посвящена вторая глава. В § 1 этой главы устанавливаются достаточные условия, при которых существуют оптимальные расписания без прерываний процесса обслуживания требований в моменты времени, отличные от di (i = 1, /г). В § 2 устанавливаются необходимые и достаточные условия существования расписаний, допустимых относительно заданных директивных сроков Di (г = 1, лг), и описываются алгоритмы их построения. В § 3 рассматривается задача минимизации максимального штрафа FmeLZ(s) за обслуживание требований одним прибором. В § 4 описываются эффективные алгоритмы построения оптимальных расписаний для ряда постановок задачи миними¬ 15
зации суммарного штрафа Р2Ы за обслуживание требований одним прибором. В §§ 5 и 6 рассматривается задача построения оптимального по быстродействию расписания обслуживания частично упорядоченного множества требований параллельными идентичными приборами. В § 7 описываются алгоритмы построения допустимых относительно директивных сроков расписаний обслуживания параллельными приборами частично упорядоченного множества требований, имеющих одинаковые длительности обслуживания. Рассмотрению задачи минимизации максимального временного смещения при обслуживании требований идентичными приборами посвящен § 8. В § 9 рассматриваются задачи минимизации суммарного и максимального штрафа за обслуживание требований неидентичными приборами. В третьей главе рассматриваются вопросы минимизации так называемых приоритето-порождающих функционалов на множестве перестановок элементов конечного множества N, сохраняющих заданный на N строгий порядок. В терминах минимизации приоритето-порождающих функционалов естественным образом формулируются многие задачи теории расписаний. Примеры таких задач приведены в § 1. Там же вводится понятие приоритето-порождающего функционала. В § 2 описываются преобразования графа G редукции отношения строгого порядка, заданного на N. Эти преобразования лежат в основе приводимых в последующих параграфах алгоритмов минимизации приоритето-порождающих функционалов. В §§ 3, 4 рассматриваются случаи, когда граф G является древовидным и последовательнопараллельным соответственно. Случай, когда G — произвольный (бесконтурный) граф, рассматривается в §§ 5, 6. В § 7 вводится понятие 1-приоритето-порождающего функционала и описываются методы минимизации таких функционалов. В четвертой главе устанавливается МР-трудность ряда задач теории расписаний. Для большинства рассматриваемых в этой главе задач доказывается, что они являются МР-трудными в сильном смысле. Каждая глава сопровождается библиографической справкой. Справка к четвертой главе дополнена информацией о методах направленного перебора, используемых для решения МР-трудных задач. Некоторую дополнительную информацию о результатах, полученных в области теории рас-) писаний, а также о методах, которые могут быть использованы для построения оптимальных и близких к ним расписаний, заинтересованный читатель может найти в обзо- 16
pax [20, 24, 25, 37-39, 61, 65, 92, 95, 182, 208, 211, 243, 281, 314, 325, 340, 341, 347, 374, 377, 382, 384] и монографиях [12, 78, 89, 110, 115, 118, 120, 122, 126, 127, 143, 144, 158, 162, 185, 192, 193, 239, 345, 368]. Обширный перечень работ по теории расписаний содержится в классифицированной библиографии [303]. С целью облегчения поиска информации о конкретно интересующих читателя задачах ниже приводятся таблицы, содержащие сведения о большинстве рассматриваемых в книге задач. Исключение составляют лишь некоторые задачи, описанные в основном в гл. 3. В табл. В.1 приведены полиномиально разрешимые задачи, в табл. В.2 — задачи, относящиеся к классу TVP-труд- ных. Ввиду ограниченности объема книги в ней отсутствует раздел, посвященный приближенным методам решения NP- трудных задач. Табл. В.З несколько восполняет этот пробел. В первых пяти графах каждой таблицы с использованием определенной символики приводятся описания задач. В последней графе даются ссылки на соответствующие разделы книги (табл. В.1 и В.2) либо на цитированную литературу (табл. В.З). В первой графе указывается число обслуживающих приборов. Во второй графе приводятся значения двух параметров — «длительность обслуживания» и «моменты поступления». Параметр «длительность обслуживания» может принимать следующие значения: U — соответствует ситуации, когда все обслуживающие приборы идентичны; clhU — обслуживающая система содержит приборы различной производительности; Uh — приборы различны (длительности обслуживания требования различными приборами не связаны между собой); ti — t — приборы идентичны, длительности обслуживания всех требований одинаковы (и равны t); tm = ан — приборы различной производительности, длительности обслуживания всех требований прибором Н одинаковы (и равны ан); ti^{cu с2, ..., С/}—приборы идентичны, длительности обслуживания требований могут принимать значения только из указанного множества; [tiH] — длительности обслуживания требований целочисленны. Параметр «моменты поступления» принимает значения di = 0 и di в зависимости от того, поступают ли требования 2 в. С. Танаев и др, 17
в очередь на обслуживание одновременно или неодновременно. Если требования поступают только в целочисленные моменты времени, по употребляется символ [dj. В третьей графе приводятся значения трех параметров — «прерывания», «порядок» и «ресурсы». Параметр «прерывания» может принимать значения Рг и [Рг] в зависимости от того, разрешены ли прерывания в произвольные или только в целочисленные моменты времени. Если не указано ни одно из этих значений, то прерывания запрещены. Параметр «порядок» в зависимости от вида графа редукции отношения строгого порядка-*-, заданного на множестве требований N, может принимать следующие значения: G — граф редукции отношения ->■ является произвольным (бесконтурным); со — SP — граф редукции является ш-последовательно-па- раллельным; SP — последовательно-параллельный граф; ?Г — древовидный граф; — лес из выходящих деревьев; — лес из входящих деревьев; С — каждая компонента связности графа — цепь. Если не указано ни одно из перечисленных значений, то множество N не упорядочено. Параметр «ресурс» принимает значение Rs (q) только тогда, когда имеются ресурсные ограничения и число видов ресурсов равно q. В четвертой графе приводятся различного рода дополнительные условия. Так, запись Д = 1) означает, что все директивные сроки одинаковы (и равны D); запись U = = НОД (di) означает, что длительности обслуживания всех требований одинаковы и равны наибольшему общему делителю значений dt (i = 1, п); запись rih е {си с2, ..ct} означает, что rik принимают значения только из указанного множества. Запись вида (di t, f<t, Д t, а*1) означает, что требования множества N могут быть пронумерованы таким ^эбразом, что d*^di+1, ti^ti+u Д^Д+1, a,i>(Xi+l (i = 1, п — 1). Аналогичный смысл имеет запись <р* t, где Ф<^ф1+1 означает, что фг-Ш ^ ф*+1(^) для всех t из интервала планирования. Символ [Д] употребляется для обозначения целочисленности значений директивных сроков. Запись М = М(A, D) означает, что число приборов М является переменной величиной, зависящей от множества N требований и общего директивного срока Д 18
Большинство приводимых в таблицах задач состоит в минимизации некоторого функционала, вид которого указан в пятой графе. Символы Fnn и Т^-пп употребляются для обозначения приоритето-порождающих и 1-приоритето- порождающих функционалов соответственно. Часть задач состоит в отыскании расписаний, допустимых относительно директивных сроков (обозначение: ti^Di). Отдельные задачи состоят в минимизации некоторого функционала на множестве расписаний, допустимых относительно В этом случае обозначение вида функционала сопровождается записью ti<Di. Если по условию задачи необходимо, чтобы неравенства U(s) < D{ выполнялись лишь для i^Q<= N, то предыдущая запись дополняется условием i^Q. В шестой графе табл. В.1 приводятся оценки временной сложности (с точностью до постоянного множителя) алгоритмов решения задач. Символ ЛГ1 в этой графе означает, что рассматриваемая задача сводится к задаче линейного программирования. Знаком (*) в табл. В.1 отмечены задачи, в которых разрешение прерываний не может привести к уменьшению оптимального значения целевого функционала. В табл. В.2 знаком (*) отмечены TVP-трудные задачи, для которых известны псевдополиномиальные алгоритмы решения, а знаком (**) — задачи, относящиеся к классу NP-трудных, для которых псевдополиномиальные алгоритмы не известны, а МР-трудность в сильном смысле не установлена. Остальные задачи являются TVP-трудными в сильном смысле. В табл. В.З приводятся сведения о полиномиальных приближенных алгоритмах: оценка точности получаемого решения (графа 6) и, если известна по литературным источникам, оценка временной сложности алгоритма (графа 7). Как правило, в качестве оценки точности используется оценка относительной погрешности получаемого решения А = (F0 — Р*)/Р*, где F0 — значение целевого функционала при приближенном решении, F* — оптимальное значение. В табл. В.1, В.З и далее в книге все логарифмы берутся по основанию 2 (если не оговорено противное). Приведенные в таблицах оценки сложности алгоритмов справедливы в предположении, что отношение строгого порядка, заданное на множестве требований (если оно не пусто), представлено своим графом редукции. Отметим, что переход от произвольного бесконтурного графа к его транзитивному замыканию или к графу редукции требует выполнения не более 0(п3) операций [7], где п — число вершин графа. 2* 19
CQ ed tr К 4 VO cd H с-. Ж Ж * ю * ю" |> * of * со" * со" * со" sf sf<" ч V ч со csi И csi а 03 Н со и о тн ООО со а со а со а оо ООО ООО осГ ООО ООО СО а со а со ООП ООО схГ ООО ООО О чн ООО о чЧ ООО cd О csf csf csf csf csf csf csf csf СО СО* csf csf СО со csf csf ч Ч Ч ч Ч ч ч ч ч ч Ч ч ч ч ч ч (н (ч о и и (ч Рн (н (ч 1ч и (ч и (ч (ч (ч ET о Й Й й й Й й й й й й й й ьо ьо ьо ЬО ьо ьр ЬО ьо ьо ьо ьо ьо о о о О о о О о о о о о <“”Н •“Ч 1—1 <м 1—4 сн чЧ чЧ р-Н 1—• р-н й Й Й Й Й Й й Й Й Й Й °Й й й й «3 Оч H К a Ж gs gs я § 4 ^ о § tt *«§1 SB1& GO. + © © Q* Q Q Q q V/ V/ V/ V/V/S9 see ,*n*ri-r а a kj ^ ^ ^ h © •?* js и ed а + С? о ®^л о x A чГ of qT ^ ©o' +Д £ о Он со Он О СО Он СО V/ § б НН? ^ 3 © +э *г© ©X Ьн ^5 Он 5 О К ° S3 я лож ss£ §«£ Л S н ч ж 5 о» 03 о н « И ч 5 нн о о о о о о I! il II II II II •С* •<«* ■?■» -г-> «с* «г» •*■» •«■* 20
к u s § 4 s a о «, 3, о н s a И « а к л к Ч 5 8й s к g> н о « г? л а ^ ■-} ЗИ а а..!с'Й 1«оо i* я « 3 к |°а sag, я ft F G со '—' © „ _ © LO V © 1Г * © * со 00 Зо ю" со ю" ю ю" © пп. со Н со а ч-Ч ело ело ч-ч ело ело чН ело ело Ч-Ч ело ело чн ело ело ело "5Г ело чН ело ело чн ело ело Ч-Г ело ело ЧН ело ело Н © Ч-Ч ело см" см" см" со" со" со со со" со" со" со" СО со" со" см" см" ч ч ч Ч ч ч ч ч ч ч ч ч ч ч ч ч Рч Рч и Рч и и Рч (н Рч Рч Рч Рч Рч Рч Рч Рч lO VO со со" ЬО Ы) о о biD bo о о ьо ьо ьо ООО ьо о ьо о ьо ьо о о ©2 & ён Си О, X и •г* ф ф cf^ V/ V/ « и н , Й е К И м | Ч* I I ‘t* Ф ф I «г» I ' ^ 1^, 1 *?J .* .J^1^ ... Jh ©■ 8 в в в ©-©•©- з хГ ? 8 п о 8 1 8' I •г* к 1 1 8 II щ Ш •«* сь йн Со 1Г Он ' » Ын 1 Рч Со 3 ^ Со 3 Он Со I Он Со Он Со Он ' Он ' М Со 3 со 3 Он ОО ©00©о°00© © ^ © © 2f II II II II II II II II II II II II II II чГ д; чГ чГ -хГ чГ 'хГ чГ чГ -в* чГ чГ •ХаГ чГ хГ 'хГ || чГ *хГ 21
Таблица B.l (продолжение) ю ю* I X ч ё 4.3, со vi5 4.3, со Kl< СО со О о о о о О Ю со Рч О •чн ^ч нгН чЧ ■ч—• ■чгЧ С ТЧ н Н К И И И И ооо ООО ооо OCW coo ооо и й ООО СМ СМ СМ см СМ см СМ СМ СМ СМ СМ СМ СМ см СМ СМ ч ч ч ч ч ч Ч ч ч ч* ч ч (ч ч* ч ч (н и (н и (н (-Н Рч Рн Рч Рч Рч Рч Рн Рч Рн Рн О 3 3 3 й й й W г/ ьс ЬС ьс ьс + ьс ьс ьс о о о о w о (М г—Н 1—4 w м ео 3 е> еч п ^1 <М W и и 3 3 ЗСЗсг*ЗСЗЗ 3 3 3 Ш сГ V/ in tT а 3 3^ о" в" И Н з а" V/ V/ V/ V/ V/ V/ V/ V/ I ♦Г'41 I >*Г* I ч-»*"' | ^ I ^ I ч-Г* I -ьГ* I ■ ^ q V/ V/ I^IJ* в, ег в * I** г** а O' ш ^ "з" . V/, 5 V: ;» 43 V 2! 8 I + ~ -I- I ^ + I I S tr сГ чГ ^ § 'Г II ~v/ Тз" ТЗ* -~ 'в* «" С5 II • С* О О q II II •о* -с* q q q II сГ j5 . _ И 2 ag»S Л ..О- V • ► К ?►» ЛК О У И5« ^ ~ <а о «, CQ с/1 (н tn Рн &й о £ о» к ° S3 g л о к hS<H g..§ 8 5 & Л S Ен рн К О ф Я О н « К Ч ¥ ct 2АИ о *2 о 5§.Л ‘ Fo О о II о о II - II чГ° II II •С • - II "3 43 1—1 'З Щ 11 "3 "3 •г • - * ~ -- в 'З* "3^ "3^ — •- тН нтН и тЧ тЧ 5 as as 1ц ‘L \ .. ■** 3 3 3 н* ^ нгН СМСМСМСМСМСМСМСМСМСМСМ 22
CQ ей ег m ч \o ей H 4 « 26 о 4 о ев к ж <D я о см об cD CD СО Ю CM об o 00 о . 6.3 о o о о О о о о о 5.3 cm" Ю 7.2 T-t Р H ^H чтЧ нгН нрЧ ■ЧГ-1 ■H T-l И H • H un p un H 00O COO COO ooo COO COO O00> GOO COO P p CM CM CM CM CM CM CM CM CM CM CM CM CM CM CM CM CM e; 4 4 P 4 4 4 4 4 ч 4 4 ч 4 p p p u (-H Рч Рч Рч Рч Рч Рч Рч (-1 Ph l-H Рч (-1 Рч Рч Рч ч о к» о Я 9« 5* Н Я п о и О К > а; Ж Я 5 5 О Я « s s> ' и и * ^ л 8 я д Я ч *3 ч S'go U1 в ьс о Й + е» Й + ч£э Й ЬО ~ I a .s I ы> в й © ьо кг ЬО О ^ й ьо S S ьр I 3»~е, и Cl q Q о с, С5 g ЗГ V/ V/ V/ V/ V/ V/ ^1 р<| ,ЧГ|.>Г|*Г|.ЦГ|.ЦГ I*; a; q q q II И II •c* 4 Q Q q «$ >7? И О л Л а ч р, я <3 и к о £ 1п м аГ Рч Рч Рч £ Рч Рч Ся G G G R Рч се Рч Он Рч CU Рч b^> b^ b* •as * ^ 43 45 2. * * t3 •** •<■» -r* •» — ^ 43 чз 43 "a •- 5 "Sj Тц Tej •w -к» Й « <3 as « aj ц « Й CM CM CM ^ ^ ^ ^ ^ ^ 23
3 3 N § О §• со cd t=T Ч vo ed Н со 1ft см* со со 150 со со U 1 ю iO S LO ^ н СО ... „ .. S3 X СО 0© см со со см см ч а> см см . о см . о . о о о о О о о о о о ю ю а ^ и ^ и ^ ■*н ч(Н ТН тН Н и пп. W со И Н И ООО и Ио<* ООО ООО ООО СОО ООО ООО ООО ООО ООО св ft - см ем см см см вмг СМГ см' СМГ см СМ СМ см СМ см СМ <М СМ см" of ч ч ч ч ч ч ч ч РЗ РЗ р; (=3 ч ч ч ч ч ч ч ft ft ft ft ft ft ft ft ft ft ft ft ft ft ft ft ft ft ft ft а о « 5 ft Н S ft К S 5g II IS а О « I « , So S3 Эв^о. ft * ^ д as au eiH 3 3 S? ьо ьд ЬС ьс о о ^ о о р“н ^ ^ со « *"н (М г—1 3 п п п и и и и |s а fl ;sss be 5 + + e c + . to to •» + ^ ^ { C C e c c ^ R R e OQQOQ QdQQQQQCiQCl V/ V/ V/ V/ V/ V/ V' V/ V/ V/ V/ V/ V/ V/ V/ « s I^r |*r |«- |~“ I a C) II •(» II •** Cl II cT II •«* a ^ ^ Ш II II ~ кГ cT c II L » I + PU рц ft PL, и рц ft рц MftCQftftftftftfti РОнЙРнРчРнРРнР^ Ь» ® g ° я Л О Н Я а § « Л S 4 5 0) cd Ь И 5 К ч 56 §3 д Jlta tr* д О о й! 3 'Q 'Q ^ ^ 'd ^ 'Ч 'd *5 "as *aj "ai "йз 5 5 t ■ft з з в з -ft -ft -ft % ^ S Ц S S "Ч *4 "Ч 24
ю ей ST а ч VO ей н- ч О) В О Б Б а X vfj об об об СО 1 т* об СМ см см н н СО 6.3- и СО И О © 05 об 00 СО о о о о об . О . О О О 05 О ^-ч д ■ЧгЧ Ч-Ч В ^ И ^ ^■ч 009 ело Н н н и О0О 009 UFi ООЧ» н Ноо» Н 009 009 009 н 009 CM см см см см см СМ см ем* см см СМ СМГ СМ см СМ см" ем" см" tj ч ч ч ч ч ч ч ч ч ч ч ч ч ч ч ч ч ч и Рч Рч (-4 Рч Рч Рч Рч Рч Рч Рч Рч Рч Рч Рч Рн Р-г Рч а ь© о ^ й Ь© о й <N ь© о й fee о й ь© Wx шах {; log mi ь© о S* ь© о « ес (М *4 п I CJ ,“"н сч 1-4 Й Й Й Й й п 11 п й й а и L и и и О й V/ С . ■?■» •с* ©■ и х 2 3 s & ^ 1 и ей И ей Р И ей >~е И ей 6 и ей 6 И ей б 1 ■** и ей Р Н ей б ^ 1 9н ,-Е 1, И ей \J s£ 2 и g О Б С5 И о §* а о И • се gftis “ О Си Л 2м о а н - г а <и • * х >*, а Б о и няя Б &а 3|в ЛОБ Hi и 0-5 м к £ лвС Б Б о «йб |ВИ 11 §og sa Fh i i Рч Рч Рч ^ Рч Dh Pm + 1 th L 1 тЧ Рч Рч Рч Рч Рч Рч~ Рч Рч 'in РР О О 43 ■*» •«■» •«* о — 43* 43 43 43 ^ о II •г* 43 _ О 43 43 4i &S Й5 a « к аз 25
сб tf ы ч VO сб H я H c? й а + 8 S| Si <?+ X s 0 bo + + bo 4»~ 0 ** •*• n CJ О Й Й ~ Wo те 5 bO 0 bo 0 К >—' ^ 1 bo сб., « + й Й 1 © a 64 tf . О Й Si Si ^ + Hh >я я ft i К . rt Ля) - I§“| ftgoy n§a &Я 'gSw ° a g д о я &*s §«£ 238 МП я я n J tt* §o Й У50 я so. Fa 05 Nf 9.2 О О © о «о о 9.7 9.5 СО* 05 05 9.3 О О о тН т4 • d . **х чН ч'н • oora un ООП соо 3 d d d а и иуз с*» глп 9 CM CM CM СМ см" см см" см" см см СМ СМ СМ СМ ч 4’ ч ч Ч* ч* ч ч ч ч ч* ч ч* g Px и и и (и и (-1 (н Рн Рх fx (X и Ех c + 4* c? X e 14 Й !? + + Й Й e bo bo о о bo bo о о bo о И И И те и те те б •4 те 1~3 В В « a l“" 8^ 1 *r IU- ' 8* a* i»r £ H 'w W W W н w 'w «* Px Ph pLi M Px Px Px Px O-i 43 Г О -gj ^ ^ 43 •—i аз a; a? e « « аз C3 о о II II * чГ 4f 4н" « « 11 • - « Tq Tq Tq Tq 5 «кГ ^ -кГ ^ ^ « « « <3 *x О о чз чз Si S a ^ ^ ^ Si S’ Si 20
Таблица В.2 сО <УГ> со ьоп ао Н sr" Ч «О со Л CV3 СО см ь» см’ 00 cn5 00 см . - . - чН * ■ч—1 ю ю vf ю vf оа оа ■ч-t оь см’ ч-н СМ Ч(Н СМ* чН чрН ■ч-< см ч—t см’ чН ■чН чН СМ СМ СМ СМ СМ см* см см н . Н И Н . и н и И Н и И И И И 1=1 И И И И н и Н и и и sf чСГ sj< sr ST ■чг V* Vji Ч* Ч ч Ч Ч 1=3 Ч ч ч ч ч ч ч ч ч ч ч ч м м м м м м м м м м м м м м м м м м я о. К ч о И о W ..а 5 о a s, а а д 2 К а° о п w/ и V/ I .«г ^ " I •(« •** -Г* I •«* •(* «г* •«* •*» Ч* •*» Ч* S3 U^. N I -w -м N Ц И И ЬЭ Н N •«а -С* •«•» . . -г* *г* «с* •** •»*» -г* •*>» •«■» •«■» •*» •** З8 8|~ ч 8 88 8 8 8 88888 W Н W W W W WH W WWWWWWW CJ II •«* CJ о II •«* С| Q Cl II II •г» •<* М Рн ММ П, рц Сц Со =. О «ч л. м сч о a cl, Is- °1§ л о я е*ё Is в Д S н R«V « се о Ь Д Р К Я Е* Mis Ра ° ° чГ ~ чГ — ° ° н у - а ~ аГ II II •«« >(* Ч* •«* ч* •«* •** ч* ч* ч» . „ ч* ч r4'Q^'t3'4p0'4'0'0^ || д; •г» ч* ч* •** -г* •*+' <И •»* ч* ч* •»» ч* .**■>. «с* *г» Ч* о о II О II чГ II чГ чн ^3 гн 27
см CQ rt tf Ч О се Н ч и м л Ч >*» gs сО ^ « Я Я ftO О) И а а gg °1[ л о s Е s s о t о • - с к s р Л Я Е ч я s Н (X) t я я 4 й о СМ S 05 05 ^■н СМ Сн = СМ СМ СМ SJ« ю *■ « нтН Ю ю ^■н ю ю Ц СМ СМ см’ Ь; t> \fi ю о СМ* csi СМ ю ю ю Н сг н н И И И со Он И И И и и И и И И и Н И н .4 г. г- .4 „ vf SP vr ч* (=; ч ч ч Ч ч ft 14 ч Ч* гз п Сн Сн Сн Сн Сн Сн Сн Сн Сн Сн Сн Сн Сн о ^ о* V/ V/ 5/ й:ч:1^: 8 8 8 a a a * *Г ч в Н I -а. в и 8 W см + << + с< cl ш 8 /-ЛН см см : + + см" «< << +1 нгН см" + +1 + +1 С< С< +1 «<" о" о ш ш ш ш «■< *г с< 8* см + «< +i +1 »I << Q . см ++| с< . ^ о 8 << О Sb о <3 Т7 Тн , „ 7н *Сн ь, ^ Ь Сн Рч о ь Сн PU <5 Сн Р-. СЬ о о О о О О о о II О II о II II о II II о II II О •в- II чГ II 43* •г* 43 II 43* 43* .11 •f* 43* II • #* • гч • ГЧ тн 43 гг! 43 нгН тн 43 «(Н "О ^гН чГ II " II •г» II II II II 11 II * •% •«* .****. нн — •е* •»* •Г* •г* •г* ♦С* 28 lit Fp ‘ \ +
Таблица В.2 (продолжение) *5 СО и ю LO LO я Ml ^н ^н ч ю 1Л ю ю ю ю ио ю U0 но но ю ио ю s ю ю ю ю ю ю Ю но ю но ю га И н И со а, Н И н Н И И н н н И н н н н „ .. г. „ sl< ч’ ч ч ч ч ч ч ч ч ч ч ч ч ч Рн Рн и Рн Рн Рн Рн Рн Рн Рн Рн Рн Рн Рн « я Л о ь к а X ё л § г; о а о П В В Н ,*Г!*Г * *Г«-*Г!*Г|*Г *Г «Г «Г ° в <м + «< см ^ м + -г * +1 .. . А О q с£ + "7 * Cvf ^ -н + ^ *< II о* q в r< q в с< q q II II •г* •«•* q с* q q q о о II II II щ Ш сГ q~ q* вГ в* « Pi О НН н5 ••а 5 >» S2 л а п а* fto « й о. h4 7Г а. р-Г рц о <3 <3 - о pH СЬ Он сь Рн Q. Рн <3 — р-Г Рн Sb с, sL 'S 05 5 °ЯЙ £§ё g..H и Ь5 ^ 3 а н Rag р° _Й*_ Ro § gfS, |_J Сй F Р О О О О О II II •f* -г» •** •** 43 ^3 r'Q '"О "О /“■—Ч ,«4 /«л-ч ^-ч СМ СМ СМ СМ тн ^3 ^ 43* о ^ ^ о 29
Табл и ц a f В.2 (продолжениеУ со . 5.5 Ю Ю . 5.5 . 5.5 * ■К со СО 00 ' ^ 00 со тН нН 0 и 'ГГ аГ чН "Г Oi чН со СО со ЧН и . 4.7 а И и а и са> И и Н И н соо СО) ъоо и и „ к* ST -<г •** SP sf ч ч 1=2 ч Ч ч ч ч ч ч ч ч ч Ч ч ч ч Сч Си Сн Сн Сн Ft Си С-4 Сч Сн Сн Сн F* Сн Сн Сн (-1 .*» .«a Q Q Ъ *. «. W7 W/ в а е в v/ v/ Н Н н н V/ V/ 1-Л.Г н С) V/ То С в в *г ^ I се Д д В и в в о в о W « а в ^ 5 * Зв ао « « р< И II •г* £ 3 3 ш ш ш •** -ч 8 8 8 Ш л о о Ш Ш •г* •«* •«* .04 *««• Ч* ^ |Ч •«* BCiQQQftiqci ft; Q й; ci <0 II •N 3 3 Щ Ш £ £ Jt Ji e? ft; ft; о О <3 /~v чн во р; иг Сн Рч иг Рч <3 Рч РС ^ G" « G* O' O' O' 'in In 'in & « tf ^ ч в oKM ю 3 s °sg й | g о я « £* ч В g а» л м gfS ч в Et* о о II о о о II О II II о II 43* 43** II о •1* 43 ■в" II 4Г о ‘i с^Г 43** II ч-ч 4н" 'в" чгЧ II в ЧН тн •г* 43 II II II 43е* II ЭД ¥ II "3 •с* Ч^Г ir •р* <4^ iH о о о ° ° 1». 14* 4- ■в -f м .... w ‘й ’« в в в „н- чип ft « « Щ ш §ig IS2- Fb <М <М CM CM CM C4MC1MWCJC1W 30
Таблица В.2 (продолжение) (М * чН я чН чН ЧГ Сн Я см чН см’ СМ ЧГ со 2 Ч-j ю ю ю * * ЧН * чН чН ч См’ чн чЧ 4-4 Ч"Н ЧН of of чН of см’ Ч-t 1>. 4f « Ч1< # см’ см’ c\i см’ см’ ЧН чН ЧН со 4jH Чр со а и И со СО СО н со 04 И и Н в И В В в В в В в ООО ООО ООО н н И Н 4t* ч}< st< ЧР ЧР vt< 4h ЧР чГ 4f чР 4f ч ч Ч ч Ч ч ч ч ч Ч ч ч ч ч ч ч ч ч ч Рч Рч Рч и Рч Рч Рч и Рч Рч Рч Рч (н Рч Рч Рч кн Рч Рч И И и И И И и ев ез б. S а е ев Ё л Ё «Ч 1 *ч | ^ к«^ «* *Г =s !-*П« n а |ч О Q L и чЧ -ГН чЧ чгЧ o' 3 o' o' o' o' H Ulllll 1 l^*4 к 1ч 1ч к Q чН tH t-I чН tH Q II II II II II II II II llR cT C C C 0? «£* C* C* Cl C l II Jc '"*”4 ^rH S O' me л? л; C* kT c* me js -oe -r* cc; 05 Q Qj S A § Я о ••ft s >* as CO P. Is 0.0 ® H PC G~ PC G~ PC G* £ 77 PC 77 PC ~ ^ Рч Рч Рч o G Ь G Ь G b Oi CJi cj( 'm' '5Г 'm Рч I CD ОТ CO j pin^pdpcpc^cicj^b 3S| щ a S Й 3gS Ш 4g и Ш pr p о о ООО L >L 4 'xT чГ 'xsT . О О О 11 II || о II о II о * чГ ^ II || ^ II о о о о о *ij 71 о CM £м £Г С- .ГС- .ГС -«Г И " «. II. II. * * ** " ~~ ~ и -г* II -т„ II ~ ?! 71 71 71 71 &3 &, II 71 ш ш ш М CJ С] М Г| CI м о М <М СЧ <М N М N N М М N 31
Таблица В.2 (продолжение) 32
Т а. б лица В.2 (продолжение ю ю V* ю Ю чч чН ЧтЧ чгЧ чгЧ чтЧ csi c<i <М* csi <г4 csi csi СО СО со СО со СО И ООО ООО н И ООО ООО и и ООО ооо И И „ „ „ „ vt< Sj< vt< Nt< vt« ч Ч Ч ч ч Ч Ч ч ч ч Ч ч ч 1ч Рч Рч (ч и Рч Рч Рч Рч Рч Рч Рч Рч со ООО СО ООО csi 1=1 Н 3 3 3 2 2 2 S ^ ^ « аза з J3 J3 £ И WWW и н 1=1 о W ? Q Ч IL ^ о ►a; jC •г> •«-» Р. р. л? 5 кГ р.*"* ш л? ш ш Cl С) Q Q чН Q чН Q Q Q тН Q ri Q л; л; •« -r* Jt 4 •*»•*» л; •*■» »oi •** •»* -г» л; •«* -ai •«* ^ о; q Q о; ft: qqftqftqqqcqqqq O 3 И о ., ft 5 о К <v Sa й vf si а К 77 чЧ сг 'in 05 '«Г 05 'ъп 05 'Ип 05 'tin 05 05 'in 05 со 05 др зв ДР чтЧ ДР S 77 др 3 ДО 2 ДР vS ДР 77 £ 'in рс; £ аГ Рч £ £ ь 'и? 05 £ ^/Г 05 £ 'in 05 £ со 05 £ 'in 05 о О о о о О О 0 о II о II о II о II о II о II о II о II и 'хГ II хГ II 5 11 хГ II хГ II хГ II •ч "3 II хГ •г* •ts чЧ "а чЧ чГ Тч" ^ чЧ •хГ •ч "3 хГ ч»Ч чз- чгЧ о и £ S с ° S S А 2 Е н S с w f SgE Ч И с <Р £ с SS* ч ¥ « 2 о д 1=1 trH ^ В. G. Танаев и др. СОСОСОООСОСОООСОСОСО 33
?5 О о С\1 PQ ко а Н а К и о П £ X АО О» Я *5 и к ° 2 ~ л о к Н S « Ч К о g ев 2 Н д К ч 5 igg as а >-* о. Fg 00 со . 2.15 СО СО 00 00 со со 00 . 4.8 СО СО чрН СО н . 3.4 со со со со со в ооо ооо В В ООО ООО В в ООО ООО в в оОо ООО в в ООО Г. - - КГ ч Ч ч ч ч Ч ч ч ч ч ч ч ч ч ч ч ч ч (ч (н (ч Сч и и (н и Рч (н и и и 1ч и (н (ч (н Q Q Q Q Q Q иг,^,^ V/ V/ V/ V/ V/ V/ Hw'w |- и и и и и и и я cd cd cd и cd cd *sl cd J3 6 a s s Ё L L L L и и я л Ё Ё ле л 1чГ »- -ее -«е о? ос; Q Q Q Q II II II II •Г* -г* -г* •<■* Q Q Q q II •е* чтН + i + CO Рч w" PC <h b> Sb Ьъ b> s pic cc cc pic 77 £ 'zn PC £i Ь (h £ ь k „J"1 + El + О О о 0 о о II о II о II О || о II о II чГ II чГ II чГ —1 чГ II -в** —1 II чГ -TL чГ II ^ •f* • ^ 43 "Ч 34
сч И еЗ СГ ч VO Я я Я ч V « Я а D Ен Я а К со ооо Ю СО чГ чг !>■ t>- 1> чг ЧГ чГ t>- [>■ t>- [>■ чГ О" чЧ СО чГ чГ чг 00 со СО со со со чГ ЧГ ЧГ чГ ЧГ и . СО СО В н ООО в в и В в В ООО ООО В В ООО ООО В В В В в В В ЧГ чГ чг чг чГ ЧГ чг чГ ЧГ ЧГ ЧГ чГ ЧГ ЧГ чГ чГ чГ чГ ч Ч ч ч Ч ч ч ч ч Ч Ч Ч Ч Ч Ч Ч Ч Ч Ч ч Сч и (ч и (ч а (ч а F4 и и (ч а и (ч и и (ч а (н q V/ Я С Д Я Й »V Ы ** *V 3 3 3 3 ц' ьэ' З з I t-i ’ I -к»' tlj *Г|~Й,~Н *r «Г н w и н н И н И Н н н Н н н ^ ч о <и 3 я л 4 р о И я а о Я К о .-ft к S ° *а а ^ Я х §а а И £g £я ° s S § !* л я 4 £ а> я н я 5 S Ч X W go я g^O Я * Fp q q q q q q q q q q It II II I! II II II II II II q* q* of qf cT q* of q* q* q* q 1 ь> о + 1 ь> + 1 ь> О *4 £i 17 Он ^ — 17 + в ь ь 17 * ь Ь> 17 + Ь Ь> 17 Рч 1 17 ь ь f-i си С> — <5 17 Ь о Sh Оч о о II о II "3 чГ •- "3 ^ гз" ООО II о II о II о хГ II хГ II -XT II 4-Г чГ 47 гз* 'З 11 • - чГ ^ ^ ^ ^ ^ ^ Ss S! Si 35
а fcf В « vo s 6 № £ О R „ ° H CO CJ Ж я о tf О я о со г-. 05 00 »—-ч со СО 00 т—1 00 00 со СО СО 05 05 00 СО см см 05 05 см со со СМ со СО СМ СМ СО со СЮ О + Й - I СО ' Й V СО '-ь (-1 I СО СО й й СЮ о СЮ О СЮ О со со V/ V/ <1 <3 V/ V/ V/ ^ < < < « Я ft 05 н Я ft К S3 SK и • я , g „ й 2 ft л 3 и CJ Рн. - LT£• 45 К О ^ ft 5 g о К я о £ ж «Ц Д g <и 8Я-Й 5§С R Я о S 3 R Я W* 2оя 5*§о я §,л Гя ^ и 8 2 H'~s И И| ■*ог И со И И л -S| СО 8* СО i~s СО S 1 6. е i~s i~s о о О о и L •** -Q * - L .. СМ МММ 5= 5® :§; 5= ^ 5= 36
Таблица В.З (продолжение) s я о я о а I а К Я № *5 1 |&а 3 Д О P...LTP; ай £ о С д я и см __ „1—1 со см со со 2? СО со 00 СО 00 см см см СМ см и—1 см СО СМ + ьс Й —< ЬО й О bcj й + со Л\ см + Q. V/ <1 I— со ю СО vf II II * * - - о СО N ю ©^ о. s: Й ъо о log ьо о й й й см см см л см л II ^ ч II ^ см + - 1ю > см V/ < по > I см V/ < I T'v азЛ S5 в Д-3 в цщ °gg В gas¬ bag »«i и п к W* Гд г* аз в to 37
Таблица В.З (продолжение) а сложности Й Й Й Й ьс S ьо ьс Ь£ 1-Я я о о О 8 pH <N о й й Й Й со СМ о 00 ю Ю ю сз о СМ со СО СО см со я о « Я ft <и ь S ft К Л I гн |<М в в ~ со + V/ I в см «f + vf «? и si Н |см V S й + Й аз в с N № V/ V/ V/ V/ V/ V/ V/ V/ < < < < < < < <1 и и и и и и и и 1 li ■J СО СО СО СО со со ■ J ,~6 i~E,~e,~E,~e 1 чгн 1 II чН 1 *ц 1 II •ч-Г 3= - ~ чН &3 ЧН II „-V II ; v/ ^ Л аз й II 3 54 II Й й JI S3 *3 й L s аз й РЧ О) 3 Я ч8 |8 ас Ч R У О ^ К I я , &§§о cgg <3 о £ £ ^ R 3 Sg* «is Л О £ gS Ч О--И я к Н Л 5 f ч Я о « Л р |а W* О О о 'tJ ^3 ^ аз в аз в аз в аз в аз аз в в "О 43 ‘аз 'а: < о д It» ^ ^ ^ ^ 38
Таблица В.З (продолжение) 3 К Д м 4 5 Si I- и О W см ^ см о СМ со CM t^rr о 00 ■4-1 о CO 00 Ю CO CM CM CO CM со CO CM CO CO «—>CM u’—l ЬС О Й § ЬС ^ я + SI ^ е ЬС Й £ 1 cr 1 ar ^ "IS. + t S 7 + ^ 1 + СЯ CM 5:12 <ote iT 1 V/ г 1 1 cm 5 V/ а О £ fe > I? СМ Г-^ V/ V/ <3 <3 I ^ I V/ V/ V/ < < < Й S а V/ <з со о см V < « Н, «.g iw ig tg '•w <.g lii^ue^s j4j ? a „ •o e Л G q, 1Ф GS H Cr> CJi 'cn 'orT PC cC (S a *3 §Sg ° S к ►a о « Hgc; о м skC 4 S О IIе 5s о о о о '"Q ^3 ^3 "Q а: аз аз nj .. •с* •<* »P* *r* ^ ■♦■* •*■* §ё e S&& rS % % % ™ Щ S= 39
со И св U И « VD се Ен се асе а> Q, S « к о 5* a о u -IS. *P 1* Ю c^ ICM D4 о H + 1 C*, + 3 10 + 00 ЧН TH rH "IS. -Is. 4S. Й Cm чН 1 CM 1 1 4ji ■=5 1 + + + + d> tr 1 чН £12 См|сМ 1 Cm 1 Cm Cm CM Чч 42 ‘-12 cm |аз О V/ V/ V/ V/ V/ V/ \ // \ // V/ V V/ <J < < <d <1 < < < < < < r—1 I—1 , , _ J L чгН 05 03 03 03 CO 03 Ю о 03 00 CM CO CO CO CO CO CO b- CO о CO CM CM CM CM CM CM CM CM CM CO й ьо e 3= i* e e e Й bD о bo о “Г bo 3! ® log log log log Й e Й Й c Й ЬО о «а а съ <и н а а И g§ 18 Eg §* а ць a • - V гг а> м К >• а 5 о - В 5 a £.3 R Й оИн ю«к о g Я л § * 8 lth 3§& g§8 g £9 и rS « О <b a Ss" gS.1 F д 4 и и | ^ -3 я се I ~ ,s i^a (^s lHs(^8 8 rt H N <5 Q & & Ml e д e e e A A A A A ^ ^ ^ ^ ^ *T rt tf Сь Cm Cm Cm m со со tf P5 Ph О о о w II II •e* •«“ 40
В табл. В.1, как правило, не приводятся специальные случаи рассматриваемых задач, если для них не известно более простых алгоритмов решения. Под специальным случаем задачи А понимается такая задача В, что множество всех наборов входных дапных задачи А содержит в качестве подмножества все наборы входных данных задачи В. Так, например, задача минимизации функционала F(s) представляет собой специальный случай задачи минимизации F(s) на множестве всех расписаний, удовлетворяющих дополнительному условию ti(s)^Di (i — 1, п). Для того чтобы это стало очевидным, достаточно положить Д = W, где W — достаточно большое число. Часть полиномиально разрешимых задач не включена в табл. В.1 по другим причинам. Как нетрудно заметить, расписание, минимизирующее Lmax(s), одновременно доставляет минимум функционалам zmax(s) и max ф Д (s) — Д),3 i^N где фЫ — неубывающая при х > 0 функция. Поэтому при наличии в табл. В.1 задачи с целевым функционалом Lmax{s) соответствующие задачи с целевыми функционалами zmax(s) и шахф(ti(s) — Di) опущены. В табл. В.2 приведены в основном лишь «минимальные» TVP-трудные задачи, т. е. задачи, специальные случаи которых являются либо полипомиальпо разрешимыми, либо для них пе установлена принадлежность множеству Л^Р-трудных. Очевидно, что задача, имеющая TVP-трудные специальные случаи, сама является ЛФ-трудной.
ГЛАВА 1 ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ И ВЫЧИСЛИТЕЛЬНОЙ СЛОЖНОСТИ АЛГОРИТМОВ Данная глава носит вспомогательный характер и содержит ряд широко используемых в дальнейшем сведений из различных разделов современной дискретной математики. В первом параграфе приводятся основные понятия теории бинарных отношений и теории графов. Описываются формы представления графов и «экономные» процедуры реализации некоторых операций над графами. Во втором параграфе описывается специфическая структура организации данных — так называемые сбалансированные 2-3-деревья. Эта структура широко используется при построении быстродействующих алгоритмов решения многих задач, рассматриваемых в главах 2 и 3. Основные понятия из теории полиномиальной сводимости дискретных задач и вычислительной сложности алгоритмов вводятся в третьем параграфе. Следует отметить, что, в отличие от первых двух, чтение третьего параграфа требует определенного уровня подготовки. Знакомство с материалом этого параграфа необходимо в основном при чтении главы 4. Для чтения остальных глав достаточно такого понятия, как временная сложность алгоритма. § 1. Множества, порядки, графы В этом параграфе в достаточно сжатой форме приводятся некоторые, необходимые в дальнейшем, сведения из теории множеств и теории графов. Предполагается, что читатсчь знаком с такими понятиями, как множество, подмножество, объединение, пересечение, разность множеств и т. п. 1.1. Здесь и далее рассматриваются только конечные множества (т. е. множества с конечным числом элементов). Декартовым произведением двух непустых множеств X' и У называется множество всех упорядоченных пар (я, у) таких, что х^Х, y^Y (обозначение: XX У). Подмножество U ^ X X У называется бинарным отношением между X и У. 42
Подмножество U s XXX называется бинарным отношением на множестве X. Будем писать xUy тогда и только тогда, когда (х, у) ^ U. Бинарное отношение U~1 называется обратным отношению U, если (х, у) е [7-1 тогда и только тогда, когда (у, х) е £/. Бинарное отношение С/, заданное на множестве X, называется: а) транзитивным, если для любых д;, г/, z из X таких, что xUy и yUz, имеет место соотношение xUz; б) рефлексивным, если для любого х^Х имеет место соотношение xUx\ в) антирефлексивным, если ни для какого х е X не имеет места соотношение xUx; г) симметричным, если для любых #, г/ из X таких, что xUy, имеет место соотношение г/СЛг; д) асимметричным, если для Любых х, у из X не выполнено по крайней мере одно из соотношений xUy и yUx\ е) антисимметричным, если для любых я, у из X таких, что одновременно выполняется #С/г/ и г/С/я, следует х = у: ж) совершенным, если для любых х, у, хФу, из X име ет место по крайней мере одно из соотношений xUy и yUx. Транзитивное отношение, заданное на множестве X, будем называть отношением псевдопорядка (или псевдопорядком), а множество X в этом случае — псевдоупорядоченным. Транзитивное и рефлексивное отношение, заданное на множестве X, будем называть отношением квазипорядка (или квазипорядком), а множество X в этом случае — квазиупо- рядоченным. Транзитивное и антирефлексивное отношение, заданное на множестве X, будем называть отношением строгого порядка (или строгим порядком), а множество X в этом случае — строго упорядоченным. Транзитивное, рефлексивное и антисимметричное отношение, заданное на множестве X, будем называть отношением нестрогого порядка (или нестрогим порядком), а множество X в этом случае — нестрого упорядоченным. Множество X (псевдо-, квази-, строго или нестрого упорядоченное) будем называть совершенным, если заданное на нем бинарное отношение является совершенным. Множество X с заданным на нем отношением строгого порядка называется линейно упорядоченным, если это отношение является совершенным. В противном случае X называется частично упорядоченным. Пусть X — множество тг-мерпых векторов х = (хи х2,... ..., хп), где Х\ действительные числа. Отношение ^ на 43
множестве X определим следующим образом: х > у, где х, у ^ X, если Xt ^ r/i 0 = 1, п). 1.2. Совокупность, состоящая из множества X и заданного на нем бинарного отношения U, называется ориентированным графом (обозначение: G = (X, U)). Элементы множества X называются вершинами графа G, а пары (x,y)^U— его дугами. Вершина ж называется началом дуги (х, г/), а вершина г/ — ее концом. В этом случае обычно говорят, что дуга {х, у) исходит из вершины х и заходит в вершину у. Дуга (х, х) называется петлей. Если U — некоторое множество неупорядоченных пар элементов из X, то совокупность G = (X, U) называется неориентированным графом. Пары {х, у) в этом случае называются ребрами графа G. Граф G = (X, [/) называется полным, если (х, у) ^ U для всех х,у^Х, х=£ у. Вершипы х^Х графа обычно изображаются точками па плоскости, ребра (х, у) е{/ — отрезками линий, соединяющими точки х и у, а дуги (х, у) е [/ — отрезками линий со стрелками, направленными от х к у. Наряду с обозначениями G = (X, U) для ориентированного графа и G = (X, U) для неориентированного графа будем употреблять обозначение G = (X, D) для формулировок, справедливых как для ориентированных, так и неориентированных графов. Если (х, у) ^ U, то говорят, что вершины хну смежны, а дуга (ребро) (х, у) инцидентна вершинам х и у. Графы G=(X,U) и G' = (Х',П) называются изоморфными, если существует такое взаимно-одпозиачиое отображение ср множества X на множество X', что (х, у) <=П тогда и только тогда, когда (ф(я), ф(г/))^£7', где ф(я) и ф(у) — образы элементов х и у соответственно при отображении ф. Отображение ф в этом случае называют изоморфизмом графа G на граф G'. Граф G' = (X', О') называется подграфом графа G = = (X, D), если X's X и из (х, у) е U' следует, что (х, у) е V. Если при этом из х, у е X' и (х, у) ^ £7 следует, что (х, у) е е= V', то подграф G' называется порожденным. Маршрутом в графе G = (X, £7) называется последовательность вершин хи х2, ..., хг такая, что (xh, xh+l)^U или (xh+i,xh)^D (/с = 1, г — 1). В этом случае говорят, что вершины х{ и хг связаны маршрутом. Путем в ориентированном графе G = (X, U) называется последовательность дуг вида 44
(xh x2), (x2, x3), .. ., (Xr-i, xr) или, что эквивалентно, маршрут xh х2, ..., хг такой, что (xh, xk+l) ^ U (к = 1, г — 1). Здесь х{ — начало, а а:г — конец нуги. Число г называется длиной пути. В дальнейшем иод путем подразумевается простой путь, т. е. путь, в котором все вершины различны. Контур — это ПУТЬ, у КОТОРОГО Xi = хт. Вершина х ориентированного графа G называется предшественником вершины у, если в G существует путь из х в у. Вершина у в этом случае называется потомком вершины х. Если в G имеется контур, то одна и та же вершина х может быть одновременно и предшественником, и потомком некоторой вершины у. Вершина х ориентированного графа G = (X, U) называется непосредственным предшественником вершины //, если (х, у) ^ U и в G не существует пути из х в у, не содержащего дуги (х, у). Вершина у в этом случае называется прямым потомком вершины х. Множество всех предшественников (потомков) вершины х в графе G будем обозначать через В0(х) (соответственно через Ас(х)). Множество всех непосредственных предшественников (прямых потомков) вершины х будем обозначать через Вс (я) (соответственно через Aq (х)\ Если из контекста ясно, о каком графе идет речь, индекс G будем иногда опускать. Компонентой связности графа G=(X,D) называется такой его порожденный подграф, который наряду с некоторой вершиной х содержит и все вершины, с которыми х связана маршрутом. Компоненты связности графа G определяют разбиение множества X на подмножества. Граф, состоящий из единственной компоненты связности, называется связным. Степенью вершины графа называется число дуг (ребер), инцидентных этой вершине. Если граф ориентированный, то число дуг, исходящих (заходящих) из некоторой вершины, называется полустепеныо исхода (захода) этой вершины. Вершина ориентированного графа называется: а) начальной, если ее полустепеиь захода равна нулю; б) конечной, или висячей, если ее полустепеиь исхода равна нулю; в) изолированной, если ее степень равна нулю. Вершины, не являющиеся висячими, называются промежуточными. Матрицей смежности графа G = (X, D) называется квадратная (0, 1)-матрица порядка |Х| такая, что mfj=l тогда и только тогда, когда (#,-, Xj) ^ О. 1.3. В дальнейшем в основном рассматриваются ориентированные графы, не содержащие контуров. 45
Вершины любого бесконтурного графа G = (X, U) можно распределить по рангам. При этом к первому рангу относятся все начальные вершины. Удаляя вершины первого ранга из графа (вместе с инцидентными им дугами), получаем некоторый подграф. Если этот подграф не пуст, множество всех его начальных вершин относим ко второму рангу исходного графа. Процедура повторяется до тех пор, пока все вершины исходного графа не будут распределены по рангам. Если граф задай своей матрицей смежности, то для распределения его вершин по рангам достаточно выполнить не более 0(1 XI2) операций*). Высотой вершины х бесконтурного ориентированного графа называется длина наибольшего из путей из х в конечные вершины графа. Высота конечной вершины равна единице. Цепыо С = {xv х2,..хп) называется ориентированный граф G = (X, U) такой, что X = {хи х2,..., хп), U = {(xvx2), (х2,х3), ..., (хп-^Хп)}. Вершина xt называется началом, а Хп — концом цепи С. Будем говорить, что вершина х расположена в цепи С левее вершины у, если путь из х{ в х короче пути из х{ в у. Будем говорить, что цепь С" = (х0, хи ..., хп) получена из цепи С = (х{,..хп) присоединением к ней слева вершины х0. Аналогично определяется операция присоединения к цепи вершины справа. Если С{ = (хи х2,..., хт), С2 = (уг Угг .ys) — такие цепи, что множества их вершин не пересекаются, то иод (Ci, С2) будем понимать цепь С = (xv х2,..., хг, у1? ... У*). Граф будем называть выходящим деревом (обозначение: £Г + ), если он связный, в нем есть единственная начальная вершина (называемая корнем), а все остальные вершины имеют ровно одного непосредственного предшественника каждая. Поддеревом с корнем х выходящего дерева называется подграф графа £Г+, порожденный вершиной х и всеми ее потомками. Пусть х — вершина выходящего дерева ST*. Поддеревья, корнями которых являются прямые потомки вершины х, будем называть поддеревьями вершины х. Граф будем называть входящим деревом (обозначение: если при изменении ориентации всех его дуг на противоположную получается выходящее дерево. Аналогичным *) Здесь через 0(f(x)) обозначается функция g(x), для которой 8 (х) существует такая константа с, что lim sup , (~г = с. ЗС-» оо / w 46
образом определяются поддерево с корнем х входящего дерева 3~~ и поддеревья вершины х дерева £Г_. Изолированная вершина по определению является одновременно и выходящим, и входящим деревом. Граф Э~ будем называть древовидным (или лесом), если каждая его компонента связности — дерево (выходящее либо входящее). Дуга (х, у) графа называется транзитивной, если в нем существует путь из вершины х в вершину у, не содержащий дуги (х, у). Граф G называется транзитивным, если для любых его вершин х, у таких, что x^BG(y)_, граф G содержит дугу (х,у). Транзитивный граф G = (X,U) называется транзитивным замыканием графа G = (X, U), если U и любая дуга (х, y)^U\U является транзитивной. Граф G = (X, U) называется параллельной композицией графов Gi = (Хи Ui) и G2 = (Х2, U2) (обозначение: G = GipG2) таких, что Х{ П Х2 = 0, если X = Xt U Х2 и Е/ = £Л U Е/2. Граф G = (X, U) называется последовательной композицией графов Gi = (Xi, £Л) и G2 = (X2, U2) (обозначение G = = GxsG2) таких, что Xt П Х2 = 0, если X = Х4 U Х2 и U = — U± U U2 U Х1ХХ2, гДе —множество всех висячих вершин графа Giy а Х2 — множество всех начальных вершин G?. Будем говорить, что граф G получен в результате выполнения операции параллельной либо последовательной композиции из графов G4 и G2, если G = G{pG2 либо G = = GisG2 соответственно. Обозначим через G1 граф, полученный из графа G в результате последовательного удаления всех транзитивных дуг G. Граф G будем называть последовательно-параллельным, если граф G1 может быть получен в результате последовательного выполнения операций последовательной и параллельной композиции из одновершинных графов G(l) = (х{, 0), Xi^X (i= 1,1X1). Одновершинный граф по определению считается последовательно-параллельным. Как нетрудно заметить, любой древовидный граф является одновременно и последовательно-параллельным. Граф G называется разложимым, если граф G1 может быть представлен в виде последовательной либо параллельной композиции двух других графов. В противном случае G называется неразложимым. Пусть графы G1? G2, ..., Gw таковы, что граф G может быть получен из них в результате последовательного выполнения m— 1 операции последовательной и параллельной композиции. Тогда эти графы называются компонентами разложения G, и можно построить
так называемое декомпозиционное дерево графа G, показывающее, как G может быть получен из Gu Gv ..., Gm в результате последовательного выполнения операций композиции. Декомпозиционное дерево T(G) графа G представляет собой выходящее бинарное дерево (каждая промежуточная вершина имеет ровно два прямых потомка) с т висячими вершинами. Висячим вершинам сопоставлены графы Gu G2, ..., Gm. Промежуточным вершинам (называемым операционными) сопоставлены индексы (s или р) операций последовательной либо параллельной композиции. Декомпозиционное дерево 74G) графа G определяется итеративно: пусть G = GxsG2 либо G = G[pG2 и деревья Т (Gx) и Т (G2) уже построены. Тогда строим новую вершину О, которую делаем непосредственным предшественником корней деревьев Т (Gx) и Т (G2). Сопоставляем вершине О индекс s (если G = G1sG2) либо р (если G = G1pG2). Вершина О — корень построенного описанным образом дерева T(G). Если G1 либо G2 — неразложимый граф, то считаем, что его декомпозиционное дерево состоит из единственной вершины, которой сопоставлен граф G* либо G2 соответственно. Поскольку операция последовательной композиции не коммутативна (G1sG2 =^= G2sG1)t следует уточнить способ представления дерева I4G). Будем считать, что дерево 74G) уложено па плоскости так, что вершины, принадлежащие одному рангу, и только они расположены па одной горизонтали. При этом корень дерева Т (Gx) расположен правее корпя дерева т(0'2) по отношению к наблюдателю, находящемуся в операционной вершине О. Отметим, что любое декомпозиционное дерево с m висячими вершинами имеет ровно m— 1 операционную вершину. В этом нетрудно убедиться, воспользовавшись индукцией по числу пг. Далее пе будем делать различия между висячими вершинами дерева T(G) и соответствующими им компонентами разложения графа G. Рассмотрим процедуру восстановления графа G по его декомпозиционному дереву 74G). Найдем в T{G) операционную вершину О, смежную с двумя висячими вершинами Gx и G2. Удалим из 74G) вершины Gx и G2 вместе с инцидентными им дугами, а вершине О сопоставим граф GvsG2 либо G2pG2 — в зависимости от того, индекс какой операции сопоставлен вершине О. В полученном декомпо- 48
зпцпонном дереве T'(G) графа G на одну висячую вершину меньше, чем в исходном. Повторим описанные действия. Процесс завершается получением декомпозиционного дерева, состоящего из единственной вершины. Граф, соответствующий этой вершине, и есть граф G. Далее под декомпозиционным деревом T(G) графа G будем понимать декомпозиционное дерево графа G1. Очевидно, граф G восстанавливается по дереву T(G) с точностью до транзитивных дуг. Если G = G\ то G восстанавливается по T(G) однозначно. Декомпозиционное дерево T(G) графа G называется полным, если всем его висячим вершинам соответствуют неразложимые графы. Из определения последовательно-параллельного графа следует, что висячим вершинам его полного декомпозиционного дерева соответствуют одновершинные графы, каждый из которых можно рассматривать просто как элемент множества X. Отметим, что построение полного декомпозиционного дерева последовательно-параллельного графа G требует Рис. 1.1. выполнения не более 0(|Х|2) операций (см., например, [429, 430]). На рис. 1.1 приведен пример последовательно-параллельного графа G и его полного декомпозиционного дерева T(G). 4 В, С. Танаев и др, 49
1.4. Пусть па множестве X задано бинарное отношение 1J' ^ХХХ. Ориентированный граф G' = (X, U') обычно называют графом этого отношения. Если U' — транзитивное отношение, то граф G=(X,U), полученный из графа G' в результате удаления всех его транзитивных дуг, называется графом редукции отношения U'. Если U' — отношение строгого порядка, то граф G' не содержит петель и контуров. Если U' — отношение нестрогого порядка, то граф G' не содержит контуров, но содержит петли (х, х) для всех х^Х. Граф G' квазинорядка содержит петли (х, х) для всех х^Х и может иметь контуры. Граф G' псевдопорядка может содержать контуры и петли (х, х), но не обязательно для всех х^Х. Во всех случаях граф G' является транзитивпо замкнутым, т. е. наряду с путем из вершины х в вершину у он содержит и дугу (х, у). Пусть на множестве X задано отношение =>- совершенного псевдопорядка. Элемент х° е X называется минимальным (относительно =0 элементом множества X, если для любого х ^ X имеет место х =>- х°. Элемент х° ^ X называется максимальным элементом X, если х° =>- х для любого х^Х. Если G — граф редукции отношения совершенного псевдопорядка, а х° — минимальный (максимальный) относительно => элемент множества X, то в G для любой вершины х^Х существует путь из х в х° (соответственно из х° в х). Ясно, что один и тот лее элемент х° е X может быть одновременно и минимальным, и максимальным. В частности, если G представляет собой контур, то любой элемент х^Х является и минимальным, и максимальным. Пусть на множестве X задано отношение -> строгого порядка, a G = (X, U) — граф редукции этого отношения. Очевидно, если х г/, то в G существует путь из вершины х в вершину у. Если (х, у) ^ U, то будем употреблять обозначение х у. В этом случае имеем х-+у, и не существует такого zeX, что x^.z и z^y. Если ни одно из соотношений х у и у х не имеет места (т. е. в G не существует пути ни из х в г/, ни из у в х), то будем употреблять обозначение х ~ у и говорить, что элементы х и у несравнимы. В дальнейшем наряду с обозначениями х у, х у и G х ~ у будут нередко использоваться обозначения х -*■ г/, х-—и х ° у соответственно. Здесь символ G указывает на то, что графом редукции данного отношения является граф G. Очевидно, у ^ Ас(х) тогда и только тогда, когда х -> у; у^Ва{х) тогда и только тогда, когда у х. Аналогично, 50
у ^ Ag (х) тогда и только тогда, когда х-—>у; уе Bq (х) тогда и только тогда, когда у *—>х. Будем употреблять обозначение EGix) для множества всех тех у ^ X, для которых х~у. Если из контекста ясно, о каком графе идет речь, индекс G будем опускать. Если граф G задан своей матрицей смежности, то выделение множества Ас(х) (множества BG(x)) требует выполнения не более 0(1 XI2) операций. Действительно, для получения множества AG(x) (множества BG(x)) достаточно выполнить не более |Х| шагов. На первом шаге отыскиваются все прямые потомки (соответственно непосредственные предшественники) вершины х, а па каждом из последующих шагов — все прямые потомки (соответственно непосредственные предшественники) каждой из найденных па предыдущем шаге вершин. Для выявления всех прямых потомков (непосредственных предшественников) вершины графа необ- ходимо^ отыскать все единицы, расположенные в соответствующей ей строке (соответственно столбце) матрицы смежности. Поиск указанных единиц требует выполнения 0(1 XI) операций. Элемент х° ^ X называется минимальным (относительно -*) элементом множества X, если не существует такого х ^ ^ X, что х° х. Элемент х° ^ X называется максимальным элементом множества X, если не существует такого х^Х, что х -*■ х°. В графе G (как, впрочем, и в графе О') минимальным элементам соответствуют конечные (висячие) вершины, а максимальным элементам — начальные вершины. Очевидно, что элемент, соответствующий изолированной вершине графа G, является одновременно и минимальным, и максимальным. Множество всех минимальных (максимальных) элементов множества X будем обозначать через X" (соответственно через Х+). Во многих случаях граф G = (X, G) редукции отношения строгого порядка -► удобно задавать списками предшественников и (или) потомков его вершин. Такая форма задания позволяет, в частности, отыскивать множество всех минимальных (максимальных) относительно элементов множества X и удалять из X данный минимальный (максимальный) элемент, выполняя при этом не более 0(|Х|) операций. При задании графа G списком предшественников его вершины нумеруются числами 1, 2, ..., IXI, и организуются два одномерных массива — QB и SB. Массив QB содержит IX | элементов, и в &-й его позиции располагается число bh непосредственных предшественников вершины графа G с но- 4* 51
\х\ мором к. Массив SB содержит 2 Ьi элементов, и в его i=i h—1 к—1 к позициях 2 + 1» 2 bi + 2, ..., 2bt располагаются i=i i=i i=i (в произвольном порядке) номера непосредственных предшественников вершины графа G с номером к. При задании графа G списком потомков организуются массивы Qa и Sa. В к-й позиции массива QA располагается к-1 h-1 число ак = | Aq (к) |, а в позициях 2ai + 1, 2 ai + 2, ... i=i i=i к • , 2 ai массива SA располагаются номера прямых потом- i=i ков вершины с номером к. Для отыскания множества всех минимальных (максимальных) элементов множества X достаточно располагать массивом Qa (соответственно массивом QB). Элемент с номером к является минимальным (максимальным) тогда и только тогда, когда в к-й позиции массива Qа (соответственно массива QB) расположен нуль. Пусть элемент с номером к является минимальным элементом множества X. Для удаления этого элемента из X (с сохранением принятой формы представления оставшегося множества) достаточно, кроме массива Qa, располагать массивами QB и SB. При этом находим множество всех непосредственных предшественников элемента с номером к, иросмат- h-1 b-1 к ривая позиции 2 + 1, 2 + 2, ... у 2 ^ массива QB, 1=1 1=1 1=1 и для каждого такого элемента j вычитаем единицу из числа а,, расположенного в позиции / массива QA. Элемент с номером к помечаем. Для этого можно, например, в к-ю позицию массива QA поместить число (—1). Аналогичным образом осуществляется удаление заданного максимального элемента из множества X. Для этого достаточно иметь массивы QB, Qa И SA. Очевидно, что удаление минимального (максимального) элемента из X с последующей корректировкой массива QA требует выполнения не более 0(1 XI) операций. Отметим, что в случае, когда граф G является выходящим (входящим) деревом, для его представления достаточно иметь только массив Qа (соответственно QB). Действительно, пронумеруем элементы X следующим образом. Корню выходящего дерева сопоставим номер один. Пусть v-му рангу графа G принадлежит rv вершин. Тогда вершины второго 52
ранга нумеруются числами 2, 3, ..., r2 + 1. Вершины третьего ранга нумеруются числами г2 + 2, г2 + 3, ..., г2 + г3 + 1, причем сначала нумеруются все потомки вершины 2, затем все потомки вершины 3 и т. д. Аналогичным образом последовательно нумеруются вершины остальных рангов. При таком способе нумерации прямыми потомками вершины с номером к (если она не висячая) являются вершины с но- /i-l /i-l и мерами 2 ai + 2,- 2 яi + 3У ..2ai + 1» а непосредствен- i=i i=i i=i ным предшественником этой вершины является вершина с г-1 г таким номером г, что 2 ai + 2^ 2 ai + !• i-i /=i В случае входящего дерева нумерация осуществляется аналогичным образом. Она начинается с корня, затем нумеруются все вершины, имеющие высоту два, после них — вершины, высота которых равна трем и так далее. При этом непосредственными предшественниками вершины с номером к (если она не начальная) являются вершины с номерами h—1 h—1 h 2 + 2, 2 bi + 3y ..., 2 bi + 1, а прямым потомком 1=1 1=1 1=1 этой вершины является вершина с таким номером г, что г-1 г 2 Ь/ + 2</с< 2б/ +1. 1=1 1=1 Выходящее (входящее) дерево можно также представлять одним массивом SB (соответственно SA), поскольку каждая вершина, кроме корня, имеет ровно одного непосредственного предшественника (соответственно прямого потомка). При этом нет необходимости в специальной нумерации вершин графа. Такая форма представления, однако, плохо приспособлена для отыскания минимальных (в случае исходящего дерева) и максимальных (в случае входящего дерева) элементов множества X. 1.5. Пусть X = {.Ti, xv ..., хт). Под перестановкой длины г из элементов множества X обычно понимают упорядоченную выборку (т. е. последовательность) г элементов множества X. Значение г ^ m и элементы в перестановке не повторяются. Если г = т, то говорят о перестановках элементов множества X или о полных перестановках. Если r<m, то перестановка называется частичной. Символической записью этой конструкции является яг = = (^342» • • ч xir) или яг = ([1], [2], ..., [г]), где xih или Ik] — элемент из X, расположенный в перестановке яг на k-м слева месте. Если природа элементов множества X без¬ 53
различна, то зачастую удобнее иметь дело не с самими элементами множества X, а с их номерами. В этом случае лг = (^1, i2, ir)9 где яг — перестановка длины г из элементов множества {1, 2, ..т). Перестановку элементов множества X's X обозначают в ряде случаев через тех'- Длина этой перестановки равна \Х'\. Еслия = Ях', то через {я} обозначается множество X', т. е. (л)=Х'. Если я' = х{<1, . . ., xip)r я" — (xiv xj2, . Xjq)— перестановки из элементов множества X и {я'} П П{я"} = 0, то под перестановкой я = (я', я") понимается перестановка (xiv xi2, . .., xip, xjv xj2, . . ., xjq). Пусть па множестве X задано отношение строгого порядка и G = (X, U) — граф редукции этого отношения. Перестановка я = (xiv- хи, ,. ., xir) называется допустимой относительно заданного порядка или, что то же, относительно графа G, если из условия xik~^xit следует к<1 для всех 1 < &, I ^ г. § 2. Сбалансированные 2-3-деревья Материал данного параграфа может быть использован при разработке эффективных алгоритмов решения многих дискретных задач, в том числе задач теории расписаний. Описываемая ниже структура данных позволяет осуществлять ряд процедур над совершенными псевдоуиорядочси- ными конечными множествами X, выполняя не более 0(log 1X1) операций. К таким процедурам относятся, в частности, отыскание минимального (максимального) относительно псевдопорядка =>■ элемента множества X, удаление элемента из X, объединение подмножеств множества X. 2.1. Выходящее дерево называется 2-3-деревом, если из каждой его вершины, не являющейся висячей, исходит две или три дуги. Выходящее дерево называется сбалансированным, веди длины всех путей из его корпя в висячие вершины одинаковы. Высотой дерева называется высота его корня. Оцепим высоту сбалансированного 2-3-дерева. Любое 2-3-дерево с m висячими вершинами имеет ие более пь — \ промежуточных вершин. Действительно, максимум числа промежуточных вершин достигается в случае, когда из каждой промежуточной вершины выходит ровно две дуги, а в этом случае их число равно m— 1, что легко проверить, воспользовавшись индукцией по числу т. Из приведенных определений вытекает, что к-му рангу сбалансированного 2-3-дерева должно принадлежать ие ме- 54
nee 2h~i вершин. Пусть m — число висячих вершин, a q — число рангов сбалансированного 2-3-дерева. Тогда 2т —1 — я максимальное число вершин дерева и 2т — 1^2 2ft_1 = к=1 = 2q—1, откуда получаем q^\og2m. Следовательно, высота сбалансированного 2-3-дерева не превосходит 1 + log т. 2.2. Пусть на множестве X = {х{, х2, ..., хт} задано отношение => совершенного псевдопорядка. Обозначение (Х\ =»-) будем употреблять для подмножества X' из X, подразумевая, что на нем сохраняется псевдопорядок, заданный на множестве X. Обозначим через ТЬ(Х) сбалансированное 2-3-дерево с m висячими вершинами, каждой из которых поставлен во взанмно-одпозпачтюе соответствие элемент множества X. Можно считать, таким образом, что висячие вершины дерева ТЪ(Х) пронумерованы числами от 1 до т, и не делать различия в дальнейшем между элементами множества X и висячими вершинами ТЬ(Х). Для нумерации промежуточных вершин дерева ТЬ{Х) будем использовать числа от m f 1 до 2m— 1, возможно, не все. Пусть v — промежуточная вершина дерева ТЬ(Х). Обозначим через Xv множество висячих вершин дерева ТЬ(Х), в каждую из которых существует путь из вершины v. Сопоставим вершине v две метки umln и утах, где Утт — номер минимального (одного из минимальных) элемента множества Таблица 2.1 I Номер вершины 1 2 3 4 5 6 7 8 9 10 И II Номер непосредственного пред¬ 8 8 9 9 10 10 10 И 11 И шественника III Метка i>min 1 4 7 7 IV Метка rmax 1 3 6 3 V Номера прямых 1 3 5 8 потомков 2 4 6 9 7 10 (Хи? =И, a rw — номер максимального (одного из максимальных) элемента этого множества. Сбалансированное 2-3-дерево ТЬ(Х) удобно представлять таблицей (см. табл. 2.1), состоящей из пяти строк и не более чем 2m 1 столбцов. Первая строка таблицы содержит но¬ 55
мера вершин 2-3-дерева ТЬ(Х). В к-й клетке второй строки записывается номер непосредственного предшественника вершины к. В к-й клетке третьей и четвертой строки содержатся метки kmln и /стах соответственно. Номера прямых потомков вершины к (их не более трех) записываются в к-й клетке пятой строки. Табл. 2,1 соответствует ситуации, когда m = 7 (процедура построения сбалансированного 2-3-дерева описывается ниже). Очевидно, для задания (или построения) сбалансированного 2-3-дерева достаточно заполнить первую и вторую строки таблицы. Пятая строка имеет вспомогательный характер и используется при расстановке меток вершин, а также при реализации некоторых процедур над 2-3-деревьями. 2.3. Процедуру построения дерева ТЬ(Х) для даппого множества X можно условно разделить на несколько этапов, число которых на единицу меньше высоты ТЬ(Х). На первом этапе заполняются первые m клеток второй строки таблицы. В клетки 1 и 2 помещается число m+ 1, в клетки 3 и 4 — число ш + 2 и т. д. Если тп — четное число, то в клетку m помещается число пг + пг/2, если m — нечетное число, то в клетку тп (так же как и в клетки ш — 2 и тп — 1) помещается число ш+ (т — 1)/2. Обозначим через L х _J наибольшее целое число, не превосходящее число х. На втором этапе заполняются клетки второй строки с номерами от т+ 1 до m+L m/2j включительно. В клетки т + 1 и т + 2 помещается число т + + LW2 J+ 1, в клетки /?г + 3 и 4 —число т+[_т/2 __|'+2 и т. д. Если число клеток, заполняемых па втором этапе,— нечетное, то в последние три из пих помещается одно и то же число. Процесс завершается этапом, па котором число заполняемых клеток равно двум или трем. Число, помещаемое в клетки второй строки на последнем этапе, является номером корня дерева. Нетрудпо убедиться, что построенная описанным образом таблица однозначно определяет сбалансированное 2-3-дерево (без меток). В табл. 2.2 и 2.3 приведепы примеры заполпепия первых двух строк при т = 11 и т = 8 соответствеппо. Пупктиром отделены этапы. В первом примере корнем дерева является вершина 19, во втором — вершина 15. Заполнение пятой строки таблицы можпо осуществлять одновременно с заполнением второй строки: помещая в к-го клетку второй строки число Z, в l-ю клетку пятой строки помещаем число к. Очевидно, первые т клеток пятой строки таблицы, представляющей дерево ТЬ(Х), пусты. Расстановка меток промежуточных вершин сбалансиро¬ 56
ванного 2-3-дерева осуществляется по уровням, начиная с (q— 1)-го уровня (q — высота дерева). На (q — D-м уровне (l<Z<g—1) для каждой вершины v в качестве метки 1>ш1п (соответственно vmax) выбирается номер произвольного минимального (максимального) элемента множества (X', Здесь при 1=1 множество X' = Xv, а при I > 2 множество Таблица 2.2 I 1 2 3 4 5 6 7 8 9 10 II 12 12 13 13 14 14 15 15 16 16 I И 12 13 14 15 16 17 18 ; 19 II 16 17 17 18 18 18 19 19 Таблица 2.3 I 1 2 3 4 5 6 7 8 j 9 10 11 12 | 13 14 j 15 и 9 9 10 10 11 11 12 12 d 1 13 13 14 14 | 15 15 X' — множество элементов, номера которых являются минимальными (максимальными) метками прямых потомков вершины V. Поскольку IX' 1^3, для отыскания метки vm[n (либо утах) достаточно выполнить не более двух операций сравнения. Для отыскания всех прямых потомков вершины v достаточно обратиться к соответствующей клетке пятой строки таблицы. Очевидно, (q—D-му уровню принадлежат вершины т + + 1, ш + 2, ..., т + L т/2 _J, (q — 2)-му уровню — вершины т + ]_т/2 |+1, ..., т +L т/2 _| +|_иг/4 J и т. д. Нетрудно убедиться, что реализация описанной процедуры построения дерева ТЬ(Х) и расстановки меток вершин требует выполнения не более 0{тп) операций. Табл. 2.1 представляет сбалансированное 2-3-дерево для множества X = {1, 2, 3, 4, 5, 6, 7), на котором отношение =^ определено следующим образом (вместо => Xj будем писать U*,*j)): (1,2), (1,4), (1,5), (1,6), (1,7), (2,1), (2,4), (2,5), (2,6), 57
(2.7) , (3,1), (3,2), (3,4), (3,5), (3,6), (3,7), (4,5), (4,6), (4,7), (5.7) , (6,5), (6,7). Поскольку в совершенном псевдоупорядоченпом множестве существует, вообще говоря, не единственный минимальный и не единственный максимальный элемент, значения меток vm[n и утах определены неоднозначно. Например, в восьмых клетках третьей и четвертой строк табл. 2.1 (либо в одной из них) можно было поместить число 2. Для отыскания некоторого минимального либо максимального элемента множества (X, =>), представленного деревом ТЬ(Х), достаточно обратиться соответственно к метке ^min либо ^тах корня у0 этого дерева. 2.4. Рассмотрим процедуру объединения двух подмножеств мноохества X, каждое из которых представлено сбалансированным 2-3-деревом. Пусть Хн Х2 — непустые подмножества множества X, Xt П Х2 = 0, |Х,|=т1? |Х2|=га2, a 7VXi), ТЬ(Х2) — сбалансированные 2-3-деревья с высотами q! и q2, представляющие эти множества. Не теряя общности, можно считать, что qi ^ q2. Под процедурой объединения мнозкеств Xj и Х2, представленных деревьями ТЬ(Х{) и Гь(Х2), понимается построение дерева ТЬ(Х{ U Х2). Если q 1 = q2, то для построения ТЬ(Х{ U Х2) достаточно образовать новую вершину v() и сделать корни ТЬ(Х{) и ТЬ(Х2) прямыми потомками v°. Полученное дерево является сбалансированным 2-3-деревом с корнем у0. Метки гДт и ^тах легко определить, зная соответствующие метки корней деревьев ТЬ(Х{) и ТЬ(Х2). Если gi > б/2, найдем в ТЬ(Х^) вершину у, высота которой равна q2 + 1. Если v имеет лишь два прямых потомка, сделаем корень дерева ТЬ(Х2) третьим ее потомком. В полученном сбалансированном 2-3-дереве найдем новые метки вершины v и всех ее предшественников (их не более log/тг,). Если выбранная вершина и имеет три прямых потомка, выберем одного из них — вершину и' — и удалим из ТЬ(Х{) дугу (у, у'). В результате получим два сбалансированных 2-3-дерева: то, что осталось от ТЬ{Х{) (обозначим его через ть (*;)), и поддерево с корнем у'. Объединим дерево с корнем у' с деревом ТЬ(Х2) (их высоты равны) и обозначим результат через ТЬ(Х2). Метки не корректируются до завершения процесса объединения ТЬ(Х{) и ТЬ(Х2). Высота ТъШ) равна q2 +1. Повторим попытку объединения rb(Xi) и ТЬ(Х2). Если qi > q2 + 1, то в качестве вершины, имеющей высоту q2 + 2, в ^(Xj) можно выбрать иепосред- 58
ственпого предшественника вершины v. Всего таких «попыток» объединения может быть не более log После построения Tb(Xi U Х2) определим новые метки вершины v и всех ее предшественников, а также метки вновь построенных вершин. Общее число таких меток не превосходит OdograJ. 2.5. Рассмотрим теперь, как описанный процесс построения Tb(X 1 U Х2) и корректировки меток может быть реализован в виде последовательности операций над таблицей, представляющей сбалансированное 2-3-дерево. Для того чтобы реализовать этот процесс с помощью не более чем Oilogmd операций, необходимо, во-первых, чтобы оба дерева—Tb(XJ и ТЬ(Х2) — были представлены общей таблицей и, во-вторых, чтобы были известны номера корней этих деревьев. Пусть v{i), v(2) — корпи деревьев Tb{Xt) и ТЬ(Х2) соответственно, оба дерева представлены одной и той же таблицей, имеющей 2m — 1 столбцов. Не теряя общности, можно считать, что пустые столбцы таблицы расположены в правой ее части и т' — номер первого из них. Высоты qx и q2 деревьев Tb(Xi) и ТЬ(Х2) можно определить, найдя путь из корня дерева в какую-нибудь из его висячих вершин, что легко сделать с помощью пятой строки таблицы. Определение б/i и q2 требует, таким образом, выполнения не более Odogmi) операций. Если б/i = q2, то для построения ТЬ(Хi U Х2) достаточно в клетки v{i) и v{2) второй строки поместить число m , в клетку m пятой строки — числа у(1) и v(2) и известным образом заполнить затем клетки m' третьей и четвертой строк. Если q{ > q2, то с помощью пятой строки (двигаясь от корня дерева ТЬ{Х{)) найдем вершину у, высота которой равна б/2+1. Если в клетке и пятой строки находится два числа, поместим туда и число v{2). Затем скорректируем метки вершины и и всех ее предшественников. Если же в выбранной клетке пятой строки находится три числа, удалим одно из них, а затем поместим его и число и{2) в клетку т' пятой строки. В клетку v(2) второй строки поместим число т\ а в клетке, соответствующей удаленной вершине, заменим число и на число т'. Метки пока не корректируем. Считая т' корнем второго дерева (корень первого—у(1)), повторяем попытку объединения этих деревьев. В качестве вершины первого дерева, имеющей высоту q2 + 2, можно взять непосредственного предшественника вершины v (в клетке и второй строки таблицы). При построении дерева Tb{Xx U Х2) запоминаем номера вершин, метки которых должны быть определены или скор- 59
рек-гировапы. Напомним, Что такими вершййамй являются вершина v, все ее предшественники, а также новые вершины, добавляемые ко второму дереву. Процесс корректировки меток начинается с вершины, имеющей минимальный номер. Нетрудно убедиться, что описанный способ реализации процедуры объединения двух сбалансированных 2-3-деревьев вместе с корректировкой меток требует выполнения не более чем CHlogT/ii) операций. 2.6. Рассмотрим процедуру удаления элемента из множества X, представленного сбалансированным 2-3-деревом ТЬ(Х). Пусть х.0^Х — удаляемый элемент. Под процедурой удаления х.0 из X понимается построение сбалансированного 2-3-дерева Ть(Х\х.0). Обозначим через и? предшественника вершины i°, сопоставленной элементу х{0 (в дереве ГЬ(Х)), путь из которого в i° имеет длину Z + 1. Если q — высота дерева ГЬ(Х), то ! — корень этого дерева. Если вершина v°x (непосредственный предшественник вершины i°) имеет три прямых потомка, то для получения Ть(Х\х.0) достаточно удалить вершину i° из дерева ТЬ(Х) (вместе с дугой (у?, i0)) и скорректировать метки вершин V% v°2, ..ug_x. В терминах операций над таблицей, представляющей дерево ГЬ(Х), это означает следующее. Из клетки v\ пятой строки таблицы удаляем число i°, а из клетки i° второй строки удаляем число *;?. Затем определяем новые метки вершин yj, v\, ..., ulj-i- Очевидно, для реализации процедуры удаления элемента из множества X в этом случае требуется выполнить не более 0(log m) операций, где m= 1X1. Пусть у? имеет лишь два прямых потомка — i° и i'. Тогда дерево Г(1), полученное из ТЬ(Х) в результате удаления вершины г°, уже не будет 2-3-деревом (вершина v\ имеет в нем лишь одного прямого потомка), и для получения Т^ХЧ^требуготся дополнительные преобразования. В этом случае к корректировке меток приступим лишь после того, как все эти преобразования будут завершены. Найдем вершину v' в дереве Т(1), являющуюся прямым потомком вершины v\. Если v' имеет три прямых потомка, сделаем одного из них (вершину i") прямым потомком вершины ^предварительно удалив дугу (i/, i"). Нетрудно 60
заметить, что полученное Дерево является сбалансированным 2-3-деревом. Скорректируем метки вершин v'r yj, у”» • * • „О • • • 1 ^q—1* f Если v' имеет два прямых потомка, сделаем г прямым потомком вершины i/, удалив при этом вершину у? из дерева. Если в полученном дереве Г(2) вершина v\ имеет два прямых потомка, то Т(2)— искомое дерево Ть (Х\я.0)г и остается лишь скорректировать метки вершин v\ ... ..., В противном случае Т{2) не является сбалансирован¬ ным 2-3-деревом, причем вершина ^—единственная его промежуточная вершина, имеющая лишь одного прямого потомка. Проведем над Т(2) преобразования, аналогичные выполненным над Г(1),— с той лишь разницей, что роль вершины будет играть вершина^, вершины — вершина vа вершины i — вершина v' (роль же вершины г/ будет играть некоторый прямой потомок v" вершины г;?)» Если в дереве Г(3), полученном из Т{2) в результате выполнения таких преобразований, вершина будет иметь лишь одного прямого потомка, преобразуем и Г(3), и т. д. Возможна ситуация, когда в результате выполнения описанных действий будет получено дерево, корень которого имеет единственного прямого потомка. В этом случае корень следует удалить. Новым корнем станет вершина г^_2. При реализации процедуры удаления элемента следует запоминать вершины, множество прямых потомков которых изменялось в ходе преобразований. Всего таких вершин вместе с их предшественниками может быть не более чем q. Таким образом, реализация процедуры удаления элемента требует выполнения не более чем 0(\ogm) операций. 2.7. Перестановка я — Х{2, ... , хгт) элементов совер¬ шенного псевдоупорядоченного множества X называется не- возрастающей (неубывающей) относительно =^, если из условия v < ц следует #^=>2^ (соответственно х\^=^х1^) при v = 1, т, ц — 1, т. В этом разделе описывается процедура построения монотонной (невозрастающей либо неубывающей) относительно => перестановки элементов множества X. Между перестановками элементов X и перестановками их номеров существует взаимно-однозначное соответствие. Поэтому можно говорить о невозрастающей или неубывающей относительно заданного на X совершенного псевдопорядка перестановке номеров элементов X. 61
Для построения невозрастающей перестановки (i{, i2> ... ..., im) номеров элементов множества X достаточно иметь сбалансированное 2-3-дерево ТЬ(Х), каждой промежуточной вершине v которого сопоставлена лишь одна метка — метка Ушах- В качестве выбираем номер элемента множества X, являющийся меткой корня дерева ТЬ(Х). Удаляем вершину U из дерева ТЬ{Х) и, не выполняя преобразования полученного дерева Г(1) в сбалансированное 2-3-дерево, определяем новые метки вершин. В качестве i2 выбираем номер элемента X, являющийся меткой корня дерева Г(1), удаляем i2 из T{i) и т. д. Поскольку высота дерева ТЬ(Х) не превосходит 1 + logm, реализация процедуры построения иевозрастающей перестановки элементов множества X требует выполнения не более Oimlogm) операций. Построение неубывающей перестановки номеров элементов множества X осуществляется аналогичным образом с помощью сбалансированного 2-3-дерева, промежуточным вершинам и которого сопоставлены метки r>mln. 2.8. При решении некоторых задач приходится сталкиваться с необходимостью отыскания не минимального или максимального элемента псевдоупорядоченпого множества X, а максимального элемента множества Xj = {х е Х\х => х) либо минимального элемента множества Х2 = {х е Х\х =>■ я"}, где х\х"^Х. Для реализации такого рода процедур за 0(log m) операций необходимо слегка модифицировать описанную выше структуру данных. Сбалансированное 2-3-дерево будем называть упорядоченным, если для любых двух его вершин v и v' одного и того же ранга либо утах <= ^тт, либо um\n => итах. Для построения упорядоченного сбалансированного 2-3-дерева достаточно построить неубывающую (или невозрастающую) перестановку элементов X, а затем воспользоваться описанной в разделе 2.3 процедурой, действуя при ее реализации так, как если бы элементы X были перенумерованы в соответствии с указанной перестановкой. Очевидно, построение упорядоченного сбалансированного 2-3-дерева требует выполнения Oimlog m) операций. Поиск максимального элемента множества Х4 с использованием упорядоченного дерева ТЬ(Х) осуществляется следующим образом (предполагается, что соотношение х => х не имеет места, поскольку в противном случае х — искомый элемент). Среди прямых потомков корня дерева находим такую вершину У(1)» ЧТО И l4riax (либо Ушах = 62
= х'). Затем среди прямых потомков вершины у(1) находим вершину у(2), удовлетворяющую аналогичным условиям, и т. д., пока не будет найден искомый элемент множества Х{. На некотором шаге описанной процедуры может оказаться, что требуемой вершины не существует. В этом случае среди рассматриваемых на данном шаге вершин найдется такая вершина у', что vmin = х • Если число рассматриваемых вершин равно двум, то Ушах — искомый элемент, где и" — вторая вершина. Если число рассматриваемых вершин равно трем (пусть это у', v", у"'), то возможны два варианта: п т п . п , т , ш 1) Углах X И Ушах”^ Уппп либо ^тах^1^ И ^min =^~ х i ^тах4^ -Ф= х' И Ушах ■<= Утт, Либо Утах х и Vm-m=>X. В ПврВОМ случае искомым является элемент Ушах» во втором — элемент Ушах* Поиск минимального элемента множества Х2 осуществляется аналогичным образом. Нетрудно убедиться, что описанная процедура поиска максимального элемента множества Х{ либо минимального элемента Х2 требует выполнения О (log т) операций. Пусть X' <= X и ТЬ{Х') — упорядоченное сбалансированное 2-3-дерево. Рассмотрим процедуру построения упорядоченного дерева Tb(X' U^°), где х°^Х\Х\ Для построения упорядоченного дерева Tb(X' U х°) достаточно выполнить следующие действия. 1. Найти максимальный элемент х множества X” = = keX'U -«= х°). 2. Если непосредственный предшественник у вершины х имеет два прямых потомка, то х° следует сделать третьим и обычным образом скорректировать мелки вершины у и всех ее предшественников. 3. Если v имеет три прямых потомка — х\ х" и х'",— то следует построить неубывающую перестановку элементов х°, х', хи и х'", вершины, соответствующие двум первым элементам перестановки, сделать (или оставить) прямыми потомками вершины и и скорректировать ее метки, образовать новую вершину у0 и сделать вершины, соответствующие двум последним элементам перестановки, прямыми потомками у0. Если непосредственный предшественник у' вершины у имеет два прямых потомка, нужно сделать у0 третьим и скорректировать метки. Если у' имеет три прямых потомка, то следует построить такую перестановку я этих потомков и вершины ш п /г /г/ У , ЧТО Утт^^тах ДЛЯ Любых вершин У И У , ИЗ КОТОрЫХ // пг у расположена в п левее у , и далее действовать, как в 63
случае с элементами х\ х", хт и х°. Возможна ситуация, когда X" = 0. В этом случае в качестве вершины х следует взять z7min, где v — корень дерева Гь(Х'). Реализация процедуры построения упорядоченного дерева ТЬ(Х' U х°) требует выполнения не более O(loglX'l) операций. Опишем, наконец, процедуру построения упорядоченного дерева Ть(Х\х°), где х°^Х. Если непосредственный предшественник вершины х° имеет три прямых потомка, то для получения Ть(Х\х°) достаточно удалить из ТЬ(Х) вершину х° вместе с входящей дугой и скорректировать метки. Если число упомянутых прямых потомков равно двум, действуем далее так же, как в описанной в разделе 2.6 процедуре удаления элемента из множества, следя лишь за тем, чтобы каждый раз при «передаче» одного из прямых потомков одной вершины другой вершине сохранялось условие упорядоченности дерева. Отношение =>- на множестве X иногда задается посредством сопоставления каждому элементу х{^Х действительного числа а*. При этом Xi =*- х} тогда и только тогда, когда а, ^ a,j (в других ситуациях, когда а^а,). В этом случае нередко приходится сталкиваться с поиском минимального элемента множества X' = {Xi ^ XI(3} либо максимального элемента множества X" = {х{ е Х|а» < [Л. Здесь ^ — заданное действительное число и, вообще говоря, не обязательно имеет место а2, ..агЛ. В таких ситуациях также удобно использовать упорядоченные сбалансированные 2-3- деревья, сопоставляя промежуточным вершинам дерева наряду с метками соответствующие числа аг. § 3. Полиномиальная сводимость дискретных задач. Сложность алгоритмов Теория полиномиальной сводимости играет заметную роль в понимании природы тех трудностей, которые возникают при решении широкого круга дискретных задач (экстремальных и распознавания). Многие задачи распознавания, традиционно считавшиеся трудными (например, задача определения, является ли данный граф гамильтоновым, задача о существовании в данном графе полного подграфа с заданным числом вершин и др.), как оказалось, весьма тесно связаны друг с другом. Существование или несуществование эффективного алгоритма решения хотя бы одной из этих так называемых МР-полных задач влечет соответственно существование или несуществование такого алгоритма 64
для всех остальных. Здесь под эффективным понимается алгоритм, время работы которого ограничено некоторым полиномом от длины записи входной информации задачи. Близкая ситуация имеет место и для многих экстремаль- пых задач (относящихся к классу так называемых МР-труд- ных задач). Существование эффективного алгоритма решения хотя бы одной из TVP-трудиых задач влечет существование такого алгоритма и для любой из ЛГР-полных задач. В качестве типичного примера TVP-трудной задачи можно привести задачу коммивояжера. 3.1. Для формализации попятия алгоритма и его сложности необходимо выбрать некоторую конкретную модель вычислений. Удобной в ряде отношений моделью являются так называемые машины Тыоринга. Предварительно введем несколько вспомогательных понятий. Алфавитом называется произвольное конечное множество символов, называемых буквами. Слово в данном алфавите — это конечная непустая последовательность букв алфавита. Под длиной слова понимается число входящих в него букв (каждая буква учитывается столько раз, сколько она входит в слово). Детерминированная машина Тьюринга (ДМТ) состоит из ленты, управляющего устройства и считывающей головки. Лента разделена па ячейки и потенциально бесконечна в обе стороны. Ячейки пронумерованы числами ..., —2, —1, О, 1, 2, ... Любая ячейка ленты может находиться в одном из конечного числа состояний, каждому из которых поставлена во взаимно-однозначное соответствие буква алфавита 6 (называемого внешним алфавитом). Выделяется буква С0еЕ — пустой символ. Управляющее устройство в каждый момент времени находится в одном из конечного числа состояний, обозначаемых буквами внутреннего алфавита Q и называемых внутренними состояниями машины. Отметим, что 6 П Q = 0. Выделяются два особых состояния: начальное, обозначаемое буквой д0, и заключительное, обозначаемое буквой <}/. Считывающая головка машины может перемещаться вдоль ленты и в каждый момент времени обозревать ровно одну ячейку ленты. Считывающая головка может воспринимать состояние обозреваемой ячейки и заменять одно состояние другим. Обычно выделяется входной алфавит 3), являющийся собственным подмпожеством множества ®. В частности, Со £2). 5 В. G. Танаев и др, 65
Один шаг работы ДМТ состоит в выполнении в зависимости от состояния управляющего устройства и состояния обозреваемой ячейки ленты всех или некоторых из действий: 1) изменить внутреннее состояние машины; 2) изменить состояние обозреваемой ячейки ленты; 3) сдвинуть считывающую головку на одну ячейку влево (L) или на одну ячейку вправо (/?), либо оставить ее на месте (S). Далее не будем делать различия между состоянием ячейки ленты (состоянием управляющего устройства) и соответствующей этому состоянию буквой алфавита © (соответственно алфавита О). Как математический объект ДМТ определяется набором (О, 6, S, 6, С0, <|0, <|/). Здесь б — отображение некоторого непустого подмножества множества QX® (не содержащего пар вида (<Ц, с*), где Сг-^©) в множество QX©X{L, R, S}. Отображение б называется функцией переходов. Состоянием ДМТ называется совокупность, состоящая из: а) последовательности tiv Ci2, . ..,с* состояний всех ячеек ленты, С*Г е © (г = 1, р) (все ячейки, расположенные левее ячейки, находящейся в состоянии с^, и правее ячейки, находящейся в состоянии с*р, пусты и в последовательности опущены, cix Ф с0У cip Ф с0); б) внутреннего состояния <| Q, в котором в данный момент времени находится управляющее устройство машины; в) состояния CjA обозреваемой ячейки ленты. Состояние ДМТ в каждый момент времени однозначно определяется мгновенным описанием — словом с^сг2 • • • ... (\cih . .. ?гр в алфавите © U О. Здесь символ q <= Q расположен перед символом, обозначающим состояние обозреваемой в данный момент ячейки ленты. Состояние ДМТ, определяемое мгновенным описанием вида . .. qftik ... с*р, называется заключительным (управляющее устройство находится в заключительном состоянии <р). Попав в заключительное состояние, машина останавливается. Каждый шаг работы ДМТ можно рассматривать как переход машины из одного состояния в другое, однозначно определяемый функцией переходов б. Считается, что машину можно привести в любое наперед заданное состояние и пустить работать. 66
ДМТ можно использовать для переработки слов, заданных в алфавите Q. Пусть с^2... сп — слово в алфавите 3). Приведем машину в состояние, определяемое мгновенным описанием q0CiC2.. Х„, и пустим ее работать. Если через некоторое конечное число шагов управляющее устройство попадет в состояние q/? машина остановится. В этом случае будем говорить, что исходное слово допускается данной ДМТ. Результатом переработки исходного слова является слово, полученное из мгновенного описания ДМТ в заключительном состоянии в результате вычеркивания из него символов с0 и (\f. Если после некоторого числа шагов машина попадет в состояние СхС2 ... 0 С/* .. . cVr где q ¥= qf и пара q не принадлежит области определения б, то машина также остановится, однако в этом случае будем говорить, что исходное слово перерабатывается в неопределенность и не допускается данной ДМТ. Возможны ситуации, когда машина, начав работать в заданном состоянии, никогда не остановится. В этом случае также считаем, что исходное слово перерабатывается данной ДМТ в неопределенность. Недетерминированная машина Тьюринга (НМТ) определяется набором (Q, 6, 3), Д, с0, q0, q/), где значения символов Q, 6, 3), с0, q0, q/ те же, что и для ДМТ. Отличие заключается в функции переходов Д, представляющей собой отображение некоторого непустого подмножества множества QXS (не содержащего пар вида (q/, с»), сг^6) во множество подмножеств множества Q X ® X (L, Д, S}. Как и в случае детерминированной машины, состоянием НМТ называется совокупность, состоящая из последовательности состояний всех ячеек, внутреннего состояния, в котором в данный момент времени находится управляющее устройство машины, и состояния обозреваемой ячейки ленты. Основное отличие недетерминированной машины Тьюринга от детерминированной заключается в том, что НМТ из данного состояния может переходить за один шаг работы в любое из нескольких возможных состояний, а в случае ДМТ число таких возможных состояний не превосходит единицы. Таким образом, начав дважды работать в одном и том же исходном состоянии, НМТ может один раз прийти в одно заключительное состояние, а другой раз — в другое, либо вообще в состояние неопределенности. Будем говорить, что слово а допускается недетерминированной машиной, если существует конечная последовательность шагов работы машины, приводящая ее в заключитель- 5* 67
ное состояние из начального состояния, определяемого мгновенным описанием <\Qa. Если такой последовательности не существует, то говорят, что слово а данной машиной не допускается. Пусть слово а допускается данной ДМТ. Число t(a) шагов работы машины до прихода в заключительное состояние называется временем работы ДМТ при переработке слова а. Если слово а допускается некоторой НМТ, то существует, вообще говоря, несколько последовательностей, приводящих машину из состояния q0a в заключительное состояние. Временем работы НМТ при переработке допускаемого этой машиной слова а называется длина кратчайшей после- довательностР1 шагов работы машины, приводящей ее из состояния <\Qa в заключительное состояние. Время работы НМТ также обозначается через t(a). Функция ТЫ) называется временной сложностью машины Тьюринга (детерминированной или недетерминированной), если ТЫ) = max U(a)la AJ, где Ап — множество всех слов, допускаемых данной машиной и имеющих длину п. Если временная сложность ТЫ) машины Тьюринга не превосходит некоторого полинома от п, то будем говорить, что данная машина имеет полиномиальную временную сложность. Следует отметить, что в отличие от ДМТ, достаточно адекватной моделью которой могут служить современные ЭВМ (функция переходов ДМТ — это программа ЭВМ), недетерминированная машина является совершенно абстрактным объектом. Абстрактным является и понятие времени работы НМТ. В случае, когда речь идет о времени работы НМТ, удобной и наглядной ее интерпретацией может служить машина с «оракулом». Оракул для любого допускаемого машиной слова «знает» кратчайшую последовательность шагов, приводящую машину в заключительное состояние. Машина, прежде чем сделать очередной шаг, обращается к оракулу, который указывает, в какое из возможных на данном шаге состояний следует перейти. Если слово данной НМТ не допускается, оракул «лжет»: указывает случайным образом на любое из возможных состояний. При такой интерпретации время работы НМТ определяется так же, как и время работы ДМТ, если считать, что время ответа оракула равно нулю. Подчеркнем еще раз: и НМТ, и оракул — объекты абстрактные. Оракул — это попросту некоторая неизвестная программа. Будучи присоединенным к НМТ, оракул превращает ее в детерминированную машину. Основная трудность заключается в том, что оракул для 68
НМТ, как правило, либо не удается построить, либо это слишком сложная программа с низким быстродействием. 3.2. Языком в данном алфавите называется любое непустое множество слов в этом алфавите. Будем говорить, что язык А допускается данной машиной Тыорипга (детерминировапной или недетерминированной), если допускается любое слово из А. Если машина допускает те и только те слова, которые принадлежат языку А, то будем говорить, что она распознает язык А. Классом 9 назовем множество всех языков, для каждого из которых существует распознающая ДМТ, имеющая полиномиальную временную сложность. Множество всех языков, для каждого из которых существует распознающая НМТ с полиномиальной временной сложностью, назовем классом АР9>. Поскольку детерминированную машину можно рассматривать как специальный случай недетерминированной, очевидно, что 9* ^ АС9. Однако вопрос, является ли 9* собственным подмножеством множества JP9 или же 3* = JP9, остается открытым. Отметим лишь, что в настоящее время широкое распространение получила гипотеза о несовпадении классов 9* и JP9. Пусть М — детерминированная машина Тьюринга. Обозначим через М(а) результат переработки машиной М слова а, заданного во входном алфавите этой машины. Если а недопустимо для М, то М(а) не определено. Язык А0 называется полиномиально сводимым*) к языку А, если существует детерминированная машина Тьюринга М, удовлетворяющая следующим условиям. Машина М имеет полиномиальную временную сложность и перерабатывает слова в алфавите языка А0 в слова в алфавите языка А так, что а^А° тогда и только тогда, когда М(а)^А. В определении фактически требуется существование ДМТ, распознающей некоторый язык А\ где А°^А\ Слова, не принадлежащие А', будут перерабатываться данной ДМТ в неопределенность. Отношение полиномиальной сводимости, определенное на множестве языков, является, очевидно, транзитивным. Язык А называется NP-полным, если А е JP9 и любой язык из класса JP9* полиномиально сводится к А. *) Приведенное определение полиномиальной сводимости соответствует определению сводимости по Р. Карпу [74]; понятие сводимости, введенное С. Куком [82], является, вообще говоря, более широким, однако для наших целей вполне достаточно приведенного понятия. 69
Теорема 3.1. Если язык А0 полиномиально сводится к языку А и А е 9, то Л° ^ £Р. Доказательство. Детерминированную машину Тыо- ринга М, распознающую язык А0, можно построить, осуществив последовательную композицию ДМТ Ми реализующей сведение А0 к Л, и ДМТ М2, распознающей язык А. Слово а0 в алфавите языка А0 перерабатывается ДМТ Мi в слово а в алфавите языка А или в неопределенность. В последнем случае ясно, что а°&А°. Слово а поступает затем на вход ДМТ М2. Если а допускается машиной М2, то из определения полиномиальной сводимости следует, что а0 е ^ А0. В противном случае а°&А°. Временная сложность построенной таким образом машины М не превосходит полинома Pi(n) + p2in + p{in)). Здесь полиномы pt и р2 — временные сложности машин М{ и М2 соответственно, а n + pi(n) — верхняя граница для максимально возможной длины результата переработки машиной Мi слова, длина которого равна п. Теорема доказана. Из теоремы 3.1 следует, что существование для некоторого NP-полного языка распознающей ДМТ, имеющей полиномиальную временную сложность, влечет существование таких машин для каждого из языков, принадлежащих классу 3.3. В данном и последующих разделах параграфа основное внимание будет сосредоточено на задачах распознавания свойств объектов и на экстремальных комбинаторных задачах. Под задачей распознавания свойств объекта (далее такие задачи будем называть просто задачами распознавания) понимается задача, требующая ответа «да» в том и только в том случае, когда объект заданным свойством обладает. Экстремальная комбинаторная задача состоит в следующем. На конечном множестве X' задан функционал Fix) ix^X'). Требуется в заданном подмножестве X множества X' отыскать элемент х° такой, что Fix0) = min {F(x)\х е X) (задача минимизации), либо такой, что Fix0) = = max {Fix)\x е X) (задача максимизации). Задачи распознавания языков и распознавания свойств объектов достаточно близки. Можно закодировать все возможные наборы входных данных задачи распознавания свойств словами в подходящем алфавите и рассматривать исходную задачу как задачу распознавания языка, состоящего из всех слов, соответствующих ответу «да». Будем говорить, что задача распознавания принадлежит классу 9 или Ж9, если сопоставленный ей язык принадлежит 9 или соответственно. 70
Введем в рассмотрение два алфавита: бинарный S3 — = {0, 1, —, [, ], (, ), ,) и унарный и = {1, —, [, ], (, ), ,}• Для кодирования входной информации задач распознавания будем использовать слова, заданные в одном из алфавитов — 33 либо U — и определяемые следующим образом. В алфавите S3: 1) слово, представляющее целое число /с, есть бинарное (в двоичной системе счисления) представление к (если к — отрицательное число, то используется знак « —»); 2) если А — слово, представляющее целое число к, то слово Ш используется в качестве имени, например, номера вершины графа либо номера требования; 3) если Ai, А2, . .Ат — слова, представляющие объекты Aj, Л2, ..Аш, то слово (Ai, А2, .. Ат) представляет последовательность (Ai, Л2, ..Лт). В алфавите U слова, используемые для кодирования входной информации задач, определяются так же, как и в алфавите S3, с единственным отличием. Целое число к представляется не в бинарной, а в унарной форме, т. е. к представляется словом 11.. .1, состоящим из к единиц. Будем говорить, что задача распознавания определена в алфавите S3 (в алфавите U), если сопоставленный ей язык определен в алфавите 33 (соответственно в алфавите Ш. Задача распознавания В называется NP-трудной, если к ней полиномиально сводится любая определенная в алфавите 33 задача А ^ JftP. Задача В называется NP-полной, если она является ЛтР-трудпой иВе JF&. Использование машины Тыорипга в качестве формализации интуитивного понятия алгоритма обладает рядом удобств при введении определений и доказательстве утвер-'к ждений, однако далее будем говорить просто об алгоритмах (детерминированных или недетерминированных), имея в виду любую возможную формализацию этого понятия (машины Тьюринга, нормальные алгоритмы Маркова или программы, написанные на каком-либо алгоритмическом языке). Говоря об элементарной операции, будем иметь в виду понятие, связанное с той или иной формализацией понятия алгоритма. Для машины Тыорипга — это шаг работы машины, для алгоритмов, предназначенных для реализации на ЭВМ, под элементарными понимаются такие машинные операции, как сложение, умножение, сравнение двух чисел, запись либо считывание числа, расположенного по известному адресу. 71
Временная сложность алгоритма — это функция от длины записи набора входных данных задачи, определяемая по аналогии с временной сложностью машины Тыорипга. Отличия заключаются в следующем. Вместо шага работы машины должна фигурировать элементарная операция. Под заключительным состоянием алгоритма следует понимать ситуацию, в которой получен ответ «да», если речь идет о задаче распознавания, либо выбран элемент х° е X, доставляющий экстремум целевому функционалу, если рассматривается экстремальная задача. Алгоритм решения задачи будем называть полиномиальным, если его временная сложность не превосходит некоторого полинома от длины записи в алфавите S3 набора входных данных задачи. Для экстремальных комбинаторных задач, как и для задач распознавания, можно ввести понятие АР-трудности. Сопоставим экстремальной задаче В следующую задачу распознавания В'. Определить: существует ли в данном множестве X такой элемент х, что Fix') ^ у (Fix') ^ у— в случае задачи максимизации) для данного действительного числа у. Очевидно, если х° — решение задачи В, то такой х ^ X, что Fix) < у, существует тогда и только тогда, когда F(xQ) ^ у. В этом смысле можпо говорить о полиномиальной сводимости задачи распознавания В' к соответствующей экстремальной задаче В. Аналогично, в силу транзитивности отношения полиномиальной сводимости, можпо говорить о полиномиальной сводимости произвольной задачи распознавания А к данной экстремальной задаче В через сводимость А к задаче распознавания В'. Экстремальную задачу В назовем NP-трудной, если к ней полиномиально сводится любая определенная в алфавите S3 задача распознавания А ^ АРЗ*. Для доказательства АР- трудности экстремальной задачи достаточно доказать АР- трудность соответствующей ей задачи распознавания. Очевидно, из существования полиномиального алгоритма решения какой-нибудь NP-трудной задачи следует, что для каждой задачи из класса АР9* (для каждой АР-полной задачи в том числе) существует полиномиальный алгоритм ее решения. Принадлежность задачи множеству АР-трудных задач является одной из важных ее характеристик. В предположении, что широко распространенная гипотеза о несовпадении классов 3 и АР 9* верна, существование полиномиальных алгоритмов решения для любой из АР-трудных задач 72
становится невозможным. Поэтому АР-трудпость задачй является одним из веских доводов при обосновании необходимости построения приближенных или эвристических алгоритмов ее решения, применения схем направленного перебора вариантов (таких, как метод последовательного конструирования, анализа и отсеивания вариантов), а также при обосновании необходимости исследования частных случаев задачи. 3.4. Наряду с разделением задач па АР-трудные и полиномиально разрешимые (имеющие полиномиальные алгоритмы решения) существует разделение АР-трудных задач па АР-трудпые в сильном смысле задачи и задачи, имеющие псевдополиномиальные алгоритмы решения. Понятие АР-трудпости в сильном смысле играет важную роль при анализе степени трудности многих задач. Во-первых, для доказательства АР-трудиости задачи В достаточно построить так называемое псевдоиолипомиалыюе (а не полиномиальное) сведепие задачи А, являющейся АР-трудной в сильном смысле, к задаче В. Во-вторых, принадлежность задачи множеству АР-трудных в сильном смысле задач свидетельствует (см. [56]) о невозможности построения быстродействующих е-приближеиных алгоритмов ее решения (при условии 9>=£J¥2P). Пусть Ъ — набор входных данных задачи распознавания В. Набор Ъ можно закодировать как в алфавите S3, так и в алфавите U. Если все наборы входпых данных задачи В закодированы в алфавите S3 (алфавите U), то будем говорить, что эта задача определена в алфавите S3 (соответственно в алфавите U). Очевидно, длина записи набора Ъ зависит от того, в каком алфавите он закодирован. Обозначим через 1/$з (6) (через Рц (Ь)) длину записи набора Ъ в алфавите S3 (соответственно в алфавите Ш. Алгоритм решепия задачи В будем пазывать псевдопо- линомиалъным, если его времеппая сложность не превосходит некоторого полинома от Рц (Ь) для набора Ъ входпых данных задачи. Нетрудно заметить, что любой полиномиальный алгоритм является одновременно и псевдополиноми- алъным. Для задачи В и полипома р через Вр обозначим такую подзадачу задачи В, что для любого набора Ъ ее входпых данных имеет место неравенство Рц (&) ^ р [Р$$ (Ь)]. Подзадача отличается от исходной задачи лишь множеством наборов входных данных: оно является подмножеством множества всех наборов входпых данных исходной задачи. 73
Очевидно, любой псевдополйномиальный алгоритм решения задачи В является полиномиальным алгоритмом решения задачи Вр. Отсюда следует, что при условии Ф задача В не может иметь не только полиномиального, по и псевдополиномиалыюго алгоритма решения, если задача Bv является ЛФ-трудной. Задача распознавания В называется NP-трудной в сильном смысле, если существует такой полином р, что задача Вр является TVP-трудной. Если при этом В е то задача В называется NP-полной в сильном смысле. Экстремальная комбинаторная задача называется NP- трудной в сильном смысле, если соответствующая ей задача распознавания является TVP-трудной в сильном смысле. Для доказательства iVP-трудности задачи распознавания В достаточно (в силу транзитивности отношения полиномиальной сводимости) показать, что к ней полиномиально сводится некоторая определенная в алфавите 33 задача A0, NP- трудность которой уже установлена. Задачу А0, используемую указанным образом для доказательства Л^Р-трудности других задач, будем называть эталонной. Для доказательства TVP-трудности задачи в сильном смысле используется аналогичный прием. Набор входных данных задачи распознавания, определенной в алфавите 33 либо U, можно рассматривать как слово в алфавите S3 либо U соответственно. Если Ф — алгоритм переработки слов, то через Ф(а) обозначим результат переработки этим алгоритмом слова а. Будем говорить, что имеет место псевдополиномиальное сведение задачи А к задаче В, если существует такой детерминированный алгоритм Ф, перерабатывающий наборы входных данных задачи А в наборы входных данных задачи В, что 1) набору а входных данных задачи А ответ «да» соответствует тогда и только тогда, когда ответ «да» соответствует набору Ф(а); 2) временная сложность алгоритма Ф не превосходит некоторого полинома от Lц (а); 3) существуют такие полиномы р' и р", что для любого набора а входных данных задачи А выполняются соотношения р' (Lц (а)) > Ьи (Ф (а)) и р" (Р$з(Ф (а))) > (а). Теорема 3.2. Пусть задача А является NP-трудной в сильном смысле. Если существует псевдополиномиальное сведение задачи А к задаче В, то задача В является NP- трудной в сильном смысле. 74
Доказательство. Поскольку задача А является NP- трудной в сильном смысле, должен существовать такой полином р, что задача Ар является МР-трудной. Можно считать, что коэффициенты полинома р — положительные числа. Действительно, в противном случае найдется полином р0 с положительными коэффициентами такой, что для любых неотрицательных х выполняется соотношение р<Хх) ^ ^ р{х) и задача АР является подзадачей задачи APq. Пусть Ф — алгоритм, реализующий псевдополиномиаль- ное сведение задачи А к задаче В, и р\ р" — полиномы из определения псевдополиномиального сведения. Как и ранее можно считать, что коэффициенты р и р" положительны. Покажем, что существует такой полином q и такая подзадача Bq задачи В, что, во-первых, для любого набора Ъ входных данных задачи Bq выполняется соотношение и, во-вторых, АР полиномиально сводится к Bq. Положим q(x) = р'(р(р" (х))). Для каждого набора а входных данных задачи Ар найдем набор Ф(а) входных данных задачи В, а подзадачу задачи Р, определяемую всеми такими наборами Ф(а), обозначим через Bq. Для всех Ф(а), где а— набор входных данных задачи Ар, выполняется соотношение Вц (Ф (а)) ^ q (L53 (Ф (а))). Действительно, из определения полиномов р' и р" следует, что Ьп (Ф (а)) < р’ (Lu (а)) < р’ (.P(Lв (а))) < < р’ (р (р" (Le (Ф (а))))) = д (Le (Ф (а))). Очевидно, алгоритм Ф реализует псевдополиномиаль- ное сведение задачи Ар к задаче Bq, но для любого набора а входных данных задачи Ар выполняется соотношение Рц (а) ^ р (L53 (а)). Поэтому указанное сведение является и полиномиальным. Таким образом, задача Вя является TVP-трудной, а задача В — jVP-трудной в сильном смысле. Теорема доказана. Если ЛФ-трудная задача распознавания В такова, что для некоторого полинома р и любого набора Ъ ее входных данных выполняется соотношение Рц (Ъ) ^ р (Ь)), то, очевидно, В является TVP-трудной в сильном смысле. Следствие 3.1. Пусть задача А является NP-трудной в сильном смысле. Если А полиномиально сводится к В и существует такой полином р', что для любого набора а входных данных задачи А выполняется соотношение р' (Z/ц (а)} ^ (Ф (а)), где Ф — алгоритм, реализующий сведение А к В, то задача В NP-трудна в сильном смысле. 75
Действительно, временная сложность алгоритма Ф ограничена некоторым полиномом р от (я), следовательно, и полиномом отЬц(а). Поэтому Ф реализует и псевдопо- линомиальное сведение А к В (в качестве полинома р" можно взять р). § 4. Библиографическая справка Используемая терминология теории множеств и бинарных отношений в основном соответствует монографиям А. И. Кострикипа [81] и Ю. А. Шрейдера [186], а терминология теории графов — монографиям Ф. Харари [163] и К. Бержа [15]. Исследованию свойств последовательно-параллельных графов посвящены работы Дж. Валдеса, Р. Тарьяпа и Е. Лоулера [429, 430] и В. С. Гордона [44]. В [429, 430] предложен алгоритм распознавания, является ли граф последовательно-параллельным (при разработке алгоритма существенно использовались результаты из [248]). В случае, когда граф оказывается последовательно-парал- лельпым, алгоритм строит его полное декомпозиционное дерево. Алгоритм имеет липейпую от числа вершин и дуг графа оценку временной сложности. В [178] описан алгоритм построения полного декомпозиционного дерева произвольного бескоптурного графа. Основу § 2 составил материал, изложенный в §§ 4.9—4.12 монографии А. Ахо, Дж. Хопкрофта и Дж. Ульмана [7]. В этой монографии можно найти дополнительную информацию как о сбалансированных 2-3-деревьях, так и о других структурах данных. С этими и смежными вопросами можно ознакомиться также по монографиям Д. Кнута [77] и Э. Рейнгольда, Ю. Нивергельта и Н. Део [133]; При изложении вопросов, рассматриваемых в § 3, авторы в основном придерживались монографий А. И. Мальцева [106], М. Гэри и Д. Джонсона [56] и монографии [7]. С историей вопроса заинтересованный читатель может ознакомиться по монографии [56] (см. §§ 1.4, 1.5, 5.2). Теорема 3.1 сформулирована Р. Карпом [74], теорема 3.2 — М. Гэри и Д. Джонсоном [275].
ГЛАВА 2 ПОЛИНОМИАЛЬНО РАЗРЕШИМЫЕ ЗАДАЧИ В данной главе рассматривается ряд задач построения оптимальных расписаний, для которых известны эффективные в вычислительном отношении алгоритмы решения, т. е. алгоритмы со временем работы, ограниченным некоторым полиномом от длины записи входной информации задачи. Изучению систем с одним и несколькими идентичными приборами посвящены §§ 1—8. В § 9 рассматриваются системы, содержащие иеидентичные приборы. В § 1 устанавливаются достаточные условия, при которых существуют оптимальные расписания, допускающие прерывания процесса обслуживания только в моменты поступления требований в систему. В § 2 устанавливаются необходимые и достаточные условия существования расписаний, допустимых относительно заданных директивных сроков, и описываются алгоритмы их построения. Предполагается, что множество требований не упорядочено и разрешены прерывания процесса обслуживания. Для случая одного прибора в § 3 рассматривается задача минимизации максимального штрафа, а в § 4 — задача минимизации суммарного штрафа за обслуживание требований. Отметим, что ряд частных случаев задачи минимизации суммарного штрафа, для которых известны полиномиальные алгоритмы решения, описывается в гл. 3. В §§ 5 и 6 изучается задача построения оптимального по быстродействию расписания обслуживания частично упорядоченного множества требований параллельными приборами в предположении, что а) граф редукции отношения строгого порядка является древовидным либо б) число приборов равно двум. В § 5 предполагается, что длительности обслуживания всех требований одинаковы и запрещены прерывания процесса обслуживания, а в § 6 — длительности обслуживания требований различны, но допускаются прерывания. В § 6 рассмотрен также случай, когда множество требований не упорядочено. В § 7 рассматривается задача построения допустимого относительно директивных 77
сроков расписания обслуживания частично упорядоченного множества требований, имеющих одинаковые длительности обслуживания, параллельными приборами. Предполагается, что граф редукции отношения строгого порядка является деревом либо число приборов равно двум. Рассмотрению задачи минимизации максимального временного смещения при обслуживании требований параллельными приборами посвящен § 8. В § 9 рассматриваются задачи минимизации суммарного и максимального штрафа за обслуживание требований параллельными (вообще говоря, не идентичными) приборами. § 1. Прерывания В данном параграфе устанавливаются достаточные условия существования оптимальных расписаний, допускающих прерывания процесса обслуживания только в моменты поступления требований в очередь на обслуживание. 1.1. Множество ЛГ={1, 2, ..., п) требований обслуживается М параллельными идентичными приборами. Требование i ^ N поступает в очередь на обслуживание в момент времени di ^ 0, длительность его обслуживания равна U > 0. Допускаются прерывания в процессе обслуживания каждого требования с последующим его дообслуживанием любым из приборов. Предполагается, что прерывания не сопряжены с временными и прочими затратами и суммарная длина временных интервалов, в которых обслуживается требование £, равна U. На множестве N задано отношение строгого порядка определяющее возможную последовательность обслуживания требований, G — граф редукции отношения Расписание s = s(t) = {st(t), ..., sM(t)}, допустимое относительно заданного порядка, должно, очевидно, удовлетворять условию: если i j и при некотором L значение sL(t') = i, то sH(t) Ф j при всех t < t' и всех 1 < Н ^ М. Отсюда, в частности, следует, что если sL(t') = sH(t'") = i и sQ{t")=i при t' <t" <t"' и необязательно различных L, Я, (?, то не имеет места ни i /, ни / -*■ i, т. е. i ~ /. Поскольку в процессе обслуживания требований допускаются прерывания, то могут существовать такие 1 ^ i < п, 1 <ЬФН^М и 0 < t' < t" < t'" < оо, что выполняется хотя бы одно из условий: 1) sL(t') = sL{t"') = i, но sL(t") Ф i; 2) sL(t') = sH(t") = i. Если при этом sLit'+ 6) Ф i для любого достаточно малого б > 0, то в момент времени t' происходит прерывание процесса обслуживания требования и 7ё
Прерывание не исключает непосредственного продолжения процесса обслуживания требования i другим прибором. В дальнейшем будем предполагать, что число прерываний процесса обслуживания каждого требования конечно, а, следовательно, конечно и число разрывов каждой из функций sLit) iL = 1, if). Качество расписания s характеризуется значением действительной функции Fix) = Fixi, х2, ..., хп) при x=tis), где tis) = (his), his), ..., tnis)) — вектор моментов завершения обслуживания требований при расписании s. Очевидно, his) — наибольшее значение t, при котором существует такое L^{1, 2, ..., М}, что sL(t) = i. Допустимое относительно ->■ расписание, которому соответствует наименьшее значение Fix), называется оптимальным расписанием. 1.2. В общем случае оптимальное расписание содержит прерывания процесса обслуживания требований. Приведем достаточные условия существования оптимальных расписаний обслуживания требований одним прибором, не содержащих прерываний в моменты времени, отличные от di И = 1, 1г). Теорема 1.1. Если М = 1 и Fix) — неубывающая inpu х>0) функция, то существует оптимальное расписание без прерываний процесса обслуживания требований в моменты времени, отличные от di ii= 1, п). Доказательство. Для доказательства теоремы достаточно показать, что для любого допустимого (относительно -►) расписания s существует допустимое расписание s* без прерываний процесса обслуживания требований в моменты времени, отличные от di ii = 1, п), и такое, что Fitis*))^Fitis)). 1. Пусть d(1) < d(2) < . . . < d(v) — все различные значе¬ ния di ii = \, п). Обозначим через (J2, ...» временные интервалы (d(1), d{2)], idi2), d(3)], ..., id{v), oo) соответственно. Введем следующие операции преобразования расписаний. Операция ОМ', t", t) iO^t' <t" <t). Обозначим Д = = t" —t'. Положим s'it) = sit + Д) на интервале it', t — Д], s'it) = sit — it — t" )) на интервале it — Д, t\ и s'it) = sit) на остальных интервалах. Если s' — расписание, то будем говорить, что оно получено из расписания s в результате применения операции ОМ', t", t). Операция 02ii, /, t', t", 7) (0 ^t'<t" <?, i, j^N, i¥=j) применяется в случае, когда sit) = i на интервале it', t"] и sit)=j при некотором t>t. Пусть U(1), t{2)] — 79
один из интервалов, на которых sit)—}, t<t(i)<t{2). Если t{2) — t{i) ^ t" — t\ то положим s'it) = j на интервале it', t"], s'it) = i па интервале (Z(1), t{l) + it" — t')] и s'it) = sit) на остальных интервалах. Если t{2) — t{i) < t" — t', то преобразуем s в s, полагая sit)=j на интервале it', t' +1{2) — Z(1)], sit) = i па интервале U(1), t{2)] и sit) = sit) на остальных интервалах. Рассматривая s в качестве s и выбирая в качестве it', t"] интервал it' +1{2) — t{i), t"], повторяем указанные преобразования до тех пор, пока либо sit)=j на it', £"], либо sit)¥=j при всех t>t. Полученную в результате функцию sit) обозначим через s'it). Если s' — расписание, то будем говорить, что оно получено из расписания s в результате применения операции 02ii, /, t', t", t). 2. Не нарушая общности рассуждений, можно рассмат¬ ривать только такие расписания s, при которых из условия sit') = sit") = к Ф 0, где t', t" ^ 1 ^ I ^ v и t'<t", следует sit) = к для всех t' <t < t". Действительно, если sit) = к на подынтервалах {tu t2] и (*1*^2]* интервала р/, но sit)¥*k при t2<t^ ^$1* то применяя к расписанию s операцию 0±{t1% t2, t2)t получаем новое расписание s' с s' it) = к па интервале (*i — (*2—h)x *2]* Расписание s' является, очевидно, допустимым относительно tis') ^ tis) и, следовательно, Fitis'))^Fitis)). 3. Если в некотором интервале И < v) происходит прерывание обслуживания т^2 требований (с дообслужива- нием их в последующих интервалах), то расписание 5 можно преобразовать в не уступающее ему по качеству, допустимое относительно -> расписание s', при котором в рассматриваемом интервале происходит прерывание обслуживания не более т — 1 требований. Действительно, пусть в интервале [5/ И < v) происходит прерывание обслуживания требований i и 7, sit) = i на интервале (* Ь *2 ]ср, и sit) =] на интервале (tlt t2\ ^ Pi В силу п. 2 sit) = i при некотором t>d{l+l) и sit)= j при некотором t>d{l+l). Пусть для определенности his) > tjis). Если t1'^t2i то применяя к расписанию s операцию ^a0i7\А* *2» ^(*+1))' получаем повое расписание s', при котором либо в интервале pz завершается обслуживание требования / (т. е. tjis') ^ d{l+i)), либо в этом интервале не обслуживается требование i. Расписание s' является, очевидно, допустимым относительно и Fitis'))^ *SFUis)). 80
Если t'2 ^ ^i* то применяя к расписанию s операцию 0\ (^i> ^2* ^2).« получаем допустимое относительно -> расписание s с Fitis)) < Fitis)), для которого выполняются условия предыдущего случая. 4. Если в интервале fy, I < v, происходит прерывание обслуживания только одного требования у (обслуживание которого возобновляется в некотором последующем интервале), то расписание s можно преобразовать в повое_допустимое относительно ->■ расписание s' с Fitis')) ^ Fitis)), при котором если в интервале и происходит прерывание, то оно происходит только в момент времени d{l+i). Действительно, пусть sit)=j на интервале {tllt2\cz Р/ *2<^Z+1)j и sit) =у при некотором t>d{l+i). Если sid{l+i)) = 0 или в момент времени d{l+l) завершается обслуживание некоторого требования, то применяя к расписанию s операцию 01{tf1%t'2ld(kl+1))i получаем искомое расписание s'. Пусть sit) = i на интервале *i < d(l+1) < £2* Если ti(s) = t2% то применим к расписанию s операцию (^1г ^2г Если if (s) > tit то возможны два случая: tiis) < tjis) или tiis) > £,($). В первом случае применим к расписанию s операцию 01{tlit2lt2). Если t2 —- (t2 — £х)< то к полученному в результате расписанию при^ меним операцию 02 (уЛ iA t2 — {t2 — d{l+1\ t2). Во втором случае применим к расписанию s операцию Ог{^1г t2, t ,1)% а к полученному расписанию — операцию 02{ix j% tu d{l+1\ t2 ). В любом случае получаем искомое расписание s'. 5. Поскольку число прерываний конечно, в результате конечного числа указанных преобразований исходного расписания s может быть получено расписание s*, при котором если и имеются прерывания процесса обслуживания требований, то только в моменты времени du). При этом интервалы следует рассматривать последовательно слева направо. Каждое из вновь получаемых расписаний является допустимым относительно -*■ и по качеству не уступает предыдущему. Теорема доказала. Эта теорема указывает точную верхнюю границу (равную v — 1, где у —число различных значений d{, i= 1, п) минимального числа прерываний, имеющих место при оптимальном обслуживании требований одним прибором. 6 В. С, Танаев и др, 81
Приведем пример, в котором оптимальное расписание содержит v — 1 прерывание и не существует оптимального расписания, содержащего меньшее число прерываний. Пусть М — \, п = 3, dt = 0, d2 = 1, d3 = 2; tl = t2 = t3 = 2, Fix) = x{-\- 5x2 + 20x3. В рассматриваемом случае существует единственное оптимальное расписание, представленное на рнс. 1.1. При этом расписании обслуживание требования 1 прерывается в момент времени t = d2 = 1, а требования 2 — в момент времени t = d3 = 2. Дообслуживапие этих требований проводится, начиная с моментов времени t = 5 и t = = 4 соответственно. Рис.1.1. Следствие. Если di = d I - i - i 1 2 ~! ! !' I l 4 I l 5 ii — 1, n), то при M= 1 и неубывающей функции Fix) существует оптимальное расписание без прерываний процесса обслуживания требований. 1.3. Перейдем к рассмотрению случая нескольких приборов. Введем понятие е-квазивогнутой функции п переменных. Функция Fix), x=ixi, х2, ..., хп) называется вогнутой, если для любых векторов х(1), х{2) ^ Еп и числа 0 ^ X ^ 1 выполняется неравенство FiXx{i) + (1 - Ш(2)) > XFU(1)) + (1 - X)Fix{2)). (1.1) Здесь Еп — множество всех тг-мерных векторов. Функция Fix) называется квазивогнутой, если для любых векторов x(i), х{2) ^ Еп и числа 0 ^ Я ^ 1 выполняется неравенство FiXx{l) + (1 - Х)х(2)) > min (№(1)), Fix{2))). (1.2) Обозначим через Е% множество всех тг-мерных векторов е, компонентами которых являются числа 0; 1; —1. Функция Fix) называется е-квазивогнутой, если для любых векторов x{i)^En, ^е£0п, чисел а>0 и 0<Х^1 выполняется неравенство (1.2), где х{2) = x{i) + ае. По определению вогнутая функция является и квазивогнутой, а квазивогнутая — и е-квазивогнутой. Нетрудно также убедиться, что существуют е-квазивогнутые функции, не являющиеся квазивогнутыми, и квазивогнутые функции, не являющиеся вогнутыми. 82
Отметим, что поскольку содержательно функция Fix) характеризует качество расписаний, то достаточно требовать, чтобы она обладала тем или иным свойством не на всем множестве Еп, а на некотором его подмножестве. В частности, достаточно рассматривать векторы х > 0, не содержащие более М одинаковых компонент. Теорема 1.2. Если М> 2, di = d, i= I, п, G = (TV, 0) и Fix) — неубывающая е-квазивогнутая (при х > 0) функция, то существует оптимальное расписание без прерываний процесса обслуживания требований. Доказательство. Для доказательства теоремы достаточно показать, что для любого расписания s существует расписание s* без прерываний процесса обслуживания требований такое, что Fitis*)) ^ Fit is)). 1. Не нарушая общности рассуждений, положим d = 0. Введем следующие операции преобразования расписаний. Операция O^iQ, R, t') (1 ^ Q Ф R < М, t'>0). Будем говорить, что расписание s' it) = (t), .. ., sM (О) полу¬ чено из расписания s в результате применения операции 0{iQ, R, £'), если sL {t) =*'sL Ц) при всех 0 ^ t < оо и всех ЬФ Q, /?; sQ it) = sq (t) и sJR Ц) = sR it) на интервале [0, t']; it) = sR it) и sR (t) = sq it) при всех t' <t< Эта операция позволяет в момент времени t' приборы Q и R поменять ролями. Поскольку приборы идентичны, то Fitis')) = Fitis)). Операция 02iQ, t', ±a)t t' > 0, a>0). Эта операция позволяет увеличить или уменьшить величину простоя некоторого заранее выбранного прибора Q на заданную величину а. В результате ее применения к расписанию s получаем совокупность функций s' it) = {% (£), ... ...,5M(0b где sL it) = sL Ц) при всех 0 < t < с» и всех L Ф Q; Sq it) = sq it) па интервале [0, t'], sq it) = 0 на интервале it', t'+ а] и Sq (t) = Sq (t—а) при всех t' + a < t < < оо, если а имеет знак плюс; Sq it) = sq (t) на интервале [0, t'— а] и Sq it) = sq it + а) при всех t'— a<t<o°, если а имеет знак минус. Если s' — расписание, то Fitis')) < < Fitis)) в случае, когда а имеет знак минус. Операция 03iQ, R, t', t", a) iKQ, R < M, t" >0, t' ^ a > 0). Рассмотрим совокупность функций s' (£) = = (M£), • • (*)Ь где s'L(t) = sLit) при всех 0<t < oe и всех ЬФ Q, R; SQit) = sqU) на интервале [0, t' — а] и Sq (£) = Sq (£ + а) при ВСвХ t' — а < t < оо; SR (£) = SR (£) На 6* 83
интервале [0, t"]\ sR(t) = (£ + t'— t" — а) на интервале (t", t" + d\ и s'R(t) = sR(t — а) при всех t"+a<t< «>. В случае, когда Q = R и £'<£", положим $q (0 = 5Q (О па интервалах [0, — а] и (Г + а, оо), (£) = sq (£ + а) на интервале it' — a, t"] и sq (£) = sq (£ + V — t” — а) на интервале U", t" + а]. Если s' — расписание, то будем говорить, $то оно получено из расписания s в результате применения операции 03(Q, R, t', t", а). Операция O^Q, tt", (1^<?<Л/, £'<£"<!). Обозначим A — t"—t'. Положим — 5l (0 при всех d < L =И= ^ ДГ и всех 0 < £ < °o; sq (t) = sq (£ + А) па интервале (t', ^ — Д], sq (t) = sq (t — (t — t”)) на интервале (t — A, t\ и s'it)=s(t) на остальных интервалах. Если s' — расписание, то будем говорить, что оно получено из расписания s в результате применения операции OiXQ, t', t", t). 2. He нарушая общности рассуждепий, можно рассматривать только такие расписания $, для которых sL(t) Ф 0 на некотором интервале [0, Ть] и sL(£)=0 при t>TL или SlW = 0 при всех 0, L = 1, Л/. Действительно, пусть, например, $я(£')=0 и $л(£)¥=0 при некотором t> t' > 0. Поскольку расписание s допускает конечное число прерываний, то Rut' можно выбрать таким образом, чтобы t' было наибольшим. Пусть при этом sL(t')=vL, a sL(t' + 6) = p,L (L = i,M). Значения vL и \iL пе обязательно различны. Выберем б > 0 таким образом, чтобы sL(t' + 8i) = jlil для всех 0 < 8i < б, L = 1, М. Если существует такое 1 ^ Q < М, что vQ Ф 0 и щ? = 0, то применим к расписанию s операцию 0{(R, Q, t'), получая в результате новое расписание s'. Если все vL = 0, L = 1, М, то выберем наибольшее значение а среди всех значений, удовлетворяющих условию: sL(t) = 0 на интервале (t' — a, t'] для всех L = 1, М. Применим к расписанию s операцию Oz(R, t', —а), получая в результате новое расписание s'. Если не имеет места пи одна из перечисленных ситуаций, то существует 1 ^ Ж М такое, что \хнФ 0 и цн Ф vL для всех L = 1, Л/. В частности, может оказаться H = R. Применим к расписанию s операцию ОДЯ, Я, Л, а к полу- ченпому в результате расписанию — операцию Oz(R, t', — (t' — a)), где а — наибольшее зпачепие среди всех значений, удовлетворяющих условию: sL(t) Ф \хв на интервале 84
(/' — a, t) для всех L = 1, М. Получеппое в результате расписание обозначим через s'. В любом случае удается сократить величину простоя прибора R, не увеличивая простоя остальных приборов. Поскольку по построению f(s')<f(s) и F(x) — неубывающая функция, то F(t(s')) < F(t(s)). Повторяя аналогичные рассуждения конечное число раз, приходим к искомому заключению. 3. Пусть расписание s допускает прерывания только в момент времени t = t{i) и в этот момент времени происходит прерывание процесса обслуживания v < М требований кл, /с2, ..., kv. Требование к5 сначала обслуживается прибором Qj в течение tj единиц времени, затем прибором Rj в течение tj единиц времени. Если Qj = Rj, то при достаточно малом 6>0 имеем SQ.(t(1) + 8) =£kj. Длину временного интервала между моментом времени £(1) и моментом времени возобновления обслуживания требования к] обозначим через А3-. Пусть Aj* = min {A j 11 ^ ^ у}. Пусть Qj* = Rj*. Применим к расписанию s операцию (@j*, £(1) — t]*, t{*\. £(1) + Аполучая в результате расписание s' с t(s') < t(s). Пусть Qj* ФRj*. Если A j* = 0, то применяя к расписанию s операцию 01 (Rj*, Qj*, £(1)), получаем расписание s' с t(s') = t(s). Если A j* >> 0, то применим к расписанию s операцию Os (Rj*, Qj*, £(1) + A j* + tj*, £(1), tj*). Полученная совокупность функций 5(1) является расписанием, поскольку при £>£(1) расписание s пе содержит прерываний. Если F(t(s{i))) < Fitis)), то обозначим s(1) через s'. Пусть F(t{s(i))) > F(t(s)). Если при расписании s прибором Qj* проводится дообслуживание хотя бы одного из требований к{, к2, ..., kv, то обозначим через 0 длину временного интервала между моментом времени t{i) и моментом времени возобновления обслуживания первого из таких требований. Очевидно, © ^ Аи Sq.* (t) Ф kj для всех t(i) < t ^ t{i) + ® и всех Если зо^^фк] для всех t>t{i) и всех 1 ^ j < v, то положим 0 = W, где W — достаточно большое число. Обозначим 0' = min {0t £,•*]. Применим к расписанию s операцию 03 (Qj*, Rj*, — — tj* + 0', £(1) + A j*, 0'). Полученная в результате совокупность функций s{z) является расписанием. Векторы i(s(1)) и t(s{2)) связаны с вектором t(s) соотношениями 85
t (s(1)) = t (s) + tj*e и tis{2)) = tis) — ®'e, где e — некоторый вектор из Eq. Поскольку функция Fix) является е-квазивогнутой и по предположению Fitis(l))) > Fitis)), то F(t(s{2)))< Fitis)). Если 0 ^ tj*, то обозначим s{2) через s'. Если то применим к расписанию s{2) операцию £(1)—tj*, i(1)— 0, £(1)), получая в результате расписание s(3) с t(s^) < tis{2)). Пусть S(^(t{1)) = (*(1) + б) при лю¬ бом достаточно малом б > 0. Применим к расписанию s(3) операцию Ох (Qj*r L, £(1)). Полученное расписание обозначим через s'. Таким образом, всегда можно построить расписание s', по качеству не уступающее исходному расписанию s. Это расписание, так же как и расписание s, допускает прерывания только в момент времени t = t{i). Однако в этот момент времени прерывается обслуживание не более и — 1 требований. Следовательно, существует и расписание без прерываний обслуживания требований, по качеству не уступающее исходному расписанию s. 4. Для завершения доказательства теоремы достаточно показать, что если расписание s допускает прерывания только в моменты времени t(i), t{2), ..., t(u), то существует расписание s', допускающее прерывания только в моменты времени t{i), t{2), . .., и при этом Fitis')) < Fitis)). Расписание s удовлетворяет условиям предыдущего пункта при t>tiu~l). Следовательно, можно положить f(u-i) = о и воспользоваться приведенными выше рассуждениями. В результате получаем расписание, не допускающее прерываний при t>t(u~l), совпадающее с исходным при t ^ t(u~l) и не уступающее ему по качеству. Теорема доказана. Из доказательства теоремы 1.2 непосредственно следует существование расписания s* (t) = [si (t), s* (t), . . ., s*f (Ob обладающего iнаряду с перечисленными свойствами) тем свойством, что либо sL(t)=£ 0 на некотором интервале (d, TL] и s*L(t) = 0 при t>TL, либо s* (0 = 0 при всех t> d, ь = йм. Отметим, что если нарушается хотя бы одно из условии этой теоремы, то при поиске оптимального расписания, вообще говоря, нельзя ограничиваться рассмотрением класса расписаний без прерываний. Приведем соответствующие примеры. 86
а) Значения <U различны. Пусть М = 2, п = 3; di = 0, d2 = 1, rf3 = 2; £i = 3, t2 = t3 = 2; FUi, £2, £3) = + 2x2 + 3x3. В рассматриваемом случае при любом расписании _ 5 без прерываний процесса обслуживания требований Fit is)) > ^ 24. В то же время расписанию s, представленному па рис. 1.2, а, соответствует F(£(s)) = 22. При этом расписании обслуживание требования 1 прерывается в момент времени I прииар 2 ■ придир / • 13 1 2 3 а) прибор 2 прибор 1 прибор 2 прибор 1 3 4 —I \ t \ 2 : / 2 В) Рис. 1.2. 8) / , г, г ■ 1 ! ! з ! ТТЛ _! ~! 1 ^ 3 4 t = ds = 2 с последующим его дообслуживанием другим прибором, начиная с момента времени t = 3. б) G¥=iN, 0). Пусть М = 2, п = 4; di = 0, £ = 1, 4; ^ = = t2 = t3 = i, ti = 2, на множестве 7V = {1, 2, 3, 4} задано отношение порядка: 1 -► 2 и 1-^3; Fixи х2, ;г3, я4) = = 2ixi + хг + х3) + :г4. В этом случае лучшему из расписаний .9 без прерываний соответствует Fit is)) = 14. Оптимальное расписание s* с Fitis*)) = 13 представлено на рис. 1.2,6. При этом расписании обслуживание требования 4 прерывается в момент времени t = 1с последующим его дообслуживанием тем же прибором, начиная с момента времени 1 = 2. в) Функция Fix) не является е-квазивогнутой. Пусть М = 2, п = 3; di = 0, i = 1 , 3; tx = t2 = t3 = 2; F (xlr x2r x3) = = x\+ x\ + x\. В этом случае Fix) — неубывающая, но не е-квазивогнутая в положительном октанте функция. Действительно, полагая, например, x{i) = (0, 1, 2), е = = (0, 1, —1), а = 1 и ^ = 1/2, получаем х{2) = (0, 2, 1) и т;г(1) + (1-Ш(2))=Л0, 3/2, 3/2) = 9/2 < min <F(0, 1, 2), Fi0, 2, 1)} = 5. Одно из оптимальных расписаний представлено на рис. 1.2, в. При этом расписании обслуживание тре¬ 87
бования 2 прерывается в момент времени £ = 1с последующим его дообслуживаыием другим прибором, начиная с момента времени t = 2. Соответствующее этому расписанию значение Fix) равно 22, в то время как для расписаний без прерываний Fix) ^ 24. § 2. Обслуживание в заданные сроки В данном параграфе устанавливаются необходимые и достаточные условия существования расписания обслуживания п требований М параллельными идентичными приборами без нарушения заданных директивных сроков и приводятся алгоритмы построения таких расписаний. Предполагается, что при обслуживании любого требования возможны прерывания. 2.1. Требования множества iV — H, 2, ..., п} обслужива¬ ются параллельпыми идентичными приборами. Требование i^N поступает в очередь на обслуживание в момепт времени di ^ 0, длительность его обслуживания равна £* > 0. Известен момент времени (директивный срок) Д ^ + £f, к которому необходимо завершить обслуживание требования i. В приложениях числа U и Д И =» 1, п) являются рациональными, и при выборе соответствующей единицы измерения их можно считать целыми. Допускаются прерывания в обслуживании любого требования. Предполагается, что прерывания не сопряжепы с временными затратами и число прерываний конечно. Расписание s, при котором все требования обслужива- ются в заданные директивные сроки, т. е. Uis) < Д Ц = 1, я), называется допустимым (относительно директивных сроков). Здесь his) — момепт завершения обслуживания требования i при расписании s. Установим необходимые и достаточные условия существования допустимых расписаний и укажем способы их построения (если эти расписания существуют). 2.2. Если множество требований N можно разбить па два подмножества Nt и N2 таких, что тах{ДиеД}^ <min{di\iеN2), то допустимое расписание обслуживания требований множества N существует, очевидно, тогда и только тогда, когда существуют допустимые расписания обслуживания требований каждого из множеств Nt и N2. В дальнейшем предполагается, что указанная ситуация не имеет места. Пусть et< е2<.. .< ер+1 (р ^ 2п — 1) — множество всех различных зпачений d{ и Д (£ =* 1э и), Eh=(eh, ek+l] и ДА=> 88
= ek+i — eh Uc = 1, p). Обозначим через nik) число всех требований i е N таких, что Д ^ id{, AJ. Пусть существуют такие I (KZ<p). и /еДО, что 7г(/)^Л/ и Ei^(dh Dji. Требование ] может, очевидно, обслуживаться во временном интервале Д любым из приборов, не ограничивая возможностей обслуживания остальных требований. Если Л* > то удалим требование у из множества N. Если Ai < tj, то уменьшим длительность обслуживания требования j па величину А*. Проделаем эти операции для всех j&N таких, что Д — idh D3], В результате получаем, вообще говоря, повое множество N' требований и повыв длительности их обслуживания. Для каждого i^N' такого, что е/+1, умепыним директивный срок Д па величину А,, а для каждого i^N' такого, что di^ et+lj уменьшим на величину А/ и момент его поступления du Нетрудно видеть, что допустимое расписание обслуживания требовании множества N существует тогда и только тогда, когда существует допустимое расписание обслуживания требований множества N' (с измененными указанным образом значениями du tu D{). Выбирая в качестве N множество N', можпо провести те же рассуждения и т. д., пока не будет получено N' = 0 либо для всех к значение п(к)>М. В первом случае приходим к заключению, что допустимое расписание s существует и описанная процедура является, по существу, процедурой его построения. При этом на каждом шаге выделяются временной интервал Ei = (eh ei+l] с nil) и множество Nt = {/4, /2, /n(Z)} требований, ко¬ торые могут обслуживаться в этом интервале. Поскольку |Д| = nil) ^ М, то при A j ^ tjL можпо положить sLit) = jL на интервале Д, а при А/ >> tjL зпачепие sLit)]=jL па интервале (**, et + £jL] и sLit) = 0 на интервале (е\ + ZjL,ez + 1] (L = l,rc(Z)). Если nil)<M, то sLit) = 0 на интервале Д, L = nil) + 1, М. Число операций, которые необходимо выполнить для построения допустимого расписания, в этом случае не превосходит Oin2). Во втором случае приходим к задаче, вообще говоря, меньшей размерности, в которой nik) > М для всех интервалов Д. 2.3. Поставим множеству временных интервалов {Д, Д, ..., Д}, множеству требований {1, 2, ..., п) и набору чисел U U = l, п) в соответствие сеть Г (см. рис. 2.1), 89
образованную промежуточными вершинами хи х2, ..хР1 У и У2, •.уп, входом х0 и выходом z. Вершина xh соответствует временному интервалу Ек, вершина у» соответствует требованию i. Вершины хк и у{ соединим дугой пропускной способности с(хк, уд = Д* тогда и только тогда, когда Ек ^ £ (diy Dd; вершины х0 и хк — дугой пропускной способности с(хо, хк)—МДЛ; вершины у{ и z — дугой пропускной способности с(г/г, z) = £г (к = 1, р, i = 1, га). Дуги U0, хк) (к = 1,р) называются входными, а дуги (г/*, z) (г=1, га) — выходными дугами сети. Отметим, что сеть Г может быть построена в результате выполнения не более 0(п2) операций. Каждое допустимое относительно директивных сроков расписание s определяет поток /, насыщающий выходные дуги сети Г. Действительно, пусть тih(s) — суммарное время обслуживания требования i в интервале Ек при расписании 5, i => 1, п, к — 1, р. Очевидно, для всех i и к значение v тih(s) ^ ДЛ; для любого i^N выполняется 2 Tifc(5) = ие- h= 1 п равенство 2 ^%ь (s) ^ Мкк выполняется для любого интер- г=1 р п п вала Ек и XI 2 Tift(s) = 2 U- ft=l i=l i=l П Для каждой дуги (х„, хК) положим / (х0, хк) — 2 xih («), i=l для каждой дуги {хК, уд — f(xh, yt) = xih(s) и для каждой дуги (г/(, z) — /(j/i, z) = £j. Заметим, что значение функции /, 90
соответствующее любой дуге, пе превышает пропускной способности дуги, а для каждой выходной дуги сети равно ее пропускной способности. Кроме того, для любой промежуточной вершины и сумма значений функции / по всем входящим в v дугам равна сумме значений этой функции по всем выходящим из и дугам. Сумма значений функции / но всем входным дугам сети, как и сумма по всем выходным п г-- дугам сети, равна 2 h* Следовательно, функция / является i=l п потоком величины 2 насыщающим выходные дуги сети Г. С другой стороны, каждый поток /, насыщающий выходные дуги сети Г, определяет расписание, допустимое относительно заданных сроков. При этом значение потока по дуге (xh, z/t) интерпретируется как время, в течение которого требование i обслуживается в интервале Eh. Заметим, р п что f(xh, г/i) Ak, 2 / (xft, J/i) = и 2 / (xh, l/i) < MAh. Зная h—1 i=i для каждой вершины xh значение потока по дугам (xh, уд U =* 1, п), можно построить расписание обслуживания требований в интервале Ek. Это построение осуществляется с помощью следующего алгоритма, который будем называть алгоритмом упаковки. Пусть во временном интервале Е=*(е', е"] необходимо оослужить требования множества N. Требования обслуживаются М параллельными идентичными приборами. Длительность обслуживания требования i^N равна т* и выполняются условия: т£^Д для всех i^N и 2^i<AfAr где Д = — е — е . Обозначим через я = (гх, i2, . . ., произвольную перестановку элементов множества N. Зададим на интервале (е\ ef + MN\ функцию o(t), полагая o(t) = it на интервале ( k-1 k 1 (ef, е' + т^], а (t) =ih ца интервале ( е' + 2 T*j» е' + 2 \ i=i 3=1 3\ к — 2, | N |, и если 2^Т|<;МД,. то о(£) = 0 на интервале ieiv Iе “I" 2 ть £ + МА . Будем говорить, что расписание s(t) = \ it=N = {Si(t), s2(t), ..., sMU)} обслуживания требований множества N в интервале Е построено в соответствии с алгорит¬ 91
мом упаковки, если в этом интервале sL(t) = a(t + (L — DA) (L =s 1, M). Очевидно, число операций, которые необходимо выполнить при построении расписания на интервале Е, не превышает ОШ). Количество прерываний в полученпом расписании пе превосходит М — 1. Построив с помощью алгоритма упаковки расписание для каждого интервала и «состыковав» расписания для интервалов Еи Е2, ..2?р, получим расписание обслуживания требований, допустимое относительно заданных сроков. Для этого требуется выполнить не более ОЫр), т. е. не более ОЫ2) операций. Полученное расписание содержит не более nip— 1) + Ш— 1)р прерываний. Действительно, при построении расписания для каждого интервала Ек получаем не более М — 1 прерываний, а в результате «стыковки» полученных расписаний добавляется не более п(р — 1) прерываний. Для построения максимального потока в сети с п вершинами достаточно выполнить ОЫ3) операций [2]. Если ве- п личина полученного потока в сети Г равна 2 Ы то допу- i=i стимое относительно директивных сроков расписание существует, для его построения требуется выполнить не более ОЫ2) операций и оно содержит не более п{р — 1) + (М — 1 )р прерываний. В противном случае допустимого расписания не существует. 2.4. Рассмотрим некоторые необходимые и достаточные условия существования допустимых относительно директивных сроков расписаний. Пусть N^N. Обозначим через E(N) множество номеров всех тех интервалов Ehl каждый из которых удовлетворяет условию Eh — Wi, Di] хотя бы для одного i&N, а через п{к)—число всех требований таких, что Ек^(й{1 DJ. В силу теоремы о насыщении [15] необходимым и достаточным условием существования потока, насыщающего выходные дуги сети Г, является выполнение неравенств 2 2 ДА min {M.nik)} (2.1) i<=iv fte£(iv) для всех N^N. Таким образом, справедливо следующее утверждение. Теорема 2.1. Для того чтобы существовало расписание, допустимое относительно директивных сроков, необходимо и достаточно, чтобы неравенства (2.1) выполнялись для всех N ^ N. 92
Поскольку по условию ti<D{ — d{ для всех t&N, то следует рассматривать подмножества N содержащие два и более элементов. Общее число неравенств (2.1) равно, очевидно, 2П — (га + 1). Покажем, что выполнимость неравенств (2.1) для всех N следует из выполнимости этих неравенств для некоторых, специальным образом выбираемых подмпожеств N ^ N. Выберем произвольное множество N ^ N. Представим ЕШ) в виде ЕШ) = £(1) U Е(2\ где E{i) П Е{2) = 0,_Е{1) = = (v, v+1, р) (l^v^p^p), Е{2) = {к е ЕШ)\к > >\л + 2). Предположим, что £(2) ¥= 0. Тогда множество^ может быть разбито_ на два непустых непересекающихся подмьншества Nt и N2 так, что E(Ni)=E^) и E(N2) = Е{2). Действительно, если существует такое i&N, что E(i) П E{i) Ф Ф 0 и E(i) П Е{2) Ф 0, то по определению E(i) получаем jli+ 1 ^E(N). Нетрудно_видеть, что если неравенство (2.1) выполняется для N ^ N4 и N = N2, то оно выполняется и для N = N. Следовательно, для того чтобы для всех N выполнялись неравенства (2.1), необходимо и достаточно, чтобы они выполнялись для всех N^N, удовлетворяющих условию: существуют такие v и р, что l<v^p<p и E(N) =» = {v, V + 1, ц}. Для выделения указанных множеств N можно восполь- зоваться следующей процедурой. Выбираем произвольные v и р (l^v^p^p). Положим с = (v, v+1, ..., р). Найдем мшшество N' всех тех i^N, для которых E(i)^c. Если ЕШ') = с, то положим Nvli = N' и_пару v, р будем называть существенной. Обозначим через Nмножество всех собственных подмиоя^еств N" множества Nvll, удовлетворяющих условию E{N") = с. Мноя^ество NViX и все подмноя^ества из NVil являются, очевидно, искомыми мноя^ествами N. В результате выполнения этой процедуры для всех пар v, р (1 < v ^ р^р) находим все множества N, для которых следует проверить неравенства (2.1). Если значения Д/, d*, U, Di (i = l, п) таковы, что из выполнимости неравенств (2.1) для N = NVVi при всех существенных парах v,_p следует выполнимость неравенства (2.1) для любого N ^ iVvn, то будем говорить, что выполняется условие регулярности. В этом случае число проверяемых неравенств (2.1) не превосходит п{п+ 1)/2. Действительно, если пара v, р является существенной, то ev s {du d2, ..., dn} и e^+i e {Du D2, ..., Dn}. Наибольшее число существенных 93
пар получаем в случае, когда все d{ и A (i = 1, п) различны. Пронумеровав требования по возрастанию А, приходим к заключению, что для любой существенной пары v, ц, где ev = di, eil+i = Dh выполняется i ^ /. 2.5. Рассмотрим случай M = 1. Неравенство (2.1) в этом случае можно записать в виде 2 *i< 2 ЛА (2.2) ieiv h?=E(N) для всех N ^ N. Пронумеруем требования по неубыванию директивных сроков. Обозначим через N# множество всех тех требований i ^ N, для которых di > dhi a А ^ А. Поскольку в рассматриваемом случае соблюдается условие регулярности, то для выполнимости неравенств (2.2) для всех N ^ N необходимо и достаточно, чтобы 2 <* < Z)| - dfc (2.3) i<=Nlh для всех l^k^l^n. Нетрудно показать, что проверка выполнимости неравенств (2.3) для всех 1 ^ к ^ ^ п может быть проведена в результате выполнения не более 0(п2) операций. Отметим, что если di^di+i (i=l, п— 1), то (2.3) можно переписать в виде i 2 ti^Di — dh (2.4) i=h для всех 1 ^ к ^ I ^ п. Если di^di+1 U=l, п— 1), то для выполнимости неравенств (2.3) для всех 1 ^ к ^ I ^ п необходимо и достаточно, чтобы 2 — dk, к = 1, п. (2.5) г=1 Если di = d (i = 1, /г), то вместо (2.5) имеем h 2*i<Ab—d. к = 1,п. (2.6) г=1 Опишем алгоритм построения допустимого расписания $, требующий выполнения не более O(nlogn) операций. Этот алгоритм обобщает известное правило обслуживания требований по неубыванию директивных сроков па случай неод- 94
повременного поступления требований: среди всех готовых к обслуживанию требований выбирается требование с наименьшим директивным сроком. Пусть {d{i\ d{2), ..., d(u)} — множество всех различных значений d{ и dil) < d{2) < ... < d(v) < d{v+l) = W, где W — достаточно большое число. На первом шаге полагаем r = d(1), iV0 = {i|idi = d(l)} и sit) — 0 при 0 < t < d(i). На каждом шаге имеем некоторый момент времени т (для определенности d(u-1) ^ т < diu\ 2^и^и + 1) и некоторое множество N0 требований. Из множества N0 выбираем требование / с наименьшим номером (т. е. с наименьшим директивным сроком). Полагаем sit) = j для всех т ^minW(u), т + tj) и, если т + tj < d(u) и 17V01 = 1, полагаем sit) = 0 для всех т + tj < t < d(u). Если х + tj> d(u), то добавляем к N0 все требования i^N с di= d{u) и полагаем tj равным tj—id(u) — т). Если а) т + tj<d(u) и \N0\ = 1 либо б) х + tj= d(u\ то исключаем из N0 требование / и добавляем все требования i^N с di = = d(u). В любом случае полагаем x = d(u). Если т + tj < d(u) и I А^о I > 1, то исключаем из N0 требование / и полагаем х равным т + Z,. В результате получаем новый момент времени т, новое множество No и переходим к следующему шагу. Построение расписания s завершается, когда N0 — 0. Покажем, что если допустимое расписание существует, то построенное в соответствии с описанным алгоритмом расписание s допустимо. Для этого достаточно показать, что если s не является допустимым расписанием, то нарушается хотя бы одно из неравенств (2.3). Пусть I — требование с наименьшим номером, для которого при расписании s нарушается директивный срок, т. е. liis) ^ Di ii — 1, l— 1) и tM > Di. Положим t' = ttis). Пусть г —номер шага алгоритма, на котором получено sU') = Z, и тг — значение т, полученное к шагу г. Пусть t" = max lt\t < тг, sU)=0}. Нетрудно видеть, что t" = di для некоторого i е N и di < d*. Если на первых г — 1 шагах все требования, выбираемые на обслуживание, имеют номера, меньшие Z, то положим t = t". Пусть р ip < г) — шаг с наибольшим номером, на котором выбрано на обслуживание такое требование V, что V > I. Если Гр — значение т, полученное к шагу р, то dt ^ ^du+1), где d(q) ^ хр < diq+l) и на интервале idiq+i\ t'] зна- 95
чепие s(t) Ф i, если dt < d(q+i). Действительно, если па этом интервале обслуживается требование Z", для которого di"< < d{q+l\ то l" >1' (иначе на шаге р выбрали бы на обслуживание требование Z", а не V). Но это противоречит тому, что р — последний шаг такой, что р < г и на этом шаге выбирается на обслуживание требование с номером, большим Z. Положим Z = max{Z", d(q+i)). Пусть к — требование с наименьшим номером, для которого dh = t. Очевидно, к < Z. На интервале (dh, t'] обслуживаются только такие требования, для которых di^dk и i ^ Z, т. е. Di < Д. Поэтому dh + 2 ieNh и, следовательно, для требований к и Z неравенство (2.3) нарушается. Покажем, что временная сложность описаппого алгоритма построения допустимого расписания равна O(ralogra). Упорядочим требования по неубыванию значений dt (для этого достаточно выполнить не более 0(п\о%п) операций — см. гл. 1, § 2, п. 2.7). Найдем множество N0 всех требований i^N с di = d{i). Зададим на множестве N бинарное отношение =^, полагая i=>j тогда и только тогда, когда К]. Очевидно, отношение =>- является совершенным строгим порядком, а следовательно, и совершенным псевдопорядком. На первом шаге алгоритма представим множество N0^N с заданным на пем отношением =>- в виде сбалансированного 2-3-дерева (для этого достаточно выполнить О(п) операций—см. гл. 1, § 2, п. 2.3). Число шагов алгоритма не превышает 2лг — 1, так как на каждом шаге либо завершается обслуживание некоторого требования, либо к множеству N0 добавляется вповь поступившее требование. Для выбора па каждом шаге требования у ^ N0 с наименьшим номером (максимального относительно =>- элемента множества N0) достаточно одной операции (см. § 2, гл. 1). Для исключения требования у из N0 или добавления к iV0 вновь поступившего требования достаточно выполнить не более Oilogn) операций. Изменение длительности обслуживания требования у равносильно исключению у из N0 и добавлению к N0 требования у с повой длительностью обслуживания. Эта процедура требует выполнения также не более OQogrc) операций. 96
Отсюда следует, что общее число операций, которые необходимо выполнить для построения расписания s, не превышает ОЫ log п). Замечание 1. Если di<di+l, i = 1, п, то расписание s, очевидно, не содержит прерываний. Поэтому условия (2.4) и (2.6) являются необходимыми и достаточными условиями обслуживания требований одним прибором в заданные сроки и в случае, когда запрещены прерывания процесса обслуживания требований. Замечание 2. Допустимое расписание для частично упорядоченного множества требований (по-прежнему М = 1 и разрешены прерывания) может быть построено с помощью алгоритма сложности ОЫ2), описанного в § 3 (см. пп. 3.6, 3.7). 2.6. Пусть М> 1, di = d, Di — D (i = 1, п). Предполагается по-прежпему, что ti^D — d (i = 1, п). Неравенства (2.1) можно записать в виде 2 *i<(D-d)min{A/-,|iV|}r NsN. г SJV Поскольку в рассматриваемом случае соблюдается условие регулярности, то для существования допустимого расписания необходимо и достаточно, чтобы п 2 ti^(D—d)M. (2.7) 1=1 Очевидно, для проверки выполнимости последнего неравенства достаточно выполнить не более ОЫ) операций. Если допустимое расписание существует, то оно может быть построено с помощью алгоритма упаковки требований множества N во временном интервале (d, D] (см. п. 2.3). Количество операций, которые необходимо при этом выполнить, не превышает ОЫ). Количество прерываний в получаемом расписании не превосходит М — 1. 2.7. Перейдем к рассмотрению случая М ^ 1 и либо Di = D, либо di = d (£=1, п). Эти ситуации эквивалентны, поскольку допустимое расписание обслуживания требований с параметрами d{ и Dp=D существует тогда и только тогда, когда существует допустимое расписание обслуживания требований с параметрами di = duDi = D + d — d.\ В дальнейшем, не нарушая общности, будем рассматривать случай Л/>1, dj = 0 (i = 1, п). Предполагается по- прежнему, что U^Di (i= 1, п). 7 В. С. Танаев и др. 97
Пронумеруем требования по неубыванию значений А. Пусть N ^N, N== A, i2l ..., i/}, где ц < ih, если / < к. Неравенство (2.1) можно записать в виде i 2 ti} < Dh min {l, M) + (Dk - Dh) min {l - 1, M) + j=l + • • • + — Du_2) min (2, M} + (DiL — A^)* (2.8) Поскольку ti<Di (t= 1, n), то неравенство (2.8) выполняется для любого множества N с 1ЛП =Z=^Af. Если \N\ = = l > 71/, то неравенство (2.8) можно записать в виде 2 Diy (2.9) j=l ' з=1-М +1 ^ Для выполнения последнего неравенства необходимо и достаточно, чтобы Ч-М+1 / I 2 ь+ 2 2 /1-1 з—1—М + 2 j—/—М+1 Итак, для того чтобы существовало допустимое расписание, необходимо и достаточно, чтобы *i м м 2^ + 2 2^ (2.Ю) 7i=l з=2 i=i для всех i^ = A, i2, ..., 1м) SN. Общее число этих нера- пм венств равно, очевидпо, ьп . В рассматриваемом случае условие регулярности, вообще говоря, не соблюдается. Действительно, введем в рассмотрение интервалы Eh=(Dk-u Dh\ длины ДЛ = А —A-i (к'= 1, /г), D0 = 0, не исключая случаев ДЛ = 0. В каждой существенной паре v, р значение v = 1, ре И, 2, ..., п}. Следовательно, множество NVVL имеет вид ЛА = И, 2, ..., р} (р = 1, п) и для каждого N"^NV[l имеем рeiV". Пусть ^ = 2, ti — t$ = 1, t2 — 2, ^4 = 5, = 1, D2 = 2, A = 4, jA = = 5. Непосредственной проверкой убеждаемся, что неравенство (2.1) выполняется для 7УИ = {1}, iV12 = {l,2), Nl3 = {l, 2,3}, Nit = И, 2,3,4), и не выполняется для N" =И,2,4}<=ДГ14. Покажем, что условие регулярности соблюдается, если ti'=t (i = l, /г). Если Я=эЛ^1ц = {1, 2, ..., р), р >ЛГ, то неравенство (2.9) запишется в виде Ii*< 2 Dh. (2.11) fe=U-M+l 98
Предположим, что это неравенство выполняется для всех Выберем _ произвольное ц и множество А" ■== = А, i2, ..., ii)^Nцх, Z>7I/, U< i2< .. .< ii = \л>. Пусть требование имеет номер p. Положим р/ 1. По- и' скольку ii-M+i —М + 1, то р/ ^ 1 и ZZ^p/Z^ 2 — J ^ Ь=ц'-М+1 и' i = 2 Ai^ 2 А,- Следовательно, неравенство (2.9) h=p j=i-M+1 3 выполняется и для N = N". Таким образом, для того чтобы существовало допустимое расписание при ЛГ>1, dt = 0, ti = t<Di (Z=l, тг), необходимо и достаточно, чтобы неравенства (2.11) выполнялись для всех р > Af. Число этих неравенств равно п — М. 2.8. Пусть по-прежнему 1, dr=0, Z*<A (Z = l, тг). Опишем алгоритм построения допустимого расписания s, требующий выполнения не более CHralogra) операций. Этот алгоритм является естественным обобщением алгоритма упаковки. Пусть D(1) < D(2) < ... < D(v) — все различные значения А. Обозначим через Nu множество всех требований i^N с А = D{u) (и = 1, и). Положим T^l =0 (L = 1, М). Алгоритм состоит в выполнении v шагов. На каждом шаге и (и= 1, v) имеем значения D^U\T^ (L = 1, М) и множество требований Аи. Шаг алгоритма состоит в выполнении IZVJ итераций, на каждой из которых происходит назначение на обслуживание одного из требований i^Nu. На первой итерации шага и полагаем D = D^u\ TL = = T(l\&l = D — Tl (L = 1, M), N = Nu. На каждой итерации этого шага выбираем произвольное требование а) Если ti> 8Ь (L = 1, М), то, как будет показано ниже, допустимого расписания не существует. б) Если ti^6L для всех приборов А у которых бь^О, то полагаем sP(t) = i на интервале (ТР, TP + tJ. Здесь Р — прибор с наименьшим значением бР Ф 0 (если таких приборов несколько, в качестве Р выбираем любой из них). Модифицируем ТР и 6Р, полагая их равными ТР + и и 8P — U соответственно. в) Пусть не выполняются условия пп. а) и б). Пусть Р — прибор с наибольшим значением бР таким, что бР. Если ti > бР, пусть Q — прибор с наименьшим 6Q таким, что U < 6Q. Если приборов, удовлетворяющих указанным условиям, несколько, то в качестве Р и Q выбираем любые из них. Полагаем sP(t) = i на интервале (ГР, D] и, если Z*>6P, 7* 99
то sQ(t) = i на интервале (TQj TQ-\-ti — 6Р]. Модифицируем ТР и 6р, полагая их равными D и 0 соответственно. Модифицируем TQ и 6q, полагая их равными TQ + U — бР и 6Q + бР — — соответственно. Исключаем требование i из N, переходим к следующей итерации и т. д. до тех пор, пока не получим N = 0. Переходим к шагу и + 1, полагая Т(£+1) = TL(l = 1 ,М). После выполнения шага и полагаем sL(t) = 0 при t>T{£^1) (£ = 1 ХМ). Отметим, что если на каждой итерации этого алгоритма соблюдаются условия пп. б) или в), то в результате его выполнения строится расписание s и это расписание является допустимым. В противном случае процесс построения расписания прекращается на первой же итерации, на которой оказываются выполненными условия п. а). Покажем, что временная сложность описанного алгоритма равна 0{n\ogn). Каждой итерации соответствует множество R всех различных значений Ть, рассматриваемых на данной итерации. Поскольку для любых Г' и Г" из Л либо Т' <Т", либо Т" < Т\ то множество R упорядочено отношением < и может быть представлено в виде сбалансированного 2-3-дерева (см. гл. 1, § 2). Каждому T^R соответствует висячая вершина сбалансированного 2-3-дерева и список номеров L приборов, для которых ТЬ = Т. На первой итерации первого шага R = {T), где Т = 0. Этому значению Т соответствует дерево, состоящее из единственной вершины, и список И, 2, ..., М} номеров приборов. На каждой итерации выявление случаев, когда для выбранного требования i выполняется a) ti>6L = D — TL (L= 1, М) либо б) ti^D — TL для всех приборов L, у которых D — ТьФ 0, сводится к отысканию в множестве R минимального элемента Т\ либо наибольшего элемента Т" такого, что Т" < А (В качестве прибора Р выбирается любой прибор из списка, соответствующего значению Г".) Если ни один из этих случаев не имеет места, то необходимо найти приборы с номерами Р и Q. Для этого достаточно_ отыскать наименьший элемент Т ^ R такой, что D — Г, и, если U> D — Т, наибольший элемент Т ^ R такой, что t{<D — Т. Все эти действия могут быть выполнены за OilogM) операций (см. гл. 1, § 2, п. 2.8). Модификация значения ТР сводится к удалению номера Р из списка приборов, соответствующего значению_ Т, и, если полученный список пуст,— к удалению элемента Т из Л. 100
Пусть модифицированное значение ТР равно Tf. Если Т' е /?? то следует добавить в список соответствующих Т' приборов номер Р. Если же множество R не содержит Т\ то следует включить Т'_в R и образовать список (Р) приборов, соответствующий Т\ Аналогично осуществляется модификация значения TQ. Для выполнения этих действий также достаточно O(logM) операций. Поскольку общее число итераций равно п, то для построения расписания s достаточно выполнить O(nlogM) операций (если требования предварительно упорядочены по неубыванию директивных сроков). Учитывая число операций, необходимое для упорядочения требований по неубыванию значений А, получим оценку временной сложности алгоритма, равную 0(п log п + п log Л/), или, что эквивалентно, 0{п log п), поскольку М < п. 2.9. Покажем, что если допустимое расписание существует, то описанный в п. 2.8 алгоритм приводит к построению такого расписания s. Иными словами, если алгоритм не приводит к построению расписания s (случай, когда на некоторой итерации для выбранного требования i выполняется ti> SL, L = 1, М), то допустимого расписания не существует. Пусть s(i) — некоторое допустимое расписание обслуживания требований множества А, а А(1) — множество требований, обслуживаемых при этом расписании в интервале (О, Z)(1)]. Очевидно, N{ ^ А(1). Заметим, что £,<Z)(1), ieiVи и первый шаг рассматриваемого алгоритма является, по существу, алгоритмом упаковки требований множества Nt в интервале (0, D{i)] (см. п. 2.3). Если N{i ¥=NU то выберем все требования i<=A(1), которые обслуживаются в интервале (О, Z)(1)] при расписании 5(1) в течение времени ti<Cti (очевидно, i&Nx). Полагая длительности обслуживания этих требований равными применим к множеству А(1) алгоритм упаковки в интервале (О, Д(1)]. При этом в качестве перестановки тс элементов множества А(1) выберем перестановку, в которой первыми расположены требования множества Nit Полученное расписание обслуживания требований множества А(1) в интервале (О, П(1)] обозначим через s{i). Полагая s{2)(t) = s(1)U) на интервале (0, D{i)] и s{2)(t) = s(i)(t) вне этого интервала, получаем, очевидно, допустимое расписание s(2). Ясно, что s(2) — такое допустимое расписание, что Sl* (0 = $l (t) при О ^ t <1 T{l (L = \х М), где Ть) — полученные после выполнения первого шага алгоритма значения TL (L = 1, М). 101 4.
Предположим, что s(u) — такое допустимое расписание, что s(ll) (t) = sL (l) при 0 < t < Tt* (L = T7M), где T£'> - полученные после выполнения (гг— 1)-го шага алгоритма значения TL (L = l, М). Покажем, что в этом случае можно перейти от расписания s(u) к допустимому расписанию s(u+1) такому, что: 1) 4,и+1) (t) = sL (t) при 0 ^ t ^ Т{£+1); 2) s(l+1) {t) = s(li) (t) при t>D{u) (L = l, M). При этом, очевидно, *(l+1) (0 - *2° (t) при 0 < t < T(LU) (L = ijd). Для этого достаточно, как показано ниже, доказать справедливость следующего утверждения А: если существует расписание s обслуживания требований некоторого множества N, удовлетворяющее условиям sL(t) = 0 при всех t^TL^D и всех t>D (L = 1, М), то расписание s обслуживания требований этого множества, построенное в соответствии с процедурой, выполняемой на каждом шаге алгоритма, также удовлетворяет указанным условиям. Действительно, если утверждение А справедливо, то указанный переход от расписания s(u) к расписанию s(u+1) можно осуществить следующим образом. Обозначим через N множество всех тех i^N, для которых существуют такие и < t ^ Z>(u), что s(L)(t) = i. Очевидно, Л7и — N. Если N Ф Nи и требование i е N\NU обслуживается в интервале (О, D{u)] в течение единиц времени, то выберем в качестве длительностей обслуживания и директивных сроков значения t\ и D(u), соответственно, для всех i €= N\NU. Применим к множеству N процедуру, выполняемую на каждом шаге алгоритма, выбирая в качестве первоочередных требования множества Nu. Перейдем к непосредственному доказательству утверждения А. Доказательство проведем индукцией по числу п требований множества N. Утверждение, очевидно, справедливо при п = 1. Предположим, что оно справедливо для всех п (1 <#</), и покажем, что в этом случае утверждение справедливо и для п = I. Без потери общности будем считать, что TL^TL+l (L= 1, М— 1). Представим интервал (Тм, D] в виде совокупности подынтервалов длины Д таких, что обслуживание требований при расписании s не прерывается внутри этих подынтервалов и каждый момент времени Ть, бь^О, является началом некоторого подынтервала (это можно сделать, поскольку s содержит конечное число прерываний). Присвоим полученным временным интервалам длины Д, пачи- 102
пая с интервала (Гм, Гм + А], номера 1, 2, ..., q. Интервал с номером ос имеет вид (Гм + (а — 1)Д, Гм + аА]. Пусть i — требование, выбранное на первой итерации при построении расписания s. Из существования расписания s следует, что найдется прибор L, для которого £t < 6L. Если требование i обслуживается при расписании s двумя приборами (Р и Q), то Q = Р + 1. Пусть t' и t" —моменты завершения обслуживания требования i приборами Р и Р +1 соответственно. Если i не обслуживается прибором Р + 1, то положим t" = ГР+1. Преобразуем расписание s (рис. 2.2, а) в расписание s' (рис. 2.2, б) следующим образом. Если sKit) = i, КФР, па а; 5) Рис. 2.2. временном интервале длины А с номером а и Гм + аА> ГР, то положим Sp (t) = («) И s'K (t) = Sp (t) на интервале a. Если sic(t) = i на таком интервале а, что + и V — прибор с наименьшим номером, для которого Tv < <ТШ + аД, то положим «V (t) == sK (t) и s'k (t) — sjr (t) на 103
интервале а. В остальных случаях положим sL (t) = s L (t) (L= 1, M). Очевидно, s' является расписанием. Момент времени TL будем называть моментом готовности прибора L к обслуживанию требований и говорить, что в интервале а прибор L готов к работе, если TL< Гм + аА. Определим две операции преобразования расписания s' в расписание s". Операция ОД а, р) применима в случае, когда на интервалах с номерами а и р (а<р) одинаковое число приборов готово к работе (например, интервалы 7 и 8 или 15 и 16 на рис. 2.2, б) и заключается в перестановке этих интервалов: s2 (t) = sL (t + (P — а) А) и s"L (t + ф — a) A)=sL(t) при TM + (a — 1)A < t ^ TM + aA и Sb(t) = Sb(t) для остальных значений t (L= 1, M). Очевидно, s" является расписанием. Операция 02(a, p, Д, Z), где a, p — номера интервалов, a<p, а Д, Z — номера приборов, Тм + aA ^ Тп < Тм +- рЛ, применима в случае, когда на интервалах а и р разное число приборов готово к работе и выполняются соотношения sz {t) = i на интервале а и sL(t)^ i на интервале р (L= 1, М); например, на рис. 2.2, б a=l, Р = 5, Z = M, Д = Д4-1 либо а = 4, Р = 9, Z = P+1, Д —Д. Тогда найдется прибор У такой, что на интервале р значение sv (t) = = Л, где либо а) к — 0, либо б) /c^TV, и sL(t)=^=k для L= 1, 71/ на интервале а. Операция ОДа, р, Д, Z) выполняется в два этапа. Положим sz(t) = k на интервале а и sv (t) — i на интервале р, не изменяя расписание s' в остальных случаях: (0 — (0- Затем положим sy(t) = = sR (t) и (£) = (£) на интервале р, не изменяя рас¬ писание s' в остальных случаях: sL(t) — s' (i). В результате выполнения операции 02(а, р, Д, Z) получаем расписание s", при котором требование i обслуживается прибором Д в интервале р (обслуживание требования i перенесено с прибора Z в интервале а на прибор Д в интервале р). Пусть интервалы обслуживания требования i при расписаниях s' и s не совпадают. Имеем один из следующих случаев. Случай 1. ti < бр. В этом случае Р= 1. Всякий раз, когда имеются такие интервалы а, р и прибор Z (1 < Z < М), что Тм + РЛ > Tlr sz (t) = i на интервале а и (t) Ф i па интервале р, будем применять к s' операцию 02(a, р, 1,Z) и полученное расписание вновь обозначать через s'. В ре- 104
зультате получим расписание s' такое, что sL (t) Ф i при Всякий раз, когда имеются такие интервалы а и [3, что Тх <С Т м + осД ^ + U<TM + Р • A ^ sx (0 Ф i па интервале а, sx (£) = i на интервале (J, будем применять к s' операцию 04(а, (3) и полученное расписание вновь обозначать через s'. В результате получим расписание s' такое, что s1(t) = i па интервале (Г4, Г4 + £»]. Случай 2. f, ^ 6р. Всякий раз, когда имеются такие интервалы а, р и прибор Z, Р < Z ^ Л/, что Гм + [3 • Д > ГР, sz(t) = i на интервале а и sP(t)=^=i на интервале (3, будем применять к s' операцию 02(а, [3, Р, Z) и полученное расписание вновь обозначать через s'. В результате получим расписание s', такое, что sP(t) = i на интервале (ТР, D], Всякий раз, когда имеются такие интервалы a, (J и прибор Z (Р + 1 < Z ^ 71/), что ТР+ i < Гм + [ЗД ^ ТР, Sz {t) = i на интервале а и sp+i (t) ф i па интервале [3, будем применять к s' операцию 02(а, [3, Р, Z) и полученное расписание вновь обозначать через s'. В результате получим расписание s' такое, что sL (£) 7^ i при L > Р + 1. Заметим, что ^ < 6Р+1 = = D — ТР-\-(ТР—TP+i). Наконец, всякий раз, когда имеются такие интервалы а и (3, что PP+i < 7V+аД ^ ГР+1 + — 6Р < Тм + [ЗД ^ Тр, Sp_)_! (7) г на интервале а и s^+1 (£) = — i на интервале [J, будем применять к s' операцию 0{{а, р) и полученное расписание вновь обозначать через s'. В результате получим расписание s' такое, что sp+1 (£) = i на интервале (TP+l, TP+i + ti — 6Р] и sp(t) = i на интервале (Рр, D]. Заметим, что из U < 6Р+1 = D — ГР+1 следует ГР+4 + + ti — бР = ТР+1 + ti — D 4- ТР < Тр. В обоих случаях получаем такое расписание s', что интервалы обслуживания требования i при этом расписании совпадают с интервалами обслуживания требования i при расписании s. Полагая TP = t', TP+l = t" и исключая из рассмотрения требование i, приходим к случаю I — 1 требований (с новыми значениями TL). Учитывая индуктивное предположение, приходим к заключению, что расписание s обслуживания требований множества N, построенное в соответствии с процедурой, выполняемой на каждом шаге алгоритма, является искомым. Утверждение А доказано. Замечание. Максимальное число прерываний обслуживания требований в расписании, построенном в соответствии с алгоритмом, описанным в п. 2.8, составляет п— 1. 105
Действительно, легко видеть, что первое требование в расписании обслуживается без прерываний, а обслуживание каждого последующего может прерываться не более одного раза. Максимальное число прерываний можно сделать равным п — 2, строя расписание первых п — 1 требований в соответствии с указанным алгоритмом, а последнее требование обслуживая прибором с наименьшим значением Ть. § 3. Один прибор. Максимальный штраф В данном параграфе рассматривается задача минимизации максимального штрафа за обслуживание п требований одним прибором при различных предположениях относительно моментов поступления требований в очередь на обслуживание, директивных сроков, функций штрафа и характера обслуживания требований. 3.1. Требования множества 7V = {1, 2, ..., п) обслуживаются одним прибором. Допускаются прерывания в обслуживании любого требования. Требование i&N начинает обслуживаться не ранее момента времени di ^ 0, длительность его обслуживания равна U > 0, желательный (директивный) срок завершения его обслуживания А ^ 0. На множестве N задано отношение строгого порядка определяющее возможную последовательность обслуживания требований. Граф редукции этого отношения обозначим через G = (N, U). Каждому требованию i^N сопоставлена пеубывающая действительная функция ф»(£), выражающая штраф за завершение обслуживания требования i в момент времени t. Задача состоит в построении допустимого относительно расписания s*, которому соответствует наименьшее значение функционала Fmax (s) = max {cpi (7i (5))} (3.1) ieiv среди всех допустимых относительно -> расписаний s, где ti(s) — момент завершения обслуяшвапия требования i при расписании s. 3.2. Пусть di = 0 (г = 1, п). В этом случае при поиске оптимального расписания s* можно ограничиться рассмотрением класса расписаний, при которых каждое требование обслуживается без прерываний (см. § 1, гл. 2). Каждое такое расписание определяется заданием перестановки л = = Cii, iiy ..., in) элементов множества А допустимой относительно заданного на N порядка (т. е. если , то 106
v < |ы). Множество допустимых перестановок обозначим через $?n(G). Требуется в множестве t?n(G) найти перестановку я*, которой соответствует наименьшее значение функционала Fmax (л) = max («Pi (ti (я))}, (3.2) isN где ti(n) — момент завершения обслуживания требования i при обслуживании требований в последовательности к (ft) = S Перестановку я* назовем оптимальной. j=i Обозначим через Q~ множество всех минимальных (относительно заданного на N строгого порядка -*) элементов множества Q ^ N. Теорема 3.1. Пусть d{ = О 0=1, п). Для того чтобы перестановка я = (U, i2, ..., in) была оптимальной, достаточно, чтобы для к = \,п выполнялось ik^Ju (где Jh = — (ii, h, •iJ) и Ф *й Д tij ) = min^«Pi (3.3) Доказательство. Перестановка я является допустимой, так как в противном случае найдутся индексы к и / (к > ;) такие, что ik -> ц и, следовательно, ф Jk. Пусть я* = (i*, i2, .. •, С) — оптимальная перестановка. Покажем, что ее можно преобразовать в я без увеличения значения функционала (3.2). Пусть для некоторого к (1 < А: < га) выполняется ^кФЧ и ij = ij при всех ]>к. Достаточно показать, что F(n') = Р(я*), где я'= = (о, г*ь, £ft+1, ..., in) и о — последовательность (i*,. z*, • • • т из которой удалей элемент ih. Очевидно, я' ^ &n(G). Так как {?!, ...Tift}= (t*, то в силу (3.3) ф1Л(^Л(я')) = = Фгд ( 2 £.* ) ^ Ф.* ( 2 t = ф.* (£.* (я*)\ ^ Fтах (я*). По- \ ;=1 Ч / гк \ 3=1 Ч / гк\ _ ) скольку £ * (я') ^ £ * (я*) при I* е{«т), £.*.(я') = £ ,*(я*) при ij ij ij ij ^ j>k_и все функции фДО пеубывающие, то фДгДя')) < < фДгДя*)) ^ FmaK(n*) для всех i^lV, IФ ih. Следовательно, Fmах(я') < Ртах(я*), но поскольку я* — оптимальная перестановка, то Fmax(n') =Fmax(n*). Теорема доказала. Из теоремы 3.1 непосредственно следует алгоритм построения за п шагов оптимальной перестановки, 107
Пусть Jn = N. Находим такое in ^ /п* что cpin (Тп) — = min {фi (Тп) 11 Jп К где Тп ~ 2 ^г* г&/п Аналогично, пусть /n-i = /ЛИп). Находим такое in-i ^ €= Jn-it ЧТО ф{п_1 (fn-i) = min (ф, (Г„_!) 11 <= /й-ll, где Тп—\— 2 Продолжая этот процесс, получаем в результате искомую оптимальную последовательность л* = (i±, i2, ..in). Оценка временной сложности алгоритма — 0(п2). Действительно, для поиска на каждом шаге минимальных относительно заданного порядка элементов множества и ишпочення одного из найденных элементов достаточно ОЫ) операций (см. гл. 1, § 1, п. 1.4), что па п шагах составляет ОЫ2) операций. На каждом шаге r=n — k+ 1 (г = 1, п) алгоритма требуется вычисление не более к значений функций штрафа и проведение не более к — 1 их сравнений. Поэтому общее число вычислений значений функций штрафа не превосходит пЫ +1)/2, а общее число их сравнений не превосходит п(п— 1)/2. Таким образом, алгоритм требует выполнения не более ОЫ2) операций (если вычисление значения функции штрафа рассматривать как одну операцию). 3.3. Рассмотрим некоторые частные случаи задачи минимизации максимального штрафа, предполагая по-прежнему, что di = О U = 1, п). Пусть функции штрафа срМ) таковы, что для любых v, [i^N имеет место cpvU) < cpMU) для всех О, Т] либо <pvU) ^ фц(£) для всех t ^(О, Т]. Здесь Т= 2 *г- Проиу- iZ=N меруем требования множества N таким образом, чтобы фДг) ^ cp2U) > .. .> ср n(t) для всех t ^ (О, Т]. В рассматриваемом случае в алгоритме построения оптимальной перестановки на шаге г = п — к + 1 (г= 1, п) в качестве элемента ih достаточно выбрать элемент множества Jh с наибольшим номером. При этом оценка временной сложности алгоритма по-прежнему равна ОЫ2), но исключается необходимость вычисления значений функций штрафа. Если G = (7V, 0), то перестановка л* = (1, 2, ..., п) является оптимальной. В этом случае для построения оптимальной перестановки (перенумерации требований) необходимо не более O(nlogn) операций. Примерами функций штрафа, обладающих указанным свойством, являются: а) ф<(£) = ф(£) + a,-, i= 1, щ б) ф*Ш = 108
= а*ф(£), a* > 0, i = 1, п, ф(£)^0, t ^ (О, Т]\ в) %{t) = = ф(£ + а<), i=l,n. Здесь ф — неубывающая па (О, Т] функция. В каждом из этих случаев требования следует пронумеровать по невозрастанию значений а*. При заданных директивных сроках А (i = 1, п) обслуживания требований в качестве функций штрафа обычно выбираются неубывающие функции временного смещения А = = £» —А. Если при этом фгШ = ф(£ — A), i=l,ra, и ф — неубывающая функция, то функции штрафа относятся к классу в) и требования следует пронумеровать по неубыванию директивных сроков. Таким образом, если G — (N, 0) и A < D2 < ... < Dn, то перестановка я* = (1, 2, ..., п) является оптимальной в задачах: — минимизации максимального временного смещения (случай фгШ = t — А); — минимизации максимального запаздывания (случай фгШ =max {t — А, 0}); — построения расписания обслуживания требований без нарушения директивных сроков (случай фг(£) = sign (max {t — -А, 0})). 3.4. Пусть di > 0, фг(£) = ф(£ — Di) (i = 1, п), ф — неубывающая функция и прерывания в обслуживании каждого требования запрещены. Перестановка я*^^„(6?), доставляющая минимум максимальному временному смещению Lmax (л) = шах (iz (л)—А)> ieiv очевидно, доставляет минимум и максимальному штрафу Fшах (я) = шах ф (t{ (л) — Di) за обслуживание требований. i=JV Рассмотрим две ситуации, в первой из которых требования имеют параметры dh tu Di и обслуживаются в последовательности л = (г*!, i2, ..., in), а во второй требования имеют параметры d*,. iz, А и обслуживаются в последовательности я" = (in, in-1, ..., ii). Найдем достаточные условия, при которых максимальные временные смещения в обоих случаях одинаковы. Нетрудно показать (например, индукцией по Z), что в первой ситуации момент завершения обслуживания требования U равен iiz (я') = max {^г/_1 (я')> + tit = max f d\k + + .23 ^ij ] ? где ~tiQ (я') = 0. Следовательно, максимальное j=ft / 109
временпое смещение в первой ситуации равно L[nax = = шах туации максимальное ^max = max 1 <к<Ып dik + 2 — Dit). Аналогично, во второй 3=h I альное времепиое смещение равно (d‘i + 2 tli ~ ^ь)' си- Для ТОГО, чтобы Ьтах = ^тах»; ДОСТатОЧПО, Чтобы ДЛЯ любых v ц (I ^ v, р, ^ п) выполнялось равенство d\j — D» = — Dv. Таким образом, если d\= С — D\ и D[= С — d* {i = l7n)t то максимальные временные смещения в обоих случаях одинаковы. Здесь С — произвольная константа. Это позволяет в ряде случаев, располагая методом решения задачи с dt = 0 (i = 1, п), решать задачи с d^ 0 (i = 1, п). Действительно, рассмотрим следующую задачу А. Пусть di = d\ > 0, Di = D\ = Df (t) = (p(t- Di) {i = i^n), Ф {x) — пеубывающая функция и прерывания в обслуживании каждого требования запрещены. На множестве 7V = {1, 2, ..., лг} требований задано отношение строгого порядка с графом редукции G. Необходимо отыскать в множестве &*n(G) допустимых относительно -*■ перестановок перостаиов- КУ я*» доставляющую минимум функционалу Ршах (л) = шах ф (ti — Di). i<=N (3.4) Отметим, что частным случаем задачи А является задача построения оптимального по быстродействию расписания {Di = 0, i = l, п, ф(0 = t). Рассмотрим задачу В минимизации функционала (3.4) на множестве 9*n(G') при условии, что di = d{ = 0, D{ = D\ = = D — di (i = 1, n)i a G' — граф редукции отношения строгого порядка =>, заданного на множестве N и обратного порядку -*■ (т. е. v =>■ р тогда и только тогда, когда р v). Поскольу при С = D выполняются соотношения dx = C — — Di и Di = С — di {i = 1, n)i приходим к заключению, что если niB) = (iu z2, ..., in) — решение задачи В, то я(А) = = {in, in~!, ..., ii) — решение задачи А. В частности, если G= (А, 0), то на основании предыдущего пункта для решения задачи В требования достаточно упорядочить по неубыванию директивных сроков. Следовательно, для решения 110
задачи А требования достаточно упорядочить по неубыванию моментов их поступления. 3.5. Перейдем к рассмотрению задачи минимизации максимального штрафа за обслуживание п требований одним прибором в предположении, что требования поступают на обслуживание неодновременно, значения U и dt U = 1, п) рациональные и при выборе соответствующей единицы измерения их можно считать целыми; допустимы прерывания процесса обслуживания требований. Предполагается, что функции штрафа фгШ — произвольные неубывающие функции. На множестве N = {1, 2, ..., п} требований задано отношение строгого порядка Оптимальное расписание отыскивается в классе допустимых относительно ->■ расписаний. Присвоим временным интервалам единичной длины, начиная с момента времени t = 0, номера 1, 2, ... В силу теоремы 1.1 существует оптимальное расписание, при котором прерывания процесса обслуживания (если они имеются) происходят только в моменты поступления требований. При принятых предположениях достаточно рассматривать расписания s(t) такие, что на каждом единичном временном интервале s(t) = const. Тем самым для задания расписания достаточно сопоставить (соблюдая определенные условия) каждому единичному временному интервалу одно из чисел 0, 1, 2, ..., п. Обозначим через B°ii) множество всех непосредственных предшественников i в N (т. е. всех тех k^N, для которых к -*■ i и не существует /, такого, что к -> / и / -> i). Положим di = если B°(i) = 0, и 5* = max fd*, max (dh + th)\ в npo- l fe€=B°( i) J tiibiiom случае. Ясно, что обслуживание требования i не может быть начато ранее момента di. Пронумеруем требования так, чтобы d{ < d2 ^ ^ dn. Положим Ni'= {к\к eJV, к ^ Я. Обозначим через T(s) момент завершения обслуживания всех требований при расписании s. Максимальный штраф FmSiX{s) за обслуживание требований при расписании s вычисляется по формуле (3.1). Лемма 3.1. Существует расписание s*, которому соответствует наименьшее значение как T(s), так и Fmax(s), при этом Т (s*) = max fd* + 2 ^Д. i<=iv[ J Доказательство. Заметим, что maxf d* + 2 — U=N\ k^N{ ) это момент времени, раньше которого не может быть закончено обслуживание требований множества N. Поэтому если 111
для расписания s выполняется равенство Т (s) = di + 2 h h€=N { при некотором N, то s — расписание с наименьшим значением T(s). Пусть s' — расписание, которому соответствует наименьшее значение Fmax(s). Если $'(£)+= О на всех единичных временных интервалах с номерами di + l, rfi + 2, ..., T(s'), то s', очевидно, является искомым расписанием s*. Пусть среди указанных интервалов существуют интервалы, на которых s'it) = 0. Если таких интервалов несколько, то выберем среди них интервал с наибольшим номером т. Если существует такое требование i^N, что 5, —т и обслуживание всех требований 1, 2, ..., i — 1 завершается до момента времени т, то Т (s') = di + ^ th и s' — искомое расписание s*. В противном случае расписание s' можно преобразовать в расписание s" такое, что s'(t) = s"(t) на единичных интервалах^ номерами 1, 2, ..., т — 1 и s"{t) Ф 0 на интервале с номером т. При этом T(s") ^ T(s') и Fmax(s") = Fmax(s'). Действительно, если не существует такого i ^ N, что di — т, то можно положить s"(t) = s'(t) на всех интервалах, отличных от интервалов с номерами т и т + 1, s"(t) = s'(t + 1) на интервале с номером т и s"(t) = 0 па интервале с номером т + 1. Пусть di — т для некоторого i^N и существует такое требование /, что dj < т и обслуживание требования / завершается в интервале с номером т > т. Если таких требований несколько, то в качестве j выберем требование с наименьшим номером. Положим s"(t) = s'(t) на всех интервалах, отличных от интервалов с номерами т и т', s"(t)=j на интервале с номером т и s"(t) == 0 на интервале с номером т . Нетрудно убедиться, что в любом случае расписание s'' является допустимым, T(s") ^ T(s') и Fmax(s") = Fm&x(s'). Продолжая эти рассуждения конечное число раз лйбо приходим к заключению, что s' является искомым расписанием $*, либо получаем расписание 5° такое, что Fma*(s°) = = Fmax(s'), 8°ШФ 0 на интервалах с номерами т, т + 1, ... ..., T(s') — 1 и s°(t) = 0 на интервале с номером T(s') и последующих интервалах, т. е. T(s°) < Т(s'). Лемма доказана. Из леммы 3.1 следует, что при поиске расписания, доставляющего наименьшее значение функционалу Fmax(s), достаточно ограничиться рассмотрением класса оптимальных по быстродействию расписаний. Расписание $*, которому соответствует наименьшее значение как T(s), так и Fmax(s), будем называть оптимальными. 112
При оптимальном расписании момент завершения обслу¬ живания всех требований множества N равен Т = max fdi + 2 h I i ^ -W). (3.5) l J Обозначим через i наибольшее i^N, при котором в (3.5) достигается максимум. Пусть и е NJ~ и Ф«(Г) = тт(Ф;(Г)|(е^Г). (3.6) При оптимальном по быстродействию расписании обслуживания требований множества N\u момент завершения обслуживания всех требований равен Т = max{di+ 2 th\i^N\u}. (3.7) I к=^\и j Наряду с исходной рассмотрим следующую редуцированную задачу построения оптимального расписания. Если tu ^ — Т', удалим требование и из множества N. Если tu > > Т — Т', то сопоставим требованию и новую длительность обслуживания, равную tu = tu— (Т — Г'), и новую функцию штрафа фи (0 = — W t где W — достаточно большое число. Параметры остальных требований оставим без изменения. Пусть s' — оптимальное (доставляющее наименьшее значение как ГЫ, так и Fmali(s)) расписание для редуцированной задачи. Покажем, что T(s') = Т'. Действительно, если tu^T — Т', то T(s') = T' по определению. Пусть tu> Т — Т'. Имеем Т' = Т — (Г — Tf) = dt + + 2 h + tu — (Т — Т') = dt + 2 h+ С Очевидно, k=Nt\u h-N^u T(s') ^ T'. Если T (s') = dj-\- 2 tk + > T' при h^Nj\u некотором j ^ и, то, добавляя к обеим частям этого неравенства Т — Г', получаем dj + 2 tk > Г, что противоре- чит (3.5). Если Т (s') — dj + 2 ^>Г' при некотором h~Nj j > и, то dj + 2 *л>Г'д что противоречит (3.7). Следо- ft S Nj\u вательно, T(s') = Г'. Теорема 3.2. Пусть s' — оптимальное расписание для редуцированной задачи и Г" =max{d„, Т'}. Расписание s такое, что s(t) = и на интервале {Т", Т] и s(t)=s'(t) на остальных интервалах, является оптимальным для исходной задачи. 8 в, с . Танаев и др. из
Доказательство. Покажем, что среди оптимальных расписаний для исходной задачи существует расписание s такое, что s(t) = и на интервале (Г", Т]. Пусть Т' ^ dUy т. е. для любого требования i ^ N\u выполняется неравенство d\ + 2 tk^dlL. Отсюда следует, что du — du и di + 2 tk ^du + tu для любого i e iV, t. e. Г = + £u. Следовательно, sU) = и на интервале (du, Л для любого расписания s, у которого ГЫ = Г. Пусть Т' > du. Рассмотрим оптимальное для исходной задачи расписание s, при котором s(t)^u на единичном интервале с номером q iq>T') и sit) = u на интервалах с номерами q+1, q + 2, ..., Г. В частности, может быть q==T- Заметим, что tu^ Т — Т', так как иначе Т' + tu < Г, и учитывая, что du<T'y получим противоречие с (3.5). Следовательно, существует интервал с номером р, р< д, на котором s(t) = и. При этом р можно выбрать так, что s(t)=^u на интервалах с номерами р + 1, р + 2, ..., q — 1. Поскольку максимум в (3.5) достигается при I < и, имеем sit) на интервале (diy Г], а следовательно, и на интервале (р+1, д]. Среди требований, обслуживаемых во временном интервале (р+1, д], выберем требование с наименьшим номером v. Заметим, что dv<p[ иначе 3^ + 2 tk>Tf \ h~Nv\u / Пусть обслуживание требования у завершается в момент времени г. Очевидно, р <_г ^ д. _ Построй^ расписание 5, полагая s(t) = и на интервале с номером р, 5(0 = и на интервале с номером г и s(0 =j?U) па остальных интервалах. Это расписание допустимо, ГЫ = = ГЫ и Fmax(s) < Fmax(s)y поскольку сри(Г) ^ ср„(Г). Повторяя эти рассуждения конечное число раз, можно построить оптимальное расписание s такое, что s(t) = и на интервалах с номерами д, д+1, ..., Т, а следовательно, и искомое расписание s. Расписание s определяет расписание s' для редуцированной задачи (s'(t)=0 на интервале (Т'у Г] и s'{t) = s(t) на остальных интервалах). Если s' — оптимальное расписание для редуцированной задачи, s(t) = u па интервале (Г", Г] и s(t) = s'(t) на остальных интервалах, то Fmax(s) = = тах{ГтаХЫ), фи(Л} < тахИ^Ы), фи(Г)}= Гта1Ы. Теорема доказана. 3.6. Алгоритм построения оптимальпого расписания s* 14
непосредственно следует из теоремы 3.2. Па каждом шаге вычисляем Т по формуле (3.5), находим требование I с наибольшим номером среди требований, для которых достигается максимум в (3.5), и требование u^NJ, для которого выполняется (3.6). Находим Т' по формуле (3.7) и Т" = fc=max{du, Г'}. Полагаем s*it) = u на интервале (Т", Г]. Формулируем очередную редуцированную задачу: если tu ^ < Т — Т\ то исключаем и из N; если tu > Т — Т\ то полагаем функцию штрафа cpu(0 равпой — W на интервале планирования (О, Г'], а длительность tu обслуживания требования и равной tu— (Г —Г'). Переходим к следующему шагу и т. д. до тех пор, пока не получим N=0. Полагаем s*(£) = 0 па всех интервалах, па которых s*(t) не определено. Очевидно, построение расписания s* выполняется за конечное число шагов. Ниже будет показано, что число шагов алгоритма не превышает 2п — 1. Покажем, что оценка временной сложности алгоритма построения оптимального расписания s* равна ОЫ2). Для построения множества B°(i) и вычисления di для каждого i^N требуется выполнить не более ОЫ) операций. Для всех i ^ N достаточно ОЫ2) операций. Нетрудно видеть, что на каждом шаге алгоритма для вычисления Г, Т', Т" и отыскания требования I достаточно выполнить ОЫ) операций. Для построения множества отыскания и исключения и ^ NT требуется выполнить не более ОЫ) операций (см. гл. 1, § 1, п. 1.4) (без учета числа операций, которые необходимо выполнить при вычислении значений функций штрафа). Покажем, что число шагов алгоритма не превышает 2п— 1. Предварительно покажем, что если при расписании 5* имеет место прерывание в момент времени t\ то tf = dt для некоторого i ^ N. Рассмотрим произвольный шаг г алгоритма. Пусть N — множество оставшихся к данному шагу требований, 1гивг — найденные на данном шаге требования I и и; Т и Т' вычислены по формулам (3.5) и (3.7). Очевидно, в интервале (Г] будут обслуживаться требования множества Ntr и только они. Если tUr^.T — Tf, то требование ит будет обслужено в интервале времени (Т — tUry Г] без прерываний. Пусть £Ur > Т — Т' и / — требование с наименьшим номером, для которого dj + 2 tk = T'. Тогда d5 = dh так h(=Nj\u как иначе 3K + th = 3) для некоторого &eJ3°(/), к<]\ и 119
(иначе из dh + 2 th—T'. Заметим, что dUr<Zdj i<=Nk Т' + tur> Т следует dj + 2 th> Т,что противоречит (3.5)) h<=Nj и, следовательно, ит & Nj% Очевидно, в интервале (dj, Т'] будут обслуживаться только требования множества N}. Поэтому в обслуживании требования иг имеет место прерывание. Покажем, что это прерывание происходит в момент времени dj. Действительно, на шаге г полагаем фМг (t) = — W на интервале (О, Г'], и, следовательно, будет выполняться неравенство Фиг (dj) < q>i (dj) (3.8) для всех i е Nir\Nj. После выполнения некоторого числа шагов (построив расписание обслуживания требований множества Nj на интервале (dj, Г']), придем к редуцированной задаче, для которой множество N оставшихся требований совпадает с N\Nj. На следующем шаге получим T'=dj. Учитывая (3.8) и то, что в интервале (dt , dj] могут обслуживаться только требования множества Nir\Nj% приходим к заключению, что на данном шаге в качестве требования и будет выбрано требование ит, т. е. s*(t) = ur на интервале с номером dj. Таким образом, прерывание обслуживания требования иг имеет место в момент времени dj. Аналогичные рассуждения можно провести для любого требования, в обслуживании которого имеют место прерывания при расписании s*. Таким образом, если в обслуживании требований при расписании s* имеет место прерывание в момент времени t\ то tf = di для некоторого i е А, и, следовательно, общее число прерываний не превышает п— 1. Требование с номером п обслуживается без прерываний. Итак, число шагов алгоритма не превышает 2(п — 1) ■+ 1 = 2п — 1. Таким образом, временная сложность алгоритма построения расписания s* равна ОЫ2). 3.7. Рассмотрим некоторые частные случаи задачи минимизации максимального штрафа. Пусть функции штрафа ФМ) таковы, что для любых v, имеет место фУ(£) ^ < ФиШ для всех £М0, Т] либо yv(t) > фцШ для всех ie МО, Г], где Т вычислено по формуле (3.5). В п. 3.3 приведены примеры функций штрафа, обладающих указанным свойством. В этом случае оценка временной сложности алгоритма по-прежнему равна 0(гс2), но исключается необходимость вы¬ 116
числений значений функций штрафа па каждом шаге алгоритма. Действительно, сопоставим каждому требованию i^N целое число J(i) — индекс требования i — таким образом, чтобы из условия <pvU) < фцШ, t^(О, Т] следовало Нахождение на каждом шаге алгоритма требования u^NY-, для которого выполняется (3.6), сводится к отысканию в множестве NJ~ требования с наименьшим индексом. Для этого достаточно выполнить не более ОЫ) операций. Одной из функций, обладающей указанным выше свойством, является функция ф*(£) = sign (max {t — Di, 0}) (см. п. 3.3). Поэтому предложенный алгоритм можно использовать для решения задачи построения расписания обслуживания частично упорядоченных требований в заданные сроки. 3.8. В заключение этого параграфа отметим, что если на каждом шаге алгоритма в качестве и выбирается требование с tu^T-T', то получаемое в результате расписание s* не содержит прерываний. В этом случае алгоритм можно использовать и для решения задачи при запрещении прерываний процесса обслуживания. Можно сформулировать различные достаточные условия, при которых будет иметь место указанная ситуация. Приведем некоторые из них. а) Обозначим через d общий делитель чисел du d2, ..., dn. Если ti = d (г =1,тг), то s* не содержит прерываний. Действительно, в этом случае величины Г и Г' кратны d и, следовательно, Т — Т' ^ d. В частности, s* не содержит прерываний, если ti == 1 (i = 1, п). б) Расписание s* не содержит прерываний в случае, когда di + ti^di+i (i=l,n — 1). Действительно, в этом случае на г-м шаге алгоритма Т = dn-r+\ + tn-r+l, Т' = dn-r + tn-r и, следовательно, и = п — г + 1 и Т — Tr ^ tu. в) Расписание s* не содержит прерываний, если ф,(0 = = ф(£ — di) (i— 1, п) и ф — неубывающая функция. Действительно, в этом случае на каждом шаге в качестве требования и выбирается требование множества N с наибольшим номером. Пусть на этом шаге Т' = dj + 2 Н для некоторого k(=Nj\u j^N. Тогда T' + tu^T (иначе Т' + tu = dj + 2 tk>Tf h<=Nj что противоречит (3.5)). Отметим, что в силу леммы 3.1 расписанию s* соответствует наименьшее значение T(s), так что оптимальное по 117
быстродействию расписание без прерываний можно получить, положив, например, ф*(£) = t — dt (i = 1, п). Если на множестве N не задано отношение порядка то di = di (1=1,11) и фгШ = ф(£ — dd — функция времени пребывания требования i в системе. Таким образом, наименьшее значение максимального времени пребывания требований в системе, а следовательно, и любой неубывающей функции этого времени достигается при обслуживании требований без прерываний в последовательности (1, 2, ..., п). Напомним, что в рассматриваемом случае dx ^ d2 ^ < dn. § 4. Один прибор. Суммарный штраф В данном параграфе рассматривается ряд задач минимизации суммарного штрафа за обслуживание требований одним прибором, для которых известны полиномиальные алгоритмы решения. 4.1. Множество N={1, 2, ..., п} требований обслуживается одним прибором. Требование i^N поступает в очередь на обслуживание в момент времени di > 0, длительность его обслуживания равна U > 0, желательный (директивный) срок завершения обслуживания — А ^ 0. Допускаются прерывания в обслуживании любого требования. Каждому требованию i ^ N сопоставлена неубывающая (на интервале планирования) функция штрафа фДА Необходимо построить расписание s* обслуживания требований множества N, при котором функционал ^(s)=2<Pi(*i(s)) (4.1) i=l принимает наименьшее значение. Здесь Uis) — момент завершения обслуживания требования i при расписании s. Расписание 5* будем называть оптимальным. Ниже рассматриваются задачи построения оптимальных расписаний в случаях, когда а) фг(£) = <XiUi(t), где и{Ш = 0, если £<А, u*U) = 1, если t>D{, и осг>0 (i =l, /г); предполагается, что величины di и А согласованы следующим условием: если dv<dм, то A ^ А, 1 < v, ц < п\ рассматривается ряд частных постановок этой задачи, которую иногда называют задачей минимизации взвешенного числа запаздывающих требований; б) фi(t) — произвольные (неубывающие) функции, величины di и Di — целочисленные, U — 1 (i — 1, п)\ 118
в) cpiU) — ф(£) + pi U = 1, п), (fit) — неубывающая функция. Ситуация, когда все требования поступают в очередь на обслуживание одновременно (df=0, i — 1, п) и (неубывающие) функции штрафа принадлежат одному и только одному из следующих трех классов: 1) ф*(£) = ad + (Зг-, 2) фД£) = = а» exp (yt) + pf, 3) фг(^) = (fit) + Pi, рассмотрена в гл. 3. 4.2. Перейдем к рассмотрению первой из указанных задач. Пусть величины di и А таковы, что из условия dv < следует А ^ А для всех 1 ^ v, jx < п. Пронумеруем требования таким образом, чтобы соблюдались неравенства dx < <d2<...<dn и Dl<D2<...<Dn. Для того чтобы существовало расписание s, при котором все требования обслуживаются в заданные директивные сроки, необходимо и достаточно, чтобы 2 4 (4.2) г=к для любых 1 ^ к < I < п (см. п. 2.5, § 2, гл. 2). Момент окончания обслуживания требования ц (/— 1 ,п) в расписании, при котором требования обслуживаются (без прерываний) в последовательности я == Hi, i2, ..in), равен iij (я) = max {4(я)} + fijt ^ (л) = о. (4.3) —> Пусть N' ^ N. Обозначим через яn* перестановку элементов множества N', в которой требования упорядочены по возрастанию номеров. Если требования обслуживаются в последовательности Ял = (1, 2, ..., п), то из (4.3) следует, что ~tt (nN) = max <4 + 2 tS (4.4) l<k<l{ i=h ) для всех l — 1, n. Сравнивая (4.2) и (4.4), приходим к следующему заключению. Для того чтобы существовало расписание s, при котором ' все требования обслуживаются в заданные директивные сроки, необходимо и достаточно, чтобы при обслуживании —> — -> требований в последовательности nN имело место ti(nN) < А для всех 1= 1,п. Следовательно, если при обслуживании требований в по- следовательности я* нарушается директивный срок хотя
бы для одного требования, то не существует расписания (с прерываниями или без прерываний), при котором все требования обслуживаются в заданные директивные сроки. Пусть s — некоторое расписание обслуживания требований множества N, Л — множество запаздывающих требований, т. е. требований, которые обслуживаются с нарушением директивных сроков при расписании s. Обозначим через Л' множество запаздывающих требований при обслуживании —> требований в последовательности ЫК\П, ял), где — произвольная перестановка элементов множества R. Покажем, что Л'^Л. Построим расписание s обслуживания требований множества N\R, полагая s(t) = 0, если s(t) ^ R, и s(t) — s(t) в противном случае. При расписании s все требования множества N\R обслуживаются, очевидно, в заданные сроки. Следовательно, и при обслуживании этих требований в последовательности nN\R также не будет запаздывающих требований, т. е. Л'^Л. Пусть фг(£) '= где иМ) = 0, если t^D{, иМ) = 1, если t > Di, и а* > 0 (i = 1, п). Если R — множество запаздывающих требований при расписании s, то F2 (s) = 2 аг- i=Ii Если s* — оптимальное расписание и R* — множество запаздывающих требований при этом расписании, то распи- —> сание s, определяемое перестановкой Яя*)т также является оптимальным при любой последовательности Пц* обслуживания требований множества R*. Действительно, если Л — множество запаздывающих требований при расписании s, то Л ^ Л* и Е% (s) = 2 ai ^ < 2 аг = Fz (s*). Таким образом, в рассматриваемом случае для построения оптимального расписания достаточно найти множество Л* s которому соответствует наименьшее значение /(/?) = = 2 аг и при котором обслуживание требований мпожест- *<=я ва Л\Л* в порядке возрастания их номеров не приводит к нарушению директивных сроков. Множество Л* будем называть оптимальным. Таких множеств может быть, вообще говоря, несколько: Лх, Л2, . .., Л„. Обозначим Л* = {Лх, <...х ). Наряду с исходной задачей построения множества Л* в дальнейшем будут рассматриваться редуцированные зада¬ 120
чи, получаемые из исходной удалением того или иного множества требований. Пусть ЛсгЛ^еЯ* и Л*— оптимальное множество для редуцированной задачи, полученной из исходной удалением требований множества R. Тогда множество Л' = Л U R* является оптимальным для исходной задачи, т. е. R' е Я*. Действительно, при обслуживании требований множества —^ N\R' в последовательности tcn\r' нет запаздывающих требований и f (R')=f (R) + f(R*)^.f(R) + f(R*\R) = f(R*)- Пусть = i2, ..1*). Обозначим через ТЫ) момент завершения обслуживания требования ih при обслуживании требований множества {г,, i2, ..ц) в последовательности л. Через тс\и (l^v^k) будем обозначать перестановку, получаемую из я удалением элемента U, т. е. n/iv = Ui, Ч,... ..., U-1, zv+1, . ih). Аналогично, через n\N' будем обозначать перестановку, получаемую из я удалением элементов множества N's {д} = {ih i2, ..., ij. —> —> Теорема 4.1. Пусть я=(1, 2, ..., га), ^(я)^Д-, / = ~ ~ ~ __ —^ = 1, к— 1, th(n)>Dk и я = (1, 2, ..., /с). Ясли существует такое jlx (I^jli^/c), что Г(я\ц) ^ ТЧяУу) га a^av для всея 1 ^ v ^ к, то существует такое оптимальное множество Я*, что (х ^ Л*. Доказательство. Отметим, что в рассматриваемой ситуации любое оптимальное множество Л* ^ Я* содержит хотя бы одно требование v (1 ^ v ^ к). Доказательство теоремы проведем индукцией по числу требований п. Если га = 1, то теорема, очевидно, справедлива. Пусть, она справедлива при п ^ га0. Покажем, что теорема справедлива и при га = га0 + 1. 1. Пусть Я* = {Л*, Л*, ..., Л*}. Выберем в каждом из множеств Л* требование с наибольшим номером 0*. Положим 0 = max {&М<К v). а) Пусть к < 0. Удалим из множества N требование 0. Если для исходной задачи выполняется условие теоремы, то оно выполняется, очевидно, и для полученной редуцированной задачи. Поскольку в редуцированной задаче га = га0, то для нее существует оптимальное множество, содержащее требование ц. Дополняя это множество требованием 0, получаем искомое оптимальное множество Л*. б) Пусть к = п. В этом случае требование п является единственным запаздывающим требованием при обслуживании требований в последовательности я = (1, 2, ..п). Име¬ 121
ем Г(лЛц) < Г(я\га) = tn-Ля) < Вп-i < Dn. Поскольку aJA < av для всех 1 ^ v < га, то можно положить Я* = {|x}. 2. В дальнейшем предполагается, что 0 к < га. Обозначим Zj (Jtjv') = max {0, tj (я^) — Dj}f где j ^ N' ^ N. —» —> Положим z(n) = max{zj(n)\k^j <п). Поскольку в рассматриваемой ситуации любое оптимальное множество Л* содержится в (л), то ТЫ) — Г(я\Л*) ^ >z(jt). С другой стороны, если ТЫ) — Г(я\Л) > гЫ) для некоторого множества Л ^ (я) и 2 ai — 2 аи то Л е Я*. iSH ген* а) Пусть к<п — 2. Сформулируем повую задачу, удаляя из множества iV требования /с + 1, к + 2, ..., га и добавляя повое требование /с + 1 с dh+i = dh, Dk+l-=T{я), ^+i = z(n) и ал+1 — РУ, где ТУ — достаточно болыное_число. Полученное множество требований обозначим через N. При любом Л* ^ Я* среди требований множества Я\Л*, —> обслуживаемых в последовательности я-^чн#, очевидпо, нет запаздывающих требований. Если Л* — оптимальное множество для новой задачи, то 2 2 ai« Поскольку а/1+1=РУ, iefi* ген* то Я*^{л). ^Значение *л+1 (л^чй* ) = 7Чя\Л*) + ft+l = *= T(n\R*) + г(я) < Dk+i = ТЫ). Следовательно, ТЫ) — —> _ — Г(лЛЛ*) > г(я). Таким образом, Л* — оптимальное множество для исходной задачи. В новой задаче \N'\ = к + 1 < га — 1 = га0. Если для исход- пой задачи выполняется условие теоремы, то оно выполняется, очевидно, и для новой задачи. По индуктивному предположению существует Л*, содержащее ц. > б) Пусть & = га —1 и Zn-i(n) > z„(n). Имеем ТЫ\\х) < ^ Г(я\(га — 1)) ^ Dn-2 < A»-i и ТЫ) = Dn-i + znSя). Отсюда Г(я) — Г(я\ц) > zn-i(я) = г(я). Следовательпо, можно положить Я* = {ц}. —^ —> в) Пусть Л —га—1 и ^п-Дя) < 2„(я). Пусть Я* — некоторое оптимальное множество, не содержащее ц, и у_— требование из Л* с наименьшим номером. Обозначим Л =Л*\^. Для доказательства теоремы достаточно показать, что множество Л = Л U jbt является оптимальным. Так как aM<aT, то 2 ai^ 2 ai* Поэтому множество Л i=H г=я* будет оптимальным, если ТЫ\Н) < Z)n-i и Г(я\Л)=^Л„. Так как 7Чя\|л) ^ Г(я\(га—1)) < A»-i и |л^Л, то 122
T(n\R)^Dn-i. Очевидпо, T(n\R*) < Dn. Поэтому остается показать, что T(n\RXT(n\R*). (4.5) Покажем, что в рассматриваемой ситуации из неравенства Т(я\р) ^ Г(я\^) следует Пя\ц) < Т(п\ч\ (4.6) а из последнего неравенства следует 7Чя\{ц, г»^Г(я\{^, г}) (4.7) для любого ГЕЙ. Неравенство (4.6) следует из неравенства 7Чя\ц) < ^ Г(я\'у) и справедливого для любого v ^ (я) очевидного —> соотношения T(n\v) = max (Г(я^), dn} + tn. , Если R = 0, то из (4.6) следует (4.5), и теорема_доказа- иа. Поэтому в дальнейшем будем считать, что R¥= 0 и 7 < к. Перейдем к доказательству справедливости неравенства —> —> —> (4.7). Введем обозначения: Д(я\0 = ТЫ) — T(n\i) и Д(я\Лу) = T(n\i) — ТЫ\и,;}), г, / е {я}. Пусть 6i = ?<_i(jt) — — di для i = 2, гг, б* = (я\г) — ^ для i^r+2n б,Г+1 = —> = 1 (я\г) ^r+1- Заметим, что б, > 0 для всех i > 7 + 1 (иначе исключение —> 7 из я не влияет на момепты завершения обслуживания требований гг —1 и гг и, следовательно, 4 9^7?*). Из неравенства 77(я\р) ^ 7Чя\(гг — 1)) следует, что 6i^6n-i и, значит, б*>0 для всех i> ц+ 1. Нетрудно видеть, что Д (я\р) = min ftp, min 8 Л t I Ц+Kia J А (я\т) = min ftyf min 6Д. \ v + Ui<n / Из (4.6) следует Д(я\ц) ^ Д(я\^). (4.8) Заметим, что б*>0 (иначе y&R*) и 6*;>б* для >r+ 1. Кроме того, бГ^бг+1,; так как бгг+1 = ?г_Дя\г) — -— -> — c?r+1 tf—1 (я) ^г+1 ^ tr-iin) drt 123
Пусть г>тах{^, (П. Тогда Д (л\г\(х) = miribn, min 8ir min 6*], l |i+Ki<r-i r+i^i^n ) А (л\г\у) = min \ty, min 6ir min 6*1. ( y+l<i<r-i r+l^i<n J Обозначим a = min/^y min 6Л, fe^minfty, min 6Д, l JLI + Ki^r-1 / l V + l^i^r-i / c = min 6*, d= min б*. Тогда Д(л\р,) = min {a, с), Д (jxV/) == rci-^n r+Kia —> ^ = min{&, с}, Д(я\г\|ы) = min (a, d}, Д (я\г\^) = min {b, d}. Неравенство (4.8) запишется в виде min {а, с) ^ min {Ъ, с). (4.9) Из неравенств б^>б^ (z^r+1) и бг^б;г+1 следует Od. Покажем, что в этом случае min (a, d) ^ min {&, d}. (4.10) Действительно, если с ^ а, то min {a, d) = d ^ min {6, d). Если с>а, то из (4.9) откуда следует (4.10). Из (4.10) получаем Д(ax\r\jLx) ^ Д(лЛЛ'у) и, следовательно, выполняется соотношение (4.7). Пусть 7 < г < (ы. В этом случае Д (л\г\[х) = min ! min б*!, V |x+l^i<n J Д (я\г\у) = min fty, min 6Ь min б-]. I y+i<i<r-i r+Kia J Обозначим A = t^, В = min j£Y, min 6Д, C=min бь D = min 6|, E = 6r, D' = min 6*, C' = min б*. Тогда r + l<i< jli r + Кг^ц n + l^i^n Д(лЛр,) = min {A, С), Д(лЛ'у) = min {В, E, D, С}, Д(я\г\р,) = = min{H, С"), Д (яХЛ'у) = min {В, D', C"}. Неравенство (4.8) запишется в виде min {А,С}> min Ш, Е, D, С). (4.11) Из б| > б*,, i ^ г +- 1, следует D > D' и С > С", а из 6Г ^ ^б^+1 следует Е ^ D\ Покажем, что из (4.11) следует min U, С'} ^ min {В, D', С'). (4.12) 124
Действительно, если С ^ А, то С' > min {В, D', С'}. В противном случае min {А, С") = Л = min [Л, С} > ^ min {Я, Я, D, С} > min {Я, Я', С"}. —> — Из (4Л2) получаем Д(лЛЛц) > (яЛЛ^) и, следовательно, выполняется соотношение (4.7). Перейдем к непосредственному доказательству справедливости соотношения (4.5). Удалим из множества N требование г. Множество R*\r является, очевидно, оптимальным для полученной редуцированной задачи. Поскольку \R*\ ^2, то zn{nN\r) > 0. 'Если требование п является единственным запаздывающим требованием, то на основании п. 16) можно положить Л* = {р, г). Пусть zn-i{nN\T) > 0. На основании —> —> (4.7) имеем 7ЧлЛ-\Л|ы) ^ T(nN\r\^). Из этого неравенства следует (см. (4.6), (4.7)) неравенство Г(л^\Д{р, rj) < —> ^ 71(лЛ\г\{'у, rt}), где rt^R\r. Последнее неравенство можно переписать в виде 7Чя\{р, г, г{}) ^ Г(лЛ{ц, г, rj). Повторяя аналогичные рассуждения конечное число раз, убеждаемся в справедливости соотношения (4.5). Теорема доказана. —^ Следствие 4.1. Пусть Я<=Я*^//*, л^\г — (ii, iii . •. • • •» • • •» ^r)? (*^iV \ J?) j -- 1, /с 1, (зТ]W\r)^> Difo и тс = U'i, i2j..., ift). Если существует такое p (1 ^ p ^ /с), что TinXiv) ^ T{n\U) и для всех 1 ^ v ^ /с, то существует такое R* e Я*, что Я*. Справедливость этого утверждения непосредственно следует из теоремы 4.1 и сделанного выше замечания относительно оптимальных решений исходной и редуцированной задач. 4.3. В общем случае процесс поиска оптимального множества Я* сопряжен с перебором большого числа вариантов. При последовательном конструировании, анализе и отсеивании вариантов использование следствия 4.1 зачастую позволяет сократить этот перебор. В этом разделе рассматривается несколько частных случаев задачи, в которых множество R* может быть построено в результате систематического использования следствия 4.1. Алгоритм построения множества Я* в этих случаях будет состоять в следующем. По-прежнему предполагается, что из условия dv < dи следует Dv ^ Dц для всех 1 ^ v, \х ^ п. Про- 125
нумеруем требования таким образом, чтобы соблюдались неравенства di ^ d2 ^ ^ dn и Dl ^ D2 ^ ... < Dn. Положим R = 0. На каждом шаге находим первое запаздывающее требование к при условии, что требования обслуживаются в последовательности nN\R = (ii, i2, ..к). Если запаздывающих требований нет, то R*=R, иначе полагаем я = = (ii, £2, ..к)- Рассматриваемые в этом разделе ситуации характеризуются тем, что на каждом шаге алгоритма можно отыскать такое требование £ц(1 < ц ^ й), что Т(п\к) ^ ^Т(п\к) и для всех l^v^/c. Находим это тре¬ бование, полагаем R равным R U к и переходим к следующему шагу. Очевидно, число шагов алгоритма не превышает п. Покажем, что общее число операций не более 0(п2). Нумерация требований с соблюдением неравенств di ^ d2 ^ ^ dn и Di ^ D2 ^ ^ Dn (либо установление не¬ возможности такой нумерации) может быть выполнена за 0(n\ogn) операций (гл. 1, § 2). Нахождение требования к на каждом шаге может быть выполнено следующим образом. Пусть и и у — номера требований ih и к, а о — последовательность л, найденные на —> предыдущем шаге. Пусть nN\R=(ii, i2, ..., £г). Вычислим . —> - —> i}>u + i, по формуле (4.3), полагая ^^_х(л^\в) = = T(o\v) для ij = u+i (па первом шаге полагаем и = 0 и ti0 (njv\fi)=0). Сравнивая ti} (ллкл) с Z)i;. (ij + 1), выберем в качестве iA первое требование, для которого _ —> (^n\r) > Diy Очевидно, общее число операций, необходимых для отыскания требований к (по всем шагам алгоритма), ие превосходит ОЫ). Рассмотрим процедуру выбора требования £й, для которого ТЫ\к) ^ 2Чя\£У) при всех l^v^Zc. Если к = 1, то к = к• Если й> 1, то для выбора требования к проделаем к итераций. На первой полагаем р = ii, образуем две «после- I довательиости» ох и аи множества элементов которых пусты, и полагаем Т (о^) = Т (ах) = 0. На итерации 1,1 = 2, к, полагаем о* = (gi-i, U) и о[ = (a^, Вычисляем Т (az) = = шах [Г (ty-i), + t4 и Т(о\) = max [Т (п/'-х), ) + + ^г;_1. Если Т (сгг)> Т (а)),. то полагаем р равпым м, последовательность Gi равной (X/, а зпачепие ТЧо/) равпым T(ot). Легко видеть, что требование р, найденное после й-й итерации, удовлетворяет условию ТЫ\р) ^ Т(п\к) для всех 1^ 126
< v < к. Полагаем гй = р. Очевидно, число операций, необходимых для выбора требования ц иа каждом шаге, не превосходит ОШ, т. е. не более О(п). Таким образом, общее число операций для построения оптимального множества R* в рассматриваемом случае не превосходит OW). а) Рассмотрим задачу минимизации числа запаздываю- щих требований при одновременном поступлении требований иа обслуживание. В этом случае di = d2 = ... = dn = 0, oCi = = а2 = ... = an= 1. Пронумеруем требования по пеубывапию директивных сроков: Д ^ D2 < ... < Dn. Поскольку Т (n\iv) = Т (я) — tiy;f 1 ^ v ^ kf то в качестве следует выбирать требование i е (я) с наибольшей длительностью обслуживания U. Пример. Пусть ЛГ={1,2,3,4,5,6), d,= 0, а< = 1, i = 1, 6, значения U и Д приведены в табл. 4.1. Таблица 4.1 i 1 2 со 4 5 со и 4 1 3 2 3 1 Di 4 5 6 7 7 8 Множество R, последовательность nN\R=(ii, i2, ..., iT), значепия U. (я^\н) и D\.{j = 1, г) для каждого шага алгоритма приведены в табл. 4.2. В этой же таблице приведены Таблица 4.2 Шаг 1 2 3 R 0 1 1,3 —> JlJV\R=(t*l» • • ; ir) 1 2 3 4 5 G 2 3 4 5 6 2 4 5 6 *г.(яЛГ\к) 4 5 8 10 13 14 1 4 6 9 10 1 3 6 7 »г. 3 h 4 5 6 7 7 8 5 6 7 7 8 5 7 7 8 \ 5 l) (1, 2, 3) (2, 3, 4, 5) 1 3 ih, л = (ii, i2, ..., ih) и i^, получаемые иа каждом шаге. Заметим, что на втором шаге в качестве можно выбрать требование 3 или 5. Для определенности выбрано ц = 3. 127
Множество Д* = {1,3). Расписания, определяемые перестановками nl= (2, 4, 5, 6,1, 3) и л*— (2, 4Г 5, 6, 3,1), являются оптимальными. Число запаздывающих требований равно 2. Для построения оптимального множества R* в рассматриваемом случае требуется не более 0(n\ogn) операций с использованием представления данных с помощью сбалансированных 2-3-деревьев (см. гл. 1, § 2). Зададим на множестве N совершенный псевдопорядок =>■ следующим образом: i / тогда и только тогда, когда U ^ tj. На каждом шаге алгоритма множество (л) с заданным на нем отношением =*- будем представлять в виде сбалансированного 2-3-дерева. Тогда для нахождения требования iц (максимального относительно =>) достаточно одной операции. Для исключения требования ip из (л) достаточно Oilogn) операций. Поэтому для нахождения требований ip на всех шагах алгоритма требуется не более Oinlogn) операций. Покажем, что для построения сбалансированных 2-3- деревьев (на всех шагах алгоритма) требуется не более CKnlogn) операций. Для построения дерева па первом шаге достаточно О(п) операций. Пусть и — номер требования ц, a N' — множество {n)\ip, найденные па некотором шаге алгоритма. Построение множества (л) на следующем шаге представляет собой включение в N' требований и Л-1, и + 2, ... ..., v, где v — номер требования ik на этом шаге. Для получения сбалансированного 2-3-дерева, соответствующего множеству {л}, из дерева для множества N' достаточно O(nilogn) операций, где п{ = и—и. Таким образом, для представления множеств (л) в виде сбалансированных 2-3- деревьев на всех шагах алгоритма требуется не более Oinlogn) операций. б) Пусть di = О (i=l,n) и из условия ti<tj следует a* > aj для любых 1 ^ £, j ^ п. Пронумеруем требования по неубыванию директивных сроков: Di ^ D2 ^ ^ Dn. Поскольку Т (n\iy,) = Т (л) — tiyj (1 ^ к)9 то в ка¬ честве требования ip следует выбирать требование i е {д} с наибольшей длительностью обслуживания U и наименьшим значением аг. Для построения оптимального множества требуется не более Oinlogn) операций. в) Рассмотрим задачу минимизации числа запаздываю¬ щих требований при неодновременном поступлении требований на обслуживание. Предполагается по-прежнему, что требования можно пронумеровать так, что будут соблюдаться условия di ^ d2 ^ ^ dn и Dt ^ Dz ^ ... ^Dn. 128
Поскольку в этом случае ах = а2 = ... = а„ = 1, то для нахождения требования £,t достаточно вычислить значения T(tc\U) для всех 1 ^ v < к и выбрать требование, которому соответствует наименьшее из вычисленных значений. Пример. Пусть N = И, 2, 3, 4, 5, 6}, = 1 (£=1,6), значения ti, d{ pi Di приведены в табл. 4.3. Таблица 4.3 i 1 2 со 4 5 G и 1 2 2 3 2 1 di 1 2 3 3 4 7 Di 3 4 5 7 8 9 1) Полагаем R=&. Последовательность = (£i, £2, ••• ..., £r) = (1, 2, 3, 4, 5, 6). Для нахождения требования ik вы- —> чнсляем ti. (пя\п) но формуле (4.3) и сравниваем с Dif £i(ftjv\n) = 2 ^ £г(л^\п) = 4 = П2, £з(л^\п) = 6 ^ D3. Таким образом, £л = 3 и я = (1, 2, 3). Для нахождения требования £ц используем процедуру, описанную при выводе оценки сложности алгоритма получения оптимального множества /?*. На первой итерации р = 1, ai — ai = (0), Т (ai) = Т {о[) = 0. На второй итерации сг2 = = (2), а2 = (1), Т (ст2) = 4 и Г (сх2) = 2. Поскольку Т (а2) > > Т (<т2), полагаем р = 2, ст2 = а2 = (1) и Т (сг2) = Т (сг2) = 2. На третьей итерации а3=(1,3), а3 = (1,2), Т (сг3) = 5 и Т (а3) = 4. Поскольку Т (а3) > Т (а3), полагаем р = 3, <т3 = = а3= (1, 2), Г(а3) = Г(аз)=4. Полагаем £ц = р = Зи Я = (3). 2) Множество R = (3), последовательность я*\л=(1, 2, 4,5,6), £а = 5, я = (1,2, 4, 5) и £м = 4. Полагаем Д = {3, 4). 3) При обслуживании требований в последовательности Ял’\л = (1, 2, 5, 6) запаздывающих требований нет. Следовательно, R* = {3, 4} и расписания, определяемые перестановками я? = (1,2,5, 6, 3,4) и я* = (1, 2, 5, 6, 4, 3), являются оптимальными. Число запаздывающих требований равно 2. г) Пусть требования могут быть пронумерованы таким образом, что dx < d2 < ... < dn, ^ D2 < ... < Dn, £A < t2 < ... ... < £n, ai > a2 > ... > an. В этом случае при построении оптимального множества R* в качестве ц можно выбрать требование £*. Действитель- 9 В. С. Танасв и др. 129
1. Для поиска требований ih (по всем шагам алгоритма), как показано выше, достаточно О(п) операций. Следовательно, для построения оптимального множества в рассматриваемом случае требуется не более 0(n\ogn) операций. д) Пусть требования могут быть пронумерованы таким образом, что ... <dn, D2< ... ^ Dn, ai ^ ^ a2 > ... > a„ и tt ^ d<+1 — di (i = 1, n — 1). В этом случае T (n\ik) ^.Т (п) — tifi, Т (я \iv) = Т (я) и aiv» 1 ^ v ^ к — 1. Поэтому в качестве следует выбрать требование ik. Для построения оптимального множества достаточно O(nlogn) операций. е) Пусть требования могут быть пронумерованы таким образом, что Di^D2^...^Dn, а1<а2< •. а», А = = di-i + t, 2(п — i)t ^ ti^2(n — i)t 4-1, i=l,n, d{) = 0, t> 0. В этом случае Т (я\^) = Т (я) — Г (я) — — (2(n-^i1)t-t),T{n \iv) = T(n)-tiv^T(n)-{2{n-iy,)X Xt + t), 2 Поскольку 1, то T(n\ii) ^ < 7Чя\^) для всех 2<v ^ к. Так как ai± aiy, 2 к, то в качестве ц можно выбрать требование U. Для построения оптимального множества достаточно O(nlogn) операций. 4.4. Рассмотрим задачу минимизации суммарного штрафа за обслуживание требований, отличающуюся от рассмотренной в п. 4.2 тем, что 1) di = 0 (i = 1, п) и 2) требования множества Q ^ N должны обслуживаться без нарушения директивных сроков. Функции штрафа имеют вид ц>&) = а(и№), где иМ) = 0, если t ^ Du Ui(t) = 1, если t > D{, и a< >0, i& Q. Необходимо построить расписание s*, которому соответствует наименьший суммарный штраф за обслуживание требований при условии обслуживания требований множества Q без нарушения директивных сроков. Такое расписание будем называть оптимальным. Пронумеруем требования по неубыванию директивных сроков. Если R* — множество запаздывающих требований при расписании s*, то, как и в п. 4.2, расписание s, определяемое перестановкой (n>N\R*i яr*), является оптимальным при любой последовательности Яд* обслуживания требований множества Д*. Таким образом, задача сводится к построению такого множества Л* требований, что а) R*^N\Q, б) требования множества N\R*, упорядоченные по возраста- 130
ншо номеров, обслуживаются без нарушения директивных сроков и в) множеству R* соответствует наименьшее значение / (R) = 2 ai среди всех множеств Л, удовлетворяющих i = R условиям а) и б). Множество D* будем называть оптимальным для рассматриваемой задачи. Пусть Q = {quq2, ..qP), где q, < q2 < ... < qP. Если qj для некоторого 1 ^ ^ р, то задача не имеет з решения. Далее будем предполагать, что 2 ^Dq. для i=i 3 /=1,р. Модифицируем директивные сроки требований следующим образом. Положим Di = Dt для требований i, qv < ^ i < п. Положим Di = min jDu Dq- — tq.\ для требований г, qHi ^ i ^ qj - 1, где j = p, p - 1, ..., 1ид0= 1. Рассмотрим редуцированную задачу, получаемую из исходной удалением требований множества Q и соответствующим изменением директивных сроков оставшихся требований. Директивные сроки D* требований множества N' = = N\Q зададим следующим образом. Положим D* = Di f __ з для требований t, i < q{. Положим Di = D* — 2 для требований i, < i < qi+4, где 1 ^ ^ p и qp+i = n + 1. j Нетрудно показать, что из условия 2 £gz^D^, ] = 1 rpt следует, что D| 2^0 для всех i^N'. Покажем, что в редуцированной задаче Dv ^ D^ при v < ц. Для этого достаточ- / / но показать, что Dv ^ D^ при условии, что в последователь¬ ности Jtjv' требование v непосредственно предшествует ц. Пусть qj < v < р < qj+i, Kj<p. Тогда из Dv следует Dv ^ D^, откуда следует DV^D^. Нетрудно проверить, что при 1 ^ v < р < q{ также Dv ^ D^. Пусть v < qj < ц < qi+l1 1 ^ < р. Если / = 1, то Dv = = Dv = min [Dv, DQl — f9l). Если р>1, to Dv = min [DVf D^ Dg2 tq2}. Если p — ly to Dv = min [Dv, D(7i — ^1 J. с другой стороны, D^ = D^ — tqv Если p> 1, TO DЦ = min (D^ — f9l, Dg2 — f9l — fg2). Если p = 1, to Поскольку D^^D^, to Dv^D^. 9* 131
_ Ы f j-1 _ Если / >1, TO Dv = Dv— 2 tq = min|z?v— 2*9;> Д _ 9 -ШШ W/V ^9j г=1 ' l 1=1 3 — 2 *9 ]• Если p>j, to Dv = min (dv — 2 tq,, Aji ~ i=i 'i 3 1 = 1 3 + 1 — 2 ht, D4j+1— 2 Если p = j, T0 /)v = min \DV .i-i — 2 tq,, Dq.— 2 tq,}. С ДРУГОЙ СТОрОНЫ, D'p, = £>p —2 V 1=1 1 J 1=1 ) 1=1 I i _ 3+1 ) Если p >to D’v. = min|z>p — 2 tqi, Dqj+1 — 2*gjJ- Если 3 p = jx to = Z>n — 2^9,- Поскольку Д ,. < Z)M, to D'^D'^- 1 1 • J Аналогично можно показать, что D'v ^ при v < qj, qh<\i<qh+1, l^/</c^p. Поскольку для редуцированной задачи выполняется для любых требований v, \i^N\ v < ц, то она относится к классу задач, рассмотренных в пп. 4.2 и 4.3. В частности, если в редуцированной задаче из условия U<. < следует av ^ 0Сц для любых v, ц е N', то для построения оптимального множества достаточно 0{п' log га') операций, где п. = |А'| (см. п. 4.36). Теорема 4.2. Множество R', оптимальное для редуцированной задачи, является оптимальным для исходной задачи. Доказательство. Пусть Л* — оптимальное множество для исходной задачи. Очевидно, Д* ^ N'. Для доказательства теоремы достаточно показать, что a) (JXiY'\R*) ^ Дг для всех и б) ^ для всех i^N\R'. Действительно, из соотношения а) будет следовать, что S ai^ 2 аь,а из этого неравенства и соот- iefl' ген* , ношения б) будет следовать оптимальность множества R для исходной задачи. 1. Докажем справедливость соотношения а). Для любого — —> i^N\R* выполняется tx (kn\r*) ^ Du а для i, к ^ qj — 1, j = 1, р, выполняется ^ (ftiV\n*)^ А/л— 2j tqr l~-3 _ —> — j p. Отсюда следует, что £i(jtjv\n*) ^ i N\R*. 132
Для требования i, i < g4 — 1, справедливо £* (я^'\я*) — _ —> — / = (я^\я*)^Di = D\. Для требования i, qj<i< gJ+1 вы- _ _> i __ i r полняется (njV'\R*)= ^(ЯДГ\Я*) ~ 2 tqi ^Di — 2j*gj = Di- Таким образом,^ (я^у/\я*) ^ D\ для всех i^N'\R*. 2. Докажем справедливость соотношения б). Имеем t{ (яNr\R')^Di для любого i^N'\R'. Поэтому для i^N', _ —> — > / — i< g4, выполняется t{ (яn\r') = t% (ядг'\Я') ^Di = D^ D& для i^N', qj> i> qj+i, / = 1, p, выполняется t{ (я^\яО = ^ j j __ = ti(nN'\Ti') + 2 ^ < D[ + 2 *gz = Di^Di. Покажем,, что tq. (я^хй,) < Dq.v j = 1, p. Если < г для всех г e ЛГ\ to hj (nN\R') = В противном случае пусть £ — требование из 7V' с наибольшим номером, для которого вы- - * полняется I < q}. Тогда tq (ялг\я') = h(nN'\n')+ 2*дг^ ^ i=i ^ D'i + 2 tqv Если l><Lqk для всех к = 1, /?, то D% = D% и z=i iqj (яN\R‘) <Dz+ 2 tq, < А,.- — 2 *gz + 2 hi = Azj. Если Z-l 13 1=1 Z=1 ' _ i-i _ TO £>£ = Dl—'2itql И tq. (Я iV\R')<^“ i—1 Z=1 i—1 2*g, + 2 hi ^ ^gj 2 *gz 2 ^gz + 2 hi ~ Dq i=i i=i J i=i i=i i=i = Da.. Итак (rtjvxR') ^ Di для всех i^N\R\ Теорема доказана. 4.5. Рассмотрим задачу построения расписания s*, которому соответствует наименьшее значение функционала (4.1) при условии, что di — целые числа, tt = 1 и фг(£) — неубывающие функции, i = 1, #г. Такое расписание будем называть оптимальным. Поскольку все £t= 1 и существует оптимальное расписание, не содержащее прерываний в моменты времени, отличные от di (гл. 2, § 1), то для рассматриваемой задачи существует оптимальное расписание без прерываний процесса обслуживания. Расписание s без прерываний определяется заданием 133
последовательности я = (i\, Z2, ..in) обслуживания требований. При этом момент завершения обслуживания требования ij равен (я) = max (я)) + 1 (/ = 1, /г), где tiQ (я) = 0. Пронумеруем требования по неубыванию du Не теряя общности, положим di = 0. Пусть s — расписание, определяемое перестановкой я^ = (1, 2, ..п), sit) Ф 0 на временных интервалах iau &J, ia2, b2], ..., iah, bh], 0 = < b{ < a2 < < b2 < ... <ah < bh, и sit) — 0 вне этих интервалов. Обозначим через Nv множество требований, обслуживаемых в интервале (av, 6V] (v = 1, к). Покажем, что' существует оптимальное расписание s (без прерываний) такое, что sit)^Nv на интервале (av, bv] (v = 1, к) и sit) = 0 вне этих интервалов. Пусть s* — оптимальное расписание (без прерываний), s*it) Ф 0 на временных интервалах (а[, b[]r (а^, 62]» • • •> ia'h Ь/], a[<.b[<ici2< &2< .. . < a'i<С b'h и s*it) = 0 вне этих интервалов. Обозначим через N^ множество требований, обслуживаемых в интервале (a^, (ц = 1, Z). Присвоим временным интервалам единичной длины, начиная с момента времени d{ = 0, номера 1,2,... Интервал с номером 0 имеет вид (0—1,0]. Если ax<aL и s* (t) = 1 на интервале с номером 0, то построим новое расписание s', полагая s'it) = 1 на интервале с номером 1, s'it) =0 на интервале с номером 0 и s'it) = s*it) на остальных интервалах. Очевидно, Fzis') = F^is*). Пусть а1 = а1. Тогда b1^.b1. Если b[ = fcj, то N[ = Nx. Если Z/x< Ъъ то с= Nx и s* можно преобразовать в расписание s", полагая s" (t) = = /g NT\N[ на интервале (b'u b[ + l], s" (t) = 0 на интервале с номером 0' и s" it) = s*it) на остальных интервалах. Здесь ©' — номер интервала, на котором s*it)=j. Очевидно , Fz(s" ) = FAs*). Повторяя эти рассуждения, приходим к заключению, что расписание s* за конечное число шагов может быть преобразовано в искомое расписание s. Таким образом, задача построения оптимального расписания в рассматриваемой ситуации распадается па к подзадач построения оптимальных расписаний для множеств требований N4, N2, ..., Nh. Каждая из этих подзадач v обладает тем свойством, что при обслуживании требований множества Nv в последовательности ялгу (т. е. но неубыванию 134
di) все требования будут обслужены во временном интервале (яУ, bv], где av = min d{, bv = av + rav, nv= |7Vv|. i<=Nv Покажем, что построение оптимального расписания для множества требований Nv сводится к решению задачи о назначениях размерности nv X nv. Не нарушая общности, будем полагать nv = п, av = dY = О, 6V = п. Положим cie = срД0) при 0 = di + 1, п и cie = W при 0 = 1, di, где W — достаточно большое число. Введем переменную xie, принимающую значение 1, если требование i обслуживается в интервале с номером 0, и значение 0 в противном случае. Имеем п п 2 2 cie^ie-^min, (4.13) 1=1 0=1 п 2 *ге = It i = 1, п, (4.14) e=i п 2*Ю=1, © = 1, п. (4.15) 1=1 Условие (4.14) означает, что каждое требование i должно обслуживаться в некотором единичном интервале 0, 1 ^ 0 < ^ п. Условие (4.15) означает, что в каждом единичном интервале 0 должно обслуживаться одно из требований £, 1 ^ i ^ п. Если вычисление срг(0) рассматривать как одну операцию, то для подготовки исходных данных задачи (4.13) — (4.15) требуется не более ОЫ2) операций. Поскольку для решения задачи о назначениях требуется не более ОЫ3) операций (см., например, [58]), то исходная задача построения оптимального расписания имеет временную сложность ОЫ3). Замечание 1. Если рассмотренную в данном разделе задачу дополнить условием, что обслуживание каждого требования i должно завершиться не позднее заданного для него директивного срока D{, то при построении задачи 0 назначениях достаточно положить с1в = срг(0) при 0 = = di + 1, Dt и cie = W при 0 = 1, di и 0 = Di + 1, /г, где W — достаточно большое число. Замечание 2. Рассмотрим следующую задачу минимизации суммарной стоимости обслуживания. Требования множества N обслуживаются одним прибором. Требование 1 ^ N поступает в очередь на обслуживание в момент време- 135
пи di, длительность его обслуживания — di и ti — целые числа. Каждому требованию сопоставлена неубывающая функция фг(0), где 0 — номер единичного временного интервала. Допускаются прерывания обслуживания каждого требования в целочисленные моменты времени. Если требование i обслуживается в единичных временных интервалах с номерами ©х, 02, ..., 0^, то стоимость его обслуживания равна Необходимо построить расписание, при /1=1 котором суммарная стоимость обслуживания всех требований минимальна. Эта задача, очевидно, сводится к рассмотренной в данном разделе задаче минимизации суммарного штрафа. Действительно, каждое требование i можно рассматривать как ti требований единичной длительности, i(1), г(2), .. ., ъ^г\ Значение с?.(;) = с?ь функция штрафа Ф^)(£) = = ф>* (0) при 1, 0] jg N, j = 1, t{. 4.6. В заключение данного параграфа рассмотрим задачу минимизации суммарного штрафа за обслуживание требований одним прибором при условии, что функции штрафа cpiU) = срШ + Ьг, i = 1, /г, ф(£) — неубывающая функция. Предполагается по-прежнему, что требование i поступает в очередь на обслуживание в момент времени di^ 0, длительность его обслуживания равна tt > 0, i = 1, /г, допускаются прерывания в обслуживании каждого требования. В рассматриваемой ситуации существует оптимальное расписание, при котором нет прерываний процесса обслуживания в моменты времени, отличные от di (i = 1, п) (см. гл. 2, § 1).Покажем, что для его построения может быть использовано так называемое правило «кратчайшей операции» с соответствующим его обобщением на случай неодновременного поступления требований. Алгоритм построения оптимального расписания может быть описан следующим образом. Расписание строится последовательно по мере поступления требований в очередь на обслуживание. Решение о выборе требования на обслуживание (или дообслуживаиие) принимается либо в момент завершения обслуживания предыдущего требования, либо в момент поступления нового требования. Пусть Ы(1), d(2), ..., d(v)} — множество всех различных значений di и d(i) < d{2) < ... <d(v) < div+i) = W, где Недостаточно большое число. На первом шаге полагаем x = d(1), A^0 = {tUeA^, di = d(l)} и sU)=0 при 0 ^t^d(l). На каждом шаге имеем некото- 136
рый момент времени т (для определенности, rf(u“41 < т < d(u\ 2^и^и + 1) и некоторое множество N0 требований. Из множества N0 выбираем требование I с наименьшей длительностью обслуживания, т. е. ti = min {tt\iе N0). Полагаем s(t) = I для всех %<t< miu {d{u), т + £/} и, если т + tt < d{u) и |AU = 1, полагаем s(t) = 0 для всех т + £, < £ d(u). Если х + £, > d(u), то добавляем к N0 все требования i е N с di = d(u) и полагаем ^ равным £/—(d(u) —х). Если а) х+ + 'ti<d{u) и |iV01 = 1, либо б) т + tt = d{u\ то исключаем из ]V0 требование I и добавляем все требования i^N с di = d{u). В любом случае полагаем % = diu). Если x + £*<d(u) и |AU > 1, то исключаем из N0 требование I и полагаем х равным х + £/. В результате получаем новый момент времени х, новое множество N0 и переходим к следующему шагу. Построение расписания завершается, когда N0 = 0. Покажем, что построенное расписание является искомым оптимальным расписанием. Пусть v = 1, т. е. все требования поступают в очередь на обслуживание одновременно (для определенности, в момент времени d = 0). В этом случае существует оптимальное расписание без прерываний (см. гл. 2, § 1), определяемое заданием последовательности я* = (£ь U, ..., in) обслуживания требований. При этом момент завершения обслуживания h требования ik равен tik (я*) = 2 а Р=*1 Пусть в расписании, построенном в соответствии с описанным алгоритмом, требования обслуживаются в последовательности я = (Д, /2, . •/п). Ясно, что tjk^tjk+v k = \%п — 1. Если tiv>tiv+1 ия=(i1% Hr • • ч ^v-l* ^v+lr Hr iv+2r • • •» ^n)r то (я) = ^ (л*) при k= 1, V — 1 И /с = v + 2, /г, (я) = *iv+1 (я*) и ^v+ , (я) < <*гу(я*)- Поскольку фШ— неубывающая функция, то рас¬ писание, определяемое последовательностью я, также является оптимальным. Повторяя эти рассуждения конечное число раз, приходим к заключению, что и последовательность я определяет оптимальное расписание. Предположим, что утверждение справедливо при v = У, и покажем его справедливость при и = V +-1. Пусть 5* — оптимальное расписание. Не нарушая общности, можно считать, что оно принадлежит классу расписаний, в которых не допускаются прерывания в моменты времени, отличные от d{l) (i= 1, у). Пусть s — расписание, построенное в соответствии с описанным алгоритмом. 137
Если суммарная длительность обслуживания требований, поступающих в момент времени d(1), не превышает d{2) — d{l) или sit)=s*it) на интервале (d(1), d(2)], то на основании индуктивного предположения FAs) = FAs*). В дальнейшем предполагается, что s*it) ¥= 0 на интервале (d(1), d{2)]. Пусть sit) = s*it) при всех d(1) ^ t ^ т, sit) = i при всех т < £ ^ min W(2), т + £,•}, s*it)=j при всех т < ^ min Ы(2), т + tj) и tj > U. 1. Пусть т + ti^ d{2). Выделим все временные интервалы, на которых s*it) = i или s*it)=j. Суммарная длина этих интервалов, очевидно, равна U + tj. Построим расписание s°, полагая в выделенных интервалах s°it) = i или s°it)=j таким образом, чтобы из условия s°iti) = in s°it2) =j следовало t{<.t2. В остальных интервалах полагаем s°it) = s*it). Поскольку U<tj, то FAs0) = FAs*). На интервале id{i\d{2)] имеем s°it) = sit). 2. Пусть т + U < d{2). Построим новое расписание s, полагая sit) = i на интервале (т, т + £j, sit) = j на всех интервалах, на которых s*it) = i, и sit) = s*it) на остальных интервалах. Поскольку tj>ti, то FAs) = FAs*). Пусть x + ^<d(2). Обозначим через t наибольшее значение ^ (d(1),-d(2)], при котором sit) =/. Если t>T + ti + tj, то построим расписание s, полагая sit) = sit + tj — ti) на интервале (т + £г-, t — itj — ti)], sit) = j на интервале it — itj — ti), t] и sit) = sit) на остальных интервалах. Очевидно, FAs) = FAs). _ Если t = T-\~tj, то построим расписание s, полагая sit) = = sit + tj — и) на интервале (т+£<, d{2) — itj — U)], sit) = j на интервале id{2) — itj — d{2)] и sit) = sit) на остальных ин¬ тервалах. Очевидно, FAs) =FAs). Если sid{2)) = к Ф j и sit) = к при некотором^ > d(2), то выделим все временные интервалы, на которых sit) = j или sit) = к. Суммарная длина этих интервалов, очевидно, равна tj + tk. Построим расписание s', полагая в выделенных интервалах s'it) = j или s' it) = к таким образом, чтобы из условия s'iti)=j и s'it2)=k следовало a) < £2 при tj^tk или б) tl>t2 при tj>th. В остальных интервалах полагаем s'it) = sit). Нетрудно показать, что FAs') = FAs). В любом случае получаем новое оптимальное расписание, совпадающее с расписанием s на интервале (d(1), т + £j и не допускающее прерываний ранее момента времени d(2). Повторяя аналогичные рассуждения конечное число раз, получаем оптимальное расписание s такое, чУо sit) = sit) 138
па интервале (d{i), d{2)]. Учитывая индуктивное предположен пне, приходим к заключению, что расписание, построенное в соответствии с описанным алгоритмом, является оптимальным. Таблица 4.4 i 1 2 со 4 5 CD 7 h 4 2 2 1 3 1 1 di 1 1 4 7 7 И 15 Для реализации некоторых процедур описанного алгоритма можно воспользоваться представлением данных с помощью сбалансированных 2-3-деревьев. Это дает возможность строить оптимальное расписание, выполняя не более O(nlogn) операций. Таблица 4.5 Шаг 1 2 3 4 5 6 т 1 3 4 6 7 8 N0 1, 2 1 1,3 l 1,4,5 1, 5 1 2 1 3 l 4 1 s(i) s(t) = 0, 0< 1, .?(<) = 2, 1<1<3 s(t) = 1, 3 < t < 4 s(<) = 3, 4«s£6 s(t) = 1, 6<«<7 s(t) = 4, 7«<8 s(t) = 1, 8«<10 Новое значение И «х = 3 <1 = 2 Шйг 7 8 9 10 11 T 10 11 12 15 w No 5 5, 6 5 7 0 l 5 6 5 7 ' — s(t) s(t) = 5 10 < t < 11 s(£) = 6 11 < t < 12 s(t) = 5, 12 < t < 14 *(0 = o, 14 < 15 «(*) = 7, 15 < 16 s(t) = 0, 16 < t < W — Новое значение tt tb = 2 — — — — 139
Совершенный псевдонорядок =>- па множестве N зададим следующим образом: i=>j тогда и только тогда, когда ti^tj. На первом шаге алгоритма представим множество iV0 — N с заданным на нем отношением =► в виде сбалансированного 2-3-дерева (для этого достаточно выполнить ОЫ) операций—см. гл. 1, § 2, п. 2.3). Число шагов алгоритма не превышает 2п — 1, так как на каждом шаге имеет место хотя бы одна из ситуаций: а) завершается обслуживание некоторого требования, б) к множеству N о добавляется вновь поступившее требование. Для выбора на каждом шаге требования I ^ N0 с наименьшей длительностью обслуживания (максимального относительно =*- элемента множества N0) достаточно одной операции. Для исключения требования I из N0 или добавления к N0 вновь поступившего требования необходимо выполнить не более Oilogn) операций (см. гл. 1, § 2). Изменение длительности обслуживания требования I равносильно исключению I из N0 и добавлению к Na требования I с новой длительностью обслуживания (считаем при этом, что введено отношение =>- для добавленного элемента и любого i^N, i¥=l). Эта процедура требует выполнения также не более Oilogn) операций. Отсюда следует, что для построения оптимального расписания требуется выполнить не более O(nlogn) операций. з(Щ 7 ‘ 6- 5• 4 ■ 3 - 2- 1 - 2 I 1 I I / I I—I i I J I 1 1 ! 4 П Li I I 5\ j 5 П 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Рис. 4.1. Пример. Рассмотрим задачу минимизации суммы моментов завершения обслуживания требований одним прибором. Эта задача является частным случаем рассмотренной в данном разделе задачи минимизации суммарного штрафа (при ф(0 = t н bi = 0, i=l, п). Пусть п = 7, длительности U обслуживания требований и моменты d( их поступления в очередь на обслуживание приведены в табл. АЛ. Имеем d(1) = 1, d(2) = 4, d(3) = 7, d(4> = 11, d(5) = 15. Положим d(6) = W, где W — достаточно большое число. Значе- 140
ние т и множество N0 для каждого шага алгоритма приведены в табл. 4.5. В этой же таблице приведены требование I е N0 с наименьшей длительностью обслуживания, полученные на данном шаге значения s(t) и новое значение tt (если длительность обслуживания требования I изменяется па этом шаге). Полученное в результате расписание приведено па рис. 4.1. § 5. Идентичные приборы. Общее время обслуживания. Одинаковые длительности В данном параграфе рассматривается задача построения оптимального по быстродействию расписания обслуживания частично упорядоченного множества требований, имеющих одинаковые длительности обслуживания, параллельными идентичными приборами в предположении, что а) граф редукции отношения строгого порядка является древовидным либо б) число приборов равно двум. 5.1. Требования множества N = { 1, 2, ..., п} обслуживаются М параллельными идентичными приборами. Все требования поступают в очередь на обслуживание одновременно (в момент времени d = 0) и имеют одинаковые длительности обслуживания. Без потери общности можно считать U = 1 (&=1,га), где t{ — длительность обслуживания требования i. Запрещены прерывания в обслуживании требований. На множестве N задано отношение строгого порядка определяющее возможную последовательность обслуживания требований. Граф редукции этого отношения обозначим через G. Пусть ti(s) — момент завершения обслуживания требования i при расписапии s. Необходимо построить допустимое относительно -*■ расписание s* обслуживания требований множества N, при котором общее время обслуживания всех требований Т (s) = max t{ (s) (5.1) i(=N является наименьшим. Значение ТЫ будем называть длиной расписания s, а расписание s* — оптимальным (по быстродействию) расписанием. Присвоим временным интервалам единичной длины, начиная с момепта времени t = 0, номера 1, 2, ... Интервал с номером 0 имеет вид (0 — 1, 0]. Для краткости далее не будем делать различия между требованием и соответствующей ему вершиной графа G. Через N~ и N+ будем по-прежпему обозначать множества всех минимальных ц максимальных 141
(относительно ->) элементов множества N; A"ii)— множество прямых потомков, B°(i) — множество непосредственных предшественников требования i; hii) — высота вершины i в графе G. 5.2. Пусть каждая компонента связности графа G редукции отношения строгого порядка является входящим деревом. Опишем алгоритм построения допустимого относительно -**- расписания, который в дальнейшем будем называть h-алгоритмом, а построенное в соответствии с этим алгоритмом расписание будем называть h-расписанием. Далее покажем, что ft-расписание является оптимальным (по быстродействию) расписанием обслуживания требований множества N. Число шагов ft-алгоритма равно длине ft-расписания. Шаг 0 состоит в выполнении не более 71/4-1 итераций, на каждой из которых (кроме последней) в единичном временном интервале 0 назначается на обслуживание одно из требований. На последней итерации осуществляется переход к следующему шагу. Общее число итераций равно 74s) + tt—1, где T(s) — длина ft-расписания. Предварительно полагаем sL(t) = 0 для L=1,7J/, t> 0 и считаем все требования множества N не помеченными. Полагаем 0 = 1. На каждом шаге 0 выполняются следующие итерации. Находим прибор//, для которого выполняется sH(0) = O. Среди непомеченных требований множества TV* выбираем требование / с наибольшей высотой h(j). Полагаем sH(t) = j на интервале 0, помечаем требование j и переходим к следующей итерации. Если прибор // найти не удается или все требования множества 7V4* помечены, то исключаем из N помеченные требования. Получая N Ф ^ увеличиваем 0 на 1 и переходим к следующему шагу. Если N = 0, ft-расписание sit) = (sjU), s2(t), ..., sMit)) построено. Пронумеруем вершины графа G (требования множества N) так, как это сделано для входящего дерева в и. 1.4, § 1, гл. 1. Тогда в качестве требования j па каждой итерации /i-алгоритма можно, очевидно, выбирать требование с наибольшим номером среди непомеченных требований множества TV*. Пусть X — список требований множества 7V, упорядоченных по убыванию номеров. На каждой итерации ft-алгоритма в качестве требования j будем выбирать первый непомеченный элемент списка Я, принадлежащий множеству 7Vf. Получаемое в результате расписание назовем Х-расписанием 14-
(расписания такого рода называют также списочными). Очевидно, ^-расписание, построенное в соответствии со списком Х = Ы, п— 1, ..., 2, 1), является и ^-расписанием. Г! р и мер. Пусть М = 3 i = 1, 12, и граф редукции данного на N, изображен N = { 1, 2, ..., 12), U = 1, = 0, отношения строгого порядка, за- на рис. 5.1, а. Вершины графа Ptf 12 Р прибор J прибор 2 прибор 1 10 6 3 ( гК / V 11 ! 8 { 5\2, Jq У* 9 6 12 \ 9 | 7 ! 4 ! / 1 V У | 1 ' 1 | j j j 1 а) 1 2 3 4 5 5) Рис. 5.1. пронумерованы в соответствии с п. 1.4, § 1, гл. 1. Построим ^-расписание. Полагаем вначале sL{t) =0 для L =*= 1, 3, £> 0. Значение 0, множество N+ для каждого шага алгоритма, а также множество помеченных требований (к началу итерации), прибор Н и требование ] для каждой итерации приведены в табл. 5.1. В этой же таблице приведены полученные на каждой итерации значения sH(t). Полученное в результате ^-расписание приведено на рис. 5.1, б. Значение T{s) = 5. Покажем, что для построения ^-расписания требуется выполнить не более О(п) операций. Предполагается, что вершины графа G пронумерованы в соответствии с п. 1.4, § 1, гл. 1 и граф G задай следующим образом. Имеются два одномерных массива Qb и 5а, содержащих по п элементов. В к-й позиции массива Qb располагается число Ък непосредственных предшественников вершины к\ в /с-й позиции массива SA располагается номер прямого потомка вершины к. Массив QB будем изменять на каждой итерации. Обозначим множество требований, назначаемых на обслуживание на шаге 0 fo-алгоритма, через Ж0). Пусть пе — элемент множества М0) с наименьшим номером. Очевидно, множество Ml)— это первые М элементов списка X, которым соответствуют нулевые элементы массива QB. Если таких элементов меньше М, все они составляют множество Ml). 143
На каждой итерации шага 0 в качестве требования j выбираем элемент множества Ж0) с наибольшим номером и исключаем его из N(@) (что соответствует пометке требования у). Находим в позиции у массива SA прямого потомка i требования у и уменьшаем на 1 содержимое г-й позиции массива QB (что соответствует исключению у из G). Если элемент i-ik позиции массива QB окажется рав- Т а б л и ц а 5.1 Шаг 0 г 1 2 N+ з, 5^ 6, 9, 10, И, 12 3, 5, 6, 8, 9 Итерация 1 2 3 4 1 2 3 4 Помеченные — 12 И, 12 10,11, — 9 8,9 G, 8, требования 12 9 II 1 2 3 1 2 3 / 12 И 10 9 8 6 Значение sH(t) Ф) =- Ф) = Ф) ^ Ф) = Ф) ^ Ф) = при 0—1<^0 ~12 = 11 = 10 = 9 = 8 = 0 Шаг 0 3 4 1 5 N+ 3, 5, 7 2, 4 1 Итерация 1 2 3 4 1 2 3 1 2 Поме¬ ченные требова¬ ния — 7 5, 7 3, 5, 7 — 4 2, 4 — 2 Н 1 2 3 — 1 2 3 1 2 ) 7 5 3 4 2 — 1 — Значение *я(*) ПРИ 0 - 1< Ф) — 7 Ф) = — ^ 5з(0 “ — Q Ф) — А Ф) = — о ф)= — \ <*<0 — / — о — О — Ч — L — 1 ным 0 и i> пв, относим требование i к множеству Ж0 + 1). Если при переходе к шагу 0 + 1 получим, что 1Ж0 + 1)1 < < М, просматриваем список Я, начиная с элемента с номером пе— 1, и дополняем множество М0+1) (по возможности до М требований) теми элементами списка К, которым соответствуют нулевые элементы массива QB. Очевидно, при 144
такой организации процесса построения Х-расписапия общее число операций не превышает О(п). 5.3. Как уже отмечалось, ^-расписание является одновременно н /^-расписанием. Теорема 5.1. Если граф G редукции отношения строгого порядка заданного на N, является входящим деревом, то h-pacnucanue является оптимальным (по быстродействию) расписанием обслуживания требований множества N. Доказательство. Предположим, что теорема не верна. Тогда при заданном числе приборов М существует наименьшее по мощности множество N требований, для которого Л-расписапие s не является оптимальным. Пусть \N\ = п, T(s) = Т и Г* — длина оптимального расписания обслуживания требований множества N. Тогда Т > Г*. Пусть г — конечная вершина G. При любом расписании s длины т в интервале с номером т обслуживается только требование г. Отсюда следует, что если sL(t) ¥= О (L = 1, М) во временном интервале (0, т — 2] и sH(t)¥= 0 для некоторого II (l^II^M) в интервале с номером т— 1, то расписание s является оптимальным (требования множества N\r нельзя в этом случае обслужить менее чем за т — 1 единиц времени). Пусть Nq— множество N+, полученное к шагу 0 (0 = = 1, Т) /^-алгоритма. Поскольку s не оптимально, найдется прибор II, для которого sH(t) = 0 на некотором интервале (У, где 0'^Г —2. Следовательно, на последней итерации шага 0' все требования множества NQ помечены, причем N&* | < М. Так как G является входящим деревом, то ^©'+11 ^ I N&r \<М. Отсюда следует, что в интервале 0' +1 (а, следовательно, и в интервале Т — 2) хотя бы один прибор простаивает. Заметим, что при расписании s требование г обслуживается в интервале Т, а все требования, обслуживаемые в интервале Т— 1, принадлежат множеству В°(г). Среди требований, обслуживаемых в интервале Т — 2, найдется требование, не принадлежащее множеству В°(г) (иначе не было бы простоя прибора в интервале Т — 2). Поэтому существует требование г", обслуживаемое в интервале Т — 2, для которого выполняется г" ^В°(г), где г'е5°(г). Пусть R = г U В0(г). Легко видеть, что, положив sl (0 = 0, если sL(t) = i, R, и sL (t) = sL (t) в остальных случаях, получим A-расписание s' обслуживания требований множества N' = N\R. При этом T(s') = T — 2, а высота Ю в. С. Танаев и др. 145
каждого требования па две единицы меньше, чем в исходной задаче. Граф G' редукции отношения соответствующий множеству N', превратим в дерево, добавив новую вершину г и соединив конечные вершины графа G' с этой вершиной исходящими из конечных вершин дугами. Можно получшж A-расписание s" для требований множества N"=N'\Jr из расписания s', полагая s^t) = г и sb(t) = Sb{t) для L = 2, М на интервале Г—1 и sL (t) — = sL(t), L = l,M, на остальных интервалах. Очевидно, T(s") = T- 1 и \N"\^n-l. Оптимальное расписание s* для требований множества N имеет длину Г*. Полагая sL(t) = 0, если sL(t) = i, i^R (за исключением случая, когда L = 1, а 71* — 2 < t < Т* — 1), Siit)=r на интервале Г* — 1 и sL(t) = sL(t) в остальных случаях, L = 1, М, получим расписание s обслуживания требований множества N" длины Г* — 1 < Т — 1. Следовательно, А-расписаине s" для требований множества N", где |iV"|^ra — 1, не является оптимальным. Приходим к противоречию. Теорема доказана. Следствие 5.1. Если каждая компонента связности графа G является входящим деревом, то h-расписание является оптимальным (по быстродействию) расписанием обслуживания требований множества N. Доказательство. Добавим к множеству N новое требование г и положим i^r для всех i^N. Граф редакции отношения заданного на множестве NUr, представляет собой входящее дерево. Построим А-расписапие s' для множества NUr. По теореме 5.1 это расписание является оптимальным. Требование г при расписании s' обслуживается последним, скажем, в интервале времени т. Требования множества N обслуживаются в интервалах времени 1, 2, ..., т— 1. Полагая sLU) = 0 на интервале т и sL(t) = = Sl (t) (L = 1, M) на остальных интервалах, получаем A-расписание s для множества N. Это расписание является оптимальным, поскольку в противном случае не было бы оптимальным расписание s'. Следствие доказано. Пусть каждая компонента связности графа G является выходящим деревом. Заменим ориентацию каждой дуги этого графа на противоположную. В результате получаем граф G', каждая компонента которого является входящим деревом. Ясно, что граф G' является графом редукции отношения строгого порядка, обратного исходному. Используя 146
граф G', построим ft-расписание s'. Зная расписание s' (а, следовательно, и его длину Г($')), построим расписание 5, полагая sL(t) = s'L(t) при t>T(s') и sL (t) = = s'L (t + Т (s') —20 + 1) (L = 1, M) при 0—1 < £ < 0 (0 = 1, T(s')). Расписание s будем называть Ъ-расписанием. Длины расписаний s и s', очевидно, одинаковы, и из допустимости s' относительно графа G' следует допустимость s относительно G (и наоборот). Тем самым, имеет место Следствие 5.2. Если каждая компонента связности графа G является выходящим деревом, то Ъ-расписание является оптимальным (по быстродействию) расписанием обслуживания требований множества N. 5.4. Перейдем к рассмотрению случая, когда граф G редукции отношения ->•, заданного на множестве N, является произвольным ориентированным бссконтурным графом, но число приборов М = 2. Пусть v = (v,, v2, ..., vh) и ц = (fг,, р2, ..Ц/) — последовательности целых чисел, ft, I > 0. Если ft = 0, последовательность v пуста. Будем говорить, что последовательность v лексикографически меньше последовательности ц, если: 1) существует такое i (l^i^ft), что для всех / (1</<£) выполняется v,- = j+ и vt < р„ либо 2) vj = щ (/ = 1, ft) и ft ^ I. Пронумеруем вершины графа G следующим образом. Присвоим номер 1 одной из конечных вершин. Пусть присвоены номера 1, 2, ..., j — 1 и Q — множество таких непронумерованных вершин, у которых нет непронумерованных потомков. Для каждой вершины i е Q построим последовательность ad) всех прямых потомков (т. е. требований множества A°(i)), в которой элементы расположены по убыванию номеров. Присвоим номер j одному из требований i е Q с лексикографически наименьшей последовательностью ad). Для такой перенумерации вершин графа G требуется выполнить не более ОЫ2) операций. Действительно, пусть вершины графа G пронумерованы произвольным образом и G задан матрицей смежности. Очевидно, выполнив не более 0(п2) операций, можно выделить множество конечных вершин графа и построить список QA, состоящий из п элементов, в £-й позиции которого содержится значение |А°Ш|. Покажем, как нумерацию вершин привести в соответствие с описанной выше. Пусть Q — очередь вершин, готовых к присвоению новых номеров (эти вершины либо конечные, либо всем их потомкам присвоены новые номера). Первоначально в Q 10* 147
поместим все конечные вершины графа. Образуем список L, в который будут записываться вершины, не получившие новых номеров, по имеющие прямых потомков с новыми номерами. Каждая вершина в списке L встречается не более одного раза. Первоначально список L пуст. Алгоритм получения новой нумерации вершин состоит из п шагов, каждый из которых соответствует присвоению номера некоторой вершине. На каждом шаге очередной номер присваиваем первому элементу очереди Q. Пусть это элемент q. Исключаем q из Q. Произведем корректировку списка L следующим образом. Для каждого элемента i списка L с использованием матрицы смежности проверяем принадлежность i множеству B°(q). Если i^B°(q), помечаем этот элемент в списке L и в матрице смежности. Образуем последовательность L', состоящую из двух частей. В первой части в произвольном порядке расположим элементы множества B°(q), не содержащиеся в L (для этого просматриваем столбец q матрицы смежности и удаляем одновременно пометки в этой матрице); во второй части расположим помеченные элементы списка L (в том же порядке, что и в списке L). Корректируем список L, исключая из него помеченные элементы и добавляя в конец L последовательность L'. Нетрудно видеть, что для построения списка L на каждом шаге достаточно выполнить 0(п) операций. Элементы i располагаются в списке L в порядке лексикографического возрастания последовательностей аШ. Здесь a(i) — это упорядоченные по убыванию номера тех прямых потомков требования £, которым уже присвоены новые номера к данному шагу; a(i) = aii), если всем потомкам требования i присвоены новые номера. Указанное выше построение списка L не требует получения самих последовательностей a(i). Для каждого требования ] <= ^B°{q) уменьшаем на единицу число, расположенное в j-й позиции списка Qa. Просматривая с начала до конца список L, выбираем такие элемепты г, что в i-й позиции списка QA расположен 0, исключаем i из L и добавляем в Q. Проделав указанную процедуру для всех требований списка L, получим новый список L, новую очередь Q и переходим к следующему шагу. Очевидно, число операций на каждом шаге не превыщарт 0[п)} и, следовательно, длд нумерации
всех вершин графа требуется выполнить не более ОЫ~) операций. Пример. Пусть граф G редукции отношения порядка, заданного на N, изображен на рис. 5.2 и исходная нумерация вершин задана буквами А, В, ..., /. Множество конечных вершин — {А, В, С}, список QA имеет вид: (О, 0, 0, 2, 1, 2, 3, 3, 2, 1). Первоначально Q=(A, В, С) и Т а б л и ц а 5.2 Шаг 1 2 3 4 Новая нумерация верши- Л = 1 B = 2 CO II E = 4 ны Я В°(д) FG D DEF GII V FG D EFD HG после корректировки FG FGD GEFD IIG L в конце шага FG FGD G HG Изменения в списке QA \F]= 1, [Cl = 2 [D] = 1 [£>]= [E ]= = [F]= 0 [C] = 1, IH\= 2 Q ВС C EFD FD Шаг 10 Новая нумерация вершины q B°(q) U после корректировки в конце шага Изменения в спис- ке Qa Q F = 5 HIJ IJH GIJH GIH [#]=[/]= = 1, И=0 DJ D = 6 GHI GIH GII1 /= 7 G=8 Л=9 //=10 IG]=[H]= = [/] = 0 JGIII GIH III II L=(0). Для каждого шага алгоритма присвоения новых номеров в табл. 5.2 приведены новый номер вершины д, множество B°(q)? цорледовательность //, в которой поме- 149
чениые элементы списка L набраны полужирным шрифтом список L (после корректировки и в конце шага), а также полученные в конце шага новые значения элементов списка Qa и очередь Q. Число, расположенное в позиции р списка Qa, обозначено через [р] (р = А, 5, ..., J). Новая нумерация вершин указана па рис. 5.2 (номера проставлены в скобках). 5.5. Опишем алгоритм построения допустимого относительно -*■ расписания, которое будем называть (по аналогии с п. 5.2) X-расписанием. Затем покажем, что ^-расписание является оптимальным (по быстродействию) расписанием обслуживания требований двумя приборами. Пусть вершины графа G пронумерованы числами 1,2,..., п так, как указано в предыдущем пункте, и список X = (п, п — 1, ..., 1). Число шагов алгоритма построения Х-расппсаттия s равно длине расписания T(s). На шаге 0 (0 = 1, T(s)) осуществляется построение расписания на интервале с номером 0, и требования, назначенные на обслуживание в этом интервале, исключаются из множества N. Пусть па шаге 0 i и j — требования с наибольшими номерами из множеств N+ и N+\i соответственно. Полагаем па интервале 0 значение st(t) = i, и если |7V+I>1, то s2(t)=j, а в противном случае s2it) =0. Исключаем i, а если \N+\ > 1, то и j из N. Если N Ф 0, увеличиваем 0 на 1 и переходим к следующему шагу. Если N=0, полагаем sl(t)=s2(t) = 0 при t> < 0. В результате получаем ^-расписание sit) = {si(t), s2{t)}. Для построения множества N+ и исключения элементов i и j из N на каждом шаге алгоритма достаточно выполнить не более 0{п) операций (см. п. 1.4, § 1, гл. 1). Следовательно, общее число операций алгоритма не превышает 0(п2). Прим е р. Пусть М = 2, N = И, 2, ..., 17}, t{ = 1, d{ = 0, i = 1, 17, и граф G редукции отношения строгого порядка, заданного на 7V, изображен па рис. 5.3, а. Требования пронумерованы в соответствии с алгоритмом, описанным в предыдущем пункте. Заметим, что порожденный подграф графа G с множеством вершин И, 2, ..., 10} совпадает с графом, рассмотренным в предыдущем пункте. В табл. 5.3 доя каждого шага 0 алгоритма приведены множество N+, номера требований i и ;, а также полученные значения s,(£) и s2it). Полученное Х-расписание приведено на рис. 5.3, б. 5.6. Покажем справедливость следующего утверждения; 150
Теорема 5.2. Х-расписание является оптимальным (по быстродействию) расписанием обслуживания требований множества N двумя приборами. Доказательство. Обозначим построенное в соответствии с описанным в предыдущем пункте алгоритмом ^-расписание через s. Пусть требование N при ^-расписании обслуживается в интервале времени 8к. Отметим, что если требова¬ ние i обслуживается первым прибором и б< ^ бЛ, то i > к. Действительно, пусть 6* = 0 и Ne — множество iV+, полученное к шагу 0 алгоритма построения расписания s. Если к е Ne, то i > к по построению ^-расписания. Если к & Ns, то найдется I ^ iVe, для которого 1-+ к. По построению X- расписания i>l, а из способа нумерации вершин следует, что для любых I и к таких, что 1-+ к, выполняется I > к. Следовательно, i > к. Если sL(t)= 0 на интервале 0, будем говорить, что прибор L обслуживает в этом интервале пустое требование. Будем считать, что такое требование имеет номер 0. Пусть N — множество требований N, дополненное пустым требованием. Определим требования ро, ри ..., ри (pv^N, y = 0, 1, ... ..., и), г0, ги ..., ru (rv<^N, у = 0, 1, ..., и) и множества требований Р0, Ри ..., Ри (PV^N, у = 0, 1, ..., и) следующим образом. Пусть р0 и г0 — требования, обслуживаемые при расписании s в интервале времени T(s) первым и вторым при¬ 151
бором соответственно. Заметим, что р0 > г0. Предположим, что pv-u pv-2, ..р0 и гх)— i, rv-2, ..., г0 определены. Обозначим через rv такое требование множества N, что rv < pv_t, 6ru<6pv_1n не. существует такого k^N, чтоб^^б^бр^ и k<pv-i. Очевидно, требование rv обслуживается вторым прибором (если требование i обслуживается первым прибором и б1<бр1)-1, то i>pD-i). Обозначим через pv требова- Таблица 5.3 ште, обслуживаемое первым прибором в интервале 6Г^ (таким образом, бPv = бГи). Пусть определены ри, • • •> Ро и ги, ru-1, ..., г0, а требования гм+1 не существует (т. е. либо6pu = 1,либо к>ри для всех /с, у которых бЛ<;бри). Для всех v {O^v^u) положим Pv = {& е N | бРи+1 < б/1< <брД UP г- Положим Ри = [к €= N ^8^ < бр^} U Ри* Значения pv, rv и Pv (v = 0, 1, ..., и) для расписания, изображенного на рис. 5.3, б, приведены на рис. 5.4. Покажем, что к-+к' для всех k^Pv и k'^Pv-4 (v = = 1, и). Покажем вначале, что pv~*k' для всех k'^Pv-ь По определению требования rv для него выполняется rv < pv~4 и 152
для всех k'^Pv-i выполняется к'^ pv-{. Следовательно, rv < к'. Пусть N — множество N+, полученное к шагу Из определения Х-расписапия rv — требование с наибольшим номером из множества N\pv. Следовательно, для любого k'^Pv-{ требование к' Тем самым рг~+к'. Пусть k¥=pv. Допустим вначале, что к^Р». Из определения множества Pv следует, что к> pv. Пусть а(к) и a(pv) — последовательности всех прямых потомков требований к и р0 соответственно, упорядоченные по убыванию номеров. Из неравенства k>pv следует, что a(pv) лексикографически меньше последовательности а(к). Покажем, что первые | Pt-11 элементов последовательности a(pv) являются требованиями множества Pv-ь Действительно, для любого к'^Pv-1 выполняется к'> pv-и и pv-i > / для любого / такого, что Sj ^ 6Pw__1. Следовательно, элементы множества Pv-t имеют наибольшие номера среди всех требований, обслуживаемых после интервала Поскольку pv-*k' для всех k'^Pv-u то pv^B°(l) для всех I е Pv-1 и первые | Pt-11 элементов последовательности a(pv) являются элементами множества Pt-1* Для того чтобы последовательность a(pv) была лексикографически меньше а(к), должно выполняться к^В°(1) для любого I ^ Pt-ъ т. е. к ->■ к' для любого к' ^ Pv-х. Наконец, если кФрv и кфР^, то k-*j для некоторого 7 е Pv , откуда получаем к-* к' для любого к' е Теперь иетрудпо показать, что Х-расписапие является оптимальным. Действительно, для любых k^Pv и к' е /V, где и ^ и > v' ^ 0, выполняется к к', т. е. обслуживание всех требований множества Pv должно быть завершено до начала обслуживания требований множества Р&. Каждое 153
из множеств Pr, v = 0, 1, ..и, содержит нечетное число требований. Пусть Pv содержит 2пс — 1 требований. Очевидно, не менее nv единиц времени необходимо для обслуживания всех требований множества Pv, и для любого (допустимого относительно ) расписания s обслуживания и требований множества N выполняется Т (s) ^ 2 nv> По- и скольку для расписания s выполняется Т (s) = 2 nv> то Г=0 это расписание является оптимальным. Теорема доказана. Замечание. Как видно из следующего примера, %-рас- писание, вообще говоря, не оптимально, если М Ф 2. Действительно, пусть N = = И, 2, ..., 11), М = 3, U = 1, di = 0 (£=1, И) и граф G редукции отношения заданного на множестве 7V, приведен на рис. 5.5. Требования множества N пронумерованы так, как указано в п. 5.4. На рис. 5.6, а приведено ^-расписание s, построенное в соответствии с алгоритмом, приведенным в п. 5.5, а на Рис. 5.5. s> l ' S*1 прибор 3 прибор 2 прибор 1 9 х х 4 х прибор 3 прибор 2 прибор 1 7 5 \ 3 /0\ 7 ! 5 [ 2 ( 10 \ 8\4 \ 1 j и | 8 | 6 | з : 1 11 1 9 ; 6 i 2 \ i i i i i I i i i I 1 i i 1 i 1 | | | 1 1 1 | I I 1 I '/ 2 3 ~4 ~5 а) 1 2 3 4 5) - Рис. 5.6. рис. 5.6, б — оптимальное расписание s*. Имеем 74s*) =4, T(s) = 5. § 6. Идентичные приборы. Общее время обслуживания. Прерывания В данном параграфе рассматривается задача построения оптимального по быстродействию расписания обслуживания п требований М параллельными идентичными приборами 154
при разрешении прерываний процесса обслуживания. Приводятся полиномиальные алгоритмы решения задачи в следующих случаях: а) множество требований не упорядочено; б) граф редукции отношения строгого порядка является древовидным; в) М = 2 при произвольном графе редукции отношения строгого порядка. 13 последних двух случаях предполагается, что длительности обслуживания требований соизмеримы. 6.1. Требования множества N = { 1, 2, ..., п} обслуживаются М параллельными идентичными приборами. Длительность обслуживания требования i ^ N равна U > 0. Все требования поступают в очередь на обслуживание одновременно. Без потери общности будем считать, что они поступают в момент времени d = 0. В процессе обслуживания требований разрешены прерывания. Предполагается, что прерывания не сопряжены с временными затратами и число прерываний конечно. Иа множестве N задано отношение строгого порядка определяющее возможную последовательность обслуживания требований. Граф редукции этого отношения обозначим через G = {N, U). Если his) — момент завершения обслуживания требования i при расписании s, то величина Т (s) = = шах ti (s) является, очевидно, общим временем обслужива- i=N ни я требований при расписании s (длиной расписания 5). Необходимо построить оптимальное (по быстродействию) расписание s*, т. е. допустимое относительно -*■ расписание, имеющее наименьшую длину. 6.2. Пусть G = (N, 0). В п. 2.3, § 2, гл. 2 описан следующий алгоритм упаковки, позволяющий получить расписание обслуживания множества 7V = {1, 2, ..., п) требований М параллельными идентичными приборами в интервале (е', е"] при условии, что tt ^ А для всех N и 2 Л/Д iGiV (здесь А = е" — е). Пусть я = (ij, i2, . •., in) — произвольная перестановка, элементов множества N. Зададим на интервале (с', е'-ЬЛ/Д] функцию oU), полагая oU) = iA на интервале (е', е' + ^х], / к—1 к o(t) = h иа интервале ( е’ + 2 **.;» е* + 2 \ j=i J j=i .. (к = 2, n)t и если 2 < Л/Д, то o(t) = 0 на интервале (V + 2 it=N \ ieiV е' +Л/Д]. Расписание s(£) = {siU), s2U), ..., sAfU)} обслуживания требований множества N построено в соответствии 155
с алгоритмом упаковки, если sL(t) = o(t + (L — 1)А) в интервале (е', е"] и Sb(t) — О, L = 1, М, вне этого интервала. Число операций, которые необходимо выполнить при построении расписания sU), не превышает О(га), а количество прерываний в полученном расписании не превосходит М- 1. Если известна длина Г* оптимального расписания, то само расписание s* может быть построено в результате применения алгоритма упаковки в интервале (О, Т*\. Значение Г*, очевидно, не может быть меньше величины Г° = =maxl max ti% 2 С другой стороны, применение \l<i<n i=l J алгоритма упаковки в интервале (О, Т°] позволяет построить расписание обслуживания требований множества N длины Т°. Тем самым Г* = Т°. Покажем, что М — 1 (максимальное число прерываний для расписания, полученного в соответствии с алгоритмом упаковки) является достижимой нижней границей числа прерываний в оптимальных расписаниях. Иными словами, существует такое множество требований с заданными длительностями обслуживания, для которого оптимальное расписание содержит не менее М — 1 прерываний. Действительно, пусть А = {1, 2, ..., М+ 1} и U = M для всех i ^ N. Алгоритм упаковки строит оптимальное расписание длины М+ 1, при котором нет простоев приборов в интервале (О, М+ 1]. Очевидно, любое оптимальное расписание не должно допускать простоев приборов в этом интервале. Предположим, что существует оптимальное расписание s с числом прерываний, меньшим М — 1. Тогда по крайней мере два прибора (для определенности, приборы К и L) обслуживают требования без прерываний. Очевидно, эти приборы обслуживают некоторые требования к и I в интервале (О, М] без прерываний. Найдутся моменты времени tut' такие, что ив интервале U, t'] прибор К обслуживает некоторое требование £, а прибор L — требование у. В интервале (£, £'] остальные М — 2 прибора могут обслуживать только требования множества N\{i, у, к, /}, т. е. не более М — 3 требований. Следовательно, в интервале (t, t'] хотя бы один прибор простаивает и расписание s пе может быть оптимальным. 6.3. Пусть на множестве N задано отношение строгого порядка ->■ и G = (A, U) — граф редукции этого отношения. Каждой вершине i графа G поставлен в соответствие вес U (длительность обслуживания требования г). 156
Не будем далее делать различия между требованием i.^N и соответствующей ему вершиной графа G. Будем употреблять, например; такое выражение, как «расписание для графа G» (вместо «допустимое относительно расписание обслуживания требований множества N»), и считать взаимозаменяемыми такие понятия, как длительность U обслуживания требования i и вес U вершины i. Далее в этом параграфе предполагается, что все U со- измеримы, т. е. существует действительное число w такое, что ti=Uw, где k — натуральные числа, i= 1, п. Введем в рассмотрение граф GW={NW, £/«), который получается из G заменой каждой вершины i g N цепочкой из U вершин г17 г2, . • •, {Ч-ъ Ч) е j = 2,При этом все дуги, входящие в вершину i в графе G, заменим на дуги, входящие в вершину it в граф Gw, а дуги, исходящие из г,— на дуги, исходящие из iiv Все требования множества Nw имеют одинаковую длительность обслуживания, равную w. Рис. 6.1. Каждая вершина графа Gw может быть в свою очередь представлена в виде цепочки из р вершин одинакового веса w/p. Полученный в результате граф обозначим через Gw/P. На рис. 6.1, б и в приведены графы Gw и Gw/P, соответствующие графу G рис. 6.1, а. Здесь ^ = 7,5, t2 = 5, £3 = 2,5, tk = “10, iv = 2,5 и р = 2. Нетрудно видеть, что расписание без прерываний процесса обслуживания для графов Gw или Gw/P являются расписаниями (вообще говоря, с прерываниями) для графа G. Пусть T*iG) и T*(G) — длины оптимальных расписаний для графа G при запрещении и разрешении прерываний процесса обслужиЬания требований соответственно. Теорема 6.1. Для р=1, 2,... выполняется соотношение ТHG) < T4GW/P) ^ f*(G) + с/р, где величина с зависит только от п и w. 157
Доказательство. Пусть s — оптимальное расписание для графа G (при разрешении прерываний), < т2 < ... ... < тm — моменты времени, в которые завершается обслуживание хотя бы одного требования при этом расписании, и т0 = 0. Рассмотрим интервал времени /Л = (тЛ-ь тк\ (1^ ^ к ^ т). Очевидно, все требования, обслуживаемые в этом интервале, являются несравнимыми (относительно —»-). Пусть в интервале 1к обслуживаются требования jly j2, •••> Jnk и только они. Суммарное время обслуживания требования jt в этом интервале обозначим через__6/. Рассматривая у, как требование длительности б, (1=1, пк), построим расписание обслуживания требовании ]х, /2, .]Пк в интервале 1к с использованием алгоритма упаковки. Пусть s' — расписание, полученное после применения алгоритма упаковки для всех интервалов 1к (к = 1,т). Очевидно, T(s') = T(s). Назовем временной интервал (С, t"] интервалом назначения при расписании s', если на этом интервале sl (t) = = const (L = 1, M) и существуют такие Н и Q (1^//^ ^ Q ^ М), что sH (V) ф sH (V + 6) и sq (Г) ф sQ (t" + 6) для достаточно малого б>0 (т. е. в моменты времени t' и t" происходит назначение требований на обслуживание). Поскольку в интервале Ih обслуживание каждого требования при расписании s' прерывается не более двух раз (а если требование завершает обслуживание в момент тЛ, то не более одного раза), то в интервале 1к не более 2п интервалов назначения. Так как нет ограничений на моменты времени, в которые возможны прерывания, то длина подынтервалов обслуживания каждого требования при расписании s' не обязательно кратна w/p. Увеличим (если это необходимо) длину каждого интервала назначения так, чтобы она стала кратна w/p. Длина каждого интервала 1к увеличится, очевидно, не более чем на 2nw/p, а длина всего «расписания» — не более чем на 2n2w/p. Кавычки употреблены потому, что обслуиш- вание каждого требования i может идти дольше, чем фактически необходимо (больше длительности ti). Это новое «расписание» назовем расширенным расписанием. Если ti = hw, то требование i обслуживается при расширенном расписании по крайней мере в течение Up подынтервалов длины w/p. Пусть — вершины графа Gw/P, соответствующие требованию i. Построим расписание s (без прерываний) для графа Gw/P такое, что требования hi hi • • ч Ч{р обслуживаются в первых Up интервалах, в ко- 158
торых обслуживается требование i при расширенном расписании. В оставшихся интервалах обслуживания требования i значение sL(t) = 0 для соответствующих L. Имеем T(s) ^ ^ T(s') + 2n2w/p. - “• Очевидно, T*(Gw/p) < T(s) и, следовательно, T*(GW/P) < <7*(G) + 2n2w/p. Оптимальное расписание без прерываний для Gw/P является некоторым расписанием, возможио, с прерываниями, для G. Следовательно, T*(G) < T*(GW/P). Теорема доказана. Эта теорема позволяет аппроксимировать с любой наперед заданной точностью (при выборе соответствующего р) оптимальное расписание с прерываниями для G с помощью оптимального расписания без прерываний для Gw/P с одинаковыми весами вершин. 6.4. Введем в рассмотрение широко используемое в дальнейшем понятие расписания обслуживания требований с разделением приборов. Будем рассматривать систему из М параллельных идентичных приборов как обслуживающую систему общей мощности М и допускать, что в любой момент времени на обслуживание требования i может выделяться некоторая мощность ad) (0^а(г)<1). При этом суммарная выделяемая мощность в каждый момент времени нс может превышать М. В рассматриваемой ситуации в каждый момент времени прибор может обслуживать более одного требования, выделяя для обслуживания каждого из них некоторую долю своей мощности (разделение прибора). Требование i обслуживается во временном интервале (£', t"] тогда и только тогда, когда в каждый момент времени fe d\ t"] на обслуживание требования i выделена ненулевая мощность. Предполагается, что процесс обслуживания каждого требования i может быть описан заданием конечного числа временных интервалов, в каждом из которых мощность, выделяемая на обслуживание требования i, постоянна. Пусть б,, б2, ..., б/ — длины всех временных интервалов, в которых обслуживается требование a oci(0, а2Ш,... ..., a id) — мощности, выделенные в этих интервалах на обслуживание требования i. Тогда должно выполняться со- i отношение 2 (0 &k = d- h=l Расписание sa обслуживания требований с разделением приборов представляет собой (если не вдаваться в формальные определения) последовательность временных интерва- 159
лов, для каждого из которых указаны множество N' требований, обслуживаемых в этом интервале, и мощности, выделяемые в этом интервале на обслуживание каждого из требований множества N'. В частности, может быть N' = 0. Предполагается, что число указанных интервалов конечно, суммарная выделяемая мощность в каждом интервале не превышает Л/, назначение новых значений мощности происходит в левом конце интервала. В расписании sa допускаются прерывания обслуживания каждого требования и должны соблюдаться условия предшествования в обслуживании требований (если i->•/, то требование j обслуживается при расписании sa только после завершения обслуживания требования i). Под длиной T(sa) расписания sa понимается, как и обычно, общая длительность обслуживания всех требований. Поскольку требования начинают обслуживаться с момента времени £ = 0, то T(sa) — момент завершения обслуживания последнего требования. Расписание sai имеющее наименьшую длину, называется оптимальным (но быстродействию). ^ h ^з 3 з ** ^з /гз ^ з * 6) Рис. 6.2. На рис. 6.2, б приведено одно из расписаний sa для графа G, изображенного на рис. 6.2, а. Здесь М = 2. Этому расписанию соответствует последовательность интервалов (0,1|, (l,3i], (з|,4|], (44,5||и(5-|,оо). Винтерва- ле (0, 1] обслуживается требование 1, выделенная ла его обслуживание мощность в этом интервале а(1) = 1. В ин¬ тервале (l, 3 -7-1 обслуживаются требования 2, 3, 4, при этом 4 6 а (2) = а (3) = у, а (4) = у. Суммарная выделенная мощ- 160
иость в каждом интервале не превышает М = 2. Требование 2 обслуживается в интервалах ^1,3 — и ^3-^-,4-g- . 4 111 Для этого требования имеем = 2* Аналогич¬ ные соотношения имеют место для остальных требований. Условия предшествования в обслуживании требований, заданные графом G, очевидно, соблюдаются. Требования обслуживаются без прерываний. Значение r(sa)=5-g-. Обозначим через Sa множество всех расписаний sa с разделением приборов, а через S — множество всех расписаний s (в общепринятом смысле) обслуживания требований множества N. В обоих случаях допускаются прерывания процесса обслуживания. Поскольку каждое расписание s ^ е S является и расписанием с разделением приборов (случай a(i) = 1 для всех i ^ А), то S с= Sa- Покажем, что любое расписание sa ^ Sa можно преобразовать в расписание seS такое, что T(s) < T(sa). При этом достаточно выполнить не более ОЫ2) операций. Пусть т0 = 0 и Ti < т2 < ... < ттп — моменты времени, в которые при расписании sa завершается обслуживание хотя бы одного требования. Рассмотрим интервал Ik=(rk-i, тЛ] и множество Nk требований, обслуживаемых при расписании sa в этом интервале (1 ^к^тп). Очевидно, требования множества Nk являются несравнимыми (относительно Пусть Ki, у2, ..*ii — длины подынтервалов обслуживания требования j е Nk в интервале Д, а мощности, выделенные на обслуживание требования / в этих подынтервалах, равны а4(/), а2(;), ..., a*(/) соответственно. Величипу i Aj =2ai(/) Vi можно рассматривать в качестве обычной i=l длительности обслуживания требования j в интервале Д. Поскольку at(/) ^ 1, то тк+1 — тк. В любой момент времени суммарная мощность не превышает М, поэтому 2 1 — Tft). Отсюда следует, что можно постро- 3<=Nh пть расписание S обслуживания требований множества Nh в интервале Д с использованием алгоритма упаковки. «Состыковав» расписания для интервалов Jh (к = 1, m), получим расписание s такое, что T(s) ^ T(sa). Поскольку оценка временной сложности алгоритма упаковки равна О(н), то для построения расписания s по задапиому расписанию sa требуется выполнить не более ОЫ2) операций. И В. G. Танаев и др. 161
На рис. 6.2, в приведено расписание s, полученное с использованием алгоритма упаковки из расписания sa, представленного на рис. 6.2, б. 6.5. Как следует из предыдущего раздела, задача построения оптимального (по быстродействию) расписания s* е е S сводится к задаче построения оптимального расписания sa^ Sa (с разделением приборов). При этом Т (5*) = Т ($*) и построение s* по известному требует выполнения пе более 0(п2) операций. Опишем алгоритм построения расписания sa^Sa с оцен- ой ^ременной сложности 0(п2) и покажем, что расписание sa является оптимальным, по крайней мере, в случаях, когда: 1) граф G — древовидный; либо 2) граф G — произвольный, но М = 2. Пусть каждой вершине i графа G приписана длительность ti обслуживания требования i — вес вершины i. Взвешенной длиной пути в графе G будем называть сумму весов вершин этого пути. Найдем взвешенные длины всех путей из вершины i в конечные вершины графа G. Наибольшая из найденных величин называется взвешенной высотой НИ) вершины L Если U = t, i^N, то, очевидно, H{i)~th{i), где h{i) — высота вершины i в графе G, Как и ранее, через N+ будем обозначать множество всех максимальных (относительно !->•) элементов множества N. Разобьем множество N+ на подмножества N* и N^f ..., N вершин с равными взвешенными высотами, упорядочив эти подмножества по убыванию величин Н {N^)t где Н (iV^)— взвешенная высота вершин множества N* (к = 1, и). Пусть 771 — наибольшее натуральное число, для которого выполняется соотношение тп 2|лгк+|<л/. (6.1) Ь=1 Если | Ni | > Му то будем полагать тп = 0. Перейдем к непосредственному описанию алгоритма построения расписания sa. На первом шаге полагаем t = 0. На каждом шаге находим момент времени t>t и назначаем на обслуживание во временном интервале (£, Я требования из множества N+ по следующему правилу. Каждому требованию i из множества m тп U NX выделяется мощность a(i) = 1. Если Л=1 К=1 162
m то оставшаяся мощность а = М — 21 I распределяется h=l поровну между требованиями множества Nm+U т. е. для каждого i е Nm+i значение a(i) = а/Ъ, где Ь= liV^+il* Для остальных требований аШ = 0. Ясно, что а и Ъ — целые числа и а<Ъ. Отметим, что если т = щ то a(i) = 1 для всех i^N+. Если 771 = 0, т. е. \ Ni \ > М% то а = М и a (i) = М/\ N* для всех требований i е Ni. Введем в рассмотрение параметр т (0<т<°°) и положим t\ = ti — a(i)x при условии, что на интервале U, t + + т] на обслуживание требования i выделена (постоянная) мощность aii). Величину t\ естественно интерпретировать ак длительность обслуживания (при aU) = 0) или дооб- служивапия (при a(i)>0) требования i в интервале U + т, °°). Если на интервале (£, t_+ т] имеем аШ = а для всех i ^ , то положим Нх (N£) = Н (N£) — at. В качестве I выбирается наименьшее значение t + т, при котором наступает, по крайней мере, одно из событий: 1) tx = 0 для некоторого i^N+; 2) Нх (N^) = Нх (N^+i) либо Hx(N++1) = Hx(N++2). Нахождение t не вызывает особых затруднений. Действительно, если тп = и, т. е. Nm+i = 0iTO t = t_+ А, где А = min |i41 i <= NtJ, и в момент времени t наступает событие 1. Если 771 = 0, то t = t + min Ш, С), где В = min [bt{la | i е С= #(Л^+2)]/я* При этом в мо¬ мент времени t наступает либо событие 1 (при В < С), либо событие 2 (при Б>С), либо оба события наступают одновременно (при В = С). Если 0<т<ииа = 0, то t = t + min {А, Z)}, где D = b[H (Ni) - H (Ni+1)]/(b - a). При этом в момент времени t наступает либо событие 1 (при А </)), либо событие 2 (при A >D), либо оба события наступают одновременно (при A =D). И* 1СЗ
Наконец, если 0 <т<и, а> О, то t = t + min {А, В, С, D}. При этом имеет место событие 1, если min {Л, В, £, D} равен А или 5, и событие 2, если minM, /?, С, D} равен С или D. Используя найденное значение £, вычисляем новые длительности U обслуживания требований, равные t\ при т = = t — и удаляем из множества N (из графа G) все те требования (вершины), длительности которых обратились в нуль. Обозначая полученные множество и граф через N и G и полагая t равным найденному значению £, переходим к следующему шагу алгоритма. Процесс построения расписания sa завершается, когда очередное множество N оказывается пустым. Пример. Пусть М = 3 и граф G является деревом (рис. 6.3, а). Значения U (£=1, 9) приведены в табл. 6.1. 7 8 9 Рис. 6.3. Здесь w — 72. В табл. 6.2 для каждого шага алгоритма приведены множество iV+ = N± (J N% U • • • U Nu» значение m, высоты H(Nm)x H (TV^+i) и H (iV^+2)r назначенные мощно- Таблица 6.1 i 1 2 3 4 5 G 7 8 9 1 , 1 1 1 1 ч 2 1 — 2 2 2 1 8 72 . 72 72 сти обслуживания а(0, а также момент времени t и измененные в результате выполнения данного шага значения U. В момент времени t = V2 имеет место событие 2 (здесь 164
t = V2, iV+= iV+= {7, 8, 9>, N++1=Nt= О, Ят №)=« = 101/2— Va = 10, #T(iVm+i) = 10 и, следовательно, HX{N%) — = HX (N++i))- В моменты времени 95/e, 12V5 и 12V6 имеют место события 1. В момент времени 105/б имеют место события 1 и 2. Полученное в результате выполнения алгоритма расписание sa изображено на рис. 6.3, б). Значение T(sa) = 127в. Т а б л и ц а 6.2 Шаг l 2 3 + II ~+ с: {7, 8, 9} U {6} U {6, 7, 8, 9}U {3, 4} {5, 6} U {3,4} U/V^U- -и N+ U {3, 4} т 1 0 1 n{Nt) я(4ц) H(Nt+2) a(i) *4 10 4 а(7)=а(8)= =а(9)1 10 4 а(6)=а(7) = =а(8) =а(9)=3/4 3 4 а(5)=а(6)=1, а(3) = а(4) =1/2 t 1/2 (событие 2) с 9—(событие 1) с I0g-(события 1 и 2) Новые значения Н h ~ = ^9 ~ 7 U— 1> h~t»~ = <» = 0 ,1 *3 — ^4 ^2 » “ = *в = о Шаг 4 5 N+ =Nf\}N£u . . .UAr+ т KNt) я(лг++1) «(0 Новые значения ti {2, 3, 4} 1 2 а(2) = а(3) = =а(4) = 1 1 12^-(событпе 1) *2 = *л = *4 = 0 {1} 1 1/2 а(1) = 1 5 12g-(событие 1) — 0 165
6.6. Покажем, что число операций, необходимое для построения расписания sa, не превышает ОЫ2). Общее число шагов описанного в предыдущем пункте алгоритма построения sa, очевидно, конечно и не превосходит О(п). Действительно, в процессе выполнения этого алгоритма событие 1 может наступать не более п раз (в результате его наступления из множества N удаляется, по крайней мере, один элемент). Событие 2 также может наступать не более п раз (в результате его наступления выравниваются взвешенные высоты некоторых вершин графа G, и на последующих шагах алгоритма взвешенные высоты этих вершин уменьшаются па одну и ту же величину). Найти высоту каждой вершины можно, пронумеровав вершины так же, как в п. 5.4, § 5, гл. 2 (для этого достаточно выполнить не более 0(п2) операций), и вычисляя Hti) для i = l, 2, 3, ... по формуле H(i) = ^ + max {//(/) I/ е ^A°(i)}, где A°(i)— множество прямых потомков вершины i. Очевидно, для нахождения высот вершин требуется выполнить не более ОЫ2) операций. Для нахождения множества N+ вершин достаточно выполнить не более ОЫ) операций (см. п. 1.4, § 1, гл. 1). Зададим на множестве N совершенный псевдопорядок =^, полагая &=>/ тогда и только тогда, когда H(i) > H(j). Используя для представления множества N+ сбалансированное 2-3-дерево (см. § 2 гл. 1), упорядочим требования множества N+ по невозрастанию значений H(i) (для этого достаточно выполнить не более 0{nAognT) операций, где пт — количество элементов, добавленных в множество N+ на шаге г). Для нахождения на каждом шаге значения пг по формула ле (6.1) и множеств |J Nk* Nm+ь ^m+2 достаточно выпол- к=1 нить не более ОЫ) операций. Для вычисления на каждом шаге значения t, новых значений U и H(i), очевидно, достаточно выполнить также не более ОЫ) операций. Для исключения элемента из IV и нахождения повых элементов множества N+ требуется выполпить не более ОЫ) операции (см. п. 1.4, § 1, гл. 1). Таким образом, число операций на каждом шаге г алгоритма не превышает ОЫ) + 0(nrlognr). Поскольку число шагов алгоритма не превышает ОЫ), a ObiAogn^-^r + ОЫг log п2) + ... + ОЫт log пт) + ... не превышает ОЫ log п), то расписание sa может быть построено в результате выполнения не более ОЫ2) операций. 166
6.7. Покажем, что в случае, когда граф G является входящим деревом, расписание sa, построенное в соответствии с алгоритмом, описанным в п. 6.5, является оптимальным (по быстродействию) расписанием. В случае, когда G — произвольный граф и М -= 2, доказательство проводится аналогичным образом. Схема доказательства состоит в следующем. Имея исходное входящее дерево с весами вершин U = Uw, где U — натуральные числа (£ = 1, п), a w — действительное число, можно для любого натурального р построить дерево в котором каждая вершина i из £Г" заменена цепочкой из pU вершин одинакового веса w/р. Для w/p можно построить оптимальное расписание без прерываний процесса обслуживания с использованием й-алгоритма, описанного в п. 5.2, § 5, гл. 2. Полученное й-расписание будем обозначать через Sw/pt а длину его — через Т*(£Гй/р)- Далее покажем, что существует натуральное число z такое, что 77*(^~w/pz) = Г($а) для любого натурального р. Отсюда, ^на основании теоремы 6.1, будет следовать, что = Г($а), т. е. sa — оптимальное расписание. Доказательство проведем в несколько этапов. 1. Обозначим полученные в результате выполнения г шагов алгоритма построения расписания sa момент времени I через £(г), граф G — через G(r) = (7V(r), £/(г)). Пусть — веса вершин графа G(r). Покажем, что: а) £(г) = р(г)и;, где р(г) — рациональное число; б) tp= lpw{T) для всех ie]V(r), где lP— натуральные числа, а wiT) = 4{r)w, ч(г) — рациональное число. Ограничимся рассмотрением случая г=1. Утверждение а) непосредственно следует из описания алгоритма построения расписания sa. Перейдем к доказательству утверждения б). В результате выполнения первого шага алгоритма значение t{ уменыцится на р{l)w, если i е |J Nh*. и на h= 1 (я/Ь)р(1)ы;, если i е а для остальных i^N значения^ не изменятся. Следовательно, для любого i^N{l) значение ^i)=9iw4 гДе Рг — рациональное число, т. е. 41* = {qjvdw, где qi и ^ — натуральные числа. Пусть v{l) = v± • v2.. -vn(i) где n{i) — число элементов множества N{i). Тогда Wi • • • yri(i) ,,а> _ & w „(» Wl 167
где и i/1} — натуральные числа. Представим в виде qP = l\l)q^l\ где q{i) — наибольший общий делитель чисел qP(t = 17^(1)). Обозначим Тогда где w{l) = 7(1)ш, /^—натуральное, а ^(1) — рациональное число. 2. Покажем, что существует натуральное число г/, такое, что Gw/py существует для всех натуральных чисел р. Граф G$py определен для каждого натурального числа р в том случае, если w/py = w{i)/p{i) для некоторого нату- ])алыюго р(1). Поскольку £(1) = р(1)и;, то t{i) = (c{i)/d{i))w, где с(1) и d(1) — натуральные числа. Пусть а (г) — мощность, назначенная требованию i^N на первом шаге алгоритма построения расписания sa. Если при этом N^+i Ф0, то для i е Nm+i значение а (О = а/Ъ. Положим у = bd{l)u{i). Тогда w/py = w/bd(l)pv{i) = = w{i)/bd{i)pq{i) и р(1) = bdil)pq{i). Если же iVm+i = 0, то положим у — d{i)u{i). Тогда w/py = w/d{i)pv{l) = w{i)/d{i)pq{i) и р{1) = d{i)/pq(l). Заметим, что здесь для доказательства достаточно было бы положить в обоих случаях у = u{i) (тогда p{i)=pq{i)). Однако в дальнейшем используются приведенные выше значения у. 3. Пусть Г(1) — дерево, полученное из Зг" в результате выполнения первого шага алгоритма построения расписания Sa, веса вершин дерева Г(1) и £(1) = (с(1)/ /dw)w, где = ч(1Ч "f(,) = qw/vw, /(Д с(1), d(1), qw, vw - натуральные числа. Значение /(1) = (c{l)/d{l))w = (с(1)ру/d(l))(w/ру), где у — натуральное число, определенное в предыдущем пункте доказательства. Построим оптимальное расписание swjpy (без прерываний) для дерева &~Z/py, применяя ft-алгоритм, описанный в п. 5.2, § 5, гл. 2. При построении расписания sw/py считаем &~w/py деревом с единичными весами вершин, где за единицу времени принято значение w/py. Пусть Г' — дерево, полученное из£Гй/руВ результате выполнения c{i)py/ /dil) шагов ft-алгоритма (т. е. полученное в момент времени £(1)). Покажем, что Т' изоморфно дереву Т$ру Доказательство проведем в предположении, что на первом шаге алгоритма построения расписания sa множество Nm+i не пусто (в случае N^+i = 0 доказательство аналогично), m
Очсвидпо, Т' — поддерево дерева^w/pyf а Т$РУизоморфно поддереву дерева WjVy. Пусть g* = (ii, ..и) — множество вершин дерева &~w/wt полученных из вершины i дерева Если в графе Т$ру существует вершина, соответствующая вершине ij, то обозначим ее через i). Множество вершин ^обозначим через Пусть l"i = {ilt .. П М'я где N' — множество вершин графа Т'. Для доказательства изоморфности Т' и Т$ру достаточно показать, что | gi | = | g" | для всех i е N. На обслуживание каждого требования i е U в ин- h=1 тервале (0, £(1)] при расписании sa выделяется мощность a(i) = 1. Следовательно, длительность обслуживания такого требования к моменту времени £(1) уменьшается на величину £(1) = (c{l)/d{i))w = (c{l)py/d{i))(w/py). Поэтому gi содержит на c{i)py/d{i) меньше элементов, чем g,-. Полагая у = 771 = bd{i)u{i), получаем |gi| = |gil — bc^pv^ для ie U Nt• k=i На обслуживание каждого требования i ^ N^+i в интервале (0, £(1)] выделяется мощность a(i)=a/b, и длительность обслуживания такого требования к моменту времени ас ^ру w bSl) РУ (1) £(1) уменьшается на величину ос (i) £(1) = w Поэтому Ul|= I liI — ac(1)pv(1) для i c= Остальные требования i^N не обслуживаются в интервале (0, t(i)] при расписании sa. Поэтому для них |gi| = = 16*1- Покажем, что такие же соотношения выполняются для h. Пусть N1, ЛГ2, ..., Nu — такие подмножества вершин дерева что g< s Nh тогда и только тогда, когда i е &Nk%k=i1'U. При выполнении fe-алгоритма вершины удаляются из Nh по мере обслуживания соответствующих требований. Так как все вершины дерева &~wjvv имеют вес w/py, то завершение обслуживания требований происходит в дискретные моменты времени: w/py, 2w/py, 3w/py и т. д. В (0, £(1)] содержится t{i)/(w/py) =>bc{l)pv^] интервалов длины w/py. Нетрудно видеть, что в соответствии с fe-алгоритмом в каждом из этих интервалов обслуживается в точности но одному требованию из каждого 169
множества £i U h=1 Nh и по одпому требованию из а мно¬ жеств giSTVm+i (причем на каждом интервале выбираются а вершин с наибольшими высотами из Ъ множеств ^Nm+i). Требования из других множеств i^N, не обслуживаются в интервале (0, £(1)]. Заметим, что из каждого множества £>i^Nm+i будет обслужено a»bc^pv^ = ac(1)pv(1) требований. т / т \ Следовательно, если ie U It. е. h ^ |J Л^), то в 7i=l \ fc=l / момент времени £(1) в ^ остается на bc{i)pu{i) вершин мень- ше, чем в т. е. \Ъ\ | = IЕ»I —bc(1)pv(1). Если i е N^+i (т. е. |i = Nm+l), то | li | = I ii | — ac(1)pv(1\ Для остальных iejV значение Uil = |£»|. Сравнивая |If | с (|}|, получаем = для всех i е= N. 4. Покажем, что существует натуральное число z, такое, ЧТО Т* (&~w/pz) = Т (?а) для любого натурального р. Здесь Т* wjpz) — длина оптимального расписания s^/pz, построенного в соответствии с A-алгоритмом для графа &~w/pz, и 7Ч«а) — длина расписания sa. Утверждение докажем индукцией по числу событий 1 и 2, имеющих место при построении расписания sa. Отметим, что число событий 1 и 2 конечно и веса вершин графа, получаемого после наступления события 1 или 2, остаются (согласно п. 1) соизмеримыми. Очевидно, если имеет место только одно событие 1 или 2, то этим событием является событие 1 и оно наступает в момент времени T(sa). В этом случае дерево 9~~ состоит из единственной вершины, и любое натуральное число может выступать в качестве z. Пусть утверждение справедливо, если имеет место не более ц — 1 событий 1 или 2, и пусть при построении рас¬ писания sa имеет место ц событий 1 или 2. Пусть, как и раньше, первое из этих событий происходит в момент времени t{i\ и веса вершин i дерева Г(1), полученного из ЗГ~ в момент времепи t{i) при построении расписания sa, равны *iX) = где w{1)= (q(1)/v{1))w и 1\г\ q{1\ v(1) — натураль¬ ные числа. Обозначим через s' расписание для Г(1), построенное в соответствии с алгоритмом, описанным в и. 6.5. Тогда Т {si) = tw + Т (s'). (6.2) 170
Ясно, что при построении расписания s' имеет место не более \х — 1 событий 1 или 2, и по индуктивному предположению можно найти натуральное z\ такое, что Т*(Т%/р,г,) = Пз') для р' = 1, 2, .... где Т*{Т%/р>г) - длина оптимального расписания (без прерываний), построенного в соответствии с ^-алгоритмом для графа i)/p/gr Если это справедливо для любого натурального рто справедливо и для p' = q{i), 2q{x), — Полагая р' = pq{i) и учитывая, что w{i) = (q{i)/v{i))w, получаем T*{T^1)z) = T{S\ р = 1,2,... (6.3) Пусть у определено так, как в п. 2 доказательства, и пусть z — наименьшее общее кратное у и v(i)z'. Тогда из п. 3 доказательства следует, что Т^)рг — дерево, полученное из Tw/pz в момент времени £(1) при построении swjpz в соответствии с ^-алгоритмом. Отсюда следует, что Т*{У~й!Рг) = *(1) + т* (2<JU Р = 1, 2, ... (6.4) Из (6.3) и (6.4) получаем т* (T-Ipz) = tw + Т (s'), р = 1, 2, ... (6.5) Наконец, из (6.2) и (6.5) следует, что т* (&~w/pz) = Т (sa), р = 1у 2, . . . 5. Итак, существует натуральное число z такое, что 7T*(^W;/pz) = для всех р. Из теоремы 6.1 следует, что Т*(£Г~) = 7Чб’а), т. е. 5а — оптимальное расписание. Расписание sa с разделением прибора можно преобразовать в расписание s* без разделения прибора (с прерываниями процесса обслуживания) такое, что 74s*) ^ 74 Sa*). Следовательно, 74s*) = Т*(2Г~). Как показано выше, для построения sa и преобразования его в s* требуется не более 0(п2) операций. Замечание 1. Пусть граф G = {N, U) — лес, каждая компонента связности которого — входящее дерево. Добавим к множеству N новую вершину j с tj = w, а к множеству U — дуги, исходящие из корней всех деревьев и заходящие в вершину /. Полученный в результате граф G' является, очевидно, входящим деревом. Если s* — оптимальное (по быстродействию) расписание для G', то расписание s, такое, что sl (£) = sl (£), если Sl(£) =ф)% и sLU) = 0 в против¬ 171
ном случае (L = 1, М), является оптимальным для G. Значение T(s) = T(s*) — w. Замечание 2. Пусть граф G = Ш, U) — лес, каждая компонента связности которого — выходящее дерево. Обозначим через G" граф, полученный из G заменой ориентации всех его дуг на противоположную. Пусть s* — оптимальное расписание для G" и T(s*) = Т. Обозначим через s' совокупность М кусочно постоянных функций Ui(0? s2 (f)* >.., Sm (0) таких, что sL (t) = s*L (t) (L = 1, M), если t не является точкой разрыва функции sL(t). В точках t разрыва функции положим sl (t) = if -Ь б) для достаточно малых б > 0 (т. е. функции sl (t) в отличие от sl (0 непрерывны справа, а не слева). Тогда, полагая sl if) = s'l(T — t) для t ^ (0, Я и sL(t) = 0 для t > T (L=l, M), получаем расписание s, являющееся оптимальным для исходного графа G. § 7. Идентичные приборы. Директивные сроки. Одинаковые длительности В данном параграфе рассматривается задача построения расписания обслуживания частично упорядоченного множества требований, имеющих одинаковые длительности обслуживания, параллельными идентичными приборами, при котором не нарушаются директивные сроки. Предполагается, что граф редукции отношения строгого порядка является входящим деревом либо число приборов равно двум. Предлагаемые алгоритмы могут быть использованы и при построении оптимальных по быстродействию расписаний (наряду с алгоритмами, описанными в § 5 этой главы). 7.1. Требования множества 7V = {1, 2, ..., п) обслуживаются М параллельными идентичными приборами. Требования поступают в очередь на обслуживание одновременно в момент времени d = 0. Длительности £* обслуживания требований одинаковы. Без потери общности можно положить li = 1 (i = i,n). Для каждого требования i задан директив ный срок Di, к которому необходимо завершить его обслуживание. Запрещены прерывания в обслуживании требований. На множестве N задано отношение строгого порядка определяющее возможную последовательность обслуживания требований. Граф редукции этого отношения обозначим че¬ 172
рез G. В дальнейшем для краткости не будем делать различия между требованием и соответствующей ему вершиной графа G. Через N~ и N+ будем, как и раньше, обозначать множество всех минимальных и максимальных (относительно -О элементов множества N, через ВО) и A(i) —множества всех требований у, для которых выполняется у -*■ i и i -+■ у соответственно; обозначение i «—► к означает, что требование к является прямым потомком требования i. Необходимо построить допустимое относительно расписание s обслуживания требований множества N, при котором tiis)^Di (i=l, п). Здесь his) — момент завершения обслуживания требования i при расписании s. Такое расписание называется допустимым относительно заданных директивных сроков. Аналогично § 5 этой главы введем полезное в дальнейшем понятие Л-расписания. Присвоим временным интервалам единичной длины, начиная с момента времени t = О, номера 1, 2, ... Интервал с номером 0 имеет вид (0 — 1, 0]. Рассмотрим список X = (iu i2, ..., in) требований (представляющий собой некоторую перестановку требований) и определим расписание, построенное в соответствии со списком А, следующим образом. Предварительно полагаем 0 = 1, sL(t) = 0 при L = l,Af, t > 0, и считаем все элементы списка X непомеченными. На каждом шаге выполняем следующие действия. Находим прибор Н с наименьшим номером, для которого б’н(0)=О. Находим первое непомеченное требование у списка X, которое принадлежит множеству N+. Помечаем требование у, полагаем sH(t)=j на интервале 0 и переходим к следующему шагу. Если прибор Н или требование у найти не удается, то удаляем помеченные требования из списка X и множества N; переходим к следующему шагу, увеличивая 0 на 1. Построение расписания заканчивается, когда список X (а следовательно, и множество N) становится пустым. Построенное в соответствии с этим алгоритмом расписание будем называть Х-расписанием. Поскольку для проверки принадлежности элемента списка X множеству N+ требуется одна операция (при задании графа списком предшественников — см. п. 1.4, § 1, гл. 1), а для удаления каждого из максимальных (относительно -О элементов из множества N требуется выполнить пе более 0{п) операций (см. и. 1.4, § 1, гл. 1), то для построения А-расписаиия достаточно выполнить не более 0(п2) операций. 173
Пример А. Пусть N={ 1, 2, Ш, М = 2, t{ = 1, й, = 0, г = 1,11; граф б? приведен на рис. 7.1, а, X = = (1, 2, ..., 11). Соответствующее Х-расписание приведено на рис. 7.1, б. Пример В. Пусть N = {1, 2, ..., 10), М = 3, tt = i, dx = 0, i = l,10, граф G приведен на рис. 7.2, а, Х = = (1, 2, ..., 10). Соответствующее Х-расписание приведено на рис. 7.2, б. Если список X = (ii, н, ..., £„) обладает тем свойством, что для любого требования N все требования множества прибор 2 прибор 1 2 4 6 —I 1 • 1 i j i 5: 7 t 9 ^ 11 ^ ! 8 :10! » -н I 0 12 3 4 5 6 В) t Рис. 7.1. Рис. 7.2. 5(A) расположены левее А в списке X, а граф G является входящим деревом, то Х-расписание можно построить, используя не более О(п) операций, в результате выполнения следующей процедуры. Полагаем вначале sL(t) = 0 для L = 1, М, t>0. Введем переменные 6(A), А = 1, п, гс(0), 0 = 1, п, и ц. Значение переменной 6(A) будет на единицу больше наибольшего номера единичного временного интервала, в котором назначено на обслуживание требование множества 5(A). Значение п(6)—это число требований, назначенных на обслуживание в интервале 0. Переменная ц равна наименьшему 174
значению 0, для которого гс(0) < М. Вначале полагаем 6(к) = ц = 1, /с = 1, гс, гс(0) = 0, 0 = 1, гс. Для каждого к = г,, начиная с у = 1 и кончая у = гс, выполним следующее. Полагаем 0 = max {6(/с), т|). Пусть Я — прибор с наименьшим номером, для которого sH(0) = O. Полагаем sH(t) = к на интервале 0. Увеличиваем гс(0) на 1, и если получаем гс(0) = Л/, то полагаем ц = 0 + 1. Пусть к у Z. Полагаем значение б(I) равным max{6(Z), 0 + 1). Нетрудно видеть, что полученное расписание является ^-расписанием и для его построения достаточно выполнить не более О(п) операций. Заметим, что для любого k^N поиск требования I такого, что —Л, может быть выполнен за одну операцию, если граф G задан массивом SA (см. п. 1.4, § 1, гл. 1). Поскольку в описанной процедуре любое требование назначается на обслуживание в возможно более раннем интервале времени и у каждого требования не более одного прямого потомка, получим гс(0) = М для 0 = 1,2,... ..., г] — 1 и rc(0)<Af для остальных 0. Пример. Описанный процесс построения Х-расписания в условиях примера В показан в табл. 7.1. Вначале полагаем sL{t) = 0 для L = 1,3, 0; ц = 1, 6(к) = 1, к = 1,10, гс(0) = О, 0 = 1,10. В табл. 7.1 для каждого к от 1 до 10 Таблица 7.1 к 1 2 3 4 5 G 7 8 9 10 Ц 1 1 1 1 1 2 2 2 3 3 Ь(к) 1 2 3 1 1 1 4 1 2 5 в 1 2 3 1 1 2 4 2 3 5 11 1 1 1 2 3 2 1 3 2 1 п(в) 1 1 1 2 3 2 1 3 2 1 1 2 3 7 7 9 9 10 10 10 — 6(1) 2 3 4 4 2 2 5 5 5 — приведены значения ц, 6Ш, 0, номер Н прибора, который обслуживает требование к в интервале 0. Кроме того, указаны полученное в результате назначения на обслуживание требования к значение гс(0), номер требования I такого, что —>1, и новое значение 6(1). 7.2. Рассмотрим задачу построения допустимого относительно заданных директивных сроков расписания в предположении, что граф G является входящим деревом. Напомним, что di = 0 и U = 1 (i = 1, гс). 175
Если i ->- /, то для того, чтобы требования i и j обслуживались без нарушения директивных сроков, необходимо обслуживание требования i завершить не позднее момента времени D5— 1. Поэтому директивный срок требования i можно положить равным min{Z)<, Dj — 1). Используя этот факт, можно предложить следующий алгоритм модификации директивных сроков. Алгоритм состоит в выполнении п шагов. На первом шаге полагаем Dr = Dr для корня г дерева. На каждом следующем шаге выбираем такое требование i, для которого не найдено значение Du но для его прямого потомка j значение Dj найдено. Полагаем D\ = min [Du Dj — 1}. Для нахождения новых директивных сроков Di требуется выполнить не более 0{п) операций (если, например, задать граф G списком предшественников, используя массивы QB и Sb — см. п. 1.4, § 1, гл. 1). Нетрудно видеть, что расписание допустимо относительно модифицированных директивных сроков D\ тогда и только тогда, когда оно допустимо относительно исходных директивных сроков Di. Действительно, поскольку D\^.Di{i = 1, n)t то расписание, допустимое относительно Dir допустимо и относительно Di. Предположим, что расписание s допустимо относительно Di, но не допустимо относительно Du Без потери общности можно считать, что при расписании s каждое требование обслуживается в единственном единичном интервале времени. Среди требований, для которых нарушены модифицированные директивные сроки, выберем требование к, обслуживаемое в единичном интервале времени с наибольшим номером 0. Тогда Dh<. 0 ^ Dh. Если k*—+j% то Dh = Dj—1. Поскольку расписание s допустимо относительно-^, то требование j обслуживается в интервале >0+1. Требование к выбиралось так, что б ^.Dj. Приходим к противоречию, получая 0 + 1^6^D] и 0 > = = D] -1. Таким образом, в дальнейшем можно говорить о расписании, допустимом относительно директивных сроков, не уточняя, являются ли эти сроки исходными или модифицированными. Теорема 7.1. Для того чтобы существовало допустимое (относительно директивных сроков) расписание, необходимо и достаточно, чтобы было допустимым X-расписание, 17С
соответствующее списку A, = (/i, /2, ..О, где Di.^. Di.+1 (/ = 1, га —1). _ , Доказательство. Пусть ^ hi • • ^Z?i.+1(y = 1Л w—1) и Л-расписание 5 не допустимо относительно директивных сроков. Среди требований, для которых нарушены модифицированные директивные сроки, выберем требование i, обслуживаемое в единичном интервале времени с наименьшим номером 0. Имеем 0 > D\ ^ {-Di j , Здесь L я J— наибольшее целое, не превышающее х. Пусть б, 6^LZ>iJ—интервал с наибольшим номером, в котором при расписании s обслуживается менее М требований с директивными сроками Если интервала б не существует, то теорема доказана, поскольку имеется не менее М> L +1 требований, которые должны быть обслужены к моменту времени и, следовательно, допустимого относительно директивных сроков расписания не существует. Пусть интервал б существует. Покажем, что это допущение приводит к противоречию. Из построения ^-расписания следует, что для этого расписания выполняются условия: а) существует требование к, к -> г, которое обслуживается в интервале б (иначе i следовало бы обслуживать в интервале б); б) если Dj^.D\ и требование / обслуживается в интервале, помер которого больше б, то существует такое требование Z, которое обслуживается в интервале б и 1-+] (иначе / следовало бы обслуживать в интервале б). Рассмотрим два случая: 6=L/>iJ и 6< L-Djj. Если б = L-D* j, то обслуживание требования к завершается в момент времени LZ^J <0. Поскольку k-+i, то из процедуры нахождения модифицированных директивных сроков следует, что Df^Di—1 < L j . Следовательно, для требования к нарушен модифицированный директивный срок, что противоречит выбору требования i. Пусть 6< Тогда в интервале 6 + 1 обслуживается М требований j с директивными сроками Dj ^ D{. Для каждого из этих требований существует требование I, I /, которое обслуживается в интервале б. Из процедуры нахождения модифицированных директивных сроков следует, что Di^iDj — 1 ^ D\ 1 < L Dx j . Поскольку в интервале б может обслуживаться не более М — 1 таких требований Z, то по крайней мере два требования имеют одного и того же 12 в. С. Танаев и др, 177
предшественника. Это невозможно для входящего дерева. Теорема доказана. Таким образом, если G — входящее дерево, d{ = 0 и £, = 1 U = l, я), то для построения допустимого относительно директивных сроков расписания (если оно существует) достаточно: а) вычислить модифицированные директивные сроки Di (требуется выполнить не более О(п) операций); б) получить список X требований, упорядоченных но неубыванию значений Dx (не более 0(n\ogn) операций, см. гл. 1, § 2, п. 2.7); в) построить Х-расписание (не более 0{п) операций, поскольку в списке X требования множества В (к) расположены левее трбования к для всех k^N). В результате выполнения не более O(nlogn) операций будет построено допустимое расписание либо сделано заключение о том, что допустимого расписания не существует. Табл н ц а 7.2 i 1 2 3 4 5 6 7 8 9 10 6 5 6 4 9 8 7 3 2 8 D\ 4 5 6 4 1 1 7 3 2 8 Пример. Пусть в условиях примера В значения директивных сроков Di требований заданы табл. 7.2. Полученные модифицированные директивные сроки Di приведены в этой же таблице. Список X требований, упорядоченных по неубыванию значений Dir имеет вид: X = (5, 6, 9, 8, 1, 4, 2, 3, 7, 10). Соответствующее этому списку Х-расписание приведено на рис. 7.3. Это расписание является допустимым относительно заданных директивных сроков. В заключение этого раздела отметим, что если все директивные сроки одинаковы, т. е. Di = D (i = i, я), то из процедуры нахождения модифицированных директивных сроков получаем Di = D — (hi — 1), где Ы — высота вершины i графа G. Список X требований, упорядоченных по неубыванию модифицированных директивных сроков, в этом случае сов- 178 прибор 3 прибор 2 1 6 ! / 2 3 7 fO “1 ^ t 12 3 4 5 6 Рис. 7.3.
падает со списком требований, упорядоченных по невозрастанию высот, и не зависит от величины D. Если в качестве D взять наименьший директивный срок, при котором существует допустимое относительно этого срока расписание s, то это расписание является, очевидно, оптимальным по быстродействию. Следовательно, в рассматриваемом случае (G — входящее дерево, d, = 0, £» = 1, i = 1, п) оптимальным по быстродействию расписанием является ^-расписание, соответствующее списку X, в котором требования упорядочены по невозрастанию высот. Если вершины входящего дерева пронумеровать так, как в п. 1.4, § 1, гл. 1 (номер 1 имеет корень, затем нумеруются все вершины, имеющие высоту два, после них — вершины, высота которых равна трем, и т. д.), то список X имеет вид: X = (п, п— 1, ... ..2, 1). Это совпадает с результатом, полученным в п. 5.2, § 2, гл. 2. Пример. В условиях примера В списком X требовапий, упорядоченных по невозрастанию высот, является X = = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10). Соответствующее этому списку ^-расписание, приведенное на рис. 7.2, б, является оптимальным по быстродействию. 7.3. Перейдем к рассмотрению случая, когда граф G редукции отношения строгого порядка, заданного на множестве N, является произвольным ориентированным бескон- турным графом, но число приборов М = 2. По-прежнему предполагается, что d, = 0 и U = 1 d = 1, п). Заметим, что если к требований множества Ad) имеют директивные сроки, не превышающие D, то обслуживание требования i при любом допустимом относительно директивных сроков расписании должно быть завершено не позднее момента времени D— Г к/2 и , где Гх~1— наименьшее целое, большее или равное х. Поэтому директивный срок требования i можно положить равным min[D{,D—Г к/2п}. Используя этот факт, можно предложить следующий алгоритм модификации директивных сроков. Полагаем вначале модифицированный директивный срок Dj = Dj для всех j ^ N~. На каждом следующем шаге выбираем требование i^N, для которого не вычислен модифицированный директивный срок, но для всех требований множества Ad) модифицированные директивные сроки вычислены. Пусть D(i), Z)(2), ..., D{1) — множество всех различных модифицированных директивных сроков, соответствующих требованиям из Ad), a gd, D{k)) — число элементов множества Ad), имеющих модифицированный директивный 12* 179
срок, не превышающий D{h). (к = 1,1). Полагаем Z)* = Пр и мер. Пусть в условиях примера А значения исходных директивных сроков приведены в табл. 7.3. Процесс вычисления модифицированных директивных сроков показан в табл. 7.4. Для каждого шага алгоритма Таблица 7.3 i 1 2 3 4 5 G 7 8 9 10 И Di 2 3 8 9 8 7 5 G 10 7 7 Таблица 7.4 Шаг 1 2 3 4 5 6 7 i G 8 10 11 3 9 1 Mi) 0 0 0 0 {«} {10, 11} {3,6} D(1), . . D(,) — — — — 7 7 6; 7 S(i, £>(i)), • • • — — — — 1 2 1; 2 7 6 7 7 8 10 2 D'i 7 6 7 7 6 6 2 Шаг 8 1) 10 li i 5 7 4 2 A(i) {9, 10,11} {8,9, 10,11} {7, 8, 9, 10, 11} {3,4,...,11} £>(1), . . Z>(,) • • • G; 7 6; 7 5; 6; 7 4; 5; 6; 7 • • /><«>) l; з 2; 4 1; 3; 5 1; 3; 6; 9 Di 8 5 9 3 К 5 5 4 2 приведены: требование i, для которого вычисляется модифицированный директивный срок, множество A(i), множество Z)(1), Z)(2), ..., D{1) всех различных значений JDj для j^A(i); число g(i, D(k)) элементов множества A(i), имею- 180
щих модифицированный директивный срок, не превышающий D{h) (к = 1,1), Кроме того, приведены значение исходного директивного срока D{ и полученное значение модифицированного директивного срока Dit Например, для требования i = 2 модифицированный директивный срок равен 2, поскольку этому требованию соответствуют 9 элементов множества AG), модифицированный директивный срок которых не превышает 7. Покажем, что для вычисления модифицированных директивных сроков требуется выполнить не более ОЫ2) операций, если отношение задано в транзитивно замкнутой форме. Алгоритм построения транзитивпого замыкания G' графа G описан в [260] (оценка 0(nlog1)) и в [5] (оценка 0(n3/log п)). Итак, пусть отношение -> задано с помощью графа G', а граф G' задан матрицей смежности R. Напомним, что граф G' содержит дугу (i, у) тогда и только тогда, когда £-*/. Сумма элементов i-й строки матрицы R равна с» = = \A{i)\ ii = 1, п). Образуем для каждой строки i матрицы R список L(i), в который будем помещать модифицированные директивные сроки требований множества A(i), располагая их по невозрастанию. Первоначально все списки L{i) пусты. Если с%== 0, то i^N~. Для выделения множества N~ достаточно, очевидно, выполнить не более ОЫ2) операций. Положим Di = Di для всех i е N~. Зададим совершенный псевдопорядок =>- на множестве N~, полагая i =>- у, если Di ^ Dj. Представим множество N~ в виде сбалансированного 2-3-дерева Т (для этого требуется выполнить не более ОЫ) операций — см. п. 2.3, § 2, гл. 1). Выберем максимальный относительно => элемент у из Т (ему соответствует наибольшее значение модифицированного директивного срока). Исключим у из Т (для этого необходимо выполнить не более O(logn) операций — см. п. 2.6, § 2, гл. 1). Занесем значение Dj в конец списков L(i) для тех строк i, в которых содержатся 1 в столбце у. Значения с,, соответствующие этим же строкам, умепыпим на 1. Отметим, что при этом для каждого максимального элемента у из Т выполняется не более ОЫ) операций. Если для некоторого i получаем с{ = 0, то это означает, что для всех требований множества A(i) вычислены модифицированные директивные сроки. В этом случае список Lii) содержит все модифицированные директивные сроки требований множества Ali), упорядоченные по невозраста- 181
пию. Нетрудно видеть, что, имея список Ld), модифицированный директивный срок D\ требования i можно вычислить в результате выполнения не более ОЫ) операций. Вычислив Di% включим элемент i в 2-3-дерево Т (для этого требуется выполнить не более CKlog/z) операций). Перейдем к выбору следующего максимального относительно => элемента из Т и т. д., пока не будут вычислены все модифицированные директивные сроки. Нетрудно видеть, что общее число операций, необходимых для вычисления модифицированных директивных сроков всех требований, не превышает ОЫ2). Покажем, что расписание допустимо относительно модифицированных директивных сроков тогда и только тогда, когда оно допустимо относительно исходных директивных сроков. Поскольку Di Di (i = 1,n), то расписание, допустимое относительно Z)j, допустимо и относительно Du Предположим, что расписание s допустимо относительно Z+, но не допустимо относительно D\. Без потери общности можем считать, что при расписании s каждое требование обслуживается в единственном единичном интервале времспи. Среди требований, для которых нарушены модифицированные директивные сроки, выберем требование £, обслуживаемое в единичном интервале времени с наибольшим номером 0. Тогда Di < 0 ^ Di. Из процедуры нахождения модифицированных директивных сроков следует, что существует такое число gd, D') требований множества АШ, модифицированные директивные сроки которых не превышают D\ что выполняется D\ = = D' — [у g{i,Dr) ]. Так как все требования множества Ad) обслуживаются без нарушения директивных сроков и все они обслуживаются в единичных интервалах времени с номерами, большими ©, то gd, D') требований должны обслуживаться в интервале (0 + 1, D']. Но Di< 0, поэтому £>'-©< [| g(hD’)] и, следовательно, в интервале (0 + 1,/)'] при расписании s должно обслуживаться более двух требований в некотором единичном интервале времени. Получили противоречие. Таким образом, далее можно говорить о расписании, допустимом относительно директивных сроков без уточнения — исходных или модифицированных. 182
Теорема 7.2. Для того чтобы существовало допусти- мое (относительно директивных сроков) расписание, необходимо и достаточно, чтобы было допустимым ^-расписание, соответствующее списку X = Ui, i2l ..., i-J, гЗе < = i, и-1). * / / Доказательство. Пусть i2, ... А in)* ^ -Dij+1 (i = l,w— l) и ^-расписание s не допустимо относительно директивных сроков. Среди требований, для которых нарушены модифицированные директивные сроки, выберем требование i, обслуживаемое в единичном интервале времени с наименьшим номером 0. Имеем 0 > LjD* J. Заметим, что если / I, то Dj<Di. По построению X- расписания в каждом единичном интервале с номером, меньшим 0, обслуживается при расписании s хотя бы одно требование, модифицированный директивный срок которого не превышает Di. Рассмотрим два случая. Случай 1. Пусть существуют единичные временные интервалы с номерами, меньшими 0, такие, что среди требований, обслуживаемых в каждом из этих интервалов, только одно имеет модифицированный директивный срок, не превышающий D\. Пусть б — интервал с наибольшим номером среди этих интервалов и в интервале б обслуживается требование к такое, что D^^Di. Тогда в каждом из единичных интервалов 6 + 1, ..., 0 — 1 обслуживаются два требования с директивными сроками, не превышающими Di- Вместе с требованием i число этих требований составляет 2(0 —б) —1. Для каждого из этих требований требование к является предшественником (иначе по построению ^-расписания в интервале б следовало бы обслуживать одно из рассматриваемых 2(0 —б) —1 требований). Таким образом, для требования к существует по крайней мере 2(0 — б) — 1 требований множества А (к), модифицированные директивные сроки которых не превышают Dit Поэтому для модифицированного директивного срока требования к должно выполняться D'k г (2 (0 — б) — 1)/2 п = D\ — 0 + б. Поскольку 0 > имеем Dh < б. Таким образом, для требования к нарушен модифицированный директивный срок, что противоречит выбору требования i. Случай 2. Пусть при расписании s в каждом из интервалов 1, 2, ..., 0 — 1 обслуживается по два требования, модифицированные директивные сроки которых не превы- 183
тают Di. Тогда имеется по крайней мере 20 — 1 требований, директивные сроки которых не превышают Д. Следовательно, для существования допустимого относительно модифицированных сроков расписания необходимо, чтобы 2l ^20 — 1. Поскольку 0 > L D\ J , то 0 ^ L Д J +1 и 20— — 2^2 L D\ J у откуда 20 — 1 > 2 L D\ J . Следовательно, допустимое относительно заданных директивных сроков расписание не существует. Теорема доказана. Таким образом, если М = 2, d* = 0, ^ = 1, 1 = 1, и, и отношение строгого порядка задано в транзитивно замкнутой форме, то для построения допустимого относительно директивных сроков расписания (если оно существует) достаточно: а) вычислить модифицированные директивные сроки Д (требуется выполнить не более 0(п2) операций); б) получить список X требований, упорядоченных по неубыванию значений Д (не более O(nlogn) операций — см. гл. 1, § 2, п. 2.7); в) построить ^-расписание (не более ОЫ2) операций). В результате выполнения не более ОЫ2) операций будет построено допустимое расписание, либо сделано заключение о том, что допустимого расписания не существует. Пример. Для рассматриваемого в предыдущем примере множества требований список X имеет вид Х = (1, 2, 4, 5, 7, 3, 8, 9, 6, 10, И), а допустимое относительно директивных сроков расписание приведено на рис. 7.4. Нетрудно видеть, что если все исходные директивные сроки одинаковы (Д = Д £=1,тг), то список X требований, упорядоченных по неубыванию модифицированных директивных сроков, не зависит от величины Д а определяется только видом графа G. Следовательно, оптимальное по быстродействию расписание обслуживания частично упорядоченного множества требований одинаковой длительности двумя приборами можно построить (затрачивая не более ОЫ2) операций), положив 184
все исходные директивные сроки равными одной и той же величине (например, Di = n, i = i,п) и применив приведенный выше алгоритм построения допустимого относительно директивных сроков расписания. Замечание 1. Алгоритм построения допустимого расписания, описанный в п. 7.3, можно применять и в случае, когда моменты dt поступления требований различны, а все директивные сроки одинаковы (Di = D, i = l,n). Заменим ориентацию каждой дуги графа G' отношения порядка на противоположную. В результате получаем граф Gкоторый является графом отношения строгого порядка, обратного исходному. Положим di = О, Di = D — di (i = i,n). Пусть s — расписание, допустимое относительно директивных сроков Д, а Т (s)= max Ця)— длина этого расписания. Тогда ieiv искомое расписание s можно, очевидно, получить, полагая sLit) = sL(t) при t>T(s) и sL(t) = sL(t + T(s) — 20 + 1) (L = 1, M) при 0 — 1 < £ ^ © (0 = 1,74?))'. Аналогичным приемом можно воспользоваться и в случае, когда число приборов произвольно, граф G является выходящим деревом, моменты поступления требований в очередь на обслуживание различны, а все директивные сроки одинаковы. Замечание 2. Приведенные в пп. 7.2 и 7.3 алгоритмы можно использовать для построения расписания, допустимого относительно директивных сроков и имеющего длину, не превышающую заданного числа D. Для этого достаточно положить исходные директивные сроки, превышающие D, равными D. Расписание наименьшей длины (среди допустимых относительно заданных сроков) может быть получено в результате выбора подходящего (целого) значения D в интервале [п/М, п] методом двоичного поиска [7]. При этом указанные алгоритмы применяются не более Oilogn) раз. § 8. Идентичные приборы. Максимальное временное смещение В данном параграфе рассматривается задача построения расписания обслуживания требований параллельными идентичными приборами, которому соответствует наименьшее значение максимального временного смещения. В случае частично упорядоченного множества требований предполагается, что длительности обслуживания требований одинаковы, требования поступают в очередь на обслуживание одновременно и запрещены прерывания; граф редукции отно¬ 185
шения строгого порядка является входящим деревом либо число приборов равно двум. В случае неупорядоченного множества требований моменты их поступления могут быть различными и разрешены прерывания. 8.1. Требования множества 7V=-{1, 2, ..., п) обслуживаются М параллельными идентичными приборами. Требование i^N поступает в очередь на обслуживание в момент времени di ^ 0, длительность его обслуживания равна U > О, а желательный (директивный) срок завершения обслуживания равен А ^ 0. На множестве N задано отношение строгого порядка определяющее возможную последовательность обслуживания требований. Граф редукции этого отношения обозначим через G = (N, U). Расписание s допустимо относительно если для любых i, j.^N таких, что i из sH(t') = i (КН^М) следует sL(t) Ф j (L = 1, М) для всех Оптимальным расписанием будем называть допустимое относительно -*■ расписание s*, которому соответствует наименьшее значение функционала I- шах (.v) = max Тн (s), (8.1) ie/v где Li(s) = £,Ы — А — временное смещение в обслуживании требования i; ti(s) — момент завершения обслуживания требования i при расписании s. Значение L* = Lmax(s*) будем называть оптимальным значением максимального времепного смещения. Прежде чем перейти к непосредственному описанию алгоритмов построения оптимальных расписаний, сделаем одно общее замечание. Для любого допустимого относительно расписания s справедливы неравенства ТМ < А + Aiax(s) и L*^Lmax(s). Следовательно, не существует допустимого относительно -»• расписания s такого, что ti(s) < А + т при т < L* (i=l,/i). Тем самым задача построения оптимального расписания сводится к нахождению наименьшего значения т, при котором существует допустимое как относительно-^, так и относительно модифицированных директивных сроков А — = Di + т расписание. Это расписание является искомым оптимальным расписанием s*, а найденное значение т = L*. Ниже рассматриваются следующие частные случаи задачи построения оптимального расписания: a) di = 0, U = 1, &=1, п, запрещены прерывания процесса обслуживания и граф G является входящим деревом; 186
б) di = 0, ti~ 1, i = 1, n, запрещепы прерывания и М = 2; в) du U, Di — целые числа, i = irn, G = (N, 0) и разрешены прерывания. 8.2. Рассмотрим случаи а) и б). Если известно значение L*, то для построения оптимального расписания можно, очевидно, воспользоваться алгоритмами построения расписаний, допустимых как относительно-^, так и относительно директивных сроков, равных А + L* (см. пп. 7.2, 7.3 предыдущего параграфа). Каждый из этих алгоритмов обладает той характерной особенностью, что при любом 8^0 и директивных сроках, равных Dt + L* + б, строится одно и то же расписание. Действительно, изменение каждого директивного срока на одну и ту же величину не приводит к изменению списков Я, а, следовательно, и соответствующих Я-распи- саний. Таким образом, для построения оптимального расписания в случаях а) и б) достаточно в качестве директивных сроков выбрать величины А + W, где W — достаточно большое число, и воспользоваться соответствующими алгоритмами предыдущего параграфа. Напомним, что оценка временной сложности первого из этих алгоритмов (случай а)) равна O(nlogn), а второго (случай б)) — 0(п2). 8.3. Рассмотрим случай в). Решение задачи построения оптимального расписания будем искать, выбирая пробные значения т и проверяя, существует ли расписание s, допустимое относительно директивных сроков, равных А + т. Если такое расписание существует, то рассматриваемое значение т будем называть допустимым. Начиная с некоторого недопустимого значения т, будем увеличивать т до тех пор, пока не получим наименьшее допустимое значение т. В силу сделанного в п. 8.1 замечания это значение т равно L*. Построение расписания обслуживаиия требований без нарушения директивных сроков в рассматриваемом случае можно выполнить с использованием потоковой модели (см. п. 2.3, § 2, гл. 2). Для каждого пробного значения т потоковая модель строится следующим образом. Пусть {еи е2,... ..., е2п], где е{ ^ е2 ^ ^ е2п — множество значений di и А + т (£ = 1, п) и Ек—(ек, eh+i] (к = 1, 2тг—1). Если d,= = Dj + x для некоторых i и у, то е с меньшим индексом соответствует значению du Сеть Г содержит источник х0, соединенный дугами пропускной способности M(ek+i — ек) с вершинами хк (к = 1, 2п— 1) (которые соответствуют интервалам Ек), и сток z, в который входят дуги пропускпой 187
способности ti из вершип у{ (i=l, п) (соответствующих требованиям i). Дуга (xh, у») пропускной способности ek+i — — eh проводится тогда и только тогда, когда d{ < ek и eh+l < ^ Д + т. Пробное значение т допустимо тогда и только тогда, когда величина максимального потока в сети равна и 0 = 2 ti (т. е. насыщаются выходные дуги сети). Напом- г—1 ним, что для построения максимального потока требуется выполнить не более 0(п3) операций, а для последующего построения расписания, допустимого относительно директивных сроков, равных Dt + т (если оно существует), требуется выполнить не более ОЫ2) операций (см. и. 2.3, § 2, гл. 2). Структура сети Г, очевидно, зависит от величины т. Значение т будем называть критическим, если существуют такие i и / из N, что Di + т = dj. Структура сети остается неизменной для всех значений т, заключенных между двумя последовательными критическими значениями. Значение х = L* будем искать в два этапа. На первом этапе находим т0 — наибольшее недопустимое критическое значение т. Поскольку критических значений не более чем п2, то для нахождения т0 с использованием метода двоичного поиска [7] требуется проверка не более log/г2 (т. е. не более CKlog/г)) значений т, для чего необходимо выполнить не более 0(n3logn) операций. На втором этапе выполняем следующую процедуру для значений т = тУ, начиная с v — 0. Находим максимальную величину потока и значение пропускной способности минимального разреза сети, соответствующей значению тУ. Пусть Яу — разрез сети, которому соответствует минимальная пропускная способность 0У. Если 0У < 0, то увеличиваем значение тУ так, чтобы пропускная способность разреза /?У стала равна 0. Полученное значение т обозначаем через тУ+1 и повторяем процедуру. В результате получаем возрастающую последовательность значений тУ. Процесс заканчивается на шаге г, на котором 0Г = 0 и, следовательно, Гг — наименьшее допустимое значение т, т. е. тг = L*. Покажем, что число шагов на втором этапе не превышает CKmin {/г2, log п + log где fmax = maxf*. i£E N Рассмотрим, как изменяется пропускная способность 0У разреза ДУ сети, соответствующей недопустимому значению тУ, при увеличении тУ на т] > 0. Будем говорить, что интервал Ek = (ek, ek+l] относится к классу 1, если eh = di и ek+l = = Dj + тУ; к классу 2, если eh = Di + тУ и ek+i = d}; к клас¬ 188
су 3 во всех остальных случаях. При увеличении tv па ц пропускная способность дуги, исходящей из xh, увеличивается на ц, если Ек относится к классу 1, уменьшается на г|, если Eh относится к классу 2, и не изменяется, если Eh относится к классу 3. Аналогичная ситуация имеет место для дуг (*г0, хк), по пропускная способность изменяется здесь на величину Мц. Очевидно, пропускная способность разреза /?У изменяется на величину YvT], где Yv — целое число. Поскольку т0 — наибольшее недопустимое критическое значение т, то при увеличении xv значение пропускной способности разреза Rv должно увеличиваться, т. е. Yv^ 1. При переходе от tv к tv+i полагаем ц = Г (0 — 0y)/Yv И и Tv-м = Tv + ц. Здесь —наименьшее целое, большее или равное х. Рассмотрим, как изменяются пропускные способности разрезов сети при переходе от tv к tv+i. Каждому разрезу можно сопоставить пару (0', у), где 0'— пропускная способность разреза, а ] - целый коэффициент, показывающий, что при увеличении тУ на ц пропускная способность разреза изменяется на чц. При переходе от tv к tv+i коэффициенты Y разрезов не меняются, но могут измениться значения 0'. Если y ^ Yv, то пропускная способность разреза увеличивается до значения, не меньшего 0. Отсюда следует, что Yv+i<Yv Cv = 1, г—1). Нетрудно видеть, что Yo не превышает 0(п2). Поскольку Yv — целые и Yv^l, получаем, что число шагов г не превосходит 0(п2). Покажем, что оценку числа шагов можно уточнить. Для всех разрезов, которым сопоставлены пары (0', у), где 0'<0, коэффициент y>0- Действительно, поскольку т0 — наибольшее недопустимое критическое значение т и tv > т0, то в результате увеличения тУ на некоторую величину ц' пропускные способности всех разрезов должны стать не меньшими 0. Так как коэффициенты y не меняются при переходе от тУ к tv+i, то должно выполняться Y > 0» если 0'<0. Пусть cv — число всех возможных пар (0', y)> У которых 0' ^ 0 при т = тУ. Поскольку число всех возможных пар, для которых выполняется 0У<0'^0 и O^y^Tv, равно (0 — 0y)(Yv+ 1), то cv > (0 — 0v)(Yv+ 1). Пропускная способность 0' такая, что 0 — (0 — 0v)y/Yv^ < 0' < 0, каждого разреза с коэффициентом Y» Т < Т*» увеличивается при переходе от тУ к tv+i до величины, не меньшей 0. Поэтому число возможных пар (0', y), для которых 0' ^ 0, при переходе от тУ к тУ+1 становится для каждого Y» 0^y<Tvi равным 0 — (0 — 0v)y/Yv — ©v, а для гхех Y 189
получаем cv+i = (в — ©v) Yv — 6 °v 2 V = (0 — @v)(yv — Yv-l Y=0 _ (Q-0v)(Yv + 1) 2 Отсюда следует, что cv+i < (e-ev)(Yv-H) _1 ,v ^2(0-ev)(Tv + i)" 2- Таким образом, на каждом шаге число возможных пар (у, 0') с ©'О уменьшается по крайней мере вдвое. Учитывая, что у не превышает 0(п2)у получаем, что число шагов не превосходит OiXog (я2©)), т. е. не превосходит О (log п +- log £max), где ^max = max £*. Таким образом, число i=N шагов на втором этапе не превышает 0(min{rc2, log/i + + log tmxL}). Следовательно, общее число операций для построения оптимального расписания в случае в) не превосходит 0(п3 min {п2, log п + log ^шах! ) • 8.4. Покажем, что построение оптимального по быстродействию расписания при произвольных d» сводится к по~ строению расписания с наименьшим значением максимального временного смещения при di = О U= 1, п). Рассмотрим две задачи построения расписания с наименьшим значением Lmax(s). В первой из этих задач требования имеют параметры d* = 0, tiy Di(i = 1, п) и на множестве N задано отношение строгого порядка а во вто- рой требования имеют параметры diytifDir где d{ = D — — Di, ti = tiy D{ = D, D = maxDir и на множестве N зада- iGiV но отношение строгого порядка =^, обратного порядку -*• (т. е. i => j тогда и только тогда, когда j i). Эти задачи будем называть сопряженными. Пусть s' — оптимальное расписание для первой задачи и значение Lmfa(s') = L'. Обозначим через s совокупность М кусочно ПОСТОЯННЫХ функций {Si(t)y s2(0, ..., sM(t)} таких, что sL(t) = sL(t)(b = 1, 71/), если t не является точкой разрыва функции sL(t). В точках t разрыва функции Sl (t) положим sL(t) =sL(t + б) для достаточно малых 6>0 (таким образом, функции sL(t) в отличие от Sb{t) непре- 190
рывны справа, а не слева). Полагая sL(t) = s^(D + L' — t) для t e (0, D + L'] и s"L (t) = 0 для t> D + L' (L = 1, AT), получим допустимое расписание s" для второй задачи. Нетрудно видеть, что значение Z/max (s") = тах(^ (5") — ieiv — D\] = Lf и s" — оптимальное расписание для второй задачи. Поскольку D\=D (£ = 1, п), то расписание s" оптимально и по быстродействию. Следовательно, для решения задачи построения оптимального по быстродействию расписания при произвольных di достаточно решить сопряженную ей задачу построения расписания с наименьшим значением Lmaz(s) при d{ = 0„ D\ = D — dif D = шах d{ (i = l,n). i<=N Отметим также, что расписанию, которому соответствует наименьшее значение LmgLX(s), соответствует и наименьшее максимальное запаздывание. Действительно, максимальное запаздывание zmax(s) = max{0, Li(s)} совпадает с Lm&x(s) ieiv при Lmai(s) ^ 0. Это замечание справедливо, очевидно, и относительно функционала F (5) = max ф (L{ (s)), где ф — лю- i£=N бая неубывающая функция. Таким образом, описанные в данном параграфе алгоритмы можно использовать для построения расписаний с наименьшим значением zmax(s) и шах ф (s)). ieN § 9. Различные приборы. Суммарный и максимальный штраф В данном параграфе рассматривается ряд задач минимизации суммарного и максимального штрафа за обслуживание требований параллельными неидентичными приборами (и, в частности, задачи построения оптимальных по быстродействию расписаний), для которых известны полиномиально ограниченные алгоритмы решения. 9.1. Требования множества N = {1, 2, ..., п} обслуживаются М параллельными приборами. Все требования поступают в очередь на обслуживание одновременно в момент времени d = 0. Длительность обслуживания требования i прибором L равна tiL > 0. Каждому требованию i сопоставлена неубывающая функция штрафа ф<(£). Задача минимизации суммарного штрафа состоит в построении расписания s* обслуживания требований множе- 191
(9.1) ства N, при котором функционал Рх(*) = 2<Pi(M*)) i=l принимает наименьшее значение. Задача минимизации максимального штрафа состоит в построении расписания s* обслуживания требований множества N, при котором функционал Рmax (*) = max (ф{ (ti (s))j (9.2) i^N принимает наименьшее значение. Здесь ti(s) — момент завершения обслуживания требования при расписании s. Расписание s* в каждой из задач будем называть оптимальным. Если прерывания обслуживания каждого требования запрещены, то расписание однозначно определяется разбиением множества N на подмпожества Nz, ..., NM (неко¬ торые из них, возможно, пустые) и заданием последовательности обслуживания требований множества NL прибором L (L= 1, М). Ниже рассматриваются задачи минимизации суммарного штрафа при запрещении прерываний в случаях, когда: а) фг(£) — £, £ = 1, и; б) <р ,•(*)'=*, tiL = aLt{, U>0, aL > О, J = 1, п, L= 1, М; в) ф,-(г) — неубывающая функция, tiL = aL, aL > 0, i = 1, п, L = l7~М; г) ф,Ш = tiL = 1, i'= 1, п, L = 1, М (здесь щЬ) = = 0, если t sS Df, Ui(t) = 1, если t > A; a( > 0; 0 — ди- рективный срок завершения обслуживания требования i\ Di (i = 1, п) — целые числа; и задачи минимизации максимального штрафа в случаях, когда: а) фД£) — неубывающая функция, tiL — aL, aL > 0, i-= = 1, л, L = i, Л/, и прерывания запрещены; б) ф<Ш = f, i = 1, Щ в) <pi(t) = t-Di, i=i,n. В заключение параграфа рассматривается одно из естественных обобщений задачи минимизации суммарного штрафа, когда заданы моменты готовности приборов и функции штрафа за использование приборов. 192
9.2. Перейдем к рассмотрению нерпой из указанных задач. Необходимо построить расписание $*, которому соот- п ветствует наименьшее значение 2М5*)- г=1 Пусть s — некоторое расписание, требование i обслуживается при этом расписании прибором L и после требования i прибором L обслуживается к — 1 требований (1 ^/с < м). Тогда длительность обслуживания tiL входит в качестве слагаемого в выражение для вычисления значения U и значений tj для к — 1 требований /, обслуживаемых прибором L п после требования i. Сумму 2М5) можно представить в г=1 виде: ktiL плюс те слагаемые, которые не зависят от tiL. Если требование i обслуживается прибором L последним, то коэффициент при tiL будет равен 1, если предпоследним — то он равен 2 и т. д. Введем переменную Ххщ, принимающую значение 1, если требование i обслуживается прибором L и этот прибор обслуживает к — 1 требований после требования i. В противном случае xiLh = 0. Тогда рассматриваемая задача может быть сформулирована в виде следующей задачи транспортного типа. Необходимо минимизировать п М п при условиях М п '■ 2 2 2 ktii'XiLk г=1 L=1 k*=l (9.3) 2 2 ^iLh ~ L=1 к=1 / п 1, 1 = 1, n, (9.4) 2 %iLh ^ г=1 L = 1, Л/, к = 1, n, (9.5) XiLh > 0, i 1 [t-h II ►Si II 1 ^ II (9.6) Условие (9.4) означает, что каждое требование i должно обслуживаться одним из приборов и занимать определенную позицию в последовательности обслуживания требований, соответствующей этому прибору. Условие (9.5) означает, что в последовательности обслуживания требований, соответствующей любому прибору, каждая из позиций занята не более чем одним требованием. Сформулированная задача может быть сведена к задаче, рассмотренной в [57], и ее решение может быть получено за 0(п3) операций. 13 в. С. Танаев и др. 193
9.3. Пусть длительность обслуживания требования i прибором L равна tiL = aLt{, где aL> 0, £г>0, i = 1, п, L'=l, Л/, т. е. для каждого прибора L задана «производительность» 1/0L обслуживания требований. По-прежнему необходимо построить расписание, которому соответствует паимепынее п значение 2М5)- i=i Рассмотрим вспомогательную задачу. Даны два ^-мерных вектора а=(аи а2, ..., а„) и р = (рь р2, .РД компоненты которых — действительные числа. Обозначим через я = *=* (и, г2, ..in) некоторую перестановку элементов множества {1, 2, ..., n). Определим п / (я) = 2 ceftp, . ft=l Требуется построить перестановку я* элементов множества И, 2, ..., п), которой соответствует наименьшее значение /(я). Не нарушая общности, будем предполагать, что компопепты векторов а и р пронумерованы так, что > > а2 > ... > а„. Рассмотрим перестановку я', отличающуюся от я транспозицией элементов ih и ift+l. Имеем / (я') — / (я) = К - <xft+1) (Pih + 1 — plk). Если pift<pjft+1, то эта разпость иеотрицательна. Таким образом, упорядочивая числа рi в порядке их неубывания, получаем искомую перестановку я* = (г*, i*,■.. .*$*)• Здесь Р * ^ Р * для всех к = 1, п—1. h *л+1 Тем самым функционал /(я) достигает наименьшего значения тогда и только тогда, когда большим ah соответствуют меньшие Pift. Перейдем к рассмотрению задачи построения расписа- п ния 5* с наименьшим значением Не теряя общно- i=i сти, будем считать, что требования i е N пронумерованы так, что ti > t2 > ... ^ tn. Построим М X ^-матрицу А = llaL>A полагая aLh *= т. е. ях 2а1 ... па1 А = 2чг Па2 ам 2ам ... пам 194
Упорядочим элементы матрицы А по неубыванию и обозначим /-й элемент полученной последовательности через так что Pi ^ р2 < ... ^ Рмп. Поставим в соответствие элементу i <= N элемент Pi матрицы А. Если Рг^аьл, то требование i будем обслуживать прибором L, причем это требование будет занимать к-е с конца место в последовательности обслуживания требований этим прибором. Заметим, что если некоторому требованию i поставлен в соответствие элемент aLh (&>1), то для любого aLh'i к'найдется соответствующий ему элемент /'eiV (так как сс//^ < aL/t). В результате получаем последовательности требований, обслуживаемых каждым из приборов. Тем самым определено некоторое расписание s без прерываний процесса обслуживания. Это расписание оптимально в силу приведенных выше (при минимизации функционала /(я)) рассуждений. Для того чтобы пронумеровать требования i^N так, чтобы выполнялось ti ^ t2 > ... > tn} достаточно выполнить не более O(nlogn) операций (см. гл. 1, § 2, п. 2.7). Оценим число операций, которые необходимо выполнить для получения элементов р2, ..матрицы А. Упорядочим элементы аи а2, ..., ам по неубыванию: • Для этого достаточно выполнить не более ОШ log М) операций. Заметим, что в множество элементов B=>{Pi, р2, могут войти не более п (первых) элемен¬ тов строки ii матрицы А, не более п/2 (первых) элементов строки i2 и т. д., не более п/М элементов строки iM матрицы А. Таким образом, общее число элементов, среди которых следует искать элементы множества В, не превышает м V? 1 п + п/2 + п/3 + ... + п/М = nSM, где Sm = 2* 1Г — частная к=1 сумма гармонического ряда. Множество этих элементов обозначим через С. Известно, что частные суммы гармонического ряда растут как In М или, что то же, log М. Множество С представим в виде сбалансированного 2-3-дерева. Для этого достаточно выполнить не более O(nlogM) операций (см. гл. 1, § 2, п. 2.3). Для получения элементов [}2, ... ..., рп с использованием полученного 2-3-дерева достаточно выполнить не более 0(nlog (nlogМ)) операций. Поскольку можно считать, что М <п, получаем оценку общего числа операций, необходимых для построения оптимального расписания, равную Oinlogn). Если приборы идентичны (случай, когда все aL одинаковы), то расписание s*, построенное описанным выше сносо- 13* 195
бом, является, по существу, расписанием, построенным по известному правилу «кратчайшей операции»: в момент освобождения прибора среди требований, не назначенных на обслуживание, выбирается требование с наименьшей длительностью обслуживания и назначается на обслуживание данным прибором. Оценка сложности построения расписания по правилу «кратчайшей операции», очевидно, также равна 0(n\ogn). 9.4. Пусть tiL=>aL, i = 1, n, L = l, M, и функции штрафа фi(t) — неубывающие. Тогда задача построения расписания, которому соответствует наименьшее значение функционала (9.1), сводится к следующей задаче транспортного типа. Введем переменную xiLh, принимающую значение 1, если требование i обслуживается прибором L, занимая к-е место в последовательности обслуживания требований этим при- бором. В противном случае xiLh = 0. Пусть ciLh = фД/caJ, i = 1, п, L = 1, Af, к = 1, п. Необходимо мипимизировать п М п 2 2 2 ciLkxiLh (9.7) г=1 L=1 h= 1 при условиях М п 2 2 хил = 1» i = 1, П, (9.8) L=1 ft=l 2 xiLh <1, L = M, к = 1,«, (9.9) i=1 i = l,n, L = 1, M, A: = 1, /г. (9.10) Условие (9.8) означает, что каждое требование должно обслуживаться одним из приборов, занимая определенную позицию в последовательности обслуживания требований этим прибором. Условие (9.9) означает, что в последовательности обслуживания требований, соответствующей любому прибору, каждая из позиций занята не более чем одним требованием. Задача (9.7) —(9.10) аналогична задаче (9.3) —(9.6), и ее решение может быть получено в результате выполнения не более 0{п3) операций. Аналогично решается также задача _мшшмизацш^_ максимального штрафа при tiL= aL, i = = 1, п, L= 1, Ж, только функционал (9.7) меняется па ШаХ i,L,k 196
9.5. Пусть tiL=> 1, i = 1, га, L = 1, Л/, и функции штрафа имеют вид фгШ ^ ajUjil), где г^г(^) = 0, если ratU) = 1, если t>D{; а*>0, i=l, га. Здесь Д— целое число, директивный срок завершения обслуживания требования i. Необходимо построить расписание, при котором функционал (9.1) принимает наименьшее значение (задача I). Наряду с дайной задачей рассмотрим задачу II, отличающуюся от исходной тем, что длительности обслуживания требований равны ИМ и требования обслуживаются одним прибором. Будем говорить, что при расписании s обслуживания требований М параллельными приборами нет неоправданных простоев приборов, если либо sL(t) = 0 на интервале (О, «О, либо sL(t) ¥= 0 на интервале (0, t'] и sL(t) — 0 при t>t' (L= 1, М). Аналогично при расписании s' обслуживания требований одним прибором нет неоправданных про- s' (t) = 0 вне этого интервала. Пусть S и S' — множества всех расписаний без прерываний и без неоправданных простоев приборов для задач I и II соответственно. Очевидно, существуют оптимальные расписания для задач I и II, содержащиеся соответственно в множествах S и S'. Расписания s и s' для задач I и II назовем сопряженными, если для каждого единичного интервала (0—1, 0], 0 = 1, 2, ..., выполняется s'(t) = sL(0) для всех £ е (0 — 1 + V7 -L у DDlHUvlrl/lC 1 v/1 О \v/ О \ VJJ / Д<|1/1 DvCA ^ ч—“ \ \_/ JL I + {L—i)/M, 0 — 1 + L/M] (и наоборот, sL(t) = s'(О — 1 + + L/M) для всех t ^ (0 — 1, 0], L = 1, М). Нетрудно видеть, что а) если расписание s' принадлежит S', то сопряженное ему расписание s принадлежит S (обратное, вообще говоря, не верно), б) значения функционалов (9.1) для сопряженных расписаний в задачах I и II совпадают. Следовательно, для того чтобы получить оптимальное расписание для задачи I, достаточно найти оптимальное расписание я* для задачи II и построить сопряжен¬ ное ему расписание. Алгоритм построения оптимального расписания s' ^ S' для задачи II, имеющий оценку сложности 0(п log га), приведен в и. 4.3, б), § 4, гл. 2. Пример. В качестве задачи I рассмотрим задачу, в которой Д/ => 3, га = 10, значения Д и аг, i= 1, 10, приве¬ стоев прибора, если s'(t) Ф 0 па интервале и 197
дены в табл. 9.1. Оптимальное расписание s* для соответствующей ей задачи II представлено на рис. 9.1, а, а сопряженное ему расписание s*, которое является оптимальным для задачи I, представлено на рис. 9.1, б. При этом Fs(s*) = Fs(s*') = 2. Таблица 9.1 i 1 2 3 4 5 6 7 8 9 10 1 i 1 2 2 2 2 3 3 4 «i 5 4 6 2 3 4 5 1 3 2 9.6. Перейдем к рассмотрению задач минимизации максимального штрафа. Пусть cpi(t) = t (& = 1, п) и разрешены прерывания в обслуживании каждого требования. 5- 7 r~1 i i i прибор j прибор 2 прибор 1 3 7 W ^ £- i ' 5 H ! ' j i i i 2 i i i 6 l i i 4 5 4 ■ r—• 1 1 ! ! ! ' ! ! li, 1 | | | 1 l i l 5 i i | 8 4^ 2 21 i i 1 1 1 i r4 i i 1 i 1 i ч | I II 1 1 1 1 i l 1 1 i 1 1 1 1 l i i_ ! i 1 1 1 ж Д ' ' i ' ' i T_r a) 3 ’ 4 / T V - Г r 2 3 4 5) Рис. 9.1. Пусть s — некоторое расписание обслуживания требований. Обозначим через xiL суммарную длину временных интервалов, в течение которых прибор L обслуживает требо- м вание i. Имеет место соотношение 2 (тгь/^ь) = 1 0 = 1, и). L=1 Обозначим Т = max ti (s). Очевидно, значения Т и т,х яв- ieiv ляются допустимым планом следующей задачи линейного программирования: м 1 Ь= 1 TiL Ul T -*■ min, (9.11) 1, i = l,n, (9.12) 198
(9.13) м тu,< 7\ i = 1,», L=1 2та<г, L = T^M, (9.14) i=l * = 1,л, Z, = 1,M. (9.15) С другой стороны, если T и xiL (где t — 1, п, L = 1, М) — решение задачи (9.11) —(9.15) и существует расписание 5, при котором суммарная длина интервалов обслуживания требования i прибором L равна тu,, a max ^(s) = Г, то pacts N писапие s является искомым оптимальным расписанием. Покажем, что расписание s существует, и укажем способ его построения. Покажем также, что это построение можно осуществить за полиномиально ограниченное время. Тогда из существования полиномиального алгоритма решения задачи линейного программирования [166] будет следовать существование такого алгоритма и для задачи построения оптимального по быстродействию расписания. Пусть Т и т = И tall — решение задачи (9.11) —(9.15). Положим Т = Т. Очевидно, имеем !М п \ max 2 TiL> max 2 т»ы> (9.16) l<i<n L—l 1<CL<M t=l J Назовем строку i (столбец L) матрицы т плотной (плотным), если 2 тil = Т ( соответственно 2 тгь = Т ). Пусть L=1 V i=l / F(t) — подмножество положительных элементов матрицы т, содержащее по одному элементу из каждой плотной строки и плотного столбца и не более одного элемента из каждых оставшихся строк и столбцов. Пусть б — наибольшее число, удовлетворяющее следую¬ щим условиям: а) б^Тгь, если т<ье^(т) и xiL — элемент плотной строки или плотного столбца; м б) 6<TiL + Т- 2 г а, если Til^F(t), но строка i не L=1 является плотной; гг в) 6<Tit + Т— 2 TjL, если ггхе^(т), но столбец L i=1 не является плотным; 199
~ м г) 6^ Г— 2 TiL» если У(т) не содержит элементов L=1 строки i; п д) 6< Г — 2 ”4L, если У(т) не содержит элементов 2=1 столбца L. Например, пусть п ■■ ет вид: т = , м з, т = 3 4 4 и 4 0 0 4 0 6 0 6 4 0 6 10 И 10 10 Здесь против каждой строки (столбца) записана сумма элементов данной строки (столбца). Первая строка и первый столбец являются плотными. Выберем в качестве У(т) множество элементов матрицы т, набранных полужирным шрифтом. Имеем: б ^ т12 = 4, 6 ^ т21 = 4, ~ з б ^ T«2i + Г — Т2L — 4 + 11 — 4 = 11, L—1 б<т31 + Г - 2 т,ь = 6 + 11-10 = 7, L=1 б<т12 + Г-2 тй = 4 + 11-10 = 5, 2=1 4 б<т34+Г - 2^4 = 6 + 11-10=7, 2=1 3 6<Г— 2 t3L = 11-6 = 5. L=1 Таким образом, в рассматриваемом случае 6 = 4. Перейдем к непосредственному построению искомого расписания s. Расписание s на интервале (ц, ц + б], где г| = 0, строится следующим образом. Полагаем sLU) = t,-l для каждого элемента т,хеУ(т) на интервале (ц, ц + + min {til, 6}J и, если TjL<6, полагаем sL(t) = 0 на интервале (rj + Til, г]+ 6]. Если в множестве У(т) нет элементов столбца L, то полагаем sL(t) = 0 на всем интервале (т), т] + б]. 200
Полагаем xiL= max {0, — б}, если xiL е V (т), и т^= = Хц в противном случае. Пусть Т' =*Т — б. В результате получаем матрицу т' = ||TiL| и значение Т', для которых выполняется соотношение {М п max 2 ти, max 2 та l<i<nL=1 1<L<M i=l Заметим, что в матрице т' по крайней мере на один положительный элемент меньше, чем в матрице т, либо на одну плотную строку или плотный столбец (по отношению к Т') больше, чем в т. Обозначим т' через т и Г через Г. Положим ц равным ц + б. Найдем новые F(t) и б. Описанным выше способом строим расписание 5 на интервале (ц, ц + б] и т. д. Общее число шагов, очевидно, не превосходит величины г + М + п, 'V м прибор 5 4 j 4 , , / , прибор 2 _/ L__ 5 | 5 . | прибор 1 2 , __■/ 4 j L I I L J L J 1 I I I ^ , ‘ / 2 3 4 5 6 7 д Э 10 11 t Рис. 9.2. где г — число положительных элементов в исходной матрице т. Для рассматриваемого примера получаем последовательно 3 0 4 7 0 0 0 0 0 6 0 6’ 4 0 2 6 7 6 6 0 0 4 4 0 0 0 0 0 3 0 3* 4 0 0 4 4 3 4 Т = 7,6 = 3, Т = 4, 6 = 4. Полученное в результате расписание s представлено па рис. 9.2. 201
В описанном процессе построения расписания s на каждом шаге отыскивается множество У(т). Покажем, что для любой матрицы т (с неотрицательными элементами) и числа Т, удовлетворяющего условию (9.16), множество У(т) существует. Действительно, построим квадратную матрицу II т Р и = t II V т порядка п + М, где t—знак транспонирования, p=*llp<jll и Ч = llTfijH —квадратные матрицы с неотрицательными элементами порядка п и М соответственно. Матрицы р и ц определены таким образом, что сумма элементов каждой строки и каждого столбца матрицы и равна Т. Матрица а = и/Т является двояко стохастической, т. е. ее элементы ац удов- п+М летворягот следующим условиям: 2 аИ = 1» г = з=1 п + М = 1, п + М\ 2 агз = 1, 7 = 1, /г + М. г=1 Следовательно, матрицу а можно представить в виде (п+М)! (n-hM)! а= 2 (О/>0, 2 «/ = 1, (9.17) i=i i=i где {Р/} — набор всех матриц перестановок порядка п + М (т. ©. (О, 1)-матриц, у которых в каждой строке и каждом столбце отличен от нуля только один элемент) [14]. Нетрудно видеть, что любая из матриц Р,, для которой со; > 0 в выражении (9.17), определяет некоторое множество У(т) и, следовательно, хотя бы одно множество У(т) существует. Для построения множества У(т) достаточно построить матрицу u — WiiijW указанного вида и решить задачу о назначениях 72 + М П + М 2 2 вЦ%гэ * niin, i=1 3=1 п+М 2 ха = 1» i = 1,я + М, 3=1 п+М 2 аг« = 1, / = 1, п + Мх 1=1 п где аг; = W, ) = ~М + 1, п + М, если 2 Pij = 9Т I — 1, л; 202
м ciij = W, i = п + 1, n + M, если 2 уц = 0, ] = 1, М\ a{j = щ i=l в остальных случаях; ТУ — достаточно большое число. Поскольку для решения задачи о назначениях достаточно выполнить не более 0(Ы + MY) операций и число решаемых в процессе построения расписания s задач не превышает г +■ М + тг, то оптимальное расписание может быть построено за полиномиально ограниченное время. 9.7. Пусть фi(t) = t — Di U = l, п) и разрешены прерывания в обслуживании требований. В этом случае задача построения расписания $*, которому соответствует наименьшее значение функционала (9.2), представляет собой задачу построения расписания с наименьшим максимальным временным смещением Дах («?) = = шах (5), где ДЫ = ti(s) — Д — временное смещение i<=N в обслуживании требования i, Д — заданный директивный срок, г = 1, п. Пронумеруем требования по неубыванию директивных сроков: Д < Д < ... ^ Д. Пусть s — некоторое расписание обслуживания требований. Обозначим через суммарную длину временных интервалов, в течение которых прибор L обслуживает требование i в интервале (Д-i + Дахы, д+ + Lmax(s)] при расписании s. Здесь к = 1, 2, ..., п, Д = === Lmax{s). Нетрудно видеть, что значения ДахЫ и (к = 1, ni i = 1, п, L = 1, М) являются допустимым планом следую¬ щей задачи линейного программирования: Дах(^) min, (9.18) м i T(fe) = i = 1, w, (9.19) м 2 ^iL ^ Д "Ь -^шах ($)» I = 1, /г, (9.20) L=1 м 2 TiL < Д — Д-1, i = к, п, к = 2, /г, (9.21) Ь=1 2 ^iL ^ Д 4“ ^тах ($)* L = \, Л/, (9.22) г=1 п 2 < A. - A-i, ь = ТГм-, л = 2ТТГ, (9.23) i=h т($ > 0t i = ljwj Л = T^nf L s= lTW. (9.24) 203
С другой стороны, имея решение задачи (9.18)—(9.24), можно построить расписание, которому соответствует наименьшее значение максимального временного смещения. Для этого достаточно воспользоваться процедурами, аналогичными описанным в предыдущем пункте. 9.8. Рассмотрим одно из естественных обобщений задачи минимизации суммарного штрафа за обслуживание п требований М параллельными приборами. Пусть, по-прежнему, все требования поступают в очередь на обслуживание в момент времени d = 0. Длительность обслуживания требования i прибором L равна tiL (i = l, п, L = 1, М). Прерывания процесса обслуживания требований запрещены. Предполагается, что прибор L не может начать обслуживание требований ранее момента времени rL ^ 0. Требованию i и прибору L сопоставлена функция ф,хШ, выражающая в количественном отношении штраф, который необходимо «заплатить», если требование i будет обслуживаться прибором L и процесс его обслуживания завершится в момент времени t. Если прибор L завершает обслуживание всех назначенных ему на обслуживание требований в момент времени £, то необходимо «заплатить» штраф, равный фь(£). Все функции штрафа являются неубывающими. Необходимо построить расписание обслуживания требований, с наименьшим суммарным штрафом. В дальнейшем будем рассматривать эту задачу при следующем дополнительном условии: каждый прибор L должен обслуживать назначенные ему требования последовательно в порядке, обратном их нумерации (начиная с момента времени xL). В этом случае расписание, очевидно, однозначно определяется разбиением множества N на (необязательно непустые) подмножества Nu №2, ..Л^м. Рассмотрим следующую вспомогательную задачу об оптимальном разбиении конечного множества на подмножества. Пусть Fm(Nь iV2, ..., NM) — функция, заданная на множестве всех разбиений множества iV = {1, 2, ..., m) на подмножества Nu N2, ..., NM и принимающая действительные м _ значения. Здесь (J NL = N и не обязательно все NL не пу- L=1 сты. Предполагается, что функции Fm определены при всех /га ^ 0 и обладают следующим свойством: Fm+i (Nv ..., WL-iT Nl (J {m + 1}, Nl+1, .-.,Nm) = = ФТ1 {Fm (Nu ..., NLt... t NM\\Nl j), 204
где Ф™+1 — неубывающая относительно первого аргумента функция, \Nl\—мощность множества TVl» L = l, М, F0 = = const. Требуется при заданном т = я найти такое разбиение множества 7V = {1, 2, я} на подмножества Nl4N2, ... • • • Дм» которому соответствует наименьшее значение функции FnWu N2, .. .» NM). Пусть пи я2, ...» пм — неотрицательные целые числа и м ш+13 2 '= яг. Введем в рассмотрение функции /l j(^i» ^2» • • • l=1 ...» = l^m+l(^l» . . .»^L-1» U {^ + 1}» ^ь+lr • • • ...» Nm)\ I NH\ = ян, Я = 1»^Ь I ^ Нетрудно показать, что при любых яг ^ О и 1 ^ L < 71/ имеет место рекуррентное соотношение /™+1(я 1» • • •» яд, • •. ...,7гм)=Фь+1(т1п(/н (я1? ...» Яя-i» Яд—1, яя+1,...» I яд> >0, Я = 1,71/}, яД Это соотношение позволяет организовать процесс последовательного вычисления всех зна- чений fl ( т = 1, я, L = 1, 71/, nL= т Если /ьх (я*, я*, ...» Ям) — наименьшее из вычисленных значений /£» то \Nh \ = яя(Я = 1,71/) и /ге ТУД Если минимум /гГ1 (я*, ...» я^-i, я!х — 1» я£1+ь ...» я*/) достигается при L = L2, то (я — 1) <= А/"*2 и т. д. В результате получаем искомое разбиение Я*, TV^»• .. ., Для его на¬ хождения требуется вычислить не более Сд+м» т. е. не более ОЫм) при фиксированном 71/, значений /?• Перейдем к рассмотрению частных случаев исходной задачи в порядке увеличения их общности. а) Пусть 71/= 2, Ti = t2 = 0, til=^ti2 = til ф^Ш = q>t2U) =■ = t, i = 1, я, фДг) = ф2Ш = 0. Обозначим через Fm(Nu TV2) суммарный штраф за обслуживание требований множества 7V = {1, 2, ..., яг}, яг^я, при условии, что прибор 1 обслуживает множество требований Ni, а прибор 2 — множество требований TV2, 7Vt U TV2 = = 7V. Поскольку каждый прибор обслуживает требования в порядке убывания их номеров, начиная с момента времени т = 0, то добавляя требование яг + 1 к множеству NL (Ls е{1, 2}), получаем увеличение суммарного штрафа па величину (I7VJ + lUm+i. Иными словами при всех 0 ^ тп < я Fm+i(Nl U {тп + 1), TV2) =Fm(Nu TV2) + (I7VJ + 1 )tm+i. 205
Аналогичное выражение имеет место и для Fm+i(N4, N2 U U {т + D). Следовательно, можно положить Фь+1 (Fm(Nlf N,), \NL\) = Fm(Nlt N2) + (INl] + 1) tm+lf где L = 1, 2, Foe0. Решив вспомогательную задачу с функциями Ф™+1 указанного вида, получим искомое разбиение множества N — = (1, 2, п) на подмножества. б) Пусть М = 2, (ptxU) = t + clL, ерь = ait, aL >0, i= 1, n, L = 1, 2. Обозначим, как и в предыдущем случае, через Fm(Nu N2) суммарный штраф за обслуживание требований множества Ni прибором__1 и требований множества N2 прибором 2; Nl U N2 = А, N = {1, 2, ..., ттг), т<п. Добавим требование т + 1 к множеству NL (L^{ 1, 2}). Если ¥= 0, то суммарный штраф изменится на величину (TL + £m-M,L + cm+1>L) + lALkm+liL + aL^m4-i,L. Если Nl = 0, to суммарный штраф изменится на величину (TL + fm+i,L"b + cm+ljL) + aL(tL + tm+ i, l)• Следовательно, можно положить Ф l (FmiN^ N2), I NL\)=Fm(Nl, N2) + (oclPl + 1)tl + (|AJ+aL+l)^+1,L + + cm+i l, где Pl^I, если |AJ=0, pL = 0, если |AJ>0; L = 1, 2, Fo-0. в) Пусть Л/^2, фiL(t) = hLt + ciL, q)L(t)=aLt, aL>0, bL > 0, i ■=* 1, n, L = 1, Д/. Нетрудно убедиться, что в этом случае Ф™+1 (Fт Wi, iVJ,,..,JVM),|Arj) = Fm(iV1, Nz, iVM) + (ai.^ + WTb + + (Ьх,II +aL + bL)tm+l,L + cm+i, L, где Pl = 1, если |NJ=0, Pl = 0, если \Nl\ >0; L = 1, M, 0 < m < n, F„ = 0. § 10. Библиографическая справка Вопросы существования оптимальных расписаний без персрываний процесса обслуживания рассматривались Р. Мак-Нотоном (один прибор, суммарный штраф, неубывающие функции штрафа либо параллельные приборы, суммарный штраф, липейпые функции штрафа) [356] и М. Роткопфом (параллельные приборы; суммарный штраф, экспоненциальные функции штрафа) [3861. Теорема 1.1 доказапа В. С. Танаевым и В. С. Гордопом [41, 155]. Доказательство теоремы 1.2 приведено в [155]. Обобщение теоремы 1.2 на случай неодновременного поступления требований содержится в [46]. Решение задачи построения допустимого (относительно директивных сроков) расписания обслуживания требований параллельными идентичными приборами (при разрешении прерываний) путем сведения ее к задаче о максимальном потоке (п. 2.3) предложено в работах В. С. Гордона, В. С. Тапаева [47] и У. Хорна [295]. Случай М = 1 206
(п. 2.5) рассматривался Дж. Джексоном [304], В. С. Гордоном [41], В. Г. Визингом [28], Г. Н. Копыловым [79]. Решение задачи в случае М ^ 1, di = d, Di = D, i = 1, n (n. 2.6), получено P. Мак-Нотоном [356]. Алгоритм сложности О (я log/г) для случая М ^ 1, di = с/, i = 1, п (описанный в п. 2.8), предложил С. Сахпи [395]. При М ^ 1 предложепы алгоритмы для случаев Di — D, i = 1, п (оценка О(пМ)) [284], и ti = /, i = 177г (оценка 0(ri* log n)) [413]. Вопросы построения всех допустимых расписании при М ^ 1 рассмотрены в [124], а при М = 1 — в [400] (разрешены прерывания) и в [258] (запрещены прерывания). При запрещении нрерываний задача построения допустимого расписания является АР-трудной даже при М = 1 либо при А/ = 2 и di = 0 ( см. §§ 2 и 1, гл. 4). Вопросы построения допустимых расписаний в этих случаях рассмотрены в [1, 28, 83]. Алгоритмы сложности О (п2) построения допустимых расписаний обслуживания частично упорядоченных множеств требований при разрешении нрерываний предложены В. С. Гордоном и В. С. Ханаевым [49] (М = = 1, см. замечание 2, п. 2.5; нп. 3.6, 3.7) и Е. Лоулером [338] (М > 1, G — входящее дерево и с/, = 0 либо G — выходящее дерево, Di = D, i = 1, п). В. Г. Визингом [28] установлены необходимые и достаточные условия существования допустимого (относительно директивных сроков) расписания в предположении, что разрешены прерывания и допускается обслуживание каждого требования одновременно несколькими приборами; получены также достаточные условия обслуживания требований без нарушения директивных сроков при запрещении прерываний. При М = 1 и запрещении прерываний проверка необходимых и достаточных условий существования допустимого расписания требу ет_вьшолпепия не более 0(п2) операций в случаях, когда £, = £, i = 1, п [31], либо моменты поступления требований и директивные сроки согласованы так, как указано в замечании 1, п. 2.5 [49]. Для первого из указанных случаев в [276] предлагается алгоритм сложности О (п log п) построения допустимого расписания (оптимального и по быстродействию среди допустимых расписаний). Если приборы обладают различной производительностью {tiL = = aLti, i = 1, л, L = 1, А/), то алгоритмы построения допустимых расписаний (нри разрешении прерываний) предложены в следующих случаях: a) di = d, £>* = £), оценка временной сложности 0(л + 4-AflogAf) [286], б) di = d, Z),— произвольные, либо Di = D, di — произвольные, оценка О (п log п + Мп) [397], в) di и Di — произвольные, оценка 0(М2пА + л5) [353]. Случай М = 2 рассмотрен в [338] (оценка О (п2) при dt = 0и6>(л3) при dt ^0). Решение задачи в общем случае различных приборов может быть выполнено сведением к задаче линейного программирования [339]. Вопросы существования допустимых расписаний рассматривались также И. Н. Ревчук [130] (наличие у приборов «окон доступности») и А. А. Лапко [85] (неограниченные детерминированные потоки требований) . Алгоритм минимизации максимального штрафа при М = 1 и d{ = = 0, i = 1, л (п. 3.2), прдложен Э. М. Лившицем [98] для случая неупорядоченного множества требований и Е. Лоулером [332] для случая частично упорядоченного множества требований. Решение задач минимизации максимального временного смещения (Ьтах) и максимального запаздывания при = 0, i — 1, л и G = (А, 0) (н. 3.3) получено Дж. Джексоном [304], а в случае частично упорядоченного 207
множества требований Е. Лоулером и Дж. Муром [332, 342]. Б. Лаге- вег, Я. Ленстра и Л. Ринной Каи [326] получили решеыие задачи минимизации Z/mах при Di = D, di 0, i — 1, гс, и запрещении прерываний сведением к случаю, когда требования поступают одновременно, но имеют различимо директивные сроки (частный случай задачи, рассмотренной в п. 3.4). В. С. Гордой [42, 43] предложил алгоритм решения задачи минимизации максимального штрафа при М = 1, d,- ^ 0, i = 1, гс, и разрешении прерываний. Алгоритм сложности 0(п2) решения этой задачи для частично упорядоченного множества требований (см. п. 3.6) разработан В. С. Гордоном и В. С. Танаевым [49]; см. также [88, 194]. Частный случай задачи (минимизации Lmах) рассмотрен в работах [87, 295, 326]. Б. Лагевег, Я. Ленстра, А. Ринной Кан [326] получили решение задачи минимизации Lm ах при tt = 1, di ^ 0, i = 1, гс, и запрещении прерываний (частный случай задачи, рассмотренной в п. 3.8, а)), а в [412] получено решение этой задачи при одинаковых длительностях обслуживания. В [363] задача минимизации максимального штрафа рассматривается в предположении, что длительности обслуживания требований могут быть отрицательными, а в [327, 409] — в предположении, чтв штраф назначается как за отклонение от директивных сроков, так и за начало обслуживания ранее моментов di. Теорема 4.1 доказана В. С. Танаевым и В. С. Гордоном [157]. Доказательство ^аналогичного утверждения для частного случая задачи (а* = 1, i = 1, гс), которое приводят X. Кисэ, Т. Ибараки, X. Минэ [316], содержит ошибку (несправедлива лемма 2 [316]). Решепие задачи минимизации числа запаздывающих требований (пп. 4.3, а) и 4.3, в)) получили Дж. Мур [366] (при di = 0, i = 1, гс) и X. Кисэ, Т. Ибараки, X. Минэ [316] (при согласованных значениях di и Di); см. также [354]. Решение задачи, рассмотренной в п. 4.3,6), получено В. С. Гордоном и В. С. Танаевым [45] и Е. Лоулером [334]. Алгоритм решения задачи, рассмотренной в п. 4.4, в предположении, что осi = 1, i = 1, гс, предложил Дж. Сидней [407]. Сведение задачи минимизации суммарного штрафа при ti = 1, di = 0, i = 1, гс, к задаче о назначениях (см. п. 4.5) предложено Е. Лоулером [331]. В [424] этот способ сведения обобщается па случай, когда вместо системы с одним прибором рассматривается система с единственным ресурсом, наличие которого изменяется со временем. Задачи минимизации суммарной стоимости обслуживания требований одним прибором для случая, когда стоимость назначается за обслуживание требования в каждом единичном интервале, рассматривались в [140, 179, 180, 181]. Случай q>,-(*) = zi, t{ = 1 рассмотрен в [384]. Решение рассмотренной в п. 4.6 задачи в частном случае, когда ф(<) + bi = t — Di, i = 1, гс, предложено У. Хорном [295]. Случай ф(0 = t рассмотрен К. Бейкером [193]. При di = 0, i = 1, гс, и до- польнителыюм условии обслуживания требований без нарушения директивных сроков эта задача рассмотрена в [36, 417]. Задачи минимизации суммарного штрафа с учетом дополнительных ограничений, наложенных на использование прибора, рассматриваются в [8, 131]. Полиномиально разрешимые многокритериальные задачи обслуживания требований одним прибором, а также одпокритериальпые задачи с дополнительными ограничениями типа обслуживания требовании 208
без нарушения директивных сроков рассматриваются в работах [30, 32, 69, 71, 159, 256, 272, 2J4, 291, 431, 434]. В [84, 86, 161, 387, 428] рассмотрены стохастические варианты за^ дачи построения оптимальных расписаний обслуживания требований одним прибором. Задачи построения оптимальных расписаний с немонотонными целевыми функционалами рассмотрены в [250, 311, 358, 401]. Алгоритм построения оптимального по быстродействию расписания при 1^1 и ti == 1, i = 1, я, для случая, когда граф редукции отношения порядка является лесом (п. 5.2), предложен Т. Ху [168]. Более простые, чем в [168], доказательства оптимальности расписания, полученного по этому алгоритму, приведены в [11, 298]. Доказательство, приведенное в п. 5.3, принадлежит Р. Сети [404]. В [40, 240] предлагаются другие алгоритмы той же сложности; см также [438]. Рассмотренный в пн. 5.4—5.6 алгоритм сложности 0(п2) решения указанной задачи для случая, когда граф редукции отношения порядка произволен, но М = 2, предложен в работе Э. Кофмана и Р. Грэхема [234]. (Граф на рис. 5.4 приведен в [403], а на рис. 5.7 — в [404].) Ранее был известен алгоритм сложности 0(п3), предложенный в [263, 264]. Для решения рассматриваемой задачи известен также алгоритм сложности О (/г2) М. Гэри и Д. Джонсона [272] (см. п. 7.3). В [271] предложен полиномиальный алгоритм решения данной задачи при G = = (А, 0) и наличии ресурсных ограничений, а в [329] — при М ^ 2, di ^ 0, G = (А, 0) и дополнительном условии обслуживания тробо* вапий без нарушения директивных сроков (di — целые, i = 1, п). Решение задачи построения оптимального по быстродействию расписания при М ^ 1, Ul = ti, di = 0, i = 1, п, L = 1, Л/, и разрешении прерываний (§ 6) получено в работах Р. Мак-Нотона [356] (G = = (А, 0), оценка сложности алгоритма О (/г)), Р. Мюнца и 3. Кофмана [370, 369] (граф G древовидный или М = 2; оценка сложности алгоритма 0(п2)). Алгоритмы, отличные от [369,370], но имеющие такую же сложность, предложил Е. Лоулер [338], опираясь на результаты работ [216, 272] (при М = 2 приборы могут иметь различную производительность); см. также [389, 390]. В работе [284] предложен более эффективный алгоритм (оценка сложности О (п log М)) для решения задачи в случае, когда граф G является лесом из выходящих деревьев, а также алгоритм (оценка сложности О(пМ)) для случая d{ ^ 0. i = 1, п, G = (А, 0). Доказательство теоремы 6.1 приведено в работе Р. Мюнца и Э. Кофмана [370], там же введено понятие расписания обслуживания требований с разделением приборов. В [125] рассматривается задача минимизации числа прерываний при построении оптимального по быстродействию расписания (граф G — входящее дерево). Рассмотренный в § 7 алгоритм построения допустимого относительно заданных директивных сроков расписания обслуживания требовании одинаковой длительности предложен в [216] для случая, ког* да граф G является входящим деревом (п. 7.2), и в [272] для случая, когда М = 2 (п. 7.3). В обоих случаях предполагается, что d{ = 0 (i = = 1, п). В [274] предложен алгоритм сложности 0(п3) решения рассматриваемой задачи для случая М = 2, ti = 1, d{ ^ 0, di — целые, i = 1, п. Задача минимизации Lmax при М > 1 рассматривалась в работах [29, 216, 272, 274, 295, 324, 338, 339, 353, 396, 413, 414]. Решение ее при di = 0, ti = 1, £ = 1, /г, и запрещении прерываний (п. 8.2) получено П. Брукнером, М. Гэри и Д. Джонсоном [216] (G — входящее дерево; 14 в. С. Танаев и др. 209
оценка сложности алгоритма — О(гс log гс)) и М. Гэри, Д. Джонсоном [272] (G — произвольный бескоитурный граф и 1 = 2; оценка сложности алгоритма — О (гс2)). При М = 2, целых du = 1, i = 1, гс, и произвольном бесконтурном графе G задача решена в [274] (оценка сложности алгоритма — О (гс3 log гс)). В случае, когда ti = t0, di^O, i = 1, га, M > 1, алгоритм с оценкой 0(ra3log2rc) предложен в [414]. У. Хорн [295] предложил алгоритм сложности 0(п2) решения задачи при G = (А, 0), di = О, М > 1, ti > 0 (г = 1, га) и разрешении прерываний. Описанный в п. 8.3 алгоритм решения задачи при G = = (7V, 0), М > 1, целых dj и ti и разрешении прерываний, имеющий оцепку сложности О (я3 min {гс2, log гс + log max С}), предложен Ж. Ла- i бетулем, Е. Лоулером, Я. Ленстрой и Л. Ринпой Капом [324]. Этот алгоритм можно обобщить па случай М = 2, tiL = aLt*, i = 1, га, L = = 1, Л/, [324]. Для случая, когда М > 1, tiL = aLtu i = 1, и, L =• = 1, Л/, и разрешены прерывания, в [324, 396] предложен алгоритм сложности 0(Л/гс log и + М2п) при di = 0, i = 1, гс, а для произвольных di полиномиальный алгоритм предложен в работе Ш. Мартеля [353]. В работе Е. Лоулера [338] приведено обобщение результатов, полученных при U = 1, i = 1, гс, на случай произвольных и и разрешения прерываний (М > 1, di = О, G — входящее дерево, оценка сложности алгоритма — 0(п2); М = 2, tiL = aL£i, граф G — произвольный бескоитурный, оценки сложности алгоритмов О (гс2) и 0(пь) цри di = О и di ^ 0 соответственно). Сведение задачи минимизации Lmax (для случая неидептичных приборов и разрешения прерываний) к задаче линейного программирования (п. 9.7) приведено в [339]. В предположении, что разрешено одновременное обслуживание требования несколькими приборами, задача решена (для М идентичных приборов, di ^ 0, i = 1, гс, и при разрешении прерываний) в [29] (оценка сложности алгоритма — 0(пАМ)). Сведение задачи построения расписания, которому соответствует наименьшее значение функционала (9.1) при фг(£) = £, i = 1, гс, к задаче транспортного типа (п. 9.2) предложено в работах У. Хорна [294] и Дж. Бруно, Э. Кофмана, Р. Сети [220]. Алгоритм решения последней задачи, имеющей оценку сложности 0(п3), предложен в [219]; см. также [218]. Алгоритм построения оптимального (по критерию (9.1)) расписания при <р<(£) = t и tiL = aLtu i = 1, гс, L = 1, M (n. 9.3), предложен в монографии P. Конвея, В. Максвелла, Л. Миллера [78]; см. также [218, 296]. Сведение задачи минимизации функционала (9.1) при tiL = aL, i = 1, гс, L = 1, ЛГ, к задаче транспортного типа (п. 9.4) приведено в [290]. В частном случае, когда tn. = 1, i = 1, гс, L = 1, Л/, решение получено в работе Е. Лоулера [331]. Алгоритм минимизации взвешенного числа запаздывающих требований при Ul = 1» £ = 1, гс, L = 1, Л/, имеющий оценку сложности O(rclogrc) (п. 9.5), предложен в [334]. Там же рассмотрен случай, когда в каждом единичном интервале времени задано число имеющихся в наличии приборов. Задачи построения расписаний, которым соответствует наименьшее значение функционала (9.1), при tiL = aLtu i = 1, гс, L = 1, Л/, и разрешении прерываний рассматривались в [282, 337]. В [282] предложен алгоритм с оценкой сложности 0(п log гс + Мп) для случая, когда cpi(t) = сМ, i = 1, гс, и коэффициенты а* и длительности ti со- 210
гласоваиы (из ti < tj следует а* ^ otj). В [337] для минимизации числа запаздывающих требований в случае, когда значения aL меняются во времени, предложены алгоритмы сложности О (гг4) при 1 = 2 и 0(пзм~'3) при л/>з. Рассмотренное в п. 9.4 сведение задачи построения расписания, которому соответствует наименьшее значепие функционала (9.2), к задаче трапспортного типа (при Ul = al, i = 1, гг, L = 1, Л/, и запрещении прерываний) приведено в [290]. Е. Лоулер и Ж. Лабетуль [339] предложили сведение данной задачи при фг(0 = t, г = 1, гг, п разрешении прерываний к задаче линейного программирования (п. 9.6). Процедура построения оптимального расписания по решению соответствующей задачи линейного программирования основана на использовании результатов работы [285]. Алгоритмы построения оптимальных по быстродействию расписаний обслуживания требований приборами различной производительности (при разрешении прерываний) предложены в [297], [328], [338] (М = 2, частично упорядоченное множество требований ; оценка О (гг2)), [286] (d* = 0, i = 1, гг; оцепка О(п + МlogМ)) и [324, 396] (d{ ^ 0, г = 1, п; оценка 0(Mn Jog п + М2п)). Вопросы построения оптимальных по быстродействию или допустимых относительно директивных сроков, расписаний при ограниченных ресурсах рассмотрены в [105, 211, 271]. Алгоритмы построения оптимальных по быстродействию расписаний описаны в [271] (М = 2; ti = 1, i = l, гг; q видов ресурсов; оценка сложности алгоритма 0{дп2 + пЫ*)), [211] (М = 2, tiL = aL, i = 1, гг, L = 1, Л/, q = 1; оценка O(nlogn); а также tiL = aL, i = 1, гг, L = 1, M, q = 1 и для обслуживания каждого требования необходима единица ресурса; оценка О (гг3)). Эти алгоритмы можно использовать для построения допустимых относительно директивных сроков расписаний в случае, когда Di = D (i = 1, гг). Полиномиально разрешимые задачи построения оптимальных расписаний при ограничениях на группирование требований рассматриваются в [135, 136, 372]. Основу п. 9.8 составила работа В. С. Танаева [156]. Содержательная постановка задачи осуществлена М. Роткопфом [386]. Случай а) рассмотрен в работе [357], случай б) — в работе [388].
ГЛАВА 3 ПРИОРИТЕТО-ПОРОЖДАЮЩИЕ ФУНКЦИОНАЛЫ. УПОРЯДОЧЕННЫЕ МНОЖЕСТВА ТРЕБОВАНИЙ Ряд задач теории расписаний, как уже отмечалось, можно сформулировать в терминах оптимизации функционалов на множествах перестановок элементов данного конечного множества N. К таким задачам относятся, в частности, многие задачи построения оптимальных расписаний обслуживания конечного множества требований одним прибором при условии, что прибор обслуживает требования без прерываний и не более чем по одному в каждый момент времени. В этой главе рассматриваются задачи оптимизации функционалов на некоторых подмножествах SP множества & всех перестановок из элементов множества N. Выделяются специальные классы функционалов и описываются методы их оптимизации при различных предположениях о структуре множества SP. Основное внимание уделяется рассмотрению ситуаций, в которых N — частично упорядоченное множество, а 9* — множество всех перестановок, сохраняющих заданный на N порядок. В § 1 вводится понятие приоритето-порождающего функционала. Приводится ряд комбинаторных экстремальных задач, решение которых может быть сведено к оптимизации того или иного приоритето-порождающего функционала па подходящем множестве 9*. В § 2 вводятся специфические преобразования графа G редукции отношения строгого порядка, заданного па N. Эти преобразования лежат в основе методов оптимизации приоритето-порождающих функционалов на множестве перестановок, сохраняющих заданный на N порядок. В §§ 3 и 4 рассматриваются случаи, когда граф G является древовидным и последовательно-параллельным соответственно. Общий случай изучается в §§ 5 и 6. В§7 вводится понятие 1-приоритето-порождающего функционала и описываются методы оптимизации таких функционалов. 213
§ 1. Приоритето-порождающие функционалы Пусть 9 — множество всех перестановок яг = Ui, 12, • • U), г = 0,п из элементов множества N = {i, 2, ..., п). Здесь г — длина перестановки яг, {я0} = 0. Если 9^9, то через Q\.9\ обозначим множество всех тех перестановок я(<7) ^ 9*, я(<7) Ф Ф я0, для которых существуют такие перестановки я ^ 9 и я(1\ п{2)^9, что я = (я(1), я(</), я(2)). На множестве 9*' ^9 задан функционал Fin). Пусть 9^9' и существует функционал со(я), определенный на множестве Q19] и обладающий следующим свойством. Для любых перестановок я' = (я(1), я(а), я(Ь), я(2)) и я"=(я(1), я(Ь)> я(а), я(2)), принадлежащих 9\ из условия со(я(а)) > >со(я(г;)) следует F(n') < Fin"), а из условия со(я(а)) = = со(я(&)) — равенство Fin) = Fin"). В этом случае функционал Fin) называется приоритето-порождающим на множестве 9, а функционал о)(я) — его функционалом приоритета. Значение со(я) называется приоритетом перестановки я. Отметим, что функционал Fin), будучи приоритето-порождающим на некотором множестве, является приоритето- порождающим и на любом его подмножестве. Приоритето-порождающие функционалы играют особую роль в теории расписаний. Многие наиболее эффектные результаты получены при анализе ситуаций, в которых требуется оптимизировать некоторый приоритето-порождающий функционал на том или ином множестве 9 перестановок. Как правило, в качестве 9> выбирается подмножество множества 9п всех перестановок длины п из 9. Далее будем рассматривать задачи минимизации Fin). При максимизации Fin) достаточно выбрать в качестве функционала приоритета функционал —со(я) и воспользоваться алгоритмом минимизации Fin). Рассмотрим несколько задач, решение которых может быть сведено к отысканию минимума того или иного приоритето-порождающего функционала. Далее используется следующее обозначение. Пусть Xi — некоторое действительное число, сопоставленное элементу N\ тогда положим Л(я)= 2 тдеп^9. г€={я} 1.1. Множество N = {1,2, ..., п] требований, начиная с момента времени d = 0, обслуживается одним прибором. Для каждого требования i известны длительность £< > 0 его обслуживания и функция штрафа ф*(£), который необходимо «заплатить», если обслуживание этого требования завершит¬ 313
ся в момент времени t. Требования обслуживаются без прерываний и не более чем по одному одновременно. Зададим на множестве 3* перестановок из элементов множества N функционал F(n)= 2^(2 *»,). (i-i) где jt = Cii, iz, ..и ^(я0)=0. Задача состоит в па- хождении допустимой (в том или ином смысле) последовательности обслуживания требований (перестановки яп из при которой суммарный штраф F(nn) за обслуживание минимален. Введем в рассмотрение функционал где С — действительное число. Очевидно, F(n) = Ф(я, 0). Имеем F(n{i\ я(а\ я<ь\ я(2)) = ф(я(1), 0) + Ф(я(а), *(я(1))) + + Ф(я(Ь), *(я(1-\ я(а))) + Ф(я(2), *(я(1\ я(а), я<Ь))), Ля(1), я(Ь\ я(а), я(2)) = Ф(я(1\ 0) + Ф(я(Ь), *(я(1))) + + Ф(я(а), £(я(1), я(Ь))) + Ф(я(2\ £(я(1), я(Ь), я(а))). Так как £(я(1), я(а), я(Ь)) = £(я(1), я(Ь), я(а)), то для выполнения неравенства ^(я(1), я(а), я(Ь), я(2)) <^(я(1), я(Ь), я(а), я(2)) необходимо и достаточно, чтобы Ф(я(а), £(я(1))) + Ф(я(Ь), £(я(1), я(а)))^ ^ Ф(я(Ь), *(я(1))) + Ф(я(а), *(я(1\ я(Ь))). (1.3) Рассмотрим несколько специальных случаев функционала (1.1). а) Пусть <p,-(£) =а»£+($i, где а<, р* — действительные числа, г = 1, п. Тогда соотношение (1.3) запишется в виде а(я(Ь)Жя(а)) < а(я(а)Жя(Ь)). Поскольку £t>0, i = 1, п, можно положить о)(я(а)) = а(я(а))/£(я(а)) и со(я(Ь)) = а(я(Ь))/£(я(Ь)). Следовательно, при линейных штрафах функционал (1.1) является приоритето-порождающим на множестве 3 с функционалом приоритета ' (0 (я) = 2 «г/ 2 *i- (1.4) <е(л> не {я} б) Пусть фi(t) -= Oi exp (tf) + Pi, i = 1, n, 4 Ф 0. Тогда соотношение (1.3) запишется в виде (exp (^(л(а))) — 1)(/^,(л;<1’)) — 214
— (5(я(Ь))) < (exp (^(я(Ь))) — l)(F(jt(a)) — р(я(а))). Поскольку ti >0, i = 1, тг, можно положить со(я(а)) —5 (F(n{a)) — р(я(а)))/ /(ехр (^^(я(а))) — 1) и о)(я(Ь)) = (F(я(Ь)) — р(я(Ь)))/(ехр (у X X t(n(b))) — 1). Следовательно, при экспоненциальных штрафах (с одним и тем же коэффициентом при показателе степени) функционал (1.1) является приоритето-порождающим на множестве 2Р с функционалом приоритета © (я) = (F (я) — S PiWexp/y X — IV (1.5) \ >е(я> )\\ ^ ге<л> J ) в) Пусть (ptU) = cpU), i = 'l, п, и срШ— неубывающая функция при t ^ 0. Покажем, что в этом случае функционал (1.1) не является, вообще говоря, приоритето-порождающим ни на ни па £Рп. Действительно, пусть фШ = £2/3, N = = (1, 2, 3, 4, 5), ti = 10, t2 = 1, t3 = 2, ti = 7, t5 = 5. Положим я(а) = (3, 4), я(Ь) = (5). Если существует функционал приоритета со(я), то соотношение вида /Дя(1), я(а), я(Ь)» я(2)) < =^/г(я(1), я(Ь), я(а)1 я(2)) должно выполняться независимо от того, что выбрано в качестве перестановок я(1), я(2). Однако в рассматриваемой ситуации F(l, 3, 4, 5, 2) =* 602 < < F( 1, 5, 3, 4, 2) = 605, F(2, 3, 4, 5,1) = 320 > F(2, 5, 3,4,1) - - 317. 1.2. Множество iV={l, 2, ..., n} требований, начиная с момента времени d = 0, обслуживается одним прибором. Требования обслуживаются без прерываний и не более чем по одному одновременно. Длительность обслуживания требования i зависит от момента времени начала его обслуживания ti и равна ti =а$ + а» > 0, рг- > 0, i = 1, п. Необходимо указать последовательность пп е 9* ^ $Рп обслуживания требований, при которой общая длительность обслуживания минимальна. Зададим на множестве 9 перестановок из элементов множества N функционал г F (л) = 2 tih, л = (iu г2,..., £,.) (я0) = 0. (1.6) h= 1 Очевидно, что РЫп) — общая длительность обслуживания требований множества N при обслуживании их в последовательности яп. Покажем, что этот функционал является приоритето-порождающим на множестве 9* с функционалом приоритета со(л) = Ч'Ы/Ля), (1.7) 215
где т h—1 'F (л) = Д «tft (l + т?л), т?г = 0, x?ft = Дa{j (l + т?Д Обозначим через Ф(я, С) общую длительность обслуживания требований множества {я} в последовательности я при условии, что обслуживание первого требования начинается в момент времени С, т. е. = С. Нетрудно показать, что Ф(я,С)«=^(я)+СЧг(я). (1.8) Для того чтобы выполнялось соотношение F(я(1), я(а), я(Ь), я(2)) ^ F(n{i), п{Ь\ я(а), я(2)), необходимо и достаточно, чтобы Ф(я(а\ F(n(i))) + Ф(я(Ь), /Чя(1), я(а))) + Ф(я(2), /г(яп), я(в), я(Ь))ХФ(я(1,), Кл(1))) + Ф(я(а), F(я(1), я(Ь))) + Ф(я(2), У^(я(1), я(Ь), я(л))), или (используя соотношение (1.8)) чтобы (1 + W(n(2)))(Wln(a))F(n(b)) - lF(ji(l,))F(n(a))) ^ 0. Поскольку гР(я(2)) >0, (1.7) — искомый функционал приоритета. 1.3. Рассмотрим задачу минимизации линейной формы па множестве перестановок. Даны два вектора (ai,a2,...,a„) и ([ii, (32, ..., рп) с действительными компонентами. Требуется найти такую перестановку ятг3“(^, г2, ..., in) из 3>^3>пу которой соответствует наименьшее значение функционала f(n)= (1.9) Л-1 при г ==* п. Здесь я —= (гь г2, ..., iT), F(n0) — 0. Известно, что для некоторых множеств 3> £ 3*п существуют эффективные алгоритмы построения оптимальной перестановки (например, когда 3* = 3>п или 3 — множество четных (нечетных) перестановок). Покажем, что в общем случае функционал (1.9) не является приоритето-порождающим на ЗРп. Пусть я(1) — перестановка длины v, я(а) = (iv i2, ... ..., iq), я(Ь) = (/,, /2, ..., 7*s). Для того чтобы F(n(i), я(а), я(Ь), я(2)) < F(я(1), я(Ь), я(а), я(2)), необходимо и достаточно, чтобы s q 2 (“v I g+ft — «v+л) < 2 (av+s+h — av+ft) PtA. (1.10) Л=1 Л-1 Очевидно, выполнимость условия (1.10) зависит от длины v перестановки я(1), что противоречит определению приоритето-порождающего функционала. Рассмотрим два специальных случая, в которых функционал (1.9) оказывается приоритето-порождающим. 216
а) Пусть = ai + (i — 1)/^ i=l,n. В этом случае соотношение (1.10) запишется в виде qh 2 Pi ^ sh 2 Pi* Следовательно, функционал приоритета существует и имеет вид “ (я) = 7 2 Pi* (1-11) г = {я> де г — длина перестановки я. Таким образом, функционал (1.9) в этом случае является приоритето-порождающим па 9*. б) Пусть а» *= ctife1-1, i=\,n, h > 0. В этом случае функционал (1.9) также является приоритето-порождающим на 9>. Действительно, соотношение (1.10) запишется в виде s q (hq — l) 2 Рjj^"1 ^ ai (й* — l) 2 РьЛ*”1 и, следоватоль- h=1 fc=l но, функционал приоритета существует и имеет вид г Ю (я) = ~Р— 2 К^г я= («1, г2г • • •. b)‘ (1.12) h ~ 1 fc=l 1.4. Рассматриваемый ниже функционал играет важную роль при решении ряда задач оптимального упорядочения. Некоторые из этих задач приведены в пи. 1.5, 1.6. Каждому элементу i множества N сопоставлены два действительных числа а* и [3£. На множестве 9* определен функционал F (я) = max ( 2 «и + Piu)» я = (iu tz, ..., г,), F (л0) = 0. \fe=-1 / (1.13) Покажем, что функционал (1.13) является приоритетопорождающим на 9*. Для любых перестановок л', я", принадлежащих 9* и таких, что (я'} П (я") = 0, имеем Fin', я") = шах {/Дя'), а(я') + Fin")}. (1.14) Найдем условия, при которых выполняется неравенство /Дл(1), я(а), я(Ь), я(2)) < 7Дя(1), я(Ь), я(а), я(2)), (1.15) или, учитывая (1.14),—эквивалентное ему неравенство тах{/Дл(1)), а(л(1)) + /Дл(а), я(Ь), я(2))}^ < max {/Дя(1)), а(я(1)) + Fin{b), я(а), я(2))}. 217
Для выполнения этого неравенства, очевидно, достаточно, чтобы F(nia), я(Ь), я(2)) ^ F(n{b\ я(а), я(2)). Аналогичным образом можно показать, что для выполнения последнего неравенства достаточно, чтобы F(n{a\ я(Ь)) ^ F(n{b\ я(а)) или, в силу (1.14), чтобы шах Шя(в)), а(я(а))+ F(n(b))) ^ max {^(*я(Ь)), а(я(Ь)) + F(ji(a))}. Вычитая из обеих частей этого неравенства величину F(n{a)) + F(n(b)), получаем min{F(n(a)), F(я(Ь))-а(я(Ь)))< ^ min Шя(Ь)), Ля(а)) — а(я(а))). (1.16) Для отыскания функционала приоритета докажем предварительно одно вспомогательное утверждение. Пусть я, у, w, z, W — действительные числа, W> тах{\х\, lyl, |ш|, Ы). Для выполнения неравенства min (я, у} ^ min {w, zi (1.17) достаточно, чтобы sign (z — x)(W — min {x, z}) ^ ^ sign (у — w)(W — min {y, w}). (1.18) Действительно, возможны три случая: (1) z — x> 0, у — — н;>0; (2) z — x> 0, у — w^O; (3) z — x< 0, у —ш<0. В случае (1) неравенство (1.18) превращается в неравенство х ^ W. Таким образом, x^w и х < z, следовательно, (1.17) выполняется при любых значениях у. В случае (2) имеем x^z и y^w. Пусть х^у, тогда x^min {w,z} и (1.17) выполняется. Пусть х>у, тогда у z) и не¬ равенство (1.17) также выполняется. В случае (3) из (1.18) получаем у ^ z, следовательно, y^miniw, z} и неравенство (1.17) выполняется. Таким образом, для выполнения неравенства (1.16), а следовательно, и неравенства (1.15) достаточно (но не необходимо), чтобы sign (—а(я(а))) W — min {^(я(а)), F(я(а)) — а(я(а)))) > > sign (—аЫ(Ъ)))(\¥ — min {/?т(яСЬ)), F(n{b)) — а(я(Ь)))), где ТГ>2(|а{| + 1Р4|). i=l Следовательно, функционал^ (1.13) является приоритетопорождающим на множестве а его функционал приоритета имеет вид G)^) = sign/— 2 аЛ (W — F (я) + max (О, 2 аД\. (1.19) V *€{я> Д \ jj 218
1.5. В систему, обеспечивающую запись, хранение и выдачу информации, в момент времени d = О поступает множество запросов. Выполнение запроса i е N состоит либо в записи в хранилище U единиц информации (если £<>0), либо в извлечении из хранилища t{ единиц информации (если £,<()). Требуется выбрать такую последовательность пп из некоторого множества 9* s 3>п допустимых последовательностей, при которой максимальный объем хранилища, занятый информацией, был бы наименьшим. На множестве & зададим функционал и F (я) = max 2 *и> (1-20) Ки^т /1=1 где п = (j'i, г2, ..., zr), F(n0) = 0. При г = п величина F(n) + С равна максимальному объему информации, находящейся одновременно в хранилище при выполнении запросов в последовательности я. Здесь С — объем информации, находящейся в хранилище в момент времени d = 0. Поскольку функционал (1.20) представляет собой частный случай функционала (1.13) при сXi^U и ^ = 0, он является приоритето-порождающим на с функционалом ' приоритета со (я) = sign (— 2 tr — F (It) + max (O, 2 ti}\ \ »s{n) J\ ( lew) j) w>2\u\. i=l (1.21) 1.8. Множество iV = {1, 2, ..., n} требований поступает на обслуживание в систему, состоящую из двух приборов. Требование i е N поступает в систему в момент времени di ^ 0, обслуживается первым прибором в течение tu > 0 единиц времени, вторым прибором — в течение tzi > 0 единиц времени. Каждый прибор обслуживает требования в одной и той же последовательности, без прерываний и не более чем по одному одновременно. Обслуживание требования i вторым прибором может быть начато не раньше чем в момент времени t\ + 8*. Здесь t\ — момент начала обслуживания требования i первым прибором, б, > 0. Если 6» ^ tii9 то требование i не может обслуживаться одновременно двумя приборами. При 6,- < tu допускается одновременное обслуживание требования i первым и вторым приборами. Если 6* > > tu, то после завершения обслуживания требования i первым прибором должно пройти не менее 6,- — tu единиц вре¬ 219
мени, прежде чем можно будет начинать его обслуживание вторым прибором. Предполагается, что величины d{ удовлетворяют условиям di ^ di + tlh £ = 1, л. , Z = 1, /г, £¥=Z, (1.22) а величины б, — условиям 6, ^ tu - t2U £ = 1, п. (1.23) Из (1.23) следует, что общая длительность обслуживания всех требований определяется моментом времени заверше- иия обслуживания требований вторым прибором. Пусть N'^N, I TV' I = г. Обозначим через Fin) наименьшую общую длительность обслуживания требований множества N' при условии, что они обслуживаются в последовательности л = Ui, i2j ..., ir). Задача состоит в отыскании перестановки пп из некоторого данного множества 9* £ 9*пл доставляющей минимум функционалу Finn). Если требования поступают в систему одновременно idi = 0, £ = 1, п), то, воспользовавшись индукцией по г, нетрудно проверить, что г ( и F (п) — 2 ^2гЛ + max | 2 (hih — hik) + + t2iu — tliu ft—1 1 <u<r U—1 (1.24) Полагая a< — tu - t2i, ^ = 6i + t2i - tUl убеждаемся, что г значение Fin) лишь на константу 2 ^2гь отличается от ft=i значения функционала (1.13). Следовательно, при условии d{ = о, £ = 1, /г, функционал Fin) является приоритето-порождающим на 53, а его функционал приоритета имеет вид со (л) = sign( 2 Oai — ?ii)V^—^ (^) + max( 2 Чи 2 *2iVl, \г<={л> Д ге{я} )) где Ж >2 {tu + hi + bi). (1.25) i=*l Если требования поступают в систему неодновременно, то, в силу условия (1.22), Fin) = + А, где А — правая часть соотношения (1.24). В этом случае функционал Fin) не является, вообще говоря, приоритето-порождающим на 9>. Действительно, пусть = {1, 2, 3, 4), £и = 6, £i2 = 4, £13 = 1, 114 = 6, 121 = 4, t22 = £23 = ^ £24 = 5, 61 = 6, 62 ж 4, 63 — 1, 64 = 220
= 6, dt = 2, d2 = d3 = d,k = 1, тогда /^(1, 2, 3) = 16 < /^(2, 1, 3) = 17, но F( 1, 2, 4) = 23 >F{2, 1, 4) =22. Разобьем множество 2P на n попарно непересекающихся непустых подмножеств ^Чу), у = 1, п. Здесь #Чу) — множество тех и только тех перестановок я = (ii, £г) из 53, в ко¬ торых г, = у. Поскольку для всех перестановок л ^ Й^Чу) имеем di = dj, функционал /Чя) является приоритето-порождающим на множестве ^(у). Таким образом, при неодновременном поступлении требований функционал F(я) является приоритетно-порождающим па каждом подмножестве 9*\j) множества не будучи приоритето-порождающим па 9*. 1.7. Пусть G = (N, U) — ориентированный бесконтурный граф. Каждой вершине i ^ N сопоставлено число U > О, а каждой дуге (г,/)е£/ — число Юц. Вершины графа размещаются на интервале 10, 2 числовой прямой следую- [ i&N J щим образом. Каждая вершина i занимает интервал, длина которого равна причем интервалы, соответствующие различным вершинам, не должны пересекаться. Под длиной дуги (г, у) ^ U при данном размещении будем понимать разность координат (Xj — Xi) правых концов интервалов, соответствующих вершинам у и i. Длина дуги может оказаться отрицательной величиной, если вершина у размещена левее вершины i. Требуется так разместить вершины графа G, чтобы длины всех дуг были положительными и суммарная «взвешенная» длина 2 Мц faj — #0 его дуг (iJ)S=£7 была минимальной. Очевидно, размещение вершин графа G однозначно определяется перестановкой яп = (&i, £2, ..iJ элементов множества N. Покажем, что функционал F (я„) = 2 (xj — (1.26) является приоритетно-порождающим па множестве £Рп- Положим Wij = 0 для всех (£, у) Ф- U. Тогда F (я?<) = X 2 2 WijXj— 2 WjiXj= 2( 2 (Wij—Wji))zj- iyj^N i,j=N i,j€= N J Таким образом, n r W = 1 (Jv - “V)J (1.27) 221
h Поскольку Xih = 2 полагаЯ = 2 (wli ^ii)i П0- p=i ' *<=iv лучаем, что функционал (1.26) совпадает с функционалом (1.1) при фгШ=аit, i = 1, п. Следовательно, функционал (1.26) является приоритето-порождающим на £Рп и его функционал приоритета имеет вид м(я)= 2 2 И» — и>и)/2 *i. (li28) ге{л> JGiV 1.8. В данном разделе приводится пример функционала, который не является приоритето-порождающим ни на множестве ни на множестве ^п, однако оказывается приоритето-порождающим на некотором специальном подмножестве &п множества ^п. Множество iV = {1, 2, ..., п} требований, начиная с момента времени d = 0, обслуживается одним прибором. Каждой упорядоченной паре U, j) требований сопоставлено действительное число Wij. Длительность обслуживания требования i равна U. Требования обслуживаются без прерываний и в каждый момент времени прибор обслуживает не более одного из них. Зададим на множестве 9>п функционал F(n)= 2 (!-29) 1 <1<к<п ^ _ V ГДе Я = (^1, ^21 • • •! tп) п% tip = tis* s=1 ^ Минимизация функционала (1.29) на множестве 9*п или некотором его подмножестве отражает стремление к определенному группированию требований при их обслуживании, к сокращению (увеличению) временных промежутков между обслуживанием отдельных требований. Обычно в качестве 9>п выбирается множество перестановок из допустимых относительно заданного априори на N строгого порядка. Покажем, что в общем случае функционал (1.29) не является приоритето-порождающим на ^п. Пусть iV=>{ 1, 2, 3, 4}; U = 1, i = l,4, w;i2 = 10, п;32 = 3, U734 = 1, а все остальные равны нулю. Положим л(а) = (1), я(Ь) = (3), тогда F(2, л(а), я(Ь), 4) = 1 < F(2, я(Ь), я(а), 4) = 2, F(я(и), я(Ь), 2,4) = = 25>/т(я(Ь), я(а), 2, 4) = 19. Следовательно, в рассматриваемом случае функционала приоритета со (я) не существует. 222
Потребуем, чтобы числа wi} удовлетворяли следующему условию: существует ориентированный бесконтурный граф G = W, U) такой, что из ЮцФ 0 следует (&, /) ^ U. Обозначим в этом случае функционал (1.29) через FGin). Нетрудно заметить, что в приведенном выше примере числа и)ц такому условию удовлетворяют. Следовательпо, функциопал FG(n) также ие является приоритето-порождающим па ^п. Обозначим через ^„(G) множество всех перестановок из допустимых отпосительно строгого порядка, определяемого на множестве N графом G. Фупкционалы FGin) и (1.26) совпадают па ^n(G). Поскольку функционал (1.26) является приоритето-порождающим на он является приоритетопорождающим и па £P4iG). Отсюда вытекает, что функционал FG{n) также является приоритето-порождающим на множестве ^n(G). 1.9. В заключение этого параграфа отметим, что при минимизации приоритето-порождающих функционалов зачастую вычисление значений о (я) проводится в условиях, когда вычислены значения со(я(1)), со(я(2)) и перестановка я имеет вид я = (я(1), я(2)). В этом случае оказывается возможным существенно уменьшить объем вычислений, используя информацию, полученпую при вычислении значений со(я(1)) и со(я(2)). Проиллюстрируем это положение рассмотрением нескольких из описанных выше примеров. Пусть я(|\ я<2) {я(1)> П (я(2)) = 0 и я =(я(1), я(2)). а) Для фупкциопала приоритета (1.4) имеем со(я(1), я(2)) = (а(я(1)) + а(я(2)))/(*(я(1)) + *(я(2))). (1.30) б) При экспоненциальных функциях штрафа в условиях п. 1.1,6) значение F(n{i), я(2)) = F(n(i)) + exp (yt(n(i))) X X (F(я(2)) — р(я(2))) + р(я(2)). Следовательно, со(я(1),,я(2))- = F (я(1)) — р (я(1)) + exp (yt (я(1))) (F (я(2)) — р (я(2))) (, -.ч ехр (у (t (л^) + t (л^))) — 1 в) Для функционала (1.6) из соотношения (1.8) имеем ^(я(1), я(2)) = 7^(я(1)) + /7'(я(1))Чг(я(2)) + F(n(Z)). Аналогично yjr(n<'\ я(2)) = \Р(я(1)) + Т(я(1))Т(я(2)) + ^(я(2)). Следова¬ тельно, (2)\ _ У (я*1)) + V (л*1*) V (я<2>) + У (я<2>) V ’ F (я(1)) + F (я(1)) Y (я(2))'+ F (л(2)) (1.32) 223
г) Для функционала (1.19), используя соотношение (1.14), получаем ш(я(1), я(2)) = sign {—а(я(1)) — а(я(2)))ОУ — max {F(jt(1)), а(я(1)) + /уЛ(я(2))} + max {0, а(я(1)) + а(я(2))}), (1.33) где 2 (К| + 1М). it=N Аналогичные выражения для о)(я(1), я(2)) могут быть получены и в остальных случаях. В любом случае вычисление значения со(я(1), я(2)) с использованием информации, полученной при вычислении значений со(я(1)) и <т>(я(2)), сопряжено с выполнением определенного числа операций, не зависящего от длины перестановок я(1) и я(2). Так, для функционала приоритета, определяемого соотношением (1.7), при вычислении значений о)(я(1)) и ю(я(2)) находятся величины Чг(я(1)), /Дя(1)), Чг(я(2)) и F(я(2)). Использование соотношения (1.31) позволяет получить значение со(я(1), я(2)) в результате выполнения семи арифметических операций над указанными величинами. § 2. Условия элиминации 2.1. Пусть на множестве А = {1, 2, ..., п} задано отношение строгого порядка -►и G = Ш, U) — граф редукции этого отношения. Перестановка я = i2, ..., назы¬ вается допустимой (относительно или, что то же самое, относительно G), если из условия следует к < I. Мно¬ жество всех допустимых перестановок обозначим через а множество всех допустимых перестановок длины п — через ^n(G). В дальнейшем основное внимание уделяется разработке методов оптимизации приоритето-порождающих функционалов на множестве допустимых перестановок при различных предположениях относительно структуры строгого порядка (вида графа G). Введем следующие операции над ориентированными бес- коптурными графами Г = (X, У), не содержащими транзитивных дуг. Под операцией отождествления вершин х и у графа Г = (X, У) таких, что (х, у) ^ У, понимается замена их одной вершиной с удалением дуги (х, у). При этом все входящие (исходящие) в вершины хну дуги заменяются дугами, входящими (соответственно исходящими) в новую вершину. Из полученного графа удаляются все транзитивные дуги. 224
Пусть в графе Г = (X, Y) не существует пути ни из х в г/, ни из у в х. Под операцией добавления дуги (х, у) в Г понимается переход от грлфа Г к графу, получающемуся из Г' = (X, У U (х, у)) в результате удаления всех его транзитивных дуг. В дальнейшем введенные операции будут последовательно й многократно применяться к графу G = (/V, U). При отождествлении двух его вершин i, 7 ^ N, связанных дугой (7, i) е U, новой вершине будем сопоставлять перестановку (/, Пусть G' = (ЛГ, Е/') — граф, полученный из G в результате многократного применения операций отождествления вершин и добавления дуг. Если вершине г этого графа сопоставлена перестановка я' , а вершине j — перестановка я(;,) и V) е U\ то при отождествлении вершин /"и £' новой вершине будем сопоставлять перестановку я — = (n(iVn). Перестановку я = (ii, i2, ..сопоставляемую вершине графа при выполнении операции отождествления вершин, будем называть составным элементом, обозначать через я = [it, i2, ..iA и не различать далее вершины графа и соответствующие им элементы. Нетрудно видеть, что граф G' = (Nf, U') задает строгий порядок па множестве N' составных элементов. Для обозначения этого порядка будем использовать символ —>, а в слу- .. . G' . чае, когда не имеет места ни одно из соотношении ь —> 7 и / i для i, / е N', будем писать i ~ /. Перестановка из элементов множества N', допустимая относительно G', является одновременно и перестановкой из элементов множества N, допустимой относительно G. Поскольку составной элемент является перестановкой из множества можно говорить о приоритетах составных элементов. Далее вместо co(Ui, i2, ..., гг1) будем писать edit, i<i, ..., ir). 2.2. Пример. Рассмотрим граф G, представленный на рис. 2.1, а. Применяя операцию отождествления вершин 3 и 4Щ получаем граф Gx (рис. 2.1, б). Пунктиром на рисунке показаны удаляемые транзитивные дуги. Граф G2i представленный на рис. 2.1, в, получен из графа Gx добавлением в него дуги (5, 7). На рис. 2.1, г и 2.1,6 представлены графы G3 и G4, полученные из G2 в результате выполнения операций отождествления вершин 5 и 7 (граф G3), а затем вершин [3, 4] и [5, 7] (граф б?4). Элементы [3, 4], [5, 7] и 15 в. С. Танаев и др, 225
[3, 4, 5, 7] являются составными. Перестановки (1, 2, [3, 41, [5, 7], 6) = (1, 2, 3, 4, 5, 7, 6), (1, [3, 4], 2, [5, 7], 6) = - (1, 3, 4, 2, 5, 7, 6), (1, [3, 4], [5, 7], 2, 6) = (1, 3, 4, 5, 7, 2, 6) образуют множество всех допустимых относительно графа G'3 перестановок длины п = 7, а множество ^(GQ состоит только из двух перестановок (1, 2, [3, 4, 5, 7], 6) = = (1, 2, 3, 4, 5, 7, 6) и (1, [3, 4, 5, 7], 2, 6) = (1, 3, 4, 5, 7, 2, 6). 2.3. При решении задач оптимизации приоритето-порождающих функционалов на множестве tPniG) операции отождествления вершин графа G и добавления дуг в G позволяют последовательно сужать область поиска экстремума. Рассмотрим условия, при которых применение указанных операций обеспечивает выделение множества ^&n(G), содержащего хотя бы одну оптимальную перестановку. Предварительно докажем справедливость следующего, широко используемого в дальнейшем утверждения. Лемма 2.1. Пусть функционал Fin) является приоритето-порождающим на множестве 9*, перестановки я = (л(1), я(а), я(2), я(Ь), я(3)), я' = (д(1), я(2), я(а), я(Ь), я(3)) и я" = = (я(1), я(а), я(Ь), я(2), я(3)) принадлежат 9*. Если со(я(а)) ^ < со(я(Ь)), то Fin) <Fin) или Fin") ^Fin). Доказательство. Возможны два варианта: со(я(2))> >о)(я(а)) и со(я(2)) < со(*я(а)). Из определения приоритетопорождающего функционала следует, что в первом случае F(я') ^Fin), а во втором — Fin") ^ Fin). Напомним, что, как и ранее, через Atiii), BGii), EGii) обозначаются множества тех и только тех элементов j е N, для которых i Д /, / Д ir j Д t соответственно. Аналогично через A°G(i)f В%(1) обозначаются множества тех и только . Лг . G . . G . тех элементов j^N, для которых 7 * соответствен¬ но. Для s,t^N обозначим BGis, t) = BGis)\(BG(t) U t), AG(s, t) = Лси)\*С4сЫ U s). i) Рис. 2.1. 226
Некоторые из приведенных обозначений схематично проиллюстрированы на рис. 2.2 (индекс G опущен): а) соответ* ствует ситуации, когда B°is) = £, б) — ситуации, когда s ~ I, ив) — ситуации, когда A°(t) — s. В дальнейшем будем рассматривать функционалы Fin\ являющиеся приоритето-порождающими на множестве &*iG). Теорема 2.1. Пусть функционал Fin) является приоритето-порождающим на S^iG), B°G(s) = t и для всех i^AGis, t)\)t. (2.1) Тогда для любой перестановки я = (..., t, я, s, ...) ^ ^&*iG) существует перестановка я° = (..., t, s, . ..)e<?(G) такая, что {я} = {я0} и Fin0) ^ Fin). Доказательство. Поскольку я — допустимая перестановка, в {я} могут входить элементы только двух типов: 1) i^Aois, t) и 2) l^Eait). Пусть г —ближайший к s в я элемент первого типа из (я), и между г и s в я расположена перестановка из элементов второго типа, которую обозначим через я(,). Для всех элементов /^{я(/)} выполняется соотношение l~i. Действительно, I if невозможно в силу допустимости перестановки я, а из г 1 в силу транзитивности отношения следовало бы t -► /, что невозможно, поскольку l^EGit). Из (2.1) следует, что сois) > toii'). Поэтому, в силу леммы 2.1, от перестановки я можно перейти, поменяв местами я(/) и s либо i и я(0, к допустимой перестановке я(1), в которой элемент г расположен непосредственно перед элементом s и Fin(i)) < Fin). Поскольку s ~ i' и юЫ ^ сaU'), 15* 227
от я(1) можно перейти, поменяв местами I' и я, к такой допустимой перестановке я(2), что F(n{2)) ^F(n{i)). Применив описанный прием достаточное число раз, от я(2) можно перейти к допустимой перестановке я(3) такой, что F(n{3)) ^F(я(2)) и в я(3) между t и s нет других элементов, кроме, возможно, элементов второго типа. Перестановку из элементов, расположенных в я(3) между t и s, вновь обозначим через я(0. Из (2.1) следует, что юЫ o(t). В силу леммы 2.1, от я(3) можно перейти, поменяв местами t и я(/) либо я(/) и 5, к допустимой перестановке я0 такой, что F(n°)^F(я(3)). В перестановке я° элемент t расположен непосредственно перед элементом s. Теорема доказана. Теорема 2.2. Пусть функционал F(n) является приоритето-порождающим на & (G)1s~t и со (у) ^ соШ для всех j еBG(s, t) U s и i^AG(s, t) U t. (2.2) Тогда для любой перестановки я = (..., t, я, s, ...)^ существует перестановка я° — (..., 5, £, ...)^^(G) такая, что (я) = {я0} и Т'Чя0) ^Т'Чя). Доказательство. Поскольку я — допустимая перестановка, в (я) могут^ входить элементы только трех типов: DjeficM; 2) «еЛ0(М); 3) /е EG(s) П Ee(t). Пусть У — ближайший к t в я элемент первого типа из (я), a i — элемент второго типа, расположенный в я между t и ]' и ближайший из всех таких элементов к Если между i и У в я расположены какие-либо элементы, то ими могут быть только элементы третьего типа. Перестановку элементов, расположенных между ь и обозначим через я(0. Поскольку, в силу (2.2), сoU') ^ (о(у') и для всех е {я(,)} справедливо l~i' и I ~ , от я можно перейти (в силу леммы 2.1) к допустимой перестановке я(1), в которой элемент г расположен непосредственно перед элементом У и F(n{i)) ^F(я). Из определения AG(s, t) и BG(s, t) следует, что если / — элемент первого типа, a i — элемент второго типа, то ] -+■ i либо j ~ i. Поскольку я — допустимая перестановка, i ~ j'. Следовательно, от я(1) можно перейти к допустимой перестановке я(2), в которой элемент /' расположен перед элементом г и 7'Чя(2)) ^ /г(я(1)). Повторив описанную процедуру достаточное число раз, придем к такой допустимой перестановке я(3), что 7уЧя(3)) ^ 7'Чя(2)) и между элементами t и У пег элементов второго типа. Если между ними есть элементы третьего типа, вновь обозначим перестановку этих элементов через я(/). Поскольку coU) ^ со(у'), можно (воспользовавшись леммой 2.1) перейти к допустимой пере¬ 223
становке, в которой элемент t расположен непосредственно перед Ввиду того, что t ~ можно затем перейти к допустимой перестановке я(4), в которой у' расположен левее t и F(n{i)) <:F(n{3)). Аналогичным образом можно удалить из перестановки, расположенной между t и s в я(4), все элементы первого типа и получить допустимую перестановку я(5), в которой между t и s могут быть расположены элементы только второго и третьего типов и Р(л{Ь)) ^F(n(4)). Пусть я(5) = (..., t, я\ s, ...) п i" — ближайший к s элемент второго типа из {я'}. Поскольку cdU")^co(s) и i" ~ s, можно, повторив рассуждения из доказательства теоремы 2.1, перейти от я(5) к допустимой перестановке я(6), в которой элемент s расположен левее элемента i" и F(k(6)) ^ ^Ля(5)). Аналогичным образом можно удалить из перестановки, расположенной между элементами s и t в я(Ь), все элементы второго типа и, воспользовавшись затем леммой 2.1, получить перестановку я(7), в которой элемент t расположен непосредственно перед элементом s и F(я(7)) ^F(я(6)). Теперь очевидно, что от я(7) можно перейти к искомой перестановке я0. Теорема доказана. 2.4. Теоремы 2.1 и 2.2 сформулированы относительно исходного множества N с заданным на нем отношением или, что то же, относительно исходного графа G. Нетрудно видеть, что они остаются в силе, если в качестве множества N, графа G и отношения выбрать множество N\ граф G' и отношение —> соответственно. В этом случае элементы s и t будут, вообще говоря, составными, т. е. некоторыми перестановками из ^(G). При доказательстве теорем 2.1 и 2.2 предполагалось, что функционал ^(я) является приоритето-порождающим па £P(G). Во многих задачах теории расписаний требуется отыскать допустимую перестановку длины тг, доставляющую экстремум функционалу F(я). В таких ситуациях достаточно потребовать, чтобы функционал F(n) был приоритето-порождающим на £Pn(G) и в формулировках теорем перестановки я, я° принадлежали ^„(G). Теоремы 2.1 и 2.2 имеют простую теоретико-графовую интерпретацию. Выполнение условий этих теорем гарантирует, что применение операции отождествления вершин t п s (теорема 2.1) или операции добавления дуги (s, t) в граф G (теорема 2.2) позволяет получить новый граф G0, обладающий следующими свойствами: &*n(G°) ^ £Pn(G) и для любой перестановки я ^ 3*n{G) существует перестановка n°^^n(G°) такая, что F(n°) 229
Операцию отождествления вершин f и s, удовлетворяющих условиям теоремы 2.1, будем называть преобразовали- ем I (обозначение I-U, s]). Операцию добавления дуги is, t) в условиях теоремы 2.2 будем называть преобразованием II (обозначение II-(s, t)). Если в графе G существует пара вершин s и t, удовлетворяющая условиям теоремы 2.1 либо 2.2, то будем говорить, что к графу G можно применить преобразование I либо II соответственно или что данное преобразование (I-U, s] либо II-(s, t)) является допустимым для графа G. Следствие 2.1. Если функционал Fin) является приоритето-порождающим на $?niG) и граф G' получен из графа G в результате выполнения некоторой последовательности преобразований I, II, то min {/'ЧяЛя е ^n(G')} = min {/'Чя) 1я ^ tPniG)}. Справедливость этого утверждения непосредственно следует из теорем 2.1 и 2.2. Если граф G' получен из графа G в результате выполнения некоторой последовательности L преобразований I, II, то будем говорить, что L переводит граф) G в граф G'. Если последовательность Lj переводит граф G в граф G', а последовательность Ь2 — граф G' в граф G", то последовательность L = iLuL2) переводит граф G в граф G" по схеме G->G'->G". Наконец, если в каждом из преобразований последовательности L участвуют только такие s и t, для которых Ы<=ЛЧ, Ш<=ЛЧ, Ni^N, то будем говорить, что последовательность L действует на множестве Nk. § 3. Древовидный порядок В этом параграфе рассматривается задача отыскания в множестве £PniG) перестановки я*, доставляющей минимум приоритето-порождающему на t?niG) функционалу Fin) при условии, что G — древовидный граф. Перестановку пп будем называть оптимальной. 3.1. Пусть граф G' = iN', U') получен из графа G = = iU, N) в результате выполнения некоторой последовательности преобразований I и II (см. § 2). Если граф G' — цепь, то он, очевидно, определяет единственную допустимую перестановку я„, которая в силу следствия 2.1 является оптимальной. При преобразованиях исходного графа G в цепь G' в дальнейшем будет широко использоваться понятие со-цепи. 230
Построим цепь С = Ut, i2, ..., im), вершинами которой являются все или часть элементов множества N'. Цепь С называется ы-цепью, если перестановка (it, i2, . . ., im) является допустимой относительно G', со (4) > со(гЛ+1), /с = = 1, /71—1, и из равенства co(i,t) = o)(ift+1) следует i ~4+1* Цепь, состоящая из одной вершины, является со-цепыо. Лемма 3.1. Если все компоненты связности графа G являются ы-цепями, го существует последовательность преобразований II, переводящая G в одну ы-цепъ. Доказательство. Предполагая, что утверждение верно для всех графов G, имеющих не более I (1>1) компонент связности, докажем его справедливость для графа, имеющего I + 1 компоненту. Пусть Ci = (4, i2, . . imi), C2 = (/i, /2, .. jmj — компоненты связности графа G и (о(4) > со(/i). Поскольку Ci, С2 являются co-цепями, о)(4) ^ > co(/fe), к = 2, пг2. Следовательно, к G можно применить преобразование 11-(4, /’i). Отметим, что в случае со(4) = = со(/О в G можно добавить любую из дуг (4, Д) и (/i, 4). Далее сравниваем значения со (4) и со(/i) (здесь подразумевается, что на предыдущем шаге добавлена дуга (4, Д)). Если со (4) ^ о (у,), то к графу, полученному из G после выполнения предыдущего преобразования, можно применить преобразование 11-(4, Д), если же со(г2) ^ co(/i), то можно применить преобразование II-(/i, i2). В результате выполнения не более + m2 — 1 таких шагов пара (в-цепей Сi и С2 будет преобразована в одну цепь С'=(iui2i . . . По построению перестановка (i[, i'2, .. ., i'm1+Tn2 ) является допустимой относительно G, вершины в С' упорядочены по невозрастанию приоритетов соответствующих элементов и со(i'h) = со(4+1) лишь в том случае, когда . f ik и ih+1 принадлежат различным исходным цепям. Таким образом, С' является о)-цепыо и граф, полученный из G в результате проведенных преобразований, имеет I компонент связности. Лемма доказана. В условиях леммы 3.1 для построения искомой со-цепи, э|с а тем самым и оптимальной перестановки я„, достаточно упорядочить элементы множества N (вершины графа G) по невозрастанию их приоритетов. Лемма 3.2. Если все компоненты связности графа G — цепи, то существует последовательность преобразований I, переводящая каждую цепь в ю-цепь. Доказательство. Пусть С = (4, 4, .. ., im) — компонента связности графа G и ш(4) ^ со(4+1). Тогда к гра¬ 231
фу G можно применить преобразование 1-1Л, ih+ J. Цепь С в результате преобразуется в цепь С' — (hi hi • * * i lm—l)* Если в С' найдутся вершины г\ и i'l+1 такие, что со(^)^ o(ii+1)j вновь применим преобразование I. Очевидно, для того чтобы перевести С в со-цепь, достаточно не более т — 1 раз применить к графу G преобразование I. Лемма доказана. 3.2. Перейдем к рассмотрению ситуаций, когда граф G является выходящим или входящим деревом. Теорема 3.1. Если граф G — выходящее (входящее) дерево, то существует последовательность преобразований I, II, переводящая G в .ы-цепъ. Доказательство. Пусть граф G = (N, U) — выходящее дерево. Воспользуемся индукцией по числу пар несравнимых элементов в N. Если в N все элементы попарно сравнимы, то G — цепь и справедливость утверждения следует из леммы 3.2. Пусть утверждение теоремы верно для всех таких выходящих деревьев G, что в множестве N не более m пар несравнимых элементов, пг > 0. Покажем, что оно верно и для любого выходящего дерева G такого, что в N имеется m + 1 пара несравнимых элементов. Но предположению, в N имеется по крайней мере одна пара несравнимых элементов. Поэтому в G найдется такая вершина i°, что A°(i°) = {ily i2, ..., ii), Z ^ 2, и для любой вершины i^A(i°) выполняется соотношение 1Л°(л)|<1. Подграф G0 графа G, порожденный множеством вершин A(i°), состоит, очевидно, из I компонент связности, каждая из которых — цепь вида (г^, fi \ ..., 1 ^ к ^ I. Пусть 5 и ^ — вершины графа G0. Поскольку SG(Zi) = =» BG(i2) =. . .= BG(it) = BG(i°) U г°, условия теорем 2.1 и 2.2 выполняются или не выполняются для графов G и G0 одновременно. Следовательно, преобразования I-U, s] или II-(s, t) применимы к графу G тогда и только тогда, когда они применимы к графу G0. Из лемм 3.2 и 3.1 следует существование последовательности L преобразований I, II, переводящей граф G0 в со-цепь. Применяя последовательность L к графу G, получаем новый граф G' = (N\ U') такой, что множество N' содержит не более пг пар несравнимых элементов (относительно порядка, определяемого графом G'). Очевидно, G' — выходящее дерево. Доказательство второй части теоремы (когда G — входящее дерево) практически совпадает с доказательством 232
первой части,— падо лишь поменять местами символы А и В. Теорема доказана. 3.3. Пусть G — древовидный граф, G4 = (iV4, t/4) — его компонента связности и s, t ^ Niu Очевидно, что к G можно применить преобразование I-It, s] либо II-(5, t) тогда и только тогда, когда его можно применить к G4. Отсюда и из теоремы 3.1 вытекает существование последовательности преобразований I, II, переводящей граф G в граф G', каждая компонента связности которого является со-цепью. Для преобразования графа G' в одну со-цепь достаточно, как следует из леммы 3.1, упорядочить его вершины по невозрастанию приоритетов соответствующих им элементов. Полученная со-цепь будет однозначно определять оптимальную (в силу следствия 2.1) перестановку пп элементов множества N. Используя доказательство теоремы 3.1, петрудпо построить процедуры преобразования компонент графа G (выходящих и входящих деревьев) в со-цепи. а. Пусть G = (iV, U) — выходящее дерево, \N\ = п. Процедура преобразования G в со-цепъ состоит в последовательном переходе от одного выходящего дерева к другому, имеющему меньшее число вершин. Преобразования проводятся до тех пор, пока не будет получен граф, состоящий из единственной вершины. При этом вершинам деревьев на каждом шаге сопоставляются некоторые со-цепи. На первом шаге в качестве таких цепей выбираются сами вершины графа G. Найдем в G вершину i° (называемую далее опорной), все прямые потомки которой являются висячими. Пусть этим потомкам сопоставлены со-цепи С4, С2, ..., Си В соответствии с леммой 3.1 цепи С4, С2, ..., Сх можно заменить одной со-цепыо, которую обозначим через С0. Для построения цепи С о достаточно упорядочить вершины цепей С4, С2, . .., С/ по невозрастанию приоритетов соответствуй ющих элементов. Цепь С0 будем называть результатом объединения (а-цепей Си С2, ..., Ch а сами со-цепи — объединяемыми. Присоединим к С0 вершину i° слева и преобразуем полученную цепь С0 в co-цепь. Пусть {г,, г2, ..., U — множество вершил цепи С0. Для преобразования С0 в со-цепь достаточно не более v раз воспользоваться преобразованием I: если со (i°) < со (гАо) = max {со (ik) \ к = v}, объединим i° и ikQ в составной, элемент гА()]. Далее сравним co(i°, £ft0) 233
й max {(d(ih\k = 1, v, кФко) п в случае необходимости проведем очередное объединение элементов и т. д. Полученную со-цепь обозначим через С0. Удалим из G всех потомков вершины i° и поставим ей в соответствие со-цепь С0. В полученном дереве G(1) не более п — 1 вершин. Применяя описанные преобразования к G(1), получим некоторое выходящее дерево G(2), и так до тех пор, пока не будет получен граф G(/,), состоящий из единственной вершины. Цепь, сопоставленная этой вершине, является искомой со-цепыо. б. Процедура преобразования входящего дерева в ы-цепъ лишь незначительно отличается от описанной процедуры для выходящего дерева. На каждом шаге в качестве опорной выбирается вершина г°, все непосредственные предшественники которой не имеют предшественников в дереве, п полученном после выполнения' предыдущего шага. Цепь С0 получается присоединением вершины i° к со-цепи С0 справа. Для преобразования С0 в о-цепь С0 сравниваются co(i°) и со (= min {со (ih) | к = 1Л. v}. Составной элемент [ihQl j°] образуется при условии со (i°) ^со (th0)- 3.4. Для реализации процедур преобразования выходящих и входящих деревьев в со-цепи можно воспользоваться представлением данных с помощью сбалансированных 2-3-деревьев (см. § 2 гл. 1). Такое представление дает воз- можность строить оптимальную перестановку яп, выполпяя не более O(nlogn) операций. Зададим на множестве Ql&niG)] (см. § 1 этой главы) отношение => совершенного псевдопорядка, полагая л(1)=^л(2) для любых я(1), я(2) из Ql£Pn(G)\ тогда и только тогда, когда со(я(1)) ^ со(я(2)). Нетрудно заметить, что в данном случае отношепие =>■ является совершенным квазипорядком. Сбалансированные 2-3-дсревья будем использовать для представления со-цепей, появляющихся в процессе реализации процедуры преобразования дерева (выходящего либо входящего) в со-цепь. Все такие 2-3-деревья будем представлять с помощью одной и той же таблицы. Для обращения к данной со-цепи в такой ситуации достаточно указать номер корня соответствующего сбалансированного 2-3-дерева. Любая со-цепъ определяется перестановкой номеров ее вершин, в которой вершины упорядочены по невозрастанию соответствующих им значений функционала приоритета. Представляя со-цепь сбалансированным 2-3-деревом, каждой 234
промежуточной вершине v которого поставлена в соответ^ ствие метка vmln либо утах, эту цепь можно восстановить, выполняя не более O(n'logn') операций, где п —длина цепи. Значение функционала приоритета, соответствующей данной метке вершины v, называем значением этой метки. Рассмотрим реализацию процедуры преобразования выходящего дерева Gt = (7Vt, U{) в со-цепь. Не теряя общности, можно считать, что вершины Gv пронумерованы числами 1, 2, ..., п{ = |ЛМ, следующим образом. Корень дерева имеет номер 1. Если av — число вершин, принадлежащих v-му рангу дерева G1? то вершины второго ранга пронумерованы числами 2, 3, ..., а2+1, вершины третьего ранга — числами а2 + 2, а2 + 3, . .., а2 + а3 + 1 и т. д. При нумерации вершин каждого последующего ранга первыми нумеруются прямые потомки вершины с минимальным номером, затем прямые потомки вершины, имеющей следующий по величине номер, и т. д. Граф Gj будем представлять таблицей, состоящей из четырех строк и пi столбцов. Первая строка — номера вершин G1. В к-й клетке второй строки помещается номер непосредственного предшественника вершины к, а в к-й клетке четвертой строки — минимальный и максимальный номера прямых потомков к-й вершины. В к-й клетке третьей строки помещается номер корня сбалансированного 2-3-дерева, представляющего со-цепь, которая сопоставлена k-ii вершине графа. Далее, для краткости, таблицу, представляющую граф G{ или текущий граф Gi\ 1 ^s^.hi будем называть таблицей 1, а таблицу, представляющую сбалансированные 2-3-деревья,— таблицей 2. В столбцах rii + 1, п^ + 2, третьей и четвертой строк таблицы 2 вместе с метками будем хранить и их значения, а в клетках 1, 2, . . ., rii третьей и (или) четвертой строк — значения со(л(с)). Здесь С — это со-цепь, сопоставленная данной вершине графа Gt, а я(с) — допустимая относительно цепи С перестановка всех элементов множества N, образующих вершины цепи С. Отметим, что при реализации процедуры преобразования выходящего дерева в со-цепь можно не заполнять третью строку таблицы 2, поскольку в этом случае будет использоваться лишь метка ушах. Аналогично в случае входящего дерева можно не заполнять четвертую строку таблицы 2. На первом шаге процедуры преобразования Gi в со-цепь каждая вершина G! рассматривается как со-цепь, поэтому в таблице 2 в исходный момент заполняется лишь первая строка (числами 1, 2, .. ., 2/гх — 1). 235
Процесс преобразования графа в со-цепь состоит в последовательном и многократном выполнении следующих процедур: поиск очередной опорной вершины и соответствующих ей объединяемых co-цепей; объединение нескольких со-цепей в одну оо-цепь; присоединение к co-цепи опорной вершины и преобразование результата в со-цепь; удаление из графа объединяемых на данном шаге цепей и сопоставление опорной вершине i° цени С0. Рассмотрим реализацию этих процедур. Пусть опорная вершина £° выбрана, тогда, используя информацию, содержащуюся в клетке Г четвертой строки таблицы 1, можно найти номера il9 + 1, .. ., i{ +1 висячих вершин, являющихся прямыми потомками вершины i°. В клетках i{ +1, .. i{ +1 третьей строки табли¬ цы 1 содержатся номера корней сбалансированных 2-3-деревьев, представляющих <о-цегш, которые соответствуют вершинам il9 ii + 1, .. ., + Z. Пусть объеди¬ нение найденных со-цепей в со-цепь С0 выполнено, построена цепь С0, которая затем преобразована в со-цепь С0. Для удаления вершин iu + 1, ..iv + l из текущего графа и замены вершины i° вершиной, которой соответствует цепь Со, достаточно проделать следующие операции. Удалить содержимое клеток Z,, it + 1, . . ., it +Z всех четырех строк таблицы 1 и клетки i° четвертой строки, а содержимое клетки i° третьей строки заменить номером корня сбалансированного 2-3-дерева, представляющего цепь С0. Таким образом, при преобразовании выходящего дерева Gt в со-цеиь реализация всех процедур поиска объединяемых со-цепей, удаления из текущего графа вершин, соответствующих этим цепям, п сопоставления опорной вершине i° цени С0 требует выполнения не более чем ОЫд операций. Выбранный способ нумерации вершин графа Gi и удаления вершин из текущего графа позволяет достаточно просто реализовать поиск очередной опорной вершины. Действительно, последняя непустая клетка первой строки таблицы 1 содержит номер висячей вершины текущего графа Gi^f и эта вершина принадлежит последнему уровню Gis). Следовательно, непосредственный предшественник этой вершины (его номер содержится в соответствующей клетке второй строки) может быть выбран в качестве опорной вершины. Поиск всех опорных вершин при преобразовании Gf в (о-цепь требует, таким образом, выполнения не более Oirii) операций. 236
Для объединения двух (о-цепей в одну «-цепь достаточно осуществить объединение представляющих их 2-3-деревьев. Эта процедура требует, .как показано в § 2 гл. 1, выполнения не более О (log п') операций, где п — максимальная из длин объединяемых цепей. Следовательно, при преобразовании Gt в «-цепь для выполнения всех процедур объединения «-цепей требуется не более ОЫ1 log пt) операций. Процедуры присоединения i° к «-цепи С0 и преобразог вания полученной цепи С0 в «-цепь осуществляются одновременно. Пусть v — корень 2-3-дерева, представляющего цепь С0. Сравним о)U°) и значение «(ушах) метки итях. Если «(i°) ^ «(Ушах), то в клетке и четвертой строки таблицы 2 содержится номер вершины г\0, которая является меткой Ушах. Объединим i° и ik0 в составной элемент [£°, г’/*0]. При выбранном способе представления информации достаточно знать лишь приоритет составного элемента. Поэтому достаточно элементу i° сопоставить значение © (&0» &л0). Для этого содержимое клетки i° четвертой строки таблицы 2 следует заменить значением « (£°, ikQ). Вершину ikQ следует удалить из «-цепи С0, воспользовавшись процедурой удаления элемента из множества, представленного сбалансированным 2-3-деревом (см. п. 2.6 § 2 гл. 1). Сам составной элемент [i°, нужен лишь для построения перестановки л;*, его храпим отдельно. Обозначим вновь через v корень сбалансированного 2-3-дерева, представляющего «-цепь, которая получена из С' в результате удаления вершины i*0. Сравниваем новое значение «(у,пах) с новым значением «(£°) (иначе говоря, сравнивается содержимое соответствующих клеток четвертой строки таблицы 2). Если «(i°) ^ «(утах), образуем новый составной элемент. Если же о>С°) > «(iw)» присоединяем вершину i° к 2-3-дереву с корнем у, используя процедуру объединения двух множеств, представленных сбалансированными 2-3-деревьями (см. пп. 2.4 и 2.5 § 2 гл. 1). Пусть п — длина С0, тогда образование одного нового составного элемента требует выполнения не более O(logAi') операций, присоединение i° к 2-3-дереву с корнем v также требует выполнения ие более О (log п') операций. Всего при преобразовании G{ в «-цепь новые составные элементы могут образовываться не более rii — 1 раз, и процедура присоединения i° к С0 осуществляется также не более щ — \ 237
раз. Следовательно, реализация всех процедур присоединения опорной вершины к со-цепи и преобразования результата в co-цепь требует выполнения не более Oirtilog п{) операций. После завершения преобразования Gi в граф G[h\ состоящий из единственной вершины, требуется восстановить по таблице 2 co-цепь, соответствующую G{^\ Очевидно, для этого достаточно выполнить не более Oirii log п{) операций. Таким образом, реализация процедуры преобразования выходящего дерева в со-цепь требует выполнения не более 0(п{ log rii) операций. При реализации процедуры преобразования входящего дерева Gt = (Л^, £Л) в со-цепь вершины дерева пронумеруем числами 1, 2, ..п1у начиная с корня. Для этого изменим ориентацию всех дуг дерева на противоположную и пронумеруем вершины, как в случае выходящего дерева. Таблица, представляющая входящее дерево, отличается от таблицы, представляющей выходящее дерево, второй и четвертой строкой. Здесь вторая строка — номер прямого потомка, а четвертая строка — минимальный и максимальный номера непосредственных предшественников. Выбор опорной вершины осуществляется по последней непустой клетке таблицы, представляющей текущий граф: содержимое соответствующей клетки второй строки есть номер опорной вершины. Реализация процедуры преобразования входящего дерева в со-цепь также требует выполнения не более Oirii log п{) операций. После преобразования всех компонент связности древовидного графа G = (N, U) в со-цепи построение перестановки лп требует выполнения не более O(nlogn) операций. Временная сложность алгоритма построения оптимальной перестановки в случае, когда G — древовидный граф, не превосходит, таким образом, O(nlogn). При получении этой оценки не учитывалось число операций, необходимых для вычисления приоритетов составных элементов. Отметим, однако, что для всех рассмотренных в § 1 данной главы приоритето-порождающих функционалов это число является постоянной величиной. 3.5. Пример. Рассмотрим задачу минимизации используемого объема хранилища информации (см. п. 1.5 данной главы) при условии, что на множестве запросов задано отношение строгого порядка древовидной структуры. Граф G редукции отношения ->■ изображен на рис. 3.1, значения параметров U приведены в табл. 3.1. В хранилище в момент времени t = 0 находится 100 единиц информации. 238
Воспользовавшись формулой (1.22), вычислим приоритеты элементов множества TV = {1, 2, ..10} (полагаем W — — 140): о)(1) — со(2) =• со(3) = со(4) *= со(6) = со(7) = со(9) = = со(10) = —140; со(5) = 170; со(8) = 162. Обозначим компоненту связности G, являющуюся выходящим деревом, через Gx = (Nu t/4), а компоненту связности, являющуюся входящим деревом,—через G2 =* (iV2, U2)\ Ni = { 1, ..., 5), N2 = (6, ..., 10). Преобразуем Gt в со-цепь. Построим таблицы 1 (см. табл. 3.2) и 2 (см. табл. 3.3) для графа Gt. По таблице 1 выбираем опорную вершину и множество объединяемых на первом шаге со-цепей. Опорной является вершина 1, а 2, 3, 4 и 5 — номера корней сбалансированных 2-3-деревьев, представляющих объединяемые на дан- Таблица 3.1 i 1 2 3 4 5 6 7 8 9 10 h 10 15 20 5 -30 8 12 -22 6 8 Таблица 3.2 I Номер вершины 1 2 3 4 5 II Номер непосредственного предшественника 1 1 1 1 III Номер корня сбалансированного 2-3-дерева 1 2 3 4 5 IV Номера прямых потомков 2,5 ном шаге цепи. Табл. 3.4 (третья строка опущена) представляет собой таблицу 2 после реализации процедуры объединения со-цепей 2, 3, 4, 5 в одну со-цепь Сг. Цепь Сх представлена сбалансированным 2-3-деревом с корнем 8. Поскольку со(1) < со(8Шах) =* со(5), образуем составной элемент 239
И, 5]. После удаления вершины 5 из co-цепи С[ полученная со-цепь представляется сбалансированным 2-3-деревом с корнем 6, 6тах = 2. Поскольку 0)(1, 5) = 130 > 0)(6тах) = —140^ процесс образования составных элементов завершен. Объ- Таблица 3.3 I Номер вершины сбалансированного 2-3- дерева 1 4 5 6 II Номер непосредственного предшественника III ут1п(значение метки) - IV утах(значение метки) (-140) (-140) (170) V Номера прямых потомков Таблица 3.4 1 1 2 3 4 ! 5 6 7 8 II 6 6 7 7 8 8 IV 2 5 5 (-140) -(140) (-140) (-140) (170) (-140) (170) (170) V 2,3 4,5 6,7 Таблица 3.5 единяем сбалансированное 2-3-дерево с корнем 6 и сбалансированное 2-3-дерево, представляющее элемент [1, 5]. Полученные в результате выполнения описанных действий таблицы 1 и 2 представлены табл. 3.5 и 3.6 соответственно. Пустые столбцы таблицы 1 опущены. Полученный после выполнения первого шага граф G^ состоит из единственной вершины, которой соответствует ы-цеиь 64G,), представленная сбалансированным 2-3-деревом с корнем 8. Восстановим эту цепь: С(G,) = ([1, 5], 2, 3, 4). Преобразуем G2 в со-цепь. Перенумеруем вершины G2 в соответствии с табл. 3.7. Построим таблицы 1 (табл. 3.8) и 2 (табл. 3.0) для графа С2. На первом шаге опорной является вершина 3, а объединяемые co-цепи представлены сбалансированными 2-3-де- 240 I 1 II III 8 IV
ревъями с корнями 4 и 5. Табл. 3.10 п 3.11 представляют таблицы 1 и 2 соответственно после выполнения первого шага процедуры преобразования Gz в co-цепь (пустые столбцы таблицы 1 опущены). При выполнении первого шага образовался составной элемент [4, 5, 3], со(4, 5, 3) = 120. Таблица 3.6 I 1 2 3 4 5 6 7 8 II 7 7 6 6 8 8 IV 3 1 1 (130) (-140) (-140) (-140) (-140) (130) (130) V 3,4 1,2 6,7 Таблица 3.7 Исходные номера вершин 6 7 8 9 10 Новые номера вершин 5 4 3 2 1 Таблица 3.8 I Номер вершины 1 2 3 4 5 II Номер прямого потомка 1 1 3 3 III Номер корня сбалансированного 2-3-дерева 1 2 3 4 5 IV Номера непосредственных предшественников 2,3 4,5 Таблица 3.9 I 1 2 3 4 5 6 7 8 II III (-140) (-140) (162) (-140) (-140) V На втором шаге опорной является вершина 1, а объединяемые co-цепи представлепы сбалансированными 2-3-деревьями с корнями 2 и 4. Табл. 3.12 и 3.13 представляют таблицы 1 и 2 соответственно после выполнения второго шага. При выполнении второго шага образовался составной элемент [2, 1], со(2, 1) = —140. Граф полученный 16 в, С. Танаев и др, 241
в результате выполнения двух шагов процедуры преобразования графа G- в со-цепь, состоит из единственной вершины (G^ представлен табл. 3.12). Восстановим полученную со-цепь: C(G2) = ([4, 5, 3], [2, 1]). В исходной нумерации эта цепь имеет вид: C{G2) = ([7, 6, 8], [9, 10]). Итак, графы и G2 преобразованы в co-цепи C(G{) и C(G2) соответственно. Объединим эти цепи в одну со-цепь Таблица 3.10 Таблица 3.11 I 1 2 3 I 1 2 3 4 5 ... II 1 1 II III 1 2 4 III (-140) (-140) (120) IV 2,3 IV Таблица 3.12 Таблица 3.13 I 1 II III 6 IV I 1 2 3 4 5 6 7 8 II 6 6 2 III (-140) (120) (-140) V 2,4 C(G). Для получения C(G) достаточно упорядочить вершины C{Gi) и C{G2) по невозрастанию приоритетов соответствующих им составных элементов: C(G) = (11, 5], [7, 6, 8], 2, 3, 4, [9, 10J). Таким образом, перестановка я10 = (1, 5, 7, 6, 8, 2, 3, 4, 9, 10) является оптимальной. § 4. Последовательно-параллельный порядок Перейдем к рассмотрению ситуаций, в которых граф G редукции отношения порядка является последовательнопараллельным либо может быть приведен к последовательно-параллельному графу в результате выполнения некоторой последовательности преобразований I, II. Понятие последовательно-параллельного графа, а также такие связанные с ним понятия, как декомпозиционное дерево T(G) произвольного графа G, операции последовательной (обозначение s) и параллельной (обозначение р) композиции графов введены в § 1 гл. 1. Там же приведена схема построения дерева T(G) и способ восстановления гра¬ 242
фа G по его декомпозиционному дереву. Напомним лишь, что граф G, который можно представить в виде последовательной (G = GiSG2) или параллельной (G = G,pG2) композиции двух графов Gi и G2, называется разложимым (в противном случае — неразложимым), а графы G4 и G2 — компонентами разложения графа G. Если граф Gi или граф G2 может быть в свою очередь представлен в виде композиции (параллельной или последовательной) графов G3 и G4, то последние также называются компонентами разложения G. Каждой висячей вершине T(G) соответствует компонента разложения графа G, а остальным вершинам поставлены в соответствие операции последовательной или параллельной композиции. Висячим вершинам полного декомпозиционного дерева соответствуют неразложимые графы. Далее для краткости не будем делать различия между висячими вершинами дерева T{G) и соответствующими им компонентами разложения графа G, а также между операционными вершинами T(G) и соответствующими им операциями композиции. 4.1. Рассмотрим некоторые свойства графов и их декомпозиционных деревьев, а также связь между операциями, проводимыми над графом G = {N, £/), и его компонентами разложения. Лемма 4.1. Пусть Gl = (Nly f/4) — компонента разложения графа G. Тогда для любых элементов i°, f е Nx и i^N\Nj имеет место одна и только одна из пар соотношений: 1) i — i ~ jf°, либо 2) i i°, i-+f, либо 3) i° -*■ г, Г s. Доказательство. Поскольку Gt — компонента разложения G, должно существовать декомпозиционное дерево 74G), в котором графу Gt соответствует некоторая висячая вершина, a i является вершиной графа G2, которому соответствует некоторая другая висячая вершина дерева 74G). Найдем в T(G) операционную вершину Оt максимального ранга, из которой существует путь как в вершину Gly так и в вершину G2. Реализуем процесс восстановления графа G по T(G) до момента, когда вершина 0{ окажется смежной с двумя висячими вершинами G' и G". Если i — вершина G', то i°, /° — вершины графа G". Если i — вершина G", то i°, j° — вершины G'. Действительно, в противном случае (т. е. если бы г, i°, у0 оказались вершинами одного и того же из этих двух графов) должна была бы существовать операционная вершина 02, из которой существуют пути в вершины G4 и 16* 243
G2 и ранг которой больше, чем ранг 0\. Если вершине 0{ соответствует операция параллельной композиции, то i ~ i° и i ~ /°. Пусть Oi соответствует операция последовательной композиции. Если i — вершина графа G', то из определения операции последовательной композиции следует, что i -+■ i° и Если i — вершина G", то i° i и f i. Лемма доказана. Лемма 4.2. Пусть T(G)—декомпозиционное дерево графа G, a Gt = (Nly Ut) — висячая вершина T(G), г°, /° е е Nu i° ~ у0. Если G' uGx — графы, полученные из G и Gt добавлением дуги (г°, 7°), го дерево У7', полученное из T{G) заменой вершины G{ вершиной GXi является декомпозиционным деревом графа G'. Доказательство. Пусть G" = (N, U") — граф, для которого Т' является декомпозиционным деревом. Покажем, что графы G' и G" совпадают. Граф G является графом редукции отношения строгого порядка поэтому граф G' не имеет контуров, кроме того, но построению он не имеет и транзитивных дуг. Следовательно, G' можно рассматривать как граф редукции некоторого отношения строгого порядка, которое обозначим через 22. Граф Gx также не имеет контуров и транзитивных дуг, поэтому их не имеет и граф G", который, следовательно, можно рассматривать как граф редукции некоторого отношения строгого порядка-». Для того чтобы доказать идентичность графов G' и G", достаточно показать, что для любых i, j е N соотношение i 22 у имеет место тогда и только тогда, когда выполнено . G" . соотношение г —>]. Пусть i ^ N\NU / е= N. Для того чтобы i 2> /,необходимо и достаточно, чтобы i j. Достаточность очевидна. Пусть i22j, но i ~ /, т. е. в G' существует путь из вершины i в вершину /, а в G такого пути нет. Граф G' отличается от G наличием лишь одной дуги (г°, j°). Следовательно, в G' путь из i в у должен содержать дугу (£°, у0), а для отношения определяемого графом G, должны выполняться оба условия: i ->■ i° и i ~ j°. В силу леммы 4.1, последнее невозможно, поскольку iu, f — вершины графа Gu a Gi — компонента разложения графа G. Аналогичным обра- . G' . . зом доказывается, что / —> ь тогда и только тогда, когда j -*■ г. Пусть i^Niy / g JV. Для того чтобы i —> /, необходимо и достаточно, чтобы i -*■ / либо i i° и f j. Достаточность очевидна. Если j ^ N\Nly то необходимость следует из предыдущих рассуждений. Если j е Nu то при отсутствии в 244
G пути из £ в у такой путь в G' должен содержать дугу (£°, -у0). Аналогично у £ тогда и только тогда, когда у £ либо у -+■ £° и ;° ->■ £. Рассмотрим граф G". Пусть i^N\Nu j^N. Для того чтобы i£iy(y~>£), необходимо и достаточно, чтобы £-► у (соответственно у £). Достаточность очевидна, а необходимость доказывается так же, как и для графа G'. Лнало- гично, если £ е Nu у е N, то £ -> j [j -> £) тогда и только тогда, когда £ у (соответственно у £) либо £ -► £° и у0 у (соответственно у ->■ £° и у0 -*■ £). Таким образом, £ —> у тогда и только тогда, когда * —>у. Лемма доказана. Лемма 4.3. Пусть T(G) — декомпозиционное дерево графа G, a Gi = (Л^, U ^) — висячая вершина T(G), £°, у0 е е Если G' и Gi — графы, полученные из G и G{ отождествлением вершин f и £°, го дерево Т', полученное из T(G) заменой вершины G{ вершиной Gb является декомпозиционным деревом графа* G'. Доказательство. Обозначим через £' вершину, полученную в результате отождествления вершин у0 и £°, G' = (N', U'), G[ = {N[,U[). Пусть G" = OV', U”)— граф, для которого Т' является декомпозиционным деревом. Покажем, что графы G' и G" совпадают. Графы G' и G" являются бескоитурными и не содержат транзитивных дуг, поэтому они однозначно определяют отношения строгого порядка и соответственно. Для доказательства идентичности графов G' и G" достаточно показать, что для лю- с? бых £, у ^ N соотношение £ А у имеет место тогда и только . G" • тогда, когда выполнено соотношение i —> у. Поскольку граф G' получен из графа G отождествлением вершин у0 и £°, соотношение £ —> у для любых £, у е 7V'\// имеет место тогда и только тогда, когда £ у. Кроме того, ££>£' (£'£>£) имеет место для всех i^N'\i' тогда и только тогда, когда £ £° либо £ -*■ у0 (соответственно £° £ ли¬ бо у0 £). Из леммы 4.1 и способа построения Т' следует, что для любых £ ^ ЛГ\£' и у е iVi соотношение £ ^ у (у—> £) имеет место тогда и только тогда, когда £ -► у (соответственно /->£). Прпчем, если у = £', то£—>£'(£'G £) тогда и только тогда, когда £ £° либо £ -> у0 (соответственно £° £ либо /°~*£). Если £,/ е N'\N'1% то £^у тогда и только тогда, когда £ -*■ у. 245
Таким образом, для выполнения соотношения i —> / необходимо и достаточно, чтобы имело место соотношение Qff ij Лемма доказана. Лемма 4.4. Пусть Gi = ЕД) — компонента разложения графа G и i°, j° е Nlt Преобразование I-[/°, i°] либо II-(i°, 7°) можно применить к графу G тогда и только тогда, когда его можно применить к графу Gi. Доказательство. Возможность выполнения преобразований I-[/°, i°] и II-Q0, у0) определяется выполнением условий (2.1) и (2.2) соответственно (при s = i°, t = j°). Из леммы 4.1 следует, что для любого элемента i ^ N\N{ имеет место одно и только одно из соотношений: П П E(j°), B(i°) П B(f\ либо П A(j°). В любом случае i&A(i°, /°) и 70), следовательно, условия (2.1) и (2.2) выполняются или не выполняются для графов G и Gi одновременно. Лемма доказана. Следствие 4.1. Пусть Gi = (7VA, ЕД) — компонента разложения графа G. Последовательность L преобразований I, II, действующую на множестве Nu можно применить к графу G тогда и только тогда, когда ее можно применить к графу Gt. Справедливость этого утверждения непосредственно следует из последних трех лемм. Следствие 4.2. Пусть T{G) — декомпозиционное дерево графа G, граф G{ = (Nu ЕД) — висячая вершина TiG), L — последовательность преобразований I, II, действующая на множестве Nt. Если L переводит графы G и G{ в графы G' и Glf то для получения декомпозиционного дерева T(G') графа G' достаточно в T(G) вершину Gi заменить вершиной Gl9 Справедливость этого утверждения следует из предыдущего утверждения и лемм 4.2, 4.3. Теорема 4.1. Пусть {Gu G2, . . ., Gm} — множество висячих вершин декомпозиционного дерева T(G) графа G. Если для каждого из графов G4, G2, .. ., Gm существует последовательность преобразований I, II, переводящая его в цепь, то для графа G существует последовательность преобразований I, II, переводящая G в со-цепь. Доказательство. Пусть Ьи Ь2, . . ., Lm — последовательности преобразований I, II, переводящие графы G,, G2, ..., Gm в цепи С\, С2, . . ., Ст соответственно. В силу леммы 3.2 можно считать, что С2, . . ., Ст являются (о-цепями. Обозначим через G(1) граф, полученный из графа G в результате выполнения последовательности L ■■= 246
= (Lu L2, ..Lm) преобразований t, II. Существование графа G(1) гарантируется следствием 4.1. Дерево Ти полученное из декомпозиционного дерева 74G) заменой вершин Gu G2, ..., Gm вершинами Ci, С2, ..Cmi является, как вытекает из следствия 4.2, декомпозиционным деревом графа G(1). Будем восстанавливать граф G(1) по его декомпозиционному дереву Tiy выполняя одновременно некоторые преобразования G(1). Пусть О — операционная вершина дерева Ти смежная с двумя висячими вершинами и С/2. Перейдем к декомпозиционному дереву Т[ графа G(1), удаляя из Tt вершины Ci± и Ci2 и заменяя вершину О вершиной G', где G' = Ci sCi2f если О — операция последовательной композиции, или G' = С/хрС/2, если О — операция параллельной композиции. Из лемм 3.1 и 3.2 следует, что в любом из этих случаев существует последовательность Ьх преобразований 1, II, переводящая граф G' в некоторую со- цепь С'. Действительно, если G' = Ct sCi х то G' — цепь, если же G' = C^pCi2, то G' состоит из двух компонент связности, каждая из которых является со-цепыо. Заменим в декомпозиционном дереве Тг вершину G' вершиной С' и полученное декомпозиционное дерево обозначим через Т2. В силу следствия 4.2 дерево Т2 является декомпозиционным деревом графа G(2), в который последовательность L1 переводит граф G(1). В декомпозиционном дереве Т2 уже пг — 1 висячая вершина. Проделав описанную процедуру пь — 2 раз, получим некоторый граф G(w-1) и его декомпозиционное дерево Тщ-1. Дерево Tm-1 имеет две висячие вершины, которым соответствуют некоторые co-цепи. Выполнив операцию композиции, сопоставленную корню дерева Тт-и получим граф G". Для графа G',, как и для графа G', существует последовательность Lm_г преобразований I, II, переводящая G" в со-цепь С". Очевидно, что цепь С" получена из графа G(1) в результате выполнения последовательности L' — (L'lxL'2f ... ...f Lm_i) преобразований I, II. Таким образом, последовательность L° = (L, V) переводит граф G в со-цепь С". Теорема доказана. Если граф G является последовательно-параллельным, то каждая висячая вершина его полного декомпозиционного дерева — одновершинный граф; поэтому справедливо 247
Следствие 4.3. Для любого последовательно-параллельного графа существует последовательность преобразований I, II, переводящая его в ы-цепь. 4.2. Опишем основанный на теореме 4.1 алгоритм преобразования последовательно-параллельного графа G в цепь, исходя из предположения, что граф G представлен своим полным декомпозиционным деревом. Алгоритм преобразования графа G в цепь состоит из п — 1 шагов, на каждом из которых осуществляется переход от одного последовательно-параллельного графа к другому. Эти графы на первых п — 2 шагах представляются их декомпозиционными деревьями, и в результате выполнения одного шага совершается переход к дереву, имеющему на одну висячую вершину меньше, чем предыдущее. Висячим вершинам декомпозиционных деревьев сопоставляются некоторые co-цепи. Исходным декомпозиционным деревом 7\ служит полное декомпозиционное дерево 74G) графа G. Висячими вершинами дерева 7\ являются вершины графа G (цепь, состоящая из одной вершины, является одновременно и со-цепыо). Пусть Тг — декомпозиционное дерево, полученное в результате выполнения первых г — 1 шагов, 1 ^ г ^ п — 1. Дерево Тг имеет п — г+1 висячую вершину. Выберем в Тг операционную вершину О, смежную с двумя висячими вершинами Ch = (г\, U, ... , iVl) и С,2=(jnj2r • • ч /v2)- Вершину О по аналогии с предыдущим параграфом будем называть опорной. Если О — операция параллельпой композиции, объединим цени Ci± и С/2 в одну со-цепь С. Для построения цепи С достаточно вершины ю-цепей Ci± и С/2 упорядочить по невозрастанию их приоритетов. Если О — операция последовательной композиции, образуем цепь С' = i2% ... •••.Ац/и/21 ...,/v2)- ПРИ Чепь С' является, очевидно, со-цепыо (обозначим ее через С). В противном случае преобразуем С' в со-цепь С следующим образом. Объединим iyjx и ]\ в составной элемент i° = [iVl> jfi]% Если co(tVl--i)^co(£0), объединим iVl-i и i° в составной элемент [zVl_lt £°], который вновь обозначим через i°. Если co(£Vl-i) >co(j°) и coU°) ^ со(/2), образуем составной элемент [i°, /2], который вновь обозначим через i°. Процесс преобразования С' в со-цепь завершается получением цепи С одного из следующих видов: С = (i°), С = (iLl i2l .. *х 248
С —(fc®, Jif ^ . . i 7va)’ ^ — (J'li ^2r ‘ • *i ^h\ 7ii • • • i 7v2)» где (o(£fc) > > G)(i°) и o)(i°) > co(//). Удалим из декомпозиционного дерева Тт вершины Ct1 и С/2, а опорную вершину О заменим вершиной С. Полученное декомпозиционное дерево Тт+1 имеет п — г висячих вершину каждая из которых является со-цеиыо. После выполнения /г — 2 шагов получим декомпозиционное дерево Тп-1, имеющее две висячие вершины С(1), С{2) и одну операционную вершину О. Если О — операция параллельной композиции, то, упорядочивая вершины цепей С(1) и С{2) по невозрастанию их приоритетов, получаем искомую цепь С. Если О — операция последовательной композиции, то искомая цепь С = (С(1), С(2)). В последнем случае цепь С может быть преобразована (при необходимости) в w-цепь описанным выше способом. 4.3. При минимизации приоритето-порождающего функционала Fin) на множестве SPniG) построенная цепь С однозначно определяет оптимальную перестановку пп. Покажем, что использование сбалансированных 2-3-деревьев для .. * представления со-цеиеи позволяет строить перестановку яп, выполняя не более O(nlogn) операций (при условии, что последовательно-параллельный граф G задан своим полным декомпозиционным деревом TiG)). Отношение => совершенного псевдопорядка задается на множестве Ql&*n(G)] так же, как и в предыдущем параграфе: я(1) => я(2) для любых я(1) и я(2) из Ql&niG)] тогда и только тогда, когда о(л(1)) > (о(я(2)). Пронумеруем вершины полного декомпозиционного дерева графа TiG) следующим образом. Удалим из TiG) все висячие вершины и в полученном дереве пронумеруем вершины числами п+ 1, п + 2, ..., 2лг — 1, начиная с корня, так же, как в случае обычного исходящего дерева (см. предыдущий параграф). Висячим вершинам TiG) сопоставлены элементы множества N = { 1, 2, ..., п}, поэтому можно считать, что эти вершины пронумерованы числами 1, 2, ..., п. Декомпозиционное дерево TiG) будем представлять таблицей, состоящей из пяти строк и 2лг — 1 столбцов. Первая строка таблицы — номера вершин дерева TiG), в к-й клетке второй строки содержится номер непосредственного предшественника вершины к. В к-й клетке третьей строки содержится помер корпя сбалансированного 2-3-дерева, представляющего со-цепь, которая сопоставлена к-й вершине дерева TiG). Четвертая строка — номера прямых потомков. 249
В к-й клетке пятой строки содержится индекс операции композиции (s или р), соответствующей к-й операционной вершине дерева T(G). Таблицу, представляющую декомпозиционное дерево, будем называть далее таблицей 1, а таблицу, представляющую сбалансированные 2-3-деревья,— таблицей 2. , Перед началом работы алгоритма в первые п клеток третьей строки таблицы 1 помещаются числа 1, 2, .. ., л, а клетки п+ 1, п + 2, ..2/г — 1 этой строки остаются пустыми. Способ заполнения остальных строк таблицы 1 очевиден. В клетках третьей и четвертой строк таблицы 2 наряду с метками будем хранить их значения (см. предыдущий параграф). В силу избранного способа нумерации операционных вершип 74G), очевидно, что на к-м шаге алгоритма в качестве опорной можно взять вершину с номером 2п — к. Для реализации алгоритма достаточно уметь реализовать следующие процедуры: поиск очередной опорной вершины; удаление из текущего декомпозиционного дерева двух висячих вершин и сопоставление опорной вершине со-цепи С\ объединение двух со-цепей в одну со-цепь (в случае, когда опорной вершине соответствует индекс р); преобразование последовательной композиции двух ю-цепей в со-цепь (в случае, когда опорной вершине соответствует индекс s). Реализация всех процедур, за исключением последней, подробно описана в предыдущем параграфе. Отметим, что их реализация при выполнении всех п — 1 шагов алгоритма требует выполнения не более ОЫ log п) операций. Рассмотрим последнюю из перечисленных процедур. Пусть С = CxsC2i = (гх, i2, ..., Ц), С2 = (Д, /2У ... »•. Jv2)r a v{i) и и{2) —корни сбалансированных 2-3-деревьев, представляющих со-цепи С4 и С2 соответственно. Сравним со (iVl) и со(/!), очевидно, со (Ц)= <о (уЙ}п), со (j\) = со (USnax). Если со (iVl) > (Д),; то С" является со-цепыо и в этом случае достаточно объединить сбалансированные 2-3-деревья с корнями у(1) и i/2). Если Oi)r то объеди¬ няем iVl и /J в составной элемент [iVli/i]- Для реализации такого объединения достаточно удалить вершины iVl и h из со-цеией С4 и С2, удалить содержимое клеток j\ третьей и четвертой строк таблицы 2, а содержимое клеток iVl этих строк заменить значением со (iVlr 7i)- Пусть С[ и С2—цепи, полученные из С4 и С2 в результате удаления вершин iVl и j± соответственно. Обозначим вновь через v{i) и v{2) корни 250
сбалапсировапиых 2-3-деревьев, представляющих цепи С[ и Ci Сравниваем co(i°), где i° = [iVl, h]t и Если ^(уш1п) ^ (i°), образуем новый составной элемент, объ¬ единяя элемент, являющийся меткой Vm\n, и элемент i°. В противном случае сравниваем сoU°) и (o(i>max). Еслисо(^0)^ ^©(утах)т объединяем i° и элемент, являющийся меткой (2)' Ушах»- и переходим к дальнейшим сравнениям. Процесс образования новых составных элементов завершается получением одной из следующих ситуаций: 1) в составной элемент i° вошли все вершины цепей Сх и С2; 2) в i° вошли все вершины Сх и со (i°) >о) (i>max); 3) в i° вошли все вершины С2 и <о (rm!n) > w (i°); 4) со(г;т1п)>(о(^°)> >ю(ушах). В первом случае элемент i° представляет искомую co-цепь С. Во втором и третьем случаях элемент i° нужно присоединить к сбалансированному 2-3-дереву с корнем v{2) либо н(1) соответственно, а в четвертом — объединить деревья с корнями и(1) и v{2) и к полученному сбалансированному 2-3-дереву присоединить элемент i°. Реализация процедур удаления вершины из (о-цепи, представленной сбалансированным 2-3-деревом, и объединения таких деревьев требует выполнения не более О (log п) операций каждая. Образование повых составных элементов при преобразовании последовательно-параллельного графа G в цепь может осуществляться не более п — 1 раз. Поэтому реализация всех процедур преобразования последовательной композиции двух co-цепей в одну co-цепь требует выполнения не более 0(п log п) операций. Таким образом, временная сложность алгоритма построения оптимальной перестановки пп при условии, что граф G является последовательно-параллельным и представлен своим полным декомпозиционным деревом TiG), не превосходит O(nlogn). В этой оценке не учтено число операций, необходимых для вычисления приоритетов образующихся составных элементов. Можно отметить, однако, что для всех приоритето-порождающих функционалов, рассмотренных в § 1 данной главы, это число является постоянной величиной. 4.4. Пример. Рассмотрим задачу минимизации суммы линейных штрафных функций (см. п. 1.1, а) данной главы) при условии, что на множестве требований задано отношение строгого порядка, граф редукции которого является последовательно-параллельным. 251
Граф G редукции отношения строгого порядка и его декомпозиционное дерево T{G) изображены на рис. 4.1, значения параметров а<, {$» и U требований приведены в табл. 4.1. Воспользовавшись формулой (1.4), вычислим приоритеты элементов множества iV = {l, 2, 3, 4, 5): со(1) = 12, 11 / \ V о(2) = 3, (о(3) = —4, со(4) = 4, о(5) = 1. Построим таблицы 1 (табл. 4.2) и 2 (табл. 4.3). На первом шаге в качестве опорной выбрана вершина 9, на втором — вершина 8. Таб- Таблица 4.1 i 1 2 3 4 5 ос. г 12 6 -20 12 8 Р* 5 8 16 -1 7 и 1 2 5 3 8 Таблица 4.2 I Номер вершины 1 2 3 4 5 6 7 8 9 II Номер непосредственного предшественника 6 8 8 9 9 6 7 7 III Номер корня сбалансированного 2-3-дерева 1 2 3 4 5 IV Номера прямых потомков 1,7 8,9 2,3 4,5 V Индекс операции композиции S S Р Р лицы 1 и 2 после выполненця первых двух шагов представлены табл. 4.4 и 4.5 соответственно. Пустые столбцы таблицы 1 опущены. 252
На третьем шаге в качестве опорной выбрана вершина 7. Таблицы 1 и 2 после выполнения третьего шага представлены табл. 4.6 и 4.7 соответственно. На третьем шаге образовался составной элемент [3, 4, 5], со(3, 4, 5) = 0. Таблица 4.3 I 1 6 7 8 9 II G 6 7 7 III 1 6 7 IV 1,7 8,9 V S S Таблица 4.5 I 1 2 3 4 5 6 7 II 6 6 7 7 III (12) (3) (-4) (4) (1) 3(—4) 5(1) IV (12) (3) (-4) (4) (1) 2(3) 4(4) V 2,3 4,5 Табл и ц а 4.6 I 1 6 7 II 6 6 III 1 IV 1,7 V S В качестве U используется номер элемента из N, расположенного на первом месте в составном элементе. На четвертом (последнем) шаге опорной является вершина 6. Таб- 253
лица 2 после вьтолйейий четвертого гпагй представлена табл. 4.8. После выполнения четвертого шага получена co-цепь С, представленная сбалансированным 2-3-деревом с корнем 6 (табл. 4.8). Восстановим эту оо-цепь: С = (1, 2, 3). Поскольку через 3 обозначен составной элемент [3, 4, 5], цепь С = (1, 2, [3, 4, 5]). Таким образом, перестановка я* = (1,2, 3Л)415) является оптимальной. Таблиц а 4.7 Таблица 4.8 4.5. Пусть {Gi, G2, ..., Gm] — множество висячих вершин полного декомпозиционного дерева 74G) графа G, и для каждого графа Gi из этого множества существует последовательность Li преобразований I, II, переводящая его в последовательно-параллельный граф. Из следствий 4.1 и 4.2 вытекает, что последовательность L = (LU L2, ..Lm) переводит граф G в последовательно-параллельный граф G'. В этом случае, применяя преобразования I, II, граф G можно перевести в цепь. Действительно, построим дерево T(G) и преобразуем компоненты Gi (i = 1, т) разложения графа G в последовательно-параллельные графы G{ соответственно. Для каждого графа G* построим его полное декомпозиционное дерево 7’(Gi). Заменив в дереве T{G) вершины Gi (J = 1, т) декомпозиционными деревьями 254
T{G\) (для чего достаточно из 74G) удалить вершину Gt, а дугу, входящую в эту вершину, заменить дугой, входящей в корень дерева Т (бч))> получим полное декомпозиционное дерево T{G') графа G'. Далее достаточно воспользоваться алгоритмом, описанным в п. 4.3 данного параграфа. § 5. Общий случай Задача отыскания перестановки л*, доставляющей на множестве &*n(G) минимум приоритето-порождающему функционалу РЫ), при произвольном G является УУР-труд- ной. Это непосредственно следует из того, что ЛФ-трудной является задача минимизации на 3PSG) функционала (1.1) из § 1 дайной главы при линейных штрафах (см. § 5, гл. 4). Применение преобразований I, II к графу G позволяет получать такой граф G', что ^„(G') s £Pn(G) и множество ^n(G') содержит хотя бы одну оптимальную перестановку. В ряде случаев, например, когда граф G является последовательно-параллельным, можно указать последовательность преобразований I, II, переводящую G в цепь и обеспечивающую тем самым получение оптимальной перестановки пп, В общем случае такой последовательности может не существовать, и применение преобразований I, II позволяет лишь сузить область поиска яп. В данном параграфе приводится алгоритм построения последовательности L0 преобразований I, II, переводящей граф G в так называемый тупиковый граф. Временная сложность этого алгоритма не превосходит ОЫк). Далее (в § 6) анализируются ситуации, в которых тупиковый граф, полученный из G в результате выполнения последовательности U преобразований I, II, заведомо окажется цепыо. 5.1. Граф будем называть тупиковым, если к нему нельзя применить ни преобразование I, ни преобразование II. Последовательность Ь° преобразований I, II, переводящую граф G — (JV, U) в тупиковый граф, будем называть тупиковой для G. Для описания алгоритма преобразования графа G в тупиковый граф G0 введем обозначения: тахЛ(£, у) — = max (со(/с)|/с е= A(i, /) U /}; minBii, /) = min {со(А:)I/сs е B(i, у) U i)\ M(G) = и M(G) = — матрицы смеж¬ ности графа G и его транзитивного замыкания соответственно. 255
Алгоритм работает по следующей схеме. а) Организуется список элементов множества N. б) К графу последовательно (при просмотре списка) применяются все возможные преобразования II. После получения ситуации, в которой к текущему графу нельзя применить ни одного преобразования II, следует возврат к началу списка и переход к п. в.). в) При выборе из текущего списка очередного элемента i проверяется возможность применения к текущему графу преобразования I-[y, &], где Если это преобразование оказывается допустимым, оно выполняется, список модифицируется и осуществляется возврат к началу списка. После возврата к началу списка следует переход к выполнению и. б). Если преобразование I-[y, i] недопустимо для текущего графа, то осуществляется переход к следующему элементу списка. Процесс завершается, когда к текущему графу нельзя применить ни одного преобразования I или II, т. е. когда при выполнении и. в) не удалось провести ни одного преобразования I. _ 5.2. Пусть матрицы M(G), M(G) заданы и приоритеты элементов множества N вычислены. Алгоритм преобразования G в тупиковый граф состоит из двух этапов — вспомогательного и основного. На вспомогательном этапе осуществляются следующие процедуры. а) Для каждого i^N выделяем множество B°U), проверяем выполнение условия |/i°(£)l=l и, если это условие выполнено, сравниваем со(£) и^о(у), где у «—► i. Если со(0 ^ > со(у), выделяем множество A(i, у) и находим таxA(i, у). Если (оШ<со(у), переходим к следующему элементу i е N. б) Для каждого i е N находим все j^E(i) такие, что о)(0^о)(у). Выделяем для них множества B(i, у) и A(i, у) и находим min Ж/, у) и max Л (г, у). Хранение информации, полученной па вспомогательном этапе алгоритма, организуем следующим образом. Сформируем две таблицы размерности 3 X п (таблица 1) и 2 Xnz (таблица 2). В первой строке таблицы 1 хранятся значения co(i). В i-й клетке второй строки — номер элемента у, если |5°Ш1 = I и у > i. В противном случае (|В°(£)1 Ф 1) эта клетка остается пустой. В i-ii клетке третьей строки хра- пится значение maxAU, у), где у если |B°U)I = 1. Если \В°Ц)\Ф1, то i-я клетка третьей строки остается пустой. 256
Таблица 2 предназначена для хранения зпачений min B(i, j) (первая строка) и тах^Ш, /) (вторая строка). Эти зпачепия располагаются в столбце с номером n(i— 1) + + /. Очевидно, клетки столбца с номером nii— l) + i всегда пусты. Основной этап алгоритма включает следующие процедуры. а) Организуем список элементов множества N, упорядочивая их произвольным образом (например, по неубыванию приоритетов). б) Для каждого элемента г списка, начиная с первого, осуществляем следующие проверкой преобразования. Проверяем выполнение условия ттЖй /)^тахЖг, /) для каждого j^E(i). Для всех удовлетворяющих это¬ му условию, осуществляем преобразования II-(i, 7) и переходим к следующему элементу списка. Если для_ всех j^Eii) имеет место неравенство ттЖг, ;) < max A(i, 7), либо E(i) = 0, то переходим к следующему элементу списка. Если при очередном просмотре всего списка не удалось провести ни одного преобразования II, переходим к выполнению и. в). в) Для каждого элемента i списка, начиная с первого, осуществляем следующие проверки и преобразования. Если |В°Ш1==1, проверяем выполнение условия соШ ^ >шаxA(i, 7), где ] > i. Если это условие выполнено, осу¬ ществляем преобразование 1-[/, й. Удаляем из списка элементы i и /, включаем в него элемент [/, й и возвращаемся к пачалу преобразованного списка. После возврата к пачалу списка переходим к выполнению п. б). В случае, когда |5°(й1 Ф 1 либо соШ <тахА(£, /), переходим к следующему элементу списка. Процесс завершается, если при очередном выполнении п. в) пе нашлось ни одного допустимого для текущего графа преобразования I. Перейдем к оценке временпой сложности алгоритма и детализации отдельных процедур основного и вспомогатель- його этапов. Реализация всех проверок для одного элемента списка требует выполнения не более О(п) операций. Поэтому реализация всех проверок при просмотре списка до осуществления первого преобразования I или II требует выполнения пе более 0(п2) операций. Общее количество таких просмотров не превосходит пЫ + 3)/2. Действительно, преобразование I может быть выполнено не более /г — 1 раз. Преобразование II — пе более п(п —1)/2 раз, поскольку в 17 в. С. Танаев и др. 257
матрице MiG) не более nin — W2 единиц (G — бесконтур- ный граф), а в результате выполнения одного преобразования II в нее вводится по крайней мере одна новая единица. Кроме того, возможны еще п «пустых» просмотров при выполнении п. б) и один — при выполнении п. в). Таким образом, реализация всех проверок описанного вида при преобразовании G в тупиковый граф требует выполнения не более Oink) операций. Оценим временную сложность реализации процедур, описанных в пп. а) и б) вспомогательного этапа. Выделение множества B°d) осуществляется с помощью матрицы MiG): элемент j ^ B°d) тогда и только тогда, когда mi5 = 1. Поиск всех элементов i^N таких, что |В°Ш1 = «= 1, требует выполнения не более Oin2) операций. Выделение множества Ad, j) для каждого фиксированного элемента N требует выполнения не более Oin) операций. Действительно, Ad, /) = Aij)\(A d) U i) щ следовательно, элемент k^N принадлежит множеству Ad, j) тогда^ и только тогда, когда mjk= 1 и mik = 0. Определение max Л (г, /) для всех i^N таких, что U5°(i)l=l, требует выполнения не более чем Oin2) операций. Таким образом, реализация описанной в п. а) процедуры требует выполнения не более Oin2) операций. Выделение множества Ed) осуществляется с помощью матрицы MiG) (элемент j^Eii) тогда и только тогда, когда Мц *= friji = 0) и требует выполнения не более О(п) операций для фиксированного элемента i ^ N. Выделение множеств Ad, j) и Bd, j) для фиксированной пары элементов i, j требует выполнения не более О in) операций, а для всех пар — не более Oin3) операций. Реализация описанной в п. б) процедуры требует, таким образом, выполнения не более Oin3) операций. Рассмотрим подробнее процедуры реализации преобразований I и II и оценим их временную сложность. Пусть G — граф, над которым выполняется данное преобразование I или II, a G' —- граф, полученный из G в результате выполнения этого преобразования. Реализация преобразования I. Пусть |5°Ш1 = 1 и toii)> > таxAGd, j), где / > i.Тогда каждый элемент i-й строки и i-ro столбца матриц MiG) и MiG) заменяем на минус единицу, которая указывает на то, что вершина i удалена из графа. Полученную из MiG) матрицу обозначим через М'. Для получения матрицы MiG') необходимо заменить в матрице М' часть нулей, расположенных в строке /, единицами. Если вершина к является прямым потомком вер¬ 258
шины i в графе G, но не является потомком вершины / в графе с матрицей смежности ДГ, то к-й элемент строки ; матрицы М' заменяем на единицу. Поскольку поиск всех потомков вершины j по матрице М' требует выполнения не более ОЫ2) операций (см. п. 1.4 § 1 гл. 1), а все остальные из описанных процедур — не более ОЫ) операций каждая, получаем, что для построения матриц M(G') и M(G') достаточно выполнить не более ОЫ2) операций. В таблице 1 содержимое /-й клетки первой строки заменяем на со (/, £), а содержимое всех клеток £-го столбца удаляем. Для всех k^A°G(i) выделяем множества_BGt (к). Если | Bq> (А) | = 1 В а* (к) \=^=1, находим max AG, (k,j)r где j к, и содержимое /с-й клетки второй строки таблицы 1 заменяем индексом у, а к-й клет¬ ки третьей строки — значением max Ас, (kr j). Поскольку | Ag (i) | < лг, реализация этой процедуры требует выполнения не более 0{п2) операций. Для каждого к ^ AG(j)\i и всех тех множеств А(к, Z), В(/с, Z), А(1, к), jB(Z, к), которые выделены^ ранее, находим значения шах ЛС/(/с, Z), min BG, {к, Z), max AG,(lx к)% min BGt (Z, к) и заменяем ими содержимое соответствующих клеток таблиц 1 и 2. Для определения номеров клеток таблиц, содержимое которых следует скорректировать, достаточно выполнить следующие действия. В таблице 1 проверить содержимое к-й клетки второй строки (корректировка осуществляется, если клетка не пуста). Отыскать те клетки второй строки, где содержится число, равное к (тем самым будут^ найдены номера Z клеток, содержащих значения max^G(Z, к)). В таблице. 2 необходимо просмотреть клетки с номерами вида п{к — 1) + Z и n(l— 1)+/с (Z = 1, п). Корректировка осуществляется, если клетка не пуста. Поскольку IBG(j) U AG{jj\ < п, а число множеств вида А(к, Z), В(к, Z), А(1, к), В(1, к) не превосходит 4(/г — 1), реализация последней процедуры требует выполнения не более ОЫ3) операций. Преобразование I может быть осуществлено не более п — 1 раз, поэтому реализация всех преобразований I требует выполнения не более ОЫ4) операций. Реализация преобразования II. Пусть i ~ / и min BG(i, j) ^max^40(Z, j). Тогда в матрице M(G) полагаем та = 1, а в матрице М{Ь) полагаем тм = 1 для всех таких пар к и I элементов, что к е BG(i) U Z, l^AG{j)Uj. Кроме того, если в исходной матрице M(G) для некоторых из указанных пар /с, Z элемент тм = 1, то в M(G) полагаем ты = О (в этом случае дуга (&, Z) после добавления в граф дуги 17* 259
(г, у) станет транзитивной). Описанная процедура требует выполнения не более чем 0(п2) операций. Для^ всех k^BG(i, у) U i и l^EG,(h) выделяем множества AG,(kxl)t если co(/t) ^ (о(/), и множества AG, (1ък)л если со (А:) ^ о> (Z). Находим значения max AG, (к% I) и max Л G/(/, A:) для всех выделенных множеств и заменяем ими содержимое соответствующих клеток таблицы 2. Для всех к е AG{i, у) U у и l^EGf(k) выделяем множества ВG/(k1l)l если со(/с) > соШ, и множества BG, (1хк), если со(&) ^ coU). Находим значения min BG, (к} l)x minBG, (1Мк) и осуществляем корректировку таблицы 2. Кроме того, для таких к е Ae(i, j) U /, что |Д®, (к) I = но |5“ (к) | ¥=U и та- G' — ких 1Л что >к и со (к)^ со (Z), выделяем множества Ас,{к11)л находим значение max AG, (к% I) и помещаем его в к-ю клетку третьей строки таблицы 1, а в к-ю клетку второй строки помещаем индекс L Если | BG, (у) | Ф 1 и | BG (у) | = 1А удаляем содержимое клетки у второй и третьей строк таблицы 1. Реализация процедур выделения перечисленных множеств и отыскание значений max AG,{kx l)% max AG,(l1k)t min BG/(k1l)1 min BGt (lx к) требует выполнения не более чем 0L#i2(I5gU, У) I + IAG{i, y')i)] операций. G другой стороны, в результате выполнения преобразования П-U, у) в матрице M(G) появится по крайней мере IBG(i, у) 1 + + \AQ(i, у) 1 + 1 новая единица. Следовательно, введение в M(G) одной новой единицы требует выполнения не более чем 0(raz2 операций. Поскольку количество единиц в матрице M(G) не может превосходить п(п—1)/2, реализация всех преобразований II требует выполнения не более 0(/г4) операций. Таким образом, временная сложность описанного алгоритма преобразования графа G в тупиковый граф не превосходит 0(я4). Далее этот алгоритм будем называть D-алгоритмом. 5.3. Пример. Пусть элементам множества = (1, 2, 3, 4, 5, 6, 7} сопоставлены числа at = 4, а2 = 2, а3 = а4 = 3, а3 = 1, а6 = 7, а7 = 5. Ha N задано отношение -+• строгого порядка, граф G редукции которого изображен па рис. 5.1, а. Па множестве У* задан некоторый приоритето- порождающий функционал ЕЫ) с функционалом приоритета со(л), определенным на множестве 1 = У* следую- 260
и гцим образом: со (яг) = 2 aifrt если яг Ф (2, 3), ге{яг) о.(2, 3) = 6. Для отыскания перестановки я*, доставляющей функционалу Fin) минимум на множестве ^*7(G), воспользуемся D-алгоритмом. Построим матрицы MiG) и MiG) и вычислим приоритеты элементов множества N: 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 M{G) = 0 0 0 0 0 0 1 , M(G) = 0 0 0 0 0 0 1 т 0 0 0 0 0 10 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (1) = 4, м(2) = _ < 2, со II и II со 0) (5): 1, (0 (6) = 7, (7) = 5. Организуем список Si = (5, 2, 3, 4, , 1 1, 7 1 6) элементов множества N, упорядочивая их по неубыванию приоритетов. Преобразование П-(4, 2) является допустимым для графа G. Выполнив его, получим граф G(1) (рис. 5.1, б), к которому нельзя применить ни одного преобразования II. Первым (относительно списка SА) допустимым для G(1) преобразованием является 1 -[2, 3]. Выполнив это преобразование, получаем граф G(2), к которому можно применить лишь одно преобразование — 1-15, 6]. Нетрудно убедиться, что полученный граф G(3) (рис. 5.1, в) является тупиковым. Таким образом, последовательность L1 = (II-(4, 2), I-L2, 3], I-L5, 6J) переводит G в тупиковый граф G(3), не являющийся цепыо. Очевидно, 5^7(G(3)) <= ^7(G), l^7(G)I = 105, l^7(G(3))| =16. Вернемся к исходному графу G и организуем другой список S2 = (6, 7, 1, 3, 4, 2, 5) элементов множества N. В этом списке элементы упорядочены до невозрастанию их приоритетов. Относительно списка S2 первым допустимым 261
преобразованием для графа G(1) является 1-[5, 6] (значение со(5, 6) =*= 4). После его выполнения список принимает вид S2 = (7, 1, [5, 6], 3, 4, 2) (сохраняем упорядочение элементов по невозрастанию приоритетов). Относительно полученного списка первым допустимым является преобразование Н-(7, 2). Следующим допустимым является преобразование II-Q5, 6J, 1), затем — преобразование II-Q5, 6], 4). Возвращаемся к началу списка и убеждаемся, что преобразование I-L4, 7] является допустимым (со(4, 7) =4). Список после корректировки имеет вид S2 = (L4, 7J, 1, [5, 6], 3, 2). Очередным допустимым является преобразование II-([4, 7], 1). Граф, полученный после выполнения этого преобразования,—цепь С = ([5, 6], [4, 7], 1, 2, 3). Таким образом, последовательность Ь2 = (П-(4, 2), 1-[5, 6], П-(7, 2), Н-([5, 6], 1), П-([5, 6], 4), 1-[4, 7], Н-([4, 7], 1)) переводит исходный граф G в цепь С и, следовательно, перестановка л; = (5, 6, 4, 7, 1, 2, 3) является искомой. 5.4. Из рассмотренного в предыдущем разделе примера следует, что для любого графа G существует, вообще говоря, несколько тупиковых последовательностей преобразований I, II. Причем некоторые из них могут переводить G в тупиковый граф, не являющийся цепыо (последовательность Li в примере), другие переводят G в цепь (последовательность Ь2). Получение той или иной последовательности зависит от порядка просмотра элементов множества JV, т. е. от вида исходного списка элементов N и от способа его корректировки после выполнения очередного преобразования I. В общем случае последовательности преобразований I, II, переводящей исходный граф в цепь, может и не существовать. Функционал приоритета со (я) называется автоограничен,- пым, если для любых таких перестановок я(а), я(Ь), я(с), я(<0 из (?[&*], что перестановка (я(а), я(Ь)) принадлежит QI&*], со(я(с)) ^ со(я(а)) ^ co(n(d)) и со(я(г)) ^ со(я(Ь)) ^ co(tt(d)), выполняется условие со(я(с)) ^ со(я(а), я(Ь)) ^ co(n(d)), а при со(я(а)) = со(я(Ь)) = с выполняется со(я(а), я(Ь)) = с. Очевидно, для того чтобы функционал со (я) был авто- ограниченным, достаточно, чтобы для любых перестановок я(а), я(Ь) из J, (я(а), я{b))^Q[&\, выполнялось условие min (со(я(а)), со(я(6))) ^ со(я(а), я(Ь)) ^ ^ max (со(я(а)), о)(я(6))>. (5.1) Как будет показано в дальнейшем (см. § 6 этой главы), условие автоограниченности функционала приоритета яв¬ 262
ляется достаточным для того, чтобы любая тупиковая для последовательно-параллельного графа G последовательность преобразований I, II переводила его в цепь. Отметим, что в рассмотренном выше примере функционал со (л) не является автоограниченным, а граф, представленный на рис. 5.1, а, является последовательно-параллельным. Можно привести и другие примеры приоритето-порождающих функционалов F(n) с неавтоограпиченными функционалами приоритета. Пусть N = И, 2, .. ., тг), п ^ 4, каждому элементу i ^ N сопоставлены числа а»• и р,-. Множество 9* состоит из всех перестановок длины четыре и более, имеющих вид я = (л', л"), где (я'} = (1, 2, 3), {я"}^ ^Л^\{л'}. На 9 задан функционал F (я) = шах | 2агь + Ku^r Ik=l ) где я = (гь г2, ..., U), г > 4. Пусть а1= — 1, а2 = а3 = ], Pi = = 1, Рз = 2; а» >5, i = 4, гс. Определим на множестве функционал со (я) следующим образом: со (я) = sign (— 2 aH/V-FM + max |0, 2 аг\I Для V г<={я> /\ I г€={я} )/ всех tc^Q[9*], не совпадающих с перестановкой (2, 3), гг а ©(2, 3) = 17+1, где W > 2 (| «г | + | Pi |). Нетрудно убе- г=1 диться, воспользовавшись полученным в п. 1.4 первого параграфа главы 3 результатом, что указанный функционал со(я) является функционалом приоритета для F(я). Имеем со(1) = W, со(2) = — W + 1, со(3) = — W + 2 и, таким образом, со(1)>со(2), со(1)>со(3), но со(2, 3)>со(1), т. е. функционал со (я) не является автоограниченным. Отметим, что построение для данного конкретного приоритето-порождающего функционала F(n) функционала приоритета, который не был бы автоограниченным, требует определенной изобретательности. В то же время все известные функционалы приоритета (см. § 1 данной главы) являются автоограниченными. Действительно, рассмотрим, например, функционал (1.7). Он имеет вид со(я) = ЧЧяЭ/Т'Чя). Пусть я(а), я(Ь)—такие перестановки из Q19J, что я = (я(а), я{b)) ^ Q[9] и со(я(а)) ^ со(я(Ь)). Покажем, что со(я(а)) со(я) ^ со(я(Ь)). Используя соотношение (1.31) из п. 1.9 § 1, имеем ( . _ Y (л(а)) + Y (л(а)) Y (л(Ь)) + W (я(Ь)) а{Л)~ F (я(а)) + F (л<а>К(я(5)) + FMb)) ' 263
Поскольку Fin{a)) > 0, из со(я(ч)) ^ со(я(Ь)) получаем Чг(я(Ь)) >F(^(b))4f(jt(e))/F(n(a)). Следовательно, , у ^ У (я(а)) + У (л(а)) У (я(Ь)) + /? (я(Ь)) У (я(а))//? (л(а)) __ 00 Я ^ F (л(а)) + (л(а)) V (л(Ь)) + F (л(Ь)) *“ - ^(я(а))/^(я(а)) = о)(я(а)). С другой стороны, Ч;(я(а))>0, поэтому F(я(о)) ^ > Чг(я(а))/г(я(Ь))/Ч/*(я(Ь)). Следовательно, п ы ^ V (я(а)) + У (я(а)) У (я(ь)) + Y (я(Ь)) = W ^ V (л^) F (л<ь))/У (я(ь)) + Y (я(а)) F (л<ь>) + F (я(Ь)) = У(я(ь))/^(я(ь)) = со(я(6)). Таким образом, со(я(а)) ^ со(я) < со(я(Ь)) и функционал (1.7) является автоограниченным. Аналогичным образом можно убедиться, что и остальные функционалы приоритета, построенные в пп. 1.1 — 1.7 дан- пой главы, являются автоограниченными. Теорема 5.1. Если функционал Fin) является приоритето-порождающим на множестве 3>, то на множестве QY3P\ существует его автоограниченный функционал приоритета. Доказательство. Будем считать далее для краткости записи, что все перестановки я, на которых вычисляются значения Fin) либо со(я), принадлежат множеству & либо Q[£P] соответственно. Пусть со(я)— функционал приоритета для Fin), и существует такая перестановка я(1) = = (я(а), я(Ь)), что со(я(1)) > max (со(я(а)), со(я(Ь))}. Если я(2) — такая перестановка, что (я(1)) П {я(2)} = 0 и max (со(я(а)), о(я(6))} ^ со(я(2)) < со(я(1)) либо max (со(я(а)), со(я(Ь))} < < со(я(2)) < со(я(1)), то, как следует из определения приоритето-порождающего функционала, Fin(i), п{2))< Fin{2), я(1)) = = F(n{2\ я(а), nib)XFin(a), я(2), я(Ь))<Ля(а), я<ь\ я(2)). Отсюда получаем Fin<a), я(Ь), я(2))=Ля(а), я(2), я(Ь))=Е(я(2), я(а), я(Ь)). (5.2) Положим со'(я(1)) = max (со(я(а)), со(я(Ь))) и со'(я) = со(я) для всех перестановок я из QI&], не совпадающих с я(1). Из соотношения (5.2) вытекает, что построенный функционал со'(я) является функционалом приоритета для Fin). Аналогично, если со(я(1)) < min (со(я(а)), со(я(Ь))}, можно положить со'(я(1)) = min (со(я(а)), со(я(Ь))}, со'(я) = со(я) при я^я(1). Полученный функционал со'(я) является, как и со (я), функционалом приоритета для Fin). 264
Будем скроить удовлетворяющий условиям (5.1) функционал о'(я), начиная с перестановок единичной длины, следующим образом. Полагаем со 4i) = о)Ш для всех элементов i&N. Пусть я = U, у). Полагаем со'(я) = со(я) для всех я, удовлетворяющих условию min (со'Ш, соЧ/)} ^ со(я) ^ ^ тах(соЧ0, соЧу)}. Затем для всех я = (£, у) таких, что со(я)> max (соЧг), соЧу)), полагаем соЧя)= max (co4i), соЧу)}. После этого для всех я = (£, у) таких, что со(я) <min{co40, соЧу)}, полагаем соЧя) = min {соЧО, соЧу)). Пусть новый функционал приоритета построен для всех перестановок длины т, 2^т<п. Построим соЧя) для перестановок длины 771+1 следующим образом. Полагаем соЧя) = = со(я), если min (соЧя(а)), соЧя(г>))} ^ со(я) ^ max {соЧя(а)), соЧя(Ь))} для всех таких перестановок я(а), я(Ь) из QUPJ, что я = (я(а), я(Ь)). Затем находим все перестановки я^е е Q[3>\ такие, что для них в Q[&\ существуют перестановки я(а), я(Ь), удовлетворяющие условиям я = =(я(а), я(Ь)), со(я)> max (соЧя(а)), соЧя(Ь))}. Полагаем соЧя) = = min (max(соЧя(а)), соЧя(Ь))Л(я(а), я(Ь))=я, со(я) > >max(соЧя(а)), соЧя(Ь))}). После этого для всех ят+1 ^ Q[@] таких, что в QitP] существуют перестановки я(а), я(Ь), удовлетворяющие условиям я = (я(а), я(Ь)), (о(я) < min {(оЧя(а)), а>Чя(Ь))}, полагаем соЧя) = max {min {соЧя(и)), соЧя(Ь))} I (я(а), я(Ь)) = я, со(я) < min {(оЧя(а)), о)Чя(Ь))}}. Описанный процесс построения функционала соЧя) может быть реализован. Действительно, пусть для всех яг, г <771, выполнено условие (5.1) для функционала соЧя) и я = (я(а), я(Ь)) — такая перестановка длины т + 1, что со(я) > max {(оЧя(а)), соЧя(Ь))}. Покажем, что в этом случае не существует таких перестановок я(с), я(<0, что я = = (я(с), я(*°) и (оЧя) < min {(оЧя(с)), соЧя^)}, где соЧя) = = max{(оЧя(а)), соЧя(Ь))}. Предположим, что эти перестановки существуют. Возможны следующие варианты: 1) соЧя(а)) ^ о)Чя(Ь)), (оЧя(с)) ^ <оЧя(<0); 2) соЧя(а)) ^ соЧя(Ь)), о)Чя(с)) < (оЧя(й)); 3) соЧя(а)) < (оЧя(Ь)), (оЧя(с)) ^ (оЧя(£°); 4) (оЧя(а)) < соЧя(Ь)), (оЧя(с)) < (оЧя(й)). В условиях первого варианта имеем соЧя(Ь)) ^ о)Чя(а)) = соЧя) < а>Чя(й)) ^ соЧя(с)). (5.3) Пусть я(с) = (я(а), я), тогда я(Ь) = (я, я('°). Поскольку (5.1) выполняется для функционала соЧя) на всех перестановках длины г ^7П, из (5.3) получаем соЧя) > соЧя(а)). Следовательно, соЧя(Ь)) = соЧя, n(d)) > о)Чя(а)), что проти¬ 265
воречит условиям первого варианта. Пусть я(а) «* (я(с), я), тогда Jt(d) = (я, я(Ь)). Из (5.3) имеем со'(я(а)) < со'(я(с)) и, следовательно, (о'(я(а)) > (о'(я). С другой стороны, о)'(я(Ь))< <со/(я(сг)), поэтому соЧя) > (о/(я(<£)). Таким образом, со'(я(а)) ^ со'(я) ^ (o4n(d)), что противоречит (5.3). В условиях третьего варианта имеем (о'(я(и)) < со'(я(Ь)) = соЧя) < <оЧя(<0) ^ соЧя(с)). (5.4) Если я(с) = (я(а), я), то я(Ь) = (я, я(й)) и из (5.4) получаем о),(я(Ь)) > <г>Чя(с)) и со(я(Ь)) ^ со(я). Следовательно, соЧя(Ь)) ^ о)'(я(с)), , что противоречит (5.4). Пусть я(а) = = (я(с), я), я(£° = (я, я(Ь)), тогда из (5.4) получаем со'(я) ^ ^ юЧя(<0) > соЧя(Ь)) И 0)'(я(а)) = со'(я(с), я) > соЧя(Ь)), что противоречит условиям третьего варианта. Аналогичным образом можно убедиться, что в условиях второго и четвертого вариантов также приходим к противоречию. Из приведенных рассуждений следует, что, имея функционал со (я) и действуя описанным выше образом, можно построить новый функционал приоритета со'(я) для функционала /Чя). Очевидно, со'(я) будет автоограниченным. Теорема доказана. Из приведенного доказательства следует, что для любого приоритето-порождающего на множестве функционала, на множестве Q[9*\ существует его функционал приоритета, удовлетворяющий условию (5.1). § 6. Условия сходимости В данном параграфе показывается, что условие автоограниченности функционала приоритета является достаточным для того, чтобы любая тупиковая для последовательно- параллельного графа G последовательность преобразований I, II переводила его в цепь (теорема 6.3). Тем самым применение описанного в предыдущем параграфе ^-алгоритма гарантирует получение оптимальной перестановки, по крайней мере, при последовательно-параллельных графах. Доказательство теоремы 6.3 проводится индукцией по числу вершин графа G, исходя из того, что любой последо- .вателыю-параллельный граф может быть представлен в виде последовательной либо параллельной композиции двух графов Gi и G2, каждый из которых является в свою очередь последовательно-параллельным. При этом используется тот факт (устанавливаемый теоремами 6.1 и 6.2), что любая 266
тупиковая для G последовательность преобразований I, II переводит его в цепь тогда и только тогда, когда любые тупиковые для графов Gi и G2 соответственно последовательности преобразований I, II переводят Gt и G2 в цепи. В заключение параграфа показывается, что, рассматривая графы G и функционалы приоритета в их взаимосвязи, можно описать существенно более широкий класс ситуаций, в которых D-алгоритм также гарантирует получение оптимальной перестановки. 6.1. Пусть L — некоторая последовательность преобразований I, II графа G. Обозначим через L(v) подпоследовательность последовательности L, состоящую из первых v преобразований, а через G(v) — граф, в который L(v) переводит исходный граф G. I Последовательность L преобразований I, II называется допустимой для графа G, если (v + D-е по порядку преобразование в последовательности L является допустимым для графа G(v) (v = 0, Z—1). Здесь I — число преобразований в последовательности L, a G(0) = G. Граф G будем называть приводимым (при данном функционале приоритета), если любая тупиковая для G последовательность преобразований I, II переводит его в цепь. Теорема 6.1. Пусть G = GisG2. Для того чтобы граф G был приводимым, необходимо и достаточно, чтобы графы Gt и G2 были приводимыми. ' Доказательство. Необходимость. Пусть существует последовательность Li преобразований I, II, переводящая граф Gi = {Nu U{) в тупиковый граф G[ = (iV{, и[)у не являющийся цепью. Покажем, что в этом случае существует последовательность преобразований I, II, переводящая граф G = (N, U) в тупиковый граф, не являющийся цепью. Обозначим через G2 = (Л^2, С/2) тупиковый граф, полученный из G2 в результате выполнения некоторой последовательности L2 преобразований I, II. Предположим, что граф Gx нельзя представить в виде г — II — III — III G1 = G1sG1, где Gx— цепь. Построим последовательность L=(Li, L2). В силу следствия 4.1 из § 4 данной главы, последовательность L является допустимой для графа G. Обозначим через G' граф, в который L переводит граф G. Нетрудно заметить, что G' = G1sG2 и последовательность L является тупиковой для графа G. тт /V n" п"' п'" Пусть Gi = CrjSCzj, где Сгх — цепь, причем максимальной длины. Тогда G' = G1sGil где G2 = Gx sG2. Обозначим через 267
L3 тупиковую для G2 последовательность преобразований (можно показать, что Ьь состоит только из преобразований I). Построим последовательность V = (L, L3). Если L3 переводит G2 в граф G2, а V — граф G' в граф G", то G" = = G1sG2 , где Gx — тупиковый граф, не являющийся цепью. Граф Gx нельзя представить в виде последовательной композиции двух графов, второй из которых — цепь. Следовательно, G"—тупиковый граф, а V — искомая последовательность. Аналогичные рассуждения могут быть проведены и в случае, когда существует последовательность преобразований I, II, переводящая G2 в тупиковый граф, не являющийся цепью. Достаточность. Предположим, существует последовательность L, переводящая G в тупиковый граф G', не являющийся цепью. Поскольку G = GjsG2, граф G' можно представить в виде G' = G[sG'2f где Gx = (А{, С/^), а составные элементы множества г образованы из элементов множества At. Пусть Gx не является цепью. Покажем, что в этом случае найдется последовательность преобразований I, II, переводящая граф Gt в тупиковый граф, не являющийся цепью. Если все элементы множества Nt вошли в состав элементов множества Nu то преобразования, образующие последовательность L, можно разбить на две группы — преобразования, действующие на множестве Nu и преобразования, действующие на множестве N2. Расположив преобразования первой группы в том же порядке, в котором они расположены в последовательности L, получим последовательность Li, переводящую Gt в Gx. Если некоторые элементы i ^ N{ вошли в состав составных элементов множества N2t то это оказалось возможным лишь после добавления (за счет выполнения преобразований II) всех дуг вида (/с, £), где к — висячая вершина графа Gj. Нетрудно заметить также, что все элементы N2 имеют вид я(2), где {k(2)}czA2, либо [я(1), я(2)], где {я(1)} <= At, {я(2)}^А2. Поэтому удалив из последовательности L все преобразования I, при выполнении которых образуются составные элементы вида [я(1), я(2)], а также все преобразования, действующие на множестве А2, получим последовательность Ь'ъ переводящую граф Gt в граф Gx = GxsGx, где Gi — цепь. Пусть Lx — последовательность, переводящая 268
G\ в тупиковый граф, тогда очевидно, что Tjl — (L{yL^)— искомая последовательность. Если 6?! является цепыо, то G' можно представить в виде G' = б^бг^Дгде гРаФ G\ = (TV^/t/g) тте является цепыо и составпые элементы множества N\ образованы из элементов множества N2. В этом случае, используя рассуждения, аналогичные проведенным выше, можно доказать существование последовательности преобразований I, II, переводящей G2 в тупиковый граф, не являющийся цепыо. Теорема доказана. 6.2. Рассмотрим ситуацию, когда G = GxpG2, и докажем утверждение, аналогичное теореме 6.1. Предварительно докажем несколько вспомогательных утверждений. Лемма 6.1. Пусть G' — граф, полученный из графа G в результате выполнения некоторой последовательности преобразований I, II, a i° — составной элемент, соответствующий некоторой вершине графа G'. Если функционал приоритета является автоограниченным, то ©(я(а)) ^ ©(я(Ь)) для любых перестановок я(а), я(Ь) таких, что i° = [я(а), я(Ь)]. Доказательство. При Iii0)I = 2 справедливость утверждения очевидна. Предположим, что оно верно для всех составных элементов i° таких, что |{£°}|<77г, Пусть |{£°}| =/7i+l. Если i° образовался в результате выполнения преобразования I = [я', я"], то ©(я7) < ©(я"). Пусть я" = = [я, я(6)], тогда я(а) = (я', я). Поскольку |{я"}|<ттг, ©(я) ^ ©(я(Ь)), а так как функционал приоритета является автоограничепным, ©(я7) < ©(я(Ь)). Следовательно, со(я(а)) ^ )(я(Ь)). Пусть я' = [я(а), я], я(Ь) = (я, я"), тогда ©(я(а))< ^со(я) и ©(я(а)) < ©(я7). Кроме того, ©(я7) ^ ©(я77), поэтому ©(я(а)) < ©(я77). Таким образом, ©(я(а)) < ©(я(Ь)). Лемма доказана. Пусть N(v) — множество вершин графа G(v), полученного из G в результате выполнения последовательности L(v) преобразований I, II. Если последовательность L преобразований I, II переводит граф G в граф G' и i7 — составной элемент, соответствующий некоторой вершине G7, то через {j'}(v) обозначим множество всех составных элементов из N(v\ образующих элемент i . Пусть G, = (Nu Ut), G2 = Шг, U2) и G = G,pG2. Будем говорить, что преобразование I-U, /] или II-(i, /) является смешанным, если (Ш U (/}) П N{ Ф 0 и (Ш U {;}) П N2 Ф 0. В противном случае будем говорить, что преобразование является однородным, Составной элемент i такой, что U) П iV* Ф 269
Ф0 и {О П N2 Ф &, будем называть смешанным. Если ii) ^ либо Ш^А2, будем называть i однородным составным элементом. Лемма 6.2. Пусть G = GipG2, последовательность L преобразований I, II, в которой все преобразования I однородны, переводит граф G в граф G' = (N\ U') и функционал приоритета является автоограниченным. Если г, /' — G' такие элементы множества N', что V *—у]'и при этом {i) s — {j'}^N2 либо {i')^N2, то co(i) > ©(у) для всех i e= BG, (V) U i', j e AG, (/') (J Доказательство. He теряя общности, можно ограничиться исследованием случая, когда {j'}^N2. Воспользуемся индукцией по числу ф(Ю смешанных преобразований в L. Предположим, что Н-(£°, f) — единственное смешанное преобразование в L, {i0} s Nu {/°} s N2, и это преобразование расположено в L на (v+D-м месте, v > 0. Тогда соШ > со(/) для всех i<=BGiv)(i°) |J i° и / e4G(V)(j°) UА Предположим, что i' = [n(a), i°, я(Ь)], j' = [я(с), /°, я(<!)]. Множество Wa)}(v) можно разбить на два подмножества. Первое — множество элементов из -BG(v) (А (приоритет любого из них не меньше чем max (со (/) | j GiG(V)(/°) U j0})- Второе — множество составных элементов £, образовавшихся из элементов множества N(v) и таких, что {£}(v; f| -5G(v) (*°) = 0» но {0(v) ~ BG(V+P) (i°) при некотором р > 1. В последнем случае очевидно, что соШ > co(i°). Из автоограниченности функционала приоритета следует, что со(я(а), i°) > со(/°, n(d)), а из леммы 6.1 следует, что со(я(а), i°) ^ со(я(Ь)) и со(я(с)) ^ < со(/°, я(й)). Таким образом, со(я(а), i°, я(Ь)) > со(я(с), А я(<1)). Пусть утверждение леммы верно для всех таких последовательностей L, что cp(L) ^ m, m > 1. Докажем его справедливость при ф(£) = 771+1. Предположим, что (т + 1)-е смешанное преобразование расположено в последовательности L на (v + D-м месте. В силу индуктивного предположения утверждение леммы верно для графа G(v). Пусть (v + D-е преобразование в L имеет вид II-(i°, /°) и для определенности {i°}<=Nu {]*}<= N2. Тогда очевидно, что minjffl BG(v)(i\ j°) U г0} >max (a (/) | j°) U 70)- Пусть i <= Bg(v) (i°) f| BG(V) (;°) и либо {г} <=NU либо {i}c=iV2- Тогда неравенство a (i) ^ max (a (j) \ j е (/°) у;°) следу- ет в первом случае из индуктивного предположения, а во втором — из индуктивного предположения и неравенства (оШ 5* cdU°). Аналогично, если JG ^G<v) (*°) П ^с(у) (/*)» т0 270
ca(/)<min {со (i) | i<= tfG(V)(i0) U t°). Таким образом, min {© (i) | i <= 5C(v) (*°) U *i°)> max [<o (/) \je A G(v) 0°) U f}. Если i = tn(a), i°, я(Ь)], j' = [я(с), Д 3X(d)], то воспользовавшись теми же рассуждениями, что и в случае ф(L) = 1, нетрудно доказать справедливость неравенства min{(o(i)Us е Z?g' (i') U О ^ тах 0) I {П U У'}- Лемма доказана. Пусть i° — смешанный составной элемент. Обозначим через я(1)(£°) (соответственно n(2)U0)) перестановку, полученную из i° в результате удаления всех элементов множества N2 (соответственно Ni). Лемма 6.3. Пусть G = GjpGa, последовательность L преобразований I, II, содержащая единственное смешанное преобразование I, переводит граф G в граф G', и функционал приоритета является автоограниченным. Если i° — смешанный составной элемент, соответствующий некоторой вершине графа G', то co(i°) = o)(n(1)(i0)) = cd(ji(2)U0)). Доказательство. Пусть смешанное преобразование I расположено в последовательности t на (v + 1)-м месте и имеет вид I-U', у']. Не теряя общности, можно считать, что {i)^Nu В силу леммы 6.2 имеем (o(i') ^ >&(]'). С другой стороны, co(i') со(у') и, следовательно, со U') = co(y'). Поскольку функционал приоритета является автоограниченным, a)U', у') = co(i') = со(у'). Очевидно, что [£', у'] = i\ г = Jt(1)U°), ] = n(2)U°). Лемма доказана. Лемма 6.4. Пусть G = GxpG2, последовательность L преобразований I, II переводит граф G в граф G' и функционал приоритета является автоограниченным. Если i° — смешанный составной элемент, соответствующий некоторой вершине графа G', то со(г) ^ coU0) > со(у) для всех i е у е= (i°). Доказательство. Воспользуемся индукцией по числу ф(L) смешанных преобразований I в последовательности L. При ф(£) = 1 справедливость утверждения леммы следует из лемм 6.2 и 6.3. Пусть утверждение леммы верно для всех таких последовательностей L, что ф(£) < m, 1. Покажем, что оно верно и при ф(L) = пь + 1. Предположим, что (ттг+ 1)-е смешанное преобразование I расположено в L на (v + D-м месте и имеет вид Iу']. Тогда L(v) содержит ровно тп смешанных преобразований I. Если i — смешанный составной элемент, то, в силу индуктивного предположения, min(co(i)| ^G(v) (0} ^ max [со (y) | j e ^с(у) (i')j и, следовательно, со(П ^ со (у"). 271
Последнее неравенство получается и в предположении, что У — смешанный составной элемент. С другой стороны, (о(у') ^ со(£'). Отсюда и из предположения об автоограниченности функционала приоритета следует, что wU') = со(/') = = <о(£и), где &и = и', y'J. Таким образом, min[o)(i)|ie e^(v+1)(i0)) IAGiv+i)(i0)}> поскольку BG^4-v(i0) ^ п0)Х1') и = V) (0\ЛС помощью рассуждений, аналогичных проведенным при доказательстве леммы 6.2, легко показать, что min{co (£) | i^BG, (i°)}^ ^(0 (i°) ^ max {со (у) | ye^G,(j0)}. Очевидно также, что утверждение леммы верно для всех смешанных элементов £°, полученных с помощью смешанных преобразований I, принадлежащих L(v). Пусть i и У — однородные составные элементы. Не теряя общности, можно считать, что и {y'}^iV2. Най¬ дем такое /с, 0 ^ к < v, что i G~ у для всех i е и J^HT\ а {к + 1)-е преобразование в последовательности L имеет вид II-U", Г'), где Ге{/'}(ч. Тогда, воспользовавшись индукцией по числу &, нетрудно показать, что cdU)^cо(у) для всех i е 5G(ft)(Г) (J i" и у e= 4c(fc) (y") (J Л G помощью рассуждений, аналогичных использованным при доказательстве леммы 6.2, нетрудно показать, что coU) ^ ^ (о(у) для всех i е #G(V) (О U i' и /е ^G(V)(^,) U ]'• Отсюда следует (поскольку со(у') ^ coU')), что (o(i') = со(у') = coU0) и min[co (г) | i е ^G(v+1)(i0)) > (о (i°) > max (со (/) | /е4с(у+1) (i0)). Лемма доказана. Лемма 6.5. Пусть G = GtpG2l последовательность L преобразований I, II переводит граф G в граф G' и функционал приоритета является автоограниченным. Если i° — смешанный составной элемент, соответствующий некоторой вершине графа G', то со(£°) = co(n(1)U0)) = со(jc(2)(i°)). Доказательство. Воспользуемся индукцией по числу ф(Ю смешанных преобразований I в последовательности, L. Если ф(£) = 1, то справедливость утверждения следует из леммы 6.3. Пусть утверждение леммы верно для всех таких последовательностей L, что ф(L) m > 1. Докажем его справедливость при ф(£) = ттг+1. Предположим, что (пг + 1)-е смешанное преобразование I расположено в последовательности L на (v + 1)-м месте и имеет вид I-U', у']. Тогда можно считать, что все смешанные элементы, отличные от я ==» = U', у'], получены в результате выполнения последователь- 272
пости L(v) преобразований I, II и для них утверждение леммы верно в силу индуктивного предположения. Рассмотрим составной элемент я = [i\ у']. Если V и у'— однородные элементы, то, как и при доказательстве леммы 6.4, легко показать, что co(i') = <0(7'). Поскольку = jx(2)(Z°) = у' и функционал приоритета является автоограничониым, G)(Z°) = a)(n(1)(Z0)) =■ со(л(2)(£°)). Если i (либо у')— смешанный составной элемент, то из леммы 6.4 следует, что со(i') ^ со(у'), так как у' е ^G(v)(0. Поэтому co(t') = соСу'). По индуктивному предположению со(я(1)(П)= 0)(я(2)(П)= co(Z'), 0)(у')= (оЫ(1)(у'))= соЫ^(П). Поскольку (i)(i') = со(у'), получаем, что wU°) = (о(я(1)(£0)) = = (о(я(2)(&0)). Лемма доказана. При доказательстве леммы 6.5 доказана, в частности, справедливость следующего утверждения. Следствие 6.1. Если выполнены условия леммы 6.5 и I-U, у] — смешанное преобразование из последователь- ности Д то соШ = о)(у). Две допустимые последовательности Д и Ь2 преобразований I, II графа G называются эквивалентными, если каждая из них переводит G в один и тот же граф G Пусть L — последовательность преобразований I, II графа G. Обозначим через Еа (соответственно Д) последовательность, получающуюся из L удалением всех смешанных (соответственно однородных) преобразований, а через Е — последовательность (Д*, ДО. Лемма 6.6. Если функционал приоритета является автоограниченным, то последовательность Е преобразований I, II допустима для графа G и эквивалентна последовательности L. Доказательство. Воспользуемся индукцией по числу ср(L) смешанных преобразований в Д Если (p(L) = 1, то смешанное преобразование является преобразованием И. Справедливость утверждения леммы в этом случае очевидна. Пусть лемма верна для всех таких последовательностей Д что cp(L)^m, m>i. Докажем ее справедливость и при ф(Ю = m + 1. Если в последовательности L на Z-м месте (Z — число преобразований в L) расположено смешанное преобразование, то утверждение леммы верно. Действительно, пусть Д'-1) переводит граф G в граф G', тогда, в силу индуктивного предположения, Е{1~1) также переводит G в G', а на последнем месте в L и Е расположено одно и то же преобразование. 18 В. С, Та пае в и др 273
Пусть последнее смешанное преобразование расположено в L на (v+D-м месте, v < Z — 1. Если это — преобразование II, то очевидно, что L эквивалентна последовательности U, полученной из L перемещением преобразования с (v + D-ro на l-е место. Предположим, что на (v + D-м месте в L расположено преобразование I-D', у']. Как следует из леммы 6.5, co(i') = со (у') = со(Г, у'). Кроме того, элемент D', у'] не участвует в преобразованиях, расположенных в L на местах v + 2, v + 3, ..., I (в противном случае среди этих преобразований нашлось бы, по крайней мере, одно смешанное). Следовательно, и в этом случае последовательности L и U эквивалентны. Из индуктивного предположения следует эквивалентность L и L. Лемма доказана. Теорема 6.2. Пусть G = GipG2 и функционал приоритета является автоограниченным. Для того чтобы граф G был приводимым, необходимо и достаточно, чтобы графы G4 и G2 были приводимыми. Доказательство. Необходимость. Пусть существует последовательность преобразований I, II, переводящая граф Gi = (Nu Ui) в тупиковый граф G[= (N'u t/^), не являющийся цепью. Покажем, что в этом случае существует последовательность преобразований I, И, переводящая граф G = {N, U) в тупиковый граф, не являющийся цепью. Обозначим через G'2 = (N'2fU2) граф, полученный из G2 в результате выполнения произвольной тупиковой последовательности Ь2 преобразований I, II. Пусть последовательность L = (Lu L2) переводит граф G в граф G', тогда G' = G[pG'2. Если G' = (N\ U') — тупиковый граф, то L — искомая последовательность. Если граф G' тупиковым не является, то из леммы 4.4 следует, что к G7 нельзя применить ни одного преобразования I. Обозначим через Ь3 последовательность всех преобразований II, которые можно применить к G'. Любое преобразование из последовательности Ьг должно иметь вид II-(i, у) либо И-(у, i), где i^N'lx ju^N2. Обозначим через G" = U") граф, в который последовательность L3 переводит граф G'* Если к графу G" можно применить преобразование I-U0, у0], то дуга (i°, у0) &U"\U/ и о)(£°) = со(у°). Действительно, о)(£°) ^ со(у°), так как дуга (i°, у0) образовалась в результате выполнения преобразования И, а поскольку к G" можно применить преобразование 1-П°, у0], то со(у°) ^ co(Z°). Из автоограииченности функционала приоритета следует, что со(Z0, у0) = сo(i°) = (о(у°). Поэтому к графу, полученному из G" в результате выполнения такого преобразования, 274
нельзя применить ни одного преобразования II. Это же справедливо и для графа G"', полученного из G" в результате выполнения всех возможных преобразований I. Таким образом, граф G'" является тупиковым. Кроме того, если s~tf то s'~tf, где s' и t'— такие элементы, что Ы ^ ^ (5'} и Ш ^ it'). Поскольку Gx не является цепью, в Nx найдутся такие s и t, что s J1 Q// ~ t. Следовательно, s ~ t. Достаточность., Пусть существует последовательность L преобразований I, II, переводящая G в тупиковый граф, не являющийся цепью. Покажем, что в этом случае существует тупиковая для (или Gz) последовательность преобразований I, II, переводящая G{ (или G2) в граф, не являющийся цепью. Преобразуем последовательность L в последовательпость Г = (Га, Гр) (см. лемму 6.6). Пусть I-U', j']—первое в последовательности Гр преобразование такое, что U') ПА ^ 0 и {]') П Ni Ф 0, и пусть это преобразование расположено в Гр на (v+D-м месте, v>l. Из определения (v + D-го в Гр преобразования следует, что i' = [я(1)(П, я(2)(П] либо i' = ln(2)li'), я(1)(г')]. Аналогично /' = [я(1)(;'), л(2)(//)] либо У = [n(2)(j'), Будем считать, что /' = [jx(1) (/'), я(2) (/')]. Отыщем в последовательности L(pv) преобразование 1-П°, 70] такое, что {i0} — {я(1)(^/)}, {у0} s {я(2)(П). Очевидно (см. определение (v + D-го преобразования), что i° = n(1)(i'). В силу следствия 6.1 имеем (o(i°) = со(/°). Пусть преобразование I-П°, ;°] расположено в iv на месте рн а преобразование, в результате которого образовался элемент V,— на месте р2. Из Г(р) удалим Pi-e и р2-е преобразования и модифицируем последовательно преобразования, расположенные на местах Pi + 1, ..., р2 — 1, следующим образом. Пусть очередное модифицируемое преобразование имеет вид l-[i", 7" 1, где Ш°, 7°J}s{i"}, {7"} cz {jc(2)(i')}, тогда заменим это преобразование преобразованием 1-[я(2)(г"), 7"]. Очевидно, i" = = [i°, 70, 7'"], где {/"'} с= {я(2)(£')}. В силу леммы 6.5 и следствия 6.1, toil") = со(я(2)(£")) = со(г°, 7°) = co(j°) = (0(7°) = = (d(/"). Если очередное преобразование имеет вид II-(j", j"), где Ш°, (либо Ш°, 70]} s {7"}), то заменим его парой преобразований II-U0, /") и Н-(я(2)(Г'), j") (соответственно II-(i", i°) и II-(i", я(2)(/"))). 18* 275
Если i = [я(2)(£'), я(1)(£')], то |ii-e n Lpv преобразование имеет вид 1-[&°, у0], где К°}^{я(2)(П} и у0 = n{i)(i').J5 этом случае преобразования вида I-[£", у*"], где К") <= {я(2)(П}, {L^°, y°J} £={/"}, заменяются преобразованиями вида 1-[Г, я(2)(у")]. Аналогичным образом модифицируем часть последовательности Z/p \ связанную с построением элемента у'. Удалим из Lpv) все преобразования вида II-(£, у), где Ше{я(2,(П> либо W£{Jl)(y,)}1 а {у}^{л(1)(у')}. Отметим, что если г = [я(2)(П, я(1)(П1, то из L(pv)^следует удалить преобразования вида II-U, у), где {й е {я(1)(П) либо (ЙеЙ^Ч/О), а {/}-{я<2>(у')}. Обозначим последовательность, полученную из Z/pv) описанным образом, через £pv). Как нетрудно заметить, в результате выполнения преобразований последовательности £pv) образуются составные элементы я(1)(£'), я(2)(£'), я(1)(у") и я(2)(у'). Из леммы 6.5 и следствия 6.1 получаем о)(я(1)(П)= = со(я(2)(П)= со(П = со(я(1Чу')) = со(я(2)(у'))= со(у')= co(i', у'). В последовательности Z/pv+1) заменим ее подпоследовательность L^v) последовательностью Z/pv), а преобразование, расположенное на (v + D-м месте — тремя преобразованиями: 1-[я(1)(П, я(1)(у')]_, 1-[£(2>(П, я(2)(у')] и 1-[?, У'], где 1' = [я(1ЧП, я(1)(у')1, у'=^я<2ЧП, я(2)(у')1. Может оказаться, что я(2)(П = я0, либо я(2)(у') = я0. В этом случае второе из перечисленных преобразований отсутствует. Полученную последовательность обозначим через Z/pv+1). В Z/pv+1) число преобразований, вообще говоря, отлично от v+ 1. Пусть последовательность Еа переводит граф G в граф G', а последовательность Lpv+1)—граф G' в граф G". Тогда последовательность Zpv+1) (как следует из способа ее построения) является допустимой для графа G' и переводит его в граф G'", отличающийся от G" лишь тем, что вершине, которой в G" сопоставлен элемент [г , у'], в Gm сопоставлен элемент [Г, у']. При этом со(£', у') = о)(Г/, у'). В Еь заменим ее подпоследовательность Z/pv+1) последовательностью Z/pv+1), а в остальных преобразованиях из Ер элемепт Ii', у'] заменим элементом [?', у']. Полученпую последовательность обозначим через Ьр. В Е заменим ее подпоследовательность Ер последовательностью Ер и резуль¬ 276
тат обозначим через L. Очевидно, если Е переводит граф G в тупиковый граф G', то L переводит G в граф G", изоморфный G'. При этом существует такой изоморфизм, что приоритеты элементов, сопоставленных соответствующим вершинам, равны. Следовательно, граф G" является тупиковым и не является цепыо. В последовательности L на одно смешанное преобразование вида I-И', /'], где U'} (] Nt¥= 0 и {/'} П Nt Ф 0, меньше, чем в последовательности L. Воспользовавшись описанной процедурой достаточное число раз, получим некоторую последовательность Ь\ в которой смешанных преобразований указанного вида нет. Последовательность L' переводит граф G в некоторый тупиковый граф G', не являющийся щепью. Аналогичным образом от U можно перейти к последовательности L", не содержащей смешанных преобразований вида 1-U', /'], где {£'}ПА2 =^0 и {/'} П А2 =т^ 0. Последовательность L" будет переводить G в тупиковый граф G", не являющийся цепью. ^ ^ Преобразуем L" в последовательность L" = (Za, Lp) (так же, как L — в последовательность Е). В силу леммы 6.6 последовательность Е" ^ереводит граф G в граф G". В последовательности все преобразования имеют вид I-U', j'] либо II-U', /'), где ^ Л^4, {/'}^TV2 либо {i'}s]V2, {/'JsiVi. Из леммы 6.5 и следствия 6.1 вытекает, что последовательность Ьа переводит каждый из графов G{ и G2 в тупиковые графы Gx и G2 соответственно. Если оба эти графа являются цепями (точнее, со-цепями), то, как нетрудно убедиться, любая тупиковая для графа GxpG2 последовательность преобразований I, II должна переводить его в цепь, однако G" цепыо не является. Следовательно, по крайней мере, один из тупиковых графов — Gx и G2 — цепью не является. Пусть Gx не является цепыо. Удалив ~ tt из Ьа все преобразования, действующие на множестве А2, получим последовательность, переводящую Gi в G1# Теорема доказана. Напомним, что в теореме 6.1 в отличие от теоремы 6.2 не требовалось, чтобы функционал приоритета был автоог- раниченным. Теорема 6.3. Любой последовательно-параллельный граф G является приводимым при автоограниченном функционале приоритета. Доказательство. Воспользуемся индукцией по числу п вершин графа G. При и = 2 справедливость утвержде- 277.
ния теоремы очевидна. Предположим, что опо верно для всех 2. Пусть п — т +1. Поскольку G является последовательно-параллельным графом, G = GtsG2 либо G = = G1pG2 и графы Gi = (A,, С/4), G2 = (А2, U2) являются последовательно-параллельными. При этом IAJ ^ яг, |А2| ^ яг. Если G = GiSG2, то в силу индуктивного предположения граф Gt является приводимым. Это же справедливо и относительно графа G2. Из теоремы 6.1 следует, что в этом случае любая тупиковая для графа G последовательность преобразований I, II переводит его в цепь. Аналогично, если G = GtpG2, то справедливость утверждения теоремы следует из теоремы 6.2. Теорема доказана. 6.3. Из теоремы 6.3 следует, что D-алгоритм позволяет получать оптимальную перестановку при любом автоограни- ценном функционале приоритета и любом последовательно- параллельном графе G. Вместе с тем нетрудно привести примеры, в которых граф G не является последовательнопараллельным, но при данном конкретном функционале приоритета G-алгоритм переводит его в цепь. Накладывая определенные ограничения на пару «функционал приоритета— граф G», можно описывать более широкие (по сравнению с последовательно-параллельными графами) классы «разрешимых» ситуаций. Рассмотрим один из таких классов. Пусть дан функционал приоритета со (я) и графы Gt = = (А1, Ut), G2 = (A2, U2) такие, что А4ПА2 = 0 и U N2 = = А. Рассмотрим граф G° = (А, £7°), являющийся таким подграфом графа G'= (A, £7t U U2 U At X A2), что £71 U C/2 ^ ^£7°, и если (i, j) & N{X N2, no i ~ /, to со(г) > co(/). Граф G = (A, U) называется со-последовательной композицией графов Gt и G2 (обозначение G = G150)G2), если он может быть получен из графа G0 в результате удаления всех его транзитивных дуг, принадлежащих множеству At X А2. Будем говорить, что граф G получен в результате выполнения операции со-последовательной композиции из графов Gi и G2, если G = GiS©G2. Обозначим через G* граф, полученный из графа G в результате последовательного удаления всех транзитивных дуг G. Граф G будем называть с^-последовательно-параллельным графом, если граф G* может быть получен в результате последовательного выполнения операций со-последователь- ной и параллельной композиции из одновершинных графов G<=(j, 0) (г = 1, п). Одновершинный граф по определению является со-последовательно-параллельным. 278
Йетрудно заметить, что при любом функционале приоритета любой последовательно-параллельный граф является одновременно и со-последовательно-параллельным. Если графы G4, G2, ..Gm таковы, что граф G может быть получен из них в результате последовательного выполнения m — 1 операции «-последовательной и параллельной композиции, то эти графы называются компонентами со-разложения графа G. Лемма 6.7. Пусть G4 = CZVf, Z74) — компонента ы-разло- жения графа G и i°, y°ejV4. Преобразование I-[y°, Z0] либо П-(£°, у0) можно применить к графу G тогда и только тогда, когда его можно применить к графу Gt. Доказательство. Если Z^TVj, то, как нетрудно убедиться, может иметь место одна и только одна из ситуаций: a) i~i\ Z~y°; б) i i\ в) i° Z, f ^ v, r) Z Z°, i ~ j° и co(Z) > co(/°); д) Z ~ Z°, Z -► у0 и co(Z) > co(Z°); e) Z° -► Z, 7° ~ Z и со(у0) > co(Z); ж) Z ~ Z°, 70Z и cd(Z°) > co(Z). Отсюда следует справедливость утверждения леммы. Лемма 6.8. Пусть последовательность преобразований II переводит граф G в граф G'. Если к G можно применить преобразование II-(Z°, у0) и со(£°) > (о(/°), го либо либо к G' можно применить преобразование II-(Z°, j°). Доказательство. Соотношенйе j° Z0 не может иметь места, поскольку Z°~7° и о)(Z°) > «(у0). Кроме того, если Z^ii°H Z-2 Z°r т0 из определения преобразования II следует, что со(Z) > co(Z°). Аналогично, если ]°%1 и y°~Z, то со(/°) ^ co(Z). Поэтому ^соотношение minZ?G(Z°, у0) ^ > max AgU\ у0) влечет min (Z°, у0) ^ max AG, (Z0, у0), если Z°~7°. Следовательно, преобразование II-(Z°, у0) является допустимым для графа G'. Лемма доказана. Теорема 6.4. Пусть при данном автоограниченном функционале приоритета со(я) граф G является со-последовательно-параллельным. Тогда D-алгоритм преобразует G в цепь. Доказательство. Пусть G = Gis(aG2 = WJ U), G3 =* = G1sG2 = (A, Z73) и дуга (Z, y)eZ73, но (Z, j)<£U. Обозначим через G° = (A, С/°) граф, полученный из G в результате выполнения всех возможных преобразований II. Покажем, что (Z, у) ^ t/°. _ Предположим, что i°^BG(i, у), co(Z°)<co(Z) и co(Z°) = = mini?G(Z, y)<maxAG(Z, у). Тогда к графу G можно применить преобразование П-(£°, у). Действительно,minJ5g(Z°, y)=i = сo(Z°) и для любого у0 s i4G(y) U у имеет место по крайней 279
мере одно из соотношений: 1°Л-7° либо ©(i°) > (о(уб). Следовательно, o)U°) > maxAG(i°, у). Из леммы 6.8 следует, что После того как в граф добавлена дуга (£°, у), в него последовательно можно добавить и все другие дуги вида U', у), где у) и coU') < coU). Затем к графу можно при¬ менить преобразование II-U, у). Лемма_6.8 гарантирует, что все перечисленные дуги будут в G0 (G0 — транзитивное замыкание графа G0). Таким образом, если G = GiSaG2l то для всех пар элементов i, у таких, что дуга U, у) е [73, но U, у) ^ £/, имеет место соотношение i у. Поэтому можно считать, что граф G0 получен из графа G3 = GisGz в результате выполнения некоторой последовательности преобразований II. Пусть G является со-последовательно-параллельным графом, Gt — такая компонента его со-разложения, что Gt = = G1s(iiG1% i — вершина графа . G1% j — вершина ^! и i ~ /. Тогда, как следует из предыдущих рассуждений, существует последовательность преобразований II, переводящая Gt G° в такой граф GJ, что у. Преобразование Н-(г, у) можно применить к Gt тогда и только тогда, когда его можно применить к G (см. лемму 6.7). Отсюда и из леммы 6.8 полу- . g° • чаем, что i —>]. Следовательно, в результате выполнения всех возможных преобразований II в граф G будут добавлены дуги, дополняющие G до последовательно-параллельного графа, а граф G0 можно рассматривать как граф, полученный из последовательно-параллельного в результате выполнения некоторой последовательности преобразований II. Далее (при выполнении действий, описанных в п. в) D-алгоритма) граф G0 будет переведен в некоторый тупиковый граф G'. Как следует из теоремы 6.3, G' является ценыо. Теорема доказана. 6.4. Существуют ситуации, в которых граф G не является со-последователыю-параллельиым, но D-алгоритм переводит его в цепь. Действительно, рассмотрим следующий пример. Пусть iV = {l, 2, 3, 4, 5), элементам этого множества сопоставлены числа = 7, а2 = 4, а3 = 6, а4 = 12, аъ = 10. На множестве N задано отношение строгого порядка, граф редукции которого имеет вид G = (N, £/), где U = {(1, 2), (2, 4), 280
(3, 4), (3, 5)}. На множестве 3>\п0 задай функционал приоритета со (я) = 2 где я = iiu 1*2, . •U)- ге{л} Легко убедиться, что G ие является со-последовательно- параллельным графом. Нетрудно также проверить, что последовательность L = (II-(3, 2), 1-[2, 4], 1-[3, 5], П-([3, 5], 1), I-[ 1, [2,4Н), во-первых, построена по D-алгоритму и, во-вторых, переводит граф G в цепь С = ([3, 51, [1, 2, 4]). § 7. 1-приоритето-порождающие функционалы Естественным расширением класса приоритето-порождающих функционалов являются так называемые 1-приори- тето-порождающие функционалы. Свойства этих функционалов позволяют в ряде случаев строить эффективные алгоритмы их оптимизации. 7.1. Пусть 3>$=3>'<=3, Q^[3>\ =N{\Q[$>} и Fin) — функционал, определенный на множестве 3>\ Функционал Fin) называется 1-приоритето-порождающим на множестве 3*, если существует функционал со(1)Ш, определенный на множестве Q{i)[3>] и обладающий следующим свойством. Для любых элементов /, I из (?(1)[^] и любых перестановок я' = (я(1), /, Z, я(2)) и я" = (я(1), Z,/, я(2)), принадлежащих^, из условия со(1)(/) > (о(1) (Z) следует Fin'XFin"), а из условия а>(1)(у) = со(1)(Z) следует Fin') = = Fin"). Функционал со(1)Ш называется функционалом 1-приоритета, а значение со(1)Ш — приоритетом элемента i. Из определения следует, что любой приоритето-порождающий на 3* функционал является одновременно и 1-приоритето-по рождающим на 3*. Обратное, вообще говоря, неверно. Приведем примеры функционалов, являющихся 1-прио- ритето-порождающими на множестве 3\ но не являющихся приоритето-порождающими на этом множестве. а) Пусть ^(я) — функционал (1.1) (см. § 1 данной главы) при условии, что фДО = (pit) + Здесь (pit) — монотонная функция. Полагая я(а) = /, я(Ь) = Z, из соотношения (1.3) получаем cp(Zj+ £(я(1))) ^ cpiti + £(я(1))). (7.1) Если ф(£) — неубывающая функция, то для выполнения (7.1) достаточно, чтобы Положим o(1)(i) = —1{. Тогда для выполнения неравенства Fin(i\/, Z, я(2))^ Fin(i), Z, /, я(2)) достаточно, чтобы со(1)(у) ^ (о(1)Ш. Следовательно, функционал (1.1) при фД*) = ф(*) + р*, Z = l, п, где ф(£) — неубываю¬ 281
щая функция, является 1-приоритето-порождающим на а его функционал 1-приоритета имеет вид со(1)Ш = —£<. Если ф(£) — невозрастающая функция, то функционал 1-приоритета имеет вид co(1)U) = U. Напомним, что функционал (1.1) в рассматриваемом случае приоритето-порождающим на вообще говоря, не является. б) В п. 1.4 первого параграфа показано, что в общем случае функционал (1.9) приоритето-порождающим на 9*п не является. Покажем, что этот функционал (он имеет вид г F (я) = 2aftPib. я =(*1> *2» • • •» ьУ) при ai+i >a,i,i = l,n—l, h=l является 1-приоритето-порождающим на 9*. Полагая я(а) = /, я(Ь) = I в соотношении (1.10), получаем (av+2 — av+i)^ ^ < (av+2 — av+i)[ij. Поскольку аг+1 > af, i — 1, п — 1, ю(1)Ш = р, является функционалом 1-приоритета для функционала (1.9). в) Множество iV = {l, 2, ..., п} требований, начиная с момента времени d = 0, последовательно и непрерывно обслуживается одним прибором. Длительность обслуживания требования i зависит от момента начала его обслуживания t°i и равна ti = ф (^?)Ч-Pi, где ф(0 — неубывающая и неотрицательная при t> 0 функция, р,->0, 1, п. Необходимо из заданного множества 9*^9>п выбрать последовательность я* обслуживания требований, при которой общая длительность обслуживания минимальна. Определим на множестве 9* функционал (7*2) ft= 1 где я = (iu i2, ..U) е 9*, Т'Чяо) = 0. Очевидно, F(nn) — общая длительность обслуживания требований множества N при обслуживании их в последовательности яп. Найдем условия, при которых F(я(1), /, Z, п{2)) < F(tc(1), Z, /, я(2)). Для выполнения этого неравенства достаточно, чтобы F(n(l\ /, 1) ^F(n{l\ Z, 7), или, что эквивалентно, фШя^) + ф(Ля(1))) + fc) < ф(Яя(1)) + ф(Ля(1)))+ pt). (7.3) 282
Поскольку (fit) — неубывающая функция, для выполнения последнего неравенства достаточно, чтобы р,- < fy. Следовательно, функционал coCi)(i) = является функционалом 1-приоритета для Fin), a Fin) является 1-приоритето-порождающим на 9*. Покажем, что в общем случае функционал Fin) не является приоритето-порождающим на 9>. Действительно, пусть N = И, 2, 3, 4}, = р2 = 1, Рз = 9, р2 = 4, фШ = *2, я(а) = (2,3), я(Ь) = 4. Рассмотрим два варианта: я(1) = (1), я(2)=я0 и я(1) ■= я(2) = п0. В условиях первого варианта имеем Fil, 2, 3, 4) = 464 < Fil, 4, 2, 3) = 471, а в условиях второго: Fi2, 3, 4) = 134 > Fi4, 2, 3) = 65. г) Пусть в условиях предыдущей задачи функция ф(£) является невозрастающей, неотрицательной и удовлетворяет условию Дг^ЧДфШ! при £> 0, где Дф(*) = ф(£ + ДО — ф(£).' Из условия Д*^5 |ДфШ1 следует, что для выполнения неравенства Е(я(1), j, I, я(2)) ^ /г(я(1), Z, /, я(2)) достаточно, чтобы имело место соотношение (7.3). Поскольку ф(0 — невозрастающая функция, для выполнения неравенства (7.3) достаточно, чтобы (3, ^ р*. Таким образом, и в этом случае функционал (7.2) является 1-приоритето-порождающим с функционалом 1-приоритета С0(1)Ш = Р<. 7.2. Если функционал Fin) является 1-приоритето-порождающим на множестве 9>, то при поиске оптимальной на 9* перестановки я* (доставляющей минимум Fin) на 9>) широко используется следующий очевидный прием. Пусть PH, j) — множество всех перестановок из 9> вида (я(1), I, j, я(2)), для каждой из которых в 9> существует перестановка вида (я(1), ], I, я(2)). Если со(1)(у) ^ co(1)(Z), то множество 9>\Pil, j) содержит по крайней мере одну оптимальную перестановку. Следовательно, при поиске я* множество перестановок Pil, j) можно не рассматривать. Отсюда, в частности, следует Теорема 7.1. Если функционал Fin) является 1-приоритето-порождающим на множестве 9*п, то перестановка, в которой элементы упорядочены по невозрастанию их приоритетов, доставляет минимум Fin) на 9*п. Действительно, пусть co(1)(iAl)=max lo>(1)(i) \i^N},diPij) — множество всех таких перестановок я = iU, г2, ..in)(=9>n, что U = у. Тогда любая перестановка я, не принадлежащая 283
множеству Р(\)% принадлежит некоторому множеству Р(1,гк1) и, следовательно, оптимальную перестановку (доставляющую минимум F(n) на 9*л) можно искать среди элементов Аналогично оптимальную перестановку можно искать среди тех перестановок из в которых на втором месте расположен элемент iu2 такой, что со(1)(*л2) = — max {со(1) (i) \i е N\iklj, и т. д. В результате последовательного сужения области поиска оптимальной перестановки будет получена такая перестановка я* = (ikv ih2, ..., ihn)y что F (я*) < F (я) (я ge ?,Г7) и “(1)(Ч) > ®(1) (iftj+i) = 1.» —!)• 7.3. В заключение параграфа рассмотрим пример функционала, не являющегося 1-приоритето-порождающим на ^п, но имеющего функционал 1-приоритета на некотором специальном подмножестве 9* <= 9*п. Пусть N = U N2 и Ni П Nz = 0. Каждому элементу i е N сопоставлены действительные числа аг- и U > 0. Каждому элементу i ^ сопоставлена функция ф!1^) = oc(tr а каждому элементу N2 — функция ф|2) (t) = ехр (у£), у Ф 0. На множестве определен функционал F{n)= 2 q4ftv) fc= 1 (7.4) где я =Ui, i2, ..., tn); v = 1, если e Nu и v = 2, если г* ^ N2. Покажем, что в общем случае функционал (7.4) не является 1-приоритето-порождающим на З^п- Пусть N = = И, 2, 3), Nt = {1, 2}, А2 = {3), at = 1, a2 = 3, ос3 = 1/16; = 5, t2 = 1, £3 = 4; у = 1п2. Тогда F(2, 3, 1) = 15 < <F(3, 2, 1) = 26, но Л1, 2, 3) =87>F(1, 3, 2) = 67. Обозначим через 3>п множество всех перестановок вида (я(1), я(2)) и (я(2), я(1)), где WV)}=AV, v = l, 2. Функционал (7.4) является 1-приоритето-порождающим на множестве 3)п. Действительно, на основании пп. 1.1, а), б) дайной главы приходим к заключению, что в рассматриваемом случае функционал ©(1) (0 = ajti iai ехр (7^)/(ехр (у«4) — 1) при i е Nu при i е N2, является функционалом 1-нриорнтета для F(л). 284
§ 8. Библиографическая справка Понятие приоритето-порождающего функционала введено Я. М. Шафранским [173, 51] и уточнено затем совместно с В. С. Танае- вым. Позднее аналогичные понятия независимо ввели В. Я. Бурдюк и В. Н. Рева [19, 128], а также (при дополнительных ограничениях на функционал) К. Монма и Дж. Сидней [365]. В последующем эти ограничения Пыли сняты (см. К. Монма [364]), что привело к понятию, эквивалентному введенному в [173]. Задача минимизации на мпожестве фупкционала из п. 1.1, а) рассматривалась У. Смитом [417], а функционала из п. 1.1, б) — В. С. Ханаевым [153] и М. Роткопфом [386]. В этих работах предложены алгоритмы с оценкой временной сложности О (п log п). Функционалы приоритета (1.4) и (1.5) для указанных целевых функционалов построены У. Хорном [293] и В. С. Гордоном, В. С. Танаевым [48] соответственно. Задача минимизации на множестве &п функционала (1.6) представляет собой специальный случай так называемой параметрической задачи теории расписаний, сформулированной О. И. Мельниковым [108]. Задача минимизации на множестве & с= &>п линейной формы (1.9) сформулирована Д. А. Супруненко [149]. В [149] показано, в частности, что к этой задаче сводится ряд известных экстремальных задач на подстановках. Д. А. Супруненко, В. С. Айзенштатом, Н. А. Лепешинским, Н. Н. Метельским, И. М. Кунцевичем, Д. Н. Кравчуком проведен интересный цикл исследований по минимизации функционала (1.9) на различных подмножествах ^ с~^п. Обзор полученных результатов приведен в [150]. В последующем эти исследования были продолжены Д. А. Супруненко, Н. Н. Метельским и В. И. Сар- вановым [151, 109, 137, 138, 139]. Алгоритм (с оценкой временной сложности 0(n\ogn)) минимизации функционала (1.9) на множестве &п предложен Г. Харди, Дж. Литтлвудом, Г. Полна [164]. Задача минимизации функционала (1.13) сформулирована и исследована В. С. Танаевым [152], там же предложен алгоритм с оценкой временной сложности О («log п) минимизации этого функционала на множестве ^п. Задача минимизации на множестве &п (G) функционала (1.20) сформулирована в работе [187]. Исследованию и решению приведенной в п. 1.6 задачи посвящен ряд работ. Э. М. Лившиц, В. И. Рублинецкий [100] доказали АР-трудность этой задачи (даже при 6г = tu). При di = 0, 6г == ^ 1 г ее решение получено С. Джонсоном [59] и Р. Веллманом [204]. Алгоритм, предложенный С. Джонсоном, имеет оценку временной сложности О (п log п). Решение, предложенное Р. Веллманом, основано на методе динамического программирования. При указанных условиях задача известна в литературе как задача 2 X л Веллмана — Джонсона. Более общие случаи рассмотрены в [91, 126, 152, 309, 359, 371, 420]. Сведение задачи о линейном размещении ориентированного графа G к задаче минимизации функционала из п. 1.1, а) на множестве &п (G) выполнено Д. Адольфсоном и Т. Ху [189] (см. также [336]). Задача минимизации функционала (1.29) на множестве &п рассматривалась С. Элмаграби [251] и А. В. Никитиным [123]; специальные случаи этой задачи рассматривались В. Н. Бурковым, В. Б. Соколовым [26]; см. также [21, 22]. Функционалы приоритета (1.7), (1.11), (1.12), (1.19) построены Я. М. Шафранским [172]; при построении функционала (1.19) существенно использовались результаты, полученные в [152]. 285
А. В. Тузиков показал, что функционал к F(n)= max q>4 V l<k<r %hj где n = i2, .. ., ir), ^ til^ является приоритето-порождаю¬ щим на множестве У*п в следующих случаях: 1) (pi (я) = ф(я) + (3* и ф^ + х2) = <p(^i) + Ф(^г); ф(* ) ^ 0 при х > 0; 2) фДя) = 0Ci(p(x) и ф(^! + х2) = Ф(^1)Ф(^2), ф(^) > 1 при х > 0; 3) q>i(x) = ф(x — L>i), Ф (х) — неубывающая функция. Соответствующие функционалы приоритета имеют вид: со (л) = F (л) — ф / 2 О* w (л) = \г£ш} / = F (л)/ф / V *4] и со(л)= max if. —D.\— У\ t,. Этот резуль- \гё{п} ) гк\ .£л) тат ранее не публиковался. Алгоритм минимизации функционала из п. 1.1, а) при условии, что каждая компонента связности графа G — цепь, предложили независимо 13. В. Шкурба, Т. П. Нодчасова, А. Н. Пшичук, Л. П. Тур [185] и Р. Конвей, В. Максвелл, Л. Миллер [78]. Оценка временной сложности обоих алгоритмов — О(п log л). Алгоритм минимизации функционала из п. 1.1, а) при условии, что каждая компонента связности G — выходящее дерево, предложен У. Хорном [293], а функционала из п. 1.1, б) при условии, что G — древовидный граф,—В. С. Гордоном, В. С. Танаевым [48]. Оба алгоритма имеют оценку временной сложности 0(п2). Алгоритм с оценкой временной сложности 6>(ttlogrc) решения задачи о линейном размещении ориентированного графа G при условии, что каждая компонента связности G — выходящее дерево, предложен Д. Адольфсоном и Т. Ху [189]. Т. Курису [322] предложил алгоритм (с оценкой временной сложности О (п log п)) решения задачи 2Х« Веллмана — Джонсона при наличии ограничений предшествования, определяемых графом G, каждая компонента связности которого — цепь. Здесь ограничения предшествования (отношение -►) имеют следующий смысл. Если i ->■ jf, то данный прибор не должен начинать обслуживание требования / до тех пор, пока этим прибором не будет завершено обслуживание требования U Если же потребовать, чтобы обслуживание j не начиналось ни одним из приборов до завершения обслуживания обоими приборами требования i, то задача оказывается АР-трудной [345]. В случае, когда G — произвольный бескон- турный граф, Т. Курису [323] предложил ряд правил сокращения перебора. Алгоритм минимизации произвольного приоритето-порождающего функционала на множестве tPn (G) при условии, что G — древовидный граф, предложен Я. М. Шафранским [173]. Оценка временной сложности алгоритма — 0(п2). Е. Лоулер [333] предложил алгоритм (с оценкой временной сложности О{п log п)) минимизации функционала из и. 1.1, а) на множестве &n(G) при условии, что граф G является последовательно-параллельным. В указанной работе в значительной мере использовались результаты, полученные Дж. Сиднеем [408]. В [408] предложена декомпозиционная схема решения задачи минимизации на множестве (G) функционала из п. 1.1, а) в случае произвольного бесконтурно- го графа G. Позднее часть результатов Дж. Сиднея была перенесена на случай функционала из п. 1.1, б) —см. работы [279, 280]. Алгоритм минимизации функционалов из пп. 1.1, а) и 1.1, б) на множестве (G) в ситуации, описываемой графом G несколько более общего вида по сравнению с последовательно-параллельным, предложен Я. А. Зиндером [68]. Алгоритм минимизации произвольного приорите- 286
то-порождающего функционала на множестве &п (G) при условии, что граф G является последовательно-параллельным, предложен В. С. Гордоном, Я. М. Шафранским [51—54]; оценка временной сложности алгоритма — О(п2). Позже аналогичный подход предложили К. Монма и Дж. Сидней [365], а в работах [90, 187, 362, 410] были описаны алгоритмы минимизации некоторых конкретных приоритето-порождающих функционалов на множестве &п (G) в случае, когда граф G является последовательно-параллельным. В работах [50] и [364] приведены примеры, показывающие, что для функционалов из пп. 1.1, а) и 1.1, б) и графов G, не являющихся последовательно-параллельными, множество &*n(G) может содержать перестановки, не являющиеся оптимальными, которые нельзя «улучшить» транспозицией никаких соседних групп элементов. Основу §§ 2—6 составили результаты, полученные Я. М. Шафранским и частично опубликованные в работах [174—177]. Следует отметить также работу Д. Адольфсона [188], где при исследовании задачи минимизации функционала из п. 1.1, а) на множестве ^n(G) в случае произвольного бесконтурного графа G введено преобразование, послужившее прототипом преобразования I. М. Гэри [266], решая так называемую задачу минимизации стоимости контроля качества при наличии ограничений предшествования, описываемых графом G, ввел преобразование, которое можно рассматривать как специальный случай указанного преобразования Д. Адольфсона. В [266] предложен алгоритм для случая, когда G — древовидный граф; временная сложность— О (п2). Эта же задача, но при отсутствии ограничений предшествования, решена Э. М. Лившицем [97]; временная сложность алгоритма — О (п log п). В [97] фактически доказано, что функционал в задаче минимизации стоимости контроля качества является 1-приори- тето-порождающим, и построен функционал 1-приоритета. Как показано в [158], целевой функционал в указанной задаче представляет собой специальный случай функционала из п. 1.1, б). В [55] результаты Д. Адольфсона распространены на случай произвольного приоритето-порождающего функционала, а в [364] обобщены предложенные им преобразования графа G. Алгоритм, близкий по общей схеме D-алгоритму [174], предложен В. Я. Бурдюком и В. Н. Ревой [19] (без оценки временной сложности и исследования свойств); см. также [107]. Конструкции, занимающие промежуточное положение между последовательно-параллельными и со-последовательно-параллельными графами, построены Я. А. Зинде- ром [68] и В. Н. Ревой [129]. Понятие 1-приоритето-порождающего функционала представляет собой одну из возможных формализаций так называемого перестановочного приема [158]. Функционал из п. а) рассматривался В. С. Та- наевым [153, 154], а функционал из п. в) — О. И. Мельниковым и Я. М. Шафранским [108]. В указанных работах приведены соответствующие функциопалы приоритета. п Функционал вида F (я) = 2 / (lk) ffc (V <2’ • • • * lk)’ гДе я = (гь Ь=1 i2, ..., *п), рассмотрел Дж. Рау [381]. Он показал, что этот функционал является 1-приоритето-порождающим при следующих условиях: 1) /(«*) > 0, к = 1, п; 2) <pft (ij, i2, ..., th_v ih) = <pft (г^, i'2, i'k_v *ft), если {('j, i2, ..., = {*;>*;>•■ •« tft-il» 3) существуют такие функционалы Ф, Ф, si 1, Ф2, ..Ф„ >0, что <pft(«1, i2, ..., ih_v ift)_ 287
если - n+iOr V • • •>i' 'л-1» ‘л) = фU)°ft(‘r **• • • • - *»-x)’ { I’ 2’ W = ll Функционал 1-приоритета имеет вид со(1>(г) = Ф(0//(0- Е. Лоулср и Б. Сайвазляп [343] рассмотрели задачу минимизации U функционала ^(я)= 2 ь=1 <Pjft (*) dx> ГД° я : («1- ‘«) \= £**, Z=1 %ih f*/t Если q)j (д:) = ai(p(x) + Pi и ф (я) — монотонная на интервале °.2‘ i=l функция, то Е(я) является 1-приоритсто-норож- дающим функционалом. При этом функционал 1-приоритета имеет вид со (i) = ос г, если ф(я)—неубывающая функция, и со (t) = —а г, если ф(я) —невозрастающая функция. Г. К. Кладов и Э. М. Лившиц [761 доказали (в несколько иной терминологии), что функционал (1.1) является 1-приоритето-порождающим (в предположении, что функции фг(я)—строго возрастающие и достаточно гладкие) тогда и только тогда, когда фг (х) = aix + р, (г = 1, п), либо фг (х) = а г ехр (^я) + Pi (i = 1, п), либо cpi(x) = = Ф(я) + рг (I = 1, п). Я. А. Зиндер [68] показал (при тех же предположениях), что функционал (1.1) является приоритето-порождающим на множестве &п тогда и только тогда, когда фг(я) = + рс (i = 1, гг), либо фг(.г) = a* ехр (ух) + рг- (i = 1, п). Вопросам расширения границ эффективного использования перестановочного приема посвящены работы В. В. Шкурбы [184], В. Я. Бурдюка [18], Э. М. Лившица [99], В. Э. Хенкипа [167]; см. также [398, 399].
ГЛАВА 4 NP -ТРУДНЫЕ ЗАДАЧИ В дайной главе устанавливается МР-трудпость ряда задач теории расписаний. Доказательство того, что данная задача В является iVP-трудной, осуществляется по следующей схеме. Формулируется задача В' распознавания, соответствующая задаче В, и строится полиномиальное сведение А к В', где А — эталонная задача, т. е. задача распознавания, о которой известно, что она является NP-иол- пой. Если задача А является АР-полной в сильпом смысле, то иногда строится псевдополиномиальное сведепие. А к задаче В'. В качестве эталонных выбраны следующие задачи: задача о разбиении (§ 1), задача о 3-разбиении (§ 2), задача о клике (§ 3), задача о вершинпом покрытии (§ 4) и задача о линейном размещении графа (§ 5). Для большинства задач после доказательства их NP- трудиости приводится информация о полиномиально разрешимых специальных случаях задачи. Наряду с обычными обозначениями U и Dt длительности обслуживания требования i и его директивного срока соответственно в данной главе нередко для обозначения этих же величин будут использоваться выражения вида t(i) и D(i). Аналогично, наряду с обозначениями du zu щ и т. п., будут использоваться обозначения вида d(i), а(0, L(i), z(i), u(i) соответственно. § 1. Сводимость задачи о разбиении При доказательстве NP-трудности задач теории расписаний, рассматриваемых в этом параграфе, в качестве эталонной используется задача о разбиении. Задача о разбиении состоит в следующем. Дано множество А° = {1, 2, ..., rc0}, каждому элементу i которого сопоставлено патуралыюе число yi и 2 7 i = 2А, где А — нату- ieivo ральное число. Пусть Nk cz №f тогда обозначим Ак ==; в, С. Танаев и др, 289
= 2 УСуществует ли разбиение множества № на два ieivfc подмножества Nl и такие, что А1 = А2? В алфавите S3 длина записи входной информации задачи 0 разбиении заключена в интервале [c^olog 4', с2п0 log 4 " ], где Y = min {^li е №}, 4" = max {^tU ^ №}, с2 — положительные константы. Задача о разбиении является МР-полиой, по не является iVP-полной в сильном смысле (известен псевдополино- миальный алгоритм ее решения). 1.1. В этом параграфе рассматриваются следующие задачи. Задача 1.1. Множество 7V = {1, 2, ..., п} требований поступает па обслуживание в систему, состоящую из двух идентичных приборов, в момент времени d = 0. Требование 1 ^ N обслуживается любым из приборов в течение ti > О единиц времени и без прерываний. Необходимо построить расписание s* обслуживания требований, доставляющее минимум функционалу F(s), в следующих случаях: а) F (s) = lmax (s) = max i{ (5), где tiis) — момент времени i=N завершения обслуживания требования i при расписании s; б) F (5) = ^шах ($) 2 (•*>)» _ if=N в) F (5) = 2 где at — неотрицательное действи- it=N тельное число, сопоставленное требованию i ^ N. Задача 1.2. Обслуживающая система состоит из одного прибора. Требование i из данного множества N = = И, 2, ..., п} поступает в систему в момент времени dt ^ О, длительность его обслуживания равна ti > 0. Прерывания процесса обслуживания требования не допускаются. Каждому i ^ N сопоставлено неотрицательное действительное число а» и директивный срок D{ > 0, к которому желательно завершить обслуживание требования i. Необходимо отыскать расписание s* обслуживания всех требований множества N, доставляющее минимум функционалу F(s), в следующих случаях: а) F (s) = Lmax (5) = max L{ (s), где Lt(s) = U(s) - A; iz=N ■ б) F (s) = 2 d{ = 0, i = lln; здесь ut(s) = 0, ieiv если ti(s) < А, и Uiis) = 1, если ti(s) > A. Задача 1.3. В систему с М^п идентичными приборами в момент времени d = 0 поступает множество N = 290
= {1, 2, ..п} требований. Каждое требование i обслуживается в течение t{ > О единиц времени любым прибором и без прерываний. Необходимо найти минимальное число М* обслуживающих приборов, обеспечивающее завершение обслуживания всех требований к заданному моменту времени D^maxti. i^N В последующих разделах параграфа показывается, что перечисленные задачи являются ./VP-трудпыми. 1.2. В задаче 1.1, а) значение F(s) однозначно определяется распределением требований по приборам, т. е. разбиением множества N на два подмножества Nt и N2. Задаче 1.1, а) соответствует следующая задача распознавания. Определить: существует ли такое расписание s° обслуживания требований множества N, что tmSLX(s°) ^ у для заданного числа у. Задача о разбиении полиномиально сводится к этой за- даче распознавания. Действительно, положим п = n0, U = i_= 1, п\ у = А. Очевидно, расписание, при котором tmax(s°) < у, существует тогда и только тогда, когда в задаче о разбиении существует такое разбиение множества № на два подмножества NJ и Л^, что Ai = A2. Число операций, которые необходимо выполнить при построении описанного сведения, ие превосходит О(п0). Таким образом, задача 1.1, а) является iVP-трудпой. Отметим, что в случае, когда разрешены прерывания в процессе обслуживания требований, эта задача имеет алгоритм решения с оценкой временной сложности 0{п) при любом числе М ^ 2 обслуживающих приборов (см. п. 6.2 § 6 гл. 2). 1.3. Рассмотрим задачу 1.1, б). Ей соответствует следу¬ ющая задача распознавания: существует ли расписание s° такое, что *тах (s°) h (s°) ^ у для данного числа у? По- iSiV кажем, что к этой задаче распознавания полиномиально сводится задача о разбиении. Положим п - 2п0; t{ = 2A + у., tnQ+i= 2Ai% i ==~Ц~п0; z/= ( 2 770 Л — I К + 1) (п0 + 2) + 2 (nQ — i + 1) у. IA (гс0 (п0 + 1) + + 1). Покажем, что в построенной задаче расписание 5° существует тогда и только тогда, когда существует разбиение множества № на подмножества 7VJ и Nlr при котором А1 = А 2. 19* 291
Очевидно, значение F{s) однозначно определяется распределением требований по приборам и заданием последовательностей их обслуживания каждым из приборов. Можпо ограничиться рассмотрением ситуаций, в которых каждое из требований i и i + n0, i = l, гс0, обслуживается i-м по порядку первым либо вторым прибором. Действительно, при любом таком расписании п s величина 2 U is) достигает своего мипимума, равного 2—1 "О |in0(n0+l)(n0+2) +2 K-f + ^Tj (см. п. 8.3 §8 2=1 гл. 2). Легко убедиться также, что от любого расписания s, пе удовлетворяющего приведенному условию, можно перейти к_ расписанию s', которое этому условию удовлетворяет, и tmaLX{s') ^ I max^S ). Поскольку приведенное условие фиксирует порядок обслуживания требований, можпо решать вопрос лишь о том, на каком из двух приборов данное требование должно обслуживаться. Значение функционала ах ($) 2 h (s) опре- ieJV деляется при этом только величиной Fmax(s). В свою очередь расписание 5°, при котором tmaLX(s°) < А{п0Ыо + 1) + + 1), существует тогда и только тогда, когда существует разбиение множества № на подмножества N1 и N%t при котором At = 42. Реализация сведения задачи о разбиении к задаче о существовании расписания 5° требует выполнения не более 0(по) операций. Задача 1.1, б) является, таким образом, МР-трудной. 1.4. Расписание s в задаче 1.1, в) однозначно определяется парой перестановок я(1) и я(2), задающих порядок обслуживания требований множества N каждым из приборов. Очевидно, N = {я(1)} U {я(2)} и {я(1)} П {я(2)} = 0. Задача распознавания, соответствующая задаче 1.1, в), формулируется следующим образом: существует ли расписание s° обслуживания требований множества N такое, что 2 для заданного числа у? Покажем, что к ieiV этой задаче распознавания полиномиально сводится задача о разбиении. Положим п = п0\ U = а< = i = 1, п\ у=А2+у 2 Yi- ieivo 292
Пусть расписание $ определяется парой перестановок п(1) = (г1У i2f..., jni) и я(2) = (/1г ]2, ... j 7п2). Вычислим значение 2aiM5)- Обозначим ^={я(1)}г 7V2={n(2)}. Очевидно,; i<=iV Nl U Nl = iV°. Как нетрудно убедиться, wi ft 2 ieivj l4,?v„ = ft=l 1 = 1 = 2 т* + 2 v ieivV l<l<h<n-y V*i Аналогично 2 ai*i (S) = 4 Мг + 2 Vi V 4 ^ J Следовательно, 2 ai'fi(S) = 4 +л*) + T 2 Vi- ieiV ieiVO Поскольку Л t + A 2 = 2A, величипа A\ + A\ достигает своего минимума, равного 2А2, при А1 = А2. Поэтому рас- писаиие s°, при котором 2 агМ5°) ^ ^42 + у 2 суще- iSiV ieiY° ствует тогда и только тогда, когда существует разбиение множества iV°, при котором Л4=Л2. Построение сведения требует выполнения не более О(п0) операций. Таким образом, задача 1.1, в) является №Р-трудной. Отметим, что при условии at- = 1 (i = 1, п) эта задача имеет алгоритм решения с оценкой временной сложности O(nlogn) (см. п. 8.3 § 8 гл. 2). Указанный алгоритм предназначен для построения оптимального расписания в более сложной ситуации, когда обслуживающая система состоит из М > 2 приборов различной производительности. 1.5. Покажем, что задача 1.2, а) является iVP-трудпой. Сформулируем соответствующую задачу распознавания: существует ли расписание s° обслуживания требований множества N одним прибором, такое, что Lmax(s°) < у для заданного числа у? Построим полиномиальное сведепие задачи о разбиепии к этой задаче. Положим п = и0+1; и = d{ = О, Д=2Л + 1, г = 1, п0; tn = 1, dn = A,Dn = A + 1; у = 0. Расписание s в задаче 1.2, а) однозначно определяется перестановкой я = (г±, г2, ..in) элементов множества N. 293
При этом момент времени начала обслуживания требова- ния ih равен t\h = max [dik, ^й_х), к = 2, п, t?х = dh. Пусть перестановка л имеет вид л = (л(1), п, л(2)). По- ложим N1 = {я(1)}, N° = (я(2)). Очевидно, N[ U N° = №, поэтому Lm^(s) = max {max {Au A) + 1 — (A + 1), max Ul5 A} + 1 + A2 - (2A + 1)} = = max {max {Av — A, 0}, max {0, A2 — A}} = = max {max (Ut — Л2)/2, 0), max {(Az — Л4)/2, OB = = Ut-i42l. Следовательно, Lmax(s)^y = 0 тогда и только тогда, когда существует такое разбиение множества № на подмножества N1 и Л^, что А!=== А2» Построение сведения требует выполнения не более О(п0) операций. Таким образом, задача 1.2, а) является МР-трудной. Отметим, что при й{ = 0 0 = 1, п) задача 1.2, а) имеет алгоритм решения с оценкой временной сложности O(nlogn) (см. и. 3.3 § 3 гл. 2). Известей также алгоритм (см. и. 3.2) решения задачи 1.2 при условии, что di = 0 И = 1, /г), a F (s) = max фД^ ($)), где фДО — неубывающие ieiv действительные функции, i = 1, п. Кроме того, на множестве N может быть задано отношение строгого порядка, и тогда поиск оптимального расписания должен осуществляться среди расписаний, допустимых относительно этого порядка. 1.6. В задаче 1.2, б) расписание s обслуживания требований, как и в предыдущей задаче, может быть задано перестановкой л элементов множества N. Задача распознавания, соответствующая задаче 1.2, б), состоит в том, чтобы определить, существует ли такое расписание 5° обслуживания требований множества N, что 2 &iUi (s°) ^ у для заданного числа у. ieiv Покажем, что задача о разбиении полиномиально сводится к этой задаче распознавания. Положим п = п0+ 1; U = ^г-, а» = Di = 2A, i = 1, п0; tn = 2A, осп = 2A, Dn = 3A, у=А. Очевидно, реализация такого перехода от задачи разбиения к задаче распознавания 294
существования расписания s° требует выполнения не более О(п0) операций. Расписание s° такое, что 2 aiui (s°) ^ существует iGiV тогда и только тогда, когда существует разбиение множества № на подмножества и такое, что Ai = A2. Действительно, пусть перестановка я, определяющая расписание s, имеет вид я = (я(1), п, я(2)). Положим {я(1)) = №ъ (я(2)) = 7V£, тогда iVj и = JV0 и S (s) = i<=N = 2Лм„ (5) + А2. Нетрудно заметить, что un(s) = 0 тогда и только тогда, когда Поэтому, если перестановка я такова, что А{>А, то 2ai^i(s)>^4. Если же то 2 агиг (s) — ^2 и, следовательно, для ТОГО, чтобы isiv 2 °^г^г (5) ^ А» необходимо и достаточно, чтобы = iSiV = л2 = л. Таким образом, задача 1.2, б) является iVP-трудной. Задача 1.2, б) имеет эффективные алгоритмы решения (с оценкой O(nlogn)) в следующих ситуациях (см. § 4 гл. 2, пп. 4.3, а) и б) соответственно): 1) а* = 1, i = 1, п\ 2) для всех i, /e]V таких, что ti<th имеет место неравенство а* ^ OCj. Отметим также, что в случае неодновременного поступления требований в обслуживающую систему (^ 0, i = = 1, п) задача 1.2, б), оставаясь iVP-трудной в общем случае, имеет алгоритм решения с оценкой временной сложности 0(п2) в случае, когда ai=l (& = 1, п) и для всех j е N таких, что d{ < dj, имеет место неравенство Д ^ Д (см. п. 4.3, в) § 4 гл. 2). 1.7. Покажем, что задача 1.3 также является ЛФ-труд- ной. Ей соответствует следующая задача распознавания. Определить: существует ли такое число М°^у для заданной величины у, что в условиях задачи 1.3 найдется расписание s обслуживания требований, при котором £max(s) ^ D. Задача о разбиении полиномиально сводится к сформулированной задаче распознавания. Действительно, положим п = п0; ti = 4u i = 1, щ D = А; у = 2. Очевидно, два прибора смогут завершить обслуживание всех п требований к моменту времени А тогда и только тогда, когда существует такое разбиение множества № на подмножества № 295
и Nit что Ai=A2. Реализация сведения требует выполнения О(п0) операций. Задача 1.3, являясь iVP-трудной в случае, когда прерывания процесса обслуживания требований запрещены, оказывается тривиальной при разрешении прерываний. Нетрудно убедиться, что в этом случае М* = где Г х ”1 — наименьшее целое число такое, что х < Г х П. 1.8. Пусть F(xu х2, ..., хп) — действительная функция, a s — некоторое расписание обслуживания требований множества N. Обозначим zt(s) = max{0, his)— Д} и zmax(s) = = max zi (s). i<=N Замечание 1.1 Пусть А, В, С и Е — задачи распознавания, соответствующие экстремальным задачам, различающимся только целевыми функционалами: Lmах (s), Zmax(s), 2 zi(s) и 2j (s) соответственно. Тогда суще- i<=N ieiv ствуют полиномиальное и псевдополиномиальное сведения задачи А к задачам В, С и Е. Действительно, обозначим через № и N множества требований в задачах А и В соответственно, I TV01 = лг0. Пусть D\ — директивные сроки в задаче А и исследуется вопрос о существовании такого расписания 5°, что LmAX(s°) ^ у0 для заданной величины у0. В задаче В положим N = №r D\ = = D\ +у0 (i = 1, п0) и у = 0. Нетрудно убедиться, что упомянутое расписание s° существует тогда и только тогда, когда в задаче В существует такое расписание s, что 2тахЫ ^ У• Очевидно, что описанное сведение является полиномиальным и псевдополипомиальным. Сведения задачи А к задачам С и Е строятся аналогичным образом. Замечание 1.2. Пусть в задаче Q целевой функционал имеет вид Fihis), t2(s), ..., tn(s)), а задачи R и V отличаются от задачи Q лишь целевыми функционалами, которые имеют вид FiL^s), L2(s), ..., Ln(s)) и Fiz^s), z2(s), ..., zn(s)) соответственно. Пусть, кроме того, в задачах В и V для всех требований i е N имеет место Di = = D^ 0. Тогда существуют полиномиальное и псевдополиномиальное сведения задачи Q к задачам R и V. Действительно, полагая D = 0, при любом расписании s получаем Li(s) = z{(s) = ti(s) и, следовательно, FUiis), t2(s), tn(s)) =F{Li(s), L2(s), ..., Ln(s)) =F(zl(s), z2(s),... ..., zn(s)). Из приведенных рассуждений непосредственно следует справедливость следующего утверждения. 296
Замечание 1.3. Пусть в задаче Q (см. замечайте 1.2) функционал Fihis), t2(s), ..., tn(s)) = tmixx(s), а в задачах С и Е (см. замечание 1.1) для всех требований i^N имеет место Di — 0. Тогда существуют полиномиаль¬ ное и псевдополиномиалъное сведения задачи Q' к задачам С и Е. Здесь Q' — задача распознавания, соответствующая задаче Q. Замечание 1.4. Пусть задача II состоит в следующем. Множество N требований обслуживается одним прибором. Требования поступают на обслуживание одновременно и должны обслуживаться без прерываний. На множестве N задано отношение строгого порядка с графом редукции G. Требуется определить, существует ли такое допустимое относительно G расписание s обслуживания требований множества N, что значение функционала Fihis), t2is), ..., tnis))Ky для заданной величины у. Предполагается, что Fixи х2, ..., хп) — неубывающая по х{ функция при £i>0, i= 1, п. Если задача Я отличается от задачи II лишь тем, что при обслуживании требования допускаются прерывания, то существует как полиномиальное, так и псевдополиномиалъное сведение задачи II к задаче Я. Действительно, если в задаче Н требуемое расписание существует, то его можно взять в качестве искомого и в задаче Я. С другой стороны, из теоремы 1.1 § 1 гл. 2 следует, что для любого допустимого расписания s в задаче Я существует допустимое расписание s' в задаче II, удовлетворяющее условию F(s') ^Fis). Замечание 1.5. Пусть задача К состоит в следующем. Требования множества N в один и тот же момент времени поступают в обслуживающую систему, состоящую из М^2 идентичных приборов. Каждое требование обслуживается без прерываний. Необходимо выяснить, существует ли расписание s обслуживания требований множества N такое, что значение функционала F(s) ^ у для заданной величины у. Предполагается, что функция Fix) является е-квазивогнутой при Хг>0, i= 1, п (см. и. 1.3 § 1 гл. 2). Если задача R отличается от задачи К лишь тем, что при обслуживании требования допускаются прерывания, то существует как полиномиальное, так и псевдополиномиалъное сведение задачи К к задаче R. Справедливость этого утверждения следует непосредственно из теоремы 1.2 § 1 гл. 2. 297
1.9. В силу замечаний 1.2 и 1.3 из /VP-трудности задач 1.1, а) и 1.1, б) следует, что задача 1.1 является NP-трудной и в следующих случаях: г) F (s) = zmax (s); Di = D, i = 1, щ Д) F (s) = 2 Zi (s); Z)i = D, i = 1, ra; ieiv е) P (s) = 2 Щ (s); Di = D, i = 1, rc; ieiv ж) P (5) = Pmax(s)» з) P (5) = zmax (s) 2 zi (5); Di = D, i = 1, rc; ieiV и) P (.9) = Lmax (s) 2 L% (s)\ Di = D, i = 1, /г. ieiV Из замечания 1.1 и /VP-трудности задачи 1.2, а) следует, что задача 1.2 является /VP-трудной и в следующих случаях: в) Р (5) = zmax (5); г) F(s)= 2 Ms). i SN Из замечания 1.4 (соответственно 1.5) следует, что задача 1.2, б) (соответственно 1.1, в)) остается /VP-трудной и при разрешении прерываний процесса обслуживания требования. § 2. Сводимость задачи о 3-разбиении В этом параграфе при доказательстве /VP-трудности задач теории расписаний в качестве эталонной используется задача о 3-разбиении, состоящая в следующем. Дано множество № = {1, 2, ..., 3п0} и натуральное число б. Каждому элементу i е N° сопоставлено натуральное число ч* такое, что 6/4 < к* < 6/2 и 2 Yi — поСуществует ли такое ieivo разбиение множества № на п0 трехэлемептных подмножеств №jt что 2 Yi = 6 0 = !.t ио)? iGiVj Задача о 3-разбиении является /VP-полпой в сильном смысле. Длина записи ее входной информации в алфавите U равна О(6/г0), а в алфавите S3 — O(ra0log6). 2.1. Здесь рассматриваются следующие задачи. Задача 2.1. В обслуживающую систему, состоящую из трех идентичных приборов, в момент времени d = 0 поступает множество /V = {1, 2, ..., п} требований. Обслуживание каждого требования может быть осуществлено лю¬ 298
бым из приборов в течение одной единицы времени. Прерывания процесса обслуживания требования не допускаются. Для обслуживания требования i е N в каждый момент времени требуется г{ единиц некоторого ресурса. Общее количество ресурса, доступного в каждый момент времени, ограничено и равно R. Необходимо построить расписание 5* обслуживания всех требований, доставляющее минимум функционалу F(s), в следующих случаях: а) F (s) = tmax(s) = max £*(s), где ti(s) — момент време- iSJV пи завершения обслуживания требования i при расписании s; б) F(s)= 2 М*). Задача 2.2. Множество 7V = {1, 2, ..., п} требований обслуживается одним прибором. Обслуживание требования i е N может быть начато не раньше, чем в момент времени di > 0, и должно осуществляться в течение U > 0 единиц времени. Если противное не оговорено, то прерывания процесса обслуживания требования не допускаются. Каждому i е N сопоставлено число а» > 0 и директивный срок А ^ О, к которому желательно завершить обслуживание требования i. На множестве N задано отношение строгого порядка такое, что каждая компонента связности графа G = (N, U) его редукции является цепыо. Необходимо отыскать допустимое относительно G расписание s* обслуживания всех требований множества N, доставляющее минимум функционалу F(s) в следующих случаях: а) F(s) = 2 М*); G = (N,0)\ г=ЛГ б) F (s) = 2 aiti(s)\ G = (N, 0) и разрешены прерыва- г SiV иия процесса обслуживания требования; в) F(s) = 2 *{ = 1, г = ТГЙ; ieiv г) F (s) = 2 aiZi (s); £?i = 0, i = 1, n; G = (N, 0); здесь i GiV Zi (s) = max {0, (s) — Di); д) F (s) = 2 a4Zi (s); = 0, t{ = 1, i = 1, n; iGiV е) F (.?) = 2 (5)*» = 0, i = 1, n\ G = (N, 0); поиск ieAT расписания s* осуществляется среди таких расписаний s, что £гЫ ^ Di (i = 1, тг); 299
ж) F (s)= 2 aiPi{s) i di = 0, ti = 1, i = 1, тг; как и в lG iV п. е), расписание s* должно удовлетворять условию Fi(s*) < < A, i = 1, я; з) F (5) = 2 Hi(s); ^ = 0, = 1, i = l, /г; здесь Ui(s) =» zGiV = 1, если ti(s) > D, и иДз) = 0, если F*(s) < Du Задача 2.3. Множество iV = {1, 2, ..., тг} требований в момент времени d = 0 поступает в обслуживающую систему, состоящую из двух идентичных приборов. Обслуживание требования i ^ N может быть выполнено любым из приборов и требует U единиц времени. Прерывания процесса обслуживания требования не допускаются. На множестве N задано отношение строгого порядка, графом редукции которого является граф G = (N, U). Каждая компонента связности G представляет собой входящее дерево. Необходимо среди допустимых относительно G расписаний обслуживания требований множества N отыскать расписание s*, доставляющее минимум функционалу F (s) = 2 *i(s). iGN Задача 2.4. В обслуживающую систему, состоящую из двух идентичных приборов, в момент времени d = 0 поступает множество iV = {1, 2, ..., п} требований. На множестве N задано отношение строгого порядка такое, что каждая компонента связности графа G = (N, U) его редукции является цепью. Обслуживание каждого требования i^N должно протекать без прерываний и может быть осуществлено любым из приборов. Длительность обслуживания каждого требования равна единице. При обслуживании требования i в каждый момент времени расходуется единиц некоторого ресурса, причем 0, 1} U = l, п). В каждый момент времени можно расходовать не более одной единицы ресурса. Необходимо построить допустимое относительно G расписание s* обслуживания требований множества N, удовлетворяющее ограничению по ресурсу и доставляющее минимум функционалу F(s), в следующих случаях: а) F{s} == б) F(s) = 2 м*). ZGIV 2.2. Предварительно установим справедливость одного утверждения, используемого далее при доказательстве NP- трудности некоторых задач теории расписаний. Рассмотрим следующий класс задач. Требования из заданного множества 7V = {1, 2, ..., п} поступают в момент времени d = 0 в обслуживающую си¬ 300 *
стему, состоящую из одного прибора. Прибор может обслуживать одновременно не более одного требования и должен работать без простоев. Для обслуживания требования i ^ N необходимо ti единиц времени. Каждому i ^ N сопоставлены неубывающая функция ф*Ш и директивный срок О, к которому желательно завершить обслуживание требования i. На множестве N задано отношение строгого порядка и G = (N, U) — граф редукции этого отношения. Задана также неубывающая функция ф(£) такая, что ф(0) = 0. Необходимо отыскать допустимое относительно G расписание s* обслуживания требований множества N, доставляющее минимум функционалу F (s) = 2 Ф [ф*(^ ($))]• i<=N Будем говорить, что граф G' получается из графа G подстановкой цепи С = (г{, i2i ..., Jr), г^1,- если G' может быть получен из G заменой некоторой его вершины i цепью С так, что все дуги, входящие в i (исходящие из i) заменяются дугами, входящими в i± (исходящими из ir соответственно). Будем говорить, что граф G' получается из графа G подстановкой цепей, если G' получается из G подстановкой вместо каждой его вершины некоторой цепи (своей для каждой вершины). Если Н — экстремальная задача, то через Н' будем обозначать соответствующую ей задачу распознавания. Пусть А ж В — задачи из описанного класса, G и G' — графы редукции отношений строгого порядка, определенные на множествах требований этих задач соответственно, и G' получается из G подстановкой цепей. Лемма 2.1. Пусть в задачах А и В имеем фг(^)=а^, а г > 0, и эти задачи различаются лишь тем, что в задаче А числа ti —целые положительные, а в задаче В все требования имеют единичную длительность обслуживания. Кроме того, если в задаче А имеет место Х2, ..., Я*}, то в задаче В имеет место аге{0, Я2, ..., Х*}- Предположим также, что задачи С и Е отличаются от задач А и В соответственно лишь тем, что в них ф,(£) = a* max {0, t — Di}. Тогда существует псевдополиномиальное сведение задачи А' к задаче В' и задачи С' — к задаче Е'. Доказательство. Построим псевдополипомиальпое сведение задачи А' к задаче В'. Множество требований в задаче В' обозначим через N' и сформируем его следующим образом. Каждому требованию i^N сопоставим U требова- НИИ i(1\ г(2),,. полагая <|(W'=* \{к = ТД(), ai(W =» О* 391
Di(h) — 2^ ti (к = 1 ,ti— l), a.((.) = aj, D.(,.) = Di. На мио- жестве N' определим отношение строгого порядка, задавая его редукцию следующим образом. Полагаем а) ^ /(1) тогда и только тогда, когда i -*■ /, и б) i{h) -> i{k+i) для всех i^N, к=\, ti - 1. Граф редукции построенного отношения строгого порядка обозначим через G'. Очевидно, граф G' получается из G подстановкой цепей. Пусть существует такое допустимое относительно G расписание s' обслуживания требований множества N, что 2 cp (а^ (s'))^ у. Тогда очевидно, что в построенной за- ieiN даче В' существует допустимое относительно G' расписа- ние s" такое, что 2 Ф (а4(«*4(Ю (s")) <У- i(W<=N' Предположим, что существует допустимое относительно G' расписание s" обслуживания требований множества N\ удовлетворяющее условию 2 Ф (a-i(fc)*iOO (0)^1/•Покажем, i (^)eN' 4 что в этом случае существует такое допустимое относительно G расписание s' обслуживания требований множества N, ЧТО 2 Ф (s') ) ^ У- г f=N Пусть существует такое что при расписании s" имеет место соотношение t^h+1)(s") = £.(/{) (s") + 1 + с для некоторого к, 1 и с>0. Перейдем от s" к рас¬ писанию s'", при котором требование i{h) начинает обслуживаться на с единиц времени позже, чем при расписании s", а требования, обслуживаемые при расписании s" в интервале времени (ii(k) (s"), t^h) (s") + с], каждое на одну единицу времени раньше. Нетрудно убедиться, что s'" является допустимым относительно G' расписанием и 2 фЦоО^Ш («'"))< 2 Ф (О). iWeJV' i(«<=JV' Воспользовавшись описанным приемом достаточное число раз (не более 2 h)% можно перейти от s" к V i==iv ; такому допустимому относительно G' расписанию 5°, что 2 Ф (<*,№)**№) (s0)) < 2 Ф и ^(й+1) (s°) = = ti(k) (s°) + 1 для всех i^N, к = 1, £» — 1. Расписание 5° однозначно определяет такое допустимое относительно G 302
расписание s' обслуживания требовапий множества N, что 2 Ф (аЛ («')) = 2 Ф («4<м*4<м (s°)) < У- iSJV i(/0SJV' Реализация описапного сведения требует выполнения О (2 М операций. Длина записи входной информации \ieiv ; <4» задачи Л' в алфавитах 0 и И соответственно не меньше, чем In п \ сх 2 (log + log a4 + log Di) + 2 log » + cu \ i=l i=1 / ^2^2 (^i + ai + + ^2r а задачи В' — соответственно не меньше, чем 2 ^logaj + log Di) + 2 log (h o) + 4* c4 ^ 2 (ai + ^i) + ^ 2^ + c4- ' ' ' ' Здесь clf c2j c3l c4t clrc2, c3, c4 — некоторые константы, причем первые четыре из них — положительные. В качестве полиномов р' и р" (см. определение псевдо- полиномиалыюго сведения) можно взять полиномы р'{х) = = сх2 и р" (х) = с'х, где с и с' — некоторые положительные константы. Описанпое сведение задачи А' к задаче В' является, таким образом, псевдополнномиальным. Псевдополипомиальное сведение задачи С' к задаче Е' строится аналогичным образом. Отличие заключается лишь в том, что вместо а.(/<) =0 (/с = 1, — l) полагаем а ^ = a * (k= 1, £f). Отметим, что при любом расписании s обслужи- ваиия требований множества N' для всех i^N и к = = 1, ti — 1 имеем z{(/<) (5) = 0. Лемма доказана. Замечание 2.1. Из приведенных выше рассуждений следует, что в задаче А' допустимое относительно G расписание s', удовлетворяющее условиям ti(s')^Di (i = l,n), существует тогда и только тогда, когда в построенной задаче В' существует допустимое относительно G' расписание s", удовлетворяющее условиям i^h) is") ^ 0 “ 1, ni к = \Ji), 303
Следствие 2.1. Если задача А' (задача С') является NP-трудной в сильном смысле, то и задача В (задача D соответственно) является NP-трудной в сильном смысле. Справедливость этого утверждения следует из теоремы 3.2 (см. § 3 гл. 1). 2.3. Поскольку задача о 3-разбиепии является NP-полной в сильном смысле, для доказательства iVP-трудности перечисленных в п. 2.1 задач достаточно построить псевдо- полиномиальные сведения задачи о 3-разбиепии к соответствующим задачам распознавания. Задаче 2.1, а) соответствует следующая задача распознавания: существует ли расписание 5° обслуживания требований множества N, при котором для осуществления обслуживания в каждый момент времени требуется не более R единиц ресурса и такое, что tmax{s°) ^ у для данного значения у? Построим полиномиальное сведепие задачи о 3-разбпе- нии к сформулированной задаче распознавания. Положим п = Зп0, Ti = i = 1, п\ R = б; у = п0. Пусть задача о 3-разбиепии имеет решепие. Тогда каждое подмножество №j из разбиения множества № будет определять тройку требований, которые должны обслуживаться в интервале времени [/—1, у]. Способ распределения этих трех требований по приборам — произвольный. Очевидно, определенное таким образом расписание 5° обеспечивает завершение обслуживания всех требований множества N к моменту времени п0, причем для обеспечения обслуживания в каждый момент времени необходимо б единиц ресурса. С другой сторопы, если для построеииой задачи существует такое расписание 5°, что £max(s0) ^ и0, то это означает, что в каждый момент времени обслуживается ровно три требования. Каждая такая тройка требований, обслужива- ющаяся в интервале времени [у —1, у], однозначно определяет подмножество Nj требуемого разбиения множества №. Нетрудно заметить, что реализация описапного сведения требует выполнения О(п0) операций и что это сведение является одновременно и полиномиальным, и псевдополи- номиальным. Из того, что задача о 3-разбиепии является МР-полиой в сильном смысле, следует, что задача 2.1, а) является iVP-трудной в сильном смысле. Отметим, что если в задаче 2.1, а) обслуживающая система будет состоять из двух приборов, то полученная задача окажется полиномиально разрешимой (см. [211]). 304
Алгоритм решения этой задачи имеет оценку сложности O(nlogn). 2.4. Сформулируем задачу распознавания, соответствующую задаче 2.1, б). Определить: существует ли расписание s° обслуживания требований множества N такое, что 2 h (s°) ^ У для заданного значения у. з Положим п = 3;г0, = у{, i = 1, п\ R = б, у = п0 (п0 + 1), Нетрудпо убедиться, что реализация описанного преобразования задачи о 3-разбиеиии в сформулировапную задачу распознавания требует выполнения не более ОЫо) операций. Если задача о 3-разбиепии имеет решение, то разбиение множества № однозначно определяет разбиение множества N на такие тройки требований, что для обслуживания каждой тройки необходимо ровно б единиц ресурса. Если 5° — расписание, при котором в каждом интервале времени [/— 1, /], / = 1, п0, обслуживается /-я тройка требований, то 2'М«°) = ТпоК + *)• i eN Пусть существует расписание s°, которое удовлетворяет ограничениям па используемое в каждый момент времени количество ресурса и такое, что 2 is°) по (по + 1)« ieiV 2 Нетрудно убедиться, что для выполнения последнего неравенства необходимо, чтобы в каждый момент времени при расписании 5° обслуживалось ровно три требования. Поскольку 2 Т* = по^% расписание s° однозначно опредо- i GiV г лист искомое разбиение множества №. Таким образом, задача 2.1, б) является iVP-трудпой в сильном смысле. 2.5. Задаче 2.2, а) соответствует следующая задача распознавания: существует ли расписание 5° обслуживания требований множества N, при котором 2 ^г($°)^2/ для i^N заданного зпачепия у? Построим псевдополиномиальное сведение задачи о 3- разбиении к сформулированной задаче распознавания. Положим п = Зп0 + (^о + 1){п0 + б)3. Формируемое множество N будет содержать требования двух типов — основные и вспомогательные. Основпые требования i имеют параметры = di = 0, i = l, 3По. Множество вспомогательных требований j\h) состоит из п0 + 1 группы с парамет- рами * = 1/К + 8)*, d (/ih)) = (б + 1) (к - 1), к = М0, 20 в8 С, Танаев и др, 305
I = 1, (n0 + б)3; t (/Г0+1)) = 1, d(/i"0+1)) = n0(8 + 1), l = = 1, (п0 + б)3. Положим у = 3 (6 + 1) п0 (/г0 +1)/2 + и0(гс0 + + б)3 (1 + 1/(тг0 + б)3)/2 + К -1) (6+ 1)) + (2п0 (б + 1) + К + + б)3 + 1) (К + 6)3)/2. Если задача о 3-разбиении имеет решение, то обслуживание каждого из вспомогательных требований j[h) может быть завершено в момент времени t= (к —1)(6 + 1)4- + Z/(n0 + 6)3, к= 1, и0, Z = 1, (п0 + 6)3, а каждого из требований j[ 0+ ^ — в момент времени t = п0(б + 1) + J, I — = 1, (п0 + б)3. Это можно осуществить так, как показано па рис. 2.1, где заштрихованный прямоугольник обозначает 1 1 Ш-ГI I 1 О 1 £*) 0+2 2(j+f)...(n0-f)(d4l) по(0+1) п0(д>1)Цпи+$/ £ Рис. 2.1. вспомогательное требование, а иезаштрихованиый — основное требование. Пусть s° — расписание, соответствующее ситуации, изображенной на рис. 2.1. При этом расписании обслуживание каждой тройки основных требований, обслуживаемых непосредственно после к-й группы вспомогательных, завершается в момент времени £ = М6 + 1). Поэтому Ал t\(s°) ^ -я- (б + 1) п0 (п0 + 1), где N' — множество всех »eiv' основных требований. Следовательно, "о К+6)3 2*i(s°x|-(e + i)»oK + i) + 2 2 ((*— 1)(в +1) + i(=N h=1 1=1 (П0 + б)3 + 1/(п0 + б)3) + 2 К(б+1) + ^) = 2/- 1=1 Пусть задача о 3-разбиепии не имеет решения. Посколь- ("о+6)3 КУ Tfi — натуральные числа, а 2 * («Z^))==l (& ~ 1» по)г 1=1 при любом расписании s имеем: а) обслуживание хотя бы одной из групп вспомогательных требований будет начато по крайней мере па единицу времени позже по сравнению с ситуацией, соответствующей рис. 2.1, либо б) хотя бы 306
одно из основных требований будет обслуживаться после (и0+1)-й группы вспомогательных требований или в промежутке времени между обслуживанием двух требований этой группы. В любом случае получаем 2 М*)> i<=N "о (по+6)3 > («О + S)3 + 2 2 ((А - 1) (6 + 1) + Щп0 + 8)») + к=1 1=1 (П0+б)3 + 2 (п0Ф + 1) + 1)>у, i=i 3 поскольку (п0 + б)3> -J (8 + 1) п0 (п0 + 1). Следовательно, искомое расписание 5° существует тогда и только тогда, когда задача о 3-разбиении имеет решение. Построение сведения требует выполнения не более ОЫоЫо + 6)3) операций. Поскольку задача о 3-разбиении ЛФ-полиа в сильном смысле, задача 2.2, а) является NP- трудпой в сильном смысле. Если в условиях задачи 2.2, а) положить d{ — О (& = 1,и), то задача сводится к минимизации приоритето-порождающего функционала на множестве Рп всех перестановок элементов множества N. В этом случае для нее известен (см. § 7, гл. 3) алгоритм решения с оценкой сложности O(nlogn). 2.6. Задаче 2.2, б) соответствует следующая задача распознавания. Существует ли расписание s° обслуживания (возможно, с прерываниями) требований множества N такое, что 2 для заданного значения у! iSN Построим полиномиальное сведение задачи о 3-разби- ении к сформулированной задаче распознавания. Положим п = 4и0 — 1; d{ = О, U = а, = Чь i = 1, Згг0; di = = (i — 3/г0)(б + 1) — 1, ti = 1, аг = б, i = 3«о + 1, 4/гъ — 1; у =* = 2 ytyh + 6 (8 + 2) п0 (п0 — 1)/2. l<l<h<3n0 Покажем, что при поиске расписания s° обслуживания требований сформированного множества N можно ограничиться рассмотрением расписаний, при которых обслуживание каждого требования i начинается в момент времени d{ при i = 3tto+l, 4д0 — 1. Если бы вместо условия £,= 1 было выполнено условие U = 0 (i = 3п0 + 1, 4п0 — 1) и 20* 307
8П0 F (s) = 2 aiU is)r т0 ПРИ любом расписании s обслужива- i=l ния (без прерываний) требований множества N имело бы' место равенство F (s) = 2 Ч,Ук- Обозначим эту сумму через v, множество {1, 2, ..., 3tt0} обозначим через N', а через Nhis) — множество требований из N\ обслуживание которых при расписании s завершается позднее, чем обслуживание требования 3п0 + к (к= 1, п0— 1). Обозначим через t°k (s) момент времени начала обслуживания требования 3п0 + к (к = 1, п0— 1) при расписании s. Тогда нетрудно убедиться, что 2 (s) = v + 2 2 7,- + ^ 2 (*а (s) + !)• i(=iV h=1 }GNh(s) J h=l Пусть при расписании s обслуживание некоторого требования i^N\N' начинается в момент времени dU + ru где Г1 ^ 1, а в интервале времени [d{, di + rj обслуживается требование / е N\ которое начинает обслуживаться в момент времени d, — г2, где г2 ^ 0. Перейдем к расписанию s\ которое получается из s следующим образом. Пололшм t\ (5') = если t°i (s) = di + г2; обслуживание требования j начнем в момент времени di + 1 (если г2 = 0) либо прервем обслужи- вание у (если г2 > 0) с последующим дообслуживанием его, начиная с момента времени d* + 1. Очевидно, F(s) — F(s') > ^ rt6 — > 0. Отсюда следует, что достаточно ограничиться рассмотрением таких расписаний s, что t°h (s) = d3nQ+k (/c = l,ra0—1)« Отметим, что при любом таком расписании F(s) = v + b(8 + i)n°£k + n0£ 2 Т,- h=l h=l 3<=N}i(s) J n0-l = v + n + 2 2 v« h=l }S=Nh(s) где ц = 6(6 + l)n0(n0 — l)/2. Таким образом, при любом расписании s из рассматриваемого класса значение F(s) опрело-1 деляется величиной 2 2 ft=l }GNh(i) 303
Предположим, что существует такое разбиение множества № на п0 трехэлементиых подмножеств iVj, что 2 Уг=8. Не теряя общности, можно считать, что iVj = {3/ — 2,: 3/ —1,3;} (/ = 1, п0). Тогда нетрудно убедиться, что при расписании s', определяемом перестановкой л' = (1, 2, 3, З/io+l, 3/ — 2, 3/ — 1, 3/, З/2-о “Ь /, • • •, 4/io 1» Зтг0 2, Зп0 — 1, З/2-о)» каждое требование i^N\N' начинает обслуживаться в мо- rio-i мент времени di и 2 (s) = v + ц + 2 S (^o — &) = v + ieiv k=i + (A + 6/г0(/г0—l)/2=y. Пусть требуемого разбиения множества № не существует и пусть при расписании s обслуживание каждого требования i^N\N' начинается в момент времени dix а требования из множества N' обслуживаются в порядке, определяемом перестановкой я = (г1г hr • • •* hn0)• Тогда должен существовать такой индекс к, что у. + у. + у. =Р Ф б« ^Зя—2 *3д—1 *3п В качестве к выберем минимальный индекс, удовлетворяющий этому условию. Если р < б, то 2 Yi=(^o—к) 8+ 3^Nh(s') + (б —р). Если б < Р, то при расписании s' обслуживание требования i8k протекает с прерыванием и S у, = К — jsNh(3') 1 —к) 8 + В то же время при расписании s' для любого j (/ = 1, тг0 — 1) выполняется неравенство 2 У^(по—/) поскольку d3n0+j = ; (б + 1) — 1 и к этому моменту времени при расписании s' могут быть обслужены требования из множества N', общая длительность обслуживания которых не превосходит /(б + 1) — 1 — (/ — 1) = /б. По”1 Таким образом, F (s') ^ v + \i + ^2 {по — jf) б + (б — Р) либо F (s') > v+ р- + 2 (по — /) 5 + у, • В любом случае 2=1 3h F(s') > у. Реализация описанпого сведения требует выполнения О (/zj) операций. Это сведение является и полиномиальным, и (что легко проверить) псевдополиномиальным. 309
Задача 2.2, б) является, следовательно, TVP-трудной в сильном смысле. 2.7. Построим сведение задачи 2.2, б) к задаче 2.2, в). Обозначим через N' множество требований в задаче 2.2, в) и сформируем его следующим образом. Каждому i^N сопоставим U требований i(2), ..., ^ (можно, не теряя общности, считать, что числа U — целые), полагая ос.(Л) = О, А = Mi — 1; a.(<i) = ti{h) = 1, d.{h) = di, к =1, t{. Отношение строгого порядка па N' определим, задавая его редукцию: i{h) i{h+i\ к = 1, ^ — 1, i=l, п. Очевидно, любая допустимая относительно G перестановка я элементов множества N' однозначно определяет расписание s обслуживания требований множества N в за- даче 2.2, б) и F(s) = F'(s'), где F’(s')= 2 ai(A)li(ft)(6-'), iOO(=N' a s' — расписание обслуживания требований множества N', определяемое перестановкой я. С другой стороны, расписание s обслуживания требований множества N однозначно определяет перестановку я элементов N'. Реализация описанного сведения требует выполнения О ( 2 ^ операций, и это сведение является нссвдополино- [i=N ) миальпым. Из МР-трудности в сильном смысле задачи 2.2, б) следует, что и задача 2.2, в) является TVP-трудной в сильном смысле. Отметим, что при условии G = (N, 0) задача 2.2, в) имеет алгоритм решения с оценкой сложности 0(п3) (см. п. 4.5 § 4 гл. 2). Этим же алгоритмом решается задача 2.2 (с тон же оценкой сложности) и при условии, что G = (N, 0), ti = 1 (i= l, п) и F (s) = 2 Фг(М5))> где ф,-Ы — пеубы- i<=N вающие функции для всех i ^ 7V. 2.8. Задаче 2.2, г) соответствует следующая задача распознавания. Определить: существует ли такое расписание s0 обслуживания требований множества N, что2 aizi(5°)^y ieiv для заданного значения у. Построим полиномиальное сведение задачи о 3-разбие- нии к сформулированной задаче распознавания. Множество N требований сформируем следующим образом. Положим п = Ап0 и введем требования двух типов: Ik (к = 1, п0) и Jh (к = 1, Зщ). 310
Положим t (lk) — а — 62Ло, a(lh) =S (6 + cl) п0 (лг0+1)/2 + D (Ik)= ак +б (к — 1), к =1Тп0; t (Jh) =a (Jh) = yk, D (Jk) = 0* к = 1, 3n0, y= 6 (6 + a) n0 (n0 + l)/2. Пусть задача о З-разбиеиии имеет решение. Не теряя общности, можно считать, что ^3j-2 + 'fsi-i + = б (j = = 1, п0). Рассмотрим расписание 5°, определяемое перестановкой ^ 1ч «^3» ^2i *^б’ *^6г ^3» •••» J Зп0—2г; Лп0-1, Лп0). Нетрудно убедиться, что g(/fc(s°)) =Р(1к), а tU3j-2(s0)) <tU3j-l(s0)) <UJ3j(s0)) = а/ + б/ (/ = 1, Но). Здесь Н/fcU)) и г(ДЫ) — моменты завершения обслуживания требований /Л и /Л при расписании 5. Поскольку a(J3j~2) + + a(/3j-i) + a(/3j) = б (/ = 1, н0), получаем "о 2 «jZi (s°) < 2 6 (« + 6) / = 6 (a + б) ”° = У- ieiv j=i Пусть существует такое расписание s' обслуживания требований множества iV, что 2 aizi (s') ^ I/* Поскольку г GiV числа б и — целые, а а(/А) > г/, должно выполняться условие t(Ih{s')) ^ D(Ik) (А = 1, н0). Действительно, если f(/fc(s')) > /Д/Л) для некоторого индекса А, то z(/fc(s'))^l и 2 aizi(s')^y + 1. is N Обозначим через A^(s') множество всех тех требований Jj (/е{ 1, 2, . .., Зн0}), обслуживание которых при расписании s' завершается позже, чем обслуживание требования h (А = 1, н0); полагаем по определению N71q+1(s') = 0. Обозначим^ = 2 Поскольку t(Ih(s')) ^ «А + 6(А — 1) и a (Jj) = Д/j), должно выполняться условие Ah > бн0 — — 6(А — 1) = б(н0 — А + 1). Очевидно, для любого требования Jj, обслуживаемого при расписании s' позднее требования /а, справедливо t(Jj(s')) > ак. Поэтому ”0 *0 2 ^ 2 cik (Л^ Ah\-i) = а 2 iSiV fc=l fe=l Предположим, что существует индекс А', удовлетворяю- щпй условию Л&/ — S (по — ^ + 1) + 1* 311
Тогда 2 aiZi (s') > aS (rc0 — A; + 1) + a — ieiV h=l = a« + . - и - 6*i%±il + 8%; что противоречит определению расписания s'. Следовательпо, = 6(д0 — к + 1) и Ah — Ak+l = 6. Поскольку a(Д) = £(Д) (А: = 1, 3/г0), общая длительность обслуживания требований Д, обслуживаемых при расписании s' в интервале времени между моментом завершения обслуживания требования Д и моментом начала обслуживания требования Д+1 (А: = 1, д0—1), равна б. Из определения величин 7л следует, что в указанном интервале времени обслуживается ровно три требования Д. Расписание s', таким образом, однозначно определяет искомое разбиение множества №. Реализация описаппого сведения требует выполнения О(д0) операций. Это сведение является и псевдополиномиальиым. Таким образом, задача 2.2, г) является TVP-трудной в сильном смысле. Если U= 1 (£ = 1, д), то задача 2.2, г) имеет алгоритм решения с оценкой сложности 0(п3) даже при неодновременном поступлении требований на обслуживание (см. п. 4.5 § 4 гл. 2). Задача 2.2, д) является iVP-трудпой в сильном смысле. Это следует из леммы 2.1 и iVP-трудиости в сильном смысле задачи 2.2, г). При G=(N, 0) упомянутый выше алгоритм позволяет получать решение и задачи 2.2, д). 2.9. Задаче 2.2, е) соответствует следующая задача распознавания: существует ли такое расписание s° обслуживания требований множества N, что t{(s°)^D{ (i = 1, д) и при задаппом значении у величина ^2 ai^i (s°) ^ */? i<=N Построим полиномиальное сведение задачи о 3-разбиении к сформулированной задаче распознавания. Сформируем множество N требований следующим образом. Положим д = 4д0 и введем требования двух типов: Д (к = 1, д0) и Jh (к = 1, Зд0). Положим t (Д) = а=62До* а(Д) = 0, D(Ih) = ак + 6(к — 1), & = 1, д0; t(Jh) = а(Д) = ^л, D(Д) = ад0 + бд0, А: = 1,3д0; у = = 6(6 + а)д0(д0 + 1)/2. 312
Далее доказательство будем проводить так же, как и в п. 2.8. Предполагая, что в задаче о 3-разбиении требуемое разбиение существует, считаем, что 43j-2 + Чзы + T®j = б 0* = = 1, По). Тогда при расписании 5°, определяемом перестановкой Я = (Iц J1»; J21 J31 ^21 *^4» *^5’ *^6» • * • * ^о’ ^3nQ—21 J3Uq—1i /ЗП()), имеем t(Ih(s0)) = D(Ih) Uc= 1, тг0), t(Jh(s0)) <D{Jh) "о (ft = 1, Зга.), S a,i, (s°) < 2 6 (a + 6) / = y. i^N j=1 Пусть существует такое расписание s' обслуживания требований множества N, что t(Ik(s')) ^Z)(/h) и 2 i^N ^у. Введем числа Ah (к = 1, гс0) так же, как и в п. 2.8. Тогда из t(Ik(s')) ^ ак + б(/b — 1) получаем Ah ^ 8Ы0 — /с + 1) no *0 и 2 a Ji (s') > S я* (Л — А-н) = «S4 iGiV /i-l /i=l Предполагая, что существует индекс к', удовлетворяющий условию Ак,^Ь (п0 — к + 1) + 1, получаем 2 ai^i(s')> i^N > аЬп0 (п0 + 1)/2 + а ^ у, что противоречит определению рас- писапия s'. Следовательно, Ак = б(/г0 — к + 1) (Л = 1, п0) и — Ah+l = 6. Отсюда и из определения величин следует, что расписание s' однозначно определяет требуемое разбиение множества №. Для реализации описанного сведения достаточно выполнить ОЫо) операций. Таким образом, задача 2.2, е) является iVP-трудной в сильном смысле. Отметим, что при а» = 1 (i = 1, п) задача 2.2, е) имеет алгоритм решения с оценкой сложности ОЫ2) (см. [417, 361). Задача 2.2, ж) является TVP-трудной в сильном смысле. Это следует из леммы 2.1 и iVP-трудности в сильном смысле задачи 2.2, е). 2.10. Задаче 2.2, з) соответствует следующая задача распознавания: существует ли такое допустимое относительно G расписание s° обслуживания требований множества 7V, что 2 Ui (s°) ^ у для заданного положительного целого числа у? N Для доказательства ЛФ-трудности этой задачи распознавания (будем называть ее задачей 2.2, з')) предварительно сформулируем две вспомогательные задачи и докажем их iVP-трудность в сильном смысле. 313
Первая задача — это задача о точном покрытии тройками. Она состоит в следующем. Дано конечное множество М° = {1, 2, ..., Зт0} и покрытие М = {Ми М2, ..., Мт} этого множества его трехэлементными подмножествами, т ^ ^ т0. Существует ли в № точное покрытие множества М, т. е. такое множество М = [Мjv М;*2, .. М^] ^ Af, что 1= т0 и U = М°? Построим полиномиальное сведение задачи о 3-разбис- нии к задаче о точном покрытии тройками. Полагаем М° = = №. Множество № сформируем следующим образом. Построим все трехэлементные подмножества множества № (их количество равно Сп0). Для каждого такого подмножества вычислим сумму fi. В множество № включим тс и только те подмножества, для которых сумма равна б. Очевидно, разбиение множества № на такие трехэлементные подмножества, что сумма величин ^ для каждого подмножества равна б, существует тогда и только тогда, когда существует точное покрытие множества М° элементами сформированного множества №. Реализация сведения требует выполнения не более О (га)) операций. Таким образом, задача о точном покрытии тройками является ЛФ-трудной в сильном смысле. Вторая задача отличается от задачи 2.2, з') тем, что длительности обслуживания требований в ней — положительные, целые и, вообще говоря, различные числа. Назовем эту задачу задачей 2.2, з") и покажем, что она является TVP-трудной в сильном смысле. Построим полиномиальное сведение задачи о точном покрытии тройками к задаче 2.2, з"). Множество N требований в задаче 2.2, з") сформируем следующим образом. Каждому подмножеству Mj е № (/ = = 1, т) сопоставим требование Jj (эти требования будем называть требованиями первого типа). Каждому элементу i е М° сопоставим столько требований j, сколько раз i входит в множество №: требование Jiyj сопоставляется элементу i тогда и только тогда, когда Mj^ №. Требования Jit j будем называть требованиями второго типа. Отношение строгого порядка на сформированном множестве N определим следующим образом. Пусть Mj = = {i, i', £"}, где Тогда полагаем (здесь представлена редукция определяемого отношения). 314
Полагаем у = о(т—т0)] , D (Jij) = m0 + mi (i + m + l)/2; t (Jj) = 1, D (Jj)=m + M;-. j=l i~Mj Очевидпо, при любом расписании 5 обслуживания требований мпожества N таком, что обслуживающий прибор работает без простоев, имеем uj.(s) = 0, j = 1%т. Пусть задача о точном покрытии тройками имеет решение и М' = Mj2, .. ., Mjt\ ^ М — такое множество, что то I = т0 и U Mj. = 71/°. Не теряя общности, можно считать, k=i что М' = lAfly М2, ..., MmQ]. Рассмотрим расписание 5°, определяемое перестановкой л° = (я(1), л(2)), где я(1) = /2, .. /Ш(), Ji,jlT • • • ^3m0,j3mo), Уле {1,2,..., m0}, к = 1, Зте0, а я<2) — допусти- мая относительно G перестановка элементов множества N\{я(1)). Нетрудно убедиться, что s° — допустимое относительно G расписание и 2 UJ■ As°) = 3 (m- — яг0) = i/. г’' Предположим, что существует такое допустимое относительно G расписание s' обслуживания требований множества 7V, что 2 uj. Покажем, что в этом случае JU=N М содержит точное покрытие множества М°. Будем говорить, что требование Л, ,• обслуживается при расписании s без запаздывания, если uj. As) = 0. Докажем справедливость следующего утверждения. Если к моменту времени t = D(Jitj) при допустимом относительно G расписании s без запаздывания обслуживается i требований второго типа, то это требования 2,;2> itj^ При i = l,2 справедливость этого утверждения очевидна. Предположим, что опо верно для всех i < г, где г ^ 2, и покажем, что в этом случае утверждение справедливо при i = /*+ 1. Итак, пусть к моменту времени t = D(Jr+itj) = m0 + + ттг(г+1)(г+2)/2 при расписании s без запаздывания обслуживается г+1 требование второго типа. Тогда при расписании s к моменту времени t = D(Jr>j) = пг0 + mr(r+ D/2 должно быть без запаздывания обслужено не менее г требований второго типа. Действительно, после указанного мо- 315
мента времени из требований второго типа без запаздывания могут быть обслужены только требования Jki j, где к ^ ^г+1, а в интервале времени [ZK/rii), D{JT+ifj)] может быть обслужено не более одного такого требования (поскольку t(JK })Xr+ i)m при к > г + 1). В силу индуктивного предположения при расписании s к моменту времени t = DUr,)) должны быть обслужены требования • • •» Л,;г и (в силу допустимости s относительно G) по крайней мере одно требование первого типа. Общая длительность обслуживания перечисленных требований составляет не менее тиг(г+1)/2 + 1 единицы времени. Поэтому обслуживание (г+1)-го требования второго типа при расписании s может быть начато не раньше, чем в момент времени t = 1 + mr(r + 1)/2, и должно быть закончено не позже, чем в момент времени t = D(JT+itj). Длина этого интервала времени равна т0 + пг(г + 1) — 1. Поскольку т0 и при к ^ г + 1 справедливо неравенство 1), в указанном интервале времени может быть обслужено только требование r+i,jr+ie Расписание s' удовлетворяет условию 2 UJ{ j(s ) ^ ^у=3(т—т0). Следовательно, при расписании s' без запаздывания обслуживается не менее 3т0 требований второго типа, причем обслуживание этих требований должно быть завершено не позже, чем в момент времени £ = шах D(Jitj) = ju^n = D (^зт0,;). Из доказанного выше утверждения следует, что при расписании s' без запаздывания обслуживаются требования Ji,^ J2| j2,: ,.. * J3m0,j3mQ- Каждому элементу М> множества М соответствует ровно три различных требования второго типа, а между элементами множества М° и требованиями Jitj1% J2,j2i 3m0,i3m() существует взаимно-од¬ нозначное соответствие. Таким образом, указанные требования однозначно определяют искомое точное покрытие №' £ М множества М°. Реализация описанного сведения требует выполнения 0{т) операций. Это сведение является как полиномиальным, так и псевдополиномиальным, и задача 2.2, з") является, следовательно, iVP-трудной в сильном смысле. Задача 2.2, з') также является iVP-трудной в сильном смысле. Это следует из леммы 2.1 и iVP-трудпости в сильном смысле задачи 2.2, з" ). Таким образом, задача 2.2, з) является iVP-трудной в сильном смысле. 316
В случае, когда G = (ZV, 0), задача 2.2, з) имеет алгоритм решения с оценкой сложности O(nlogn) (см. п. 4.3,6) § 4 гл. 2). Указанный алгоритм применим не только в случае, когда длительности обслуживания всех требований равны единице, но и в случае, когда длительности, вообще говоря, различны. 2.11. Рассмотрим задачу 2.3. Ей соответствует следующая задача распознавания: существует ли такое допустимое относительно G расписание s° обслуживания требований множества N, что 2 ti is°) ^ У для данного значения у? i<=N Построим псевдополиномиальное сведение задачи о 3- разбиении к данной задаче распознавания. Положим п = 20п*6 + 6лг0 + 2 и обозначим а= 4^6*6=; = 20zqS. Формируемое множество N будет состоять из требований двух типов — основных и вспомогательных. Ос- новные требования i имеют параметры ti = ^{ (i = 1, Зга0). Для вспомогательных требований Jt положим t = ■— t ^«/"2710-fi‘l‘ij = Z 1» n0 + 1| t(Ji) 1, Z 3n0 3, 3rc0 "f* + 2 + 6; t(Jzi) = 6, 1= 1, n0. Отношение строгого порядка-*■ на построенном множестве N требований определим следую- щим образом: /*у I = 2, 2п0 + 1, Z = 3п0 + 4А Згс0+2 + + 6» J2tIq +1 + Z J2h I 2710+1“'*" JЗтго+З» J3n0-\-2~*~J3nQ+3» i“^«^37?0+3r i = 1, Зтг0. Подграф графа G = (ZV, С/) редукции построенного отношения порядка, порожденный множеством всех вспомогательных требований, изображен на 1 Jz J, *4 4 Jt . ... ^3n0*2*6 • —>o a У>5~*<а~> yr a 1 ГГГ 1 /зп0+г/ a a a a. Рис. 2.2. рис. 2.2. Изображения вершин графа G па рисунке сопровождаются значениями длительностей обслуживания соответствующих им требований. Нетрудно убедиться, что G — входящее дерево. Положим n0+1 ”0 ь У = 2 (al + б (Z — 1)) + 4 + б) Z + 2((wo+1) я+w06 + Z)# Z=1 1=1 1=1 317
Не теряя общности, можно считать, что требования Л (Z=l, 2tt0 + l, I = Зпо + 3, Зпо + 2 + b) обслуживаются непосредственно друг за другом и что момент завершения обслуживания требования /ЗЛо+2+ь совпадает с моментом завершения обслуживания всех требований множества N. Действительно, в случае нарушения любого из этих условий при любом допустимом относительно G расписании s имеем _ ”о+1 2 М*)> 2(«* + в(*-1)) + ieiV l=i по Ъ + 2 (а + б) I + 2 (К + 1) а + и0б + 1 + I) = i=i i=i п0+1 и 0 = У- 2 (aZ + 6(Z-l))-3 2 (fl+ б) г + &> г/. 1=1 1=1 Поэтому можно считать, что: а) указанные требования обслуживаются одним и тем же прибором (например, первым), б) этот прибор других требований не обслуживает, в) обслуживание требования J2n0+i+i завершается (вторым прибором) не позже, чем в момент времени t = al + 8(1 — 1) (1 = 1, п0 + 1), а обслуживание всех основных требований — не позднее момента времени t = а(п0 + 1) + 8п0. Далее будем рассматривать только те расписания, которые удовлетворяют всем перечисленным условиям. Пусть задача о 3-разбиении имеет решение. Тогда множество основных требований можно разбить на тройки таким образом, что каждую такую тройку можно обслуживать вторым прибором одновременно с обслуживанием одного из требований J2i (1=1, п0) первым прибором. При любом таком расписании сумма моментов времени завершения обслуживания основных требований, входящих в одну и ту же тройку, не превосходит 3(а + б)/. Следовательно, при любом таком расписании s° имеем "0+1 я0 2 h (s°) < 2 2 (al + 8(l-i)) + 4 2(a + 6)Z + ieiv j= i /=i ь + 2 ((w0 + 1) CL + 8n0 + l) = У» 1=1 Предположим, что задача о 3-разбиении не имеет решения. В этом случае при любом допустимом относительно G расписании s, удовлетворяющем приведенным выше допол- 318
пительным условиям, найдется по крайней мере одна пара индексов U и l2 (h < U) такая, что: а) группа основных требований, обслуживаемых вторым прибором непосредственно после требования ^2п0+1+г1т юстоит не более чем из двух требований и б) группа основных требований, обслуживаемых непосредственно после «^2n0+i+z2> состоит не менее чем из четырех требований. Отметим, что неравенство li > 12 невозможно, поскольку в этом случае обслуживание одного из требований /2п0+1+г завершилось бы позднее момента времени t = al + 6(l — 1). Обозначим через Ni и N2 множества требований, обслуживаемых при расписании s первым и вторым приборами соответственно. Имеем rio+i п0 2 ш = 2 (al + 6(1- 1)) + 21 (а+ 6)1 + i-iVi §L 1^1 ъ + 2 (а (по + 1) + К "Ь О» i=i П0+1 п0 2 h (s) > 2 al + 3 2 (я + 1) ^ + ah ^ iSiV2 Z—1 Z —1 riQ+i гг0 > 2 al + 3 2 (a + 1) l + a, 1=1 1=1 Оценка величины 2 построена следующим обра- зом. Моменты времени завершения обслуживания требований /2„o^1+i (Z = 1,/г0 + l) подсчитываются так, как если бы эти требования обслуживались непосредственно друг за другом, а моменты времени завершения обслуживания основных требований из группы, обслуживаемой непосредственно после требования/2»0h-i+z» считаются равными (a+ i)l. Таким образом, 2 М*)= 2 **(«)+ 2 М*)> i = N i^N1 i^N2 n0+l n0 >y- S8(l-l)-32(«-l)i + a = i=i z=i = y—\S n0 (n0 + 1) — (8 — 1) n0 (nQ + 1) + a > yt поскольку mojkho считать, что n0 > 2. 319
Следовательно, допустимое относительно G расписание s° обслуживания требований множества 7V, при котором 2 (5°) ^ Ух существует тогда и только тогда, когда зада- U=N ча о 3-разбиении имеет решение. Построение описанного сведения требует выполнения не более О (тг*б) операций. Поскольку задача о 3-разбиении TVP-полпа в сильном смысле, задача 2.3 является iVP-трудпой в сильном смысле. В случае, когда G = (N, 0), задача 2.3 имеет алгоритм решения с оценкой O(nlogn). Этот алгоритм (см. п. 9.3 § 9 гл. 2) предназначен для решения более сложной задачи, в условиях которой обслуживающая система может включать М^2 приборов различной производительности. 2.12. Задаче 2.4, а) соответствует следующая задача распознавания: существует ли допустимое относительно G расписание 5°, при котором в каждый момент времепи для осуществления обслуживания необходимо не более одной единицы ресурса и tm^(s°) ^ у для заданной величины у? Покажем, что задача о 3-разбиении полиномиально сводится к приведеппой задаче распознавания. Положим п = 4га0б. Формируемое множество N будет содержать требования четырех типов: It и /'(^ = 1, гс0б) и Jik и J\k (i = 1, 3/20, к = 1, у*). Положим r(/f) = rUih) = 0 для всех требований /, и Jih и r(^) = r{j[k) = 1 для всех требований Ii и Jik. Положим у = 2гс0б. Т)тношение строгого порядка ^ па множестве N определим следующим образом (приводится лишь редукция отношения): Iq-D6+i Iq-pb+i+u Аы)б+1 Iu-i)6+i+M 1 = U 8 1,; / = 1» я0; /j5 —>■ /(j—1)6+1» 7 = 1». и0, 3Ji,ft+l? Jik~*~ *Ji,k+lr k = 1»; 1? ^ = 1* 3i,Vi ^i,l* ^ = 1» 3tt0. Нетрудно заметить, что каждому элементу i^№ сопоставлена цепочка требований Jit\-* J•Лд-*' 2 а граф G состоит из п0 + 1 цепи, где и0 цепей сопоставлены элементам множества 7V, а вершинам (tt0 + 1)-й цепи сопоставлены элементы Ii и Ii{l = 1, гс0б). Предположим, что требуемое разбиение множества № на трехэлементные подмножества N° существует. Тогда расписание s° строится следующим образом. Все требования 320
Ii и l\ назначаются на первый прибор и обслуживаются им в порядке, допустимом относительно (такой порядок— единственный). Пусть №j ={гх, г2» *з}- Тогда требования Jiltl» Jiv2i • • • i *^г2,1» *^2*2’ * * * ^H*Vi2’ ^З*1’ ^З»2’ * * " назначаются на обслуживание вторым прибором в том же интервале времени, что и требования /* (/ = (/ — 1) б + 1у/б)А а требования J^ду Jili2r • • ч Jip*А2Д» 3г2,2« • • • > J\ 1, /'i3 2,• .. . f ^ i3,Vi3 ~~ в том же интервале, что и требования L (I = (/ — 1)6 + 1, /6). Очевидно, что F(s°) = 2тг06 и s° — расписание, допустимое относительно G и ресурсных ограничений. Предположим, что требуемое расписание s° существует. Не теряя общности, можно считать, что при расписании s° первый прибор обслуживает все требования //, Ii и только их. В этом случае (поскольку F(s°) = 2п06) одновременно с обслуживанием первым прибором требования Ii второй прибор должен обслуживать одно из требований Jih, а одновременно с // должно обслуживаться некоторое требование J iu. Покажем, что последовательность обслуживания требований и Jih вторым прибором при расписании 5° определяет искомое разбиение множества №. Действительно, пусть одновременно с требованиями l'i{l = (j — 1)6+1у/б) обслуживаются требования J|'д, JJi",i» Ji",2> • • ♦ ..., Ji">Vi„, J\тД, J\m 2,- . . ., Ji"tИ ТОЛЬКО ОНИ. ТоГДЯ У ^ + + Yi" Vjw = 6 и i", i" образуют одну из троек искомого разбиения. С другой стороны, предположим, что указанное условие нарушено, т. е. существует такое /°, что в интервале обслуживания требований l\ (Z =(j° — 1) 6 + 1, у°б) наряду с прочими обслуживаются требования /.0 Ji0 2* .. * ...,/.0 vf rAev<7i0, a/.0fV+1 не обслуяшвается. Пусть f — наименьший такой индекс. Тогда одновременно с обслуживанием требований /* (I = (j° — 1)6 + 1, f б) можно обслужить не более 6 — v требований поскольку Ji0 J.0 ., ,VjO 1 а требование /.0 пока не обслужено. Это противоречит тому, что при расписании 5° одновременно с каждым /* обслуживается некоторое требование 21 В. С. Танаев и др, 321
Построение описанного сведения требует выполнения 0(щб) операций. Поскольку задача о 3-разбиении NP-rnrn- на в сильном смысле, задача 2.4, а) является /VP-трудной в сильном смысле. Отметим, что при G = (N, 0) задача 2.4, а) имеет алгоритм решения с оценкой сложности 0(п3) [211]. При этом обслуживающая система может состоять из М приборов различной производительности. Задача 2.4, а) имеет алгоритм решения с оценкой 0(п2) при отсутствии ресурсных ограничений и в предположении, что G — произвольный бесконтурный граф (см. п. 5.5 § 5 гл. 2). 2.13. Задаче 2.4, б) соответствует задача распознавания, состоящая в следующем. Определить: существует ли допустимое относительно G и удовлетворяющее ограничению на одновременно используемое количество ресурса расписание 5° такое, что 2 ~t% (5°) ^ У для заданного значения у. i<=N Для доказательства iVP-полноты сформулированной задачи (очевидно, что она принадлежит классу JC3*) воспользуемся построенным в предыдущем разделе сведением. Внесем лишь одно изменение: положим у = 2дг0б(2^0б + 1). Если искомое разбиение множества № на трехэлемепт- пыс подмножества существует, то в качестве s° можно взять расписание, построенное в предыдущем разделе. Нетрудно убедиться, что 2 (s°) = 2я06(2/г06 + 1). ге=лг Найдем минимальное значение величины 2^i(s) по ieiV всем расписаниям (в том числе и недопустимым относительно G и ресурсных ограничений), при которых оба прибора работают без простоев. Пусть а: —число требований, обслуживаемых первым прибором. Тогда второй прибор обслуживает 4ra06 — х требований. Нетрудно проверить, что min 2 h (s) = min {я (x + \)!2 + (4/г0б—x) (4дг0б—x + \)!21 0 в i=N ^#^4rc06}=z/; при этом х = 2п08. Таким образом, при любом расписании s (тем более, при допустимом) 2 = # i^N тогда и только тогда, когда каждый прибор обслуживает по 2п08 требований и работает без простоев. В противном случае 2 "*» (s) > У- ieN Пусть существует допустимое относительно G и ресурсных ограничений расписание s° такое, что 2 ti (s°) = У• Не ieN теряя общности можно считать, что первый прибор обслу- 322
жпвает требования lt и l[{l = l,n0b)t Тогда пз приведенных в предыдущем разделе рассуждений следует, что последовательность требований, обслуживаемых вторым прибором, определяет искомое разбиение множества А0. Задача 2.4, б) является, таким образом, АР-трудпой в сильном смысле. 2.14. В силу замечаний 1.2 и 1.3 (см. п. 1.8 предыдущего параграфа) из АР-трудпости в сильном смысле задач 2.1, а) и 2.4, а) следует, что задачи 2.1 и 2.4 являются NP- трудными в сильном смысле и в следующих случаях: в) F (5) = Z/max (5); г) F (5) = Zmax (5); Di = D, i = 1, n\ Д) F(s)= 2 Zj (s); Di = D, i = 1, ra; ieiv e) F (s) = 2 Щ (5); Di = D, i = 1, n. ieiv Аналогично из замечания 1.2 и АР-трудпости в сильном смысле задач 2.2, а)—в) следует, что задача 2.2 является АР-трудной в сильном смысле и в следующих случаях: и) F (.9) = 2 Zi (s); G = (N, 0); Di = D, i = 17»; iGiV K) F (s) = S «iZi (.S'); G = (N, 0), Di = D, i = и разрешены прерывания процесса обслуживания требования; л) F (s) = 2 a»Zi (s); ti = 1, Di = D, i = 1, n. i^N Из замечания 1.4 следует, что задачи 2.2, г), д), з) остаются АР-трудными в сильном смысле и при разрешении прерываний процесса обслуживания требований. 2.15. 3 амечание 2.2. Рассмотрим класс задач, в которых моменты di поступления требований в обслуживающую систему и длительности ti их обслуживания — целые числа. Пусть задачи А и В из этого класса различаются лишь тем, что в задаче А все длительности U = 1 либо U ^ {0, 1) и прерывания процесса обслуживания требования запрещены, а в задаче В значения U могут быть различными и разрешены прерывания, но только в целочисленные моменты времени. Тогда очевидно, что существует как полиномиальное, так и псевдополиномиальное сведение задачи А к задаче В. Отсюда и из АР-трудности в сильном смысле задач 2.1, а)—е), 2.2, в), д), ж), з), л), 2.4, а)—е) следует, что при замене условия U = 1 (£ = 1, п) условием: ti — целые числа, 21* 323
и при разрешении прерываний в целочисленные моменты времени эти задачи останутся МР-трудпыми в сильном смысле. § 3. Сводимость задачи о вершинном покрытии В этом параграфе в качестве эталонной задачи используется задача о вершинном покрытии, состоящая в следующем. Дан неориентированный граф Г = (К, Е) и натуральное число у0. Множество вершип W s V пазывается вершинным покрытием графа Г, если каждое ребро из множества Е ип- цидентио по крайней мере одной вершине из W. Существует ли вершинное покрытие W0 графа Г такое, что \W°\ ^ г/0? Пусть 7=И, 2, у} и е = \Е\. Тогда в алфавите §Э длина записи входной информации задачи о вершинном покрытии заключена в интервале [с,(у + е), c2(v + е) log v\, а в алфавите SI — в интервале [c3(i>2 + е), c^viv + е)]. Здесь си с2, с3, с4 — константы, не зависящие от v и е, 0 < с4 ^ с2, 0<с3^ ^ Сц. Задача о вершинном покрытии является ЛФ-полной в сильном смысле. 3.1. В этом параграфе рассматриваются следующие задачи. Задача 3.1. В обслуживающую систему, состоящую из двух идентичных приборов, в момент времени d = 0 поступает множество требований N = { 1, 2, ..., п}. Обслуживание требования i е N может быть осуществлено любым из приборов в течение U единиц времени. Прерывания процесса обслуживания требования не допускаются. На множестве N задано отношение строгого порядка с графом редукции G = (N, U). Каждая компопента связности G представляет собой выходящее дерево. Необходимо построить расписание s* обслуживания требований множества N, допустимое относительно G и доставляющее минимум функционалу F(s) = = 2 ti(s), где his) — момент времени завершения обслу- i^N живания требования i при расписании s. Задача 3.2. Множество N = { 1, 2, ..., п} требований поступает в момент времени d = 0 в обслуживающую систему, состоящую из М идентичных приборов, М > 2. Требова-. ние i е N обслуживается в течение U единиц времени любым из приборов и без прерываний. Каждому требованию i ^ N сопоставлен директивный срок Di ^ 0, к которому желательно завершить обслуживание требования L На множестве N задано отношение строгого порядка. Каждая компонента связности графа G = (N, U) редукции этого отноше- 324
ния является выходящим деревом. Необходимо построить допустимое относительно G расписание s* обслуживания требований множества N, доставляющее минимум функционалу F (s) = Lmax (s) (Lmax (s) = max (i4 (s) — при усло- J it=N ) ВИИ, ЧТО ti = 1 (i = 1, n). Покажем, что обе сформулированные задачи являются iVP-трудными в сильном смысле. 3.2. Задаче 3.1 соответствует следующая задача распознавания. Определить: существует ли такое допустимое относительно G расписание s° обслуживания требований множества N, что 2 f i (s°) ^ У для заданного значения у. i<=N Покажем, что задача о вершиипом покрытии полиномиально сводится к сформулированной задаче распознавания. Сформируем множество N требований следующим образом. Каждой вершине у графа Г сопоставим требование Vj, называемое вершинным требованием. Заменим ребра графа Г дугами: ребро [y'i, у21 е Е заменим дугой (у4, у2), если U < U, и дугой (у2, у4), если у2 < ]\. Дуги пропумеруем числами от 1 до е. Каждой дуге с номером к (к = 1, е) сопоставим требование Е^\ соответствующее началу дуги, и требование £ь2\ соответствующее концу дуги. Эти требования будем называть реберными. Определим отношение строгого порядка на множестве вершинных и реберных требований: Vj -*■ Е^ (соответственно Vj Е^) тогда и только тогда, когда вершина у является началом (соответственно концом) дуги с номером к. Положим t (Vi) = i = 1, v\ t (EJ^) = = t(E{2)) = l + k,k = TTe. Введем также 3v + + 2a + a(v + 2e + a), a = 16(z; + e +! + l)3, вспомогательных требований четырех типов: JfX t (Jr) = 1! Г = 1, 2i; + 2e + /r, t(jr) — 0Л 5, г = v + 2e + a% tip и ti^:\ t (L") = t (Lf) = 1 + Pl p = lt e; Iq\ * {I(q)^ti2ax q = lTa, r = I, i; + 2e + a. Отношение -*■ на множестве вспомогательных требований определим следующим образом (ниже приводится лишь редукция этого отношения; см. рис. 3.1): J г—1 J т%т — 2Х2 Уо\ г = 2у0 + е + 1А 2v + е\ г = 2v + 2е + 1х 2v + 2е + а; 325
2(v-b'o) 326 Рис. 3.1.
J2г—1 Jn r — 1» y0; J2v—e—l Jrr r — Уо + ^ + 1? V + e\ J v+r+l-+ Jr, r = v+2e+l, v + 2e + a\ r(D J-Jy Jo '(l) 2 У«+2>» ^P J ■4й, J Г Г (2) J.Jу -r- J ^v+e+yr ^P 2/o + 2?> ^2U0+P-1~ Jv+e+pi J2V+e-]-p—1 ~L j't -> /ir), r = 1, у + 2e + a; Iqli —*■ Iq \ (j — 2, a, r = 1,1»+ 2e + a. P = l,e; (2) d — Г"<r p 1 P A.> Нетрудно убедиться, что каждая компонента связпости графа G редукции построенного отношения порядка является выходящим деревом. На рис. 3.1 представлен граф, полученный из G в результате удаления всех дуг вида {VjrE^) и" (F;r Используются следующие обозначения: А — вершинные требования, А _ реберные требования, • — требования Л, И— требования /г? О — требования и Lp2), □ — требования Iq\ Изображения требований сопровождаются значениями длительностей их обслуживания. Построим расписание s° обслуживания требований множества N следующим образом. Пусть требования /7, и L(p2) (г = 1, 2v + 2е + a, р = 1, е) и только они обслуживаются первым прибором непосредственно друг за другом в порядке, допустимом относительно G (см. рис. 3.1). Все остальные требования обслуживаются вторым прибором. Обозначим через Гг момент времени завершения обслуживания первым прибором непосредственного предшественника требования Jr. Пусть при расписании s° обслуживание требования J'r {г = 1, v + 2е + а) вторым прибором начинается в момент времени тг. Тогда через тг обозначим момент времени завершения его обслуживания. Очевидно, тг = хг + 0,5. Обозначим v+2e+a т= 2 тг-Пусть при расписании s° обслуживание требования г=1 1±) (г =1, v + 2е + а) вторым прибором начинается в момент времени тг и все требования 1%} (q —- 1, а) обслуживаются вторым прибором непосредственно друг за другом в порядке, допустимом относительно G. На рис. 3.1 требования, расположенные на одной вертикали, обслуживаются первым (верхний ряд) и вторым прибором (все остальные) в течение одного и того же временного интервала. Вершинные и ребер- 327
ные требования обслуживаются вторым прибором в порядке, соответствующем рис. 3.1. Пусть граф Г имеет такое вершинное покрытие РУ, что \W\ ^ у0. Тогда порядок обслуживания вершинных и реберных требований можно выбрать так, что расписание s° будет допустимым относительно G. Действительно, пусть второй прибор в интервале времени [0, 2у0] обслуживает вершинные требования, соответствующие вершинам из W. Если I W\ < ?/,„ то в указанном интервале можно обслуживать еще у о — \W\ любых вершинных требований. Из определения вершинного покрытия графа Г и определения отношения строгого порядка на множестве вершинных и реберных требований следует, что в момент времени t = 2у0 можно начинать обслуживание по крайней мере одного из двух требований Е^ и Е^ для всех к = 1, е. Эти реберные требования обслуживаются в интервале [2у01 2у0 + 2е] в порядке, соответствующем рис. 3.1. Остальные вершинные требования обслуживаются в интервале [2у0 + 2е, 2и + 2е], а остальные реберные требования — в интервале [2и+2е1 2и + + 4е]. Положим у = 2Ъ + а{2и + е(е + 5)) + а(а + 1)/2 + + (а + 1)т + (а + l)(v + 2е + а)/4, где 6 = 2(v + 2е)(2и +’ + е(е + 5)). Отметим, что а > 26. Оценим значение 2 (а‘°). Множество требований igiV [JT1 Lp'1, L^} (г = 1, 2v + 2е + ai p = 1, e) разбито на пять подмножеств Nh (h = 1, 5) так, как показано на рис. 3.1. Множество Ni содержит 2у0 требований Л (г = 1, 2у0), множества N2 и TV4 содержат по 2е элементов, множество N3 состоит из 2 (v — г/0), а множество N$ — из а элементов Л. В выра- 4 жении 2 Sii (50) заменим все ?t-(s°) величиной 2и + е(е + 5), h=l i^Nh равной моменту времени завершения обслуживания требо- 4 вания Jzv+2e при расписании s°. Тогда 2 2 М5°)< 2{v + Л=1 i<=Nh + 2е) (2v + е (е + 5)) = 6. Нетрудно подсчитать, что 2 ti (s°) = a (2v + е (е + 5)) + а (а + 1)/2. Обозначим через Ne множество вершинных и реберных требований, через N7 — множество требований j'r(r = i,v + 2е + а), а через Ns — множество всех требований Iq\ Очевидно, N = 328
= U Nk, 2 (s°) < b, 2 к (?ft) = т. Нетрудпо также h=l iSiV6 ieiV7 убедиться, что 2 (5°) = ax + (a + 1) (v + 2e + a)/4* i<=iV 8 Таким образом, 2 М5°)<#г если граф Г имеет такое i(EJV вершинное покрытие W, что |ИП ^ г/0. Пусть для любого вершинного покрытия W графа Г справедливо \W\ > у0. Отметим, что при любом допустимом относительно G расписании s обслуживания требований множества N имеют место соотношения 2 (5) ^а (2у+ isiV5 + е(е + 5)) + а(а + 1)/2Л 2 к 2 ti(s)'^ax +(а + i<=N7 ieiV8 + 1) (v + 2e + a)/4. Предположим, что при расписании s об- служивапие каждого из требований Jr (г = 1Д v + 2е + а) начинается в момент времени тг. Тогда к моменту времени t = 2у0 может быть обслужено не более у0 вершинных требований. Поскольку \W\ > у о для любого вершинного покрытия W графа Г, то найдется по крайпей мере одно такое fe, что в момент времени t = 2у0 оба требования— Е^ и Е(л2)— имеют хотя бы по одному пеобслуженному предшественнику. Следовательно, при любом допустимом относительно G рас-* писании s имеет место хотя бы одна из ситуаций: а) сущен ствует такое &, что обслуживание требования //* начинается не раньше чем в момент времени t = xfe+l; либо б) обслуживание хотя бы одного из реберпых требований начнется не рапыне чем в момент времени t = 2и + е(е + 5) + а — 1. В любом случае получаем 2 (s) > 2/ h is) + я ^ iGiV ^ у — 2b + a > ух поскольку a > 2b. Таким образом, допустимое относительно G расписание 5° такое, что 2 ~t% (s°) ^ Ут существует тогда и только тогда, ieiv когда существует вершинное покрытие графа Г, содержащее не более у0 вершин. Построение описанного сведения требует выполнения не более 0((v + е)в) операций. Следовательно, задача 3.1 является iVP-трудиой в сильном смысле. Отметим, что при условии G = (N, Ф) задача 3.1 имеет алгоритм решепия с оцепкой сложности O(nlogn) (см. п. 9.3 § 9 гл. 2). 3.3. Рассмотрим задачу 3.2, которой соответствует следующая задача распознавания: существует ли такое дону- 329
стймое относительно G расписание s° обслуживания требований множества N, что LmaJL{s°) ^ у для заданного у? Построим полиномиальное сведение задачи о вершинном покрытии к сформулированной задаче распознавания. Положим М = (и + е)е + 1, у = 0. Сформируем множество N требований следующим образом. Преобразуем неориентированный граф Г в ориентированный так же, как в п. 3.2. Каждой вершине у полученного графа поставим в соответствие вершинное требование Vj (у = 1, v), а каждой дуге с номером к — две группы реберных требований Е^1 и Е^р (р = 1, е + к% к = 1, е). Первая группа требований сопоставляется началу дуги, а вторая — ее концу. Введем также две группы вспомогательных требований: <&У. Qhg (д - 1, (V + е) к, к = Г^е) и /<"> (h = 1, 5е + 4, г = = 1,г(А)), где г(1)=Л/ — у0; r{h) = М — е, h = 2, е+2, h = 2е + 5, Зе + 5; НЮ = М - ((у + е - 1)(Л - е - 2) + е\ h = e + 3, 2е + 2; г(2е + 3)=М; Н2е + 4) = М — v + у0; НЮ =М-4е + Л-5, fe = 3e+6, 4е + 4; г(« = Л/ - (у + е)Х Х(А - Ае - 4), А = 4* + 5, 5е + 4. На построенном множестве N введем отпошепие строгого порядка (здесь приводится редукция этого отношения): Vj (соответственно Vj-^E^) тогда и только тогда, когда вершина у является началом (соответственно концом) дуги с номером к: к 4%-1->42,к Р = 2,е + к, к = йЬ Е$+к-+<№л% q = I, (v + е) к, к = 1^; yk'U/'4, й. = 2,5е + 4, г = Сг(Л). Каждая компонента графа G редукции построенного отношения является выходящим деревом. На рис. 3.2, а приведен пример графа Г, а на рис. 3.2, б — соответствующий ему граф G. Дуги ( Ji1-1*, Jrl)) (h = 1, 9, г -- 2% г (h))r а также {Е[% Q^l) (q = 1, 5) и Q%) (?= МО) па рис. 3.2, б не показаны. Используются следующие обозначения: О — вершинные требования, А — реберные требования, □ — требования Qu^q и Q^qt • — требования jf\ Положим D (Vj) = 2е -(- 4,) = 1, v\ D (£’^e+ft)=^)('£’l2«+h)~ - Зе + к + 4Г к - й~е; D {Е$р) = D (Я$>) = 4 (е + 1), р =* = 1, е + к - 1, к = 1, е; D {Q{^q) = D (Q%) =4е + к + 4, к= = 1, е; D (4Л)) = hx h = 1,5е + 4 ,r = 1, г (й). 330
Найдем условия, при которых существует допустимое от носительио G расписание 5° обслуживания требований построенного множества N такое, что Lm^(s°) < 0. Поскольку каждое требование Jrh) имеет ровно h — 1 предшественников и D(J\!1)) = h, для того, чтобы Lmax(s°) < 0 необходимо, чтобы обслуживание каждого требования Jr1} начиналось в момент времени t = h — 1. Максимальный директивный срок в сформулированной задаче равен 5е + 4, 1 2 J • -• 1 2 а) (?) Н2) Г (2) г (2) 2.1 С2,2 2,1 С2/, a \N\ = (5е + 4)М. Поэтому для выполнения неравенства Lmax(s°) < 0 необходимо, чтобы в каждый момент времени система обслуживала ровно М требований. Пусть граф Г имеет вершинное покрытие W такое, что \W\ <у о. В этом случае можно построить допустимое относительно G расписание s°, удовлетворяющее приведенным выше условиям. Действительно, в интервале времени [0, 1] можно обслужить у о вершинных требований, среди которых содержится \W\ требований, соответствующих вершинному покрытию. Следовательно, в момент времени t = 1 можно начинать обслуживание по крайней мере одного из двух требований 2?/гд и для всех к = 1, е. В интервале времени [2, 2е + 1] можно обслужить е групп реберных требова- 331
ний Е^р (р = 1, е + kf к = 2Г е), где v = 1 либо v = 2 в зависимости от того, какое из двух требований —Е^i либо — было обслужено в интервале времени [1, 2]. В интервале [1, 2е +1] можно, кроме того, обслужить требования (?М (Л: =1, в — 1* g=l, (у+е)/с),. где v определяется так же, как и в предыдущем случае, а в интервале [2е + 1, 2в + 2] — требования Q^q (q = 1, + е) е) для тех же v. Оставшиеся вершинные требования обслуживаются в течение временного интервала [2е + 3, 2в + 41, оставшиеся реберные требования— в течение интервала [2е + 4, 4е + 4], а все оставшиеся требования Q^q обслуживаются в порядке возрастания индекса к в интервале времени [4е + 4, 5е + 4]. Как уже отмечалось, обслуживание каждого из требований Jrh) начинается в момент времени t = h— 1. Пример расписания s° схематично представлен па рис. 3.2, б, где требования, расположенные на одпой горизонтали, обслуживаются одним и тем же прибором, а требования, расположенные на одной вертикали,— в течение одного и того же временного интервала (длина каждого интервала равна единице). Нетрудно убедиться, что Lmax(s°) = 0. Предположим, что любое вершинное покрытие графа Г содержит не менее у0 + 1 вершин. В этом случае при любом допустимом относительно G расписании обслуживания требований множества N найдется по крайней мере один индекс к' такой, что оба требования Е^)у1 и Е^^жиеют в мо- мепт времени t = 1 хотя бы по одному необслужениому предшественнику. Поэтому к моменту времени t = 2е + 2 при любом допустимом относительно G расписании s может быть обслужепо не более М(2е + 2) — у0 требований. Действительно, возможны следующие варианты: а) в момент времени t = 1 можно начинать обслуживание менее чем е требований E(h\; б) в момент времени t = 1 можно начинать обслуживание не менее чем е требований но среди них нет пи одной пары Е^\ такой, что к< кв) в момент времени t = 1 можно начинать обслуживание не менее чем е требований 2?*д, и среди них есть такая пара E$tliE($л требований, что к" < к\ В случае а) к моменту времени t = 2e + 2 можно обслужить при любом допустимом расписании не более М(2е + 2) — (е + к') — (v + е)кг + (и — у0) требований, в случае б) — не более М(2е + 2) — (v + е)к' + + (и — у0) + (е — 2) требований. Рассмотрим более подробно случай в). Вместо одного из требований Е$д4 Е$л (как ЭТО 332
было при расписании s°) в момент времени t *= 1 можно начинать обслуживание требования Е^)л. Поскольку при фиксированном v число требований Qh\q равно к" и к" < к', к моменту времени t = 2e + 2 может быть обслужено не более М(2е + 2) — (и + е)к' + (у + е)к" + (е - 2) < М(2е + 2) - — уп требований. Следовательно, в интервале времени [1, 2е + 2] существует момент, в который обслуживается менее М требований, т. е. нарушено одно из условий, необходимых для выполнения неравенства Lmax(s) ^ 0. Таким образом, допустимое относительно G расписание 5° такое, что LmaK(s°) < у, существует тогда и только тогда, когда граф Г имеет вершинное покрытие, содержащее не более у0 вершин. Построение сведения требует выполнения не более 0((и + е)е2) операций. Поскольку задача о вершинном покрытии является NP- полной в сильном смысле, задача 3.2 является АР-трудпой в сильном смысле. Отметим, что в случае, когда каждая компонента графа G является входящим (а не выходящим) деревом, задача 3.2 становится полиномиально разрешимой (см. п. 8.2 § 8 гл. 2). Алгоритм ее решения имеет оценку сложности Oinlog п). 3.4. Из замечания 1.1 и АР-трудности в сильном смысле задачи 3.2 следует, что эта задача будет АР-трудной в сильном смысле и при замене функционала РЫ = Lmax(s) следующими: а) F (S) = 2ГПах ($)» б) F (s) = S Zi (s); ieJV в) F(s)= 2 M«). ieiV В силу замечания 2.2 из АР-трудности в сильном смысле задач 3.2 и 3.2, а)—в) следует, что при разрешении прерываний процесса обслуживания требования в целочисленные моменты времени эти задачи останутся АР-трудиыми в сильном смысле и при замене условия U = 1 (i = 1, п) условием: U — целые числа. § 4. Сводимость задачи о клике При доказательстве АР-трудпости задач, рассматриваемых в этом параграфе, в качестве эталонной используется задача о клике, состоящая в следующем. 333
Дан неориентированный граф Г = (У, Е) и натуральное число у0. Существует ли в Г такой полный подграф (клика) Г° = (У°, Е°), что |У°| >у01 Длина записи входной информации задачи о клике в алфавите S3 заключена в интервале [с{{и + е), c2(v + е) log у], а в алфавите U — в интервале lc3(v2 + e), c,kv{v + е)\. Здесь v= \ V\, е= \Е\, а сь с2, с3, с4 — константы, не зависящие от и и е (О < Ci < с2, 0 < с3 ^ с,Х Задача о клике является МР-полпой в сильном смысле. 4.1. В этом параграфе рассматриваются следующие задачи теории расписаний. Задача 4.1. Множество N = И, 2, . . ., п} требований последовательно обслуживается одним прибором, начиная с момента времени d = 0. Обслуживание каждого требования осуществляется в течение одной единицы времени и без прерываний. Каждому требованию i ^ N сопоставлен директивный срок А. На множестве N задано отношение строгого порядка с графом редукции G. Необходимо построить допустимое относительно G расписание s* обслуживания требований множества N, доставляющее минимум функционалу F (s) = 2 zi (5)» где Zi(s) = max (0, his) — А>, a ti(s) — i<=N момент завершения обслуживания требования i при расписании s. Задача 4.2. В обслуживающую систему, состоящую из двух идентичных приборов, в момент времени d = 0 поступает множество N = И, 2, . .., п) требований. Обслуживание любого требования i е N может быть осуществлено любым из приборов в течение £*е{1, 2} единиц времени и должно протекать без прерываний. На множестве требований задано отношение строгого порядка, G — граф редукции этого отношения. Необходимо найти допустимое относительно G расписание s* обслуживания требований множества N, доставляющее минимум функционалу F{s) в следующих случаях: а) F (s) = tmах (s) = max t{ (,s); isN б) F(s)= 2ii(s). i~N Задача 4.3. Множество iV = {l, 2, ..., n} требований в момент времени d = 0 поступает в обслуживающую систему, состоящую из М идентичных приборов, 2 ^ М < п. Любое требование может быть обслужено в течение одной единицы времени любым из приборов. Прерывания процесса 334
обслуживания требования пе допускаются. На мпожестве N задано отношение строгого порядка с графом редукции G. Необходимо построить допустимое относительно G расписание 5* обслуживания требований множества N, доставляющее минимум функционалу F(s) в следующих случаях: а) F (S) = ^max (s)\ б) F(s)= 2 и (s). ieiV В последующих разделах параграфа показывается, что перечисленные задачи являются ЛФ-трудными. 4.2. Задаче 4.1 соответствует следующая задача распознавания: существует ли такое допустимое относительно G расписание s° обслуживания требований множества N, что 2 zi (s°) ^ У Для задаппого зпачения у? ieiv Покажем, что задача о клике полипомиально сводится к сформулированной задаче распознавания. Множество N формируется следующим образом. Каждой вершине j графа Г сопоставляется вершинное требование Vj, а каждому ребру (/, к) графа Г — группа из v реберных требований Efy (г =1, и). А На построенном мпожестве N определим отношение строгого порядка (далее приводится редукция определяемого отношения) : Vj-> Е%1 и Vk-> E^lr (/, к)<=Е; Е^1}Е$% г = 2,vt (.jrk)j= Е. Положим у = {е — у0{у0 — 1)/2){и — yQ) + {е—у0(у0—1)/2)Х X (е — у0(у0 — 1)/2 + l)i7/2; D{V)) = v + y0(yQ — i)v/2, j = 1, v\ D (E(jtl) = v + vex (/, /с) е=Егг = 1, у — 1; £ (Я$) = y0 + */<>X X(z/o-l) W2. Предположим, что в графе Г существует клика, содержащая пе менее у0 вершин. Тогда существует такая клика Г' = (7', £"), что \V'\ = у0. Рассмотрим расписание s° обслуживания требований построенного множества N, при котором а) в интервале времени [0, у0] обслуживается у0 вершинных требований, соответствующих вершинам Г', б) в интервале [г/0, у0 + Уо^Уо — 1W2] обслуживаются требования, соответствующие ребрам Г' (их у0{у0 — i)v/2 штук) в порядке, допустимом относительно G (G — граф редукции отношения ->), в) затем обслуживаются оставшиеся вершинные требования, а после них — оставшиеся реберные требования так, чтобы требования, связанные дугой в G, обслуживались непосредственно друг за другом. Очевидно, s° — допустимое 335
относительно G расписание и 2 z{ (s°) — ^ie — 4-J/o(*/o~'0) X ieiv 1 X^3i> + ve — 2y0 —^y0 (y0—i)v^ =y. Пусть любая клика графа Г содержит не более yQ — 1 вершин. Тогда, очевидно, в интервале времени 10, у0 + + Уо(у0 — i)v/2] можно обслужить при любом допустимом относительно G расписании не более yQ(y0 — D/2 — I реберных требований E^l- Если при расписании s' в интервале [0, v + у0{у0 — l)v/2] будут обслужены все вершинные требования, то 2 Zi(5')> 2 Ms0) + 1 ^у + 1. Обозначим isN i<=iV через Ni множество всех вершинных требований, а через TV2 — множество всех требований ЕуХ* Ц,к)^Е. Очевидно, (5) = 2 zx ($) при любом расписании. Отсюда сле- i<=JV i^Nx\JN2 дует, что при поиске расписаний 5, удовлетворяющих условию 2 zi (s) ^ У г можно ограничиться рассмотрением рас- iGiV писаний, при которых требования E^h(r = 1, у, j и к фиксированы) обслуживаются непосредственно друг за другом, а обслуживание вершинного требования V) начинается либо в момент времени t = 0, либо непосредственно после завершения обслуживания некоторого вершинного требования, либо непосредственно после завершения обслуживания некоторого требования Е^Х* Пусть при допустимом относительно G расписании s" обслуживание вершинного требования Vу осуществляется вне интервала [0, v + y0(yQ — l)v/2] и начинается после завершепия обслуживания требования Е^)^пл Перейдем от расписания s" к расписанию s'", при котором а) обслуживание требования Vif начинается на v единиц времени раньше, чем при расписании s", б) обслуживание каждого из требований Ey)tb» (г = 1, и) начинается на одну единицу времени позднее, в) обслуживание всех остальных требований осуществляется так же, как и при расписании s". Нетрудно показать, что 22 Zi (s'") = 2 Z{ (s") + 1 — Ctv (,s") — v —у0(y0— 1) v/2) + i<=N i£JV 4 J + max (0, tv., (s") — 2v—y0 (y0 — 1) v/2} < 2 *i (s*)> поскольку tVy (s") ^ v + 7/o (Uo “ l)y/2+ 1. Отсюда следует, что 2 2 М5) Для всех допу- ieiv ieiV 336
стпмых расписаний $, при которых в интервале времени [О, и + у0(у0 — l)v/2] обслуживается менее v вершинных требований. Следовательно, при отсутствии в Г клики, содержащей не менее у0 вершин, любое допустимое относительно G расписание s удовлетворяет неравенству 2 zAs)^y + 1* i£E N Построение сведения требует выполнения не более 0{ve) операций. Таким образом, задача 4.1 является МР-трудпой в сильном смысле. Из замечания 1.4 (см. § 1 данной главы) следует, что задача 4.1 остается МР-трудпой в сильном смысле и при разрешении прерываний процесса обслуживания требования. При условии, что G = (iV, Ф), задача имеет алгоритм решения, времеппая сложность которого не превосходит OW) (см. п. 4.5 § 4 гл. 2). 4.3. Задаче 4.2, а) соответствует следующая задача распознавания. Определить: существует ли допустимое относительно G расписание s° обслуживания требований множества N, при котором tmax(s°) ^ у для заданного значения у. Построим полиномиальное сведение задачи о клике к сформулированной задаче распознавания. Сформируем множество N следующим образом. Каждой вершине / ^ V сопоставим вершинное требование F;, каждому ребру (/, к) ^ Е — реберное требование Eit k и введем еще Зи + 2е вспомогательных требований /г (г = 1, 3v + 2e), J, J2 *7 Л Л .*• -д. . . 1 1 Л, 2 Но 1 ' ///7 А** у - И» • / 4. V X / V У а%*1 .. V J a* it Рис. 4.1. Обозначим а = 2(v + е) и определим на построенном множестве N требований отношение строгого порядка (здесь определяется лишь редукция отношения -О: Vj-+Ejtk и и Vh -> Ejt ft, для всех (;, к)^Е; Л-i Л, г = 2, а\ Ja+r -► /2г, г ~ 1» У о» ^2г Л+г+1, Т = 1, у о 1; 1а+у0+Г~^^у0(у0+1)+2Г1 ^оО/0+1)+2(г_1> ^<И-?/0+г, Г ~ У */<>• Подграф графа G редукции построенного отношения порожденный множеством всех вспомогательных требований, представлен на рис. 4.1. 22 в, С, Танаев и др. 337
Положим у = 2(v + е); t(Vj) = 1, j = 1, и; t(Ejth) = 2 для всех (/, /с) е t(Jr) = 1, г = 1, Зу + 2е. Покажем, что в построенной задаче распознавания допустимое относительно G расписание 5° обслуживания требований множества N, при котором tm3iX(s0) ^ у, существует тогда и только тогда, когда граф Г имеет клику, содержащую не менее у0 вершин. Нетрудно заметить (см. рис. 4.1), что для выполнения соотношения £max(s) ^ у, где s — допустимое относительно G расписание, необходимо, чтобы при расписании s обслуживание каждого требования /г (г= 1, а) осуществлялось в интервале времепи [г — 1, г], требований /а+г(г = 1, у0) — в интервалах [2г— 2, 2г—1], а каждого из требований Ja+yQ+T (г — 1Л v — у0) — в интервале времени 1у0(уо + 1) + 2г — 2, Уо(уо + 1) + 2r — 1J. Поэтому можно ограничиться рассмотрением расписаний s, удовлетворяющих этим условиям. Не теряя общности, среди указанных расписаний s можно рассмат- ривать только те, при которых требования Jr (г = 1, а) и только они обслуживаются первым прибором. Поскольку суммарная длительность обслуживания всех вершинных, реберных требований и требований /.+ г (г = 1, и) равна 2(и + е) = = г/, второй прибор в интервале времени [0, а] не должен иметь простоев. Следовательно, для того чтобы при допустимом относительно G расписании s выполнялось соотношение ?тахЫ ^ У, необходимо, чтобы к моменту времени t = 2у0 — — 2 было обслужено у0 — 1 вершинное требование, а в интервале времени [yQ(y0 + 1) + 1, у0(Уо — 1) + 2у — 21 было обслужено v — у о — 1 вершинное требование. Длина интервала времени между моментом завершения обслуживания требования Ja+y0 и моментом начала обслуживания требования Ja+v0+i равна уЛуо — 1) + 1. Число у0(у0 — 1) + 1 — нечетное, нераспределенных по временным интервалам вершинных требований осталось два, длительность обслуживания каждого реберного требования равна двум единицам времени. Следовательно, в указанном интервале при допустимом относительно G расписании s, удовлетворяющем условию £тахЫ ^ У, должно быть обслужено лишь одно из этих требований. Поэтому оставшееся в этом интервале время должно быть израсходовано на обслуживание у0(у0 — 1)/2 реберных требований. Очевидно, для того чтобы расписание s, при котором после завершения обслуживания у0 вершинных требований обслуживается г/0(г/о — D/2 реберных требований, было допус- 338
тимым относительно G, необходимо и достаточно, чтобы граф Г имел клику, содержащую не менее т/0 вершин. Если граф Г имеет клику, содержащую не менее у0 вершин, то расписание 5°, удовлетворяющее всем перечисленным условиям и такое, что при s° одно оставшееся вершинное требование обслуживается вторым прибором в интервале времени [у{)(у0 — 1) + 2и — 1, у0(уо — 1) + 2и>], а оставшиеся реберные требования — в интервале [yQ(y{) — I) + 2v, а], будет допустимым относительно G и £max(s0) = у. Пусть любая клика графа Г содержит не более у0 — 1 вершин. В этом случае для любого допустимого относитель^ но G расписания будет нарушено по крайней мере одно из приведенных выше необходимых условий и, следовательно, Liax(s) >У+ 1. Реализация описанного сведения требует выполнения пе более 0(и + е) операций. Таким образом, задача 4.2, а) является iVP-трудной в сильном смысле. Отметим, что при замене условия И, 2} условием U = 1, i = 1, п, задача 4.2, а) становится полиномиально разрешимой. Оценка сложности соответствующего алгоритма (см. п. 5.5 .§ 5 гл. 2) равна 0(п2). 4.4. Рассмотрим задачу 4.2, б), которой соответствует следующая задача распознавания: существует ли при заданном значении у такое допустимое относительно G расписание s° обслуживания требований множества N, что 2 ieiv Для доказательства МР-трудности задачи 4.2, б) воспользуемся задачей распознавания, построенной в предыдущем разделе, которую будем называть задачей А. Обозначим через Ni и N2 соответственно множества требований в задаче Л, обслуживаемых первым и вторым приборами при расписании s°. Поскольку 2 U 0>°) = а (я + 1)/2 и 2 h(s°)^ i€=Nt ieiV2 ^ 2 М5°)> имеем 2 ^(s0) (а + 1). ieiVj ieN Дополним множество N до множества N', введя еще а(а+1) вспомогательных требований Jr, ^ (jг) — 1» г — = 1, а(а+ 1). Распространим отношение строгого порядка, определенное на множестве N, на множество N' и доопределим его (доопределяется редукция отношения): Jr-i~*JT, г= — 2, а [а + 1); /а j[; Ejth ->■ j[ для всех (/, к) е Е. Граф 22* 339
редукции отношения строгого порядка, определенного на N\ обозначим через G'. а(а+1) Положим у’ = а(а +1)+ 2 (а + г) и покажем, что до- г=1 пустимое относительно G' расписание s' обслуживания требований множества N' существует тогда и только тогда, когда граф Г имеет клику, содержащую не меиее у0 вершин. Пусть в задаче А существует такое допустимое относительно G расписание s° обслуживания требований множества N, что tm3LX(s°) ^ у = а. Построим расписание s' обслуживания требований множества N' следующим образом. Все вершинные, реберные требования и вспомогательные требования Jr (г =1, Зг; + 2е) обслуживаются при расписании s' так же, как и при расписании s°, а вспомогательные требования Jr (г = 1, а (а + 1)) обслуживаются в интервале времени [а, а(а + 2)] любым из приборов в порядке возрастания индекса г. Как нетрудно заметить, расписание s' является допустимым относительно G' и а(а+1) 2 his') < а (а + 1) + 2 (а + г) = у', mN’ г—1 Предположим, что в задаче А при любом допустимом относительно G расписании s имеет место соотношение ?тах($) ^ я + 1. Очевидно, что в этом случае при любом допустимом относительно G' расписании s" обслуживания требований множества N' обслуживание требования J\ будет начато не раньше, чем в момент времени t = а +1 а(а+1) И 2 ii(s")'^a(a+ 1)/2 + 2 (а + г + 1) = у' — а (а + i<=N' Г=1 “Ь 1)/2 + а (а + 1) > у'* Допустимое относительно G расписание s° в задаче А, при котором £max(s0) < а, существует тогда и только тогда, когда граф Г имеет клику, содержащую не менее у0 вершин. Поэтому допустимое относительно G' расписание s' обслуживания требований множества iV', при котором 2 h (s') ^у'х существует тогда и только тогда, когда в Г ieiV' существует требуемая клика. Построение описанного сведения требует выполнения не более 0{(v + е)2) операций. Таким образом, задача 4.2, б) является ЛФ-трудной в сильном смысле. 340
В случае, когда G = {N, Ф), задача 4.2,6) является полиномиально разрешимой даже при условии, что U — произвольные положительные действительные числа, приборы имеют, вообще говоря, различную производительность и их число может быть больше двух (см. п. 9.3 § 9 гл. 2). Соответствующий алгоритм имеет оценку сложности ОЫ log п). 4.5. Задача распознавания, соответствующая задаче 4.3, а), формулируется следующим образом: существует ли при заданном у такое допустимое относительно G расписание s° обслуживания требований множества N, что tmax{s°) < < у? Положим М = 1 + max {у0; и + у0(у0 — 3)/2; е — у0(у0 — — 1)/2) и у = 3. Множество N требований сформируем следующим образом. Каждой вершине j графа Г сопоставим вершинное требование Fj, каждому ребру (/, к) — реберное требование Ej ь. Введем еще три группы вспомогательных требований: J?\ г = 1УМ — у0; Jfyp = l,M-v-y0 (уп — 3)/2; q= i,M — е + у0(у0 — 1)/2. На множестве N определим отношение строгого порядка, задавая его редукцию следующим образом: Vj-+Ejth и Fft Ejtk для всех (/, к) ^ Е; J^-^Jp* для всех г и р; для всех р и q. Из определения числа М следует, что мощность одной из трех групп вспомогательных требований равна единице. Для того чтобы допустимое относительно G расписание s удовлетворяло условию tmax(s) ^ 3, необходимо, чтобы: а) в течение интервала времени [0, 1] были обслужены все требования /(г1} (г == 1, М — у0); б) в течение интервала [1, 21 — все требования /р2)(Р == = 1» М v у0 (у0 — 3)/2); в) в течение интервала [2, 31 — все требования /д3) (q = * б)= 1, М — е + Уо {Уо — 1)/2). Поэтому при поиске допустимых относительно G расписаний s таких, что tmax(s) ^ 3, можно ограничиться исследованием расписаний, при которых: а) в течение временного интервала [0, 1] обслуживается Уо вершинных требований; б) в течение интервала [2, 3] обслуживается е — у0(у0 — — 1)/2 реберных требований; 341
в) в течение интервала [1, 2] — остальные вершинные (их и у о штук) и реберные (у{)(у0 — 1)/2 штук) требования. С помощью рассуждений, аналогичных использованным в предыдущих разделах параграфа, приходим к выводу, что расписание s°, удовлетворяющее перечисленным условиям, будет допустимым тогда и только тогда, когда граф Г имеет клику, содержащую не менее у0 вершин. При этом в интервале времени [0, 1] при расписании s° должны обслуживаться требования, соответствующие вершинам клики, а в интервале [1, 2) — реберные требования, соответствующие ребрам клики. Реализация сведения требует выполнения не более Oiiv + е)2) операций. Задача 4.3, а) является, таким образом, iVP-трудной в сильном смысле. В случае, когда М = 2, задача 4.3, а) имеет алгоритм решения с оценкой сложности 0(п2) (см. и. 5.5 § 5 гл. 2). 4.6. Задаче 4.3, б) соответствует задача распознавания, состоящая в следующем. Определить: существует ли допустимое относительно G расписание s° обслуживания требований множества N такое, что 2 М6’0)^*/ для заданного у? i~N Покажем, что задача о клике полиномиально сводится к сформулированной задаче распознавания. Для этого воспользуемся задачей распознавания, построенной в предыдущем разделе. Внесем лишь одно изменение: положим у = 6М. Пусть в построенной^ задаче существует такое допустимое расписание 5°, что tmax(s°) = 3. Отметим, что поскольку каждый из приборов обслуживает одновременно не более одного требования, расписания s, удовлетворяющего условию tmaxis) < 3 существовать не может. Нетрудно подсчитать, что 2 £г(я°) = 6Л/. Если же расписание s таково, что twax(s) ^ i<=IV ^ 4, то, очевидно, 2 h (s) ^ 6Л/ + 1 > У- iEzN Как показано в предыдущем разделе, допустимое относительно G расписание s° такое, что tnUkX(s°) < 3, существует тогда и только тогда, когда граф Г имеет клику, содержащую не менее у0 вершин. Тем самым требуемое сведение построено. Задача 4.3, б), являясь в общем случае Л^Р-трудной в сильном смысле, имеет алгоритм решения с оценкой сложности Oinlog п) при условии, что G = (iV, Ф). Этот алгоритм (см. п. 9.3 § 9 гл. 2) дает решение задачи (при G = (N, Ф)) 342
п в случае, когда длительности обслуживания требований, вообще говоря, различны, а приборы могут иметь различную производительность. 4.7. Обозначим Li(s) = tj(s) — Д, z,(s) = max (О, ДЫ), Ui(s) = sign Ziis), где Д (i = 1, n) — заданные действительные числа (директивные сроки требований). Положим Дпах(5) = == max Д (s), zmax (s) = max z{ (s). i^N ' iGiV В силу замечаний 1.2 и 1.3 (см. § 1 данной главы) из №Р-трудности в сильном смысле задач 4.2, а), 4.3, а) получаем, что TVP-трудными в сильном смысле являются следующие задачи. Задача 4.2 в следующих случаях: в) F (s) = Lmax (.9); г) F (.9) = Zmax («)? Di = Dr i = 1, Щ Д) F(s)= 2 Zj (.9); Di = D, i = ITn; ieiV e) F(s)= 2 (*); Di = i = 1, n. ieiv Задача 4.3 в следующих случаях: в) F (s) = Zmax (*?)» D\ — D, £ = 1, WJ r) F (s) = 2 Zj (s); Dj = J9, i = 1, и; i G.V a) f («) = 2 (s); j = i, n. Из замечания 1.4 (см. § 1 даипой главы) следует, что задача 4.1 остается TVP-трудпой в сильном смысле и при разрешении прерываний процесса обслуживания требований. В силу замечания 2.2 (см. § 2 даппой главы) из ЛФ-труд- ности в сильном смысле задач 4.1, 4.3, а)—д) следует, что при разрешении прерываний процесса обслуживания требования в целочисленные моменты времени эти задачи остаются iVP-трудпымл в сильном смысле и при замене условия U = 1 (i = 1, п) условием: U — целые числа. 4.8. В ситуациях, когда требованиям i ^N сопоставлены директивные сроки Д, нередко требуется отыскать расписание .9, допустимое относительно этих директивных сроков, т. е. такое расписание, что ti(s) ^ Д для всех i ^ N. Замечание 4.1. Пусть единственное отличие задачи распознавания А от задачи распознавания В заключается в следующем. В задаче А выясняется вопрос существования такого расписания .9' обслуживания требований множества N, что LmaT(s') ^ у (либо zmax(s') ^ у) для заданного значе- 343
пия у, а в задаче В выясняется вопрос существования допустимого относительно задапных директивных сроков расписания s" обслуживания требований множества N. Тогда существуют и полиномиальное, и псевдополиномиальное сведения задачи А к задаче В. Действительно, если Di (i^ N) — директивные сроки в задаче А, то в качестве директивных сроков Di в задаче В возьмем D\ — Di + у. Нетрудно убедиться, что в задаче В допустимое относительно директивных сроков D\ расписание обслуживания требований множества N существует тогда и только тогда, когда в задаче А существует такое расписание s', ЧТО LmeLX(s') ^ у (либо Zmax(s') ^ у)• Отсюда следует, что каждая из соответствующих задачам 1.1, г), 1.2, а), 2.1, г), 2.4, г), 3.2, 4.2, г), 4.3, в) задач о существовании допустимого относительно заданных директивных сроков расписания является iVP-трудной (причем ЛФ-трудпой в сильном смысле, за исключением первой задачи). Пусть в задачах 2.1, г), 2.4, г), 3.2, 4.3, в) условие £» = 1 (i = 1, п) заменено условием: U — целые числа, и допускаются прерывания процесса обслуживания требования в целочисленные моменты времени. Тогда, в силу замечания 2.2, задачи о существовании допустимого относительно заданных директивных сроков расписания, соответствующие полученным задачам, являются МР-трудными в сильном смысле. § 5. Сводимость задачи о линейном размещении графа В этом параграфе в качестве эталонной используется задача о линейном размещении неориентированного графа, состоящая в следующем. Дан неориентироваппый граф Г = {V, Е) без кратных ребер и петель, причем \V\=u, \Е\=е, и натуральное число у0. Вершины графа размещаются в целых точках интервала 10, V — 1] числовой прямой. Под длиной ребра 0, j) ^ Е при данном размещении понимается число \х{ — Xj\, где х{ и х5 — координаты точек, в которых размещены вершины i и j графа Г соответственно. Существует ли такое размещение, что суммарная длина ребер графа Г не превосходит у0? Очевидно, линейпое размещение графа Г однозпачно определяется перестановкой его вершин. Длина записи входной информации сформулированной задачи в алфавите S3 заключена в интервале [с^и + е), 344
c2(v + e) log и], а в алфавите U —в интервале [c3(v2 + e)y ckv(v2 + е)], где с1у с2, с3, с4 — константы, не зависящие от и и е, 0 < ^ с2, 0 < с3 ^ с4. Задача линейного размещения неориентированного графа является TVP-полной в сильном смысле. 5.1. В данном параграфе рассматриваются следующие задачи теории расписаний. Задача 5.1. Прибор, начиная с момента времени d = О, обслуживает множество требований iV = {l, 2, ..., п}. Прибор должен работать без простоев. Обслуживание каждого требования i ^ N осуществляется в течение t{ единиц времени и без прерываний. Каждому требованию i е N сопоставлено действительное число а,-. На множестве N задано отношение строгого порядка, графом редукции которого является G. Необходимо построить допустимое относительно G расписание s* обслуживания всех требований множества Лт, доставляющее минимум функционалу F{s) в следующих случаях: _ а) F (s) = 2 (s)> = 1, ^ Х/ +1» Я/ +2},i = 1, пу N Я е {0, ±1, ±2, ...); здесь £,Ы — момент времени завершения обслуживания требования i при расписании s; б) F (s) = 2 U (s), ti <= {1, 2}t i = йп; в) f (s) = 2 h (»).; U ^ {o. i}« t = *7»; i<=N r) F (s) = 2 ai~h (s). ti = l.“i£ {0,1}, i = 1, П, ieiv Покажем, что эти задачи являются iVP-трудными. Поскольку в каждой из приведенных задач расписание s однозначно определяется перестановкой я элементов множества N (задающей порядок обслуживания требований), наряду с обозначениями F(s) и ti(s) будем употреблять обозначения Fin) и tiin). 5.2. Рассмотрим задачу 5.1, а), которой соответствует сле¬ дующая задача распознавания: существует ли такое допустимое относительно G расписание s° обслуживания требований множества N, что 2 для заданного чис- i(=N ла у? Покажем, что существует полиномиальное сведение задачи о линейном размещении неориентированного графа к сформулированной задаче распознавания. 345
Предварительно установим NP-трудность задачи 5.1 при F (s) = 2 (s) и а{ е {— 1, 0,1} (i — 1, п). i^N Сформируем множество N требований следующим образом. Каждой вершине / графа Г сопоставим вершинное требование Vjf а каждому ребру (/, к) — пару реберных требований Eyji и EfX* На построенном множестве N введем отношение -> строгого порядка: E{^h-+Vh, Vj-^E^l, Vk-b'EfX для всех ребер (у, к) графа Г. Положим у = yQvk + (у4 + 2е — \)е\ tiVj) = и\ oc(Vj)=0; 7® Г; г(£Й = (Ю = 1, <*(£$) = - 1, а(0 = 1. (/, Л) е Я. Обозначим через А следующую задачу распознавания: существует ли при перечисленных условиях расписание 5° обслуживания требований множества N такое, что 2 «Ji И < У? i<=N Нетрудно заметить, что в задаче А расписание обслуживания требований множества N однозначно определяется их перестановкой. Поскольку рассматривается вопрос о существовании такого допустимого относительно G расписания s°, что 2 aiti(s°) можно ограничиться рассмотрением iSiV лишь тех перестановок, в которых между требованиями Е^Х и тем из требований Vj и Vh, которое расположено левее, пет других вершинных требований. Действительно, сс(Е^Х) =— 1. Поэтому при перемещении требования Е^\ вправо и сохранении порядка следования в перестановке остальных требований значение целевого функционала может только уменьшиться. Аналогично, поскольку a = 1, можно ограни¬ читься рассмотрением лишь тех перестановок, в которых между требованиями E(j% и тем из требований V5 и УЛ, которое расположено правее, нет других вершинных требований. Отметим также, что разрешение прерываний в обслуживании требований в целые моменты времени не расширяет имеющихся возможностей, т. е. среди расписаний с ирерыва- ШШМ11 нет расписаний, доставляющих целевому функционалу меньшее значение, чем лучшее из расписании без прерываний процесса обслуживания требований. Действительно, рассмотрим перестановку я, в которой между вершинными требованиями Vзт и Vh нет других вершинных требований. Если между VjT и Vз6 в я не расположено и ни од¬ 346
ного реберного требования, то прерывание обслуживания Vjr с последующим обслуживанием Vjs не изменит значения целевого функционала, поскольку a (Vj) = 0, у ^ V. Пусть в перестановке я между требованиями V jr и Vjs расположено хотя бы одно реберное требование E^l (р^ {1, 2}). Ввиду того, что рассматриваются лишь те перестановки, которые удовлетворяют приведенным в предыдущем абзаце ограничениям, должно выполняться одно из условий: F .r-> E^l (если р = 2) либо Vjs(если р = 1). Поэтому при прерыва¬ нии процесса обслуживания требования V -г требование Е^1 может начать обслуживаться только позднее по сравнению с последовательностью я, если р = 2, либо только ранее, если р = 1. В любом случае значение целевого функционала может лишь увеличиться. Если между V jr и Vjs в я расположены другие вершинные требования, то прерывание обслуживания Vjr с последующим обслуживанием V)s также не может привести к уменьшению значения целевого функционала. Итак, рассмотрим задачу построения последовательности обслуживания сформированного множества N требований. Пусть перестановка я допустима относительно графа G редукции строгого порядка, определенного на N. Выделим из я подпоследовательность я', образованную всеми вершинными требованиями. Последовательности л соответствует последовательность я" номеров вершин графа Г. Обозначим через я "(у) номер места, па котором расположено у в перестановке я", а через »№(*)) 0*={1,2}) — момепт времени завершения обслуживания Е^1 при обслуживании требований множества N в последовательности я. Нетрудно убедиться, что при выполнении введенных выше дополнительных ограничений на множество рассматриваемых перестановок элементов N справедливы неравенства: и4 min {я" (у), я" (к)} - у4 + 1 < t (Е(& (я)) < vx min {я" (у), я" (Л)} — v4 + 2е — 1, у4 max {я'' (у), я" (/с)} + 2 < t (Я$ (я)) < v4 max {я" (у), я" (4)} + 2е. Отсюда v4 (max {я" (у), я" (&)} — min {я" (у), я" (&)}) 4- + V* - 2е +3 < i{E?l (л)) - Г(£$ (л)) < v4 (max {я" (у), я" (А:)} — min {я" (у), я" (А)}) + v4 + 2е — 1 347
или, что эквивалейтно, 1,4 | л (/) — я (к) | + vl — 2е + 3 < t (Е% (л)) — t (Е(& (я)) < v* | я (/) — я {к) | + vi * + 2е — 1. Поскольку a (F,-) = 0, а (#$) = — 1, а (E(£i) = it имеем 2 a't, (я) = 2 Q (-Е^я))—(я))) и, следовательно, 1SJV 0',й)е£ V* 2 | Я* (/) - я" (к) I + (У4 - 2е + 3) е < (jI.WSE < 2 a^i (я) < v* 2 | я" (/) — я" (к) \ + (у4 + 2е — 1) е, i€=N U,h)^E Пусть существует линейное размещение (перестановка я") графа Г, при котором суммарная длипа ребер Г не превосходит у0. Тогда для любой допустимой относительно G перестановки я элементов N, удовлетворяющей указанным выше дополнительным ограничениям, имеем 2 a^i (я) < v*y0 + (v4 + 2е — 1) е = у. i е=лг Если же при любом размещении вершин графа Г суммарная длина его ребер оказывается больше у0, то для любой допустимой относительно G перестановки я элементов N имеем 2 i (я) > v4 (у0 + 1) + v4e — 2е2 + Зе > уг i GiV поскольку vk > 4е2. Таким образом, задача А имеет решение тогда и только тогда, когда имеет решение задача о линейном размещении графа Г. Отметим, что построение задачи А требует выполнения 0(v + е) операций. Осуществим полиномиальное преобразование задачи А в задачу 5.1, а), заменяя каждое вершинное требование V5 набором из vk требований (q = 1, у4) и полагая = = 1, a (tf >) = 0, д = МЛ F; V^Vf+1\ q = T^=T. В силу приведенного замечания о прерываниях процесса обслуживания требований, достаточно ограничиться рассмотрением расписаний, при которых требования У\х)у У^\ .., • ••, VivA) обслуживаются непосредственно друг за другом. Следовательно, построенная задача (обозначим ее через В) эквивалентна задаче А, поскольку a(^j4)) = О, 348
В задаче В прибавим ко всем сц (/ ^ N'; Здесь N' — йо- вое множество требований) константу А/ = 1 + % и рассмотрим, как при этом изменится значение 2 а^г (я). Здесь ieiV' я — перестановка элементов N'. Поскольку |ЛП = v* + 2e и длительность обслуживания каждого требования из N' равна единице, имеем (полагая + К') 2 (л) = 2 (аг + ^') (л) = i(=Nf ieAr' = 2 а^(я) + К (у5 + 2е + 1) (г;5 + 2е)!2< i^N' Следовательно, полагая у = uiy0 + (у4 + 2е — 1) + Я'(у5 + + + 1) (l?5 + 2е)/2, получим задачу, эквивалентную за¬ даче В. Построение сведения задачи о линейном размещении неориентированного графа к задаче 5.1, а) требует выполнения 0(иь) операций. Таким образом, задача 5.1, а) является iVP-трудной, причем, iVP-трудной в сильном смысле. Отметим, что в случае, когда граф G является последовательно-параллельным, задача 5.1, а) имеет алгоритм решения с оценкой сложности O(nlogn) (см. § 4 гл. 3). В той же главе описаны и другие полиномиально разрешимые случаи задачи 5.1, а). 5.3. Задаче 5.1, б) соответствует следующая задача распознавания. Определить: существует ли допустимое относительно G расписание 5° обслуживания требований множества N, при котором Для заданной величины у. ieiv Покажем, что к сформулированной задаче распознавания полиномиально сводится задача распознавания, соответствующая задаче 5.1, а) при К = 2. В задаче 5.1, а) условие £*= 1 {i = 1, п) заменим условием и = 4 (i= 1, /г). Такая замена приводит к задаче, эквивалентной исходной, если положить у' = 4у0 (здесь у0 — константа из исходной задачи) и рассматривать вопрос о существовании допустимого относительно G расписания, при котором значение целевого функционала не превосходит у\ Нетрудно убедиться, что разрешение прерываний в обслуживании требований в целые моменты времени в полученной задаче не расширяет имеющихся возможностей. Выполним в задаче 5.1, а) (при U = 4) следующие преобразования. Каждое требование i такое, что o&i = 4 (обозначим количество таких требований через гД заменим четвер¬ 349
кой требований i(i\ i{2\ i(3), г(4), полагая а.(<7) = 1, t^-i, q = 1,4; i(y) i(9+1), g = 1, 3. Каждое требование j такое, что ccj = 3 (обозначим их количество через г2), заменим тройкой требований /(1), /(2), /(3), полагая а;(д)= 1» Q = 1»^; *j(i) = 2, ^(2) = ^(з)=1, fq)-> j(q+1\ ? = 1У2. Каждое требование /с такое, что а* = 2 (пусть их г3 штук), заменим парой требований /с(1) и /с(2), полагая afc(D= ah(2)= *fc(i)= ^(2)= 2 .При этом, если в исходной задаче имеет место соот- .(<?l) *(q2) ношение i /, заменим его соотношениями i для всех требований из наборов, которыми заменяются требования i и у. В силу замечания о прерываниях можно ограничиться рассмотрением тех расписаний обслуживания построенного множества N' требований, при которых требования из каждой введенной группы обслуживаются непосредственно друг за другом. Пусть s — расписание обслуживания требований в задаче 5.1, а) при гг=4, a s' — соответствующее ему расписание обслуживания требований множества N' (каждое требование из N заменяется соответствующей группой требований из N'). Нетрудно убедиться, что 2 aih («) = 2 ij (s') + 6rx + 3r2 + 2r3. i(=N jS=N' Положим y = y,’~ 6rt — 3r2 — 2r3. Очевидно, допустимое относительно введенного на N' строгого порядка расписание s° обслуживания требований множества N, при котором 2 h (5°) ^ У»существует тогда и только тогда, когда в задаче че 5.1, а) при Х = 2 и £, = 4 существует допустимое относительно G расписание 5° обслуживания требований множества N, при котором 2 а(s) ^ у' = 4у0. i~N Реализация описанного сведения требует выполнения О(п) операций. Задача 5.1, б) является, таким образом, МР-трудной в сильном смысле. 5.4. Доказательство МР-трудпости задачи 5.1, в) осуществляется аналогичным образом с помощью следующих преобразований. Полагаем А,= 1. Каждое требование i^N такое, что а* = 3 заменяем тройкой £(1), i(2), £(3), полагая a.(9) = 1, д = М; *i(1) = 1, f.(2) = t.w =0, 3=1, 2 350
Каждое требование j такое, что aj = 2, заменяем парой /(1\ /(2), полагая а.(1) = а.(2)= 1, tj(1)= 1, ^(->)= 0, /(1)->/2). АР-трудность в сильном смысле задачи 5.1, г) следует из АР-трудности в сильном смысле задачи 5.1,6) и леммы 2.1. 5.5. Из замечания 1.2 (см. § 1 данной главы) и АР-трудности в сильном смысле задач 5.1, а)—г) следует, что задача 5.1 является АР-трудной в сильном смысле и в следующих случаях: д) F (s)=2«iZi(s); ti = 1, Di = D, afe {X., X + 1, X + 2}, i = 1, n, A £= {0, zb 1, db 2, . .. }; е) F(s) =2zi(s); t{ <= {1, 2>, Di = D, i = 1, n; ж) P («) = 2 Zi(s); <= {0,1},; Di = D, i = l,ra; з) F («) = 2 aizi (s); = 1, Di = D, ajG {0,1} i=1 ,и. В силу замечания 2.2 (см. § 2 данной главы) из АР-труд- ности в сильном смысле задач 5.1, а), г), д), з) следует, что при разрешении прерываний процесса обслуживания требования в целочисленные моменты времени эти задачи являются АР-трудными в сильном смысле и при замене условия U = 1 (i = 1, п) условием: U — целые числа. Аналогично, из АР-трудпости в сильном смысле задач 5.1, в), ж) следует, что эти задачи остаются АР-трудными в сильном смысле при замене условия и е {0, 1} (i = 1, п) условием: U — целые числа, и разрешении прерываний процесса обслуживания требования в целочисленные моменты времени. Из замечания 1.4 (см. § 1 дапной главы) следует, что задачи 5.1, а)—з) остаются АР-трудными в сильном смысле и при разрешении прерываний процесса обслуживания требований. § 6. Библиографическая справка ЛР-полнота задач о разбиении, о вершинном покрытии и задачи о клике доказана Р. Карпом [74]. Доказательство ЛР-полноты задачи о клике намечено ранее С. Куком [82]. Доказательство ЛР-полноты задачи о 3-разбиении выполнено М. Гэри и Д. Джонсоном [271, 56], а задачи о линейном размещении графа — теми же авторами совместно с Л. Стокмсйером [277]. Доказательство ЛР-трудности задач 1.1, а), в) выполнено Э. М. Лившицем и В. И. Рублинецким [100]; см. также [220]. ЛР-трудность задачи 1.1, б) установил Я. Ленстра [345]. ЛР-трудность задачи 1.2, а) доказали П. Бруккер, Я. Ленстра и А. Ринной Каи [217]. Задача построения допустимого относительно директивных сроков расписания, соответствующая задаче 1.2, а), является ДР-трудной в сильном смысле (к ней сводится задача о 3-разбиении — см. [56]). Сле- 351
довательно, задачи 1.2, а), в), г) также АР-трудны в сильном смысле. АР-трудность задачи 1.2, б) доказана одновременно в {741 и [100]. Отметим, что эквивалентность задачи 1.2, б) и так называемой задачи о рюкзаке установлена ранее Е. Лоулсром и Дж. Муром [3421 (задача о рюкзаке является АР-трудиой [741). Доказательство АР-трудностй задачи 1.3 принадлежит С. Сахни [392]. Задача 1.3 является АР-труд- ной в сильном смысле. Для построения сведения к ней задачи о 3-разбиении достаточно положить п — 3п0; ti = -у», i = 1, п\ D = б; у = п0. NP-трудность в сильном смысле задачи 2.1, а) установлена М. Гэри и Д. Джонсоном [271]. На АР-трудность задачи 2.1, б) указал Я. Бла- жевич [209] (доказательство не приведено). ./VP-трудность в сильном смысле задачи 2.2, а) установили Я. Лснстра, А. Ринной Кан и П. Брукнер [349], а задачи 2.2, б) — Ш. Лабетуль, Е. Лоулер, Я. Лснстра и А. Ринной Кан [324]. На АР-трудность в сильном смысле задачи 2.2, в) указали Я. Ленстра и А. Ринной Кан [348] (доказательство нс приведено). В этой же работе доказана АР-трудность в сильном смысле задач 2.2, д), 2.2, ж) и 2.2, з). Доказательство АР-трудности в сильном смысле задачи 2.2, г) выполнено Е. Лоулером [335], а задачи 2.2, е) — в [345]. Отметим, что ранее АР-трудпость задач 2.2, г) и с) была установлена в [100] и [217] соответственно. АР-трудность в сильном смысле задачи 2.3 установил Р. Сети [405]. Я. Блажевич, Я. Ленстра и А. Ринной Кан [211] доказали АР-трудность в сильном смысле задач 2.4, а), б). В этой работе доказана АР-трудность в сильном смысле еще нескольких задач с ресурсными ограничениями. Рассмотрим их. Задача А состоит в следующем. В обслуживающую систему, состоящую из трех идентичных приборов, в один и тот же момент времени поступают требования множества А= {1, 2, ..., п). Длительность обслуживания каждого требования равна единице. Прерывания не допускаются. Имеется q видов ресурсов, /?/, = 1 (к = 1, q). Потребность требования igA в ресурсе /с-го типа равна пл е {0, 1}. Необходимо построить допустимое относительно ресурсных ограничений расписание s обслуживания требований множества А, доставляющее минимум функционалу F(s) при условии, что a) F(s) = tmах, либо б) F(s) = п = 2 Задача В отличается от задачи А лишь тем, что обслу¬ га живающая система состоит из двух приборов различной производительности и длительность tiH обслуживания требования i^N прибором Н равна ан. Здесь также требуется минимизировать функционал F(s) при указанных условиях а) либо б). Из замечаний 1.2 и 1.3 следует, что задачи А и В являются АР-трудными в сильном смысле также в следующих случаях: в) F(s) = Lmax(s); r) F(s) = п = Smax(s) и Di = D, i = 1, п; д) F (s) = 2 zj (s) и Di=D, i = i=l n = 1, n\ e) F (s) = 2 ui(s) и Di = D, i — 1, n. Из замечания 2.2 i=l следует, что задачи А? а) — е) остаются АР-трудными в сильном смысле при разрешении прерываний процесса обслуживания требования в целочисленные моменты времени и замене условия ti = 1 (i = 1, п) условием: ti — целые числа. Из замечания 4.1 следует, что соответствующие задачам А, г) и В, г) задачи построения допустимого относительно директивных сроков расписания являются АР-трудными в сильном смысле. 352
Впервые /VP-трудпость в сильпом смысле задачи 3.1 установлена в [405]; в п. 3.2 приведен более простой вариапт доказательства. Первая попытка доказательства /VP-трудности в сильпом смысле задачи 3.2 принадлежит П. Брукнеру, М. Гэри и Д. Джопсоиу [216]. В п. 3.3 приведен вариант доказательства, в основе которого лежит схема, предложенная в [216]. Как отмечено в п. 4.8, из ./VP-трудности в сильном смысле задачи 3.2 следует, что соответствующая ей задача о существовании расписания, допустимого относительно заданных директивных сроков, также является /VP-трудной в сильном смысле. Последнюю задачу преобразуем следующим образом. Условие dt = 0 (i = 1, п) заменим условием di ^ 0 (i = 1, п) (требования поступают в обслуживающую систему неодновременно), условие «каждая компонента связности G — выходящее дерево» — условием «каждая компонента G — входящее дерево» и добавим условие Di = D (i = 1, п). Нетрудно убедиться, что получеппая задача (обозначим ее через II) эквивалентна исходпой (см. [216]) и, следовательпо, является /VP-трудпой в сильпом смысле. Отсюда очевидным образом следует /VP-трудпость в сильном смысле задачи построения оптимального по быстродействию расписания обслуживания требований в условиях задачи II. В силу замечаний 1.2 и 1.3 из ./VP-трудности в сильном смысле задачи Н при F(s) = Fmax(s) следует ее /VP-трудность в сильном смысле и в следующих случаях: F(s) = £тах($); ^($) = zmax(s) и Di = D, i = 1, п; п п F (s) = 2 zi М и Di = D1 i = l,n\ F {s) = 2 u.x (s) i=l i=l и Di = D, i = 1, n. Из замечания 2.2 следует, что перечисленные задачи остаются /VP-трудными в сильном смысле при разрешении прерываний процесса обслуживания требования и замепе условия и = 1 (i = 1, п) условием: t\ и di — целые числа. /VP-трудность в сильпом смысле задач 4.1 и 4.2, б) установлена в [345], а задачи 4.3, б) — в [217]. Доказательство /VP-трудности в сильном смысле задач 4.2, а) и 4.3, а) принадлежит Дж. Ульману [425, 426]. Доказательство NP-трудности в сильном смысле задачи 5.1, а) принадлежит Е. Лоулсру [336]. В основе доказательств NP-трудности в сильном смысле задач 5.1, б) и 5.1, в), приведенных в пп. 5.3 и 5.4 соответственно, лежат идеи, сформулированные в [336]. /VP-трудность в сильном смысле задачи 5.1, в) доказана в [346]. В основе доказательств утверждений, сформулированных в пп. 1.8 и 2.2, лежат идеи, содержащиеся в работе [349] и [348] соответственно. Для решения /VP-трудпых задач разработано большое количество разнообразных методов направленного перебора вариантов, которые широко используются и в теории расписаний. Общий формализм методов оптимизации, основанных на идее последовательного конструирования, анализа и отсеивания вариантов, разработан В. С. Михалсвичем, 10. М. Ермольевым, В. В. Шкурбой, Н. 3. Шором и др. [112—118]. Детальное описание метода динамического программирования содержится в монографии Р. Веллмана [12]. Значительное развитие конструктивный подход получил в работах Н. Н. Моисеева и его учеников [119—122]. Ряд общих схем решения 23 в« С, Танаев и др. 353
задач дискретной оптимизации предложен в работах 10. И. Журавлева [62—641, В. П Черенина Г1701, В. Р. Хачатурова [165], В. А. Еме- личева и В. И. Комлика [60], И. В. Сергиенко, Т. Т. Лебедевой и B. А. Рощин [144], Г. М. Левина и В. С. Танаева [89]. Формализации и теоретическому обоснованию метода ветвей и границ посвящены работы Й. В. Романовского [134], Т. Ибараки [299, 300], X. Кисэ [315], В. Кёхлера и К. Стэйглица [319], Л. Миттепа [360], Б. Руа [391], Д. Танга и К. Вопга [421], К. Бейкера [193] и ряд других. Обширную библиографию по этим вопросам содержат обзорные работы А. А. Корбута, И. X. Сигала и 10. 10. Фипкелыптейиа [80], Е. Балаша и М. Гииьяр [200], Е. Лоулера и Д. Вуда [344]; см. также [303]. Различные варианты метода ветвей и границ для минимизации суммы (взвешенных) времен завершения обслуживания требований предложили Р. Чандра [229], Л. Бьяпко и С. Риккарделли [206] (М = 1, di >0, i = 1, п); К. Потс [378] (М = 1, d{ = 0, i = 1, и, частично упорядоченное множество требований); С. Элмаграби и C. Парк [253], К. Бейкер и А. Мертеп [196], Дж. Барпис и Дж. Бреннан [203] (М > 1, di = 0,i = TT^j; С. Бэле ел [202] (М = 1, d{ = 0, дополнительное условие: Ft(s) ^ Di, i= 1, п); см. также [75, 103, 169, 171, 255, 437, 439]. Применению метода ветвей и границ для построения оптимальных по быстродействию расписаний посвящены работы [4, 9, 73, 142, 201, 213, 215, 223, 230, 245, 257]. Ряд задач для одностадийных обслуживающих систем рассмотрен в работах [3, 6, 8, 23, 72, 101, 141, 145, 183, 191, 205, 214, 247, 292, 438]. Вычислительные схемы динамического программирования для построения оптимальпых расписаний обслуживания требований в одностадийных системах описаны в работах [123, 156, 198, 222, 225, 320, 357, 402, 436]. Использованию теоретико-графовых интерпретаций задач теории расписаний при разработке переборпых методов их решепия посвящены работы 10. Н. Сотскова [146—148], 10. Грабовского [287], Е. Фернандеса и Т. Ланга [259], К. Фунга [265], В. Кехлера [318], Ю. А. Зака [66] и др. Ряд ситуаций, в которых качество расписаний существенно зависит от правильной организации пуско-наладочных и транспортпых работ, связанных с эксплуатацией обслуживающих приборов, приводит к необходимости рассмотрения так называемой задачи о коммивояжере и разнообразных ее обобщений. Задача о коммивояжере является АР-трудной (см., например, [375]). Метод ветвей и границ для решения этой задачи впервые предложили Д. Литл, К. Мурти, Д. Суини и К. Кэрел [102]. Кстати, именно в этой работе метод и получил свое теперешнее название. Решение задачи о коммивояжере методом динамического программирования осуществлено Р. Веллманом [13]. В [303] приведен список работ, посвященных различпым аспектам задачи о коммивояжере и насчитывающий около 600 наименований. Задачи минимизации (взвешенного) максимального временного смещения рассматривались в работах Дж. Мак-Махона и М. Флориапа [355], М. Дэссоуки и Р. Ларсона [246], Ж/Карлье [227], К. Потса [378]; максимального запаздывания — в работах Р. Бейкера и З.-С. Су [199], Ч. Тилкина [422]; суммарного запаздывания — в работах А. Шилда и И. Фредмаиа [3981, Г. Эммонса [254], К. Брейкера и Дж. Мартина [195], М. Фишера [261], Дж. Рута [385], К. Петерсена [376], Дж. Швимера [406], В. Сринивасана [418] и др. 354
Для решения /VP-трудных задач теории расписаний разработано много эвристических процедур и приближенных методов. Обстоятельные экспериментальные исследования сравнительной эффективности ряда эвристических процедур построения расписаний (без прерываний) с наименьшим максимальным временным смещением провели К. Дейвис и Дж. Уолтерс [242] (10 процедур, 1560 тестовых задач; М = 1, п = 5, 10, 15, 20, 25, 30), Р. Ларсон и М. Дэссоуки [330] (11 процедур, 1200 тестовых задач; М = 1, п = 20), П. Дэ и Т. Мортон [244] (одна процедура, 9900 тестовых задач; М = 2, 4, 8, п = 10, 20, 30, di = 0, i = 1, п). Информация о приближенных методах (с априорными оценками точности решения) содержится в табл. В.З введения. Рассмотрению задач минимизации суммарных затрат при обслуживании требований в одностадийных системах посвящены работы [104, 132, 226, 373, 380, 383, 411, 423, 432]. В работах [16, 132, 262, 367] рассматриваются системы с «окнами доступности». 23*
СПИСОК ЛИТЕРАТУРЫ 1. Агеенко Н. И., Бегун С. М., Визинг В. Г., Заров- ный В. П., Строков В. И. Задача оперативного планирования планово-предупредительных ремонтов оборудования.— Экон. и матем. методы, 1976, 12, № 2, с. 396—399. 2. Адельсон-Вельский Г. М., Диниц Е. А., Карза- пов А. В. Потоковые алгоритмы.— Наука, 1975, 119 с. 3. А н д о н Ф. И., Кукса А. И., Поляченко Б. Е. Об оптимальном планировании процесса обработки на ЭВМ взаимосвязанных задач.— Кибернетика, 1980, № 3, с. 51—53. , 4. А н т и п о в В. И. Решение частной задачи календарного планирования методом сравнения состояний.—В кн.: Системы распределения ресурсов на графах.— М., 1970, с. 7—24. 5. Арлазаров В. Л., Диниц Е. А., Кронрод М. А., Фара д ж е в И. А. Об экономном построении транзитивного замыкания графа.— ДАН СССР, 1970, 194, № 3, с. 487—488. 6. А р о н о в и ч А. Б. Об одной задаче календарного планирования.— Экон. и матем. методы, 1968, 4, № 3, с. 401—406. 7. Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов.— М.: Мир, 1979.— 536 с. 8. Ахпателов Э. А., Черении В. П. Оптимальная последовательность обслузкивания единственным устройством.— ЖВМ и МФ, 1977, 17, № 2, с. 328—338. 9. Б а р с к и й А. Б. Автоматическое распределение работ между двумя вычислительными устройствами одинаковой производительности.— Изв. АН СССР. Техн. кибернетика, 1968, № 4, с. 32—38. 10. Барский А. Б. Две задачи оптимизации использования неоднородных вычислительных систем.— Изв. АН СССР. Техп. кибернетика, 1971, № 4, с. 119—125. 11. Б е кише в Г. А. Обоснование алгоритма Т. С. Ху.— В кп.: Матем. анализ и его прил. Т. 5.— Ростов-на-Дону, 1974, с. 120—126. 12. Б е л л м а н Р. Динамическое программирование.— М.: ИЛ, 1960.— 400 с. 13. Б е л л м а н Р. Применение дипамического программирования к задаче о коммивояжере.— В ки.: Киберпет. сб.— М.: Мир, 1964, вып. 9, с. 219—222. 14. Беллман Р. Введение в теорию матриц.—М.: Наука, 1976.— 352 с. 15. Б е р ж К. Теория графов и ее применения.— М.: ИЛ, 1962.— 319 с. 16. Б и л ю б а В. Ф., Б е л о с л у д ц е в Н. М. Исследование планирования обслуживания одного вида потоков объектов группой приборов.—Изв. высш. учеб, заведений. Приборостроение, 1974, 17, № 4, с. 46-50. 17. Б о н д а р е и к о А. Т., С а п а т ы й П. С. Алгоритм распределе- 356
ний независимых работ на параллельно работающие устройства.— Изв. АН СССР. Техп. кибернетика, 1975, № 4, с. 101—103. 18. Бурдюк В. Я. Регулярные g-упорядочения и функции Смита.— Кибернетика, 1975, № 2, с. 17—25. 19. Бурдюк В. Я.. Рева В. Н. Об одном методе оптимизации функционалов от перестановок при наличии ограничений.—Кибернетика, 1980, № 1, с. 99—103. 20. Б у р д ю к В. Я., III к у р б а В. В. Теория расписаний. Задачи и методы решений.— Кибернетика, 1971, № 1, с. 89—102. 21. Б у р д ю к Т. А. Интервалы очередности в задаче минимизации штрафа.— Кибернетика, 1973, № 5, с. 106—110. 22. Б у р д ю к Т. А. Об экстремальных значениях задачи Эл- маграби.— Изв. АН БССР. Сер. физ.-матем. н., 1974, № 2, с. 120-124. 23. Бурдюк Т. А. Задача минимизации потерь, связанных с задержками деталей в производстве— В кн.: Повышение экон. эф- фективн. обществ, произ-ва.—Днепропетровск. 1974, вып. 1, с. 167-171. 24. Б у р к о в В. Н., Ловецкий С. Е. Методы решепия экстремальных комбинаторных задач (обзор).— Изв. АН СССР. Техн. кибернетика, 1968, № 4, с. 82—93. 25. Б у р к о в В. Н., Ловецкий С. Е. Методы решения экстремальных задач комбинаторного типа (обзор).— Автомат, и телемех., 1968, № 11, с. 68—93. 26. Б у р к о в В. Н., Соколов В. Б. Оптимальное размещение информационных массивов в памяти на магнитных лентах для случая двунаправленного поиска.—Автомат, и телемех., 1969, № 4, с. 107-117. 27. В и з г у н о в Н. П. Некоторые подходы к решению задач с параллельными машинами в календарном планировании.— Анализ и моделир. экой, процессов.— Горький, 1978, с. 15—27. 28. В и з и н г В. Г. О расписаниях, соблюдающих директивные сроки выполнения работ.—Кибернетика, 1981, № 1, с. 128—135. 29. В и з и н г В. Г. Минимизация максимального запаздывания в системах обслуживания с прерыванием.—ЖВМ и МФ, 1982, 22, № 3, с. 717-722. 30. В и з и н г В. Г. Оптимальный подбор интенсивностей выполнения работ при выпуклой функции штрафов за интенсивность.— Кибернетика, 1982, № 3, с. 125—127. 31. Визипг В. Г., Клинкер И. А. Полиномиальный алгоритм решения задачи Гери — Джонсона о составлении расписания.— Сообщ. АН Груз. ССР, 1981, 102, № 1, с. 29-32. 32. В и з и н г В. Г., К о м з а к о в а Л. Н., Т а р ч е н к о А. В. Об одном алгоритме выбора интенсивностей работ в расписании.— Кибернетика, 1981, № 5, с. 71—74. 33. Г е н с Г. В., Л е в н е р Е. В. Эффективные приближенные алгоритмы для комбинаторных задач.— М., 1981.— 66 с. (Препринт/ Центр, экон.-матем. ин-т АН СССР). 34. Г е н с Г. В., Л е в н е р Е. В. Приближенные алгоритмы для некоторых универсальных задач теории расписаний.— Изв. АН СССР. Техн. кибернетика, 1978, № 6, с. 38—43. 35. Г е н с Г. В., Л е в н е р Е. В. Дискретные оптимизационные задачи и эффективные приближенные алгоритмы (обзор).— Изв. АН СССР. Техп. кибернетика, 1979, № 6, с. 9—20. 36. Г и к Е. Я., Л е в н е р Е. В. Решение некоторых задач календарного планирования для одного станка.— В кн.: Вопр. матем. тео- 357
pm* управл. систем й ее применение в металлургии,— М., 1974, с. 22-25. 37. Г и м а д и Э. X., Глебов Н. И., Перепелица В. А. Исследования по теории расписаний.— В кн.: Управляемые системы.— Новосибирск, 1974, вып. 12, с. 3—10. 38. Г о л о в к и н Б. А. Методы и средства параллельной обработки информации.— В кн.: Итоги науки и техн. Теория вероятностей. Матем стат. Теор. кибернет.— М.: ВИНИТИ, 1979, т. 17, с. 85—193. 39. Г о л о в к и н Б. А. Классификация методов диспетчеризации работы многопроцессорных и многомашинных вычислительных систем.— Управл. системы и машины, 1982, № 3, с. 3—11. 40. Г о л ь д г а б е р Е. М. Задача минимизации времени исполнения проекта работ, заданного деревом.— Кибернетика, 1977, № 2, с. 102—107. 41. Г о р д о н В. С. Детерминированные одностадийные системы обслуживания с прерываниями.— В кн.: Вычислит, техн. в машиностроении.— Минск, 1973, июнь, с. 30—38. 42. Г о р д о н В. С. Об оптимальных расписаниях с прерываниями процесса обслуживания.— Изв. АН БССР. Сер. физ.-матем. н., 1974, № 5, с. 129-130. 43. Гордон В. С. Детерминированпая система обслуживания с минимаксным критерием оптимальности и частично упорядоченным множеством требований.— Автоматиз. техн. подготовки пр-ва, 1977, № 4, 70-75. 44. Г о р д о н В. С. Некоторые свойства последовательно-параллельных графов. Изв. АН БССР. Сер. физ.-матем. н., 1981, № 1, с. 18-23. 45. Гордо и В. С., Т а н а е в В. С. Детерминированная система обслуживания с одним прибором и ступенчатыми функциями штрафа.— В кн.: Вычислит, техн. в машиностроении.—Минск, 1971, сент., с. 3—8. 46. Г о р д о н В. С., Т а н а е в В. С. Прерывания в детерминированных системах с параллельными приборами и неодновременным поступлением требований на обслуживание.— В кн.: Оптимизация систем сбора, передачи и обработки аналоговой и дискретной информации в локальных ИВС. Материалы I совмести, сов.-бол- гарск. семинара НТК АН БССР — НТК БАН, 28 мая — 1 июня 1973 г.— Минск, 1973, с. 36—50. 47. Г о р д о н В. С., Т а п а е в В. С. Директивные сроки в однофазных детерминированных системах обслуживания.— В кн.: Оптимизация систем сбора, передачи и обработки аналоговой и дискретной информации в локальных ИВС. Материалы I совмести, сов.-болгарск. семинара НТК АН БССР — ИТК БАН, 28 мая — 1 июня 1973 г.— Минск, 1973, с. 54—58. 48. Г о р д о)н В. С., Т а н а е в В. С. Детерминированные системы обслуживания с одним прибором, древовидным упорядочением требований и экспоненциальными функциями штрафа.— В кн.: Вычислит, техн. в машиностроении.— Минск, 1973, июнь, с. 3—10. 49. Г о р д о н В. С., Т а н а е в В. С. О минимаксных задачах теории расписаний с одним прибором.— Изв. АН БССР. Сер. физ.-матем., 1983, № 3, с. 3-9. 50. Г о р д о п В. С., Чеголина Е. П. Об одностадийной задаче теории расписаний с древовидно упорядоченным множеством требований.— Изв. АН БССР. Сер. физ.-матем. н., 1977, № 4, с. 36—40. 358
51. Гордон В. С., Шафрапский Я. М. Об одпом классе задач теории расписаний с частично упорядоченными требованиями.— В кн.: Тезисы докл. IV Всесоюзн. конф. по проблемам теоретической кибернет. 30 авг.— 1 сент. 1977 г.— Новосибирск, 1977, с. 101-103. 52. Г о р д о н В. С., Ш а ф р а н с к и й Я. М. Оптимальное упорядочение при последовательно-параллельных ограничениях предшествования.— Докл. АН БССР, 1978, 22, № 3, с. 244—247. 53. Г о р д о н В. С., Шафрапский Я. М. Декомпозиционный подход к минимизации функций на множестве перестановок частично упорядоченных элементов.— В кп.: Труды V Всесоюзн. со- вещ. по управл. большими системами.— Алма-Ата, 1978, с. 51—50. 54. Г о р д о и В. С., Шафрапский Я. М. Об оптимальном упорядочении при последовательно-параллельных ограничениях предшествования.— Изв. АН БССР. Сер. физ.-матем. н., 1978. № 5, с. 135. 55. Г о р д о п В. С., Шафрапский Я. М. К вопросу минимизации функций на множестве перестановок частично упорядоченных элементов.— Изв. АН БССР. Сер. физ.-матем. н., 1979, № 2, с. 122-124. 56. Гэри М., Д ж о н с о н Д. Вычислительные машины и труднорешаемые задачи.— М.: Мир, 1982.— 416 с. 57. Д и н и ц Е. А. О решепии двух задач о назначении.— В кн.: Ис- след. по дискрет, оптимиз.—М.: Наука, 1976, с. 333—348. 58. Д и н и ц Е. А., К р о н р о д М. А. Один алгоритм решения задачи о назначении.— ДАН СССР, 1969, 189, № 1, с. 23—25. 59. Д ж о н с о и С. Оптимальное расписание для двух- и трехступенчатых процессов с учетом времени наладки.— В кн.: Кибернет. сб.— М.: Мир, 1965, вып. 1, с. 78—86. 60. Е м е л и ч е в В. А., К о м л и к В. И. Метод построения последовательности планов для решения задач дискретной оптимизации.—М.: Наука, 1981.—207 с. 61. Емеличев В. А., Супруненко ДА., Т а н а е в В. С. О работах белорусских математиков в области дискретной оптимизации.—Изв. АН СССР. Техн. кибернетика, 1982, № 6, с. 25—45. 62. Ж у р а в л е в 10. И. Оценка сложности локальных алгоритмов для некоторых экстремальных задач на конечных множествах.— ДАН СССР, 1964, 158, № 5, с. 1018-1021. 63. Ж у р а в л е в 10. И. Оценки сложности алгоритмов построения минимальных дизъюнктивных нормальных форм для функций алгебры логики.— В кн.: Дискрети. анализ.— Новосибирск, 1964, вып. 3, с. 41—77. 64. Ж у р а в л е в 10. И. Локальные алгоритмы вычисления информации. I, II.— Кибернетика, 1965, № 1, с. 12—19; 1966, № 2, с. 1—11. 65. Ж у р ж е н к о С. Л. Задачи расписания одностадийного производства (обзор литературы).—В кн.: Моделир. экон. процессов.— М.: МГУ, 1968, вып. 2. 66. 3 а к 10. А. Определение порядка выполнения независимых операций на параллельных машинах.— Изв. АН СССР. Техи. кибернетика, 1969, № 2, с. 15—20. 67. 3 и н д е р Я. А. Асимптотические оценки для одной задачи теории расписаний.— В кн.: Вопр. разработки АСУП.— Москва — Горький, 1974, с. 134—138. 68. 3 и н д е р Я. А. Приоритетная разрешимость одного класса задач упорядочения.— В кн.: Вопр. создапия автоматизир. систем упр.— Киев, 1976, с. 52-57. 359
69. 3 и н д е р Я. А. Об алгоритмах решения некоторых задач упорядочения.—В кн.: Алгоритмы и программы.—Горький, 1977, вып. 1, с. 114—123. 70. 3 и н д е р Я. А. Минимизация максимального штрафа в детерминированной системе обслуживания с одинаковыми обслуживающими приборами.— В кн.: Системный анализ промышленного производства.— Киев, 1978, с. 56—63. 71. Зин дер Я. А., Подчасо в а Т. П. Минимизация упорядоченных критериев в одностадийной детерминированной системе обслуживания.— В кн.: Автоматизир. системы управл. и обработки данных.— Киев, 1976, с. 20—25. 72. И р и к о в В. А. Некоторые задачи упорядочения.— Изв. АН СССР. Техп. кибернетика, 1970, N° 4, с. 38—42. 73. К а н ц е д а л С. А. Алгоритм сокращения поиска решений в задаче теории расписаний сетевой структуры.— Автомат, и телемех., 1982, № 4, с. 72—77. 74. К а р п Р. М. Сводимость комбипаторных проблем.— В кн.: Ки- бернет. сб — М.: Мир, 1975, вып. 12, с. 16—38. 75. Китик М. Г. К вопросу «сужения» ветвлепия в задаче одпого станка.—Кибернетика, 1972, № 1, с. 145—147. 76. К л а д о в Г. К., Лившиц Э. М. О задаче минимизации суммы штрафов при составлении расписания.— Кибернетика, 1968, № 6, с. 99-100. 77. Кнут Д. Искусство программирования для ЭВМ. Т. 3. Сортировка и поиск.— М.: Мир, 1978.— 844 с. 78. К о н в е й Р. В., Максвелл В. Л., Миллер Л. В. Теория расписаний.— М.: Наука, ,1975.— 359 с. 79. К о п ы л о в Г. Н. Точное решепие задачи одного станка.— Вестп. Ярославск. ун-та, 1975, вып. 9, с. 52—60. 80. К о р б у т А. А., Сигал И. X., ФинкелыптейнЮ. Ю. Метод ветвей и границ.— Math. Operationsforsch. Statist., Ser. Optimization, 1977, 8, № 2, s. 253—280. 81. Кострикин А. И. Введение в алгебру.—M.: Наука, 1977.— 495 с. 82. Кук С. А. Сложность процедур вывода теорем.— В кн.: Кибер- нет. сб.— М.: Мир, 1975, вып. 12, с. 5—15. 83. Лапин В. В. Об одном алгоритме составления расписания обслуживания множества требований.— Кибернетика, 1976, № 2, с. 90-94. 84. Л а п к о А. А. Об оптимизации приоритетных систем обслуживания.—Изв. АН БССР. Сер. физ.-матем. н., 1977, № 2, с. 117—120. 85. Л а п к о А. А. Обслуживание детерминированных потоков требований в заданные сроки.—Изв. АН БССР. Сер. физ.-матем. н., 1980, N° 5, с. 130. 86. Л а п к о А. А. Оптимальное упорядочение потоков требований в системах с директивными сроками.— В кп.: Теория и методы автоматиз. проектирования.— Минск, 1980, вып. 4, с. 23—24. 87. Л е б е д и п с к а я Н. Б. Минимизация максимального отклонения в случае прерывания работ.— Зап. науч. семинаров. Ленингр. отд. Матем. ин-та АН СССР, 1978, 80, с. 117—124. 88. Л е б е д и н с к а я Н. Б. Минимизация максимального штрафа в случае прерывания работ.—Зап. науч. семинаров. Ленипгр. отд. Матем. ин-та АН СССР, 1980, 102, с. 61—67. 89. Л е в и н Г. М., Т а н а е в В. С. Декомпозиционные методы оптимизация проектных решений,— Минск: Наука и техника, 1978.— 240 с. 360
90. Л ев ий М. Ш. Об эффективном решений некоторых йадай теории расписаний на сетях.— Кибернетика, 1980, № 1, с. 131—135. 91. Левнер Е. В. Сетевой подход к задачам теории расписаний.— В кн.: Исслед. по дискретн. матем.—М.: Наука, 1973, с. 135 -150. 92. Л е впер Е. В. Теория расписаний в экономических системах (некоторые матем. вопросы).— М., 1977.— 53 с. (Препринт/Центр. экон.-матем. ин-т АН СССР). 93. Л е в н е р Е. В., Гене Г. В. Дискретпые оптимизационные задачи и эффективные приближенные алгоритмы.— М., 1978.— 55 с. (Препринт/Цептр. экон.-матем. ин-т АН СССР). 94. Л е в н е р Е. В., Г е н с Г. В. Анализ вычислительной сложности приближенных алгоритмов для некоторых дискретных оптимизационных задач.— В кн.: Матем. методы решения экой, задач.— М., 1980, № 9, с. 97-106. 95. Л е о н т ь е в В. К. Дискретные экстремальные задачи.— В кп.: Итоги науки и техн. Теория вероятностей. Матем. стат. Теор. ки- бернет.- М.: ВИНИТИ, 1979, т. 16, с. 39-101. 96. Л и в ш и ц Э. М. Исследование некоторых алгоритмов оптимизации сетевых моделей.— Экой, и матем. методы, 1968, 4, вып. 5, с. 768-775. 97. Лившиц Э. М. Последовательность операций при изготовлении сложной детали.—Автомат, и телемех., 1968, № И, с. 94—95. 98. Лившиц Э. М. Минимизация максимального штрафа в задаче одного станка.— В кн.: Труды I зимней школы по матем. программированию в г. Дрогобыче, 23 янв.— 5 февр. 1968 г.— М., 1969, с. 474—475. 99. Лившиц Э. М. Индикатор места в задачах минимизации на перестановках.—Кибернетика, 1975, № 3, с. 80—90. 100. Лившиц Э. М., Рублинецкий В. И. О сравнительной сложности некоторых задач дискретной оптимизации.— В кн.: Вычисл. матем. и вычисл. техн.— Харьков, 1972, вып. 3, с. 78-85. 101. Линский В. С., Корнев М. Д. Составление оптимальных расписаний для параллельно действующих процессоров.— Из в. АН СССР. Техн. кибернетика, 1972, № 3, с. 160—167. 102. Литл Дж., Мурти К., Суини Д., Кэр ел К. Алгоритм для решения задачи о коммивояжере.— Экой, и матем. методы, 1965, 1, вып. 1, с. 94—107. 103. Локоть Т. В. Об одной задаче теории расписаний.— Сб. тр. Моек, строит, ин-та, 1979, № 173, с. 156—160. 104. Ломинадзе Н. Н., Шартава Ж. К. Алгоритм последовательного улучшения плана выполнения работ по параллельным рабочим местам.— Тр. проблем, лаб. автоматики и вычисл. техн. Груз, политехи, ин-т, 1972, № 3, с. 124—129. 105. М а к с и м е н к о в А. В. Формирование расписания с учетом ограничения на интенсивность потребления ресурса.— Кибернетика, 1979, № 6, с. 91—95. 106. Мальцев А. И. Алгоритмы и рекурсивные функции.— М.: Наука, 1965.- 392 с. 107. М а н у с е в и ч О. 3., Рева В. II. Один алгоритм оптимизации функционалов па перестановках частичпо упорядоченного множества.— В кп.: Исслед. по соврем, пробл. суммирования и приближения функций и их прил.—Днепропетровск, 1979, с. 95—97. 108. Мельников О. И., Шафранский Я. М. Параметрическая задача теории расписаний.—Кибернетика, 1979, № 3, с. 53—57. 361
109. Метельский Й. Й. Об экстремальных зйайенййх линейной формы на некоторых множествах подстановок.— Изв. АН БССР. Сер. физ.-матем., 1972, № 5, с. 5—10. НО. М и р о н о с е ц к и й Н. Б. Экономико-математические методы календарного планирования.— Новосибирск: Наука, 1974.— 140 с. 111. Мисюра Е. Б. Составление оптимального расписания для одной машины по критерию минимизации суммарного штрафа.— Вести. Киевск. политехи, ин-та. Техн. кибернет., 1981, № 5, с. 58—62. 112. Михалевич В. С. Последовательные алгоритмы оптимизации и их применение. I, II.—Кибернетика, 1965, № 1, с. 45—66; 1965, № 2, с. 85-89. 113. Михалевич В. С., Волкович В. Л., Волошин А. Ф., Поздняков Ю. М. Алгоритмы последовательного анализа и отсеивания вариантов в задачах дискретной оптимизации.— Кибернетика, 1980, № 3, с. 76—85. 114. М и х а л е в и ч В. С., Ермольев Ю. М., Шкурба В. В., Шор Н. 3. Сложные системы и решение экстремальных задач.— Кибернетика, 1967, № 5, с. 29—37. 115. Михалевич В. С., Кукса А. И. Методы последовательной оптимизации (в дискретных сетевых задачах оптимального распределения ресурсов).—М.: Наука, 1983.—217 с. 116. М и х а л е в и ч В. С., Шкурба В. В. Последовательные схемы оптимизации в задачах упорядочения выполнения работ.— Кибернетика, 1966, № 2, с. 34—40. 117. М и х а л е в и ч В. С., Шор Н. 3. Численное решение многовариантных задач по методу последовательного анализа вариантов.— В кн.: Научно-метод. материалы экон.-матем. семинара Ла- бор. экон.-матем. методов АН СССР.—М.: ВЦ АН СССР, 1962, вып. 1, с. 15—41. 118. Михалевич В. С., Шор Н. 3., Галустова Л. А. и др. Вычислительные методы выбора оптимальных проектных решений.— Киев: Наукова думка, 1977.— 178 с. 119. Моисеев Н. Н. Численные методы в теории оптимальных систем.—^.: Наука, 1971.— 424 с. 120. Моисеев Н. Н. Элементы теории оптимальных систем.—М.: Наука, 1975.— 526 с. 121. Моисеев Н. Н. Математика ставит эксперимент.— М.: Наука, 1979.— 223 с. 122. Моисеев Н. Н., И в а н и л о в Ю. П., Ст о л я р о в а Е. М. Методы оптимизации.— М.: Наука, 1978.— 351 с. 123. Н и к и т и н А. В. Применение динамического программирования для решения некоторых задач упорядочения.— Тр. Моек, энерг. ин-та, 1969, вып. 68, с. 165—169. 124. Овсянкин Б. П. Об одной задаче организации обработки данных в многопроцессорных вычислительных системах.— ЖВМ и МФ, 1983, № 5, с. 1262—1266. 125. Па на йот и Б. Н., Пьянзина Л. Я., Чебаков В. А. Минимизация числа прерываний в многопроцессорном расписании.— Изв. АН СССР. Техи. кибернет., 1971, № 4, с. 103—110. 126. Парамонов Ф. И. Математические методы расчета мпогоно- менклатурных потоков.— М.: Машиностроение, 1964.— 264 с. 127. По дчасо в а Т. П., Пор ту га л В. М., Та та ров В. А., Шкурба В. В. Эвристические методы календарного планирования.— Киев: Техн1ка, 1980.— 140 с. 128. Р е в а В. Н. Об одном алгоритме оптимизации функционала на перестановках частично упорядоченного множества.— В кн.: Ак¬ 362
туальные проблемы ЭВМ и программирование.— Днепропетровск, 1979, с. 92-95. 129. Р е в а В. Н. О оптимизации функций на перестановках частично упорядоченного множества.— В кн.: Тезисы докл. V Всес. консЬ. по проблемам теоретической кибернет. 18—20 июня 1980 г.— Новосибирск, 1980, с. 91—92. 130. Р е в ч у к И. Н. Условия осуществимости полного обслуживания в системе с М приборами, имеющими окна доступности.— Изв. АН БССР. Сер. физ.-техн. н., 1977, № 4, с. 123. 131. Ре в чу к И. Н. Об одном классе задач теории расписаний с нежесткими «окнами» доступности для приборов.— В кн.: Теория и методы автоматиз. проектирования.— Мипск, 1979, вып. 2, с. 19-28. 132. Р е в ч у к И. Н. О некоторых классах задач одностадийного производства с нежестким «окном доступности» для прибора.— В кн.: Теория и методы автоматиз. проектирования.— Минск, 1979, вып. 4, с. 16—22. 133. Рейнгольд Э., Нивергельт 10., Д е о Н. Комбинаторные алгоритмы. Теория и практика.— М.: Мир, 1980.— 476 с. 134. Р о м а н о в с к и й И. В. Численные методы дискретного программирования.— В кн.: Тр. 4-й зимн. школы по мат. программир. и смежн. вопр.— М., 1972, вып. 5, с. 76—128. 135. Санникова А. К. Об оптимизации функций на перестановках с ограничением па группирование элементов.— Изв. АН БССР. Сер. физ.-матем. н., 1982, N° 1, с. 116—117. 136. Санникова А. К., Т а н а е в В. С. Об одном классе экстремальных задач на перестановках.— ДАН БССР, 1979, 23, № 9, с. 784-786. 137. Сарванов В. И. Приближенное решение задачи минимизации линейной формы на множестве циклических подстановок.— Изв. АН БССР. Сер. физ.-матем. н., 1977, № 6, с. 5—10. 138. Сарванов В. И. К оптимизации на подстановках.— Изв. АН БССР. Сер. физ.-матем. н., 1979, N° 4, с. 9—11. 139. Сарванов В. И. О сложности минимизации линейной формы на множестве циклических подстановок.— ДАН СССР, 1980, 253, N° 3, с. 533-535. 140. Сафонова Т. Е. О минимизации числа элементов работ, не попавших в свои директивные интервалы.— Зап. науч. семинаров. Ленингр. отд, Матем. ин-та АН СССР, 1979, 90, с. 186—193. 141. Сафроненко В. А. Оптимальное расписание работы станка, закрепленного за сборочным конвейером.— Кибернетика, 1973, N° 5, с. 70-75. 142. Сегал В. М. Об одном эвристическом алгоритме уменьшения времени простоя сложных систем.— Тр. Моек, авиац. ин-та, 1972, вып. 230, с. 55—60. 143. Семенов А. И., П о р т у г а л В. М. Задачи теории расписаний в календарном планировании мелкосерийного производства.— М.: Наука, 1972.- 183 с. 144. Сергиенко И. В., Лебедева Т. Т., Рощин В. А. Приближенные методы решения дискретных задач оптимизации.— Киев: Наукова думка, 1980.— 273 с. 145. Советов Б. Я., Тишкип А. И. О решении одного класса задач теории расписаний.— Изв. высш. учебн. заведений. Приборостроение, 1976, 19, № 12, с. 56—60. 363
146. Сотсков Ю. Н. Оптимальное расписание множества работ, заданного смешанным графом.— Изв. АН БССР. Сер. физ.-матем. п., 1977, № 4, с. 133. 147. Сотсков Ю. Н. Расписания на смешанных графах с ограниченным максимальным штрафом.— Изв. АН БССР. Сер. физ.-матем. н., 1980, № 2, с. 37—41. 148. Сотсков Ю. Н. Составление оптимального по быстродействию расписания выполнения взаимосвязанных работ последовательными приборами.— В кн.: Методы и программы решения экстремальных задач.— Минск, 1981, с. 28—34. 149. Супруненко Д. А. О значениях линейной формы на множестве подстановок.—Кибернетика, 1968, № 2, с. 59—63. 150. Супруненко Д. А., Айзенштат В. С., Лепешин- с к и й Н. А. Экстремальные значения функций на множествах подстановок.— В кн.: Тезисы докл. I Всесоюзн. конф. по исслед. операций.— Минск, 1972, с. 61—64. 151. Супруненко Д. А., Метельский Н. Н. Задача о назначениях и минимизация суммы линейных форм на симметрической группе.— Кибернетика, 1973, № 3, с. 64—68. 152. Танаев В. С. К теории расписаний.— Докл. АН БССР, 1964, 8, № 12, с. 792-794. 153. Танаев В. С. Некоторые оптимизируемые функции одностадийного производства.— Докл. АН БССР, 1965, 9, № 1, с. 11—14. 154. Танаев В. С. Об одном классе задач теории расписаний.— В кн.: Управление производством. Труды III Всесоюзн. совещания по автомат, упр. (техн. кибернет.), Одесса, 1965.— М.: Наука, 1967, с. 211-214. 155. Танаев В. С. Прерывания в детерминированных системах обслуживания с параллельными идентичными приборами.— Изв. АН БССР. Сер. физ.-матем. н., 1973, № 6, с. 44—48. 156. Танаев В. С. Об оптимальном разбиении конечного множества на подмножества.—Докл. АН БССР, 1979, 23, № 1, с. 26—28. 157. Танаев В. С., Гордон В. С. О построении расписаний с наименьшим взвешенным числом запаздывающих требований.— Изв. АН БССР. Сер. физ.-матем. н., 1983, № 6, с. 3—9. 158. Танаев В. С., Ш к у р б а В. В. Введение в теорию расписаний,— М.: Наука, 1975.— 256 с. 159. Тузиков А. В. Об одном классе задач векторной оптимизации на перестановках.— В кн.: Алгоритмы и программы решения экстремальных задач и смежные вопросы.— Минск, 1982, с. 62—70. 160. Тузиков А. В., Шафранский Я. М. О задаче лексикографической минимизации на множестве перестановок.—Изв. АН БССР. Сер. физ.-матем. н., 1983, № 6, с. 115. 161. Ф е й г и н Л. И. Оптимальное расписание для одной машины при неполной информации.—Кибернетика, 1971, № 4, с. 149—151. 162. Финкелыптейн Ю. Ю. Приближенные методы и прикладные задачи дискретного программирования.— М.: Наука, 1976.— 264 с. 163. X а р а р и Ф. Теория графов.— М.: Мир, 1973.— 300 с. 164. Харди Г. Г., Литтлвуд Дж., Полна Г. Неравенства.— М.: ИЛ, 1948.— 456 с. 165. Хачатуров В. Р. Аппроксимационно-комбинаторный метод и некоторые его приложения.—ЖВМ и МФ, 1974, 14, № 6, с. 1464— 1487. 166. X а ч и я н Л. Г. Полиномиальный алгоритм в линейном программировании.- ДАН СССР, 1979, 244, № 5, с. 1093-1096. 364
167. X е н к и и В. Э. О псрестаповочных функциопалах, допускающих решающее правило.— В кн.: Пробл. анализа дискрстп. ииформ., ч. 2.—Новосибирск, 1976,— с. 106—116. 168. Ху Т. С. Параллсльпое упорядочивание и проблемы липии сборки.— В кп.: Киберпет. сб.— М.: Мир, 1967, вып. 4, с. 43—56. 169. Цаллагова О. Н. Об одпой задаче составления расписания.— В кн.: Матем. методы решения экон. задач.— М.: Наука, 1974, № 5, с. 130-134. 170. Черенин В. П. Решение некоторых комбипаторных задач оптимального планирования методом последовательных расчетов.— В кн.: Научно-метод. материалы экон.-матем. семипара Лабор. экон.-матем. методов АН СССР.— М.: ВЦ АН СССР, 1962, вып. 2.— 44 с. 171. Шапиро А. Д. Некоторые асимптотические свойства одпой задачи теории расписаний.— Экон. и матем. методы, 1975, 11, № 6, с. 1214-1216. 172. Шафранский Я. М. Об оптимальном упорядочении в детерминированных системах с древовидным частичным порядком обслуживания.—Изв. АН БССР. Gep. физ.-матем. н., 1978, № 2, с. 120. 173. Шафранский Я. М. Оптимизация детерминированных систем обслуживания с древовидным частичным порядком.—Изв. АН БССР. Сер. физ.-матем. н., 1978, № 2, с. 119. 174. Шафранский Я. М. О задаче минимизации функций па множестве перестановок частично упорядоченных элементов. I, II.— Изв. АН БССР. Сер. физ.-матем. н., 1980, № 5, с. 132; 1982, № 1, с. ИЗ. 175. Шафранский Я. М. Об одпом свойстве приоритето-порождающих функций.— Изв. АН БССР. Сер. физ.-матем. н., 1981, № 6, с. 15-18. 176. Шафранский Я. М. Об алгоритме отыскания минимума приоритето-порождающих функций на специальных множествах перестановок. I, II.— Изв. АН БССР. Сер. физ.-матем. н., 1982, № 3, с. 38-42, 1983, № 1, с. 15-20. 177. Шафранский Я. М., Андреев Г. В. Минимизация приоритето-порождающих функций на множестве перестановок частично упорядоченных элементов.— В кн.: Методы и программы решения экстремальных задач.— Минск, 1981, с. 13—27. 178. Шафранский Я. М., Янова О. В. Распознавание и декомпозиция последовательно-параллельных графов.— В кн.: Алгоритмы и программы решения задач оптимизации.— Минск, 1980, с. 17—24. 179. Шахбазян К. В. Упорядочение структурного множества работ, минимизирующее суммарный штраф.— Зап. науч. семинаров. Ленингр. отд. Матем. ин-та АН СССР, 1979, 90, с. 229—264. 180. Шахбазян К. В. О задачах теории расписаний вида n|l||Zcf (0-— Зап. пауч. семинаров. Ленингр. отд. Матем. ин-та АН СССР, 1980, 102, с. 147-155. 181. Шахбазян К. В., Лебединская Н. Б. Минимизация суммарного штрафа в задаче параллельного упорядочения п независимых работ.—ДАН СССР, 1977, 237, № 4,'с. 790—792. 182. Шахбазян К. В., Лебединская Н. Б. Эффективные методы оптимизации составления расписаний для одной машины. Обзор.—Зап. науч. семинаров. Ленингр. отд. Матем. ин-та АН СССР, 1981, 111, с. 195-217. 183. Шахбазян К. В., Тушкина Т. А. Метод ветвей щ границ
для задачи параллельного упорядочивания.— Зап. науч. семинаров Леиипгр. отд. Матем. ин-та АН СССР, 1973, 35, с. 146—155. 184. Ш к у р б а В. В. Интервалы очередности в задачах упорядочения.— Кибернетика, 1970, № 2, с. 77—79. 185. Ш к у р б а В. В., П о д ч а с о в а Т. П., П ш и ч у к А. Н., Тур Л. П. Задачи календарного планирования и методы их решения.— Киев: Наукова думка, 1966.— 155 с. 186. Шрейдер Ю. А. Равенство, сходство, порядок.—М.: Наука, 1971.- 254 с. 187. Abdel-Wahab Н. М., Kameda Т. Scheduling to minimize maximum cumulative cost subject to series — parallel precedence constraints.— Oper. Res., 1978, 26, № 1, p. 141—158. 188. Adolphson D. L. Single machine job sequencing with precedence constraints.— SIAM J. Comput., 1977, 6, № 1, p. 40—54.. 189. Adolphson D. L., Hu T. C. Optimal linear ordering.— SIAM J. Appl. Math., 1973, 25, № 3, p. 403—423. 190. | A d r a b i n s k i A., W о d e c k i M. An algorithm for solving the machine sequencing problem with parallel machines.— Zast. mat., 1979, 16, № 3, s. 513-541. 191. Agin N. Optimum seeking with branch and bound.— Manag. Sci., 1966, 13, № 4, p. B176 — B185. 192. A s h о u r S. Sequencing theory.— Lect., Notes Econ. and Math. Syst., 1972, 69, 133 pp. 193. Baker K. R. Introduction to sequencing and scheduling.— New York: Wiley, 1974.— 305 pp. 194. Baker K. R.. Law 1 er E. L., L-enstra J. K., Rinnooy Kan A. H. G. Preemptive scheduling of a single machine to minimize maximum cost subject to release dates and precedence constraints.— Oper. Res. 1983, 31, № 2, p. 381—386. 195. Baker K. R., Martin J. B. An experimental comparison of solution algorithms for single-machine tardiness problemA— Nav. Res. Log. Quart., 1974, 21, № 1, p. 187—199. 196. Baker K. R., Merten A. G. Scheduling with parallel processors and linear delay costs.— Nav. Res. Log. Quart., 1973, 20, № 4, p.; 793-804. 197. Baker K. R., N u 111 e H. L. W. Sequencing independent jobs with a single resource.—Nav. Res. Log. Quart., 1980, 27, № 3, p. 499-510. 198. Baker K. R.s S c h г a g e L. E. Finding an optimal sequence by dynamic programming: an extension to precedence — related tasks.— Oper. Res., 1978, 26, № 1, p. Ill—120. 199. Baker K. R., S u Z.-S. Sequencing with due — dates and early start times to minimize maximum tardiness.— Nav. Res. Log. Quart., 1974, 21, № 1, p. 171-176. 200. В a 1 a s E., Guignard M. Report of the session on branch and bo- und/implicit enumeration.— Discrete Optimization, 1979, 2, p. 185— 191, 201. Bank B. «Branch and Bound» — Algorithmen fur zwei Reihen- folgeprobleme.— Math. Operationsforsch und Statist., 1970, 1, № 3, s. 217—228. 202. В a n s a 1 S. P. Single machine scheduling to minimize weighted sum of completion times with secondary criterion — a branch and bound approach.— Eur. J. Oper. Res., 1980, 5, № 3, p. 177—181. 203. Barnes J. W., Brennan J. J. An improved algorithm for scheduling jobs on identical machines.— AIIE Trans., 1977, 9, № 1, p. 25—31. 366
204. Bellman R., Mathematical aspects of scheduling theory.—SIAM J., 1956, 4, № 3, p. 168-205. 205. Bianco L., Nicoletti B., Ricciardelli S. An algo- rithm for optimal sequencing of aircraft in the near terminal area.— Lect. Notes Gontr. Inform. Sci, 1978, 7, p. 443—453. 206. Bianco L.^ Ricciardelli S. On scheduling with ready times to minimize total weighted completion time.— In: Gontr. Sci. and Technol. Progr. Soc. Proc. 8th Trienni. World Gongr. Int. Fed. Autom. Gontr., Kyoto, 24—28 Aug., 1981, v.. 1.— Oxford e. a., 1982, p. 501-505. 207. Blau R. A. А-job, one machine sequencing problems under uncertainty.— Manag. Sci., 1973, 20, № 1, p. 101—109. 208. Blazewicz J. Deadline scheduling of tasks — a survey.»— Found. Contr. Eng. (PRL), 1976, 1, № 4, p. 203—216. 209. Blazewicz J. Complexity of computer scheduling algorithms under resource constraints.—Found. Gontr. Eng. (P R L), 1978, 3, № 2, p. 51-57. 210. Blazewicz h Deadline scheduling of tasks with ready times and resource constraints.— Inform. Process. Lett., 1979, 8, № 2, p. 60-63. 211. Blazewicz J., Lnnstra J. K., Rinnooy Kan A. H. G. Scheduling subject to resource constraints: classification and complexity.— Discrete Appl. Math., 1983, 5, № 1, p. 11—24. 212. Blazewicz J., Weglarz J. Deterministyczne problemy sze- regowania zadan na procesorach systemow komputerowych z uwzglednieniem dodatkowych zasobow.— Arch, automat, i tele- mech., 1978, 23, № 4, s. 485—509. 213. Bozoki G., Richard J.-Pj A branch-and-bound algorithm for the continuous-process job-shop scheduling problem.—AI IE Trans., 1970, 2, № 3, p. 246-252. 214. В r a 11 e у P., F 1 о г i a n M., R о b i 11 a г d P. Scheduling with earliest, start and due date constraints.— Nav. Res. Log. Quart. 1971, 18, № 3, p. 511—519. 215. Bratley P., Florian M., Robillard P. Scheduling with earliest and due date contraints on multiple machines.— Nav. Res. Log. Quart., 1975, 22, № 1, p. 165—173. 216. В r u с к e r P., G a г e у M. R., Johnson D. S^ Scheduling equal-length tasks under treelike precedence constraints to minimize maximum lateness.— Math. Oper. Res., 1977, 2, № 3, p. 275— 284. 217. В r u с к e г P., L e n s t г a J. K, Rinnooy Kan A. H. G< Complexity of machine scheduling problems.— Math. Cent. Afd. Math. Beslisk. Amsterdam, 1975, BW 43, 29 pp. 218. Bruno J. Mean weighted flow-time criterion.— In: Computer and Job-Sliop Scheduling Theory/Coffman E. G., Jr. (ed.).— New York: Wiley, 1976, p. 101—137. 219. Bruno J., Coffman E. G., Jr., Sethi R. Algorithms for minimizing mean flow time.— In: Inform. Process.' 74.— Amsterdam — London, 1974, p. 504—510. 220. Bruno J., Coffman E. G., Jr., Sethi R. Scheduling independent tasks to reduce mean finishing time.— Commun. ACM, 1974, 17, № 7, p. 382-387. 221. Bruno J., H о f r i M^ On scheduling chains of jobs on one processor with limited preemption.— SIAM J. Comput., 1975, 4, № 4, p. 478-490. 222. Bruno J., Sethi R. Task sequencing in a batch environment 367
with setup times.— In: Modelling and Performance Eval. Comput. Syst.— Amsterdam e. a., 1977, p.( 81—88. 223. В u 1 f i n R. L., Parker R. G. On a two facility scheduling problem with sequence dependent processing time.—Л1 IE Trans., 1976, 8, № 2, p. 202-209. 224. Burns R. N. Scheduling to minimize the weighted sum of completion times with secondary criteria.—Nav* Res. Log. Quart., 1970, 23, № 1, p. 125-129. 225. Burns R. N., Steiner G. Single machine scheduling with series-parallel precedence constraints.—Oper. Res., 1981, 29, № 6, p. 1195—1207. 226. В u z а с о 11 J. A., D u 11 a S. K. Sequencing many jobs on a multipurpose facility4—Nav. Res. Log. Quart., 1971, 18, № 1, p. 75—82. 227. Garlier J. The one-machine sequencing problem.— Eur. J. Oper. Res., 1982, 11, № 1, p. 42—47. 228. Chandra A. K., Wong G. K. Worst-case analysis of a placement algorithm related to storage allocation*,— SIAM J. Comput., 1975, 4, № 3, p. 249—263. _ 229. Chandra R. On n/i/F dynamic deterministic problems.— Nav. Res. Log. Quart., 1979, 26, № 3, p. 537—544. 230. Charlton J. M., Death С. C. A method of solution for general machine-scheduling problems.—Oper. Res., 1970, 18, № 4, p. 689—707. 231. Chen N. F., Liu C. L. On a class of scheduling algorithms for multiprocessors computing systems.— Lect. Notes Comput. Sci., 1975, 24, p. 1-16.| 232. Cho Y., S ahni S. Bounds for list schedules on uniform processors.— SIAM J. Comput., 1980, 9, № 1, p. 91—103. 233. Coffman E. G., Jr., G а г e у M. R., Johnson D. S. An application of bin-packing to multiprocessor scheduling.— SIAM J. Comput., 1978, 7, N° 1, p. 1—17. 234. Coffman E. G., Jr., Graham R.i L. Optimal scheduling for two-processor systems.— Acta Inf., 1972, 1, № 3, p. 200—213. 235. Coffman E. G., Jr., Labetoulle J. Scheduling to minimize mean number in system.— In: Proc. 9-th Haw. Int. Conf. Syst. Sci. Honolulu, Haw., 1976.— Honolulu, Haw., 1976, p. 119—121. 236. Coffman E. G., Jr., Sethi R. A generalized bound on LPT sequencing.— In: Int. Symp. Compute Perform. Model., Meas. and Eval., Cambridge, Mass., 1976.— New York, N. Y., 1976, p. 306—310. 237. Coffman E. G., Jr., Sethi R. A generalized bound on LPT sequencing.— Rev* franc, automat, inform, recli. oper., 1976, 10, N° 5, p. 17-25. 238. Coffman E. G., Jr., Sethi R. Algorithms minimizing mean flow time: schedule-length propertes.— Acta Inf., 1976, 6, n. 1—14. 239. Computer and Job-Shop Scheduling Theory/Coffman E. G., Jr. (ed.).—New York: Wiley, 1976.-299 pp. 240. D a v i d a G. I., Linton D. J. A new algorithm for the scheduling of tree structured tasks.— In: 1976 Conf. Inform. Sci. and Syst.)— Baltimore, Md., 1976, p. 543—548. 241. Davis E., J a f f e J. M. Algorithms for scheduling tasks on unrelated processors.— J. Assoc. Comput. Mach., 1981, 28, № 4, p. 721— 736. 242. Davis K. R., Walters J. E. Addressing the N/l scheduling problem — a heuristic approach.,— Comput. and Oper. Res., 1977, 4, № 2, p. 89-100. 368
243. Day J., Hottenstein M. P. Review of scheduling research.— Nav. Res. Log. Quart., 1970, 17, № 1, p. 11—39. 244. D e P., Morton T. E. Scheduling to minimize maximum late-» ness on unequal parallel processors.— Comput. and Oper. Res., 1982, 9, № 3, p. 221—232. 245. Dessouky M. I., Deogun J. S. Sequencing jobs with unequal ready times to minimize mean flow time.— SIAM J. СотриЦ 1981, 10, № 1, p. 192—202. 246. Dessouky M. I., Larson R. E. Symmetry and optimality properties of the single machine problem.—AIIE Trans., 1978, 10, № 2, p. 170—175. 247. Dessouky M. I., Margenthaler C.,R. The one-machine sequencing problem with early starts and due dates.— AIIE Trans., 1972, 4, № 3, p. 214—222. 248. Duff in R. J. Topology of series-parallel networks.—J. Math, Anal, and Appl., 1965, 10, № 2, p. 303—318., 249. Eastman W. L., Even S., Isaacs I. M. Bounds for the optimal scheduling of n jobs on m processors.— Manag. Sci., 1964, 11, № 2, p. 268—279. 250. Eilon S., Ghowdhury I. G. Minimizing waiting time variance in the single machine problem.— Manag. Sci., 1977, 23, № 6» p. 567-575. 251. E 1 m a g h r a b у S. E. The sequencing of related jobs.— Nav. Res. Log. Quart., 1968, 15, № 1, рц 23—32. 252. Elmaghraby S. E. The one machine sequencing problem with delay costs.—J. Industr. Eng., 1968, 19, № 2, p. 105—108. 253. Elmaghraby S. E., Park S. H. Scheduling jobs on a number of identical machines*— AIIE Trans., 1974, 6, № 1, p. 1—13. 254. Emmons H. One-machine sequencing to minimize certain functions of job tardiness.—Oper. Res., 1969, 17, № 4, p. 701—715. 255. Emmons H. One machine sequencing to minimize mean flow time with minimum number tardy.— Nav. Res. Log. Quart., 1975, 22, № 3, p. 585-592. 256., Emmons H. A note on a scheduling problem with dual criteria.— Nav. Res. Log. Quart., 1975, 22, № 3, p. 615—616. 257. Erschler J., Fontan G., Merce C., Roubellat F. Applying new dominance concepts to job scheduling optimization.— Eur. J. Oper. Res* 1982, 11, № 1, p. 60—66. 258. Erchler J., Roubellat F., Vernhes J. P. Characterizing the set of feasible sequences for n jobs to be carried out on a single machine.—Eur. J. Oper. Res., 1980, 4, № 3, p. 189—194. 259. Fernandez E., B., Lang T. Scheduling as graph transformation.— IBM J. Res. and Develop., 1976, 20, № 6, p. 551—559. 260. Fischer M. J., Meyer A. R. Boolean matrix multiplication and transitive closure.— In: Conf. Rec. 12-th Annu. IEEE Symp* Switch, and Automata Theory, East Lansing, Mich., 1971.— New York, N. Y., 1971, p. 129—131. 261. Fisher M. L. A dual algorithm for the one-machine scheduling problem.—Math. Program* 1976, 11, № 3, p. 229—251. 262. Fisher M. L., J a i к и m a г R. An algorithm for the space-shuttle scheduling problem.—Oper. Res., 1978, 26, № 1, p. 166—182. 263. F и j i i M. Erratum: Optimal sequencing of two equivalent processors.— SIAM J. AppL Math* 1971, 20, № 1, p. 141. 264. Fujii M., Kasami T., Ninomija K. Optimal sequencing of two equivalent processors.— SIAM J. Appl. Math., 1969, 17, № 4, p. 784—789. 24 в. G, Танаев и ap< 369
265. Fung 'К. T. On a restrictive scheduling scheme.— INFOR. Can. J. Oper. Res. and Inform. Process., 1978, 16, № 3, p. 288—293. 266. G а г e у M. R. Optimal task sequencing with precedence constraints.— Discrete Math., 1973, 4, № 1, p. 37—56л 267. Carey M. R., Graham R. L. Bounds on scheduling with limited resources.— Oper. Syst. Rev., 1973, 7, № 4, p. 104—111. 268. G a г e у M. R.^, Graham R. L. Bounds for multiprocessor scheduling with resourse constraints.— SIAM J. Comput., 1975, 4, № 2, p. 187-200. 269. G a г e у M. R., Graham R. L., Johnson D. S., Y а о A. C.-C. Resource constrained scheduling as generalized bin packing.— J. Combin. Theory (A), 1976, 21, N2 3, p. 257—298. 270. G a г e у M. R* Graham R. L., Gilman J. D. Worst-case analysis of memory allocation algorithms.— In: 4th Annu. ACM Symp. Theory Comput., Denver, Color., 1972. SI., s. a., p. 143—150. 271. Garey M. R., Johnson D.* S. Complexity results for multiprocessor scheduling under resource constraints.— SIAM J. Corn- put., 1975, 4, № 4, p. 397—411. 272. Garey M. R., Johnson D. S. Scheduling tasks with nonuni- form deadlines on two processors.— J. Assoc. Comput. Mach., 1976, 23, № 3, p. 461-467. 273. Garey M. R., Johnson D. S. Approximation algorithms for combinatorial problems: an annotated bibliography.— In: Algorithms and Complexity. New Dir. and Recent Results. Proc. Symp. Carnegie-Mellon Univ., 1976.— New York e. a., 1976, p. 41—52. 274. Garey M. R., Johnson D. S. Two-processor scheduling with start — times and deadlines.— SIAM J. Comput., 1977, 6, № 3, p. 416—426. 275. Garey M. R., Johnson D. S. «Strong» AP-completcness results: motivation, examples, and implications.— J. Assoc. Comput. Mach., 1978, 25, № 3, p. 499-508. 276. Garey M. R., Johnson D. S., Simons В. В., T a г j a n R. E. Scheduling unite-time tasks with arbitrary release times and deadlines.— SIAM J. Comput., 1981, 10, № 2, p. 256—269. 277. Garey M. R., Johnson D. S., S t о с к m e у e r L. Some simplified graph problems.— Theor. Comput. Sci., 1976, 1, № 3, p. 237— 267. 278. Gens Gj V., L e v n e г E. V. Computational complexity of approximation algorithms for combinatorial problems.— In: Proc. 8-th Symp. on Math. Foundation of Comput. Sci., Olomouc, Czechoslovakia, 1979.— Berlin e. a., 1979, p. 292—300. 279. Glazebrook K. D. On single-machine sequencing with order constraints.— Nav. Res. Log. Quart., 1980, 27, № 1, p. 123—130. 280. Glazebrook K. D., G i 11 i n s J. C. On single-machine scheduling with precedence relations and linear or discounted costs.— Oper. Res., 1981, 29, № 1, p. 161—173. 281. Gonzalez M. J., Jr. Deterministic processor scheduling.— Comput. Surv., 1977, 9, № 3, p. 173—204. 282. Gonzalez T. F. Optimal mean finish time preemptive schedules.—Technical Report 220, Computer Science Department, Pennsylvania State Universyty, 1977. 283. Gonzalez T. F., Ibarra О. H., Sahni S. Bounds for LPT schedules on uniform processors.— SIAM J. Comput., 1977, 6, № 1, p. 155-166. 284. Gonzalez T. F., Johnson D. B. A new algorithm for preemp¬ 370
tive scheduling of trees.— J. Assoc. Comput. Mach., 1980, 27, N° 2, p. 287—312. 285. Gonzalez T. F., S a h n i S. Open shop scheduling to minimize finish time.— J. Assoc. Comput. Mach., 1976, 23, № 4, p. 665—679. 286. Gonzalez T. F., S a h n i S.', Preemptive scheduling of uniform processor systems.— J. Assoc. Comput. Mach., 1978, 25, № 1, p. 92-101. 287. Grabowski J. Formulation and solution of sequencing problem with parallel machines.— Lect. Notes Contr. Inform. Sci* 1978, 7, p. 400—410. 288. Graham R. L. Bounds for certain multiprocessing anomalies.— Bell Syst. Teclin. J., 1966, 45, № 9, p. 1563—1581. 289. Graham R. L. Bounds on multiprocessing timing anomalies.— SIAM J. Appl. Math., 1969, 17, № 2, p. 263—269. 290. Graham R. L., Lawler E. L., L e n s t г a J. K., R i n n о о у Kan A. H. G. Optimization and approximation in deterministic sequencing and scheduling: a survey.— Ann. Discrete Math., 1979, 5, p. 287—326. 291. Ileck H., Roberts S. A note on the extension of a result on scheduling with secondary criteria.—Nav. Res. Log. Quart., 1972, 19, N° 2, p. 403—405. 292. H e m p e 1 L. Einege Bemerkungen zum Branch-and-Bound Prin- zip und seiner Anwendung zur Losung von Reihenfolgeproblemen.— In: 21. InL Wiss. Kolloq. Techn. Hochsh.— Ilmenau. 1976, Ht. 3. SI, s. a., s. 131—134. 293. Horn W. A. Single-machine job sequencing with treelike precedence ordering and linear delay penalties.— SIAM J. Appl. Math., 1972, 23, № 2, p. 189—202. 294. Horn W. A. Minimizing average flow time with parallel machines.—Opcr. Res., 1973, 21, № 3, p. 846—847. 295. Horn W. A. Some simple scheduling algorithms.— Nav. Res. Log. Quart., 1974, 21, N° 1, p. 177—185i 296. Horowitz E., S a h n i S. Exact and approximate algorithms for scheduling nonidentical processors.— J. Assoc. Comput. Mach., 1976, 23, N° 2, p. 317—327. 297. Horvath E. C., Lam S., Sethi R. A level algorithm for preemptive scheduling.— J. Assoc. Comput. Mach.t 1977, 24, N° 1, p. 32-43. 298. Hsu N. C. Elementary proof of Hu’s theorem on isotone mappings.— Proc. Amer. Math. Soc., 1966, 17, № 1, p. 111—114. 299. I b а г a к i T. On the computational efficiency of branch-and-bound algorithms.— J. Oper. Res. Soc. Jap., 1977, 20, № 1, p. 16—35. 300. I b a г a к i T. Branch-and-bound procedure and state-space representation of combinatorial optimization problems.— Inform, and Contr., 1978, 36, N° 1, p. 1-27. 301. Ibarra О. H., Kim С. E. Fast approximation algorithms for the knapsack and sum of subset problems.— J. Assoc. Comput. Mach, 1975, 22, N° 4, p. 463—468. 302. Ibarra О. H, Kim С. E. Heuristic algorithms for scheduling independent tasks on nonidentical processors.— J. Assoc. Comput Mach, 1977, 24, № 2, p. 280-289. 303. Integer programming and related areas. A classified bibliography.— Lect. Notes Econ. and Math. Syst, 1976, 128; 1978, 160; 1982, 197. 304. Jackson J. R. Scheduling a production line to minimize maximum tardiness.— Res. Report 43, Manag. Sci. Res. Project, UCLA, Jan. 1955. 24* 371
305. Jaeschke G. Vicinal sequencing problems.— Oper. Res., 1972, 20, № 5, p. 984-992. 306. J a f f e J. M. An analysis of preemptive multiprocessor job scheduling.— Math. Oper. Res., 1980, 5, № 3, p. 415—421. 307. Johnson D. Sj Fast algorithms for bin packing.— J. Comput. and Syst. Sci., 1974, 8, № 3, p. 272—314. 308. Johnson D. S., Demers A., U 11 m a n J. D., G a г e у M. R., Graham L. Worst-case performance bounds for simple onedimensional packing algorithms.— SIAM J. Comput., 1974, 3, № 4, p. 299-325. 309. Johnson S. M. Discussion: sequencing re-jobs on two machines with arbitrary time lags.— Manag. Sci., 1959, 5, № 3, p. 299—303. 310. К a f u r a D. G., S h e n V. Y. Task scheduling on a multiprocessor system with independent memories.— SIAM J. Comput., 1977, 6, № 1, p. 167-187. 311. Kan e t J. J. Minimizing the average deviation of job completion times about a common due date.—Nav. Res. Log. Quart., 1981, 28, № 4, p. 643-651. 312. Kao E. P. C. Multiple objective decision theoretic approach to one-machine scheduling problems.— Comput. and Oper. Res., 1980, 7, № 3, p. 251-260. — 313. Kaufman M. T. An almost-optimal algorithm for the assembly line scheduling problem.— IEEE Trans. Comput., 1974, 23, № 11, p. 1169—1174. 314. King J.\ R., S p a c h i s A. S. Scheduling: bibliography and review.— Int. J. Physical Distribution and Materials Manag., 1980, 10, № 3, p. 100-132. 315. К i s e H. Scheduling and branch-and-bound method.— Syst. and Contr., 1973, 17, № 5, p. 275-281. 316. Kise H., Ibaraki T., Mine H. A solvable case of the one- machine scheduling problem with ready and due-times.— Oper. Res., 1978, 26, № i, p. 121-126*. 317. Kise H., Ibaraki T., Mine H. Performance analysis of six approximation algorithms for the one — machine maximum lateness scheduling problem with ready times.— J. Oper. Res. Soc. Jap., 1979, 22, № 3, p. 205—224. 318. Kohler W. H. A preliminary evalution of the critical path method for scheduling tasks on multiprocessor systems.t— IEEE Trans. Comput., 1975, 24, № 12, p. 1235-1238. 319. Kohler W. H., Steiglitz K. Characterization and theoretical comparison of branch-and-bound algorithms for permutation problems.—J. Assoc. Comput. Mach., 1974, 21, № 1, p. 140—156. 320. Kolnikova Z. Dve metody riesenia problemov usporiadania s danymi podmienkami pre predchadzanie.— Ekon.-mat. obz., 1970, 6, № 1, s. 56-72.| 321. Krause K. L., S h e n V. Y., S c h w e t m a n H. D. Analysis of several task — scheduling algorithms for a model of multiprogramming computer systems.— J. Assoc. Comput. Mach., 1975, 22, № 4, p. 522—550. 322. Kurisu T. Two-machine scheduling under required precedence among jobs.—J. Oper. Res. Soc. Jap., 1976, 19, № 1, p. 1—13. 323. Kurisu T. Two-machine scheduling under arbitrary precedence contraints.— J. Oper. Res. Soc. Jap., 1977, 20, № 2, p. 113—131. 324 Labetoulle J., Lawler E. L., Lenstra J. K., Rinnooy Kan A. H. G. Preemptive scheduling of uniform machines subject 372
to release dates.— Math. Cent. Afd. Math. Beslisk. Amsterdam, 19791, BW 99, 19 p. 325. Lageweg B. J., Lawler E. L., Lenstra J. K., Rinnooy Kan A. H. G.\ Computer aided complexity classification of deterministic scheduling problems.— Math. Cent. Afd. Math. Beslisk. Amsterdam, 1981, BW 138, 20 p. 326. Lageweg B. J., Lenstra J. K), Rinnooy Kan A. H. G. Minimizing maximum lateness on one machine: computational experience and some applications.— Statist, neer., 1976, 30, № 1, p. 25-41. 327. L a к s h m i n a г a у a n S., Lakshmanan R., Papineau R. L., Rochette R. Optimal single-machine scheduling with earliness and tardiness penalties.— Oper. Res., 1978, 26, № 6, p. 1079—1082. 328. Lam S., Sethi R. Worst case analysis of two scheduling algorithms.— SIAM J. Comput., 1977, 6, № 3, p1 518—536. 329. Lang T., Fernandez E. B. Scheduling of unit-length independent tasks with execution constraints.— Inf. Process. Lett., 1976, 4, № 4, p. 95—98. 330. Larson R. E., Dessouky M. I. Heuristic procedures for the single machine problem to minimize maximum lateness.— AIIE Trans., 1978, 10, № 2, p. 176—183. 331. Lawler E. L. On scheduling problems with deferral costs.— Ma- nag. Sci., 1964, 11, № 2, p. 280—288. 333. Lawler E. L. Optimal sequencing of a single machine subject to precedence constraints.— Manag. Sci., 1973, 19, № 5, p. 544-546. 333. Lawler E. L. Optimal sequencing of jobs subject to series parallel precedence constraints.— Math. Cent. Afd. Math* Beslisk. Amsterdam, 1975, BW 54, 15 p. 334. Lawler E. L. Sequencing to minimize the weighted number of tardy jobs.— Rev. franc, automat., inform., rech.' oper., 1976, 10, № 5, p. 27-33. 335. Lawler E. L. A «pseudopolynomial» algorithm for sequencing jobs to minimize total tardiness.—Ann. Discrete Math., 1977, 1, p, 331—342. 336. Lawler E. L. Sequencing jobs to minimize total weighted completion time subject to precedence constraints.— Ann. Discrete Math., 1978, 2, p. 75-90. 337. Lawler E. L. Preemptive scheduling of uniform parallel machines to minimize the number of late jobs.— Math. Cent., Afd. Beslisk. Amsterdam, 1979, BW 105, 20 pp. 338. Lawler E. L. Preemptive scheduling of precedence-constrained jobs on parallel machines.— In: Deterministic and Stochastic Scheduling. Proc. NATO Adv. Study and Res. Inst. Theor. Approaches Scheduling Probl., Durham, July 6—17, 1981.—Dordrecht e. a., 1982, p. 101-123. 339. Lawler E. L* L a b e t о u 11 e J. On preemptive scheduling of unrelated parallel processors by linear programming.— J. Assoc. Comput. Mach., 1978, 25, № 4, p. 612—619. 340. Lawler E. L., Lenstra J. K. Machine scheduling with precedence constraints.—Math. Cent. Afd. Math. Beslisk. Amsterdam, 1981, BW 148, 18 pp. 341. Lawler E. L„ Lenstra J. K., Rinnooy Kan A. H. G. Recent developments in deterministic sequencing and scheduling: a survey.— In: Deterministic and Stochastic Scheduling. Proc. NATO 373
Adv. Study and Res. Inst. Theor. Approaches Scheduling Probl., Durham, July 6—17, 1981.— Dordrecht e. a., 1982, p. 35—73. 342. Lawler E. L., Moore J. M. A functional equation and its application to resource allocation and sequencing problems.— Manag. Sci., 1969, 16, № 1, p. 77-84. 343. Lawler E. L., Sivazlian B. D. Minimization of time-varying costs in single-machine scheduling.— Oper. Res., 1978, 26, № 4, p. 563-569. 344. Lawler E. L., Wood D. E. Branch-and-bound methods: a survey.—Oper. Res.», 1966, 14, № 4, p. 699—719. 345. Lenstra J. K. Sequencing by Enumerative Methods.— Math. Centre Tracts 69, Amsterdam, 1977.— 202 p. 346. Lenstra J. K., R i n n о о у Kan A. H. G. Complexity of scheduling under precedence constraints.— Oper. Res., 1978, 26, № 1, p. 22-35. 347. Lenstra J. K., R i n n о о у Kan А. Ш G. An introduction to multiprocessor scheduling.— Math. Cent. Afd. Math. Beslisk. Amsterdam, 1980, BW 121, 18 p. 348. Lenstra J. K;, Rinnooy Kan A. H. G. Complexity results for scheduling chains on a single machine.— Eur. J. Oper. Res., 1980, 4, № 4, p. 270-275. 349. Lenstra J. K., Rinnooy Kan A. Hj G., Brucker P. Complexity of machine scheduling problems.— Ann. Discrete Math., 1977, 1, p. 343—362. 350. Leung J. Y.-T. Bounds on list scheduling of UET tasks with restricted resource constraints.— Inf. Process. Lett., 1979, 9, № 4, p. 167-170. 351. Liu J. W. S., Liu C. L. Bounds on scheduling algorithms for heterogeneous computing systems.— In: Proc. 1974 IFIP Congress.— Amsterdam, 1974, p. 349—353. 352., Liu J. W. S., Liu C. L. Performance analysis of heterogeneous multiprocessor computing systems.— In: Comput. Archit. and Networks.— Amsterdam — Oxford, 1974, p. 331—343. 353. Martel C. Preemptive scheduling with release times, deadlines, and due times.—J. Assoc. Comput. Mach., 1982, 29, № 3, p., 812— 829. 354. Maxwell W. L. On sequencing n jobs on one machine to minimize the number of late jobs.— Manag. Sci., 1970, 16, № 5, p. 295-297. 355. McMahon G., Florian M. On scheduling with ready times and due dates to minimize maximum lateness.—Oper. Res., 1975, 23, № 3, p. 475-482. 356. McNaughton R. Scheduling with deadlines and loss functions.— Manag. Sci, 1959, 6, № 1, p. 1—12. 357. Mehta S., Chandrasekaran R., Emmons H. Order — preserving allocation of jobs to two machines.— Nav. Res. Log. Quart., 1974, 21, № 2, p. 361—364. 358. Merten A., G., Muller M. E. Variance minimization in single machine sequencing problems.— Manag. Sci., 1972, 18, № 9, p. 518-528. 359. Mitten L. G. Sequencing n jobs on two machines with arbitrary time lags.— Manag. Sci., 1959, 5, № 3, p. 293—298. 360. Mitten L. G. Branch-and-bound methods: general formulation and properties.— Oper. Res., 1970, 18, № 1, p. 24—34. 361. Miyazaki S^ One machine scheduling problem with dual criteria.—J, Oper. Res. Soc. Jap., 1981, 24, № 1, p. 37—50. 374
362. Monma C. L. The two-machine maximum flow time problem with series-parallel precedence constraints: an algorithm and extensions.— Oper* Res., 1979, 27, № 4, p. 792—798. 363. Monma G. L. Sequencing to minimize the maximum job cost.— Oper. Res., 1980, 28, № 4, p. 942—951. 364. Monma G. L. Sequencing with general precedence constraints.— Discrete Appl.i Math., 1981, № 3, p. 137—150. 365. Monma C. L., Sidney J. B. Sequencing with series-parallel precedence constraints.— Math. Oper. Res., 1979, 4, № 3, p. 215— 224. 366. Moore J. M, An n job, one machine sequencing algorithm for minimizing the number of late jobs.— Manag. Sci., 1968, 15, № 1, p. 102—109. 367. Moore J. M. An algorithm for a single machine scheduling problem with sequence dependent setup times and scheduling windows.— AIIE Trans., 1975, 7, N° 1, p. 35—41< 368. Miiller-Merbach H. Optimale Reihenfolgen. (Окоп, und Unternehmensforsch., 15.) — Berlin — Heidelberg — New York: Springer, 1970, v.j 10.— 225 s. 369. Muntz R. R, Coffman E. G., Jr. Optimal preemptive scheduling on two-processor systems.— IEEE Trans. Comput., 1969, 18, № 11, p. 1014-1020. 370. Muntz R. R* Coffman E. G., Jr. Preemptive scheduling of real — time tasks on multiprocessor systems.— J. Assoc. Comput. Mach., 1970, 17, № 2, p. 324-338. 371. Nabeshima I. Sequencing on two machines with start lag and stop lag.—J. Oper^ Res. Soc. Jap., 1963, 5, № 3, p. 97—101. 372. Nakamura N., Yoshida T., Hitomi K. Group production scheduling for minimum total tardiness. Part 1.—AIIE Trans., 1978, 10, N° 2, p. 157-162. 373. Nemeti L. On the scheduling problem in the case of several machines of the same type*—Mathematica (RSR), 1971, 13, N° 2, p. 251—201. 374. Panwalkar S. S., Iskander W. A survey of scheduling rules.— Oper. Res., 1977, 25, N° 1, p. 45—61. 375. P a p a d i m i t r i о u G. H. The euclidian traveling salesman prob¬ lem is AP-complete.—Theor. Comput. Sci., 1977, 4, N° 3, p. 237— 244. ' 376. Petersen С. C. Solving sequencing problems through reordering operations.—AIIE Trans., 1973, 5, N° 1, p.; 68—73. 377. Potrzebowski H. Planowanie kalendarzowe (przeglad zagad- nien).—Pr. Inst, cybern. stosowan. PAN, 1973, № 13, 82 s. 378. Potts C. N. An algorithm for the single machine sequencing problem with precedence constraints.— In: Comb. Optimiz. 2 Proc. C079 Conf., Norwich, 1979.—Amsterdam e. a., 1980, p. 78—87. 379. Potts C. N. Analysis of a heuristic for one machine sequencing with release dates and delivery times.—Oper. Res., 1980, 28, № 6, p. 1436—1441. 380. Rajaraman M. K. A parallel sequencing algorithm for minimizing total cost.—Nav. Res. Log. Quart* 1977, 24, N° 3, p. 473— 481. 381. Rau J. G. Minimizing a function of permutations of n integers.— Oper. Res., 1971, 19, № 1, p. 237—240. 382* Rinnooy Kan A. H. G. The machine scheduling problem.— Math. Cent. Afd. Math. Beslisk. Amsterdam. 1973, BW 27, 153 p. 375
383. Rinnooy Kan A. H. G., Lageweg Ё. J., Lenstra J. K. Minimizing total costs in one-machine scheduling.— In: Combinatorial Programm.: Meth. and Appl.— Dordrecht-Boston, 1975, p. 343— 350. 384. Rinnooy Kan A. H. G. Machine Scheduling Problems: Classification, Complexity and Computations.— Hijhoff; The Hague, 1976. 385. Root J. G. Scheduling with deadlines and loss functions on к parallel machines.—Manag. Sci., 1965, 11, № 3, p. 460—475. 386. R о t h к о p f M. H. Scheduling independent tasks on parallel processors.— Manag. Sci.. 1966, 12, № 5, p.i 437—447. 387. Rothkopf M. H. Scheduling with random service times.— Manag. Sci., 1966, 12, № 9, p. 707—713. 388. Rothkopf M. H. A note on allocating jobs to two machines.— Nav. Res. Log. Quart., 1975, 22, № 4, p. 829—830. 389. Rowicki A. On optimal preemptive scheduling of independent tasks for multiprocessor systems.—Bull. Acad. pol. sci. Ser. sci. math., astron. et phys., 1978, 26, № 7, p.i 643—650. 390. Rowicki A. On the optimal preemptive scheduling for multiprocessor system.— Bull. Acad. pol. sci. Ser. sci. math., astron. et phys., 1978, 26, № 7, p. 651—660. 391. Roy B. Procedure d’exploration par separation et evaluation.!- Rev. franc, inform, et rech. oper., 1969, 3, № V-l, p. 61—90. 392. Sahni S. Computationally related problems.—SIAM J. Comput., 1974, 3, № 4, p. 262-279. 393. Sahni S. Algorithms for scheduling independent tasks.— A. Assoc. Comput. Mach., 1976, 23, № 1, p. 116—127. 394. Sahni S. General techniques for combinatorial approximation.— Oper. Res<, 1977, 25, № 6, p. 920—936. 395. Sahni S. Preemptive scheduling with due — dates.— Oper. Res., 1979, 27, № 5, p. 925-934. 396. Sahni S., Clio Y. Nearly on line scheduling of a uniform processor system with release times.— SIAM J. Comput.-, 1979, 8, № 2, p. 275—285. 397. Sahni S., Clio Y. Scheduling independent tasks with due times on a uniform processor system.— J. Assoc. Comput. Mach., 1980, 27, № 3, p. 550-563., 398. S c h i 1 d A., F г e d m a n I. J. On scheduling tasks with associated linear loss functions.— Manag. Sci., 1961, 7, № 3, p. 280—285. 399. S c h i 1 d A., F r e d m a n I. J, Scheduling tasks with deadlines and non-linear functions.— Manag. Sci., 1962, 8, № 1, p. 73—81. 400. Schindler S. Scheduling general monitor systems.— In: Proc. 9-th Haw. Int- Conf. Syst. Sci. Honolulu, Haw., 1976.—Honolulu, Haw., 1976,— p. 122—124. 401. Schrage L. Minimizing the time-in-system variance for a job- set.—Manag. Sci., 1975, 21, № 5, p. 540—543. 402. Schrage L., Baker L R. Dynamic programming solution of sequencing problems with precedence constraints.— Oper. Res., 1978, 26, № 3, p. 444—449. 403. Sethi R. Scheduling graphs on two processors.— SIAM J. Corn- put., 1976, 5, № 1, p. 73—82^ 404. Sethi R. Algorithms for minimal — length schedules.—In: Computer and Job-Shop Scheduling Theory /Coffman E. G., Jr. (ed.).— New York: Wiley, 1976, p. 51—99. 405* Sethi R. On the complexity of mean flow time scheduling.— Math. Oper. Res., 1977, 2, N° 4, p. 320—330. 376
406. Shwimcr J. On the А-job, one-machine, sequence-independent scheduling problem with tardiness penalties. A branch-bound solution.— Manag. Sci., 1972, 18, № 6, p. 301—313. 407. Sidney J. B. An extension of Moore’s due date algorithm.— Lect. Notes Econ. and Math. Syst., 1973, 86, p. 393—398. 408. Sidney J. B. Decomposition algorithms for single-machine sequencing with precedence relations and deferral costs.— Oper. Res., 1975, 23, № 2, p. 283—298. 409. Sidney L B. Optimal-singlemachine scheduling with earliness and tardiness penalties.— Oper. Res., 1977, 25, № 1, p. 62—69. 410. Sidney J. B. The two-machine maximum flow time problem with series parallel precedence relations.—Oper. Res., 1979, 27, № 4, p. 782-791. 411. Sielken R. L., Jr. Sequencing with setup costs by zero-one mixed integer linear programming.—AIIE Trans., 1976, 8, № 3, p. 369-371. 412. Simons B. A fast algorithm for single processor scheduling.— In: 19-th Annu. Symp. Found. Comput. Sci., Ann Arbor, Mich., 1978.— New York, N. Y., 1978, p. 246—252. 413. Simons B. A fast algorithm for multiprocessor scheduling.— In: 21-st Annu. Symp. Found. Comput. Sci. 1980.—New York, N. Y., 1980, p. 50-53. 414. 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., Durham, July 6—17, 1981.— Dordrecht e. a., 1982, p. 75—88. 415. Slowinski R. Scheduling preemptable tasks on unrelated processors with additional resources to minimize schedule lengtn.^- Lect. Notes Comput. Sci., 1978, 65, p. 536—547. 416. Slowinski R. L’ordonnancement des taches preemptives sur les processeurs independants on presence de ressources supplemental.- RAIRO Inf., 1981, 15, № 2, p. 155—166. 417. Smith W. E. Various optimizers for single stage production.— Nav., Res. Log. Quart., 1956, 3, № 1-2, p. 59—66. 418. Srinivasan V. A hybrid algorithm for the one machine sequencing problem to minimize total tardiness.— Nav. Res. Log. Quart., 1971, 18, № 3, p. 317—327. 419. S u Z.-S., S e v c i к К. C. A combinatorial approach to dynamic scheduling problems.!— Oper. Res., 1978, 26, № 5, p. 836—844. 420. Szwarc W. О pewnum zagadnieniu kolejnosci. Cz I.— Prz. sta- tyst., 1962, 9, № 4, s. 367-382. 421. Tang D. T., Wong С. K. A modified branch-and-bound strategy.— Inf. Process. Lett., 1973, 2, № 3, p. 65—69*. 422. Til quin C. On scheduling with earliest and due dates on a group of identical machines.—Nav. Res. Log. Quart., 1975, 22, № 4, p. 777—785. 423. Townsend W. A branch-and-bound method for sequencing problems with linear and exponential penalty functions.—Oper. Res. Quart,, 1977, 28, № 1/ii, p. 191—200. 424. Tremolieres R. Scheduling jobs of equal durations with tardiness costs and resource limitations.—J. Oper. Res. Soc., 1978, 29, № 3, p. 229!—233. 425. U 11 m a n J. D. Polynomial complete scheduling problems.— Oper. Syst. Rev,, 1973, 7, № 4, p. 96-101. 426. U 11 m a n J. D. NP-complete scheduling problems.— J. Comput. and Syst. Sci., 1975, 10, № 3, p. 384—393. 377
427. U 11m an J. D. Complexity of sequencing problems.—In: Computer and Job-Shop Scheduling Theory/Coffman E.. G., Jr. (ed.).— New York: Wiley, 1976, p. 139—164. 428. U s n S. J. B. Scheduling to minimize the number of late jobs when set-up and processing times are uncertain.— Manag. Sci., 1973, 19, № 11, p. 1283-1288. 429. Valdes J., T a г j a n R. E., Lawler E. L. The recognition of series parallel digraphs.— In: Proc. 11-th Annu. ACM Symp. Theory Comput.— New York, 1979, p. 1—12. 430. Valdes J., T a r j a n R. E., Lawler Е/ L. The recognition of series parallel digraphs.—SIAM J. Comput., 1982, 11, № 2, p. 298— 313. 431. Van Wassenhove L. N., Baker K. R. A bicriterion approach to time/cost trade-offs in sequencing.— Eurv J. Oper. Res., 1982, 11, № 1, p. 48—54. 432. Van Wassenhove L. N., Gelders L. Four solution techniques for a general one machine scheduling problem. A comparative study.— Eur. J. Oper. Res., 1978, 2, № 4, p. 281—290. 433.1 Van Wassenhove L. N., Gelders L. Solving a bicriterion scheduling problem.— Eur. J. Oper. Res., 1980, 4, № 1, p. 42—48. 434. V i с к s о n R. G. Two single machine sequencing problems involving controllable job processing times.—AIIE Trans., 1980, 12, № 3, p. 258-262. 435. Vickson R.( G. Choosing the job sequence and processing times to minimize total processing plus flow cost on a single machine.— Oper. Res., 1980, 28, № 5, p. 115^-1167. 436. W e e d a P. J. A dynamic programming formulation for the one machine sequencing problem.— Eur. J. Oper. Res., 1978, 2, № 4, p. 298—300.1 437. Weiss H. J. A greedy heuristic for single machine sequencing with precedence constraints.— Manag. Sci., 1981, 27, № 10, p. 1209—1216. 438. Z a 1 о о m V. A. Research abstract on a feasibility approach to optimal schedules.— Lect. Notes Econ. and Math.* Syst., 1973, 86, p. 433-437. 439. Z a 1 о о m V. A., V a t z D. A note on the optimal scheduling of two parallel processors.— Nav. Res. Log. Quart., 1975, 22, № 4, p. 823-827.
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Алгоритм полиномиальный 72 — псевдополиномиальный 73 — упаковки 91, 155 — эффективный 64 Алфавит 61 — бинарный 71 — внешний машины Тьюринга 65 — внутренний машины Тьюринга 65 — входной машины Тьюринга 65 — унарный 71 Вершина висячая 45 — графа 44 — декомпозиционного дерева операционная 48 — изолированная 45 — конечная 45 — начальная 45 — промежуточная 45 Вершины смежные 44 Время работы машины Тьюринга детерминированной 68 недетерминированной 68 Высота вершины 46 графа взвешенная 162 — дерева 54 Граф древовидный 47 — неориентированный 44 — неразложимый 47 — ориентированный 44 — полный (неориентированный) 44 — последовательно-параллельный 47 — о)-последовательно-параллель- ный 278 — приводимый 267 — разложимый 47 Граф редукции бинарного транзитивного отношения 50 — связный 45 — транзитивный 47 — тупиковый 255 Графы изоморфные 44 Дерево бинарное выходящее 48 — входящее 46 — выходящее 46 сбалансированное 54 — декомпозиционное графа 48 полное 49 Длина перестановки 53 — пути 45 взвешенная 162 — расписания 141, 160 — слова 65 Длительность обслуживания требования 8 Дуга графа 44 —, инцидентная вершине графа 44 — транзитивная 47 Задача о вершинном покрытии 324 клике 333 линейном размещении неориентированного графа 344 разбиении 283 3-разбиении 298 точном покрытии тройками 314 — распознавания 70 свойств объекта 70 NP-noлная 71 в сильном смысле 74 — iVP-трудная 71 в сильном смысле 74 — экстремальная комбинаторная 70 379
Задача экстремальная ЛГР-труд- ная 72 в сильном смысле 74 — эталонная 74 Замыкание графа транзитивное 47 Запаздывание 13 — взвешенное суммарное 13 — суммарное 13 Значение метки 235 Изоморфизм графов 44 Квазипорядок 43 Класс 69 — 9 69 Клика 334 Композиция графов параллельная 47 последовательная 47 ©-последовательная 278 Компонента разложения графа 47 — ©-разложения графа 279 — связности графа 45 Контур 45 Корень выходящего дерева 46 Лента машины Тьюринга 65 Лес 47 Маршрут 44 Матрица смежности графа 45 Машина Тьюринга детерминированная 65 недетерминированная 67 Метка промежуточной вершины сбалансированного 2-3-дерева 55 Множество казиупорядоченное — конечное 42 — линейно упорядоченное 43 — нестрого упорядоченное 43 — псевдоупорядочеиное 43 — совершенное 43 — строго упорядоченное 43 — частично упорядоченное 43 Момепт завершения обслуживания требования 12 Операция добавления дуги в граф 225 — отождествления вершин графа 224 — параллельной композиции графов 47 — последовательной композиции графов 47 — элементарная 71 ^Описание мгповениое детерминированной машины Тьюринга 66 Отношение бинарное 42. 43 антирефлексивное 43 антисимметричное 43 асимметричное 43 рефлексивное 43 симметричное 43 совершенное 43 транзитивное 43 — квазипорядка 43 — нестрогого порядка 43 — обратное 43 — псевдопорядка 43 — строгого порядка 43 Перестановка, допустимая относительно графа 54 строгого порядка 54 — из элементов множества 53 —, не возрастающая относительно псевдопорядка 61 —, не убывающая относительно псевдопорядка 61 — полная 53 — частичная 53 — элементов множества 53 Петля 44 Подграф 44 — порожденный 44 Поддерево с корнем х входящего дерева 47 выходящего дерева 46 Поддеревья вершины х входящего дерева 47 выходящего дерева 46 Подзадача 73 Покрытие вершинное 324 Полустепень захода вершины ориентированного графа 45 — исхода вершины ориентированного графа 45 Порядок нестрогий 43 — строгий 43 380
Последовательность тупиковая преобразований I, II 255 Потомок вершины 45 прямой 45 Предшественник вершины 45 непосредственный 45 Преобразоваие I 230 — II 230 — однородное (I или II) 269 — смешанное (I или II) 269 Прерывания 8 Приборы идентичные 8 — параллельные 7 Приоритет перестановки 213 — составного элемента 225 Произведение множеств декартово 42 Производительность прибора 8 Процедура восстановления графа по декомпозиционному дереву — объединения множеств, представленных сбалансированными 2-3-деревьями 58 — построения монотонной перестановки элементов совершенного псевдоупорядоченного множества 61 сбалансированного 2-3-дерева 56 — преобразования входящего дерева в (о-цепь 234 выходящего дерева в со- цепь 233 — удаления элемента из множества, представленного сбалансированным 2-3-деревом 60 Псевдопорядок 43 Путь 44 — простой 45 Ранг вершины 46 Расписание, допустимое относительно директивных сроков И —, заданного порядка 11 —, — по ресурсам 11 — обслуживания требований 9 — оптимальное 12 по быстродействию 12 — с разделением приборов 159 Расписания сопряженные 197 Ребро графа 44 —, инцидентное вершипе графа 44 Сведение псевдополиномиальнов 74 Сводимость полиномиальная задачи распознавания к экстремальной задаче 72 языков 69 Система обслуживающая многостадийная 7 одностадийная 7 поточного типа 7, 8 с последовательными приборами 8 с последовательными приборами 8 Слово в данном алфавите 65 —, допускаемое машиной Тьюринга детерминированной 67 —, — — — недетерминированной 67 Сложность алгоритма временная 72 — временная полиномиальная 72 — машины Тьюринга временная 68 Смещение временное 12 Состояние машины Тьюринга внутреннее 65 детерминированной 66 заключительное 66 недетерминированной 67 Срок директивный И Стадия обслуживания требования 7 Степепь вершины графа 45 Стоимость обслуживания требования 136 Сумма весов запаздывающих требований 13 — взвешеппая моментов завершения обслуживания требований 13 Форма линейная 216 Функционал приоритета 213 автоограниченный 262 — 1-приоритета 281 — приоритето-порождающий на множестве ^ 213 — 1-приоритето-порождающий на множестве 281 Функция вогнутая 82 — квазивогпутая 82 — переходов машины Тьюринга детерминированной 66 381
Функция переходов машипы Тьюринга недетерминированной 67 — штрафа 12 — е-квазивогнутая 82 Цепь 46 Число запаздывающих требований 13 Шаг работы детерминированной машины Тьюринга 65 Штраф максимальный 12 — суммарный 12 Элемент множества, максимальный относительно псевдопорядка 50 , строго порядка 51 Элемент множества, минимальный относительно псевдопорядка 50 , строгого порядка 51 — составной 225 однородный 270 смешанный 270 Элементы, несравнимые относительно строгого порядка 50 Язык 69 —, допускаемый машиной Тьюринга 69 — тУР-полный 69 —, распознаваемый машиной Тьюринга 69 2-3-дерево 54 — сбалансированное 54 упорядоченное 62 D-алгоритм 260 й-алгоритм 142 Л-расписание 142 Я-расписаиие 142, 150, 173 со-цепь 231
Вячеслав Сергеевич Танаев Валерий Сергеевич Гордон Яков Михайлович Шафрапский ТЕОРИЯ РАСПИСАНИЙ. ОДНОСТАДИЙНЫЕ СИСТЕМЫ (Серия «Экономико-математическая библиотека», № 18) Редактор А. Д. Вайнштейн. Техн. редактор С. Я. Шкляр Корректоры. Т. С. Вайсберг, Л. С. Сомова ИБ № 11862 Сдано в набро 19.12.83. Подписано к печати 11.09.84. Т-17089. Формат 84х108'/з2. Бумага тип. № 2. Обыкновенная гарнитура. Высокая печать. Условн. печ. л. 20,16. Уел. кр.-отт. 20,16. Уч.-изд. л. 24,17. Тираж 4700 экз. Заказ № 922. Цена 3 р. 70 к. Издательство «Наука» Главная редакция физико-математической литературы 117071 Москва В-71, Ленинский проспект, 15 4-я типография издательства «Наука» 630077 г. Новосибирск, 77, Станиславского, 25
ИЗДАТЕЛЬСТВО «НАУКА» ГЛАВНАЯ РЕДАКЦИЯ ФИЗИКО-МАТЕМАТИЧЕСКОЙ ЛИТЕРАТУРЫ 117071 Москва В-71, Ленинский проспект, 15 Серия «Экономико-математическая библиотека» ГОТОВИТСЯ К ПЕЧАТИ: Поспелов Г С., Ириков В. А., Курилов А. Е. Процедуры и алгоритмы формирования комплексных программ. В книге рассматривается проблема создания конкретного механизма программно-целевого планирования в комплексе отраслей. Основное внимание уделяется разработке новой информационной технологии формирования программ, объединяющей процедуры обоснования, формирования и корректировки программ и соответствующих форм документов, алгоритмы решепия возникающих при этом задач, математические и технические средства. Формулируются требования, описывается один из возможных вариантов их удовлетворения (особенно подробно рассматриваются математические средства). Обсуждаются результаты практической реализации задач первой очереди в энергетике. Для специалистов, занимающихся разработкой процедур программно-целевого планирования и управления и созданием человеко-машинпых систем формирования решений.