Научная статья на тему 'РЕШЕНИЕ ДВУХМАШИННОЙ ЗАДАЧИ СОСТАВЛЕНИЯ РАСПИСАНИЯ МИНИМАЛЬНОЙ ДЛИНЫ ПРИ НАЛИЧИИ ЧАСТИЧНОГО ПОРЯДКА МЕЖДУ ОПЕРАЦИЯМИ'

РЕШЕНИЕ ДВУХМАШИННОЙ ЗАДАЧИ СОСТАВЛЕНИЯ РАСПИСАНИЯ МИНИМАЛЬНОЙ ДЛИНЫ ПРИ НАЛИЧИИ ЧАСТИЧНОГО ПОРЯДКА МЕЖДУ ОПЕРАЦИЯМИ Текст научной статьи по специальности «Математика»

CC BY
80
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
КРОСС-ДОКИНГ / РАСПИСАНИЕ / ЧАСТИЧНЫЙ ПОРЯДОК / ПРИБЛИЖЕННЫЙ АЛГОРИТМ / ПОЛИНОМИАЛЬНЫЙ АЛГОРИТМ

Аннотация научной статьи по математике, автор научной работы — Романова А. А., Тавченко В. Ю.

Рассматривается двухмашинная задача составления расписания конвейерного типа, которая может возникать в системе доставки продукции кросс-докинг. Особенностью задачи является наличие частичного порядка между операциями. Это означает, что операция на второй машине не может начать выполнение до завершения определенного множества операций на первой машине. В задаче необходимо минимизировать общее время выполнения всех операций. В работе предложен приближенный алгоритм решения задачи с оценкой точности. Выделен полиномиально разрешимый случай задачи с единичными длительностями операций.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

SOLVING THE TWO-MACHINE FLOW-SHOP SCHEDULING PROBLEM TO MINIMIZE MAKESPAN WITH A PARTIAL ORDER BETWEEN OPERATIONS

The paper deals with the two-machine flow shop scheduling problem, which occurs in cross-docking product delivery system. The specificity of the problem is the presence of a partial order between operations, that is, an operation on the second machine can not begin execution until the completion of a certain set of operations on the first machine. We need to find a schedule with the minimum makespan. We propose a polynomial time algorithm with an approximation guarantee. We also find a polynomially solvable case of the problem with unit durations of operations.

Текст научной работы на тему «РЕШЕНИЕ ДВУХМАШИННОЙ ЗАДАЧИ СОСТАВЛЕНИЯ РАСПИСАНИЯ МИНИМАЛЬНОЙ ДЛИНЫ ПРИ НАЛИЧИИ ЧАСТИЧНОГО ПОРЯДКА МЕЖДУ ОПЕРАЦИЯМИ»

УДК 519.2+621.391

DOI 10.24147/1812-3996.2022.27(1).23-30

РЕШЕНИЕ ДВУХМАШИННОМ ЗАДАЧИ СОСТАВЛЕНИЯ РАСПИСАНИЯ

МИНИМАЛЬНОЙ ДЛИНЫ ПРИ НАЛИЧИИ ЧАСТИЧНОГО ПОРЯДКА МЕЖДУ ОПЕРАЦИЯМИ

А. А. Романова, В. Ю. Тавченко

Омский государственный университет им. Ф. М. Достоевского, г. Омск, Россия

Информация о статье

Дата поступления 20.08.2021

Дата принятия в печать 03.03.2022

Дата онлайн-размещения 28.04.2022

Аннотация. Рассматривается двухмашинная задача составления расписания конвейерного типа, которая может возникать в системе доставки продукции кросс-докинг. Особенностью задачи является наличие частичного порядка между операциями. Это означает, что операция на второй машине не может начать выполнение до завершения определенного множества операций на первой машине. В задаче необходимо минимизировать общее время выполнения всех операций. В работе предложен приближенный алгоритм решения задачи с оценкой точности. Выделен полиномиально разрешимый случай задачи с единичными длительностями операций.

Ключевые слова

