русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Инструментарии статистического моделирования систем


Дата добавления: 2014-11-28; просмотров: 780; Нарушение авторских прав


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

Основой метода статистического моделирования служат предельные теоремы теории вероятностей, среди которых наиболее часто применяются следующие теоремы и их следствия.

 

а)Теорема Бернулли. Если некоторое событие A в N независимых экспериментах осуществляется с вероятностью P, то относительная частота появления этого события m/N сходится по вероятности к P, т.е. для любого > 0 имеет место

 

lim Pr{|m/N – P| ³ e} = 0, (4.1)

N® ¥

 

где m – число положительных исходов в N экспериментах.

 

б)Теорема Пуассона. Если в N независимых испытаниях события A появляется с вероятностью в каждом i - м испытании, то относительная частота появления этого события m/N при N→∞ сходится по вероятности к среднему значению т. е. для любого > 0

lim Pr {| m/N – åPi /N | ³ e} = 0, (4.2)



N® ¥

 

где m – число положительных исходов испытаний.

 

в)Теорема Чебышева. Если в N независимых испытаниях наблюдаются значения случайной величины X, то при N → ∞ среднее арифметическое значений сходится по вероятности к математическому ожиданию случайной величины X, т.е. для любого > 0 справедливо соотношение

 

lim Pr {|åxi /N – a | ³ e} = 0, (4.3)

N® ¥

 

где a = M{x}, M – знак математического ожидания.

 

г)Обобщенная теорема Чебышева. Если – независимые случайные величины с и (дисперсии), причем все ограничены сверху одним и тем же числом, то при N → ∞ среднеарифметическое значений сходится по вероятности к среднему арифметическому их математических ожиданий, т.е. для любого имеет место

 

lim Pr {|åxi /N –å ai /N | ³ e} = 0, (4.4)

N® ¥

 

д)Неравенство Чебышева. Для неотрицательной функции случайной величины X и любого K > 0 имеет место неравенство

 

Pr{j(x) ³ K} £ M{j(x)}/K. (4.5)

 

В частности, если и где - среднее арифметическое, а – среднее квадратическое отклонение, то

 

Pr{|X - | ³ } £ 1/ . (4.6)

 

е)Теорема Маркова. Выражение (4.4) справедливо и для зависимых случайных величин если только

 

lim D{å xi}/N 2 = 0. (4.7)

N® ¥

 

ж) Центральная предельная теорема. Если – независимые и одинаково распределенные случайные величины с одинаковым математическим ожиданием то при N → ∞ закон распределения суммы неограниченно приближается к нормальному т.е.

lim Pr{a < (å xi -Na)/ < b } = f(b) - f(a), (4.8)

N® ¥

 

где f(x) – интеграл вероятности:

f(x) = (1/

з)Теорема Лапласа. Если в каждом из N независимых испытаний события A появляется с вероятностью P, то имеет место

 

lim Pr{a < (m – NP)/ < b } = f(b) - f(a), (4.9)

N® ¥

 

где m - число реализаций события A в N испытаниях. Эта теорема является частным случаем предыдущей теоремы.

Как отмечалось выше, при статистическом моделировании основное внимание уделяется учету случайных факторов и оценке их влияния на процесс функционирования системы и ее компонентов. Для формирования на ЭВМ реализаций случайных объектов, вероятностные характеристики которых известны, сперва с помощью программных датчиков (или используя физические датчики, таблицы случайных чисел) генерируются базовые последовательности псевдослучайных чисел {ri}, равномерно распределенных в интервале[0, 1], которые далее преобразуются в реализации других случайных объектов с заданными вероятностными характеристиками.

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

 

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

- реализуем случайную величину ri, равномерную в интервале [0, 1];

- проверяем условие ri £ РА; если оно выполняется, то считаем, что событие А имеет место (т. е. оно наступило), в противном случае заключаем, что оно не наступило (вероятность этого события равна 1 - РА).

