exponenta event banner

hascycles

Определить, содержит ли график циклы

Синтаксис

Описание

пример

tf = hascycles(G) возвращает логический 1 (true), если график G содержит один или несколько циклов и логический 0 (false) в противном случае.

Примеры

свернуть все

Создание и печать неориентированного графика.

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

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

Определите, есть ли у графика циклы.

tf = hascycles(G)
tf = logical
   0

Теперь добавьте ребро к графу между узлом 2 и узлом 3. Реплицируйте график.

G = addedge(G,2,3);
plot(G)

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

Определите, есть ли циклы у нового графика.

tf2 = hascycles(G)
tf2 = logical
   1

Проверьте разницу между hascycles и isdag функции, работающие на направленном графе.

Создание и печать направленного графика.

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

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

Определите, содержит ли график какие-либо циклы.

tf = hascycles(G)
tf = logical
   1

hascycles прибыль true когда направленный граф содержит цикл.

Теперь используйте isdag чтобы определить, является ли граф направленным и ациклическим.

tf2 = isdag(G)
tf2 = logical
   0

isdag прибыль false потому что график содержит цикл. В общем, hascycles и isdag функции возвращают противоположные результаты для направленных графиков.

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

свернуть все

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

Пример: G = graph(1,2)

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

Подробнее

свернуть все

Циклы графика

Цикл существует в графе, когда существует непустой путь, в котором повторяются только первый и последний узлы. Примером цикла является: (Node1 - Node2 - Node3 - Node1).

Цикл не может пересекать одну и ту же кромку дважды. Например, цикл (Node1 - Node2 - Node1) в неориентированном графе существует только при наличии более одного ребра, связывающего Node1 и Node2. По этому определению самокольцы считаются циклами, хотя они не могут быть частью каких-либо более крупных циклов.

См. также

| |

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