Topological sort of vertices in directed acyclic graph
A topological ordering of a directed graph is a linear ordering of its vertices such that, for every edge (u->v), u comes before v in the ordering. A topological ordering is possible if and only if the graph has no directed cycles, that is, if it is a directed acyclic graph (DAG). Any DAG has at least one topological ordering. Can hence be used for checking if a graph is a DAG.
topo_sort(object, index = FALSE) topo_sortMAT(amat, index = FALSE) topoSort(object, index = FALSE) topoSortMAT(amat, index = FALSE)
object |
An graph represented either as a |
index |
If FALSE, an ordering is returned if it exists and
|
amat |
Adjacency matrix. |
If FALSE, an ordering is returned if it exists and
character(0)
otherwise. If TRUE, the index of the
variables in an adjacency matrix is returned and -1
otherwise.
The functions 'topo_sort' / 'topoSort' are synonymous with 'topo_sortMAT' / 'topoSortMAT'. One of the groups may be deprecated in the future.
The workhorse is the topo_sortMAT
function which takes
an adjacency matrix as input.
Søren Højsgaard, sorenh@math.aau.dk
dagMAT <- dag(~a:b:c + c:d:e, result="matrix") dagMATS <- as(dagMAT, "dgCMatrix") dagNEL <- as(dagMAT, "graphNEL") topo_sort(dagMAT) topo_sort(dagMATS) topo_sort(dagNEL)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.