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 шагов по цепи. Начните со случайного начального состояния.

rng(1); % For reproducibility
numSteps = 20;
X = simulate(mc,numSteps);

X - вектор 21 на 1, содержащий индексы состояний, посещаемых во время случайной прогулки. Первая строка содержит реализованное начальное состояние.

Постройте тепловую карту случайной прогулки.

figure;
simplot(mc,X);

Figure contains an axes. The axes with title States Reached By Simulations contains an object of type image.

Время возврата в любое состояние кратно трем.

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

figure;
simplot(mc,X,'FrameRate',1,'Type','graph');

Figure contains an axes. The axes contains 8 objects of type graphplot, line. This object represents Step 20.

Смоделировать 100 случайных ходов: 50 начиная с состояния 1, 49 начиная с состояния 2 и 1 начиная с состояния 6. Постройте тепловую карту моделирования.

x0 = [50 49 0 0 0 1 0];
X1 = simulate(mc,numSteps,'X0',x0);

figure;
simplot(mc,X1);

Figure contains an axes. The axes with title States Reached By Simulations contains an object of type image.

X1 представляет собой матрицу случайных ходов 20 на 100. Первые 50 столбцов соответствуют шагам, начинающимся из состояния 1, следующие 49 столбцов соответствуют шагам, начинающимся из состояния 2, и последний столбец соответствует шагам, начинающимся из состояния 6.

Три периодических подкласса очевидны.

Просмотрите реализованную матрицу перехода 100 случайных ходов как тепловую карту.

figure;
simplot(mc,X1,'Type','transitions');

Figure contains an axes. The axes with title Transitions Realized By Simulations contains an object of type image.

Визуально сравните реализованные и теоретические матрицы перехода.

figure;
imagesc(mc.P);
colormap('jet');
axis square;
colorbar;
title('Theoretical Transition Matrix')

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

Матрицы перехода аналогичны.

См. также

Объекты

Функции

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