1pi=1wirisumwi(ci - pi -ri) — различия между версиями
Dimitrova (обсуждение | вклад) (→Описание алгоритма) |
Dimitrova (обсуждение | вклад) (→Описание алгоритма) |
||
Строка 12: | Строка 12: | ||
<ol> | <ol> | ||
<li> Выбирать работу <tex>j</tex> из множества невыполненных работ, у которой <tex>r_{i} \le time</tex> и значение <tex>w_{i}(time - r_{i})</tex> максимально.</li> | <li> Выбирать работу <tex>j</tex> из множества невыполненных работ, у которой <tex>r_{i} \le time</tex> и значение <tex>w_{i}(time - r_{i})</tex> максимально.</li> | ||
− | <li> | + | <li> Если мы смогли найти работу <tex>j</tex>, то выполняем её в момент времени <tex>time</tex></li> |
+ | <li> Увеличиваем <tex>time</tex> на один.</li> | ||
</ol> | </ol> | ||
==Доказательство корректности алгоритма== | ==Доказательство корректности алгоритма== |
Версия 20:27, 18 июня 2012
Постановка задачи
Рассмотрим задачу:
- Дано работ и один станок.
- Для каждой работы известно её время появления и вес . Время выполнения всех работ равно .
Требуется выполнить все работы, чтобы значение
было минимальным.Описание алгоритма
Пусть
Для каждого очередного значения , которое изменяется от до времени окончания последний работы, будем:
- Выбирать работу из множества невыполненных работ, у которой и значение максимально.
- Если мы смогли найти работу , то выполняем её в момент времени
- Увеличиваем на один.