Известия РАН. Теория и системы управления, 2019, № 4, стр. 132-143

АЛГОРИТМ МЕТОДА ОБОБЩЕННЫХ ПОТЕНЦИАЛОВ ДЛЯ ЗАДАЧИ ОПТИМАЛЬНОГО ЛИНЕЙНОГО СИНТЕЗА КОММУНИКАЦИОННОЙ СЕТИ

О. О. Болдина a, О. А. Косоруков a*, Е. В. Лаврушина a, Н. В. Пономарева a

a МГУ, ФГБО Российский экономический ун-т им. Г.В. Плеханова
Москва, Россия

* E-mail: kosorukovoa@mail.ru

Поступила в редакцию 20.01.2019
После доработки 22.02.2019
Принята к публикации 25.03.2019

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

Аннотация

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

Введение. Классический метод потенциалов для стандартной транспортной задачи (СТЗ) хорошо известен. По своей сути он является модификацией симплекс-метода для специального класса задач линейного программирования. Метод позволяет осуществить движение за конечное число итераций от некоторого допустимого базисного решения к оптимальному базисному решению [1]. Известен модифицированный метод потенциалов для задачи с ограничениями на пропускные способности коммуникаций [2]. Известны также обобщения метода потенциалов для решения многоиндексной транспортной задачи [3, 4]. В научных работах представлен вариант метода потенциалов для задачи о перевозках, т.е. задачи с произвольной сетевой структурой [5]. Однако все вышеперечисленные модификации алгоритма относятся к задачам анализа заданной коммуникационной сети. В данной статье приведен модифицированный метод потенциалов для детерминированной задачи линейного синтеза коммуникационной сети для задачи о спросе и предложении. А именно описана задача, когда одновременно с формированием оптимального плана перевозки решается задача нахождения оптимального распределения однородного сепарабельного ресурса, которое определяет значения функций производственных мощностей пунктов производства и функций пропускных способностей коммуникаций, тем самым решая задачу оптимального синтеза сети.

Рассматривается задача синтеза сети для модели Гейла о спросе и предложении [6]. Пусть задан ориентированный граф с индексами вершин из множества P = {i = 1, …, η} и дугами  j из множества Γ. Введем следующие обозначения: D(i) – множество индексов дуг, входящих в вершину i коммуникационной сети, а C(i) – соответственно исходящих. Имеем также некоторую совокупность из n вершин с индексами вершин из множества A = {i = 1, …, n} (подмножество множества Р), которые будем называть источниками (или пунктами производства). Будем считать выполненным свойство iAD(i) = ∅, т.е. из вершин-источников дуги только выходят. Рассмотрим также некоторое множество из m вершин с индексами вершин из множества C = {i = η – m + + 1, …, η}, которые назовем стоками (или пунктами потребления) и для которых предполагаем свойство iCC(i) = ∅, т.е. в вершины-стоки дуги только входят. Пусть оставшиеся вершины в количестве (η – nm) образуют множество вершин с индексами вершин из множества B = {i = = n + 1, …, η – m}, которые мы будем называть промежуточными вершинами. Пусть каждой вершине iA поставлена в соответствие некоторая неотрицательная функция производственной мощности ϕi(x) ≥ 0, xX, где X – множество допустимых распределений ресурсов. Кроме того, известны неотрицательные функции φj(x) ≥ 0, задающие пропускные способности дуг сети в зависимости от выбранного распределения ресурсов [7]. Таким образом, ресурсы распределяются как между вершинами-источниками, так и между дугами сети, определяя тем самым мощности источников и пропускные способности коммуникаций. Для вершин-стоков известны величины потребностей в продукте – dj.

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

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

1. Математическая постановка задачи. Рассмотрим в качестве функций пропускных способностей дуг φj(x) = bj + ajxj линейные функции. Заметим, что рассматривается сепарабельный ресурс, поэтому функции пропускных способностей дуг зависят только от вложения ресурса в данную дугу, т.е. от одной переменной xj, таким образом имеем φj(xj). Задача в этом случае имеет следующий вид:

$\mathop {\min }\limits_{x,y} \left( {\sum\limits_{j \in \Gamma }^{} {{{x}_{j}}} } \right),$
$\sum\limits_{j \in C(i)}^{} {{{y}_{j}} - \sum\limits_{j \in D(i)}^{} {{{y}_{j}} = 0,\quad i \in A \cup B,} } $
(1.1)
$\sum\limits_{j \in D(i)}^{} {{{y}_{j}} - \sum\limits_{j \in C(i)}^{} {{{y}_{j}} = {{d}_{i}},\quad i \in C,} } $
${{y}_{j}} - {{a}_{j}}{{x}_{j}} \leqslant {{b}_{j}},\quad j \in \Gamma ,$
${{x}_{j}} \geqslant 0,\quad {{y}_{j}} \geqslant 0,\quad j \in \Gamma .$

Предполагаем, что aj > 0, bj ≥ 0, j ∈ Γ. Отметим, что первоначально рассматривается случай, когда aj > 0. Общий случай, когда aj ≥ 0, представлен далее, где вектор y есть план перевозки продукта, а dj, как и выше, – величины потребностей в продукте в вершинах-стоках. Дадим краткий комментарий ограничениям задачи (1.1). Вершины из множества B являются транзитными, вершины из множества A также являются транзитными после добавления фиктивного источника. Для транзитных вершин коммуникационной сети справедливо требование о равенстве входящего и исходящего потоков, откуда справедлива первая группа ограничений:

