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);

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

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)

Состояния 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);

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

h.NodeLabel = {};

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

свернуть все

Дискретная цепь Маркова с 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

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

Отметьте для окраски узлов на основе связывающегося класса в виде разделенной запятой пары, состоящей из '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