Это не официальный сайт wikipedia.org 01.01.2023

Задача планирования для поточной линии — Википедия

Задача планирования для поточной линии

Задача планирования для поточной линии (англ. flow shop scheduling problem или permutation flowshop scheduling[1]) — комбинаторная задача теории расписаний.

ОпределениеПравить

Даны n   требований и m   машин для их обработки. Заданы следующие ограничения:

  • все требования должны пройти обработку последовательно на всех машинах с 1-й до m  -ой;
  • любая машина в каждый момент времени может обрабатывать только одно требование.
  • не допускаются прерывания при обслуживании требований и, следовательно, решение определяется некоторой перестановкой требований.

Задано время обслуживания каждого требования на каждой машине матрицей M n m ( R + )  . Элемент матрицы p i j   — время обслуживания требования i   на машине j  .

Обычно рассматривают следующие целевые функции:

  • C m a x  , время окончания обслуживания последнего требования на m  -ой машине или общее время обслуживания;
  • Σ i = 1 n c i  , сумму времен окончания обслуживания требований на машине m  .

Алгоритмы минимизации C m a x Править

Алгоритм для двух машинПравить

Для решения задачи на двух машинах найден полиномиальный по времени алгоритм Джонсона[2]: требования разделяются на два множества U = { i : p i 1 < p i 2 }   и V = { i : p i 1 p i 2 }  , далее:

  • требования U   упорядочиваются по неубыванию p i 1  ,
  • требования V   упорядочиваются по невозрастанию p i 2  ,
  • оптимальная последовательность является конкатенацией упорядоченных таким образом U   и V  .

Алгоритм имеет временную сложность n log ( n )  , поскольку использует алгоритм сортировки.

Алгоритмы для трёх и более машинПравить

В случае более двух машин эта задача является NP-трудной, но разработано множество эвристических полиномиальных по времени приближённых алгоритмов[3].

Эвристика NEHПравить

Одним из наиболее известных алгоритмов является эвристика Наваза, Энскора и Хама (Nawaz, Enscore, Ham)[4]:

  • требования упорядочиваются по j = 1 m p i j   и нумерюутся в соответствии с этим порядком,
  • определяется порядок обслуживания двух первых требований так, чтобы минимизировать время их обслуживания,
  • для i = 3   до n  :
    • помещается требование i   на позицию k [ 1 , i ]  , которая минимизирует общее время обслуживания первых i   требований
  • (конец цикла)

Эвристика Кэмпбелла, Дудека и СмитаПравить

Известна также эвристика Кэмпбелла, Дудека и Смита (Campbell, Dudek, Smith), в которой задача для m   машин последовательно сводится к m 1   задаче для 2 машин[5] и каждая из них решается алгоритмом Джонсона.

ПримечанияПравить

  1. Permutation flowshop problem  (неопр.). Дата обращения: 22 апреля 2013. Архивировано 6 мая 2021 года.
  2. S.M. Johnson, Optimal two- and three-stage production schedules with setup times included, Naval Res. Log. Quart. I(1954)61-68.
  3. A comprehensive review and evaluation of permutation flowshop heuristics
  4. [1] A heuristic algorithm for the m-machine, n-job flow-shop sequencing problem
  5. Chapter_4, Flow Shop Scheduling  (неопр.). Дата обращения: 22 апреля 2013. Архивировано из оригинала 21 октября 2014 года.