Методы решения задач теории расписаний — различия между версиями
Qradimir (обсуждение | вклад) м (→Жадное построение расписания) |
Qradimir (обсуждение | вклад) м (→Жадное построение расписания) |
||
Строка 51: | Строка 51: | ||
== Жадное построение расписания == | == Жадное построение расписания == | ||
− | Для решения задач теории расписаний часто применяется [[Определение матроида|теория матроидо]]в, а в частности — [[Теорема Радо-Эдмондса (жадный алгоритм)|жадный алгоритм]] : алгоритм решения задач путем выбора локально оптимальных решений на каждом этапе алгоритма. | + | Для решения задач теории расписаний часто применяется [[Определение матроида|теория матроидо]]в, а в частности — [[Теорема Радо-Эдмондса (жадный алгоритм)|жадный алгоритм]]: алгоритм решения задач путем выбора локально оптимальных решений на каждом этапе алгоритма. |
Естественно, далеко не все оптимизационные задачи можно решать жадно — для этого сначала необходимо доказать оптимальность жадного выбора. | Естественно, далеко не все оптимизационные задачи можно решать жадно — для этого сначала необходимо доказать оптимальность жадного выбора. | ||
Версия 18:04, 7 июня 2016
Содержание
Сведение к другой задаче
При сведении текущей задачи теории расписаний
к какой-то другой (не обязательно задаче теории расписаний) необходимо доказать два пункта:- Допустимость расписания, построенного с помощью задачи , или существование способа его трансформации в допустимое без нарушения оптимальности.
- Следствие того, что если мы оптимизируем , мы также оптимизируем ответ для .
Примечание: если требуется полиномиальное время для решения задачи, сведение к другой задаче и трансформация расписания в допустимое также должны происходить за полиномиальное время.
С помощью этого метода решаются:
- Задачи класса Open Shop при условии можно свести к задачам равной длительности на параллельных станках:
- Задачи класса Flow Shop при условии можно свести к задаче на одном станке:
- Часто в задачах, в которых допускаются прерывания, оптимальный ответ совпадает с соответствующими задачами без прерываний:
- Ряд задач можно свести к задаче поиска максимального потока:
- Некоторые задачи сводятся к другим похожим задачам теории расписаний путем преобразования их расписаний:
Построение расписания по нижней оценке
Этот метод обычно применим к задачам, в которых целевая функция —
. Обычно построение расписания по нижней оценке происходит в два этапа:- Построение некоторого набора нижних ограничений на произвольное расписание для задачи .
- Построение произвольного допустимого расписания, достигающего максимального ограничения из построенного набора.
С помощью этого метода решаются следующие задачи:
Ниже будет рассмотрен частный пример решения задачи подобным образом:
P | pmtn | C_max
Задача: |
Имеется | однородных машин, работающих параллельно, и работ, которые могут быть прерваны и продолжены позже. Необходимо минимизировать время выполнения всех работ
Найдем набор ограничений на значение
для произвольного допустимого расписания :- В допустимом расписании выполнение всех работ не может завершиться раньше одной из них, поэтому .
- Если все станки работали время , на них могло выполниться не больше работы, то есть и .
Из этих ограничений следует, что
.Построим расписание, подходящее под эту границу: будем по очереди заполнять машины работами в произвольном порядке, и если очередная работа не помещается на текущей машине полностью, перенесем ее выходящую за
часть на следующую машину. Благодаря первому ограничению никакая работа не будет выполняться одновременно на двух станках, а благодаря второму — не останется работы, которую мы не сможем выполнить.Бинарный поиск по ответу
Этот способ часто подходит для задач, в которых надо минимизировать
(если мы умеем решать соответствующую задачу существования расписания), реже для . Важно помнить, что если требуется полиномиальное по решение, оно не должно зависеть от логарифма ответа, но иногда ответ ограничен полиномом от , и мы можем применить этот метод.Примером решения задач подобным методом служит следующая задача:
Жадное построение расписания
Для решения задач теории расписаний часто применяется теория матроидов, а в частности — жадный алгоритм: алгоритм решения задач путем выбора локально оптимальных решений на каждом этапе алгоритма. Естественно, далеко не все оптимизационные задачи можно решать жадно — для этого сначала необходимо доказать оптимальность жадного выбора.
С помощью этого метода решаются:
Обычно оптимальность жадного выбора доказывают двумя способами:
Неправильно
Приведем пример часто распространенных неправильных действий при доказательстве оптимальности жадного алгоритма:
Пусть предложенным нами алгоритмом мы получили какое-то решение
. Атомарными изменениями в этом решении будем получать другие допустимые решения и докажем, что . Тогда решение — оптимально.Проблема в этих рассуждениях в том, что ими мы доказываем локальную оптимальность алгоритма в решении
. Получение же глобального минимума может потребовать нескольких атомарных изменений в расписании, поэтому доказать оптимальность таким образом в общем случае невозможно. Как ближайшую аналогию, можно привести неправильное утверждение для произвольной функции — «если все частные производные неотрицательны, то в точке наблюдается глобальный минимум».Правильно
При доказательстве оптимательности применима стратегия аргумент замены (англ. exchange argument). Стратегия заключается в рассмотрении текущего решения
и оптимального решения . Далее предлагается способ модификации в так, что:- , то есть также оптимально.
- «более похоже» на , чем на .
Если такой способ найден, получаем, что какой-то последовательностью модификаций
получим , из чего следует оптимальность .Отношение «более похоже» должно быть отношением частичного строгого порядка. Часто в качестве него можно выбрать отношение «длина наибольшего общего префикса решения и меньше наибольшего общего префикса решения и ». Тогда если мы сможем увеличить длину наибольшего общего префикса для оптимального решения, не нарушив оптимальности, мы приблизимся к . Можно выбирать и более сложные отношения, например, в доказательстве оптимальности алгоритма для решения задачи используется отношение «время последнего прерывания больше или количество прерываний меньше».
См. также.
Примечания
- ↑ Peter Brucker «Scheduling Algorithms», fifth edition, Springer — с. 161
- ↑ Peter Brucker «Scheduling Algorithms», fifth edition, Springer — с. 121
- ↑ Peter Brucker «Scheduling Algorithms», fifth edition, Springer — с. 129-133
- ↑ Peter Brucker «Scheduling Algorithms», fifth edition, Springer — с. 108
- ↑ Peter Brucker «Scheduling Algorithms», fifth edition, Springer — с. 137-139
Источники информации
- Peter Brucker «Scheduling Algorithms», fifth edition, Springer ISBN 978-3-540-69515-8