$\sum\limits_{j \in C(i)}^{} {{{y}_{j}} - \sum\limits_{j \in D(i)}^{} {{{y}_{j}} = 0,\quad i \in A \cup B.} } $

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

$\sum\limits_{j \in D(i)}^{} {{{y}_{j}} - \sum\limits_{j \in C(i)}^{} {{{y}_{j}} = {{d}_{i}},\quad i \in C.} } $

Величина потока по любой из дуг не превосходит пропускной способности дуги, откуда справедлива третья группа ограничений: yjajxjbj,  j ∈ Γ.

Задача (1.1) является задачей линейного программирования. Запишем двойственную к ней задачу (1.2):

(1.2)
$\mathop {\max }\limits_{\lambda ,\mu } \left( {\sum\limits_{i \in C}^{} {{{\lambda }_{i}}{{d}_{i}} - \sum\limits_{j \in \Gamma }^{} {{{\mu }_{j}}{{b}_{j}}} } } \right),$
$1 - {{\mu }_{j}}{{a}_{j}} \geqslant 0,\quad j \in \Gamma ,$
${{\lambda }_{{{{n}_{1}}(j)}}} - {{\lambda }_{{{{n}_{2}}(j)}}} + {{\mu }_{j}}{{a}_{j}} \geqslant 0,\quad j \in \Gamma ,$
${{\mu }_{j}} \geqslant 0,\quad j \in \Gamma ,$
где λ и μ – двойственные переменные, n1(j) – индекс вершины-начала для дуги j, а n2(j) – индекс вершины-окончания соответственно. Как и в известных модификациях метода потенциалов для задач транспортного типа, под “потенциалами” понимаем значения двойственных переменных λi. Применительно к задачам (1.1) и (1.2) справедлива следующая теорема, основанная на применении известной теоремы теории двойственности линейного программирования [2].

Теорема 1. Для оптимальности вектора (x, y) задачи (1.1) необходимо и достаточно существование вектора (λ, μ), удовлетворяющего ограничениям задачи (1.2) и связанного с вектором (x, y) следующими соотношениями (условия дополняющей нежесткости):

(1.3)

Суть приведенного ниже алгоритма состоит в последовательном просмотре опорных планов задачи (1.1), значения целевой функции для которых монотонно не возрастают. За конечное число шагов находится опорный план задачи (1.1), для которого существует вектор (λ, μ), удовлетворяющий ограничениям задачи (1.2) и соотношениям (1.3). Откуда в силу вышеприведенной теоремы 1 и следует оптимальность найденного решения.

2. Описание алгоритма (aj > 0). Перейдем к изложению алгоритма.

Определение 1. Будем называть дугу j θ-дугой, если yj = bj > 0, xj = 0.

Определение 2. Будем называть дугу j 0-дугой, если yj = 0.

Ограничения задачи (1.1) можно свести к эквивалентной системе равенств, записав ограничения на пропускные способности дуг в виде yjajxj + zj = bj и добавив ограничение zj ≥ 0, j ∈ Γ. Тогда справедливо следующее утверждение.

Утверждение 1. Вектор (x, y, z) является опорным планом задачи (1.1) тогда и только тогда, когда после удаления всех θ-дуг в графе не остается циклов из дуг с ненулевыми потоками.

Доказательство. Известно, что вектор (x, y, z) – опорный план задачи тогда и только тогда, когда столбцы, соответствующие его ненулевым компонентам, образуют линейно независимую систему векторов. Структура матрицы ограничений задачи (1.1) показана на рис. 1. Обозначим матрицу инцидентности графа как IN.

Рис. 1.

Структура матрицы ограничений задачи (1.1)

Дуга j является θ-дугой тогда и только тогда, когда zj = 0, xj = 0. Следовательно, столбцы, соответствующие этим переменным, не входят в рассматриваемую систему. Тогда нетрудно заметить, что в любую нулевую комбинацию векторов (представление нулевого вектора) столбец, соответствующий переменной yj, входит с нулевым коэффициентом.

Из структуры матрицы ограничений нетрудно видеть, что столбцы системы являются линейно независимыми тогда и только тогда, когда столбцы матрицы инцидентности дуг системы, не являющиеся θ-дугами, линейно независимы. Согласно теории графов, это равносильно тому, что эти дуги образуют лес. Это в свою очередь равносильно тому, что эти дуги не образуют циклов. Доказательство завершено.

Определение 3. Дуга j, принадлежащая некоторому связующему поддереву, называется правильно ориентированной, если начало дуги n1(j) принадлежит пути, соединяющему конец дуги n2(j) с корнем дерева.

Пусть имеется некоторое связующее поддерево с множеством дуг ΓТ, которое в дальнейшем будем называть текущим поддеревом. Пусть также имеется некоторое допустимое решение (x, y) задачи (1.1), такое, что:

1) дуги, не принадлежащие множеству ΓТ, являются либо 0-дугами, либо θ-дугами;

2) все 0-дуги, принадлежащие множеству ΓТ, правильно ориентированы.

Тогда из утверждения 1 следует, что (x, y) – опорный план задачи (1.1). Будем придерживаться следующих правил вычисления переменных μ для произвольного связующего поддерева. Положим μj = 0, если j ∈ ΓT и j является встречной θ-дугой. Для остальных j положим μj = 0, если yj < bj и μj = 1/aj, если yjbj.

