|
Лекция 33.
|
Рис. 33.1. Пример графа переходов |
Каждый переход характеризуется вероятностью перехода Pij. Вероятность Pij показывает, как часто после попадания в i-е состояние осуществляется затем переход в j-е состояние. Конечно, такие переходы происходят случайно, но если измерить частоту переходов за достаточно большое время, то окажется, что эта частота будет совпадать с заданной вероятностью перехода.
Ясно, что у каждого состояния сумма вероятностей всех переходов (исходящих стрелок) из него в другие состояния должна быть всегда равна 1 (см. рис. 33.2).
Рис. 33.2. Фрагмент графа переходов (переходы из i-го состояния являются полной группой случайных событий) |
Например, полностью граф может выглядеть так, как показано на рис. 33.3.
Рис. 33.3. Пример марковского графа переходов |
Реализация марковского процесса (процесс его моделирования) представляет собой вычисление последовательности (цепи) переходов из состояния в состояние (см. рис. 33.4). Цепь на рис. 33.4 является случайной последовательностью и может иметь также и другие варианты реализации.
Рис. 33.4. Пример марковской цепи, смоделированной по марковскому графу, изображенному на рис. 33.3 |
Чтобы определить, в какое новое состояние перейдет процесс из текущего i-го состояния, достаточно разбить интервал [0; 1] на подынтервалы величиной Pi1, Pi2, Pi3, (Pi1 + Pi2 + Pi3 + = 1), см. рис. 33.5. Далее с помощью ГСЧ надо получить очередное равномерно распределенное в интервале [0; 1] случайное число rрр и определить, в какой из интервалов оно попадает (см. лекцию 23).
Рис. 33.5. Процесс моделирования перехода из i-го состояния марковской цепи в j-е с использованием генератора случайных чисел |
После этого осуществляется переход в состояние, определенное ГСЧ, и повтор описанной процедуры для нового состояния. Результатом работы модели является марковская цепь (см. рис. 33.4).
Пример. Имитация стрельбы из пушки по цели. Для того, чтобы проимитировать стрельбу из пушки по цели, построим модель марковского случайного процесса.
Определим следующие три состояния: S0 цель не повреждена; S1 цель повреждена; S2 цель разрушена. Зададим вектор начальных вероятностей:
|
Значение P0 для каждого из состояний показывает, какова вероятность каждого из состояний объекта до начала стрельбы.
Зададим матрицу перехода состояний (см. табл. 33.1).
Таблица 33.1. Матрица вероятностей перехода дискретного марковского процесса |
||||||||||||||||||||
|
Матрица задает вероятность перехода из каждого состояния в каждое. Заметим, что вероятности заданы так, что сумма вероятностей перехода из некоторого состояния в остальные всегда равна единице (куда-то система должна перейти обязательно).
Наглядно модель марковского процесса можно представить себе в виде следующего графа (см. рис. 33.6).
Рис. 33.6. Граф марковского процесса, моделирующий стрельбу из пушки по цели |
Используя модель и метод статистического моделирования, попытаемся решить следующую задачу: определить среднее количество снарядов, необходимое для полного разрушения цели.
Проимитируем, используя таблицу случайных чисел, процесс стрельбы. Пусть
начальное состояние будет
S0.
Возьмем последовательность из таблицы случайных чисел: 0.31, 0.53, 0.23, 0.42,
0.63, 0.21,
(случайные числа можно взять, например, из
этой таблицы).
0.31: цель находится в состоянии
S0
и остается в состоянии
S0, так как
0 < 0.31 < 0.45;
0.53: цель находится в состоянии
S0
и переходит в состояние
S1,
так как
0.45 < 0.53 < 0.45 + 0.40;
0.23: цель находится в состоянии
S1
и остается в состоянии
S1,
так как
0 < 0.23 < 0.45;
0.42: цель находится в состоянии
S1
и остается в состоянии
S1,
так как
0 < 0.42 < 0.45;
0.63: цель находится в состоянии
S1
и переходит в состояние
S2,
так как
0.45 < 0.63 < 0.45 + 0.55.
Так как достигнуто состояние S2 (далее цель переходит из S2 в состояние S2 с вероятностью 1), то цель поражена. Для этого в данном эксперименте потребовалось 5 снарядов.
На рис. 33.7 приведена временная диаграмма, которая получается во время описанного процесса моделирования. Диаграмма показывает, как во времени происходит процесс изменения состояний. Такт моделирования для данного случая имеет фиксированную величину. Нам важен сам факт перехода (в какое состояние переходит система) и не важно, когда это происходит.
Рис. 33.7. Временная диаграмма переходов в марковском графе (пример имитации) |
Процедура уничтожения цели совершена за 5 тактов, то есть марковская цепь этой реализации выглядит следующим образом: S0S0S1S1S1S2. Конечно, ответом задачи это число быть не может, так как в разных реализациях получатся разные ответы. А ответ у задачи может быть только один.
Повторяя данную имитацию, можно получить, например, еще такие реализации (это зависит от того, какие конкретно случайные числа выпадут): 4 (S0S0S1S1S2); 11 (S0S0S0S0S0S1S1S1S1S1S1S2); 5 (S1S1S1S1S1S2); 6 (S0S0S1S1S1S1S2); 4 (S1S1S1S1S2); 6 (S0S0S1S1S1S1S2); 5 (S0S0S1S1S1S2). Всего уничтожено 8 целей. Среднее число циклов в процедуре стрельбы составило: (5 + 4 + 11 + 5 + 6 + 4 + 6 + 5)/8 = 5.75 или, округляя, 6. Именно столько снарядов, в среднем, рекомендуется иметь в боевом запасе пушки для уничтожения цели при таких вероятностях попаданий.
Теперь следует определить точность. Именно точность может нам показать, насколько следует доверять данному ответу. Для этого проследим, как сходится последовательность случайных (приближенных) ответов к правильному (точному) результату. Напомним, что, согласно центральной предельной теореме (см. лекцию 25, лекцию 21), сумма случайных величин есть величина неслучайная, поэтому для получения статистически достоверного ответа необходимо следить за средним числом снарядов, получаемых в ряде случайных реализаций.
На первом этапе вычислений средний ответ составил 5 снарядов, на втором этапе средний ответ составил (5 + 4)/2 = 4.5 снаряда, на третьем (5 + 4 + 11)/3 = 6.7. Далее ряд средних величин, по мере накопления статистики, выглядит следующим образом: 6.3, 6.2, 5.8, 5.9, 5.8. Если изобразить этот ряд в виде графика средней величины выпущенных снарядов, необходимых для поражения цели, в зависимости от номера эксперимента, то обнаружится, что данный ряд сходится к некоторой величине, которая и является ответом (см. рис. 33.8).
Рис. 33.8. Изменение средней величины в зависимости от номера эксперимента |
Визуально мы можем наблюдать, что график «успокаивается», разброс между вычисляемой текущей величиной и ее теоретическим значением со временем уменьшается, стремясь к статистически точному результату. То есть в некоторый момент график входит в некоторую «трубку», размер которой и определяет точность ответа.
Алгоритм имитации будет иметь следующий вид (см. рис. 33.9).
Еще раз заметим, что в вышерассмотренном случае нам безразлично, в какие моменты времени будет происходить переход. Переходы идут такт за тактом. Если важно указать, в какой именно момент времени произойдет переход, сколько времени система пробудет в каждом из состояний, требуется применить модель с непрерывным временем.
Итак, снова модель марковского процесса представим в виде графа, в котором состояния (вершины) связаны между собой связями (переходами из i-го состояния в j-е состояние), см. рис. 33.10.
Рис. 33.10. Пример графа марковского процесса с непрерывным временем |
Теперь каждый переход характеризуется плотностью вероятности перехода λij. По определению:
При этом плотность понимают как распределение вероятности во времени.
Переход из i-го состояния в j-е происходит в случайные моменты времени, которые определяются интенсивностью перехода λij.
К интенсивности переходов (здесь это понятие совпадает по смыслу с распределением плотности вероятности по времени t) переходят, когда процесс непрерывный, то есть, распределен во времени.
С интенсивностью потока (а переходы это поток событий) мы уже научились работать в лекции 28. Зная интенсивность λij появления событий, порождаемых потоком, можно сымитировать случайный интервал между двумя событиями в этом потоке.
где τij интервал времени между нахождением системы в i-ом и j-ом состоянии.
Далее, очевидно, система из любого i-го состояния может перейти в одно из нескольких состояний j, j + 1, j + 2, , связанных с ним переходами λij, λij + 1, λij + 2, .
В j-е состояние она перейдет через τij; в (j + 1)-е состояние она перейдет через τij + 1; в (j + 2)-е состояние она перейдет через τij + 2 и т. д.
Ясно, что система может перейти из i-го состояния только в одно из этих состояний, причем в то, переход в которое наступит раньше.
Поэтому из последовательности времен: τij, τij + 1, τij + 2 и т. д. надо выбрать минимальное и определить индекс j, указывающий, в какое именно состояние произойдет переход.
Пример. Моделирование работы станка. Промоделируем работу станка (см. рис. 33.10), который может находиться в следующих состояниях: S0 станок исправен, свободен (простой); S1 станок исправен, занят (обработка); S2 станок исправен, замена инструмента (переналадка) λ02 < λ21; S3 станок неисправен, идет ремонт λ13 < λ30.
Зададим значения параметров λ, используя экспериментальные данные, получаемые в производственных условиях: λ01 поток на обработку (без переналадки); λ10 поток обслуживания; λ13 поток отказов оборудования; λ30 поток восстановлений.
Реализация будет иметь следующий вид (см. рис. 33.11).
Рис. 33.11. Пример моделирования непрерывного марковского процесса с визуализацией на временной диаграмме (желтым цветом указаны запрещенные, синим реализовавшиеся состояния) |
В частности, из рис. 33.11 видно, что реализовавшаяся цепь выглядит так: S0S1S0 Переходы произошли в следующие моменты времени: T0T1T2T3 , где T0 = 0, T1 = τ01, T2 = τ01 + τ10.
Задача. Поскольку модель строят для того, чтобы на ней можно было решить задачу, ответ которой до этого был для нас совсем не очевиден (см. лекцию 01), то сформулируем такую задачу к данному примеру. Определить долю времени в течение суток, которую занимает простой станка (посчитать по рисунку) Tср = (T + T + T + T )/N.
Алгоритм имитации будет иметь следующий вид (см. рис. 33.12).
Рис. 33.12. Блок-схема алгоритма моделирования непрерывного марковского процесса на примере имитации работы станка |
Очень часто аппарат марковских процессов используется при моделировании компьютерных игр, действий компьютерных героев.
Лекция 32. Общие принципы построения | Лекция 34. Фиксация и обработка статистических | ||||||||||||||||
|