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

569

.pdf
Скачиваний:
2
Добавлен:
06.12.2022
Размер:
2.09 Mб
Скачать

При реализации на ЭВМ статистического имитационного моделирования возникает задача получения на ЭВМ случайных числовых последовательностей с заданными вероятностными характеристиками. Численный метод, решающий задачу генерирования последовательности случайных чисел с заданными законами распределения, получил название «метод статистических испытаний», или «метод Монте-Карло».

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

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

Метод Монте-Карло — это численный метод, моделирующий на ЭВМ псевдослучайные числовые последовательности с заданными вероятностными характеристиками.

Методика статистического моделирования состоит из следующих этапов:

1.Моделирование на ЭВМ псевдослучайных последовательностей с заданной корреляцией и законом распределения, имитирующих на ЭВМ случайные значения параметров при каждом испытании.

2.Преобразование полученных числовых последовательностей на имитационных математических моделях.

3.Статистическая обработка результатов моделирования. Моделирование имеет свои трудности и проблемы. Даже

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

91

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

10.1. Генерация равномерно распределенных случайных величин

При генерации последовательности случайных чиселхi х0 х1 хN, представляющих собой реализации независимых, равномерно распределенных на интервале (0, 1) случайных величин i 0 1 N, невозможно получить идеальную последовательность случайных чисел потому, что на ЭВМ можно оперировать только конечным множеством чисел. Кроме того, для получения значений х случайной величины используются формулы. Поэтому такие последовательности, являющиеся по своей сути детерминированными, называются псевдослучайными.

Наибольшее применение на практике для генерации последовательностей псевдослучайных чисел находят алгоритмы вида хi+1 = (хi), представляющие собой рекуррентные соотношения первого порядка, для которых начальное число х0 и постоянные параметры заданы.

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

10.1.1. Линейный конгруэнтный метод генерации равномерно распределенных случайных величин

Линейный конгруэнтный метод был предложен Д.Х. Лемером в 1948 г.

Выбираем четыре числа:

x0 — начальное значение (x0 0); a — множитель (a 0);

92

c — приращение, или инкремент (c 0);

m — модуль (m > x0, m > a, m > c).

Тогда линейную конгруэнтную последовательность случайных чисел {xn} получаем с помощью итерационной формулы:

xn+1 = (axn + c) mod m, n 0.

Введем b = a – 1. Отбросим случай (a 2). Получаем линейную конгруэнтную последовательность случайных чисел:

xn+k = (akxn + (ak – 1)c/b) mod m, k 0, n 0.

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

Другой фактор, влияющий на выбор m, — это скорость выработки чисел. Надо подобрать такое значение, чтобы вычисления по итерационной формуле производились достаточно быстро. Можно порекомендовать брать в качестве m:

1)значения — максимальное целое число;

2)значение ± 1;

3)значения наибольшего простого числа, меньшего, чем (получим длину периода m – 1).

Выбор множителя a и инкремента c тоже является важным при линейном конгруэнтном методе генерации псевдослучайной последовательности. При выборе множителя a и инкремента с преследуется цель — получить период максимальной длины.

Теорема. Длина периода линейной конгруэнтной последовательности равна m тогда и только тогда, когда:

1)c и m — взаимно простые числа;

2)b = a – 1 кратно p для любого простого p, являющегося делителем m;

3)b кратно 4, если m кратно 4.

Теорема. Максимально возможный при c = 0 период равен порядку первообразного элемента (m), где (m) определяется выражением:

(2) = 1; (4) = 2; (2е) = 2е–2, е 3;(ре) = ре–1(р–1), р > 2;

( ре1, …, реk) = НОК( (ре1), …, (реk)).

93

Такой период реализуется, если x0 и m — взаимно простые числа; a — первообразный элемент по модулю m. Как найти первообразный элемент по модулю m?

Теорема. Число a есть первообразный элемент по модулю ре тогда и только тогда, когда:

