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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
x
y
O
Рис. 3.1. Решетка для решения задачи Дирихле в ограниченной области. Об­ласть D закрашена светло-серым цветом, сетка обозначена темно-серыми пря­мыми, внутренние узлы окрашены в черный цвет, граничные узлы — в белый цвет. Стрелками указана возможная траектория движения от внутреннего узла к граничному узлу
удовлетворяют разностным уравнениям (3.3) и условиям ¯u
k,l
= g
k,l
граничных узлов. Таким образом, решение конечной системы линейных алгебраических уравнений представлено в виде математического ожи­дания некоторой функции от траектории цепи Маркова с известными переходными вероятностями.
3.2. Моделирование непрерывных случайных величин
Будем считать, что распределение случайной величины X задано посредством ее плотности распределения p(x), так что функция распре­деления имеет вид
FX(x) =
Z
−∞
u
p(u) du.
Большинство общих методов генерирования непрерывной случайной ве­личины с плотностью распределения p(x) основывается на непосред­ственном использовании функции p(x). Кроме того, имеется группа методов, использующая представление случайной величины X в виде функции от одной или нескольких вспомогательных (базовых) случай-
51
для
ных величин. В качестве базовых случайных величин выступают, как правило, независимые случайные величины с равномерным распреде­лением в интервале (0, 1). Рассмотрим основные методы.
Метод обратной функции, метод функционального преобразова-
ния. Пусть непрерывная случайная величина Y имеет плотность рас-
пределения pY(x), g(x) — монотонная и дифференцируемая в области значений величины Y функция, h(x) — обратная к g(x) функция. Тогда плотность распределения pX(x) случайной величины X = g(Y ) может быть найдена по формуле
pX(u) = h0(x)pY(h(x)).
В частном случае, когда Y имеет равномерное распределение на (0, 1), а обратная функция h(x) равна функции распределения FX(x) генери­руемой случайной величины X, получаем преобразование Н.В. Смир- нова: при равномерно распределенной на интервале (0, 1) случайной величине U уравнение
˜
X
Z
pX(u) du = U
−∞
относительно˜X определяет случайную величину с функцией распре­деления FX(x).
Пусть требуется получить значение случайной величины со сме- щенным экспоненциальным распределением, заданным функцией рас­пределения
F (x) =
(
0, если x 6 θ,
−(x−θ)
1 −e
, если x > θ.
Найдем обратную функцию. Решая уравнение
y = 1 −e
−(x−θ)
,
получаем:
h(x) = θ − ln(1 −x).
Заметим, что если U имеет равномерное распределение на (0, 1), то такое же распределение имеет величина (1 − U ). Окончательно имеем:
X = θ − ln U .
52
Случайную величину с равномерным распределением в интерва-
ле (a, b), a < b, можно получить из U с помощью преобразования
X = a + U (b − a).
Случайную величину X с нормальным (гауссовским) распреде-
лением с плотностью
2
(x−a)
1
−
2
p
(x) =
a,σ
σ√2π
2σ
e
, σ > 0,
можно получить из стандартной нормальной случайной величины Y с плотностью
p
(x) =
0,1
−x2/2
e
√
2π
c помощью преобразования X = a + σY .
Важны для применений также функциональные преобразования
вида
X = g(Y1, Y2, . . . , Yr)
от вспомогательных случайных величин Y1, Y2, . . . , Yr. Пусть U1, U2, . . . , Ur— независимые случайные величины с равномерным распреде­лением на интервале (0, 1). С учетом равенств M U1=
1
, D U1=
2
1
12
по центральной предельной теореме А.М. Ляпунова [34, с. 219],
,
Z
−∞
x
−u2/2
e
du
√
2π
.
lim
r→∞

U1+ U2+ .. . + Ur− r/2
P
p
r/12
< x=
Например, при r = 12 случайная величина
N
= U1+ U2+ .. . + U12− 6
0,1
имеет приближенно стандартное нормальное распределение. Недостат­ком этого метода является плохое поведение N деления. Очевидно, −6 < N
< 6, поэтому значения меньше минус
0, 1
«на хвостах» распре-
0, 1
шести и большие шести просто не встретятся.
Плотность гамма-распределения с параметрами a > 0, b > 0 име-
ет вид
p(x) =
a−1
x
baΓ(a)
−x/b
e
, x > 0.
53
При целом a распределение также известно как распределение Эрланга.
y
x
cg(x)
p(x)
O
При a = r/2, b = 2 (r — натуральное) — распределение хи-квадрат с r степенями свободы. При целом a можно получать значение величины
с гамма-распределением по формуле
X = −b ln(U1U2···Ua).
При параллельных вычислениях метод функциональных преоб­разований возможно сочетать с векторными вычислениями с помощью специальных библиотек математических функций.
Метод исключения. Пусть плотность p(x) мажорируется функци- ей cg(x), где g(x) — ограниченная плотность распределения. Предпола­гается, что плотность g(x) «проще» плотности p(x) для моделирования. Рассмотрим плоские фигуры
F = {(x, y) : a 6 x 6 b, 0 6 y 6 p(x)}
и
G = {(x, y) : a 6 x 6 b, 0 6 y 6 cg(x)},
ограниченные осью абсцисс и графиками функций p(x), cg(x) соответ­ственно (рис. 3.2). Справедливы следующие утверждения.
Рис. 3.2. Мажоризация сложной для моделирования плотности p(x) с помощью более простой функции cg(x) в методе исключения
1. Пусть случайная точка Q имеет равномерное распределение в ограниченной области G. Тогда при условии, что Q ∈ F, распределе­ние точки в области F снова будет равномерным. Действительно, для
54
любого измеримого подмножества A ⊂ F из определения условной ве­роятности P({Q ∈ A}|{Q ∈ F}) находим
P({Q ∈ A} ∩ {Q ∈ F})
P({Q ∈ F})
P({Q ∈ A})
=
P({Q ∈ F})
=
|A|/|G| |F|/|G|
|A|
=
.
|F|
2. Пусть случайная точка Q имеет равномерное распределение в ограниченной области F, |F| = 1, а X, Y суть ее декартовы коорди­наты. Тогда p(x) — плотность распределения случайной величины X. Действительно, двумерная плотность распределения f(x, y) величин X, Y принимает значение 1 при (x, y) ∈ F и значение 0 при (x, y) 6∈ F. Поэтому соответствующая одномерная плотность есть
p(x)
Z
f1(x) =
f(x, y) dy = p(x).
0
3. Пусть X имеет плотность распределения p(x), и при условии X = x случайная величина Y имеет равномерное распределение в ин-
тервале (0, p(x)). Тогда случайные величины X, Y имеют равномерное совместное распределение в области F.
Алгоритм метода исключения состоит в следующем.
Алгоритм X
Метод исключения для непрерывного распределения вероятностей
Шаг 1. Получить случайную точку Q со случайными декарто-
выми координатами X , Y в области G.
Шаг 2. Если Q ∈ F, то алгоритм возвращает значение X . В про-
тивном случае переходим снова к шагу 1.
Получение случайной точки на первом шаге можно осуществлять
на основании утверждения 3. Приведем примеры.
Рассмотрим моделирование гамма-распределения с параметрами
0 < a < 1, b > 0. Поскольку плотность
a−1e−x/b
p(x) =
x
baΓ(a)
55
мажорируется выражением
a−1
x
baΓ(a)
−x/b
e
baΓ(a)
при 0 < x 6 1,
при x > 1,
достаточно положить
g(x) =
 
a−1
ax
1 + abe
−x/b
ae
1 + abe
c =
−1/b
−1/b
1 + abe
abaΓ(a)
при 0 < x 6 1,
при x > 1;
−1/b
.
Получение значений случайной величины с плотностью g(x) произво­дится методом обратной функции.
Для решения методом Монте-Карло задачи Дирихле одним из методов приходится моделировать случайную величину с плотностью распределения, пропорциональной функции
h(x) = x
sh α(R − x)
sh aR
при 0 < x 6 R и равной нулю вне полуинтервала (0, R]. В силу нера­венства
sh α(R − x)
x
sh αR
6 xe
−αx
= h1(x)
на первом шаге алгоритма исключения необходимо сгенерировать слу­чайную величину X, распределение которой совпадает с гамма-распре­делением с параметрами a = 2, b = 1 при условии, что значение ве­личины лежит в полуинтервале (0, R]. Итак, алгоритм состоит в сле­дующем: 1) генерировать значение величины X = − ln(U1U2)/a, пока не удовлетворится неравенство X 6 R, затем выбрать Y = U3h1(X);
2) если Y > h(X), вернуться к предыдущему шагу, иначе остановиться и выдать значение X . Заметим, что неравенство Y > h(X ) эквивалент­но более простому неравенству
sh α(R − X )
U3>
sh αR
eαX.
56
Метод исключения может применяться также и для моделирова­ния некоторых дискретных распределений, например, биномиального, пуассоновского, отрицательно-биномиального.
Метод суперпозиции. Этот метод основан на представлении плот­ности распределения p(x) в виде
r
p(x) =
X
qkpk(x),
k=1
где положительные числа q1, q2, . . . , qrудовлетворяют условию
q1+ q2+ .. . + qr= 1,
а неотрицательные функции pk(x), k = 1, 2, . . . , r являются также плот­ностями распределения. Алгоритм моделирования случайной величины с такой плотностью состоит из следующих шагов.
Алгоритм XI
Метод суперпозиции
Шаг 1. Сгенерировать вспомогательную дискретную случайную величину Y с распределением P({Y = k}) = qk.
Шаг 2. При наступлении события Y = k сгенерировать случай- ную величину X исходя из плотности распределения pk(x).
Пусть плотность распределения случайной величины X имеет вид:
p(x) =
4
(1 −x + x3), 0 < x < 1.
3
Для получения значения X по методу обратной функции требуется ре­шить уравнение четвертой степени
X4− 2X2+ 4X = 3U .
Если же представить исходную плотность в виде
p(x) =
2
· 2(1 −x) +
3
1
· 4x3= q1p1(x) + q2p2(x),
3
57
то для получения одного значения X достаточно сгенерировать две вспомогательные случайные величины U1, U2с равномерным распре­делением в интервале (0, 1) и положить
X =
(
1 −pU2при U16
p
4
U
2
при U1>
2
,
3 2
.
3
Мы помним, что одна из декартовых координат случайной точки
Q с равномерным распределением в области
F = {(x, u): 0 6 y 6 p(x)}
имеет в точности распределение c плотностью p(x). Рассмотрим разбие­ние области F на конечное число областей, как показано, например, на рис. 3.3. Из одиннадцати представленных на рисунке областей четыре области имеют вид прямоугольников, а остальные семь — вид криволи­нейных трапеций. Площади областей обозначены соответственно q1, q2, . . . , q11. Если рассматривать выбор точки Q в области с площадью q и соответствующую плотность одномерного распределения абсциссы X точки Q обозначить pk(x), то оказывается справедливым представление
11
p(x) =
X
qkpk(x). (3.4)
k=1
В этом случае алгоритм генерирования величины X сводится к следу­ющему.
k
Алгоритм XII
Метод суперпозиции для распределения (3.4)
Шаг 1. Сгенерировать вспомогательную дискретную случайную
Y величину с распределением P({Y = k}) = qk.
Шаг 2. При наступлении события Y = k, k 6 4 сгенерировать случайную величину X с равномерным распределением методом обрат­ной функции. При k > 5 значение X генерируется исходя из плотности pk(x), например, методом исключения.
Такое применение метода суперпозиции экономически оправдано, если суммарная вероятность
q1+ q2+ .. . + q
,
k
0
58
O
q
2
q
1
q3q
4
x
y
p(x)
q
5
q
6
q
7
q
8
q9q
10
q
11
Рис. 3.3. Представление плотности p(u) в виде суперпозиции одиннадцати вспо- могательных плотностей
соответствующая «простым областям», близка к единице (здесь приня­то число k0простых областей). Тогда генерирование значения X стоит примерно столько же, сколько генерирование двух случайных величин с равномерным распределением на (0, 1).
3.3. Моделирование случайных векторов
Необходимость моделирования случайного вектора естественно возникает в некоторых задачах. Однако наряду с этим можно ставить вопрос об эффективных методах моделирования одновременно несколь­ких значений одномерной случайной величины с заданным законом распределения. Рассмотрим основные методы моделирования значений случайных векторов.
Метод условных распределений. Суть метода заключается в том, что моделирование случайного вектора сводится к последовательному моделированию его элементов. Пусть распределение вероятностей слу­чайного вектора (X1, X2, . . . , Xn) задано с помощью n-мерной функ­ции распределения
F (x1, x2, . . . , xn) = P({X1< x1, X2< x2, . . . , Xn< xn}).
Определим разностный оператор
(k)
∆
F (x1, x2, . . . , xn) = F (x1, . . . , x
a,b
, b, x
k−1
− F (x1, . . . , x
59
, . . . , xn)−
k+1
, a, x
k−1
, . . . , xn)
k+1
и одномерные функции (условных) распределений
F1(x1) = F (x1, ∞, . . . , ∞) = P({X1< x1}),
(1)
F2(x1, x2) = lim
h&0
∆
x1, x1+h
∆
F (u1, x2, ∞, . . . , ∞)
(1)
x1, x1+h
F (u1, ∞, . . . , ∞)
= P({X2< x2}|{X1= x1}), . . . ,
Fn(x1, x2, . . . , xn) =
= lim
h&0
(1)
∆
x1, x1+h
(1)
∆
x1, x1+h
(2)
∆
x2, x2+h
(2)
∆
x2, x2+h
···∆
···∆
(n−1) x
n−1
(n−1) x
n−1
, x
, x
F (u1, u2, . . . , u
+h
n−1
F (u1, u2, . . . , u
+h
n−1
= P({Xn< xn}|{X1= x1, X2= x2, . . . , X
n−1
= x
=
n−1
n−1
n−1
, xn)
=
, ∞)
}).
Если каждая функция Fk(x1, x2, . . . , xk) монотонно возрастает по x при фиксированных x1, x2, . . . , x
, то функция совместного распре-
k−1
деление величин X1, X2, . . . , Xn, найденных из уравнений
F1(X1) = U1,
F2(X1, X2) = U2,
. . . ,
Fn(X1, X2, . . . , Xn) = Un,
совпадает с F (x1, x2, . . . , xn). Как и прежде, предполагается, что ве­личины U1, U2, . . . , Unнезависимы и каждая имеет равномерное рас­пределение в интервале (0, 1).
Предположим, что существует совместная плотность распреде­ления p(x1, x2, . . . , xn) величин X1, X2, . . . , Xn. По ней возможно определить набор одномерных (условных) плотностей распределения
∞
R
∞
−∞
∞
Z
···
p(x1, x2, . . . , xn) dx2dx3···dxn,
−∞
R
∞
−∞
···
∞
···
p(x1, x2, . . . , xn) dx3···dx
−∞
R
∞
p(x1, x2, . . . , xn) dx2dx3···dx
−∞
n
,
n
p1(x1) =
p2(x1, x2) =
Z
−∞
R
. . . ,
p(x1, x2, . . . , xn)
pn(x1, x2, . . . , xn) =
R
∞
p(x1, x2, . . . , xn) dx
−∞
.
n
k
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]