Given a directed graph, return a number of edges that may be required to remove all cycles from the graph.
const toDAG = require('directed-graph-to-dag') const digraph = require('digraph-tag') const graph = digraph` A -> B B -> C C -> D D -> A ` toDAG(graph) // Set([C -> D])
Map<Vertex → Set<Edge>> → Edges
Vertex (whatever type you provide) to
Edge will be defined as
Set<Vertex> → VS
A set containing vertices are known as
toDAG(vertices: VS, in: Edges, out: Edges[, src: fn][, dst: fn]) → Set<Edge>
Given a graph defined by
vertices, incoming edges
in, outgoing edges
out, and optional
dst, return a set of edges that may be required to
turn the graph into a DAG.
Note: the only guarantee is that a cyclical graph will become acyclical by reversing the resulting edges, not that an existing acyclical graph will have no edges recommended for reversal.