ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ УЧРЕЖДЕНИЕ НАУКИ ИНСТИТУТ МАТЕМАТИКИ им. С.Л.СОБОЛЕВА СИБИРСКОГО ОТДЕЛЕНИЯ РОССИЙСКОЙ АКАДЕМИИ НАУК На правах рукописи КОНОНОВА Полина Александровна АЛГОРИТМЫ ПОСТРОЕНИЯ РАСПИСАНИЙ ДЛЯ ЦЕХОВЫХ ЗАДАЧ ПОТОКОВОГО ТИПА С ЦИФРОВЫМ БУФЕРОМ 05.13.18 — математическое моделирование, численные методы и комплексы программ Диссертация на соискание учёной степени кандидата физико–математических наук Научный руководитель д.ф.–м.н. Ю.А. Кочетов Новосибирск — 2012 Оглавление Введение 4 1 Вычислительная сложность потоковых задач с буфером 19 1.1 Сведение к ограниченной задаче . . . . . . . . . . . . . . . 24 1.2 Перестановочные расписания . . . . . . . . . . . . . . . . . 27 1.3 Сложность задачи . . . . . . . . . . . . . . . . . . . . . . . 36 1.3.1 Сложность RAP –задачи . . . . . . . . . . . . . . . . 1.3.2 RP P –задача с быстрой/медленной скоростью передачи . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.3 36 37 RAP –задача с быстрой/медленной скоростью передачи . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2 Нижние и верхние оценки оптимума для цеховых задач потокового типа с активным буфером 46 2.1 Математическая модель . . . . . . . . . . . . . . . . . . . . 50 2.2 Нижние оценки . . . . . . . . . . . . . . . . . . . . . . . . . 52 2.2.1 Оценка линейного программирования . . . . . . . . 52 2.2.2 Оценка Джонсона . . . . . . . . . . . . . . . . . . . 54 2.3 Поиск с чередующимися окрестностями . . . . . . . . . . . 57 2.4 Окрестности . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 2 3 2.5 Численные эксперименты . . . . . . . . . . . . . . . . . . . 64 3 Нижние и верхние оценки оптимума для цеховых задач потокового типа с пассивным буфером 69 3.1 Постановка задачи и ее ЦЛП формулировки . . . . . . . . 69 3.2 Окрестности . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 3.3 Общая схема метода и ее варианты . . . . . . . . . . . . . 82 3.4 Построение примеров с известным оптимумом . . . . . . . 85 3.5 Численные эксперименты . . . . . . . . . . . . . . . . . . . 89 Заключение 98 Литература 100 Введение Актуальность темы. Появление вычислительных машин и стремительное развитие компьютерных технологий во второй половине XX века породило новые направления исследования в различных областях математики. Одним из таких современных направлений исследования стала теория расписаний. Задачи теории расписаний связаны с нахождением порядка выполнения работ и распределением ресурсов между работами. Подобные задачи возникают в различных отраслях человеческой деятельности. В данной работе рассматривается задача теории расписаний, которая появилась при создании электронно–цифровых библиотек и музеев. Интерес к этой задаче был обусловлен выполнением совместного Российско– Тайваньского гранта. Рассматриваемая задача является обобщением классической цеховой задачи потокового типа на двух машинах, т.е. задачи Джонсона [30] и относится к так называемым цеховым задачам. В отличие от цеховых задач с промежуточным буфером рассмотренных в [42], в которых работа находится в буфере только в тех промежутках времени, когда она не обслуживается ни одной машиной, в цифровом буфере работа напротив занимает буфер в течение всего интервала ее обслуживания. Последняя ситуация более характерна для приложений связанных 4 Введение 5 с обработкой цифровых данных на компьютерах. Цеховые задачи теории расписаний интенсивно изучаются с середины 50-х годов прошлого столетия. Большинство этих задач трудны как теоретически, то есть являются NP-трудными, так и практически, то есть требуют слишком много времени для нахождения точного решения на примерах малой размерности, 15–20 работ. Все эти свойства характерны для цеховой задачи с цифровым буфером. Поэтому одним из перспективных подходов является построение хороших нижних оценок и разработка методов локального поиска с выбором окрестностей, учитывающих структуру задачи. Цель данной работы состоит в разработке и исследовании методов локального поиска для решения цеховой задачи на двух машинах с цифровым буфером, в получении нижних оценок глобального оптимума и построении сложных в вычислительном отношении тестовых примеров, позволяющих указать наиболее трудные подклассы для этих методов. Методика исследований. В диссертации использованы современные методы исследования операций, включающие в себя построение математических моделей, теорию локального поиска и вычислительной сложности, а также методологию экспериментальных исследований с применением вычислительной техники и коммерческих пакетов прикладных программ для решения задач целочисленного линейного программирования. Научная новизна. Оригинальность и научная новизна полученных результатов состоит в следующем. 1. Проведено исследование сложности цеховой задачи на двух маши- Введение 6 нах с цифровым буфером. Доказано, что в общем случае задача является NP-трудной в сильном смысле. Выделены полиномиально разрешимые случаи. 2. Построены модели целочисленного линейного программирования для различных способов загрузки цифрового буфера. 3. Найден способ корректировки исходных данных существенно улучшающий нижние оценки глобального оптимума. 4. Разработаны итерационные методы локального поиска для решения задачи с активным и пассивным методами загрузки буфера. Практическая и теоретическая ценность. Работа носит теоретический и экспериментальный характер. Установлена вычислительная сложность цеховых задач с цифровым буфером, получены численные методы их решения. Разработанные методы реализованы в виде программ. Они показали свою эффективность и могут применяться при решении практических задач большой размерности, а также при преподавании университетских курсов «Исследование операций» и «Теория принятия решений». Апробация работы. Все разделы диссертации прошли апробацию на следующих конференциях в России и за рубежом: — Международный симпозиум по математическому программированию (ISMP), Германия, Берлин, 2012; — Конференция европейского общества комбинаторной оптимизации (ECCO), Турция, Анталия, 2012; — Балканская конференция по исследованию операций (BalcOR), Греция, Салоники, 2011; Введение 7 — Международная конференция по управлению планирования и теории расписаний (PMS), Франция, Тур, 2010; — Международный симпозиум по исследованию операций (OR), Германия, Мюнхен, 2010; — Российская конференция "Дискретная оптимизация и исследование операций", Новосибирск, Алтай, 2010; — Всероссийской конференции "Проблемы оптимизации и экономические приложения", Омск, 2009 и 2012; — Азиатская международная школа-семинар "Проблемы оптимизации сложных систем", Кыргызская Республика, г.Бишкек, 2009; — Научные семинары Института математики им. С.Л. Соболева СО РАН. Личный вклад. Представленные в диссертации теоретические результаты получены соискателем лично. Разработка комплекса программ для нахождения верхних оценок методами локального поиска осуществлена самостоятельно. Представление изложенных в диссертации результатов, полученных в совместных исследованиях, с соавторами согласовано. На защиту выносятся только результаты, полученные автором лично. Публикации. По теме диссертации автором опубликовано 12 работ, в том числе 3 статьи в журналах из списка ВАК. Объем и структура диссертации. Диссертация состоит из введения, трех глав и списка литературы (46 наименований). Объем диссертации — 106 страниц. Введение 8 СОДЕРЖАНИЕ РАБОТЫ Во введении формулируются цель и задачи исследования, обосновывается актуальность выбранной темы и указываются основные методы решения поставленной задачи. Отмечена новизна полученных результатов и их практическая и теоретическая ценность. Приводятся сведения об апробации работы и публикациях. Кратко излагается содержание работы. В первой главе формулируется задача Джонсона с цифровым буфером и ее подзадачи. В диссертации рассматриваются задачи, которые возникают при создании электронно–цифровых библиотек и музеев [38]. Медиа–объекты (файлы) загружаются из удаленной базы данных и затем воспроизводятся. Для каждого файла заданы время загрузки и воспроизведения. При загрузке файл поступает в буфер транслирующего устройства и покидает его сразу после завершения воспроизведения. Размер буфера ограничен. Размеры файлов известны и пропорциональны времени загрузки. Воспроизведение файла не может начаться раньше окончания его загрузки. Если файл начал загрузку или воспроизведение, то этот процесс не прерывается. Требуется, так задать порядок загрузки и воспроизведения файлов, чтобы минимизировать время окончания воспроизведения последнего файла. Рассматриваемая задача выбора порядка презентации медиа–объектов тесно связана с цеховой задачей построения расписания в системе потокового типа на двух машинах, которую принято называть задачей Джонсона [30]. В задаче Джонсона множество работ требуется выполнить на двух машинах. Каждая работа выполняется сначала на первой машине, Введение 9 а затем — на второй. Требуется найти такой порядок выполнения работ на обеих машинах, который минимизирует длину расписания, то есть время завершения последней работы. Задачу выбора порядка презентации медиа–объектов можно представлять как задачу Джонсона с дополнительным буферным ограничением, если считать загрузку объекта выполнением работы на первой машине, а воспроизведение — выполнением на второй машине. Известно несколько способов загрузки. В [37] рассмотрен случай, когда новый объект не загружается, пока свободного пространства в буфере недостаточно для помещения этого объекта. Другими словами, если размер загружаемого файла больше размера свободного пространства буфера, требуется подождать до завершения презентации одного или более уже загруженных объектов. Будем ссылаться на такую модель, как на модель с пассивной загрузкой и обозначать ее как P P –задача. Активная модель загрузки предполагает более агрессивное использование свободного пространства, а именно, в каждый момент времени общий размер загруженных и частично загруженных объектов не должен превышать размера буфера. Будем ссылаться на такую модель, как на модель с активной загрузкой и обозначать ее как AP –задачу. Сформулируем обе задачи в терминах теории расписаний. Дано множество из n работ J = {1, 2, . . . , n}, две машины A и B и буфер размера Ω. Каждая работа имеет две операции. Первая операция каждой работы выполняется на машине A. Вторая операция каждой работы выполняется на машине B. Вторая операция каждой работы не может начаться раньше завершения первой операции той же работы. Для каждой Введение 10 операции задано время ее выполнения. Пусть aj и bj обозначают длительности первой и второй операций работы j соответственно. Предполагая, что в единицу времени загружается одна единица объема файла получим, что объем буфера, занимаемый работой j после загрузки равен aj . Обозначим через saj (σ) и caj (σ) момент начала и момент окончания первой операции работы j в расписании σ соответственно. Аналогично обозначим через sbj (σ) и cbj (σ) моменты начала и окончания работы j на машине B в расписании σ. Пусть Jτ — подмножество работ, которые находятся в буфере или загружаются в него в момент τ . Тогда следующее ограничение должно выполняться в P P –задаче: X aj ≤ Ω, τ ≤ T, j∈Jτ где T—верхняя оценка на общее время выполнения всех работ. Для AP –задачи ограничение на буфер будет менее жестким. Пусть aj (τ ) обозначает часть работы j, уже загруженной в буфер к моменту τ . Величина aj (τ ) определяется следующим образом: 0, aj (τ ) = τ − saj , a j если τ < saj или τ > cbj , если saj ≤ τ < caj , j ∈ J, τ ≤ T. если caj ≤ τ < cbj , Тогда следующее ограничение должно выполняться в AP –задаче: X aj (τ ) ≤ Ω, τ ≤ T. j∈Jτ Каждая машина выполняет не более одной операции в каждый момент времени. Прерывания работ не разрешены. Требуется найти такой поря- Введение 11 док выполнения работ на обеих машинах, чтобы время завершения всех работ Cmax было наименьшим. В разд. 1.1 вводится понятие ограниченной задачи. Если для каждой работы выполняется неравенство aj + bj ≤ Ω, j ∈ J, то P P –задача обозначается как RP P –задача, а AP –задача — как RAP –задача. Теорема 1. Задачи P P и RP P эквивалентны. Аналогичное утверждение доказано для AP и RAP задач. Используя доказательства этих теорем, любую рассматриваемую задачу можно привести к эквивалентной ограниченной задаче. В разд. 1.2 для AP –задачи доказано важное свойство: оптимальное расписание можно искать среди перестановочных расписаний. Теорема 3. Среди оптимальных расписаний AP –задачи существует расписание, в котором работы на машинах A и B выполняются в одинаковом порядке. Далее будут рассматриваться расписания, в которых работы выполняются на обеих машинах в одинаковом порядке. Более того, если порядок задан некоторой перестановкой, то для AP и P P задач за полиномиальное время можно определить длину расписания и вычислить время начала каждой из работ. Лемма 1.Пусть в AP –задаче обе машины выполняют работы в соответствии с перестановкой π = (1, 2, . . . , n) и расписание σ задается следующими рекуррентными формулами sa1 = 0, sb1 = ca1 , sar = max{car−1 , cbr−1 − Ω + ar−1 }, 2 ≤ r ≤ n, Введение 12 sbr = max{cbr−1 , car }, 2 ≤ r ≤ n. Пусть σ 0 некоторое другое расписание, и работы в нем выполняются в том же порядке π, тогда Cmax (σ) ≤ Cmax (σ 0 ). Пусть в P P – задаче работы выполняются в порядке π на машине A. Обозначим через Ωir свободное место в буфере после загрузки работ с P i-ой по (r − 1)-ю, т.е. Ωir = Ω − r−1 k=i aπ(k) . Лемма 3.Пусть в P P –задаче обе машины выполняют работы в соответствии с перестановкой π = (1, 2, . . . , n) и расписание σ задается следующими рекуррентными формулами sa1 = 0, sb1 = ca1 , sar = max{car−1 , cbx−1 , cbr−1 − Ω + ar−1 }, 2 ≤ r ≤ n, sbr = max{cbr−1 , car }, 2 ≤ r ≤ n, где x = min{i|Ωir > ar }. Пусть σ 0 — другое расписание работ для перестановки π, тогда Cmax (σ) ≤ Cmax (σ 0 ). Эти рекуррентные формулы используются для вычисления длины расписания по заданной перестановке в алгоритмах локального поиска. В разд. 1.3 проведено исследование сложности подклассов задачи. Доказано, что в общем случае задача является NP-трудной в сильном смысле. Выделены полиномиально разрешимые случаи. В разд. 1.3.1 доказано, что RAP –задача также является NP-трудной в сильном смысле. К данной задаче полиномиально сводится задача 3– Разбиение. Введение 13 В разд. 1.3.2. и 1.3.3 рассматриваются частные случаи задач для быстрых и медленных сетей. Назовем RP P –задачу RP P > –задачей (RP P < – задачей), если aj > bj (aj < bj ) для всех работ. Показано, что обе задачи являются NP-трудными в сильном смысле, что усиливает результат из [37]. Теорема 7. Пусть в RAP > –задаче обе машины выполняют работы в соответствии с перестановкой π, в которой работы упорядочены по невозрастанию величин bj . Тогда расписание σ, построенное по формулам из леммы 1 для перестановки π, является оптимальным для RAP > –задачи. Из теоремы 7 следует, что AP > –задача также является полиномиально разрешимой. Установлено, что RAP < –задача является полиномиально разрешимой, а соответствующая ей AP < –задача является NP-трудной в сильном смысле. Во второй главе подробно рассматривается задача с активным буфером. В разд. 2.1 она представлена в виде задачи целочисленного линейного программирования (ЦЛП). Пусть последовательность π(i), i ∈ J задает порядок выполнения работ. Введем переменные xij ∈ {0, 1}, которые также как и π задают порядок выполнения работ: xij = 1, если работа i выполняется j-ой по порядку, т.е. i = π(j), и xij = 0 в противном случае. Тогда: X k∈J xkj = X xil = 1, i, j ∈ J. l∈J Будем опускать индекс π, если это не создает двусмысленности. Переменные xij позволяют вычислить длительность работы на машине A Введение 14 для j–й по порядку работы в перестановке π. Обозначим эту величину paj . Аналогичную величину для машины B обозначим pbj . Тогда paj = n X ai xij , j ∈ J, i=1 pbj = n X bi xij , j ∈ J. i=1 Введем дополнительные переменные saj и sbj , которые будут определять начало выполнения j–й по порядку работы на машинах A и B соответственно, тогда по формулам из леммы 1 получаем: sa1 = 0, saj+1 ≥ saj + paj , j ∈ J, sbj+1 ≥ sbj + pbj , j ∈ J, sbj ≥ saj + paj , j ∈ J. saj+1 ≥ sbj + pbj + paj − Ω, j ∈ J. Сформулированные условия задают множество допустимых расписаний. Задача состоит в нахождении допустимого расписания, доставляющего минимум следующей целевой функции F (π) = sbn + pbn . Для поиска оптимального решения построенных задач целочисленного линейного программирования использовались специализированные коммерческие пакеты. Результаты численных экспериментов с пакетом CPLEX показывают, что если существует разрыв целочисленности, то Введение 15 примеры с 20 работами могут потребовать более суток расчетов на персональном компьютере. Если разрыва целочисленности нет, то примеры решаются за минуту. Разд. 2.2 посвящен различным нижним оценкам для задачи с активным буфером. В разделе 2.2.1 изучаются две оценки линейного программирования: LBlp для AP -задачи и LB lp для RAP -задачи, построенной по данным AP -задачи. Первая оценка получается заменой целочисленных переменных в ЦЛП на непрерывные. Для получения второй оценки исходный пример преобразуется в эквивалентный пример ограниченной задачи. После этого, для полученной ограниченной задачи строится аналогичная оценка линейного программирования. Доказано, что LBlp ≤ LB lp на любом примере. Более того, численные эксперименты показали, что на многих примерах переход к ограниченной задаче увеличивает нижнюю оценку, а на некоторых примерах до 10%. В разд. 2.2.2 описана другая нижняя оценка. Если в рассматриваемой задаче считать, что размер буфера неограничен, то задача совпадет с классической задачей Джонсона на двух машинах, которая является полиномиально разрешимой. Ее оптимальное решение дает другую нижнюю оценку для задачи с буфером. Эта оценка на некоторых примерах лучше, чем оценка линейного программирования. Доказано, что существуют примеры, для которых оценка Джонсона для ограниченной задачи в (2 − ε) раза точнее оценки Джонсона для исходной задачи, где ε сколь угодно малая положительная константа. Разд. 2.3 посвящен описанию разных вариантов схемы локального поиска с чередующимися окрестностями [5]. В разд. 2.4 представлены Введение 16 окрестности используемые в алгоритмах локального поиска. Пусть последовательность π задает некоторое допустимое решение σ задачи. Определим следующие окрестности. • Окрестность N1 (σ) содержит все расписания, получающиеся из σ либо перемещением одной работы на новое место, либо взаимной перестановкой двух работ. • Окрестность Nl (σ), l > 1 содержит все решения, получающиеся из данного не более l последовательными переходами к соседним решениям по окрестности N1 (σ). Назовем блоком несколько подряд идущих работ последовательности π. • Окрестность N b (σ) содержит все решения, получающиеся из σ взаимной перестановкой двух непересекающихся блоков, возможно разных размеров. Кроме этих простых окрестностей, также рассматривается окрестность Кернигана–Лина. Эта окрестность позволяет найти некоторую последовательность переходов по простым окрестностям, приводящую к некоторому хорошему решению. Окрестность Кернигана–Лина позволяет продолжать поиск даже если текущее решение является локальным минимумом относительно простых окрестностей. Численные эксперименты подробно описаны в разд. 2.5. Сначала сравним нижние оценки с верхними оценками, получаемыми алгоритмом локального поиска с чередующимися окрестностями на случайно порожденных данных. Численные эксперименты показали, что с ростом размерности число несовпадений нижней и верхней оценок падает, а при n = 50 исчезает вовсе. При n ≥ 100 ситуация сохраняется. Получает- Введение 17 ся удивительный эффект: с ростом размерности задачи она становится проще и при больших n легко решается точно. Алгоритм VNS быстро находит решение, значение которого совпадает с нижней оценкой. Такой эффект связан со способом генерации исходных данных. При большом разнообразии длительностей работ их легко компоновать под размер буфера. Изменив способ генерации исходных данных, можно получить трудные примеры, которые даже при отсутствии разрыва целочисленности будут представлять "головоломку". Также были построены примеры из трудных примеров для задачи упаковки в контейнеры [18]. В этих примерах оптимальное решение соответствует оптимальному решению задачи упаковки в контейнеры. Нижние оценки совпадают и равны оптимуму. Однако найти оптимум методами локального поиска трудно. На небольшой размерности n = 40 разработанный метод локального поиска в 44 примерах из 50 нашел оптимальное решение, в остальных 6 примерах найденное решение отличалось от оптимального на единицу. Для n = 80 средняя погрешность составляет около 0,02%. В третьей главе подробно рассматривается задача с пассивным буфером. В разд. 3.1 предложено 4 формулировки задачи в терминах целочисленного линейного программирования. Три из этих формулировок предполагают, что порядки выполнения работ на машинах A и B могут не совпадать. С помощью этих формулировок имеется возможность найти пример, на котором оптимальное решение для перестановочного расписания не совпало бы с расписанием, в котором работы выполняются в разных порядках. В ходе многочисленных экспериментов такой Введение 18 пример найти не удалось. Далее рассматривается только вариант задачи на одной перестановке, который также является NP-трудным в сильном смысле. В разд. 3.2 и 3.3 описаны три схемы локального поиска для решения задачи с пассивным буфером. Одна из них использует экспоненциальную окрестность, не используемую ранее для задачи с активным буфером. Эта окрестность задается некоторым интервалом в перестановке и соседними решениями являются только те, которые отличаются от исходного в этом интервале. Найти лучшего соседа по такой окрестности можно используя одну из ЦЛП формулировок, зафиксировав порядок для всех работ, непопадающих в этот интервал. Численные эксперименты показали, что поиск оптимального соседнего решения требует неприемлемое время. Поэтому разработана новая процедура, основанная на методе поиска с запретами, просматривающего решения в этой окрестности. В разд. 3.4 рассмотрена обратная задача. В ней необходимо найти минимальный размер буфера, при котором можно выполнить все работы за заданное время. Для обратной задачи получены следующие утверждения. Теорема 12.Пусть σ — оптимальная перестановка работ для задачи Джонсона. Тогда для задачи с пассивным буфером можно за полиномиальное время найти минимальный размер буфера, при котором σ останется оптимальной перестановкой. Теорема 13. Задача минимизации буфера при заданной длине расписания является NP–трудной в сильном смысле. В разд. 3.5. описаны результаты численных экспериментов. Глава 1 Вычислительная сложность потоковых задач с буфером Рассмотрим следующую задачу, возникающую при создании электронно– цифровых библиотек и музеев [37]. Медиа–объекты (файлы) загружаются из удаленной базы данных и затем воспроизводятся. Для каждого файла заданы время загрузки и воспроизведения. При загрузке файл поступает в буфер транслирующего устройства и покидает его сразу после завершения воспроизведения. Размер буфера ограничен. Размеры файлов известны и пропорциональны времени загрузки. Воспроизведение файла не может начаться раньше окончания его загрузки. Если файл начал загрузку или воспроизведение, то этот процесс не прерывается. Требуется так задать порядок загрузки и воспроизведения файлов, чтобы минимизировать время окончания воспроизведения последнего файла. В приложениях, в которых используются переносные транслирующие устройства, необходимо учитывать размер буфера для хранения загруженных объектов. Для сетей с достаточно стабильной скоростью переда- 19 Глава 1. Вычислительная сложность потоковых задач с буфером 20 чи (например, когда пропускная способность сети ограничена медленной пропускной способностью самого устройства) время загрузки файла пропорционально его размеру. Следовательно, объем буфера, занимаемый загруженным файлом, прямо пропорционален времени его загрузки. Таким образом, без ограничения общности можно считать, что время загрузки объекта равно его размеру. Действительно, всегда можно выбрать такой масштаб, что единица размера файла загружается за единицу времени. Буфер, обладающий таким свойством, будем называть цифровым. Кроме того, предполагается, что загрузка и воспроизведение объекта не могут быть прерваны, то есть все операции выполняются без прерываний. Рассматриваемая задача выбора порядка презентации медиа–объектов тесно связана с цеховой задачей теории расписаний потокового типа на двух машинах, которую принято называть задачей Джонсона. В задаче Джонсона множество работ требуется выполнить на двух машинах. Каждая работа выполняется сначала на первой машине, а затем — на второй. Требуется найти такой порядок выполнения работ на обеих машинах, который минимизирует длину расписания, то есть время завершения последней работы. Рассматриваемую задачу можно представить как задачу Джонсона с дополнительным буферным ограничением, если считать загрузку объекта выполнением работы на первой машине, а воспроизведение — выполнением на второй. Известно несколько различных понятий буфера для задач потокового типа. Производственный буфер представляет собой некоторое хранилище для деталей. Если работа после выполнения на первой машине не мо- Глава 1. Вычислительная сложность потоковых задач с буфером 21 жет быть сразу выполнена на второй, то она помещается в буфер. Как только вторая машина освобождается, одна из работ покидает буфер и начинается ее выполнение на второй машине. Размер буфера ограничивает количество или вес работ, которые могут быть в него помещены. В общем случае задача с производственным буфером является NP-трудной, но становится полиномиально разрешимой, если в буфер нельзя поместить ни одной работы или число работ помещенных в буфер неограниченно [42]. Рис. 1.1: Варианты загрузки в AP –задаче и P P –задаче. В данной работе рассматривается задача потокового типа на двух машинах с цифровым буфером и двумя различными способами загрузки. В [37] рассмотрен случай, когда новый объект не загружается, пока свободное пространство в буфере недостаточно для помещения этого объекта. Другими словами, если размер загружаемого файла больше размера свободного пространства буфера, требуется подождать до завершения Глава 1. Вычислительная сложность потоковых задач с буфером 22 презентации одного или более загруженных объектов. Будем ссылаться на такую модель, как на модель с пассивной загрузкой и обозначать соответствующую задачу P P –задачей. Активная модель загрузки предполагает более агрессивное использование свободного пространства путем занятия этого пространства входящим объектом без нарушения непрерывности загрузки. Поскольку предполагается, что размер загруженного файла равен времени потраченному на загрузку, то в каждый момент времени общий размер загруженных и частично загруженных объектов не должен превышать размера буфера (см. рис 1.1). Будем ссылаться на такую модель, как на модель с активной загрузкой и обозначать ее как AP –задачу. Заметим, что любое допустимое решение P P –задачи также является допустимым решением AP –задачи. Следовательно, оптимальное решение задачи с активной загрузкой всегда не хуже, чем оптимальное решение задачи с пассивной загрузкой. Сформулируем обе задачи в терминах теории расписаний. Дано множество из n работ J = {1, 2, . . . , n}, две машины A и B и буфер размера Ω. Каждая работа имеет две операции. Первая операция каждой работы выполняется на машине A. Вторая операция каждой работы выполняется на машине B. Вторая операция каждой работы не может начаться раньше завершения первой операции той же работы. Для каждой операции задано время ее выполнения. Пусть aj и bj обозначают длительности первой и второй операций работы j соответственно. Обозначим через saj (σ) и caj (σ) момент начала и момент окончания первой операции работы j в расписании σ соответственно. Аналогично Глава 1. Вычислительная сложность потоковых задач с буфером 23 обозначим через sbj (σ) и cbj (σ) моменты начала и окончания работы j на машине B в расписании σ. Для удобства будем опускать символ σ, если это не создает двусмысленности. Пусть Jτ — подмножество работ, которые находятся в буфере или загружаются в него в момент τ . Тогда следующее ограничение должно выполняться в P P –задаче X aj ≤ Ω τ ≤ T, (1.1) j∈Jτ где T—верхняя оценка на общее время выполнения всех работ. Для AP –задачи ограничение на буфер будет менее жестким. Пусть aj (τ ) обозначает часть работы j, уже загруженной в буфер к моменту τ . Величина aj (τ ) определяется следующим образом 0, aj (τ ) = τ − saj , a j если τ < saj или τ > cbj , если saj ≤ τ < caj , j ∈ J, τ ≤ T. если caj ≤ τ < cbj , Тогда следующее ограничение должно выполняться в AP –задаче X aj (τ ) ≤ Ω, τ ≤ T. (1.2) i∈Jτ Каждая машина выполняет не более одной операции в каждый момент времени. Прерывания работ не разрешены. Требуется найти такой порядок выполнения работ на обеих машинах, чтобы время завершения всех работ было наименьшим. В первом разделе данной главы вводится понятие ограниченной задачи и показана эквивалентность исходной и ограниченной задачи. Во втором разделе показано, что среди оптимальных решений в AP –задаче Глава 1. Вычислительная сложность потоковых задач с буфером 24 всегда найдется решение, у которого порядок работ на первой и второй машинах совпадают. Хотя эта теорема доказана только для AP –задачи, для обеих задач построены рекуррентные формулы для вычисления расписания работ на каждой машине при одинаковой заданной перестановке на обеих машинах. В третьем разделе доказывается NP-трудность задач и некоторых их частных случаев. В нем же рассматриваются задачи с быстрой/медленной скоростью передачи и выявлены полиномиально разрешимые случаи задачи. 1.1 Сведение к ограниченной задаче Так как после выполнения на машине A работа должна быть помещена в буфер, то размер работы не может превышать размер буфера, ai ≤ Ω для всех работ i. Рассмотрим более сильное ограничение на вход обеих задач. Пусть ai + bi ≤ Ω, i ∈ J. (1.3) Обозначим P P –задачу и AP –задачу с ограничением (1.3) как RP P – задачу и RAP –задачу соответственно. Рассмотрим две задачи минимизации P и Q с целевыми функциями ΦP и ΦQ соответственно. Будем говорить, что задача P линейно сводится к задаче Q, если существуют такие функции f и g, каждая вычислимая за линейное от размера входа время, что f преобразует любой пример I задачи P в пример I задачи Q, и g преобразует оптимальное решение примера I в оптимальное решение примера I. Если P линейно сводится к Q, и Q линейно сводится к P , то задачи называются эквивалентными [36]. Глава 1. Вычислительная сложность потоковых задач с буфером 25 Покажем, что P P –задача линейно сводится к RP P –задаче и AP – задача линейно сводится к RAP –задаче. Теорема 1 Задачи P P и RP P эквивалентны. Доказательство Так как RP P –задача является подзадачей P P –задачи, то сведение в одну сторону тривиально. Остается доказать, что P P – задача линейно сводится к RP P –задаче. Задание функции f : Пусть I пример P P –задачи с n работами. Для каждой работы i заданы длительности ее операций ai и bi и размер буфера равен Ω. Построим пример I для RP P –задачи с n работами. Определим длительности операций каждой работы i в примере I следующим образом: ai = ai , bi = min(bi , Ω − ai ). Размер буфера останется прежним. Легко проверить, что ai + bi ≤ Ω для всех i, и пример I действительно является примером RP P –задачи. Задание функции g: Пусть σ(I) — допустимое расписание работ и aj + bj > Ω для некоторой работы j в исходном примере I. Пусть i — некоторая работа, заканчивающаяся на машине A во время выполнения работы j на машине B, т.е. cai ∈ [sbj , cbj ] в расписании σ(I). Положим τ = cai . Если такой работы не существует, то положим τ = sbj . Пусть δj = bj − bj . Вставим интервал длины δj после момента τ и увеличим время выполнения работы j на второй машине на величину δj . Заметим, что такое преобразование не Глава 1. Вычислительная сложность потоковых задач с буфером 26 Рис. 1.2: Перестройка расписания влияет на размер свободного буфера в других временных точках. Повторив это преобразование для всех работ, получим допустимое расписание σ примера I. Более того, имеем Cmax (σ, I) = Cmax (σ, I) + X δi . (1.4) i∈J Сохранение оптимальности: Пусть σ(I) — оптимальное расписание и σ(I) = g(σ(I)). Предположим, что существует такое расписание σ 0 (I), что Cmax (σ 0 , I) < Cmax (σ, I). Рассмотрим произвольную работу j, для которой aj + bj > Ω. Пусть sbj и cbj — моменты начала и завершения работы j на машине B в расписании σ 0 соответственно. Пусть Nj — множество работ, которые выполняются на машине A в интервале (sbj , cbj ) полностью или частично (см. рис. 1.2(a)). Из ограничения (1.1) получаем X i∈Nj ai + aj ≤ Ω. Глава 1. Вычислительная сложность потоковых задач с буфером Значит X 27 ai ≤ Ω − aj = bj − δj . i∈Nj Сдвинем все первые операции работ в Nj , которые начинаются на машине A после момента sbj влево, так чтобы машина A выполняла работы множества Nj без простоя (см. рис. 1.2(b)). Пусть τ — время завершения последней работы из Nj после сдвига. Значит τ ≤ cbj − δj . Следовательно, никакая работа не выполняется на машине A в интервале [cbj −δj , cbj ]. Вырежем этот интервал из расписания и уменьшим время выполнения работы j на машине B на δj . Повторив это преобразование для всех работ, получим допустимое расписание σ 0 примера I. В итоге, имеем Cmax (σ 0 , I) = Cmax (σ 0 , I) − X δi < Cmax (σ, I) − i∈J X δi = Cmax (σ, I). i∈J Получим противоречие с оптимальностью расписания σ(I). Теорема 2 Задачи AP и RAP эквивалентны. Доказательство теоремы 2 аналогично доказательству предыдущей теоремы, но вместо неравенства (1.2) при проверке оптимальности расписания σ(I) используется неравенство (1.1). 1.2 Перестановочные расписания Перестановочным расписанием для задач потокового типа называется расписание, порядок выполнения работ в котором одинаков на каждой машине. Напомним, что в задаче Джонсона на двух машинах всегда существует оптимальное расписание, которое является перестановочным [30]. Глава 1. Вычислительная сложность потоковых задач с буфером 28 Покажем, что для AP –задачи также выполняется это свойство. Теорема 3 Среди оптимальных расписаний AP –задачи существует расписание, в котором работы на машинах A и B выполняются в одинаковом порядке. t1 A B t2 k−1 k ... k−1 ... j j ... Рис. 1.3: Перестановочный прием Доказательство Используем метод математической индукции. Пусть первой на машине A выполняется работа k, а на машине B работа j. На машине A работа j выполняется после работы k. Можем поменять их местами, это не сделает расписание длиннее. Индукционный переход. Пусть первые (k − 1) работ на машинах A и B совпадают. Затем на машине A выполняется работа k, а на машине B работа j. Тогда на машине A работа j выполняется после работы k. Обозначим через t1 время начала выполнения работы k, а через t2 время окончания выполнения работы j на машине A. Заметим, что с t1 по t2 на машине B выполняются работы, загруженные до t1 , а все работы, загруженные после работы k −1 выполняются после t2 . Поэтому изменение порядка работ на машине A в интервале (t1 , t2 ) не влияет на порядок работ на машине B (см. рис. 1.3). Если в этом интервале нет простоев на машине A, то работы k и j на машине A можно поменять местами, так как объем работ, загруженных в буфер, в каждый момент времени при этом не изменится. Рассмотрим случай, когда в интервале Глава 1. Вычислительная сложность потоковых задач с буфером 29 (t1 , t2 ) есть простои на машине A. Пусть ∆ это сумма длин операций выполняемых на машине A в интервале (t1 , t2 ). Сдвинем выполнение всех операций вправо, то есть выполним их в интервале (t2 − ∆, t2 ). Получим расписание, в котором машина A выполняет работы с k по j без простоев. Тогда длина расписания не изменится, и буферное ограничение не будет нарушено. Т.к. загрузка происходит в каждый момент, то работы k и j можно поменять местами. Повторяя этот прием, получим перестановочное расписание не длиннее данного. Теорема доказана. Для P P –задачи аналогичный результат не известен. В дальнейшем, в этой главе будут рассматриваться только перестановочные расписания. Задача с разными перестановками будет рассмотрена в третьей главе. Тем не менее P P –задача с дополнительным ограничением, что работы на обеих машинах выполняются в одинаковом порядке, также представляет интерес. Она остается NP-трудной в сильном смысле. Введем соответствие между перестановкой работ и расписанием работ. Для обеих задач покажем, как получать "наилучшее" расписание для данной перестановки работ. Концепция "наилучшего" расписания означает, что не существует расписания с тем же порядком работ, длина которого меньше длины "наилучшего" расписания. Один из способов получения таких расписаний хорошо известен. По данной перестановке работ, строится расписание, в котором каждая операция начинается в наиболее раннее допустимое время. Такое расписание называется ранним расписанием [13]. Введем другую идею построения "наилучшего" расписания. Начнем со следующей леммы. Глава 1. Вычислительная сложность потоковых задач с буфером Рис. 1.4: Построение позднего перестановочного расписания 30 Глава 1. Вычислительная сложность потоковых задач с буфером 31 Лемма 1 Пусть в AP –задаче обе машины выполняют работы в соответствии с перестановкой π = (1, 2, . . . , n) и расписание σ задается следующими рекуррентными формулами sa1 = 0, (1.5) sb1 = ca1 , (1.6) sar = max{car−1 , cbr−1 − Ω + ar−1 }, 2 ≤ r ≤ n, (1.7) sbr = max{cbr−1 , car }, 2 ≤ r ≤ n. (1.8) Пусть σ 0 некоторое другое расписание, и работы в нем выполняются в том же порядке π, тогда Cmax (σ) ≤ Cmax (σ 0 ). Доказательство Пусть i — первая работа в расписании σ 0 для которой sai (σ) 6= sai (σ 0 ) или sbi (σ) 6= sbi (σ 0 ). 1. Предположим, что cai−1 (σ) ≥ cbi−1 (σ) − Ω + ai−1 . Тогда (см. рис. 1.4(a)) получаем a sai (σ) = ci−1 (σ), и неравенство sai (σ) 6= sai (σ 0 ) означает, что sai (σ) < sai (σ 0 ). Рассмотрим новое расписание σ 00 , в котором sai (σ 00 ) = sai (σ) и все остальные операции начинаются в тоже время как и в σ 0 . Легко заметить, что новое расписание допустимо и имеет ту же длину, что и σ 0 . 2. Пусть cai−1 (σ) < cbi−1 (σ) − Ω + ai−1 . Глава 1. Вычислительная сложность потоковых задач с буфером 32 Это означает, что sai (σ) = cbi−1 (σ) − Ω + ai−1 и cbi−1 (σ) − sai−1 (σ) > Ω. Так как расписания σ и σ 0 совпадают по первой i − 1 работе, то имеем cbi−1 (σ 0 ) − sai−1 (σ 0 ) > Ω. Пусть k — последняя работа, для которой sak (σ 0 ) < cbi−1 (σ 0 ). Рассмотрим три случая. 2.1. Сначала предположим, что cak (σ 0 ) ≤ cbi−1 (σ 0 ). Тогда k X aj ≤ Ω. j=i−1 В этом случае (см. рис. 1.4(b)) расписание σ 00 строится по расписанию σ 0 следующим образом. Расставим первые операции работ i, . . . , k друг за другом с момента cbi−1 (σ 0 )−Ω+ai−1 . Все остальные операции начинаются в то же время как и в σ 0 . Получим cak (σ 00 ) = cbi−1 (σ 0 ) − Ω + ai−1 + k X aj ≤ cbi−1 (σ 0 ). j=i Так как вторые операции работ i, . . . , k начинаются после времени cbi−1 (σ 0 ), то полученное расписание допустимо и имеет ту же длину, что и σ 0 . 2.2 Пусть cak (σ 0 ) > cbi−1 (σ 0 ) i 6= k. Глава 1. Вычислительная сложность потоковых задач с буфером 33 Тогда (см. рис. 1.4 (c)) получаем: k−1 X aj + (cbi−1 (σ 0 ) − sak (σ 0 )) ≤ Ω. j=i−1 Последнее слагаемое в левой части неравенства показывает величину работы k, которая загружена до времени cbi−1 (σ 0 ). Изменим расписание следующим образом. Расставим первые операции работ i, . . . , k − 1 одна за другой с момента cbi−1 (σ 0 ) − Ω + ai−1 . Все остальные операции начинаются в то же время как и в σ 0 . Получим cak−1 (σ 00 ) = cbi−1 (σ 0 ) − Ω + ai−1 + k−1 X aj ≤ sak (σ 0 ). j=i Это расписание допустимо и имеет ту же длину, что и σ 0 . 2.3 Пусть cai (σ 0 ) > cbi−1 (σ 0 ). Тогда (см. рис. 1.4 (d)), имеем ai−1 + (cbi−1 (σ 0 ) − sai (σ 0 )) ≤ Ω, sai (σ 0 ) ≥ cbi−1 (σ 0 ) − Ω + ai−1 . Начиная выполнять работу i во время cbi−1 (σ 0 ) − Ω + ai−1 , можно только улучшить расписание без нарушения буферного ограничения. В итоге, пусть sai (σ) = sai (σ 0 ) и sbi (σ) 6= sbi (σ 0 ). Так как каждая вторая операция в σ начинается в наиболее ранний момент времени, то sbi (σ) < sbi (σ 0 ). Положим sbi (σ 00 ) = sbi (σ) и зафиксируем время начала выполнения остальных операций. Полученное новое расписание допустимо и его длина не превосходит Cmax (σ 0 ). Теорема доказана. Глава 1. Вычислительная сложность потоковых задач с буфером 34 Назовем расписание, полученное по формулам (1.5) – (1.8), поздним перестановочным расписанием для AP –задачи. Из равенства (1.7) получаем следующий результат. Лемма 2 Пусть обе машины в AP –задаче выполняют все работы в одинаковом порядке. Тогда машина A работает без простоев тогда и только тогда, когда cbi − sai ≤ Ω для всех работ i ∈ J. Пусть в P P – задаче работы выполняются в порядке π на машине A. Обозначим через Ωir свободное место в буфере после загрузки работ с P i-ой по (r − 1)-ю, т.е. Ωir = Ω − r−1 k=i aπ(k) . Лемма 3 Пусть в P P –задаче обе машины выполняют работы в соответствии с перестановкой π = (1, 2, , . . . , n), и расписание σ задается следующими рекуррентными формулами sa1 = 0, (1.9) sb1 = ca1 , (1.10) sar = max{car−1 , cbx−1 , cbr−1 − Ω + ar−1 }, 2 ≤ r ≤ n, (1.11) sbr = max{cbr−1 , car }, 2 ≤ r ≤ n, (1.12) где x = min{i|Ωir > ar }. Пусть σ 0 — другое расписание работ для перестановки π, тогда Cmax (σ) ≤ Cmax (σ 0 ). Доказательство Пусть r — первая такая работа в σ 0 , что sar (σ) 6= sar (σ 0 ) или sbr (σ) 6= sbr (σ 0 ). Пусть x = min{i|Ωir > ar } и µ = max{car−1 , cbx−1 , cbr−1 − Ω + ar−1 }. Глава 1. Вычислительная сложность потоковых задач с буфером 35 1. Предположим, что sar (σ 0 ) ≥ µ. Рассмотрим новое расписание σ 00 , в котором sar (σ 00 ) = µ и все остальные операции начинаются в то же самое время, как и в σ 0 . Легко проверить, что новое расписание является допустимым и имеет ту же длину, что и σ 0 . 2. Пусть sar (σ 0 ) < µ. Поскольку работа r начинается на первой машине после завершения работы r − 1, то имеем sar (σ 0 ) ≥ car−1 (σ 0 ). Кроме того, из ограничения на размер буфера вытекает sar (σ 0 ) ≥ cbx−1 . Значит µ = cbr−1 (σ) − Ω + ar−1 и max{car−1 , cbx−1 } ≤ sar (σ 0 ) < cbr−1 (σ) − Ω + ar−1 . Из последнего неравенства получаем cbr−1 (σ) − sar−1 (σ) > Ω. Так как расписания σ и σ 0 одинаковы для первых r − 1 работ, то cbr−1 (σ 0 ) − sar−1 (σ 0 ) > Ω. Пусть k последняя работа, для которой sak (σ 0 ) < cbi−1 (σ 0 ), P значит kj=r−1 aj ≤ Ω . Преобразуем σ 0 в σ 00 следующим образом. Поставим первые операции работ r, . . . , k одна за другой начиная от cbr−1 (σ 0 ) − Ω + ar−1 . Все остальные операции начинаются, так же как и в σ 0 . Положим cak (σ 00 ) = cbr−1 (σ 0 ) − Ω + ar−1 + k X aj ≤ cbr−1 (σ 0 ). j=r Так как вторые операции работ r, . . . , n начинаются после cbr−1 (σ 0 ), то полученное расписание является допустимым и имеет длину такую же как σ 0 . Глава 1. Вычислительная сложность потоковых задач с буфером 36 В итоге, пусть sar (σ) = sar (σ 0 ) и sbr (σ) 6= sbr (σ 0 ). Так как каждая вторая операция в σ начинается так рано как возможно, имеем sbr (σ) < sbr (σ 0 ). Положим sbr (σ 00 ) = sbr (σ) и оставим прежним время начала для остальных операций. Полученное новое расписание является допустимым и его длина не превосходит Cmax (σ 0 ). Теорема доказана. Назовем расписание полученное с помощью формул (1.9) – (1.12) поздним перестановочным расписанием для P P –задачи. 1.3 Сложность задачи Известно [37], что P P –задача NP–трудна сильном смысле. В этом разделе будет показано, что задачи RP P и RAP также являются NP-трудными в сильном смысле. Кроме того будут рассмотрены частные случаи этих задач для быстрых и медленных сетей и установлена их вычислительная сложность. 1.3.1 Сложность RAP –задачи Рассмотрим следующую NP–трудную в сильном смысле задачу о 3–Разбиении [21]. Задано целое число X > 1 и множество Z из 3r таких целых положительных чисел {x1 , x2 , . . . , x3r }, X/4 < xi < X/2, 1 ≤ i ≤ 3r, что P3r i=1 xi = rX. Существует ли такое разбиение Z1 , Z2 , . . . , Zr множества P Z, что xi ∈Zl xi = X, 1 ≤ l ≤ r? Теорема 4 RAP –задача является NP-трудной в сильном смысле. Доказательство По примеру I задачи 3-Разбиение построим пример I 0 для RAP –задачи с 4r работами. Для каждого i, 1 ≤ i ≤ 3r зададим Глава 1. Вычислительная сложность потоковых задач с буфером 37 базовую работу i, для которой положим ai = 0, bi = xi . Кроме того, определим r разделяющих работ, для которых ai = X, bi = 0, 3r + 1 ≤ i ≤ 4r. Размер буфера Ω зададим равным X. Покажем, что в примере I существует требуемое разбиение множества Z тогда и только тогда, когда в примере I 0 существует расписание длины ∗ Cmax ≤ rX. Пусть σ ∗ такое расписание. Заметим, что нагрузка каждой машины равна rX. Отсюда следует, что в σ ∗ машины A и B должны работать без простоев все время с момента 0 до момента rX. Ограничение на размер буфера означает, что никакие две разделяющие работы не могут находиться в буфере одновременно. Таким образом машина A может работать без простоев тогда и только тогда, когда на машине B разделяющая работа выполняется сразу после окончания ее на машине A, т.е. caj (σ ∗ ) = sbj (σ ∗ ) + 0 = cbj (σ ∗ ). Это означает, что машина B должна выполнять разделяющие работы в моменты времени τi = iX, i = 1, . . . , r. Так как на машине B не разрешены прерывания и машина B должна работать без простоев, то все базовые работы должны выполняться в r интервалов длины X. Это возможно, только если множество Z содержит требуемое разбиение. Теорема доказана. 1.3.2 RP P –задача с быстрой/медленной скоростью передачи Если объекты передаются в высокоскоростной сети, то возникает ситуация, когда время загрузки каждого файла меньше времени его воспро- Глава 1. Вычислительная сложность потоковых задач с буфером 38 изведения. С другой стороны в перегруженных сетях или сетях предрасположенных к задержкам передачи информации возникает ситуация, когда время загрузки каждого файла больше времени его воспроизведения. Назовем RP P –задачу RP P > –задачей (RP P < –задачей), если ai ≥ bi (ai < bi ) для всех работ. Покажем, что обе задачи являются NPтрудными в сильном смысле, что усиливает результат из [37]. Кроме того новые доказательства существенно проще предшествующих. Теорема 5 RP P > –задача является NP-трудной в сильном смысле. Доказательство По примеру I задачи 3–Разбиение, построим пример I 0 RP P > –задачи с 4r работами. Для каждого i, 1 ≤ i ≤ 3r зададим базовую работу i, для которой положим ai = xi , bi = 0. Кроме того, определим r разделяющих работ, для которых ai = X + 1, bi = X для 3r + 1 ≤ i ≤ 4r. Пусть размер буфера Ω равен 2X + 1. Покажем, что в примере I существует требуемое разбиение множества Z тогда и только тогда, когда в примере I 0 существует расписание длины ∗ Cmax ≤ r(2X + 1). Пусть σ ∗ такое расписание. Из-за ограничений на размер буфера никакие две разделяющие работы не могут находиться в буфере одновременно. Это означает, что интервалы выполнения любых двух разделяющих работ не пересекаются. Следовательно, необходимо, по крайней мере r(2X + 1) единиц времени, чтобы выполнить все разделяющие работы. Тогда в σ ∗ эти работы выполняются друг за другом без задержек. Следовательно, выполнение разделяющих работ на машине A в расписании σ ∗ делит интервал времени [0, r(2X + 1)] на r отдельных интервалов длины X + 1, в которых выполняются разделяющие работы и r свободных интервалов длины X Глава 1. Вычислительная сложность потоковых задач с буфером 39 Рис. 1.5: Расписание σ ∗ (см. рис. 1.5). Заметим, что загрузка машины A равна r(2X + 1). Таким образом машина A работает без простоев в σ ∗ . Значит все базовые работы должны быть помещены в r свободных интервалов, а такое размещение возможно тогда и только тогда, когда множество Z имеет требуемое разбиение. Теорема доказана. Теорема 6 RP P < –задача является NP-трудной в сильном смысле. Доказательство По примеру I задачи 3-Разбиение, построим пример I 0 для RP P < –задачи с 4r работами. Для каждого i, 1 ≤ i ≤ 3r зададим базовую работу i, для которой положим ai = 0, bi = xi . Кроме того, определим r разделяющих работ, для которых ai = X, bi = X + 1, 3r + 1 ≤ i ≤ 4r. Пусть размер буфера равен Ω = 2X + 1. Покажем, что в примере I существует требуемое разбиение множества Z тогда и только тогда, когда в примере I 0 существует расписание ∗ длины Cmax ≤ r(2X + 1). Пусть σ ∗ такое расписание. Аналогично дока- зательству теоремы 5 разделяющие работы выполняются друг за другом без задержек. Таким образом, выполнение разделяющих работ в σ ∗ на второй машине делит интервал времени [0, r(2X + 1)] на r интервалов длины X + 1, в которых выполняется по одной разделяющей работе и r Глава 1. Вычислительная сложность потоковых задач с буфером 40 свободных интервалов длины X. Так как вторая машина должна работать в σ ∗ без задержек, то все базовые работы должны быть помещены в r свободных интервалов. Такое размещение возможно тогда и только тогда, когда множество Z имеет требуемое разбиение. Теорема доказана. 1.3.3 RAP –задача с быстрой/медленной скоростью передачи Назовем RAP –задачу RAP > –задачей (RAP < –задачей), если для всех работ ai ≥ bi (ai < bi ). Лемма 4 В RAP > –задаче для любой перестановки работ в позднем перестановочном расписании машина A работает без простоев. Доказательство Пусть π — произвольная перестановка работ. Рассмотрим позднее перестановочное расписание σ в котором работы выполняются в порядке π. Докажем по индукции, что cbi − sai ≤ Ω для всех i. Заметим, что cb1 ≤ Ω. Пусть для некоторого k < n утверждение верно для всех 1 ≤ i ≤ k. Тогда работа k + 1 начинает выполняться на машине A в момент sak+1 = cak = sak + ak . На машине B работа k + 1 начинает выполняться в момент sbk+1 = max{sak+1 + ak+1 , cbk }. Сначала рассмотрим случай когда sbk+1 = sak+1 + ak+1 . Тогда получаем cbk+1 − sak+1 = bk+1 + ak+1 ≤ Ω. Глава 1. Вычислительная сложность потоковых задач с буфером 41 Пусть sbk+1 = cbk и работа j будет первая работа такая, что машина B выполняет работы j, . . . , k + 1 без простоя. Тогда, имеем sak+1 = saj + k X ai i=j и cbk+1 = saj + aj + k+1 X bi . i=j Из условия леммы имеем ai ≥ bi и ai + bi ≤ Ω для всех 1 ≤ i ≤ n. Следовательно, bi ≤ Ω2 . Отсюда получаем cbk+1 − sak+1 ≤ k+1 X i=j bi − k X i=j+1 ai = ( k X i=j+1 bi − k X ai ) + (bj + bk+1 ) ≤ Ω. i=j+1 По лемме 2 получаем, что машина A работает без простоев. Лемма доказана. Теорема 7 Пусть в RAP > –задаче обе машины выполняют работы в соответствии с перестановкой π, в которой работы упорядочены по невозрастанию величин bi . Тогда позднее расписание σ, соответствующее π, является оптимальным для RAP > –задачи. Доказательство Перестановка π указанная в теореме дает оптимальное расписание для задачи Джонсона. Лемма 4 означает, что машина A выполняет все работы без простоев. Следовательно, длина позднего перестановочного расписания σ для RAP > –задачи совпадает с длиной оптимального расписания задачи Джонсона. Теорема доказана. Следствие 1 Пусть в AP > –задаче обе машины выполняют работы в соответствии с перестановкой π, в которой работы упорядочены по невозрастанию величин bi . Тогда позднее расписание σ, соответствующее π, является оптимальным расписанием для AP > –задачи. Глава 1. Вычислительная сложность потоковых задач с буфером 42 Доказательство AP > – задача линейно сводится к RAP – задаче. Более того, полученная задача является RAP > – задачей, так как время выполнения работы на машине B не может увеличиться. Следовательно перестановка σ дает оптимальное расписание. Теорема 8 Пусть в RAP < –задаче обе машины выполняют работы в соответствии с перестановкой π, в которой работы упорядочены по неубыванию величин ai . Тогда позднее расписание σ, соответствующее π, является оптимальным расписанием для RAP < – задачи. Доказательство Перестановка π указанная в теореме дает оптимальное расписание для задачи Джонсона. Заметим, что длина оптимального расписания в задаче Джонсона является нижней оценкой на длину оптимального расписания RAP < – задачи. Обозначим через c∗ длину расписания, соответствующего π, в задаче Джонсона. Пусть все работы будут пронумерованы в соответствии с π. Вспомним, что времена начала операций можно получить по следующим формулам sa1 = 0, sb1 = ca1 , sar = car−1 , sbr = max{cbr−1 , car }, 2 ≤ r ≤ n. Заметим, что первое, второе и четвертое равенство совпадают с выражениями (1.5), (1.6) и (1.8) для поздних перестановочных расписаний RAP –задачи. Глава 1. Вычислительная сложность потоковых задач с буфером 43 Пусть k — последняя работа, такая что cak = sbk в σ. Тогда ∗ c = k X ai + i=1 n X bi . i=k Также заметим, что cak = sbk означает, что cbk − sak ≤ Ω. Рассмотрим позднее перестановочное расписание σ для RAP < – задачи. Если не существует такой работы r, что cbr − sar > Ω в σ, то по лемме 2 машина A работает без простоев. Это означает, что позднее перестановочное расписание σ совпадает с оптимальным расписанием задачи Джонсона. Значит, если работы r не существует, то утверждение верно. Пусть r — первая работа, для которой cbr − sar > Ω в оптимальном расписании задачи Джонсона. Сначала покажем, что r > k. Действительно, для RAP < – задачи имеем ar + ar+1 ≤ Ω. Это означает, что в расписании Джонсона cbr+1 = max{car+1 , cbr } = cbr , sar+1 = sar + ar . Таким образом, cbr+1 −sar+1 = cbr +br+1 −(sar +ar ) ≥ cbr +ar+1 −sar −ar > Ω. Принимая во внимание, что ar+1 ≥ ar в σ , получим cbi − sai > Ω для всех i = r, . . . , n. Следовательно r > k. Равенство (1.7) означает, что позднее перестановочное расписание и расписание Джонсона совпадают для работ 1, . . . , r. Имеем cbr = k X i=1 ai + r X i=k bi . Глава 1. Вычислительная сложность потоковых задач с буфером 44 Сейчас докажем, что sbi+1 = cbi для всех i = r, . . . , n − 1 в позднем перестановочном расписании σ. По равенству (1.7), получаем cai+1 = sai+1 + ai+1 = max{cai , cbi − Ω + ai } + ai+1 = max{sai , cbi − Ω} + ai + ai+1 = cbi − Ω + ai + ai+1 ≤ cbi . Таким образом для всех r, . . . , n − 1 получаем sbi+1 = max{cai+1 , cbi } = cbi . Это означает, что вторая машина выполняет работы i = r, . . . , n − 1 без простоев и Cmax (σ) = k X i=1 ai + r X i=k bi + n X bi = c∗ . i=r+1 Теорема доказана. Заметим, что полиномиальная разрешимость RAP < – задачи не означает полиномиальную разрешимость AP < –задачи. Теорема 9 AP < –задача является NP-трудной в сильном смысле. Доказательство Пусть задан пример задачи 3–Разбиение, построим пример I для AP < –задачи с 4r + 1 работой. Пусть существует стартовая работа i0 для которой a0 = 0, b0 = 1, 3r базовых работ для которых ai = 1, bi = xi , 1 ≤ i ≤ 3r, и r разделительных работ для которых определим ai = X − 2, bi = X, 3r + 1 ≤ i ≤ 4r. Положим Ω = X − 1. Заметим что, ai + bi > Ω для разделительных работ. Аналогично доказательству теоремы 1, построим эквивалентный пример для RAP –задачи. Определим новое значение bi = 1 для всех разделительных работ. Более того, теорема 2 и равенство (1.4) означают, Глава 1. Вычислительная сложность потоковых задач с буфером 45 ∗ что пример I имеет расписание длиною Cmax ≤ r(X + 1) + 1 + r(X − 1) ∗ тогда и только тогда, когда пример I имеет расписание длиною Cmax ≤ r(X + 1) + 1. Заметим, что пример I состоит из тех же работ, что и пример в доказательстве теоремы 4. Как мы уже знаем из доказательства теоремы 4, требуемое разбиение для множества Z существует тогда и только то∗ гда, когда существует расписание длиною Cmax ≤ r(X + 1) + 1. Теорема доказана. Полученные результаты можно представить в виде следующей схемы: F 2|buffer|Cmax @ ¡ P @ ¡ i∈Nj ai ≤ Ω¡ @ P @ i∈J @ R @ ¡ ¡ ª ¡ P P –задача ai + bi ≤ Ω£ £ £ AP –задача ¢ £ ¢ ¢ ai < bi¢ ¢ ¢ ai > bi RP P – задача ¢ ¢ ' ¢® RP P < J J J J ai J J ^ ¤A ¤ A ¢ Aai > bi A A A AU ¢ ¢ ¤ ¢ ¢® ¢ RP P > AP < NP-трудные в сильном смысле & ¤ ai < bi¤ ¢ ¤ $ ' ? + bi ≤ Ω RAP – задача ¢ ¢A ¢ A ¢ A ¢ ¢ ¢ £ £° ai < bi¢ ai (τ ) ≤ Ω ¤² ¤ A Aai > bi A A A AU AP > RAP < RAP > Полиномиально разрешимые % & $ % В следующих главах для NP-трудных вариантов рассматриваемой задачи будут описаны разработанные методы локального поиска и исследована их эффективность. Глава 2 Нижние и верхние оценки оптимума для цеховых задач потокового типа с активным буфером Для многих NP–трудных задач комбинаторной оптимизации погрешность любого полиномиального алгоритма не может быть ограничена константой. Это обстоятельство подталкивает к разработке неполиномиальных алгоритмов, среди которых наибольшей эффективностью отличаются метаэвристики. Сам термин метаэвристика был предложен в [22] для обозначения достаточно общих эвристических схем решения задач комбинаторной оптимизации и не только их. В отличие от алгоритмов с оценками, метаэвристики не привязываются к специфике решаемой задачи. Это достаточно общие итерационные процедуры, использующие рандомизацию и элементы самообучения, интенсификацию и диверсификацию поиска, адаптивные механизмы управления, конструктивные эвристики и методы локального поиска. К метаэвристикам принято относить методы имитации отжига Simulated Annealing (SA), поиск с запретами Tabu Search (TS), генетические алгоритмы Genetic Algorithms (GA) 46 Глава 2. Верхние и нижние оценки для задачи с активным буфером 47 и эволюционные методы Evolutionary Computation (EC), а также поиск с чередующимися окрестностями Variable Neighborhood Search (VNS), муравьиные колонии Ant Colony Optimization (ACO), вероятностные жадные алгоритмы Greedy Randomized Adaptive Search Procedure (GRASP) и др. [7, 15, 17, 19]. Идея этих методов основана на предположении, что целевая функция решаемой задачи имеет много локальных экстремумов, а просмотр всех допустимых решений невозможен, несмотря на конечность их числа. В такой ситуации нужно сосредоточить поиск в наиболее перспективных частях допустимой области. Таким образом, задача сводится к выявлению таких областей и быстрому их просмотру. Каждая из метаэвристик решает эту проблему по-своему. Среди множества метаэвристик можно выделить так называемые траекторные методы, в которых на каждой итерации имеется одно допустимое решение и осуществляется переход к следующему, и методы, работающие с семейством (популяцией) решений. Траекторные методы оставляют в пространстве поиска траекторию, последовательность решений, где каждое решение является соседним для предыдущего относительно некоторой окрестности. Понятие окрестности играет здесь центральную роль. В этих методах окрестность определяется заранее и не меняется в ходе работы. Целевая функция вдоль траектории меняется немонотонно, что позволяет "выбираться" из локальных экстремумов и находить всё лучшие и лучшие приближенные решения задачи. Элементы самоадаптации позволяют менять управляющие параметры алгоритмов, используя предысторию поиска. Более сложные методы, например, VNS, используют несколько окрестностей и меняют их систематически в целях Глава 2. Верхние и нижние оценки для задачи с активным буфером 48 диверсификации. Наибольший прогресс в области метаэвристик наблюдается на пути их гибридизации, построения гиперэвристик [15], автоматически подбирающих наиболее эффективные эвристики для данного примера и симбиоз с классическими методами математического программирования. Остановимся подробнее на последнем направлении. Здесь наблюдается достаточно широкий спектр исследований: – построение экспоненциальных по мощности окрестностей, в которых поиск наилучшего решения осуществляется за полиномиальное время путем решения вспомогательной оптимизационной задачи [8, 25, 26]; – гибридизация метаэвристик с точными методами, например, с методами ветвей и границ [1, 23] и динамического программирования [46]. – разработка новых точных методов, использующих идеи локального поиска [20]; – применение разных математических формулировок решаемой задачи и использование различных кодировок решений в метаэвристиках [33, 40] и др. Обзор достижений в данном направлении можно найти в [10]. Одним из способов определения качества решений, которые получаются с помощью приближенных алгоритмов является их сравнение с нижними оценками. Для задачи с активным буфером предложено две нижние оценки. Первая из них основана на задаче целочисленного линейного программирования. В результате замены целочисленных переменных в ЦЛП формулировке на непрерывные получается первая нижняя оценка. Вторая нижняя оценка использует сходства данной задачи Глава 2. Верхние и нижние оценки для задачи с активным буфером 49 с классической задачей Джонсона. Установлено, что оптимальное решение задачи Джонсона является нижней оценкой для рассматриваемой задачи с цифровым буфером. Дополнительно рассматриваются аналогичные нижние оценки для ограниченной задачи. Показано, что переход от исходной задачи к ограниченной значительно улучшает обе нижние оценки. В данной главе рассматривается только задача с активным буфером. Глава организована следующим образом. В первом разделе приводится математическая постановка задачи и обсуждаются возможности ее решения классическими методами целочисленного линейного программирования. Во втором разделе исследуются две нижние оценки, оценка линейного программирования и оценка Джонсона, и доказывается, что переход к ограниченной задаче не ухудшает эти оценки. В третьем и четвертом разделах вводятся окрестности для локального поиска, и приводится схема метода с чередующимися окрестностями. В пятом разделе обсуждаются результаты численных экспериментов. Показано влияние размера буфера на рост нижней оценки при переходе к ограниченной задаче. При больших значениях размера буфера задача вырождается, но при средних размерах относительно длины файлов рост нижней оценки может достигать 9%. Для случайно порожденных примеров показана разница между верхними и нижними оценками, отмечено их тотальное совпадение при большом числе работ. Для трудных тестовых примеров исследуется поведение метода локального поиска, частота получения оптимума и средняя погрешность. Глава 2. Верхние и нижние оценки для задачи с активным буфером 2.1 50 Математическая модель В данной главе будет рассматриваться задача с активным цифровым буфером (AP –задача). Используя рекуррентные формулы из леммы 1, можно получить следующую задачу целочисленного линейного программирования. Пусть последовательность π(i), i ∈ J задает порядок выполнения работ. Заметим, что по теореме 3 можно ограничиться расписаниями у которых порядки на обеих машинах совпадают. Введем переменные xij ∈ {0, 1}, которые также как и π задают порядок выполнения работ: xij = 1, если работа i выполняется j-ой по порядку, т.е. i = π(j), и xij = 0 в противном случае. Тогда: X xkj = k∈J X xil = 1, i, j ∈ J. (2.1) l∈J Будем опускать индекс π, если это не создает двусмысленности. Переменные xij позволяют вычислить длительность работы на машине A для j–й по порядку работы в перестановке π. Обозначим эту величину paj . Аналогичную величину для машины B обозначим pbj . Тогда paj = n X ai xij , j ∈ J, (2.2) bi xij , j ∈ J. (2.3) i=1 pbj = n X i=1 Введем дополнительные переменные saj и sbj , которые будут определять начало выполнения j–й по порядку работы на машинах A и B соответственно sa1 = 0, (2.4) Глава 2. Верхние и нижние оценки для задачи с активным буфером 51 saj+1 ≥ saj + paj , j ∈ J, (2.5) sbj+1 ≥ sbj + pbj , j ∈ J, (2.6) sbj ≥ saj + paj , j ∈ J. (2.7) Условие ограниченности буфера (1.7) влечет saj+1 ≥ sbj + pbj + paj − Ω, j ∈ J. (2.8) Сформулированные условия задают множество допустимых расписаний. Задача состоит в нахождении допустимого расписания, доставляющего минимум следующей целевой функции F (π) = sbn + pbn . (2.9) Задача (2.1)–(2.9) является задачей целочисленного линейного программирования. Такие задачи можно решать с помощью коммерческих пакетов. Одним из лучших является пакет CPLEX [47]. Рассматривается 50 примеров. В каждом примере 20 работ, величины ai и bi выбираются случайно из интервала [1, 99], размер буфера 100. Примеры решаются дольше суток. Далее исследовались эти же примеры, но приведенные к виду ограниченной задаче. По теореме 2 такой переход сохраняет оптимальное решение. Ограниченные задачи оказались не так безнадежны для GAMS. Численные эксперименты показали, что полученные примеры ограниченной задачи можно разделить на две группы. Есть простые примеры в которых нет разрыва целочисленности. И сложные, в которых он есть. Из 50 примеров в 46 не было разрыва целочисленности и эти примеры решались примерно за минуту. В остальных 4 примерах оптимальное решение не было найдено за сутки Глава 2. Верхние и нижние оценки для задачи с активным буфером 52 работы. Результаты численных экспериментов представлены в таблице 2.1. Таблица 2.1: Простые и сложные примеры RAP –задачи n=20 # примеров ср. разрыв ср. время простые 46 0% 65 сек сложные 4 0.331 % 105724 сек Эти численные эксперименты показали, что RAP –задача может оказаться проще, чем AP –задача. Это связано с тем что нижняя оценка может быть точнее. В следующем разделе будут предложены нижние оценки для обоих вариантов задач. 2.2 Нижние оценки В этом разделе построим нижние оценки для задач AP и RAP . Напомним, что RAP –задачу можно получить из любой AP –задачи по формулам из теоремы 1. Не смотря на то, что задачи эквивалентны и оптимальные решения совпадают, нижние оценки для RAP –задачи часто лучше, чем для AP –задачи. 2.2.1 Оценка линейного программирования Заменим в задаче (2.1)–(2.9) условие целочисленности переменных xij на условие принадлежности их отрезку [0, 1]. Получим задачу линейного программирования. Оптимальное значение ее целевой функции обозначим через LBlp . Заметим, что оптимальное решение задачи линейного программирования является нижней оценкой для соответствующей за- Глава 2. Верхние и нижние оценки для задачи с активным буфером 53 дачи целочисленного линейного программирования. Наряду с этой нижней оценкой рассмотрим оценку линейного программирования для RAP – задачи. Обозначим ее LB lp . Теорема 10 LBlp ≤ LB lp + Pn i=1 δi . Доказательство Пусть xij — оптимальное решение линейной релаксации RAP –задачи. По нему однозначно определяются переменные paj , pbj , saj и sbj RAP –задачи. Решение xij также является допустимым решением для AP –задачи, т.к. для xij выполняется ограничение (2.1). Заметим, что paj = paj , pbj = n X n n X X b bi xij = (bi + δi )xij = pj + δi xij . i=1 i=1 i=1 Введем величину χj = n X δi xij . i=1 Имеем n X χj = j=1 n X δi xij = i,j=1 n X δi . i=1 Покажем, что saj ≤ saj + j−1 X χk k=1 и sbj ≤ sbj + j−1 X χk k=1 для любого j ∈ J. Докажем эти неравенства индукцией по числу работ. Для j = 1 утверждение очевидно. Пусть утверждение справедливо для некоторого j. Покажем, что эти условия будут выполнены и для j + 1. Согласно неравенствам (2.1)–(2.8) Глава 2. Верхние и нижние оценки для задачи с активным буфером 54 значение saj+1 можно вычислить по формулам saj+1 = max{saj + paj , sbj + pbj + paj − Ω + χj } ≤ max{saj + paj , sbj + pbj + paj − Ω} + χj ≤ по предположению индукции j−1 X ≤ max{saj + paj + χk , sbj + pbj + paj − Ω + k=1 max{saj Значит saj+1 ≤ saj+1 + + j−1 X χk } + χj = k=1 paj , sbj + pbj + paj − Ω} + j X χk . k=1 Pj k=1 χk . Далее докажем для sbj+1 : sbj+1 = max{saj+1 + paj+1 , sbj + pbj } ≤ max{saj+1 + paj+1 + j X χk , sbj + j−1 X k=1 = max{saj+1 + paj+1 , sbj + χk + pbj + χj } = k=1 pbj } + j X k=1 χk = sbj+1 + j X χk . k=1 В результате получим LB lp + n X δi = sbn i=1 + pbn + n X χk ≥ sbn + pbn ≥ LBlp . k=1 Теорема доказана. 2.2.2 Оценка Джонсона Задача без буферного ограничения совпадает с классической задачей Джонсона [30]. В литературе по теории расписаний для нее принято обозначение F 2||Cmax . Пусть saj (I, σ) — время начала выполнения j-ой по Глава 2. Верхние и нижние оценки для задачи с активным буфером 55 порядку работы на машине A в расписании σ для примера I. Напомним, что для задачи Джонсона существует оптимальное расписание, в котором порядок выполнения работ на машинах A и B совпадает, и машина A работает без простоев. Тогда каждая перестановка π задает единственное расписание σ, и моменты начала выполнения работ задаются следующими формулами: saj+1 (I, σ) = saj (I, σ) + aπ(j) , sbj+1 (I, σ) = max{saj+1 (I, σ) + aπ(j+1) , sbj (I, σ) + bπ(j) }. Оптимальная перестановка в задаче F 2||Cmax может быть найдена за время O(n log n). Длина оптимального расписания будет нижней оценкой для исходной задачи с буфером. Назовем перестановку, соответствующую оптимальному решению задачи F 2||Cmax , перестановкой Джонсона. Обозначим LBJ — нижнюю оценку, полученную алгоритмом Джонсона для AP –задачи, и LB J — нижнюю оценку для RAP –задачи. Теорема 11 LBJ ≤ LB J + P i δi < 2LBJ . Доказательство Пусть I пример AP –задачи, I соответствующий ему пример RAP –задачи и π перестановка Джонсона для примера I. Покажем, что sbj (I, σ) ≤ sbj (I, σ) + j−1 X δπ(k) k=1 по индукции. Для j = 1 утверждение выполнено. Пусть утверждение справедливо для некоторого j. Тогда: sbj+1 (I, σ) = max{saj+1 (I, σ) + aπ(j+1) , sbj (I, σ) + bπ(j) } ≤ ≤ max{saj+1 (I, σ) + aπ(j+1) , sbj (I, σ) + j X k=1 δπ(k) + bπ(j) } ≤ Глава 2. Верхние и нижние оценки для задачи с активным буфером ≤ max{saj+1 (I, σ)+aπ(j+1) , sbj (I, σ)+bπ(j) }+ j X δπ(k) ≤ sbj+1 (I, σ)+ k=1 56 j X δπ(k) . k=1 Так как длина оптимального расписания примера I не превосходит длины расписания σ, то получаем LBJ ≤ LB J + X δi . i∈J P Докажем второе неравенство. Заметим, что LBJ ≥ LB J и i∈J δi ≤ P P j∈J bj ≤ LBJ , получаем, что LB J + i δi ≤ 2LBJ . Строгое неравенство P P следует из того, что i∈J δj = j∈J bj когда все aj = Ω. Чтобы получить, P что j∈J = LBJ , необходимо чтобы aj = 0, значит неравенство является строгим. Покажем, что оценка является точной. Рассмотрим пример из n одинаковых работ. Пусть ai = X − 1, bi = X + 1. Тогда длина расписания Джонсона совпадает с загрузкой машины B с одной работой на машине A, т.е. LBJ = X − 1 + (X + 1)n. Теперь рассмотрим случай когда размер буфера Ω = X. На величину LBJ размер буфера не влияет. Перейдем к ограниченной задаче. ai = ai , bi = 1, δi = X. Теперь длина расписания Джонсона это загрузка машины A с одной работой на машине B, т.е. LB J = (X − 1)n + 1, и Pn 2nX−n+1 i=1 δi = Xn. При n → ∞, X → ∞, получаем nX+n+X−1 → 2. Теорема доказана. Оценки LB J и LB lp полиномиально вычислимы, однако, для первой оценки имеется строго полиномиальный алгоритм Джонсона, а для второй оценки требуется решение задачи линейного программирования. В этом смысле первая оценка предпочтительнее. Тем не менее, нельзя утверждать, что одна из этих оценок лучше другой. В ходе численных Глава 2. Верхние и нижние оценки для задачи с активным буфером 57 экспериментов было установлено, что они несравнимы между собой. 2.3 Поиск с чередующимися окрестностями Методы локального поиска показали свою высокую эффективность при решении широкого круга NP-трудных задач комбинаторной оптимизации [41]. Локальный поиск с чередующимися окрестностями принадлежит к этому классу методов. Его основная идея состоит в систематическом чередовании окрестностей и соответствующем изменении ландшафта в ходе локального поиска. При правильном выборе окрестностей этот метод гарантирует в асимптотике получение точного решения задачи [11]. Легкость адаптации к различным моделям исследования операций, высокая гибкость и эффективность при решении прикладных задач обеспечили этому методу широкое применение в теории расписаний [14, 16], размещений [12] и других. Обозначим через Nk , k = 1, . . . , kmax набор окрестностей. Следующие три тезиса лежат в основе данного метода: • Локальный оптимум по одной окрестности может не быть локальным оптимумом по другой окрестности. • Глобальный оптимум является локальным по любой окрестности. • В среднем локальные оптимумы ближе к глобальному оптимуму, чем случайно выбранная точка. Распределение локальных оптимумов в допустимой области не является равномерным. Они расположены достаточно близко друг к другу, занимая малую часть допустимой области. Глава 2. Верхние и нижние оценки для задачи с активным буфером 58 Последнее утверждение, конечно, не означает, что все локальные оптимумы сосредоточены в одном месте. Таких мест может быть много, и где находится глобальный оптимум предсказать невозможно. По– видимому, именно это обстоятельство и делает задачу NP–трудной. Тем не менее, принцип искать лучший локальный оптимум рядом с уже известными часто приводит к положительным результатам. Именно эта идея лежит в основе алгоритмов связывающих путей [23], различных операторов скрещивания для генетических алгоритмов [24] и др. По сути, это известный принцип интенсификации поиска, который в сочетании с принципом диверсификации позволяет получать наиболее мощные метаэвристики [41]. Метод чередующихся окрестностей может быть реализован одним из трех способов: детерминированным, вероятностным или смешанным, сочетающим в себе два предшествующих. 1. Детерминированное локальное улучшение с чередованием окрестностей (VND). В этом методе предполагается фиксированный порядок смены окрестностей и поиск локального оптимума для каждой из них. Ниже приводится общая схема метода для задачи min{F (x)|x ∈ X} с целевой функцией F (x) и областью допустимых решений X. Алгоритм VND Шаг 1. Выбрать окрестности Nk , k = 1, . . . , kmax , и начальную точку x. Шаг 2. Повторять, пока не выполнен критерий остановки. 2.1 k ← 1. Глава 2. Верхние и нижние оценки для задачи с активным буфером 59 2.2 Повторять до тех пор, пока k ≤ kmax : (a) найти такое x0 ∈ Nk (x), что F (x0 ) = min{F (y)|y ∈ Nk (x)}; (b) если F (x0 ) < F (x), то положить x ← x0 , k ← 1, иначе k ← k + 1. Наряду с указанным выше последовательным порядком смены окрестностей, рассматривают также и групповую стратегию: для каждого элемента одной окрестности ищется наилучшее соседнее решение по другой окрестности. 2. Вероятностное локальное улучшение с чередованием окрестностей (RVNS). Этот метод получается из предыдущего случайным выбором точек в окрестности. Этап нахождения наилучшего соседнего решения опускается. Алгоритм RVNS Шаг 1. Выбрать окрестности Nk , k = 1, . . . , kmax , и начальную точку x. Шаг 2. Повторять, пока не выполнен критерий остановки. 2.1 k ← 1. 2.2 Повторять до тех пор, пока k ≤ kmax : (a) случайно выбрать x0 ∈ Nk (x); (b) если F (x0 ) < F (x), то положить x ← x0 , k ← 1, иначе k ← k + 1. Алгоритм RVNS наиболее эффективен при решении задач большой размерности, когда поиск локального оптимума и многократный просмотр окрестности требует слишком больших временных затрат. В этом Глава 2. Верхние и нижние оценки для задачи с активным буфером 60 случае часто оказывается, что достаточно брать kmax равным 2, а в качестве критерия остановки использовать определенное число итераций без смены рекорда. По сравнению с методами Монте-Карло данный подход отличается большей систематичностью и эффективностью [39]. Для задач размещения такой алгоритм дает решения того же качества что и алгоритм VND, но в 20–40 раз быстрее [28]. 3. Локальный поиск с чередованием окрестностей(VNS). Этот метод является комбинацией двух предшествующих методов. Алгоритм VNS Шаг 1. Выбрать окрестности Nk , k = 1, . . . , kmax , и начальную точку x. Шаг 2. Повторять, пока не выполнен критерий остановки. 2.1 k ← 1. 2.2 Повторять до тех пор, пока k ≤ kmax : (a) случайно выбрать x0 ∈ Nk (x); (b) применить локальный спуск с начальной точки x0 . Полученный локальный оптимум обозначается x00 ; (c) если F (x00 ) < F (x), то положить x ← x00 , k ← 1, иначе k ← k + 1. В качестве критерия остановки может использоваться максимально допустимое время счета или число итераций без смены рекорда. На шаге 2.2.(b) для получения локальных оптимумов могут использоваться любые алгоритмы, например, такие метаэвристики как поиск с запретами [23], алгоритмы имитации отжига [6] и др. В этом смысле данная схема Глава 2. Верхние и нижние оценки для задачи с активным буфером 61 открывает широкий простор для разработки гибридных методов, сочетая достоинства разных подходов к решению NP-трудных задач. 2.4 Окрестности Методы локального поиска показали высокую эффективность при решении широкого круга NP–трудных задач комбинаторной оптимизации. Локальный поиск с чередующимися окрестностями [5] принадлежит к этому классу методов. Его основная идея состоит в систематическом чередовании окрестностей и соответствующем изменении ландшафта в ходе локального поиска. При правильном выборе окрестностей этот метод гарантирует в асимптотике получение точного решения задачи [11]. Выбор системы окрестностей является принципиально важным для методов локального поиска. От него зависит как трудоемкость каждой итерации, число итераций для получения глобального оптимума, так и относительная погрешность решений, получаемых при заданном числе итераций. Принцип чередования окрестностей предполагает, что используемые окрестности являются разнотипными. Они должны удачно дополнять друг друга и привносить определенное разнообразие (диверсификацию) в локальный поиск, предотвращая преждевременную стагнацию процесса. Для каждой задачи можно предложить несколько разнотипных окрестностей разной мощности и, как следствие, получить разные множества локальных оптимумов. Ниже будет предложено пять разнотипных окрестностей для перестановок, одна из которых используется для этой задачи впервые. Пусть перестановка σ задает некоторое допустимое решение задачи. Определим следующие окрестности для этого Глава 2. Верхние и нижние оценки для задачи с активным буфером 62 решения. Пусть последовательность σ задает некоторое допустимое решение задачи. Определим следующие окрестности. • Окрестность N1 (σ) содержит все последовательности, получающиеся из σ либо перемещением одной работы на новое место, либо взаимной перестановкой двух работ. • Окрестность Nl (σ), l > 1 содержит все решения, получающиеся из данного не более l последовательными переходами к соседним решениям по окрестности N1 (σ). Назовем блоком несколько подряд идущих работ последовательности σ. • Окрестность N b (σ) содержит все последовательности, получающиеся из σ взаимной перестановкой двух непересекающихся блоков, возможно разных размеров. • Окрестность KLk (σ), k > 1 является аналогом окрестности Кернигана-Лина [33] и строится по следующему правилу: 1. Найдем наилучшее решение σ 0 в окрестности N1 (σ). Пусть это решение получается либо перемещением работы с позиции j 0 , либо взаимной перестановкой работ в позициях j 0 и j 00 . 2. Положим σ = σ 0 . Будем повторять шаги 1 и 2 не более k раз, используя позицию j 0 или пару (j 0 , j 00 ) не более одного раза. В результате получим набор последовательностей. Каждую из них будем считать соседней для исходного решения σ. Вместо окрестности N1 для построения окрестности Кернигана-Лина можно использовать окрестность N b . Эта окрестность шире и позволя- Глава 2. Верхние и нижние оценки для задачи с активным буфером 63 ет находить решения, которые сложно получить используя окрестность N1 . Окрестность N b хорошо подходит для этой задачи, так как несколько работ могут создавать удачную подпоследовательность — блок, и расписание нужно изменять не для одной работы, а для всего блока. Просмотр окрестности N b — трудоемкая процедура, поэтому далее будем рассматривать блоки из не более чем трех работ. Поиск с чередующимися окрестностями (VNS) был разработан Хансеном и Младеновичем в 1997 [5, 27]. Основная идея предлагаемого метода заключается в использовании разнородных окрестностей и их систематической смене в процессе локального поиска. Общая схема этого метода для решения данной задачи представлена ниже: 1. Найти начальное решение σ. Задать параметры lmax , kmax . 2. Пока не выполнен критерий остановки, делать следующее. (a) Положить l := 1. (b) Повторять пока l ≤ lmax . i. Выбрать решение σ 0 ∈ Nl (σ) случайным образом. ii. Применить локальный спуск сначала по окрестности N1 , а затем по окрестности KLkmax . Обозначим найденный локальный оптимум σ ∗ . iii. Если F (σ ∗ ) < F (σ), то σ := σ ∗ и перейти на шаг 2(a), иначе положить l := l + 1. (c) Применить локальный спуск по окрестности KLkmax (σ), используя окрестность N b вместо N1 . Обозначим найденный локальный оптимум σ ∗ . Если F (σ ∗ ) < F (σ), то σ := σ ∗ . Глава 2. Верхние и нижние оценки для задачи с активным буфером 64 Перейти на шаг 2(a). 3. Предъявить решение σ как результат работы алгоритма. Начальное решение выбирается случайным образом. В качестве критерия остановки используется либо число полученных локальных оптимумов, либо общее время счета. 2.5 Численные эксперименты Теоремы 10 и 11 показывают, что переход к ограниченной задаче приводит к росту нижних оценок. Чтобы понять насколько сильно это влияние, проведен следующий эксперимент. Для n = 20, 30, 50, 100 случайным образом с равномерным распределением выбирались величины ai и bi из интервала от 20 до 40. Для каждого n генерировалось 50 примеров AP – задачи. Размер буфера менялся от 40 до 80. Рис. 2.1: Зависимость ε от размера буфера Глава 2. Верхние и нижние оценки для задачи с активным буфером Исследовалась зависимость величины ε = 65 Pn LB lp + i=1 δi −LBlp 100% LBlp от раз- мера буфера. Результаты расчетов представлены на рисунке 2.1. При Ω > 80 размер буфера практически не играет роли. При Ω < 40 возникают работы, размером больше буфера. Наиболее интересным является случай Ω = 60. При таком буфере различие в оценках оказывается максимальным и достигает 9%. Таким образом, переход к ограниченной задаче действительно приводит к уточнению нижних оценок оптимума. Следующий эксперимент на тех же исходных данных посвящен сравнению нижних оценок с верхними оценками, получаемыми алгоритмом локального поиска с чередующимися окрестностями (VNS). В таблице 2.2 представлено число несовпадений верхних и нижних оценок для 50 тестовых примеров при изменении размера буфера от 40 до 80. При n = 20 и размере буфера более 62 оценки LB J и LB lp на некоторых примерах не совпадают. На этом классе всегда получалось, что LB J ≥ LB lp . На других исходных данных наблюдалось и обратное соотношение. Разница между оценками не превышала 0.5%. Таблица 2.2: Число примеров с несовпадениями верхних и нижних оценок n 20 30 50 40 50 55 58 60 62 65 70 80 LB lp 6= LB J 0 0 0 0 0 3 4 3 4 V N S 6= LB J 0 0 0 2 5 7 2 0 0 V N S 6= LB lp 0 0 0 2 5 8 6 3 4 LB lp 6= LB J 0 0 0 0 0 0 0 0 0 V N S 6= LB lp 0 0 0 0 2 2 1 0 0 LB lp 6= LB J 0 0 0 0 0 0 0 0 0 V N S 6= LB lp 0 0 0 0 0 0 0 0 0 Глава 2. Верхние и нижние оценки для задачи с активным буфером 66 Легко заметить, что с ростом размерности число несовпадений падает, а при n = 50 исчезает вовсе. При n = 100 и далее ситуация сохраняется. Получается удивительный эффект: с ростом размерности задачи она становится проще и при больших n легко решается точно. Алгоритм VNS быстро находит решение, значение которого совпадает с нижней оценкой. Такой эффект связан со способом генерации исходных данных. При большом разнообразии длительностей работ их легко компоновать под размер буфера. Изменив способ генерации исходных данных, можно получить трудные примеры, которые даже при отсутствии разрыва целочисленности будут представлять "головоломку". В следующем эксперименте величины ai и bi строились на основе трудных тестов для задачи упаковки в контейнеры. Рассмотрим тесты, известные под названием триплеты [18]. Примеры в этих тестах характеризуются тем, что в каждом контейнере содержится ровно 3 предмета, и в оптимальном решении все контейнеры плотно упакованы, т.е. не содержат свободного места. Пусть 3k предметов имеют размеры xi ∈ (250, 500), а размер контейнера равен 1000. Положим n = 4k, ai = 1000, bi = 0 для i ≤ k, и ai = 0, и bi = xi для k + 1 ≤ i ≤ 4k, Ω = 1000. Тогда оптимальное решение соответствует оптимальному решению задачи упаковки в контейнеры и имеет значение целевой функции kΩ. Нижние оценки LB lp и LB J совпадают и равны оптимуму. Однако найти оптимум методами локального поиска трудно. Для малой размерности, k = 10, n = 40 разработанный метод локального поиска в 44 примерах из 50 нашел оптимальное решение, в остальных 6 примерах найденное решение отличалось от оптимального Глава 2. Верхние и нижние оценки для задачи с активным буфером 67 на 1. Алгоритм VNS без шага 2(c) за то же время получал результаты хуже [2]. Оптимальное решение было найдено только в 10 примерах из 50, в остальных ответ отличался от оптимального в среднем на 4. Рис. 2.2: Решения найденные алгоритмом VNS Для k = 20, n = 80 средняя погрешность составляет около 0,02%. Начальное решение выбиралось случайным образом. Время, отведенное для решения одной задачи — 1 минута на PC DualCore 2,8Ghz. Рисунок 2.2 демонстрирует распределение значений целевой функции для решений, найденных алгоритмом VNS на одном из таких примеров за 100 независимых запусков. На оси ординат показаны значения целевой функции. На оси абсцисс — номер испытания алгоритма после сортировки по итоговым значениям целевой функции. Из рисунка видно, что чаще всего алгоритм находит решения со значениями 20004 и 20005, что соответствует средней погрешности около 0,02%. Аналогичная картина наблюдается и на других примерах этого класса. Заметим, что CPLEX за Глава 2. Верхние и нижние оценки для задачи с активным буфером 68 30 минут работы на том же примере находит решение со значением 20891 и погрешностью около 4%. В [35] для тех же тестовых примеров среднее значение полученных решений составляет около 20006, при потраченном времени решения около получаса на каждый из примеров. Глава 3 Нижние и верхние оценки оптимума для цеховых задач потокового типа с пассивным буфером 3.1 Постановка задачи и ее ЦЛП формулировки Напомним формулировку задачи. Пусть I — множество работ. Предполагаем, что это множество конечно и его мощность равна n. Через ai обозначим время выполнения работы i на машине A (длительность загрузки), а через bi — время выполнение этой работы на машине B (длительность воспроизведения). Размер буфера обозначим через Ω, понимая под этим суммарное время, необходимое для заполнения всего буфера файлами. Предполагаем, что работа не может начаться на машине A, если в буфере не хватает места для ее полного размещения. Задача состоит в том, чтобы найти порядок выполнения работ на машинах A и B, при котором общее время выполнения всех работ было бы минимальным. Если игнорировать буфер или считать его размер достаточно большим, то получаем известную задачу Джонсона на двух 69 Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 70 машинах [34]. Приведем несколько постановок задачи в терминах целочисленного линейного программирования. Они будут отличаться как по числу переменных и ограничений, так и (как следствие) по качеству нижних и верхних оценок оптимума. Предположим, что все величины ai и bi — целые числа, и T—верхняя оценка на общее время выполнения всех работ. Для каждого момента времени t = 0, 1, . . . , T и каждой работы i введем переменные 1, если работа i начинается в момент t на машине A, uit = 0 в противном случае, 1, vit = 0 если работа i начинается в момент t на машине B, в противном случае. Заметим, что каждая работа на каждой машине начинает выполняться только в один момент времени, т.е. T X uit = 1, i ∈ I, t=0 T X vit = 1, i ∈ I. t=0 Кроме того, пока на машине выполняется одна работа, другая не может начать свое выполнение, т.е. t X X uiτ ≤ 1, t = 0, . . . , T, i∈I τ =t−ai t X X i∈I τ =t−bi viτ ≤ 1, t = 0, . . . , T. Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 71 Каждая работа сначала выполняется на машине A, затем на машине B, т.е. T X tuit + ai ≤ t=0 T X tvit , i ∈ I. t=0 Работа не может начинаться на машине A, если в буфере недостаточно свободного места, т.е. ai uit ≤ Ω − X j6=i t−bj t X X aj ( ujτ − vjτ ), t = 0, . . . , T, i ∈ I. τ =aj τ =0 Требуется найти минимум целевой функции F1 , которая определяет время завершения всех работ, т.е. F1 ≥ T X (t + bi )vit , i ∈ I. t=0 Сформулированная задача имеет 2n(T + 1) переменных и (2T + 2n + nT) линейных ограничений. Обозначим ее UV1. Заметим, что число ограничений можно сократить, изменив ограничение на буфер: t−bi t XX X ( ai uiτ − ai viτ ) ≤ Ω, i∈I τ =0 t = 0, . . . , T. τ =0 Число переменных осталось прежним, а число ограничений сократилось до (3T + 2n). Такая замена может иметь как положительные так и отрицательные последствия. В частности, наличие бо́льшего числа ограничений может приводить к лучшей линейной релаксации, но более компактная запись может сократить общее время счета, благодаря меньшей размерности. Обозначим новую запись задачи через UV2, а ее целевую функцию через F2 . В [29] для формулировки задач в терминах ЦЛП использовался другой подход, основанный на понятии точек событий. Каждая точка k Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 72 из интервала от 0 до T соответствует либо началу выполнения какой-то работы, либо ее окончанию. Если в какой-то момент времени происходит одновременно несколько событий, то будем считать, что каждому событию соответствует своя точка и эти точки совпадают по времени. Так как рассматривается только две машины, то общее число точек K равно 4n. Введем четыре группы переменных. 1, если k соответствует началу выполнения работы i на A, s xik = 0 в противном случае, 1, если точка k соответствует окончанию выполнения работы i xfik = на машине A, 0 в противном случае, 1, если k соответствует началу выполнения работы i на B, s yik = 0 в противном случае, 1, если k соответствует окончанию выполнения работы i на B, f yik = 0 в противном случае. Tk — момент времени, соответствующий точке k. Будем считать, что T1 = 0, Tk ≤ Tk+1 , 1 ≤ k ≤ K − 1. Каждая работа имеет ровно четыре точки события: K X xsik k=1 = K X k=1 xfik = K X k=1 s yik = K X f yik = 1, i ∈ I. k=1 Каждая точка соответствует только одному событию: X f s (xsik + xfik + yik + yik ) = 1, k = 1, . . . , K. i∈I Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 73 На каждой машине работа начинается, а потом заканчивается: k X xsil ≥ l=1 k X k X xfil , i ∈ I, k = 1, . . . , K, l=1 yils ≥ l=1 k X yilf , i ∈ I, k = 1, . . . , K. l=1 Каждая работа сначала выполняется на машине A, потом на машине B: k X xfil ≥ l=1 k X yils , i ∈ I, k = 1, . . . , K. l=1 Каждая машина в каждой точке выполняет не более одной работы: k X X (xsil − xfil ) ≤ 1, k = 1, . . . , K, l=1 i∈I k X X (yils − yilf ) ≤ 1, k = 1, . . . , K. l=1 i∈I Если точки k и l соответствуют началу и окончанию некоторой работы, то разница Tl − Tk должна быть не меньше длительности этой работы: Tl − Tk ≥ ai − ai (2 − xfil − xsik ), i ∈ I, 1 ≤ k < l ≤ K, s Tl − Tk ≥ bi − bi (2 − yilf − yik ), i ∈ I, 1 ≤ k < l ≤ K. Размер буфера ограничен: k X X (ai xsil − ai yilf ), ≤ Ω k = 1, . . . , K. l=1 i∈I Требуется найти минимум целевой функции, которая совпадает с TK . Сформулированная задача также относится к классу задач целочисленного линейного программирования. Она имеет (16n2 + 4n) переменных и (6K + 3nK + 2nK 2 ) линейных ограничений. Экспериментальные Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 74 исследования такой формы записи показывают, что оценка линейного программирования часто оказывается равной нулю, что хуже даже триP P виальной нижней оценки max{ i∈I ai , i∈I bi }. Столь грубая нижняя оценка связана с ограничениями на длину интервалов Tl − Tk . При дробных переменных xfil , xsil и yilf , yils ограничения вырождаются в очевидные неравенства Tl − Tk ≥ 0 для l > k. Эти неравенства можно усилить воспользовавшись условием, что в каждый момент времени на машине выполняется не более одной работы. Тогда получаем следующие условия X (ai − ai (2 − xfil − xsik )), 1 ≤ k < l ≤ K, Tl − Tk ≥ i∈I T l − Tk ≥ X s (bi − bi (2 − yilf − yik )), 1 ≤ k < l ≤ K, i∈I или в эквивалентной форме Tl − Tk ≥ X ai (xfil − (1 − xsik )), 1 ≤ k < l ≤ K, i∈I Tl − Tk ≥ X s )), 1 ≤ k < l ≤ K. bi (yilf − (1 − yik i∈I Требование начать работу i в точке k содержится в выражении (1 − s xsik ) для машины A и в выражении (1 − yik ) для машины B. Это условие можно задать и другим способом, запретив в точке k события на другой машине: Tl − Tk ≥ Tl − Tk ≥ X ai (xfil − X i∈I j∈I X X i∈I bi (yilf − f s (yjk + yjk )), 1 ≤ k < l ≤ K, (xsjk + xfjk )), 1 ≤ k < l ≤ K. j∈I Дальнейшее усиление этих неравенств связано с желанием учесть несколько работ, попадающих в интервал [Tk , Tl ]. Суммарная длительность Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 75 работ, заканчивающихся в этом интервале, определяется суммой Pq≤l P f i∈I ai xiq для машины A и аналогичной суммой для машины B. q>k Однако первая из этих работ могла начаться до момента Tk (см. рис.3.1). A B ... ... ... ... r Tk t t t r Tl Рис. 3.1: Расписание работ на машине A Удалив ее из суммы, получаем новую нижнюю оценку на длину интервала, т.е. q≤l XX f s Tl − Tk ≥ ( ai xfiq − amax (yik + yik )), 1 ≤ k < l ≤ K, i∈I q>k q≤l XX f Tl − T k ≥ ( bi yiq − bmax (xsik + xfik )), 1 ≤ k < l ≤ K, i∈I q>k где amax = maxi∈I ai , bmax = maxi∈I bi . Полученную модель задачи обозначим через EP (event point), а соответствующую целевую функцию через FEP . Наконец, последняя формулировка связана с предположением об одинаковом порядке выполнения работ на обеих машинах. Такой вариант задачи часто называют перестановочным. Для задачи с активным буфером среди оптимальных решений всегда найдется решение с указанным свойством [3]. Для пассивного буфера этот вопрос пока остается открытым. Тем не менее, задача с пассивным буфером даже при таком упрощении остается NP–трудной в сильном смысле [34]. Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 76 Пусть последовательность σ(i), i = 1, . . . n задает порядок выполнения работ. Введем булевы переменные xij , которые также как и σ задают порядок выполнения работ, т.е. работ: 1, работа i выполняется j-ой по порядку, т.е. i = σ(j), xij = 0 в противном случае. Тогда n X xlj = l=1 n X xik = 1, i, j = 1, . . . , n. k=1 Переменные xij позволяют вычислить для машины A длительность j-й по порядку работы в перестановке σ. Обозначим эту величину через paσ(j) . Аналогичную величину для машины B обозначим через pbσ(j) . Тогда paσ(j) = n X ai xij , j = 1, . . . , n, i=1 pbσ(j) = n X bi xij , j = 1. . . . , n. i=1 Введем дополнительные переменные saσ(j) и sbσ(j) , которые будут определять начало выполнения j-й по порядку работы на машинах A и B соответственно. Значения этих переменных определяются из следующих очевидных соотношений: saσ(1) = 0, saσ(j+1) ≥ saσ(j) + paσ(j) , j = 1, . . . , n − 1, sbσ(j+1) ≥ sbσ(j) + pbσ(j) , j = 1, . . . , n − 1, sbσ(j) ≥ saσ(j) + paσ(j) , j = 1, . . . , n. Запишем условие ограниченности буфера. Пусть булева переменная dijk равна 1, если работа i выполняется k-ой по порядку и она начинает Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 77 загружаться в буфер до окончания выполнения j-ой по порядку работы на машине B. В противном случае полагаем dijk равной 0. Используя эти переменные, можно получить ограничение на размер буфера: n X n X ai dijk ≤ Ω, j = 1, . . . , n. k=j i=1 Для вычисления переменных dijk необходимо сравнивать величины sbσ(j) + pbσ(j) и saσ(k) . Для этих целей введем булеву переменную cjk , равную 1 если sbσ(j) + pbσ(j) > saσ(k) и равную 0 в противном случае. Тогда переменные cjk определяются с помощью следующих неравенств: Tcjk ≥ sbσ(j) + pbσ(j) − saσ(k) + 1, j = 1, . . . , n, k = j, . . . , n, −T(1 − cjk ) ≤ sbσ(j) + pbσ(j) − saσ(k) , j = 1, . . . , n, k = j, . . . , n. Кроме того, переменные cjk и dijk связаны следующим соотношением: dijk ≥ cjk + xik − 1, i, j = 1, . . . , n, k = j, . . . , n. Заметим, что соотношения: saσ(j+1) ≥ sbσ(j) + pbσ(j) + paσ(j) − Ω, j = 1, . . . , n − 1 для активного буфера 2.8 являются справедливыми и для пассивного буфера. Добавим их для усиления нижней оценки линейного программирования. Полученную формулировку обозначим через PFS (Permutation Flow Shop), а соответствующую целевую функцию через FP F S . Задача состоит в нахождении допустимого расписания, доставляющего минимум целевой функции FP F S = sbσ(n) + pbσ(n) . Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 78 Полученная формулировка, как и предыдущие, относится к классу целочисленного линейного программирования. Она включает (4n+2n2 +n3 ) переменных и (9n + 2n2 + n3 ) ограничений. Численные эксперименты показывают, что она действительно проще для численных методов и позволяет быстро находить точное решение задачи, когда другие формулировки требуют слишком больших вычислительных затрат. Тем не менее даже эта формулировка для n ≥ 20 на случайно сгенерированных данных тратит больше суток машинного времени на персональном компьютере DualCore 2,8Ghz при решении пакетом CPLEX 11 [47]. В связи с этим в следующих разделах основное внимание уделяется стохастическим методам локального поиска, позволяющим быстро находить приближенные решения с малой относительной погрешностью. 3.2 Окрестности Методы локального поиска показали высокую эффективность при решении широкого круга NP-трудных задач комбинаторной оптимизации. Локальный поиск с чередующимися окрестностями [5] принадлежит к этому классу методов. Его основная идея состоит в систематическом чередовании окрестностей и соответствующем изменении ландшафта в ходе локального поиска. При правильном выборе окрестностей этот метод гарантирует в асимптотике получение точного решения задачи [11]. Выбор системы окрестностей является принципиально важным для методов локального поиска. От него зависит как трудоемкость каждой итерации, число итераций для получения глобального оптимума, так и относительная погрешность решений, получаемых при заданном числе Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 79 итераций. Принцип чередования окрестностей предполагает, что используемые окрестности являются разнотипными. Они должны удачно дополнять друг друга и привносить определенное разнообразие (диверсификацию) в локальный поиск, предотвращая преждевременную стагнацию процесса. Для каждой задачи можно предложить несколько разнотипных окрестностей разной мощности и, как следствие, получить разные множества локальных оптимумов. Ниже будет предложено пять разнотипных окрестностей для перестановок, одна из которых используется для этой задачи впервые. Пусть перестановка σ задает некоторое допустимое решение задачи. Определим следующие окрестности для этого решения. Окрестность N1 (σ) содержит все перестановки, получающиеся из σ либо перемещением одной работы на новое место, либо выбором двух работ и заменой их одну на другую. Мощность окрестности — O(n2 ). Окрестность Nl (σ), l > 1 содержит все перестановки, получающиеся из σ не более l последовательными переходами к соседним решениям по окрестности N1 (σ). Мощность этой окрестности зависит от параметра l и оценивается величиной O(n2l ). Назовем блоком несколько подряд идущих работ в заданной перестановке. Окрестность N b (σ) содержит все перестановки, получающиеся из σ выбором двух непересекающихся блоков, возможно разных размеров и заменой их один на другой. Мощность окрестности — O(n4 ). При построении следующих двух окрестностей используется идея Кернигана–Лина [31], оказавшаяся продуктивной не только при разбиении графов, но и в задаче о p–медиане [32], построении расписаний школьных Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 80 занятий [33] и др. Окрестность KLl (σ), l > 1 содержит все перестановки, получающиеся из σ по следующему правилу: 1. Найдем наилучшую перестановку σ 0 в окрестности N1 (σ). Пусть это решение получается либо перемещением работы с позиции j 0 , либо взаимной перестановкой работ в позициях j 0 и j 00 . 2. Положим σ := σ 0 . Будем повторять l раз шаги 1 и 2, используя позицию j 0 или пару позиций (j 0 , j 00 ) не более одного раза. В результате получим l перестановок. Каждую из них будем называть соседней для σ в окрестности KLl (σ). Заметим, что окрестность KLl является частью окрестности Nl , но для нахождения всех ее l элементов требуется O(ln2 ) операций. Окрестность KLbl (σ), l > 1 строится по тому же правилу, что и окрестность KLl (σ), но вместо окрестности N1 используется окрестность N b . Трудоемкость вычисления ее l элементов оценивается величиной O(ln4 ). Наконец, рассмотрим еще одну окрестность экспоненциальной мощности, наилучший элемент которой может быть найден методами целочисленного линейного программирования. Пусть σ(k, h) — часть перестановки σ с позициями от k-ой до (k + h)-ой см. рис. 3.3. Окрестность N (σ, k, h) содержит все перестановки, получающиеся из σ всевозможными изменениями в перестановке σ(k, h) [43]. Мощность j1 j2 ... [ jk . . . jk+h ] ... jn Рис. 3.2: Расписание σ(k, h) такой окрестности равна h!. Наилучшее решение при заданных k и h Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 81 можно получить, например, решая задачу PFS с дополнительным ограничением xij = 1, i = σ(j), j = 1, . . . , k − 1, k + h + 1, . . . , n. Рассмотренные окрестности требуют больших затрат машинного времени при их использовании в локальном поиске. В связи с этим ниже рассматриваются их рандомизированные аналоги, имеющие существенно меньшую мощность. Под окрестностью Nq (σ) будем понимать часть окрестности N1 (σ). Каждый элемент окрестности N1 (σ) включается в окрестность Nq (σ) с вероятностью q независимо от других элементов. Аналогично определяется окрестность Nqb (σ) как случайно выбранная часть окрестности N b (σ). Окрестности KLql (σ) и KLbql (σ) определяются по тем же правилам, что и окрестности KLl (σ) и KLbl (σ) с соответствующей заменой окрестности N1 на Nq и N b на Nqb . Выбирая параметр q, можно сократить трудоемкость локального поиска по таким окрестностям в среднем в 1/q раз. Для окрестности N (σ, k, h) такой прием не срабатывает. Поэтому точное решение соответствующей подзадачи можно заменить на приближенное решение, получаемое, например, методом поиска с запретами (Tabu Search [23]). Для этого будем использовать окрестности Nq и Nqb , не меняя перестановки вне интервала [k, k + h]. В списке запретов хранятся позиции перемещаемых работ и начала блоков. В качестве критерия остановки используется общее число итераций, т.е. переходов в соседнее решение по указанным окрестностям. Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 3.3 82 Общая схема метода и ее варианты Приведем несколько вариантов локального поиска с чередующимися окрестностями (VNS) для решения рассматриваемой задачи. Зададим параметр lmax , определяющий систему окрестностей Nl , l = 1, . . . , lmax , и параметр l0 , определяющий мощность окрестности KLbl0 , а также параметр рандомизации окрестностей q. Тогда общая схема метода может быть представлена следующим образом. Алгоритм VNS1(lmax , l0 , q) 1. Выбрать начальное решение σ. 2. Пока не выполнен критерий остановки, делать следующее. (a) Положить l := 1. (b) Повторять пока l ≤ lmax . i. Выбрать решение σ 0 ∈ Nl (σ) случайным образом. ii. Применить алгоритм локального спуска по Nq . iii. Применить алгоритм локального спуска по окрестности KLbql0 . Пусть σ ∗ — полученный локальный минимум. iv. Если F (σ ∗ ) < F (σ), то σ := σ ∗ и перейти на шаг 2(a), иначе положить l := l + 1. 3. Предъявить решение σ как результат работы алгоритма. Начальное решение выбирается случайным образом. В качестве критерия остановки используется общее время счета. В методе VNS1 не используется окрестность N (σ, k, h). Естественно было бы включить про- Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 83 цедуру локального улучшения по этой окрестности в случае, когда по другим окрестностям не удается улучшить рекордное решение. Такая модификация метода была опробована, но оказалась неэффективной. Наряду с данным методом логично рассмотреть аналогичный вариант, меняя ролями окрестности Nl (σ) и KLbql0 . Тогда общая схема метода может быть представлена следующим образом. Алгоритм VNS2(lmax , l0 , q) 1. Выбрать начальное решение σ. 2. Пока не выполнен критерий остановки, делать следующее. (a) Положить l := 1. (b) Повторять пока l ≤ lmax . i. Выбрать решение σ 0 ∈ KLbql случайным образом. ii. Применить алгоритм локального спуска по окрестности Nq . iii. Применить алгоритм локального спуска по окрестности KLql0 . Пусть σ ∗ — полученный локальный минимум. iv. Если F (σ ∗ ) < F (σ), то σ := σ ∗ и перейти на шаг 2(a), иначе положить l := l + 1. 3. Предъявить решение σ как результат работы алгоритма. Применение рандомизированной окрестности KLbql на шаге 2(b)i позволяет избежать зацикливания даже при малых значениях параметра l. Несмотря на малую мощность этой окрестности, каждый раз будут порождаться новые элементы, которые будут приводить к новым локальным оптимумам сначала по окрестности Nq , а затем и окрестности KLql0 . Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 84 По тем же причинам, что в методе VNS1, здесь не используется окрестность N (σ, k, h) экспоненциальной мощности. В третьей схеме, используется окрестность N (σ, k, h). Основная проблема применения этой окрестности состоит в правильном выборе окна [k, k +h], в котором следует проводить локальную оптимизацию. Неудачно выбранное окно приводит к напрасно потраченным вычислительным усилиям. Для проверки перспективности заданного интервала применяется следующее правило: решается соответствующая задача линейного программирования и сравнивается полученная нижняя оценка LP с текущим значением целевой функции. Если эти величины совпали, то интервал является бесперспективным. В противном случае предпринимается попытка улучшить текущее решение за счет перестановки работ в выбранном интервале. Начало интервала выбирается случайным образом. Так как некоторые интервалы могут оказаться (и часто оказываются) бесперспективными, то последовательно выбирается не один, а m интервалов. Для перспективных интервалов применяется поиск с запретами (Tabu Search) для нахождения наилучшей перестановки. Общая схема такого метода выглядит следующим образом: Алгоритм VNS3(lmax , m, h, q) 1. Выбрать начальное решение σ. 2. Пока не выполнен критерий остановки, делать следующее. (a) Положить l := 1. (b) Повторять пока l ≤ lmax . Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 85 i. Выбрать решение σ 0 ∈ Nl (σ) случайным образом. ii. Применить локальный спуск по окрестности Nq . Обозначим найденный локальный минимум через σ ∗ . iii. Повторять m раз следующие шаги: A. Случайно выбрать начало интервала k. B. Вычислить LP =PFS(σ ∗ , k, k + h). C. Если LP < F (σ), то σ 0 =TabuSearch(σ ∗ , k, k + h). D. Если F (σ 0 ) < F (σ ∗ ), то σ ∗ := σ 0 . iv. Если F (σ ∗ ) < F (σ), то σ := σ ∗ и перейти на шаг 2(a), иначе положить l := l + 1. 3. Предъявить решение σ как результат работы алгоритма. Применение линейного программирования заметно сокращает число проверяемых интервалов. Попытки заменить линейное программирование и локальный поиск на точное решение подзадачи на выбранном интервале не приводят к успеху. Подзадачи оказываются слишком сложными и трудоемкими. Требуется либо специальная настройка точных методов с прерыванием вычислений, если подзадача не решается быстро, либо сокращение длины интервала. 3.4 Построение примеров с известным оптимумом Во второй главе предложена идея генерации тестовых примеров с известным оптимумом, в основе которой лежит задача упаковки в контейнеры. Ниже предлагается другая идея. Произвольным образом выбираются длительности работ на обеих машинах, а затем находится ми- Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 86 нимальный размер буфера, при котором оптимальное решение задачи совпадает с нижней оценкой Джонсона. Для реализации этой идеи достаточно сначала найти эту нижнюю оценку, удалив из рассмотрения буфер, а затем в множестве оптимальных решений такой упрощенной задачи найти оптимальное решение, требующее наименьший буфер. В работе [44] показано, что переставляя соседние работы в оптимальной перестановке, можно получить любую другую оптимальную перестановку, при этом все промежуточные перестановки тоже будут оптимальными. Таким образом, достаточно строить расписание работ, требующее наименьший буфер при оптимальной перестановке в задаче Джонсона, и среди всех оптимальных перестановок находить наилучшую в этом смысле перестановку. Конструктивный алгоритм для достижения первой цели содержится в доказательстве следующего утверждения. Теорема 12 Пусть σ — оптимальная перестановка работ для задачи Джонсона. Тогда для задачи с пассивным буфером можно за полиномиальное время найти минимальный размер буфера, при котором σ останется оптимальной перестановкой. Доказательство По перестановке σ найдем критический путь в оптимальном расписании. Пусть работы j1 , . . . , jk образуют начало этого пути на машине A, а работы jk , . . . , jn — конец пути на машине B. По работе jk происходит переход критического пути с первой машины на вторую. Так как путь критический, то изменение расписания работ j1 , . . . , jk на машине A и работ jk , . . . , jn на машине B ведет к потере оптимальности. Следовательно, менять можно только расписание работ j1 , . . . , jk−1 Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 87 на машине B и работ jk+1 , . . . , jn на машине A. Поставим эти работы на машине B как можно раньше, а на машине A как можно позже, не меняя длину расписания Opt (см. рис. 3.3). A B j1 ... - j1 - jk ... ... A ⇐ A AU ⇒ jk - jn ... - jn Рис. 3.3: Расписание с минимальным буфером Пусть как и раньше величины sai , sib задают начала выполнения работ на машинах A и B, а величины cai , cbi задают окончание работ на этих машинах. Тогда получаем: sa1 = 0, sai+1 = cai , i = 1, . . . , k − 1, sbi+1 = max{cbi , cai+1 }, i = 1, . . . , k − 1, cbn = Opt, cbi = sbi+1 , i = k, . . . , n − 1, cai = min{sai+1 , sbi }, i = k, . . . , n − 1. Для такого расписания определим требуемый размер буфера. Для каждого момента времени t определим множество работ It , находящихся в этот момент в буфере, It = {i|sai ≤ t < cbi }. Тогда размер буфера Ω опреP деляется как наибольший из потребовавшихся, т.е. Ω = maxt>0 i∈It ai . Покажем, что полученное значение является наименьшим из возможных. Предположим, что это не так и можно как-то иначе перестроить расписание работ j1 , . . . , jk−1 на машине B и jk+1 , . . . , jn на машине A, что Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 88 потребуется буфер меньшего размера. Тогда для такого момента времеP ни t0 , что Ω = i∈It ai , множество It0 должно содержать меньше работ. 0 Другими словами, какие-то работы должны были начаться позже t0 на машине A, либо закончиться раньше t0 на машине B, что по построению невозможно. Доказанное утверждение можно обобщить на случай произвольной перестановки. Следствие 2 Если Cmax (σ) — длина расписания для σ в задаче Джонсона, то за полиномиальное время можно построить расписание для задачи с пассивным буфером с той же длиной Cmax (σ) и минимальным размером буфера. Доказательство проводится аналогично. Теорема 13 Задача минимизации буфера при заданной длине расписания является NP–трудной в сильном смысле. Доказательство следует из NP–полноты следующей задачи распознавания [34]: существует ли допустимое расписание заданной длины при фиксированном значении буфера? Если наименьший размер буфера найти трудно, то можно искать приближенное решение этой задачи, используя, например, метаэвристики. Полученное таким способом значение все равно можно использовать при построении тестовых примеров. Нижняя оценка Джонсона по прежнему будет достигаться. Для получения приближенного решения снова воспользуемся схемой поиска с запретами [23]. Для произвольной оптимальной перестановки Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 89 работ в задаче Джонсона соседними решениями будем считать все оптимальные перестановки, получающиеся из данной выбором двух работ и заменой их одну на другую. В качестве списка запретов будем использовать позиции перемещаемых работ. Как и в случае метода с чередующимися окрестностями, будем применять рандомизацию окрестности. Критерий остановки — число выполненных итераций. 3.5 Численные эксперименты Разработанные методы локального поиска запрограммированы на языке ПАСКАЛЬ (Delphi 7.0) и протестированы на трех классах тестовых примеров: — случайно сгенерированных примерах, в которых величины ai , bi , i ∈ I, выбираются независимо друг от друга с равномерным распределением из заданного интервала; — новом классе, описанном в предыдущем разделе; — примерах для задачи упаковки в контейнеры. Все расчеты проводились на персональном компьютере Pentium Dual Core 2,8Ghz RAM 2Gb, операционная система Windows XP. Для сравнения ЦЛП формулировок использовался первый класс примеров с n = 10, ai , bi ∈ [1, 10], i ∈ I, Ω = 12. На последних двух классах такой эксперимент не представляет интереса, т.к. для них разрыв целочисленности равен нулю. Таблица 3.1 содержит результаты расчетов для 40 примеров. Для каждой формулировки получены нижние оценки линейного программирования. Модель EP заметно выигрывает у моделей UV1 и UV2, но уступает Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 90 Таблица 3.1: Различие между линейными релаксациями UV1 UV2 EP PFS Номер F1 t1 F2 t2 FEP tEP FP F S tP F S №1 30,44 0:00:01 30,47 0:00:00 43 0:00:09 49 0:00:00 №2 34,76 0:00:03 34,76 0:00:00 52,5 0:00:09 59 0:00:00 №3 27,8 0:00:02 27,8 0:00:00 38,5 0:00:08 45 0:00:00 №4 40,57 0:00:08 40,57 0:00:00 64,5 0:00:08 71 0:00:00 №5 32,65 0:00:02 32,65 0:00:00 48,5 0:00:08 55 0:00:00 №6 29,96 0:00:01 29,96 0:00:00 43 0:00:09 49 0:00:00 №7 32,87 0:00:02 32,87 0:00:00 48,5 0:00:09 55 0:00:00 №8 31,85 0:00:01 31,85 0:00:00 46,5 0:00:09 53 0:00:00 №9 37,92 0:00:05 37,92 0:00:00 58,5 0:00:09 65 0:00:00 № 10 33,06 0:00:02 33,06 0:00:00 48,5 0:00:09 55 0:00:00 № 11 25,78 0:00:01 26,16 0:00:00 34,5 0:00:08 41 0:00:00 № 12 28,18 0:00:01 28,18 0:00:00 39 0:00:09 46 0:00:00 № 13 34,23 0:00:03 34,23 0:00:00 50,5 0:00:09 57 0:00:00 № 14 33,38 0:00:03 33,37 0:00:00 50,5 0:00:08 57 0:00:00 № 15 31,87 0:00:02 31,87 0:00:00 46,5 0:00:09 53 0:00:00 № 16 37,75 0:00:06 37,75 0:00:00 58,5 0:00:09 65 0:00:00 № 17 31,85 0:00:02 31,85 0:00:00 46,5 0:00:08 53 0:00:00 № 18 31,13 0:00:01 31,13 0:00:00 46,5 0:00:09 53 0:00:00 № 19 27,53 0:00:02 26,5 0:00:00 34,5 0:00:09 50 0:00:00 № 20 34,25 0:00:02 34,25 0:00:00 50,5 0:00:09 57 0:00:00 № 21 33,86 0:00:02 33,86 0:00:00 50,5 0:00:10 57 0:00:00 № 22 24,53 0:00:00 24,53 0:00:00 33 0:00:08 39 0:00:00 № 23 34,86 0:00:04 34,86 0:00:00 52,5 0:00:09 59 0:00:00 № 24 33,19 0:00:03 33,19 0:00:00 48,5 0:00:09 55 0:00:00 № 25 39,14 0:00:05 39,14 0:00:00 60,5 0:00:08 67 0:00:00 № 26 30,48 0:00:02 30,48 0:00:00 44,5 0:00:09 51 0:00:00 № 27 35,68 0:00:03 35,68 0:00:00 54,5 0:00:09 61 0:00:00 № 28 30,96 0:00:02 30,96 0:00:00 44,5 0:00:09 51 0:00:00 № 29 38,67 0:00:04 38,67 0:00:00 60,5 0:00:08 67 0:00:00 № 30 34,05 0:00:03 34,05 0:00:00 50,5 0:00:09 57 0:00:00 среднее 32,74875 0:00:03 32,733 0:00:00 48,3125 0:00:09 55,025 0:00:00 Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 91 Таблица 3.2: Различие между целочисленными моделями UV1 UV2 EP PFS F1 t1 F2 t2 FEP tEP FP F S tP F S №1 49 0:02:29 49 0:00:01 52 1:00:01 49 0:00:00 №2 61 1:00:00 60 0:03:52 0 1:00:01 60 0:00:00 №3 45 0:14:48 45 0:00:16 52 1:00:02 45 0:00:00 №4 0 1:00:01 0 1:00:00 0 1:00:01 80 0:00:01 №5 55 0:08:36 55 0:00:01 58 1:00:02 55 0:00:00 №6 49 0:02:44 49 0:01:12 53 1:00:02 49 0:00:00 №7 0 0:00:02 55 0:00:05 60 1:00:02 55 0:00:00 №8 53 0:06:39 53 0:00:02 58 1:00:01 53 0:00:00 №9 0 0:00:01 66 0:10:18 77 1:00:02 66 0:00:00 № 10 55 0:07:21 55 0:00:17 56 1:00:01 55 0:00:00 № 11 46 1:00:00 45 1:00:00 0 1:00:01 45 0:00:02 № 12 46 0:01:25 46 0:00:03 53 1:00:02 46 0:00:00 № 13 57 0:02:14 57 0:00:02 61 1:00:01 57 0:00:00 № 14 57 0:04:18 57 0:00:27 58 1:00:01 57 0:00:00 № 15 53 0:06:13 53 0:00:01 56 1:00:02 53 0:00:00 № 16 0 1:00:00 67 0:43:37 71 1:00:01 67 0:00:00 № 17 53 0:05:29 53 0:00:08 54 1:00:01 53 0:00:00 № 18 53 0:03:38 53 0:00:01 57 1:00:02 53 0:00:00 № 19 50 0:03:24 50 0:00:04 0 1:00:01 50 0:00:01 № 20 57 0:02:19 57 0:00:06 61 1:00:01 57 0:00:00 № 21 57 0:26:57 57 0:00:29 60 1:00:02 57 0:00:00 № 22 39 0:00:12 39 0:00:01 45 1:00:03 39 0:00:00 № 23 60 0:35:55 60 0:06:56 64 1:00:01 60 0:00:00 № 24 55 0:01:44 55 0:00:00 63 1:00:01 55 0:00:00 № 25 0 1:00:01 69 0:07:39 0 1:00:00 69 0:00:00 № 26 51 0:01:52 51 0:00:05 54 1:00:01 51 0:00:00 № 27 63 1:00:00 62 0:10:58 64 1:00:01 62 0:00:00 № 28 51 0:04:48 51 0:00:05 56 1:00:02 51 0:00:00 № 29 0 1:00:01 69 0:44:06 0 1:00:01 69 0:00:00 № 30 57 0:02:04 57 0:00:06 0 1:00:01 57 0:00:00 среднее 53,88 0:20:02 54,95 0:08:31 40,525 1:00:01 55,825 1,73611E-06 Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 92 модели PFS. Напомним, что в модели PFS используется только одна перестановка, так что сравнение моделей PFS и EP не совсем корректно. В Таблице 3.2 приводятся результаты расчетов по исходным целочисленным моделям при ограничении в один час на каждый пример. Модель PFS позволяет решить все примеры, не требуя более 2-х секунд на каждый пример, в то время как другие модели не всегда дают точное решение задачи за отведенное время. Нули в колонках для значений целевой функции свидетельствуют о том, что не удалось получить даже допустимого решения. Интересно отметить, что ни в одном из примеров модель PFS не уступила по целевой функции своим конкурентам, хотя использование одной перестановки вместо двух могло бы привести к такому эффекту. Все попытки найти контрпример, в котором действительно требуется две перестановки, пока не увенчались успехом, что отчасти оправдывает стремление исследовать задачу в такой более простой форме. Далее оптимальное решение линейной релаксации для модели PFS будет использоваться в качестве нижней оценки при подсчете погрешностей методов локального поиска. Эффективность методов VNS1, VNS2, VNS3 существенно зависит от параметра рандомизации q. Напомним, что этот параметр определяет долю просматриваемой окрестности. При малых значениях этого параметра сокращается время выполнения одной итерации, но возрастает вероятность пропустить оптимальное решение, даже находясь в непосредственной близости от него. На рисунке 3.4 показано влияние параметра q на результаты работы алгоритма VNS1. По оси абсцисс откладывается величина ε — относительная погрешность получаемых решений. По оси Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 93 Рис. 3.4: Влияние параметра q, время счета 2 минуты ординат — число решений с погрешностью не более ε. Расчеты проводились при q = 0.1, 0.2, . . . , 1. На рисунке 3.4 представлены четыре графика для q = 0.1, 0.2, 0.4, 1.0. Величины ai и bi случайным образом с равномерным распределением выбираются из интервала от 300 до 700, Ω = 800, n = 100, число испытаний алгоритма — 50. Наилучшие результаты получены при q = 0.1. При увеличении числа итераций по- Рис. 3.5: Влияние параметра q, время счета 5 минут грешность получаемых решений сокращается (см. рисунок 3.5). Если же время счета увеличить до 20 минут, то все получаемые решения совпа- Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 94 дают с наилучшим найденным решением. Аналогичным образом ведут себя методы VNS2 и VNS3. Далее все расчеты проводятся при q = 0.1. В таблице 3.3 приводятся результаты расчетов на данном классе тестовых примеров для трех методов: VNS1,VNS2,VNS3. Каждый из 40 примеров решался 50 раз каждым методом. В качестве критерия остановки использовалось время счета, lmax = 15, l0 = 30. Для метода VNS3 полагалось m = 5, h = 20. Длина списка запретов 10, количество итераций поиска с запретами 200. Относительная погрешность методов рассчитывалась по формуле ε = Fi −LB LB 100%, где Fi — значение целевой функции, полученное i−м методом, LB — оценка линейного прогрммирования. В таблице 3.3 приводятся средние значения целевой функции, средняя относительная погрешность ε, ее дисперсия δ, а так же величина ∆ — наибольшая по всем испытаниям разница между максимальным и минимальным значением целевой функции для одного примера. Полученные результаты свидетельствуют о том, что на данном классе примеров метод VNS1 имеет небольшое преимущество по средней погрешности и дисперсии. Метод VNS2 имеет наибольший разброс по целевой функции и наибольшую среднюю погрешность. Минимальные значения целевой функции по всем испытаниям для каждого примера совпали. Второй класс тестовых примеров с известным решением, построенный методом описанном в разделе 3.4 оказался несложным. Для n = 50 построено 10 примеров, каждый из которых решался 20 раз. Время поиска не превосходило 1 минуты. Таблица 3.4 содержит результаты расчетов. В скобках указано количество испытаний, в которых Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 95 Таблица 3.3: Результаты для первого класса VNS1 VNS2 VNS3 Пример ∆ δ ε ∆ δ ε ∆ δ ε №1 0 0 0,74 730 0,161 1,55 359 0,057 1,44 №2 326 0,059 1,40 667 0,120 2,15 339 0,068 2,12 №3 305 0,034 1,39 731 0,094 2,32 300 0,014 2,01 №4 0 0 8,06 357 0,031 8,12 0 0 8,06 №5 333 0,066 3,07 1010 0,166 3,96 630 0,081 3,43 №6 10 0,000 4,41 1033 0,274 5,03 358 0,068 4,83 №7 314 0,017 5,45 693 0,122 6,50 327 0,018 6,02 №8 337 0,017 1,29 711 0,131 2,20 380 0,019 1,83 №9 12 0,000 3,88 772 0,093 4,64 387 0,044 4,43 № 10 0 0 5,76 0 0 5,76 0 0 5,76 № 11 313 0,040 3,53 736 0,127 4,42 582 0,040 4,08 № 12 309 0,061 1,03 992 0,173 1,72 633 0,037 1,32 № 13 0 0 1,52 1001 0,199 2,26 647 0,062 2,13 № 14 0 0 5,88 957 0,116 6,61 304 0,058 6,18 № 15 334 0,065 2,90 1015 0,249 3,69 504 0,030 3,39 № 16 0 0 2,74 743 0,109 3,33 329 0,061 3,01 № 17 325 0,038 2,51 708 0,136 3,24 339 0,040 2,87 № 18 336 0,035 3,68 744 0,117 4,24 400 0,038 4,13 № 19 307 0,038 0,57 1081 0,202 1,16 365 0,020 0,95 № 20 0 0 5,38 357 0,064 5,54 0 0 5,38 № 21 376 0,056 0,87 879 0,155 1,61 328 0,042 1,31 № 22 313 0,027 0,38 1257 0,222 1,15 383 0,033 0,71 № 23 20 0,000 5,73 393 0,095 6,02 38 0,000 5,74 № 24 0 0 1,69 665 0,087 2,15 320 0,057 1,92 № 25 0 0 1,72 309 0,039 1,82 0 0 1,72 № 26 0 0 4,55 324 0,015 4,61 28 0,000 4,56 № 27 343 0,053 1,89 1025 0,139 2,64 372 0,019 2,33 № 28 0 0 3,27 654 0,125 3,62 317 0,018 3,32 № 29 0 0 7,99 383 0,027 8,03 0 0 7,99 № 30 0 0 4,80 0 0 4,80 0 0 4,80 среднее 183,05 0,027 2,98 747,825 0,130 3,55 325,5 0,034 3,34 Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 96 не найдено оптимальное решение. Седьмой пример оказался наиболее трудным, но и на нем только 5 раз из 20 не удалось найти оптимум методом VNS2, 2 раза из 20 методом VNS1 и один раз из 20 — методом VNS3. Таблица 3.4: Результаты для второго класса n VNS1 t1 VNS2 t2 VNS3 t3 1 1528 1 1528 1 1528 2 2 1487 1 1487 1 1487 1 3 1507 3 1507 1 1507 5 4 1532 1 1532 1 1532 2 5 1566 1 1566 1 1566 7 6 1523 1 1523 2 1523 5 7 1557(2) 22 1557(5) 34 1557(1) 22 8 1515 1 1515 1 1515 1 9 1533 4 1533(3) 16 1533 3 10 1549 1 1549 1 1549 1 В последнем эксперименте использовались трудные тестовые примеры для задачи упаковки в контейнеры, известные под названием триплеты [18]. В этих примерах оптимальное решение является разбиением 3k предметов на тройки. Каждая тройка соответствует одному контейнеру. Все контейнеры плотно упакованы, т.е. не содержат свободного места. Размер контейнера полагается равным 1000. Веса предметов ci выбираются из интервала (250, 500). Положим n = 4k, ai = 1000, bi = 0 для i ≤ k, и ai = 0, и bi = ci для k + 1 ≤ i ≤ 4k. Тогда длина оптимального расписания при Ω = 1000 равна kΩ. Для малой размерности, k = 10, n = 40, метод VNS1 во всех при- Глава 3. Верхние и нижние оценки для задачи с пассивным буфером 97 мерах находит оптимальное решение. Метод VNS3 находит оптимальное решение только в 36 примерах из 50. При k = 20, n = 80 ни одному методу не удается найти оптимум за 30 минут поиска, но относительная погрешность всех получаемых решений не превосходит одного процента. Заключение • Для цеховой задачи потокового типа с цифровым буфером введены понятия активного и пассивного буфера. Для обоих вариантов задачи получены новые математические модели в терминах целочисленного линейного программирования. Доказана NP-трудность рассматриваемых задач и некоторых их частных случаев. Выделены полиномиально разрешимые подклассы. Для обратной задачи минимизации буфера при заданном времени выполнения всех работ установлена NP-трудность задачи, вычисление минимального размера буфера при заданной последовательности выполнения работ является полиномиально разрешимой задачей. • Введено понятие ограниченной задачи и показана эквивалентность исходной и ограниченной задач при активном и пассивном буфере. Показано, что переход к ограниченной задаче позволяет заметно улучшить нижние оценки оптимума. Для получения верхних оценок разработаны итерационные методы локального поиска с чередующимися окрестностями. Для задачи с активным буфером предложена новая окрестность, позволяющая двигать блоки в перестановке. На ее основе построена окрестность типа Кернигана–Лина, которая помогает заметно сократить погрешность получаемых при98 Заключение 99 ближенных решений. Для задачи с пассивным буфером получена новая окрестность экспоненциальной мощности. • Разработанные численные методы реализованы в виде комплекса программ. Для проведения вычислительных экспериментов разработан новый класс тестовых примеров с известным значением оптимума. Результаты численных экспериментов на этом и других классах показали высокую эффективность предложенного подхода. Литература [1] Гончаров Е. Н., Кочетов Ю. А. Поведение вероятностных жадных алгоритмов для многостадийной задачи размещения // Дискретный анализ и исследование операций. Сер. 2. — 1999. — Т. 6, № 1. — С. 12–32. [2] Кононова П.А. Алгоритм локального поиска для задачи выбора порядка презентаций медиа объектов // Труды ИВМиМГ, Информатика, 9. — Новосибирск: Изд. ИВМиМГ СО РАН. — 2009.— С. 177–182. [3] Кононова П.А. Нижние и верхние оценки длины оптимального расписания презентаций медиа-объектов // Дискретный анализ и исследование операций. — 2012. — Том 19, №1. — С. 59–73. [4] Конoнова П.А., Кочетов Ю.А. Локальный поиск с чередующимися окрестностями для задачи Джонсона с пассивным буфером // Дискретный анализ и исследование операций. — 2012. — Т.19, № 5. — С.63–82. [5] Кочетов Ю., Младенович Н., Хансен П. Локальный поиск с чередующимися окрестностями // Дискретный анализ и исследование операций. Серия 2. — 2003. — Том 10, № 1. — С. 11–43. 100 Литература 101 [6] Aarts E. H. L., Korst J. H. M., Laarhoven van F. J. M. Simulated annealing // Local search in combinatorial optimization. Chichester: Wiley. — 1997. — P. 91–120. [7] Aarts E. H. L., Lenstra J. K. (Eds.) Local Search in Combinatorial Optimization. — Chichester: John Wiley & Sons. 1997. [8] Ahuja R.K., Ergun O., Orlin J.B., Punnen A.P. A survey of very large– scale neighborhood search techniques // Discrete Appl. Math. — 2002. — V. 123, Issue 1–3. — P. 75–102. [9] Bent R., Van Hentenryck P. A two stage hybrid local search for the vehicle routing problem with time windows // Transportation science. — 2004. — Vol. 38, No. 4. — P. 515–530. [10] Blum C. Roli A. Metaheuristics in combinatorial optimization: Overview and conceptual comparison // ACM Computing Surveys (CSUR). — 2003. — V.35, Issue 3. — P. 268–308. [11] Brimberg J., Hansen P., Mladenović N. Convergence of variable neighborhood search // Les Cahiers du GERAD G-2000-73. Monreal, Canada, 2000. [12] Brimberg J., Mladenović N. A variable neighborhood algorithm for solving the continuous location-allocation problem // Stud. Locat. Anal. — 1996. — V. 10. — P. 1–12. [13] Brucker P., Knust S., Complex Scheduling. Berlin: Springer, 2006. Литература 102 [14] Burke E. K., Causmaecker de P., Petrovic S., Berghe G. V. Variable neighbourhood search for nurse rostering problems // MIC’2001 - 4th Metaheuristics Intern, conf. Porto, July 16-21. — 2001. — P. 755–760. [15] Burke E.K., Kendall G. (Eds.) Search Methodologies. Introductory Tutorials // Optimization and Decision Support Techniques. — Berlin: Springer, 2005. [16] Davidović Т., Hansen P., Mladenović N. Variable neighborhood search for multiprocessor scheduling with communication delays // MIC’2001 – 4th Metaheuristics Intern, conf. Porto, July 16–21 — 2001. — P. 737– 741. [17] Dreo J., Petrowski A., Siarry P., Taillard E., Metaheuristics for Hard Optimization, — Springer, 2006. [18] Falkenauer E. A Hybrid grouping genetic algorithm for bin packing // J. Heuristics.—1996. — V. 2, N. 1.— P. 5 – 30. [19] Festa P., Resende M. G. C., GRASP: An annotated bibliography. In: C. C. Ribeiro, P. Hansen (Eds.) Essays and surveys in metaheuristics. — Kluwer Academic Publishers. — 2002. — P. 325–368. [20] Fischetti M., Lodi A. Local branching. // Math. Programming. — 2003. — V. 98, N. 2. — P. 23–47. [21] Garey M. R., Johnson D. S., Computer and intractability: a guide to the theory of NP-completness. San Francisco, CA: Freeman, 1979. [22] Glover F. Future paths for integer programming and links to artificial intelligence. // Comp. Oper. Res. — 1986. — V. 13. — P. 533–549. Литература 103 [23] Glover F., Laguna M. Tabu Search. — Dordrecht: Kluwer Acad. Publ., 1997. [24] Goldberg D. E. Genetic algorithms in search, optimization, and machine learning. Reading, MA: Addison-Wesley, 1989. [25] Gutin G. Exponential neighborhood local search for the traveling salesman problem // Comput. Oper. Res. — 1999. — V. 26. — P. 313– 320. [26] Gutin G., Yeo A. Small diameter neighborhood graphs for the traveling salesman problem: four moves from tour to tour // Comput. Oper. Res. — 1999. — V. 26. — P. 321–327. [27] Hansen P, Mladenović N. Variable neighborhood search for the pmedian problem //Location Science — 1997. — V. 5. — P. 207–226. [28] Hansen P., Mladenović N., Perez-Brito D. Variable neighborhood decomposition search // J. Heuristics. — 2001. — V. 7, N. 4. — P. 335–350. [29] Ierapetritou M.G., Floudas C.A. Effective continuous-time formulation for shortterm scheduling: I. multipurpose batch process // Ind. Eng. Chem. Res. — 1998. — Vol. 37. — P. 4341 – 4359. [30] Johnson S.M., Optimal two- and three-stage production scheduling with setup time included. Naval Research Logistics Quarterly. — 1954.— V. 1, Issue 1.— P. 61–68. Литература 104 [31] Kernighan, B.W., Lin, S.: An efficient heuristic procedure for partitioning graphs. Bell System technical Journal. — 1970. — V. 49. — P. 291–307. [32] Kochetov, Yu., Alekseeva, E., Levanova, T., Loresh, M.: Large neighborhood local search for the p–median problem. Yugoslav Journal of Operations Research. — 2005. — V. 15, N 1. — P. 53–63. [33] Kоchetov Yu., Kononova P., Paschenko M. Formulation Space Search Approach for the Teacher/Class Timetabling Problem // Yugoslav Journal of Operations Research. — 2008, — V. 18, N 1. — P. 1–11. [34] Kononov A., Hong J.-S., Kononova P., Lin F.-C. Quantity-based bufferconstrained two machine flowshop problem: active and passive prefetch models for multimedia applications// Journal of Scheduling. — 2012. — V. 15, N.4. — P. 487–497. [35] Kononov A., Kononova P., Hong J.-S. Two-stage multimedia scheduling problem with an active prefetch model // Preprints of the 13th IFAC Symposium on Information Control Problems in Manufacturing (Moscow, Russia, June 3 - 5, 2009).— P. 1997–2002. [36] Korte B., Vygen J., Combinatorial Optimization: Theory and Algorithms. Algorithms and Combinatorics 21 Springer, Berlin. 2000. [37] Lin F.-C., Hong J.-S., Lin B.M.T. A two-machine flow shop problem with processing time-dependent buffer constraints – An application in multimedia problem // Computers and Operations Research.— 2009.— V. 36, N. 4. — P. 1158–1175. Литература 105 [38] Lin F.-C., Lai C.-Y., Hong J.S. Minimize presentation lag by sequencing media objects for auto-assembled presentations from digital libraries // Journal Data & Knowledge Engineering. V. 66, I. 3, 2008, P. 382–401. [39] Mladenović N., Petrović J., Kovac̆ević-Vujc̆ić V., C̆angalović M. Solving spread spectrum radar polyphase code design problem by tabu search and variable neighborhood search // European Journal of Operational Research. — 2003. — V. 151, Issue 2. — P. 389–399. [40] Mladenović, N., Plastria, F., Urošević, D. Reformulation descent applied to circle packing problems. // Computers and Operations Research. — 2005. — V. 32, N. 9. — P. 2419–2434. [41] Osman I. H., Laporte G. Metaheuristics: a bibliography // Ann. Oper. Res. — 1996. — V. 63. — P. 513–628. [42] Papadimitriou, C. H., Kanellakis, P. C. Flowshop scheduling with limited temporary storage // Journal of the Association for Computing Machinery —1980.— V. 27, N.3. — P. 533–549. [43] Salassa F. G. M. Matheuristics for Combinatorial Optimization Problems // Ph.D. Thesis. [44] Sevastianov S., Lin B.M.T. Efficient enumeration of optimal and approximate solutions of the two-machine flow-shop problem // Preprint of 10th Workshop on Models and Algorithms for Planning and Scheduling Problems (Nymburk, Czech Republic,2011 July 19–24). — P.177–179. Литература 106 [45] Verhoeven M. G. A., Severens M. E. M., Aarts E. H. L. Local search for Steiner trees in graphs // Modern search methods. N. Y.: John Wiley and Sons, Inc. — 1996. — P. 117–129. [46] Wilbaut C., Hanafi S., Freville A., Balev S. Tabu search: global intensification using dynamic programming. // Control and Cybernetics. — 2006. — V. 35, N. 3. — P. 579–588. [47] CPLEX http://www-142.ibm.com/software/products/ru/ru/ilogcple/.