Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы Монте-Карло для параллельных вычислений. Учебное пособие
.pdf
решение бигармонического уравнения изгиба тонких упругих пластин
∆∆u(x, y) = f(x, y) ·D−1. (x, y) ∈ G ⊂ R2,
с граничными условиями типа
u|∂G= 0,
∆u − A
∂u
∂n
= 0
∂G
для случая свободно опертого края пластины и типа
∂u
u|∂G= 0,
∂n
∂G
= 0
для жестко закрепленного края пластины (здесь n — вектор нормали к
границе); решение телеграфного уравнения
∂2u
∂t
+2λ −
2
a0(t)
a(t)
∂u
∂t
= b2(t)
∂2u
, (t, x) ∈ [0, ∞) ×G,
2
∂x
с начальными условиями
∂u
u(0, x) = ψ1(x),
∂t
= ψ2(x), x ∈ R.
t=0
8.4. Вычисление континуальных интегралов
Часто решение некоторых задач математической физики удается
представить аналитически в виде континуального интеграла
Z
J =
F [x(t) : 0 6 t 6 T ] dWx
C
от непрерывного и ограниченного функционала F [·]: C → R по пространству C непрерывных функций x(·) на отрезке 0 6 t 6 T с x(0) = 0,
где µ(A) =
R
dWx — винеровская мера множества A ⊂ C. Поэтому воз-
A
никает проблема приближенного вычисления величины J. Напомним,
что интеграл J определяется как предел
lim
n→∞
1
(π ∆t)
n/2
Z
−∞
n−1
∞
∞
Z
···
F (x1, . . . , xn)e
−∞
2
P
x
−
∆t
(x
1
−
j=1
j+1
−xj)
∆t
2
dx1. . . dxn,
где F (x1, . . . , xn) есть значение функционала F [·] на ломаной с узлами
(kT /n, x(kT /n)), xk= x(kT /n), k = 1, 2, . . . , n.
161

8.5. Линейное интерполирование функций многих
переменных
Задача линейного интерполирования функции
f(x1, . . . , xn), 0 6 xi6 1, i = 1, 2, . . . , n,
значения которой известны только в вершинах единичного n-мерного
куба {(x1, . . . , xn): 0 6 xi6 xn, i = 1, 2, . . .}. При больших значениях
n число 2nзначений функции во всех вершинах куба, которые необходимо хранить для вычислений, растет слишком быстро. Представляет
интерес существенное снижение числа вершин куба, в которых нужно вычислить значение функции для получения оценки ее значения в
заданной внутренней точке.
8.6. Оценка абсолютного экстремума функций многих
переменных
Задача оценки положения абсолютного максимума (минимума)
ограниченной кусочно-непрерывной функции F(x1, . . . , xn) в замкнутом n-мерном единичном кубе {(x1, . . . , xn): 0 6 xi6 xn, i =
= 1, 2, . . .}.
Огромное количество задач из области прикладной науки также эффективно решается методами Монте-Карло. Приведем несколько
примеров.
8.7. Численное решение стохастических дифференциальных
уравнений Ито
Математической моделью многих реальных процессов и явлений
является случайный процесс Ито X = {X(t); t > 0}, определяемый по
винеровскому процессу {W (t); t > 0} и начальному значению X (0) с
помощью соотношения
X(t) = X(0) +
t
Z
b(s, X(s)) ds +
0
t
Z
σ(s, X(s)) dW(s).
0
162

Последнее равенство часто записывают в форме стохастического дифференциального уравнения Ито:
dX(t) = b(t, X(t)) dt + σ(t, X(t)) dW(t).
Однако часто не удается найти решение данного стохастического уравнения в замкнутом виде. Поэтому приходится обращаться к численным
методам для моделирования выборочных траекторий процесса X , для
оценки распределения и числовых характеристик функций g(X(t)) от
значений процесса X в произвольный момент t, а также для оценки
распределения вероятностей и числовых характеристик функционалов
F [X (t); 0 > t > T ].
8.8. Вычисление справедливой цены опционов
В задачах финансовой математики существует важная задача
об определении «справедливой» цены различных производных финансовых инструментов с учетом различных стохастических ситуаций на
рынке. В настоящее время много усилий исследователей направлено
на разработку методов оценки так называемых опционных и фьючерсных контрактов на рынке, торгующем как безрисковыми активами типа банковского счета, так и активами со случайно меняющейся доходностью. В частности, пусть наблюдения за рынком осуществляются в
дискретные моменты времени t = 0, 1, .. . , T , величина B(t) выражает
стоимость единицы безрискового актива, а величина S(t) — стоимость
единицы рискового актива в момент t. Фактор случайности при этом
заключается в флуктуациях доходностей
ρ(t) = (S(t) − S(t − 1))(S (t − 1))
−1
рискового актива. Портфель задается последовательностью
π = {(β(t), γ(t)); t = 0, 1, . . . , T },
где β(t) — число единиц безрискового актива, а γ(t) — число единиц
рискового актива, входящих в портфель в момент времени t. Величины
β(t), γ(t) предполагаются предсказуемыми относительно информации к
моменту t, то есть некоторыми неслучайными функциями от ρ(0), ρ(1),
. . . , ρ(t − 1). Тогда капитал портфеля в момент t есть
Xπ(t) = β(t)B(t) + γ(t)S(t).
163

