книги / Моделирование систем
..pdfпользования машинной имитации для исследования и проектирова ния систем [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
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). Для этого из после довательности чисел {*,•} выбирается число хти сравнивается с 1Гиз (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 |
- |
£ |
1° |
“ 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= ак+(ак+1—ak)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