Журнал вычислительной математики и математической физики, 2021, T. 61, № 7, стр. 1179-1191

Метрический подход нахождения приближенных решений задач теории расписаний

А. А. Лазарев 1*, Д. В. Лемтюжникова 1, Н. А. Правдивец 1

1 ИПУ РАН
117997 Москва, ул. Профсоюзная, 65, Россия

* E-mail: jobmath@mail.ru

Поступила в редакцию 26.11.2020
После доработки 26.11.2020
Принята к публикации 11.03.2021

Полный текст (PDF)

Аннотация

Вводятся функции метрики для разных классов задач теории расписаний для одного прибора. Показано,  как с помощью введенных функций находятся приближенные решения NP-трудных задач. Величина метрики находится в результате решения задачи линейного программирования, ограничениями которой являются системы линейных неравенств полиномиальных или псевдополиномиальных разрешимых случаев исследуемых задач. Фактически находится проекция во введенной метрике решаемого примера на разрешимые подслучаи задачи. Библ. 23. Фиг. 1. Табл. 3.

Ключевые слова: теория расписаний, метрика, аппроксимация, методы оптимизации.

1. ВВЕДЕНИЕ

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

Существуют два типа методов решения таких задач: точные и приближенные (см. [1]). К первой группе относятся целочисленное линейное программирование (см. [2]), динамическое программирование (см. [3]), метод ветвей и границ (см. [4]), локальный элиминационный алгоритм (см. [5]) и т.д. В этом случае оптимальное значение целевой функции вычисляется без каких-либо ошибок, но вычисления требуют больших затрат времени и памяти. Приближенные методы, такие как генетические алгоритмы (см. [6]), алгоритмы муравьиной колонии (см. [7]), алгоритмы пчелиного роя (см. [8]), табу-поиск (см. [9]) и многие другие, гораздо быстрее получают приближенное решение, но, как правило, не имеют оценок отклонения значения целевой функции от оптимального (см. [10]).

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

Идея метрического подхода заключается в следующем. Пример задачи $A$ характеризуется точкой, координаты которой соответствуют входным данным задачи. Для этой задачи рассмотрим все известные полиномиальные и псевдополиномиальные алгоритмы. Затем вводим некоторую метрику, значение которой фактически ограничивает сверху оценку абсолютной погрешности целевой функции. С помощью этой метрики находим полиномиально или псевдополиномиально разрешимый пример задачи $B$ с наименьшим расстоянием от данного примера $A$ во введенной метрике. Для этого мы формулируем и решаем задачу линейного программирования. Другими словами, строим проекцию начальной точки $A$ на подпространство задач.

На данный момент для этого подхода получены следующие результаты. В [12] проводится сравнение допустимых областей и дается понятие полиномиальной меры неразрешимости для задачи теории расписаний с одним прибором $1\,|\,{{r}_{j}}\,|\,{{L}_{{{\text{max}}}}}$. Возможно, его можно уменьшить еще больше, найдя новые подпространства полиномиально разрешимых примеров. В [13], [14] получены соответствующие метрики для задач теории расписаний с функцией суммарного запаздывания.

2. ПОСТАНОВКА ЗАДАЧИ СУММАРНОГО ЗАПАЗДЫВАНИЯ ДЛЯ ОДНОГО ПРИБОРА

Необходимо обслужить $n$ требований на одном приборе. Прерывания обслуживания требований, искусственные простои прибора при обслуживании и обслуживание более одного требования в любой момент времени запрещены. Требования пронумерованы числами $1,2, \ldots ,n$. Множество $N = \{ 1,2, \ldots ,n\} $ назовем множеством требований.

Для требования $j \in N$ заданы следующие параметры: продолжительность обслуживания ${{p}_{j}} > 0$ и директивный срок окончания обслуживания ${{d}_{j}}$. Задан момент начала обслуживания ${{t}_{0}}$, с которого прибор готов начать обслуживание требований. Все требования поступают на обслуживание одновременно в момент времени ${{t}_{0}}$.

Расписание обслуживания требований множества $N$ задается кусочно-постоянной непрерывной слева функцией $s:\mathbb{R} \to \{ 0,1, \ldots ,n\} $. Если $s(t) = 0$, то в момент времени $t$ прибор простаивает; если $s(t) = j$, $j \in N$, то в момент времени $t$ прибор обслуживает требование $j$. Поскольку в рассматриваемой задаче требования поступают на обслуживание одновременно, обслуживаются на приборе без прерываний и искусственных простоев прибора, то расписание однозначно задается перестановкой $\pi $ элементов множества $N$. Далее в работе понятие расписания и перестановки множества требований будем отождествлять и называть расписанием перестановку $\pi $.

Индивидуальный пример исследуемой задачи (далее пример) c заданными множеством требований $N$, продолжительностями обслуживания ${{p}_{j}}$, директивными сроками ${{d}_{j}}$ и моментом начала обслуживания ${{t}_{0}}$ будем обозначать через $I = \left\langle {{{{\{ {{p}_{j}},{{d}_{j}}\} }}_{{j \in N}}},{{t}_{0}}} \right\rangle $. В случае, если параметры требований фиксированы (однозначно определены), для обозначения примера $I$ будем использовать запись $\{ N,{{t}_{0}}\} $. Множество всех $n!$ расписаний для примера $I$ будем обозначать через $\Pi (I)$.

Через ${{C}_{j}}(\pi )$ будем обозначать момент окончания обслуживания требования $j$ при расписании $\pi $. Моменты окончания обслуживания требований при расписании $\pi = ({{j}_{1}}, \ldots ,{{j}_{n}})$ вычисляются следующим образом:

${{C}_{{{{j}_{1}}}}}(\pi ) = {{t}_{0}} + {{p}_{{{{j}_{1}}}}},$
${{C}_{{{{j}_{k}}}}}(\pi ) = {{C}_{{{{j}_{{k - 1}}}}}}(\pi ) + {{p}_{{{{j}_{k}}}}},\quad k = 2,3, \ldots ,n.$
Если обслуживание требования $i$ предшествует обслуживанию требования $j$ при расписании $\pi $ (т.е. выполняется ${{C}_{i}}(\pi ) < {{C}_{j}}(\pi )$), то будем использовать запись ${{(i \to j)}_{\pi }}$. Используя это обозначение, момент окончания обслуживания требования $j \in N$ при расписании $\pi $ можно записать как ${{C}_{j}}(\pi ) = {{t}_{0}} + \sum\nolimits_{i \in N:{{{(i \to j)}}_{\pi }}} {{{p}_{i}} + {{p}_{j}}} $. Обслуживание всех требований примера $I$ завершается в момент времени ${{t}_{0}} + \sum\nolimits_{j \in N} {{{p}_{j}}} $ при любом расписании $\pi \in \Pi (I)$.

Под запаздыванием требования $j \in N$ при расписании $\pi $ будем понимать величину

${{T}_{j}}(\pi ) = max\{ 0,{{C}_{j}}(\pi ) - {{d}_{j}}\} .$

Суммарное запаздывание требований при расписании $\pi $ определяется как

$F(\pi ) = \sum\limits_{j = 1}^n \,{{T}_{j}}(\pi ).$

Задача минимизации суммарного запаздывания заключается в построении оптимального расписания $\pi {\kern 1pt} * \in \Pi (I)$, при котором выполняется неравенство $F(\pi {\kern 1pt} *) \leqslant F(\pi )$ для всех расписаний $\pi \in \Pi (I)$. Отметим, что данная задача является $NP$-трудной (см. [15]). Известен псевдополиномиальный алгоритм ее решения (см. [16]) трудоемкости $O\left( {{{n}^{4}}\sum\nolimits_{j \in N} {{{p}_{j}}} } \right)$ операций, в случае когда $p_{j}^{{}} \in {{\mathbb{Z}}^{ + }}$ $\forall j \in N$, основанный на методе динамического программирования.

