Подсчёт количества поглощающих состояний и построение матриц переходов марковской цепи — различия между версиями
Arimon (обсуждение | вклад) м (→Псевдокод: исправлен псевдокод) |
Arimon (обсуждение | вклад) м (→Псевдокод: изменен тип transition) |
||
| Строка 8: | Строка 8: | ||
*<tex>\mathtt{m}</tex> — количество переходов | *<tex>\mathtt{m}</tex> — количество переходов | ||
| − | '''boolean[]''' findAbsorbings(transition: ''' | + | '''boolean[]''' findAbsorbings(transition: '''float'''[m][3]): |
'''boolean''' absorbing[n] | '''boolean''' absorbing[n] | ||
'''for''' i = 0 '''to''' m - 1 | '''for''' i = 0 '''to''' m - 1 | ||
Версия 17:21, 23 июня 2018
Содержание
Подсчет количества поглощащих состояний
Пусть — массив переходов марковской цепи, где — вероятность перехода из состояния в . Тогда, по определению поглощающего состояния, если — поглощающее состояние, то . По этому признаку можно определить все поглощающие состояния в цепи.
Псевдокод
- — массив состояний. Если — посглощающее состояние иначе
- — количество состояний
- — количество переходов
boolean[] findAbsorbings(transition: float[m][3]):
boolean absorbing[n]
for i = 0 to m - 1
absorbing[transition[i][0]] = transition[i][0] == transition[i][1] and transition[i][2] == 1
return absorbing
Построение матриц переходов
Cоздадим сначала массив где -ый элемент указывает под каким номером будет находиться -ое состояние среди существенных если оно существенное или несущественных в обратном случае, и заполним эти массивы.
Псевдокод
- — массив нумерации состояний относительно существенной/несущественной матрицы.
- — матрица перехода мужду несущественными состояниями.
- — матрица из несущественных состояний в поглощающие.
procedure buildTransitionMatrix(absorbing: boolean[n]):
int count_q = 0
int count_r = 0
for i = 0 to n - 1
if absorbing[i]
position[i] = count_r
count_r++
else
position[i] = count_q
count_q++
for i = 0 to m - 1
if absorbing[transition[i][1]]
if !absorbing[transition[i][0]]
R[position[transition[i][0]]][position[transition[i][1]]] = transition[i][2]
else
Q[position[transition[i][0]]][position[transition[i][1]]] = transition[i][2]
См. также
- Марковская цепь
- Расчет вероятности поглощения в состоянии
- Математическое ожидание времени поглощения