Научная статья на тему 'Алгоритм решения задач бинарного квадратичного программирования методом штрафных функций'

Алгоритм решения задач бинарного квадратичного программирования методом штрафных функций Текст научной статьи по специальности «Математика»

CC BY
1067
76
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КВАДРАТИЧНОЕ ПРОГРАММИРОВАНИЕ / БИНАРНЫЕ ПЕРЕМЕННЫЕ / ОПТИМАЛЬНОЕ РЕШЕНИЕ / ФОРМУЛА КАРДАНО / ЭВРИСТИЧЕСКИЙ АЛГОРИТМ / QUADRATIC PROGRAMMING / BINARY VARIABLES / OPTIMAL SOLUTION / CARDANO FORMULA / HEURISTIC ALGORITHM

Аннотация научной статьи по математике, автор научной работы — Попов Георгий Александрович

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

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

ALGORITHM OF SOLVING THE PROBLEMS OF THE BINARY SQUARE PROGRAMMING BY THE METHOD OF PENALTY FUNCTIONS

In this paper the author analyses generalization of the classical quadratic programming problem, when along with linear constraints quadratic constraints are allowed. The author consider the case when variables can take only binary values 0 or 1. Such problems are important when choice of the optimal structures of systems covers a large number of variants, and the choice or refusal to select individual variants is equivalent to values 1 or 0 of the corresponding binary variables. There is described the procedure of reducing the indicated problem to the fourth-degree polynomial programming problem on the basis of the penalty method, when all terms are no greater than in the second power, except one having a fourth power. The solution of the obtained optimization problem is reduced to solving a system of equations containing only binary variables. The author proposes a heuristic recursive algorithm for solving the resulting system of equations, and variants of constructing the initial version of the solution. The parameters used in the proposed method are described. In the process of reduction, there are used the classical Cardano formulas for the roots of a cubic equation, for the practical finding of which the relations are obtained and the calculation procedure is described. The algorithm given in this paper can also be used to solve many problems of discrete mathematics.

Текст научной работы на тему «Алгоритм решения задач бинарного квадратичного программирования методом штрафных функций»

DOI: 10.24143/2072-9502-2017-2-48-61 УДК 004.056.5

Г. А. Попов

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

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

Ключевые слова: квадратичное программирование, бинарные переменные, оптимальное решение, формула Кардано, эвристический алгоритм.

Введение

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

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

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

Вышеупомянутые задачи являются частным случаем задач целочисленного математического программирования, и поэтому, казалось бы, могут быть решены методами, используемыми при решении задач целочисленного программирования. Однако одна важная особенность делает все известные методы решения задач целочисленного программирования практически неприемлемыми и бесполезными при решении указанных задач: число альтернатив часто бывает настолько большим, что существующие вычислительные средства оказываются неспособными за разумное время найти решение указанных задач. Так, например, в работах [1, 2] приведены формализованные постановки задачи составления учебного расписания, когда в качестве бинарных переменных берутся следующие: xpgad = 1, если занятие по d-й дисциплине у g-й подгруппы проводится в a-й аудитории наp-й паре, и xpgad = 0 в противном случае. Это

означает, что в данной задаче индекс суммирования i представлен набором pgad. Тогда, как показано в [1], в этом случае число всех возможных переменных для типового вуза с общим числом студентов порядка 7 500 достигает 150 миллионов переменных xpgad, что делает практически невозможным автоматизированное решение указанной задачи на основе алгоритмов целочисленного программирования.

Бинарное программирование как самостоятельное научное направление исследований было выделено еще в 60-е гг. ХХ в.; наиболее важные методы решения задач бинарного программирования, применявшиеся в то время, можно найти в [3]. В дальнейшем сколь-нибудь значимых результатов по решению задач бинарного программирования с большим числом переменных, по-видимому, получить не удалось. Состояние исследований в данном направлении в настоящее время отражено в [4, 5]. Отметим также отсутствие значимых результатов по использованию современных эвристических методов оптимизации (генетических алгоритмов, нейронных сетей, методов муравьиных или пчелиных колоний и др.), которые доказали свою эффективность при решении многих других типов задач оптимизации.

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

1. Формализация задачи с использованием метода штрафных функций

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

Пусть задан набор переменных x, (i = 1; N ), каждая из которых принимает только значения 0 или 1, т. е. является бинарной переменной; x = (x1, x2, ..., xN). Тогда задачей квадратичного бинарного программирования является следующая оптимизационная задача:

_ N N N

Z(x) = ZZA,xx + ZBx + C ^ max, (1)

i=1 j>1 1=1

при условии

N _

Z G(k) xi + E(k) < 0, k = 1; K. (2)

i=i

Для нас представляет интерес также несколько другая запись целевой функции (1):

_ S f N N N Л

Z(x) = Z ZZAjxx +ZBSx, + C ^max, (3)

s=1 у i=1 j>1 i=1 у