Основой этого простого заключения (или суждения) служит то свойство равномерного закона распределения, что вероятность попадания случайной величины в заданный интервал равна длине этого интервала, другими словами,

 

РА = . (4.10)

 

Итак, при выполнении неравенства ri £ РА исходом испытания является событие А.

 

2. Моделирование полной группы событий. Техника реализации события предыдущего пункта подсказывает нам алгоритм моделирования полной группы событий А1, А2, … , Аn с вероятностями наступлений P1, P2, … , Pn, å Pk = 1. Введем обозначение

 

lk = (4.11)

 

Тогда реализация события Ак с вероятностью Рк будет эквивалентна выполнению условия

 

lk-1 < ri £ lk. (4.12)

 

Аналогично условию (4.10), имеет место равенство

 

Рk = (4.13)

 

Как следует из этой логики, моделирование испытания сводится к выделению интервала Ik = [lk-1, lk], k = 1, 2, … , n, l0 = 0, lп = 1, и каждому интервалу Ik будет поставлено одно определенное событие Ак, k = 1, 2, … , n.

3. Моделирование сложного события. Пусть необходимо моделировать событие С, состоящее из двух и более событий А, В, …. Для простоты рассмотрим частный случай С = (А, В), когда события А и В независимы и, пусть РА и РВ – вероятности наступления этих событий соответственно. Если через и обозначить события, означающие не появление А и В соответственно, то мы будем иметь дело с моделированием возможных вариантов сложного (составного) события С: а) С = (А, В), б) С = (А, ), С = ( , В), С = ( , ), вероятности которых равны соответственно Р1 = РА РВ, Р2 = РА (1 - РВ), Р3 = (1 - РАВ, Р4 = (1 - РА )(1 - РВ). Эти четыре события составляют полную группу, поэтому Р1 + Р2 + Р3 + Р4 = 1.

Следовательно, для моделирования испытания можно воспользоваться приведенной выше схемой, используя для этой цели всего одну реализацию случайной величины ri, равномерной в интервале [0, 1]:

 

- если 0 < ri £ Р1, то произошло событие (А, В);

- если Р1 < ri £ Р1 + Р2, то произошло событие (А, );

- если Р1 + Р2 < ri £ Р1 + Р2 + Р3, то произошло событие ( , В);

- если Р1 + Р2 + Р3, < ri £ 1, то произошло событие ( , ).

Другая модификация этого алгоритма, использующая уже две реализации случайной величины ri и ri+1, заключается в следующем:

 

а) проверить условие 0 < ri £ РА; если оно выполнено, перейти к пункту б), в

противном случае – к пункту в);

б) проверить условие 0 < ri+1 £ РВ; если оно выполнено, то произошло

событие (А, В), в противном случае – событие (А, );

в) проверить условие 0 < ri+1 £ РВ; если оно выполнено, то произошло ( , В),

в противном случае – событие ( , ).

 

Рекомендуем студентам построить и исследовать логическую схему этого моделирующего алгоритма.

Рассмотрим теперь случай, когда события А и В статистически зависимы, и пусть заданы безусловные вероятности РА, РВ и условная вероятность РВ/А. Для моделирования нам будет необходимо также выражение для вероятности , которую можно получить из формулы для полной вероятности для события В, т. е. РВ:

РВ = РАРВ/А + (1 – РА) , (4.14)

 

откуда следует, что

 

= (РВ - РАРВ/А)/(1 – РА). (4.15)

 

Тогда можно воспользоваться либо одной, либо двумя реализациями равномерно распределенной в интервале [0, 1] случайной величины ri. В обоих случаях, как и выше, возможными исходами являются:

 

а) исход С = (А, В) с вероятностью Р1 = РАРВ/А;

б) исход С = (А, ) с вероятностью Р2 = РА (1 - РВ/А);

в) исход С = ( , В) с вероятностью Р3 = (1 – РА) ;

г) исход С = ( , ) с вероятностью Р4 = (1 – РА)(1 - ).

 

