Translate this page:
Please select your language to translate the article


You can just close the window to don't translate
Library
Your profile

Back to contents

Cybernetics and programming
Reference:

Application package “MultiMIR”: architecture and appliance

Urazaeva Tatiana Alfredovna

PhD in Economics

Head of the Department of Information Systems in the economy, Volga State University of Technology

424032, Russia, respublika Marii El, g. Ioshkar-Ola, ul. Pavlenko, 60

bor1@mari-el.com
Other publications by this author
 

 

DOI:

10.7256/2306-4196.2014.5.12962

Received:

02-10-2014


Published:

16-10-2014


Abstract: Evaluation of risks of system development is an urgent task for a for a variety of disciplines such as economics and sociology, technology and ecology, the system studied at the intersection of different disciplines. Often the parameters of such systems are discrete, set of possible states is bounded. The application package “MultiMIR” was designed to evaluate risks of development in such systems. An important difference of “MultiMIR” from other application is in achievement of polynomial computational complexity for some classes of systems, while most analogues offer only exponential complexity. The article describes: purpose of the application, main ideas used as a basis for algorithms, application architecture. The author gives an overview of ways of using the application. The conceptual basis of the theory used in the development of algorithms implemented in “MultiMIR” is in theoretical probabilistic approach. As a specific mathematical apparatus the author has chosen formalism of theory of multisets, which, in author’s opinion, has the richest expressive possibilities for the study in the described the subject area. As a programming system used in the development of the first version of the application the author used VBA-subsystem office with Microsoft Office. The selection of the programming system is dictated by the features and preferences of the primary target of the package: banking and financial analysts. Using “MultiMIR” allowed for the first time to provide accurate calculation of such non-linear measures of risk as expected utility, distorted probability measure, "Value at Risk", and so on for medium and large homogeneous portfolios term financial instruments without involving time-consuming analytical methods. Unlike traditionally used for this purpose Monte Carlo method, approached based on the described above application allows obtaining an exact solution using a comparable amount of CPU resource. “MultiMIR” application can also be used for verification of reliability of the results obtained using Monte Carlo methods considered classical in the financial risk management. 


Keywords:

system, visual modeling , risk, risk process, measure of risk, Value at Risk, VaR, homogeneous portfolio , term financial instruments, Monte Carlo method


Введение

На протяжении ряда лет в Поволжском государственном технологическом университете на кафедрах «Информатики и системного программирования» и «Информационных систем в экономике» разрабатывались инструментальные средства визуального моделирования процессов риска в технических и экономических системах. Были разработаны два программных комплекса, в качестве языка визуального моделирования процессов риска в одном из которых используется расширение аппарата сетей Петри [2, 3, 5, 7], а в другом – подмножество языка диаграмм деятельности UML [15, 17, 18, 20]. И тот, и другой языки визуального моделирования имеют свои достоинства и свои недостатки. Однако у обоих подходов имеется общая существенная проблема. В рамках обоих подходов строится полное вероятностное пространство состояний системы на заданном временном горизонте. В результате вычислительная сложность алгоритмов интерпретации визуальных моделей оказывается таковой, что эти алгоритмы следует отнести к классу `EXPTIME` . Класс сложности `EXPTIME` – это множество задач, решаемых детерминированной машиной Тьюринга за время `O(2^(p(n)))` [23, 25], где `p(n)` – полиномиальная функция от `n` , а `n` – в данном конкретном случае – это количество элементов системы, которым присуща вероятностная неопределенность в поведении. С другой стороны, особенностью систем в финансово-кредитной сфере является необходимость исследования риска в портфелях, состоящих из десятков, сотен, тысяч и даже большего количества финансовых инструментов. Таковы в первую очередь розничные кредитные портфели. Здесь с ростом `n` отмеченные программные комплексы быстро перестают работать. Следует отметить, что для альтернативных подходов, основанных на использовании метода Монте-Карло [12, 13], даже при не очень больших значениях `n` начинает быстро падать точность оценки риска. Иными словами для сохранения приемлемой точности оценки риска таких портфелей с использованием метода Монте-Карло необходимы такие вычислительные затраты, которые с ростом `n` растут также слишком быстро [10]. Казалось бы, имеет место тупиковая ситуация: никак невозможно получить оценку риска с высокой точностью для большинства интересных случаев, таких, как, например, розничный кредитный портфель.

