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

книги из ГПНТБ / Соболь И.М. Численные методы Монте-Карло

.pdf
Скачиваний:
24
Добавлен:
24.10.2023
Размер:
9.56 Mб
Скачать

s ВВЕДЕНИЕ

методов Монте-Карло были известны значительно рань­ ше. Более того, фактически такие методы не раз исполь­ зовались для расчетов в математической статистике. Однако до появления электронных вычислительных ма­ шин (ЭВМ) методы Монте-Карло не могли стать уни­ версальными численными методами, ибо моделирование случайных величин вручную — весьма трудоемкий про­ цесс.

Развитию методов Монте-Карло способствовало бур­ ное развитие ЭВМ. Алгоритмы Монте-Карло (как пра­ вило, обладающие небольшой связностью) сравнитель­ но легко программируются и позволяют рассчитывать многие задачи, недоступные для классических числен­ ных методов. Так как совершенствование ЭВМ продол­ жается, есть все основания ожидать дальнейшего раз­ вития методов Монте-Карло и дальнейшего расширения области их применения.

0.2. Общий курс методов Монте-Карло. Важнейший прием построения методов Монте-Карло — сведение за­ дачи к расчету математических ожиданий. Более под­ робно: для того чтобы приближенно вычислить некото­ рую скалярную величину а, надо придумать такую слу­

чайную величину

что

М£= а; тогда,

вычислив

N

независимых значений £і,. . . ,

b,N вели­

чины I,

можно считать, что '

 

 

 

а « (lyW) (|i-f- ... +!,v).

 

П р и м е р .

Требуется оценить

объем

Ѵа

некоторой

ограниченной пространственной

фи­

гуры

G.

 

 

 

 

 

Выберем

параллелепипед

П,

содержа­

щий

G, объем

которого Ѵп известен

(рис.

1).

Выберем N случайных точен, равномерно рас­ пределенных в П, и обозначим через N' коли­

чество точек,

попавших в G. Если N велико,

то, очевидно,

N' : JV» Ѵа і Еп , откуда полу­

чаем оценку

Ve a V n (N4N).

 

В этом примере случайная величина £ равна Ѵп, если случайная

точка попадает в G, и | равна нулю, если точка попадает в ГГ — G. Нетрудно проверить, что математическое ожидание М |= У С, а сред­

нее арифметическое

(10 (ІХ+ ••• ^ l N) = Vn (N'/N).

ВВЕДЕНИЕ

9

Легко видеть, что существует бесконечно много слу­

чайных величии I таких, что М£= а.

Поэтому теория

методов Монте-Карло должна дать ответы на два воп­ роса:

1) как выбрать удобную величину | для расчета той или иной задачи?

2) как находить значения |і, | 2, • • • произвольной случайной величины |?

Изучение этих вопросов и должно составить основ­ ное содержание практического курса методов МонтеКарло.

Почти все методы, рассмотренные в настоящей кни­ ге, основаны на расчете математических ожиданий. За рамками книги остались упомянутые выше методы слу­ чайного поиска (кроме простейшего) и стохастических приближений.

Среди методов Монте-Карло можно выделить мето­ ды, в которых полностью воспроизводится модель рас­ считываемого процесса. Такие методы иногда называют «физическими», хотя автору представляется более удач­ ным другое название этих методов — имитационные. Имитация естественных процессов широко используется в самых различных областях науки, техники, экономики. Однако приемы имитации в каждой области свои, и под­ робно излагать их более целесообразно в специальных руководствах, а не в общем курсе методов Монте-Карло.

Нет оснований считать, что

имитация естественного

процесса —

это лучший способ для расчета

этого процесса; скорее

— наоборот.

В самом деле, при имитации вычисляется вся информация о течении процесса; однако в реальных задачах, как правило, не нужна вся информация о всех величинах; поэтому естественно ожидать, что су­ ществуют методы, в которых скорость расчета нужных величин по­ вышается благодаря отказу от информации о ненужных величинах.

Слово «численные» включено в заглавие книги, чтобы подчеркнуть, что здесь рассматриваются главным образом не имитационные методы.

ГЛАВА 1

ПОЛУЧЕНИЕ СЛУЧАЙНЫХ ВЕЛИЧИН НА ЭВМ