При моделировании по первой схеме используется лишь одна реализация ri для выделения (генерации) интервала, длина которого равна вероятностям Р1, Р2, Р3, Р4, причем, Р1 + Р2 + Р34 = 1. Для второй схемы воспользуемся двумя реализациями ri и ri+1. Соответствующий моделирующий алгоритм имеет вид

а) проверить условие 0 < ri £ РА; если оно выполнено, перейти к пункту б), в

противном случае – к пункту в);

б) проверить условие 0 < ri+1 £ РВ/А; ; если оно выполнено, то произошло

событие (А, В), в противном случае – событие (А, );

в) проверить условие 0 < ri+1 £ ; если оно выполнено, то произошло

( , В), в противном случае – событие ( , ).

 

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

Рекомендуем студентам построить логическую схему этих моделирующих алгоритмов и изучить их внутренние связи.

 

4. Моделирование дискретного распределения. Пусть распределение случайной величины Х задано в виде последовательности реализаций x1 £ x2 £ …., £ xn с соответствующими вероятностями p1, p2, … , pn, å рk = 1. Интегральная функция распределения этой величины Х будет определяться с помощью формулы

 

FX(x) = Pr{X< x} = xk £ x < xk+1, k = 1, … , n. (4.16)

 

Этот случай эквивалентен случаю моделирования полной группы событий, рассмотренный в пункте 2, поэтому моделирующий алгоритм выглядит следующим образом. Генерируем реализацию случайной величины ri :

- если имеет место ri < р1, то Х = х1, иначе,

- если имеет место ri < р1 + р2, то Х = х2, иначе,

- ……………………………………………………………..

- если имеет место ri < то Х = хк,

и т. д., до значения k = n. Интересно отметить, что для этого алгоритма среднее число сравнений равно величине

 

M0 = (4.17)

 

Рассмотрим в качестве примеров дискретного распределения следующие частные случаи, представляющие большой интерес для практики моделирования.

 

а) Моделирование биномиального распределения. Пусть проводятся N независимых экспериментов; в каждом эксперименте вероятность успешного исхода постоянна и равна заданной величине р. Вероятность m успешных экспериментов, m = 0, 1, … , N, определяется согласно формуле

pm = CNmpm(1 – p)N-m, m = 0, 1, … , N, (4.18)

 

где CNm = N/m!(N – m)!. Тогда последовательность испытаний сводится к реализации следующего алгоритма:

 

- если имеет место ri < р0, то m = 0, иначе,

- если имеет место ri < р0 + р1, то m = 1, иначе,

- ……………………………………………………………..

- если имеет место ri < то m = к,

и т. д., до значения k = N. Как известно, первые два момента биномиального распределения равны M[m] = Np, D[m] = Np(1 – p), где M – знак математического ожидания, D – знак дисперсии.

б) Моделирование пуассоновского распределения. Случайная величина Х распределена по закону Пуассона, если она принимает целочисленные значения к = 0, 1, 2, … , с вероятностями

 

Pr{X = k} = pk = (ak/k!) e-a, k = 0, 1, 2, …, (4.19)

 

a – среднее значение. Известно, что дисперсия этой случайной величины также равна величине a, ток что M[Х] = D[Х] = а. В принципе, моделирующий алгоритм для этого распределения можно построить по той же схеме, что и другие дискретные распределения, испытав сперва ri < р0, далее ri < р0 + р1, и т. д. Однако существует более изящный для этого закона распределения алгоритм, который основан на двустороннем неравенстве

 

(4.20)

 

Согласно этой формуле, при нулевом начальном значении параметра k генерируются реализации случайной величины ri, равномерно распределенной в интервале [0, 1], до тех пор, пока не будет справедливым условие (4.20). Реализующая этот алгоритм подпрограмма SUBROUTINE POISSN(a, X) на языке FORTRAN имеет вид

 

1. X = 0.0

2. A = exp(-a)

3. S = 1.0