Самофинансируемые портфели выделяются условием:
B(t)(β(t) −β(t − 1)) + S(t)(γ(t) −γ(t − 1)) = 0.
Опционный контракт на продажу («опцион-пут») есть ценная бумага,
содержащая договор между продавцом и покупателем рискового актива о том, что в течение определенного времени или в определенный
момент времени продавец имеет право продать покупателю актив по
заранее оговоренной цене K (и покупатель не может отказаться от покупки). Продавец, очевидно, реализует это право, если рыночная цена
актива на момент продажи окажется ниже указанной в договоре. В этом
случае покупатель понесет потери. Он захочет вложить деньги, вырученные за продажу опциона, чтобы наросшая к моменту сделки сумма
компенсировала его убыток f (T ). Так, для опциона-пут европейского
типа
f(T ) = max{K − S(T ), 0},
опцион-пут азиатского типа задается платежным обязательством
T
n
f(T ) = max
X
S(t) − aS(T ), 0o,
t=0
а для опциона-пут русского типа
f(T ) = maxmax
06t6T
S(t), 0.
Справедливая цена опциона должна быть найдена так, чтобы ни покупатель, ни продавец опциона не могли получить дополнительной выгоды от сделки. Известно, что справедливая цена для европейского опциона с платежной функцией f (T ) на полном безарбитражном рынке
определяется формулой
C(f(T )) = B(0)fM
f(T )
B(T )
,
гдеfM(·) означает усреднение по единственной вероятностной мереeP,
эквивалентной мере P, относительно которой дисконтированная последовательность {S(t)(B(t))−1; t = 0, 1, . . . , T } образует мартингал.
Аналогичный вид имеет справедливая цена опциона и в случае непрерывного времени. Здесь, в частности, разностные уравнения
B(t) −B(t − 1) = rB(t − 1), S(t) −S(t − 1) = ρ(t)S(t − 1)
164

заменяются дифференциальным уравнением
dB(t) = r dt
и стохастическим дифференциальным уравнением Ито
dS(t) = µS(t) dt + σS(t) dW (t).
Метод Монте-Карло удобно использовать для оценки математического
ожидания, стоящего в определении величины C(f(T )).
8.9. Имитационное моделирование реальных систем
Принцип построения модели, воспроизводящей основную последовательность событий в рассматриваемом процессе только исходя из
представлений о законах, управляющих этими основными процессами,
широко применяется в различных областях физики, химии, биологии и
других наук. В этом случае говорят об имитационном моделировании
соответствующих физических (химических, биологических, . . . ) систем
и процессов управления. Например, в процессах переноса частиц движущиеся частицы могут претерпевать столкновения с элементами вещества, вследствие чего может произойти поглощение или рассеяние
(изменение направления движения). Таким образом, движение каждой
частицы состоит из прямолинейных участков случайной длины, в концах которых может произойти как смена направления движения частицы случайным образом, так и исчезновение и обрыв траектории. Задавшись необходимыми вероятностными распределениями для длины
свободного пробега и характеристик рассеяния, возможно путем моделирования траекторий большого числа частиц оценить среднее число
столкновений частицы в заданной области, среднее число пересечений
некоторой поверхности. Также на основании имитационной модели возможно решать задачи оптимизации системы по геометрическим параметрам (см. главу 7).
Широко применяется метод имитации для моделирования, анализа и оптимизации систем массового обслуживания. Пусть имеется
один или несколько входных потоков требований (вызовов, заявок, и
т. д.) произвольной природы. Поступающие требования помещаются
для ожидания в накопители (очереди, бункеры). Предполагается, что
каждое поступившее требование нуждается в обслуживании, конкретная природа которого может быть произвольной (разговор абонента,
165

проведение вычислений процессором, переезд перекрестка транспортным средством). В системе может иметься одно или несколько обслуживающих устройств. Обслуженные требования могут покинуть систему,
если не нуждаются в повторном обслуживании на том же или другом
приборе. После каждого акта обслуживания прибору может потребоваться внутренняя переналадка. Для задания системы массового обслуживания как правило необходимо указать также закон распределения
промежутков времени между поступлениями требований, законы распределения длительностей обслуживания требования на каждом приборе. Интерес представляют такие характеристики функционирования
системы, как вероятность отсутствия требований в очередях, законы
распределения длин очередей и их числовые характеристики, законы
распределения времени пребывания произвольного требования в системе, загрузка системы и многие другие. Например, огромную практическую ценность имеет имитационное моделирование процессов управления конфликтными потоками транспорта на пересечении магистралей
в крупных городах. В нашей стране большой вклад в развитие методов
статистических испытаний внесла школа Н.П. Бусленко [1, 23]. Подробно моделирование систем массового обслуживания рассмотрен в главе 6.
8.10. Картографирование и локализация для роботов
В разработке различных технических комплексов с элементами
искусственного интеллекта возникают разнообразные задачи фильтрации информации, содержащей случайные помехи. Приведем в качестве интересного примера проблему одновременного картографирования местности и позиционирования роботов. В настоящее время имеется техническая возможность снабдить подвижного робота акустическим
либо лазерным дальномером. При движении робот в дискретные моменты времени производит сканирование пространства вокруг себя и получает информацию в виде направлений на препятствия (в помещении —
стены, мебель, люди и т. п.). Одновременно в оперативной памяти поддерживается вероятная карта изученной местности и положение робота
на ней. Полученные при очередном обзоре сведения должны быть использованы как для уточнения деталей карты, нанесения на нее новых
объектов, так и для выяснения нового положения робота. Трудность
этой задачи заключена в большом числе источников случайности и относительно небольшой точности некоторых используемых механизмов.
166

