subchain

Извлечение марковского подцепи

Синтаксис

Описание

пример

sc = subchain(mc,states) возвращает подцепь sc извлеченный из дискретной цепи Маркова mc. Подцепь содержит состояния states и все состояния, которые доступны из states.

Примеры

свернуть все

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

P=[01000.500.50000.50.5000.50.5].

Создайте марковскую цепь, которая характеризуется переходной матрицей P.

P = [0 1 0 0; 0.5 0 0.5 0; 0 0 0.5 0.5; 0 0 0.5 0.5];
mc = dtmc(P);

Постройте ориентированный график марковской цепи. Визуально идентифицируйте класс связи, которому принадлежит каждое состояние, используя цвета узлов.

figure;
graphplot(mc,'ColorNodes',true);

Figure contains an axes. The axes contains 3 objects of type graphplot, line. These objects represent Transient, Aperiodic.

Определите стационарное распределение цепи Маркова.

x = asymptotics(mc)
x = 1×4

    0.0000    0.0000    0.5000    0.5000

Марковская цепь в конечном счете поглощается состояниями 3 и 4, и последующие переходы являются стохастическими.

Извлеките рекуррентную подцепь марковской цепи путем прохождения mc на subchain и определение одного из состояний в рекуррентном, апериодическом классе связи.

sc = subchain(mc,3);

sc является dtmc объект.

Постройте график ориентированного графа подцепи.

figure;
graphplot(sc,'ColorNodes',true)

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

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

P=[0.50.50000.50.50000.50.5000.50.5].

Создайте марковскую цепь, которая характеризуется переходной матрицей P. Назовите состояния Режим 1 - Режим 4.

P = [0.5 0.5 0 0; 0 0.5 0.5 0; 0 0 0.5 0.5; 0 0 0.5 0.5];
mc = dtmc(P,'StateNames',["Regime 1" "Regime 2" "Regime 3" "Regime 4"]);

Постройте график цепи. Визуально идентифицируйте класс связи, которому принадлежит каждое состояние, используя цвета узлов.

figure;
graphplot(mc,'ColorNodes',true);

Figure contains an axes. The axes contains 4 objects of type graphplot, line. These objects represent Transient, Aperiodic.

Режимы 1 и 2 находятся в своем собственном классе связи, поскольку режим 2 не переходит к режиму 1.

Извлеките подцепь, содержащую Режим 2, переходное состояние. Отобразите матрицу переходов подцепи.

sc = subchain(mc,"Regime 2");
sc.P
ans = 3×3

    0.5000    0.5000         0
         0    0.5000    0.5000
         0    0.5000    0.5000

Режим 1 не находится в подцепи.

Постройте график подцепи.

figure;
graphplot(sc,'ColorNodes',true);

Figure contains an axes. The axes contains 3 objects of type graphplot, line. These objects represent Transient, Aperiodic.

На график показан унихаин: марковская цепь, содержащий один повторяющийся класс связи и выбранный переходный класс.

Входные параметры

свернуть все

Дискретная цепь Маркова с NumStates состояния и матрица переходов P, заданный как dtmc объект. P должен быть полностью задан (нет NaN записи).

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

  • Для числового вектора элементы states соответствуют строкам матрицы переходов mc.P.

  • Для строкового вектора или вектора камеры из векторов символов, элементов states должны быть именами состояний в mc.StateNames.

Пример: ["Regime 1" "Regime 2"]

Типы данных: double | string | cell

Выходные аргументы

свернуть все

Дискретная цепь Маркова, возвращается как dtmc объект. sc является подцепью mc содержащие состояния states и все состояния, достижимые из states. Имена состояний подцепи sc.StateNames наследуются от mc.

Алгоритмы

  • Конечные j reachable из состояния i если существует ненулевая вероятность перехода от i на j в конечном числе шагов. subchain определяет достижимость путем формирования переходного замыкания связанного диграф, затем перечисления одношаговых переходов.

  • Подцепи закрываются под достижимостью, чтобы гарантировать, что матрица перехода sc остается стохастическим (то есть строки суммируются с 1), с вероятностями перехода, идентичными вероятностям перехода в mc.P.

  • Если вы задаете состояние в повторяющемся классе связи, то subchain извлекает весь связывающийся класс. Если вы задаете состояние в переходном классе связи, то subchain извлекает переходный класс и все классы, достижимые из переходного класса. Чтобы извлечь unichain, задайте состояние в каждом переходном классе компонента. Посмотрите classify.

Ссылки

[1] Gallager, R.G. Stochastic Processes: Theory for Applications. Кембридж, Великобритания: Cambridge University Press, 2013.

[2] Хорн, Р. и К. Р. Джонсон. Матричный анализ. Кембридж, Великобритания: Cambridge University Press, 1985.

Введенный в R2017b