Learn R Programming

nem (version 2.46.0)

transitive.closure: Computes the transitive closure of a directed graph

Description

Computes the transitive closure of a graph. Introduces a direct edge whenever there is a path between two nodes in a digraph.

Usage

transitive.closure(g, mat=FALSE, loops=TRUE)

Arguments

g
graphNEL object or adjacency matrix.
mat
convert result to adjacency matrix.
loops
Add loops from each node to itself?

Value

returns a graphNEL object or adjacency matrix

Details

This function calculates the transitive closure of a given graph. We use the matrix exponential to find the transitive closure.

See Also

transitive.reduction

Examples

Run this code
   V <- LETTERS[1:3]
   edL <- list(A=list(edges="B"),B=list(edges="C"),C=list(edges=NULL))
   g <- new("graphNEL",nodes=V,edgeL=edL,edgemode="directed")
   gc <- transitive.closure(g,loops=FALSE)
    
  if(require(Rgraphviz)){
    par(mfrow=c(1,2))
    plot(g,main="NOT transitively closed")
    plot(gc,main="transitively closed")
  }

Run the code above in your browser using DataLab