Для любых двух вершин I1 и I2 в текущем поддереве ΓТ существует и единственный путь из I1 в I2, который будем обозначать (I1, I2). Алгебраическую сумму переменных μj вдоль пути, соединяющего вершины I1 и I2, т.е. со знаком плюс, если дуга имеет направление, совпадающее с направлением пути, и со знаком минус в противном случае, будем условно обозначать ($\mathop {{{I}_{1}},{{I}_{2}}}\limits^ \to $).

Будем придерживаться следующих правил вычисления потенциалов λ для произвольного связующего поддерева. Положим λ0 = 0, λi = ($\mathop {0,i}\limits^ \to $), iABC. Будем далее проверять выполнение следующих неравенств:

(2.1)
${{\lambda }_{{{{n}_{1}}(j)}}} - {{\lambda }_{{{{n}_{2}}(j)}}} + {{\mu }_{j}} \geqslant 0,\quad j \in \Gamma ,$
(2.2)
${{\lambda }_{{{{n}_{1}}(j)}}} - {{\lambda }_{{{{n}_{2}}(j)}}} \geqslant 0,\quad j \in \Gamma ,\quad {{y}_{j}} > 0.$

Нетрудно проверить, что условия (2.1) и (2.2) выполнены для всех  j из множества ΓТ.

Рассмотрим сначала случай, когда нарушается некоторое неравенство j0 из условий (2.1). Множество общих вершин путей (0, n1(j0)) и (0, n2(j0)) не пусто. Последнюю их общую вершину, если двигаться от корня дерева, обозначим I0. Тогда пути (I0, n1(j0)) и (n2(j0), I0) вместе с дугой j0 образуют цикл. Это и есть тот единственный цикл, который образуется при присоединении дуги j0 к текущему поддереву ΓТ (рис. 2).

Рис. 2.

Структура цикла, возникающая при присоединении дуги j0

Определим некоторые величины Е и Y для цикла с множеством дуг Н. Как будет обосновано далее, величина E показывает выгодность изменения потока вдоль цикла, а Y – предельно возможную величину этого изменения. За положительное направление обхода цикла примем направление дуги  j0.

Введем дополнительные переменные Δμj и Δyj  для дуг цикла H, а именно если направление дуги  j совпадает с направлением обхода, то положим

(2.3)
$\Delta {{\mu }_{j}} = {{\mu }_{j}},\quad \Delta {{y}_{j}} = {{b}_{j}} - {{y}_{j}}.$

Если же направление дуги  j противоположно направлению обхода, то

(2.4)
$\begin{gathered} \Delta {{\mu }_{j}} = - {{\mu }_{j}},\quad \Delta {{y}_{j}} = {{y}_{j}} - {{b}_{j}},\quad {\text{е с л и }}\quad {{y}_{j}} > {{b}_{j}}, \\ \Delta {{\mu }_{j}} = 0,\quad \Delta {{y}_{j}} = {{y}_{j}},\quad {\text{е с л и }}\quad 0 < {{y}_{j}} \leqslant {{b}_{j}}. \\ \end{gathered} $

Если  j есть встречная 0-дуга, то, положив Е = 0 и Y = 0, будем считать их вычисленными. Иначе присвоим им значения:

(2.5)
$E = \sum\limits_{j \in H}^{} {\Delta {{\mu }_{j}},\quad Y = \mathop {\min }\limits_{j \in H:\Delta {{y}_{j}} > 0} } \Delta {{y}_{j}}.$

Утверждение 2. Если E ≥ 0, то ∃j: j ∈ (n2(j0), I0), такой, что дуга j является θ-дугой или 0-дугой.

Доказательство. Допустим противное. Поскольку на участке цикла (I0, n1(j0)) нет встречных 0-дуг, то из сделанного допущения следует, что Е есть алгебраическая сумма переменных μj вдоль всего цикла. Тогда

${{\lambda }_{{{{n}_{2}}(j)}}} - {{\lambda }_{{{{n}_{1}}(j)}}} = (\overrightarrow {0,{{n}_{2}}({{j}_{0}})} ) - (\overrightarrow {0,{{n}_{1}}({{j}_{0}})} ) = (\overrightarrow {{{I}_{0}},{{n}_{2}}({{j}_{0}})} ) - (\overrightarrow {{{I}_{0}},{{n}_{1}}({{j}_{0}})} ) > \frac{1}{{{{a}_{{{{j}_{0}}}}}}},$
$E = (\overrightarrow {{{I}_{0}},{{n}_{1}}({{j}_{0}})} ) + {{\mu }_{{{{j}_{0}}}}} - (\overrightarrow {{{I}_{0}},{{n}_{2}}({{j}_{0}})} ) \leqslant \frac{1}{{{{a}_{{{{j}_{0}}}}}}} + (\overrightarrow {{{I}_{0}},{{n}_{1}}({{j}_{0}})} ) - (\overrightarrow {{{I}_{0}},{{n}_{2}}({{j}_{0}})} ) < 0.$

Из полученного противоречия следует неверность сделанного предположения, что и завершает доказательство утверждения.

Рассмотрим случай, когда E ≥ 0. В этом случае множество θ-дуг и 0-дуг пути (n2(j0), I0) не пусто. Выберем первую из них.