т. е. квадратичное выражение в целевой функции (1) представляется как сумма из S отдельных квадратичных выражений. Именно в таком виде представлена целевая функция в задаче формирования расписания занятий в [1], где S = 19, каждое квадратичное выражение в сумме по S имеет относительно простой вид и соответствует разным ограничениям задачи, число которых составляет порядка 30.

Отметим, что поскольку общее число возможных вариантов решений задачи (1), (2) ограничено (не превосходит 2N), то задача (1), (2) всегда имеет решение. Без ограничения общности можно считать C = 0.

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

_ _ NN N K f N Л2

Z(x;Lkk = 1;K) = ZZAjxx +ZBx I ZGf^r + E(k) + С 1 ^ max, (4)

i=1 j>1 i=1 k=1 v i=1 у

f N k k Л _

где tk = —I ZG(k)x, + E^k) l>0 (k = 1;K) - вспомогательные переменные; Lk > 0 трактуется как

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

ях Lk резко уменьшается. Поэтому оптимальное решение вынуждено стремиться обеспечить выполнение ограничений (2), при которых все слагаемые последней суммы равны нулю. Известно, что при достаточно больших значениях Lk для всех k решения (x*,i = 1;N} задач (4) и (1), (2) совпадают, поэтому вместо решения задачи (1), (2) можно решать задачу (4).

В записи задачи (4) учтены все ограничения задачи (1), (2), кроме самого важного - переменные xi являются бинарными. Для учета данного ограничения предлагается добавить в целевую функцию задачи еще по одному слагаемому на каждую переменную:

_ __NN N K f N Л2 N

Z(x;Lkkk = 1;K;L) = ZZ A.xx — ZL[ZGf^ + E(k) + tk I -(1 -x))2 ^ max, (5)

i=1 J>1 i=1 k=1 V i=1 ) i=1

где L >> max(Lj). Действительно, если для некоторого индекса i выражение xi (1 — xi) отличается

значимо от нуля, в целевой функции Z(x; Lk. k = 1; K; L) появляется большое по модулю отрицательное слагаемое (последняя сумма в правой части), которое сильно уменьшает значение целевой функции по сравнению со случаем xi (1 — xi) = 0.

В результате исходная задача квадратичного программирования переходит в задачу полиномиального программирования четвертой степени. Однако, как будет следовать из приводимых ниже рассуждений, задача (5) по ряду важных свойств аналогична задаче квадратичного программирования.

2. Базовый случай одной переменной

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

Рассмотрим вначале случай функции одной переменной (т. е. N = 1). Тогда левую часть соотношения (5) после деления обеих частей на L можно записать в виде

или, после обозначений a = a(L) = -1 A + ZLk(G(k))2I, b = b(L) = -1 В — 2^LkG(k)(E(k) + tk)|,

L V k=1 ) L V k=1 )

e(L) = "L [ Zl (e (k) + tk ij, получаем f (x, L) = a(L) x2 + b(L) x — e(L) — ( x(1 — x) )2.

г +1

Проведем замену переменных 2 = 2 X — 1, т. е. х = ^ . Тогда, полагая

f (—) = f (L) = А (——, L) , с(Ь) = — е(L) +—(4-) +—(Ц-, из последнего соотношения выводим следующее представление задачи (5):

л—, Ц=^—2 ++нь»—+ст—!(—2—1)2 - тах. (6)

В силу необходимого условия экстремума из (6) следует уравнение

(—, Ь) = — а( Ь) — +—(а(Ь) + Ъ(Ь)) — (—2 — 1) — = 0. а— 2 2

Таким образом, точки максимума функции А—) являются корнями кубического уравнения

г> + | -1 -2а(Ц) 12 -|(а(Ц) + Ь(Ц)) = 0.

(7)

Уравнение (7) имеет в комплексной плоскости три корня Zi(L) (/ = 1, 2, 3), которые упорядочим лексикографически, т. е. в порядке возрастания их действительной части; если же действительные части равны, то в порядке возрастания их мнимых частей. Покажем, что корни Zl(L) и z3(Ц) симметричны относительно корня z2(Ц). Для этого воспользуемся формулами Кардано

[6, с. 235]: если дано кубическое уравнение г3 + р 2 + q = 0, то (напомним, кубический корень

в поле комплексных чисел имеет три возможных значения):

г =

- 1+ 2

2 3

+ Р- +А3 4 27 |

-1 -2

23

^ + Р_

4 27

(8)

причем первый и второй кубические корни в правой части выбираются таким образом, чтобы их произведение равнялось -р/3. В нашем случае р = -1 -2а(Ц), ч = -2(а(Ц) + Ь(Ц)). Кроме того,

оба квадратных корня в правой части должны быть одинаковыми.

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

г = .

-1 ++ р + 2 V 4 27

2 3

3 -1 - ч +Р- 3 -1+<

У 2 V 4 27 V 2 V

3 -1 + И . Р

д-+р3 I—1— = 3 -1 + £+2 +. 2 4 27

+ -4 27

3

3 -1 + и , р

+4 27

(9)

2 3

