transreduction

Переходное сокращение

Синтаксис

Описание

пример

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

Примеры

свернуть все

Создайте и постройте полный график порядка четырех.

G = digraph([1 1 1 2 2 2 3 3 3 4 4 4],[2 3 4 1 3 4 1 2 4 1 2 3]);
plot(G)

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

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

H = transreduction(G);
plot(H)

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

Два графиков с одной и той же достижимостью также имеют одно и то же переходное сокращение. Поэтому любой цикл четырех узлов производит то же транзитивное сокращение, что и H.

Создайте ориентированный граф, который содержит другой цикл четырех узлов: (1,3,4,2,1).

G1 = digraph([1 3 4 2],[3 4 2 1]);
plot(G1)

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

Нахождение переходного сокращения G1. Цикл в G1 переупорядочивается так, чтобы переходные сокращения H и H1 имеют тот же цикл, (1,2,3,4,1).

H1 = transreduction(G1);
plot(H1)

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

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

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

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

Подтвердите, что G не содержит никаких циклов.

tf = isdag(G)
tf = logical
   1

Найдите переходное сокращение графика. Поскольку график не содержит циклов, транзитивное сокращение уникально и является подграфиком G.

H = transreduction(G);
plot(H)

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

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

свернуть все

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

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

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

свернуть все

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

H содержит наименьшее количество ребер, которые все еще сохраняют достижимость график G. Другими словами, transclosure(H) то же, что и transclosure(G).

Если isdag(G) является true, затем H является уникальным и является подграфиком G.

Подробнее о

свернуть все

Переходное Сокращение

Переходное сокращение графика G является графиком с наименьшим количеством ребер, который все еще имеет ту же достижимость, что и G. Поэтому из всех графиков, которые имеют то же транзитивное закрытие, что и G, переходное сокращение является тем, которое имеет наименьшие ребра. Если два ориентированных графов имеют одно и то же переходное замыкание, они также имеют то же транзитивное редукцию.

См. также

| |

Введенный в R2015b