4. CALL RANDUM(IX, IY, RN)

5. S = S*RN

6. IF(S – A)9,7,7

7. X = X + 1

8. GO TO 4

9. RENURN

10. END

 

Четвертый оператор этой подпрограммы обращается к генератору случайных чисел и формирует реализацию ri º RN, произведение которых формируется пятым оператором. Шестой оператор проверяет знак разности S – A; если S – A < 0, управление передается оператору 10, который и возвращает текущее целочисленное значение X; если же S – A ³ 0, управление передается седьмому оператору, который прибавляет единицу к значению Х, и генерация ri º RN повторяется.

 

5. Моделирование непрерывных случайных величин по методу обратной функции. Пусть необходимо генерировать на ЭВМ реализации непрерывной случайной величины Х, функция плотностираспределения которой есть fX(x). Обозначим через FX(x) функцию вероятности (или интегральный закон распределения), которая определяется в виде

 

FX(x) = (4.21)

 

Сущность метода обратной функции заключается в том, что если riреализация равномерно распределенной в интервале [0, 1] случайной величины R, то уравнение

 

ri = FX(xi ) = (4.22)

 

определяет соответствующую реализацию xi случайной величины Х с вероятностными характеристиками fX(x) и FX(x). Так как функция FX(x) является монотонно возрастающей, ее обратная функция FX-1 (x) существует, поэтому из (4.22) для реализации xi получим соотношение

 

xi = FX-1 (ri). (4.23)

 

Это преобразование и называется методом обратной функции; оно устанавливает взаимно однозначное соответствие между двумя последовательностями реализаций случайных величин {ri} и {xi}. Рассмотрим частные случаи.

 

а) Моделирование экспоненциального закона распределения. Для экспоненциального закона распределения функции fX(x) и FX(x) имеют вид

 

fX(x) = lе-, 0 £ х,

FX(x) = 1 – е-.

Решение уравнения (4.23) в этом случае равно

 

xi = FX-1 (ri) = -(1/l)ln(1 - ri). (4.24)

 

И так как случайные числа ri и 1 - ri распределены одинаково, вместо (4.24), обычно используется преобразование (или моделирующий алгоритм)

 

xi = -(1/l)ln ri, i = 1, 2, … (4.25)

 

б) Моделирование равномерного закона распределения. Пусть необходимо сгенерировать реализации случайной величины, равномерно распределенной в интервале [a, b]. Вероятностные характеристики этой случайной величины равны соответственно

 

fX(x) = 1/(b – a), a£ x£ b,

Легко проверить, что уравнению (4.23) соответствует решение

 

xi = а + (b – a)ri, i = 1, 2,… (4.26)

 

Согласно этой формуле, при ri = 0 получим xi = а, а при ri = 1 - соответственно xi = b.

 

в) Моделирование нормального закона распределения. Вероятностные характеристики нормального (или гауссова) распределения имеют вид

 

fX(x) = (1/Ö2p)sxexp(-(x – mx)2/2sx2 ),

 

FX(x) = ,

где mx и sx2 = математическое ожидание и дисперсия случайной величины Х. Так как функция FX(x) монотонно возрастающая, то, в принципе, для построения моделирующего алгоритма можно воспользоваться уравнением ri = FX(xi ). Однако с вычислительной точки зрения более экономно построить моделирование нормально распределенной случайной величины, исходя из центральной предельной теоремы теории вероятностей, согласно которой для достаточно большого значения N величина

z = (4.27)

 

также распределена по нормальному закону. Практически ограничиваются значением N = 12, тогда математическое ожидание z равно 12/2 = 6, а дисперсия равна 12/12 = 1, так как величины ri равномерно распределены в интервале [0, 1] с математическим ожиданием ½ и дисперсией 1/12.

Учитывая то обстоятельство, что величина

 

U = (X – mx)/ sx (4.28)

 

также распределена по нормальному закону с параметрами mu = 0, su2 = 1, с учетом (4.27) получим соотношение

 

