Opij1Cmax — различия между версиями
Qradimir (обсуждение | вклад) (Добавлен конспект) |
Qradimir (обсуждение | вклад) м (→Оценка сложности алгоритма) |
||
Строка 22: | Строка 22: | ||
===Оценка сложности алгоритма=== | ===Оценка сложности алгоритма=== | ||
− | Минимальное значение <tex> C_{max} </tex> вычисляется за <tex> O(1) </tex> времени. | + | Минимальное значение <tex> C_{max} </tex> вычисляется за <tex> \mathcal{O}(1) </tex> времени. |
− | Построение расписания сводится к заполнению матрицы размером <tex> m \times \max{(m, n)} </tex> и выполняется за <tex> O(m \dot (m + n)) </tex> времени. | + | Построение расписания сводится к заполнению матрицы размером <tex> m \times \max{(m, n)} </tex> и выполняется за <tex> \mathcal{O}(m \dot (m + n)) </tex> времени. |
==См. также.== | ==См. также.== |
Версия 23:34, 5 июня 2016
Задача: |
Дано | одинаковых станков, которые работают параллельно и работ, котороые необходимо выполнить в произвольном порядке на всех станках. Время выполнения каждой работы на любом станке одинаково и равно 1. Необходимо минимизировать время выполнения всех работ.
Алгоритм
Описание алгоритма
Минимальное значение
минимизуруемой функции упирается в следующие ограничения:- В допустимом расписании на каждом станке надо обработать каждую работу, поэтому .
- В допустимом расписании каждую работу нужно обработать на всех станках, причем ее нельзя обрабатывать на двух станках одновременно, поэтому .
Тогда
.В случае
оптимальное расписание циклическими сдвигами последовательности и выглядит следующим образом:1 2 3 ... k k+1 ... n-1 n M_1 1 2 3 ... k k+1 ... n-1 n M_2 n 1 2 ... k-1 k ... n-2 n-1 . ... ... ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... M_m n-m+2 n-m+3 ... ... ... ... ... n-m n-m+1
Если же
, добавим фиктивных работ с номерами , построим расписание способом выше и удалим из полученного расписания фиктивные работы.Оценка сложности алгоритма
Минимальное значение
вычисляется за времени. Построение расписания сводится к заполнению матрицы размером и выполняется за времени.