В алгоритмах Монте-Карло фигурируют значения случайных величин с различными законами распределе­ ния. Как будет доказано в гл. 2, для того чтобы вычис­ лять значения любых таких величин, достаточно уметь находить значения какой-нибудь одной случайной вели­ чины, ибо всегда.можно подобрать такую функцию от этой случайной величины, которая имеет требуемый закон распределения. Поэтому мы сначала рассмотрим вопрос о том, как получать на ЭВМ значения одной, «стандартной», случайной величины.

§1. Три способа получения случайных величин

1.1.Случайные числа и случайные цифры. Как пр вило, в качестве стандартной выбирают непрерывную случайную величину ч, равномерно распределенную в интервале (0,1). Напомним основные характеристики этой величины: при 0-<л:< 1 плотность рѵ(х) — 1, а функ­

ция распределения

Fv(x)= x;

математическое ожидание

M f = l / 2, дисперсия D'y= 1/ 12.

стандартной используют

Заметно реже

в качестве

дискретную случайную величину е, которая с одинако­

вой вероятностью может

принимать 10 значений 0, 1,

2, . . . , 9. Распределение е задается таблицей

( 0

I

2

. . .

9 \

(ОД

ОД

ОД

...

о,U

Мы будем называть величину у случайным числом, а величину е случайной цифрой. Иногда е называют де-

5 П

ТРИ СПОСОБА ПОЛУЧЕНИЯ СЛУЧАЙНЫХ ВЕЛИЧИН

сятичной случайной цифрой, чтобы отличить ее от дво­ ичной случайной цифры — величины а с распределением

1\

\0,5 0,5/

Чтобы установить связь между у и &, разложим чис­ ло у в бесконечную десятичную дробь:

У — 0, еіе2... е*...

(1)!

Последняя запись означает, что

 

го

 

У = 2 р/і • 1 о - * .

 

k = і

 

Т е о р е м а 1. Десятичные цифры е......... .«>

слу­

чайного числа у представляют собой независимые слу­

чайные цифры. Обратно,

если, е

і

, гк, . . . — независи­

мые случайные цифры, то формула

(1) определяет слу­

чайное число.

 

 

 

 

Если величина у равномерно

Д о к а з а т е л ь с т в о .

 

распределена

в

(0,

I),

то eh— i тогда и только тогда,

когда

 

 

 

 

 

 

 

 

0, Bj ... efc_ii <

у <

0.

Cj ... Gft_iі -ф 0, 0 ^

Д)1, (2)]

 

 

 

 

 

 

 

it

 

причем ei, . . . ,

Et- 1 в (2)

могут принимать любые зна--

чения 0, 1, . . . .

9.

Так как длина каждого из интервалов

(2) равна 10- '1 и

интервалы эти

попарно не

пересека­

ются, то

 

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

Р{ей = г} =

 

2

 

І0_* =

10*-1 - 10_ft=

0.1;

 

*1.... EÄ-I=°

 

 

 

сумма берется по всем интервалам, так что еі........ е,,_г независимо пробегают значения 0, 1, . . . , 9.

Пусть теперь ls^sC/e. Рассмотрим вероятность од­ новременного выполнения равенств Р {гк= і, е,= j}.' Очевидно, оба эти равенства будут выполнены тогда и

только тогда, когда выполнено

неравенство (2),

и в то

же время es= /‘. Следовательно,

 

 

 

9

 

 

р {8fc= t, е, = /} =

2

10-" =

0,01.

е»,*• -. ps - l . £S + I .......

12

ПОЛУЧЕНИЕ СЛУЧАЙНЫХ ВЕЛИЧИННЛ ЭВМ

