Условие (1) является достаточным для оптимальности расписания. То есть если для любой пары требований (i, j) из некоторого расписания условие (1) выполнено, то расписание оптимально. Однако строить оптимальное расписание с его помощью не слишком удобно, так как требуется большое количества проверок и переборов. Поэтому будет предложен алгоритм построения расписания, а затем будет доказано, что расписание, построенное с помощью этого алгоритма, удовлетворяет условию (1), то есть является оптимальным.
Алгоритм Джонсона
Шаг 1. В первую группу заносятся требования, у которых ; во вторую группу заносятся требования, у которых .
Шаг 2. Требования из первой группы сортируются по неубыванию а i и в таком порядке занимают первые место в расписании.
Шаг 3. Требования из второй группы сортируются по невозрастанию b i и занимают в таком порядке последующие места в расписании.
Пример 2. Дано пять деталей, которые последовательно обрабатываются на двух станках. Время обработки каждой детали на каждом станке указано в таблице 5.
Таблица 5
i | |||||
a i | |||||
b i |
В соответствии с требованиями алгоритма разобьем требования на группы:
Таблица 6
I группа | II группа | ||||||
i | i | ||||||
a i | b i |
Оптимальное расписание . Длина расписания вычисляется в таблице 7.
Таблица 7
σ | |||||
f ia | |||||
f ib |
Здесь общее время обслуживания равно 16.
Доказательство оптимальности алгоритма Джонсона
Докажем, что для расписания, полученного с помощью алгоритма Джонсона, выполнено условие (1).
В самом деле, пусть в расписании (i предшествует j). Тогда возможны три случая:
1. ,
2. ,
3. .
(Возможен ли случай когда , а ?)
Случай 1.
Если i и j принадлежат первой группе, то
, (8)
, (9)
, (10)
Тогда , откуда следует, что .
Чтобы доказать, что (1) выполнено нужно показать, что и . Но эти условия выполнены: (8), (10).
Упражнение 1. Докажите самостоятельно оптимальность алгоритма для второго случая. Подсказка: здесь будет выполнено .
Случай 3.
В этом случае имеем
, (11)
. (12)
Так как требования из первой и второй группы не связаны никакими зависимостями, то может достигаться как на так и на . Рассмотрим случай 3.1, где , то есть
(13)
и требуется доказать, что
(14)
и
(15)
(15) следует из (11). Далее из (12) и (13) следует , то есть выполняется (14).
Упражнение 2. Самостоятельно доказать для случая (12), где .
Замечание о сложности алгоритма. Поскольку алгоритм построения оптимального расписания состоит из сортировки, а сложность сортировки имеет порядок , то можно сказать, что задача Джонсона с двумя приборами имеет полимиальную сложность.
Теория экономических информационных систем