1)ре = 2, a — нечетно; или ре = 4, a mod 4 = 3; или ре = 8, a mod 8 = 3, 5, 7; р = 2, е 4, a mod 8 = 3, 5;

2)р — нечетно (простое); е = 1; a 0 (mod p) и a(p–1)q 1 (mod p) для любого простого делителя q числа p – 1;

3)р — нечетно (простое); е > 1; a удовлетворяет 2) и ap–1 1 (mod p2) для любого простого делителя q числа p – 1.

Для важного случая m = 2е при е 4 в качестве множителя берут a = 3 или 5 (mod 8). В этом случае четвертая часть всех возможных множителей дает максимальный период.

Второй распространенный случай m = 10е; е 5; с = 0 и x, не кратное 2 или 5, тогда в качестве a берут значения mod 200,

равные:3,11, 13, 19, 21, 27, 29, 37, 53, 59, 61, 67, 69, 77, 83, 91, 109, 117,123, 131,133,139, 141,147,163,171,173, 179,181,187, 189,197.

Простой распространенный случай: c — нечетное и взаимно простое с m; a mod 4 = 1.

Еще один распространенный случай: a = 75; c = 0; m = 231 – 1.

10.1.2. Метод серединных квадратов

Пусть имеется 2n-разрядное число, меньшее 1: хi = 0,a1a2 a2n. Возведем его в квадрат хi2 = 0,b1b2 b4n, а затем отберем средние 2n разрядов, которые и будут являться очередным числом псевдослучайной последовательности хi+1 = 0,bn+1bn+2 b3n. Этому методу соответствует рекуррентное соотношение хi+1 = {10 2n [103nхi2] }, где { } и [ ] означают соответственно

дробную и целую часть числа в скобках.

Недостаток метода — наличие корреляции между числами последовательности, а в ряде случаев случайность вообще может отсутствовать. Кроме того, при некоторых i* может наблюдаться вырождение последовательности, т.е. хi = 0 при i i*.

94

10.1.3. Метод середины произведения

Метод является модификацией метода серединных квадратов и состоит в том, что два 2n-значных числа перемножаются, и средние 2n цифр этого произведения принимаются в качестве следующего числа последовательности. Таким образом,

если хi 1 = 0,a1a2 a2n; хi = 0,b1b2 b2n, то для получения числа хi+1 необходимо перемножить хi 1 и хi, т.е. хi 1хi = 0,c1c2 c4n, а затем отобрать средние 2n цифр этого произведения

хi+1 = 0,cn+1cn+2 c3n.

Данному методу соответствует рекуррентное соотношение при заданных двух начальных числах х0 и х1:

хi+1 = {10 2n [103n хiхi–1]}.

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

10.1.4. Мультипликативныйметод

Широкое применение для получения последовательностей псевдослучайных равномерно распределенных чисел получили конгруэнтные процедуры генерации, которые могут быть реализованы мультипликативным либо смешанным методом. Конгруэнтные процедуры являются чисто детерминированными, так как описываются в виде рекуррентного соотношения, когда функция имеет вид Хi = aХi + c (mod m), где Хi, a, c, m — неотрицательные целые числа.

Преобразовав данную функцию, получим

Хi = i Х0 + ( i – 1) /( – 1) (mod m).

Если задано начальное значение Х0, множитель и аддитивная константа , то последняя формула однозначно определяет последовательность целых чисел Хi , составленную из остатков от деления на m, членов последовательности

iХ0 + ( i – 1)/( – 1) .

Таким образом, для любого i 1 справедливо неравенство Хi m. По целым числам последовательности Хi можно построить последовательность i} = {Хi/m} рациональных чисел из единичного интервала (0, 1).

95

Мультипликативный метод задает последовательность неотрицательных целых чисел i}, не превосходящих m, по формуле Хi+1 = Хi (mod m), т.е. это частный случай конгруэнтной процедуры (линейного конгруэнтного метода) при = 0.