(ГЛ. г

Точно так же Р{е*, = г‘і, . . . . e ^ = гя} = 10~3 и, таким об­ разом,

Р {Eft, = іи ... , ffcs = is} = p (е/г, = h) .. • P {e*s = 's}.

а это означает независимость е/,„ . . e*s.

Перейдем к доказательству обратного утверждения. Произвольное число х из интервала (0, 1) запишем в форме бесконечной десятичной дроби

 

 

х= 0, аI

а2... И/,...

 

 

(3)

Если у< х, то в разложении

(1)

либо еі<О ь

либо г\ —

— ü\ И б2< 02, либо Еі = аі, 82=

Й2 и

е з < а 3,

и т. д. По­

этому

оо

 

 

 

 

 

 

Р [Y < х} =

 

 

 

 

 

 

2

Р (El = Оа, .... Eft—1=

Oft-Ь Eft < Oft}.

 

ft=l

 

 

 

 

 

 

Так как по условию теоремы все еі........

 

г,, независимы,

то

 

 

 

 

 

 

 

CD

 

 

 

 

 

 

 

Р { ѵ < * } = 2

Р{Еі = йі} ... Р{е,;_,

=

flft_1}P{6fc<flft}.

fc=i

 

 

 

 

 

 

Легко видеть,

что

P{ef,<o,1} = o/i- І0_І,

ибо значениями

ек в этом случае могут быть

0,

1.........о*—1. Значит,

P { Y < * } = È о*К Г '-К Г '" -1’ = 2- о,, I0_fc = *,

 

/г=1

 

 

ft-i

 

IIтеорема доказана.

1.2.О приближенных случайных числах. В вычисл

ниях всегда используют числа с конечным количеством десятичных знаков, поэтому вместо случайных чисел у

употребляют конечные десятичные дроби у — 0, ві ... е„. Никаких специальных исследований по этому поводу мы проводить не будем: мы считаем, что здесь имеет место ошибка округления такая же, как при любых приближенных вычислениях.

Отметим одно простое свойство чисел у. которое теряется при таком приближении *).

*) В книге использованы следующие обозначения: Ц(х) — целая

часть числа х (т. е. наибольшее целое число, не превосходящее .г), Д (х) — дробная часть числа х (т. е. Д ( х ) = х Ц[х)).

§ :]

TPM СПОСОБА ПОЛУЧЕНИЯ СЛУЧАЙНЫХ ВЕЛИЧИН

I п

ІО

Т е о р е м а

2.

Пусть

g произвольное целое

положительное

число.

Случайная

 

величина

г )= Д (£ у )

равномерно

распределена

в

интервале (О, 1).

 

 

х принадлежи г интервалу (0, 1),

 

 

 

В самом

деле,

если

то

вероят­

ность

 

 

е- 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Р (і) < .ѵ) =

V р [/г < g y < /г + х ] =

 

 

 

 

 

 

 

 

/;=О

 

ё—1

 

 

 

ff—1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

2

