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

Материал из testwiki
Перейти к навигации Перейти к поиску

Задача планирования для поточной линии (Шаблон:Lang-en или Шаблон:Lang-en2[1]) — комбинаторная задача теории расписаний.

Определение

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

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

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

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

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

Алгоритмы минимизации Cmax

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

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

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

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

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

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

Эвристика NEH

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

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

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

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

Примечания

Шаблон:Примечания

  1. Шаблон:Cite web
  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. Шаблон:Cite web