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

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

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

18 ПОЛУЧЕНИЕ СЛУЧАЙНЫХ ВЕЛИЧИН НА ЭВМ - [ГЛ. ,[

такие, что на получение каждого числа затрачивается всего 3—5 команд ЭВМ, а программа расчета занимает в накопителе лишь несколько ячеек.

Подавляющее большинство расчетов методами Мон­ те-Карло выполнено с помощью псевдослучайных чисел.

1.6. Сравнение трех способов с практической точк зрения. Попутно с изложением методов получения слу­ чайных величии мы рассмотрели некоторые пх достоин­ ства II недостатки. Остановимся еще на вопросе о быст­ роте выработки случайных величин.

При решении на ЭВМ большинства задач на полу­ чение псевдослучайных чисел затрачивается гораздо меньше времени, чем на расчет самих задач. В самом деле, практика показывает, что в настоящее время ко­ личество псевдослучайных чисел, используемых при ре­ шении отдельных задач, как правило*), имеет порядок ІО4—ІО5 II редко .достигает ІО6—ІО7. Если на выработку каждого числа затрачивать 5 оперцапй, то на получение всех чисел уйдет не более 5- ІО7 операций. На современ­ ных ЭВМ, скорость которых равна 5- ІО5 операций в се­ кунду, это составит не более 100 секунд.

Используя датчики, можно организовать «сверхбы­ струю» выработку случайных чисел, так как, присоеди­ нив к ЭВМ Іг датчиков, мы будем за один такт работы ЭВМ получать k случайных чисел. Однако' выигрыш времени при расчете сложной задачи в указанных выше условиях окажется меньше двух минут. Так что, исходя

из

интересов методов Монте-Карло, не стоит гнаться

за

«сверхбыстрой» выработкой случайных величин*).

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

В табл. 1 перечислены достоинства и недостатки трех методов по шести признакам. Подчеркнем, что речь идет только об «эксплуатационных» особенностях, а не о «качестве» вырабатываемых чисел, которое должно проверяться во всех трех методах.

*) Исключенію составляют такие задачи, в которых огромные массивы случайных чисел подвергаются очень простой обработке. Но такие задачи выгоднее решать на специализированных машинах, а не на универсальных ЭВМ. К тому же, вероятно, для большинства таких задач можно придумать лучшие способы решения..,

§ зі

п с е в д о с л у ч а й н ы е ч и с л а

10

Из таблицы видно, что метод псевдослучайных чи­ сел— самый удобный с практической точки зрения. Это подтверждается также всей практикой расчетов метода­ ми Монте-Карло.

 

 

 

 

 

 

 

 

Таблица

1

М етод

 

Д о с т о и н с т в а

 

 

 

Н е д о ст атк и

 

 

 

Проверка

однократная.

 

Запас

чисел

ограничен.

 

Воспроизводить

числа

Занимает

много

места

в

таблиц

МОЖНО

 

 

 

накопителе

или мед­

 

 

 

 

 

 

ленно вводится.

 

 

 

 

 

 

 

Нужна

внешняя

память

датчиков

Запас

чисел неограничен.

Проверка

периодическая.

 

Сверхбыстрое получение.

Воспроизводить

 

числа

 

Места

в

накопителе

не

нельзя.

 

 

 

 

занимает

 

 

Требуется

специальное

 

 

 

 

 

 

устройство

 

 

 

псевдослучай­ Проверка однократная.

 

Запас чисел ограничен

 

ных чисел

Воспроизводить

числа

 

 

 

 

 

 

 

можно.

 

 

 

 

 

 

 

 

 

Быстрое получение.

 

 

 

 

 

 

 

 

Места в накопителе за­

 

 

 

 

 

 

 

нимает мало.

 

 

 

 

 

 

 

 

 

Внешние

устройства

не

 

 

 

 

 

 

 

нужны

 

 

 

 

 

 

 

 

 

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

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

б) не стоит расходовать рабочее время большой ЭВМ, когда можно использовать время небольшой при­ ставки;

в) а все-таки числа, вырабатываемые датчиком, «слу­ чайные», а псевдослучайные числа — нет...

§ 2. Псевдослучайные числа

Общей теории псевдослучайных чисел в настоящее время нет. О возможных путях построения такой тео­ рии разговор пойдет в гл. 7. Здесь мы ограничимся из­ ложением некоторых фактов, главным образом эмпири­ ческого характера.

2*

20

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

ІГЛ I

2.1. Алгоритмы вида уп+і —Ф(4«)- Большинство а горитмов, используемых па практике для получения псевдослучайных чисел, представляют собой рекуррент­ ные формулы первого порядка

