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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
называется вариацией функции f и является неслучайной. Теорема Колмогорова утверждает, что независимо от вида плотности p, при
N → ∞ существует предельное распределение
K(x) = lim
P({√N sup
N→∞
−∞<x<∞
|FN(x) −F (x)| < x})
меры расхождения между теоретическим и эмпирическим распределе­ниями величины X . По заданной доверительной вероятности γ выберем число λγиз условия K(λγ) = γ, тогда
JN−
λγV
√
∞
−∞
N
[f]
< J < JN+
λγV
√
∞
−∞
N
[f]
.
Заметим, что для кусочно-монотонных непрерывных функций f полу­чить значение полной вариации не представляет труда.
4.3. Сравнение точности геометрического метода и метода математического ожидания. Мера трудоемкости
Показателем точности оценки JNвеличины интеграла J по N случайным точкам естественно выбирать дисперсию D JNэтой оценки. Сравним дисперсии оценки интеграла (4.2) при использовании геомет­рического метода Монте-Карло и метода математического ожидания, предполагаем функцию f ограниченной. Пусть зафиксировано число N случайных точек. Оценку J по геометрическому методу можно предста­вить в виде
N
X
M
0
J
=
N
N
i=1
I({Yi6 f (X
(i)
)}),
поэтому, учитывая независимость и одинаковое распределение векторов
(i)
(X
(i)
, X
1
, . . . , X
2
D J
(i)
, Yi), i = 1, 2, .. . , N , имеем
n
2
M
0
=
N
D I({Y 6 f (X )}) =
N
M
2
N
(J − J2).
Здесь использовано известное равенство для дисперсии индикаторов со­бытий:
D IA= P(A) −(P(A))2.
81
С другой стороны, для оценки по методу математического ожидания находим:
D J
00
N
= D
N
X
N
1
i=1
f(X
(i)
)!=
N
∞
Z
1
p(x)(f(x))2dx − J
−∞
2
.
Из верного неравенства
∞
заключаем, что D J
0
N
Z
p(x)(f(x))2dx 6 M
−∞
00
> D J
. Таким образом, при одинаковом числе
N
2
случайных точек метод математического ожидания обладает мень­шей дисперсией оценки.
Трудоемкость алгоритма Монте-Карло для вычисления интегра-
ла (4.1) измеряется величиной t ·D f (X), где t — среднее время получе­ния одного значения случайной величины f(X ). Поясним это опреде­ление следующим рассуждением. По заданной доверительной вероят­ности γ и точности ε можно определить необходимое число N
min
точек
для достижения такой точности на основании оценки (4.4):
2
2
u
σ
N
min
γ
=
.
2
ε
Поэтому необходимое время моделирования (число операций) пропор­ционально tσ2, а коэффициент пропорциональности зависит только от требуемой точности и доверительной вероятности. Допустим, что инте­грал (4.2) можно также представить в виде
Z
J =
f1(x)p1(x) dx,
D
1
причем дисперсия распределения p
Z
2
σ
=
(f1(x))2p1(x) dx − J
1
D
2
и среднее время t1генерирования одного значения величины f (X), ис­ходя из плотности p1, таковы, что t1σ
2
< tσ2. Тогда получение оценки
1
J с заданной точность ε и доверительной вероятностью γ по набору p1, f1требует меньшего числа операций.
82
4.4. Способы уменьшения дисперсии
Известны специальные приемы для уменьшения дисперсии оцен­ки интеграла (4.2). Кратко перечислим некоторые из них.
Выделение главной части: пусть известно некоторое приближение h функции f, такое что
Z
(h(x))2p(x) dx < ∞
D
и интеграл
J1=
Z
h(x)p(x) dx
D
легко вычислить аналитически. Рассмотрим оценку
N
X
JN= J1+
1
(f(Xi) −h(Xi)).
N
i=1
Эта оценка является несмещенной:
N
X
M JN= J1+
1
M(f(Xi) −h(Xi)) = J1+ J − J1= J.
N
i=1
Ее дисперсия равна
Z
D JN= N−1D(f(X)−h(X)) = N
−1
(f(x)−h(x))2p(x) dx−(J1−J )
D
2
и вполне может оказаться меньше дисперсии N−1D f(X ). Сравнивать дисперсии можно либо аналитически, либо на основе выборки умерен­ного объема.
Интегрирование по части области: предположим, что легко ана­литически выполнить интегрирование по части D1⊂ D области D. Представим интеграл (4.2) в виде
J =
Z
f(x)p(x) dx +
D
1
Z
f(x)p(x) dx = J1+ J2.
D\D
1
83
Пусть
Определим новую плотность
c =
Z
D
1
p(x) dx.
p1(x) = p(x)(1 −c)−1, x ∈ D\D
1
и рассмотрим оценку
N
X
0
Y
N
где случайные векторы X увидеть, что Y сии оценок Y
0
— снова несмещенная оценка для J. Сравним диспер-
N
0
и YNиз (4.3). Имеем:
N
= J1+
0
i
1 −c
N
i=1
f(X
0
),
i
, i = 1, 2, . . . , N имеют плотность p1. Легко
Z
N(1 −c) D YN−N D Y
Z
= (1 −c)
D
0
= (1 − c)
N
(f(x))2p(x) dx −
1
D
Таким образом, дисперсия величины Y
(f(x))2p(x) dx − (1 − c)J2+ J
1
!
2
J
1
c
0
N
√
+
cJ2+
1 −c
√
c
J
1
меньше дисперсии начальной
2
=
2
2
> 0.
оценки YN(в 1 −c раз). На практике выбор значения случайного век­тора с плотностью p1можно организовать следующим образом: если значение Xiпопало в D1, то его отбрасываем и получаем следующее значение. Если t — время (число операций) для получения одного зна­чения Xi, а t0— время, затрачиваемое на проверку условия X ∈ D1, то, пользуясь формулой полной вероятности, найдем, что среднее время получения одного значения X
(1 −c)(t + t0) + c(1 −c)(t + t0) + c2(1 −c)(t + t0) + . . . =
При t0< ct оказывается, что трудоемкость оценки J с помощью Y
0
таким методом будет
i
t + t 1 −c
0
.
0
не
N
больше трудоемкости оценки с помощью YN.
Метод существенной выборки: пусть q — плотность распределе-
ния на D, обладающая свойством: p(x) > 0 влечет q(x) > 0. Обозначим
D0= {x: x ∈ D, p(x) = 0}.
84
Тогда можно записать:
J =
Z
f(x)p(x) dx =
D
Z
D\D
f(x)p(x)
0
q(x)
q(x) dx =
Z
D\D
0
f1(x)q(x) dx
и для оценки величины J использовать случайные суммы вида
где величины X
N
X
1
0
Y
=
N
N
i=1
0
, i = 1, 2, .. . , N независимы и имеют плотность рас-
i
f(X
0
)p(X
i
q(X
0
)
i
, (4.5)
0
)
i
пределения q. Часто такой прием помогает вычислить несобственные интегралы с D f (X) = ∞.
Можно рассмотреть следующий теоретический вопрос: какой вы­бор плотности q обеспечивает наименьшую дисперсию оценки Y
0
? Дис-
N
персия величины (4.5) равна
D Y
Z
0
=
N
D\D
f(x)p(x)
0
q(x)
2
q(x) dx − J2.
Обозначим
g(x) =
|f(x)|p(x)
q(x)
, h(x) = 1
и применим известное неравенство Коши – Буняковского – Шварца с областью интегрирования D\D0и весовой функцией q:
Z
g(x)h(x)q(x) dx
D\D
0
Z
2
6
D\D
0
g(x)2q(x) dx
Z
D\D
0
h(x)2q(x) dx.
Получим:
Z
D\D
f(x)p(x)
0
q(x)
2
q(x) dx >
Z
D\D
|f(x)|p(x)
0
=
85
q(x)
Z
D\D
0
!
2
q(x) dx
|f(x)|p(x)dx
=
!
2
= C2.
Поэтому наименьшее значение дисперсии равно C2−J2. Несложно убе­диться, что оно достигается на плотности q0= C−1|f|p. На практике задача вычисления интеграла
Z
C =
D\D
0
|f(x)|p(x) dx
эквивалентна задаче вычисления интеграла J. Однако теоретическое рассмотрение помогает заключить, что следует выбирать такую плот­ность q, чтобы отношение q/(|f|p) было близко к постоянной величине.
Следующий метод особенно замечателен для параллельных вы-
числений.
Метод выборки по группам: пусть задано разбиение
D = D1∪ D2∪ . . . ∪ D
k
области интегрирования на непустые подобласти, и в каждой области интеграл
Jj=
Z
f(x)p(x) dx, j = 1, 2, . . . , k
D
j
вычисляется методом математических ожиданий с плотностью
Z
D
j
p(x) dx.
pj(x) =
p(x)
, x ∈ Dj, vj=
v
j
Другими словами, пусть имеется Njнезависимых одинаково распреде­ленных случайных величин X
(j)
J
N
j
(j)
, X
j
j
N
X
i=1
2
j
, . . . , X
f(X
1
v
=
N
(j) i
(j)
с плотностью pj, а
N
j
).
(j)
Тогда оценка величины J имеет вид
N
YN=
k
X
j=1
N
j
X
v
j
j
i=1
f(X
(j)
), N = N1+ N2+ .. . + Nk.
i
86
Величина YNявляется несмещенной оценкой J . Ее дисперсия равна
k
2
X
v
D YN=
j=1
=
N
k
X
j=1
j
D f(X
j
N
(j)
) =
1
Z
1
v
(f(x))2p(x) dx −
j
j
D
j
Z
f(x)p(x) dx
D
j
!2!
. (4.6)
Временно допуская в соотношении (4.6) произвольные вещественные Nj, положим Nj= vjN. Тогда оказывается
k
X
j=1
=
Z
1
v
j
N
j
D
Z
1
(f(x))2p(x) dx −
N
D
(f(x))2p(x) dx −
j
N
X
i=1
j
1
v
j
Z
f(x)p(x) dx
D
j
Z
f(x)p(x) dx
D
j
!2!
=
!2!
6
1
D f(X ),
N
где в правой части неравенства стоит дисперсия оценки (4.3). Таким образом, если выбрать численности Njвида Nj= [vjN], то дисперсия оценки может уменьшиться.
4.5. Метод Монте-Карло в параллельных вычислениях
На примере вычисления определенного интеграла методом Мон­те-Карло уже можно продемонстрировать основные идеи, достоинства и трудности применения параллельных вычислений для методов Монте­Карло.
Будем предполагать, что имеются K вычислительных устройств (для краткости — ВУ), неважно — отдельных компьютеров, соединен­ных сетью, или в рамках одной многопроцессорной системы с общей памятью. Требуется найти приближенное значение интеграла (4.2) с за-
данной надежностью. Пусть j-е ВУ найдет оценку J
(j)
величины J по
N
N наблюдениям и передаст это значение выделенному управляющему ВУ. Тогда управляющее ВУ найдет результирующую оценку
K
X
J =
1
K
j=1
(j)
J
. (4.7)
N
87
Эта оценка обладает свойствами:
M J = J, D J =
K
1
(j)
D J
N
1
=
KN
D f(X ).
Разумеется, этот алгоритм эквивалентен вычислению оценки интеграла по KN случайным точкам последовательной программой.
Чтобы обсуждать трудоемкость данного параллельного алгорит­ма, необходимо рассмотреть как случай однородных, так и неоднород­ных вычислительных устройств. Для однородных ВУ среднее время вы­числения одного значения f (X ) одинаково для каждого из ВУ, поэтому
использование параллельного алгоритма для достижения оценки с за­данной надежностью уменьшает время моделирования в K раз.
Предположим теперь, что среднее время получения одного значе­ния f (X) на j-м ВУ есть tj. Тогда среднее время на получение оценки J есть среднее время работы самого медленного вычислительного устрой­ства, равное
T = max{t1N, t2N, . . . , tKN}.
Оказывается, это время можно уменьшить. Пусть j-е ВУ должно оце­нить J по своему числу Njпробных точек с помощью соотношения
(j)
J
=
N
j
N
j
i=1
f(X
(j) i
).
N
j
X
1
Тогда полное время работы алгоритма будет
T = max{t1N1, t2N2, . . . , tKNK}.
Оптимальным распределением фиксированного числа
N = N1+ N2+ .. . + N
K
пробных точек между K вычислительными устройствами, при котором величина T наименьшая, достигается, когда Njпропорционально tj, то есть
Nj= [Ntj(t1+ t2+ .. . + tK)−1].
Несмещенная оценка J имеет вид
K
X
J =
N
1
j=1
NjJ
(j) N
.
j
88
Для улучшения точности оценки можно сочетать параллельные вычисления с некоторыми рассмотренными в разделе 4.4 приемами. Рассмотрим метод выборки по группам в общем случае неоднород­ных вычислительных устройств. Если длительности вычисления одно­го значения f(X) зависят от имеющихся технических средств, то раз­биение области интегрирования на непересекающиеся части
D = D1∪ D2∪ . . . ∪ D
k
остается на усмотрение исследователя. Пусть k = K, то есть число под­областей равно числу ВУ, а мера соответствующей области пропорцио­нальна скорости работы ВУ:
vj=
Z
p(x) dx =
D
j
t1+ t2+ .. . + t
t
j
.
K
Пусть j-е вычислительное устройство оценивает J по
Nj= [vjN] = [N tj(t1+ t2+ .. . + tK)−1]
случайным точкам. Такое распределение работы между устройствами одновременно уменьшает дисперсию оценки интеграла и минимизирует время счета.
Часто приходится применять методы параллельных вычислений в условиях ограниченных временных пределов. Например, для расче­тов может использоваться локальная вычислительная сеть, доступная только в нерабочее время (ночью). Кроме того, существует ряд задач, в которых время генерирования одного значения величины X случай­но. Например, при генерации случайных величин методом исключения на получение одного значения требуется несколько испытаний. Также при имитационном моделировании сложных систем как правило инте­ресуются некоторыми характеристиками, наблюдаемыми при устано­вившемся функционировании системы. Поэтому перед непосредствен­ной оценкой интересующей величины X требуется ожидать окончания переходного процесса, который занимает случайное время.
Итак, пусть имеется K идентичных вычислительных устройств. Предположим, что каждому вычислительному устройству выделен вре­менной предел t, по достижении которого вычисления должны быть прекращены и накопленные результаты должны быть переданы для статистического анализа. На i-м устройстве генерируются последова­тельно случайные величины X
i,1
, X
, . . . , независимые и одинаково
i,2
89
распределенные с X — последовательность реализаций случайных ве­личин X на i-м устройстве. Генерирование величины X мени τ
. Предполагается, что пары
i,j
(X
, τ
i,j
), i = 1, 2, . . . , K, j = 1, 2, . . .
i,j
требует вре-
i,j
независимы и одинаково распределены. Величина
Si(n) = τ
i,1
+ τ
+ .. . + τ
i,2
i,n
задает время, затраченное i-м вычислительным устройством на генери­рование n реализаций случайной величины X . Наконец,
Ni(t) = sup{n > 0 : Si(n) 6 t}
означает число полученных за время t реализаций на i-м вычислитель­ном устройстве.
В сделанных предположениях для оценки среднего a = M(X) можно предлагать несколько «естественных» статистик. Если для оцен­ки величины a доступны все значения {X
; i = 1, 2, . . . , K, j =
i,j
= 1, 2, . . . , Ni(t)}, то в первую очередь представляет интерес оценка
Ni(t)
K
P
P
X
ˆa1(K, t) =
i=1
K
P
i=1
j=1
Ni(t)
i,j
. (4.8)
С другой стороны, i-е вычислительное устройство может сообщать толь­ко свою оценку среднего,
Ni(t)
X
¯
Xi(Ni(t)) =
1
Ni(t)
j=1
X
i,j
,
тогда интересна оценка
K
X
1
¯a(K, t) =
K
¯
Xi(Ni(t)). (4.9)
i=1
Из литературы [42, 43] известно следующие свойства оценок (4.8), (4.9):
90
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]