Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
n1.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
8.34 Mб
Скачать

4.2. Псевдослучайные последовательности и процедуры

ИХ МАШИННОЙ ГЕНЕРАЦИИ

При статистическом моделировании систем одним из основных вопросов является учет стохастических воздействий. Количество случайных чисел, используемых для получения статистически устой­чивой оценки характеристики процесса функционирования системы S при реализации моделирующего алгоритма на ЭВМ, колеблется в достаточно широких пределах в зависимости от класса объекта моделирования, вида оцениваемых характеристик, необходимой то­чности и достоверности результатов моделирования. Для метода статистического моделирования на ЭВМ характерно, что большое число операций, а соответственно и большая доля машинного времени расходуются на действия со случайными числами. Кроме того, результаты статистического моделирования существенно за­висят от качества исходных (базовых) последовательностей случай­ных чисел. Поэтому наличие простых и экономичных способов формирования, последовательностей случайных чисел требуемого качества во многом определяет возможность практического исполь­зования машинного моделирования систем [31, 37, 46].

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

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

Структурная схема аппаратного генератора случайных чисел приведена на рис. 4.8, а. Здесь ИШ — источник шума; КС — клю­чевая схема; ФИ — формирователь импульсов; ПС — пересчетная , схема. При усилении шумов на выходе ИШ получается напряжение

Иш, (t), которое является случайным процессом, показанным на временной диаграмме рис. 4.8, б. Причем отрезок шумовой реализа­ции ux(t), сформированный на интервале времени (О, Т) с помощью КС, содержит случайное число выбросов Сравнение напряжения, м, (/) с пороговым Un позволяет сформировать на вы­ходе ФИ серию импульсов Мф(/). Тогда на выходе ПС может быть получена по­следовательность случай­ных чисел Xi(f).). Например, если провести масштабирование и принять длину интервала (0,Т∆) за единицу, то значения интервалов времени ∆ti =t1+ — ti между соседними импульсами иф(/) будут случайными числами ;x,ε (0, 1). Возможны и другие схемные решения аппаратных генераторов слу­чайных чисел [29, 37]. Однако аппаратный способ получения случай­ных чисел не позволяет гарантировать качество последовательности непосредственно во время моделирования системы S на ЭВМ, а также повторно получать при моделировании одинаковые после­довательности чисел.

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

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

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

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

Генерация базовой последовательности. При моделировании си­стем на ЭВМ программная имитация случайных воздействий лю­бой сложности сводится к генерированию некоторых стандартных (базовых) процессов и к их последующему функциональному преоб­разованию. Вообще говоря, в качестве базового может быть принят любой удобный в случае моделирования конкретной системы 5 про­цесс (например, пуассоновский поток при моделировании Q-схемы). Однако при дискретном моделировании базовым процессом явля­ется последовательность чисел {х,}=х0, хи ..., xs, представляющих собой реализации независимых, равномерно распределенных на ин­тервале (0, 1) случайных величин {ζ,} = ζ 0> ζ i, ζ n, или — в стати­стических терминах — повторную выборку из равномерно распре­деленной на (0, 1) генеральной совокупности значений величиныI [29, 37, 46].

Непрерывная случайная величина ζ имеет равномерное рас­пределение в интервале (а, b), если ее функции плотности

(рис. 4.9, а) и распределения (рис. 4.9, б) соответственно примут вид

Определим числовые характеристики случайной величины ζ, принимающей значения х,— математическое ожидание, дисперсию и среднее квадратическое отклонение соответственно:

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

Такое распределение имеет математическое ожидание.M[ζ] =12

и дисперсию D [ζ] = 1/12.

Это распределение требуется получить на ЭВМ. Но получить его на цифровой ЭВМ невозможно, так как машина оперирует с п- разрядными числами. По­этому на ЭВМ вместо непре­рывной совокупности равно­мерных случайных чисел ин­тервала (0, 1) используют дискретную последователь­ность 2" случайных чисел то­го же интервала. Закон рас­пределения такой дискрет­ной последовательности называют квазиравномерным распределением.

Случайная величина ζ, имеющая квазиравномерное распределе­ние в интервале (0, 1), принимает значения х,= //(2п —1) с вероят­ностями pi= 1/2", f=0, 2"—1.

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

Таким образом, математическое ожидание квазиравномерной случайной величины совпадает с математическим ожиданием рав­номерной случайной последовательности интервала (0, 1), а диспер­сия отличается только множителем (2П+1)/(2п — 1), который при достаточно больших п близок к единице.

На ЭВМ невозможно получить идеальную последовательность случайных чисел хотя бы потому, что на ней можно оперировать только с конечным множеством чисел. Кроме того, для получения значений х случайной величины £ используются формулы (алгорит­мы). Поэтому такие последовательности, являющиеся по своей сути детерминированными, называются псевдослучайными [4, 29].

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

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

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

Определим качественно требования к виду функции Ф. Напри­мер, легко показать, что функция вида (4.9), изображенная на рис. 4.10, а, не может породить хорошую последовательность псевдо­случайных чисел х х2, ... Действительно, если построить точки с координатами (x1 x2), (x3, x4) по случайным числам, полученным, например, из таблицы случайных чисел (табл. 4.2), то они будут равномерно распределены в единичном квадрате 0≤хi,+1≤ 1. Соответствующие же точки, построенные по числам 1, Ф(x2)), (xз, Ф(x4)), …, располагаются в площади, ограниченной кривой jeI+1 = Ф (х,).