1-Т 1 Р Пусть вначале--1--

4 27

<

J2 3

1 Р 1 — + — = -— + i

2

4 27

2 \

23

+ Р.

4 27

0; отсюда очевидно вытекает р < 0. Тогда

. Из (8) следует, что второе слагаемое в правой части

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

равно комплексно сопряженному значению м, откуда выводим м = Ы| и, ввиду (9),

м = -

Р

3

11

-1 + . + Р3

2 14 27

Ы и \Щ = М = "3.

Обозначим: ф = а^(ы) - главный аргумент числа м, т. е. фе [-П;3-) и cos(ф) = ,6.

2 2 М

. . . 1т ы | | sln (ф) = , где М =.

М

- +

23

+р3

4 27

. Для вычисления ф можно использовать следующие со-

отношения: ф = arcctg

Яе м 1т м

= arcctg

2 4 р3 27

если м лежит в первом или втором

3

2

2

2

Ч

4

Ч

(

квадранте, т. е. ф£[0; п), и ф = arcctg

Re w Im w

+ п = arcctg

2 4 p3 q +

27

+ п , если w лежит

в третьем или в четвертом квадранте, т. е. фе[п; 2п).

Тогда, с учетом (9), корни могут быть записаны в виде

= 31WI exp|1

arg (w) + 2nk 3

+exp| -i

1/3 p

3

. arg (w) + 2nk

' = (|w|• exp(iarg (w) + i2nk)) -3(|w|'exp(iarg(w)+i2nk)) =

3

= 2Л3/ w\ cos

arg (w) + 2nk 3

(k = 0, -1, 1).

Отсюда получаем следующие выражения для корней:

arg (w) ^ .

1) k = 0: z = 23 w • cos

3

2) k = -1: z = • cosí^-f ] = 2 Д í"¿cosi^]+fsin^^

3) k = 1: z = 23| Н' cos|arg3(w)+2Fi = 2« 1-2

1 í arg (w) | V3 . í arg (w) —cos ^ I--sin I

2 I 3 J 2 I 3