Кросс-докинг, расписание, частичный порядок, приближенный алгоритм, полиномиальный алгоритм

SOLVING THE TWO-MACHINE FLOW-SHOP SCHEDULING PROBLEM TO MINIMIZE MAKESPAN WITH A PARTIAL ORDER BETWEEN OPERATIONS

A. A. Romanova, V. Yu. Tavchenko

Dostoevsky Omsk State University, Omsk, Russia

Article info

Received 20.08.2021

Accepted 03.03.2022

Available online 28.04.2022

Keywords

Cross-docking, schedule, partial order, approximate algorithm, polynomial algorithm

Abstract. The paper deals with the two-machine flow shop scheduling problem, which occurs in cross-docking product delivery system. The specificity of the problem is the presence of a partial order between operations, that is, an operation on the second machine can not begin execution until the completion of a certain set of operations on the first machine. We need to find a schedule with the minimum makespan. We propose a polynomial time algorithm with an approximation guarantee. We also find a polynomially solvable case of the problem with unit durations of operations.

1. Постановка задачи

Работа посвящена исследованию одной из актуальных задач теории расписаний, которая может возникать в транспортной логистике при нахождении оптимального распределения товаров от оптовых поставщиков розничным потребителям. Рассматриваемая система доставки продукции получила в литературе наименование «кросс-докинг». При двухэтапном кросс-докинге применяется следующая процедура. Партии товаров распаковываются, после чего из этих товаров создаются заказы конечных потребителей, включающие в себя разные типы

товаров. При этом пока не распакованы те типы товаров, которые необходимы потребителю, его заказ не может быть создан. Рассматривается традиционный критерий оптимизации - минимизация срока завершения всех заказов. Задачу можно сформулировать в терминах теории расписаний в системе конвейерного типа (flow shop) с двумя машинами, в которой необходимо выполнить операции, связанные отношениями предшествования. При этом операция на первой машине - это распаковка соответствующей партии товаров, а на второй машине - формирование заказа потребителя. Можно рассматривать

задачу с единичными длительностями всех операций, что означает однотипность операций по разгрузке и формированию заказов, или общий случай произвольных длительностей. К сожалению, задача является NP-трудной в сильном смысле в обоих случаях. Таким образом, существование эффективных алгоритмов, решающих задачу достаточно большой размерности за приемлемое время, маловероятно, вследствие чего основные усилия исследователей направлены на поиск быстрых приближенных алгоритмов, которые находят решения, близкие к оптимальным, а также выделение полиномиально разрешимых подслучаев задачи. Данным направлениям исследования посвящена и настоящая работа.

Отметим, что работ, посвященных изучению вопроса эффективного функционирования в системе кросс-докинг, довольно много. Обзор и классификация задач и используемых методов решения в системе кросс-докинг представлены N. Boysen и M. Fliedner [1]. Отметим работы, в которых для описания задач используются термины теории расписаний и применяются методы дискретной оптимизации (см.: [2-4]).

Более подробно опишем результаты, известные по рассматриваемой в работе задаче F2| CD | Cmax. Как уже было отмечено, задача является NP-трудной в сильном смысле (см.: [2]; здесь же предложен алгоритм ветвей и границ и приближенный алгоритм с оценкой точности). Представлены различные алгоритмы нахождения приближенных решений (см.: [3; 4]). Ранее нами предложен приближенный алгоритм для задачи F2|pj = 1,CD|Cmax с единичными длительностями операций и выполнено его сравнение с алгоритмом, предложенным F. Chen и C. Lee [2], а также выделен содержательный полиномиально разрешимый случай задачи (см.: [5]). В настоящей работе произведено обобщение некоторых результатов, полученных нами ранее.

