Расчёт вероятности поглощения в состоянии — различия между версиями
Hazzus (обсуждение | вклад) |
Igusev (обсуждение | вклад) (Лишний псевдокод вынесене в одельную статью и редактирован(ссылка добавлена в "Смотри также", имена переменных были обернуты в \mathtt.) |
||
Строка 8: | Строка 8: | ||
Тогда рассмотрим сумму <tex>\sum\limits_{\forall(i_{1} ... i_{r-1})} {p_{i, i_{1}} \cdot p_{i_{1}, i_{2}} \cdot ... \cdot p_{i_{r-1}, j}} = Q^{r-1} \cdot R</tex>, где <tex>Q</tex> - матрица переходов между несущественными состояниями, <tex>R</tex> - из несущественного в существенное. | Тогда рассмотрим сумму <tex>\sum\limits_{\forall(i_{1} ... i_{r-1})} {p_{i, i_{1}} \cdot p_{i_{1}, i_{2}} \cdot ... \cdot p_{i_{r-1}, j}} = Q^{r-1} \cdot R</tex>, где <tex>Q</tex> - матрица переходов между несущественными состояниями, <tex>R</tex> - из несущественного в существенное. | ||
Матрица <tex>G</tex> определяется их суммированием по всем длинам пути из i в j: <tex>G = \sum\limits_{r = 1}^{\infty}{Q^{r-1} \cdot R} = (I + Q + Q^{2} + Q^{3} + ...) \cdot R = NR</tex>, т.к. <tex>(I + Q + Q^2 + ...) \cdot (I - Q) = I - Q + Q - Q^{2} + ... = I</tex>, а фундаментальная матрица марковской цепи <tex>N = (I - Q)^{-1}</tex> }} | Матрица <tex>G</tex> определяется их суммированием по всем длинам пути из i в j: <tex>G = \sum\limits_{r = 1}^{\infty}{Q^{r-1} \cdot R} = (I + Q + Q^{2} + Q^{3} + ...) \cdot R = NR</tex>, т.к. <tex>(I + Q + Q^2 + ...) \cdot (I - Q) = I - Q + Q - Q^{2} + ... = I</tex>, а фундаментальная матрица марковской цепи <tex>N = (I - Q)^{-1}</tex> }} | ||
− | =Псевдокод= | + | ==Псевдокод== |
− | + | Выведем ответ: в <tex>\mathtt{i}</tex>-ой строке вероятность поглощения в <tex>\mathtt{i}</tex>-ом состоянии. Естественно, для несущественного состояния это <tex>\mathtt{0}</tex>, в ином случае <tex>\mathtt{p_i=((\sum_{k=1}^n G[k][j]+1)/n}</tex> где <tex>\mathtt{j}</tex> - номер соответствующий <tex>\mathtt{i}</tex>-ому состоянию в матрице <tex>\mathtt{G}</tex> (т.е. под которым оно располагалось в матрице <tex> \mathtt{R} </tex> т.е. значение <tex>\mathtt{position[i]}</tex>). Прибавлять <tex>\mathtt{1}</tex> нужно т.к. вероятность поглотиться в <tex>\mathtt{i}</tex>-ом поглощающем состоянии, оказавшись изначально в нем же равна <tex>\mathtt{1}</tex>. | |
− | + | *<tex>\mathtt{probability[i]}</tex> - вероятность поглощения в <tex>\mathtt{i}</tex>-ом состоянии | |
− | < | + | *<tex>\mathtt{absorbing[i]}</tex> - является ли i-е состояние поглощающим |
− | + | ||
− | + | '''function''' getAbsorbingProbability(absorbing: boolean[n], G: float[n][n]) | |
− | + | float probability[n] | |
− | + | '''for''' i = 0 '''to''' n - 1 | |
− | </ | + | prob = 0 |
− | + | '''if''' absorbing[i] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ''' | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | '''if''' | ||
− | |||
'''for''' j = 0 '''to''' nonabs - 1 | '''for''' j = 0 '''to''' nonabs - 1 | ||
− | + | prob += G[j][position[i]] | |
− | + | prob++ | |
− | + | prob /= n | |
− | + | probability[i] = prob | |
− | + | return probability | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | = | + | ==Смотри также== |
+ | *[http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%B4%D1%81%D1%87%D0%B5%D1%82_%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B0_%D0%BF%D0%BE%D0%B3%D0%BB%D0%BE%D1%89%D0%B0%D1%8E%D1%89%D0%B8%D1%85_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D0%B9_%D0%B8_%D0%BF%D0%BE%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D0%BF%D0%B5%D1%80%D0%B5%D1%85%D0%BE%D0%B4%D0%BE%D0%B2_%D0%BC%D0%B0%D1%80%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%B8 Подсчет количества поглощающих состояний и построение матриц переходов марковской цепи] | ||
+ | ==Источники информации== | ||
* [http://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BF%D1%8C_%28%D0%BC%D0%B0%D1%82%D0%B5%D0%BC.%29 Википедия - Цепи Маркова] | * [http://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BF%D1%8C_%28%D0%BC%D0%B0%D1%82%D0%B5%D0%BC.%29 Википедия - Цепи Маркова] | ||
* Кемени Дж., Снелл Дж. "Конечные цепи Маркова". | * Кемени Дж., Снелл Дж. "Конечные цепи Маркова". |
Версия 07:38, 21 марта 2018
Поглощающее(существенное) состояние цепи Маркова - состояние с вероятностью перехода в самого себя
. Составим матрицу , элементы которой равны вероятности того, что, выйдя из , попадём в поглощающее состояние .Теорема: |
Доказательство: |
Пусть этот переход будет осуществлён за Матрица шагов: → → → ... → → j, где все являются несущественными. Тогда рассмотрим сумму , где - матрица переходов между несущественными состояниями, - из несущественного в существенное. определяется их суммированием по всем длинам пути из i в j: , т.к. , а фундаментальная матрица марковской цепи |
Псевдокод
Выведем ответ: в
-ой строке вероятность поглощения в -ом состоянии. Естественно, для несущественного состояния это , в ином случае где - номер соответствующий -ому состоянию в матрице (т.е. под которым оно располагалось в матрице т.е. значение ). Прибавлять нужно т.к. вероятность поглотиться в -ом поглощающем состоянии, оказавшись изначально в нем же равна .- - вероятность поглощения в -ом состоянии
- - является ли i-е состояние поглощающим
function getAbsorbingProbability(absorbing: boolean[n], G: float[n][n]) float probability[n] for i = 0 to n - 1 prob = 0 if absorbing[i] for j = 0 to nonabs - 1 prob += G[j][position[i]] prob++ prob /= n probability[i] = prob return probability
Смотри также
Источники информации
- Википедия - Цепи Маркова
- Кемени Дж., Снелл Дж. "Конечные цепи Маркова".