Тем не менее, в последние годы, в ходе многочисленных процедур отладки программного обеспечения, автором была замечена аналогия между формированием множества сценариев поведения групп простейших подсистем, имеющих по два-три возможных состояния, и алгебраическими операциями умножения полиномов с соответствующими количествами одночленов [21]. На этой основе была создана теория, получившая название «Алгебра рисков». Строгое обоснование этой теории приведено в монографии [16]. В указанной работе, кроме всего прочего, показано, что если портфель финансовых инструментов состоит из нескольких субпортфелей, содержащих большое количество однородных (одинаковых, близких по характеристикам) инструментов, и все эти инструменты не зависимы, то использование алгебраических методов может обеспечить снижение сложности алгоритмов оценки риска до сложности алгоритмов, относимых к классу `PSPACE - NL` . Класс сложности `PSPACE` – это множество задач, которые могут быть решены машиной Тьюринга с полиномиальным ограничением пространства [22, 23]. Класс сложности `NL` – это множество простых задач, решаемых недетерминированной машиной Тьюринга с использованием `O(log n)` памяти [22, 25].

Настоящая статья посвящена описанию ППП «МультиМИР», разработанного автором на основе использования результатов алгебраической теории риска.

1. Основные элементы алгебраической теории риска

Пусть `C` – множество преобразований состояния экономики, соответствующих каждому варианту закрытия позиции по каждому финансовому инструменту, их портфелю или субпортфелю, присутствующим в исследуемой экономической системе. Пусть, далее, `ttI = |__0, 1__|` `sub RR` , где `RR` – множество действительных чисел. Рассмотрим множество мультимножеств, заданное следующим образом:

`frA = {bbX : Supp bbXsub CxxttI}` .

Заметим, что для пустого мультимножества

`O/ = {k_O/ (x) * x : AA x (x in Cxx ttI) [k_O/ (x) = 0]}` ,

где `k_bbX (x)` – функция кратности элемента `x` мультимножества `bbX` , справедливо `O/ in frA` . Определим на `frA` операции сложения:

`bbX+bbY = {k_(bbX+bbY) (x) * x : k_(bbX+bbY) (x) = k_bbX (x) +k_bbY (x), x in Supp bbX uuSupp bbY}`

и умножения:

`bbX bbY = { k_(bbX bbY) (x) * x : k_(bbX bbY) (x) =`

` `

`=` `sum_((c_bbX @ c_bbY, p_bbX p_bbY)=x, (c_bbX, p_bbX) in Supp bbX, (c_bbY, p_bbY) in Supp bbY)` `k_bbX(c_bbX, p_bbX) k_bbY(c_bbY, p_bbY),`

`x in` `uuu_((c_bbX, p_bbX) in Supp bbX, (c_bbY, p_bbY) in Supp bbY)` `{(c_bbX @ c_bbY, p_bbX p_bbY)} }.`

Для множества `frA` и определенных на нем операций сложения и умножения справедливо следующее утверждение.

Утверждение 1. Если бинарная операция композиции преобразований над множеством `C` коммутативна:

`AA c_1, c_2 (c_1, c_2 in C) [c_1 @ c_2 = c_2 @ c_1]`

то алгебраическая система `<frA, +, *>` является коммутативным полукольцом с единицей.

Для описания риска в экономической системе в условиях вероятностной неопределенности будем использовать мультимножества следующего вида:

`bbR in frA, ` `sum_((c, p) in Supp bbR)` `p k_bbR (c, p) = 1, ` `c in C, ` `p in ttI.`

Каждый элемент этого мультимножества представляет вариант развития экономики. Элемент – суть пара: преобразование состояния экономики, соответствующее данному варианту ее развития, и вероятность реализации данного варианта. Сумма вероятностей по всем вариантам равна 1. Рассмотрим множество мультимножеств вида:

`frR = {bbR : bbR in frA, ` `sum_((c, p) in Supp bbR)` `p k_bbR(c, p) = 1}.`

Очевидно, что `frRsub frA` , и, таким образом, для элементов из `frR` определены те же операции сложения и умножения. Однако заметим, что множество `frR` абсолютно не замкнуто относительно операции сложения:

`AA bbR_1, bbR_2 (bbR_1, bbR_2 in frR) [bbR_1 + bbR_2 !in frR]` .

В то же время для множества `frR` и определенной на нем операции умножения справедливо следующее утверждение.

Утверждение 2. Если бинарная операция композиции преобразований над множеством `C` коммутативна, то алгебраическая система `<frR, *>`коммутативный моноид.

Очевидной интерпретацией операции умножения на `frR` является понимание произведения рисков двух финансовых инструментов как риска портфеля, составленного из них. Таким образом, множество рисков, с определенной на нем операцией умножения (вычисления совместного риска), образуют алгебраическую систему, являющуюся коммутативным моноидом.

