МУ Генерация последовательности псевдослучайных чисел с

advertisement
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Саратовский государственный технический университет имени Гагарина Ю.А.»
Кафедра «Системотехника»
Получение случайных чисел с заданным законом распределения
Методические указания
к лабораторной работе по дисциплине «Моделирование систем»,
«Моделирование в производственно-технологических системах»
для направлений
230100.62 «Информатика и вычислительная техника»
Профиль 2 «Автоматизированные системы обработки информации и
управления», 221400.62 «Управление качеством»,
Профиль 1 «Управление качеством в производственно-технологических
системах»
очной и заочной формы обучения
Методические указания рассмотрены на заседании
кафедры СТ «28» августа 2012 года, протокол № 1
Допущено к использованию в учебном процессе
Зав. кафедрой _____________/Томашевский Ю.Б./
Саратов 2012
Цель работы: изучение методов получения последовательностей
псевдослучайных чисел с заданным законом распределения и исследование
полученных последовательностей по различным критериям.
ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Получение случайных чисел с заданным законом распределения.
Квазиравномерные псевдослучайные числа используются в качестве исходного материала для формирования любых вероятностных объектов. Такими
объектами, в первую очередь, являются случайные события, наступающие с
заданной вероятностью и случайные величины с заданными законами распределения.
Моделирование случайного события (реализация жребия). Пусть
требуется моделировать событие A, наступающее с заданной вероятностью
P( A).
Рассмотрим случайную величину ξ (x), распределённую равномерно на
отрезке [0, 1]. Считается, что событие A произошло, если xi  PA . Легко видеть, что вероятность события A равна P ( A) 
PA
 dx  P
A
.
0
Таким образом, моделирование события A, вероятность наступления
которого PA сводится к следующей процедуре:
1. Выбирается очередное значение xi случайной величины ξ (x) .
2. Проверяется неравенство xi  PA , устанавливающее принадлежность xi отрезку [0, PA].
Если xi удовлетворяет неравенству xi  PA , то событие A наступило, в
противном случае – не наступило (наступило противоположное событие ¬A).
Имитация дискретной случайной величины с заданным законом
распределения.
Пусть величина  ( y ) принимает возможные значения
y1 , y2 ,..., yn с вероятностями P1, P2 ,..., Pn .
2
В качестве значения случайной величины  ( y ) будет принято: y1, если
xi  P1 ; y2, если P1  x i  P1  P2 ; y3, если P1  P2  x i  P1  P2  P3 и т.д.
m
Другими словами, если
l m   Pi , то при l m1  x i  l m случайная
i 1
величина  ( y ) принимает значение y m .
Имитация непрерывных случайных величин. Метод обратной
функции.
Метод обратной функции основывается на следующей теореме: если случайная величина  ( y ) имеет функцию плотности распределения f ( y) , то
y
x   f  ( y ) dy
a
подчиняется равномерному закону распределения на отрезке [0, 1] ( а – нижняя граница диапазона изменения случайной величины f ( y) ).
Таким образом, чтобы получить случайное число yi с функцией плотности распределения f ( y) необходимо решить интегральное уравнение
yi
xi   f  ( y ) dy
a
относительно верхнего предела интегрирования.
Пример. Для экспоненциального закона имеем
yi
x i    e  y d y   e  y
yi
0
 1  e  y i ,
0
или
e  y i  1  x i .
Откуда
ln (e  y i )  ln (1  xi );  yi  ln (1  x i ); y i  
1
ln (1  x i ).

3
Достоинством метода обратной функции являются малые вычислительные затраты при реализации вычислений в аналитическом виде.
В качестве недостатков метода следует отметить следующие:
 использование численных методов решения интегрального уравнения приводит к ошибкам и большим затратам машинного времени;
 даже, когда интеграл берется в аналитическом виде, получаются
формулы, содержащие функции вычисления логарифмов, возведения в степень, вычисления радикалов, что требует значительных затрат машинного
времени.
Поэтому на практике пользуются другими, более универсальными, часто приближенными методами имитации непрерывных случайных величин.
Метод Неймана. Одним из универсальных методов имитации непрерывных случайных величин является метод Неймана. Этот метод применим
для моделирования произвольных законов распределения. Кроме того, он
может использоваться для вычисления определённых интегралов.
Пусть необходимо получить последовательность ПСЧ
yi, имеющих
функцию плотности распределения f ( y) с областью возможных значений
[a, b].
От случайной величины  ( y ) с функцией плотности распределения
f ( y), заданной на отрезке [a, b], перейдём к случайной величине
 ( x)  (( y)  a) (b  a),
