J2ni2Cmax — различия между версиями
Zemskovk (обсуждение | вклад) (Отмена правки 53948 участника Zemskovk (обсуждение)) |
Zemskovk (обсуждение | вклад) м (→Сложность алгоритма) |
||
Строка 83: | Строка 83: | ||
Сложность алгоритма <tex>O(n\log n)</tex>. | Сложность алгоритма <tex>O(n\log n)</tex>. | ||
+ | |||
+ | ==Источники информации== | ||
+ | * Peter Brucker. «Scheduling Algorithms» {{---}} «Springer», 2006 г. {{---}} 180 стр. {{---}} ISBN 978-3-540-69515-8 | ||
[[Категория: Дискретная математика и алгоритмы]] | [[Категория: Дискретная математика и алгоритмы]] | ||
[[Категория: Теория расписаний]] | [[Категория: Теория расписаний]] |
Версия 20:00, 15 мая 2016
Содержание
Постановка задачи
Рассмотрим задачу:
- Дано работ и станка.
- Для каждой работы известно её время выполнения на каждом станке .
- Для каждой работы известна последовательность станков - порядок, в котором нужно выполнить работу.
- В каждой последовательности не более двух элементов.
Требуется минимизировать время окончания выполнения всех работ.
Описание алгоритма
- первый станок. - второй станок.
Разобьем все работы на четыре множества:
- - множество всех работ, которые должны выполниться только на .
- - множество всех работ, которые должны выполниться только на .
- - множество всех работ, которые должны выполниться сначала на затем на .
- - множество всех работ, которые должны выполниться сначала на затем на .
Решим задачу для и для независимо. Получим расписание и .
Тогда оптимальное расписание для нашей задачи будет следующим:
- Расписание : сначала в соответсвии с расписанием . Затем в произвольном порядке. Затем в соответсвии с .
- Расписание : сначала в соответсвии с расписанием . Затем в произвольном порядке. Затем в соответсвии с .
Примечание: во время выполнения
на или на могут возникнуть простои из-за того, что работа ещё не выполнилась на предыдущем станке.Доказательство корректности алгоритма
- время выполнения множества работ на станке .
- множество всех работ, которые нужно сделать хотя бы раз на -м станке. (Формально )
Лемма: |
Расписание, построенное данным алгоритмом, обладает следующим свойством : один из станков работает без простоев. |
Доказательство: |
Рассмотрим 2 случая:
|
Теорема: |
Расписание, построенное данным алгоритмом, является корректным и оптимальным. |
Доказательство: |
Корректность алгоритма очевидна. Докажем оптимальность. Пусть, для опеределенности работает без прерываний.Рассмотрим станок на котором достигается . |
Сложность алгоритма
Время работы алгоритма равно времени работы алгоритма .
Сложность алгоритма
.Источники информации
- Peter Brucker. «Scheduling Algorithms» — «Springer», 2006 г. — 180 стр. — ISBN 978-3-540-69515-8