Для элементов коммутативного моноида, как частного случая полугруппы, определена натуральная степень. Интерпретацией `n`-ой степени риска некоторого финансового инструмента является риск портфеля, состоящего из `n` одинаковых таких инструментов, `n in NN` , `NN` – множество натуральных чисел. Существенное облегчение при вычислении натуральных степеней элементов множества `frR` (риска однородных портфелей!) можно получить при использовании результатов следующей теоремы.

Теорема 1. Пусть бинарная операция композиции преобразований над множеством `C` коммутативна, и пусть, далее, определены предикаты:

`pi_1 =^^^_(i=1)^m [(c_i, p_i) in Supp bbX],`

`pi_2 = (sum_(i=1)^m l_i = n),`

`pi_3 = [(c_1^(l_1) @ c_2^(l_2) @ ... @ c_m^(l_m), prod_(i=1)^m p_i^(l_i)) = x]`

тогда

`bbX^n = { k_(bbX^n) (x) * x : k_(bbX^n) (x) =`

`=` `sum_(pi_1, pi_2, pi_3)` `((n!)/(prod_(i=1)^m l_i !)) prod_(i=1)^m [k_bbX(c_i, p_i)]^(l_i)` `,`

`x in` `uuu_(pi_1, pi_2) {(c_1^(l_1) @ c_2^(l_2) @ ... @ c_m^(l_m), prod_(i=1)^m p_i^(l_i))},` `m = |Supp bbX| }`

для любого `bbX in frR`.

Теорема 1 естественно справедлива и для элементов множества `frA` , однако в контексте данной работы важны свойства более узких множеств, таких как `frR` .

Множество мультимножеств `frR` представляет из себя множество возможных рисков в исследуемых экономиках или, иначе, множество описаний полных групп событий в этих экономиках на момент закрытия каких либо позиций. Однако достаточно часто приходится рассматривать не полные группы событий или, даже, отдельные события. В рамках используемой парадигмы риска не полные группы событий мы будем ассоциировать с частями риска. Для описания частей риска в экономической системе в условиях вероятностной неопределенности будем использовать мультимножества из следующего множества:

`frP = {bbR : bbR in frA,` `sum_((c, p) in Supp bbR)` `p k_bbR (c, p)<= 1}.`

Очевидно, что `frP sub frA` , и, таким образом, для элементов из `frP` определены ранее введенные операции сложения и умножения. Однако заметим, что множество `frP` не замкнуто относительно операции сложения:

`EE bbR_1, bbR_2 (bbR_1, bbR_2 in frP) [bbR_1 + bbR_2 !in frP].`

Интерпретацией операции сложения на `frP` является агрегация частей риска. Для множества `frP` и определенной на нем операции умножения справедливо следующее утверждение.

Утверждение 3. Если бинарная операция композиции преобразований над множеством `C` коммутативна, то алгебраическая система `<frP, *>`коммутативный моноид.

Введем еще два класса множеств мультимножеств, которые пригодятся при дальнейших построениях:

`frP_alpha = {bbR : bbR in frA,` `sum_((c, p) in Supp bbR)` `p k_bbR(c, p) =alpha },`

`frP_(<=alpha) = {bbR : bbR in frA,` `sum_((c, p) in Supp bbR)` `p k_bbR(c, p)<=alpha },`

`0 <= alpha <= 1.`

Для введенных классов можно доказать следующее утверждение.

Утверждение 4. Справедливы следующие утверждения:

`AAalpha,beta (0<=alpha<=1, 0<=beta<=1) [bbR' in frP_alpha, bbR'' in frP_beta rArr bbR' bbR'' in frP_(alpha * beta)],`

`AA alpha, beta (0<=alpha<=1, 0<=beta<=1) [bbR' in frP_(<=alpha), bbR'' in frP_(<=beta) rArr bbR' bbR'' in frP_(<= alpha * beta)],`

`AA alpha, beta (0<=alpha<=1, 0<=beta<=1) [bbR' in frP_(<=alpha), bbR'' in frP_beta rArr bbR' bbR'' in frP_(<=alpha * beta)].`

Утверждение 4, в частности, регламентирует иерархию риска в следующем смысле. Пусть имеется декомпозиция риска на несколько частей. Каждая часть риска содержит один или несколько исходов развития экономики и соответствует некоторому логически выделенному сценарию развития. Если в ходе дальнейшего анализа одного из таких сценариев выясняется наличие в нем ранее не учтенного риска, то часть риска, соответствующая этому сценарию (элемент множества `frP_alpha` , `0<alpha<1` ), просто умножается в указанном ранее смысле на выявленный риск (элемент множества `frR` ) и получается новая часть общего риска (элемент снова множества `frP_alpha` ).

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

Введем далее отнображение `barkappa: frP|-> frP` следующим образом:

