Научная статья на тему 'Параллельный алгоритм расчета верхней цены для азиатского опциона в модели Кокса-Росса-Рубинштейна'

Параллельный алгоритм расчета верхней цены для азиатского опциона в модели Кокса-Росса-Рубинштейна Текст научной статьи по специальности «Математика»

CC BY
102
21
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
вхождение / решётчатый граф / информационная зависимость / распараллеливание / параллельный алгоритм / финансовое обязательство / опцион / Occurrence / lattice graph / information dependence / Parallelization / Parallel algorithm / financial commitment / Option

Аннотация научной статьи по математике, автор научной работы — Шилов Михаил Владиславович

Рассматривается параллельный алгоритм расчета верхней цены для азиатского опциона обобщённой модели Кокса-РоссаРубинштейна. Анализ распараллеливания алгоритма основан на решётчатых графах информационных связей. Вычислительная сложность алгоритма на порядок ниже, чем у последовательного аналога.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The paper is devoted to parallel calculation algorithm of the top cost for Asian option in the generalized Cox-Ross-Rubinstein model. Analysis of paralleling the algorithm is based on the lattice graph of information dependences. The computing complexity of algorithm is much lower than the sequential analogue.

Текст научной работы на тему «Параллельный алгоритм расчета верхней цены для азиатского опциона в модели Кокса-Росса-Рубинштейна»

УДК 519.85 + 06

ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ РАСЧЕТА ВЕРХНЕЙ ЦЕНЫ ДЛЯ АЗИАТСКОГО ОПЦИОНА В МОДЕЛИ КОКСА-РОССА-РУБИНШТЕЙНА

© 2009 г. М.В. Шилов

Ростовский государственный университет путей сообщения, Rostov State University of Means of Communication,

пл. Ростовского cтрелкового полка Народного Ополчения, 2,, Rostovskiy Strelkoviy Polk Narodnogo Opolchehiya Sq., 2, г. Ростов-на-Дону, 344038, Rostov-on-Don, 344038,

[email protected] [email protected]

Рассматривается параллельный алгоритм расчета верхней цены для азиатского опциона обобщённой модели Кокса—Росса— Рубинштейна. Анализ распараллеливания алгоритма основан на решётчатых графах информационных связей. Вычислительная сложность алгоритма на порядок ниже, чем у последовательного аналога.

Ключевые слова: вхождение, решётчатый граф, информационная зависимость, распараллеливание, параллельный алгоритм, финансовое обязательство, опцион.

The paper is devoted to parallel calculation algorithm of the top cost for Asian option in the generalized Cox-Ross—Rubinstein model. Analysis of paralleling the algorithm is based on the lattice graph of information dependences. The computing complexity of algorithm is much lower than the sequential analogue.

Keywords: occurrence, lattice graph, information dependence, parallelization, parallel algorithm, financial commitment, option.

В 70-е гг. XX в.Кокс, Росс и Рубинштейн предложили биномиальную модель рынка ценных бумаг с дискретным временем, впоследствии послужившую предметом большого числа исследований, где рассматривались различные обобщения модели Кокса-Росса-Рубинштейна (CRR) [1].

В работе исследуется модель типа В азиатском опционе финансовое обязательство представляется в виде бинарного дерева. При росте числа узлов дерева возникает проблема времени вычисления на однопроцессорной ПВЭМ. Что и послужило предпосылкой для создания параллельного аналога.

Итак, целями данной работы являются создание параллельного алгоритма расчета верхней цены азиатского опциона; обоснование корректности распараллеливания алгоритма; проведение анализа эффективности параллельного алгоритма.

Модель задачи

Рассматривается биномиальный (В, 5) -рынок,

= С1 + Рп )5'и-1; вп = С1 + г)Вп-\; Р = (Рп )и>1 -последовательность независимых случайных двузначных величин рп е {а, Ь} . Параметры модели удовлетворяют условию существования и единственности маргинальной меры —1 <а<г<Ъ. Рассматривается динамическое финансовое обязательство / = (/и)и>ь которое принято называть опционом

азиатского типа

[1]. f„=ß"(S„-

( x)+ =