Р (/г£ ~ ' =5 У < Ф + х) g “ 1) =

^

xg~' =

х,

 

 

 

 

 

/г=0

 

 

 

 

ft=0

 

 

 

что и требовалось доказать.

 

 

 

 

 

 

 

Ясно,

что приближенная

случайная

величина у — 0. Бі

• ..

е„

не

обладает

таким

свойством,

так

как

при g = p V ',

где

р — целое,

Д(*Ѵ)=0.

 

 

 

 

 

 

 

 

,

 

 

 

Иногда вычислители пытаются использовать цифры ................

числа

удля

одной

цели, а цифры

е ^ і , . . . , е л— для

другой.

Теоре­

тически такой прием вполне обоснован: из теоремы 1 вытекает, что

одно случайное число у эквивалентно бесконечной последовательно­ сти случайных величин у:

0 , Бі V 0 , 8П+1 .. . 82я, 0 , е2)1_|_[ . . . 83п, . . .

Тем не менее его не всегда можно рекомендовать па практике: как мы увидим ниже, «качество» случайных чисел, используемых в расче­ тах, проверяется с помощью специальных тестов; н нередко главные разряды — еі, е2, е3 чисел у оказываются гораздо лучше проверенны­

ми, чем более далекие разряды.

1.3.

Таблицы случайных цифр. Предположим, что м

осуществили N независимых опытов, в результате кото­

рых

получили /V случайных цифр еі,

eN. Записав

эти

цифры (в порядке появления) в таблицу, получим

то,

что

называется таблицей

случайных

цифр

(см.

стр.

295,

где цифры объединены

в группы

только

ради

удобства чтения).

Способ употребления такой таблицы весьма прост. Если в ходе расчета некоторой задачи нам потребуется случайная цифра е, то мы можем взять любую цифру е3 из этой таблицы. Если нам понадобится случайное

число

у, то

мы

можем

 

взять из таблицы п очередных

цифр и считать,

что 7 = 0,

es е„+і ... es+n_i. Выбирать циф­

ры из

такой

таблицы

в

случайном порядке не обяза­

тельно. Их можно выбирать подряд. Но, конечно, мож­ но начинать с любого места, читать в любом направле­ нии, использовать любой заранее заданный алгоритм

14

ПОЛУЧЕНИЕ СЛУЧАЙНЫХ ВЕЛИЧИН НА ЭВМ

(ГЛ. 1

выбора,

не зависящий от конкретных значении

цифр

таблицы *).

Все сказанное выше относится к «идеальной» табли­ це случайных цифр и не вызывает никаких сомнении. Мы не будем подробно останавливаться на трудностях, возникающих при переходе к «реальным» таблицам, но отметим некоторые из них.

Во-первых, изготовление хорошей таблицы — весьма сложное дело, ибо в любом реальном опыте всегда воз­ можны ошибки. Например, для изготовления таблицы [166], содержащей миллион случайных цифр, была по­ строена и тщательно отлажена специальная «рулетка» (с использованием электроники). Тем не менее после некоторого периода хорошей работы она стала выда­ вать, как показала проверка, не равновероятные цифры. Таким образом, проверка «качества» таблицы абсолют­ но необходима. Никакие априорные соображения о тща­ тельности постановки опыта не гарантируют пас от ошибок.

Тесты для проверки таблиц случайных цифр рас­ смотрены ниже в § 3. Здесь только поясним, что прове­ ряется частота каждой из десяти цифр, частота различ­ ных соседних пар и т. п.

Вторая трудность связана с «незаконностью» много­ кратного использования одной н той же таблицы. Вы­ числителей этот вопрос не очень беспокоит, так как интуитивно ясно, что таблицу можно повторно исполь­ зовать при решении независимых задач (впрочем, что такое «независимые» задачи — не очень ясно). Возмож­ ность использования одних и тех же случайных величии

для

решения

целых

классов задач доказана

ниже в

гл. 3, § 4.

 

 

 

в боль­

Наконец, отметим еще известный парадокс:

шой

таблице

найдутся плохие

участки. (Например, в

таблице, содержащей

ІО100 цифр,

вполне вероятно найти

*) Таблицы случайных цифр очень удобны для' осуществления случайной выборки. Пусть, например, требуется из 55 предметов ото­ брать случайно 6 предметов. Занумеруем исходное множество пред­

метов и воспользуемся таблицей со стр. 295. Рассмотрим пары цифр из таблицы: 86, 51, 59, 07, 95, 66, 15, 56, 64, ... и отберем предметы с но­

мерами, оказавшимися в этой последовательности: 51, 07, 15, 34, 23, 32.

§ п

ТРИ СПОСОБА ПОЛУЧЕНИЯ СЛУЧАЙНЫХ ВЕЛИЧИН

15

100 нулей подряд.) Очевидно, самостоятельное исполь­ зование таких участков недопустимо.

В настоящее время таблицы случайных цифр (или более разнообразные таблицы случайных величин) ис­ пользуют главным образом при расчетах вручную; для расчетов на ЭВМ ими практически не пользуются. Ос­ новная причина этого— чисто техническая: внутренний накопитель всех современных ЭВМ сравнительно мал п большая таблица туда не помещается; а обращение к внешним запоминающим устройствам сильно замедляет счет. Вторая причина — ограниченность объема сущест­ вующих таблиц,— по-видимому, играет второстепенную роль: можно заготовить таблицу любого объема, если это потребуется.

1.4. Датчики случайных чисел. Генераторами ил датчиками случайных величин называют различные тех­ нические устройства, вырабатывающие случайные вели­ чины. Чаще всего для построения датчика используют «шумящие» радиоэлектронные приборы (диоды, тира­ троны, газотроны и др.). Не вдаваясь в технические подробности, рассмотрим одни из возможных способов построения датчика, вырабатывающего случайные дво­ ичные цифры а.

Нетрудно представить себе счетчик, который подсчи­ тывает количество V флуктуаций напряжения шумящего

прибора, превышающих заданный уровень Е0 за фикси­ рованное время AI (рис. 2). Еще проще устроить счет­ чик, который выдавал бы число v (mod 2), т. е. 0 при четном V и 1 при нечетном ѵ. Если вероятности появле­ ния 0 и 1 в таком процессе равны между собой, то мож­ но считать, что устройство вырабатывает случайную по­ следовательность двоичных цифр.

16 ПОЛУЧЕНИЕ СЛУЧАЙНЫХ ВЕЛИЧИН НА ЭВМ [ГЛ. I

Если вероятность появления нуля отлична от поло­ вины Р{0} =//=И=0,5, то можно ввести какую-нибудь схе­ му стабилизации вероятности. Например, можно груп­ пировать цифры парами и выдавать 0 при получении

пары 01 и

1— при получении пары 10, а пары

00 и

11

просто опускать. Так как Р {01} = Р{ 10} р(1р), то

в

результате

получим последовательность нулей и

единиц

с равными вероятностями *).

