Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы Монте-Карло для параллельных вычислений. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
решение бигармонического уравнения изгиба тонких упругих пластин
∆∆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 ) = maxmax
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]