(X – mx)/ sx = - 6, (4.29)

откуда получим для моделирования реализации величины Х моделирующий алгоритм в виде

 

x = mx + sx ( - 6). (4.30)

г) Моделирование закона распределения с кусочно- постоянной аппроксимацией.

Когда случайная величина имеет довольно сложный закон распределения, удобно аппроксимировать функцию плотности распределения с помощью кусочно-постоянной функцией, что, в принципе, позволяет получить универсальный моделирующий алгоритм. Пусть функция распределения fX(x) определена на интервале [a, b], который разбит на l подинтервалов, внутри которых функция fX(x) постоянна и равна ck, k = 1, … , l. Именно в такой форме представляются результаты многочисленных экспериментов, в том числе и экспериментов с моделями систем, так что подобные алгоритмы достаточно универсальны и широко применяются в практике исследования и моделирования. Пусть далее rк* - реализации случайной величины, равномерной в каждом из этих подинтервалов. Тогда величина x = ak-1 + rк* будет распределена по закону fX(x), где ak-1 левый край k - го подинтервала. Алгоритм реализации случайной величины rк*, равномерной в подинтервале [ak-1, ak], был рассмотрен нами выше.

Для практических целей более удобно аппроксимировать закон распределения fX(x) таким образом, чтобы вероятность попадания в любой участок [ak-1, ak] была постоянна и не зависела от номера этого участка. Такое предположение означает, что границы этих участков удовлетворяют уравнению

 

(4.31)

 

причем a0 = a, al = b. Соответствующий моделирующий алгоритм получается в виде следующей последовательности

 

1. получить реализацию ri, равномерную в интервале [0, 1];

2. с помощью этой реализации ri случайным образом выбрать подинтервал [ak-1, ak];

3. генерируется реализация ri+1 и масштабируется с целью приведения ее к подинтервалу [ak-1, ak] путем преобразования ri+1: = (ak - ak-1) ri+1;

4. вычисляется реализация xi = ak + ri+1.

Последовательность {xi} оказывается распределенной по закону fX(x).

д) Моделирование векторной случайной величины Z = (X, Y). В предположении, что закон распределения fZ(x, y) задан, реализации векторной величины z можно построить на основе следующих соображений. Вычислим закон распределение fX(x) путем интегрирования

fX(x) = (4.32)

 

и определим функцию условного распределения fZ(y/х), согласно выражению

 

fZ(y/х) = fZ(x, y)/ fX(x). (4.33)

 

Тогда вектор Z = (X, Y) можно смоделировать следующим образом:

 

1. получить реализацию ri, равномерную в интервале [0, 1], и с помощью функции FX (x) смоделировать реализацию х = FX-1 (ri);

2. получить реализацию ri+1, равномерную в интервале [0, 1], и с помощью функции FZ(y/х) смоделировать реализацию y; тогда пара реализаций (х, y) = z будет распределена по закону fZ(x, y) = fZ(y/х)fX(x).

 

Функции FX(x) и FZ(y/x) находятся из интегральных выражений

 

FX(x) = FZ(y/x) = . (4.34)

 

В принципе этот подход можно распространить на случаи, когда вектор Z произвольного размера, правда, при этом появляются сложности вычислительного характера.

 

6. Моделирование марковского процесса. В разделе 1.2 уже шла речь о дискретных цепях Маркова, которые составляют важный класс дискретных управляемых вероятностных процессов. Напомним, что в любой дискретный момент времени (или в любом такте) автомат (или управляемая система) может находиться в одном из состояний zk, k = 1, … , K. Матрица переходов из одного состояния в другое состояние задается в виде

 

, 0 £ pij £ 1, i, j = 1, … , K. (4.35)

 

Вероятности pij интерпретируются как переходные вероятности из состояния zi , в котором находится система (процесс, автомат и т. д.) в момент времени t, в состояние zj в следующий момент времени t + 1. Предполагается, что переходные вероятности удовлетворяют условию нормировки

 