`barkappa(bbX) = {1 * (barc,` `sum_((barc, p) in Supp bbX) ` `p ) : barc in` `uuu_((c, p) in Supp bbX)` `{c} }`

Рассматривая это отображение как отношение, расширим его до отношения `kappa` следующим образом:

`bbX kappa bbYhArr barkappa(bbX)=barkappa(bbY).`

Можно доказать следующее утверждение.

Утверждение 5. Отношение `kappa` является конгруэнцией на моноиде `frP` .

С экономической точки зрения риски в экономике (элементы множества `frR` ) и их части (элементы множества `frP` ) различимы с точностью до конгруэнции `kappa` . Риск `barkappa(bbX)` является простейшим в соответствующем классе эквивалентности. Поэтому введение понятия наименьшего вычета по модулю `kappa` :

`|bbX|_kappa = barkappa(bbX)`

оказывается вполне естественным. Использование `|bbX|_kappa` в вычислениях вместо `bbX` позволяет во многих случаях существенно сократить трудоемкость вычислений при сохранении результата (с точностью до конгруэнции `kappa` ).

Этот последний результат оказался определяющим при принятии решения о создании ППП «МультиМИР», так как именно он в сочетании с результатами теоремы 1 обещал качественный прирост производительности вычислений для отдельных классов задач оценки риска.

2. Математическая модель преобразований экономики

Наиболее простым и часто используемым вариантом интерпретации состояния экономики является отождествление этого состояния со значениями одного или нескольких бюджетов, выделенных в рамках какой-либо системы учета [9]. Очень часто используется один бюджет. В широком смысле это могут быть капитализация на момент закрытия позиции по инструменту экономики [14], совокупная стоимость владения элементом экономики [24] и т. д.

Использование одного бюджета в качестве величины, характеризующей состояние экономики, формирует представление о преобразовании экономики как об отображении множества действительных чисел `RR` на себя

`c : RR ->RR` , (1)

задаваемом соответствием

`c : x |->x + Delta_c` , (2)

где `x` – величина бюджета экономики, `Delta_c` – величина изменения бюджета экономики, связанного с преобразованием `c`.

Очевидно, что операция композиции отображений на множестве всех преобразований экономики, задаваемых соотношениями (1) и (2), коммутативна. Следовательно такая экономика может быть названа коммутативной и для нее справедливы все теоретические построения алгебры рисков.

Для работы с рисками, представленными в форме мультимножеств, в рамках интерпретации преобразований экономики как аддитивных преобразований бюджета, задаваемых соотношениями (1) и (2), и был разработан ППП «МультиМИР» («МултиМножественная Интерпретация Риска»). Это развание, в некотором смысле, несет более глубокий смысл. Алгоритмы, реализованные в пакете, обеспечивают построение полного вероятностного пространства системы и работу с этим пространством. Это пространство как раз и представляется мультимножеством сценариев (миров). Система здесь напоминает вселенную Эверетта в рамках его "many-worlds interpretation (MWI) of quantum physics".

3. Назначение ППП «МультиМир»

ППП «МультиМир» предназначен для работы с конечными дискретными рисками. Описываемая версия ППП «МультиМир» реализует, в частности, следующие функции (в терминах риска):

1) копирование риска;

2) агрегирование частей риска;

3) вычисление совместного риска двух финансовых инструментов;

4) канонизацию риска (вычисление наименьшего вычета по модулю `kappa` );

5) вычисление риска однородного портфеля, состоящего из заданного количества одинаковых инструментов;

6) вычисление риска портфеля, состоящего из заданного количества субпортфелей однородных финансовых инструментов;

7) верификацию полноты риска (принадлежности множеству `frR` );

8) вычисление типовых мер риска (математического ожидания, среднеквадратичного отклонения и частного случая меры возмущенной вероятности – меры «Value at Risk» или, иначе, «VaR»);

9) визуализацию риска.

4. Платформа разработки

В качестве платформы для разработки представленной в данной работе версии ППП «МультиМир» использована подсистема программирования Visual Basic for Application (VBA) системы работы с электронными таблицами Microsoft Office Excel 2003. Выбор платформы обусловлен следующими факторами:

1) язык программирования VBA является интуитивно понятным хорошо структурированным процедурным языком программирования, удобным для прототипирования вычислительных алгоритмов;

2) система программирования VBA снабжена развитыми средствами отладки, ускоряющими процесс разработки и верификации программного обеспечения;

3) Microsoft Office Excel 2003 обладает развитой объектной моделью, полностью доступной из программ на языке VBA и обеспечивающей, в частности, простые и выразительные средства визуализации данных;

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

5. Структуры данных