cos (f г

Так как sin (ф) =

^Vs i

2 3

^+

4 27

■pw > 0 , то ф е (0;п), -3 е (0;-3). Отсюда заключаем:

w

2 \

í J

sin | -3 j £ f 0;-2 |, и с учетом введенной выше лексиграфической упорядо-

ченности аргументов (т. е. z\ < z2 < z3) выводим:

Z1 = 23 w

(

\

1 í arg (w) | V3 . í arg (w) —cos | —2-I--sin | —2-

í 2 L 3 J 2 L 3 ^

= -2л3/ w • cos

arg (w)

3 "э

z2 = 2л3/| w|

(

í

1 í arg

—cos | ——

2 í 3

(w) l+^sin í arg(w) 2 í 3

= -2-^fw' cos

arg (w) + . 3 + 3 j '

z3 = 231 w\ • cos

arg (w) 3

(10)

Очевидно, что в данном случае все корни - действительные числа. При этом выполняется условие zx + z2 + z2 = 0, которое вытекает также из того, что в кубическом уравнении нет квадратичного слагаемого.

2 3

q p

Случай — + "27— 0 рассматривается аналогично. В этом случае w - действительное число, arg (w) = 0, если w > 0, и arg (w) = п, если w < 0. Получаем:

z1 = — | 3 w - p

.s

-¡= |-i-

33lw J 2

3w + p

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

J'

p 33[w

z3 = — | 3 w - p

.73

—'+ i-

33w J 2

3w + p

у

(11)

Нетрудно проверить выполнение равенства г1 + г2 + г2 = 0 . Приведем примеры вычисления корней на основе формул (10) и (11).

Пусть вначале р = -1, 1 = 0, т. е. необходимо найти корни уравнения г3 - г = 0.

Очевидно, г1 = -1, г1 = 0, г1 = 1. Так как +-Р- =--< 0, то корни необходимо вычислять

4 27 27

по формулам (10). Имеем: sin (arg w) =

w =

4

• +

2 3

+ PL

4 27

= ^7' cos(arg w) = =0-

2 3

£.+£-4 27

1 п arg w п

—r = 1, откуда выводим: arg w = —, -= —, и, следовательно,

w 2 3 6

2 1 (п rc^ 2 1 Тэ 1 1 (П n^ ,1 (П I

Z1 = —2T3 ■cos 16"3 J=—2T3T=-1' *=■cos 16+1 J = V3cos (2 j=0'

1

n

1 V3

z3 = 2—• cos I — I = -= 1, т. е. корни совпали с указанными выше их значениями.

V3 1.6J V3 2

Для демонстрации формул (11) рассмотрим случай p =1, q = 0, т. е. необходимо найти корни уравнения z3 + z = 0. Очевидно, zi = -i, z\ = 0, zi = i. Так как += 1 > 0, то

0

корни необходимо вычислять по формулам (11). Имеем: w = — + ^

0 p - + —

4 27

vw— P

j__ьУ3

33jw S 3

= 0,

vw + p

V3

следовательно,

2^ откуда

ввиду (11),

1 0 ■ ^ 2 ■ 0 1 0 + -S 2 .

z1 =---U—г---г= — , z2 = 0, z3 =---U+г----j= = г, т. е. корни совпали с их истинными

2 2 V3 2 2 V3

значениями.

Поскольку при L ^ да из определения a(L) и b(L) следует a(L) ^ 0 и b(L) ^ 0, то в силу формулы Кардано для корней кубического уравнения (см. (8)), в которых зависимость корней от коэффициентов кубического уравнения является непрерывной, заключаем: корни уравнения (7) сходятся к корням уравнения z3 - z = 0, корни которого равны -1, 0 и 1, т. е. lim z1(L) = —1,

lim z2(L) = 0, lim z3(L) = 1. Отметим, что значения z = -1, z = 0 и z = 1 соответствуют значениям x = 0, x = 0,5 и x = 1 соответственно.

Рис. 1. Графики функций

2

q

2

и

Для того чтобы выявить, какой из корней уравнения (7) является точкой максимума, построим графики функций (см. (6)) у1 = /(г) = г2 -1)2 и параболы

4

1 1

у2 = /2(г) = 4а(Ц)г +—(а(Ц) + Ь(Ц))г + с(Ц) - функция /(г) является суммой этих функций.

Для определенности предположим, что а(Ц) > 0. Случаи а(Ц) < 0 и а(Ц) = 0 рассматриваются совершенно также. Так как корни функции у2 симметричны относительно оси Оу, то при сложении функций значение суммы в более удаленной от вершины параболы точке г1 будет больше, чем в более близкой к вершине точке г2. Отметим: значение абсциссы вершины

B — 2УL,G k) (E(k) +t, ) b(L) La k \ Ч

k =1

2 a (L )

2-(a Lk (G(k ))2

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

Как видно из рис. 1, при a(L) > 0, точка z3 не может быть точкой максимума. Сравним между собой значения /(z1) и/z3).

п arg (w)

Обозначим: у =--

6 3

и исследуем поведение у при L ^ да. Поскольку при

L ^ да имеем a(L) = и b(L) = о(-Lj, p = —1—2a(L) = —1 — о(L-j, q = --1(a(L)+b(L)) = о то ввиду соотношения arctg (t) = t + o(t2) при t ^ 0 выводим: при L ^ да

arg (w) = arcctg

—/

2 4p3 q + ——

27

—A

=^—arctg

2 4 p3 27

—Л

f —^(a(L) + b( L)) + о ( L)

Отсюда получаем: при L ^

п 1

— =

6 3

п 3tJ3

Л

24

(a( L) + b( L))

+ о | -L V2^ L) + b( L)) + о ( L |.

На основе (10) выводим: при L ^ да

-• cos( ———— | = —

cos| — | — 2sin| — |sin| —+—

= —1—^—1 + o(—) = —1—1(a(L) + b(L)) + о (2 2 2 4 {L

(12)

и, аналогично,

arg (w)

3

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

z3 = 2Л3/| W • cos | ov'r/ | = • cos( | = • cos | — |—2sin (-2 |sin(———

2 6

= 1 + 0(У) = 1+^L) + b(L)) + о(j |.

На основе (12) имеем: при L ^ да 4/(21) = — (1+4(a(L)+b(L))] + (2+a(L))^1 + -4(a(L)+b(L))| + 2(a(L)+b(L))^— 1—1(a(L)+b(L))j +

k=1

q

да

z1 =

+ c(L) -1 + о| L j = -1 - (a(L) + b(L)) + 2 + (a(L)+b(L))+a(L) - 2(a(L)+b(L))+c(L) - 4 + o|L

= 1 - (a(L) + 2b(L))+c(L) - 4 + o| -L

и, аналогично,

4/ (z3) = -fl+ L(a(L)+b(L))l + (2 + a(L))fl+1(a(L)+b(L))l + 2(a(L)+b(L))fl+L(a(L)+b(L-))

.„.^+и+<П1+>,

+ с(Ь) — -4 + о| Ь ^ = — 1 — (а(Ь) + Ъ(Ь)) + 2 + (а(Ь) + Ъ(Ь)) + а(Ь) + 2(а(Ь)+Ъ(Ь))+с(Ь) — 1 + о^ Ц ^ =

= 1 + (3а(Ь) + 2Ъ(Ь)) + с(Ь) — -4 + о| Ц ^.

Отсюда выводим: при Ь ^да / (—3) — / (—1) = а(Ь) + Ъ(Ь)) + •

Следовательно, для точки максимума —тах функции /—) имеем: если а(Ь) + Ъ(Ь))> 0, то —тах = —3; если же а(Ь) + Ъ(Ь)) < 0, то —тах = — . При а(Х) + Ъ(А,)) = 0 (т. е. q = 0, р = 1 + а(Ь)/2 > 0 при достаточно больших Ь) для функции/—) справедливо представление

4/(z,L) = a(L)z2 + 4c(L)-(z2-l)2 =- z2-| 1 + | + c(L) + a(L) + ^(a(L))

2

a(L)

2

1

2

h a(L) a(L)

откуда вытекает: zL = -J1 +—— , z3 = J1 +—— и / (z3) = / (z1), т. е. zmax = zL = z3 и в качестве

точки максимума можно выбирать любую из точек - z1 или z3. Последние соотношения можно

п

получить и на основе соотношений (10) - в данном случае ф = .

На основе всего вышесказанного, определения функций a(L) и b(L), полагая

A0 = A + ^Lk (G(k))2 , B0 = B - 2^LkG{ )(E(~k)+tk), приходим к следующему правилу выбора ре-

k=1 k=1

шения задачи (6): если A0 + B0 > 0, то zmax = z3; если A0 + B0 < 0, то zmax = zx; при A0 + B0 = 0 име-

z- +1

ем zmax = zx = z3. Поскольку lim zx = -1, lim z3 = 1, то, полагая xi = —- (i = 1, 2, 3), приходим

L^-OI L^-ai 2

к следующему выражению для точек максимума xmax в задаче (6) в терминах переменной x:

Xmax = Х(A + B0 > 0), (13)

где x(C) - индикаторная функция, равная 1, когда условие С выполняется, и равная нулю в противном случае. Отметим, что в приведенном правиле полагаем xmax= 0 в случае A0 + B0 = 0, что позволяет упростить исходное выражение целевой функции в случае многих переменных. Отметим, что условие (13) зависит также от параметров метода штрафных функций коэффициентов

{Lk, k = 1; K } и введенных дополнительно переменных {tk, k = 1; K }. Общие результаты по методу штрафных функций [7, гл. 5, § 12] позволяют утверждать, что при достаточно больших значениях параметров {Lk, k = 1; K } конечный результат не зависит от конкретных значений этих параметров, хотя, безусловно, целесообразно привести соотношение (13) к виду, который не зависел бы от параметров метода, а зависел бы только от входных параметров задачи (1), (2).

3. Вывод системы уравнений для нахождения решения общей задачи

Вернемся к решению общей задачи (1), (2), которая при достаточно больших L равносильна задаче (5).

Если точка х* = (х*, х2, ..., хм) является точкой максимума задачи (5), то для каждого i, 1 < I < N, точка х(,) = (х1, х*, ..., х*-1, xi, х*+1, ..., хм) является точкой максимума одномерной задачи по переменной х,, когда значения остальных переменных совпадают со значениями этих же переменных в точке максимума. Последняя задача исследована в разделе 2. Запишем решение полученной одномерной задачи на основе результатов, полученных в разделе 2.

Для фиксированного i из (4) получаем:

1 dz к

2 дх/ k=1

A = 1 dZ = A — 2X LtG<k)

B0=dZ

дхг

N ( K

= £ ( A + Afi— 2£LkG(k)(E((k) +tk) |Xj + Bt

X=0 i=W * v k=1

Тогда условие оптимальности значения переменной (13) по переменной х, в точке х2 максимума запишется в следующем виде:

К N ( К 1

X* = х(А - 2ТЦДк) + Е [а + А - + В, > 0).

к=1 р=1, р ф, V к=1 )

Получаем следующую систему уравнений для нахождения оптимального решения х* задачи (4):

N ( К 1 К _

X, = Х( Е |4 + А - 2ЕЦк^(к)(Е(к) + tk )1 х + А - ^Ц^ + В, > 0), , = 1, N.

р=1,рФ, V к=1 ) к=1

(14)

Таким образом, решение исходной задачи (1), (2) квадратичного бинарного программирования свелось к нахождению решения системы (14), состоящей из N уравнений и содержащей N + К переменных {х,. tk }, удовлетворяющих ограничениям (2), tk > 0, и К параметров {Цк}.

В частном случае задач бинарного линейного программирования, когда все коэффициенты Ар перед квадратичными слагаемыми равны нулю, система (14) перепишется в виде

N ( К 1 К _

х = х( Е\-2ЕЦ&к)(Е(к) + tk )1 х - + В, > 0), , = 1, N. (15)

р=1,рФ, V к=1 ) к=1

Условия (15) при отсутствии ограничений принимают следующий простой вид: х{ = х(В{ > 0), т. е. х, = 1, если В, > 0, и х, = 0, если В, < 0, что согласуется с непосредственным решением на основе анализа соответствующей оптимизационной задачи.

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

4. Эвристический алгоритм решения задачи

Пусть имеется некоторое текущее решение х системы (14), удовлетворяющее следующим условиям:

N ( К 1 К

х, = Х( Е | А + аП - 2ЕЦ^?\Е{к) + tk) х + А - + В, > 0) для , е I, (16)

р=1,рФ, V к =1 ) к=1

N С К Л К _

* х( Ё I А +-2Ё^к^) + ) х,- + А -2Ё4^к) + В, > 0) для , 6(1,2, ..., Л}\I = I, (17)

3=и'*> V к=1 /

к=1

^ > 0 для к 6 Л с {1, 2, ..., К} и Гк < 0 для к г Л , (18)

где I = 1( X , t), ^ = ..., tK), - некоторое подмножество индексов из набора {1, .2, ..., Щ,

для которых условие (14) выполняется, а I — множество остальных индексов, для которых условие (14) не выполнено; аналогично определение множества х, t). Тогда, если I не пусто, то к вектору х прибавляем некоторый специальным образом построенный вектор смещения d = d2, ..., dN; 81, 52,..., 5К), т. е. получаем у = (х; ^ + d . Затем компоненты вектора у округляем до ближайшего из чисел 0 или 1; полученный вектор (X; t) и является новым значением вектора решений (х; t). Таким образом, необходимо так выбрать вектор d , чтобы в результате описанных построений число элементов множеств I(X; () и Я(X; было бы по крайней мере не больше числа элементов множества I(х; ^ и Я(х; ^ . Ниже описывается процедура построения указанного вектора d .

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

К

0,(х1,..., XN; ..., tк) = Ё I А + 4, -2Ё^)(Е(к) + tk) Iх + Л, -2Ё^) + В,

3=1,3*. V к=1

— выражение, записанное под знаком индикаторной функции в (14). Тогда направление максимального роста функции 0, равно

К К

8^0, =1 Л,1 + Д, -2ЁЦО(к)(Е(к) + tk); Л,2 + Аг -2Ё¿к^к)(Е(к) + tk); ...; Л,,,- + Л,-,, -V к =1 к =1

К К К

-2ЁЬкО^Е) + tk); 0; Ли+1 + Л,+м -2ЁЫк)Е) + tk); ...; Лш + Л№ -2Ё^)(Е(к) + tk);