0, x< 0 x, x > 0 '

1 n

n +1 г=0

Заметим, что предлагаемый ниже

метод непосредственного расчета применим для любых опционов с последействием. Их полный анализ для специальных значений а и Ь приведен в [1]. От-

метим, что в [1] задача решена для специальных значений а = (1/А)-1, Ь = Л — 1, где Л> 1, что несколько сужает класс (В, 5) -рынков.

Приведенные ниже вычисления выполняются в обратном времени.

Верхняя цена динамического финансового обязательства / : С = />'0Гу, где

¥п=т2сфп,р¥п_1{а) + ц¥п_1{Ъ)), п = ОМ (1)

Р =

Ъ — а

b — r

b - а

; Га - Gr, -

^ f п Вп

ß\Sn-S'ny

S' --

sn -

In _ ßN

bn (1 + r)NB0

1 n

T>si ; Bo, sо -

(1 + г)"В0 " 1 + п1=0 начальные стоимости банковского счета и акции; Р е (ОД] - дисконтирующий фактор.

Отметим, что приведенный ниже алгоритм легко распространяется на случай, когда а = (ап )И .] , Ь = ф„)„>1, г = (ги)и>1 ~ последовательности предсказуемых случайных величин, удовлетворяющих ограничению -1 <ап <гп <Ъп.

Для построения последовательного алгоритма формируются два бинарных дерева: стоимостей акции и значений ¥п.

п

Обозначим (рл) = (А,р2,...,рп) = П(1 + Рк) >

к=1

п = 1 ..Л'. Корнем дерева стоимостей акции назначим начальную стоимость акции 50 . Левый 5! (а) и правый 5^ (Ь) сыновья формируются соответственно при падении и поднятии цены на нее.

Пример. Построим дерево стоимостей акции (рис. 1) и среднее арифметическое по траекториям величин стоимостей акции для N = 3.

г - а

Рис. 1. Дерево стоимостей акции для N = 3

S 2 (а, а) = (1 + о)(1 + a)S 0 ; ^ (а) = (1 + a)S0 -S2(a\b) = (l + я )(1 + b)S0: S1(b) = (l + b)S0 ; 5*2 Ф. a) = (1 + b)( 1 + a)S0 : S2(b,b) = a + b)a + b)S0:

S3 (a, я, a) = (1 + o)(l + я)(1 + a)S$ : S3 (a. о. 2>) = (1 + o)(l + o)(l + b)S0 : S3 (аф.а) = (1 + a)(l + b)(l + a)S0 : S3(a.b.b) = (l + a)(l + b)(l + b)S0: S3 (b. a. a) = (1 + b)(l + o)(l + a)S0 : S3 (2>. аф) = (1 + b)( 1 + o)(l + b)S0 : S3 (b.b. a) = (1 + b)( 1 + b)( 1 + a)S0 ; S3 ф, b, b) = (1 + b)(l + b)(l + b)S0.

По этим значениям стоимостей акции для каждого узла вычисляется среднее арифметическое по каждой траектории:

Sq = S0 ;

S{(a) = (S0+Sl(a))/2:

sl(b) = (S0+S1(b))/2:

S2(a, а) = ($о + Si(a) + S2(а, а))/3:

S2(a,b) = (S0+Sl(a) + S2(a,b))/3:

52 (b, а) = (S0 + Siф) + S2Ф, а)) / 3;

S^(b,b) = (S0+S^b) + S2(b,b))/3-

S3(a,a,a) = (S0 + Si(a) + S2(a,a) + S3(a,a,a))/4; S3(a,a,b) = (Sq + Si(a) + S2(a,a) + S3(a,a,b))/4; S3(a,b,a) = (S0 +S1(a) + S2(a,b) + S3(a,b,a))/4-

53 (афф) = (S0 + Si (a) + S2 (аф) + S3 (афф))/4; ^з (b, я, a) = (S0 +Sl(b) + S2(b,a) + S3 (b, я, я)) / 4; S3 (b,a,b) = (S0 +Sl(b) + S2(b,a) + S3(b,a,b))/4-S3 фф,а) = (S0 + ф) + ФФ) + S3 фф.а))/4; S^b,b,b) = (S0 +81ф) + 82фф) + 83ффф))/4. Дерево значений Yn строится рекурсивно снизу

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

