exponenta event banner

транссокращение

Переходное уменьшение

Описание

пример

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