7„+ і = Ф ( 7 „ ) ,

(4)'

где начальное число "рі задано. Легко показать, что функция у = ф (,ѵ), изображенная на рис. 3, не может

ц=Д(Щ

1 X

Рис 1.

породить хорошую последовательность псевдослучайных чисел Чь 4г> • • • В самом деле, если по настоящим слу­ чайным числам построить точки с координатами (41, 42), (4з, 44) , . . - , то они равномерно распределены-в единич­ ном квадрате 0 О '< 1 , 0 < //< 1 , в то время как соот­ ветствующие точки, построенные по числам (4),

(4ь Ф (41)), (4з. Ф(4з))> (45, Ф(45)),

располагаются на кривой у = ф(х).

Следовательно, «хорошую» последовательность мо­ жет породить только такая функция г/=Ф(л:), график которой весьма плотно заполняет единичный квадрат. Примером такой функции может служить функция у — = Д (цх) при очень больших g (рис. 4). И действитель­ но, эта функция послужила основой для ряда методов получения псевдослучайных чисел.

Конечно, приведенное

условие только необходимо,

по далеко не достаточно для того, чтобы формула

(4)

порождала «хорошие» псевдослучайные числа.

что

Другая важная черта

алгоритмов вида (4) — то,

при реализации их на ЭВМ они всегда порождают

пе-

§ 21

п с е в д о с л у ч а й н ы е ч и с л а

21

рнодичеекие последовательности. В самом деле,

так как

в коде любой ЭВМ можно записать лишь конечное чис­ ло /V чисел, заключенных между нулем и единицей, то

рано или

поздно какое-нибудь

значение

совпадает

с одним из предыдущих

значений у,. Тогда в силу

(4)

 

^+ і= Т м-і

при

і= 1, 2, . . .

 

(5)

Пусть

L — наименьшее число,

удовлетворяющее

(5)

при некотором I

множество чисел "fo, Чь • • •,

Чь-і

 

L

 

 

 

 

 

 

0 12

 

I N

 

L-11 ІИ

 

 

1 I I

I I L 1 I I— I

1 I I

I

I

I I I I I I

I

 

 

 

Рис.

5.

 

 

 

 

называется отрезком апериодичности последовательно­

сти (4), число L длиной

отрезка апериодичности, а

P = L I длиной периода

(рис. 5).

Очевидно, в рассматриваемом случае отрезок апери­ одичности состоит из различных чисел. И обычно для расчета не рекомендуют использовать больше чем L чисел последовательности (4)*). Ясно также, что L ^ N .

Для экспериментального определения L и Р можно рекомендо­ вать следующий алгоритм. Выбирается целое число Т (в несколько раз меньшее, чем предполагаемое значение L). Вычисляются подряд

числа уо, Уі. У2,

причем уо, Yj-, У27-,

запоминаются,

и все у ;

из отрезка рТ< і ^ (р + 1)Г сравниваются со всеми уо, У7-,

• . . ,

урТ■Как

только

окажется

выполненным равенство

у,- = уІпГ,

вычисляется

длина

периода Р = і 0—пгТ и число t — i0—pT.

 

 

 