Удалив ее из поддерева ΓТ и добавив дугу j0, получим новое связующее поддерево $\Gamma _{T}^{*}$, которое для имеющегося опорного плана (x, y) удовлетворяет условиям 1) и 2). Дерево $\Gamma _{T}^{*}$ будем считать новым текущим поддеревом. Если для него вычислить вектор ($\tilde {\lambda }$, $\tilde {\mu }$) по вышеизложенным правилам, то можно доказать следующее утверждение.

Утверждение 3. Пусть переменные (λ, μ) вычислены по вышеизложенным правилам для связующего поддерева ΓТ, а ($\tilde {\lambda }$, $\tilde {\mu }$) – для связующего поддерева $\Gamma _{T}^{*}$ соответственно. Тогда

1) ${{\tilde {\lambda }}_{i}}$ = λi, i: n2(j0) ∉(0, i);

2) ${{\tilde {\lambda }}_{i}}$ = λi – Δ, i: n2(j0) ∈ (0, i), где Δ = ${{\lambda }_{{{{n}_{2}}(j)}}}$${{\lambda }_{{{{n}_{1}}(j)}}}$${{\mu }_{{{{j}_{0}}}}}$ > 0.

Доказательство. Пункт 1) утверждения очевиден, поскольку эти вершины i в новом поддереве $\Gamma _{T}^{*}$ имеют тот же путь (0, i), что и в поддереве ΓТ.

Для обоснования п. 2) рассмотрим вершины трех типов – x, y, z (рис. 3).

Рис. 3.

Схема расположения вершин трех типов – x, y, z

Первоначально рассмотрим вершины типа x:

$\begin{gathered} {{{\tilde {\lambda }}}_{x}} = {{\lambda }_{{{{n}_{1}}({{j}_{0}})}}} + {{\mu }_{{{{j}_{0}}}}} + (\overrightarrow {{{n}_{2}}({{j}_{0}}),x} ) \\ = {{\lambda }_{{{{n}_{2}}({{j}_{0}})}}} - {{\lambda }_{{{{n}_{2}}({{j}_{0}})}}} + {{\lambda }_{{{{n}_{1}}({{j}_{0}})}}} + {{\mu }_{{{{j}_{0}}}}} + (\overrightarrow {{{n}_{2}}({{j}_{0}}),x} ) = {{\lambda }_{{{{n}_{2}}({{j}_{0}})}}} + (\overrightarrow {{{n}_{2}}({{j}_{0}}),x} ) - \Delta = {{\lambda }_{x}} - \Delta . \\ \end{gathered} $

Далее обоснуем п. 2) для вершин типа y. Заметим, что путь (n2(j0), y) не содержит 0-дуг и θ-дуг:

$\begin{gathered} {{{\tilde {\lambda }}}_{y}} = {{\lambda }_{{{{n}_{1}}({{j}_{0}})}}} + {{\mu }_{{{{j}_{0}}}}} + (\overrightarrow {{{n}_{2}}({{j}_{0}}),y} ) = \\ = {{\lambda }_{{{{n}_{2}}({{j}_{0}})}}} - {{\lambda }_{{{{n}_{2}}({{j}_{0}})}}} + {{\lambda }_{{{{n}_{1}}({{j}_{0}})}}} + {{\mu }_{{{{j}_{0}}}}} + (\overrightarrow {{{n}_{2}}({{j}_{0}}),y} ) = \\ = {{\lambda }_{{{{n}_{2}}({{j}_{0}})}}} + (\overrightarrow {{{n}_{2}}({{j}_{0}}),y} ) - \Delta = {{\lambda }_{y}} + (\overrightarrow {y,{{n}_{2}}({{j}_{0}})} ) + (\overrightarrow {{{n}_{2}}({{j}_{0}}),y} ) - \Delta = {{\lambda }_{y}} - \Delta . \\ \end{gathered} $

Проведем теперь обоснование для вершин типа z. Заметим, что путь (n2(j0), A) не содержит 0-дуг и θ-дуг:

$\begin{gathered} {{{\tilde {\lambda }}}_{z}} = {{\lambda }_{{{{n}_{1}}({{j}_{0}})}}} + {{\mu }_{{{{j}_{0}}}}} + (\overrightarrow {{{n}_{2}}({{j}_{0}}),A} ) + (\overrightarrow {A,z} ) = \\ = {{\lambda }_{{{{n}_{2}}({{j}_{0}})}}} - {{\lambda }_{{{{n}_{2}}({{j}_{0}})}}} + {{\lambda }_{{{{n}_{1}}({{j}_{0}})}}} + {{\mu }_{{{{j}_{0}}}}} + \\ \, + (\overrightarrow {{{n}_{2}}({{j}_{0}}),A} ) + (\overrightarrow {A,z} ) = {{\lambda }_{A}} + (\overrightarrow {A,{{n}_{2}}({{j}_{0}})} ) + (\overrightarrow {{{n}_{2}}({{j}_{0}}),A} ) + (\overrightarrow {A,z} ) = \\ = {{\lambda }_{A}} + (\overrightarrow {A,z} ) - \Delta = {{\lambda }_{z}} - \Delta . \\ \end{gathered} $

Доказательство завершено.