Для измерения пройденного расстояния используются одометры, показания которых могут содержать существенную ошибку. Известные алгоритмы для решения задачи одновременного картографирования местности и позиционирования робота используют метод Монте-Карло для
оценки наиболее правдоподобного положения робота по сведениям о
совершенном перемещении, имеющейся карты и актуального «взгляда»
на окружение.
8.11. Задачи математической статистики
В области математической статистики методы статистических испытаний применяются, в том числе, для изучения сложных функций
распределения статистик в статистическом анализе, изучения апостериорных распределений в байесовском анализе, вычисления мощности
статистических критериев проверки гипотез, изучения влияния различных факторов на статистические процедуры.
Например, для проверки критерия согласия выборочных значений x1, x2, . . . , xnс гипотезой о нормальном распределении со средним
a и среднеквадратическим отклонением σ > 0 часто используется кри-
терий Колмогорова – Смирнова, основанный на статистике
Dn= sup
−∞<x<∞
|ˆFn(x) −Φ(x; a, σ)|,
гдеˆFn(x) — выборочная функция распределения, Φ(x; a, σ) — гипотетическая функция распределения. Известно, что при справедливой
нулевой гипотезе распределение величины√nDnсходится к распределению
K(x) =
∞
X
j=−∞
(−1)je
−2j2x
2
, x > 0.
На практике значения a и σ оцениваются по выборке. Это приводит к
тому, что функция распределения статистики√nDnотличается от указанной Колмогоровым и Смирновым. Ввиду сложности задачи об аналитическом исследовании распределение статистики√nDnбыло найдено методом Монте-Карло и теперь в табулированном виде включается
в наборы программ прикладной статистики (тест Лиллиефорса).