Обычно датчики случайных чисел содержат т гене­ раторов описанного типа, работающих независимо, так

что датчиком

выдается приближенное случайное

число

'у = 0, он ... сг„„

записанное в форме /«-разрядной

двоич­

ной дроби. Для случайных чисел отведена специальная ячейка в накопителе, и скорость генерирования их столь велика, что па каждом такте работы ЭВМ в этой ячей­ ке получается повое случайное число.

Применение датчиков случайных чисел свободно от тех недостатков, которые препятствуют широкому при­ менению таблиц: не требуется места во внутреннем на­ копителе и запас чисел практически неограничен. Тем не менее подавляющее большинство задач, решенных методом Монте-Карло, сосчитано без применения дат­ чиков. Ибо датчики имеют свои, новые недостатки. Вопервых, числа, выработанные датчиком, нельзя воспро­ извести. Это затрудняет контроль расчетов п делает невозможным счет на таких ЭВМ, на которых двойной пересчет является правилом**). Во-вторых, приходится содержать и эксплуатировать дополнительное устройст­ во, которое требует ухода и регулярной проверки «ка­ чества» вырабатываемых чисел с помощью специальных тестов.

Основные области применения датчиков — системы автоматического регулирования и аналоговые вычисли­ тельные машины, а не методы Монте-Карло.

1.5. Метод псевдослучайных чисел. Мы видели, чт пригодность случайных чисел определяется в конечном счете не процессом их получения, а тем, удовлетворяют

*) К сожалению возможен также случай, когда вероятность р

меняется во времени или зависит от предшествующих цифр, и тогда простые схемы стабилизации ие спасают положения.

**) Можно, конечно, запомнить все выработанные числа, но тог­ да мы фактически будем использовать таблицу.

§ I] ТРИ СПОСОБА ПОЛУЧЕНИЯ СЛУЧАЙНЫХ ВЕЛИЧИН 17

ли они некоторым принятым тестам. Но в таком случае совершенно безразлично, как эти числа получены, они могут быть даже сосчитаны по какой-нибудь формуле, лишь бы они удовлетворяли тестам!

Такая точка зрения иногда вызывает возражения, ибо, вычисляя числа по формуле, мы тем самым сразу отказываемся от их «случайности». Любопытно, что та­ кого рода возражения чаще высказывают нематематпкп, хотя, казалось бы, математики должны более реши­ тельно протестовать против нестрогости. Дело в том, что математики лучше понимают, что слово «случай­ ность», взятое выше в кавычки, использовано там не в математическом, а скорее в обыденном смысле. С точки зрения математика равномерно распределенная случай­ ная величина 7 — это абстрактное понятие; и только опыт может убедить нас в том, что какая-либо конкрет­ ная последовательность чисел 71, 72, . . . , 7.ѵ обладает интересующими нас свойствами независимых случайных чисел 7.

Числа 7і, 72, . . . , 7,ѵ, которые вычисляются по какой- I либо заданной формуле и могут быть использованы [ вместо случайных чисел при решении некоторых задач, >

называются псевдослучайными числами.

Нередко считают, что тесты, приведенные ниже в § 3, обеспечи­ вают возможность использования проверенных случайных или псев­ дослучайных чисел в любых задачах. Это излишний оптимизм. В действительности каждый тест связан с каким-то достаточно широ­ ким, но ограниченным классом задач (см. гл. 7, § 4), и правильнее было бы говорить о таблицах, датчиках или псевдослучайных числах для определенных классов задач*).

Конкретная последовательность псевдослучайных чи­ сел сходна с таблицей случайных чисел: ее можно одни раз тщательно проверить и затем многократно приме­ нять; все числа легко воспроизводятся; и запас чисел в такой последовательности, как мы увидим позднее, тоже ограничен.^Однако метод псевдослучайных чисел свободен от главного недостатка таблиц: существуют простые формулы для расчета псевдослучайных, чисел,

*) Любой реальный объект лишь приближенно описывается ма­ тематическим понятием, и всегда можно указать задачи, в которых данная математическая модель непригодна. Например, как бы акку­ ратно пн была начерчена прямая, при достаточно большом увеличе­ нии она превратится в волнистую или даже прерывную линию.

2 И. М. Соболь

____

Соседние файлы в папке книги из ГПНТБ