1precripi1Lmax — различия между версиями
(→Источники информации) |
Shersh (обсуждение | вклад) (добавлен заголовок в нотации Грэхема) |
||
Строка 1: | Строка 1: | ||
− | + | <tex dpi=200>1 \mid prec; r_i; p_i = 1 \mid L_{max}</tex> | |
+ | |||
{{Задача | {{Задача | ||
|definition = Дано <tex>n</tex> работ и один станок. Для каждой работы известно её время появления <tex>r_{i}</tex>. Время выполнения всех работ <tex>p_i</tex> равно <tex>1</tex>. Работа может начаться только после выполнения некоторых других работ, эта зависимость дана в виде ациклического графа. Необходимо составить такое расписание, чтобы значение <tex>L_{max} = \max\limits_{i=1..n} (C_i - d_i)</tex> было минимальным. | |definition = Дано <tex>n</tex> работ и один станок. Для каждой работы известно её время появления <tex>r_{i}</tex>. Время выполнения всех работ <tex>p_i</tex> равно <tex>1</tex>. Работа может начаться только после выполнения некоторых других работ, эта зависимость дана в виде ациклического графа. Необходимо составить такое расписание, чтобы значение <tex>L_{max} = \max\limits_{i=1..n} (C_i - d_i)</tex> было минимальным. |
Версия 21:48, 25 апреля 2016
Задача: |
Дано | работ и один станок. Для каждой работы известно её время появления . Время выполнения всех работ равно . Работа может начаться только после выполнения некоторых других работ, эта зависимость дана в виде ациклического графа. Необходимо составить такое расписание, чтобы значение было минимальным.
Описание алгоритма
Пусть
Для каждого очередного значения , которое изменяется от до времени окончания последней работы, будем:
- Выполнять работу из множества невыполненных работ, у которой минимально.
- Увеличивать на один.
Доказательство
Пусть существует оптимальное расписание
. В этом расписании работа выполняется тогда, когда она появилась, либо когда закончилась другая работа. Рассмотрим такое расписание , которое как можно дольше совпадает с расписанием S, построенным алгоритмом. Пусть первый момент времени, когда в расписании начинает выполняться работа , а в расписании работа (причем ). Мы знаем, что , а значит (поскольку при построении мы выбираем минимальное доступное ). Пусть все работы, которые находятся в расписании между работами и и являются наследниками работы . Кроме того, предположим, что эти работы упорядочены по времени начала выполнения. Теперь, если мы поставим работу вместо вместо вместо вместо , то мы снова получим возможное оптимальное расписание . так как , где . Последнее неравенство имеет место быть, поскольку все работы являются наследниками работы .