(4.36)

 

Если задаваться также начальными вероятностями pi(0), i = 1,2, … , K, и обозначить через pi(п), i = 1,2, … , K, вероятности того, что после п переходов система будет находиться в состоянии zi, тогда моделирование процесса можно осуществить на основе так называемого событийного подхода, который каждому состоянию zi ставит в соответствие событие Аi, i = 1, … , K.

Первое испытание проводим с помощью реализации ri, используя при этом начальные вероятности pi(0), i = 1,2, … , K, сумма которых равна единице. Этим самым определяется событие, обозначим его через , которое является исходом первого испытания. Далее с помощью реализации ri+1 проводим второе испытание, используя вероятности , j = 1, … , K, первый индекс которых соответствует номеру события , и обозначим исход через, Ai2, и т. д. Продолжая эти испытания за п шагов, получим искомый процесс. Иногда в качестве начальных вероятностей выбираются pi(0) = 1/К, i = 1,2, … , K.

7. Псевдослучайные числа и алгоритмы их генерации. Выше мы отметили, что при применении метода статистического моделирования используются программные датчики для получения последовательности реализации случайной величины, равномерно распределенной в интервале [0, 1]. Функция плотности распределения такой величины постоянна в этом интервале и также равна единице, а функция вероятности (интегральный закон распределения) определяется соотношением

(4.37)

 

Ранее отмечалось также, что математическое ожидание этой величины равно ½, а дисперсия равна 1/12. Получить на ЭВМ реализации непрерывной случайной величины не представляется возможным из-за дискретности самого устройства, возможно лишь получить дискретные значения каждой реализации, которые в случае k – разрядной машины имеют вид

 

ri = i/(2k – 1), i = 0, 1, 2, …2k – 1. (4.38)

 

Если все эти значения имеют одинаковую вероятность, равную

 

pi = 1/2k, i = 0, 1, 2, …2k – 1, (4.39)

 

тогда первые два момента этой дискретной случайной величины равны соответственно

 

M[R] = (4.40)

D[R] =

= (4.41)

 

Из этих соотношений видно, математические ожидания непрерывной и дискретной величин совпадают, однако их дисперсии отличаются друг от друга множителем

 

u(k) = (2k + 1)/(2k – 1), (4.42)

 

который стремится к единице при достаточно большом значении k.

Программная реализация дискретных случайных величин, равномерно распределенных в интервале [0, 1] (так называемых псевдослучайных чисел, ПСЧ) основана на известном из теории чисел свойстве конгруэнтности: числа a и b называются конгруэнтными (сравнимыми) по модулю m, или в виде формулы

 

a º b (mod m), (4.43)

 

если их разность кратна числу m, т. е. можно записать a - b = km, где k – некоторое целое число.

В технике моделирования широкое распространение получили следующие алгоритмы, действие которых основано на конгруэнтности чисел:

 

а) мультипликативный конгруэнтный алгоритм, основанный на формуле

 

Xi+1 º lXi (mod M), (4.44)

 

б) смешанный конгруэнтный алгоритм, основанный на формуле

 

Xi+1 º lXi + m (mod M), (4.49)

 

в) аддитивный конгруэнтный алгоритм, основанный на формуле

 

Xi+1 º (Xi + Xi-1) (mod M). (4.50)

 

Поясним смысл алгоритма (4.44). Числа Xi , l и M являются неотрицательными целыми числами.В двоичном счислении умножаются числа Xi и l, при этом полученное новое целое число имеет 2b разрядов, где b – длина машинного слова(число двоичных цифр (бит) в машинном слове); далее b старших разрядов автоматически отбрасываются, и оставшиеся b младших разрядов принимается за следующее целое число Xi+1, и т. д. Если эти числа разделить на самое большое число, которое можно получить на компьютере (в данном случае – это число 2b), получим случайные реализации ri, равномерные в интервале [0, 1]. Действие остальных алгоритмов аналогично этому алгоритму.

