Skip to content

Tractables/DirectedAcyclicGraphs.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DirectedAcyclicGraphs.jl

Unit Tests codecov

This package provides basic infrastructure to work with Directed Acyclic Graphs (DAGs) in Julia. It forms the foundation for packages such as LogicCircuits and ProbabilisticCircuits, which define custom DAGs that represent logical or probabilistic computation graphs.

Functionality includes:

  • applying foreach over the nodes of the DAG in topological or reverse topological order, linearize the DAG
  • computing the number of nodes, number of edges
  • propagating a value through the DAG, that is, a foldup operation
  • filter the nodes in the DAG
  • iterate over the nodes in the DAG, compute maximum, minimum, and other Base functions.
  • find the lca (lowest common ancestor) of nodes in a tree
  • arrange the DAG nodes in feedforward layers
  • collecting various statistics about the types of nodes and their in/out-degree

For example usage, please see the unit tests for DAGs and the special case of trees, or the source code of the dependent packages. A brief description of functions can be found in the .