Чтобы вычислить L, по числу У(р_ [)Г'вычисляется У(р_ [)7-_|_(і

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

тельности значений:у(р_ І)7-+ /

и y (m_ , )r_ (+/ при / =

/, / +

1, t-\-2, . . .

Не позднее чем при / = / + Г

произойдет совпадение

этих

значений.

Если совпадение произойдет при /= /о , то L = ( p —l)T+jo.

 

2.2. Некоторые конкретные алгоритмы.

”2.2.1. Первый алгоритм для получения псевдослучай­ ных чисел был предложен Дж. Нейманом. Его называют

*) Впрочем, использование L-\-P чисел, как правило, ни к каким

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

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

методом середины квадрата (middle-square method).

В этом

метоле число уп предполагается 2/г-зиачным:

 

Ч„= 0, ах а2... a2h.

Чтобы

получить число 7„+ь надо

возвести в квадрат

 

УІ = 0, b Jh . . .

bik

и затем отобрать средние 2k цифр этого квадрата:

Т'1+1 = 0> £**+1 ^ft+2 ••• b2h.

Нетрудно проверить, что этому методу соответствует функция

Ф (х) = Д [ \0 -2к Ц {\О3'1-V2) ]

пли, что то же,

ф (je) = 10-2ft Z/ [ 102АДНО**2)].

Однако от метода середины квадрата вычислители отказались, так как в последовательностях, построенных таким образом, получается больше, чем нужно, малых чисел (см. ниже упражнение 4 гл. 1). Интересно, что при некоторых уо наблюдается вырождение последова­

тельности, т. е. Чп=0

при п ^ п 0.

 

Наибольшее распространение получил алго­

ритм, предложенный

Д. Л е м е р о м, который

называ­

ют методом вычетов

(residual method) или’

методом

сравнений (congruential method). В этом методе ф(л-) =

= Д(8х), т. е.

 

"fn+i=д(£Чн),

(6):

где g — большое целое число.

Докажем, что если задать ц0 в форме несократимой дроби ч0= т 0ІМ, где пг0 и М целые числа, и М взаим­ но просто с g, то все цп будут несократимыми дробями

вида уп=пг„/М, где числители тп определяются

фор­

мулой

 

mn+] = g m n(mod М ).

" (?)

Запись (7) означает, что тп+1 равно остатку, получен­ ному при делении gni„ на М (или, другими словами, mn+, — это наименьший положительный вычет gmn по модулю М).

§ 21

п с е в д о с л у ч а й н ы е ч и с л а

23

 

Д о к а з а т е л ь с т в о (по индукции).

Пусть

у п — т,і/М— не­

сократимая дробь. Тогда gy,j =gmn/M. Из (7)

следует, что£/пп= / 7И +

+"Ѵ |-1> где г — целое число. Легко видеть, что rnn_^_l взаимно просто

с М. В самом деле,

если

допустить,

что у /лп+1 и М есть

общин

множитель — простое

число

/і , т о gmn

должно делиться иа

/г; но g

делиться на /і ие может, так как g взаимно просто с М; поэтому

должно делиться на /г число тп,

а это противоречит предположению

о том, что тп/М несократимая

дробь. Итак,

взаимно просто

с М и

 

 

Т „+і = Л (g m J M ) = Д (г + тп+1/М) =

т „ +1 /М.

На практике обычно используют формулу (7). Изу­ чению последовательностей тп посвящено много работ. Методами теории чисел удалось исследовать длину от­ резка апериодичности (см. упражнение 5 гл. 1) и оце­ нить некоторые величины, аналогичные коэффициентам корреляции между у и р —Ф(ч), между у и р = Ф (ф (^)) и т. п. Однако вопрос о пригодности таких псевдослу­ чайных чисел в конечном счете решается обычными ста­ тистическими тестами § 3, т. е. эмпирически. При неко­ торых (g, М, іщ) получаются удовлетворительные после­ довательности, при других — плохие. (См. также гл. 7,

п. 3.3.)

Удовлетворительная последовательность псевдослу­ чайных чисел получается, например, при g '= 5 17, A ]=242,

/?г0= 1 (L = P = 240) ; результаты

статистической

провер­

ки этих чисел приведены в [171].

 

 

Обширная литература, посвященная

методу сравнений,

имеется

в [69, 139, 140]. Ряд статен с указанием недостатков метода пере­ числен в [180].

2.2.3. В качестве примера нелинейного алгоритма использующего некоторые особенности системы команд ЭВМ, рассмотрим алгоритм, предложенный автором книги для ЭВМ «Стрела». В этом алгоритме число получается из числа тремя командами:

1) число умножается на большую константу g ;

2)изображение произведения gyn в ячейке ЭВМ сдвигается на 7 разрядов влево;

3)вычисляется абсолютная величина полученного числа, которая и есть чп+і (при вычислении абсолютной величины число нормализуется).

2-1

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

[ГЛ. I

Удовлетворительная последовательность псевдослу­ чайных чисел получается, например, при §■= ІО17 и 70= 1 (L = 87 835, Р —53 535); результаты статистической про­ верки этих чисел приведены в [75].

Чтобы пояснить этот алгоритм, необходимо указать, что в ЭВМ «Стрела» числа представляются в нормализованной двоичной форме

-v= sgn х-т-2р, где р = 1+ Д (log2|.r |) — порядок числа, а т — ман­

тисса (0,5=sSm <l). Ячейка ЭВМ, в которую записывается число .ѵ,

\o\i\z\j\'i\

I I I 1 I

Г \зз\зШМз7\,>з\МооУ)1\о$\

I '-------------------------------

 

Мтщшст

 

----

' к '-------

*-------

'

J

 

 

 

\

ИиряНвк

 

'!Щ

 

 

 

 

Зная

 

 

штат

 

 

 

 

норяЗна

 

 

 

 

Рпс. В.

 

 

 

 

состоит из 43 двоичных разрядов

(рпс. 6). В /-м разряде записана

