УДК 519.852, 004.032.26 DOI: 10.14529/cmse230402
ИССЛЕДОВАНИЕ НЕЙРОСЕТЕВОГО МЕТОДА РЕШЕНИЯ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
© 2023 H.A. Ольховский
Южно-Уральский государственный университет (454080 Челябинск, пр. им. В.И. Ленина, д. 76) E-mail: [email protected] Поступила в редакцию: 20.10.2023
В статье исследован метод определения вектора движения по гиперплоскостям, ограничивающим допустимый многогранник многомерной задачи линейного программирования на основе визуальных образов, подаваемых на вход нейронной сети прямого распространения. Алгоритм визуализации строит в окрестности точки, расположенной на ограничивающей гиперплоскости, рецептивное поле. Для каждой точки рецептивного поля вычисляется скалярное смещение до поверхности гиперплоскости. На основании вычисленного смещения каждой точке рецептивного поля присваивается скалярная величина. Полученный визуальный образ подается на вход нейронной сети прямого распространения, которая вычисляет на ограничивающей гиперплоскости направление максимального увеличения целевой функции. В статье предложена усовершенствованная форма крестообразного рецептивного поля. Описано построение обучающего множества на основе случайно сгенерированных ограничивающих гиперплоскостей и целевых функций в многомерных пространствах. Разработана масштабируемая архитектура нейронной сети с изменяемым числом скрытых слоев. Произведен подбор гиперпараметров нейронной сети. В вычислительных экспериментах подтверждена высокая (более 98%) точность работы крестообразного рецептивного поля. Исследована зависимость точности результатов нейронной сети от числа скрытых слоев и продолжительности обучения.
Ключевые слова: линейное программирование, метод поверхностного движения, искусственная нейронная сеть, глубокое обучение.
ОБРАЗЕЦ ЦИТИРОВАНИЯ
Ольховский H.A. Исследование нейросетевого метода решения задач линейного программирования // Вестник ЮУрГУ. Серия: Вычислительная математика и информатика. 2023. Т. 12, № 4. С. 55-75. DOI: 10.14529/cmse230402.
Введение
Одной из фундаментальных задач современной прикладной математики является задача линейного программирования (ЛП) с большим числом параметров [1]. Оптимизационные модели, основанные на многопараметрической (многомерной) задаче ЛП встречаются в системах поддержки принятия решений в экономике [2, 3], в системах управления беспилотными летательными аппаратами [4], в управлении технологическими процессами [5—7], при построении логистических цепочек [8—10], в оперативном управлении и планировании [11, 12].
До сих пор одним из наиболее распространенных способов решения задач ЛП был класс алгоритмов, разработанных на основе симплекс-метода [13]. Было установлено, что симплекс-метод эффективен для решения большого класса задач ЛП. В частности, симплекс-метод эффективно использует преимущества любой гиперразреженности в задачах ЛП [14]. Однако симплекс-метод обладает некоторыми фундаментальными особенностями, которые ограничивают его использование для решения больших задач ЛП. Во-первых, в определенных случаях симплекс-метод должен выполнять итерации по всем вершинам симплекса, что соответствует экспоненциальной временной сложности [15—17]. Во-
вторых, в большинстве случаев симплекс-метод успешно решает задачи ЛП, содержащие до 50 000 переменных, однако при решении задач больших размерностей часто наблюдается потеря точности [18], которая не может быть компенсирована даже применением таких мощных вычислительных процедур, как «аффинное масштабирование» или «итеративное уточнение» [19]. В-третьих, в общем случае последовательный характер симплекс-метода затрудняет распараллеливание в многопроцессорных системах с распределенной памятью [20]. Были предприняты многочисленные попытки создать масштабируемую параллельную реализацию симплекс-метода, но все они оказались безуспешными [21]. Во всех случаях граница масштабируемости составляла от 16 до 32 процессорных узлов (см., например, [22]).
Хачиян доказал [23], используя вариант метода эллипсоидов (предложенный в 1970-х годах Шором [24], Юдиным и Немировским [25]), что задачи ЛП могут быть решены за полиномиальное время. Однако попытки применить этот подход на практике оказались безуспешными, поскольку в подавляющем большинстве случаев метод эллипсоида демонстрировал гораздо худшую эффективность по сравнению с симплекс-методом. Позже Кар-маркар [26] предложил алгоритм внутренней точки с полиномиальным временем, который можно было использовать на практике. Этот алгоритм породил целую область современных методов внутренней точки [27], которые способны решать большие задачи ЛП с миллионами переменных и миллионами уравнений [28—32]. Более того, эти методы являются самокорректирующимися, а следовательно, обеспечивают высокую точность вычислений. Общим недостатком методов внутренней точки является необходимость найти некоторую допустимую точку, удовлетворяющую всем ограничениям задачи ЛП, перед началом вычислений. Нахождение такой внутренней точки может быть сведено к решению дополнительной задачи ЛП [33].
В работе [34] предложен новый подход к решению задачи ЛП, названный «метод поверхностного движения». В основе метода лежит идея о том, что точка максимального значения целевой функции (2) принадлежит границе допустимой области Г(М), и определить ее можно, двигаясь по поверхности многогранника постоянно в сторону максимального увеличения целевой функции. В общих чертах алгоритм поверхностного движения состоит из следующих шагов. В начале берется произвольная точка на границе допустимой области задачи ЛП. Сделать это можно, в частности, при помощи фейеровских отображений способом, описанным в статье [35]. Затем вычисляется вектор движения (1 по поверхности допустимой области, соответствующий направлению максимального возрастания целевой функции. После чего происходит движение в заданном направлении до ограничивающего ребра. В этой точке вычисляется новый вектор (I, и указанные шаги повторяются до тех пор, пока вектор в, не окажется нулевым. Статья [34] содержит доказательство, что сделать это можно всегда за конечное число шагов. Проблема метода поверхностного движения состоит в том, что не представлен конструктивный способ нахождения вектора (I.
Решением проблемы с определением вектора (I может стать сочетание искусственных нейронных сетей (ИНС) с оригинальным методом визуализации многомерных задач ЛП, предложенным в [36]. Известно, что нейронные сети прямого распространения демонстрируют впечатляющие результаты в задачах, связанных с распознаванием сложных визуальных образов. С другой стороны, в [36] приведен хорошо масштабируемый параллельный алгоритм, позволяющий за конечное, заранее прогнозируемое время, строить визуальные образы, доступные для обработки нейронными сетями. В настоящей статье исследован подход, объединяющий технологию глубоких нейронных сетей с возможностями параллельных
вычислений для нахождения вектора (I, указывающего направление максимального увеличения целевой функции.
Статья имеет следующую структуру. В разделе 1 кратко изложены основные положения метода визуализации задач ЛП и метода поверхностного движения, формирующие теоретическую основу настоящего исследования. В разделе 2 описана новая структура рецептивного поля, получившая название «крестообразная». Раздел 3 описывает разработку архитектуры фундаментальной нейросетевой модели, вычисляющей вектор движения й по гиперплоскостям, ограничивающим допустимую область. В разделе 4 приведены результаты вычислительных экспериментов. Заключение суммирует полученные результаты и рассматривает возможные направления дальнейших исследований.
1. Теоретические основы
Рассмотрим основные положения метода визуализации многомерных задач ЛП [36] и метода поверхностного движения [34]. В общем виде задачу линейного программирования можно представить следующим образом:
х = а^тах{(с, х)\Ах ^ Ь, х Е Мп} , (1)
где с € Мп, Ь € Мт, А € Мтхп ис/О. Причем ограничение х ^ 0 входят в систему Ах ^ Ъ в форме — Хг ^ 0 для всех г £ {1,2,...,п}. Здесь вектором с обозначен градиент целевой функции, максимум которой необходимо найти:
/(ж) = С\Х\ + . . . + СпХп. (2)
Обозначим через V множество индексов, нумерующих строки матрицы А:
Р = {1 (3)
Пусть щ £ Мп обозначает вектор, представляющий г-тую строку матрицы А. Мы предполагаем, что щ ф 0 для всех г £ Р. Обозначим через Щ замкнутое полупространство, определяемое неравенством (щ, х) ^ Ьг, а через Нг — ограничивающую его гиперплоскость:
Щ = {хеЖп\{щ,х) О*}; (4)
Щ = {хеЖп\{щ,х) =Ьг}. (5)
Целевая проекция точки г €. Мп на гиперплоскость Н{ вычисляется по формуле
Ъ(г) = г + &(г)с, (6)
где
{щ,с}
При этом гиперплоскость Щ не должна быть параллельной к вектору с. Скалярная величина называется целевым смещением точки г относительно гиперплоскости Щ. Определим допустимый многогранник
М = П Ни (8)
гея
представляющий множество допустимых точек задачи ЛП (1). Заметим, что М в этом случае будет замкнутым выпуклым множеством. Мы будем предполагать, что М ^ 0, то есть задача ЛП (1) имеет решение. Обозначим через Г(М) множество граничных точек многогранника М. Под граничной точкой множества М С Кп понимается точка в Мп, для которой любая открытая ее окрестность в Мп имеет непустое пересечение как с множеством М, так и с его дополнением.
Целевой гиперплоскостью Нс(г), проходящей через точку г, называется гиперплоскость, задаваемая формулой
Нс(г) = {хеШп\(с,х) = (с,г)}. (9)
Полупространство Щ называется рецессивным [37], если
(аь с) > 0. (10)
Определим
1 = {{еГ\(аис) >0}, (11)
то есть X представляет множество индексов, для которых полупространство Щ является рецессивным. Поскольку допустимый многогранник М представляет собой ограниченное множество, имеем
Х + %. (12)
Определим рецессивный многогранник
М = р| Щ. (13)
¿ех
Очевидно, что М является выпуклым, замкнутым, неограниченным множеством. Из (8) и (11) следует
МсМ. (14)
Обозначим через Г(М) множество граничных точек рецессивного многогранника М. Согласно утверждению 3 в [37] имеем
х Е Т(М), (15)
то есть решение задачи ЛП (1) лежит на границе рецессивного многогранника М.
Целевая проекция 'у(г) точки г 6 М" на границу Г(М) рецессивного многогранника М вычисляется по формуле
7 (г) = г + р(г)с, (16)
где /3(г) = тт {/ЗДг) |г £1}. Скалярная величина /3(я) называется целевым смещением точки г относительно границы рецессивного многогранника. На основе целевых смещений строится цифровой образ задачи ЛП.
Метод поверхностного движения, описанный в [34], строит на поверхности допустимого многогранника путь из произвольной граничной точки и€ МПГ(М) до точки ж, являющейся решением задачи ЛП (1). Перемещение по поверхности рецессивного многогранника происходит в направлении наибольшего увеличения целевой функции. Реализация метода поверхностного движения приведена в виде алгоритма 1 в [34].
Ключевым пунктом алгоритма является построение вектора движения (I для текущего приближения и^ £ МП Г(М). Рассмотрим его подробнее. Сначала строится п-мерный
диск I), являющийся пересечением целевой гиперплоскости Нс(ипроходящей через точку и(к\ и п-мерного шара Уг (и^) малого радиуса г с центром в точке
2) = Яс(иМ)П7г(«®). (17)
На гипердиске вычисляется точка V с максимальным смещением относительно границы рецессивного многогранника М.
V = аг§тах{/3(аз) | х Е В). (18)
Далее вычисляется точка го, являющаяся целевой проекцией V на границу рецессивного многогранника.
V) = 7(«). (19)
Отметим, что, согласно утверждению 4 из [34], мы всегда можем подобрать такой радиус г для Уг (и^), чтобы исходная точка и^ и целевая проекция го принадлежали одной и той же гиперплоскости. Вектор й движения по поверхности многогранника М, соответствующий направлению наибольшего увеличения целевой функции, определяется как разность целевой проекции го и точки
й = ги-и(к\ (20)
Для практической реализации метода поверхностного движения необходим эффективный способ вычисления вектора в,. Идея эффективного решения этой проблемы, предложе-ная в работе [36], состоит в следующем: построить на суперкомпьютере визуальный образ окрестности точки и^ и передать его на вход глубокой нейронной сети, обученной выдавать координаты вектора й.
Для построения визуального образа задачи ЛП в [36] строится гиперкубическое рецептивное поля. Гиперкубическое рецептивное поле 0СиЬе(з» т], 6) С Нс плотности 8 Е М>о с центром в точке г Е Нс и рангом г] Е N представляет собой множество точек, являющихся узлами гиперкубической решетки размерности п — 1с фиксированным расстоянием 6 между узлами, которая имеет 2г) ячеек по каждому измерению. Общее количество точек в гиперкубическом рецептивном поле вычисляется по формуле
КсиЬе = (2Л + 1)п~1. (21)
Пример гиперкубического рецептивного поля в пространстве М3 приведен на рис. 1а.
Образом 3(г,г],6), порожденным рецептивным полем <б(г, г), 6), является упорядоченное множество вещественных чисел
3(г, г?, 6) = {р(д)\д €в(г,11,6)}. (22)
Полученный образ подается на вход глубокой нейронной сети (DNN). Правильно БКМ вычисляет координаты вектора (I.
ё = Вш(з(и^\г),5)У (23)
Основная проблема гиперкубического рецептивного поля состоит в том, что с увеличением размерности пространства, число точек рецептивного поля в соответствии с формулой (21)
®сиЬе(,4,8)
+.......+■.......♦..............♦
+--------------+------->-------1
I I 17 1
■ ■ I ^ ■
775
а) гиперкубическое
б) крестообразное
Рис. 1. Две структуры рецептивного поля в пространстве М3
растет экспоненциально. В следующем разделе предлагается другая конфигурация рецептивного поля, называемая крестообразной. Количество точек в такой конфинурации растет линейно с ростом размерности.
2. Крестообразное рецептивное поле
Построим набор взаимно ортогональных векторов, включающих в себя с, следующим образом:
с(°) = С = (С1,С2,СЗ,С4,...,СП-1,СП)-,
У1._2 С?, С2, с3, с4,..., Сп-1, Сп^ , если С1 ф 0; (1,0,... ,0), если с\ = 0;
(2) _ Г —^ 5Х=3 ' Сз> С4> • • •' С«)'если С2 ^
(0,1,0,..., 0), если сг = 0;
(°> —^ Сг?'С4''''' ^-Ь Сп) , если с3 ф 0;
(0,0,1,0,...,0), еслис3 = 0;
=
,(з) =
• • •'"¿7 Е-=п-1Сг?'071-1'Сп) ' если Сп"2 ^ 0;
(0,..., 0,1,0,0), если Сп-2 = 0; (°> ■ • •' °> ' если с"-1 ^ 0; (0,..., 0,0,1,0), если Сп-1 = 0.
с(п~ 2) = с(»"1) =
Легко видеть, что
В том числе
V»,3 6 {0,1,..., п - 1}, гф 3 : (с», с«)) = 0.
(24)
(25)
Утверждение 4 из [36] показывает, что линейное подпространство размерности (п — 1), порождаемое ортогональными векторами с±,..., Сп-1, является гиперплоскостью, параллельной гиперплоскости Нс. Обозначим через Ес следующий ортонормированный базис:
Определение 1. Крестообразным рецептивным полем 0cross О2, 7?, S) С Нс плотности 6 € М>о с центром в точке z £ Нс и рангом г? € N будем называть конечное упорядоченное множество точек, расположенных на осях ортонормированного базиса Ес с центром координат в точке z, определяющего линейное многообразие Нс, с фиксированным расстоянием <5 между соседними точками. На каждой полуоси базиса располагается г/ точек. Центр координат также включается в крестообразное рецептивное поле.
Крестообразное рецептивное поле может быть построено с помощью алгоритма 1. Прокомментируем его шаги. На шаге 1 создается пустое множество точек (5. На шагах 2-19 цикл for на каждой итерации заполняет точками одну ось базиса Ес. На шагах 3-18 цикл for создает одну точку. На шаге 4 инициализируется точка s, все координаты которой заполнены нулями. Затем цикл for на шагах 5-16 вычисляет по очереди каждую координату Sj в базисе Ес и сохраняет ее в s, Если номер координаты не совпадает с номером обрабатываемой оси, то такая координата равна 0 (шаги 6-7). Иначе Sj присваивается координата по оси е^ (шаги 8-14). Если точка расположена на отрицательной полуоси, то координате по очереди присваиваются значения {—г/,..., — 1} (шаги 9—10); на положительной полуоси координате присваиваются значения {1,... ,77} (шаги 11—13). На шаге 15 вычисленная координата добавляется к s. По окончании записи всех координат в s, на шаге 17 новая точка со сдвигом z добавляется в множество точек рецептивного поля 0. После того, как множество точек сформировано, на шаге 20 к нему добавляется центральная точка поля. Шаг 21 завершает работу алгоритма.
Пример крестообразного рецептивного поля в пространстве М3 приведен на рис. 16. Общее количество точек крестообразного поля вычисляется по формуле
Действительно, алгоритм 1 в цикле for на шагах 2-19 строит точки на каждой из п — 1 осей, задаваемых векторами из Ес. На каждой оси во вложенном цикле for (шаги 3-18) от нулевой точки строится г] точек в положительном и 77 точек в отрицательном направлениях. Всего получается 2r/(n — 1) точек. В завершение к получившемуся множеству точек на шаге 20 добавляется центральная точка. В сумме получаем 2r/(n — 1) + 1.
Поскольку хранить постоянно весь массив точек нецелесообразно, на практике координаты точки можно вычислять динамически по ее номеру. Именно этот подход используется при построении образа рецептивного поля в алгоритме 2.
Дадим краткие комментарии по шагам этого алгоритма. Шаг 1 инициализирует пустое множество 3, которое будет содержать целевые смещения точек рецептивного поля. Затем цикл for перебирает (шаги 2—19) все точки рецептивного поля, кроме центральной. На шаге 3 вычисляется номер оси, на которой расположена точка. На шаге 4 вычисляется номер точки на оси. На шагах 5—10 вычисляются координаты точки. На шаге 5 в качестве исходных принимаются координаты центральной точки рецептивного поля. В зависимости от того, расположена вычисляемая точка на отрицательной или положительной полуоси (шаг 6), к
(26)
-Across = 2г}(п - 1) + 1.
(27)
Алгоритм 1 Построение крестообразного рецептивного поля ©cross(2, rj, S) Require: г G Hc, r) е N, S e R>0 1: 0:=0
2: for i = 1 . . . П — 1 do
3: for i = 1... 2rj do
4: s := 0
5: for j = 1... n — 1 do
6: if j ф t then
7: 83 = 0
8: else
9: if i ^ 77 then
10: Sj :=(г — rj — 1)5
11: else
12: Sj :=(i — r))5
13: end if
14: end if
15: s := s + Sje^
16: end for
17: <8 := <8 U {s + z} 18: end for
19: end for 20: <S:=(SU {z} 21: Stop
исходным координатам добавляется перемещение в отрицательную сторону (шаг 7), либо в положительную (шаг 9). Центральная точка на этом этапе не обрабатывается, так как она для всех осей общая. Далее на шагах 11-18 с помощью формулы (16) вычисляется целевое смещение полученной точки рецептивного поля относительно границы рецессивного многогранника. После вычисления всех точек рецептивного поля, кроме центральной, на шаге 20 к образу добавляется еще одно смещение, равное нулю, так как центральная точка рецептивного поля всегда располагается на поверхности допустимого многогранника. Следующее утверждение дает оценку временной сложности описанного алгоритма.
Утверждение 1. Алгоритм 2 имеет временную сложностью 0(п2т).
Доказательство. Рассмотрим алгоритм 2. Шаги 5, 7, 9, 11 и 13 имеет временную сложность 0{п). Остальные шаги, за исключением операторов цикла for, имеют вычислительную сложность 0(1). Количество итераций внутреннего цикла for (шаг 12) можно оценить как 0(т). Следовательно, шаги 12—17 имеют суммарную временную сложность 0(пт). Количество итераций внешнего цикла for (шаг 2) может быть оценено как 0{п). Таким образом, временная сложность алгоритма 2 в целом может быть оценена как 0(п2т). □
Алгоритм 2 Построение крестообразного образа 3Cross{z,rj,6) Require: г е Нс, г] G N, 5 е R>0 1: 3:=0
2: for к = 1... 2 г](п — 1) do 3: l:=l(k-l)/2r)\+l 4: р\=(к - 1) mod 2г} + 1 5: д ■= z 6: if р ^ г} then
7: g:=g + (p-r]-l)8eW 8: else
9: д :=д + (р - rfiSe® 10: end if
11: p-.= -{ai;9)-bl Н 12: for г = 2... m do
{ah с)
14: if /3i ^ ^ then 15:
16: end if 17: end for 18: 3:=3U{/3} 19: end for 20: J:=JU{0} 21: Stop
3. Построение нейронной сети для движения по гиперплоскости
Пусть в Мп заданы случайный вектор а и гиперплоскость На, ортогональная вектору а. Без ограничения общности мы можем полагать, что гиперплоскость На проходит через нулевой вектор:
На = {жеГ | (а,х) = 0}. (28)
Зададим произвольный вектор с такой, что
(а, с) > 0. (29)
Гиперплоскость На представляет собой случайную грань некоторого допустимого многогранника М, а вектор с — градиент случайной целевой функции. При этом полупространство На, задаваемое формулой
На = {х € Мп | (а, ж) ^ 0}, (30)
является рецессивным по отношению к вектору с. Очевидно, что в контексте задачи ЛП МсЯаиЯвП Г(М) ф 0.
Для построения цифрового образа гиперплоскости На, используем целевую гиперплоскость в точке 0:
Яс(0) = {х € Кп | (с, х) = 0}. (31)
Воспользовавшись (24) и (26), сформируем базис Ес С Нс{0). С помощью алгоритма 4 из [36] построим гиперкубический образ 3сиье(0, г/, 6), и с помощью алгоритма 2, описанного выше, построим крестообразный образ Зсгонн(0, г), 6). Далее мы будем обозначать эти образы как ЗсиЬе И Зсгозз- С помощью функции
4>з{р) = 511(р - штр))/(тах(З) - тт(3)) - 256 (32)
выполним нормализацию обоих образов:
5сиЬе = {^асиЬс(р) I Р е ЗсиЬе} , (33)
Across = {«/Across (р) I Р € Across} • (34)
Для построения обучающего множества необходимо сопоставить нормализованному образу правильный вектор движения da по гиперплоскости На. Обозначим через тг0(с) ортогональную проекцию вектора с на гиперплоскость На:
тга(с) = с-^а. (35)
||а||
Очевидно, что ортогональная проекция 7га(с) указывает направление максимального увеличения значения целевой функции на гиперплоскости На. Таким образом
da = 7Го(с). (36)
В качестве правильного ответа вместо п координат вектора da в Мп будем указывать п — 1 координату в базисе Ес. Обозначим через да £ Нс ортогональную проекцию вектора da на гиперплоскость Нс:
9a = da- (37)
||с||
Используя (36) и (35), данную формулу можно преобразовать к виду
да={-^-с-а. (38)
||с||
Коэффициентом угла наклона вектора да к базисному вектору eW назовем косинус угла между векторами да и eW :
(e(i),gg)
cos (У-i = -^—r—(39)
lldall
Взятые вместе, коэффициенты углов наклона образуют вектор правильного ответа
Il9.ll ..... Il9.ll )■ ' '
Для настройки оптимальных гиперпараметров нейронной сети была разработана гипермодель, представленная на рис. 2. Эта гипермодель включает входной слой, блок скрытых
входной слой
Dense
input: K
f \ [relu, tanh, sigmoid]
/• Л
Dropout
[0., 0.15, 0.30, 0.45]
первый скрытый
среднии скрытый
1
Dense
[2048, 4096, 8192]
[relu, tanh, sigmoid]
Dense
[2048, 4096, 8192]
[relu, tanh, sigmoid]
Dropout
[0., 0.15, 0.30, 0.45]
Dropout
[0., 0.15, 0.30, 0.45]
learning_rate =
0.0005, 0.0001
последний скрытый
Dense
[1024, 2048, 4096]
[relu, tanh, sigmoid]
Dropout
[0., 0.15, 0.30, 0.45]
= [0.01, 0.005, 0.001, число слоев =
0.00005, 0.00001] [0,1,2,3,4,5,6,7,8,9,10]
Рис. 2. Архитектура гипермодели Таблица 1. Параметры рецептивного поля
выходной слой
Dense
output: п — 1
Параметр Семантика Значение
n размерность пространства 10
V ранг рецептивного поля 5
6 расстояние между соседними точками 1
-^-cube число точек рецептивного поля 91
слоев и выходной слой. Блок скрытых слоев состоит из первого скрытого слоя, переменного числа средних скрытых слоев и последнего скрытого слоя. Все слои являются полностью связанными (dense connection). Выбор функции активации для всех слоев осуществлялся из набора {ReLU, sigmoid, tanh}. Входной слой имеет К нейронов, соответствующих точкам используемого рецептивного поля. Выходной слой имеет п — 1 нейронов, соответствующих числу коэффициентов углов наклона вектора да.
Подбор гиперпараметров выполнялся на обучающем множестве, сгенерированном в пространстве М10 с конфигурацией рецептивного поля, представленной в табл. 1. Для генерации случайных координат векторов а и с использовалось стандартное нормальное распределение. Число нейронов для скрытых слоев подбиралось из набора {1024,2048,4096,8192}. Количество средних скрытых слоев подбиралось из набора {0,1, ...,8}. Заметим, что максимально возможное число скрытых слоев при таком выборе параметров равнялось 10, что соответствует заданной размерности пространства п = 10.
Основываясь на представленной гипермодели, был выполнен байесовский поиск оптимального набора гиперпараметров с использованием платформы W&B [38]. При обучении был использован оптимизатор RMSProp [39]. Размер блока обучающих прецедентов (batch size) равнялся 128. В качестве функции потерь (loss) была использована косинусная мера (cosine similarity)
cs = — ELlt^^L^ (41)
входной слой
первый скрытый
среднии скрытый
последний скрытый
выходной слой
i i i
/ \ Dense Dense Dense Dense
input: К 4096 4096 2048 V J
ReLU tanh tanh tanh
Dropout Dropout Dropout Dropout
0 0.45 0.15 0.45
1
Dense
output: n — 1
learning_rate = 0.00005 число слоев = 1
Рис. 3. Архитектура нейронной сети
Здесь OLk — это значения коэффициентов наклона, предсказанные нейронной сетью, у^ — коэффициенты наклона, рассчитанные на основе формулы (40). Набор обучающих данных из 100 000 прецедентов был разделен следующим образом:
• обучающая выборка: 80000 элементов;
• тестовая выборка: 15000 элементов;
• валидационная выборка: 5000 элементов.
Для обучения и тестирования нейронных сетей использовался комплекс «Нейрокомпьютер» Южно-Уральского государственного университета [40], оборудованный графическими процессорами nVidia Tesla V100. Обучение производилось при помощи библиотек keras и TensorFlow. В результате была получена глубокая ИНС, архитектура которой представлена на рис. 3. Для оценки качества работы нейронных сетей была использована оригинальная модификация средней абсолютной ошибки, получившая название «средняя абсолютная нормализованная ошибка» MANE (mean absolute normalized error):
1 n
MANE = - • У n ^
i=i
Vi
\\y\
Ctj
Hall
(42)
Создание обучающего множества и обучение искусственной нейронной сети производилось по схеме, представленной на рис. 4. Сначала программа генерации случайных гиперплоскостей, приняв в качестве входного параметра число Q, генерирует Q пар {а, с}, где каждая пара состоит из случайного вектора а, определяющего гиперплоскость (28) и случайного вектора целевой функции с. Массив сгенерированных данных помещается в файл, передаваемый программе визуализации. Визуализатор принимает входные параметры, определяющие положение точек рецептивного поля:
• ранг рецептивного поля г/;
• плотность рецептивного поля 5;
• форма рецептивного поля cube (гиперкубическое) или cross (крестообразное).
В результате работы визуализатора формируется файл прецедентов, содержащий Q строк. В каждой строке записаны К нормализованных по формуле (32) коэффициентов, форми-
Параметры генератора
(}—число задач --------------г---------
_±_
Генератор гиперплоскостей, векторов и проекций
I Параметры рецептивного поля: \ г] — ранг S — плотность ч cube/cross— конфигурация
ае!"- нормаль гиперплоскости сёЕп- вектор
Искусственная нейронная сеть Г \ Образ рецептивного поля: 3 Вектор правильных ответов: уа V У
Рис. 4. Архитектура программного комплекса для построения обучающего множества
рующих образ 3, и п — 1 коэффициентов угла наклона, формирующих вектор правильного ответа уа.
4. Вычислительные эксперименты
В первой серии экспериментов исследовалось влияние конфигурации и числа точек рецептивного поля на точность работы ИНС. На основе архитектуры, представленной на рис. 3, были построены 10 нейронных сетей, отличающихся числом входных нейронов. Число входных нейронов соответствовало гиперкубической и крестообразной конфигурациям рецептивного поля. Для каждой конфигурации перебиралось значение ранга 77 от 1 до 5. Результаты представлены на рис. 5. На графиках видно, что крестообразное рецептивное поле незначительно уступает в точности гиперкубическому. При этом для размерности п = 4 наилучшие результаты крестообразное поле демонстрирует, начиная с ранга 2 (рис. 56). Гиперкубическое рецептивное поле для этой размерности демонстрирует наилучший результат также при ранге 2, однако дальнейшее увеличение ранга приводит к ухудшению точности (рис. 5а). Основываясь на полученных результатах, для дальнейших экспериментов с задачами больших размерностей было выбрано крестообразное рецептивное поле ранга 5.
Во второй серии вычислительных экспериментов была исследована зависимость точности ИНС от числа скрытых слоев. Для пространств Ж10 и Ж30 был построен набор нейронных сетей на основе архитектуры, представленной на рис. 3, для которых число скрытых слоев варьировалось от 2 до п. Результаты представлены на рис. 6. Для размерности 10 число скрытых слоев практически не влияет на точность работы ИНС (рис. 6а). Однако для размерности 30 лучший результат показывает ИНС с пятью скрытыми слоями (рис. 66).
В третьей серии экспериментов была предпринята попытка улучшить точность работы ИНС за счет увеличения времени обучения. Были протестированы ИНС для пространств М10 и М30. Обучение нейронной сети в М10 происходило на протяжении 900 эпох, в про-
100.0 99.8 99.6 99.4 99.2 99.0 98.8 98.6 98.4 98.2 98.0
3
Ранг
а) гиперкубическое
100.0 99.8 99.6 99.4 99.2 99.0 98.8 98.6 98.4 98.2 98.0
Ранг
б) крестообразное
Рис. 5. Зависимость точности от конфигурации и ранга рецептивного поля в
99.30 99.20 99.10 99.00 I 98.90 ' 98.80 98.70 98.60 98.50
4 5 6 7 8
Число скрытых слоев
99.30 99.20 99.10 99.00 I 98.90 ' 98.80 98.70 98.60 98.50
Число скрытых слоев
а) в пространстве М б) в пространстве
Рис. 6. Зависимость точность ИНС от числа скрытых слоев
1
2
4
5
1
2
3
4
5
2
3
9
странстве М — 800 эпох. И в том и в другом случае время обучения составило 60 мин. Результаты представлены на рис. 7. Обращает на себя внимание тот факт, что в М10 максимальная точность достигается на 400 эпохе и далее существенно уже не меняется. В М30 точность увеличивалась практически линейно вплоть до 800 эпохи. Таким образом, можно сделать предположение, что с ростом размерности пространства время обучения ИНС существенно увеличивается.
99.499 99.501 99.501 99.503 99.501 99.502
400 500 600 700 800 900 Эпоха
100 200 300 400 500 600 700 800 Эпоха
а) в пространстве М б) в пространстве
Рис. 7. Зависимость точность ИНС от количество эпох обучения
99.10
99.05
99.00
98.95
98.90
98.85
Заключение
В настоящей работе исследован метод, позволяющий при помощи глубокой нейронной сети прямого распространения вычислять направление движения по гиперплоскостям, ограничивающим допустимый многогранник задачи ЛП. Вычисляемое направление движения соответствует максимальному увеличению значений целевой функции. Улучшен ранее разработанный метод визуализации поверхности многогранника. Представлена новая крестообразная конфигурация рецептивного поля, позволяющая избежать экспоненциального роста числа точек визуализации при увеличении размерности задачи ЛП. Для крестообразной конфигурации рецептивного поля разработан метод генерации обучающих прецедентов, по которому созданы обучающие наборы данных, визуализирующие положение случайных гиперплоскостей и целевых векторов в пространствах размерности до 30 включительно. С использованием обучающих наборов разработана масштабируемая архитектура глубокой ИНС с изменяемым числом скрытых слоев и проведены несколько серий вычислительных экспериментов. Результаты экспериментов свидетельствуют о том, что предложенная крестообразная конфигурация рецептивного поля с точки зрения точности результатов, выдаваемых ИНС, практически не отличается от гиперкубической конфигурации. Испытания крестообразного рецептивного поля показали, что точность основанной на нем ИНС не зависит от числа скрытых слоев. Точность более 98% по метрике MANE достигается в М10 и М30 ИНС с двумя скрытыми слоями на 50 эпохе. Установлено, что для крестообразной конфигурации наилучшая точность достигается при ранге 3 и с дальнейшим увеличением ранга существенно не изменяется. Скорость обучения зависит от размерности пространства. В R10 наилучший результат достигается на 400 эпохе обучения и в дальнейшем не изменяется. В М30 до 800 эпохи точность продолжает расти линейно и достигает значения 99.06%.
В качестве направления дальнейших исследований отметим следующие шаги, реализация которых позволит построить принципиально новый способ решения многомерных задач линейного программирования.
• Разработка нейросетевой модели для вычисления вектора d в точке, лежащей на ребре — многообразии размерности п — к, образованном пересечением к гиперплоскостей.
• Разработка ансамбля нейросетевых моделей для вычисления вектора d в любой точке допустимого многогранника размерности п.
• Исследование возможности применения сверточных нейронных сетей при распознавании сложных структур на поверхности допустимого многогранника.
Исследование выполнено при финансовой поддержке РНФ (проект № 23-21-00356).
Литература
1. Соколинская И.М., Соколинский Л.Б. О решении задачи линейного программирования в эпоху больших данных // Параллельные вычислительные технологии — XI международная конференция (ПаВТ'2017): Короткие статьи и описания плакатов, Казань, 3-7 апреля, 2017. Челябинск: Издательский центр ЮУрГУ, 2017. С. 471-484. URL: http://omega.sp.susu.ru/pavt 2017/short/014.pdf.
2. Brogaaxd J., Hendershott Т., 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.
3. Deng S., Huang X., Wang J., et al. A Decision Support System for Trading in Apple Futures Market Using Predictions Fusion // IEEE Access. 2021. Vol. 9. P. 1271-1285. DOI: 10.1109/ACCESS.2020.3047138.
4. Seregin G. Lecture Notes on Regularity Theory for the Navier-Stokes Equations. WORLD SCIENTIFIC, 2014. DOI: 10.1142/9314.
5. Demin D. Synthesis of optimal control of technological processes based on a multialterna-tive parametric description of the final state // Eastern-European Journal of Enterprise Technologies. 2017. Vol. 3, no. 4 (87). P. 51-63. DOI: 10.15587/1729-4061.2017.105294.
6. Kazarinov L.S., Shnayder D.A., Kolesnikova O.V. Heat load control in steam boilers // 2017 International Conference on Industrial Engineering, Applications and Manufacturing (ICIEAM). IEEE, 2017. P. 1-4. DOI: 10.1109/ICIEAM.2017.8076177.
7. Zagoskina E., Barbasova Т., Shnaider D. Intelligent Control System of Blast-furnace Melting Efficiency // 2019 International Multi-Conference on Engineering, Computer and Information Sciences (SIBIRCON). IEEE, 2019. P. 0710-0713. DOI: 10. 1109/SIBIRC0N48586. 2019.8958221.
8. Fleming J., Yan X., Allison C., et al. Real-time predictive eco-driving assistance considering road geometry and long-range radar measurements // IET Intelligent Transport Systems. 2021. Vol. 15, no. 4. P. 573-583. DOI: 10.1049/itr2.12047.
9. Scholl M., Minnerup K., Reiter C., et al. optimization of a Thermal Management System for Battery Electric Vehicles // 2019 Fourteenth International Conference on Ecological Vehicles and Renewable Energies (EVER). IEEE, 2019. P. 1-10. DOI: 10. 1109/EVER. 2019.8813657.
10. Meisel S. Dynamic Vehicle Routing // Anticipatory Optimization for Dynamic Decision Making. Vol. 51. New York, NY: Springer, 2011. P. 77-96. Operations Research/Computer Science Interfaces Series. DOI: 10.1007/978-l-4614-0505-4_6.
11. Cheng A.M.K. Real-Time Scheduling and Schedulability Analysis // Real-Time Systems. Wiley, 2002. P. 41-85. DOI: 10.1002/0471224626.ch3.
12. Kopetz H. Real-Time Scheduling // Real-Time Systems. Boston, MA: Springer, 2011. P. 239-258. Real-Time Systems Series. DOI: 10.1007/978-1-4419-8237-7_10.
13. Dantzig G.B. Linear programming and extensions. Princeton university press, 1998. 656 p.
14. Hall J.A.J., McKinnon K.I.M. Hyper-Sparsity in the Revised Simplex Method and How to Exploit it // Computational Optimization and Applications. 2005. Vol. 32, no. 3. P. 259-283. DOI: 10.1007/sl0589-005-4802-0.
15. Klee V., Minty G.J. How good is the simplex algorithm? // Inequalities — III. Proceedings of the Third Symposium on Inequalities Held at the University of California, Los Angeles, Sept. 1-9, 1969 / ed. by O. Shisha. Academic Press, 1972. P. 159-175.
16. Jeroslow R. The simplex algorithm with the pivot rule of maximizing criterion improvement // Discrete Mathematics. 1973. Vol. 4, no. 4. P. 367-377. DOI: 10. 1016/0012-365X(73)90171-4.
17. 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.
18. Bartels R.H., Stoer J., Zenger C. A Realization of the Simplex Method Based on Triangular Decompositions // Handbook for Automatic Computation. Berlin, Heidelberg: Springer Berlin Heidelberg, 1971. P. 152-190. DOI: 10.1007/978-3-642-86940-2_ll.
19. Tolla P. A Survey of Some Linear Programming Methods // Concepts of Combinatorial Optimization / ed. by V.T. Paschos. 2nd ed. Hoboken, NJ, USA: Wiley, 2014. P. 157-188. DOI: 10.1002/9781119005216. ch7.
20. Hall J.A.J. Towards a practical parallelisation of the simplex method // Computational Management Science. 2010. Vol. 7, no. 2. P. 139-170. DOI: 10.1007/sl0287-008-0080-5.
21. Mamalis В., Pantziou G. Advances in the Parallelization of the Simplex Method // Algorithms, Probability, Networks, and Games. Vol. 9295 / ed. by C. Zaroliagis, G. Pantziou, S. Kontogiannis. Springer, 2015. P. 281-307. Lecture Notes in Computer Science. DOI: 10.1007/978-3-319-24024-4_17.
22. Lubin M., Hall J.A.J., Petra C.G., Anitescu M. Parallel distributed-memory simplex for large-scale stochastic LP problems // Computational Optimization and Applications. 2013. Vol. 55, no. 3. P. 571-596. DOI: 10.1007/sl0589-013-9542-y.
23. Khachiyan L. Polynomial algorithms in linear programming // USSR Computational Mathematics and Mathematical Physics. 1980. Vol. 20, no. 1. P. 53-72. DOI: 10.1016/0041-5553(80)90061-0.
24. Shor N.Z. Cut-off method with space extension in convex programming problems // Cybernetics. 1977. Vol. 13, no. 1. P. 94-96. DOI: 10.1007/BF01071394.
25. Юдин Д.В., Немировский А.С. Информационная сложность и эффективные методы решения выпуклых экстремальных задач // Экономика и математические методы. 1976. № 2. С. 357-369.
26. Karmarkar N. A new polynomial-time algorithm for linear programming // Combinatorica. 1984. Vol. 4, no. 4. P. 373-395. DOI: 10.1007/BF02579150.
27. Gondzio J. Interior point methods 25 years later // European Journal of Operational Research. 2012. Vol. 218, no. 3. P. 587-601. DOI: 10.1016/j .ejor.2011.09.017.
28. Fathi-Hafshejani S., Mansouri H., Peyghami M.R., Chen S. Primal-dual interior-point method for linear optimization based on a kernel function with trigonometric growth term // Optimization. 2018. Vol. 67, no. 10. P. 1605-1630. DOI: 10.1080/02331934.2018.1482297.
29. Asadi S., Mansouri H. A Mehrotra type predictor-corrector interior-point algorithm for linear programming // Numerical Algebra, Control &; Optimization. 2019. Vol. 9, no. 2. P. 147-156. DOI: 10.3934/naco. 2019011.
30. Yuan Y. Implementation tricks of interior-point methods for large-scale linear programs // International Conference on Graphic and Image Processing (ICGIP 2011). Vol. 8285. International Society for Optics, Photonics, 2011. P. 828502. DOI: 10.1117/12.913019.
31. Kheirfam В., Haghighi M. A full-Newton step infeasible interior-point method for linear optimization based on a trigonometric kernel function // Optimization. 2016. Vol. 65, no. 4. P. 841-857. DOI: 10.1080/02331934.2015.1080255.
32. Xu Y., Zhang L., Zhang J. A full-modified-Newton step infeasible interior-point algorithm for linear optimization // Journal of Industrial and Management Optimization. 2015. Vol. 12, no. 1. P. 103-116. DOI: 10.3934/jimo.2016.12.103.
33. Roos C., Terlaky Т., Vial J.-P. Interior Point Methods for Linear Optimization. Springer-Verlag, 2005. 500 p. DOI: 10.1007/Ы00325.
34. Ольховский H.A., Соколинский JI.Б. О новом методе линейного программирования // Вычислительные методы и программирование. 2023. Т. 24, № 4. С. 408-429. DOI: 10. 26089/NumMet.v24r428.
35. Соколииский Л.Б., Соколинская И.М. Об одном итерационном методе решения задач линейного программирования на кластерных вычислительных системах // Вычислительные методы и программирование. 2020. Т. 21, № 3. С. 329-340. DOI: 10.26089/ NUMMET.V21R328.
36. Ольховский Н.А., Соколинский Л.Б. Визуальное представление многомерных задач линейного программирования // Вестник ЮУрГУ. Серия: Вычислительная математика и информатика. 2022. Т. 11, № 1. С. 31-56. DOI: 10.14529/cmse220103.
37. Соколинский Л.Б., Соколинская И.М. О новой версии апекс-метода для решения задач линейного программирования // Вестник ЮУрГУ. Серия: Вычислительная математика и информатика. 2023. Т. 12, № 2. С. 5-46. DOI: 10.14529/cmse230201.
38. Biewald L. Experiment Tracking with Weights and Biases // Software available from wandb.com. 2020. January.
39. Goodfellow I., Bengio Y., Courville A. Deep Learning (Adaptive Computation and Machine Learning). Vol. 8. 2016.
40. Биленко P.B., Долганина Н.Ю., Иванова E.B., Рекачинский А.И. Высокопроизводительные вычислительные ресурсы Южно-Уральского государственного университета // Вестник ЮУрГУ. Серия: Вычислительная математика и информатика. 2022. Т. 11, № 1. С. 15-30. DOI: 10.14529/cmse220102.
Ольховский Николай Александрович, младший научный сотрудник, кафедра системного программирования, Южно-Уральский государственный университет (национальный исследовательский университет) (Челябинск, Российская Федерация)
DOI: 10.14529/ cmse230402
STUDY OF NEURAL NETWORK MODELS FOR LINEAR PROGRAMMING
© 2023 N.A. Olkhovsky
South Ural State University (pr. Lenina 16, Chelyabinsk, 454080 Russia) E-mail: [email protected] Received: 20.10.2023
The article explores a method for determining the motion vector from hyperplanes that bound the feasible polytop of a multidimensional linear programming problem. The method is based on visual images fed to the input of a feedforward neural network. The visualization algorithm constructs a receptive field in the vicinity of a point located on the bounding hyperplane. For each point of the receptive field, the scalar bias to the hyperplane surface is calculated. Based on the calculated bias, each receptive field point is assigned with a scalar value. The resulting visual image is fed to the input of a feed-forward neural network, which calculates the direction of maximum increase in the objective function on the bounding hyperplane. The article proposes an improved form of the cross-shaped receptive field. The construction of a training set based on randomly generated bounding hyperplanes and objective functions in multidimensional spaces is described. A scalable neural network architecture with a variable number of hidden layers has been developed. The hyperpararneters of the neural network were selected. Computational experiments confirmed the high (more than 98%) accuracy of the cross-shaped receptive field. The dependence of the accuracy of the neural network results on the number of hidden layers and the duration of training was studied.
Keywords: linear programming, surface movement method, artificial neural network, deep learning.
FOR CITATION
Olkhovsky N.A. Study of Neural Network Nodels for Linear Programming. Bulletin of the South Ural State University. Series: Computational Mathematics and Software Engineering. 2023. Vol. 12, no. 4. P. 55-75. (in Russian) DOI: 10.14529/cmse230402.
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. Sokolinskaya I.M., Sokolinsky L.B. On the Solution of Linear Programming Problems in the Age of Big Data. Parallel Computational Technologies. Vol. 753 / ed. by L.B. Sokolinsky, M.L. Zymbler. Cham: Springer, 2017. P. 86-100. Communications in Computer and Information Science. DOI: 10.1007/978-3-319-67035-5_7.
2. 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.
3. Deng S., Huang X., Wang J., et al. A Decision Support System for Trading in Apple Futures Market Using Predictions Fusion. IEEE Access. 2021. Vol. 9. P. 1271-1285. DOI: 10.1109/ACCESS.2020.3047138.
4. Seregin G. Lecture Notes on Regularity Theory for the Navier-Stokes Equations. WORLD SCIENTIFIC, 2014. DOI: 10.1142/9314.
5. Demin D. Synthesis of optimal control of technological processes based on a multialter-native parametric description of the final state. Eastern-European Journal of Enterprise Technologies. 2017. Vol. 3, no. 4 (87). P. 51-63. DOI: 10.15587/1729-4061.2017.105294.
6. Kazarinov L.S., Shnayder D.A., Kolesnikova O.V. Heat load control in steam boilers. 2017 International Conference on Industrial Engineering, Applications and Manufacturing (ICIEAM). IEEE, 2017. P. 1-4. DOI: 10.1109/ICIEAM.2017.8076177.
7. Zagoskina E., Barbasova T., Shnaider D. Intelligent Control System of Blast-furnace Melting Efficiency. 2019 International Multi-Conference on Engineering, Computer and Information Sciences (SIBIRCON). IEEE, 2019. P. 0710-0713. DOI: 10.1109/SIBIRC0N48586.2019. 8958221.
8. Fleming J., Yan X., Allison C., et al. Real-time predictive eco-driving assistance considering road geometry and long-range radar measurements. IET Intelligent Transport Systems. 2021. Vol. 15, no. 4. P. 573-583. DOI: 10.1049/itr2.12047.
9. Scholl M., Minnerup K., Reiter C., et al. optimization of a Thermal Management System for Battery Electric Vehicles. 2019 Fourteenth International Conference on Ecological Vehicles and Renewable Energies (EVER). IEEE, 2019. P. 1-10. DOI: 10.1109/EVER. 2019.8813657.
10. Meisel S. Dynamic Vehicle Routing. Anticipatory Optimization for Dynamic Decision Making. Vol. 51. New York, NY: Springer, 2011. P. 77-96. Operations Research/Computer Science Interfaces Series. DOI: 10.1007/978-l-4614-0505-4_6.
11. Cheng A.M.K. Real-Time Scheduling and Schedulability Analysis. Real-Time Systems. Wiley, 2002. P. 41-85. DOI: 10.1002/0471224626.ch3.
12. Kopetz Н. Real-Time Scheduling. Real-Time Systems. Boston, MA: Springer, 2011. P. 239-258. Real-Time Systems Series. DOI: 10.1007/978-1-4419-8237-7_10.
13. Dantzig G.B. Linear programming and extensions. Princeton university press, 1998. 656 p.
14. Hall J.A.J., McKinnon K.I.M. Hyper-Sparsity in the Revised Simplex Method and How to Exploit it. Computational Optimization and Applications. 2005. Vol. 32, no. 3. P. 259-283. DOI: 10.1007/sl0589-005-4802-0.
15. Klee V., Minty G.J. How good is the simplex algorithm?. Inequalities — III. Proceedings of the Third Symposium on Inequalities Held at the University of California, Los Angeles, Sept. 1-9, 1969 / ed. by O. Shisha. Academic Press, 1972. P. 159-175.
16. Jeroslow R. The simplex algorithm with the pivot rule of maximizing criterion improvement. Discrete Mathematics. 1973. Vol. 4, no. 4. P. 367-377. DOI: 10. 1016/0012-365X(73) 90171-4.
17. 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.
18. Bartels R.H., Stoer J., Zenger C. A Realization of the Simplex Method Based on Triangular Decompositions. Handbook for Automatic Computation. Berlin, Heidelberg: Springer Berlin Heidelberg, 1971. P. 152-190. DOI: 10.1007/978-3-642-86940-2_ll.
19. Tolla P. A Survey of Some Linear Programming Methods. Concepts of Combinatorial Optimization / ed. by V.T. Paschos. 2nd ed. Hoboken, NJ, USA: Wiley, 2014. P. 157-188. DOI: 10.1002/9781119005216.ch7.
20. Hall J.A.J. Towards a practical parallelisation of the simplex method. Computational Management Science. 2010. Vol. 7, no. 2. P. 139-170. DOI: 10.1007/sl0287-008-0080-5.
21. Mamalis В., Pantziou G. Advances in the Parallelization of the Simplex Method. Algorithms, Probability, Networks, and Games. Vol. 9295 / ed. by C. Zaroliagis, G. Pantziou, S. Kontogiannis. Springer, 2015. P. 281-307. Lecture Notes in Computer Science. DOI: 10.1007/978-3-319-24024-4_17.
22. Lubin M., Hall J.A.J., Petra C.G., Anitescu M. Parallel distributed-memory simplex for large-scale stochastic LP problems. Computational Optimization and Applications. 2013. Vol. 55, no. 3. P. 571-596. DOI: 10.1007/sl0589-013-9542-y.
23. Khachiyan L. Polynomial algorithms in linear programming. USSR Computational Mathematics and Mathematical Physics. 1980. Vol. 20, no. 1. P. 53-72. DOI: 10.1016/0041-5553(80)90061-0.
24. Shor N.Z. Cut-off method with space extension in convex programming problems. Cybernetics. 1977. Vol. 13, no. 1. P. 94-96. DOI: 10.1007/BF01071394.
25. Yudin D., Nemirovsky A. Information complexity and efficient methods for solving convex extremal problems. Economics and mathematical methods (Ekonomika i matematicheskie metody). 1976. No. 2. P. 357-369. (in Russian).
26. Karmarkar N. A new polynomial-time algorithm for linear programming. Combinatorica. 1984. Vol. 4, no. 4. P. 373-395. DOI: 10.1007/BF02579150.
27. Gondzio J. Interior point methods 25 years later. European Journal of Operational Research. 2012. Vol. 218, no. 3. P. 587-601. DOI: 10.1016/j .ejor.2011.09.017.
28. Fathi-Hafshejani S., Mansouri H., Peyghami M.R., Chen S. Primal-dual interior-point method for linear optimization based on a kernel function with trigonometric growth term. Optimization. 2018. Vol. 67, no. 10. P. 1605-1630. DOI: 10.1080/02331934.2018.1482297.
29. Asadi S., Mansouri H. A Mehrotra type predictor-corrector interior-point algorithm for linear programming. Numerical Algebra, Control & Optimization. 2019. Vol. 9, no. 2. P. 147-156. DOI: 10.3934/naco.2019011.
30. Yuan Y. Implementation tricks of interior-point methods for large-scale linear programs. International Conference on Graphic and Image Processing (ICGIP 2011). Vol. 8285. International Society for Optics, Photonics, 2011. P. 828502. DOI: 10.1117/12.913019.
31. Kheirfam В., Haghighi M. A full-Newton step infeasible interior-point method for linear optimization based on a trigonometric kernel function. Optimization. 2016. Vol. 65, no. 4. P. 841-857. DOI: 10.1080/02331934.2015.1080255.
32. Xu Y., Zhang L., Zhang J. A full-modified-Newton step infeasible interior-point algorithm for linear optimization. Journal of Industrial and Management Optimization. 2015. Vol. 12, no. 1. P. 103-116. DOI: 10.3934/j imo. 2016.12.103.
33. Roos C., Terlaky Т., Vial J.-P. Interior Point Methods for Linear Optimization. Springer-Verlag, 2005. 500 p. DOI: 10.1007/Ы00325.
34. Olkhovsky N.A., Sokolinsky L.B. A new method of linear programming. Numerical Methods and Programming (Vychislitel'nye Metody i Programmirovanie). 2023. Vol. 24, no. 4. P. 408-429. (in Russian) DOI: 10.26089/NUMMET.V24R428.
35. Sokolinskaya I.M., Sokolinsky L.B. On an iterative method for solving linear programming problems on cluster computing systems. Numerical Methods and Programming (Vychislitel'nye Metody i Programmirovanie). 2020. Vol. 21, no. 3. P. 329-340. DOI: 10.26089/ NumMet.v21r328.
36. Olkhovsky N.A., Sokolinsky L.B. Visualizing Multidimensional Linear Programming Problems. Parallel Computational Technologies. Vol. 1618 / ed. by L.B. Sokolinsky, M.L. Zym-bler. Cham: Springer, 2022. P. 172-196. Communications in Computer and Information Science. DOI: 10.1007/978-3-031-11623-0_13.
37. Sokolinsky L.B., Sokolinskaya I.M. Apex Method: A New Scalable Iterative Method for Linear Programming. Mathematics. 2023. Vol. 11, no. 7. P. 1654. DOI: 10.3390/mathl 1071654.
38. Biewald L. Experiment Tracking with Weights & Biases. Software available from wandb.com. 2020. January.
39. Goodfellow I., Bengio Y., Courville A. Deep Learning (Adaptive Computation and Machine Learning). Vol. 8. 2016.
40. Bilenko R.V., Dolganina N.Y., Ivanova E.V., Rekachinsky A.I. High-performance Computing Resources of South Ural State University. Bulletin of the South Ural State University. Series: Computational Mathematics and Software Engineering. 2022. Vol. 11, no. 1. P. 15-30. DOI: 10.14529/cmse220102.