ПРИЛОЖЕНИЕ. Векторные вычисления
Однин из видов параллельных вычислений — векторные вычис-
ления. Векторность заключается в том, что одна и та же операция вы-
полняется сразу над несколькими элементами данных. Например, пусть
x = (x1, x2, . . . , xn) и y = (y1, y2, . . . , yn) — два вектора одинакового
размера n. Как известно, суммой векторов x и y будет такой вектор
z = (z1, z2, . . . , zn), элементы которого вычисляются по формуле:
zi= xi+ yi, i = 1, 2, . . . , n. (1)
Следовательно, для вычисления вектора z по этой формуле необходимо
выполнить n сложений. Если имеются n независимых вычислительных
устройств, то все сложения можно осуществить одновременно. Дополнительно должна иметься возможность эффективно выбирать все величины x1, x2, . . . , xn, y1, y2, . . . , ynиз оперативной памяти во внутреннюю
память процессора. Известно сокращенное название такой архитектуры
процессоров: SIMD (single instruction, multiple data — одна инструкция,
много данных).
Компьютеры с поддержкой векторных вычислений появились в
конце 1960-х – 1970-х годах. Например [2], компьютер Cray-1 имел
12 независимых арифметико-логических функциональных устройств, а
также 8 векторных регистров, способных хранить 64 слова по 64 бита
каждое. В наше время векторные процессоры, используемые в высокопроизводительных системах, имеют регистры на 64 или 128 машинных
слова.
Для рядового пользователя наиболее доступны Intel-совместимые
компьютеры. Поэтому остановимся подробней на векторных возможностях широко распространенных процессоров Intel и AMD. Поддержка векторных вычислений связана с технологиями MMX (MultiMedia
eXtensions — «мультимедийные расширения»), “3DNow!” и линейкой
SSE, SSE2, SSE3, SSE4 (streaming SIMD extensions — «потоковое расширение SIMD») [46].
Процессор содержит восемь 128-битных специализированных векторных регистров, именуемых xmm0, xmm1, . . . , xmm7 (рис. 1). Один 128битный векторный регистр может содержать четыре 32-битных значения либо два 64-битных значения. Одно 32-битное значение может быть
либо целым числом (тип int, doubleword), либо числом с плавающей
точкой одинарной точности (тип single float). Аналогично 64-битное
значение интерпретируется либо как целое число со знаком (тип long
168

int, quadword), либо как число с плавающей точкой двойной точности
int[3] int[2] int[1] int[0]
float[3] float[2]
float[1] float[0]
long int[1]
long int[0]
double float[1] double float[0]
128 b = 16 B
xmm
(тип double float). Говорят, что эти числа упакованы в векторный регистр. Элемент с индексом 0 (например, int[0]) называется младшей
или нижней частью регистра; самый левый элемент (например, double
float[1]), соответственно, называется старшей или верхней частью
регистра.
Рис. 1. Вид векторного регистра при разной интерпретации его содержимого
(сокращение b означает бит, B означает байт)
Инструкции для работы с векторными регистрами можно разделить на несколько групп: перемещение данных, арифметические и логические действия, сравнение данных, преобразование данных из одного
типа в другой. Многие инструкции имеют два варианта: векторный и
скалярный. Причины этого станут видны ниже.
Перемещение данных осуществляется для одновременного выбора нескольких значений из непрерывного отрезка оперативной памяти и
помещения в векторный регистр, или наоборот, из векторного регистра
в непрерывный отрезок памяти. Скалярная версия инструкции помещает одно число заданного типа в старшую (или младшую) часть векторного регистра или одно число из старшей (младшей) части векторного
регистра в оперативную память. На рис. 2 приведено действие команд
ассемблера для выбора из памяти (MOV-, от англ. move) массива четырех упакованных (-P-, от англ. packed) вещественных чисел с одинарной
точностью (-S, от англ. single float). Различие между двумя приведенными командами состоит в том, что адрес участка памяти, где размещен
источник данных, начинается по смещению, кратному 16 байтам. Про-
169

изводители процессора утверждают, что выбор из памяти с выравнива-
MOVAPS xmm0, 0x175f66c0
0x175f66c0
0x175f66c4
0x175f66c8
0x175f66cc
0x175f66d0
xmm0
0x175f66c0
0x175f66c4
0x175f66c8
0x175f66cc
0x175f66d0
xmm0
MOVUPS xmm0, 0x175f66c1
нием осуществляется на несколько процессорных тактов быстрее, чем
выбор из памяти без выравнивания. На выравнивание указывает буква
-A- в имени команды, на отсутствие выравнивания — буква -U-. Для
примера, на рис. 2 приведен условный диапазон адресов 0x175f66c0
– 0x175f66d0. Каждый квадрат соответствует одному вещественному
числу с одинарной точностью и, следовательно, четырем байтам.
Рис. 2. Выбор вектора из четырех вещественных чисел с одинарной точностью
из памяти с выравниванием по границе 16 байт (слева) и без выравнивания
(справа)
Арифметические и логические инструкции включают в себя операции сложения, вычитания и умножения чисел. Деление реализовано
только для вещественных чисел. На рис. 3 приведены схемы действия
команды сложения четырех пар целых чисел со знаком в режиме векторной и скалярной операции. Поскольку при умножении 32-битных целых чисел полный результат занимает уже 64 бита, векторное целочисленное умножение в наборах SSE, SSE2, SSE3 осуществляется только
над парами чисел, а два результата занимают весь 128-битный регистр.
В расширении SSE4 имеется команда умножения четырех пар целых
32-битных чисел, в результате которой сохраняются только младшие
32 бита результата. Другими словами, выполняется умножение по модулю 232. Кроме того, для вещественных чисел имеется возможность
вычисления квадратного корня и обратной величины, а для целых чисел — логических операций И, ИЛИ, исключающее ИЛИ. Отметим так-
170
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
