Вычислите распределенность цепи Маркова на каждом временном шаге

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

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

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

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

Смотрите также

Объекты

Функции

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте