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. Необходимо минимизировать время выполнения всех работ. | 
Алгоритм
Описание алгоритма
Минимальное значение упирается в следующие ограничения:
- В допустимом расписании на каждом станке надо обработать каждую работу, поэтому .
 - В допустимом расписании каждую работу нужно обработать на всех станках, причем ее нельзя обрабатывать на двух станках одновременно, поэтому .
 
Тогда .
В случае оптимальное расписание строится циклическими сдвигами последовательности и выглядит следующим образом:
Если же , добавим фиктивных работ с номерами , построим расписание способом выше и удалим из полученного расписания фиктивные работы.
Оценка сложности алгоритма
Минимальное значение вычисляется за времени. Построение расписания сводится к заполнению матрицы размером и выполняется за времени.