УДК 519.852, 004.032.26 DOI: 10.14529/cmse220103
ВИЗУАЛЬНОЕ ПРЕДСТАВЛЕНИЕ МНОГОМЕРНЫХ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
© 2022 Н.А. Ольховский, Л.Б. Соколинский
Южно-Уральский государственный университет (454 080 Челябинск, пр. им. В. И. Ленина, д. 76) E-mail: [email protected], [email protected] Поступила в редакцию: 10.03.2022
В статье строится n-мерная математическая модель визуального представления задачи линейного программирования. Эта модель позволит использовать аппарат искусственных нейронных сетей для решения многомерных задач линейной оптимизации, допустимая область которых является ограниченным непустым множеством. Для визуализации задачи линейного программирования вводится целевая гиперплоскость, ориентация которой определяется градиентом линейной целевой функции: градиент является нормалью к целевой гиперплоскости. В случае поиска максимума целевая гиперплоскость располагается таким образом, чтобы значение целевой функции во всех ее точках превосходило значение целевой функции во всех точках допустимой области, представляющей собой ограниченный выпуклый многогранник. Для произвольной точки целевой гиперплоскости определяется целевая проекция на многогранник: чем ближе точка целевой проекции к целевой гиперплоскости, тем больше значение целевой функции в этой точке. На основе целевой гиперплоскости строится конечное регулярное множество точек, называемое рецептивным полем. С помощью целевых проекций строится образ многогранника, включающий в себя точки рецептивного поля и расстояния до соответствующих точек поверхности многогранника. На основе предложенной модели строится параллельный алгоритм визуализации задачи линейного программирования. Дается аналитическая оценка его масштабируемости. Приводятся сведения о программной реализации и результаты масштабных вычислительных экспериментов, подтверждающие эффективность предложенных подходов.
Ключевые слова: линейное программирование, п-мерная визуализация\, математическая модель, параллельный алгоритм, BSF-каркас.
ОБРАЗЕЦ ЦИТИРОВАНИЯ
Ольховский Н.А., Соколинский Л.Б. Визуальное представление многомерных задач линейного программирования // Вестник ЮУрГУ. Серия: Вычислительная математика и информатика. 2022. Т. И, № 1. С. 31-56. DOI: 10.14529/cmse220103.
Введение
Быстрое развитие технологий накопления и обработки больших данных [1, 2] привело к появлению оптимизационных математических моделей в виде сверхбольших задач линейного программирования (ЛП) [3]. Такие задачи возникают в индустрии, экономике, логистике, статистике, квантовой физике и других областях [4—8]. Классическое программное обеспечение во многих случаях не позволяет решить подобные масштабные задачи ЛП за приемлемое время [9]. Вместе с тем в ближайшие 2-3 года появятся вычислительные системы экзафлопсного уровня производительности [10], потенциально способные решать подобные задачи. В соответствии с этим актуальной является задача разработки новых эффективных методов для решения сверхбольших задач ЛП с помощью экзамасштабных вычислительных систем.
До настоящего времени одним из самых распространенных способов решения задачи ЛП являлся класс алгоритмов, предложенных и разработанных Данцигом на основе симплекс-метода [11]. Симплекс-метод оказался эффективным для решения большого клас-
2022, т. 11, № 1
31
Визуальное представление многомерных задач линейного программирования
са задач ЛП. Однако симплекс-метод имеет некоторые фундаментальные особенности, ограничивающие его применение для больших задач ЛП. Во-первых, в определенных случаях симплекс-методу приходится перебирать все вершины симплекса, что соответствует экспоненциальной временной сложности [12]. Во-вторых, симплекс-метод в большинстве случаев удовлетворительно решает задачи ЛП, содержащие до 50000 переменных, однако на больших задачах часто наблюдается потеря точности, которая не может быть компенсирована даже путем применения таких ресурсоемких процедур, как «аффинное масштабирование» или «итерационное уточнение» [13]. В-третьих, в общем случае симплекс метод плохо масштабируется на многопроцессорных системах с распределенной памятью. Были предприняты многочисленные попытки построить масштабируемую реализацию симплекс-метода, однако они не увенчались успехом [14]. Кармаркар предложил метод внутренних точек [15], способный решать сверхбольшие задачи ЛП с миллионами переменных и миллионами уравнений [16]. Более того, алгоритмы, основанные на методе внутренних точек, являются самокорректирующимися, и поэтому обеспечивают высокую точность вычислений. В качестве недостатка метода внутренних точек следует отметить тот факт, что для начала работы алгоритма необходимо иметь точку, удовлетворяющую всем ограничениям задачи ЛП. Нахождение такой внутренней точки может сводиться к решению дополнительной задачи ЛП. В качестве альтернативы можно указать метод псевдопроекций, основанный на использовании фейеровских отображений [17]. Еще одним существенным недостатком метода внутренних точек является его плохая масштабируемость применительно к многопроцессорным системам с распределенной памятью. Было сделано несколько попыток построить параллельную реализацию для частных случаев (см., например, [18, 19]), но эффективную параллельную реализацию для экзамасштабных многопроцессорных систем в общем случае построить не удалось. В соответствии с этим является актуальным направление исследований, связанное с поиском новых масштабируемых методов решения задач ЛП.
Возможной эффективной альтернативой классическим методам ЛП являются методы оптимизации, основанные на нейросетевых технологиях. Искусственные нейронные сети [20, 21] являются одним из самых обещающих и быстро развивающихся направлений современных информационных технологий. Нейронные сети представляют собой универсальный инструмент, способный решать задачи практически во всех областях. Особенно большие успехи достигнуты в распознавании и анализе изображений с помощью сверточных нейронных сетей [22]. Однако, в научной периодике практически отсутствуют работы, посвященные применению сверточных нейронных сетей для решения задач линейной оптимизации [23]. Это связано с тем, что сверточные нейронные сети ориентированы на распознавание и анализ изображений, но в научной литературе отсутствуют работы по визуальному представлению многомерных задач линейного программирования. Таким образом, вопрос разработки новых нейросетевых моделей и методов применительно к линейной оптимизации остается открытым.
В этой статье мы предприняли попытку построить n-мерную математическую модель визуального представления задачи ЛП, которая позволит использовать аппарат искусственных нейронных сетей для решения многомерных задач линейной оптимизации, допустимая область которых является ограниченным непустым множеством. Метод визуализации, основанный на описываемой модели, обладает высокой вычислительной сложностью. Поэтому мы предлагаем его реализацию в виде параллельного алгоритма, ориентированного на кластерные вычислительные системы. Статья организована следующим образом. Раз-
32 Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»
Н.А. Ольховский, Л.Б. Соколинский
дел 1 посвящен построению математической модели визуального представления многомерной задачи ЛП. В разделе 2 описывается реализация предложенного метода визуализации в виде параллельного алгоритма и дается аналитическая оценка его масштабируемости. В разделе 3 приводится информация о программной реализации описанного параллельного алгоритма и обсуждаются результаты масштабных вычислительных экспериментов на кластерной вычислительной системе. В заключении суммируются полученные результаты и приводятся направления дальнейших исследований.
1. Математическая модель визуального представления задачи ЛП
Рассмотрим задачу ЛП в следующей форме:
х = argmax{(c,х)\Ах ^ Ь,ж £ Mn} , (1)
где с, 6 £ Mn, A £ Mmxn и с ф 0. Здесь (•, •) обозначает скалярное произведение двух векторов. Мы предполагаем, что ограничение х ^ 0 также включено в систему Ах ^ 6 в виде неравенств
—XI + 0 + ... + 0 0;
0 — ж2 + 0 + ... + 0 0;
0 + ... + 0 - 0.
Вектор с является градиентом линейной целевой функции
/(ж) = С\Х\ + ... + спхп. (2)
Обозначим через М допустимую область задачи (1):
М = {х eRn\Ax ^Ь} . (3)
Везде далее мы предполагаем, что М является непустым ограниченным множеством. Это означает, что М представляет собой выпуклый замкнутый многогранник в пространстве Мп, и множество решений задачи (1) не является пустым.
Пусть (ц £ Мп — вектор, образованный элементами г-той строки матрицы А. Тогда матричное неравенство Ах ^ Ь можно представить в виде системы неравенств
(ф,ж) ^ bi,i = 1,... ,т. (4)
Везде далее мы будем предполагать, что для всех % = 1,... ,т
ОН ф 0. (5)
Обозначим через Hi гиперплоскость, задаваемую уравнением
(ф,ж) = k (1 ^ ^ т).
(6)
Таким образом,
Hi = {х £ МП|(ф,ж) = Ьг} .
(7)
2022, т. 11, № 1
33
Визуальное представление многомерных задач линейного программирования
Определение 1. Под полупространством НХ, порождаемым гиперплоскостью Hi, будем понимать полупространство, определяемое формулой
Hf = {х £ Мп|(ф, х) ^ bi} . (8)
Везде далее мы будем предполагать, что задача (1) является невырожденной, то есть
V* ф j :Щф Hj (i,j £ {1,...,т}). (9)
Определение 2. Полупространство НХ, порождаемое гиперплоскостью Hi, является рецессивным относительно вектора с, если
Ух £ Hi,VA £ М>о : х — Ас £ Hf Ах — Xс<£ Hi. (10)
Другими словами, луч, исходящий из гиперплоскости Hi в направлении противоположном вектору с, полностью лежит в Н?, но не в Hi.
Утверждение 1. Необходимым и достаточным условием рецессивности полупространства НХ относительно вектора с является условие
(ф,с)> 0. (11)
Доказательство. Докажем сначала необходимость. Пусть выполняется условие (10). Из (7) следует
х = Д-£Нг. (12)
|\&i 11
Из (5) следует
А = _ ||2 £ М>0. (13)
11а*И
Сопоставляя (10),(12) и (13) получаем
bi (I/
\йг\\‘
Ь/ bi
£Я+;
;. 112 г ’
; П12
с£Щ.
С учетом (7), (8) отсюда следует, что
bidi
< h.
(14)
Выполнив несложные преобразования неравенства (14), получаем (11).
Доказательство достаточности проведем от противного. Предположим, что имеет место (11) и существуют х £ Hi и А > 0 такие, что
х — Ас ^ Яг+ V х — Ас £ Hi.
34
Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»
Н.А. Ольховский, Л.Б. Соколинский
В соответствии с (7), (8) это означает
(йг,х - Ас) ^ bi,
что равносильно
(йг,х) - A {hi, с) ^ bi.
Так как А > 0, то в силу (11) отсюда получаем
(di,x) > bi,
что противоречит предположению х £ Hi.
□
Определение 3. Зафиксируем точку z £ Мп такую, что полупространство
Я+ = {х £ Мп| (с, ж - z) 0} (15)
включает в себя многогранник М:
М С Я+.
Полупространство Яф в этом случае будем называть целевым полупространством, а гиперплоскость Яс, определяемую уравнением
Яс = {ж £ Мп| (с, ж — z) = 0} , (16)
будем называть целевой гиперплоскостью.
Обозначим через 7Гс(ж) ортогональную проекцию точки ж на целевую гиперплоскость Яс:
f \ (c,x-z)
7Гс(ж) = Ж--Г--75—С. (17)
Нс1г
Здесь || • || обозначает евклидову норму. Определим расстояние рс{ж) от точки ж £ Яф до целевой гиперплоскости Яс следующим образом:
рс(ж) = ||7Гс(ж) - Ж
(18)
Сопоставляя (15), (17) и (18) находим, что в этом случае расстояние рс{ж) может быть вычислено следующим образом:
Рс(х)
(с, z — ж)
(19)
Справедливо следующее утверждение. Утверждение 2. Для любых ж, у £ Яф
Рс(х) «S Рс(у) (с, ж) ^ (с, у).
2022, т. 11, № 1
35
Визуальное представление многомерных задач линейного программирования
Доказательство. Используя (19), получаем
Рс(х) ^ Рс(у) & (с, z-x) ^ (с 11^11 ■,Z- с
^ (с, z — ж) sj (с -у)
^ (с, z) + (с, -ж > ^ (c,z) + (с, -у)
^ (с, 77 V/ 1 -у)
^ (с, Ж> > (с, у)
В соответствии с утверждением 2 задача (1) эквивалентна следующей задаче:
□
ж = ащпнп{рс(ж)|ж £ М} . (20)
Определение 4. Пусть полупространство Hf является рецессивным относительно вектора с. Целевой проекцией уфж) точки ж £ Мп на рецессивное полупространство Hf называется точка, определяемая формулой
7;(ж) = ж - стфж)с,
(21)
где
стфж) = min {а £ М^о | ж — ас £ Hf} . Примеры целевых проекций в М2 приведены на рис. 1.
Рис. 1. Целевые проекции в пространстве R2: 'Ji(x')
qf; 7г(ж") = q" = х"
Следующее утверждение предоставляет формулу для вычисления целевой проекции на полупространство, рецессивное относительно вектора с.
Утверждение 3. Пусть полупространство Hf, определяемое неравенством
(ф,ж) ^ bi,
является рецессивным относительно вектора с. Пусть
9tHf.
Тогда
тi(g) = д
(йг,д) -bj (Ф, с)
(22)
(23)
(24)
36
Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»
Н.А. Ольховский, Л.Б. Соколинский
Доказательство. В соответствии с определением 4 имеем
7i(g) =9~ (п(д)с,
где
<Ji(x) = min {а £ М^о | ж — стс £ Яг+ } . Таким образом, нам необходимо показать, что
{ahg) - bi
(Й;,с)
= min {а £ М^о | ж — ас £ Н+ } .
(25)
Рассмотрим прямую L, задаваемую параметрическим уравнением
L = {д + тс|т £ М} .
Пусть точка q является пересечением прямой L с гиперплоскостью Яд
q = L П Яд (26)
Тогда q должна удовлетворять уравнению
q = g + T'c (27)
при некотором т' £ М. Подставим правую часть уравнения (27) в уравнение (6) вместо ж:
(сц,д + т'с) = bi.
Отсюда
(йг,д) +т' (Йд с) = bi,
/__bi — (&i, д)
(Ф, с)
Подставив вместо Я правую часть уравнения (28) в формулу (27) получаем
. ^ - {сц,д)
9 = 9 + —д—^—с,
(28)
что эквивалентно
(Йдс)
{сц,д) - bi
9 = 9----тт—;—с.
(Йдс)
(29)
Так как q Е Hi в соответствии с (26), формула (25) будет иметь место, если мы покажем, что
(п.-п\ - hr
(30)
Vo- £ М>0 : а < ^ ^ ^д-ас£Н+.
(Ф,с)
Предположим противное, то есть существует а' > 0 такое, что
/ , 9) ~ bi
а <
и
2022, т. 11, № 1
{си, с)
д — а'с £ я+.
(31)
(32) 37
Визуальное представление многомерных задач линейного программирования
Рис. 2. Целевые проекции на многогранник М в пространстве М2: 'Ум(д') = q']
7 м{д") = оо
Тогда из (22) и (32) следует
(Ф, д — а'с) ^ bi,
что равносильно
(Ф, д) - bi sC a' (ai} с). (33)
В силу утверждения 1 имеем (а*, с) > 0. Поэтому (33) равносильно
g)~^i /
—7~---\— ^ а •
(йг, с)
Получили противоречие с (31). □
Определение 5. Пусть д Е Нс. Целевой проекцией jм{д) точки д на многогранник М называется точка, определяемая формулой
7м(д) = д -стм(д)с, (34)
где
ам(д) = min {и Е М^о|# - ас Е М} .
Если
-■3 а Е М^о : д — ere Е М,
полагаем 7м{д) = об — точка, бесконечно удаленная от М.
Примеры целевых проекций на многогранник М в М2 приведены на рис. 2.
Определение 6. Рецептивным полем 5) С Нс плотности 5 Е М>о с центром в
точке z Е Нс и рангом rj Е N будем называть конечное упорядоченное множество точек, удовлетворяющих следующим условиям:
2 Е 0(2,77,5); (35)
Уд Е 0(2,77,5) : \\g-z\\ ^ дбЦп; (36)
Уд',д" Е 0(2,77,5) : 0' ф д” => \\д' -д"\\ ^ 5; (37)
V Е 0(2,77,5) 3/ Е 0(2,77,5) : 1Ф' -/II = 5; (38)
\/ж Е Со(0(2,77, 5)) 3g Е 0(2,77, 5) : |ф — ж|| ^ (39)
38
Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»
Н.А. Ольховский, Л.Б. Соколинский
Здесь Со(Х) обозначает выпуклую оболочку конечного множества точек X = {х^\...,х^} С W1:
к
Co(X) = \J2 А,
х
(О
. г=1
К
Л,- G
Х>
г=1
= 1
Точки рецептивного поля будем называть рецептивными точками.
Формула (35) в определении 6 означает, что точка, находящаяся в центре рецептивного поля, принадлежит этому полю. Из формулы (36) следует, что любая точка д рецептивного поля отстоит от центральной точки z на расстояние не более rfSy/n. В соответствии с формулой (37) для любых двух различных точек д' ф д" рецептивного поля расстояние между ними не может быть меньше 5. Формула (38) говорит, что для любой точки д' рецептивного поля найдется точка д", принадлежащая этому же полю, такая, что расстояние между д' и д" будет равно 5. Формула (39) означает, что для любой точки х, принадлежащей выпуклой оболочке рецептивного поля, в этом поле найдется точка д, отстоящая от х на расстояние не более ^5у/п. Пример рецептивного поля в пространстве М3 приведен на рис. 3.
Опишем конструктивный метод построения рецептивного поля. Без ограничения общности мы можем предполагать, что сп ф 0. Построим в Мп следующий ортогональный базис, включающий в себя вектор с:
;(0) = С= (Cl, Сг, Сз, С4, . . . , Сп-1,Сп)
Н) = s~^n 2 / J . ^С{ •> С 2 5 Сз, С4, . . . —'г=2 5 Сп—15 | , если ci ф 0;
1(1,0, ..., 0), если С\ = 0;
.(2) = (0,- 1 Y^n 2 с2 Z^j=з Ci ’ Сз’ С4,--- 5 Сп — 1 5 , если сг ф 0;
1(0,1, 0,..., 0), если Сг = 0: )
;(3) = ( (о,0, 1 2 1 Сз Z^j=4C*’C4’• • • ’ Сп— 1ч Сп^ 5 если сз ф 0;
1 (0,0, 1, 0,..., 0), если сз = 0;
фп—2)
c(n-i)
(о, • • • ) 0, Сп-2 п —1 ’ Сп — ’ если сп — 2 Ф~ 0;
(0,..., 0,1, 0, 0), если сп—2 = 0;
(о,..., 0,<х) , если сп-1 ф 0;
(0,..., 0, 0,1, 0), если сп-1 = 0.
Непосредственно проверяется, что
Vi, 3 £ {0,1,. ..,п- 1}, г ф j : (cW,c(j)\ = 0.
В частности
Vi = 1,..., п — 1 : (с, с^ = 0.
(40)
2022, т. 11, № 1
39
Визуальное представление многомерных задач линейного программирования
©c(z,r?,5)
»-----•----•----•-----•'ч
i------
t]S
^5
Рис. 3. Рецептивное поле в пространстве М3
Следующее утверждение показывает, что линейное подпространство размерности (п — 1), порождаемое ортогональными векторами а,..., cn_i, является гиперплоскостью, параллельной гиперплоскости Нс.
Утверждение 4. Определим линейное подпространство Sc С Мп размерности п — 1:
( п — 1
Sc = {'52>«c®
ч г=1
A i £
Тогда
Vs £ Sc : s z £ Нс.
Доказательство. Пусть s £ Sc, то есть
s = Ait/1) + ... + An_i<An_1).
(41)
(42)
Тогда
(с, (s + z) - z) = Ai (с, c(1)^ + ... + An_i (c, .
Отсюда в силу (40) получаем
(с, (s + z) - z) = 0.
Сопоставляя это с (16), имеем s + z £ Нс. □
Определим векторы
/ С''1' е - мои .,га- 1), (43)
образующие ортонормированный базис подпространства Sc.
Процедура построения рецептивного поля представлена в виде алгоритма 1. Этот алгоритм строит рецептивное поле 5), состоящее из
К& = (2 7] + If”1 (44)
точек, расположенных в узлах регулярной решетки, имеющей форму гиперквадрата (гиперкуба размерности п — 1) с длиной ребра, равной 2г/ё. Длина ребра ячейки гиперквадрата равна 5. В соответствии с шагом 13 алгоритма 1 и утверждением 4 этот гиперквадрат лежит в гиперплоскости Нс и имеет центр в точке z. Недостаток алгоритма 1 состоит в том, что количество вложенных циклов for зависит от размерности пространства. Эту проблему можно решить с помощью функции G, вычисляющей точку рецептивного множества по ее
40
Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»
Н.А. Ольховский, Л.Б. Соколинский
Алгоритм 1 Построение рецептивного поля ©(z, г/, 5) Require: z G НС1 г/ G N, 5 G M>o 1: © := 0
2: for in-i = 0 ... 2rj do 3: sn-i :=in-i5 - r]5
4: for in-2 = 0 ... 2rj do
5: Sn-2 ■= in-2^ — Ф
6:
7: for i\ = 0 ... 2rj do
8: Si — rj5
9: s := 0
10: for j = 1 . . . П — 1 do
11: s := s +
12: end for
13: ©:=©U{s + z}
14: end for
15: end for
16: end for
Алгоритм 2 Функция G вычисляет точку рецептивного поля по ее номеру к
Require: z G Нс, 7] G N, 5 G M>o
1: function G(к, п, z, V,6)
2: for j = (п — 1) , ... 1 do
3: lj := lk/(2V ■ f I)1"1]
4: к:=к mod (2 g + ly-1
5: end for
6: g:=z
7: for j = 1... (n - - 1) do
8: + II - т]6)е^
9: end for
10: G :=g
11: end function
порядковому номеру (нумерация начинается с нуля; порядок определяется алгоритмом 1). Реализация функции G представлена в виде алгоритма 2. Следующее утверждение 5 дает оценку временной сложности алгоритма 2.
Утверждение 5. Алгоритм 2 допускает реализацию с временной сложностью1
cq = Ап2 + 5те — 9, (45)
1Под временной сложностью здесь понимается количество арифметических операций и операций сравнения, необходимых для выполнения алгоритма.
2022, т. 11, № 1
41
Визуальное представление многомерных задач линейного программирования
где п — размерность пространства.
Доказательство. Рассмотрим низкоуровневую реализацию алгоритма 2, представленную в виде алгоритма 3.
Алгоритм 3 Низкоуровневая реализация алгоритма 2 1: р := 2г] + 1; г :=7)5; h :=рп~2; g:=z 2: j :=п — 1 3: repeat 4: lj := [k/h\
5: k:=k mod h
6: h:=h/p
7: j- = j~ 1
8: until j = 0 9: j := 1 10: repeat 11: Wj'.= ljS — r
12: г := 1
13: repeat
14: дг^дг+Wjey'
15: i:=i +1
16: until i > n
17: j: = j + l
18: until j = n
Значения, вычисляемые на шагах 1-2 алгоритма 3, не зависят от номера рецептивной точки к и поэтому могут считаться константами. Цикл repeat/until на шагах 3-8 выполняется (п — 1) раз и требует Сз:8 = 5(п — 1) операций. Вложенный цикл repeat/until на шагах 13-16 выполняется п раз и требует с\:>у\с = 4п операций. Внешний цикл repeat/until на шагах 10-18 выполняется (п — 1) раз и требует сюдв = (4 + ci3_i6)(n - 1) = 4(п2 - 1) операций. В сумме получаем
CG = С3:8 + С10:18 = 4п2 + Ъп - 9.
□
Следствие 1. Временная сложность алгоритма 2 может быть оценена как 0(п2).
Определение 7. Пусть z £ Нс. Зафиксируем г/ £ N, 5 £ К>о- Образом 3(z, г/, 5), порожденным рецептивным полем <6(z, г/, 5), будем называть упорядоченное множество вещественных чисел
3(z,rj,5) = {рс{1м{д))\д £ 8(z,ri,5)}. (46)
Порядок чисел в образе определяется порядком соответствующих точек рецептивного поля.
Функцию построения образа 3(z, г/, 5) в виде списка чисел представлена в виде алгоритма 4. Здесь [] обозначает пустой список, а -Н- обозначает операцию конкатенации списков.
42
Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»
Н.А. Ольховский, Л.Б. Соколинский
Алгоритм 4 Построение образа 3(z, 77, 5) Require: z G HCl 77 G N, 5 G M>o 1: function 3(z, 7], 5)
2: 3: = []
3: for к = 0... ((2?] + l)n_1 — 1) do
4: gk:=G(k,n,z,r],5)
5: 3:= Л-Н- [рс{3м{дк))]
6: end for
7: end function
Покажем как полученный образ может быть использован для решения задачи ЛП. Пусть (ф, с) > 0. Это означает, что полупространство Hf является рецессивным относительно вектора с (см. утверждение 1). Пусть имеется точка и G Hi П М. Допустим, что нам удалось создать искусственную нейронную сеть DNN, получающую на входе образ 3(тгс(и),г], 5) окрестности точки и, и выдающую на выходе точку и' такую, что
и1 = argmin{pc(x)|x G ДП М} .
Тогда мы можем построить алгоритм 5, решающий задачу линейного программирования (20) с помощью DNN.
Алгоритм 5 Линейное программирование с использованием DNN Require: ■u(1) £ Hi П М, (ф, с) > 0, z G Яс; г] G N, 5 G М>0 1: к:= 1 2: repeat
3: 1:=3(и(к\г],5)
4: ^(fc+i) ;=DNN(I)
5: к := к + 1
6: until и 7: Ж :=и^
8: stop
2. Параллельный алгоритм построения образа задачи ЛП
При решении задач ЛП большой размерности и с большим количеством ограничений алгоритм 4 построения образа задачи ЛП может потребовать значительных временных затрат. В этом разделе приводится его параллельная версия, позволяющая существенно сократить время решения задачи ЛП с помощью алгоритма 5. Параллельная версия алгоритма 4 строится на основе модели параллельных вычислений BSF [24, 25], ориентированной на кластерные вычислительные системы. Модель BSF использует парадигму мастер-рабочие и требует представление алгоритма в форме операций над списками с использованием функций высшего порядка Мар и Reduce, определенных в формализме Бёрда—Миртенса (Bird-Meertens formalism) [26]. Модель BSF также предоставляет метрику для аналитиче-
2022, т. 11, № 1
43
Визуальное представление многомерных задач линейного программирования
ской оценки масштабируемости параллельного алгоритма, удовлетворяющего указанным требованиям.
Представим алгоритм 4 в форме операций над списками с использованием функций высшего порядка Мар и Reduce. В качестве списка, обрабатываемого функцией высшего порядка Мар, возьмем список номеров неравенств системы (4):
С
тар —
[!,•••, т\ ■
(47)
Обозначим Mqo = М U {оо}. Определим следующим образом параметризованную функцию Ffc : {1,..., т} Моо, являющуюся первым параметром функции высшего порядка Мар:
Ffe(i)
Рс (ъ(9к)) , если (ф, с) > 0 и ^(дк) <Е М; оо, если (ф, с) О или 7i(gk) £ М,
(48)
гДе 9к = G{k, п, z, г/, 5) вычисляется с помощью алгоритма 2, а 7i(gk) вычисляется по формуле (24). С неформальной точки зрения функция F/% отображает номер полупространства Н^~ в расстояние от целевой проекции до целевой гиперплоскости, если Н^~ является рецессивным относительно с (см. утверждение 1) и целевая проекция принадлежит М. В противном случае F& возвращает специальное значение оо.
Функция высшего порядка Мар преобразует список Стар в список Creduce путем применения функции Ffc к каждому элементу списка Стар:
£reduce — Map (F/j, Стар) — [Ffc(l) j • • • j F/-(77l)] — [pi, • • • , Pm] •
Определим бинарную ассоциативную операцию ф : Вф —> Кф следующим образом:
оо ф оо Va G R : а ф оо Vcc, /3 6 R : а ф /3
оо;
а;
min(a, /3).
С неформальной точки зрения операция ф вычисляет минимальное из двух чисел.
Функция высшего порядка Reduce преобразует список Creduce в атомарное значение р G Моо путем последовательного применения операции ф ко всему списку:
Reduce(®, Creduce) Pi CD P2 CD • • • CD Pun P'
Построение образа 3 задачи ЛП с использованием функций высшего порядка Мар и Reduce представлено в виде алгоритма 6. Параллельная версия алгоритма 6 строится на основе алгоритмического шаблона 2 из [24]. Результат представлен в виде алгоритма 7. Прокомментируем параллельный алгоритм 7. Для простоты мы будем предполагать, что количество ограничений т кратно количеству рабочих L и нумерация неравенств начинается с нуля. Параллельный алгоритм включает в себя L + 1 процесс: один процесс-мастер (кратко — мастер) и L процессов-рабочих (кратко — рабочие). Мастер управляет вычислениями. Первоначально в качестве образа 3 берется пустой список (шаг 2 мастера). Текущий номер к полагается равным нулю (шаг 3 мастера). На шагах 4-15 мастер организует цикл repeat/until, в котором строится образ 3 задачи ЛП. На шаге 5 мастер посылает номер очередной рецептивной точки к всем рабочим. На шаге 8 мастер ожидает получение
44
Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»
Н.А. Ольховский, Л.Б. Соколинский
Алгоритм 6 Построение образа 3 с использованием Мар и Reduce Require: z G HCl 77 G N, 5 G M>o l: input n,m,A,b,c,z,r),5 2: J:=[]
3: R-map — [!)•••) TTl]
4: for к = 0 . . . ((27] + l)n_1 — 1) do 5: C-reduce — Map(F/j, £>map)
6: p — Reduce((J), C-reduce)
7: 3:=3 3\-[p]
8: end for 9: output 3 10: stop
Алгоритм 7 Параллельный алгоритм построение образа 3 задачи ЛП
Мастер Рабочий (Z=0,-.. ,L-1)
1: input п 1: input n, m, A, b, c, z, 77,5
2: 3:=[] 2: L := NumberOfWorkers
3: к:= 0 3: £-map{l) ■ \lm/L, • • • , {{1 + 1 )ш/Т) 1]
4: repeat 4: repeat
5: SendToWorkers к 5: RecvFromMaster к
6: 6: reduce{l) — Map (F&,
7: 7: Pl —Reduce reduce{l))
8: RecvFromWorkers [ро,..., рь-i] 8: SendToMaster pi
9: р:= Reduce (ф, [ро, • • ■, Pl- 1]) 9:
10: 3:= Л-Н- [р] 10:
11: к := к + 1 11:
12: exit := (к ^ (2т] + 1)п-1) 12:
13: SendTo Workers exit 13: RecvFromMaster exit
14: until exit 14: until exit
15: output 3 15:
16: stop 16: stop
частичных результатов от всех рабочих. Эти результаты редуцируются в одно значение, которое добавляется в образ 3 (шаги 9-10 мастера). Шаг 11 увеличивает счетчик итераций к на единицу. На шаге 12 мастер вычисляет критерий завершения в виде логического выражения (к ^ (2г] + l)n_1), значение которого присваивается булевой переменной exit. В соответствии с формулой (44) значение true будет означать, что точки рецептного поля закончились. На шаге 13 мастер посылает значение булевой переменной exit всем рабочим. Если обработаны не все точки рецептивного поля, то на шаге 14 происходит переход к выполнению следующей итерации цикла repeat/until. В противном случае мастер выводит построенный образ 3 (шаг 15) и завершает свою работу (шаг 16).
2022, т. 11, № 1
45
Визуальное представление многомерных задач линейного программирования
Каждый /-тый рабочий выполняет общую последовательность действий, но над своей частью £map(i) списка £тар, которая определяется на шаге 3. На шаге 4 рабочий входит в цикл repeat/until. На шаге 5 он получает номер очередной точки к, принадлежащей рецептивному полю. На шаге 6 рабочий обрабатывает свой подсписок £map(i), используя функцию высшего порядка Мар, которая для каждого элемента подсписка выполняет параметризованную функцию Ffc, определенную с помощью формулы (48). В результате получается подсписок £reduce{l) > содержащий расстояния FДг) от целевой гиперплоскости Нс до целевых проекций рецептивной точки д& на гиперплоскости Hi для всех % из подсписка Cmap(i). На шаге 7 рабочий с помощью функции высшего порядка Reduce редуцирует подсписок Creduce(i) в атомарное значение pi, используя ассоциативную бинарную операцию ф, вычисляющую минимальное расстояние. Полученный частный результат пересылается мастеру (шаг 8 рабочего). На шаге 13 рабочий ожидает получение от мастера значения булевой переменной exit. Если получено значение false, рабочий продолжает выполнение цикла repeat/until (шаг 14 рабочего). В противном случае процесс рабочего завершается на шаге 16.
Дадим аналитическую оценку границы масштабируемости параллельного алгоритма 7 с использованием стоимостной метрики модели параллельных вычислений BSF [24]. Под границей масштабируемости здесь понимается число рабочих, на котором достигается максимум ускорения. Стоимостная метрика модели BSF включает в себя следующие стоимостные параметры для цикла repeat/until (шаги 4-14) параллельного алгоритма 7:
т : длина списка £таР;
D : латентность (время пересылки одно байта от мастера к рабочему);
tc : время, затрачиваемое мастером на пересылку одному рабочему координат
tMaP '■ время, затрачиваемое одним рабочим на выполнение функции высшего порядка Мар для всего списка £таР;
ta : время, затрачиваемое на выполнение одной бинарной операции ф.
В соответствии с формулой (14) из [24] граница масштабируемости параллельного алгоритма 7 может быть оценена следующим образом:
Вычислим оценку для временных параметров формулы (49). Для этого ведем следующие обозначения в рамках одной итерации цикла repeat/until (шаги 4-14) параллельного алгоритма 7:
сс : количество числе, пересылаемых от мастера к рабочему и обратно
в рамках одной итерации;
СМаР ‘ количество арифметических операций и операций сравнения, выполняемых на шаге 5 последовательного алгоритма 6;
са : количество операций, необходимых для выполнения бинарной операции ф.
46 Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»
рецептивной точки и получения от него расстояния от этой точки до целевой проекции (включая латентность);
(49)
Н.А. Ольховский, Л.Б. Соколинский
В начале каждой итерации мастер посылает каждому рабочему номер рецептивной точки. В ответ рабочий посылает расстояние от этой точки до целевой проекции. Следовательно
сс = 2. (50)
В контексте алгоритма 6
Смар = (Со + CFk)m,
(51)
где со — количество операций, необходимых для вычисления координат точки д^, CFk — количество операций, необходимых для вычисления функции ИДг) по формуле (48) в предположении, что координаты точки д*. уже вычислены. Оценка значения Со дана в предложении 5. Оценим значение срк- В соответствии с (24) вычисление целевой проекции Ji(gk) требует (6га — 2) арифметических операций. Из (19) следует, что вычисление рс{х) составляет (5та — 1) арифметических операций. Проверка условия х £ М в соответствии с (4) потребует т(2п — 1) арифметических операций и т операций сравнения. Таким образом
CFk = 2 тп + 11п — 3.
(52)
Подставив в (51) правые части формул (45) и (52), получаем
с-Мар = 4 п2т + 2 т2п + 16 пт — 12 т. (53)
Для выполнения бинарной операции ф необходимо выполнить одну операцию сравнения:
С-а
= 1.
(54)
Пусть — среднее время выполнения арифметических операций и операций сравнения, Ttr — среднее время для пересылки одного вещественного числа без учета латентности. Тогда, используя формулы (50), (53) и (54), получаем
tc = СсПг + 2 D = 2{трг + D);
tMap = СМарТор = (4п2ГП + 2ГП2П + 16ПГП - 12Гп)тор]
ta = СаТор = Тор.
(55)
(56)
(57)
Подставив в (49) правые части формул (55)—(57), получим следующую оценку границы масштабируемости параллельного алгоритма 7:
L
max
1
2
/ 2(jtr + D)
\ Top In 2
2
+ 4 n2m + 2 m2n + 16nm — 12m —
“2{Ttr + D) Top In 2
Для больших значений тип это эквивалентно
Lmax ~ 0(л/2п2т + т2п + 8пт — 6т).
(58)
Если предположить, что т = 0(п), то из (58) следует
(59)
2022, т. 11, № 1
Lmax ~ 0{Пу/п)
47
Визуальное представление многомерных задач линейного программирования
Таблица 1. Характеристики кластера «Торнадо ЮУрГУ»
Параметр Значение
Количество процессорных узлов 480
Процессоры Intel Xeon Х5680 (6 ядер, 3.33 GHz)
Количество процессоров в узле 2
Оперативная память узла 24 GB DDR3
Соединительная сеть InfiniBand QDR (40 Gbit/s)
Операционная система Linux CentOS
где п — размерность пространства. Оценка (59) позволяет сделать вывод, что параллельный алгоритм 7 демонстрирует превосходную масштабируемость2. В следующем разделе мы проверим аналитическую оценку (59) путем проведения масштабных вычислительных экспериментов на реальной кластерной вычислительной системе.
3. Вычислительные эксперименты
Нами была выполнена параллельная реализация алгоритма 7 в виде программы ViLiPP (Visualization of Linear Programming Problem) на языке C++ с использованием программного BSF-каркаса [27, 28]. BSF-каркас базируется на модели параллельных вычислений BSF и инкапсулирует все аспекты, связанные с распараллеливанием программы с использованием библиотеки MPI [29] и программного интерфейса ОрепМР [30]. Исходные коды программы ViLiPP свободно доступны в сети Интернет по адресу https://github.com/ nikolay-olkhovskiy/LP-visualization-MPI. С использованием параллельной программы ViLiPP мы провели эксперименты по исследованию масштабируемости алгоритма 7 на кластерной вычислительной системе «Торнадо ЮУрГУ» [31], характеристики которой приведены в таблице 1.
С помощью генератора задач «FRaGenLP» [32, 33] для проведения вычислительных экспериментов были сгенерированы три случайные задачи ЛИ, параметры которых приведены в таблице 2. Количество ненулевых значений матрицы А задачи (1) всех случаях составило 100%. Для всех задач ранг рецептивного поля г/ полагался равным 2. В соответствии с формулой (44) мощность рецептивного поля демонстрировала экспоненциальный рост с увеличением размерности пространства.
Результаты вычислительных экспериментов приведены в таблице 3 и на рис. 4. Во всех запусках каждому рабочему выделялся отдельный процессорный узел. Еще один дополнительный процессорный узел выделялся для работы мастера. Вычислительные эксперименты показали, что с ростом размерности задачи наблюдается рост границы масштабируемости программы ViLiPP: для LP5 максимум кривой ускорения достигается в районе 190 узлов, для LP6 максимум располагается в районе 260 узлов, а для LP7 он приблизительно равен 326 узлам. При этом наблюдается экспоненциальный рост времени решения задачи: образ задачи LP5 на 11 процессорных узлах строится за 10 сек., а построение образа задачи LP7 на таком же количестве узлов требует уже 5 мин. Дополнительный вычислительный
2Пусть Lmax = 0(па). Алгоритм демонстрирует превосходную масштабируемость, если а > 1; алгоритм демонстрирует хорошую масштабируемость, если а = 1; алгоритм демонстрирует ограниченную масштабируемость, если 0 < а < 1; алгоритм не масштабируется, если а = 0.
48
Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»
Н.А. Ольховский, Л.Б. Соколинский
Таблица 2. Параметры тестовых задач ЛП
Иденти- фикатор задачи Число перемен- ных Число ограниче- ний Процент ненулевых значений в А Мощность рецептивного поля
LP7 7 4016 100% 15 625
LPQ 6 4014 100% 3125
LP5 5 4012 100% 625
Таблица 3. Время построения образа задач ЛП (сек.)
Число процессорных узлов LP5 LP6 LP7
11 9.81 54.45 303.78
56 1.93 10.02 59.43
101 1.55 6.29 33.82
146 1.39 4.84 24.73
191 1.35 4.20 21.10
236 1.38 3.98 19.20
281 1.45 3.98 18.47
326 1.55 4.14 18.30
11 56 101 146 191 236 281 326
Количество процессорных узлов
Рис. 4. Графики ускорения параллельной программы ViLiPP для задач ЛП различного размера
эксперимент показал, что построение образа задачи при п = 9 на 11 процессорных узлах занимает 1.5 часа.
Проведенные эксперименты позволяют сделать вывод, что при современном уровне развития вычислительной техники применение искусственных нейронных сетей для решения задач ЛП на основе предложенного метода визуализации может быть эффективным для задач размерности, не превышающей 100, с количеством ограничений до 100 000.
2022, т. 11, № 1
49
Визуальное представление многомерных задач линейного программирования
Заключение
Основным результатом, полученным в данной работе, является математическая модель визуального представления многомерной задачи линейного программирования по поиску в допустимой области точки максимума линейной целевой функции. Основным элементом модели является рецептивное поле, представляющее собой регулярное множество точек, располагающихся в узлах решетки, построенной внутри гиперкуба. Все точки рецептивного поля лежат в целевой гиперплоскости, ортогональной вектору с = (ci,..., Сп), составленному из коэффициентов линейной целевой функции. Целевая гиперплоскость располагается так, что для любой точки х из допустимой области и любой точки z целевой гиперплоскости выполняется неравенство (с, х) < (с, z). Можно сказать, что рецептивное поле является многомерным абстрактным аналогом светочувствительной матрицы цифрового фотоаппарата. Из каждой точки рецептивного поля в направлении допустимой области строится луч, параллельный вектору с. Точка, в которой луч касается допустимой области, называется целевой проекцией. Образ задачи линейного программирования представляет собой матрицу положительных вещественных чисел размерности (п — 1), в которой каждый элемент является расстоянием от точки рецептивного поля до соответствующей точки целевой проекции.
В статье описан алгоритм вычисления координат точки рецептивного поля по ее порядковому номеру. Показано, что временная сложность этого алгоритма может быть оценена как 0(п2), где п — размерность пространства. Приведено общее описание алгоритма решения задачи линейного программирования с помощью искусственной нейронной сети на основе анализа построенных образов. Предложен параллельный алгоритм построения образа задачи линейного программирования, ориентированный на кластерные вычислительные системы. Этот алгоритм основывается на модели параллельных вычислений BSF, предполагающей использование парадигмы мастер-рабочие и представление алгоритма в виде операций над списками с использованием функций высшего порядка Мар и Reduce. Показано, что для границы масштабируемости параллельного алгоритма справедлива оценка 0(пу/п). Это означает, что алгоритм демонстрирует хорошую масштабируемость.
Выполнена реализация параллельного алгоритма построения образа задачи линейного программирования на языке C++ с использованием параллельного программного BSF-каркаса, инкапсулирующего все аспекты, связанные с распараллеливанием на основе библиотеки MPI и программного интерфейса OpenMP. С использованием этой программной реализации на вычислительном кластере «Торнадо ЮУрГУ» проведены масштабные вычислительные эксперименты по построению образов для случайных многомерных задач линейного программирования с большим числом ограничений. Проведенные эксперименты подтверждают корректность и эффективность предложенных подходов. Вместе с тем следует отметить, что время построение образа растет экспоненциально с увеличением размерности пространства. Поэтому предложенный метод применим для задач с числом переменных, не превышающим 100. При этом количество ограничений теоретически может быть неограниченным.
В качестве направлений дальнейших исследований можно выделить следующие.
1. Разработать метод решения задачи линейного программирования на основании анализа ее образов и доказать его сходимость.
2. Разработать и реализовать метод построения обучающих множеств для создания нейронной сети, решающей задачи линейного программирования путем анализа их образов.
50
Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»
Н.А. Ольховский, Л.Б. Соколинский
3. Разработать и обучить искусственную нейронную сеть для решения многомерные задачи линейного программирования.
4. Разработать и реализовать на вычислительном кластере параллельную программу, строящую многомерные образы задачи линейного программирования и получающую ее решение с помощью искусственной нейронной сети.
Исследование выполнено при финансовой поддержке РФФИ (грант 20-07-00092 а) и
Министерства науки и высшего образования РФ (государственное задание FENU-2020-
0022).
Литература
1. Jagadish H.V., Gehrke J., Labrinidis A., et al. Big data and its technical challenges // Communications of the ACM. 2014. Vol. 57, no. 7. P. 86-94. DOI: 10.1145/2611567.
2. Hartung T. Making Big Sense From Big Data // Frontiers in Big Data. 2018. Vol. 1. P. 5. DOI: 10.3389/f data. 2018.00005.
3. Соколинская И., Соколинский Л. О решении задачи линейного программирования в эпоху больших данных // Параллельные вычислительные технологии (ПаВТ’2017). Короткие статьи и описания плакатов. Челябинск: Издательский центр ЮУрГУ, 2017. С. 471—484. URL: http://omega.sp.susu.ru/pavt2017/short/014.pdf.
4. Chung W. Applying large-scale linear programming in business analytics // 2015 IEEE International Conference on Industrial Engineering and Engineering Management (IEEM). IEEE, 2015. P. 1860-1864. DOI: 10.1109/IEEM.2015.7385970.
5. Gondzio J., Gruca J.A., Hall J.A.J., et al. Solving large-scale optimization problems related to Bell’s Theorem // Journal of Computational and Applied Mathematics. 2014. Vol. 263. P. 392-404. DOI: 10.1016/j . cam. 2013.12.003.
6. Sodhi M.S. LP modeling for asset-liability management: A survey of choices and simplifications // Operations Research. 2005. Vol. 53, no. 2. P. 181-196. DOI: 10.1287/opre. 1040. 0185.
7. Brogaard J., Hendershott T., Riordan R. High-Frequency Trading and Price Discovery // Review of Financial Studies. 2014. Vol. 27, no. 8. P. 2267-2306. DOI: 10.1093/rf s/hhu032.
8. Дышаев M.M., Соколинская И.М. Представление торговых сигналов на основе адаптивной скользящей средней Кауфмана в виде системы линейных неравенств // Вестник Южно-Уральского государственного университета. Серия: Вычислительная математика и информатика. 2014. Т. 2, № 4. С. 103—108. DOI: 10.14529/cmsel30408.
9. Bixby R.E. Solving Real-World Linear Programs: A Decade and More of Progress // Operations Research. 2002. Vol. 50, no. 1. P. 3-15. DOI: 10.1287/opre. 50.1.3.17780.
10. Dongarra J., Gottlieb S., Kramer W.T.C. Race to Exascale // Computing in Science and Engineering. 2019. Vol. 21, no. 1. P. 4-5. DOI: 10.1109/MCSE. 2018.2882574.
11. Dantzig G.B. Linear programming and extensions. Princeton, N.J.: Princeton university press, 1998. 656 p.
12. Zadeh N. A bad network problem for the simplex method and other minimum cost flow algorithms // Mathematical Programming. 1973. Vol. 5, no. 1. P. 255-266. DOI: 10.1007/ BF01580132.
2022, t. 11, № 1
51
Визуальное представление многомерных задач линейного программирования
13. Tolla Р. A Survey of Some Linear Programming Methods // Concepts of Combinatorial Optimization / ed. by V.T. Paschos. 2nd ed. Hoboken, NJ, USA: John Wiley, Sons, 2014. Chap. 7. P. 157-188. DOI: 10.1002/9781119005216. ch7.
14. Mamalis B., Pantziou G. Advances in the Parallelization of the Simplex Method // Algorithms, Probability, Networks, and Games. Lecture Notes in Computer Science, vol. 9295 / ed. by C. Zaroliagis, G. Pantziou, S. Kontogiannis. Cham: Springer, 2015. P. 281-307. DOI: 10.1007/978-3-319-24024-4_17.
15. Karmarkar N. A new polynomial-time algorithm for linear programming // Combinatorica. 1984. Vol. 4, no. 4. P. 373-395. DOI: 10.1007/BF02579150.
16. Yuan Y. Implementation tricks of interior-point methods for large-scale linear programs // Proc. SPIE, vol. 8285. International Conference on Graphic and Image Processing (ICGIP 2011). International Society for Optics, Photonics, 2011. DOI: 10.1117/12.913019.
17. Ершова А.В., Соколинская И.М. О сходимости масштабируемого алгоритма построения псевдопроекции на выпуклое замкнутое множество / / Вестник Южно-Уральского государственного университета. Серия: Математическое моделирование и программирование. 2011. № 37(254). С. 12—21. URL: https://mmp.susu.ru/article/ru/127.
18. Hafsteinsson Н., Levkovitz R., Mitra G. Solving large scale linear programming problems using an interior point method on a massively parallel SIMD computer // Parallel Algorithms and Applications. 1994. Vol. 4, no. 3-4. P. 301-316. DOI: 10.1080/10637199408915470.
19. Karypis G., Gupta A., Kumar V. A parallel formulation of interior point algorithms // Proceedings of the 1994 ACM/IEEE conference on Supercomputing (Supercomputing’94). Los Alamitos, CA, USA: IEEE Computer Society Press, 1994. P. 204-213. DOI: 10.1109/ SUPERC.1994.344280.
20. Prieto A., Prieto B., Ortigosa E.M., et al. Neural networks: An overview of early research, current frameworks and new challenges // Neurocomputing. 2016. Vol. 214. P. 242-268. DOI: 10.1016/j .neucom.2016.06.014.
21. Schmidhuber J. Deep learning in neural networks: An overview // Neural Networks. 2015. Vol. 61. P. 85-117. DOI: 10.1016/j .neunet.2014.09.003.
22. LeCun Y., Bengio Y., Hinton G. Deep learning // Nature. 2015. Vol. 521, no. 7553. P. 436-444. DOI: 10.1038/nature 14539.
23. Lachhwani K. Application of Neural Network Models for Mathematical Programming Problems: A State of Art Review // Archives of Computational Methods in Engineering. 2020. Vol. 27. P. 171-182. DOI: 10.1007/sll831-018-09309-5.
24. Sokolinsky L.B. BSF: A parallel computation model for scalability estimation of iterative numerical algorithms on cluster computing systems // Journal of Parallel and Distributed Computing. 2021. Vol. 149. P. 193-206. DOI: 10.1016/j . jpdc. 2020.12.009.
25. Ежова H.A., Соколинский Л.Б. Модель параллельных вычислений BSF-MR // Системы управления и информационные технологии. 2019. № 3(77). С. 15—21.
26. Bird R.S. Lectures on Constructive Functional Programming // Constructive Methods in Computing Science. NATO ASI Series F: Computer and Systems Sciences, vol. 55 / ed. by M. Broy. Berlin, Heidelberg: Springer, 1988. P. 151-216.
52 Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»
Н.А. Ольховский, Л.Б. Соколинский
27. Sokolinsky L.B. BSF-skeleton: A Template for Parallelization of Iterative Numerical Algorithms on Cluster Computing Systems // MethodsX. 2021. Vol. 8. Article 101437. DOI: 10.1016/j.mex.2021.101437.
28. Sokolinsky L.B. BSF-skeleton. 2019. URL: https://github.com/leonid-sokolinsky/ BSF-skeleton (дата обращения: 24.01.2022).
29. Gropp W. MPI 3 and Beyond: Why MPI Is Successful and What Challenges It Faces // Recent Advances in the Message Passing Interface. EuroMPI 2012. Lecture Notes in Computer Science, vol. 7490 / ed. by J. Traff, S. Benkner, J. Dongarra. Berlin, Heidelberg: Springer, 2012. P. 1-9. DOI: 10.1007/978-3-642-33518-1_1.
30. Kale V. Shared-memory Parallel Programming with OpenMP // Parallel Computing Architectures and APIs. Boca Raton: Chapman, Hall/CRC, 2019. Chap. 14. P. 213-222. DOI: 10.1201/9781351029223- 18/SHARED-MEMORY-PARALLEL-PROGRAMMING-OPENMP-VIVEK-KALE.
31. Kostenetskiy P., Semenikhina P. SUSU Supercomputer Resources for Industry and fundamental Science // Proceedings - 2018 Global Smart Industry Conference, GloSIC 2018. IEEE, 2018. Article 8570068. P. 1-7. DOI: 10.1109/GloSIC.2018.8570068.
32. Соколинский Л.Б., Соколинская И.М. О генерации случайных задач линейного программирования на кластерных вычислительных системах / / Вестник Южно-Уральского государственного университета. Серия: Вычислительная математика и информатика. 2021. Т. 10, № 1. С. 38—52. DOI: 10.14529/cmse210103.
33. Соколинский Л.Б. Свидетельство о государственной регистрации программы для ЭВМ № 2021619526 Российская Федерация. Генератор случайных задач линейного программирования FRaGenLP : № 2021618165 : заявл. 28.05.2021 : опубл. 10.06.2021.
Ольховский Николай Александрович, аспирант, кафедра системного программирования, Южно-Уральский государственный университет (национальный исследовательский университет) (Челябинск, Российская Федерация)
Соколинский Леонид Борисович, д.ф.-м.н., профессор, проректор по информатизации, заведующий кафедрой системного программирования, Южно-Уральский государственный университет (национальный исследовательский университет) (Челябинск, Российская Федерация
2022, т. 11, № 1
53
Визуальное представление многомерных задач линейного программирования
DOI: 10.14529/cmse220103
VISUAL REPRESENTATION OF MULTIDIMENSIONAL LINEAR PROGRAMMING PROBLEMS
© 2022 N.A. Olkhovsky, L.B. Sokolinsky
South Ural State University (pr. Lenina 76, Chelyabinsk, 454080 Russia)
E-mail: [email protected], [email protected] Received: 10.03.2022
The article proposes an n-dimensional mathematical model of the visual representation of a linear programming problem. This model makes it possible to use artificial neural networks to solve multidimensional linear optimization problems, the feasible region of which is a bounded non-empty set. To visualize the linear programming problem, an objective hyperplane is introduced, the orientation of which is determined by the gradient of the linear objective function: the gradient is the normal to the objective hyperplane. In case of searching a maximum, the objective hyperplane is positioned in such a way that the value of the objective function at all its points exceeds the value of the objective function at all points of the feasible region, which is a bounded convex polytope. For an arbitrary point of the objective hyperplane, the objective projection onto the polytope is determined: the closer the objective projection point is to the objective hyperplane, the greater the value of the objective function at this point. Based on the objective hyperplane, a finite regular set of points is constructed, called the retina. Using objective projections, an image of a polytope is constructed. This image includes the points of the retina and the distances to the corresponding points of the polytope surface. Based on the proposed model, parallel algorithms for visualizing a linear programming problem are constructed. An analytical estimation of its scalability is performed. Information about the software implementation and the results of large-scale computational experiments confirming the efficiency of the proposed approaches are presented.
Keywords: linear programming, n-dimensional visualization, mathematical model, parallel algorithm, BSF-skeleton.
FOR CITATION
Olkhovsky N.A., Sokolinsky L.B. Visual Representation of Multidimensional Linear Programming Problems. Bulletin of the South Ural State University. Series: Computational Mathematics and Software Engineering. 2022. Vol. 11, no. 1. P. 31-56. (in Russian) DOI: 10.14529/cmse220103.
This paper is distributed under the terms of the Creative Commons Attribution-Non Commercial 4-0 License which permits non-commercial use, reproduction and distribution of the work without further permission provided the original work is properly cited.
References
1. Jagadish H.V., Gehrke J., Labrinidis A., et al. Big data and its technical challenges. Communications of the ACM. 2014. Vol. 57, no. 7. P. 86-94. DOI: 10.1145/2611567.
2. Hartung T. Making Big Sense From Big Data. Frontiers in Big Data. 2018. Vol. 1. P. 5. DOI: 10.3389/f data. 2018.00005.
3. Sokolinskaya I.M., Sokolinsky L.B. On solving linear programming problems in the era of big data. Parallel Computing Technologies (PCT’2017). Short articles and posters. Chelyabinsk: SUSU Publishing Center, 2017. P. 471-484. (in Russian).
4. Chung W. Applying large-scale linear programming in business analytics. 2015 IEEE International Conference on Industrial Engineering and Engineering Management (IEEM). IEEE, 2015. P. 1860-1864. DOI: 10.1109/IEEM.2015.7385970.
54
Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»
Н.А. Ольховский, Л.Б. Соколинский
5. Gondzio J., Gruca J.A., Hall J.A.J., et al. Solving large-scale optimization problems related to Bell’s Theorem. Journal of Computational and Applied Mathematics. 2014. Vol. 263. P. 392-404. DOI: 10.1016/j . cam. 2013.12.003.
6. Sodhi M.S. LP modeling for asset-liability management: A survey of choices and simplifications. Operations Research. 2005. Vol. 53, no. 2. P. 181-196. DOI: 10.1287/opre. 1040. 0185.
7. Brogaard J., Hendershott T., Riordan R. High-Frequency Trading and Price Discovery. Review of Financial Studies. 2014. Vol. 27, no. 8. P. 2267-2306. DOI: 10.1093/rf s/hhu032.
8. Dyshaev M.M., Sokolinskaya I.M. Representation of trading signals based on the Kaufman’s Adaptive Moving Average in the form of a system of linear inequalities. Bulletin of the South Ural State University. Series: Computational Mathematics and Software Engineering. 2014. Vol. 2, no. 4. P. 103-108. (in Russian) DOI: 10.14529/cmsel30408.
9. Bixby R.E. Solving Real-World Linear Programs: A Decade and More of Progress. Operations Research. 2002. Vol. 50, no. 1. P. 3-15. DOI: 10.1287/opre.50.1.3.17780.
10. Dongarra J., Gottlieb S., Kramer W.T.C. Race to Exascale. Computing in Science and Engineering. 2019. Vol. 21, no. 1. P. 4-5. DOI: 10.1109/MCSE.2018.2882574.
11. Dantzig G.B. Linear programming and extensions. Princeton, N.J.: Princeton university press, 1998. 656 p.
12. Zadeh N. A bad network problem for the simplex method and other minimum cost flow algorithms. Mathematical Programming. 1973. Vol. 5, no. 1. P. 255-266. DOI: 10.1007/ BF01580132.
13. Tolla P. A Survey of Some Linear Programming Methods. Concepts of Combinatorial Optimization / ed. by V.T. Paschos. 2nd ed. Hoboken, NJ, USA: John Wiley, Sons, 2014. Chap. 7. P. 157-188. DOI: 10.1002/9781119005216. ch7.
14. Mamalis B., Pantziou G. Advances in the Parallelization of the Simplex Method. Algorithms, Probability, Networks, and Games. Lecture Notes in Computer Science, vol. 9295 / ed. by C. Zaroliagis, G. Pantziou, S. Kontogiannis. Cham: Springer, 2015. P. 281-307. DOI: 10.1007/978-3-319-24024-4_17.
15. Karmarkar N. A new polynomial-time algorithm for linear programming. Combinatorica. 1984. Vol. 4, no. 4. P. 373-395. DOI: 10.1007/BF02579150.
16. Yuan Y. Implementation tricks of interior-point methods for large-scale linear programs. Proc. SPIE, vol. 8285. International Conference on Graphic and Image Processing (ICGIP 2011). International Society for Optics, Photonics, 2011. DOI: 10.1117/12.913019.
17. Ershova A.V., Sokolinskaya I.M. On the convergence of a scalable algorithm for constructing a pseudoprojection on a convex closed set. Bulletin of the South Ural State University, Series: Mathematical Modelling, Programming and Computer Software. 2011. No. 37(254). (in Russian).
18. Hafsteinsson H., Levkovitz R., Mitra G. Solving large scale linear programming problems using an interior point method on a massively parallel SIMD computer. Parallel Algorithms and Applications. 1994. Vol. 4, no. 3-4. P. 301-316. DOI: 10.1080/10637199408915470.
19. Karypis G., Gupta A., Kumar V. A parallel formulation of interior point algorithms. Proceedings of the 1994 ACM/IEEE conference on Supercomputing (Supercomputing’94). Los Alamitos, CA, USA: IEEE Computer Society Press, 1994. P. 204-213. DOI: 10. 1109/ SUPERC.1994.344280.
2022, t. 11, № 1
55
Визуальное представление многомерных задач линейного программирования
20. Prieto A., Prieto В., Ortigosa Е.М., et al. Neural networks: An overview of early research, current frameworks and new challenges. Neurocomputing. 2016. Vol. 214. P. 242-268. DOI: 10.1016/j.neucom.2016.06.014.
21. Schmidhuber J. Deep learning in neural networks: An overview. Neural Networks. 2015. Vol. 61. P. 85-117. DOI: 10.1016/j .neunet.2014.09.003.
22. LeCun Y., Bengio Y., Hinton G. Deep learning. Nature. 2015. Vol. 521, no. 7553. P. 436-444. DOI: 10.1038/nature 14539.
23. Lachhwani K. Application of Neural Network Models for Mathematical Programming Problems: A State of Art Review. Archives of Computational Methods in Engineering. 2020. Vol. 27. P. 171-182. DOI: 10.1007/sll831-018-09309-5.
24. Sokolinsky L.B. BSF: A parallel computation model for scalability estimation of iterative numerical algorithms on cluster computing systems. Journal of Parallel and Distributed Computing. 2021. Vol. 149. P. 193-206. DOI: 10.1016/j . jpdc. 2020.12.009.
25. Ezhova N.A., Sokolinsky L.B. Parallel computation model BSF-MR. Control systems and information technologies. 2019. No. 3(77). P. 15-21. (in Russian).
26. Bird R.S. Lectures on Constructive Functional Programming. Constructive Methods in Computing Science. NATO ASI Series F: Computer and Systems Sciences, vol. 55 / ed. by M. Broy. Berlin, Heidelberg: Springer, 1988. P. 151-216.
27. Sokolinsky L.B. BSF-skeleton: A Template for Parallelization of Iterative Numerical Algorithms on Cluster Computing Systems. MethodsX. 2021. Vol. 8. Article 101437. DOI: 10.1016/j.mex.2021.101437.
28. Sokolinsky L.B. BSF-skeleton. 2019. URL: https://github.com/leonid-sokolinsky/ BSF-skeleton (accessed: 24.01.2022).
29. Gropp W. MPI 3 and Beyond: Why MPI Is Successful and What Challenges It Faces. Recent Advances in the Message Passing Interface. EuroMPI 2012. Lecture Notes in Computer Science, vol. 7490 / ed. by J. Traff, S. Benkner, J. Dongarra. Berlin, Heidelberg: Springer, 2012. P. 1-9. DOI: 10.1007/978-3-642-33518-1_1.
30. Kale V. Shared-memory Parallel Programming with OpenMP. Parallel Computing Architectures and APIs. Boca Raton: Chapman, Hall/CRC, 2019. Chap. 14. P. 213-222. DOI: 10.1201/9781351029223- 18/SHARED-MEMORY-PARALLEL-PROGRAMMING-OPENMP-VIVEK-KALE.
31. Kostenetskiy P., Semenikhina P. SUSU Supercomputer Resources for Industry and fundamental Science. Proceedings - 2018 Global Smart Industry Conference, GloSIC 2018. IEEE, 2018. Article 8570068. P. 1-7. DOI: 10.1109/GloSIC.2018.8570068.
32. Sokolinsky L.B., Sokolinskaya I.M. On generation of random linear programming problems on cluster computing systems. Bulletin of the South Ural State University. Series: Computational Mathematics and Software Engineering. 2021. Vol. 10, no. 1. P. 38-52. (in Russian).
33. Sokolinsky L.B. Certificate of state registration of computer program no. 2021619526 Russian Federation. Generator of random linear programming problems FRaGenLP : no. 2021618165 : application 28.05.2021 : publ. 10.06.2021. (in Russian).
56
Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»