graphplot

Постройте ориентированного графа Цепи Маркова

Описание

пример

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

пример

graphplot(mc,Name,Value) дополнительные опции использования заданы одними или несколькими аргументами 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 object. The axes object 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 object. The axes object 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 object. The axes object contains an object of type graphplot.

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

h.NodeLabel = {};

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

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

свернуть все

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

Оси, на которых можно построить в виде Axes объект.

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

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

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

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

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

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

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

Типы данных: логический

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

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

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

Типы данных: логический

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

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

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

Типы данных: логический

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

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

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

Типы данных: логический

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

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

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

Типы данных: логический

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

свернуть все

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

Советы

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

    G = digraph(mc.P)

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

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

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

  • Сжатый график полезен для:

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

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

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

Ссылки

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

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

[3] Джарвис, J. P. и D. R. Более застенчивый. "Теоретический графиком анализ конечных цепей Маркова". В прикладном математическом моделировании: мультидисциплинарный подход. Бока-Ратон: нажатие CRC, 2000.

Введенный в R2017b