которая будет иметь функцию плотности распределения f  ( x) с областью
возможных значений [0, 1]
f  ( x)   b  a  f   a   b  a  x  .
Пусть максимальное значение f  ( x) равно f m. Изменением масштаба
по оси ординат приведём отрезок [0, fm] к длине, равной единице. Тогда
4
f  ( x)   b  a  / f m  f   a   b  a  x  .
Таким образом, случайная величина  ( y ) помещается в единичный
квадрат.
Если ввести в рассмотрение двумерную случайную величину (вектор)
  0 ( x 0 ), 1 ( x1 )  , равномерно распределённую в единичном квадрате, то в ка-
честве искомых значений xi случайной величины ξ (x) будут выступать значения 0 ( x0 ) , попавшие под кривую функции плотности распределения
f ( x) .
Алгоритм моделирования случайной величины  ( y ) методом Неймана
можно описать следующим образом:
1
0
1. Получение пары квазиравномерных ПСЧ x i и x i  1 (координат век-


1
0
тора a x i , x i  1 ).
2. Вычисление f  ( x0i ) .


1
0
3. Если f  ( x 0i )  x 1i  1 , то данный вектор a x i , x i  1 отбрасывается (холо-
стое вычисление).
4. Если f  ( x 0i )  x 1i  1 , то вычисляется очередное j-е значение случайной
величины  ( y )
y j  x0i  b  a   a .
5. Переход к п. 1.
Реализация данного алгоритма позволяет получить необходимое количество чисел с заданной функцией плотности распределения  ( y ) .
Достоинством метода является его применимость к любому закону
распределения, а недостатком – большие вычислительные затраты.
Приближённый метод. Пусть закон распределения случайной величины  ( y ), которую необходимо имитировать на ЭВМ, задан функцией
плотности распределения f ( y), возможные значения которой лежат на от5
резке [a, b]. Если этот отрезок с бесконечными границами, целесообразно
перейти к усечённому распределению. Представим f ( y) на участке [a, b] в
виде кусочно-постоянной функции, т.е. отрезок [a, b] разобъем на n полуитервалов  a k , a k  1  и будем считать f ( y) на каждом из них постоянной.
Тогда случайную величину  ( y ) можно представить в виде
 ( y)  a k   k .
Величина  ( y ) на  a k , a k  1  считается распределённой равномерно.
Для аппроксимации f ( y) наиболее удобным способом, целесообразно
разбить отрезок [a, b] на полуинтервалы  a k , a k  1  таким образом, чтобы вероятность попадания случайной величины  ( y ) на любой из них была постоянной, т.е. не зависела от номера полуинтервала k. Для вычисления ak
воспользуемся соотношением
ak 1

f  ( y ) dy 
ak
1
,
n
где n – количество полуинтервалов.
Процедура имитации предполагает следующее:
 генерируется значение xi случайной равномерно распределённой на
отрезке [0, 1] величины ξ(x);
 с помощью xi выбирается полуинтервал  a k , a k  1  (путём моделирования дискретной случайной величины, принимающей n равновероятных
значений);
 генерируется следующее значение xi+1 случайной равномерно распределённой на отрезке [0, 1] величины ξ (x), которое масштабируется с целью приведения его к полуинтервалу  a k , a k  1  .
Таким образом, значение xi+1 становится значением случайной величины  k , равномерно распределённой на полуинтервале  a k , a k  1  .
6
Затем случайные числа с требуемым законом распределения вычисляются по формуле
yi  a k  xi 1 (ak 1  ak ).
Получение случайных чисел с нормальным законом распределения. Для получения случайных чисел, распределённых по нормальному закону, можно воспользоваться центральной теоремой теории вероятностей,
согласно которой сумма большого числа случайных чисел, имеющих равномерное распределение на отрезке [0, 1], даёт распределение, асимптотически
приближающееся к нормальному.
Поэтому для получения нормального распределения следует суммировать случайные числа, равномерно распределённые на отрезке [0, 1]. При
этом математическое ожидание µ и среднеквадратическое отклонение σ получаемого закона при достаточно большом числе n случайных величин будут
определяться выражениями   n / 2,   n / 2 3.
При n  8  12 приближение к нормальному закону достаточное для
практических потребностей.
Если необходимо смоделировать нормальный закон с математическим
ожиданием M  и среднеквадратическим отклонением   , то требуемые случайные числа y j вычисляются по формуле
 2 n

yj  3
xi  n    M  ,

 n i 1

где j = 1, 2, … – номер случайного числа с заданными параметрами нормального закона распределения.
Условия применимости рассмотренных методов получения псевдослучайных чисел с заданными законами распределения:
 метода обратной функции – когда удаётся найти обратную функцию;
7
 метода Неймана – для моделирования случайных величин, имеющих сравнительно мало изменяющиеся функции плотности распределения.
 приближённого метода – когда метод обратной функции неприменим, а метод Неймана – неэффективен.
