46#ifndef GUM_DSEPARATION_H
47#define GUM_DSEPARATION_H
Base classes for directed acyclic graphs.
Consolidated d-separation utilities (DAG-centric).
static DAG reduceForDSeparation(const DAG &dag, const NodeSet &X, const NodeSet &Y, const NodeSet &Z)
Barren-node pruning relative to the interest set (X \cup Y \cup Z).
static bool isDSeparated(const DAG &dag, const NodeSet &X, const NodeSet &Y, const NodeSet &Z)
Test ( X \perp!!!\perp Y \mid Z ) (general d-separation).
static bool isAncestorOf(const DAG &dag, NodeId x, NodeId y)
Is x an ancestor of y?
static NodeSet findBarrenNodes(const DAG &dag, const NodeSet &evidenceZ, const NodeSet &targetsXY)
Compute barren nodes given evidence and targets.
static bool isForwardSeparated(const DAG &dag, const NodeSet &X, const NodeSet &Y, const NodeSet &Z)
Forward-style restriction: only paths whose first edge leaves X.
static bool isDescendantOf(const DAG &dag, NodeId x, NodeId y)
Is x a descendant of y?
static bool anyUndirectedConnection(const UndiGraph &ug, const NodeSet &A, const NodeSet &B)
Check if any node in A is undirected-connected to any node in B.
static bool isBackdoorSeparated(const DAG &dag, const NodeSet &X, const NodeSet &Y, const NodeSet &Z)
Backdoor-style restriction: only paths whose first edge points into X.
Base class for undirected graphs.
Size NodeId
Type for node ids.
Set< NodeId > NodeSet
Some typdefs and define for shortcuts ...
gum is the global namespace for all aGrUM entities