exponenta event banner

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. The axes 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. The axes contains an object of type graphplot.

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

свернуть все

Число состояний, указанное как положительное целое число.

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

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

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми 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] Галлагер, Р. Г. Стохастические процессы: теория для применения. Кембридж, Великобритания: Cambridge University Press, 2013.

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

Представлен в R2017b