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