Opij1Cmax
| Задача: |
| Дано одинаковых станков, которые работают параллельно и работ, котороые необходимо выполнить в произвольном порядке на всех станках. Время выполнения каждой работы на любом станке одинаково и равно 1. Необходимо минимизировать время выполнения всех работ. |
Алгоритм
Описание алгоритма
Минимальное значение упирается в следующие ограничения:
- В допустимом расписании на каждом станке надо обработать каждую работу, поэтому .
- В допустимом расписании каждую работу нужно обработать на всех станках, причем ее нельзя обрабатывать на двух станках одновременно, поэтому .
Тогда .
В случае оптимальное расписание строится циклическими сдвигами последовательности и выглядит следующим образом:
| 1 | 2 | 3 | n - 1 | n | ||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | n - 1 | n | ||
| n | 1 | 2 | n - 2 | n - 1 | ||
| n - 1 | n | 1 | n - 3 | n - 2 | ||
| n - m + 2 | n - m + 3 | n - m + 4 | n - m | n - m + 1 |
Если же , добавим фиктивных работ с номерами , построим расписание способом выше и удалим из полученного расписания фиктивные работы.
Оценка сложности алгоритма
Минимальное значение вычисляется за времени. Построение расписания сводится к заполнению матрицы размером и выполняется за времени.