Единственной специфической структурой данных в описываемом ППП является представление мультимножеств. Для этого используются два одномерных массива с элементами типа «Double», элементы которых занумерованы от 1 до `n`. Первый массив содержит значения капитализации (величину бюджета) для каждого исхода и, как правило, в исходном коде для него используется идентификатор s или идентификатор, начинающийся с буквы s. Второй массив содержит вероятности исходов и для него в коде, как правило, используется идентификатор p или идентификатор, начинающийся с буквы p. Для обоих массивов перед использованием следует выделить такой объем памяти, который был бы достаточен для размещения максимального количества исходов, возникающих в расчетах, и для хранения которых используются эти массивы.

6. Структура программного обеспечения

В терминологии подсистемы VBA системы Microsoft Office Excel 2003 разработанный ППП состоит из восьми модулей:

1) модуль примитивов сортировки;

2) модуль примитивов по работе с риском;

3) модуль основных контрольных примеров;

4) модуль описания риска отдельных финансовых инструментов;

5) модуль примитивов анализа риска портфелей заданной структуры;

6) модуль контрольных примеров для анализа риска портфелей заданной структуры;

7) модуль визуализации;

8) модуль контрольных примеров для подсистемы визуализации.

Программное обеспечение ППП имеет иерархическую структуру, когда компоненты одного модуля используют примитивы, представленные в другом модуле, те, в свою очередь, используют примитивы третьего модуля и т. д. Наглядно структура программного обеспечения может быть представлена в виде графа вызовов (см. рис. 1 и 2).

01

Рис. 1. Граф вызовов ППП «МультиМИР» (без модуля примитивов анализа риска портфелей заданной структуры)

02

Рис. 2. Граф вызовов ППП «МультиМИР» (фрагмент с модулем примитивов анализа риска портфелей заданной структуры)

Модуль примитивов сортировки состоит из одной процедуры, реализующей сортировку методом слияния. Название процедуры: mergeSort. В ходе разработки и отладки профилирование исходного кода ППП позволило выявить тот факт, что процедура сортировки наиболее активно использует ресурс центрального процессора при использовании пакета. Был проведен значительный объем численных экспериментов с различными алгоритмами сортировки. В результате выбор пал на сортировку слиянием. Дополнительно выигрыш в производительности удалось получить за счет преобразования рекурсивного алгоритма в нерекурсивный.

Модуль примитивов по работе с риском состоит из следующих процедур и функций:

1) RLet – процедура копирования полинома, описывающего риск;

2) RInit – инициализация риска мономом, описывающим ситуацию с нулевой капитализацией и единичной вероятностью;

3) RNormTest – функция проверки нормирования риска на единицу;

4) RMB – процедура вычисления основных мер риска (математического ожидания, дисперсии, Value-at-Risk);

5) RM – процедура перемножения полиномов, описывающих риски;

6) RC – процедура канонизации риска, представленного полиномом;

7) RP – процедура возведения полинома, описывающего риск, в степень;

8) KPoli – функция расчета полиномиальных коэффициентов для монома, соответствующего разбиению r(1), r(2) , ... , r(m) числа n;

9) GetNMonom2 – функция определения количества разбиений натурального числа n на сумму m неотрицательных целых чисел с учетом порядка слагаемых.

Модуль основных контрольных примеров состоит из двух контрольных процедур example_0001 и example_0002. Процедура example_0001 позволяет проверить корректность функционирования следующих процедур и функций модуля примитивов по работе с риском: GetNMonom2, RP, RC, RInit, RM, RLet. Корректный результат выполнения процедуры example_0001 приведен в ее вступительном комментарии. Процедура example_0002 позволяет проверить корректность функционирования процедуры RMB модуля примитивов по работе с риском. Корректный результат выполнения процедуры example_0002 также приведен в ее вступительном комментарии. Процедуры example_0001 и example_0002 могут быть использованы для проверки корректности функционирования процедур и функций модуля примитивов по работе с риском при переносе ППП на другие версии платформы.

Модуль описания риска отдельных финансовых инструментов содержит две автономные процедуры загрузки моделей кредитных договоров LoadModelLoan1002 и LoadModelLoan1003, а также группу процедур в составе LoadModelTool, LoadModelLoan0001, LoadModelLoan0002, LoadModelLoan0003, LoadModelLoan0004, LoadModelLoan0005 и LoadModelLoan0006. Автономные процедуры LoadModelLoan1002 и LoadModelLoan1003 используется в модуле контрольных примеров для подсистемы визуализации. Остальные процедуры загрузки LoadModelLoan0001, LoadModelLoan0002, LoadModelLoan0003, LoadModelLoan0004, LoadModelLoan0005 и LoadModelLoan0006 объединены в единую группу моделей портфеля финансовых инструментов, состоящего из шести однородных субпортфелей, при помощи процедуры-селектора LoadModelTool. Эта группа моделей используется в модуле контрольных примеров для анализа риска портфелей заданной структуры. Все процедуры, соответствующие шаблону LoadModelLoanXXXX, имеют одинаковый набор параметров.

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

