Подсчёт количества поглощающих состояний и построение матриц переходов марковской цепи — различия между версиями
Igusev (обсуждение | вклад) м (Igusev переименовал страницу Подсчет состояний марковской цепи в Подсчет поглощающих состояний марковской цепи: уточнение темы) |
Igusev (обсуждение | вклад) (sta) |
||
Строка 1: | Строка 1: | ||
− | == | + | ==Подсчет количества поглощащих состояний== |
Пусть <tex>\mathtt{transition}</tex> - массив переходов марковской цепи, где <tex>\mathtt{transition[i][2]}</tex> - вероятность перехода из состояния <tex>\mathtt{transition[i][0}</tex> в <tex>\mathtt{transition[i][1]}</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{transition[j][2] = 1}</tex>. По этому признаку помно определить все поглощающие состояния в цепи. | Тогда, по определению поглощающего состояния, если <tex>\mathtt{j}</tex> - поглощающее состояние, то <tex>\mathtt{transition[j][2] = 1}</tex>. По этому признаку помно определить все поглощающие состояния в цепи. | ||
− | ==Псевдокод== | + | ===Псевдокод=== |
*<tex>\mathtt{absorbing}: boolean:[\mathtt{n}]</tex> - массив состояний. Если i - посглощающее состояние absorbing[i] = true | *<tex>\mathtt{absorbing}: boolean:[\mathtt{n}]</tex> - массив состояний. Если i - посглощающее состояние absorbing[i] = true | ||
*<tex>\mathtt{n}</tex> - количество состояний | *<tex>\mathtt{n}</tex> - количество состояний | ||
Строка 14: | Строка 14: | ||
absorbing[transition[i][0]] = ''true'' | absorbing[transition[i][0]] = ''true'' | ||
'''return''' absorbing | '''return''' absorbing | ||
+ | |||
+ | ==Построение матриц переходов== | ||
+ | Cоздадим сначала массив <tex>\mathtt{position}</tex> где <tex>\mathtt{i}</tex>-ый элемент указывает под каким номером будет находиться <tex>\mathtt{i}</tex>-ое состояние среди существенных если оно существенное или несущественных в обратном случае, и заполним эти массивы. | ||
+ | ===Псевдокод=== | ||
+ | *<tex>\mathtt{position[n]}</tex> - массив нумерации состояний относительно существенной/ несущественной матрицы. | ||
+ | *<tex>\mathtt{Q}</tex> - матрица перехода мужду несущественными состояниями. | ||
+ | *<tex>\mathtt{R}</tex> - матрица из несущественных состояний в поглощающие. | ||
+ | |||
+ | '''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] | ||
+ | |||
== Источники информации == | == Источники информации == | ||
*[https://en.wikipedia.org/wiki/Absorbing_Markov_chain Wikipedia: Absorbing Markov chain] | *[https://en.wikipedia.org/wiki/Absorbing_Markov_chain Wikipedia: Absorbing Markov chain] |
Версия 02:07, 21 марта 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]