
Случайные числа.ppt
- Количество слайдов: 35
МЕТОДЫ ПОЛУЧЕНИЯ СЛУЧАЙНЫХ ЧИСЕЛ
Общие сведения о случайных числах Случайные числа являются реализациями последовательности взаимно независимых и одинаково распределенных случайных величин. При этом в основе может лежать любое распределение , и тогда говорят об распределенных случайных числах.
Способы получения случайных величин: v специальные таблицы случайных чисел; v физические генераторы случайных величин (например, источники радиоактивного излучения либо шумы радиоэлектронных приборов); v программные генераторы (или датчики) псевдослучайных чисел.
Последовательности случайных чисел, вырабатываемые детерминистскими способами (т. е. с помощью специальных алгоритмов) называются псевдослучайными или квазислучайными. Считается, что наименьшим машинным затратам и удобству дальнейших преобразований удовлетворяет последовательность случайных чисел с равномерным распределением в интервале [0, 1]. Равномерным называется такое распределение, при котором каждое возможное случайное число равновероятно. Обычно, если специально не оговорен закон распределения случайных чисел, то обычно имеют в виду равномерное распределение.
Необходимым и достаточным условием равномерного распределения на интервале [0, 1] является следующее: вероятность попадания случайной величины в любой подинтервала [0, 1] равна длине этого подинтервала. С помощью таких случайных чисел можно конструировать как случайные события с любой заданной вероятностью, так и случайные величины, обладающие практически любым законом распределения.
Требования к случайным числам Важным достоинством программных методов является простота практической реализации. Основным недостатком всех программных методов является то, что получаемая при их реализации последовательность оказывается периодической. Поэтому очень длинные последовательности уже не будут чисто случайными. Полученные с помощью программных методов последовательности должны в идеале удовлетворять следующим требованиям: v равномерно распределенные; v статистически независимые; v воспроизводимые; v неповторяющие.
С помощью программного генератора получаются числа x 1, …, xn, которые рассматриваются как случайные. Нужно еще проверить, являются ли они в действительности последовательностью независимых случайных величин равномерно распределенных на интервале [0, 1]. Для этого применяются следующие группы критериев: v критерии согласия между эмпирическим и теоретически распределениями; v критерии стохастической независимости следующих друг за другом вырабатываемых чисел; v критерии случайности. Эти группы критериев в основном охватывают проверку тех свойств, которыми должны обладать случайные числа.
Если проверяется равномерность распределения на интервале [0, 1], то случайные числа должны удовлетворять следующим свойствам: v среднее значение чисел не должно существенно отличаться от 1/2; v среднее значение квадратов чисел не должно существенно отличаться от 1/3; v дисперсия чисел не должна существенно отличаться от 1/12; v коэффициенты ассиметрии и эксцесса не должны существенно отличаться соответственно от 0 и -1. 2. v доля чисел в последовательности {xi}, которая попадает в интервал [ai, ai+1] (I = 0, 1, …, m-1; 0=a 0<a 1<…<am=1) должна несущественно отличаться от длины этого интервала, т. е. величины (ai+1 ‑ ai).
Способы генерирования равномерно распределенных случайных чисел Большинство алгоритмов для получения псевдослучайных чисел имеют вид: Например, широко известные способы имитации равномерно распределенных случайных чисел основаны на реализации рекуррентного соотношения Процесс во многом определяется выбором начальных значений х0 -1, …, х0 -r.
Способы генерирования равномерно распределенных случайных чисел В зависимости от того, является ли функция линейной, различают линейные и нелинейные методы. Наиболее часто применяемые в настоящее время генераторы равномерно распределенных случайных величин в общем виде можно представить таким образом: где параметры и переменные в правой части равенства, а также получаемые числа x 1, x 2, … являются целыми числами.
Способы генерирования равномерно распределенных случайных чисел Образование равномерно распределенных чисел на интервале [0, 1] можно представить таким образом: Генераторы этого вида называются линейными (конгруэнтными). Наиболее распространенный алгоритм для получения равномерно распределенных псевдослучайных чисел был предложен Д. Лемером, который является частным случаем линейного генератора
Способы генерирования равномерно распределенных случайных чисел Подставляя в и положив, что , получим: Генератор подобного вида называется мультипликативным. На практике он обладает достаточно хорошими статистическими характеристиками.
Последовательности случайных чисел, полученные методом мультипликативного сравнения, периодически повторяются. Это связано с тем, что числа могут принимать только значения 0, 1, 2, …, . Самое большее через шагов уже один раз полученное число должно появиться опять, а за ним повторяется и вся последовательность. Таким образом, длина периода при модуле не может превышать. Это означает, что на практике можно обеспечить удовлетворительную величину периода, если выбирать модуль m достаточно большим.
Если в положить , а , то получим выражение для смешанного генератора И, наконец, если в Положить и , то генератор такого вида называется аддитивными или генератором Фибоначчи: Генератор вида , где все , называется обобщенным аддитивным генератором или обобщенным генератором Фибоначчи.
Удобными и экономичными являются алгоритмы, требующие выполнения лишь операций сдвига и сложения. Так для десятичных чисел используют следующий алгоритм: где μ – не кратно 2 и 5; n – число десятичных цифр в машинном слове. Максимальный период равен . Кроме того, в этом случае: v вычисление остатка от деления сводится к выделению n младших разрядов делимого; v преобразование целого числа в рациональную дробь из интервала [0, 1] осуществляется подстановкой слева от него десятичной запятой.
Вполне удовлетворительные для практики результаты дают и другие программные способы получения псевдослучайных чисел, например, методы усечения. Различные варианты формирования равномерно распределенных последовательностей по этому способу основываются на том, что разряды очередного случайного числа получаются путем отбрасывания, или «усечения» , части разрядов у результата нелинейного преобразования над одним или несколькими предыдущими числами.
Первым алгоритмический метод получения равномерно распределенных псевдослучайных чисел предложил Джон фон Нейман (один из основоположников кибернетики). Метод получил название метод «середины квадрата» : v Берется произвольное число x 0, состоящее из k разрядов. v Величина x 0 возводится в квадрат. v Средние k разрядов результата и составляют очередное число x 1. Указанная процедура циклически повторяется. Практически после 20 -30 циклов устанавливается последовательность с распределением, близким к равномерному.
Например, пусть , тогда ; и т. д. Значительно лучшие результаты дает видоизмененный метод «середины произведения» : v Произвольно выбирается пара чисел x 0 и x 1. v Составляется их произведение x 0 x 1. v Средние цифры произведения используются в качестве очередного числа x 2. Далее процесс повторяется циклически.
Формирование случайных величин с заданным законом распределения Можно выделить несколько основных методов формирования последовательности случайных величин с произвольным законом распределения из последовательности равномерно распределенных случайных чисел в интервале [0, 1]. А именно: 1. Прямое преобразование равномерно распределенных случайных чисел (метод обратных функций). 2. Приближенные методы. 3. Отсеивание чисел из первоначальной случайной последовательности (метод отсеивания). 4. Моделирование условий соответствующих предельных теорем теории вероятностей.
Метод обратных функций Пусть случайная величина Y непрерывна и имеет заданную плотность вероятности f(y), F(y) - функция распределения Идея данного метода основывается на следующем теореме: Если случайная величина Y имеет плотность распределения f(y), то распределение случайной величины является равномерным в интервале [0, 1].
Метод обратных функций На основе этого утверждения получаем следующее правило. Чтобы найти возможное значение yi непрерывной случайной величины Y, зная ее плотность вероятности f(y), необходимо выбрать случайное число xi и решить относительно yi уравнение или уравнение , где а - наименьшее конечное возможное значение Y.
Метод обратных функций Справедливо и обратное утверждение. Если F(y) - функция распределения некоторой непрерывной случайной величины, а X - случайная величина с равномерным распределением на интервале [0, 1], то случайная величина имеет функцию распределения F(y), где - функция, обратная по отношению к F. Если закон распределения задан функцией распределения, то правило получения значений случайной величины Y заключается в следующем: v реализовать случайную величину X, равномерно распределенную на интервал [0, 1]; v вычислить значений случайной величины Y по формуле.
Пример Случайная величина Y имеет экспоненциальный (показательный) закон распределения где λ – параметр распределения,
Находим обратную по отношению к F функцию. Имеем Решая это уравнение относительно Y, получаем Учитывая, что случайная величина (1 -X) имеет также равномерный закон распределения в интервале [0, 1], то окончательно получаем Случайные числа с экспоненциальным распределением вычисляются по формуле
Пример Функция распределения случайной величины Y на интервале [a, b] равна Составим уравнение согласно теореме: Откуда Обращение функции распределения во многих случаях представляет собой довольно сложную задачу. Поэтому метод не всегда применим. Однако для обратной функции F-1 иногда можно найти достаточно хорошую аппроксимацию.
Приближенные методы Достаточно универсальными (и удобными) являются приемы, основанные на кусочной аппроксимации функции плотности. Пусть требуется получить последовательность {yi} с функцией плотности f(y). Если область определения случайной величины Y не ограничена, то переходят к соответствующему усеченному распределению на интервале [c, d]. Далее [c, d] разбивают на n интервалов [a 1, a 2], …, [an, d], где a 1=c, в каждом из которых функцию f(y) аппроксимируют отрезком прямой, параллельной оси абсцисс. Тогда случайная величина Y может быть представлена в виде суммы
Для приближенного вычисления площади k-го прямоугольника обычно используют формулу Пусть в нашем распоряжении имеется датчик случайных чисел {xi}, распределенных равномерно на интервале [0, 1]. Разобьем интервал [0, 1] на n подинтервалов [α 1, α 2], …, [α n, 1], α 1=0. α k выбираются таким образом, чтобы выполнялись соотношения
Тогда, вероятность попадания случайного числа Y внутрь интервала [ak, ak+1] равна вероятности попадания равномерно распределенного случайного числа X внутрь интервала [αk, αk+1]. Поэтому при получении очередного случайного числа xi определяется номер интервала k, в который оно попадает. После чего определяется значение ak. При этом случайная добавка к величине ak вычисляется по формуле
Метод отсеивания Данный метод заключается в том, что из равномерно распределенной последовательности случайных чисел отбираются числа таким образом, чтобы они подчинялись заданному закону распределения. Метод отбора применим для получения реализаций только таких случайных величин, закон распределения которых может быть задан с помощью функции плотности f(y) c z 2 0 a z 1 b y
Процедура получения значений случайной величины Y заключается в следующем: 1. получаем два независимых значения x 1 и x 2 случайной величины X с равномерным распределением на интервале [0, 1]; 2. строим точку z с координатами (z 1, z 2), где 3. если , то полагаем, что случайная величина Y приняла значение z 1; если , то точка отбрасывается и вычисления повторяются с получением новой пары случайных чисел {xn} по пункту 1.
Полученные таким образом значения являются реализациями случайной величины Y с плотностью f(x). Нужно отметить, что данный метод требует довольно большого числа машинных операций. Эффективностью метода отбора называют вероятность того, что точка z (zl, z 2) будет использована для расчета Y. Ясно, что при большом числе отброшенных точек метод отбора неэффективен. В рассмотренном выше случае, когда Y определена на интервале [a, b], эффективность метода характеризуется отношением площади, ограниченной кривой f(y), осью y, прямыми y=а и y=b, к площади прямоугольника c(b-a).
Моделирование условий предельных теорем теории вероятностей Эта группа методов преобразования случайных чисел основывается на приближенном соблюдении условий, при которых оказываются справедливыми соответствующие предельные теоремы.
Моделирование нормального распределения Закон нормального распределения вероятностей непрерывной случайной величины занимает особое место среди различных теоретических законов, т. к. является основным во многих практических исследованиях, им описывается большинство случайных явлений, связанных с производственными процессами. Нормальным называют закон распределения вероятностей непрерывной случайной величины, который описывается дифференциальной функцией где a - математическое ожидание случайной величины; σ - среднее квадратичное отклонение нормального распределения.
Один из самых известных программных методов реализации нормально распределенной случайной величины основан на центральной предельной теореме, которая говорит, что распределение суммы независимых случайных величин Xi (i=l, 2, …, n) приближается к нормальному при неограниченном увеличении n, если выполняются следующие условия: v все величины имеют конечные математические ожидания и дисперсии; v ни одна из величин по своему значению резко не отличается от всех остальных. Согласно этой теореме сумма независимых случайных величин X 1, X 2, . . . , Xn, равномерно распределенных на интервале [0, 1], асимптотически нормальна с математическим ожиданием и дисперсией , где M(Xi)=1/2 и D(Xi)=l/12, i=l, 2, …, n.
Обычно конструируют алгоритм реализации случайной величины Y на основе аппроксимации распределения с плотностью N(0, 1). Пронормируем рассматриваемую сумму, для чего вычтем математическое ожидание и разделим результат на среднее квадратическое отклонение: В силу центральной предельной теоремы при распределение этой нормированной случайной величины стремится к нормальному с параметрами a=0 и =1. При помощи линейного преобразования i=1, 2, …, при любом μ и σ >0 можно затем получить последовательность случайных чисел {уn}, отвечающих распределению N(μ, σ2).
Случайные числа.ppt