mcmix

Создайте случайную Цепь Маркова с заданной структурой смешивания

Описание

пример

mc = mcmix(numStates) возвращает дискретную цепь Маркова mc содержа numStates состояния. mc характеризуется случайными вероятностями перехода.

пример

mc = mcmix(numStates,Name,Value) дополнительные опции использования, заданные одним или несколькими аргументами пары "имя-значение", чтобы структурировать mc симулировать различные времена смешивания. Например, можно управлять шаблоном выполнимых переходов.

Примеры

свернуть все

Сгенерируйте Цепь Маркова с шестью состояниями из случайной матрицы перехода.

rng(1); % For reproducibility
mc = mcmix(6);

mc dtmc объект.

Отобразите матрицу перехода.

mc.P
ans = 6×6

    0.2732    0.1116    0.1145    0.1957    0.0407    0.2642
    0.3050    0.2885    0.0475    0.0195    0.1513    0.1882
    0.0078    0.0439    0.0082    0.2439    0.2950    0.4013
    0.2480    0.1481    0.2245    0.0485    0.1369    0.1939
    0.2708    0.2488    0.0580    0.1614    0.0137    0.2474
    0.2791    0.1095    0.0991    0.2611    0.1999    0.0513

Постройте диграф Цепи Маркова. Задайте окраску ребер согласно вероятности перехода.

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

Figure contains an axes object. The axes object contains an object of type graphplot.

Сгенерируйте случайные матрицы перехода, содержащие конкретное количество нулей в случайных местоположениях. Нуль в месте (i, j) указывает, что утверждают, что i не перехожу, чтобы утвердить j.

Сгенерируйте две Цепи Маркова с 10 состояниями из случайных матриц перехода. Задайте случайное размещение 10 нулей в одной цепи и 30 нулей в другой цепи.

rng(1); % For reproducibility
numStates = 10;
mc1 = mcmix(numStates,'Zeros',10);
mc2 = mcmix(numStates,'Zeros',30);

mc1 и mc2 dtmc объекты.

Оцените смесительные времена для каждой Цепи Маркова.

[~,tMix1] = asymptotics(mc1)
tMix1 = 0.7567
[~,tMix2] = asymptotics(mc2)
tMix2 = 0.8137

mc1, Цепь Маркова с более высокой возможностью соединения, смеси более быстро, чем mc2.

Сгенерируйте Цепь Маркова, охарактеризованную частично случайной матрицей перехода. Кроме того, сократите число выполнимых переходов.

Сгенерируйте матрицу 4 на 4 пропавших без вести (NaN) значения, который представляет матрицу перехода.

P = NaN(4);

Укажите что состояние 1 переход, чтобы утвердить 2 с вероятностью 0.5, и что состояние 2 перехода, чтобы утвердить 1 с той же вероятностью.

P(1,2) = 0.5;
P(2,1) = 0.5;

Создайте Цепь Маркова, охарактеризованную частично известной матрицей перехода. Для остающихся неизвестных вероятностей перехода укажите, что пять переходов неосуществимы для 5 случайных переходов. Неосуществимый переход является переходом, чья вероятность появления является нулем.

rng(1); % For reproducibility
mc = mcmix(4,'Fix',P,'Zeros',5);

mc dtmc объект. За исключением фиксированных элементов (1,2) и (2,1) из матрицы перехода, mcmix места пять нулей в случайных местоположениях и генерируют случайные вероятности для остающихся девяти мест. Вероятности в конкретной строке суммируют к 1.

Отобразите матрицу перехода и постройте диграф Цепи Маркова. В графике укажите на вероятности перехода путем определения цветов обводки.

P = mc.P
P = 4×4

         0    0.5000    0.1713    0.3287
    0.5000         0    0.1829    0.3171
    0.1632         0    0.8368         0
         0    0.5672    0.1676    0.2652

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

Figure contains an axes object. The axes object contains an object of type graphplot.

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

свернуть все

Количество состояний в виде положительного целого числа.

Если вы не задаете аргументов пары "имя-значение", mcmix создает Цепь Маркова со случайными вероятностями перехода.

Типы данных: double

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Zeros',10 места 0 в 10 случайных местах в матрице перехода.

Местоположения и значения фиксированных вероятностей перехода в виде разделенной запятой пары, состоящей из 'Fix' и numStates- numStates числовая матрица.

Вероятности в любой строке должны иметь сумму, меньше чем или равную 1. Строки та сумма к 1 также зафиксируйте 0 значения в остальной части строки.

mcmix определяет случайные вероятности местоположениям, содержащим NaN значения.

Пример: 'Fix',[0.5 NaN NaN; NaN 0.5 NaN; NaN NaN 0.5]

Типы данных: double

Количество вероятностей перехода с нулевым знаком, чтобы присвоить случайным местоположениям в матрице перехода в виде разделенной запятой пары, состоящей из 'Zeros' и положительное целое число меньше, чем NumStates. mcmix функционируйте присваивает Zeros нули к местоположениям, содержащим NaN в Fix.

Пример: 'Zeros',10

Типы данных: double

Метки состояния в виде разделенной запятой пары, состоящей из вектора строки, вектора ячейки из векторов символов или числового вектора из numStates длина. Элементы соответствуют строкам и столбцам матрицы перехода.

Пример: 'StateNames',["Depression" "Recession" "Stagnant" "Boom"]

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

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

свернуть все

Дискретная цепь Маркова, возвращенная как dtmc объект.

Ссылки

[1] Gallager, R.G. Стохастические процессы: теория для приложений. Кембридж, Великобритания: Издательство Кембриджского университета, 2013.

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

Введенный в R2017b