Рассмотрим теперь случай, когда E < 0. Нетрудно видеть, что тогда Y > 0. Покажем, как в этом случае перейти к новому опорному плану задачи (1.1) с меньшим значением целевой функции. Для этого осуществим циклическое изменение потока в направлении дуги  j0 на величину Y, т.е. положим ${{\tilde {y}}_{j}}$ = yj + Y,  jH, если направление дуги  j совпадает с направлением обхода, ${{\tilde {y}}_{j}}$ = yjY, j ∈ H, если направление дуги j не совпадает с направлением обхода и ${{\tilde {y}}_{j}}$ = yj, j ∈ Γ\H. Положим также ${{\tilde {x}}_{j}}$ = xj – ΔμjY, jH и ${{\tilde {x}}_{j}}$ = xj, j ∈ Γ\H. Величины Δμj были определены выше.

Утверждение 4. Вектор ($\tilde {x}$, $\tilde {y}$) есть допустимое решение задачи (1.1).

Доказательство. Очевидно, что циклическое изменение потока не нарушает балансовых ограничений на поток. Поэтому будем проверять выполнимость только следующих трех ограничений: ${{\tilde {y}}_{j}}$ ≥ 0, ${{\tilde {x}}_{j}}$ ≥ 0, ${{\tilde {y}}_{j}}$aj${{\tilde {x}}_{j}}$bj. Сделаем это, учитывая правила вычисления величин Δμj, согласно формулам (2.3) и (2.4), а также формулам, приведенным выше для вычисления вектора ($\tilde {x}$, $\tilde {y}$). Рассмотрим четыре различных случая.

1. Направление дуги j совпадает с направлением обхода и j ∈ (I0, n1(j0)) (рис. 4).

Рис. 4.

Схема цикла для случая 1

1а. При yjbj верны следующие соотношения: ${{\tilde {y}}_{j}}$ = yj + Y ≥ 0, (первое ограничение).

Так как μj = 1/aj, Δμj = μj = 1/aj ≥ 0, то отсюда следует справедливость следующего: ${{\tilde {x}}_{j}}$ = xj + + ΔμjYxj ≥ 0 (второе ограничение) и ${{\tilde {y}}_{j}}$aj${{\tilde {x}}_{j}}$ = yj + Yaj(xj + ΔμjY) = yjajxj + Y(1 – ajΔμj) = yj – – ajxjbj (третье ограничение).

1б. При yj < bj доказательство этого случая полностью совпадает с доказательством случая 2б, приведенным ниже.

2. Направление дуги j совпадает с направлением обхода и j ∈ (I0, n2(j0)) (рис. 5).

Рис. 5.

Схема цикла для случая 2

2а. При yj > bj доказательство этого случая полностью совпадает с доказательством случая 1а, приведенным выше.

2б. При yjbj верны следующие соотношения:

${{\tilde {y}}_{j}}$ = yj + Y ≥ 0 (первое ограничение).

Так как μj = 0, Δμj = μj = 0, Δyj = bjyj ≥ 0), то отсюда вытекает справедливость следующего: ${{\tilde {x}}_{j}}$ = xj + ΔμjY = xj ≥ 0 (второе ограничение) и ${{\tilde {y}}_{j}}$aj${{\tilde {x}}_{j}}$ = yj + Yaj(xj + ΔμjY) ≤ yjajxj + bjyj = = bj – ajxjbj (третье ограничение).

3. Направление дуги j противоположно направлению обхода и  j ∈ (I0, n1(j0)) (рис. 6).

Рис. 6.

Схема цикла для случая 3

3а. Верны следующие соотношения:

Δyj = yjbj > 0, ${{\tilde {y}}_{j}}$ = yjYyj – Δyj = bj ≥ 0 (первое ограничение).

Так как μj = 1/aj, Δμj = –μj = –1/aj ≥ 0, то ${{\tilde {x}}_{j}}$ = xj + ΔμjY = xj – (1/aj)Y ≥ (1/aj)(ajxj – Δyj) = (1/aj)(ajxj – – yj + bj) ≥ 0 (второе ограничение) и ${{\tilde {y}}_{j}}$aj${{\tilde {x}}_{j}}$ = yjYaj(xj + ΔμjY) = yjajxjY(1 + ajΔμj) = yj – – ajxjbj (третье ограничение).

3б. При yjbj справедливы следующие соотношения:

Δyj = yj ≥ 0, ${{\tilde {y}}_{j}}$ = yjYyj – Δyj = 0 (первое ограничение).

Так как μj = 0, Δμj = –μj = 0, то отсюда ${{\tilde {x}}_{j}}$ = xj + ΔμjY = xj ≥ 0 (второе ограничение) и ${{\tilde {y}}_{j}}$aj${{\tilde {x}}_{j}}$ = = yjajxjYbjajxjbj (третье ограничение).

4. Направление дуги  j противоположно направлению обхода и  j ∈ (I0, n2(j0)) (рис. 7).

Рис. 7.

Схема цикла для случая 4

4а. При yj > bj доказательство полностью совпадает с доказательством случая 3а, приведенным выше.

4б. При yjbj доказательство этого случая полностью совпадает с доказательством случая 3б, приведенным выше.

Доказательство завершено.

Далее убедимся, что новому допустимому решению ($\tilde {x}$, $\tilde {y}$) соответствует меньшее значение целевой функции, а именно докажем следующее утверждение.

Утверждение 5. Для нового допустимого решения ($\tilde {x}$, $\tilde {y}$) справедливо следующее неравенство:

$\sum\limits_{j \in \Gamma }^{} {{{x}_{j}}} > \sum\limits_{j \in \Gamma }^{} {{{{\tilde {x}}}_{j}}} .$