При успешном выборе начального значения X0, а также величин l и M достигается приемлемое качество сгенерированной с помощью конгруэнтных алгоритмов последовательности псевдослучайных чисел {ri}. Так, например, для двоичной системы счисления величина M выбирается равной 2b, величина l, в свою очередь, выбирается из правила l = 8Т ± V0, где Т – любое целое положительное число, V0любое положительное, но нечетное число (например, V0 = 3) . При таком выборе максимальный период последовательности псевдослучайных чисел {ri} получается равным

 

P = 2b-2 = M/4, b > 2. (4.51)

 

Большую длину последовательности {ri} можно получить, частично пожертвовав скоростью вычислений: оказывается, что если выбрать величину M, равную наибольшему простому числу, которое меньше чем 2b, а величину l - равной первообразному корню из M, максимальная длина последовательности {ri} будет увеличена от M/4 до значения M – 1. Например, при b = 36 наибольшее простое число, меньшее 236, есть 235 – 31, следовательно, M = 235 – 31 = 34 359 738 337. Первообразные корни из M равны 55 и 515, поэтому можно брать l = 55, что, впрочем, также согласуется с формулой l = 8Т ± V0 при V0 = 3.

Так как эффективность метода статистического моделирования и достоверность полученных результатов в значительной мере зависят от качества последовательности {ri}, ее подвергают тщательной проверке. В практике статистического моделирования систем наиболее часто используемыми являются следующие методы: а) проверка (или тест) на равномерность; б) проверка на стохастичность; в) проверка на независимость. Рассмотрим вкратце основную сущность этих процедур.

 

а) Проверка на равномерность. Суть этой проверки сводится к тому, чтобы установить статистическую значимость гипотезы о том, что эмпирическая кривая распределения (гистограмма) близка к равномерному закону распределения на интервале [0, 1]. Пусть этот интервал разбит на l равных частей, тогда при генерации последовательности {ri} каждая реализация попадает в один из подинтервалов единичного отрезка с одинаковой вероятностью, равной pk = 1/l, k = 1, … , l. Обозначим через mi, i = 1, … , l, количество попаданий в каждый из этих подинтервалов, так что å mi = N, где N = общее количество реализации в последовательности {ri}. Величины mi/N, i = 1, … , l, характеризуют относительные частоты попадания в каждый из подинтервалов. Поэтому, в принципе, справедливость гипотезы о близости теоретического и эмпирического распределений можно установить на основе критерия согласия «Хиквадрат» Пирсона

 

(4.52)

 

Часто для этой цели используется косвенный метод проверки, суть которого заключается в следующем. Последовательность {ri} разбивается на две подпоследовательности {r1, r3, … , r2i-1} и {r2, r4, … , r2i}, i = 1, … , N. Если после N/2 испытаний, когда сгенерировано N реализаций, условие

 

r22i-1 + r22i £ 1, i = 1, …, N (4.53)

 

выполняется ровно k раз, k £ N/2, то, согласно предельной теореме теории вероятностей, отношение k/N/2 при достаточно большом значении N должностремиться к величине p/4, поскольку, по геометрическим соображениям, точка (r2i-1, r2i) всегда принадлежит единичному квадрату с площадью Sкв = 1, а условие (4.49) устанавливает факт попадания этой же точки в четверть единичного круга с площадью Sкр = pr2/4 = p/4, так что отношение площади четверти единичного круга к площади единичного квадрата равно Sкр / Sкв = p/4.

 

б) Проверка на стохастичность. Эту проверку можно осуществить, используя так называемые комбинации и серии частных подпоследовательностей реализации псевдослучайных чисел {ri}. Суть проверки на основе комбинаций сводится к определению закона распределения длин участков между единицами (или нулями) в k – разрядных двоичных числах Xi, i = 1, 2, … , N, которые получаются алгоритмически на основе формул (7.8) – (7.10), где N – длинапоследовательности {ri}. При достаточно большом значении N обычно проверяются все k разрядов или только l старших разрядов случайных чисел Xi. Так как вероятность появления единицы или нуля в каждом разряде этих чисел одинакова и равна p = 0.5, то вероятность появления m единиц в l разрядах двоичных чисел Xi будет определяться на основе формулы для биномиального распределения

 

