Opij1Cmax — различия между версиями
Qradimir (обсуждение | вклад) м (Таблица в техе) |
|||
| Строка 18: | Строка 18: | ||
|- style="text-align:center;" | |- style="text-align:center;" | ||
!<tex>\bf{M_1}</tex> | !<tex>\bf{M_1}</tex> | ||
| − | || <tex>1</tex> || <tex>2</tex> || <tex>3</tex> ||<tex>\ | + | || <tex>1</tex> || <tex>2</tex> || <tex>3</tex> ||<tex>\cdots</tex>|| <tex>n - 1</tex> || <tex>n</tex> |
|- style="text-align:center;" | |- style="text-align:center;" | ||
!<tex>\bf{M_2}</tex> | !<tex>\bf{M_2}</tex> | ||
| − | || <tex>n</tex> || <tex>1</tex> || <tex>2</tex> ||<tex>\ | + | || <tex>n</tex> || <tex>1</tex> || <tex>2</tex> ||<tex>\cdots</tex>|| <tex>n - 2</tex> || <tex>n - 1</tex> |
|- style="text-align:center;" | |- style="text-align:center;" | ||
!<tex>\bf{M_3}</tex> | !<tex>\bf{M_3}</tex> | ||
| − | || <tex>n - 1</tex> || <tex>n</tex> || <tex>1</tex> ||<tex>\ | + | || <tex>n - 1</tex> || <tex>n</tex> || <tex>1</tex> ||<tex>\cdots</tex>|| <tex>n - 3</tex> || <tex>n - 2</tex> |
|- style="text-align:center;" | |- style="text-align:center;" | ||
!<tex>\bf{\vdots}</tex> | !<tex>\bf{\vdots}</tex> | ||
| Строка 30: | Строка 30: | ||
|- style="text-align:center;" | |- style="text-align:center;" | ||
!<tex>\bf{M_m}</tex> | !<tex>\bf{M_m}</tex> | ||
| − | || <tex>n - m + 2</tex> || <tex>n - m + 3</tex> || <tex>n - m + 4</tex> ||<tex>\ | + | || <tex>n - m + 2</tex> || <tex>n - m + 3</tex> || <tex>n - m + 4</tex> ||<tex>\cdots</tex>|| <tex>n - m</tex> || <tex>n - m + 1</tex> |
|} | |} | ||
Версия 18:47, 11 октября 2021
| Задача: |
| Дано одинаковых станков, которые работают параллельно и работ, котороые необходимо выполнить в произвольном порядке на всех станках. Время выполнения каждой работы на любом станке одинаково и равно 1. Необходимо минимизировать время выполнения всех работ. |
Алгоритм
Описание алгоритма
Минимальное значение упирается в следующие ограничения:
- В допустимом расписании на каждом станке надо обработать каждую работу, поэтому .
- В допустимом расписании каждую работу нужно обработать на всех станках, причем ее нельзя обрабатывать на двух станках одновременно, поэтому .
Тогда .
В случае оптимальное расписание строится циклическими сдвигами последовательности и выглядит следующим образом:
Если же , добавим фиктивных работ с номерами , построим расписание способом выше и удалим из полученного расписания фиктивные работы.
Оценка сложности алгоритма
Минимальное значение вычисляется за времени. Построение расписания сводится к заполнению матрицы размером и выполняется за времени.