Когда ставится задача имитационного моделирования некоторой сложной системы, зачастую в ней предполагается наличие случайностей. Поэтому в имитационной модели должен присутствовать блок, отвечающий за моделирование случайных величин.
Генератором (датчиком) псевдослучайных чисел называют алгоритм, который позволяет генерировать последовательность разных элементов, значения которых находятся в заданном диапазоне. Нужно четко понимать, что любой генератор дает не случайную, а детерминированную последовательность чисел.
В вычислительных машинах большее распространение получили программные методы генерации случайных чисел, которые вычисляются по формуле, и поэтому в принципиальном плане не могут являться случайными. Принято допущение, что если сгенерированные случайные числа вычисляются по специальным формулам, а ведут себя по специальным тестам, как случайные, то их можно использовать в качестве случайных.
Отличие псевдослучайных чисел от случайных заключается в том, что, начиная с некоторого времени в них наблюдается периодичность, т. е. повторение одних и тех же случайных чисел. Это существенный недостаток псевдослучайных чисел, но, с другой стороны, это дает возможность повторения одних и тех же последовательностей случайных чисел, что очень важно при проведении имитационного моделирования. На практике наиболее часто применяют следующие четыре метода генерации случайных чисел:
1. Метод квадратов: .
При возведении в квадрат n- разрядного числа в общем случае максимально в произведении будет 2*n разряда. В качестве i- го случайного числа берется n средних разрядов предыдущего случайного числа.
2. Метод произведений: .
Берется n средних разрядов произведения двух предыдущих чисел.
3. Конгруэнтный метод: .
Символ обозначает сравнимость по модулю. и – целые положительные числа. Для получения очередного случайного числа предыдущее умножается на и затем делится на , а остаток от деления берется в качестве i- го случайного числа.
4. Смешанный конгруэнтный метод: где
– целое положительное число. Генераторы псевдослучайных чисел современных ЭВМ, как правило, строятся на основании этого метода. Качество случайных чисел, в том числе длина периода, которая является существенным показателем качества, во многом зависит от выбранных значений , и .
Пример 1. Рассмотрим генератор равномерно распределенных случайных чисел от 0 до 15. Для их представления требуется четыре двоичных разряда. Рассмотрим генератор с параметрами =1, =7, =16, =2 и получим совокупность случайных чисел:
Таким образом, при выбранных параметрах смешанного конгруэнтного генератора получили длину периода, равную четырем числам.
Покажем, что при =1, =3, =16, =3 длина периода удваивается:
………
Таким образом, показано, что при данных параметрах длина периода увеличилась в два раза, и можно использовать уже 50% всех чисел, которые можно представить четырьмя двоичными разрядами.
Если в качестве значений параметров выбрать =1, =5, =16, =3, то при таких значениях параметров обеспечивается период в 16 чисел, т.е. 100%-е использование совокупности чисел в четырех двоичных разрядах.
Для проверки качества последовательности равномерно распределенных случайных чисел используют три вида тестов: на равномерность, случайность и периодичность.
- Проверка равномерности. Наиболее часто используют два теста – частот и разрядов.
1) Тест частот.
Для оценки равномерности по тестам частот весь диапазон существования распределения от 0 до 1 разбивают на интервалов одинаковой длины и подсчитывают попадание случайной величины в каждый из них. Процедура оценки на рисунке 5 основана на использовании метода моментов (описана в главе 3).
Рисунок 5. Гистограмма распределения случайной величины
Вычисляется критерий согласия с количеством степеней свободы :
Где
– экспериментальная -я частота, т.е. количество попаданий случайной величины в -й интервал гистограммы;
- количество степеней свободы (разница между количеством имеющихся интервалов гистограммы и определяемыми параметрами);
- гипотетическая частота, т.е. количество случайных чисел, которое должно было попасть в -й интервал гистограммы: где
– количество реализаций случайной величины;
- вероятность попадания случайной величины в -й интервал гистограммы: где
– левая и правая границы -го интервала гистограммы.
По вычисленным значениям и по статистическим таблицам находим коэффициент доверия гипотезе о равномерности по КС Пирсона, который должен попасть в 10%-й интервал . В противном случае гипотеза отвергается.
2) Тест разрядов.
Для равномерного закона вероятность появления любого символа в любом разряде числа одинакова. Для десятичных чисел она равна 0,1. Для двоичных – 0,5. Для проведения тестирования подсчитывается количество каждых символов в каждом разряде числа, т.е. их частоты. И аналогично предыдущему вычисляется критерий и количество степеней свободы . А далее проверяется попадание коэффициента доверия гипотезе в 10%-й доверительный интервал. При отрицательном результате гипотеза отвергается.
- Тест оценки случайности.
Для того чтобы оценить случайность, вычисляют коэффициент линейной автокорреляции, показывающий зависимость случайных чисел от ранее сгенерированных. Коэффициент автокорреляции вычисляется для последовательности случайных чисел, берущихся с некоторым шагом между собой . Например, на рисунке 6 показан выбор пар чисел с шагом =3.
x
1 2 3 4 5 6 7 8 9 10
Рисунок 6. Выбор пар чисел для вычисления коэффициента линейной автокорреляции
Коэффициент линейной автокорреляции меняется от -1 до +1 и вычисляется по формуле:
Приведем формулу для вычисления критического значения коэффициента автокорреляции: где
– количество пар случайных чисел;
– критическое значение критерия Стьюдента, взятое по статистическим таблицам для рекомендуемого уровня значимости =0,05 и для количества степеней свободы
– критическое значение коэффициента линейной автокорреляции, и если вычисленное значение не меньше критического, то связь между переменными считается существенной.
Если же вычисленное значение по абсолютной величине не меньше 0,8, т.е. , то такая автокорреляционная связь считается близкой к линейной. На рисунке 7 представлены три вида автокорреляционной зависимости между случайными числами: :
Рисунок 7.
Для моделирования требуется использовать генераторы случайных чисел, для которых коэффициент автокорреляции не превышает , а еще лучше не превышает .
- Тест периодичности.
Тест периодичности заключается в вычислении длины периода и длины отрезка апериодичности. Период – это количество повторяющихся чисел, а отрезок апериодичности – это такая последовательность случайных чисел, в которой нет ни одной пары одинаковых чисел, но следующее число за отрезком апериодичности имеет в нем свою «пару». Для корректного проведения имитационного моделирования и получения достоверных результатов требуется использовать случайные числа только на отрезке апериодичности, потому что любое повторение случайных чисел искажает получаемые результаты.
Для вычисления длины периода используется следующий метод: генератор случайных чисел по интуиции выводится за пределы отрезка апериодичности, т.е. на совокупность случайных чисел, в которой имеются периоды. Затем запоминается очередное случайное число, а каждое последующее число сравнивается с числом, которое запомнили. Количество случайных чисел до совпадения случайного числа с числом, которое запомнили, будет являться длиной периода.
Для определения длины отрезка апериодичности берется два одинаковых генератора. После того, как первый из них выработает количество чисел, равное длине периода, запускается второй генератор, и пары вырабатываемых ими чисел сравниваются между собой до тех пор, пока сравнение не даст положительный результат. После этого подсчитывается количество чисел, выработанных первым генератором. Это и есть длина отрезка апериодичности, и чем качественнее генератор, тем больше длина его отрезка апериодичности.