Модуль контрольных примеров для анализа риска портфелей заданной структуры состоит из одной контрольной процедуры example_2001. Процедура example_2001 позволяет проверить корректность функционирования следующих процедур и функций модуля примитивов анализа риска портфелей заданной структуры: GetNPfl, RPfl.

Модуль визуализации состоит из следующих примитивов:

1) CreateNewSheets – процедура создания нового листа с заданным именем;

2) GetNewNameFromDT – функция формирования имени-строки символов, соответствующей текущим дате и времени;

3) R_RMB_Out – процедура вывода на заданный лист данных о распределении и его основных характеристиках в формате, обеспечивающем визуализацию с помощью точечной диаграммы;

4) R_RMB_Out_2 – процедура вывода на заданный лист значимых с точки зрения визуализации данных о распределении и его основных характеристиках в формате, обеспечивающем визуализацию с помощью точечной диаграммы;

5) R_RMB_Chart – процедура вывода на заданный лист значимых с точки зрения визуализации данных о распределении и его основных характеристиках в формате, обеспечивающем визуализацию с помощью точечной диаграммы.

Модуль контрольных примеров для подсистемы визуализации состоит из трех специальных контрольных процедур example_1001, example_1002 и example_1003. Процедура example_1001 позволяет проверить корректность функционирования функции GetNewNameFromDT модуля визуализации. Корректный результат выполнения процедуры example_1001 приведен в ее вступительном комментарии. Процедура example_1002 позволяет проверить корректность подготовки моделей рискованных инструментов экономики в модуле описания риска отдельных финансовых инструментов. В данном конкретном случае – это модель кредитного договора в условиях аннуитетных платежей постнумерандо LoadModelLoan1002. Корректный результат выполнения процедуры example_1002 приведен в ее вступительном комментарии. Процедура example_1003 позволяет проверить корректность функционирования примитивов CreateNewSheets, R_RMB_Out_2 и R_RMB_Chart модуля визуализации. Процедура example_1003 последовательно выполняет следующие действия. Во-первых, загружает модель кредитного договора в условиях аннуитетных платежей постнумерандо в ходе вызова процедуры LoadModelLoan1003 модуля описания риска отдельных финансовых инструментов. Во-вторых, возводит риск этого кредитного договора в сотую степень, то есть вычисляет риск портфеля, состоящего из ста таких договоров (функция GetNMonom2 и процедура RP). В-третьих, канонизирует риск портфеля (процедура RC). В-четвертых, создает новый лист текущей книги Excel (процедура CreateNewSheets), выводит на него данные по распределению и основным мерам риска (процедура R_RMB_Out_2) и, наконец, формирует на этом листе соответствующую диаграмму (процедура R_RMB_Chart).

7. Ограничения ППП «МультиМир»

Основными характеристиками, формирующими ограничения для разработанного ППП, являются пиковые значения количества и размерности массивов, описывающих риск при решении той или иной задачи. При этом для описанной версии ППП указать конкретные значения количества и размерности массивов, под которые одновременно может быть выделена память, не представляется возможным. Дело в том, что менеджер памяти подсистемы VBA системы Microsoft Office Excel 2003 использует недокументированный алгоритм выделения памяти под объекты VBA, работа которого зависит от ряда факторов: наличия свободной памяти в системе, предыстории выделения памяти для объектов VBA и размера запрашиваемого объема памяти в рамках очередного запроса. Так, в вычислительной системе, работающей под управлением 32-разрядной операционной системы Microsoft Windows XP SP3, располагающей 4 Гб оперативной памяти и файлом подкачки размером 2 Гб, подсистема VBA Microsoft Office Excel 2003 SP3 позволяет одновременно выделить память под 9 массивов с количеством элементов типа «Double», равным 10 000 000, то есть всего около 687 Мб. В то же время жадный процесс выделения памяти, функционирующий на той же вычислительной системе, позволяет выделить гораздо больший объем памяти – 1.5 Гб и более (см. рис. 3). В этом случае, размер каждого последующего массива оказывается меньше предыдущего. Если посмотреть на рис. 3, на график, расположенный сверху, то легко можно заметить, что процесс выделения памяти перестраивался как минимум три раза (четыре тенденции представлены четырьмя различными типами маркеров), при этом, по-видимому, имеются минимум два механизма, формирующих объем доступной памяти на каждом шаге. Графики, представленные на рис. 3, можно рассматривать, таким образом, как иллюстрацию характера ограничений на выделение памяти подсистемой VBA.