Опишем формальную постановку задачи. В системе конвейерного типа, состоящей из двух машин, необходимо выполнить m + n операций. При этом m операций Ai, A2, ..., Am выполняются на первой машине, а n операций Si , B2, ..., Bn - на второй машине. Длительность выполнения операции Ai равна a¡ единиц времени, операции Bj - bj единиц времени. Прерывания и одновременное выполнение двух и более операций на одной машине не допускаются. Частичный порядок удобно задавать с помощью двудольного ориентированного графа G = (V, E), где V = Vi u V2 - множество операций - вершин графа, Vi = {Ai, A2, ..., Am}; V2 = {Bi, B2, ..., Bn}; E = {(Ai, Bj) | Ai^ ^ Bj, Ai eVi, Bje V2} - множество дуг графа, задаю-

щих отношения предшествования. Считаем, что операция Ai связана с операцией Bj отношением предшествования Ai^ Bj, если выполнение операции Bj на второй машине нельзя начинать до тех пор, пока не будет завершено выполнение операции Ai на первой машине. Данный граф называется графом предшествования.

Чтобы задать расписание выполнения операций, необходимо определить время начала каждой операции. Пусть sA - время начала операции Ai, i = 1, ..., m, sB - время начала операции Bj,

j = 1, ..., n. Заметим, что у операций на первой машине нет предшествующих, поэтому они могут выполняться без простоев. Таким образом, расписание выполнения операций на первой машине задается последовательностью их выполнения. Если каждая машина в любой момент времени выполняет не более одной операции и выполнены все ограничения предшествования между операциями, расписание является допустимым. Обозначим через Cmax = max{ max (sA + a.), max (s® + b,)} время завер-

i = 1,..., m j = 1,..., n j j

шения выполнения всех операций. Необходимо найти допустимое расписание с минимальным значением Cmax.

В силу труднорешаемости перспективной представляется разработка приближенных алгоритмов, эффективно находящих решения, близкие к оптимальным. Особый интерес представляют алгоритмы с известной априорной оценкой точности, когда до запуска алгоритма можно оценить ожидаемую погрешность получаемого решения. В следующем параграфе построен именно такой алгоритм.

2. Приближенный алгоритм

При построении приближенного алгоритма для задачи F2|CD|Cmax используем идею алгоритма для задачи с единичными длительностями выполнения операций, предложенного нами ранее (см.: [5]), которая состоит в построении последовательности выполнения операций на первой машине «жадным» образом и последующем нахождении расписания выполнения операций на второй машине с минимальным временем завершения. Чем больше сумма длительностей операций на второй машине, связанных отношениями предшествования с некоторой операцией Ai на первой машине, тем раньше имеет смысл выполнить операцию Ai. Обозначим через Si множество операций, связанных отношениями предшествования с операцией Ai, а через Tj множество операций, связанных отношениями предшествования с операцией Bj. Сумму длительностей опе-

раций множества Si обозначим через Pi. Таким образом, р Ь]. Выполняем операции на первой мам

шине, расположив их по невозрастанию величин Pi. По известному расписанию выполнения операций на первой машине находим расписание выполнения операций на второй машине, при котором время завершения всех операций минимально. Определим время г = тахБ + а.), начиная с которого операция

Bj готова к выполнению. В самом деле, операция Bj не может начаться раньше завершения всех предшествующих ей операций на первой машине. Выполняем операции на второй машине, расположив их по неубыванию гу, с соблюдением условия б^ > г..

Опишем алгоритм более формально. Алгоритм вгР.

Шаг 1. Составление расписания выполнения операций на первой машине.

1) Вычислим величины р Ь для всех

м

/ = 1, ..., m.

2) Упорядочим операции на первой машине по невозрастанию величин Р/. Обозначим через п последовательность номеров операций на первой машине, для которой Р > Р >... > р .

3) Составим расписание выполнения операций

¡-г

на первой машине. Положим = 0; б^ =^ал ,

к=1

I = 2,..., т.

Шаг 2. Составление расписания выполнения операций на второй машине.

1) Вычислим величины г = тахБ + а.),у = 1, ..., п.

'еТ1 1 1

2) Упорядочим операции на второй машине по неубыванию гу. Обозначим через ст последовательность номеров операций на второй машине, для которой г <г <... <г .

Г ст1 ст2 стп

3) Составляем расписание выполнения операций на второй машине. Положим б^ = г . Пусть t -

