1rjpjpsumwjcjиsumtj
Версия от 04:37, 8 июня 2016; Romanosov (обсуждение | вклад)
Задача: |
Дано | работ и станок. Для каждой работы известны время появления , вес и дедлайн . Время выполнения всех работ равно . Требуется выполнить все работы так, чтобы значение , где — время окончания работы, было минимальным.
Задача: |
Дано | работ и станок. Для каждой работы известны время появления , вес и дедлайн . Время выполнения всех работ равно . Требуется выполнить все работы так, чтобы значение — суммарной медлительности работы ( ) — было минимальным.
Содержание
Предисловие
Аналогично задаче , данные задачи решаются при помощи динамического программирования.
Вместо критериев оптимизации
и возьмём более общую для них функцию вида , где функции обладают следующими свойствами:- не убывает для всех ;
- не убывает для всех при .
Получим обобщенную задачу лемме существует оптимальное расписание, в котором каждая работа начинается в момент времени из множества .
, для которой согласноФункции
и удовлетворяют данным условиям, если отсортировать работы так, что и .Алгоритм
Отсортировать работы так, чтобыудовлетворяла условиям неубывания; for s, e T : s e (s, e) = 0; for k = 1..n for s, e T : s e if else , где return
Время работы
Корректность алгоритма
Ниже приведена теорема, показывающая, что возвращаемое алгоритмом значение
равно .Теорема: |
Для любого и для любого , выполняется равенство:
. |
Доказательство: |
Будем полагать, что равенство верно для (очевидно, равенство выполнится при ).Если , тогда что подразумевается в равенстве.Теперь нужно показать, что а) ;б) при .а) Полагаем, что ограничена. Тогда существует такая, что, при которой
б) Полагаем, что ограничена. Среди всех оптимальных расписаний, возвращающих выберем оптимальное расписание , соответствующий вектор времён окончания работ которого минимален при условии, что в лексикографическом порядке.Пусть — время начала работы в расписании . Тогда
Чтобы проверить первое неравенство, нужно показать, что все работы записаны в в пределах интервала , а все работы — в пределах . Докажем первое утверждение (второе доказывается аналогично).Полагаем, что существует работа такая, что , начинающаяся в расписании позже, чем работа . Поменяв местами и , получим оптимальное расписание такое, что, где — объективное значение расписания подразумевает , так как не убывает по условию. Таким образом, также является оптимальным, несмотря на то, что это противоречит лексикографической минимальности расписания . |
Другие задачи
См. также
Источники информации
P. Brucker. Scheduling Algorithms (2006), 5th edition, стр. 98 - 104