'
Логинова Н.В.
РЕАЛИЗАЦИЯ АЛГОРИТМА ПОСТРОЕНИЯ ВЕРОЯТНОСТНЫХ ЦЕПОЧЕК С ПОЛИНОМИАЛЬНЫМ РОСТОМ С ИСПОЛЬЗОВАНИЕМ ПАКЕТА MATLAB *
Аннотация:
в настоящей статье представлен один из способом математического моделирования изменения динамики экономических данных – метод вероятностных цепочек. В работе подробно изучен один вид цепочек – цепочек с полиномиальным ростом. В целях реализации алгоритма построения цепочек с полиномиальным ростом автором разработана программа в пакете MATLAB. Была проведена оценка сложности разработанной программы. Кроме того, написанная программа применена к данным статьи платёжного баланса “Общие резервы” Германии, Франции, Китая и России. Показано, что с помощью разработанной автором программы можно выполнять прогноз динамики изменения исследуемых данных
Ключевые слова:
динамические системы, вероятностные цепочки с полиномиальным ростом, анализ сложности алгоритмов, математическое моделирование, экстраполяция
DOI 10.24412/2712-8849-2023-1269-1420-1434
УДК 004
Логинова Н.В.
старший инженер-программист в компании EPAM Systems,
выпускник аспирантуры СПбГУ по направлению подготовки
«Информатика и вычислительная техника»
(г. Санкт-Петербург, Россия)
РЕАЛИЗАЦИЯ АЛГОРИТМА ПОСТРОЕНИЯ
ВЕРОЯТНОСТНЫХ ЦЕПОЧЕК С ПОЛИНОМИАЛЬНЫМ
РОСТОМ С ИСПОЛЬЗОВАНИЕМ ПАКЕТА MATLAB
Аннотация: в настоящей статье представлен один из способом математического моделирования изменения динамики экономических данных – метод вероятностных цепочек. В работе подробно изучен один вид цепочек – цепочек с полиномиальным ростом. В целях реализации алгоритма построения цепочек с полиномиальным ростом автором разработана программа в пакете MATLAB. Была проведена оценка сложности разработанной программы. Кроме того, написанная программа применена к данным статьи платёжного баланса “Общие резервы” Германии, Франции, Китая и России. Показано, что с помощью разработанной автором программы можно выполнять прогноз динамики изменения исследуемых данных.
Ключевые слова: динамические системы, вероятностные цепочки с полиномиальным ростом, анализ сложности алгоритмов, математическое моделирование, экстраполяция.
В данной исследовательской работе рассмотрен метод моделирования и прогнозирования динамики изменения социально-экономических данных, используемый в контексте задач распределения ресурсов. Этот метод основан на применении одного класса дискретных динамических систем, а именно вероятностных цепочек. Если распределение ресурса между участниками процесса выражается в относительных долях, то модель динамики такого процесса описывает преобразование некоторого вероятностного вектора. Поэтому эти модели, предложенные и разработанные М. Сонисом и Д. Хьюинсом [1, 2, 3], получили название вероятностных цепочек. Таким образом, предложенные модели описываются дискретными динамическими системами, определенными на симплексе вероятностных векторов.
Вероятностные цепочки с логистическим и логарифмически-линейным ростом были успешно использованы в работах [4, 5, 6] для построения прогноза для данных различной природы. В настоящей статье детально рассмотрен один вид вероятностных цепочек – с полиномиальным ростом. В целях реализации алгоритма построения данного вида цепочек была разработана программа в пакете прикладных программ MATLAB. Кроме того, в работе рассмотрена сложность алгоритма построения цепочек с полиномиальным ростом.
Программа, написанная с использованием пакета MATLAB, применена для примера данных статьи платежного баланса “Общие резервы” Германии, Франции, Китая и России. Показано, что программа выполняет прогноз на заданный период времени, который может быть использован для исследования динамики изменения данных.
Приведём описание алгоритма построения вероятностных цепочек с полиномиальным ростом, реализованного в программе MATLAB [8].
Для определения системы полиномов и построения цепочек с полиномиальным ростом в первую очередь необходимо найти коэффициенты системы.
Далее ставим задачу поиска матрицы коэффициентов Wmat для T+1 года.
Зададим обозначения:
N (n) – число стран, T (m) – период, для которого производится интерполяции, k – период, для которого производится экстраполяция. PData – массив исходных эмпирических данных, Temp — исследуемый в задаче период времени, по которому есть эмпирические данные. PX – подматрица матрицы PData c 1-ого года до m, PY – подматрица со второго года до m+1. PXX – матрица, состоящая из переменных , Titles — матрица, состоящая из индексов переменных . Kw – количество коэффициентов системы, Pw – количество коэффициентов в одном многочлене. Aeq – матрица, состоящая из записанных n раз единичных матриц размерности Pw. beq – вектор, состоящий их Pw элементов, где первые n элементов равны 1, оставшиеся элементы равны 2. С – блочно-диагональная матрица, состоящая из PXX, d – матрица PY, записанная в один столбец. A – матрица -E = (-1) ·E, b – нулевой вектор. w – искомый вектор, вычисляемый с помощью встроенной функции lsqlin. PY_pred — матрица, содержащая значения, полученные с помощью интерполяции. PY_prog — искомая матрица, содержащая спрогнозированные значения. ZeroCoef – матрица, состоящая из нулей и единиц, в зависимости от того, какие переменные в каждом из многочленов системы присутствуют или отсутствуют, wZeroCoef – матрица ZeroCoef, записанная в один столбец. Kw2 – количество коэффициентов системы, в случае, когда цепочки вычисляются с учётом ограничений и допущений. A2 и b2 – матрицы, заданные аналогично матрицам A и b, но с другой размерности с учетом значения Kw2. Aeq2 и C2 – матрицы, вычисляемые из матриц Aeq и C путём удаления столбцов, соответствующих нулевым элементам вектора wZeroCoef. d2 и beq2 – матрицы, содержащие те же значения, что и матрицы d и beq. w2 – вектор, вычисляемый с помощью встроенной функции lsqlin с новыми заданными матрицами C2, d2, A2, b2, Aeq2, beq2. w2tmp – искомый вектор, составленный из значений векторов wZeroCoef и w2. PY_pred2 – матрица, вычисленная аналогично матрице PY_pred с помощью матрицы Wmat2. PY_prog2 - искомая матрица, содержащая смоделированные данные, вычисленная аналогично матрице PY_prog с помощью матрицы Wmat2.
Далее алгоритм поиска приведен по шагам:
Изначально есть задача в виде PXX·Wmat = PY. Мы записываем эту задачу в виде системы линейных уравнений для вектора из Kw коэффициентов в виде C·w=d.
Матрица C – это блочно-диагональная матрица PXX, записанная на главной диагонали n раз.
PXX имеет размеры m x n· (n+1)/2. Матрица C имеет размеры n·m (строк) x n·n· (n+1)/2 (столбцов). Каждый блок относится к своей стране.
Вектор d это матрица PY, столбцы которой записаны в один столбец. Матрица PY имеет размеры m · n. Вектор d имеет размеры m·n×1
В результате с помощью встроенной функции были найдены коэффициенты системы, которые содержатся в матрице w. Дальнейшие шаги описывают вычисление смоделированные данных.
f = PXX·Wmat - вектор из квадратов и попарных произведений умножаем на матрицу коэффициентов, чтобы получить n новых прогнозируемых значений для следующего года [9].
Оценка сложности снизу разработанной в MATLAB программы, то есть алгоритма построения цепочек при использовании метода наименьших квадратов с линейными ограничениями типа равенств и неравенств, составила , где n — количество стран.
Доказательство
Сложность алгоритма определяется числом операций [10]. Рассмотрим операции, выполняемые программой, разработанной в MATLAB для построения цепочек с полиномиальным ростом:
В алгоритме использовался метод наименьших квадратов с линейными ограничениями, реализованный в MATLAB во встроенной функции lsqlin. Оценить сложность lsqlin затруднительно, но мы предполагаем, что метод наименьших квадратов без ограничений не сложнее, чем функция lsqlin. Мы оцениваем сложность МНК без ограничений и считаем, что это оценка снизу для сложности функции lsqlin.
В итоге получаем, что сложность решения системы с помощью встроенной в MATLAB функции lsqlin составляет .
Общая сложность выполнения шагов 1-9 программы будет определяться выполнением функции lsqlin:
+ + + + + + + +
Вычисление второго набора данных с использованием оптимизированной матрицы.
Общая сложность выполнения программы будет определяться выполнением функции lsqlin:
+ + + +
По итогам оценки операций выполнения алгоритма программы для построения вероятностных цепочек с полиномиальным ростом делаем вывод, что сложность определяется самой трудоемкой операцией — выполнением функции lsqlin, которая была оценена снизу как решение задачи МНК. Общая сложность составляет не менее O(n9) операций, где n размер вероятностного вектора.
Что и требовалось доказать.
Рассмотрим данные по статье ПБ “Общие резервы” Германии, Франции, Китая и России за 2001–2015 гг., опубликованные Группой Всемирного банка [11]. Данные представлены в миллионах текущих долларов США. Данные с 2001 по 2010 гг. приведены в Таблице 1.
Таблица 1. Общие резервы (включая золото)
Германии, Франции, Китая и России
Год |
Россия |
Китай |
Германия |
Франция |
2001 |
36303 |
220057 |
82132 |
58637 |
2002 |
48326 |
297739 |
89143 |
61697 |
2003 |
78409 |
416199 |
96835 |
70762 |
2004 |
126258 |
622949 |
97170 |
77353 |
2005 |
182272 |
831410 |
101676 |
74360 |
2006 |
303773 |
1080756 |
111637 |
98239 |
2007 |
478822 |
1546365 |
135932 |
115487 |
2008 |
426279 |
1966037 |
138564 |
103306 |
2009 |
439342 |
2452899 |
179040 |
131786 |
2010 |
479222 |
2913712 |
215978 |
165852 |
На основе представленных эмпирических данных построим цепочки с полиномиальным ростом. Построим полиномы вида степени 2, c количеством видов единиц ресурсов равным 4 в рамках одной совокупности. В качестве исходных данных, выбранных для нахождения коэффициентов системы возьмём данные за 2001 по 2010 гг. Прогноз будем строить на 2011–2015 гг.
Преобразуем эмпирические данные к последовательности значений, где каждое значение соответствует условиям .
На основе полученных данных построим графики изменения показателя общих резервов (включая золото) Германии, Франции, Китая и России за 2002–2015 гг. На Рисунке 1 представлены графики изменения эмпирических данных по показателю общих резервов (включая золото) Германии, Франции, Китая и России.
Рисунок 1. Статья ПБ «Общие резервы» Германии, Франции,
Китая и России. Эмпирические данные.
На Рисунке 2 представлены графики изменения смоделированных данных по показателю общих резервов (включая золото) Германии, Франции, Китая и России.
Рисунок 2 - Статья ПБ «Общие резервы» Германии, Франции, Китая и России. Вероятностные цепочки с полиномиальным ростом.
Чтобы оценить точность построенной модели, вычислим коэффициент корреляции между эмпирической динамикой и смоделированными данными. Коэффициент корреляции между эмпирическими данными и данными, полученными в результате построения цепочек с полиномиальным ростом равен 0,998841846. Таким образом, можно сделать вывод о том, что модель вероятностных цепочек с полиномиальным ростом может быть использования для построения прогноза исследуемых данных.
В настоящей статье подробно рассмотрен один из методов моделирования динамики изменения экономических данных – вероятностных цепочек с полиномиальным ростом. Приведены основные определения и представлены формулы для построение вероятностных цепочек. Кроме того, приведено подробное описание шагов алгоритма разработанной программы для построения вероятностных цепочек с использованием пакета MATLAB. Также проведен анализ сложности алгоритма построения вероятностных цепочек с полиномиальным ростом.
В работе написанная в MATLAB программа применена к набору данных статьи платёжного баланса “Общие резервы” Германии, Франции, Китая и России за 2001–2015 гг. Интерполяция данных проведена на период с 2002 по 2010 год, и экстраполяция на период с 2011 по 2015 год. Смоделированные данные были оценены с помощью коэффициента корреляции. Найденные значения коэффициента корреляции показывают, что модель с полиномиальным ростом позволяет вычислить достаточно точный прогноз.
СПИСОК ЛИТЕРАТУРЫ:
Loginova N.V.
EPAM Systems
St. Petersburg State University
(St. Petersburg, Russia)
IMPLEMENTATION OF ALGORITHM
FOR CONSTRUCTING PROBABILITY CHAINS WITH
POLYNOMIAL GROWTH USING MATLAB PACKAGE
Abstract: this article presents one of the methods of mathematical modeling of changes in the dynamics of economic data – the method of probabilistic chains. In this paper, one type of chains is studied in detail – chains with polynomial growth. In order to implement an algorithm for building chains with polynomial growth, the author has developed a program in the MATLAB package. The complexity of the developed program was assessed. In addition, the written program is applied to the data of the balance of payments item “General Reserves" of Germany, France, China and Russia. It is shown that with the help of the program developed by the author, it is possible to predict the dynamics of changes in the studied data.
Keywords: dynamic systems, probability chains with polynomial growth, algorithm complexity analysis, mathematical modeling, extrapolation.
Номер журнала Вестник науки №12 (69) том 4
Ссылка для цитирования:
Логинова Н.В. РЕАЛИЗАЦИЯ АЛГОРИТМА ПОСТРОЕНИЯ ВЕРОЯТНОСТНЫХ ЦЕПОЧЕК С ПОЛИНОМИАЛЬНЫМ РОСТОМ С ИСПОЛЬЗОВАНИЕМ ПАКЕТА MATLAB // Вестник науки №12 (69) том 4. С. 1420 - 1434. 2023 г. ISSN 2712-8849 // Электронный ресурс: https://www.вестник-науки.рф/article/12042 (дата обращения: 19.05.2024 г.)
Вестник науки СМИ ЭЛ № ФС 77 - 84401 © 2023. 16+
*