Известия РАН. Теория и системы управления, 2021, № 6, стр. 61-65

ДЕКОМПОЗИЦИОННЫЙ МЕТОД ДЛЯ ОПТИМИЗАЦИОННОЙ ЗАДАЧИ ОБ ЭФФЕКТИВНОЙ СТРЕЛЬБЕ

Л. П. Ванг a, А. С. Есенков b, Е. С. Стрелкова c, А. П. Тизик d*

a Нанкинский ун-т аэронавтики и космонавтики
Нанкин, КНР

b Федеральный исследовательский центр “Информатика и управление” РАН
Москва, Россия

c Московский физико-технический ин-т
МО, Долгопрудный, Россия

d Центральный научно-исследовательский ин-т связи
Москва, Россия

* E-mail: tizik_ap@mail.ru

Поступила в редакцию 15.06.2021
После доработки 17.06.2021
Принята к публикации 26.07.2021

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

Аннотация

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

Введение. В [1] упоминается о постановках задач об эффективной стрельбе и их связи с классическими задачами транспортного типа. В [2] предлагается метод последовательной модификации коэффициентов целевых функций задач транспортного типа. В настоящей работе, в отличие от последовательного изменения допустимых решений или двойственных переменных, итеративно пересчитываются коэффициенты целевой функции. Строится монотонный по целевой функции процесс, который окончательно приводит к оптимуму, хотя последовательные решения (так называемые псевдорешения) не допустимы к исходным ограничениям. В [35] алгоритм применяется к различным задачам транспортного типа. Особым местом является вырождение, когда из промежуточных задач невозможно сформировать исходный оптимум. Это преодолевается для каждого конкретного случая по-разному.

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

1. Постановка задачи. Формально задача выглядит так:

(1.1)
$\sum\limits_{j = 1}^n {{x}_{{ij}}} = {{a}_{i}},\quad i = \overline {1,m} ,$
(1.2)
$\sum\limits_{i = 1}^m \,{{a}_{i}} = n,$
(1.3)
$\sum\limits_{i = 1}^m {{x}_{{ij}}} = 1,\quad j = \overline {1,n} ,$
(1.4)
$x \in {\text{\{ }}0,1{\text{\} }},\quad i = \overline {1,n} ,\quad j = \overline {1,m} ,$
(1.5)
$\sum\limits_{i = 1}^m \sum\limits_{j = 1}^n {{c}_{{ij}}}{{x}_{{ij}}} \to max.$

Здесь индекс $i$ нумерует цели, количество которых $n$. Имеется $m$ батарей, которые производят aj выстрелов, где  j – номер батареи. Неизвестная величина ${{x}_{{ij}}}$ равна единице, если по цели $i$ производится выстрел из батареи  j, в противном случае эта величина равна нулю. По каждой цели $i$ делается только один выстрел из батареи  j. Задача (1.1)–(1.5) является линейной оптимизационной задачей с булевыми переменными.

2. Алгоритм решения задачи (1.1)–(1.5). Для решения этой задачи построим последовательность ее так называемых псевдорешений [2].

Первое псевдорешение получим следующим образом. Полагаем

$c_{{ij}}^{1} = \frac{{{{c}_{{ij}}}}}{2},\quad c_{{ij}}^{2} = \frac{{{{c}_{{ij}}}}}{2}$
и рассмотрим $m$ одномерных задач с ограничениями (1.1), (1.4):
(2.1)
$\sum\limits_{j = 1}^n c_{{ij}}^{1}{{x}_{{ij}}} \to max,\quad i = \overline {1,m} ,$
а также $n$ одномерных задач с ограничениями (1.3), (1.4):

(2.2)
$\sum\limits_{i = 1}^m c_{{ij}}^{2}{{x}_{{ij}}} \to max,\quad j = \overline {1,n} .$