Экспериментальная проверка соответствия полученных последовательностей ПСЧ законом распределения. Проверка степени соответствия реализаций случайных величин соответствующим законам распределения осуществляется с помощью критериев согласия. Критерий согласия
позволяет оценить вероятность того события, что полученная выборка не
противоречит сделанному предположению о виде закона распределения
случайной величины.
К одним из наиболее часто используемых в практике обработки результатов машинных экспериментов является критерий Пирсона (критерий «хиквадрат»  2 ).
В критерии Пирсона за меру расхождения между эмпирическим и теоретическим законами распределения принимается величина, значение которой определяется по формуле
l
 2расч.  
i 1
(m i  Np i )2
,
Np i
где l – число разрядов (интервалов), на которое разбиты все опытные значения случайной величины ξ ; N – объём выборки; mi – численность i-го разряда; pi – вероятность попадания случайной величины ξ в i-й интервал, вычисленная из теоретического закона.
2
При N → ∞ закон распределения  независимо от вида закона распре2
деления случайной величины ξ стремится к   распределению с k = l − v − 1
степенями свободы ( v – число параметров теоретического закона распределения, вычисленных по данной выборке (для нормального закона – это математическое ожидание и дисперсия, т.е. v для нормального закона распределения равно 2)).
8
Гипотеза о виде закона распределения принимается, если  2расч.  2табл. ,
где  2табл. – теоретическое (табличное, критическое) значение критерия. Табличное значение критерия определяется по специальной таблице. Оно зависит от принятого значения доверительной вероятности (уровня значимости) и
числа степеней свободы. Обычно уровень значимости принимается равным
0,05, что соответствует доверительной вероятности 0,95. Для практического
использования критерия Пирсона необходимо выполнение двух условий:
N  50  60; m i  5  8, i  1, l . Если второе условие не выполняется, то интер-
валы следует объединить. При достаточно больших значениях k распределение f ( 2 ) переходит в нормальное.
Для проверки соответствия случайных величин заданным законам распределения широко используются и другие критерии согласия, например,
критерий Колмогорова-Смирнова. В этом критерии за меру расхождения (отклонения) эмпирического и теоретического законов распределения принимается величина
X  max F  ( x i )  F ( x i ) , i  1, N ,
xi
а в критерии Мизеса (критерий ω2) – величина

X  2    F  ( x)  F ( x)  d x ,

2
где F  ( x) эмпирическая, а F ( x) теоретическая функции распределения.
Следует отметить, что при имитационном моделировании наибольшее
применение находит критерий  2 , как обеспечивающий наименьшую ошибку
в принятии неверной гипотезы.
ЗАДАНИЕ
Разработать алгоритм, реализующий соответствующий метод получения
псевдослучайных чисел с заданным законом распределения.
9
Разработать программу, реализующую алгоритм моделирования, входными данными для программы-генератора являются объем выборки генерируемой последовательности случайных чисел и количество значащих разрядов в пределах до 10.
Разработанная программа должна для сгенерированной последовательности строить гистограмму полученной последовательности; также рассчитывать значения математического ожидания и дисперсии.
Проверить качество последовательностей псевдослучайных чисел, с помощью критерия Пирсона.
ПОРЯДОК ПРОВЕДЕНИЯ РАБОТЫ
1. Построить алгоритм решения задачи.
2. Реализовать задание на языке высокого уровня.
3. Описать реализацию каждого задания, приведя алгоритм и текст
программы.
4. Сделать выводы.
5. Оформить отчет.
СОДЕРЖАНИЕ ОТЧЕТА
Отчет о работе должен содержать:
1. Название лабораторной работы.
2. Описание цели.
3. Постановку задачи.
4. Описание реализации задания.
5. Скриншоты реализаций.
6. Вывод по работе.
ЛИТЕРАТУРА
10
1. Советов Б.Я., Яковлев С.А. Моделирование систем: учебник для ВУЗов. М: Высшая школа, 2007.
2. Советов Б.Я., Яковлев С.А. Моделирование систем. Практикум: учебное пособие для ВУЗов. М.: Высшая школа, 2005.
3. Лоу А.М., Кельтон В.Д. Имитационное моделирование. Классика CS.
3-еизд. С-Пб.: Питер, 2004.
4. Емельянов А.А., Власова Е.А., Дума Р.В. Имитационное моделирование экономических процессов. М.: Финансы и статистика, 2002.
5. Кудрявцев Е.М. GPSS World. Основы имитационного моделирования
различных систем. М.: ДМК Пресс, 2004.
6. Томашевский В.Н., Жданова E.Т. Имитационное моделирование в среде GPSS. М.: Бестселлер, 2003.
11
Download