03

Рис. 3. Жадный процесс выделения памяти VBA-программе. На каждом шаге процесс запрашивает максимально возможный для выделения объем памяти. Верхний график показывает объемы выделения памяти на каждом этапе и аппроксимацию зависимости объема от номера шага. Нижний график показывает общий выделенный объем памяти на каждом шаге. Все объемы памяти на графиках приведены в мегабайтах.

Заключение

Изначально ППП «МультиМИР» разрабатывался для нужд анализа риска срочных финансовых инструментов, в частности для оценки кредитного риска [19]. Однако в дальнейшем функциональность пакета была успешно использована в целом ряде других приложений. В частности при моделировании процессов управления персоналом [1, 4, 8], при анализе технических систем, таких, например, как системы дистрибуции точного времени [6, 11], и т. п. В настоящее время сфера применения ППП «МультиМИР» постоянно расширяется.

Предполагается развитие и самого ППП. Основными направлениями перспективных разработок в этом процессе являются следующие.

1) Перенос алгоритмов на эффективный компилируемый язык программирования. В качестве кандидатов рассматриваются языки Fortran 90/95/2003 и C.

2) Распараллеливание наиболее ресурсоемких алгоритмов, реализованных в пакете. В перспективе распараллеливание предполагается, в том числе, в рамках специализированной GRID-операционной системы.

3) Развитие функциональности системы в направлении методов новой метрической теории риска.

4) Разработка специализированной интерактивной оболочки к ППП "МультиМИР" для банковских риск-менеджеров "Калькулятор VaR".

