Opij1Sumwc — различия между версиями
Qradimir (обсуждение | вклад) (Конспект создан) |
Qradimir (обсуждение | вклад) м |
||
Строка 3: | Строка 3: | ||
|definition = Дано <tex>m</tex> одинаковых станков, которые работают параллельно и <tex>n</tex> работ, котороые необходимо выполнить в произвольном порядке на всех станках. Время выполнения каждой работы на любом станке одинаково и равно 1. Необходимо минимизировать взвешенную сумму времен завершения работ. | |definition = Дано <tex>m</tex> одинаковых станков, которые работают параллельно и <tex>n</tex> работ, котороые необходимо выполнить в произвольном порядке на всех станках. Время выполнения каждой работы на любом станке одинаково и равно 1. Необходимо минимизировать взвешенную сумму времен завершения работ. | ||
}} | }} | ||
− | |||
==Алгоритм== | ==Алгоритм== | ||
Версия 00:36, 6 июня 2016
Задача: |
Дано | одинаковых станков, которые работают параллельно и работ, котороые необходимо выполнить в произвольном порядке на всех станках. Время выполнения каждой работы на любом станке одинаково и равно 1. Необходимо минимизировать взвешенную сумму времен завершения работ.
Алгоритм
Описание алгоритма
Утверждение: |
Оптимальный ответ для равен оптимальному ответу к задаче |
Для доказательства этого утверждения необходимо показать то, что из оптимальности следует оптимальность , и способ построения допустимого расписания для из расписания для :
|
Чтобы непосредственно решить эту задачу, воспользуемся теоремой о том, что для задачи [1]. Известно, что для того, чтобы получить оптимальное расписание для такой задачи без прерываний, надо помещать работы по очереди на станки в порядке убывания весов. Длительности у всех работ совпадают, поэтому расписание будет состоять из блоков по работ и, возможно, одного неполного блока из работ. Таким образом, аналогично задаче , чтобы получить допустимое расписание, можно не строить раскраску графа, а просто циклически сдвигать последовательности работ внутри каждого блока.
существует оптимальное расписание без прерыванийВремя работы
Чтобы построить циклические сдвиги внутри одного блока требуется
времени. Всего блоков . Значит, итоговая ассимптотика равна .См. также.
Примечания
- ↑ P. Brucker. Scheduling Algorithms (2006), 5th edition, p. 121