Для машинной реализации наиболее удобна версия m = pg, где p — основание системы счисления, принятой в ЭВМ, а g — число бит в машинном слове.

Алгоритм построения последовательности для двоичной машины М = 2g сводится к выполнению следующих операций:

1)выбрать в качестве Х0 произвольное нечетное число;

2)вычислить коэффициент = 8t 3, где t — любое целое положительное число;

3)найти произведение Х0, содержащее не более 2g значащих разрядов;

4)взять g младших разрядов (левых) в качестве первого числа последовательности Х1, а остальные отбросить;

5)определить дробь х1 = Х1/2g из интервала (0, 1);

6)присвоить Х0 = Х1;

7)вернуться к п. 3.

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

10.2. Методы проверки качества псевдослучайных чисел с равномернымзакономраспределения

Методы (в дальнейшем, тесты) проверки качества псевдослучайных чисел делятся на три группы:

а) тесты проверки «случайности» последовательности псевдослучайных чисел;

б) тесты проверки равномерности закона распределения; в) тесты проверки независимости последовательности. Первые два теста основываются на статистических критериях согласия, из которых наиболее употребительным являет-

ся статистический критерий согласия 2 (Пирсона).

96

10.2.1. Критерий согласия 2

Пусть имеется — случайная величина, о законе распределения которой выдвигается некоторая гипотеза; Х — множество возможных значений . Разобьем Х на m попарно непересекающихся множеств Х1, Х2, , Хm, таких, что

P Хj pj 0 при j 1,m; p1 + p2 + + pm = P Х = 1.

Выберем n независимых значений 1, 2, , n и обозначим через j количество значений, попавших в j множество ( Хj). Очевидно, что математическое ожидание j равно npj, т.е.

М[ j] = npj.

В качестве меры отклонения всех от Npj выбирается вели-

чина набл2

j

2

 

npj .

 

m

 

 

 

 

j 1

npj

При достаточно большом n величина 2n хорошо подчиняется закону распределения 2 с (m l – 1) степенями свободы (l — число параметров распределения). Уравнение

x

P{ 2n x} km l 1 x dx,

0

где km–l–1(x) — плотность распределения 2 с (m l – 1) степенью свободы, позволяет найти критическую точку 2кр.

При малом объеме выборки лучше определять не критическую точку, а доверительный интервал принятия гипотезы. При заданном уровне значимости или надежности (обычно = 1 – = 0,95) можно определить нижнюю 2н и верхнюю2в границы области возможного принятия гипотезы (доверительного интервала). Для этого нужно решить соответственно следующие уравнения:

 

 

P{ n2 2н } kr x dx ;

P{ 2n в2} kr x dx ,

2н

в2

где = 1 ; r = m l – 1. Из данных уравнений следует, что F( 2н) = и F( 2в) = ., т. е. 2н — квантиль , а 2в — квантиль .

10.2.2. Тесты проверки «случайности»

На практике обычно применяют два теста проверки «случайности»: тест проверки серий и тест проверки частот и пар.

97

Тест проверки серий предусматривает разбиение случайных цифр в исследуемой последовательности на элементы двух родов — первого и второго.

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

Например, если в последовательности цифр

1, 2, , k

k + 1, k + 2, , k + l

k + l + 1, k + l + 2, , s

серия первого

серия второго

серия первого

рода длины k

рода длины l

рода длины s – k – l

1 2 k k + 1; k + 1 k + 2 k + l и k + l k + l + 1s, то цифры 1, 2, , k образуют серию первого рода

длины k; цифры k +1, k + 2, , k + l образуют серию второго рода длины l, и цифры k + l + 1, k + l + 2, , s также образуют серию первого рода длины s – k – l. Иногда для удобства элементы серий первого рода обозначают знаками « » (минус), а второго рода — знаками «+» (плюс). В этом случае рассматриваемая последовательность будет иметь k минусов, l плюсов, s – k – l минусов:

 

