Имитация случайных событий

 

Пусть события S1, S2,..., Smобразуют полную группу несовместимых событий, каждое из которых может произойти с вероятностью Рi, причем . Это означает, что в результате одного опыта может произойти лишь одно из событий S1, S2,..., Sm. Рассмотрим метод и алгоритм имитации данных случайных событий.

Разбиваем отрезок [0,1] на m частей длиной Р1,Р2,...,Рm, при этом точки деления отрезка имеют следующие координаты:

,

как это показано на рис. 4.12.

 

Рис. 4.12

 

Имитация осуществляется следующим образом. Пусть теперь Х - очередное число от датчика псевдослучайных, квазиравномерно распределенных чисел, который далее для упрощения будем называть генератором случайных чисел. Если число генератора Аk-1£Х<Аk, то считаем, что произошло событие Sk. Действительно

Р(Sk)=Р(Ak-1<Х<Ak)=Ak-Ak-1=Рk.

Алгоритм имитации несовместимых событий S1, S2,..., Sm, образующих полную группу, рассмотрим для случая m=5. Схема алгоритма приведена на рис. 4.13.

 

 

Рис. 4.13

 

На каждом такте моделирования случайное число Х сравнивается со значениями А1, А2, А3, А4, А5в блоках 4, 6, 8, 10 соответственно.

Если случайное число Х£А1, то произошло событие S1и содержимое счетчика K[1] увеличивается на единицу. Если случайное число Х£А2, то произошло событие S2и содержимое счетчика K[2] увеличивается на единицу и т.д. События S1, S2,..., Smмогут образовывать неполную группу несовместимых событий. Если событие Si происходит с вероятностью Рi, то для этих событий .

Для имитации событий S1, S2,..., Sm, образовывающих неполную группу, необходимо ввести дополнительное событие S0, с которым связано непоявление ни одного из вышеперечисленных событий. Вероятность события S0определится по формуле . После введения события S0имитация неполной группы событий осуществляется по аналогии с рассмотренной выше имитацией событий, образующих полную группу несовместимых событий.

Рассмотрим ситуацию, когда осуществляется имитация зависимых событий. Событие Вбудет зависеть от события А, если после наступления события А событие В может произойти с условной вероятность Р(В/А).

Метод и алгоритм имитации рассмотрим на примере.

Пусть события S1, S2, S3, S4образуют полную группу независимых событий. Если происходит событие S1, то с вероятностью Р(U1/S1)=Р(11) может произойти событие U1. Если происходит событие S2, то с вероятностью Р(H1/S2)=Р(12) может произойти событие H1и с вероятностью Р(H2/S2)=Р(22) может произойти событие H2, причем события H1и H2образуют полную группу событий. Если происходит событие S4, то с вероятностью Р(D1/S4)=Р(14) может произойти событие D1.

На рис. 4.14 приведен граф событий.

 

Рис. 4.14

 

На рис. 4.15 приведена схема алгоритма имитации рассмотренной системы случайных событий.

После генерации случайного числа Х (см. блок 3) в блоке 4 проверяется условие появления события А1.

Если событие А1произошло, то содержимое счетчика KS[1] увеличивается на единицу (см. блок 5) и генерируется случайное число Х (см. блок 6). В блоке 7 проверяется условие появления события U1. Если событие U1произошло, то содержимое счетчика KU[1] увеличивается на единицу (см. блок 8). Если событие А1не произошло, то в алгоритме выполняется переход от блока 4 к блоку 9 и проверяется условие появления события А2. Если событие А2произошло, то содержимое счетчика KS[2] увеличивается на единицу (см. блок 10) и генерируется случайное число Х (см. блок 11).

В блоке 12 проверяется условие появления события H1. Если событие H1произошло, то содержимое счетчика KH[1] увеличивается на единицу (см. блок 13). Если событие H1не произошло, то считается, что произошло событие H2, т.к. события H1и H2составляют полную группу. Содержимое счетчика KH[2] увеличивается на единицу (см. блок 14).

 

 

Рис. 4.15

 

Если событие А2не произошло, то в алгоритме выполняется переход от блока 9 к блоку 15 и проверяется условие появления события А3. Если событие А3произошло, то содержимое счетчика KS[3] увеличивается на единицу (см. блок 16).

Если событие А3не произошло, то считается, что произошло событие А4. Содержимое счетчика KS[4] увеличивается на единицу (см. блок 17) и генерируется случайное число Х (см. блок 18). В блоке 19 проверяется условие появления события D1. Если событие D1произошло, то содержимое счетчика KD[1] увеличивается на единицу (см. блок 20). В блоке 21 осуществляется контроль выполнения цикла по переменной N.