Изменения

Перейти к: навигация, поиск

Марковская цепь

14 865 байт добавлено, 19:17, 4 сентября 2022
м
rollbackEdits.php mass rollback
[[Категория:В разработке]]{{Определение|definition ='''Цепь Маркова''' (англ. ''Markov chain'') {{В разработке---}}последовательность случайных событий с конечным или счётным числом исходов, характеризующаяся тем, что при фиксированном настоящем будущее независимо от прошлого.
== Определение ==Процесс в каждый момент времени находится в одном из <tex> n </tex> состояний.
{{Определение | definition ='''Цепь Маркова''' {{---}} процесс, находящийся в одном из <tex>n</tex> состояний. При этом, если он находиться находится в состоянии с номером <tex>i</tex>, то он перейдет в состояние <tex>j</tex> с вероятностью <tex>p_{ij}</tex>.
Матрицу <tex>P = ||p_{ij}||</tex> называют '''матрицей переходов'''(англ. ''transition matrix'').
}}
 
[[File:Markov_chain_example.png|thumb|273px|Пример марковской цепи]]
На матрицу переходов накладываются следующие условия:
Такая матрица называется ''стохастической''.
В общем случае Марковскую цепь можно представить в виде [[Основные определения теории графов#Ориентированные графы | графа]], в котором вершины — это состояния процесса, а ребра — переходы между состояниями, и на ребре из <tex> i </tex> в <tex> j </tex> написана вероятность перехода из <tex> i </tex> в <tex> j </tex>, то есть <tex> p_{ij} </tex>. == Распределение вероятностей == Марковскую цепь в любой момент времени <tex> t </tex> можно охарактеризовать вектором-строкой <tex> c_t </tex> — распределением вероятностей по состояниям цепи (<tex> c_{ti} </tex> — вероятность цепи в момент времени <tex> t </tex> быть в состоянии <tex> i </tex>). Если <tex> c_i </tex> — текущее распределение вероятностей, то можно узнать распределение на следующем шаге, умножив вектор на матрицу перехода: <tex> c_{i + 1} = c_{i} \times P </tex>. Из ассоциативности произведения матриц следует, что для того, чтобы узнать распределение вероятностей через <tex> t </tex> шагов, нужно умножить <tex> c_i </tex> на матрицу перехода, возведённую в степень <tex> t </tex>: <tex> c_{i + t} = c_{i} \times P^t </tex>. Для марковской цепи иногда задают вектор начальное распределение <tex> c_0</tex>, хотя во многих классах марковских цепей распределение по прошествии большого периода времени от него не зависит (такое распределение называют '''предельным''' (англ. ''limiting distribution'')). == Достижимость и сообщаемость ==Обозначим вероятность попасть из состояния <tex> i </tex> в состояние <tex> j </tex> за <tex> n </tex> переходов как <tex>\ c_p_{ij}^{0i(n)} </tex> . {{---Определение|definition=Состояние <tex> j </tex> '''достижимо''' (англ. ''accesible'') из состояния <tex> i </tex>, если существует такое <tex> n </tex>, что <tex> p_{ij}^{(n)} > 0 </tex>. Достижимость <tex> j </tex> из <tex> i </tex> обозначается <tex> i \rightarrow j </tex>. <br>}} вероятность того {{Определение|definition=Состояния <tex> i </tex> и <tex> j </tex> '''сообщаются''' (англ. ''communicate''), что в начале процесса марковская цепь находиться в состоянии если они достижимы друг из друга. Сообщаемость <tex> i </tex> и <tex> j </tex> обозначается <tex> i \leftrightarrow j </tex>.}} == Классификация цепей и состояний ===== Неразложимая цепь ==={{Определение|definition='''Неразложимый класс''' (англ. ''communicating class'') — класс эквивалентности множества состояний по отношению сообщаемости. Если представить марковскую цепь как граф, неразложимый класс будет аналогичен [[Отношение связности, компоненты связности#Сильная связность | компоненте сильной связности]].}} {{Определение|definition='''Неразложимая цепь''' (англ. ''irreducible chain'') — цепь Маркова, в которой все состояния образуют один неразложимый класс.}} === [[Эргодическая марковская цепь|Эргодическая цепь]] ==={{Определение|id = sort_def|definition=Упорядочим (очевидно, упорядочение будет частичным) неразложимые классы отношением достижимости. Минимальные элементы в таком упорядочении называются '''эргодическими классами''' (англ. ''ergodic classes''). Состояния в эргодических классах называются '''эргодическими''' (англ. ''ergodic''), '''возвратными''', или '''существенными''' (англ. ''essential''). Все остальные неразложимые классы называются '''невозвратными классами'''. Состояния, входящие в них, называются '''невозвратными''' или '''несущественными''' (англ. ''inessential'').}} Если эргодический класс состоит из одного состояния, такое состояние является [[Марковская цепь#Поглощающая цепь|поглощающим]]. Из свойств частичного упорядочения, в любой цепи Маркова найдется хотя бы один эргодический класс.
Марковскую {{Определение|definition='''Эргодическая''' марковская цепь (англ. ''ergodic Markov chain'') — марковская цепь, целиком состоящая из одного эргодического класса.}} Пусть <tex> N_{i, j} </tex> — множество таких <tex> n </tex>, что находясь в состоянии <tex> i </tex>, можно представить оказаться в виде графасостоянии <tex> j </tex> через <tex> n </tex> шагов. <tex> d_i </tex> — наибольший общий делитель чисел из множества <tex> N_{i, в котором вершины i} </tex>. {{Лемма|statement=Для <tex> i </tex> и <tex> j </tex>, принадлежащих одному классу эквивалентности по отношению достижимости, <tex> d_i = d_j = d </tex> и числа из множества <tex> N_{---i, j}</tex> сравнимы между собой по модулю <tex> d </tex>.|proof=Пусть <tex> a \in N_{i, j} это состояния процесса, а ребра \ b \in N_{i, j}, \ c \in N_{---j, i}} переходы между состояниями</tex>. Из <tex> i </tex> можно попасть в <tex> j </tex> и обратно, значит, и на ребре из <tex> a + c \in N_{i, i } </tex> . Также после попадания в <tex> j </tex> написана вероятность перехода можно сколько угодно раз перейти из него в самого себя, и только потом перейти в <tex> i </tex> , для этого понадобится <tex> a + k \cdot d_j + c </tex> шагов при любом достаточно большом <tex> k </tex>. Значит, <tex> d_j </tex> должно делиться на <tex> d_i </tex>. Но аналогично можно доказать, что <tex> d_i </tex> делится на <tex> d_j </tex>, поэтому <tex> d_i = d_j = d </tex>. Также можно перейти за <tex> b </tex> шагов в <tex> j </tex>, а потом попасть в <tex> i </tex>, поэтому <tex> b + c \in N_{i, i} </tex>. Значит, <tex> a + c </tex> и <tex> b + c </tex> оба делятся на <tex> d </tex>, то есть <tex> p_{ij} a </tex> и <tex> b </tex> сравнимы между собой по модулю <tex> d </tex>.}}
== Состояния ==Введём числа <tex> t_{i, j}, 0 \leqslant t_{i, j} < d </tex>, так, что любой элемент из <tex> N_{i, j} </tex> сравним с <tex> t_{i, j} </tex> по модулю <tex> d </tex>.
Состояния марковской цепи делятся на два класса: === Циклический класс ==={{Определение|definition=''поглощающие'Циклический класс' (''существенные'') и ''непоглощающие'' (англ. ''несущественныеcyclic class''){{---}} класс, для любых элементов <tex> i </tex> и <tex> j </tex> которого верно равенство <tex> t_{i, j} = 0 </tex>.}}
{{Определение | definition =Состояние <tex> i </tex> Если цепь состоит целиком из одного циклического класса, её называют '''поглощающим (существенным)[[Регулярная марковская цепь|регулярной]]''', если оно достижимо и <tex> p_{ii} = 1 </tex>. Все остальные состояния называют иначе — '''непоглощающими (несущественными)циклической'''.
}}
Вероятность того, что через <tex> r </tex> шагов марковская цепь будет находиться в состоянии <tex> j </tex> равна <tex dpi = 150> c_{rj} = (c_0 P^r) [j] </tex>
Если цепь циклическая, у неё есть некоторый период <tex> d > 1 </tex>, а её состояния подразделяются на <tex> d </tex> циклических классов. Цепь движется по циклическим классам в определённом порядке, возвращаясь в класс с начальным состоянием через <tex> d </tex> шагов.  Топология циклических цепей разнообразна. Самым тривиальным случаем является элементарный цикл из <tex> n </tex> состояний и, следовательно, содержащий <tex> n </tex> циклический классов. Более сложный случай – простые циклы. Простой цикл состоит изнескольких циклов, пересекающихся по вершинам, но не пересекающихся поребрам. Все эти циклы обязаны не быть взаимно простыми. Иначе НОД длинэтих циклов равен единице, и цепь регулярна. Общий случай циклической цепи – цепь, состоящая из циклов, пересекающихся по вершинам и ребрам в представлении цепи как графа. == Смотри == Примеры циклических цепей ==== {| class = "wikitable"! Изображение !! Матрица переходов !! Описание|-|style="background-color:#FFF" |[[Файл:N steps chain.png|400px|center|Элементарный цикл]]|<tex>\begin{pmatrix}0 & 1 & 0 & \cdots & 0 & 0 & 0 \\0 & 0 & 1 & \cdots & 0 & 0 & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots & \vdots & \vdots \\0 & 0 & 0 & \cdots & 0 & 0 & 1 \\1 & 0 & 0 & \cdots & 0 & 0 & 0\end{pmatrix}_N</tex>| Стохастическая матрица элементарного цикла всегда имеет по одной единице в каждом столбце и каждой строке. Таким образом, нужно ровно <tex> n </tex> шагов, проходящих через все вершины, чтобы попасть из вершины <tex> j </tex> в неё же.|-|style="background-color:#FFF" |[[Файл:Prime cyclic chain.png|200px|center|Простой цикл]]|<tex>\begin{pmatrix}0 & 0 & 0,5 & 0,5 & 0 & 0 \\1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 \\0 & 0 & 0 & 0 & 1 & 0 \\0 & 0 & 0 & 0 & 0 & 1 \\1 & 0 & 0 & 0 & 0 & 0\end{pmatrix}</tex>|Этот простой цикл состоит из двух элементарных, пересекающихся в вершине <tex> 1 </tex>. НОД длин всех путей из вершины <tex> 1 </tex> в вершину <tex> 1 </tex> равен <tex> 1 </tex>, поэтому можно получить предельное распределение.|-|} === Поглощающая цепь ==={{Определение|definition='''Поглощающее состояние''' (англ. ''absorbing state'') — состояние, из которого нельзя попасть ни в какое другое, то есть <tex> i </tex> — поглощающее состояние, если <tex> p_{ii} = 1 </tex>.}}{{Определение|definition='''Поглощающей''' (англ. ''absorbing chain'') называется марковская цепь, в которой есть хотя бы одно поглощающее состояние и из любого состояния достижимо хотя бы одно поглощающее.}} В примере на рисунке поглощающими являются состояния <tex>3</tex> и <tex>4</tex>, а непоглощающими — <tex>1</tex> и <tex>2</tex>. === Пример ===[[File:Markov-chain-example-complete.png|thumb|500px|Пример марковской цепи]] На рисунке:* достижимыми состояниями являются: <tex> 2 </tex> из <tex> 1 </tex> (непосредственно), <tex> 3 </tex> из <tex> 1 </tex> (непосредственно), <tex> 6 </tex> из <tex> 3 </tex> (к примеру, через цепочку состояний <tex> 3 \rightarrow 2 \rightarrow 4 \rightarrow 6 </tex>) и т.д.* сообщаются состояния <tex> 1 </tex> и <tex> 2 </tex> (непосредственно), <tex> 6 </tex> и <tex> 7 </tex> (непосредственно), <tex <tex> 1 </tex> и <tex> 3 </tex> (достижимы друг из друга) и т. д.* неразложимыми классами являются множества вершин <tex> \left \{ 1, 2, 3 \right \} </tex>, <tex> \left \{ 4 \right \} </tex>, <tex> \left \{ 5 \right \} </tex>, <tex> \left \{ 6, 7 \right \} </tex>;* эргодическими классами являются множества вершин <tex> \left \{ 5 \right \} </tex>, <tex> \left \{ 6, 7 \right \} </tex>;* поглощающим состоянием является состояние <tex> 5 </tex>.* если расматривать <tex> \{6, 7\} </tex> отдельно, можно выделить два циклических класса <tex> \{6\} </tex> и <tex> \{7\} </tex> (на каждом шаге цепь переходит из одного состояния в другое, а через <tex> d = 2 </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{absorbing}: boolean:[\mathtt{n}]</tex> — массив состояний. Если <tex>i</tex> — посглощающее состояние, то <tex>\mathtt{absorbing[i]} = true</tex>*<tex>\mathtt{n}</tex> — количество состояний*<tex>\mathtt{m}</tex> — количество переходов  '''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 == См. также ==*[[Эргодическая марковская цепь]]*[[Регулярная марковская цепь]]*[[Отношение связности, компоненты связности]]
На русской википедии== Источники информации ==* ''Романовский И. В.'' Дискретный анализ. — СПб.: Невский Диалект; БХВ-Петербург, 2003. — С. 270—279. — ISBN 5-7940-0114-3* ''Кемени Дж., Снелл Дж.'' Конечные цепи Маркова. — М. :Наука, 1970. — 272 c.* [http://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BF%D0%B8_%D0%9C%D0%B0%D1%80%D0%BA%D0%BE%D0%B2%D0%B0 Википедия {{---}} Цепь Маркова].* [httphttps://ruen.wikipedia.org/wiki/%D0%9C%D0%B0%D1%80%D0%BA%D0%BE%D0%B2,_%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B9_%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B5%D0%B2%D0%B8%D1%87_(%D1%81%D1%82%D0%B0%D1%80%D1%88%D0%B8%D0%B9) Андрей Андреевич МарковAbsorbing_Markov_chain Wikipedia {{---}} Absorbing Markov chain].
== Литература ==[[Категория:Дискретная математика и алгоритмы]]
* И.В. Романовский. ''Дискретный анализ''[[Категория: Марковские цепи ]]
1632
правки

Навигация