
Checks if a given graph is acyclic.
isAcyclic(amat, method = 2)
a logical value, TRUE
if the graph is acyclic and FALSE
otherwise.
a square Boolean matrix with dimnames, the adjacency matrix of a graph.
an integer 1 or 2 specifying the method used. If method=1
the function calls the function clusters
in package igraph
to find the strong components: two nodes v and w are in the same strong component iff there are directed paths from v to w and from w to v. If method=2
the function uses the ggm
function transClos
. Method 1 is faster.
David Edwards, Giovanni M. Marchetti
Aho, A.V., Hopcroft, J.E. & Ullman, J.D. (1983). Data structures and algorithms. Reading: Addison-Wesley.
## A cyclic graph
d <- matrix(0,3,3)
rownames(d) <- colnames(d) <- c("x", "y", "z")
d["x","y"] <- d["y", "z"] <- d["z", "x"] <- 1
## Test if the graph is acyclic
isAcyclic(d)
isAcyclic(d, method = 1)
Run the code above in your browser using DataLab