Доказательство:

$\sum\limits_{j \in \Gamma }^{} {{{{\tilde {x}}}_{j}}} - \sum\limits_{j \in \Gamma }^{} {{{x}_{j}}} = \sum\limits_{j \in \Gamma }^{} {({{{\tilde {x}}}_{j}} - {{x}_{j}}) = \sum\limits_{j \in H}^{} {({{{\tilde {x}}}_{j}} - {{x}_{j}})} } = Y\sum\limits_{j \in H}^{} {\Delta {{\mu }_{j}} = YE < 0.} $

Утверждение доказано.

Утверждение 6. Существует дуга  j, jH, такая, что она является либо θ-дугой, либо 0-дугой.

Доказательство. Выберем произвольный индекс  j, такой, что

$j \in {\text{Arg}}\mathop {\min }\limits_{j \in H:\Delta {{y}_{j}} > 0} \Delta {{y}_{j}}$. Тогда 0 < Δyj = Y.

Допустим, что  j – правильно ориентированная дуга, тогда имеем следующее: ${{\tilde {y}}_{j}}$ = yj + Y = yj + + Δyj = yj + (bjqj) = bj, т.е. данная дуга является θ-дугой.

Пусть теперь  j имеет обратную ориентацию. Тогда если yj > bj, то ${{\tilde {y}}_{j}}$ = yjY = yj – Δyj = yj – – (–bj + yj) = bj, т.е. данная дуга является θ-дугой. Если же 0 < yjbj, то ${{\tilde {y}}_{j}}$ = yjY = yj – Δyj = = yj – yj = 0, т.е. данная дуга является 0-дугой. Утверждение доказано.

Покажем теперь, как выбрать дугу j1, подлежащую удалению из множества ΓТ. Путь (n1(j0), I0) может содержать лишь сонаправленные с ним 0-дуги. Если их множество не пусто, то выберем в качестве j1 последнюю из них. Иначе в качестве j1 выберем любую из θ-дуг, множество которых в силу утверждения 5 в этом случае не пусто. Удалив дугу j1 из множества ΓТ и добавив дугу j0, получим новое связующее поддерево $\Gamma _{T}^{*}$, которое для плана ($\tilde {x}$, $\tilde {y}$) удовлетворяет условиям 1 и 2. Заметим, что в силу условия 1 и утверждения 1 план ($\tilde {x}$, $\tilde {y}$) является опорным планом задачи (1.1).

Разберем теперь случай, когда нарушается неравенство  j0 из условий (2.2). Рассмотрим тот же самый цикл, что и выше, в направлении, обратном дуге  j0. Вычислим значения величин E и Y по формулам (2.3)(2.5). Справедливо следующее утверждение.

Утверждение 7. Если E ≥ 0, то существует такая дуга  j, что  j ∈ (n1(j0), I0) и  j является θ-дугой или 0-дугой.

Доказательство данного утверждения не приводим, поскольку оно доказывается аналогично утверждению 2.

В случае если E ≥ 0, удалим из дерева ΓТ первую θ-дугу или 0-дугу пути (n1(j0), I0) и добавим дугу j0. Получим новое связующее поддерево $\Gamma _{T}^{*}$, удовлетворяющее условиям 1 и 2. Для соответствующего ему вектора ($\tilde {\lambda }$, $\tilde {\mu }$) справедливо следующее утверждение.

Утверждение 8:

1) ${{\tilde {\lambda }}_{i}}$ = λi, i: n1(j0) ∉ (0, i);

2) ${{\tilde {\lambda }}_{i}}$ = λI – Δ, i: n1(j0) ∈ (0, i), где Δ = ${{\lambda }_{{{{n}_{2}}(j)}}}$${{\lambda }_{{{{n}_{1}}(j)}}}$ > 0.

Доказательство данного утверждения также не приводим, поскольку оно доказывается аналогично утверждению 3.

В случае, когда Е < 0, осуществим циклическое изменение потока в направлении, обратном дуге j0, на величину Y. Получим новое допустимое решение ($\tilde {x}$, $\tilde {y}$) задачи (1.1) по тем же формулам, что и выше. Для решения ($\tilde {x}$, $\tilde {y}$) будут справедливы утверждения 4 и 5.

Покажем теперь, как выбрать дугу j1, подлежащую удалению из ΓТ. Путь (n2(j0), I0) может содержать лишь сонаправленные с ним 0-дуги. Если их множество не пусто, то выберем последнюю из них. Иначе рассмотрим дугу j0. Если она является 0-дугой, то оставим текущее поддерево без изменений. Иначе выберем путь (I0, n1(j0)), который может содержать лишь сонаправленные с ним 0-дуги.

Если их множество не пусто, то выберем в качестве j1 последнюю из них. Иначе в качестве j1 выберем любую из θ-дуг цикла, множество которых в этом случае в силу утверждения 7 не пусто. Удалив дугу j1 из множества ΓТ и добавив дугу j0, получим новое связующее поддерево $\Gamma _{T}^{*}$, которое для плана ($\tilde {x}$, $\tilde {y}$) удовлетворяет условиям 1 и 2. Откуда следует, что ($\tilde {x}$, $\tilde {y}$) является опорным планом задачи (1.1).

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

