Тест на циклы в ориентированном графе
graphisdag(
G
)
G | N-на-N разреженная матрица, которая представляет ориентированный граф. Ненулевые значения в матричных G указать наличие ребра. |
Совет
Для получения вводной информации о функциях теории графиков, см. «Функции теории графиков».
graphisdag(
возвращает логический 1 (G
)true
), если ориентированный граф представлен матрицей G
является ориентированным ациклическим графиком (DAG) и логическим 0 (false
) в противном случае. G
является N-на-N разреженной матрицей, которая представляет ориентированный граф. Ненулевые значения в матричных G
указать наличие ребра.
Создайте и просмотрите ориентированный ациклический график (DAG) с шестью узлами и восемью ребрами.
DG = sparse([1 1 1 2 2 3 4 6],[2 4 6 3 5 4 6 5],true,6,6) DG = (1,2) 1 (2,3) 1 (1,4) 1 (3,4) 1 (2,5) 1 (6,5) 1 (1,6) 1 (4,6) 1 view(biograph(DG))
Тест на циклы в ДАГ.
graphisdag(DG) ans = 1
Добавьте ребро в ДАГ, чтобы сделать его циклическим, и затем просмотрите ориентированный график.
DG(5,1) = true DG = (5,1) 1 (1,2) 1 (2,3) 1 (1,4) 1 (3,4) 1 (2,5) 1 (6,5) 1 (1,6) 1 (4,6) 1 view(biograph(DG))
Тест на циклы в новом графике.
graphisdag(DG) ans = 0
Загрузите базу данных Gene Ontology в объект geneont.
GO = geneont('live',true);
Преобразуйте объект генеонта в матрицу.
CM = getmatrix(GO);
Тест на циклы в графике.
graphisdag(CM)
Создайте и просмотрите случайный ориентированный ациклический график (DAG) с 15 узлами и 20 ребрами.
g = sparse([],[],true,15,15); while nnz(g) < 20 edge = randsample(15*15,1); % get a random edge g(edge) = true; g(edge) = graphisdag(g); end view(biograph(g))
Тест на циклы в графике.
graphisdag(g)
[1] Siek, J.G., Lee, L-Q, and Lumsdaine, A. (2002). Руководство пользователя библиотеки График (Upper Saddle River, NJ: Pearson Education).
graphallshortestpaths
| graphconncomp
| graphisomorphism
| graphisspantree
| graphmaxflow
| graphminspantree
| graphpred2path
| graphshortestpath
| graphtopoorder
| graphtraverse
| isdag