graphplot

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

Описание

пример

graphplot(mc) создает график ориентированного графа (диграф) дискретной цепи Маркова mc. Узлы соответствуют состояниям mc. Ориентированные ребра соответствуют ненулевым вероятностям перехода в матрице переходов mc.P.

пример

graphplot(mc,Name,Value) использует дополнительные опции, заданные одним или несколькими аргументами пары "имя-значение". Опции включают подсветку вероятностей перехода, передачу классов и определение свойств класса рецидива/переходного периода и периода. Кроме того, можно построить график конденсированного диграф вместо этого с связывающимися классами как supernodes.

graphplot(ax,___) графики на осях, заданных ax вместо текущих систем координат (gca) использование любой комбинации входных аргументов в предыдущих синтаксисах. Опция ax может предшествовать любой комбинации входных аргументов в предыдущих синтаксисах.

пример

h = graphplot(___) возвращает указатель на график диграф. Использование h для изменения свойств графика после его создания.

Примеры

свернуть все

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

P=[001/21/41/400001/302/300000001/32/3000001/21/2000003/41/41/21/2000001/43/400000].

Создайте марковскую цепь, которая характеризуется переходной матрицей 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);

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

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

P=[0.50.5000.500.5000010010].

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

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

Постройте ориентированный график марковской цепи. Идентифицируйте сообщающиеся классы в диграф и окрашивайте ребра в соответствии с вероятностью перехода.

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

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

Состояния 3 и 4 составляют класс связи с периодом 2. Состояния 1 и 2 являются переходными.

Создать «гантель» марковской цепи, содержащей по 10 состояний в каждом «весе» и три состояния в «планке».

  • Задайте случайные вероятности перехода между состояниями в каждом весе.

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

  • Задайте равномерные переходы между состояниями на панели.

rng(1); % For reproducibility
w = 10;                              % Dumbbell weights
DBar = [0 1 0; 1 0 1; 0 1 0];        % Dumbbell bar
DB = blkdiag(rand(w),DBar,rand(w));  % Transition matrix

% Connect dumbbell weights and bar
DB(w,w+1) = 1;                       
DB(w+1,w) = 1; 
DB(w+3,w+4) = 1; 
DB(w+4,w+3) = 1;

db = dtmc(DB);

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

figure;
h = graphplot(db);

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

Заметьте, что метки состояний трудно считать. Удалите метки полностью.

h.NodeLabel = {};

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

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

свернуть все

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

Оси, на которых нужно построить график, заданные как Axes объект.

По умолчанию, graphplot графики для текущей системы координат (gca).

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

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

Пример: 'ColorEdges',true,'ColorNodes',true окрашивает ребра, чтобы указать вероятности перехода, и окрашивает узлы на основе их класса связи.

Флаг для маркировки узлов, использующих имена состояний, задается как разделенная разделенными запятой парами, состоящая из 'LabelNodes' и значение в этой таблице.

ЗначениеОписание
trueПометьте узлы, используя имена в mc.StateNames.
falseПометьте узлы, используя номера состояний.

Пример: 'LabelNodes',false

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

Флаг для окрашивания узлов на основе класса передачи, заданный как разделенная разделенными запятой парами, состоящая из 'ColorNodes' и значение в этой таблице.

ЗначениеОписание
trueУзлы одного и того же класса связи имеют одинаковый цвет. Твердые маркеры представляют узлы в рекуррентных классах, а пустые маркеры - узлы в переходных классах. Легенда содержит периодичность повторяющихся классов.
falseВсе узлы имеют одинаковый цвет.

Пример: 'ColorNodes',true

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

Флаг для маркировки ребер вероятностями перехода в матрице переходов mc.P, заданная как разделенная разделенными запятой парами, состоящая из 'LabelEdges' и значение в этой таблице.

ЗначениеОписание
trueПометьте ребра с вероятностями перехода, округленными до двух десятичных знаков.
falseНе помечайте ребер.

Пример: 'LabelEdges',true

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

Флаг для раскраски ребер для указания вероятностей перехода, заданный как разделенная запятой пара, состоящий из 'ColorEdges' и значение в этой таблице.

ЗначениеОписание
trueЦветовые ребра для указания вероятностей перехода. Включите цветовую полосу, которая суммирует расцветку.
falseИспользуйте один и тот же цвет для всех ребер.

Пример: 'ColorEdges',true

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

Флаг для конденсации графика, с каждым сообщающимся классом, представленным одним суперузлом, заданным как разделенная разделенными запятой парами, состоящая из 'Condense' и значение в этой таблице.

ЗначениеОписание
trueУзлы являются суперузлами, содержащими классы связи. Метки узлов перечисляют состояния компонентов каждого суперузла. Ребро от суперузла i к суперузлу j указывает ненулевую вероятность перехода от некоторого состояния в суперузле i к некоторому состоянию в суперузле j. Вероятности перехода между суперузлами не хорошо заданы, и graphplot отключает информацию о ребре.
falseУзлы являются состояниями в mc.

Пример: 'Condense',true

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

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

свернуть все

Указатель на график, возвращенный как графический объект. h является уникальным идентификатором, который можно использовать для запроса или изменения свойств графика.

Совет

  • Чтобы создать ориентированный граф как MATLAB® digraph объект и использовать дополнительные функции этого объекта, введите:

    G = digraph(mc.P)

  • Для читаемости, 'LabelNodes' Аргумент пары "имя-значение" позволяет отключать длинные метки узлов и заменять их номерами узлов. Чтобы полностью удалить метки узла, установите h.NodeLabel = {};.

  • Чтобы вычислить информацию о узле для связи классов и их свойств, используйте classify.

  • Чтобы извлечь коммуникирующий класс в графике, используйте subchain.

  • Конденсированный графиков полезен для:

    • Идентификация переходных классов (суперузлов с положительным outdegree)

    • Идентификация рекуррентных классов (суперузлов с нулем outdegree)

    • Визуализация общей структуры унишен (цепей с одним рекуррентным классом и любых переходных классов, которые переходят в него)

Ссылки

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

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

[3] Джарвис, Дж. П. и Д. Р. Шиер. «Граф-теоретический анализ конечных марковских цепей». В прикладном математическом моделировании: междисциплинарный подход. Бока Ратон: CRC Press, 2000.

Введенный в R2017b