exponenta event banner

Распределение состояния цепи Маркова на каждом шаге времени

В этом примере показано, как вычислять и визуализировать перераспределения состояний, которые показывают эволюцию детерминированных распределений состояний во времени от начального распределения.

Рассмотрим эту теоретическую, правостохастическую матрицу перехода стохастического процесса.

P = [001/21/41/400001/302/300000001/32/3000001/21/2000003/41/41/21/2000001/43/400000].

Создайте цепочку Маркова, которая характеризуется матрицей перехода 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,'ColorNodes',true);

Figure contains an axes. The axes contains 2 objects of type graphplot, line. This object represents Period = 3.

mc представляет собой один повторяющийся класс с периодом 3.

Предположим, что начальное распределение состояний является равномерным. Вычислите эволюцию распределения в течение 20 временных шагов.

numSteps = 20;
X = redistribute(mc,numSteps);

X является матрицей 21 на 7. Строка t содержит распределение эволюционированного состояния на временном шаге t.

Визуализация перераспределений в тепловой карте.

figure;
distplot(mc,X);

Figure contains an axes. The axes with title Distribution of States contains an object of type image.

Периодичность цепи очевидна.

Уберите периодичность из цепи Маркова, трансформировав её в ленивую цепь. Постройте график матрицы перехода ленивой цепи в виде тепловой карты.

lc = lazy(mc);
figure;
imagesc(lc.P);
colormap('jet');
axis square;
colorbar;
title('Theoretical Lazy Chain Transition Matrix')

Figure contains an axes. The axes with title Theoretical Lazy Chain Transition Matrix contains an object of type image.

lc является dtmc объект. lazy создает ленивую цепь, добавляя вес к вероятности стойкости, то есть lazy принудительно выполняет самокольцевание.

Вычислите эволюцию распределения в ленивой цепи в течение 20 временных шагов. Постройте график перераспределений в тепловой карте.

X1 = redistribute(lc,numSteps);

figure;
distplot(lc,X1);

Figure contains an axes. The axes with title Distribution of States contains an object of type image.

Просмотрите эволюцию распределения состояний как анимированную гистограмму. Укажите частоту кадров в 1 секунду.

figure;
distplot(lc,X1,'Type','histogram','FrameRate',1)

Figure contains an axes. The axes with title Distribution of States contains an object of type categoricalhistogram. This object represents Step 20.

Вычислите стационарное распределение ленивой цепи. Сравните его с окончательным перераспределением в анимированной гистограмме.

xFix = asymptotics(lc)
xFix = 1×7

    0.1300    0.2034    0.1328    0.0325    0.1681    0.1866    0.1468

Стационарное распределение и окончательное перераспределение практически идентичны.

См. также

Объекты

Функции

Связанные темы