Для решения одномерной задачи (1.1), (1.4), (2.1) при произвольном $i = i{\kern 1pt} '$ необходимо найти ${{a}_{{i'}}}$ наибольших коэффициентов $c_{{i'j}}^{1}$ из ее целевой функции:

$\begin{gathered} c_{{i'{{j}_{1}}}}^{1} = \mathop {max}\limits_j c_{{i'j}}^{1}, \\ c_{{i'{{j}_{2}}}}^{1} = \mathop {max}\limits_{j,j \ne {{j}_{1}}} c_{{i'j}}^{1}, \\ \end{gathered} $
и т.д. Соответственно решением одномерной задачи (1.1), (1.4), (2.1) будет
$\begin{array}{*{20}{c}} {{{x}_{{{{i}^{\prime }}{{j}_{1}}}}} = 1{\kern 1pt} ,}&{} \\ {{{x}_{{{{i}^{\prime }}{{j}_{2}}}}} = 1}&{} \end{array}$
и т.д. Для решения одномерной задачи вида (1.3), (1.4), (2.2) при произвольном $j = j{\kern 1pt} '$ необходимо найти максимальный коэффициент соответствующей целевой функции:

$c_{{ij'}}^{2} = \mathop {max}\limits_i c_{{ij'}}^{2},\quad {{x}_{{ij'}}} = 1.$

Пусть у всех одномерных задач есть конкретные решения. Объединим эти решения в одно и назовем его псевдорешением исходной задачи. Сумму значений целевых функций одномерных задач будем считать значением целевой функции псевдорешения. Заметим, что эта сумма не меньше значения целевой функции для оптимального решения исходной задачи (1.1)–(1.5). И это верно для любого разбиения каждого cij на два слагаемых.

Если псевдорешение задачи об эффективной стрельбе является допустимым решением задачи (1.1)–(1.5), то оно будет и ее оптимальным решением.

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

Рассмотрим первый шаг цикла при i = 1,  j = 1. Решается двумерная задача c ограничениями (1.1), (1.4) при i = 1 и c ограничениями (1.3), (1.4) при j = 1 с общей переменной x11:

(2.3)
$\sum\limits_{j = 1}^n \,{{x}_{{1j}}} = {{a}_{1}},$
$\sum\limits_{i = 1}^m \,{{x}_{{i1}}} = 1,$(2.4)
(2.5)
$\sum\limits_{j = 1}^n \,c_{{1j}}^{1}{{x}_{{1j}}} + \sum\limits_{i = 1}^m \,c_{{i1}}^{2}{{x}_{{i1}}} \to max,$
(2.6)
${{x}_{{ij}}} \in {\text{\{ }}0,1{\text{\} }},\quad i = \overline {1,n} ,\quad j = \overline {1,m} .$

Для решения двумерной задачи (2.3)–(2.6) необходимо найти ${{a}_{1}} - 1$ наибольших по величине коэффициентов целевой функции из группы первой суммы $c_{{1j}}^{1}$, $j \ne 1$. Обозначим их индексы $j \in {\text{\{ }}{{j}_{1}},{{j}_{2}}, \ldots ,{{j}_{{{{a}_{1}} - 1}}}{\text{\} }}$. Тогда частью решения будет ${{x}_{{1{{j}_{1}}}}} = $ ${{x}_{{1{{j}_{2}}}}} = $ $ \ldots = $ ${{x}_{{1{{j}_{{{{a}_{1}} - 1}}}}}}$.

Далее возможны два варианта: либо в решение попадут переменные, соответствующие a1 по величине коэффициентов из группы $c_{{1j}}^{1}$ и максимальному коэффициенту из второй суммы целевой функции $c_{{i1}}^{2}$, либо общая переменная двух ограничений. Обозначим

$\begin{array}{*{20}{c}} {\mathop {max}\limits_{j,j \ne 1,j \notin {\text{\{ }}{{j}_{1}},{{j}_{2}}, \ldots {{j}_{{{{a}_{1}} - 1}}}{\text{\} }}} c_{{1j}}^{1} = c_{{1j*}}^{1},} \\ {\mathop {max}\limits_{i,i \ne 1} c_{{i1}}^{2} = c_{{i*1}}^{2}.} \end{array}$

Возможны три случая соотношения этих коэффициентов.

Первый случай:

${{c}_{{11}}} > c_{{1j*}}^{1} + c_{{i*1}}^{2}.$

Тогда в решение дополнительно войдет ${{x}_{{11}}} = 1$ и двумерная задача (2.3)–(2.6) решена. Рассчитаем новые коэффициенты $c_{{11}}^{1}$ и $c_{{11}}^{2}$ в соответствии с системой:

$\left\{ \begin{gathered} c_{{11}}^{1} + c_{{11}}^{2} = {{c}_{{11}}}, \hfill \\ c_{{1j*}}^{1} - c_{{11}}^{1} = c_{{i*1}}^{2} - c_{{11}}^{2}. \hfill \\ \end{gathered} \right.$

Это обеспечивает объединение оптимальных решений одномерных задач с ограничениями (2.3), (2.6) и (2.4), (2.6), а значит, совпадение с оптимальным решением задачи (2.3)–(2.6).

Второй случай:

${{c}_{{11}}} = c_{{1j*}}^{1} + c_{{i*1}}^{2}.$

При этом дополнить решение до однозначного невозможно, и если коэффициент $c_{{1j*}}^{1}$ имеется только у ${{x}_{{1j*}}}$, то получаем ограничения

$\begin{array}{*{20}{c}} {{{x}_{{11}}} + {{x}_{{1j*}}} = 1,} \\ {{{x}_{{11}}} + {{x}_{{i*1}}} = 1.} \end{array}$

Такое соотношение коэффициентов будем называть вырождением. В общем случае в первом из этих ограничений может быть несколько переменных и правая часть больше единицы. Во втором ограничении тоже может быть несколько переменных, но правая часть при этом остается единицей. Находим новые значения коэффициентов $c_{{11}}^{1} = c_{{1j*}}^{1}$, $c_{{11}}^{2} = c_{{i*1}}^{2}$.

Третий случай:

${{c}_{{11}}} < c_{{1j*}}^{1} + c_{{i*1}}^{2}.$

Тогда в решение войдут дополнительно ${{x}_{{1j*}}} = $ ${{x}_{{i*1}}} = 1$ и двумерная задача (2.3)–(2.6) решена. Новые значения коэффициентов $c_{{11}}^{1}$ и $c_{{11}}^{2}$ с той же целью вычисляем в соответствии с системой:

$\left\{ \begin{gathered} c_{{11}}^{1} + c_{{11}}^{2} = {{c}_{{11}}}, \hfill \\ c_{{1j*}}^{1} - c_{{11}}^{1} = c_{{i*1}}^{2} - c_{{11}}^{2}. \hfill \\ \end{gathered} \right.$

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

На этом первый шаг заканчивается. Далее переходим к шагу i = 1, $j = 2$, затем берем i = 1, $j = 3$ и т.д. до i = 1, $j = n$. Переходим к шагу i = 2, $j = 1$ и т.д. до $i = m$, $j = n$. На этом первый цикл заканчивается, переходим ко второму циклу, где опять начинаем со значений индексов i = 1, $j = 1$.

Циклический процесс останавливается тогда, когда в двух последовательных циклах каждая одномерная задача имеет одинаковые решения или одинаковые ограничения (вырождение). Если вырождения нет, то тем самым получено оптимальное решение задачи (1.1)–(1.5). Наличие вырождения в некоторых ограничениях требует дополнительных процедур.

3. Вырождение. Рассмотрим ситуацию вырождения, которая имеет место по окончании циклического процесса. Отметим важное свойство вырождения (см. второй случай в разд. 2). Если решать задачу с двумя ограничениями с общей переменной ${{x}_{{1j*}}}$, то возникает вырождение, при этом одной из переменных, входящих в первое ограничение, будет x11. Если решать задачу с двумя ограничениями с общей переменной ${{x}_{{i*1}}}$, то и здесь появляется вырождение, а переменная ${{x}_{{11}}}$ участвует во втором ограничении. На этом свойстве и основана процедура определения конкретного решения при вырождении. Если положить общую переменную (x11 в рассмотренном примере) равной единице, то в первом ограничении будет ${{x}_{{1j*}}} = 0$ (или неопределенность уменьшится), а во втором ${{x}_{{i*1}}} = 0$, а также и остальные переменные, у которых коэффициент в целевой функции равен $c_{{i*1}}^{2}$. Переходя далее в другие ограничения, которые дают вырождение, определяем значения других переменных. Если после этого вырождение все еще имеет место, процедура продолжается, начиная с другой переменной, попавшей в ограничения вырождения.

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

$y = C{{x}^{B}}$
при значениях $C = 0.0000000729$, $B = 2.50090$.

Рисунок.

Зависимость среднего времени работы алгоритма от размерности задачи

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

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

  1. Гольштейн Е.Г., Юдин Д.Б. Задачи линейного программирования транспортного типа. М.: Наука, 1969.

  2. Тизик А.П., Цурков В.И. Метод последовательной модификации функционала для решения транспортной задачи // АиТ. 2012. № 1. С. 148–158.

  3. Кузовлев Д.И., Тизик А.П., Тресков Ю.П. Метод последовательных изменений параметров функционала при решении задачи о назначении // Изв. РАН. ТиСУ. 2011. № 6. С. 67–78.

  4. Кузовлев Д.И., Тизик А.П., Тресков Ю.П. Декомпозиционный алгоритм для решения транспортной задачи с ограниченными пропускными способностями // Мехатроника, автоматизация, управление. 2012. № 1. С. 45–48.

  5. Тизик А.П., Кузовлев Д.И., Соколов А.А. Метод последовательной модификации функционала для транспортной задачи с дополнительными пунктами производства и потребления // Вестн. ТвГУ. Сер. Прикладная математика. 2012. № 4. С. 91–98.

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