Определите Цепь Маркова asymptotics
xFix = asymptotics(mc)
[xFix,tMix] = asymptotics(mc)
Рассмотрите эту теоретическую, правильно-стохастическую матрицу перехода стохастического процесса.
Создайте Цепь Маркова, которая характеризуется матрицей P перехода.
P = [ 0 0 1/2 1/4 1/4 0 0 ; 0 0 1/3 0 2/3 0 0 ; 0 0 0 0 0 1/3 2/3; 0 0 0 0 0 1/2 1/2; 0 0 0 0 0 3/4 1/4; 1/2 1/2 0 0 0 0 0 ; 1/4 3/4 0 0 0 0 0 ]; mc = dtmc(P);
Постройте ориентированного графа Цепи Маркова. Укажите на вероятность перехода при помощи цветов обводки.
figure;
graphplot(mc,'ColorEdges',true);
Определите стационарное распределение Цепи Маркова.
xFix = asymptotics(mc)
xFix = 1×7
0.1300 0.2034 0.1328 0.0325 0.1681 0.1866 0.1468
Поскольку xFix
является вектором - строкой, это - уникальное стационарное распределение mc
.
Создайте пять матрицы Грина эмпирических количеств путем генерации матрицы диагонали блока, состоявшей из дискретной универсальной формы, чертит.
m = 100; % Maximal count rng(1); % For reproducibility P = blkdiag(randi(100,2) + 1,randi(100,3) + 1)
P = 5×5
43 2 0 0 0
74 32 0 0 0
0 0 16 36 43
0 0 11 41 70
0 0 20 55 22
Создайте и постройте диграф Цепи Маркова, которая характеризуется матрицей P перехода.
mc = dtmc(P); figure; graphplot(mc)
Определите стационарное распределение и смешивание времени Цепи Маркова.
[xFix,tMix] = asymptotics(mc)
xFix = 2×5
0.9401 0.0599 0 0 0
0 0 0.1497 0.4378 0.4125
tMix = 0.8558
Строки xFix
соответствуют стационарным дистрибутивам двух независимых текущих классов mc
.
Создайте отдельные Цепи Маркова, представляющие текущие подцепи mc
.
mc1 = subchain(mc,1); mc2 = subchain(mc,3);
mc1
и mc2
являются объектами dtmc
. mc1
является текущим классом, содержащим 1
состояния, и mc2
является текущим классом, содержащим 3
состояния.
Сравните смесительные времена подцепей.
[x1,t1] = asymptotics(mc1)
x1 = 1×2
0.9401 0.0599
t1 = 0.7369
[x2,t2] = asymptotics(mc2)
x2 = 1×3
0.1497 0.4378 0.4125
t2 = 0.8558
mc1
приближается к своему стационарному распределению более быстро, чем mc2
.
Создайте Цепь Маркова "гантели", содержащую 10 состояний в каждом "весе" и три состояния в "панели".
Задайте случайные вероятности перехода между состояниями в каждом весе.
Если Цепь Маркова достигает состояния в весе, который является самым близким к панели, то задайте высокую вероятность перехода к панели.
Задайте универсальные переходы между состояниями в панели.
rng(1); % For reproducibility w = 10; % Dumbbell weights DBar = [0 1 0; 1 0 1; 0 1 0]; % Dumbbell bar DB = blkdiag(rand(w),DBar,rand(w)); % Transition matrix % Connect dumbbell weights and bar DB(w,w+1) = 1; DB(w+1,w) = 1; DB(w+3,w+4) = 1; DB(w+4,w+3) = 1; mc = dtmc(DB);
Визуализируйте матрицу перехода использование тепловой карты.
figure;
imagesc(mc.P);
colormap(jet);
axis square;
colorbar;
Постройте ориентированного графа Цепи Маркова. Подавите метки узла.
figure; h = graphplot(mc); h.NodeLabel = {};
Постройте собственные значения цепочки гантели.
figure; eigplot(mc);
Тонкий, красный диск в графике показывает спектральный разрыв (различие между двумя самыми большими модулями собственного значения). Спектральный разрыв определяет смесительное время Цепи Маркова. Большие разрывы указывают на более быстрое смешивание, тогда как тонкие разрывы указывают на более медленное смешивание. В этом случае спектральный разрыв является тонким, указывая долгое время смешивания.
Оцените смесительное время цепочки гантели и определите, является ли цепочка эргодической.
[~,tMix] = asymptotics(mc)
tMix = 85.3258
tf = isergodic(mc)
tf = logical
1
В среднем время это берет для общего расстояния изменения между любым начальным распределением и стационарным распределением, чтобы затухнуть фактором приблизительно 85 шагов.
mc
— Дискретная цепь Марковаdtmc
Дискретная цепь Маркова с состояниями NumStates
и матрицей перехода P
, заданный как объект dtmc
.
xFix
— Стационарное распределениеСтационарное распределение, с xFix*P
= xFix
, возвратилось как неотрицательная числовая матрица со столбцами NumStates
. Количество строк xFix
является количеством независимых текущих классов в mc
.
Для unichains распределение уникально, и xFix
является 1
-by-NumStates
вектор.
В противном случае каждая строка xFix
представляет отличное стационарное распределение в mc
.
tMix
— Смешивание времениСмешивание времени, возвращенного в виде положительного числа.
Если μ, второй по величине модуль собственного значения (SLEM) P
, существует и является ненулевым, то предполагаемое время смешивания .
Если P
является неотрицательной стохастической матрицей, то Цепь Маркова mc
, который это характеризует, имеет левый собственный вектор xFix
с собственным значением 1
. Теорема Крыльца-Frobenius [2] подразумевает что, если mc
является unichain (цепочка с одним текущим классом передачи), то xFix
уникален. Для приводимых цепочек с несколькими текущими классами собственное значение 1
имеет более высокую кратность, и xFix
является групповым. Если цепочка является периодической, xFix
является стационарным, но не ограничивает, потому что произвольные начальные дистрибутивы не сходятся к нему. xFix
и уникален и ограничивает для эргодических цепочек только. Смотрите classify
.
Для эргодических цепочек tMix
является характеристическим временем для любого начального распределения, чтобы сходиться к xFix
. А именно, это - время для общего расстояния изменения между начальным распределением и xFix
, чтобы затухнуть фактором e
= exp(1)
. Смесительные времена являются мерой относительной возможности соединения структур перехода в различных цепочках.
[1] Gallager, R.G. Стохастические процессы: теория для приложений. Кембридж, Великобритания: Издательство Кембриджского университета, 2013.
[2] Рог, R. и К. Р. Джонсон. Анализ матрицы. Кембридж, Великобритания: Издательство Кембриджского университета, 1985.
[3] Seneta, E. Неотрицательные матрицы и цепи Маркова. Нью-Йорк, Нью-Йорк: Springer-Verlag, 1981.
classify
| eigplot
| isergodic
| isreducible
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.