В этом примере показано, как сгенерировать и визуализировать случайные обходы через Цепь Маркова.
Рассмотрите эту теоретическую, правильно-стохастическую матрицу перехода стохастического процесса.
Создайте Цепь Маркова, которая характеризуется матрицей 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);
mc
представляет один текущий класс с периодом 3.
Симулируйте один случайный обход 20 шагов через цепь. Запустите в случайном начальном состоянии.
rng(1); % For reproducibility
numSteps = 20;
X = simulate(mc,numSteps);
X
21 1 вектор, содержащий индексы состояний, которые посещают во время случайного обхода. Первая строка содержит реализованное начальное состояние.
Постройте тепловую карту случайного обхода.
figure; simplot(mc,X);
Время возврата к любому состоянию является кратным три.
Покажите случайный обход через Цепь Маркова как анимация через диграф. Задайте частоту кадров 1 секунды.
figure; simplot(mc,X,'FrameRate',1,'Type','graph');
Симулируйте 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);
X1
20 100 матрица случайных обходов. Первые 50 столбцов соответствуют обходам, начинающим с состояния 1, следующие 49 столбцов соответствуют обходам, начинающим с состояния 2, и последний столбец соответствует обходу, начинающему с состояния 6.
Три периодических подкласса очевидны.
Просмотрите реализованную матрицу перехода 100 случайных обходов как тепловая карта.
figure; simplot(mc,X1,'Type','transitions');
Визуально сравните реализованные и теоретические матрицы перехода.
figure; imagesc(mc.P); colormap('jet'); axis square; colorbar; title('Theoretical Transition Matrix')
Матрицы перехода подобны.