текущее время завершения операций на второй машине. Первоначально t = г +Ь .

Цикл для всех у от 2 до п

б^ = тах{^ ,*}.

*=бВ + Ь.

ст 1 ст 1

Конец цикла. Конец алгоритма вгР.

Данный алгоритм является полиномиальным с трудоемкостью О(пт) операций.

Для описанного алгоритма можно построить гарантированную оценку точности получаемого решения. Под р-приближенным алгоритмом (для задачи на минимум) будем понимать алгоритм, находящий приближенное решение со значением целевой функции, не более чем в р раз превышающим значение целевой функции оптимального решения.

Перед формулировкой основного результата параграфа введем вспомогательные обозначения.

m

Обозначим через d вектор длины /a , построен-

i=i

ный следующим образом:

d = (P, ,...,Р„ ,Р„ ,...,Р„ ,...,Р„ ,...,Р„ ),

где Pi встречается ai раз. Обозначим через qA наименьший номер, при котором выполняется неравенство

qA п

/dk >/ afij-/b. . Далее при доказательстве

k=1 j=1

утверждения будет получено, что начиная с периода qA+1, операции на второй машине можно будет гарантированно начать выполнять, причем без простоев.

В следующем утверждении получена оценка точности предложенного алгоритма.

Утверждение 1. Пусть C'msx - длина оптимального расписания задачи F2|CD|Cmax, C^P - длина расписания, полученного алгоритмом GrP. Тогда свгР < max^A + 5sum.Asum} .

max г л , rt о , л i max '

max{ASUm + Bmin . Bsum + Amin} m n

где A =Ya.; B = Vb.; Amin = min V a;

^um / , i> sum // j min / ; i'

i = 1 j = 1 j ."'. ieTj

Bmin = ,minm/bj ■

Доказательство. Построим вспомогательную задачу с единичными длительностями по следующему правилу. Каждая операция длины ai (или bj) заменяется на ai (или bj) операций единичной длины. При этом каждой дуге (i, j)eE исходного графа предшествования будут соответствовать a-bj дуг графа вспомогательной задачи, связывающих каждую из единичных операций на первой машине, получающихся при разбиении операций Ai, с каждой из единичных операций на второй машине, получающихся при разбиении операций Bj. Таким образом, во вспомогательной задаче на первой машине необходимо выполнить /Asum операций и ßsum операций на второй машине. Обозначим через Стах длину оптимального расписания вспомогательной задачи.

Допустимое расписание исходной задачи очевидно может быть преобразовано в расписание той же длины для вспомогательной задачи. F. Chen и C. Lee показано, что допустимое расписание вспомогательной задачи может быть преобразовано в не большее по длине допустимое расписание для исходной задачи [2]. Длины оптимальных расписаний совпадают, иначе меньшее по длине оптимальное расписание для исходной задачи может быть преобразовано в расписание той же длины для вспомогательной задачи.

К построенной вспомогательной задаче применяем приближенный алгоритм Gr с гарантированной оценкой точности, предложенный нами [5]; получаем расписание SGr. Данный алгоритм для задачи с единичными длительностями имеет оценку

maxjg. + n,m} ,A ---j--, где dm¡n - минимальная полу-

maX{m + dm¡n,n + dm¡n}

