М атематические проблемы управления
УДК 519.8
РЕШЕНИЕ ОБОБЩЕННОЙ ЗАДАЧИ ДЖОНСОНА С ОГРАНИЧЕНИЯМИ НА СРОКИ ВЫПОЛНЕНИЯ ЗАДАНИЙ И ВРЕМЕНА РАБОТЫ МАШИН. Ч. 1. Точные методы решеноя
Ю.А. Зак
Задача поиска оптимальной перестановки, определяющей последовательность выполнения некоторого множества заданий в условиях фиксированной и одинаковой для всех заданий последовательности выполнения отдельных работ на различных машинах, обобщена на случай, когда заданы ограничения на стартовые и завершающие сроки как выполнения отдельных заданий, так и на времена работы оборудования. Исследованы свойства допустимых и оптимальных последовательностей выполнения заданий. Приведены расчетные формулы для вычисления нижней границы суммарной длины расписания. Разработаны точные и приближенные методы решения задачи.
Ключевые слова: оптимальное расписание, последовательность выполнения заданий, ограничения на времена начала и завершения.
ВВЕДЕНИЕ
Классическая задача теории расписаний, сформулированная Джонсоном («flow-shop problem») [1, 2], заключается в построении оптимальной последовательности выполнения комплекса заданий, а также в определении начальных и завершающих сроков выполнения всех работ (операций), входящих в каждое из этих заданий, обеспечивающих минимальное время завершения всего комплекса работ. Существенная особенность заключается в том, что состав и последовательности комплексов работ на рабочих станциях (машинах) для каждого из заданий одинаковы. Оптимальное решение ищется в подмножестве расписаний, для которого последовательность выполнения всего комплекса работ для всех рабочих станций (машин) одинакова.
Большинство рассматриваемых в литературе приближенных методов решения задачи в традиционной формулировке [1—4] не позволяют оценить точность полученного приближенного решения даже в случае, когда не заданы ограничения на конечные сроки выполнения отдельных заданий.
Эффективные формулы вычисления нижних границ оптимального решения позволили бы останавливать процесс решения при получении последовательности выполнения заданий с суммарной длительностью, удовлетворяющей поставленным требованиям точности.
Для конструирования алгоритмов получения точного решения задачи на основе метода «ветвей и границ» («ЪгапсИ-апё-Ъоипё-шеШоё» [5—9]) должны быть получены эффективные оценки оптимального решения и для случаев, когда построена подпоследовательность выполнения только некоторого подмножества заданий, а остальные еще неупорядоченные задания должны продолжить эту последовательность.
Для практических приложений представляет существенный интерес рассмотрение обобщенной задачи Джонсона в условиях, когда заданы ограничения на начальные и конечные сроки выполнения заданий и использования рабочих станций. В такой постановке сформулированная задача имеет много приложений в планировании производства и организации обслуживания объектов. Исследованиям математических свойств таких задач не уделялось должного внимания в литературе. За-
частую очень сложно на начальных этапах решения установить факт несовместности исходной системы ограничений, что, как правило, также сопряжено со значительным объемом вычислений.
1. ПОСТАНОВКА ЗАДАЧИ
На m рабочих станциях (машинах) должно быть выполнено n заданий, каждое из которых состоит из фиксированного и одного и того же для каждого задания числа операций. Последовательность выполнения операций каждого задания строго задана и одинакова для всех заданий. Каждая из m операций задания выполняется на некоторой конкретной рабочей станции и не допускает разрывов во времени выполнения. Следовательно, пара индексов (i, к), i = 1,..., n; к = 1,..., m однозначно идентифицируют каждую операцию любого задания.
Заданы:
П = {1, ..., к, ..., m} — последовательность выполнения операций, одинаковая для каждого задания;
t(i, к) — время выполнения операции (/, к);
Ь. и Б. — соответственно граничные сроки на начало и завершение выполнения i-го задания;
Нк и Нк — соответственно граничные начальные и конечные времена возможности использования k-й рабочей станции.
Если величины Ьг или hk не заданы, то они полагаются равными нулю. В случае отсутствия граничных значений Б. или Ик они полагаются равными да.
Все граничные значения и времена выполнения операций предполагаются целочисленными величинами.
Обозначим:
x(i, к) — время начала выполнения операции (i, к);
0(i, к) — допустимый наиболее ранний срок начала выполнения операции (/, к);
ст(/, к) = x(i, к) + t(i, к) — время завершения выполнения операции (i, к);
Т. = ст(/, m) — время завершения выполнения операции i-го задания,
Т = max Т. — время окончания выполнения
1 < i < m
всего множества заданий.
Необходимо найти оптимальную последовательность выполнения заданий и определяемые ею целочисленные значения времен начала и окончания выполнения всех операций, обеспечивающие соблюдение всех ограничений на допустимые сроки выполнения всех заданий и времена работы рабочих станций, которая минимизирует время выполнения всего комплекса работ T.
На основе исследования и анализа свойств, допустимых и оптимальных последовательностей выполнения заданий предлагаются как формулы, так и алгоритмы, требующие незначительных объемов вычислений, для оценки совместности системы ограничений и минимальной длительности расписания в условиях, когда построена последовательность выполнения некоторого подмножества заданий (некоторый частичный план). В процессе развития частичного плана (с увеличением длины последовательности, т. е. числа заданий, включенных в нее) эти оценки становятся все более точными и при построении полной последовательности совпадают с решением. На основе предложенных оценок уже на этапе предварительного анализа и на каждом из шагов алгоритма происходит эффективный отсев подмножеств, не содержащих допустимых расписаний. Во многих случаях, когда система ограничений является несовместной, определяются номера рабочих станций, ресурс времени которых должен быть раздвинут и альтернативные номера заданий, начальные и конечные сроки выполнения которых должны быть скорректированы.
Рассматриваются методы решения задачи, в которых оптимальная последовательность заданий строится последовательно и вначале состоит только из одного задания, выполняемого первым. Затем эта последовательность расширяется включением некоторого задания, которое выполняется вторым и т. д.
Частичным планом Р5 назовем некоторую упорядоченную подпоследовательность выполнения
подмножества /[, включающего в себя Я5 заданий, — У = { 1Х , 12 , ..., /Д }, в которой определены допустимые сроки начала и окончания выполнения каждой операции всех входящих в эту последовательность заданий. В частичном плане первым
выполняется задание /х, затем задание /2 и последним — задание /Д. Множество различных последовательностей выполнения остальных заданий
расписания 1% = // /[, которое необходимо определить, назовем дополнением этого частичного
плана и обозначим его Б5. Для каждого частичного плана могут быть определены нижние границы суммарной длительности расписания, оценки возможности выполнения системы ограничений на начальные и конечные сроки выполнения заданий и на времена работы оборудования. В подмножестве дополняющих планов могут быть исключены подмножества последовательностей, не содержащих допустимых решений.
2. ОЦЕНКА НИЖНЕИ ГРАНИЦЫ ДЛИНЫ РАСПИСАНИЯ
Рассмотрим вначале оценку минимальной длины расписания в традиционной постановке flow-shop problem без учета ограничений на начальные и конечные сроки выполнения заданий и возможности использования машин. Ясно, что общая продолжительность расписания не может быть меньше длительности выполнения каждого из заданий
E0 = F l max V t(i, к).
15' < "kTi
Для начала работы каждой к-й рабочей системы необходимо, чтобы все операции l = 1, ..., к — 1, предшествующие этой к-й операции, были уже выполнены. Для этого в i-м задании требуется вре-
к -1
мени не менее чем n1(i, к) = V t(i, l) даже в том
1 = 1
случае, если при выполнении этого задания ни одна из рабочих станций не теряет времени на простой после выполнения предыдущей операции. Суммарное время выполнения всех операций
П
на к-й машине равно V t(i, к). После того, как
i = 1
операции всех заданий на к-й рабочей станции будут выполнены, еще требуется дополнительное время работы машин, l = к + 1, ..., m, равное
m
П2(/, к) = V t(i, l), для того чтобы завершить вы-
1 = к + 1
полнение /-го задания. Следовательно, оценка времени выполнения расписания из условия занятости рабочих систем определяется выражением
+
E = F l max <! V t(i, к) + min п1(/, к)
1 < к < m I _ 1 < i < n
i = 1
+ min n2(i, к)
1 < i < n
а с учетом оценки завершения выполнения отдельных заданий — выражением
max <! V t(i, к) + min п1(/, к)
1 < к < m I „ 1 < i < n
i = 1
+
min n2(i, к) !>, V max t(i, к)
1 < i < n , , 1 < i < n
к = 1
+
(1)
Выражение для нижней границы длины расписания в виде (1) известно и широко применяется в литературе (см., например, работы [1, 2, 10]). Од-
нако оно не годится при наличии ограничений на сроки выполнения заданий и времена работы оборудования, а также в случаях, когда необходимо оценить эффективность отдельных частичных планов.
Для вычисления нижней границы оптимальной длины расписания в условиях ограничений рассмотрим расчетные формулы вычисления сроков начала и завершения выполнения операций заданий некоторого частичного плана Р5, которые упорядочены в последовательности Р5 = {/'1, /'2, ...,
/1 -1, // , ..., /д/•
0( /'5, 1) = шах[^1, Ь( /'[)], ст(/5, 1) = 0(, 1) + ?(, 1) - 1, (2)
0( /'[, к) = шах[^к, ст( /'5, к — 1) + 1], ст( /'[, к) = 0( /'[, к) + ?(/'[, к) — 1, к = 2, ..., т, (3)
0( /'5, к) = шах[ст( /'[, к), ст( //, к — 1)] + 1,
Ст( //, к) = 0( /;, к) + ?(/;, к) — 1, (4)
к = 1, ..., т, 1 = /'2, ..., /Д.
В формуле (4) полагается ст( //, к — 1) = 0 при к = 0.
Определим следующие величины:
— время выполнения рабочей системой к всего
подмножества заданий /2
т5(к) = £ *(/, к), к = 1, ..., т; (5)
г е
— наиболее ранние сроки начала выполнения
подмножества заданий /2 на каждой к-й рабочей системе
^(/, 0) = 0, ^(/, 1) = Ст( /Д, 1) + 1, (6)
ц5(/, к) = шах[ст( /Д, к) + 1, ц5(/, к — 1) + ?(/, к — 1)],
к = 2...........m, i е I
2;
()
— наиболее ранний срок завершение выполне-
ч ч т-5
ния всех операций каждого из заданий / е /2 после
окончания работы к-й рабочей системы
т
£5(/, к) = £ ?(/, У), к = 1, ..., т, / е /2; (8)
} = к + 1
— наиболее ранний срок завершения выполне-
71У
ния каждого задания / е /2
15(/, т) = ц5(/, т) + ?(/, т) — 1, / е /2, (9)
m
m
m
n
или более точная оценка
^(г, ш) = тах
0 < к < т - 1
к
^(г, ш — к) +
+ X ?(/, ш — г) — 1
г = 0
(10)
Утверждение 1. Продолжительность выполнения всего комплекса работ для частичного плана не может быть меньше величины
Е = тах<{ тах 1 (г, ш); тах
г* 1 < к < т
і Є 1л
тіп ^(г, к) +
І Є 1л
+ тіп £(/, к) + X ?(г', к) - 1
І Є 1л
* 7"^
І Є 1л
(11)
0 5
Для начального частичного плана Р (^ = 0, /2 = /) выражение (10) имеет вид
Е0 = тах<{ тах ст0(г, ш); тах
1 < І < п 1 < к < т
тіп ст (г, к) +
1 < І < п
+ тіп X ?(г, к) + X ?(г, к) — 1
I = к + 1
І Є 1
♦ (12)
Выражение (12), в котором значения ст°(/, к) и ст°(/, т) вычисляются по формулам (2) и (3), эквивалентно выражению (1).
3. ОЦЕНКИ ВОЗМОЖНОСТИ ВЫПОЛНЕНИЯ ЗАДАННОЙ
СИСТЕМЫ ОГРАНИЧЕНИЙ ФОРМУЛИРУЕМОЙ ЗАДАЧИ И ПОСТРОЕННЫХ ЧАСТИЧНЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ ВЫПОЛНЕНИЯ МНОЖЕСТВА ЗАДАНИЙ
Далее исследуются свойства допустимых частичных последовательностей выполнения заданий. Это позволит уже на первых шагах алгоритма исключить из рассмотрения подмножества последовательностей выполнения заданий, не содержащих допустимых планов, а также на начальном этапе решения установить факт несовместности системы ограничений исходной задачи.
Утверждение 2. Если для частичного плана Р5 существует хотя бы одно задание / е /2, для которого справедливы условия
^(г, ш) > В,
(13)
то он не содержит допустимых последовательностей и может быть исключен из рассмотрения. ♦
Утверждение 3. Если для частичного плана Р* существует хотя бы одна рабочая система к = 1, ..., ш, для которой справедливы условия
тах
/-.У
І Є 1л
ц"(г, к) + X *(/, к) — 1 > Н
к
(14)
* 7"^
І Є 1л
он не содержит допустимых последовательностей и может быть исключен из рассмотрения. ♦
Утверждение 4. Если для некоторого частичного плана Р5 справедливо неравенство
тах ВІ < Е
І Є 4
(15)
то он не содержит допустимых решений. ♦
Ясно, что для частичного плана Р5 время завершения выполнения любого из заданий / е /2 не
может быть меньше времени 85(/, т) = ст5( /Д, т) + + ?(/, т) — 1 или (более точная оценка)
8 (г, ш) = тах
0 < к < т - 1 к
ш
к) +
+ X ?(г, ш — г) — 1
г = 0
Упорядочим все задания подмножества /2 по возрастанию граничных значений времени завершения их выполнения Д •
]1 ]2
и определим значения
(16)
8‘5(./1, ш) = іДД, ш);
8*С/е, ш) = |"(/ -1, ш) + / ш) — 1,
Я = 2,
С.
(17)
Более точные оценки могут быть получены из формул
8*(/0, к) = ст*(/д, к), 8/ к) =
= тах[8*(/^-1, к), 8/ к — 1) + + ¿(/, к — 1) — 1],
(18)
к = 1, ..., ш, я = 1, ..., С.
Утверждение 5. Если на этапе анализа некоторого частичного плана Р * в процессе вычисления значений 8*(/, ш) согласно последовательности (16) обнаружится справедливость хотя бы одного из неравенств
8/ ш) > В/ , я = 1,
С,
(19)
т
£
то он не содержит допустимых последовательностей и может быть исключен из рассмотрения. ♦
Сформулируем очевидные условия несовместности системы ограничений на сроки выполнения заданий и возможностей использования рабочих систем обобщенной flow-shop problem.
Утверждение 6. Пусть исходное множество заданий I упорядочено в порядке возрастания граничных значений окончания выполнения отдельных заданий Б,- < Б,- < ... < Б,- < ... < Б,- и согласно
г1 г2 'g ги
формулам (2) и (3) определены наиболее ранние возможные сроки начала и завершения всех операций
каждого задания 0о(/, к), ст°(/, к), к = 1, ..., m; i = 1, ..., n; согласно выражению (1) вычислена нижняя граница общей длительности завершения выполнения всех заданий F0. Если для вычисленных граничных значений справедливо хотя бы одно из следующих неравенств на сроки завершения выполнения отдельных операций или заданий:
а (i, m) > б., i = 1,
n,
(20)
>min + V t(i/, m) - 1 > , g = 2, ..., n, (21)
где amin = minja0^', m): в. *
i £ I
min 0°(i, к) + V t(i, к) — 1 > Нк,
1 < i < n к
i= 1
к = 1, ... , m,
F > max B;,
1 < i < n
(22)
(23)
то исходная система ограничений задачи несовместна. ♦
Утверждение 6 позволяет уже на начальном этапе решения установить факт несовместности сформулированной системы ограничений, определить индексы заданий и рабочих систем, являющихся «узким местом» и граничный временной ресурс которых должен быть расширен.
4. АЛГОРИТМЫ РЕШЕНИЯ ЗАДАЧИ
В основе алгоритмов точного решения задачи лежит метод ветвей и границ. Впервые подобный эффективный алгоритм был предложен в работе [5]. Дальнейшее развитие алгоритмов данного класса нашло отражение в работах [6, 7, 11—13] и др. Во всех алгоритмах при вычислении границ и выборе переменной для ветвления используются модифицированные времена выполнения заданий на двух машинах и алгоритмы Джонсона. При огра-
ничениях на сроки выполнения заданий и времена работы машин данные алгоритмы не позволяют эффективно отсеивать не содержащие допустимые расписания вариантов. Описываемые далее подходы лишены указанных недостатков.
4.1. Параметры частичных планов
Каждый развиваемый частичный план Р5, определяемый подпоследовательностью выполнения
некоторых Я5 заданий и включаемый в дерево решений задачи, характеризуется следующими признаками:
Р° — номер плана в дереве решений;
Р[, ..., Р/, ..., РП — информация о состоянии
выполняемых заданий, / = 1, ..., п. Если Р/ равно некоторому положительному числу г, где 1 < г т п, то это определяет, что /-е задание стоит на г-м месте в подпоследовательности /5. Если Р/ = 0, то место этого задания в последовательности еще не определено и должно быть выбрано. Если Рг5 = —1,
то установка /-го задания на (Я5 + 1)-е место последовательности в данном частичном плане недопустима либо в дереве решений уже существует продолжение частичного плана Р5, в котором это задание стоит на этом (Я5 + 1)-м месте;
п + 1, ..., Рп + г, ..., Р2п — значения оценки длины расписания, если /-е задание будет установлено в этой последовательности на (Я5 + 1)-м месте — (Е5|/). Для всех заданий, у которых Рг5 * 0 Р« + г = ®;
2п + 1, ..., Р2п + к, ..., Р2п + т — времена завершения операций на соответствующих машинах для последнего Я5-го задания, стоящего в подпоследовательности /5 данного частичного плана;
Р8 _ • тч5
2п + т + 1 = шт Рп + i — нижняя оценка крите-
1 < г < п
рия оптимальности для данного частичного плана;
Р25п + т + 2 — признак возможности и целесообразности продолжения данного частичного плана. Если Р2п + т +1 = да и все значения признаков Рг5,
/ = 1, ..., п, отличны от нуля, то Р2п + т + 2 = —1, и данный частичный план уже продолжен во все перспективные направления и больше (либо вообще) не содержит допустимых расписаний. В противном случае Р2п + т + 2 = 0, и еще не рассмотрены все возможные допустимые продолжения.
g
да
n
4.2. Преобразование параметров при продолжении частичного плана Р** добавлением в подпоследовательность . некоторого /-го задания
Пусть на некотором шаге алгоритма построено N частичных планов. При продолжении частичного плана Р5 назначением на последнее (Я5 + 1)-е место в подпоследовательности Р некоторого задания у е /2 признаки вновь образованного частичного плана Р3 определяются следующим образом:
Р°3 = N + 1,
Р/ = Я5 + 1,
если 1 < Р/ < п и / * у; Рг3 = 0 во всех остальных случаях, / = 1, ..., п;
Р3 = Р5
Рп + г Рп + у ,
если Рг3 = 0, и Р® + г = да в противном случае, / = 1, ..., п;
Р2п + к = ^(у к) = шах[ Р2п + к , Р2п + к - 1 +
+ ¿(у, к — 1)] + ¿(у, к) — 1, к = 1, ..., т. (24) В формуле (24) предполагается Р2п = 0.
Р3 = п5 • р 3 = 0
-*2п + т + 1 п + у 5 -*2п + т + 2
если существуют признаки Рг3 = 0;
Р|п + т + 1 = Рг3 = —1 в противном случае. Число членов во вновь образованной подпоследовательности /3 равно Я3 = Я5 + 1. Параметры р и Рп+у частичного плана Р5 полагаем равными р = —1, Р^+у = да. Корректируем также параметр
Р2п + т + 1 = тт ^ + г. Если Р2п + т + 1 = да и все Рг5
1 < г < п
отличны от нуля, то полагаем Р2п + т + 2 = —1.
После выполнения данных преобразований число частичных планов N также увеличивается на единицу.
4.3. Выбор задания, включаемого последним в подпоследовательность(ветвление)
Для каждого из заданий подмножества у е /2,
у которых Ру5 = 0, выполняем следующие вычисления.
Рассчитываем сроки завершения выполнения задания по формулам
ст"(У, к |Р) = шах[ст"(У, к — 1)|Р) +
+ ¿(У, к — 1); Р2п + к ] + ¿(У, к) — 1.
Полагаем /2 = /2 /У, 85(/, т) = ст5(У, т|Р) и проверяем возможность выполнения системы ограничений задачи в соответствии с системой неравенств (13)—(19). Если справедливы условия хотя бы одного из утверждений 1—4, то назначение
в Р5-м частичном плане задания У на (Я5 + 1)-е место в последовательности недопустимо. Полагаем р = —1 и Р,5+у = то. Если не выполняется ни одно из неравенств системы (13)—(19), то вычисляем оценку длины расписания при условиях, что
на (Я5 + 1)-м месте в последовательности Р стоит задание У по формулам (11). Рассчитанное значение (Р51 у) присваиваем параметру Р,5+у = (Р51 У).
Находим
Рп5+* = шт{Рп5 +у • У г /1, Р5 = 0}. (25)
Соответствующий номер задания у = м> определяет уточненную нижнюю границу критерия оптимальности для частичного плана Р5 (Р2п + т + 1 =
= Р^+*) и выбирается при продолжении данного частичного плана (см. п. 4.2).
4.4. Алгоритмы получения точных и приближенных решений задачи
Алгоритмы решения основываются на последовательном развитии некоторого допустимого и
перспективного частичного плана Р5 и назначении
некоторого задания у е /2 на (Я5 + 1)-е место, т. е. после всех заданий данной подпоследовательности Р. На каждом шаге алгоритма выбирается некоторый допустимый план с эффективной (минимальной или наилучшей среди некоторого подмножества частичных планов) оценкой. В этом плане в соответствии с выражением (25) определяется наиболее перспективное задание, которое целесообразно поставить на данное место в последовательности, проверяются возможности выполнения всей системы ограничений, связанные с данным назначением, исключаются продолжения, не содержащие допустимых расписаний, и уточняется оценка длины кратчайшего расписания, связанного с этим назначением.
Каждый частичный план представляется в виде вершины дерева анализируемых вариантов. Корнем этого дерева служит начальный частичный
П° 7-0 Г° ЛХ 7-0 г тт
план Р , у которого /1 = У = 0, /2 = /. Для на-
чального частичного плана Р0 по формулам (2)—(4) рассчитываются значения 00(/, к) и ст0(/, к), а также согласно выражениям (5)—(10) значения т0(к), ц0(/, к), £0(/, к) и А,0(/, к). Нижняя граница длины допустимого расписания выполнения всех заданий Р0 рассчитывается в соответствии с формулой (12). Затем оценивается совместность исходной системы ограничений задачи в соответствии с выражениями (20)—(23). Если выполняется хотя бы одно из неравенств утверждения 6, то система ограничений задачи несовместима, и алгоритм с соответствующим сообщением заканчивает работу. В противном случае построенный начальный план является корнем дерева решений задачи. Первый полученный допустимый частичный план, у которого /1 = /, является допустимым расписанием выполнения заданий. Номер этого плана и значение его оценки (показатель Р2п + т +1) запоминается как «рекорд», т. е. наилучшее из полученных допустимых решений. При получении следующего допустимого расписания со значением критерия оптимальности лучшим, чем в прежних допустимых решениях, производится замена «рекорда». Если получено значение «рекорда» не хуже, чем значение оценки длины оптимального расписания
(показатель Р2п + т +1) у любого из частичных планов, то рассчитанный «рекорд» является решением задачи и алгоритм заканчивает работу.
Если на какой-то итерации алгоритма еще не получено допустимых расписаний и во всех частичных планах значение показателя Р2п + т + 2 = —1, то не существует допустимых расписаний, и алгоритм с соответствующим сообщением заканчивает свою работу.
Далее следует формальное описание алгоритма. Обозначим: N — число построенных частичных планов, Е — длина расписания наилучшего из полученных допустимых решений.
4.4.1. Алгоритм А
Данный алгоритм состоит из отдельных шагов, которые в некоторой логической последовательности выполняются на каждой из итераций.
Шаг 0 (предварительный). Полагаем N = 0, Е = да. Определяем начальный частичный план Р0, у которого I0 = /0 = 0, 10 = I. Вычисляем оценку длины допустимого расписания Р0 по формуле (12) и оцениваем допустимость этого частичного плана в соответствии с условиями утверждения 6. Если в результате вычислений будет установлено, что система ограничений задачи несовместима, то алгоритм с соответствующим сообщением заканчивает работу. В противном случае по-
казатели метки плана P0 определяются следующим образом:
P0 = 0; Р0 = 0, i = 1, ..., n; P0 + г. = F0, i = 1, ..., n;
Pln + k = 0, k = 1, •••, m; P1n + k + 1 = F; P1n + k + 2 = °-
Выбираем частичный план P и переходим к шагу 1.
Шаг 1. Для выбранного частичного плана Р выбираем задание j = w, включаемое в последовательность в соответствии с алгоритмом, описанном в п. 4.3. Если такого допустимого задания не существует, то полагаем P\n + k +1 = ю, Pin + к + 2 = -1 и переходим к шагу 4. В противном случае — к шагу 2.
Шаг 2. Образуем новый частичный план Pq и выполняем преобразование параметров при продолжении частичного плана Р добавлением в подпоследовательность Js некоторого j-го задания (j = w) в соответствии с алгоритмом, описанном в разделе 5.2. Если во вновь построенном частичном плане Рч все показатели Pq = b, где 1 < b; < n, i = 1, ..., n, переходим к шагу 5. В противном случае — к шагу 3.
Шаг 3. Если Pqn + k +1 < E, то, зафиксировав этот
частичный план Рч как выбранный план для дальнейшего продолжения (обозначим его Рs), переходим к шагу 1. Если Pqn + k +1 l E, то — к шагу 4.
Шаг 4. Среди всех частичных планов Рs, у которых Pin + к +1 ф да, Pin + к+2 = 0, находим некоторый частичный план P1, у которого
P2n + k + 1 = min { P2n + k + 1 I P2n + k + 2 = 0;
1 < l < N
Pln + k + 1 < E} = Fmin-
Если такой частичный план существует, то, зафиксировав этот частичный план P4 как выбранный план для дальнейшего продолжения (обозначим его Ps), переходим к шагу 1. В противном случае — к шагу 6.
Шаг 5. Если Pqn + k +1 < E, то полагаем E = Pqn + k +1,
запоминаем номер плана P4 как наилучшее текущее допустимое расписание. Если E < Fmin, то переходим к шагу 6. В противном случае — к шагу 4.
Шаг 6. Если E = да, то задача не имеет допустимых решений, и алгоритм с соответствующим сообщением заканчивает работу. В противном случае в памяти сохранен номер вершины дерева вариантов P, определяющей оптимальное расписание, длительность которого равна E. По признакам метки Pl = b; восстанавливается оптимальная последовательность выполнения заданий, в соответствии с которой по формулам (2)—(4)
(при условии R1 = n) рассчитываются сроки начала и завершения выполнения всех заданий. На этом алгоритм завершает свою работу.
Отметим, что алгоритм А может применяться для получения приближенных (с заданной наперед точностью s = F/Fmin) решений задачи. В этом случае на ша-
ге 0 полагается Fmin = F . Это значение корректируется в сторону увеличения, например, на каждом шаге 3 или шаге 4 Fmin = min F2п + к + 1. На шаге 5 проверка
1 < s < N
условия E < Fmin заменяется проверкой E < s*Fmin.
Алгоритм A может также применяться для получения точных и приближенных решений для задач jobshop problem (см., например, [14, 15]), а также flow-shop problem в традиционной постановке, т. е. при отсутствии ограничений на сроки выполнения заданий и времена работы оборудования. В этом случае на шагах 0 и 1 алгоритма не проверяются возможности выполнения системы ограничений задачи, а времена начала и окончания выполнения заданий вычисляются не согласно выражениям (2)—(4), а по упрощенным формулам
0% 1) = 0, 0(ij, 1) = t(iv 1) - 1,
0s(ij, k) = os(ij, k - 1) + 1, os(i'j, k) = ost(i'j, k — 1) + t(i'j, k) — 1, k = 1, ..., m.
5. ИЛЛЮСТРАТИВНЫЙ ПРИМЕР
Пусть необходимо построить расписание выполнения восьми заданий, выполняемых на четырех машинах. Последовательность выполнения этих четырех опе-
Таблица 1
Исходные данные
i k = 1 k = 2 k = 3 k = 4 b. 1 B.
1 10 15 12 7 15 170
2 6 12 20 10 5 110
3 8 7 21 15 10 98
4 15 4 3 25 0 130
5 6 9 10 15 7 (68) 70
6 4 18 15 6 2 175
7 13 18 15 10 10 145
8 3 5 13 15 0 65
hk 5 10 10 20 — —
75 120 150 190 — —
Таблица 2
Наиболее ранние сроки начала и завершения всех операций заданий
i k = 1 k = 2 k = 3 k = 4
e a e a e a e a
1 10 24 25 39 40 51 52 58
2 5 11 12 23 24 43 44 53
3 10 17 18 24 25 45 46 60
4 5 19 20 23 24 26 27 51
5 7 12 13 21 22 31 32 46
6 5 8 9 26 27 31 32 37
7 10 22 23 27 28 30 31 40
8 5 7 10 23 24 39 40 54
Дерево решений задачи
раций для каждого из заданий одинакова. Все исходные данные примера — времена выполнения операций, граничные сроки начала и завершения отдельных заданий и возможностей использования оборудования — сведены в табл. 1.
Наиболее ранние сроки начала и завершения всех операций каждого задания, рассчитанные в соответствии с формулами (2)—(4), приведены в табл. 2.
Нижняя граница длины расписания, рассчитанная по формуле (12), Р0 = 137. Далее была проверена совместность системы ограничений. Все условия утверждений 2—4 выполняются. Последовательность (16) в условиях этого примера имеет вид: В8 < В5 < В3 < В2 < < В4 < В7 < В1 < В6. В системе неравенств (17) для пятого задания значение 3°(г5, 4) равно 55 + 15 — 1 = 69. Так как 69 > 68, то система ограничений примера несовместна. При корректировке ограничения на время завершения пятого задания (В3 = 70) может быть получено оптимальное решение, которое представлено на рисунке и в табл. 3.
На рисунке приняты следующие обозначения: г ^ г означает, что на г-е место в последовательности устанавливается у-е задание; г ^ у — на г-е место в последовательности установка у-го задания запрещается.
Таблица 3
Оптимальная последовательность выполнения заданий. Сроки начала и завершения выполнения операций
i k = 1 k = 2 k = 3 k = 4
0 а 0 а 0 а 0 а
8 5 7 10 23 24 39 40 54
5 8 13 24 33 40 50 55 69
3 14 21 34 40 51 71 72 86
2 22 27 41 52 72 91 92 101
4 28 42 53 56 92 94 102 126
7 43 55 57 61 95 107 127 136
1 56 65 66 80 108 119 137 143
6 66 69 81 98 120 134 144 149
В полученном решении выполнены все ограничения на сроки выполнения заданий и времена работы машин. Длина расписания равна 149.
С помощью предложенных алгоритмов были решены приведенные в литературе тестовые примеры flow-shop problem без учета ограничений на завершающие сроки выполнения заданий и времена работы машин. Результаты вычислительных экспериментов показали, что эффективность предложенных точных методов для этого класса задач не ниже известных в литературе.
ЗАКЛЮЧЕНИЕ
Сформулирована обобщенная задача «flow-shop problem» в условиях ограничений на начальные и конечные сроки выполнения заданий и времена работы машин.
Установлены свойства допустимых расписаний сформулированной задачи и получены эффективные оценки нижней границы длины расписания как на начальном этапе процесса решения, так и в процессе решения при построенной подпоследовательности выполнения некоторого подмножества заданий.
Установленные свойства допустимых расписаний позволяют уже на начальных этапах решения установить несовместность исходной системы ограничений, выявить узкие места в ресурсах машин, определить перечни заданий, которые не могут быть выполнены в установленные сроки, а в случае совместности условий задачи, последовательно, на каждом шаге алгоритма существенно сокращать область поиска.
Разработаны алгоритмы точных и приближенных решений задачи на основе метода ветвей и границ. Алгоритмы сконструированы таким образом, что наличие дополнительных условий ограничивает область поиска, делая ее более направленной, благодаря чему в ряде случаев способствует сокращению объема вычислений по сравнению с решением задач на безусловный экстремум.
Эффективность предложенных алгоритмов проиллюстрирована на числовом примере.
Разработано программное обеспечение, позволяющее решать практические задачи размерностью до нескольких десятков заданий в условиях ограничений на времена работы машин и сроки выполнения заданий, выводить результаты решения как в форме таблиц, так и в графической форме — в виде диаграмм Ганта.
Во второй части работы будут предложены некоторые гибридные алгоритмы и приближенные методы решения задач большой размерности, использующие различные известные ранее эвристики и правила предпочтения, а также локальные улучшения построенных на основе эвристик последовательностей.
ЛИТЕРАТУРА
1. Domschke W, Scholl A., Vofi S. Produktionsplanung. Ablauforganisatorische Aspekte. — Berlin: Springer Verlag, 1997. — 456 p.
2. Johnson S.M. Optimal-two-and tree stage production schedules with setup times included // Research Logistics Quarterly. — 1954. — N 1. — P. 61—68.
3. Gupta J.N.D. A functional heuristic algorithm for the flow-shop scheduling problem // Operational Research Quarterly. — 1971. — N 2. — P. 39—47.
4. Cambell H.G., Dudek R.A., Smith M.L. A heuristic algorithm for the n job, m machine sequencing problem // Management Science. — 1970. — Vol. 16. — P. 630—637.
5. Ignall E., Schrage L. Application of the branch and bound technique to some flow-shop scheduling problems // Operations Research. — 1965. — N 3. — P. 400—412.
6. Potts C.N. A adapive branching rule for the permutation flow-shop problem // European Journal of Operational Research. — 1980. — N 5. — P. 19—25.
7. Lomnicki Z.A. A branch-and-bound algorithm for the exact solution of the three-machine scheduling problem // Operational Research Quarterly. — 1965. — Vol. 16. — P. 89—100.
8. Brucker P. Scheduling algorithms. — Berlin: Springer Verlag, 1995.
9. Blazewicz J., Domschke W, Pesch E. The job shop scheduling problem: Conventional and new solution techniques // European Journal of Operational Research. — 1996. — Vol. 93. — P. 1—33.
10. Hundal T.S., Rajgopal J. An extension of Palmer’s heuristic for the flow-shop scheduling problem // International Journal of Production Research. — 1988. — Vol. 26. — P. 1119—1124.
11. McMahon G.B. Optimal production schedules for flow shops // Canadian Operations Research Society Journal. — 1969. — N 7. — P. 141—151.
12. Lageweg B.J., Lenstra J.K., Rinnooy Kann A.H.G. A general bounding scheme for the permutation flow-shop problem // Operations Research. — 1978. — Vol. 26. — P. 53—67.
13. Carlier J., Rebai I. Two branch and bound algorithms for the permutation flow-shop problem // European Journal of Operational Research. — 1996. — Vol. 90. — P. 238—251.
14. Танаев В.С., Сотсков Ю.Н., Струсевич В.А Теория расписаний. Многостадийные системы. — М.: URSS, 1989. — 328 с.
15. Зак Ю.А. Некоторые свойства задач теории расписаний // Автоматика и телемеханика. — 1978. — № 1. — С. 123—132.
Статья представлена к публикации членом редколлегии В.Н. Бурковым.
Зак Юрий Александрович — д-р техн. наук, пенсионер, последнее место работы — Европейский центр по мехатронике (European Centre for Mechatronics Reutershagweg), г. Аахен, Германия,
S +49 (0) 241/543255, И [email protected].