Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Моделирование систем

..pdf
Скачиваний:
7
Добавлен:
19.11.2023
Размер:
38.5 Mб
Скачать

пользования машинной имитации для исследования и проектирова­ ния систем [37, 46].

Моделирование случайных событий. Простейшими случайными объектами при статистическом моделировании систем являются случайные события. Рассмотрим особенности их моделирования [4].

Пусть имеются случайные числа т. е. возможные значения случайной величины <*, равномерно распределенной в интервале (О, 1). Необходимо реализовать случайное событие А, наступающее с заданной вероятностью р. Определим А как событие, состоящее в том, что выбранное значение х( случайной величины { удовлет­ воряет неравенству

х{^р .

(4.16)

 

р

Тогда вероятность события А будет Р(А)= J dx=p. Противопо-

-

о

-

ложное событие А состоит в том, что xf>p. Тогда Р {А )= \—р.

Процедура моделирования

в этом, случае

состоит в выборе

значений xt и сравнении их с р. При этом, если условие (4.16) выполняется, исходом испытания является событие А.

Таким же образом можно рассмотреть группу событий. Пусть Ait А2, ..., As — полная группа событий, наступающих с вероят­ ностями р 19 р 2, ...» р3 соответственно. Определим Ат как событие, состоящее в том, что выбранное значение xt случайной величины { удовлетворяет неравенству

(4.17)

Г

где /г= £ р{. Тогда i=1

Р (Ат) — j dx=pm. 1щ—1

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

впоследовательном сравнении случайных чисел xt со значениями

4.Исходом испытания оказывается событие Ат если выпол­ няется условие (4.17). Эту процедуру называют определением ис­

хода испытания по жребию в соответствии с вероятностями р и

Р2* •••» Ps*

Эти процедуры моделирования были рассмотрены в предполо­ жении, что для испытаний применяются случайные числа име­ ющие равномерное распределение в интервале (0, 1). При модели­ ровании на ЭВМ используются псевдослучайные числа с квазирав­ номерным распределением, что приводит к некоторой ошибке. Оце­ ним ее.

9*

131

Пример 4.7. Пусть имеются л-разрядные случайные числа с возможными значе­

ниями jcf=i/(2"—1), 1 = 0 ,2 "—1. Подставив в (4.16) вместо х г число х], определим А* как событие, состоящее в том, что х* </>. п Вероятность наступления события А* может быть определена как P(A*)=mJ2 , где т — количество случайных чисел, меньших или равных р. Отсюда следует, что использование числа xf вместо х,- приводит к ошибке в определении вероятности

события A p = m j2 —р.

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

При моделировании систем часто необходимо осуществить та­ кие испытания, при которых искомый результат является сложным событием, зависящим от двух (и более) простых событий. Пусть, например, независимые события А я В имеют вероятности наступ­ лениярА и рв. Возможными исходами совместных испытаний в этом

случае будут события АВ, ~АВ, АВ, "АВ с вероятностями PjpBi

О ~Рл)Рв> Ра 0 в\ (1 -Р л)( 1 -Рв)-

Для моделирования совместных испытаний можно использовать два варианта процедуры: 1) последовательную проверку условия

(4.16) ; 2) определение одного из исходов АВ, АВ, АВ, А В по жребию с соответствующими вероятностями, т. е. аналогия (4.17). Первый вариант требует двух чисел х,- и сравнений для проверки условия (4.16) . При втором варианте можно обойтись одним числом xh но сравнений может потребоваться больше. С точки зрения удобства построения моделирующего алгоритма и экономии ко­ личества операций и памяти ЭВМ более предпочтителен первый вариант.

Рассмотрим теперь случай, когда события А и В являются зависимыми и наступают с вероятностями рА и рв. Обозначим через Р(В/А) условную вероятность наступления события В при условии, что событие А произошло. При этом считаем, что условная вероят­ ность Р(В/А) задана.

Рассмотрим один из вариантов построения модели. Из последо­ вательности случайных чисел {xj извлекается очередное число хт и проверяется справедливость неравенства хт<рА. Если это неравенство справедливо, то наступило событие А. Для испыта­ ния, связанного с событием В, используется вероятность Р(В/А). Из совокупности чисел {х,} берется очередное число xm+i и проверяется

условие xm+i ^ Р (В/А). В зависимости от того, выполняется или нет

это неравенство, исходом испытания являются АВ или АВ.

Если неравенство хт<рА не выполняется, то наступило событие

А. Поэтому для испытания, связанного с событием В, необходимо определить вероятность

P (B ll)= [P (B )-P (A )P (B IA )W -P (A )).

132

Выберем

из

совокупности

 

(

_ "у™

)

 

{*,}

число

хт+]

и

проверим

 

^ВЩ[РА,РЪ,ПРй\

 

справедливость

 

 

неравенства

 

 

 

 

 

 

 

 

 

хт+1< Р (В[Л).

В

зависимости

 

Ц~ВЫЧ[РВНА]

 

от того, выполняется оно или

 

 

 

 

 

нет,

получим

исходы

испы­

 

Г

ГЕН [Х М ]

 

тания АВ или АВ.

 

 

 

 

 

 

 

Нет

 

Логическая

схема

алгорит­

 

 

 

 

 

 

 

 

 

ма для реализации этого ва­

 

 

р(А//1=К/М+/

|

рианта

модели

показана

на

 

 

рис.

4.13.

Здесь

ВИД[...] —

 

[Рг£//[ХМ/]

Тг£Н[ХМ1]

[|

процедура

ввода

 

исходных

 

данных;

ГЕН [...] — генератор

Нет

 

 

 

равномерно

 

распределенных

 

 

 

 

 

 

 

 

 

случайных

чисел;

Х М = хт\

 

 

 

I Ш В -Ш В +i

ХМ1=хт+и

РА= рл;

РВ=рв;

 

 

 

 

 

 

Ущ Т------

PBA=P(BIA);

PBNA=P(B/A);

 

 

 

 

 

 

I

 

КА,

KNA,

 

КАВ,

KANB,

 

i—9

 

 

KNAB, KNANB — число_собы-

 

| КАМ=КАШ

^KN%dsKNANB+l\

тий А, Л, АВ, АОВ, ЛВ, А В соот­

 

 

 

 

 

ветственно;

ВРМ [...] — проце­

 

/~8Р мП

7

 

дура выдачи результатов моде­

 

 

лирования.

 

 

 

 

 

 

 

 

,

I - - - .

 

Рассмотрим

 

 

особенности

 

(

Останов )

 

на

 

 

 

 

 

моделирования

ЭВМ

мар­

Рис. 4.13. Схема моделирующего алго­

ковских

цепей,

служащих,

на­

 

ритма при зависимых событиях

 

пример,

для

формализации

 

 

 

 

 

процессов в P-схемах (см. § 2.4). Простая однородная марковская

цепь определяется матрицей переходов

 

 

 

 

 

 

 

 

 

 

Р п

P l2 “’P ik

 

 

 

 

 

 

 

 

 

Р =

P l l

Р 22”р 2 к

,

1,

 

 

 

 

 

 

 

 

 

 

 

 

 

Pki Рк2“’Ркк

где рн — вероятность перехода из состояния zt в состояние z,. Матрица переходов Р полностью описывает марковский про­

цесс. Такая матрица является стохастической, т. е. сумма элементов

каждой строки равна единице: £ ру=1; /= 1, к.

JzL

Обозначим через р, (л), /= 1, к, вероятности того, что система будет находиться в состоянии z, после п переходов. По определе-

НИЮ, £ P i(n)= 1.

i= 1

133

Используя событийный подход, можно подойти к моделирова­ нию марковской цепи следующим образом. Пусть возможными исходами испытаний являются события A lf А 2, .., Ак. Вероятность Pij — это условная вероятность наступления события Aj в данном испытании при условии, что исходом предыдущего испытания было событие At. Моделирование такой цепи Маркова состоит в последо­ вательном выборе событий Aj по жребию с вероятностями ptj.

Сначала выбирается начальное состояние z0, задаваемое началь­ ными вероятностями р* (0), р 2(0), ..., рк(0). Для этого из после­ довательности чисел {*,•} выбирается число хти сравнивается с из (4.17), где в качествер{используются значенияр у (0), р 2(0),..., р*(0). Таким образом, выбирается номер т0, для которого оказывается справедливым неравенство (4.17). Тогда начальным событием дан­ ной реализации цепи будет событие Ато. Затем выбирается следу­ ющее случайное число хт+ь которое сравнивается с /„ где в качестве р{используются p^j. Определяется номер да1, и следующим событи­ ем данной реализации цепи будет событие Ат1 и т. д. Очевидно, что каждый номер т{ определяет не только очередное событие Ami формируемой реализации, но и распределение вероятностей ртц, рта, •••,Pmik ДОЯ выбора очередного номера тн и причем для эргодических марковских цепей влияние начальных вероятностей быстро уменьшается с ростом номера испытаний. Эргодическим называется всякий марковский процесс, для которого предельное распределение

вероятностей p t(п), z= l, к, не зависит от начальных условий pi (0). Поэтому при моделировании можно принимать, что

P i ( 0 ) = p 2 ( 0 ) = . . . = p k (0)=1 /к.

Аналогично можно построить и более сложные алгоритмы, например для моделирования неоднородных марковских цепей [29].

Рассмотренные способы моделирования реализаций случайных объектов дают общее представление о наиболее типичных проце­

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

Для формирования возможных значений случайных величин с за­ данным законом распределения исходным материалом служат ба­ зовые последовательности случайных чисел {*,}, имеющие равно­ мерное распределение в интервале (0, 1). Другими словами, случай­ ные числа Xi как возможные значения случайной величины £, имеющей равномерное распределение в интервале (0,1), могут быть преобразованы в возможные значения yj случайной величины rjf закон распределения которой задан [4].

Моделирование дискретных случайных величин. Рассмотрим осо­ бенности преобразования для случая получения ди скретн ы х слу ­

134

чайных величин. Дискретная случайная величина rj принимает значения у 1 ^ у 2< ...< # < ... с вероятностями pl9p2 i Рр ..., состав­ ляющими дифференциальное распределение вероятностей

У

У1

Уг~У+»>

 

Р(п=У)

Pi

Рг -Pj--

(4.18)

При этом интегральная функция распределения

т

F'l(y)=P(q<y)= £ Pj\

"1=1, 2,

J=1

 

Р,(у)=Ъ У<У1 -

(4.19)

Для получения дискретных случайных величин можно использо­ вать метод обратной функции [10, 29, 53]. Если { — равномерно распределенная на интервале (0, 1) случайная величина, то искомая случайная величина rj получается с помощью преобразования

 

 

 

(4.20)

где

— функция, обратная Fn.

 

Алгоритм вычисления по (4.19) и (4.20) сводится к выполнению

следующих действий:

 

 

 

если х г<р, то

rj=yl9 иначе

 

если

х 2<р1+р2>т о tj=y2, иначе,

 

 

т

(4.21)

 

если

т о ц = у т , иначе,

 

X j < YJ Р р

 

 

J= 1

 

 

 

 

00

При счете по (4.21) среднее число циклов сравнения Д= J] jpj. j=i

Пример 4.8. Необходимо методом обратной функции на основании базовой последовательности случайных чисел {*,}, равномерно распределенных в интервале (О, 1), получить последовательность чисел {yj}, имеющих биномиальное распределе­

ние, задающее вероятность у удачных исходов в N реализациях некоторого экс­

перимента:

P (y= y)= P N( y ) = o j (1- p ) N~y,

гдер=0,5 и N=6; CN= N \!y\{N -y)\

Математическое ожидание и дисперсиябиномиальногораспределениясоответст­ венно будут М \у]—пр, D \y\—np{\—р).

Используя дляpj обозначения, принятые в (4.21), вычислим:

135

j

...............

1

2

3

4

5

6

7

y

j ..........

 

О

1

2

3

4

5

6

Pj

..........

 

0,01562

0,09375

0,23438

0,31250

0,23438

0,09375

0,01562

£

pj . . .

0,01562

0,10937

0,34375

0,65625

0,89063

0,98438

 

J-i

Например, получив из равномерного распределения число */=0,85393 и проведя сравненияпо алгоритму (4.21), найдем, что */=0,85393 0,89063, т. е. yj=*4.

При этом среднее число циклов сравнения Д=1 0,01562+2-0,09375+ +3 0,23438+4.0,31250+5 0,23438+ 6(0,09375+0,01562)«3,98.

Пример 4.9. Необходимо проверить стохастичность последовательности из N случайных чисел {y j}, полученных при имитации биномиального распределения при заданных параметрах пир. Простейшим способом проверки является оценка

выполненияусловий

1

*

1

"

Е yj~np,

-

Е yf*rtp(\+np-p).

N

. ,

Л .

,

Проверим на соответствие биномиальному распределению с параметрами л=5 ир=0,1 такой последовательности случайных чисел; (уЛ=0, 0, 1, 0, 1, 0, 2, 0, 1, 0; tf=10.

Вычислим лр—0,5; пр{\+пр—р)=0,1;

1

"

5

1

*

7

-

£

“ 0 ,5 ,- У у? = — =0,7.

N j-i

N j

1

10

Как видно из оценок, данная последовательность чисел {yj} хорошо в условиях

данного примера представляет биномиальное распределение с заданными парамет­ рами.

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

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

Fn(y)= p(t,< y)= ] m a y ,

—GO

где f,(y) — плотность вероятностей.

Для получения непрерывных случайных величин с заданным законом распределения, как и для дискретных величин, можно воспользоваться методом обратной функции. Взаимно однозначная монотонная функция t]=F~ln (£), полученная решением относитель­ но т/ уравнения Fn(y)=£, преобразует равномерно распределенную на интервале (0, 1) величину £ в ту с требуемой плотностью / ч(у).

136

Действительно, если случайная величина г\ имеет плотность рас­ пределения fj(y), то распределение случайной величины

м т ъ

о

является равномерным в интервале (0,1) [4,29]. На основании этого можно сделать следующий вывод. Чтобы получить число, принад­ лежащее последовательности случайных чисел {#}, имеющих функ­ цию плотности f n (у), необходимо разрешить относительно урав­ нение

/ A(y)dy=x,.

(4.22)

—оо

 

Рассмотрим некоторые примеры получения методом обратной функции непрерывных случайных величин с заданным законом рас­ пределения на основе случайных чисел, имеющих равномерное рас­ пределение в интервале (0, 1).

Пример 4.10. Необходимо получить случайные числа с показательным законом распределения

В силу соотношения (4.22) получим

X J e~Xydy= xh

о

где х i — случайное число, имеющее равномерное распределение в интервале (0, 1). Тогда

1 - e ~ Xyj= xh yj= 1п(1 - х,).

Учитывая, что случайная величина £ j= 1 —£ имеет также равномерное распреде-

1 ление в интервале (0,1), можно записать yj= - 1пх*.

Пример 411. Необходимо получить случайные числа yj с законом распределения

0<у<2/L

Воспользовавшись (4.22), получим Я(у;—Ау^/4)=х,-. Отсюда Уу=2(1 -у /1 -х ,)Х , или уу=2(1 -Jxd/X .

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

137

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

Поэтому в практике моделирования систем часто пользуются приближенными способами преобразования случайных чисел, кото­ рые можно классифицировать следующим образом: а) универсаль­ ные способы, с помощью которых можно получать случайные числа с законом распределения любого вида; б) неуниверсальные способы, пригодные для получения случайных чисел с конкретным законом распределения [4, 46].

Рассмотрим приближенный универсальны й способ получения случайных чисел, основанный на кусочной аппроксимации функции плотности. Пусть требуется получить последовательность случай­ ных чисел {уу} с функцией плотности f n(y \ возможные значения которой лежат в интервале (а, Ь). Представим /„(у) в виде кусочно­ постоянной функции, т. е. разобьем интервал (а, Ь) на т интервалов, как это показано на рис. 4.14, и будем считать f,(y ) на каждом интервале постоянной. Тогда случайную величину rj можно пред­ ставить в виде rj=ak+Tjk*9 где ак — абсцисса левой границы 5с-го интервала; t]k* — случайная величина, возможные значения которой располагаются равномерно внутри &-го интервала, т. е. на каждом участке ak+ak+i величина щ* считается распределенной равномерно. Чтобы аппроксимироватьf n(y) наиболее удобным для практических целей способом, целесообразно разбить (а, b) на интервалы так, чтобы вероятность попадания случайной величины rj в любой ин­ тервал (аь ак+1) была постоянной, т. е. не зависела от номера интервала к. Таким образом, для вычисления ак воспользуемся следующим соотношением:

 

Jс+1A (y)dy= i/m .

 

 

 

(4.23)

 

ак

 

 

 

 

 

Алгоритм машинной реа­

 

лизации

этого способа полу­

 

чения

случайных

чисел

сво­

 

дится

к

последовательному

 

выполнению следующих дей­

Ч Чч

ствий: 1) генерируется случай­

ное равномерно распределен­

 

ное число Xi из интервала (О,

Рис. 4.14. Кусочная аппроксимация функции^

 

1

г

4 ’

плотности

1); 2) с помощью этого числа

138

случайным образом выбирается интервал (ак, ак+1); 3) генерируется число jcl+i и масштабируется с целью приведения его к интервалу (ак, ак+О, т. е. домножается на коэффициент (ak+l—ak)xi+l; 4) вычис­ ляется случайное число yj= ак+(ак+1ak)xi+г с требуемым законом распределения.

Рассмотрим более подробно процесс выборки интервала (ак, ak+i) с помощью случайного числа xh Целесообразно для этой цели построить таблицу (сформировать массив), в которую предварите­ льно поместить номера интервалов к и значения коэффициента масштабирования, определенные из соотношения (4.23) для приве­ дения числа к интервалу (л, Ь). Получив из генератора случайное число x h с помощью этой таблицы сразу определяем абсциссу левой границы ак и коэффициент масштабирования (ак+1—ак).

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

Рассмотрим способы преобразования последовательности рав­ номерно распределенных случайных чисел {х,} в последователь­ ность с заданным законом распределения {у^ на основе предельных теорем теории вероятностей. Такие способы ориентированы на получение последовательностей чисел с конкретным законом рас­ пределения, т. е. не являются универсальными [29, 43]. Поясним сказанное примерами.

Пример 4.12. Пусть требуется получить последовательность случайных чисел (ty), имеющих нормальное распределение с математическим ожиданием а и средним квадратическим отклонением а:

, , ч -(у-а?Ц2о>)

Л (у)= е

JyJlna.

Будем формировать случайные числа yj в виде сумм последовательностей слу­ чайных чисел (x j, имеющих равномерное распределение в интервале (0, 1). Так как исходной (базовой) последовательностью случайных чисел (x j при суммировании является последовательность чисел, имеющих равномерное распределение в интерва­ ле (0, 1), то можно воспользоваться центральной предельной теоремой для одина­ ково распределенных случайных величин (см. § 4.1): если независимые одинаково распределенные случайные величины х и ..., xNимеют каждая математическое ожида-

N

ние ах и среднее квадратическое отклонение аи то сумма £ х/ асимптотически

1-1

нормальна с математическим ожиданием a=Nax и средним квадратическим от­

клонением a —a .J N .

1

N

Как показывают расчеты, сумма

х,- имеет распределение, близкое к нормаль-

i B l

ному, уже при сравнительно небольших N Практически для получения последовате­ льности нормально распределенных случайных чисел можно пользоваться значение

139

ями N 8ч-12, а в простейших случа­ ях — меньшими значениями N, напри­ мер W=4-s-5 [4].

Пример 4.13. Пусть необходимо получить случайные числа, имеющие закон распределения Пуассона:

Рис. 4.15. Схема алгоритма генерации последовательности случайных чисел, имеющих пуассоновское распределение

Р{т)=— е~х.

т!

Для этого воспользуемся предельной теоремой Пуассона (см. § 4.1): если

Р — вероятность наступления события

Апри одном испытании, то вероят­ ность наступления т событий в N

независимых испытаниях при N~*co, р-*0, Np—k асимптотически равна

Pim).

Выберем достаточно большое N, такое, чтобы p = k /N < \, будем прово­ дить серии по N независимых испыта­ ний, в каждом из которых событие А происходит с вероятностью р, и бу­ дем подсчитывать число случаев yj фа­ ктического наступления события А в серии с номером j. Числа yj будут

приближенно следовать закону Пуассона, причем тем точнее, чем больше N. Прак­ тически N должно выбираться таким образом, чтобы р <0,1 -f-0,2 [4].

Алгоритм генерации последовательности случайных чисел у^ имеющих пуас­ соновское распределение, с использованием данного способа показан на рис. 4.15. Здесь LA=k; N=N; PN=p; XI= xt — случайные числа последовательности, равноме­ рно распределенной в интервале (0, 1); YJ=y/, NO — вспомогательная переменная; ВИД [...] — процедура ввода исходных данных; ВЫЧ [...] — процедура вычисления; ГЕН [...] — процедура генерации случайных чисел; ВРМ [...] — процедура выдачи результатов моделирования.

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

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

случайная величина (£, ц) является дискретной

и ее составляю­

щая £ принимает возможные значения

х и

х 2,

...,

х„, а

состав­

ляющая rj — значения у 19у 29...,у„,

причем

каждой

паре

(xh уу)

соответствует вероятность рц.

Тогда

каждому

возможному

140

Соседние файлы в папке книги