Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Генерация псевдослучайных чисел
Как уже отмечалось, имитационное моделирование экономических систем, как правило, предполагает необходимость учета различных случайных факторов: событий, величин, векторов (систем случайных величин), процессов. В основе всех методов и приемов моделирования названных случайных факторов лежит использование случайных чисел, равномерно распределенных на интервале [0;1]. До появления ЭВМ в качестве генераторов случайных чисел применяли механические устройства: колесо рулетки, специальные игральные кости и устройства, которые перемешивали фишки с номерами, вытаскиваемые вручную по одной. По мере роста объемов применения случайных чисел для ускорения их моделирования стали использовать электронные устройства, самым известным из которых был электронный импульсный генератор, управляемый источником шума, разработанный известной фирмой RAND Corporation. В 1955 г. фирма выпустила книгу, содержащую миллион случайных чисел, сформированных этим генератором, а также случайные числа в записи на магнитной ленте. Использовались и другие подобные генераторы: например, основанные на преобразовании естественного случайного шума при радиоактивном распаде. Все эти генераторы обладают двумя недостатками: 1) невозможно повторно получить одну и ту же последовательность случайных чисел, что бывает необходимо при экспериментах с имитационной моделью; 2) технически сложно реализовать физические генераторы, способные длительное время выдавать случайные числа «требуемого качества». В принципе, можно заранее ввести полученные таким образом случайные числа в память машины и обращаться к ним по мере необходимости, но это сопряжено с понятными негативными обстоятельствами: большим (причем неоправданным) расходом ресурсов ЭВМ и затратой времени на обмен данными между долгосрочной и оперативной памятью (особенно существенно для «больших» имитационных моделей). 259 В силу этого наибольшее распространение получили другие генераторы, позволяющие получать так называемые псевдослучайные числа с помощью детерминированных рекуррентных формул. Псевдослучайными эти числа называют потому, что фактически они, даже пройдя все тесты на случайность и равномерность распределения, остаются полностью детерминированными. Это значит, что если каждый цикл работы генератора начинается с одними и теми же исходными данными, то на выходе получают одинаковые последовательности чисел. Это свойство генератора обычно называют воспроизводимостью последовательности ПСЧ. Программные генераторы ПСЧ должны удовлетворять следующим требованиям: • ПСЧ должны быть равномерно распределены на интервале [0; 1] и независимы, т.е. случайные последовательности должны быть некоррелированы; • цикл генератора должен иметь возможно большую длину;
• последовательность ПСЧ должна быть воспроизводима; . генератор должен быть быстродействующим; • генератор должен занимать малый объем памяти. Метод срединных квадратов. Первой расчетной процедурой генерации ПСЧ, получившей достаточно широкое распространение, можно считать метод срединных квадратов, предложенный Д. фон Нейманом и Н. Метрополисом в 1946 г. Сущность метода заключается в последовательном нахождении квадрата некоторого m-значного числа, выделении из него т средних цифр, образующих новое число, которое и принимается за очередное в последовательности ПСЧ, возведении этого числа в квадрат, выделении из квадрата т средних цифр и далее до получения последовательности требуемой длины. Как следует из описания процедуры метода, он весьма прост в вычислительном отношении и, следовательно, легко реализуем программно. Однако ему присущ очень серьезный недостаток — обусловленность статистических свойств генерируемой последовательности выбором ее корня (начального значения), причем эта обусловленность не является «регулярной», т. е. трудно определить заранее, можно ли использовать полученные данным методом ПСЧ при проведении исследований. Это обстоятельство иллюстрируется рис. 20.1, на котором представлены результаты генерации последовательности из ста ПСЧ при следующих исходных данных: число знаков т = 4; корни последовательности Х0 = 2 152; Х0 = 2 153; ^0 = 3 789; Х0 = 3 500. Из анализа рисунка видно, что при Х0 = 2 152 уже с 78-го члена последовательности все ПСЧ принимают нулевые значения; при Х0 = 2 153, начиная с 36-го значения, последовательность перестает быть случайной; при Х0 - 3 789 первые 100 членов последовательности можно использовать в качестве ПСЧ (дальнейшее поведение последовательности ПСЧ требует дополнительных иссле- 260
KJ ел a — корень последовательности Хй = 2 152; Рис. 20.1. Последовательности ПСЧ: б — корень последовательности Х0 = 2 153; в г — корень последовательности Х0 = 3 500 корень последовательности Хй = 3 789; дований); при Х0 = 3 500 (2 500; 4 500 и т.д.) нулевые значения принимают все ПСЧ. Иными словами, метод срединных квадратов не позволяет по начальному значению оценить качество последовательности ПСЧ, в частности ее период. Наибольшее распространение сегодня получили так называемые конгруэнтные методы генерации ПСЧ, предложенные в 1946 г. американским математиком Д.Лемером: мультипликативный, аддитивный и смешанный. Мультипликативный метод. Основная формула мультипликативного генератора для расчета значения очередного ПСЧ по значению предыдущего имеет вид: где а, т — неотрицательные целые числа (их называют множителем и модулем). Как следует из формулы, для генерации последовательности ПСЧ необходимо задать начальное значение (корень) последовательности, множитель и модуль, причем период (длина) последовательности р зависит от разрядности ЭВМ и выбранного модуля, а статистические свойства — от выбранного начального значения и множителя. Таким образом, следует выбирать перечисленные величины так, чтобы по возможности максимизировать длину последовательности и минимизировать корреляцию между генерируемыми ПСЧ. В специальной литературе приводятся рекомендации по выбору значений параметров метода, использование которых обеспечивает (гарантирует) получение определенного количества ПСЧ с требуемыми статистическими свойствами (отметим, что данное замечание можно отнести ко всем конгруэнтным методам). Например, задачи для машины с двоичной системой счисления: где Ъ — число двоичных цифр (бит) в машинном слове; Т — любое целое положительное число; V — любое положительное нечетное число.
Получим последовательность ПСЧ с периодом, равным
Рис. 20.2. Последовательности ПСЧ, полученные по мультипликативному методу: а — число двоичных цифр в машинном слове b = 4; б — число двоичных цифр в машинном слове b = 6
Рис. 20.3. Последовательности ПСЧ, полученные по аддитивному методу при следующих параметрах: а — при Ъ = 3; X = 1-;.-X, = 3; б — при 6 = 3; Х0 = 5; Jf, = 7 что получаемые таким образом ПСЧ оказываются нормированными, т. е. распределенными от нуля до единицы. На рис. 20.2 приведены последовательности ПСЧ, полученные по мультипликативному методу со следующими параметрами: Х0 =15; Т= 3; V- 1; Ь- 4 и Ъ = 6 (столь малые значения b объясняются стремлением проиллюстрировать работоспособность рекомендованных формул). Очевидно, что в первом случае длина последовательности до повторений равна 4 ПСЧ, а во втором — 16 ПСЧ. Легко показать, что от выбора корня последовательности ее длина не зависит (при равенстве остальных параметров). Аддитивный метод. Основная формула для генерации ПСЧ по аддитивному методу имеет вид где m — целое число. Очевидно, что для инициализации генератора, построенного по этому методу, необходимо помимо модуля m задать два исходных члена последовательности. При Х0 = 0; Xj = 1 последовательность превращается в ряд Фибоначчи. Рекомендации по выбору модуля совпадают с предыдущим случаем. Длину последовательности можно оценить по приближенной формуле На рис. 20.3 приведены две последовательности ПСЧ, полученные при исходных данных: Ь = 3, Х0= I, Х{ = 3 а Х0 = 5, Х{ = 7. В обоих случаях период последовательности равен 12 ПСЧ. Смешанный метод. Данный метод несколько расширяет возможности мультипликативного генератора за счет введения так называемого коэффициента сдвига с. Формула метода имеет вид За счет выбора параметров генератора можно обеспечить максимальный период последовательности ПСЧ р = 2Ь. На рис. 20.4 показаны две последовательности ПСЧ, полученные при следующих исходных данных: Х0 = 7; с = 13; а = 9; Ъ = 3 и Ъ - 4. В первом случае длина последовательности равна 8 ПСЧ, а во втором — 16 ПСЧ. Разработано множество модификаций перечисленных конгруэнтных методов, обладающих определенными преимуществами при решении конкретных практических задач, а также рекомендаций по выбору того или иного метода. Для весьма широкого круга задач вполне удовлетворительными оказываются типовые генераторы ПСЧ, разработанные, как правило, на основе смешанного метода и входящие в состав стандартного общего ПО большинства ЭВМ. Специальным образом генерацию ПСЧ организуют либо для особо масштабных имитационных исследований, либо при 264 Рис. 20.4. Последовательности ПСЧ, полученные по смешанному методу при следующих параметрах: а — при 6 = 3; б — при 6 = 4 повышенных требованиях к точности имитации реального процесса (объекта). Подводя итог, подчеркнем, что разработка конгруэнтных методов зачастую осуществляется на основе эвристического подхода, основанного на опыте и интуиции исследователя. После модификации известного метода тщательно проверяют, обладают ли генерируемые в соответствии с новой формулой последовательности ПСЧ требуемыми статистическими свойствами, и в случае положительного ответа формулируют рекомендации по условиям ее применения. |
Последнее изменение этой страницы: 2019-05-08; Просмотров: 238; Нарушение авторского права страницы