RpmtnCmax

Материал из Викиконспекты
Перейти к: навигация, поиск

RpmtnCmax


Задача:
Имеется m машин, работающих параллельно. Есть n работ, причем для каждого станка длительность выполнения на нем i-й работы составляет pij. Работа может быть прервана и продолжена позже. Необходимо составить такое расписание, чтобы значение Cmax=maxi=1nCi было минимальным.


Алгоритм

Будет строить расписание по нижней оценке.

Вычислим для каждой работы время tij, которое работа i будет выполняться на j-ом станке в оптимальном расписании.

Пусть tijpij — часть времени, которое работа i будет выполняться на j-ом станке. Тогда mj=1tijpij=1 верно, если работа завершена.

Теперь оптимальное расписание должно удовлетворять следующим условиям:

  1. mj=1tijpij=1,i=1,,n
  2. mj=1tij
  3. \sum\limits_{i=1}^n t_{ij} \leqslant C_{max}, \quad j = 1,\ldots, m
  4. t_{ij} \geqslant 0, \quad i = 1,\ldots, n; j = 1,\ldots, m

Обозначим нижнюю оценку как LB = \max\{\max\limits_{i=1}^n \sum\limits_{j=1}^m t_{ij}, \sum\limits_{i=1}^n t_{ij}\} .

Можем получить ответ на задачу за O(n). Расписание, удовлетворяющее этой оценке строится аналогично O \mid pmtn \mid C_{max} [1] за полиномиальное время.

См. также

Примечания

  1. Peter Brucker «Scheduling Algorithms», fifth edition, Springer — с. 15-17

Источники информации

  • Peter Brucker. «Scheduling Algorithms» — «Springer», 2006 г. — 137-139 стр. — ISBN 978-3-540-69515-8