степень исхода вершин первой доли, - минимальная полустепень захода вершин второй доли. Здесь величина qA имеет следующий смысл. После выполнения qA операций на первой машине по крайней мере одна операция на второй машине доступна к выполнению, причем нами доказано, что начиная с периода (qA + i) операции на второй машине можно выполнять без простоев [5]. В соответствии с алгоритмом Gr в полученном расписании SGr операции на первой машине упорядочены по невозрастанию числа дуг, исходящих из соответствующих вершин графа, и можно добиться того, чтобы операции, соответствующие операциям исходной задачи, были расположены рядом. Это значит, что оно легко может быть преобразовано в расписание SGr для исходной задачи. С другой стороны, по построению алгоритма GrP получится расписание 5, совпадающее с расписанием Ser. Для расписания SGr справедлива оценка точности, показанная нами ранее (см.: [5]). После подстановки параметров вспомогательной задачи в данную оценку получаем: Cmax(S&)< max{ qA+Bsum,AsuJ ~ - _

Í л i D D i Л 1 max- laK КаК SnaxPsJ-

= cmax(s) и Cmax =C*ax, то верхняя оценка длины при-

ближенного решения, предлагаемая в утверждении, выполняется. Утверждение 1 доказано.

Отметим, что оценка точности алгоритма GrP не превосходит 2, так как очевидно, что qA не превосходит Лэит. Построим класс примеров, на котором данная оценка достижима. Граф предшествования изображен на рис. 1.

k

k

Рис. 1. Граф предшествования для класса достижимости оценки алгоритма GrP

Полагаем ai = 1, i = 1, ..., k + s; ak+s+1 = p; bj = 2, j = 1, ..., k; bj = 1, j = k + 1, ..., k + s. В оптимальном расписании для p < k на первой машине сначала выполняются операции A1, ..., Ak в любом порядке, затем операция Ak+s+1 и затем все остальные операции в любом порядке. На второй машине сначала выполняются операции Bj, j = 1, ., k, начиная со второго периода времени в порядке, соответствующем порядку предшествующих операций на первой машине. Эти операции завершатся в момент времени 2k + 1, и при p < k сразу можно выполнять оставшиеся операции на второй машине в порядке, соответствующем порядку предшествующих операций на первой машине. Длина оптимального расписания равна 2k + s + 1. На рис. 2 изображено оптимальное расписание (последовательности операций взяты для определенности по неубыванию номеров). В соответствии с алгоритмом GrP при s > 2 в приближенном решении на первой машине сначала выполнится операция Ak+s+1, далее блок из первых k операций и в конце блок из s операций. На второй машине в момент времени p + 1 начнут выполняться операции блока из k операций и после этого операции блока из s операций. Длина приближенного расписания равна 2k + p + s +1. Приближенное расписание изображено на рис. 3. Неравенство, указанное в утверждении, выполняется как равенство, так как qA = p + 1; Bmin = 1; Amin = 1; Bsum = 2k + s; Asum = k + s + p.

Mi Ai Ä2 ••• Äk Äk+s+1 Äk+1 Äk+2 ••• Äk+s

M2 Bi B2 ... Bk Bk+1 Bk+2 m Bk+s

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Рис. 2. Оптимальное расписание для класса достижимости оценки алгоритма

Mi Ak+s+1 Ai A2 Ak AM Ak+2 ... Ak+s

M2

Bi B2 ... Bk Bk+1 Bk+2 • •• Bk+s

Рис. 3. Расписание для класса достижимости, полученное алгоритмом вгР

версиях вектор Ь = (2р,2р,...,2р,1), величина qA

Заметим, что аналогично задаче с единичными длительностями [5] допустимое расписание можно получить, применяя алгоритм GrP для так называемой обратной задачи, которая отличается от исходной противоположным направлением дуг предшествования. Полученное расписание для обратной задачи преобразуется в допустимое расписание для исходной задачи, если запустить его в противоположном направлении, начиная с момента завершения всех операций. Применяя алгоритм GrP как для исходной задачи, так и для обратной, можно улучшить его оценку точности до т!п{тах{дд + б5ит, Л5ит},тах{дв + Л5игг| Дит}}

maX{Asum + Bmin,Ssum + Amin} '

наименьший номер, при котором выполняется нера-

Qs _ ^_^ m

венство ^d > ^ , и вектор d построен

k = 1 (ij)eE i = 1

аналогично вектору d во вспомогательной задаче. Отметим, что улучшенный алгоритм при 2 < s < k - p будет иметь оценку 1 и найдет оптимальное решение для построенного класса достижимости.

F. Chen и C. Lee предложен приближенный алгоритм F2R для задачи с произвольными длительностями операций с оценкой точности Í 1 Л

где qe

2--

minWLX J.

, где d - максимальная полу-

степень исхода вершин первой доли, - максимальная полустепень захода вершин второй доли [2]. Для вышеописанного класса примеров оценка точности алгоритма F2R равна 3/2. Оценка точности даже первоначального алгоритма вгР при 2 < 5 и р < 2 к + р + б +1

k равна

что, очевидно, меньше 3/2. Од-

2 к + б +1

нако, существуют примеры, для которых алгоритм F2R дает лучшую оценку по сравнению с алгоритмом вгР. Приведем для примера такую задачу. Граф предшествования состоит из множества вершин А/ и В/, / = 1, ..., 5, и множества дуг {(А1,В1), (А1В2), (А2,В1), (А2,В2), (Аз,Вз), (Аз,В4), (А4,Вз), (А4,В4), (Аб,Вб)}. Длительности а/ = Ь/ = р, / = 1, ..., 4; 05 = Ь = 1. Оценка точности алгоритма F2R равна 3/2. Для алгоритма вгР в обеих

находится как минимальное целое, удовлетворяющее неравенству 2р• ^ > 8р2 -4р, и равна 4р - 1.

Оценка алгоритма GrP равна

8p 4p + 2

что при p > 2

3

больше —. Таким образом, оценки алгоритмов не-2

сравнимы; дальнейший анализ поведения данных алгоритмов на различных классах примеров составляет предмет будущих исследований.

3. Полиномиально разрешимый случай

Еще одним перспективным направлением исследования труднорешаемых задач является выделение полиномиально разрешимых случаев задачи. Опишем полученный в работе класс примеров для задачи Г2|р/ = 1,СО|Стах с единичными длительностями операций. Пусть dA - полустепень исхода вершины А/, / = 1, ..., т; dB¡ - полустепень захода вершины Ву, / = 1, ..., п. Нами ранее доказана полиномиальная разрешимость задачи в случае dA =2, / = 1, ..., т, т. е. когда число дуг, выходящих из каждой вершины первой доли, в точности равно двум [5]. В данной работе удалось расширить этот класс на случай dA < 2, / = 1, ..., т.

Рассмотрим сначала случай, когда в обеих долях графа нет вершин нулевой степени. Таким образом, 1 <dA <2, / = 1, ..., т; dB¡ > 1, / = 1, ..., п. Также

предполагаем, что в первой доле есть хотя бы одна вершина степени 1, иначе можно применить полиномиальный алгоритм, предложенный нами ранее (см.: [5]).

Выберем вершину Ак степени 1. Обозначим через В/ вершину второй доли, связанную отношением предшествования с вершиной Ак, а через W/ - множество вершин степени 1 первой доли, связанных отношениями предшествования с вершиной В/. Множество W/ содержит не менее одной вершины. Образуем блок В1(Ак), содержащий операции множества W/ и операцию В/. Вид данного блока представлен на рис. 4.

Mi Ak

M2

V Wi Bi

Рис. 4. Структура блока BL(Ak) для вершины Ak степени 1

При включении блока в конец частичного расписания операции на первой машине выполняются без простоев, операция на второй машине может быть сдвинута вправо для сохранения допустимости.

Утверждение 2. Для задачи F2\pj = 1,CD|C max в случае 1 <dA <2 для всех i = 1, ..., m, и вершины Ak степени 1 существует оптимальное расписание, в котором блок операций BL(Ak) выполняется в конце расписания.

Доказательство. Рассмотрим оптимальное расписание. Если операции множества Wi выполняются не последними, переставим их в конец, сдвинув операции, выполнявшиеся после первой из них, на соответствующее количество единиц времени влево. Операцию Bi, зависящую от Ak, также переставим в конец, выполняя ее последней. При этом операции на второй машине также сдвинутся на одну единицу времени влево с определенного момента. Расписание при этом останется допустимым, так как операции на первой машине, от которых зависели сдвигаемые операции на второй машине, также сдвинуты хотя бы на одну единицу влево. Длина расписания, очевидно, не изменилась. Утверждение 2 доказано.

Отметим, что после удаления вершин блока BL(Ak) вместе с инцидентными им дугами получается граф, также удовлетворяющий условию 1 < dA <2 для всех i. При этом в обеих долях также отсутствуют висячие вершины. Это значит, что построение оптимального расписания для случая 1<dA <2 можно организовать следующим образом. Выберем в первой доле произвольную вершину степени 1 и построим соответствующий ей блок операций. Удалим вершины этого блока из задачи вместе с инцидентными им дугами. В полученной задаче при наличии вершин степени 1 в первой доле повторяем процесс. Если же все вершины первой доли имеют степень 2, то оптимальное расписание строим полиномиальным алгоритмом, предложенным для такой задачи ранее [5]. Таким образом, процесс завершится либо пустым множеством вершин, либо получением задачи с dA = 2 для всех i, для которой мы умеем строить оптимальное расписание. Осталось только соединить все получившиеся блоки в обратном порядке.

Если первоначальный граф содержит висячие вершины, то поступаем следующим образом. Сна-28 -

чала строим оптимальное расписание без учета висячих вершин. Далее операции, соответствующие висячим вершинам первой доли, выполняем на первой машине последними в любом порядке. Операции, соответствующие висячим вершинам второй доли, выполняем на второй машине в первую очередь, при этом остальные операции могут сдвинуться вправо на определенное число единиц времени. Расписание при этом останется допустимым.

Приведем формальное описание алгоритма.

Алгоритм PDn.

Составим сначала расписание без учета висячих вершин графа. Полагаем k = 1. Если в графе нет вершин степени 1, переходим на Шаг 2.

Шаг 1. Выберем вершину v степени 1 в первой доле Vi графа G. Без ограничения общности, будем выбирать вершину с наименьшим номером. Образуем блок BLk, состоящий из вершины и еЦ , смежной с v, и всех вершин степени 1, принадлежащих множеству Vi и смежных с u.

Удаляем вершины блока BLk из графа вместе с инцидентными им дугами.

Если в оставшемся графе остались вершины степени 1 в первой доле, то полагаем k = k + 1 и переходим на Шаг 1.

Если множество вершин первой доли пусто, то переходим на Шаг 3.

Если степени всех вершин первой доли равны 2, то полагаем k = k + 1 и переходим на Шаг 2.

Шаг 2. Для текущей задачи запускаем полиномиальный алгоритм PD2, предложенный нами ранее (см.: [5]). Полученное расписание представим в виде блока BLk. Переходим на Шаг 3.

Шаг 3. Соединяем блоки в единое целое расписание в следующем порядке: BLk, BLk-i, ..., BLi - по правилу: на первой машине операции располагаются без простоев, на второй машине - с требованием допустимости.

Если в исходном множестве Vi есть висячие вершины, выполняем соответствующие им операций на первой машине в конце расписания. Если в исходном множестве V2 есть висячие вершины, располагаем соответствующие операции на второй машине в начале расписания, сдвигая при необходимости некоторые операции на второй машине вправо.

Конец алгоритма.

Трудоемкость алгоритма определяется трудоемкостью алгоритма PD2 и составляет O(m2log2m + + mn) операций.

Для иллюстрации работы алгоритма приведем пример. Граф G представлен на рис. 5.

Рис. 5. Граф предшествования примера, иллюстрирующего работу алгоритма PD<2

Отметим, что во второй доле графа есть висячая вершина Вт. Строим пока расписание, не учитывая ее. На Шаге 1 выберем вершину Ат степени 1 в первой доле графа. Образуем блок В11, состоящий из вершины В1, смежной с Ат. Блок Ви не содержит больше вершин из первой доли, так как вершины А2 и Аз, смежные с В1, имеют степень 2. Удаляем вершины блока В11 из графа вместе с инцидентными им дугами. В оставшемся графе выбираем вершину А2 степени 1 и образуем блок ВЬ, состоящий из вершины В4, смежной с Ат, и вершин Аз и Аэ, имеющих

на данный момент степень 1 и смежных с В4. Удаляем вершины блока ВЬ из графа вместе с инцидентными им дугами. Получаем граф, содержащий в первой доле только вершины степени 2. Переходим к шагу 2 и применяем алгоритм Р02, предложенный нами ранее (см.: [5]). Полученное расписание представим в виде блока В1з. На Шаге 3 соединяем блоки в обратном порядке. После добавления операции Вт получаем расписание, изображенное на рис. 6. Цвет блоков чередуется для наглядности. Отметим, что соединение блоков в примере произошло без сдвигов операций на второй машине.

ВЬ Bh BL.1

Mi A4 Аб A5 As Ai A2 A3 A9 A7

M2 B7 B2 B3 B5 B6 B4 Bi

Рис. 6. Оптимальное расписание с разбиением на блоки для примера, иллюстрирующего работу алгоритма РО<2

В заключение отметим, что по-прежнему открытым остается вопрос о расширении данного класса полиномиально разрешимых примеров, например на случай, когда вершины первой доли графа имеют степень 3, или под. Перспективными

направлениями дальнейших исследований представляются получение более точной оценки приближенного алгоритма, а также выделение более широких полиномиально разрешимых случаев задачи.

СПИСОК ЛИТЕТА ТУРЫ

1. Boysen N., Fliedner M. Cross dock scheduling: Classification, literature review and research agenda // Omega. 2010. Vol. 38. P. 413-422.

2. Chen F., Lee C. Discrete Optimization: Minimizing the makespan in a two-machine cross-docking flow-shop problem // European Journal of Operational Research. 2009. Vol. 193. P. 59-72.

3. Hamdi I., Tekava M. F. A Genetic Algorithm to Minimize the Makespan in a Two-Machine Cross-Docking Flow Shop Problem // Journal of the Operations Research Society of China. 2020. Vol. 8. P. 457-476.

4. Prot D., Rapine C. Approximation for the Two-Machine Cross-Docking Flow Shop Problem // Discrete Applied Mathematics. 2013. Vol. 161, iss. 13-14. P. 2107-2119.

5. Романова А. А. Алгоритмы решения одной задачи построения расписания минимальной длины для двух машин // Дискретный анализ и исследование операций. 2015. Т. 22, № 4. C. 63-79.

ИНФОРМАЦИЯ ОБ АВТОРАХ

Романова Анна Анатольевна - кандидат физико-математических наук, доцент, доцент кафедры прикладной и вычислительной математики, Омский государственный университет им. Ф. М. Достоевского, 644077, Россия, г. Омск, пр. Мира, 55а; e-mail: [email protected].

Тавченко Вероника Юрьевна - аспирант, Омский государственный университет им. Ф. М. Достоевского, 644077, Россия, г. Омск, пр. Мира, 55а; e-mail: [email protected].

ДЛЯ ЦИТИРОВАНИЯ

Романова А. А., Тавченко В. Ю. Решение двухмашинной задачи составления расписания минимальной длины при наличии частичного порядка между операциями // Вестн. Ом. ун-та. 2022. Т. 27, № 1. С. 2330. DOI: 10.24147/1812-3996.2022.27(1).23-30.

INFORMATION ABOUT THE AUTHORS

Romanova Anna Anatolievna - Candidate of Physical and Mathematical Sciences, Associate Professor, Associate Professor of the Department of Applied and Computational Mathematics, Dostoevsky Omsk State University, 55a, pr. Mira, Omsk, 644077, Russia; e-mail: [email protected].

Tavchenko Veronika Yurivna - Graduate Student, Dostoevsky Omsk State University, 55a, pr. Mira, Omsk, 644077, Russia; e-mail: [email protected].

FOR CITATIONS

Romanova A.A., Tavchenko V.Yu. Solving the two-machine flow-shop scheduling problem to minimize makespan with a partial order between operations. Vestnik Omskogo universiteta = Herald of Omsk University, 2022, vol. 27, no. 1, pp. 23-30. DOI: 10.24147/ 1812-3996.2022.27(1).23-30. (In Russ.)

i Надоели баннеры? Вы всегда можете отключить рекламу.