Opij1Cmax — различия между версиями
Qradimir (обсуждение | вклад) (Вики-таблица, см. также) |
м (rollbackEdits.php mass rollback) |
||
(не показаны 4 промежуточные версии 3 участников) | |||
Строка 15: | Строка 15: | ||
|- | |- | ||
! | ! | ||
− | !| | + | !| <tex>\textbf1</tex> || <tex>\textbf2</tex> || <tex>\textbf3</tex> ||<tex>\bf{\cdots}</tex>|| <tex>\textbf{n - 1}</tex> || <tex>\textbf{n}</tex> |
|- style="text-align:center;" | |- style="text-align:center;" | ||
− | !<tex>M_1</tex> | + | !<tex>\bf{M_1}</tex> |
− | || 1 || 2 || 3 ||<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>M_2</tex> | + | !<tex>\bf{M_2}</tex> |
− | || n || 1 || 2 ||<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>M_3</tex> | + | !<tex>\bf{M_3}</tex> |
− | || n - 1 || n || 1 ||<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>\vdots</tex> | + | !<tex>\bf{\vdots}</tex> |
||<tex>\vdots</tex>||<tex>\vdots</tex>||<tex>\vdots</tex>||<tex>\ddots</tex>||<tex>\vdots</tex>||<tex>\vdots</tex> | ||<tex>\vdots</tex>||<tex>\vdots</tex>||<tex>\vdots</tex>||<tex>\ddots</tex>||<tex>\vdots</tex>||<tex>\vdots</tex> | ||
|- style="text-align:center;" | |- style="text-align:center;" | ||
− | !<tex>M_m</tex> | + | !<tex>\bf{M_m}</tex> |
− | || n - m + 2 || n - m + 3 || n - m + 4 ||<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> |
|} | |} | ||
− | Если же <tex> n < m </tex>, добавим <tex> m - n </tex> фиктивных работ с номерами <tex> n + 1 \dots m </tex>, построим расписание способом выше и удалим из полученного расписания фиктивные работы. | + | Если же <tex> n < m </tex>, добавим <tex> m - n </tex> фиктивных работ с номерами <tex> n + 1 \dots m </tex>, построим расписание способом выше и удалим из полученного расписания фиктивные работы. |
===Оценка сложности алгоритма=== | ===Оценка сложности алгоритма=== |
Текущая версия на 19:26, 4 сентября 2022
Задача: |
Дано | одинаковых станков, которые работают параллельно и работ, котороые необходимо выполнить в произвольном порядке на всех станках. Время выполнения каждой работы на любом станке одинаково и равно 1. Необходимо минимизировать время выполнения всех работ.
Алгоритм
Описание алгоритма
Минимальное значение
упирается в следующие ограничения:- В допустимом расписании на каждом станке надо обработать каждую работу, поэтому .
- В допустимом расписании каждую работу нужно обработать на всех станках, причем ее нельзя обрабатывать на двух станках одновременно, поэтому .
Тогда
.В случае
оптимальное расписание строится циклическими сдвигами последовательности и выглядит следующим образом:Если же
, добавим фиктивных работ с номерами , построим расписание способом выше и удалим из полученного расписания фиктивные работы.Оценка сложности алгоритма
Минимальное значение
вычисляется за времени. Построение расписания сводится к заполнению матрицы размером и выполняется за времени.