Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы Монте-Карло для параллельных вычислений. Учебное пособие
.pdf
называется вариацией функции 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