величина е которая

может равняться нулю пли единице,

и

 

35

 

 

5

 

 

 

ш =

Ѵ

И

-

2

еі 2 - і - 1'

 

 

 

 

 

 

 

м

 

 

І= 0

 

 

 

Sgll

-V =

( - 1 ) ' ° ,

Sgll

p =

( — 1)'"“

 

 

(в двоичной записи

ІП— 0, в\ Д2 . ..Сз5, I РI = 6з7 <?38■• • етз).

Если произведению gyn соответствует ячейка [0, йі е2 . . . е42], то пос­

ле операции сдвига получаем [ві е8 . . . е420 0 0 00 0 0]. Абсолютная величина этого числа в двоичной записи равна у„+ | = 0, е8 е9. . . е42.

Нетрудно проверить, что в случае, когда размещение мантис­ сы in и порядка р в ячейке ЭВМ другое, то же число У„_рі можно

получить из gy,j с помощью двух пли трех сдвигов и поразрядного

сложения результатов этих сдвигов.

2.2.4. Для получения псевдослучайных чисел на различных ЭВМ

используют весьма разнообразные алгоритмы, подобные изложенно­ му в п. 2.2.3, которые иногда называют способами перемешивания.

Сведения о них имеются в [19, 69]. К сожалению, описание алго­ ритмов далеко не всегда сопровождается указанием количества про­ веренных чисел и тестов, которым эти числа удовлетворяют, или хо­ тя бы указанием работ, в которых имеются данные о таких про­ верках.

Например, некоторое распространение получил трехкомандный алгоритм, разработанный Д. И. Голенко для той же ЭВМ «Стрела». Однако позднее сам автор алгоритма обнаружил ([19], стр. 117), что получаемые этим методом числа плохо удовлетворяют одному из важнейших тестов — проверке пар.

ПСЕВДОСЛУЧАЙНЫЕ ЧИСЛА

25

2.2.5. Из других алгоритмов вида (4) отметим попытки «улуч­ шения» метода вычетов (6) путем рассмотрения функций вида

Ф(.Ѵ) = Д(р+£|А-)

нлп

где р — заданное дробное число

не получили.

L

Заметного распространения эти методы

f

2.3. Оценка L для алгоритмов

вида уп+,= ф(уп).

'Для оценки длины отрезка апериодичности, характерно­ го для последовательностей вида (4), можно воспользо­ ваться следующей элементарной вероятностной моделью. Пусть имеется конечное множество, содержащее N раз­ личных чисел. Произведем последовательность незави­ симых опытов, в каждом из которых из этого множеств ва извлекается и записывается одно число. Вероятность

извлечения каждого числа

в каждом из опытов равна

1 /N (выборка с возвратом).

Обозначим через L случай­

ную величину: номер опыта, в котором впервые будет

извлечено уже записанное число.

 

 

 

 

Т е о р е м а

3. В указанной модели для любого я>»0

 

lim Р {Ы У N < X) =

1 - е~х'~‘2,

(8 )

 

Д'-ѵоо

 

 

 

 

 

 

 

 

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

Обозначим записанные числа через уо, Ѵі.

Y2, ••• Легко вычислить вероятноть того, что L окажется равным п,

где

l=sOi^/V:

 

 

 

 

 

 

 

 

 

 

 

д; _

1

уѵ — 2

 

/V — (п

1

п

 

Р { / . =

«} =

 

 

 

 

)

 

N

'

/V

 

N

'N >

 

 

 

 

так

как

 

 

 

 

 

 

 

 

 

P(Y.^Yo} = (/V-l)W

 

 

 

 

 

 

 