p(m, l) = Clmpm(l)(1 – p(1))l-m = Clmpl(l), (4.54)

 

где p(1) = p(0) = 0.5, Clm = l!/m!(l – m)!. Тогда в последовательности длины N ожидаемое число появления чисел Xi с m единицами в проверяемых l разрядах будет равно величине

 

Nm = N p(m, l) = N Clmpl(l). (4.55)

 

Имея теоретические и эмпирические значения вероятностей p(m, l) или чисел Nm, можно проверить стохастичность последовательности {ri} с помощью некоторого критерия согласия.

Проверка на основе использования серий сводится к тому, что последовательность {ri} разбивается на две группы таким образом, чтобы выполнялось условие

 

xi = (4.56)

 

В этом выражении величина p из интервала (0, 1). Под серией подразумевается любой отрезок последовательности {ri}, состоящий из следующих друг за другом элементов типа a или b, например, ряд a a b b b a a a a a a b b a a a a a b b b b aaa… состоит из семи серий, длина которых равна соответственно числам 2, 3, 6, 2, 5, 4, 3. Очевидно, что вероятность появления серии длиной m в последовательности длиной l в N реализациях также будет определяться на основе формулы (7.14), причем p(1) = p(0) = p, m = 0, 1, … , l; l = 1, 2, … , k. Сравнивая эмпирические и теоретические вероятности на основе некоторого критерия согласия, как и выше, можно судить о стохастичности последовательности {ri}.

в) Проверка независимости элементов последовательности. Независимость элементов последовательности {ri} можно установить с помощью корреляционных отношений. Так, например, образовав на основе последовательности {ri} другую последовательность {vi} на основе соотношения vi = ri+k, где k – величина сдвига последовательности, и вычислив корреляционный момент Krv для этих двух рядов и нормализовав последний путем разделения на произведение среднеквадратических отклонений и , т. е. вычислив величину rrv = Krv/ , независимость элементов последовательности можно проверить с помощью неравенства

 

rrv 2 £ b2/N, (4.57)

 

где b - вероятность доверия, N – длина ряда {ri}.

При выполнении расчетов на ЭВМ в качестве оценок 2 и 2 используются соответствующие эмпирические дисперсии

 

D(ri) = (1/(N – k)) , (4.58)

 

D(ri+k) = (1/(N–k)) , (4.59)

тогда эмпирический корреляционный момент оценивается по формуле

rrv (k) = ((1/(N – k)) .(4.60)

При генерировании последовательностей {ri} и {vi} формирование величин åri, åri+k, åriri+k, åri2 и åri+k2 происходит автоматически в соответствующих ячейках памяти.

Важными характеристиками последовательности {ri} являются длина периода Р и длина отрезка апериодичности L. Длина отрезка апериодичности L есть наибольшее целое число, такое, что при 0 £ j < i £ L событие A: = {ri = rj} не имеет места, другими словами, все числа ri в пределах отрезка апериодичности не повторяются. Величины Р и L устанавливаются экспериментально. Очевидно, что если при статистическом моделировании длина последовательности {ri} превышает величину L, то испытания могут повторяться при тех же условиях, и при этом новых статистических результатов не будет получено.

Отметим, наконец, что все названные выше критерии оценки качества последовательности {ri} являются лишь необходимыми условиями; их достаточность в каждом конкретном случае подлежит дополнительному исследованию.

 



<== предыдущая лекция | следующая лекция ==>
Эвристические принципы и правила моделирования | Элементы системы массового обслуживания. Описание простейшего потока заявок (пуассоновского потока)


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.77 сек.