к=1 к=1 к=1 N N N Л

-2 Ё А^Ч; - 2 Ё хз;...; - 2 Ё ^х, .

3=1,3*' 3=1,3*' 3=1,3*' /

Если , 6 I (т. е. для индекса , условие (14) выполнено), то желательно так изменять вектор (х1, ..., xN), чтобы для индекса , условие (14) по-прежнему выполнялось. Это означает, что

если в (16) х, = 1, т. е. 9,.(х1, ..., xN) > 0, то желательно, чтобы вектор d был бы по направлению как можно ближе к вектору grad0I.. Если же в (16) х, = 0, т. е. 0,.(х1,..., xN) < 0, то вектор d должен быть направлен в противоположную сторону, т. е. как можно ближе к вектору — grad0I.. Выполнение данных условий дает определенные гарантии того, что условие (16) для индекса , сохранится в новом решении X . В случае же выполнения (17) для индекса ,', т. е. при , 61, требования к вектору d в каждом из двух случаев (х, = 0 и х, = 1) заменяются на противоположные по соображениям, аналогичным предыдущему случаю: если в (17) х, = 0, т. е. 9,.(х1, ..., xN)> 0,

то желательно, чтобы вектор d был бы направлен в сторону, противоположную направлению роста функции 9,.(х1, ..., xN) для того, чтобы добиться выполнения противоположного неравенства 9,.(х1, ..., xN) < 0 — по направлению как можно ближе к вектору —grad0,.; если же в (17) х, = 1, т. е. 0,.(х1, ..., xN) < 0, то вектор d должен быть направлен в противоположную сторону,

