exponenta event banner

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