transclosure

Переходное закрытие

Синтаксис

Описание

пример

H = transclosure(G) возвращает переходное закрытие графика G как новый график, H. Узлы в H совпадают с теми в G, но H имеет дополнительные ребра. Если существует путь от узла i к узлу j в G, затем существует ребро между узлом i и узел j в H. Для мультиграфов с несколькими ребрами между теми же двумя узлами выходной график заменяет их на одно ребро.

Примеры

свернуть все

Создайте и постройте ориентированного графа.

G = digraph([1 2 3 4 4 4 5 5 5 6 7 8],[2 3 5 1 3 6 6 7 8 9 9 9]);
plot(G)

Найдите переходное закрытие графика G и постройте получившийся график. H содержит те же узлы как G, но имеет дополнительные ребра.

H = transclosure(G);
plot(H)

Переходная информация о закрытии в H может использоваться, чтобы ответить на вопросы достижимости об исходном графике, G.

Определите узлы в G это может быть достигнуто от узла 1. Эти узлы являются преемниками узла 1 в переходном графике закрытия, H.

N = successors(H,1)
N = 7×1

     2
     3
     5
     6
     7
     8
     9

Создайте и постройте ориентированного графа.

s = [1 1 2 2 3 4 4 5];
t = [2 4 3 4 5 5 6 6];
G = digraph(s,t);
plot(G,'Layout','subspace')

Вычислите матрицу смежности переходного закрытия G. Результатом является матрица достижимости, которая имеет ненулевые значения, чтобы указать, какие узлы достижимы от каждого узла.

D = transclosure(G);
R = full(adjacency(D))
R = 6×6

     0     1     1     1     1     1
     0     0     1     1     1     1
     0     0     0     0     1     1
     0     0     0     0     1     1
     0     0     0     0     0     1
     0     0     0     0     0     0

Например, чтобы ответить на вопрос, "Какие узлы достижимы от узла 3?", можно посмотреть на третью строку в матрице. Та строка указывает, что только узлы 5 и 6 достижимы от узла 3:

find(R(3,:))
ans = 1×2

     5     6

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

свернуть все

Введите график в виде digraph объект. Используйте digraph создать объект ориентированного графа.

Пример: G = digraph([1 2],[2 3])

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

свернуть все

Переходное закрытие G, возвращенный как digraph объект. Таблица G.Nodes копируется в H, но любые свойства в G.Edges пропущены.

Используйте successors(H,n) определить узлы в G это достижимо от узла n.

Больше о

свернуть все

Переходное закрытие

Переходное закрытие графика описывает пути между узлами. Если существует путь от узла i к узлу j в графике затем ребро существует между узлом i и узел j в переходном закрытии того графика. Таким образом, для данного узла в графике, переходное закрытие превращает любой достижимый узел в прямого преемника (потомок) того узла.

Смотрите также

| | | |

Введенный в R2015b