Хорошую последовательность случайных чисел может породить только такая функция xi+l = Ф (х(), график которой достаточно плот­но заполняет единичный квадрат. Примером такой функции может служить Х1+1=Д(Ах,) при больших целых положительных А, где Д(и)=и—Ц(и) — дробная часть числа и; Ц(и) — целая часть числа и, т. е. наибольшее целое число, не превосходящее и. Пусть для примера А = 10, тогда функция х1+1=Ф(х,) будет иметь вид, пока­занный на рис. 4.10, б. Приведенные условия являются только необходимыми, но не достаточными для того, чтобы соотношение (4.9) порождало хорошие последовательности псевдослучайных чи­сел.

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

Одной из исторически первых процедур получения псевдослучай­ных чисел была процедура, получившая название метода середин­ных квадратов. Пусть имеется 2n-разрядное число, меньшее 1:xi,=0, a1 аг ...а2n. Возведем его в квадрат: xi,-2 = 0, b1 b2 ... b4n а затем отберем средние 2n разрядов х1+1 =0, bn+i bn+2 … Ь3„, которые и будут являться очередным числом псевдослучайной последовательности. Например, если начальное число хо = 0,2152, то (хо)2 = 0,04631104, т. е. x1 =0,6311, затем (xl)2 = 0,39828721, т. е. х2 = 0,8287, и т. д.

Недостаток этого метода — наличие корреляции между числа­ми последовательности, а в ряде случаев случайность вообще может отсутствовать. Напри­мер, если х00,4500, то (лг0)2 = 0,20250000, xt = 0,2500, 1)2 = 0,06250000, х2 = 0,2500, (х2)2 = 0,06250000, х3 = 0,2500 и т. д. Кроме того, при некото­рых вообще может наблю­даться вырождение последова­тельности, т. е. л:, = 0 при Это существенно ограничивает

возможности использования метода серединных квадратов.

Конгруэнтные процедуры генерации. Широкое применение при моделировании систем на ЭВМ получили конгруэнтные процедуры генерации псевдослучайных последовательностей, представляющие собой арифметические операции, в основе которых лежит фунда­ментальное понятие конгруэнтности. Два целых числа а и β конгру­энтны (сравнимы) по модулю т, где т — целое число, тогда и толь­ко тогда, когда существует такое целое число к, что a— β =km, т. е. если разность а— β делится на т и если числа α и β дают одинаковые остатки от деления на абсолютную величину числа т. Например, 1984=4 (mod 10), 5008 = 8 (mod 103) и т. д.

Конгруэнтные процедуры являются чисто детерминированны­ми, так как описываются в виде рекуррентного соотношения, когда функция (4.9) имеет вид

Если заданы начальное значение Х0, множитель λ и аддитивная константа μ, то (4.11) однозначно определяет последовательность целых чисел {Xi}, составленную из остатков от деления на М членов последовательности {λiX0 + μ(λi - 1)/(λ - 1)}. Таким образом, для любого i ≥ 1 справедливо неравенство Xi < M. По целым числам последовательности {Xi} можно построить последовательность {хi} = {Xi/M} рациональных чисел из единичного интервала (0, 1).

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

Мультипликативный метод. Задает последовательность неотрицательных целых чисел {Xi}, не превосходящих М, по формуле

т. е. это частный случай соотношения (4.10) при μ= 0.

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

Для машинной реализации наиболее удобна версия М = рg, где р - число цифр в системе счисления, принятой в ЭВМ (р = 2 для двоичной и р = 10 для десятичной машины); g - число битов в машинном слове. Тогда вычисление остатка от деления на М сводится к выделению g младших разрядов делимого, а преобразование целого числа Хi в рациональную дробь из интервала хi ∈ (0, 1) осуществляется подстановкой слева от Xi, двоичной или десятичной запятой.

Алгоритм построения последовательности для двоичной машины М = 2g сводится к выполнению таких операций [31, 36, 46]:

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

2. Вычислить коэффициент λ = 8t ± 3, где t - любое целое положительное число.

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

4. Взять g младших разрядов в качестве первого члена последовательности X1, а остальные отбросить.

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

6. Присвоить Х0 = Х1.

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

Пример 4.4. Необходимо получить числа последовательности для случая g = 4, используя приведенный алгоритм мультипликативного метода. Для этого выполняем следующие действия: 1. Выбираем Х010 = 7 (в десятичной системе счисления) или Х0 = 0111 (в двоичной системе счисления). 2. Найдем t = 1, тогда λ10 = 11 или 5; пусть λ10 = 5, λ = 0101. 3. Рассчитываем произведение λХ0, берем g младших разрядов, вычисляем Х1 и присваиваем Х0 = Х1, т. е. выполняем п. 3 - 7 алгоритма:

Смешанный метод. Позволяет вычислить последовательность неотрицательных целых чисел {Хi}, не превосходящих М, по формуле

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

Качество конкретной версии такого генератора можно оценить только с помощью соответствующего машинного эксперимента.

В настоящее время почти все пакеты прикладных программ универсальных ЭВМ для вычисления последовательностей равномерно распределенных случайных чисел основаны на конгруэнтной процедуре [17, 38, 40].

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