N

К

к=1

т. е. как можно ближе к вектору grad0I.. Аналогичные рассуждения и обоснования можно использовать и для выбора значений последних К компонентов вектора d , относящихся к переменным к поскольку необходимо обеспечить выполнение условия 4 > 0.

Вектор d сформируем как линейную комбинацию векторов grad0I. по всем .. Встает вопрос о величине коэффициента перед каждым слагаемым grad 0. в этой линейной комбинации. Отметим: можно принять, что вклад слагаемых, для которых выполняется условие (14) (выполнение этих условий надо сохранить), равен вкладу слагаемых, для которых это условие не выполняется, поскольку для решения задачи одинаково важны как сохранение части уже выполняемых условий, так и обеспечение изменения невыполняемых условий. Важно также, чтобы векторы d и х были равноценны при формировании вектора х, поскольку влияние обоих слагаемых одинаково важно при вычислении X. Последнее требование мы представим в виде со-

отношение

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

d

где

есть длина вектора г .

Для вычисления коэффициентов указанной линейной комбинации воспользуемся следующим рассуждениями. Если значение 9,.(х1, ..., tK) достаточно велико по модулю, то значения функции 0. могут быть подвергнуты более резким изменениям с относительно большими шансами, что при этом условие (15) для индекса . сохранится при . е I, условие (17) заменится на противоположное при . е I, и, аналогично, для условий (18). Сказанное означает, что вектор grad0I. в линейной комбинации должен учитываться в меньшей степени (т. к., как было сказано

выше, предполагается вектор d максимально «запараллелить» с векторами grad0I.), т. е. его коэффициент в линейной комбинации может быть малым, чтобы меньше мешать изменению условий в (17). Если же значение 9.(х1, ..., tK) мало, то при формировании вектора d в случае (16) (т. е. при . е I) значение вектора -grad9. в составе d должно учитываться в большей степени, чтобы обеспечить, по возможности, сохранение условия (16), т. е. коэффициент должен быть большим. В случае же условия (17), т. е. при . е I, при малом абсолютном значении 0. значение коэффициента перед вектором grad 9. может быть большим, чтобы способствовать изменению условий (17) на противоположные. Отметим: чем больше значение 9.(х1,..., tK), тем в большей степени должно учитываться значение вектора grad 9.. Построим векторы ц..(х, ^

и Zi(х, 0 на основе вектора grad 9. путем замены на нулевые значения последних К координат (относящихся к переменным tk) соответственно первых N координат (относящихся к переменным х.). При этом N + к)-я координата последнего вектора умножается на 4/2 для всех к от 1 до К.

Вышесказанное позволяет предложить следующее выражение для вектора d :

D = !

x N

(

1(2 X -1)-

а( x)

ß+e, (x, t) ц, (x, t)|

Ц. ( X, t)

Ъ^г + r

(x)£|e, (x, t )|

u, (x, t)

D. - 1

KN

I

I (sgn(tt))

n(t) Z, (x, t)

5 +

e, (x, t)| |z , (x, t)|

+

p(t)l|e,(x, t)

(x, t)

(

JJ

Z,(x, t)

Z, (x, t)

JJ

- Dx + Dt I--

d =

+ D,

|( x, t)

(19)

где (2 х. -1) задает знак .-го слагаемого в соответствии с представленными выше обоснованиями для случаев х. = 0 и х. = 1, sgn(tk) =1, если tk > 0, sgn(tk) = -1, если tk < 0, параметры а (х) > 0, в > 0, г(х) > 0 и ) > 0, 5 > 0, р^)> 0 выбираются так, чтобы

1=1

р+е,. (х, о ¿е/ 1 о+ е,.(х, t) ¿е/' 1

Можно взять в = 0,1 (на порядок меньше промежутка [0; 1] поиска решений) и 5 = 0,01 (большая часть переменных 4 равна нулю в оптимальном решении). Тогда а (х) линейно выражается через г(х), что после подстановки в выражение для d в (19) приводит к сокращению числителя и знаменателя на г(х). Это означает, что вектор d от конкретных значений г(х) не зависит, и поэтому можно положить г (х) = 1. Тогда

Л

„ 1

а ( x) =

zh(Ц

iel Р+ 9,.(X) feT

Аналогичное выражение выводится и для n(t) :

f Л-1

П(0 = Ir-т1-^ z|e, (x )|.

iel 0+ 9; (X) 1-е! V I 1 I/

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

Предположим, что целевую функцию исходной задачи (1) удалось представить в виде суммы S отдельных относительно простых слагаемых; например, в задаче формирования учебного расписания [1] целевая функция представляет собой сумму 19 относительно простых слагаемых. Тогда исходная задача (1) запишется в виде (3). По описанной процедуре с нулевыми начальными данными решаем независимо S задач (2), (3), в k-й из которых целевая функция равна k-му квадратичному слагаемому целевой функции. Пусть в результате решения k-й задачи

-(*) -(°) „ получено оптимальное решение x . Т огда в качестве начального решения x исходной задачи (1), (2) можно взять следующий вектор: полагаем y = (y1, y2,..., yN) = — Zx( ^ ; тогда вектор

S k=1

x0) = ( x<0), x20), ..., xN0)), где x(k) = 1, если yk > 0,5 , и x(k) = 0, если yk < 0,5 (k = 1;N ). Полученное описанным образом решение во многих случаях будет существенно ближе к искомому оптимальному решению, чем при случайном начальном варианте решения, что значимо уменьшит число требуемых итераций для нахождения оптимального решения x* .

Описанная процедура нахождения решения системы (14) может быть записана в виде следующего общего алгоритма.

-(0) -(0)

1. Задается начальное решение x . Можно положить x = (0; 0; ...; 0), либо взять любой другой набор из N чисел 0 и 1, либо найти начальное значение на основе описанной выше процедуры.

-(к )

2. Пусть построено решение x для некоторого к > 0. Тогда на основе соотношений (17) и (18) находим вектор d .

3. Находим вектор y = (y1, y2, ..., yN) : y = x + d . Затем находим новый вектор решений

хк-1) = ( x<k-1), x2k-1), ,..., xN-1)), где x(k-1)= 1, если yk > 0,5, и x(k-1)= 0, если yk < 0,5 ((к = ).

4. Если для i выполнены условия (14), то процесс поиска прекращаем и полагаем

— -(k+1)

x* = x . В противном случае переходим к шагу 2.

-1

Укажем на следующий важный элемент решения задачи (1), (2). В процессе преобразования указанной задачи в соответствии с методом штрафных функций были введены параметры {Ь^} (см. (5)). Выбор указанных параметров метода штрафных функций предполагается выполнить на основе существующих методов, приведенных во многих источниках; например в [7]. Однако специфический тип целевой функции (мы рассматриваем квадратичные функции), по-видимому, позволяет уточнить правила выбора параметров штрафных функций, что предполагается выполнить в дальнейшем.

Заключение

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

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

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

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

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

1. Попов Г. А. Формализация задачи составления учебного расписания в высшем учебном заведении // Вестн. Астрахан. гос. техн. ун-та. 2006. № 1. С. 120-140.

2. Астахова И. Ф., Фирас А. М. Составление расписания учебных занятий на основе генетического алгоритма // Вестн. Воронеж. гос. ун-та. 2013. № 2. С. 93-99.

3. Кофман А., Анри-Лабордер А. Методы и модели исследования операций. Т. 3. Целочисленное программирование. М.: Мир, 1977. 433 с.

4. Соколов Г. А. Линейные и целочисленные задачи оптимизации: учеб. пособие. М.: Инфра-М, 2017. 132 с.

5. КовалевМ. М. Дискретная оптимизация: Целочисленное программирование. М.: Эдиториал УРСС, 2003. 191 с.

6. Курош А. Г. Курс высшей алгебры. М.: Наука, 1968. 451 с.

7. Васильев Ф. П. Численные методы решения экстремальных задач. М.: Наука, 1980. 518 с.

Статья поступила в редакцию 21.03.2017

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

Попов Георгий Александрович - Россия, 414056, Астрахань; Астраханский государственный технический университет; д-р техн. наук, профессор; зав. кафедрой информационной безопасности; popov@astu.org.

G. A. Popov

ALGORITHM OF SOLVING THE PROBLEMS OF THE BINARY SQUARE PROGRAMMING BY THE METHOD OF PENALTY FUNCTIONS

Abstract. In this paper the author analyses generalization of the classical quadratic programming problem, when along with linear constraints quadratic constraints are allowed. The author consider the case when variables can take only binary values 0 or 1. Such problems are important when choice of the optimal structures of systems covers a large number of variants, and the choice or refusal to select individual variants is equivalent to values 1 or 0 of the corresponding binary variables. There is described the procedure of reducing the indicated problem to the fourth-degree polynomial programming problem on the basis of the penalty method, when all terms are no greater than in the second power, except one having a fourth power. The solution of the obtained optimization problem is reduced to solving a system of equations containing only binary variables. The author proposes a heuristic recursive algorithm for solving the resulting system of equations, and variants of constructing the initial version of the solution. The parameters used in the proposed method are described. In the process of reduction, there are used the classical Cardano formulas for the roots of a cubic equation, for the practical finding of which the relations are obtained and the calculation procedure is described. The algorithm given in this paper can also be used to solve many problems of discrete mathematics.

Key words: quadratic programming, binary variables, optimal solution, Cardano formula, heuristic algorithm.

REFERENCES

1. Popov G. A. Formalizatsiia zadachi sostavleniia uchebnogo raspisaniia v vysshem uchebnom zavedenii [Formalization of the problem of drawing up a timetable in Universities]. Vestnik Astrakhanskogo gosudarstven-nogo tekhnicheskogo universiteta, 2006, no. 1, pp. 120-140.

2. Astakhova I. F., Firas A. M. Sostavlenie raspisaniia uchebnykh zaniatii na osnove geneticheskogo algo-ritma [Drawing up the curriculum using a genetic algorithm]. Vestnik Voronezhskogo gosudarstvennogo universiteta, 2013, no. 2, pp. 93-99.

3. Kofman A., Anri-Laborder A. Metody i modeli issledovaniia operatsii. T. 3. Tselochislennoe programmi-rovanie [Techniques and models for investigating operations. Vol. 3. Integer programming]. Moscow, Mir Publ., 1977. 433 p.

4. Sokolov G. A. Lineinye i tselochislennye zadachi optimizatsii [Linear and integer problems of optimization]. Moscow, Infra-M Publ., 2017. 132 p.

5. Kovalev M. M. Diskretnaia optimizatsiia: Tselochislennoe programmirovanie [Discrete optimization. Integer programming]. Moscow, Editorial URSS Publ., 2003. 191 p.

6. Kurosh A. G. Kurs vysshei algebry [Higher algebra course]. Moscow, Nauka Publ., 1968. 451 p.

7. Vasil'ev F. P. Chislennye metody resheniia ekstremal'nykh zadach [Nummerical methods for solving ex-tremum problems]. Moscow, Nauka Publ., 1980. 518 p.

The article submitted to the editors 21.03.2017

INFORMATION ABOUT THE AUTHOR

Popov Georgiy Aleksandrovich - Russia, 414056, Astrakhan; Astrakhan State Technical University; Doctor of Technical Sciences, Professor; Head of the Department of the Information Security; popov@astu.org.

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