Поскольку различных связующих поддеревьев и опорных планов задачи (1.1) существует конечное число, то за конечное число шагов получим опорный план (x, y) и связующее поддерево ΓТ, удовлетворяющие условиям 1 и 2, такие, что связанный с ними вектор (λ, μ) удовлетворяет неравенствам (2.1) и (2.2).

Рассмотрим следующий вектор (λ, $\tilde {\mu }$), такой, что ${{\tilde {\mu }}_{j}}$ = ${{\lambda }_{{{{n}_{2}}(j)}}}$${{\lambda }_{{{{n}_{1}}(j)}}}$, если j ∈ Γ\ΓТ,  j – θ, дуга и ${{\tilde {\mu }}_{j}}$ = μj для остальных  j. Заметим, что в силу соотношений (2.1) и (2.2) 0 ≤ μj$\frac{1}{{{{a}_{j}}}}$, j ∈ Γ.

Несложно проверить, что вектор (λ, $\tilde {\mu }$) является допустимым решением задачи (1.2) и связан условиями (1.3) с опорным планом (x, y). В силу теоремы 1 отсюда следует, что (x, y) есть оптимальный опорный план задачи (1.1).

Остается показать существование некоторого начального допустимого решения (x, y) и связующего поддерева ΓТ, для которого выполнены условия 1 и 2. Это несложно сделать, опираясь на следующее утверждение.

Утверждение 9. Существует связующее поддерево исходного графа с правильной ориентацией всех его дуг.

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

Корень дерева примем за начальное поддерево. Соединим корень с произвольной вершиной, не принадлежащей поддереву, ориентированным путем. Рассмотрим участок этого пути от данной вершины до первой вершины, принадлежащей поддереву.

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

3. Описание алгоритма для общего случая aj ≥ 0. Задача (1.1) рассматривалась нами в предположении, что aj > 0,  j ∈ Γ. Исследуем теперь задачу в общем случае, когда aj ≥ 0,  j ∈ Γ. Заметим также, что случай aj < 0 не имеет содержательного смысла с точки зрения рассмотрения переменных x как ресурсных переменных. В общем случае задача имеет следующий вид:

$\begin{gathered} \mathop {\min }\limits_{x,y} \left( {\sum\limits_{j \in {{\Gamma }_{1}}}^{} {{{x}_{j}}} } \right), \\ \sum\limits_{j \in C(i)}^{} {{{y}_{j}}} - \sum\limits_{j \in D(i)}^{} {{{y}_{j}}} = 0,\quad i \in B, \\ \end{gathered} $
(3.1)
$\begin{gathered} \sum\limits_{j \in D(i)}^{} {{{y}_{j}}} - \sum\limits_{j \in C(i)}^{} {{{y}_{j}}} = {{d}_{i}},\quad i \in C, \\ {{y}_{j}} \leqslant {{b}_{j}},\quad j \in {{\Gamma }_{2}}, \\ \end{gathered} $
$\begin{gathered} {{y}_{j}} - {{a}_{j}}{{x}_{j}} \leqslant {{b}_{j}},\quad j \in {{\Gamma }_{1}}, \\ {{x}_{j}} \geqslant 0,\quad j \in {{\Gamma }_{1}},\quad {{y}_{j}} \geqslant 0,\quad j \in \Gamma , \\ \end{gathered} $
где Γ1 = {j ∈ Γ: aj > 0} и Γ2 = {j ∈ Γ: aj = 0}.

Задача (3.1), вообще говоря, может не иметь допустимых решений. Рассмотрим теперь вспомогательную задачу, введя дополнительные переменные xj ≥ 0   j ∈ Γ2 и функции пропускных способностей δxj + bj ≥ 0   j ∈ Γ2, где

$\delta = {{\left( {2\sum\limits_{j \in {{\Gamma }_{1}}}^{} {\frac{1}{{{{a}_{j}}}}} } \right)}^{{ - 1}}}.$

Математическая постановка вспомогательной задачи имеет следующий вид:

$\begin{gathered} \mathop {\min }\limits_{x,y} \left( {\sum\limits_{j \in \Gamma }^{} {{{x}_{j}}} } \right), \\ \sum\limits_{j \in C(i)}^{} {{{y}_{j}}} - \sum\limits_{j \in D(i)}^{} {{{y}_{j}}} = 0,\quad i \in B, \\ \end{gathered} $
(3.2)
$\begin{gathered} \sum\limits_{j \in D(i)}^{} {{{y}_{j}}} - \sum\limits_{j \in C(i)}^{} {{{y}_{j}}} = {{d}_{i}},\quad i \in C, \\ {{y}_{j}} \leqslant \delta {{x}_{j}} + {{b}_{j}},\quad j \in {{\Gamma }_{2}}, \\ \end{gathered} $
$\begin{gathered} {{y}_{j}} - {{a}_{j}}{{x}_{j}} \leqslant {{b}_{j}},\quad j \in {{\Gamma }_{1}}, \\ {{x}_{j}} \geqslant 0,\quad {{y}_{j}} \geqslant 0,\quad j \in \Gamma . \\ \end{gathered} $

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

Справедлива следующая теорема.

Теорема 2. Пусть (x*, y*) есть оптимальное решение задачи (3.2). Если существует i ∈ Γ2, такое, что $x_{i}^{*}$ > 0, то множество допустимых решений задачи (3.1) пусто. Иначе (x*, y*) – оптимальное решение задачи (3.1).

