Подсчёт количества поглощающих состояний и построение матриц переходов марковской цепи — различия между версиями
Igusev (обсуждение | вклад) |
Arimon (обсуждение | вклад) м (Исправлены грамматические ошибки, добавлено см.также) |
||
| Строка 1: | Строка 1: | ||
==Подсчет количества поглощащих состояний== | ==Подсчет количества поглощащих состояний== | ||
| − | Пусть <tex>\mathtt{transition}</tex> | + | Пусть <tex>\mathtt{transition}</tex> — массив переходов марковской цепи, где <tex>\mathtt{transition[i][2]}</tex> — вероятность перехода из состояния <tex>\mathtt{transition[i][0]}</tex> в <tex>\mathtt{transition[i][1]}</tex>. |
| − | Тогда, по определению поглощающего состояния, если <tex>\mathtt{j}</tex> | + | Тогда, по определению поглощающего состояния, если <tex>\mathtt{j}</tex> — поглощающее состояние, то <tex>\mathtt{transition[j][2] = 1}</tex>. По этому признаку можно определить все поглощающие состояния в цепи. |
===Псевдокод=== | ===Псевдокод=== | ||
| − | *<tex>\mathtt{absorbing}: boolean:[\mathtt{n}]</tex> | + | *<tex>\mathtt{absorbing}: boolean:[\mathtt{n}]</tex> — массив состояний. Если i — посглощающее состояние absorbing[i] = true |
| − | *<tex>\mathtt{n}</tex> | + | *<tex>\mathtt{n}</tex> — количество состояний |
| − | *<tex>\mathtt{m}</tex> | + | *<tex>\mathtt{m}</tex> — количество переходов |
'''function''' findAbsorbings(transition: '''int'''[m][2]): | '''function''' findAbsorbings(transition: '''int'''[m][2]): | ||
| Строка 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> | + | *<tex>\mathtt{position[n]}</tex> — массив нумерации состояний относительно существенной/несущественной матрицы. |
| − | *<tex>\mathtt{Q}</tex> | + | *<tex>\mathtt{Q}</tex> — матрица перехода мужду несущественными состояниями. |
| − | *<tex>\mathtt{R}</tex> | + | *<tex>\mathtt{R}</tex> — матрица из несущественных состояний в поглощающие. |
'''procedure''' buildTransitionMatrix() | '''procedure''' buildTransitionMatrix() | ||
| Строка 39: | Строка 39: | ||
Q[position[transition[i][0]]][position[transition[i][1]]] = transition[i][2] | Q[position[transition[i][0]]][position[transition[i][1]]] = transition[i][2] | ||
| + | == См. также == | ||
| + | *[[Марковская цепь]] | ||
| + | *[[Расчет вероятности поглощения в состоянии]] | ||
| + | *[[Математическое ожидание времени поглощения]] | ||
== Источники информации == | == Источники информации == | ||
Версия 17:02, 16 июня 2018
Содержание
Подсчет количества поглощащих состояний
Пусть — массив переходов марковской цепи, где — вероятность перехода из состояния в . Тогда, по определению поглощающего состояния, если — поглощающее состояние, то . По этому признаку можно определить все поглощающие состояния в цепи.
Псевдокод
- — массив состояний. Если i — посглощающее состояние absorbing[i] = true
- — количество состояний
- — количество переходов
function 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]
См. также
- Марковская цепь
- Расчет вероятности поглощения в состоянии
- Математическое ожидание времени поглощения