
2 Получение случайных величин на ЭВМ.ppt
- Количество слайдов: 50
Тема 2 Получение случайных величин на ЭВМ
Равномерное распределение случайной величины Непрерывная случайная величина Х распределена равномерно в интервале (a; b), где a
Функция и плотность равномерного распределения 3
Стандартной (базовой) случайной величиной называется непрерывная случайная величина , равномерно распределенная на интервале (0, 1). • Функция плотности: • Функция распределения: • Математическое ожидание: • Среднее квадратическое отклонение: 4
Табличный способ Для получения случайного числа , нужно взять из таблицы n очередных цифр i и считать, что =0, 1 2… n. Их можно выбирать подряд, начиная с любого места и читать в любом направлении. Недостатки таблиц: • Запас чисел ограничен. • Таблицы занимают некоторый объем памяти, обращение к элементу этой таблицы требует времени и замедляет работу алгоритма. • В большой таблице найдутся плохие участки. 5
Аппаратный (физический способ) = 0, 1 2 … n Недостатки физического способа: • • • Любой реальный физический прибор вырабатывает случайные величины с распределением, отличным от равновероятного. Отсутствие воспроизводимости. Эксплуатация дополнительного устройства. 6
7
Алгоритмический (программный) способ • • • Требования к идеальной последовательности случайных чисел: она должна состоять из равномерно распределенных; статистически независимых; воспроизводимых; неповторяющихся чисел. Кроме этого, генератор должен работать быстро, т. е. количество операций, затрачиваемых на формирование одного числа, должно быть небольшим; занимать минимальный объем машинной памяти. Числа, получаемые с помощью какого-либо алгоритма и имитирующие значения случайной величины , называются псевдослучайными числами. 8
Функция для генератора СЧ Рекуррентные формулы вида: n+1 = F( n), где начальное число 0 задано. • Точки 2=F( 1), 4=F( 3) будут расположены на кривой y=F(x) (рис. 1) • Функция y={gx}, где g – очень большое число, а {z} – дробная часть числа, т. е. {z}=z-[z] (рис. 2) 9
Период и отрезок апериодичности • L = m • L – наименьшее число, удовлетворяющее этому условию при некотором m (m < L). Mножество неповторяющихся чисел 0, 1, … L-1 называется отрезком апериодичности последовательности; • число L называется длиной отрезка апериодичности; • P = L - m – длиной периода: 0 m m P L n L 10
Определение длины периода • Запускается программа генерации последовательности { i} с начальным значением 0 и генерируется N чисел i. • Число N фиксируется. • Затем программа запускается повторно с начальным числом 0 и при генерации очередного числа проверяется истинность события C { i = N}. Если это событие истинно при i = i 1 и i = i 2 (i < i 1 < i 2 < N), то вычисляется длина периода последовательности P = i 2 – i 1. • Замечание: если событие С оказывается истинным для i = N, то L > N. 11
Определение длины отрезка апериодичности • Проводят запуск генератора с начальным числом 0 и вырабатывают им Р чисел, где Р – длина периода. • После этого параллельно с ним генерируют случайные числа вторым генератором, аналогичным первому. Таким образом вырабатывают случайные числа двумя генераторами, продолжая подсчитывать количество чисел, которое сгенерировал первый генератор, до совпадения между собой чисел, выработанных разными генераторами. • Подсчитанное количество чисел является длиной отрезка апериодичности. 12
Метод середины квадратов • В этом методе число n предполагается 2 kзначным: n = 0, a 1 a 2 …a 2 k. • Чтобы получить число n+1 надо n возвести в квадрат n 2 = 0, b 1 b 2 …b 4 k , и затем отобрать средние 2 k цифр этого квадрата: n = 0, bk+1 bk+2 …b 3 k. • Этому методу соответствует функция • F(x) = { 10 -2 k [10 3 k 2 ] }. 13
Пример: Недостаток подобных методов – наличие корреляции между числами последовательности, а иногда случайность вообще отсутствует, например: x 0 = 0, 4500, (x 0)2=0, 20250000, x 1 = 0, 2500, (x 1)2=0, 06250000, x 2=0, 2500 и т. д. Еще недостаток: в последовательности получается больше чем нужно малых значений. 14
Максимальная длина периода генератора, то есть максимальное количество неповторяющихся случайных чисел, определяется количеством разрядов в дробной части. В действительности длина периода меньше максимально возможной и зависит от исходного целого числа. Пример: 15
Метод произведений Перемножаются два n-разрядных целых числа, одно из которых, называемое ядром или множителем, не меняется, а второе, называемое множимым, формируется из n последних (правых) разрядов полученного 2 n-разрядного числа, представляющего собой произведение ядра и множимого. Пример. Ядро = 5167; множимое = 3729 16
Методы получения псевдослучайных чисел Алгоритмы генерации случайных чисел Элементарные рекурренты Конгруэнтные генераторы Генераторы Фибоначчи Линейные Мультипликативные Сложные генераторы Рекурренты в конечном поле Нелинейные Метод Макларена. Марсальи Конгруэнтные со случайными параметрами Комбинирование алгоритмов Квадратичные сложение прореживание С переносом умножение 17
Конгруэнтные методы Два целых числа a и b называются конгруэнтными (сравнимыми) по модулю m, где m – целое число, если разность (b – a) делится на m без остатка, а числа a и b дают одинаковые остатки от деления на m. Например: 1984 и 4 (по модулю 10), 2568 и 148 (по модулю 10), 1746 и 511 (по модулю 5), 6493 и 2221 ( по модулю 2). 18
Пусть Х 0, g, c, m – произвольные фиксированные элементы. Последовательность порождается линейным конгруэнтным генератором с параметрами (Х 0, g, c, m), если она образована с помощью следующего рекуррентного соотношения: Xn+1 = (g Хn + с) mod m, n 0, где m – модуль, m>0; g – множитель, 0 g
При с = 0 формула преобразуется к виду Xn+1 = g Хn mod m, и определяет мультипликативный конгруэнтный генератор. Параметры (Х 0, g, m) выбираются из условия максимума периода. Их можно определить аналитическими методами теории чисел или экспериментально. Длина периода равна m тогда и т. тогда, когда: НОД(c, m) = 1 (т. е. С и m взаимно просты); g-1 кратно р для всех простых р – делителей m; g-1 кратно 4, если m кратно 4. 20
В качестве примера приведем данные для двух вариантов датчиков случайных чисел, соответствующих 32 - и 16 -разрядной ЭВМ (машинное слово содержит 32 (16) разрядов). X n+1 = (65539 * Xn) mod 231 Псевдослучайное число: n = Xn / 231 Период данной последовательности P = 229 21
Недостаток линейного конгруэнтного метода если рассматривать последовательные пары ( n, n-1), то на плоскости точки с такими координатами будут лежать на прямых из семейства n-1 = g n + c – km, k = 0, 1, 2, . . . 22
База генератора Х 0=100; множитель g=333; модуль m=457; к-во чисел в выборке = 1000 23
База генератора Х 0=100; множитель g=333; модуль m=115; к-во чисел в выборке = 1000 24
База генератора Х 0=100; множитель g=333; модуль m=105; к-во чисел в выборке = 1000 25
База генератора Х 0=100; множитель g=333; модуль m=1234567 26
Квадратичный конгруэнтный метод Xn+1 = (d. Xn 2 + g Хn + с) mod m Для m, которые являются степенью 2, интересный квадратичный метод предложил Ковэю: Xn+1 = (Xn (Хn + 1)) mod 2 е, где модуль m=2 e, а начальное значение Х 0 выбирается так, чтобы Х 0 mod 4 = 2. 27
Конгруэнтный метод с переносом Псевдослучайная нелинейная конгруэнтная последовательность определяется следующим нелинейным рекуррентным соотношением: Xn+1 = (g Хn + сn) mod m, n=1, 2, … • В отличие от линейного конгруэнтного генератора, приращение с изменяется во времени: 28
Генераторы Фибоначчи • х1, х2, … хn – «стартовое слово» ; • a, b – запаздывание. • Алгоритм генерации: Xn = (Xn-a Хn-b ) mod m, где – символ бинарной операции, может использоваться одна из следующих операций: +, -, *, XOR • Примером такого генератора является аддитивный генератор Митчелла и Мура: Xn = (Xn-24 + Хn-55 ) mod m 29
Генераторы Фибоначчи где X(k) – вещественные числа из диапазона [0, 1), лаги a, b – целые положительные числа. Для старта этому датчику требуется max(a, b) случайных чисел, которые могут быть сгенерированы простым конгруэнтным датчиком. Лаги a и b не следует выбирать произвольно. Рекомендуются следующие значения лагов: (a = 55, b = 24); (a = 17, b = 5); (a = 97, b = 33). 30
Рекурренты в конечном поле Обобщением мультипликативной конгруэнтной последовательности является линейная рекуррентная последовательность порядка k>=1: Xn+1 = (g 1 Хn + g 2 Хn-1 +… gk Хn-k+1 ) mod р, n=1, 2, … • где р – простое число; • g 1 , g 2, … gk – коэффициенты рекурренты; • X 0, X-1, …, X-k+1 – начальные значения рекурренты. Пример: алгоритм генератора с периодом 296: Xn+1 = (1176 Xn +1476 Xn-1 +1776 Xn-2) mod (232 – 5) 31
Для повышения качества генератора в линейную рекурренту вводится нелинейное приращение: Пример рекуррентного генератора с переносом с периодом 2158: Xn+1 = (5115 Xn +1776 Xn-1 +1492 Xn-2 + + 211111 Xn-3 +сn) mod 232 32
Генератор Таусворта • Определим последовательность бинарных знаков с помощью рекуррентного соотношения: bi = (c 1 bi-1 + c 2 bi-2 +…+ cqbi-q) mod 2. Здесь c 1, c 2 … являются константами 1 или 0. • Практически во всех приложениях генераторов Таусворта только два из коэффициентов не равны нулю, уравнение приобретает вид: bi = (bi-r + bi-q) mod 2 для целых чисел 0
Сложные генераторы. Метод перемешивания • Метод Макларена-Марсальи (1965 г. ) основан на комбинировании двух простейших датчиков. • Пусть {ai}, {bi}, i=1, 2, … – псевдослучайные последовательности, порождаемые независимо работающими генераторами Ran 1 и Ran 2 соответственно. • V {V 0, V 1, …, Vk-1} – вспомогательная таблица К чисел. Вначале V-таблица заполняется К членами последовательности {ai}. • Через {ci} будем обозначать комбинированную псевдослучайную последовательность. Каждый элемент ci является результатом последовательности операций: S = [bi * K]; ci = VS ; VS = ai+K (i = 1, 2, …). 34
Комбинирование алгоритмов • Простой вероятностный метод: генерируется 3 случайных числа тремя генераторами 1 2 3. • Элемент результирующей последовательности равен 2, если 1>альфа, где альфа – вероятность использования данного генератора и 3 в противном случае. 35
Комбинирование алгоритмов • Вичманн и Хилл (1982 г. ) если 1 i, 2 i, 3 i – i-е случайные числа, произведенные тремя отдельными генераторами, тогда i ={ 1 i + 2 i + 3 i}. • Комбинирование с помощью псевдослучайного прореживания Пусть генератор Ran 1 порождает «элементарную» двоичную последовательность {аi}, а генератор Ran 2 – двоичную «селектирующую» {bi}. Выходная последовательность включает те биты, для которых соответствующее значение селектора bi =1, если bi=0, то значение аi отбрасывается. 36
Недостатки простых арифметических генераторов • Слишком короткий период • Последовательные значения не являются независимыми • Некоторые биты "менее случайны", чем другие • Неравномерное одномерное распределение 37
Тесты для проверки генераторов псевдослучайных чисел Теоретические Определение длины периода и отрезка апериодичности Эмпирические Проверка на равномерность Проверка на случайность 38
Тест проверки пар • заключается в подсчете количества « 1» для каждого разряда случайного числа в двоичном представлении. Теоретическая вероятность появления « 1» для равномерно распределенных случайных чисел равна ½. 39
Тест проверки комбинаций • сводится к подсчету количества « 1» в двоичных случайных числах. • Теоретическая вероятность появления комбинации с i-м количеством « 1» будет • k – количество разрядов случайного числа 40
Тест совпадения моментов • Оценками моментов являются выборочное среднее и дисперсия: • доверительный интервал 0, 5 -d< М < 0, 5+d где для уровня значимости =0, 05 • s – стандартное отклонение; • n – к-во элементов в выборке; • квантиль функции распределения Лапласа: 41
Критерий хи-квадрат • Пусть имеется выборка случайных чисел Х={x 1, x 2, …, xn}. Разбиваем числовую прямую на К>1 ячеек с шириной h = (max (X) – min (X)) / K. • Пусть Pi – вероятность того, что случайное число попало в i-ю ячейку, а Yi – число действительных попаданий Х в i-ю ячейку. Образуем статистику: • Гипотеза принимается, если 2< при заданном уровне значимости для К-1 степени свободы. • Табличное значение можно определить с помощью функции • ХИ 2 ОБР(уровень значимости; степени_свободы). 42
Критерий восходящих серий • Последовательность, значения в которой монотонно возрастают, называется восходящей серией. • В последовательности из n значений случайных чисел определяем число восходящих серий длиной 1, 2, 3, 4, 5 и >=6 • где aij – элемент (i, j) специальной матрицы А, а bi определяется по формуле 43
Тест проверки корреляции • заключается в определении коэффициента корреляции между значениями выборки. Для проведения теста нужно выполнить следующее: • сгенерировать выборку СЧ; • вычислить • проверить | t | < t , если да, то нет оснований отвергать гипотезу о равномерности; • - уровень значимости, а t =1, 96. 44
Тест равномерности пар • Для базовой случайной величины пары последовательных чисел должны быть равномерно распределены независимым образом. • Подсчитываем число случаев, когда пара последовательных чисел попадает в интервалы (q, r), 0< q, r
Покер-тест • исследуются частоты встречаемости комбинаций различных символов a, b, c, d, e (порядок не имеет значения) в последовательности из пяти подряд идущих символов (х1, х2, х3, х4, х5) (попадание случайных чисел в выделенные интервалы): • Критерий хи-квадрат основан на подсчете числа пятерок в каждой категории. 46
Тест интервалов • В этом тесте исследуются частоты случайных событий, состоящих в попадании элементов наблюдаемой последовательности в заданный числовой промежуток [а, b]. • При этом оценивается случайная длина серии t непопаданий в промежуток до первого попадания. 47
Тест знаков (тест серий) • Основан на исследовании знаковой последовательности разностей: хi-xmed (i=1, n), где xmed – медиана выборки {xi}. • Знаковая последовательность состоит из знаков «+» и «-» и характеризуется: – общим числом серий; – протяженностью самой длинной серии. • Под «серией» понимается последовательность подряд идущих одинаковых знаков. 48
Тест собирателя купонов • В этом тесте оцениваются минимальные длины фрагментов, содержащих «полный набор» попаданий во все К интервалов. 49
Тест, основанный на мере сжимаемости • Основан на следующей идее: последовательность случайна, когда ее невозможно значительно упаковать или сжать. Если результаты сжатия статистически значимо отличаются от теоретических результатов для стандартной случайной последовательности, то тестируемая последовательность признается отличной от стандартной последовательности. 50