Доказательство. Пусть (x*, y*) есть оптимальное решение задачи (3.2). Допустим, что множество B = {i ∈ Γ2: $x_{i}^{*}$ > 0} не пусто. Если решение (x*, y*) не является крайней точкой допустимого множества, то оно, как известно, есть выпуклая комбинация некоторых оптимальных крайних точек. Тогда можно утверждать, что если  j0B, то существует оптимальная крайняя точка, для которой $x_{{{{j}_{0}}}}^{*}$ > 0, т.е. множество B для которого не пусто. Таким образом, можно считать без ограничения общности, что (x*, y*) – оптимальная крайняя точка.

Предположим теперь, что множество допустимых решений не пусто и вектор (x, y) есть некоторое допустимое решение задачи (3.1). Если

$A = \sum\limits_{i \in {{\Gamma }_{1}}}^{} {{{x}_{i}},} $
то легко показать, что задача (3.1) равносильна задаче на компакте:

$0 \leqslant {{y}_{j}} \leqslant {{b}_{j}},\quad j \in {{\Gamma }_{2}},\quad 0 \leqslant {{y}_{j}} \leqslant A{{a}_{j}} + {{b}_{j}},\quad j \in {{\Gamma }_{2}},\quad 0 \leqslant {{x}_{j}} \leqslant A,\quad j \in {{\Gamma }_{1}}.$

Следовательно, задача имеет решение в силу теоремы Вейерштрасса. Так как задача (3.1) есть задача линейного программирования, то она имеет оптимальную крайнюю точку, которую обозначим ($\bar {x}$, $\bar {y}$). Если теперь дополнить вектор ($\bar {x}$, $\bar {y}$) компонентами xj = 0   j ∈ Γ2, то полученный вектор ($\tilde {x}$, $\tilde {y}$) будет крайней точкой задачи (3.2). Это следует из допустимости вектора ($\tilde {x}$, $\tilde {y}$) и того факта, что система столбцов, соответствующих положительным компонентам, не изменяется, т.е. остается линейно независимой.

Из теории линейного программирования известно, что существует последовательность крайних точек, начинающаяся с произвольной начальной точки ($\tilde {x}$, $\tilde {y}$) и заканчивающаяся оптимальной точкой (x*, y*). Соседние члены этой последовательности являются соседними крайними точками (т.е. их базисы отличаются одним вектором), и значение целевой функции на этих точках монотонно не возрастает.

Непосредственно из обоснования алгоритма обобщенных потенциалов следует, что переход из крайней точки в соседнюю крайнюю точку с небольшим значением целевой функции осуществляется изменением векторов y и x вдоль некоторого цикла, для которого E ≤ 0 и Y > 0.

Поскольку для вектора ($\tilde {x}$, $\tilde {y}$) соответствующее ему множество В пусто, а для вектора (x*, y*) не пусто, то в последовательности существует пара соседних точек (x1, y1) и (x2, y2), для которых множество B пусто и не пусто соответственно.

Такой переход можно осуществить лишь для цикла, содержащего правильно ориентированную дугу  j0 множества Γ2. Но тогда

$\Delta {{\mu }_{{{{j}_{0}}}}} = \frac{1}{\delta } + 2\sum\limits_{j \in {{\Gamma }_{1}}}^{} {\frac{1}{{{{a}_{j}}}}.} $

Если в цикле содержатся дуги j множества Γ2 обратной ориентации, то Δμj = 0. Пусть в цикле r дуг множества Γ2 правильной ориентации. Тогда справедливо следующее:

$E = \sum\limits_{j \in H}^{} {\Delta {{\mu }_{j}} \geqslant r\left( {\frac{1}{\delta }} \right) - \sum\limits_{j \in {{\Gamma }_{1}}}^{} {\frac{1}{{{{a}_{j}}}} > 0.} } $

Следовательно, такой переход невозможен и сделанное предположение о не пустоте множества допустимых решений задачи (3.1) неверно. Тем самым первая часть теоремы доказана.

Справедливость второй части теоремы следует непосредственно из того, что вектор (x*, y*) является допустимым решением задачи (3.1), а сама задача (3.1) есть сужение задачи (3.2) на некоторое подмножество множества допустимых решений. Теорема доказана.

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

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

  1. Романовский И.В. Алгоритмы решения экстремальных задач. М.: Наука, 1977. 352 с.

  2. Лемешко В.Ю. Методы оптимизации: лекции. Новосибирск: Изд-во НГУ, 2009. 126 с.

  3. Раскин Л.Г., Кириченко И.О. Многоиндексные задачи линейного программирования. М.: Радио и связь, 1982. 240 с.

  4. Серая О.В. Многомерные модели логистики в условиях неопределенности: монография. Харьков: ФОП Стеценко И.И., 2010. 512 с.

  5. Конюховский П.В. Математические методы исследования операций в экономике. СПб.: Питер, 2000. 208 с.

  6. Гейл Д. Теория линейных экономических моделей. М.: Изд-во иностр. лит., 1963. 418 с.

  7. Давыдов Э.Г. Игры, графы, ресурсы. М.: Радио и связь, 1981. 112 с.

  8. Адельсон-Вельский Г.М., Диниц Е.А., Карзанов А.В. Потоковые алгоритмы. М.: Наука, 1975. 118 с.

  9. Басакер Р., Саати Т. Конечные графы и сети. М.: Наука, 1974. 368 с.

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