graphical_models.classes.dags.dag.DAG.greedy_optimal_fully_orienting_interventions
- DAG.greedy_optimal_fully_orienting_interventions(cpdag=None)[source]
Find a set of interventions which fully orients a CPDAG into this DAG, using greedy selection of the interventions. By submodularity, the number of interventions is a (1 + ln K) multiplicative approximation to the true optimal number of interventions, where K is the number of undirected edges in the CPDAG.
- Parameters
cpdag – the starting CPDAG containing known orientations. If None, use the observational essential graph.
- Returns
The selected interventions and the associated cpdags that they induce.
- Return type
(interventions, cpdags)
Examples
>>> from graphical_models import DAG >>> d = DAG(arcs={(0, 1), (1, 2), (0, 2), (0, 3), (1, 3), (2, 3)}) >>> ivs, icpdags = d.greedy_optimal_fully_orienting_interventions() >>> ivs [1, 2] >>> icpdags[0].edges {frozenset({2, 3})} >>> icpdags[1].edges set()