graphPlot

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

Синтаксис

graphplot(mc)
graphplot(mc,Name,Value)
graphplot(ax,___)
h = 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.

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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