i"o(0)

Jo (2) i"o(3) i"o(4) Yo(5) Yo(6) Yo(7)

= G0( 0) = G0 (l); = G0(2) = G0( 3) = G0(4) = G0( 5) = G0( 6) = G0( 7)

Рис. 2. Дерево значений Ги> для n = 0 .. 3

}'! (0) = тах(Г;, (0). р¥0 (0) + д¥0 (1)); }1(1) = тах(О1(1).^}0(2) + 9}0(3)); ¥1 (2) = тах(Г;, (2). р¥0 (4) + д¥0 (5)); ¥1 (3) = тах(Г;, (3). р¥0 (6) + д¥0 (7)); Г2(0) = тах(С2 (0)^^(0) + 72(1) = шах(02(1)?/771(2) + 971(3));

¥3(0) = р¥2(0) + д¥2а).

Представим древовидный алгоритм в виде двойного гнезда циклов.

М = 2м~1:

/ог{1 = 1;/ <= N',1 =/ +1) {

/ог(У = 0;У<=Л^;У = J+ 1) {

Г[/] [7] = тах(С[/] ¥[1 -Y\[2*J] + p* ¥[1 -1] х

х[2*7 + 1]);

! (2)

\1 МП:

}

[0] = ц * Г[ЛГ -1] [0] + р * Г[лг -1] [1].

Анализ распараллеливания алгоритма

Как обычно, вхождением переменной будем называть всякое появление ее в тексте программы вместе с тем местом в программе, в котором она появилась. Всякому вхождению при конкретном значении индексного выражения соответствует обращение к некоторой ячейке памяти. Если при этом обращении происходит запись в ячейку памяти (вхождение в левую часть оператора присваивания, не входящее в индексное выражение другого вхождения), то такое вхождение называется генератором. Остальные вхождения называются использованиями. Если при допустимых индексных выражениях два вхождения обращаются к одной и той же ячейке памяти X, то говорят, что эти вхождения образуют информационную зависимость, причем вхождение, которое обращается к ячейке X позже, называют зависимым. Информационная зависимость (генератор, использование) может быть потоковой, антизависимостью, выходной или входной [2].

Рассмотрим двойное гнездо циклов (2). Перечислим все информационные зависимости в данном гнезде: потоковые - зависимость использования v2 от генератора и1, v4 от генератора u1 и зависимость вхождения v5 от генератора u2; выходные - самозависимость генератора u2; антизависимости - вхождения u2 от использования v5; входные - самозависимость вхождений vl, v3, v5.

На рис. 3 показан граф информационной зависимости по Лампорту [2].

Разделение вычислений на независимые части. Определение 1. Множество всех вложенных друг в друга циклов, в теле каждого из которых содержится некоторый оператор Stmt, называют опорным гнездом

циклов для оператора Stmt и для всех вхождений, которые этот оператор содержит [3].

Рис. 3. Граф информационной зависимости для фрагмента программы (2)

Определение 2. Множество значений вектора счетчиков циклов опорного гнезда, при которых исполняется оператор Stmt, будем называть опорным пространством для данного оператора и всех вхождений переменных, которые он содержит [4].

Определение 3. Пусть имеются векторы I = (/ь

/2,... J„\) и J = (./,. J2....../,,:). in = min (n 1. ;?2). Вектор I

лексикографически меньше вектора J (I</eTJ), если первая ненулевая координата вектора ^ -/j, J2 - h......hn ~ Im положительна. Вектор I лексикографически равен вектору J (I=/eTJ), если вектор (./| - /| .J 2 -1 j......>m равен нулевому вектору.

Определение 4. Множество вершин максимального решетчатого графа - все точки пространства итераций фрагмента программы [3]. Дуга направляется из вершины I е F, в вершину J е если I </ех J и

существуют такие вхождения и е Stmtj и v е Stmtj. что u[I] и v[J] обращаются к одной и той же ячейке памяти. При этом говорят, что вхождение u определяет начало дуги, а вхождение v - конец дуги.

Будем считать, что каждая пара вхождений (u, v) определяет отдельную дугу из I в J. Таким образом, максимальный решетчатый граф может иметь кратные дуги.

Определение 5. Вершины максимального решетчатого графа потоковой зависимости - пространство итераций фрагмента программы [3]. Дуга направлена из вершины I в вершину J (I е Г '„ J е Г ';, I</eYJ), если существуют генератор и е Stmt, и использование v е Stmtj, что г/[1] и v[J] обращаются к одной ячейке памяти.

Аналогичным образом можно ввести максимальные решетчатые графы выходной зависимости, антизависимости и входной зависимости.

На рис. 4 изображен максимальный решётчатый граф потоковой зависимости фрагмента программы (2).

Введём ещё два дополнительных вида решётчатых графов для обоснования распараллеливания алгоритма.

Определение 6. Вершины минимального снизу решётчатого графа зависимости типа T - пространство итераций фрагмента программы [3]. Дуги формируются по следующему правилу: возьмем максимальный решетчатый граф зависимости типа Т. Для каждой вершины s этого графа разобьем множество дуг, входящих в вершину s на группы: к одной отнесем

дуги, конец которых определялся одним и тем же вхождением; в каждой группе выберем одну дугу, у которой начальная вершина лексикографически ближе всего к вершине 5; остальные удалим.

J

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

0

1

2

3

I

Рис. 4. Максимальный решётчатый граф фрагмента программы (2)

Нетрудно показать, что минимальный снизу решетчатый граф потоковой зависимости для фрагмента программы (2) совпадает с максимальным решетчатым графом потоковой зависимости этого же фрагмента.

Определение 7. Вершины минимального сверху решётчатого графа зависимости типа T - пространство итераций фрагмента программы [3]. Дуги формируются по следующему правилу: возьмем максимальный решетчатый граф зависимости типа Т. Для каждой вершины 5 этого графа разобьем множество дуг, выходящих из вершины 5 на группы: к одной группе отнесем дуги, начало которых определялось одним и тем же вхождением; в каждой группе выберем одну дугу, у которой конечная вершина лексикографически ближе всего к вершине 5; остальные дуги удалим.

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

Определение 8 (Цикл РагБо по решетчатому графу О). Пусть О - минимальный решетчатый граф фрагмента программы, цикл Ь находится на глубине вложенности к в некотором гнезде циклов данного фрагмента [5]. Цикл Ь будем называть циклом РагБо по графу О, если в графе О не существует вершин I = (/ь .... 1,л) е Г', я]= (,/ь •••• Л2) е Для которых одновременно выполняются условия: /г = .//. для всех / е [1, к - 1]; 1к < .//.: решетчатый граф О содержит дугу, идущую из вершины I в вершину Л; операторы Stmti и Stmtj, опорные пространства которых есть V и Vj соответственно содержатся в цикле Ь.

7

6

Замечание 1. В [5] представлены необходимые и достаточные условия, позволяющие определять ParDo циклы по минимальному решётчатому графу. Если цикл является циклом РаЮо по одному какому-либо графу, то из этого еще не следует, что итерации данного цикла можно исполнять одновременно. Для того чтобы определить, можно ли итерации некоторого цикла исполнять одновременно, необходимо рассмотреть три минимальных решетчатых графа: потоковой зависимости, антизависимости и выходной зависимости.

Определение 9. Пусть О - решетчатый граф, полученный объединением минимальных решетчатых графов, описывающих потоковую зависимость, антизависимость и выходную зависимость по значениям, минимального снизу решетчатого графа потоковой зависимости, минимального сверху графа антизависимости, минимального снизу или сверху графа выходной зависимости [5]. Цикл, являющийся РагБо циклом по решетчатому графу О, будем называть РагБо циклом.

Утверждение. Все итерации РагБо цикла могут быть исполнены в любом порядке, в том числе и одновременно [5].

Анализ распараллеливания гнезда циклов (2). Рассмотрим двумерное гнездо циклов (2). Минимальный (он же максимальный) решётчатый граф О изображён на рис. 4. Он строится только по вхождениям и1, VI, у4. Таким образом, анализ будем проводить только по этим вхождениям. Исходя из теории, описанной выше, для данного фрагмента программы пространство

совпадает с V,- и с итерационным пространством двумерного гнезда циклов. Соответственно, Stmti совпадает с Stmtj и содержится в обоих рассматриваемых циклах.

Рассмотрим внешний цикл. Его глубина вложенности равна 1. В графе О существует дуга из вершины 1=(/ь 12) в вершину Л=(/ъ ./г), для которой выполняется 11</1 (рис. 4). Следовательно, цикл, находящийся на глубине вложенности 1 рассматриваемого гнезда (цикл со счетчиком «I»), не является циклом РаЮо по графу О.

Рассмотрим внутренний цикл. Его глубина вложенности равна 2. В графе О не существует дуги из вершины 1=(/ь 12) в вершину Л=(/}, /2), для которой выполняется 11=/1 и 12</2 (рис. 4). Следовательно, цикл, находящийся на глубине вложенности 2 рассматриваемого гнезда (цикл со счетчиком «/»), является циклом РаЮо по графу О.

Замечание 2. Учитывая, что, кроме потоковой, других зависимостей нет для вхождений и1, у2, у4, в двумерном гнезде циклов (2), внутренний цикл (цикл со счетчиком «/») будет РаЮо циклом, и его итерации могут выполняться одновременно.

Анализ эффективности параллельного вычисления

При построении модели будет предполагаться, что время выполнения любых вычислительных операций

Поступила в редакцию_

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

Рассматриваемая задача решается с помощью каскадной вычислительной схемы и определена как полное бинарное дерево.

Пусть п = 2к, тогда количество итераций каскадной схемы оказывается равным величине k = log2 п, а общее количество операций суммирования 7} = п / 2 + +и/ 4+... +1 = и—1 совпадает с количеством операций последовательного варианта алгоритма. При параллельном исполнении отдельных итераций каскадной схемы общее количество параллельных операций суммирования равно Тр = log 2 « . В результате можно

оценить показатели ускорения и эффективности [6] каскадной схемы алгоритма S р = 1\ ГГр = (п -1) / log2 «,

Ер = Т\! рТр = (п -1) / р log2 п = 2(п -1) / п log2 п , где

p = n / 2 - необходимое для выполнения каскадной схемы количество процессоров.

Анализируя полученные характеристики, можно отметить, что эффективность использования процессоров уменьшается при увеличении количества суммируемых значений lim Ер —> 0 .

И—>00

В настоящей работе создан новый параллельный метод вычисления верхней цены для азиатского опциона в обобщённой модели Кокса-Росса-Рубенштейна. Решётчатый граф информационной зависимости выявил, что одновременно можно выполнять итерации только внутреннего цикла алгоритма. Анализ эффективности показал, что вычислительная сложность параллельного алгоритма на порядок ниже, чем у последовательного аналога, но эффективность будет падать при увеличении количества узлов.

Литература

1. Ширяев А.Н. Основы стохастической финансовой мате-

матики : в 2 т. Т. 2. Теория. М., 1998. 112 с.

2. Lamport L. The parallel execution of DO loops // Commun.

ACM. 1974. Vol. 17, № 2. P. 83-93.

3. Воеводин В.В., Воеводин Вл.В. Параллельные вычисле-

ния. СПб., 2002. 608 с.

4. Гергель В.П., Стронгин Р.Г. Основы параллельных вы-

числений для многопроцессорных вычислительных систем. Н. Новгород, 2003. 112 с.

5. Шульженко А.М. Решетчатый граф и использующие его

преобразования программ в Открытой распараллеливающей системе // Научный сервис в сети Интернет: технологии распределенных вычислений : тр. Всерос. науч. конф. Новороссийск, 2005. С. 82-85.

6. Шульженко А.М. Автоматическое определение циклов

ParDo в программе // Изв. вузов. Сев.-Кавк. регион. Ес-теств. науки. 2005. Приложение. № 11. С. 77-88.

6 мая 2008 г.

i Надоели баннеры? Вы всегда можете отключить рекламу.