Компьютерные инструменты в образовании, 2024 № 2: 39-47 УДК: 519.6 http://cte.eltech.ru
с1о1:10.32603/2071-2340-2024-2-39-47
РАЗРАБОТКА СИСТЕМЫ ДЛЯ ОЦЕНКИ ПРОИЗВОДИТЕЛЬНОСТИ АЛГОРИТМОВ КОМПЬЮТЕРНОЙ АЛГЕБРЫ ПРИ НАХОЖДЕНИИ БАЗИСОВ ГРЁБНЕРА
Блинков Ю. А.1, профессор, доктор физ.-мат. наук, [email protected],
0000-0001-7340-0919 Салпагаров С. И.2, канд. физ.-мат. наук, доцент, И [email protected],
0000-0002-5321-9650 Мамонов А. А.2, аспирант, [email protected] Акопян И. А.2, студент, [email protected]
1 Саратовский национальный исследовательский государственный университет им. Н. Г. Чернышевского, ул. Астраханская, д. 83,410012, Саратов, Россия 2Российский университет дружбы народов имени Патриса Лумумбы, ул. Миклухо-Маклая, д. 6,117198, Москва, Россия
Аннотация
В данной работе представлена разработка специализированной системы для оценки производительности алгоритмов компьютерной алгебры при нахождении базисов Грёбнера. Для проверки функциональности и оценки производительности усовершенствованной версии 2.0 разработан специальный инструмент автоматизированного тестирования. Данный инструмент позволяет загружать тестовые наборы данных в форматером, вычислять базисы Грёбнера с использованием различных алгоритмов и визуализировать результаты тестирования. Подробно описываются модули импорта данных, вычисления базисов и вывода результатов тестирования. Проведено тестирование 2.0 на наборе из систем уравнений различной сложности. Представлены результаты тестирования, включая временные характеристики вычислений для каждого теста.
Ключевые слова: базисы Грёбнера, компьютерная алгебра, система тестирования, GInv.
Цитирование: Блинков Ю. А., Салпагаров С. И., Мамонов А. А., Акопян И. А. Разработка системы для оценки производительности алгоритмов компьютерной алгебры при нахождении базисов Грёбнера // Компьютерные инструменты в образовании. 2024. № 2. С. 39-47. ^N10.32603/2071-2340-2024-2-39-47
1. ВВЕДЕНИЕ
Благодаря практической реализации алгоритма Бухбергера для отыскания базиса Грёбнера полиномиальных колец [1] современные системы компьютерной алгебры (СКА) обрели способность сводить решение систем нелинейных уравнений с конечным
числом корней к символьному нелинейному уравнению. Данный факт представляется крайне важным, поскольку в настоящее время отсутствуют универсальные численные методы для решения систем нелинейных уравнений, в то время как для решения единичного нелинейного уравнения существуют надежные численные алгоритмы.
Несмотря на то, что строгими математическими доказательствами подтверждена конечность числа шагов, необходимых алгоритму Бухбергера для нахождения базиса Грёб-нера, а также получены оценки вычислительной сложности, демонстрирующие экспоненциальный рост [1], в практических приложениях на современных вычислительных системах применение данного алгоритма ограничивается системами невысокой степени с числом неизвестных, не превышающим десяти. В 1990-х годах были предложены усовершенствования исходного алгоритма Бухбергера, некоторые из которых на сегодняшний день сохраняют коммерческий статус. В тот же период отечественными исследователями Гердтом, Жарковым и Блинковым [2-8] был разработан новый подход к нахождению базисов полиномиальных идеалов — инволютивный алгоритм, базирующийся на оригинальной концепции инволютивного деления. Данная концепция возникла в результате сравнительного анализа алгоритма Бухбергера и работ Картана, Томаса, Жане и Рикье, посвященных исследованию систем уравнений в частных производных, состоящих в инволюции [9-11]. В 2000-х годах указанный инволютивный алгоритм был подробно описан в работе [12], где был реализован в виде программного комплекса GInv и применен к решению ряда задач математической физики [13]. Несмотря на то, что существуют и другие популярные и широко используемые системы для решения подобных уравнений: Maple, Mathematica, Singular, Macaulay2, MAGMA, особое место среди подобных систем занимает Sage, который является одним из самых популярных открытых математических пакетов, комбинирующим возможности многих других специализированных СКА, перечисленных выше. Основным отличием GInv от всех перечисленных систем является использование инволютивных базисов Жане и Жане-подобных, что позволяет более эффективно решать некоторые классы систем в сравнении с использованием классических базисов Грёбнера.
В течение 2010-х годов в программный комплекс GInv был имплементирован ряд усовершенствований, среди которых следует особо отметить существенную оптимизацию работы с памятью при наличии и отсутствии сборки мусора. Результатом проведенной модернизации явилась вторая версия системы GInv, размещенная в открытом доступе по адресу https://github.com/blinkovua/GInv. Однако тестирование данной версии было выполнено лишь на ограниченном наборе примеров. В частности, было продемонстрировано, что задача Попова о кубатурных формулах на сфере, ранее решавшаяся численными методами на суперкомпьютерных системах, может быть решена аналитически средствами GInv, но не может быть решена в системе компьютерной алгебры Sage, использующей алгоритм Бухбергера [15].
В начале 2000-х годов в процессе тестирования версии 1.0 программного комплекса GInv был сформирован обширный и репрезентативный набор тестовых примеров для верификации систем, специализирующихся на вычислении базисов Грёбнера. Указанный набор, представленный в формате XML, включал в себя 135 тестовых уравнений.
В версии GInv 2.0 реализован оригинальный подход к управлению памятью и сборке мусора. При этом было уделено внимание оптимизации использования памяти и кэша процессора. Следует заметить, что сборка мусора обычно используется для автоматического высвобождения неиспользуемой памяти в ходе выполнения программы [15]. Это позволяет разработчикам не беспокоиться о ручном освобождении памяти, которое мо-
жет привести к утечкам памяти и другим ошибкам. Сборка мусора обоснована в случае, когда требуется обрабатывать большие объемы данных и вычислять базисы Гребнера для сложных систем уравнений. В таких случаях система будет потреблять значительные объемы памяти в течение длительных периодов времени. Однако слишком частая сборка мусора может замедлять вычисления. Поэтому важно найти оптимальный баланс между эффективностью использования памяти и производительностью вычислений. Для этого в GInv 2.0 проводилось систематическое тестирование на различных наборах данных, чтобы определить наилучшие параметры сборки мусора.
Усовершенствование алгоритмов вычисления базисов Грёбнера преследует две основные цели: повышение вычислительной производительности и оптимизацию использования системных ресурсов в ходе вычислений. Зачастую достижение указанных целей представляет собой противоречивые задачи. Очевидно, что чрезмерно частая активация процедур сборки мусора может привести к существенному снижению быстродействия вычислительного процесса. В то же время предоставление системе неограниченного объема свободной оперативной памяти может способствовать стремительному исчерпанию имеющихся ресурсов. Более того, не всегда представляется возможным заранее определить, приведет ли та или иная модификация к фактическому улучшению производительности алгоритма или экономии ресурсов. В связи с этим на всех этапах разработки подобных систем крайне важным является проведение систематического тестирования для верификации корректности функционирования.
На основе 135 тестовых заданий для верификации версии 2.0 системы GInv нами был разработан специализированный программный инструмент, позволяющий осуществлять автоматизированное тестирование различных версий как самого GInv, так и других СКА, с возможностью визуализации результатов в графическом виде. Кроме того, была спроектирована универсальная система формализации тестов, пригодная для использования в различных программных комплексах компьютерной алгебры (GInv, Sage) и основанная на формате обмена данными JSON.
В рамках настоящей работы будет представлено описание разработанного инструмента для тестирования, а также продемонстрированы результаты его применения для верификации текущей версии программного комплекса GInv. Следует отметить, что исходные файлы, содержащие тестовые данные и средства верификации функциональности, равно как и сама система GInv версии 2.0, размещены в открытом доступе и могут быть свободно загружены из отдельного репозитория на платформе GitHub по адресу: https://github.com/MamonovAnton/ginv_testing.
2. ОПИСАНИЕ СИСТЕМЫ ТЕСТИРОВАНИЯ
При разработке системы тестирования одним из первых этапов являлся переход от хранения данных в формате XML к использованию более современного формата обмена данными JSON. Для выполнения данного перехода был создан специальный программный скрипт. Использование формата JSON в качестве основы для хранения и обмена данными в системе обусловлено следующими преимуществами. Формат основан на простых конструкциях ключ-значение, что упрощает анализ и обработку данных, в том числе внесение изменений в файлы вручную. Файлы JSON отличаются компактностью, что оптимизирует объемы при их хранении и передаче.
Данный формат поддерживается на всех популярных платформах и во многих языках программирования, обеспечивая кроссплатформенную совместимость и интеграцию
с другими информационными системами. Таюке обладает простотой конвертации в другие форматы при возникновении такой необходимости.
Для оптимизации процесса тестирования системы решения уравнений Ипу была разработана специализированная автоматизированная утилита. Данная утилита устраняет необходимость ручного ввода неизвестных переменных, уравнений и прочих сопутствующих данных, требуемых для решения систем уравнений. Процесс автоматизированного тестирования инициируется путем указания пути к файлу, содержащему тестовые данные.
Разработанная утилита состоит из трех ключевых функциональных блоков.
• Модуль импорта данных в форматеJSON Этот модуль загружает исходные данные, представленные в стандартизированном формате обмена данными
• Модуль построения базиса Грёбнера. Данный модуль вычисляет базис Грёбнера для заданного множества многочленов, используя алгоритмы компьютерной алгебры.
• Модуль вывода результатов тестирования. Этот модуль записывает результаты, полученные в процессе работы программы, в указанное хранилище для последующего анализа и верификации.
С целью обеспечения корректной обработки множества уравнений была реализована итерационная процедура, параметризированная массивом идентификаторов тестов. Границы итераций задаются двумя числами, определяющими начальную и конечную позиции в данном массиве. Подобный подход позволяет гибко конфигурировать вычислительный процесс в соответствии со специфическими требованиями, возникающими в ходе тестирования.
Процедура вычисления базисов Грёбнера реализована следующим образом. На начальном этапе производится инициализация пустого базиса. Далее осуществляется итеративное пополнение базиса многочленами в соответствии с выбранным алгоритмом построения базисов. В ходе всего вычислительного процесса ведется мониторинг временных затрат. Заключительным шагом является передача полученных в ходе эксперимента данных, а именно вычисленного базиса Грёбнера и соответствующих значений затраченного времени, в функцию записи результатов тестирования для последующего анализа и обработки.
При переходе к решению каждой новой задачи осуществляется отображение на экране текущей системы математических уравнений, описывающей поставленную задачу, а также идентификатора соответствующего тестового набора данных. Данная процедура предоставляет возможность отслеживать смену состояний системы в процессе переключения между режимами обработки различных наборов входных данных и решения конкретных уравнений, тем самым повышая контролируемость и воспроизводимость вычислительного процесса.
По завершении нахождения решения для конкретной системы уравнений выводится время, затраченное системой на вычисление базисных векторов данной системы. Анализ этого временного параметра позволяет провести оценку производительности системы и выявить области, в которых возможна оптимизация алгоритмов решения.
3. РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ СИСТЕМЫ GInv
Для проведения тестирования функциональности системы был сформирован набор, состоящий из 135 наборов входных данных в формате ^ОКТ. Внутри файлов JS0N содержится следующая информация: размерность системы уравнений, список многочленов,
список переменных. Дополнительно в опциональном порядке может быть включено текстовое описание соответствующей задачи. В состав тестового набора, помимо прочего, были включены вариации широко известных задач, таких как система Роуза, модель общего экономического равновесия, обобщенная задача о собственных значениях, система Лоренца и другие.
Все файлы тестового набора были объединены в единый архив с целью обеспечения удобства хранения и управления. Доступ к файлам, содержащимся в данном архиве, осуществляется посредством специализированного программного модуля, предназначенного для чтения и вывода содержимого архивов в формате ZIP.
По завершении выполнения каждого теста осуществляется запись полученных результатов. Следует отметить, что в случае повторного выполнения конкретного теста вместо создания новой записи происходит обновление предыдущих результатов. Запись результатов включает в себя следующую информацию: наименование теста, размерность системы, длину базиса, найденный базис, а также длительность выполненных вычислений в секундах. Полученные результаты можно вывести в виде отдельного списка для всех проведенных тестов, представленного в формате массива JSON.
В процессе решения систем алгебраических уравнений приложение предоставляет визуальный мониторинг хода вычислений. По мере обработки каждой задачи в консоль выводится информация, идентифицирующая текущую систему, а также отображается время, затраченное на построение базиса Грёбнера для данной системы в микросекундах непосредственно после завершения вычислений (рис. 1).
['-51234*hl**2-34156*hl*h2-25617*hl*h3+1497532*hl-1600000' , '-170780*hl*h2-128085*h2**2-102468* h2*h3+7743830*h2-8000000', '-L28085*hl*h3-102468*h2*h3-85390*h3**2+7829220*h3-8000000', '-717276 *hl*h4 -597730*h2*h4-512340*h3*h4+55103405*h4-56000000']
['-256170*hl**2-170780*hl*h2-128085*hl*h3-102468*hl*h4+9487660*hl-10000000', 1-170780*tll*h2-128 085*h2**2-102468*h2*h3-85390*h2*h4+9743830*h2-10000000', 1-896595*hl*h3-717276*h2*h3-597730*h3** 2-B12340*h3*h4+6S804540*h3-70000000', '-1434552*hl*h4-1195460*h2*h4-L024680*h3*h4-896595*h4**2+l 38206810*h4-140000000', 1 - 3586380*hl*h5-3074040*h2*h5-2689785*h3*h5-2390920*h44'h5+415696344*h5-
Рис. 1. Мониторинг выполнения задач
В ходе решения систем алгебраических уравнений разработанный программный продукт обеспечивает вывод информации, позволяющей отслеживать прогресс выполнения тестовых задач. На начальном этапе отображаются порядковый номер и наименование
текущей тестовой системы. Далее в развернутом виде представляется ста исходная система уравнений в формате массива, где через разделительные символы (запятые) перечислены полные уравнения, включая все коэффициенты и переменные, составляющие данную систему. После успешного завершения процедуры построения базиса Грёбнера для текущей системы выводятся подробные сведения о временных затратах на решение задачи. В частности, отображается общее время выполнения (wall time), представляющее собой интервал от момента инициализации процесса до его окончания. Кроме того, предоставляются данные о времени выполнения, непосредственно связанном с использованием ресурсов центрального процессора (CPU time), которое разделяется на пользовательское время (user time), затраченное на выполнение пользовательского кода, и системное время (sys time), потраченное на обслуживание системных вызовов и операций ядра операционной системы.
Тестирование системы осуществлялось на серверной платформе, конфигурация которой включала два 4-ядерных процессора Intel Xeon L5630. Каждый из процессоров располагал 4 вычислительными ядрами с поддержкой технологии Hyper-Threading, что позволяло запускать по 2 потока обработки данных на каждом физическом ядре. Таким образом, общее количество логических ядер (потоков обработки) составляло 8. Базовая тактовая частота каждого ядра процессора была равна 2134 МГц.
4. ЗАКЛЮЧЕНИЕ
В рамках данного исследования была разработана и реализована система для оценки производительности алгоритмов компьютерной алгебры при нахождении базисов Грёбнера. Основные результаты работы включают:
1. Создание специализированного программного инструмента для автоматизированного тестирования различных версий системы GInv и других систем компьютерной алгебры.
2. Разработку универсальной системы формализации тестов на основе формата JSON, пригодной для использования в различных программных комплексах.
3. Переход от хранения данных в формате XML к более современному формату JSON, что упростило анализ и обработку данных.
4. Реализацию модульной архитектуры системы тестирования, включающей модули импорта данных, построения базиса Грёбнера и вывода результатов.
5. Проведение комплексного тестирования системы GInv на серверной платформе с использованием разработанного инструментария.
6. Внедрение механизмов визуального мониторинга хода вычислений и детального анализа временных затрат на решение задач.
Разработанная система тестирования позволяет эффективно оценивать производительность алгоритмов компьютерной алгебры, выявлять области для оптимизации и обеспечивать контроль качества при разработке и модификации систем типа GInv. Дальнейшее развитие данного инструментария может включать расширение набора тестовых задач, интеграцию с другими системами компьютерной алгебры и разработку более детальных метрик оценки производительности алгоритмов.
Список литературы
1. CoxD., Little J., O'SheaD. Ideals, varieties, and algorithms. Springer Cham, 2007.
2. Zharkov A. Yu., Blinkov Yu. A Involution approach to solving systems of algebraic equations // Proc. of the 1993 Inter. IMACS Symp. on Symbolic Comput, Lille, France: Laboratoire d'Informatique Fondamentale de Lille. 1993. P. 11-16.
3. Zharkov A. Yu. Involutive Polynomial Bases: General Case. Russia: Dubna Publ., 1994.
4. Zharkov A. Yu., Blinkov Yu. A. Algorithm for constructing involutive bases of polynomial ideal // Proc. of Int. Conf. on Interval and Computer-Algebraic Methods in Science and Engineering. St.Petersburg, Russia, 1994. P. 258-260.
5. Zharkov A. Yu., Blinkov Yu. A. Involutive bases of zero-dimensional ideals. Dubna, 1994.
6. Zharkov A. Yu., Blinkov Yu. A. Solving zero-dimensional involutive systems // Algorithms in Algebraic Geometry and Applications. 1996. P. 389-399. doi:10.1007/978-3-0348-9104-2_20.
7. Gerdt V. P. Grobner bases and involutive methods for algebraic and differential equations // Computer Algebra in Science and Engineering. Singapore: World Scientific, 1995. P. 117-137.
8. Gerdt V. P. Involutive divisions in mathematica: Implementation and some applications. Sankt Augustin, Germany: Institute for Algorithms and Scientific Computing (GMD-SCAI), 1998.
9. Riquier C. Les Systèmes d'Equations aux Derivees Partielles. Gauthier Villars. Paris: Gauthier Villars, 1910.
10. Janet M. Systèmes d'équations aux derivees partielles // Journals de mathématiques. 1920. № 3. P. 65-151.
11. Thomas J. Differential systems. American Mathematical Society. New York: American Mathematical Society, 1937.
12. Гердт В. П. Блинков Ю. А. Специализированная система компьютерной алгебры gin// Программирование. 2008. № 2. С. 67-80.
13. Gerdt V P., Robertz D., Blinkov Yu. A. Strong Consistency and Thomas Decomposition of Finite Difference Approximations to Systems of Partial Differential Equations // arxiv.org. 2020. https://arxiv. org/abs/2009.01731 (date: 17.06.2024).
14. Buchberger B. Grobner bases: An algorithmic method in polynomial ideal theory, in recent trends in multidimensional system theory // Multidimensional system theory. 1985. P. 184-232.
15. Щетинин Е. Ю. Блинков Ю. А. Применение в ginv динамического перераспределения памяти // Программирование. 2023. № 4. P. 21-26. doi:10.31857/s0132347423020061
Поступила в редакцию 03.05.2024, окончательный вариант— 17.06.2024.
Блинков Юрий Анатольевич, профессор, доктор физ.-мат. наук, заведующий кафедрой математического и компьютерного моделирования Саратовского национального исследовательского государственного университета им. Н. Г. Чернышевского, [email protected]
Салпагаров Солтан Исмаилович, канд. физ.-мат. наук, доцент кафедры математического моделирования и искусственного интеллекта РУДН им. Патриса Лумумбы, Е [email protected]
Мамонов Антон Алексеевич, аспирант кафедры математического моделирования и искусственного интеллекта РУДН им.Патриса Лумумбы, [email protected]
Акопян Изабелла Арменовна, студент бакалавриата кафедры математического моделирования и искусственного интеллекта РУДН им. Патриса Лумумбы, [email protected]
Computer tools in education, 2024
№ 2: 39-47
http://cte.eltech.ru
doi:10.32603/2071-2340-2024-2-39-47
Development of a System for Evaluating the Performance of Computer Algebra Algorithms in Finding Grobner Bases
Blinkov Y. A.1, Professor, Doctor sc., [email protected], 0000-0001-7340-0919 SalpagarovS. I.2, Cand. Sc., Associate Professor, [email protected],
0000-0002-5321-9650 Mamonov A. A.2, Postgraduate, [email protected] Akopian I. A.2, Student, [email protected]
1 Saratov Chernyshevsky State University, 83 Astrakhanskaya st., 410012, Saratov, Russia 2RUDN University, 6 Miklukho-Maklaya str., 117198, Moscow, Russia
Abstract
This work presents the development of a specialized system for evaluating the performance of computer algebra algorithms in finding Grobner bases. To verify the functionality and evaluate the performance of the improved GInv 2.0 version, a special automated testing tool has been developed. This tool allows loading test data sets in JSON format, calculating Grobner bases using various algorithms, and visualizing test results. The modules for data import, basis calculation, and test result output are described in detail. GInv 2.0 was tested on a set of systems of equations of varying complexity. The test results are presented, including time characteristics of calculations for each test.
Keywords: Grobner bases, computer algebra, testing system, GInv.
Citation: Y. A. Blinkov, S. I. Salpagarov, A. A. Mamonov, and I. A. Akopian, "Development of a System for Evaluating the Performance of Computer Algebra Algorithms in Finding Grobner Bases," Computer tools in education, no. 2, pp. 39-47, 2024 (in Russian);doi:10.32603/2071-2340-2024-2-39-47
References
1. D. Cox, J. Little, and D. O'Shea, Ideals, varieties, and algorithms, Springer Cham, 2007.
2. A. Yu. Zharkov and Yu. A. Blinkov, "Involution approach to solving systems of algebraic equations," in Proc. of the 1993 Inter. IMACS Symp. on Symbolic Comput, Lille, France: Laboratoire d'Informatique Fondamentale de Lille, pp. 11-16,1993.
3. A. Yu. Zharkov, Involutive Polynomial Bases: General Case, Dubna, Russia: Dubna Publ., 1994.
4. A. Yu. Zharkov and Yu. A. Blinkov, "Algorithm for constructing involutive bases of polynomial ideal," in Proc. of Int. Conf. on Interval and Computer-Algebraic Methods in Science and Engineering, St.Petersburg, Russia, pp. 258-260,1994.
5. A. Yu. Zharkov and Yu. A. Blinkov, Involutive bases of zero-dimensional ideals, Dubna, 1994.
6. A. Yu. Zharkov, "Solving zero-dimensional involutive systems," Algorithms in Algebraic Geometry and Applications, pp. 389-399,1996; doi:10.1007/978-3-0348-9104-2_20.
7. V. P. Gerdt, "Grobner bases and involutive methods for algebraic and differential equations," in Computer Algebra in Science and Engineering, Singapore: World Scientific, pp. 117-137,1995.
8. V. P. Gerdt, "Involutive divisions in mathematica: Implementation and some applications," Sankt Augustin, Germany: Institute for Algorithms and Scientific Computing (GMD-SCAI), 1998.
9. C. Riquier, Les systemes d'equations aux derivees partielles, Paris: Gauthier Villars, 1910 (in French).
10. M. Janet, "Systemes d'equations aux derivees partielles," Journals de mathematiques, no. 3, pp. 65-151, 1920 (in French).
11. J. Thomas, Differential systems, New York: American Mathematical Society, 1937.
12. Yu. A. Blinkov and V. P. Gerdt,"Specialized computer algebra system GINV," Programming and Computer Software, vol. 34, no. 2, pp. 112-123, 2008; doi:10.1134/s0361768808020096
13. V. P. Gerdt, D. Robertz, and Yu. A. Blinkov, "Strong Consistency and Thomas Decomposition of Finite Difference Approximations to Systems of Partial Differential Equations," in arxiv.org, 2020. [Online]. Available: https://arxiv.org/abs/2009.01731
14. B. Buchberger, "Grobner bases: An algorithmic method in polynomial ideal theory, in recent trends in multidimensional system theory," in Multidimensional system theory, Dordrecht, Netherlands: D. Reidel Publ. Comp., pp. 184-232,1985.
15. Yu. A. Blinkov and E. Yu. Shchetinin, "Using Dynamic Memory Reallocation in GInv," Programmi-rovanie, no. 4, pp. 21-26, 2023 (in Russian); doi:10.31857/s0132347423020061
Received 03-05-2024, the final version — 17-06-2024.
Yury Blinkov, Professor, Doctor of Sciences (Phys.-Math.), Chair of Department of Mathematic and Computer Modeling, Saratov State University, [email protected]
Soltan Salpagarov, Cand. of Sciences (Phys.-Math.), Associate Professor of Department of Computational Mathematics and Artificial Intelligence of Peoples' Friendship University of Russia (RUDN University), EZ [email protected]
Anton Mamonov, Postgraduate of Department of Computational Mathematics and Artificial Intelligence of Peoples' Friendship University of Russia (RUDN University), [email protected]
Izabella Akopian, Student of the bachelor's degree program of Department of Computational Mathematics and Artificial Intelligence of Peoples' Friendship University of Russia (RUDN University), [email protected]