р (Y2# Y o, Ys^ Y i IYi ^ Y o} =

(/V —

2)/;V,

 

 

 

 

 

 

 

 

 

 

_

Л? — (л — 1)

 

 

 

 

 

 

 

 

 

N

а вероятность того, что уп совпадет

с

одним из

различных чисел

Yoi

Yi. . . . . Yn-Щі Равна niN-

 

 

 

 

 

2fi

 

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

[ГЛ. t

 

Фиксируем

произвольное я >

0,

и пусть k = U ,(x Y (Ѵ). Тогда

 

9{КхУ Щ =

 

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

=

v p

(L =

/[}

 

 

 

 

 

 

 

 

 

n — I\

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

N '

 

 

n—1

 

 

 

 

 

1 1 = 1

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

In

Ы - ( -

n 1

= 2> M -

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1=1

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

л — 1 . .

 

 

 

 

 

 

 

n (n — П

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~

2

(

r

 

+

*

 

+

~ i

-

 

2iV

 

 

 

 

 

 

 

i = i

-

 

 

 

 

 

 

 

 

 

 

 

 

Так как п ^!г = 0\У /V), то /?/,Ѵ =

0 (1]/ /V); поэтому

 

 

 

 

ln к-/V

 

 

 

 

п -

 

1W

П°-

/ 1

\

 

 

 

•••

 

 

/V

 

| -- 2/ Ѵ + ° ( т ^ ) -

 

и интересующую нас вероятность можно записать в форме

 

 

 

Р {L < X ]0 ѵ } =

 

к

——

 

 

 

 

 

 

 

 

V

е

2,V W N) [ I

+

О (1 //3 7 )] .

(9)

 

 

 

 

 

 

11=1

 

 

 

 

 

 

 

 

 

 

Рассмотрим

теперь

разбиение

интервала

0 < / < х

точками

t

= н/ууѵ,

где п = 1 ,

2,

. . . ,

к (рис. 7),

и составим интегральную сум-

му для функции іе

 

' по этому разбиению:

 

 

 

 

 

 

І

^

 

Ч

('„ -

{п -|) +

 

 

Y - <*)•

 

 

 

 

л=І

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Из

неравенства х}' N — 1 C/esgr.v |

 

Л'

видно,

что //. = k l Y N -*■ х

при

 

 

 

 

,

 

f;

 

\2

,

 

lY>

ft.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

t

 

 

 

 

 

 

 

 

 

 

 

Рис.

7.

 

 

 

 

 

 

/V -> оо. Поэтому последнее

 

слагаемое в этой

сумме стремится

при

Л'

то к нулю,

и

 

 

 

Ч,

 

 

 

 

 

 

 

 

lim

 

 

П

 

 

 

 

 

 

 

 

 

 

 

2

р—iTJ/2,V Л _

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

j /г 1’12/сі1 = 1—1? А''/2*

 

 

 

 

 

 

 

 

 

 

 

 

 

о

 

 

 

 

Отсюда и из соотношения (9) следует (8)„ Теорема доказана.

§ 2]

ПСЕВДОСЛУЧАЙНЫЕ ЧИСЛА

27

С л е д с т в и е .

Так как математическое

ожидание

неотрицательной случайной величины с функцией рас­

пределения 1 — е_ л равно У я/2. то из

(8) следует, что

при N —■>00

 

М £~ іЛ л/2) N.

( 10)

Рассмотренная в настоящем пункте модель предложена в статье [75], там же получена формула (10), а теорема 3 доказана Л. Н. Большевым и Д. И. Голенко. Несмотря на грубость модели, оценки (8) и ( 10) оказались полезными во многих опытах, связанных

со способами «перемешивания», когда теоретико-числовая оценка периода практически невозможна. В качестве N выбирается количе­

ство возможных значений функции Ф(х) в конкретной ЭВМ; тогда можно ожидать, что длина отрезка апериодичности окажется поряд­

ка Y (зх/2) N.

Например, в методе п. 2.2.3 на ЭВМ «Стрела» значение функции Ф(.т) (до нормализации) записывается в форме 0, е8, е0 . . . е 42 значит, N — 235 и Б ~ 2 ,3 -І 0 5. На практике для ряда подобных алгоритмов

были экспериментально обнаружены отрезки апериодичности длиной от 0,8-ІО5 до 3,5 -ІО5.

З а м е ч а н и е . В книге [19] параграф, содержащий теорему 3, называется «Критерий проверки периодичности последовательности псевдослучайных чисел». Однако по этому «критерию» судить о ка­ честве псевдослучайных чисел нельзя. У некоторых вполне удовлет­ ворительных последовательностей, полученных по формуле (6), дли­

на L гораздо больше,

чем оценка (10) (фактически L — 0 (N)). В го

же время

некоторые

последовательности

с L &У(п/2) Мне удовлет­

воряют ни одному из основных тестов § 3.

 

2.4.

О более сложных алгоритмах.

2.4.1.

Вместо формул вида

(4), представляющих с

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

7«+1 ^ *[п—1> •• г 7п-г+і),

считая, что начальные значения ^о, 71, ...... 7г_і заданы. Вероятно, длина отрезка апериодичности у такой после­ довательности при 1 гораздо больше, чем при r = 1. Однако теорема, аналогичная теореме 3, даже для слу­ чая г— 2 не доказана.

В ряде работ рассматривались методы вида (II), представляющие собой обобщения методов пп. 2.2.1 и

2.2.2:

7»+і= Д[10-2АД(103\7»7»-і)]

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