exponenta event banner

graphplot

График цепи Маркова, направленный

Описание

пример

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

пример

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

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

пример

h = graphplot(___) возвращает маркер к графу digraph. Использовать 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"]);

Постройте направленный график цепи Маркова. Определите сообщающиеся классы в digraph и раскрасьте края в соответствии с вероятностью перехода.

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.

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

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

    • Определение повторяющихся классов (суперноды с нулевым уровнем)

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

Ссылки

[1] Галлагер, Р. Г. Стохастические процессы: теория для применения. Кембридж, Великобритания: Cambridge University Press, 2013.

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

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

Представлен в R2017b