Через $\Pi {\kern 1pt} *{\kern 1pt} (I)$ будем обозначать множество всех оптимальных расписаний для примера $I$. Для обозначения величины оптимального суммарного запаздывания примера $I$ будем использовать запись $F{\kern 1pt} *{\kern 1pt} (I)$.

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

(2.1)
${{d}_{j}} \in \left[ {{{t}_{0}};{{t}_{0}} + \sum\limits_{i \in N} \,{{p}_{i}}} \right]\quad \forall j \in N.$
В случае, если для примера $I$ условия (2.1) не выполняются, построим пример $I{\kern 1pt} ' = \left\langle {{{{\{ {{p}_{j}},d_{j}^{'}\} }}_{{j \in N}}},{{t}_{0}}} \right\rangle $ такой, что
$d_{j}^{'} = min\left\{ {max\{ {{t}_{0}},{{d}_{j}}\} ,\;{{t}_{0}} + \sum\limits_{i \in N} \,{{p}_{i}}} \right\}\quad \forall j \in N.$
Если для некоторого требования $j \in N$ выполняется ${{d}_{j}} > {{t}_{0}} + \sum\nolimits_{i \in N} {{{p}_{i}}} $, то имеем $d_{j}^{'} = {{t}_{0}} + \sum\nolimits_{i \in N} {{{p}_{i}}} $. Это означает, что требование $j$ не запаздывает при любом расписании $\pi $ для обоих примеров $I$ и $I{\kern 1pt} '$. Таким образом, можно исключить такое требование $j$ из рассмотрения и после построения оптимального расписания для редуцированного примера добавить требование $j$ на последнюю позицию в построенное расписание.

Если для некоторого требования $j \in N$ выполняется ${{d}_{j}} < {{t}_{0}}$, то имеем $d_{j}^{'} = {{t}_{0}}$, и требование $j$ запаздывает при любом расписании $\pi $. Лоулером в [16] была доказана следующая

Теорема 1 (см. [16]). Пусть $\pi {\kern 1pt} *$ оптимальное расписание примера ${{I}_{1}} = \left\langle {{{{\{ {{p}_{j}},{{d}_{j}}\} }}_{{j \in N}}},{{t}_{0}}} \right\rangle $. Выберем величины $d_{j}^{'}$ так, что

(2.2)
$min\{ {{d}_{j}},{{C}_{j}}(\pi {\kern 1pt} *)\} \leqslant d_{j}^{'} \leqslant \max \{ {{d}_{j}},{{C}_{j}}(\pi {\kern 1pt} *)\} \quad \forall j \in N.$
Тогда любое оптимальное расписание примера ${{I}_{2}} = \left\langle {{{{\{ {{p}_{j}},d_{j}^{'}\} }}_{{j \in N}}},{{t}_{0}}} \right\rangle $ будет оптимальным и для примера ${{I}_{1}}$.

В нашем случае условия (2.2) для примеров $I$ и $I{\kern 1pt} '$ выполняются, поскольку при любом расписании $\pi $ справедливо неравенство ${{t}_{0}} < {{C}_{j}}(\pi ) \leqslant {{t}_{0}} + \sum\nolimits_{i \in N} {{{p}_{i}}} $, $j \in N$. Следовательно, любое оптимальное расписание для примера $I{\kern 1pt} '$ будет оптимальным и для примера $I$. Таким образом, параметры требований примера $I{\kern 1pt} '$ удовлетворяют условиям (2.1) и выполняется $\Pi {\kern 1pt} *{\kern 1pt} (I{\kern 1pt} ') \subseteq \Pi {\kern 1pt} *{\kern 1pt} (I)$.

Необходимо заметить, что не любое оптимальное расписание примера $I$ будет оптимальным и для примера $I{\kern 1pt} '$.

Как следствие теоремы 1, может быть сформулирована

Лемма 1. Для любого оптимального расписания $\pi $ и любого незапаздывающего требования $j$ верно: все требования, которые обслуживаются в интервале $[{{C}_{j}}(\pi ),{{d}_{j}}]$ не запаздывают.

Данная лемма легко доказывается от противного.

Два примера $I = \left\langle {{{{\{ {{p}_{j}},{{d}_{j}}\} }}_{{j \in N}}},{{t}_{0}}} \right\rangle $ и $I{\kern 1pt} ' = \left\langle {{{{\{ p_{j}^{'},d_{j}^{'}\} }}_{{j \in N}}},t_{0}^{'}} \right\rangle $ будем называть равными, если множества оптимальных расписаний для обоих примеров совпадают, т.е. $\Pi {\kern 1pt} *{\kern 1pt} (I) = \Pi {\kern 1pt} *{\kern 1pt} (I{\kern 1pt} ')$. Через $T_{j}^{'}(\pi )$ будем обозначать значение запаздывания требования $j$ при некотором расписании $\pi $, вычисленное для примера $I{\kern 1pt} '$. В рамках данного исследования будут полезны следующие случаи равенства примеров.

(1) Примеры $I$ и $I{\kern 1pt} '$ равны, если $p_{j}^{'} = {{p}_{j}}$, $d_{j}^{'} = {{d}_{j}} + C$, $j \in N$, и $t_{0}^{'} = {{t}_{0}} + C$, где $C$ – произвольная константа. Действительно, в этом случае для любого расписания $\pi $ и любого требования $j \in N$, обслуживаемого при расписании $\pi $, выполняется

$\begin{gathered} T_{j}^{'}(\pi ) = max\left\{ {0,{{t}_{0}} + C + \sum\limits_{i{\kern 1pt} :\;{{{(i \to j)}}_{\pi }}} \,{{p}_{i}} + {{p}_{j}} - ({{d}_{j}} + C)} \right\} = \\ = max\left\{ {0,{{t}_{0}} + \sum\limits_{i{\kern 1pt} :\;{{{(i \to j)}}_{\pi }}} \,{{p}_{i}} + {{p}_{j}} - {{d}_{j}}} \right\} = max\{ 0,{{C}_{j}}(\pi ) - {{d}_{j}}\} = {{T}_{j}}(\pi ). \\ \end{gathered} $

Следовательно, $F{\kern 1pt} *{\kern 1pt} (I) = F{\kern 1pt} *{\kern 1pt} (I{\kern 1pt} ')$ и $\Pi {\kern 1pt} *{\kern 1pt} (I) = \Pi {\kern 1pt} *{\kern 1pt} (I{\kern 1pt} ')$. В этом смысле без потери общности момент начала обслуживания требований можно считать равным нулю: ${{t}_{0}} = 0$. Если требуется выполнение некоторых условий относительно директивных сроков, например ${{d}_{j}} \in {{\mathbb{Z}}^{ + }}$, то это обычно достигается путем изменения момента начала обслуживания ${{t}_{0}}$. Поэтому в работе мы будем предполагать, что ${{t}_{0}}$ – произвольная величина.

(2) Примеры $I$ и $I{\kern 1pt} '$ равны, если $p_{j}^{'} = \alpha {{p}_{j}}$, $d_{j}^{'} = \alpha {{d}_{j}}$, $j \in N$, и $t_{0}^{'} = \alpha {{t}_{0}}$, где $\alpha > 0$ – произвольная положительная константа. Действительно, в этом случае для любого расписания $\pi $ и любого требования $j \in N$, обслуживаемого при расписании $\pi $, выполняется

$T_{j}^{'}(\pi ) = max\left\{ {0,\alpha {{t}_{0}} + \sum\limits_{i{\kern 1pt} :\;{{{(i \to j)}}_{\pi }}} \,\alpha {{p}_{i}} + \alpha {{p}_{j}} - \alpha {{d}_{j}}} \right\} = \alpha max\left\{ {0,{{t}_{0}} + \sum\limits_{i{\kern 1pt} :\;{{{(i \to j)}}_{\pi }}} \,{{p}_{i}} + {{p}_{j}} - {{d}_{j}}} \right\} = \alpha {{T}_{j}}(\pi ).$

Следовательно, $F{\kern 1pt} *{\kern 1pt} (I) = \alpha F{\kern 1pt} *{\kern 1pt} (I{\kern 1pt} ')$ и $\Pi {\kern 1pt} *{\kern 1pt} (I) = \Pi {\kern 1pt} *{\kern 1pt} (I{\kern 1pt} ')$. Рассмотрим любой пример $I$ как точку в $(2n + 1)$-мерном евклидовом пространстве с координатами $({{t}_{0}},{{p}_{1}}, \ldots ,{{p}_{n}},{{d}_{1}}, \ldots ,{{d}_{n}})$. Тогда все примеры (точки), расположенные на луче, исходящем из нуля пространства, равны между собой (фиг. 1). Поэтому можно предполагать, что рассматриваются только те примеры (точки), которые лежат на поверхности единичной сферы в рассматриваемом пространстве. Однако в общем случае данный подход неприемлем при построении оптимального расписания некоторым алгоритмом, для работы которого необходимо, чтобы продолжительности обслуживания требований были целочисленными величинами. Поэтому ограничимся выбором константы $\alpha = 1{\text{/НОД}}({{p}_{1}}, \ldots ,{{p}_{n}})$, где НОД – наибольший общий делитель.

Фиг. 1.

Схематичное изображение проецирования примера $I$ на единичную сферу в $(2n + 1)$-мерном евклидовом пространстве. Примеры $I$ и $I{\kern 1pt} '$ равны.

Необходимо также отметить, что для любых двух равных примеров $I$ и $I{\kern 1pt} '$ выполняется свойство: если требование при оптимальном расписании $\pi $ примера $I$ запаздывает (не запаздывает), то и в примере $I{\kern 1pt} '$ при расписании $\pi $ требование запаздывает (не запаздывает). Доказательство этого можно провести от противного.

Введем некоторые дополнительные обозначения и понятия.

Расписание $\pi $ будем называть $SPT$-расписанием (Shortest Processing Time) и обозначать через ${{\pi }_{{spt}}}$, если требования упорядочены при данном расписании в порядке неубывания продолжительностей обслуживания, т.е. для любых двух требований $i$ и $j$ таких, что ${{p}_{i}} < {{p}_{j}}$, выполняется ${{(i \to j)}_{{{{\pi }_{{spt}}}}}}$.

Расписание $\pi $ будем называть $EDD$-расписанием (Earliest Due Date) и обозначать через ${{\pi }_{{edd}}}$, если требования упорядочены при данном расписании в порядке неубывания директивных сроков, т.е. для любых двух требований $i$ и $j$ таких, что ${{d}_{i}} < {{d}_{j}}$, выполняется ${{(i \to j)}_{{{{\pi }_{{edd}}}}}}$.

Через $\{ \pi \} $ будем обозначать множество требований, упорядоченных при расписании $\pi $. В случае $\{ \pi \} \ne N$ ($\{ \pi \} \subset N$) расписание $\pi $ будем называть частичным расписанием.

Запись ${{(i \to j)}_{\pi }}$ при необходимости будет расширена до ${{(i \to j \to k)}_{\pi }}$ для обозначения порядка обслуживания более, чем двух требований при некотором расписании $\pi $. Также будем использовать записи ${{(j \to N{\kern 1pt} ')}_{\pi }}$ или ${{(N{\kern 1pt} ' \to N{\kern 1pt} '{\kern 1pt} ')}_{\pi }}$ для обозначения порядка обслуживания между некоторыми подмножествами требований.

Для обозначения структуры расписания $\pi $ будем использовать запись $\pi = ({{\pi }_{1}}, \ldots ,{{\pi }_{m}})$, где расписание ${{\pi }_{i}}$, $i = 1,2, \ldots ,m$, является частичным расписанием (подрасписанием расписания $\pi $). При этом для частичных расписаний ${{\pi }_{i}}$ выполняется $\{ \pi \} = \bigcup\nolimits_{i = 1}^m {\{ {{\pi }_{i}}\} } $, $\{ {{\pi }_{i}}\} \cap \{ {{\pi }_{j}}\} = \not {0}$ для $i \ne j$, ${{(\{ {{\pi }_{1}}\} \to \ldots \to \{ {{\pi }_{m}}\} )}_{\pi }}$, и требования каждого частичного расписания ${{\pi }_{i}}$, $i = 1,2, \ldots ,m$, упорядочены в том же порядке, что и при расписании $\pi $. Для обозначения структуры расписания $\pi $ относительно некоторого требования $j \in \{ \pi \} $ будем использовать запись $\pi = ({{\pi }_{1}},j,{{\pi }_{2}})$.

Пользуясь нотацией, предложенной в [17], для обозначения исследуемой задачи будем использовать запись $1\,{\text{|}}{\kern 1pt} {\text{|}}\,\sum {{{T}_{j}}} $. Рассматриваемая задача $1\,{\text{|}}{\kern 1pt} {\text{|}}\,\sum {{{T}_{j}}} $ является $NP$-трудной в обычном смысле (см. [15]).

В заключение данного раздела приведем пример связи рассматриваемой задачи для одного прибора $1\,{\text{|}}{\kern 1pt} {\text{|}}\,\sum {{{T}_{j}}} $ с некоторой задачей оптимального упорядочения набора требований, возникающей на практике. Рассмотрим некоторый обслуживающий центр (ОЦ), процесс работы которого разбит на циклы, состоящие из двух этапов. На первом этапе центр набирает заявки и на втором этапе осуществляет их исполнение. В ОЦ имеется $m$ однородных исполнителей, каждая заявка может быть исполнена любым из них. Исполнители обладают в общем случае различной производительностью и выполняют в любой момент времени не более одной заявки. Выполнение заявки не может быть прервано, т.е., если исполнитель начинает выполнение некоторой заявки, то он выполняет ее до конца. При приеме заявки ОЦ и клиент договариваются о сумме, которую ОЦ получит за выполнение заявки, а также о моменте времени, к которому заявка должна быть исполнена. При выполнении некоторой заявки позднее обговоренного момента времени ОЦ выплачивает клиенту фиксированный для любой заявки штраф за каждую единицу времени, прошедшую после этого момента. Целью составления расписания работы ОЦ является минимизация суммы штрафных выплат по всем принятым к исполнению заявкам.

Данная задача может быть сформулирована в терминах теории расписаний следующим образом. Задано множество требований $N = \{ 1,2, \ldots ,n\} $ и множество параллельных приборов $M = \{ 1,2, \ldots ,m\} $. Каждое требование $j \in N$ имеет директивный срок ${{d}_{j}}$, к которому желательно завершить обслуживание данного требования, и продолжительность ${{p}_{{ji}}}$ обслуживания требования $j$ на приборе $i \in M$. Требования обслуживаются на приборах без прерываний, в любой момент времени любой прибор обслуживает не более одного требования. Расписание обслуживания требований $\pi $ строится с момента времени ${{t}_{0}} = 0$ и для данной задачи может быть задано в виде набора из $m$ перестановок ${{\pi }_{1}}, \ldots ,{{\pi }_{m}}$, где ${{\pi }_{i}}$, $i \in M$, задает порядок обслуживания требований множества $\{ {{\pi }_{i}}\} $ на приборе $i$. При этом $\{ {{\pi }_{1}}\} , \ldots ,\{ {{\pi }_{m}}\} $ задает разбиение множества требований $N$ (т.е. $\bigcup\nolimits_{i \in M} {\{ {{\pi }_{i}}\} } = N$ и $\{ {{\pi }_{i}}\} \cap \{ {{\pi }_{j}}\} = \not {0}$ для $i,j \in M$, $i \ne j$). Момент окончания ${{C}_{j}}(\pi )$ требования $j \in N$ при расписании $\pi $ вычисляется описанным выше образом. Необходимо построить такое расписание обслуживания требований множества $N$ на приборах из множества $M$, при котором минимизируется суммарное запаздывание требований, т.е. $\sum\nolimits_{j \in N} {max\{ 0,{{C}_{j}}(\pi ) - {{d}_{j}}\} } \to min$.

Имея некоторый алгоритм, основанный, например, на идее метода ветвей и границ, для задачи суммарного запаздывания для параллельных приборов было бы желательно иметь некоторый способ вычисления нижних оценок оптимального значения целевой функции. Это может быть сделано с помощью использования методов решения и построения оценок для примеров задачи $1\,{\text{|}}{\kern 1pt} {\text{|}}\,\sum {{{T}_{j}}} $. Однако алгоритм решения задачи суммарного запаздывания для параллельных приборов может быть организован так, что сначала строится разбиение множества требований $N$ на $m$ подмножеств, которые будут обслуживаться на соответствующих приборах, а затем решается $m$ независимых примеров задачи $1\,{\text{|}}{\kern 1pt} {\text{|}}\,\sum {{{T}_{j}}} $. В этом случае исходная задача для многих приборов допускает разбиение на несколько независимых подзадач для одного прибора.

3. МЕТРИКА ДЛЯ ЗАДАЧИ $1\left| {{{r}_{j}}} \right|\sum {{{T}_{j}}} $

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

Имеется множество $N$, состоящее из $n$ требований, которые необходимо обслужить на одном приборе. Прибор готов начать обслуживание в момент времени ${{t}_{0}} = 0$ и не может обслуживать более одного требования одновременно. Прерывания при обслуживании запрещены. Для каждого требования $j \in N$ заданы: момент поступления ${{r}_{j}}$, продолжительность обслуживания ${{p}_{j}}$ и директивный срок ${{d}_{j}}$. Расписание $\pi = \{ {{j}_{1}}, \ldots ,{{j}_{n}}\} $ определяет порядок, в котором обслуживаются требования. Естественно рассматривать ранние расписания, при которых

${{C}_{{{{j}_{1}}}}}(\pi ) = {\text{max}}\{ {{t}_{0}},{{r}_{{{{j}_{1}}}}}\} + {{p}_{{{{j}_{1}}}}},$
${{C}_{{{{j}_{k}}}}}(\pi ) = {\text{max}}\{ {{r}_{{{{j}_{k}}}}},{{C}_{{{{j}_{{k - 1}}}}}}(\pi )\} + {{p}_{{{{j}_{k}}}}},\quad k = 2,3, \ldots ,n,$
где ${{C}_{j}}(\pi )$ – момент окончания обслуживания требования $j$ при расписании $\pi $. Необходимо построить оптимальное расписание $\pi {\kern 1pt} *$, минимизирующее целевую функцию – суммарное запаздывание $\sum\nolimits_{j \in N} {{{T}_{j}}(\pi )} $, где ${{T}_{j}}(\pi ) = max\{ 0,{{C}_{j}}(\pi ) - {{d}_{j}}\} $ – запаздывание требования $j$ при расписании $\pi $. В дальнейшем, если из контекста ясно, о каком расписании идет речь, то зависимость от $\pi $ может опускаться. Данная задача является $NP$–трудной (см. [15]) и обозначается $1\left| {{{r}_{j}}} \right|\sum {{{T}_{j}}} $ (см. [17]).

Задача $1\left| {{{r}_{j}}} \right|\sum {{{T}_{j}}} $ полностью характеризуется $3n$ параметрами – моментами поступления, продолжительностями обслуживания и директивными сроками каждого из $n$ требований. Будем говорить, что задан пример $A$ задачи, если задано $3n$ параметров $\{ r_{j}^{A},p_{j}^{A},d_{j}^{A},j = 1,2, \ldots ,n\} $, характеризующих задачу.

Для частного случая ${{r}_{j}} = 0,$ $j \in N$, задачи минимизации суммарного запаздывания ранее был предложен полиномиальный алгоритм нахождения приближенного решения с относительной погрешностью $\varepsilon > 0$ сложности $O\left( {\tfrac{{{{n}^{7}}}}{\varepsilon }} \right)$ операций (см. [18]). Позднее М.Я. Ковалев усилил оценку до $O({{n}^{6}}logn + {{n}^{6}}{\text{/}}\varepsilon )$ операций (см. [19]). Также для этого случая известен псевдополиномиальный алгоритм сложности $O\left( {{{n}^{4}}\sum {{{p}_{j}}} } \right)$ (см. [16]). В случае, если

$\begin{gathered} {{p}_{1}} \geqslant \ldots \geqslant {{p}_{n}}, \\ {{d}_{1}} \leqslant \ldots \leqslant {{d}_{n}}, \\ \end{gathered} $
сложность псевдополиномиального алгоритма может быть уменьшена до $O\left( {{{n}^{2}}\sum {{{p}_{j}}} } \right)$ операций (см. [20]). Для случая $1\left| {\,{{r}_{j}},\;{{p}_{j}} = p\,} \right|\sum {{{T}_{j}}} $ известен полиномиальный алгоритм сложности $O({{n}^{7}})$ операций, предложенный Ф. Баптисте (см. [21]), на основе метода динамического программирования.

Предлагается подход приближенного решения задачи $1\left| {{{r}_{j}}} \right|\sum {{{T}_{j}}} $ с гарантированной погрешностью, основанный на введении метрики для пространства параметров задачи, и рассматриваются возможности применения данного подхода к другим задачам теории расписаний. Затем описываются численные эксперименты, проведенные для проверки предложенного метода.

3.2. Метрика для пространства параметров

Задача $1\left| {{{r}_{j}}} \right|\sum {{{T}_{j}}} $ полностью характеризуется $3n$ параметрами, что позволяет нам рассматривать примеры задачи, как точки в $3n$-мерном пространстве параметров $\Omega = \{ {{r}_{1}}, \ldots ,{{r}_{n}},{{p}_{1}}, \ldots ,{{p}_{n}},{{d}_{1}}, \ldots ,{{d}_{n}}\} $.

Лемма 2. Пусть примеры $A$ и $B$ имеют одинаковые продолжительности обслуживания и директивные сроки:

$p_{j}^{A} = p_{j}^{B},\quad d_{j}^{A} = d_{j}^{B},\quad j \in N.$

Тогда для любого расписания $\pi $

$\left| {\sum\limits_{j \in N} \,T_{j}^{A}(\pi ) - \sum\limits_{j \in N} \,T_{j}^{B}(\pi )} \right| \leqslant n\mathop {max}\limits_{j \in N} {\text{|}}r_{j}^{A} - r_{j}^{B}{\text{|}}.$

Доказательство. Используя определение запаздывания и известное неравенство

${\text{|}}\max \{ a,b\} - \max \{ c,d\} {\text{|}} \leqslant \max \{ {\text{|}}a - c{\text{|}},{\text{|}}b - d{\text{|}}\} \quad \forall a,b,c,d \in \mathbb{R},$
получаем
(3.3)
$\left| {\sum\limits_{j \in N} \,T_{j}^{A} - \sum\limits_{j \in N} \,T_{j}^{B}} \right| \leqslant \sum\limits_{j \in N} \,{\text{|}}C_{j}^{A} - C_{j}^{B} + d_{j}^{B} - d_{j}^{A}{\text{|}} \leqslant \sum\limits_{j \in N} \,{\text{|}}C_{j}^{A} - C_{j}^{B}{\text{|}} + \sum\limits_{j \in N} \,{\text{|}}d_{j}^{A} - d_{j}^{B}{\text{|}}.$
Или, учитывая равенство директивных сроков,
(3.4)
$\left| {\sum\limits_{j \in N} \,T_{j}^{A}(\pi ) - \sum\limits_{j \in N} \,T_{j}^{B}(\pi )} \right| \leqslant \sum\limits_{j \in N} \,{\text{|}}C_{j}^{A} - C_{j}^{B}{\text{|}}.$
Учитывая свойства раннего расписания, заметим, что
${\text{|}}C_{{{{j}_{1}}}}^{A} - C_{{{{j}_{1}}}}^{B}{\text{|}} = {\text{|}}r_{{{{j}_{1}}}}^{A} - r_{{{{j}_{1}}}}^{B}{\text{|}} \leqslant \mathop {max}\limits_{j \in N} {\text{|}}r_{j}^{A} - r_{j}^{B}{\text{|}},$
${\text{|}}C_{{{{j}_{k}}}}^{A} - C_{{{{j}_{k}}}}^{B}{\text{|}} \leqslant \max \{ {\text{|}}r_{{{{j}_{k}}}}^{A} - r_{{{{j}_{k}}}}^{B}{\text{|}},{\text{|}}C_{{{{j}_{{k - 1}}}}}^{A} - C_{{{{j}_{{k - 1}}}}}^{B}{\text{|}}\} \leqslant \mathop {\max }\limits_{j \in N} {\text{|}}r_{j}^{A} - r_{j}^{B}{\text{|}},$
$k = 2,3, \ldots ,n.$
Отсюда и из неравенства (3.4) получаем утверждение леммы.

Лемма 3. Пусть примеры $A$ и $B$ имеют одинаковые моменты поступления и директивные сроки:

$r_{j}^{A} = r_{j}^{B},\quad d_{j}^{A} = d_{j}^{B},\quad j \in N.$

Тогда для любого расписания $\pi $

$\left| {\sum\limits_{j \in N} \,T_{j}^{A}(\pi ) - \sum\limits_{j \in N} \,T_{j}^{B}(\pi )} \right| \leqslant n\sum\limits_{j \in N} \,{\text{|}}p_{j}^{A} - p_{j}^{B}{\text{|}}.$

Доказательство. При условиях леммы также выполняется неравенство (3.4):

$\left| {\sum\limits_{j \in N} \,T_{j}^{A} - \sum\limits_{j \in N} \,T_{j}^{B}} \right| \leqslant \sum\limits_{j \in N} \,{\text{|}}C_{j}^{A} - C_{j}^{B}{\text{|}}.$
Учитывая свойства раннего расписания и равенство моментов поступления, получаем

${\text{|}}C_{{{{j}_{1}}}}^{A} - C_{{{{j}_{1}}}}^{B}{\text{|}} = {\text{|}}p_{{{{j}_{1}}}}^{A} - p_{{{{j}_{1}}}}^{B}{\text{|}} \leqslant \sum\limits_{j \in N} \,{\text{|}}p_{j}^{A} - p_{j}^{B}{\text{|}},$
${\text{|}}C_{{{{j}_{k}}}}^{A} - C_{{{{j}_{k}}}}^{B}{\text{|}} \leqslant {\text{|}}p_{{{{j}_{k}}}}^{A} - p_{{{{j}_{k}}}}^{B}{\text{|}}\; + \;{\text{|}}C_{{{{j}_{{k - 1}}}}}^{A} - C_{{{{j}_{{k - 1}}}}}^{B}{\text{|}} \leqslant \sum\limits_{j \in N} \,{\text{|}}p_{j}^{A} - p_{j}^{B}{\text{|}},\quad k = 2,3, \ldots ,n.$

Отсюда и из неравенства (3.4) получаем утверждение леммы.

Лемма 4. Пусть примеры $A$ и $B$ имеют одинаковые моменты поступления и продолжительности обслуживания:

$r_{j}^{A} = r_{j}^{B},\quad p_{j}^{A} = p_{j}^{B},\quad j \in N.$

Тогда для любого расписания $\pi $

$\left| {\sum\limits_{j \in N} \,T_{j}^{A}(\pi ) - \sum\limits_{j \in N} \,T_{j}^{B}(\pi )} \right| \leqslant \sum\limits_{j \in N} \,{\text{|}}d_{j}^{A} - d_{j}^{B}{\text{|}}.$

Доказательство. При условиях леммы $C_{{{{j}_{k}}}}^{A} = C_{{{{j}_{k}}}}^{B},$ $k \in N$, и неравенство (3.3) имеет вид

$\left| {\sum\limits_{j \in N} \,T_{j}^{A} - \sum\limits_{j \in N} \,T_{j}^{B}} \right| \leqslant \sum\limits_{j \in N} \,{\text{|}}d_{j}^{A} - d_{j}^{B}{\text{|}},$
т.е. утверждение леммы выполняется.

Теорема 2. Функция, определенная на пространстве примеров $\Omega \times \Omega $,

$\rho (A,B) = n\mathop {max}\limits_{j \in N} {\text{|}}r_{j}^{A} - R_{j}^{B}{\text{|}} + n\sum\limits_{j \in N} \,{\text{|}}p_{j}^{A} - p_{j}^{B}{\text{|}}\; + \;\sum\limits_{j \in N} \,{\text{|}}d_{j}^{A} - d_{j}^{B}{\text{|}}$
удовлетворяет аксиомам метрики.

Доказательство. Очевидно, что функция $\rho (A,B)$ симметрична и неотрицательна, причем $\rho (A,B) = 0$ тогда и только тогда, когда $A = B$. Неравенство треугольника выполняется в силу свойств модуля суммы.

Лемма 5. Для любых примеров $A$ и $B$ и любого расписания $\pi $ справедливо неравенство

(3.5)
$\left| {\sum\limits_{j \in N} \,T_{j}^{A}(\pi ) - \sum\limits_{j \in N} \,T_{j}^{B}(\pi )} \right| \leqslant \rho (A,B).$

Доказательство. Пусть пример $C$ имеет такие же моменты поступления и продолжительности обслуживания, как и пример $A$, а директивные сроки, как у примера $B$. Пусть далее пример $D$ имеет моменты поступления, как у примера $A$, а директивные сроки и продолжительности обслуживания, как у примера $B$, тогда, используя леммы 2–4, получаем

$\begin{gathered} \left| {\sum\limits_{j \in N} \,T_{j}^{A} - \sum\limits_{j \in N} \,T_{j}^{B}} \right| \leqslant \left| {\sum\limits_{j \in N} \,T_{j}^{B} - \sum\limits_{j \in N} \,T_{j}^{D}} \right| + \left| {\sum\limits_{j \in N} \,T_{j}^{D} - \sum\limits_{j \in N} \,T_{j}^{C}} \right| + \left| {\sum\limits_{j \in N} \,T_{j}^{A} - \sum\limits_{j \in N} \,T_{j}^{C}} \right| \leqslant \\ \, \leqslant n\mathop {max}\limits_{j \in N} \left| {r_{j}^{A} - r_{j}^{B}} \right| + n\sum\limits_{j \in N} \,\left| {p_{j}^{A} - p_{j}^{B}} \right| + \sum\limits_{j \in N} \,\left| {d_{j}^{A} - d_{j}^{B}} \right| = \rho (A,B). \\ \end{gathered} $

3.3. Метод изменения параметров

Теорема 3. Пусть ${{\pi }^{A}}$ и ${{\pi }^{B}}$ – оптимальные расписания для примеров $A$ и $B$, тогда

(3.6)
$\sum\limits_{j \in N} \,T_{j}^{A}({{\pi }^{B}}) - \sum\limits_{j \in N} \,T_{j}^{A}({{\pi }^{A}}) \leqslant 2\rho (A,B).$

Доказательство. Используя лемму 4, получаем

$\begin{gathered} \sum\limits_{j \in N} \,T_{j}^{A}({{\pi }^{B}}) - \sum\limits_{j \in N} \,T_{j}^{A}({{\pi }^{A}}) = \left[ {\sum\limits_{j \in N} \,T_{j}^{A}({{\pi }^{B}}) - \sum\limits_{j \in N} \,T_{j}^{B}({{\pi }^{B}})} \right] + \left[ {\sum\limits_{j \in N} \,T_{j}^{B}({{\pi }^{B}}) - \sum\limits_{j \in N} \,T_{j}^{B}({{\pi }^{A}})} \right] + \\ \, + \left[ {\sum\limits_{j \in N} \,T_{j}^{B}({{\pi }^{A}}) - \sum\limits_{j \in N} \,T_{j}^{A}({{\pi }^{A}})} \right] \leqslant 2\rho (A,B). \\ \end{gathered} $

Доказанная теорема позволяет использовать новый метод решения задачи $1\left| {{{r}_{j}}} \right|\sum {{{T}_{j}}} $, названный методом изменения параметров. Метод состоит в том, чтобы использовать оптимальное расписание некоторого полиноминально или псевдополиноминально решаемого примера $B$ в качестве расписания для исходного примера $A$. Теорема 3 позволяет оценить сверху абсолютную погрешность значения целевой функции такого решения с помощью функции $\rho (A,B)$. Естественно конструировать пример $B$ так, чтобы минимизировать функцию $\rho (A,B)$. Таким образом, задача $1\left| {{{r}_{j}}} \right|\sum {{{T}_{j}}} $ заменяется задачей на минимизацию функции метрики.

Рассмотрим случай, когда искомый пример $B$ должен принадлежать некоторому полиномиально или псевдополиномиально разрешимому классу примеров, задаваемому системой неравенств

(3.7)
$\mathcal{A} \cdot {{R}^{B}} + \mathcal{B} \cdot {{P}^{B}} + \mathcal{C} \cdot {{D}^{B}} \leqslant H,$
где ${{R}^{B}} = {{(r_{1}^{B}, \ldots ,r_{n}^{B})}^{{\text{T}}}},$ ${{P}^{B}} = {{(p_{1}^{B}, \ldots ,p_{n}^{B})}^{{\text{T}}}},$ ${{D}^{B}} = {{(d_{1}^{B}, \ldots ,d_{n}^{B})}^{{\text{T}}}},$ $p_{j}^{B} \geqslant 0,$ $r_{j}^{B} \geqslant 0,$ $j \in N,$ $^{{\text{T}}}$ – символ транспонирования,$\mathcal{A},\;\mathcal{B},\;\mathcal{C}$ – матрицы $m \times n$, $H$ – столбец из $m$ элементов.

В этом случае задача минимизации функции метрики может быть поставлена как задача линейного программирования:

$minn({{y}^{r}} - {{x}^{r}}) + n\sum\limits_{j \in N} \,(y_{j}^{p} - x_{j}^{p}) + \sum\limits_{j \in N} \,(y_{j}^{d} - x_{j}^{d}),$
при условиях

$\begin{array}{*{20}{l}} {{{x}^{r}} \leqslant r_{j}^{A} - r_{j}^{B} \leqslant {{y}^{r}},} \\ {x_{j}^{p} \leqslant p_{j}^{A} - p_{j}^{B} \leqslant y_{j}^{p},} \\ {x_{j}^{d} \leqslant d_{j}^{A} - d_{j}^{B} \leqslant {{y}^{d}},} \\ {r_{j}^{B} \geqslant 0,\quad p_{j}^{B} \geqslant 0,\quad j \in N,} \\ {\mathcal{A} \cdot {{R}^{B}} + \mathcal{B} \cdot {{P}^{B}} + \mathcal{C}{{D}^{B}} \leqslant H.} \end{array}$

Неизвестными в данной задаче являются $7n + 2$ переменных:

$r_{j}^{B},p_{j}^{B},d_{j}^{B},x_{j}^{p},y_{j}^{p},x_{j}^{d},y_{j}^{d},{{x}^{r}},{{y}^{r}},j \in N.$

Тем не менее сепарабельность функции $\rho (A,B)$ во многих случаях позволяет находить ее минимум гораздо проще, без использования методов линейного программирования. Необходимо заметить, что для всех известных полиномиальных и псевдополиномиальных разрешимых случаев задачи выполняется система линейных неравенств типа (3.7).

3.4. Применение метода изменения параметров для других задач теории расписаний

Описанный метод не является жестко привязанным к виду целевой функции, что позволяет использовать его для решения других задач теории расписаний. Теорему 3 можно обобщить на случай общего вида целевой функции $F(\pi )$.

Теорема 4. Пусть $F(\pi )$некоторая регулярная целевая функция, а $\rho (A,B)$ – функция метрики для любых $A,\;B,\;\pi $, удовлетворяющая неравенству

(3.8)
${\text{|}}{{F}^{A}}(\pi ) - {{F}^{B}}(\pi ){\text{|}} \leqslant \rho (A,B).$
Пусть далее ${{\pi }^{A}}$ и ${{\pi }^{B}}$ – оптимальные расписания для примеров $A$ и $B$, тогда

${{F}^{A}}({{\pi }^{B}}) - {{F}^{A}}({{\pi }^{A}}) \leqslant 2\rho (A,B).$

Доказательство. Доказательство теоремы 4 повторяет доказательство теоремы (3.3) с заменой $\sum\nolimits_{j \in N} {{{T}_{j}}} $ на $F$.

Таким образом, для применения метода изменения параметров достаточно построить функцию $\rho (A,B)$, удовлетворяющую неравенству (3.8). Такие функции были построены ранее для задач $1\,{\text{|}}{\kern 1pt} {\text{|}}\,\sum {{{T}_{j}}} $ [14] и $1\left| {{{r}_{j}}} \right|{{L}_{{{\text{max}}}}}$ (см. [22]). Здесь мы приведем вариант построения таких функций для общих случаев аддитивной и “минимаксной” целевой функции.

Лемма 6 (см. [13]). В случае аддитивной целевой функции вида

$F(\pi ) = \sum\limits_{j \in N} \,{{\phi }_{j}}(\pi ,{{r}_{1}}, \ldots ,{{r}_{n}},{{p}_{1}}, \ldots ,{{p}_{n}},{{d}_{j}})$
функция
(3.9)
$\rho (A,B) = \sum\limits_{j \in N} \,\sum\limits_{i \in N} \,({{R}_{{ji}}}{\text{|}}r_{j}^{A} - r_{j}^{B}{\text{|}}\; + \;{{P}_{{ji}}}{\text{|}}p_{j}^{A} - p_{j}^{B}{\text{|}}) + \sum\limits_{j \in N} \,{{D}_{j}}{\text{|}}d_{j}^{A} - d_{j}^{B}{\text{|}}$
удовлетворяет неравенству (3.8). Здесь ${{R}_{{ji}}},{{P}_{{ji}}}$константы Липшица для функции ${{\phi }_{i}}$ по переменным ${{r}_{j}}$ и ${{p}_{j}}$, ${{D}_{j}}$ – константа Липшица для функции ${{\phi }_{j}}$ по переменной ${{d}_{j}},i,j \in N$.

Лемма 7 (см. [13]). В случае “минимаксной” целевой функции вида

$F(\pi ) = \mathop {max}\limits_{j \in N} {{\phi }_{j}}(\pi ,{{r}_{1}}, \ldots ,{{r}_{n}},{{p}_{1}}, \ldots ,{{p}_{n}},{{d}_{j}})$
функция
(3.10)
$\rho (A,B) = \sum\limits_{j \in N} \,({{R}_{j}}{\text{|}}r_{j}^{A} - r_{j}^{B}{\text{|}}\; + {{P}_{j}}{\text{|}}p_{j}^{A} - p_{j}^{B}{\text{|}}) + D\mathop {max}\limits_{j \in N} {\text{|}}d_{j}^{A} - d_{j}^{B}{\text{|}}$
удовлетворяет неравенству (3.8). Здесь ${{R}_{j}},\;{{P}_{j}}$ наибольшие константы Липшица из констант для функций ${{\phi }_{i}}$ по переменным ${{r}_{j}}$ и ${{p}_{j}}$, $D$ – наибольшая из констант Липшица для функций ${{\phi }_{j}}$ по переменным ${{d}_{j}},i,j \in N$.

Заметим, что функции (3.9) и (3.10) сепарабельны, что значительно облегчает нахождение их минимумов.

3.5. Численные эксперименты

Для определения эффективности предложенной схемы была проведена серия численных экспериментов. Классы, в которых проводился поиск полиномиально разрешимых примеров, представлены в табл. 1.

Таблица 1.  

Классы примеров, использованные в численных экспериментах

Класс примеров Метрика между примером $B$ класса
и произвольным примером $A$
$\{ \mathcal{P}\mathcal{R}:{{p}_{j}} = p,{{r}_{j}} = r,j \in N\} $ $\rho (A,B) = n\sum\limits_{j = 1}^n \left| {p_{j}^{A} - p} \right| + n\mathop {max}\limits_{j \in N} \left| {r_{j}^{A} - r} \right|$
$\{ \mathcal{P}\mathcal{D}:{{p}_{j}} = p,{{d}_{j}} = d,j \in N\} $ $\rho (A,B) = n\sum\limits_{j \in N} \left| {p_{j}^{A} - p} \right| + \sum\limits_{j \in N} \left| {d_{j}^{A} - d} \right|$
$\{ \mathcal{R}\mathcal{D}:{{r}_{j}} = r,{{d}_{j}} = d,j \in N\} $ $\rho (A,B) = n\mathop {max}\limits_{j \in N} \left| {r_{j}^{A} - r} \right| + \sum\limits_{j \in N} \left| {d_{j}^{A} - d} \right|$
$\{ \mathcal{P}:{{p}_{j}} = p,j \in N\} $ $\rho (A,B) = n\sum\limits_{j \in N} \left| {p_{j}^{A} - p} \right|$
$\{ \mathcal{R}0:{{r}_{j}} = 0,j \in N\} $ $\rho (A,B) = n\mathop {max}\limits_{j \in N} \left| {r_{j}^{A} - r} \right|$

В первых трех классах решением является расписание, упорядоченное по неубыванию свободного параметра. Алгоритмы решения задач последних двух классов представлены в [21] и [23] и имеют сложности $O({{n}^{7}})$ и $O\left( {{{n}^{4}}\sum {{{p}_{j}}} } \right)$ операций соответственно.

Для нахождения в указанных классах полиномиально разрешимого примера $B$, ближайшего к заданному примеру, необходимо найти минимум функций:

(3.11)
$f(r) = n\mathop {max}\limits_{j \in N} {\text{|}}r_{j}^{A} - r{\kern 1pt} {\text{|}},$
(3.12)
$g(p) = n\sum\limits_{j = 1}^n \,{\text{|}}p_{j}^{A} - p{\kern 1pt} {\text{|}},$
(3.13)
$h(d) = \sum\limits_{j \in N} \,{\text{|}}d_{j}^{A} - d{\kern 1pt} {\text{|}}.$

Лемма 8. 1. Минимум функции (3.11) достигается в точке $r = (r_{{{\text{max}}}}^{A} + r_{{{\text{min}}}}^{A}){\text{/}}2$, где $r_{{{\text{max}}}}^{A} = \mathop {max}\limits_{j \in N} r_{j}^{A}$, $r_{{{\text{min}}}}^{A} = \mathop {min}\limits_{j \in N} r_{j}^{A}$.

2. Минимум функции (3.12) достигается в некоторой точке $p \in \{ p_{1}^{A}, \ldots ,p_{n}^{A}\} $.

3. Минимум функции (3.13) достигается в некоторой точке $d \in \{ d_{1}^{A}, \ldots ,d_{n}^{A}\} $.

Доказательство. Функция $f(r)$ представима в виде

$n\mathop {max}\limits_{j \in N} {\text{|}}r_{j}^{A} - r{\text{|}} = nmax\{ r - r_{{\min }}^{A},r_{{\max }}^{A} - r\} = n\left( {\frac{{r_{{{\text{max}}}}^{A} - r_{{{\text{min}}}}^{A}}}{2} + \left| {r - \frac{{r_{{{\text{max}}}}^{A} + r_{{{\text{min}}}}^{A}}}{2}} \right|} \right)$
и, очевидно, имеет минимум в точке $\tfrac{{r_{{{\text{max}}}}^{A} + r_{{{\text{min}}}}^{A}}}{2}$.

Пусть функция $g(p)$ имеет минимум в точке ${{p}_{0}}$, тогда либо $f{\kern 1pt} '({{p}_{0}}) = 0$, либо ${{p}_{0}} \in \{ p_{1}^{A}, \ldots ,p_{n}^{A}\} $. Поскольку $g(p)$ – кусочно-линейная функция, обращение ее производной в нуль означает, что функция является константой на некотором интервале $[p_{k}^{A},p_{{k + 1}}^{A}],$ $k = 1,2, \ldots ,n - 1$, а значит, граничные точки $p_{k}^{A}$ и $p_{{k + 1}}^{A}$ также являются точками минимума.

Последнее утверждение леммы о минимуме функции $h(d)$ доказывается аналогично.

Было проведено несколько серий экспериментов. Во всех сериях использовались примеры с параметрами, распределенными равномерно на интервалах $[1,100]$ для $p_{j}^{A}$, $\left[ {{{p}_{j}},\sum\nolimits_{j \in N} {{{p}_{j}}} } \right]$ для $d_{j}^{A}$ и $[0,{{d}_{j}} - {{p}_{j}}]$ для $r_{j}^{A},j \in N$. В первой серии экспериментов оценивалась величина различия между правой и левой частями неравенства (3.5). Данная величина позволяет оценить погрешность метода. Для каждого $n = 10,20, \ldots ,100$ генерировалось 10 000 пар примеров. Использованные в экспериментах расписания генерировались случайным образом. Для каждой пары вычислялась величина $\tfrac{{\left| {\sum\nolimits_{j \in N}^{} {T_{j}^{A}} - \sum\nolimits_{j \in N}^{} {T_{j}^{B}} } \right|}}{{\rho (A,B)}}$. Также для определения параметров, имеющих наибольшее влияние на функцию метрики, вычислялись процентные величины вкладов частей метрики, зависящих от продолжительностей обслуживания, директивных сроков и моментов поступления.

Результаты представлены в табл. 2. Среднее значение $\tfrac{{\left| {\sum\nolimits_{j \in N}^{} {T_{j}^{A}} - \sum\nolimits_{j \in N}^{} {T_{j}^{B}} } \right|}}{{\rho (A,B)}}$ меняется от $5$ до $10\% $ при росте $n$, а части функции метрики, зависящие от продолжительностей обслуживания, директивных сроков и моментов поступления дают вклады приблизительно $35,$ $20$ и $25\% $ в общую величину функции соответственно.

Таблица 2.  

Средняя разница между целевыми функциями и доли составных частей метрики

$n$ $\tfrac{{\left| {\sum {T_{j}^{A} - T_{j}^{B}} } \right|}}{\rho }$ $\tfrac{{{{\rho }_{r}}}}{\rho }$ $\tfrac{{{{\rho }_{p}}}}{\rho }$ $\tfrac{{{{\rho }_{d}}}}{\rho }$
10 11.7% 35.6% 42.3% 20.6%
20 10.4% 39.7% 39.4% 19.4%
40 8.9% 42.4% 37.4% 18.6%
60 7.8% 43.6% 36.6% 18.3%
80 7.3% 44.4% 34.4% 18%
100 6.7% 44.9% 35.7% 17.9%

Вторая серия экспериментов проводилась для проверки метода изменения параметров по следующей схеме. Рассматривались значения $n = 4,5, \ldots ,10$, для каждого $n$ генерировались по 10 000 примеров. К каждому примеру применялась вышеописанная схема для нахождения приближенного решения со значением целевой функции ${{F}_{e}}$, затем с помощью алгоритма ветвей и границ искалось точное решение с оптимальным значением целевой функции $F{\kern 1pt} *$. Далее вычислялось $\Delta $ – отношение реальной погрешности схемы $\delta = {{F}_{e}} - F{\kern 1pt} *$ к ее верхней оценке, определяемой неравенством (3.6):

$\Delta = \frac{{{{F}_{e}} - F{\kern 1pt} *}}{{2\rho (A,B)}}.$

Было обнаружено, что если поиск полиномиально разрешимого примера ведется в классе $RD$, то средняя погрешность решения растет от $20$ до $30\% $ от верхней оценки (3.6) при увеличении $n$. Это показывает, что расписание по возрастанию продолжительностей обслуживание плохо применимо для примеров с выбранным распределением параметров. Для остальных классов средняя погрешность решения не зависит от $n$ и составляет несколько процентов от максимальной теоретической. Столь малая погрешность обусловлена тем, что примерно в $20\% $ случаев метод изменения параметров давал точное решение задачи. Зависимость средней ошибки $\Delta $ от $n$ представлена в табл. 3 (см. [13]).

Таблица 3.  

Средняя экспериментальная погрешность в процентах от теоретической

$n$ $\mathcal{P}\mathcal{R}$ $\mathcal{P}\mathcal{D}$ $\mathcal{R}\mathcal{D}$ $\mathcal{P}$ $\mathcal{R}0$
4 2.5% 4.6% 20.8% 1.8% 2.9%
5 2.6% 4.8% 23.1% 1.9% 2.8%
6 2.6% 4.6% 24.6% 1.9% 2.7%
7 2.6% 4.7% 26% 1.9% 2.5%
8 2.5% 4.6% 27% 2% 2.3%
9 2.4% 4.7% 27.9% 2% 2.2%
10 2.4% 4.6% 28.6% 1.9% 2.1%

Список литературы

  1. Brucker P., Knust S. Complex scheduling. Berlin Heidelberg: Springer-Verlag, 2011.

  2. Wagner H.M. An integer linear–programming model for machine scheduling // Naval Res. Logist. Quart. 1959. V. 6. № 2. P. 131–140.

  3. Rothkopf M.H. Scheduling independent tasks on parallel processors // Management Sci. 1966. V. 12. № 5. P. 437–447.

  4. Ignall E., Schrage L. Application of the branch and bound technique to some flow-shop scheduling problems // Operat. Res. 1965. V. 13. № 3. P. 400–412.

  5. Lemtyuzhnikova D., Leonov V. Large-scale problems with quasi-block matrices // J. of Comp. and Syst. Sci. Int. 2019. V. 58. № 4. P. 571–578.

  6. Werner F. A Survey of Genetic Algorithms for Shop Scheduling Problems // P. Siarry: Heuristics: Theory and Applications, Nova Sci. Publ., 2013. P. 161–222.

  7. Zuo L., Shu L., Dong S., Zhu C., Hara T. A multi-objective optimization scheduling method based on the ant colony algorithm in cloud computing // IEEE Access. 2015. V. 3. P. 2687–2699.

  8. Pan Q. An effective co-evolutionary artificial bee colony algorithm for steelmaking-continuous casting scheduling // Europ. J. Operat. Res. 2016. V. 250. № 3. 702–714.

  9. Sels V., Coelho J., Dias A., Vanhoucke M. Hybrid tabu search and a truncated branch-and-bound for the unrelated parallel machine scheduling problem // Comput. Operat. Res. 2015. V. 53. P. 107–117.

  10. Lazarev A. Estimation of absolute error in scheduling problems of minimizing the maximum lateness // Dokl. Math. 2007. V. 76. P. 572–574.

  11. Лазарев А.А. Теория расписаний: методы и алгоритмы. М.: ИПУ РАН, 2019. 408 с.

  12. Лазарев А.А., Архипов Д.И. Оценка абсолютной погрешности и полиномиальной разрешимости для классической NP-трудной задачи теории расписаний // Докл. АН. 2018. Т. 480. № 5. С. 523–527.

  13. Лазарев А.А., Коренев П.С., Сологуб А.А. Метрика для задачи минимизации суммарного запаздывания // Управление большими системами. 2015. Вып. 57. С. 123–137.

  14. Лазарев А.А., Кварацхелия А.Г. Метрики в задачах теории расписаний // Докл. АН. 2010. Т. 432. № 6. С. 746–749.

  15. Du J., Leung J.Y.-T. Minimizing total tardiness on one processor is $NP$-hard // Math. Operat. Res. 1990. V. 15. P. 483–495.

  16. Lawler E.L. A pseudopolynomial algorithm for sequencing jobs to minimize total tardiness // Ann. Discrete Math. 1977. V. 1. P. 331–342.

  17. Graham R.L., Lawler E.L., Lenstra J.K., Rinnooy Kan A.H.G. Optimization and approximation in deterministic sequencing and scheduling: a survey // Ann. Discrete Math. 1979. V. 5. P. 287–326.

  18. Lawler E.L. A fully polynomial approximation scheme for the total tardiness problem // Operat. Res. Lett. 1982. V. 1. № 6. P. 207–208.

  19. Kovalyov M.Y. Improving the complexities of approximation algorithms for optimization problems // Operat. Res. Lett. 1995. V. 17. P. 85–87.

  20. Lazarev A.A., Werner F. Algorithms for special single machine total tardiness problem and an application to the even-odd partition problem // Math. and Comp. Model. 2009. № 49. P. 2078–2089.

  21. Baptiste Ph. Scheduling equal-length jobs on identical parallel machines // Discret. Appl. Math. 2000. № 103. P. 21–32.

  22. Лазарев А.А., Садыков Р.Р., Севастьянов С.В. Схема приближенного решения проблемы $1\,{\text{|}}\,{{r}_{j}}\,{\text{|}}\,{{L}_{{max}}}$// Дискретный анализ и исслед. операций. 2006. Cер. 2. Т. 13. № 1. С. 57–76.

  23. Лазарев А.А., Гафаров Е.Р. Теория расписаний. Минимизация суммарного запаздывания для одного прибора // М.: Научное издание. ВЦ им. А.А. Дородницына РАН, 2006. 134 с.

Дополнительные материалы отсутствуют.