+ + +

 

k минусов

l плюсов

s – k l минусов

Подсчитаем количество zl серий второго рода длины l в последовательности псевдослучайных цифр 1, 2, , n. Пусть

l = 1, 2, , m и z m+1 — количество серий второго рода с l m + 1 (они объединяются в одну группу). Обозначим общее коли-

чество серий через z = z1 + z2 + + zm + z m+1. Величина 2z с m степенями свободы вычисляется по формуле

2z zl plz 2 zm 1 pm 1z 2 , plz pm 1z

где p = 9•10l; p m+1 = 10m.

Если, с заданным уровнем значимости , значение 2z попадает в доверительный интервал, то тест проверки серий удовлетворяется.

98

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

При достаточно большом объеме выборки 1, 2, , n (практически при n 20) и уровне значимости = 0,95 нижний

 

zн

1

n 1 1,65

 

, а ниж-

предел общего числа серий:

n 1

2

 

 

 

 

 

ний предел числа серий элементов первого и второго родов:

zпнzвн

1

n 1,65

 

. Максимальная длина серий не

N 1

4

 

 

 

 

должна быть больше, чем lmax = 3,3(lgn + 1).

10.2.3. Тест проверки равномерности закона распределения

Данный тест строится на основе применения критерия согласия 2. Пусть имеется выборка 1, 2, , n псевдослучайных чисел в интервале (0, 1). Интервал (0, 1) изменения слу-

чайной величины разбивается на m интервалов хj, j 1,m;

очевидно, что хm = 1, а нижняя граница первого интервала равна нулю. Обычно принимают m = 10…20.

Далее производится определение вероятности pj попадания случайной величины в j-й интервал. Для равномерного на интервале (0, 1) закона распределения pj = xj xj–1. Затем определяется величина j, j = 1, 2, , m — число попаданий случайной величины в j-й интервал, и подсчитывается вели-

 

m

 

2

 

 

j

pjn

 

чина n2

 

, распределенная по закону 2 с (m – 3)

 

pjn

 

j 1

 

 

степенью свободы.

При малом объеме выборки лучше определять не критическую точку, а доверительный интервал принятия гипотезы. При заданном уровне значимости или надежности (обычно = 1 – = 0,95) можно определить нижнюю 2н и верхнюю2в границы области возможного принятия гипотезы (доверительного интервала). Для этого нужно решить соответственно следующие уравнения:

99

 

 

P{ n2 н2 } kr x dx ;

P{ n2 в2} kr x dx ,

2н

в2

где = 1 ; r = m l – 1. Из данных уравнений следует, что

F( 2н) = и F( 2в) = ., т. е. 2н — квантиль , а 2в — квантиль . Если подсчитанное значение 2n не попадает в доверитель-

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

Дополнительно можно подсчитать оценку математического

n

j

ожидания

 

 

 

j 1

и несмещенную оценку дисперсии

 

 

n

 

 

 

 

 

 

 

 

 

1

n

j

 

 

 

2

 

S2

 

 

 

и сравнить их с теоретическими значени-

 

 

n 1 j 1

 

 

 

 

 

 

 

ями соответственно 0,5 и 1/12.

Для математического ожидания можно для заданного уровня значимости определить также доверительный интервал 0,5 0,5 , где определяется из уравнения

2Ф 12 n = 1 – .

Полезно бывает сравнить также теоретическую функцию распределения F(x) и теоретическую плотность f(x) распределения случайной величины с экспериментально полученными функцией распределения F*(x) и гистограммой частот.

Известно, что для случайной величины, равномерно распределенной на интервале (0, 1):

0, при x 0;

F(x) x, при 0 x 1;1, при x 1;

1, при 0 x 1; f(x)

0, при x 0, x 1.

По известной выборке из n значений случайной величины экспериментальная функция распределения F*(x) определя-

ется следующим образом: F*(x) Sn x , где S (x) равно ко- n n

личеству значений х.

100

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]