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 object. The axes object 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 object. The axes object 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 object. The axes object 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 object. The axes object contains 3 objects of type graphplot, line. These objects represent Transient, Aperiodic.

График показывает unichain: Цепь Маркова, содержащая один текущий класс передачи и выбранный переходный класс.

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

свернуть все

Дискретная цепь Маркова с 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. Стохастические процессы: теория для приложений. Кембридж, Великобритания: Издательство Кембриджского университета, 2013.

[2] Рог, R. и К. Р. Джонсон. Анализ матрицы. Кембридж, Великобритания: Издательство Кембриджского университета, 1985.

Введенный в R2017b