References
1. Borodin, A. V. Arkhitektura informatsionnoi sistemy podderzhki prinyatiya reshenii po upravleniyu personalom roznichnoi podsistemy kommercheskogo banka / A. V. Borodin // Programmnye sistemy i vychislitel'nye metody. – 2014. – №2. – S. 174–190. – DOI: 10.7256/2305–6061.2014.2.12331
2. Borodin, A. V. Igry na setyakh Petri / A. V. Borodin // Obozrenie prikladnoi i promyshlennoi matematiki. – 2002. – T. 9. – V. 1. – S. 167–168.
3. Borodin, A. V. Matematicheskie modeli upravleniya kreditnym portfelem kommercheskogo banka / A. V. Borodin. – Ioshkar-Ola: Mariiskii gosudarstvennyi tekhnicheskii universitet, 1998. – 168 s.
4. Borodin, A. V. Modeli upravleniya personalom v roznichnoi podsisteme kommercheskogo banka / A. V. Borodin // Ekonomika i sotsium: sovremennye modeli razvitiya obshchestva v aspekte globalizatsii: materialy III mezhdunarodnoi nauchno-prakticheskoi konferentsii (12 fevralya 2014g.). – Saratov: Izdatel'stvo TsPM «Akademiya Biznesa», 2014. – S. 26–30.
5. Borodin, A. V. Seti Petri s nechetkim povedeniem v zadachakh imitatsionnogo modelirovaniya evolyutsii investitsionnykh i strakhovykh portfelei / A. V. Borodin // Obozrenie prikladnoi i promyshlennoi matematiki. – 2000. – T. 7. – V. 2. – S. 321–322.
6. Borodin, A. V. Stokhasticheskoe modelirovanie v zadachakh sinteza optimal'nykh topologii setei distributsii tochnogo vremeni / A. V. Borodin, D. R. Zub'yak // Tekhnicheskie nauki — ot teorii k praktike. Sbornik statei po materialam XXXIV mezhdunarodnoi nauchno-prakticheskoi konferentsii. № 5 (30). – Novosibirsk: Izdatel'stvo «SibAK», 2014. – S. 7–15.
7. Borodin, A. V. Teoretiko-igrovye modeli protsessov riska nad setyami Petri / A. V. Borodin // Modelirovanie i analiz bezopasnosti i riska v slozhnykh sistemakh: Trudy mezhdunarodnoi nauchnoi shkoly MABR-2006. – SPb.: GOU VPO «SPbGUAP», 2006. – S. 305–307.
8. Borodin, A. V. Upravlenie HR-protsessom v kommercheskom banke na osnove tekhnologii imitatsionnogo modelirovaniya / A. V. Borodin // Tekhnicheskie nauki — ot teorii k praktike. Sbornik statei po materialam XXXII mezhdunarodnoi nauchno-prakticheskoi konferentsii. № 3 (28). – Novosibirsk: Izdatel'stvo «SibAK», 2014. – S. 7–13.
9. Byudzhetirovanie: shag za shagom / E. Yu. Dobrovol'skii, B. M. Karabanov, P. S. Borovkov i dr. – M.: Piter, 2011. – 480 s.
10. Grant, K. L. Upravlenie riskami v treidinge: Kak povysit' pribyl'nost' s pomoshch'yu kontrolya nad riskami / K. L. Grant. – M.: Mir, 2005. – 349 s.
11. Gryazin, N. L. Sovokupnaya stoimost' vladeniya kak kriterii optimal'nosti arkhitektury sluzhby distributsii tochnogo vremeni v sistemakh SDR-svyazi na baze oborudovaniya kompanii Symmetricom / N. L. Gryazin, A. V. Borodin // Informatsionnye tekhnologii v ekonomike, obrazovanii i biznese: materialy V mezhdunarodnoi nauchno-prakticheskoi konferentsii (23 dekabrya 2013 g.). – Saratov: Izdatel'stvo TsPM «Akademiya Biznesa», 2013. – S. 39–41.
12. Dzhekel, P. Primenenie metodov Monte-Karlo v finansakh / P. Dzhekel. – M.: Internet-treiding, 2004. – 263 s.
13. Ermakov, S. M. Metod Monte-Karlo v vychislitel'noi matematike. Vvodnyi kurs / S. M. Ermakov. – SPb.: Nevskii Dialekt, Binom. Laboratoriya znanii, 2009. – 192 s.
14. Ivashkovskaya, I. V. Kapitalizatsiya: krakh ili vtoroe rozhdenie? / I. V. Ivashkovskaya. – M.: Mezhdunarodnyi universitet v Moskve, 2009. – 38 s.
15. Urazaeva, T. A. Avtomatizirovannaya sistema vizual'nogo modelirovaniya risk-protsessov institutsional'noi ekonomiki / T. A. Urazaeva // Modelirovanie i analiz bezopasnosti i riska v slozhnykh sistemakh: Trudy mezhdunarodnoi nauchnoi shkoly MA BR-2006. – SPb.: GOU VPO «SPbGU-AP», 2006. – S. 284-291.
16. Urazaeva, T. A. Algebra riskov / T. A. Urazaeva. – Ioshkar-Ola: Povolzhskii gosudarstvennyi tekhnologicheskii universitet, 2013. – 209 s.
17. Urazaeva, T. A. Metodologiya modelirovaniya riska portfelei srochnykh finansovykh instrumentov / T. A. Urazaeva // Audit i finansovyi analiz. – 2010. – № 5 – S. 456-465.
18. Urazaeva, T. A. Modeli svyazannykh zaemshchikov v notatsii diagramm deyatel'nosti UML / T. A. Urazaeva // Upravlenie konkurentosposobnost'yu regiona: strategii, modeli, informatsionno-analiticheskoe obespechenie: Regional'naya nauchno-prakticheskaya konferentsiya. Ch. 1. – Ioshkar-Ola: MarGTU, 2011. – S. 202-206.
19. Urazaeva, T. A. Paket prikladnykh programm «Mul'tiMir» v praktike analiza kreditnogo riska / T. A. Urazaeva // VIII Mezhdunarodnaya nauchno-metodicheskaya konferentsiya «Sovershenstvovanie podgotovki IT-spetsialistov po napravleniyu «Prikladnaya informatika» dlya innovatsionnoi ekonomiki»: Sbornik nauchnykh trudov. – M.: Moskovskii gosudarstvennyi universitet ekonomiki, statistiki i informatiki, 2012. – S. 182-186.
20. Urazaeva, T. A. Sintaksicheskaya model' yazyka vizual'nogo predstavleniya razvivayushchikhsya ekonomik / T. A. Urazaeva // Obozrenie prikladnoi i promyshlennoi matematiki. – 2006. – T. 13. – V. 1. – S. 147-149.
21. Urazaeva, T. A. Finansovye riski: algebraicheskaya model' ischisleniya / T. A. Urazaeva // Regional'naya ekonomika: teoriya i praktika. – 2010. – № 2(137). – S. 33-35.
22. Arora, S. Computational Complexity: A Modern Approach / S. Arora, V. Barak. – New York: Cambridge University Press, 2009. – 579 p.
23. Papadimitriou, C. H. Computational complexity / C. H. Papadimitriou. – New York: Addison-Wesley Publishing Company, Inc., 1994. – 523 p.
24. Hornby, D. Consolidation in the data center: simplifying IT environments to reduce total cost of ownership / D. Hornby, K. Pepple. – Santa Clara, CA: Sun Microsystems, 2003. – 205 p.
25. Sipser, M. Introduction to the Theory of Computation / M. Sipser. – Boston: Thomson Course Technology, 2006. – 431 p.