v_structures#
- v_structures(G)[source]#
生成表示图
G
中 V 结构的三元组。碰撞器是指在有向无环图(DAG)中,两个父节点指向同一个子节点的三元组。V 结构是碰撞器的一种,其中两个父节点不相邻。在因果图设置中,父节点之间没有直接依赖关系,但条件化子节点会提供关联。
- Parameters:
- G图
一个 networkx
DiGraph
。
- Yields:
- 一个 V 结构的 3 元组表示
每个 V 结构是一个 3 元组,包含父节点、碰撞器节点和其他父节点。
- Raises:
- NetworkXNotImplemented
如果
G
是一个无向图。
See also
Notes
此函数旨在用于 DAG,但它也适用于循环图。由于碰撞器在循环因果图文献中被提及 [2],我们允许在此函数中使用循环图。建议您在需要该属性时,如示例中所示测试输入图是否为无环图。
References
[1]Pearl’s PRIMER Ch-2 第 50 页:V 结构定义。
[2]A Hyttinen, P.O. Hoyer, F. Eberhardt, M J ̈arvisalo, (2013) “Discovering cyclic causal models with latent variables: a general SAT-based procedure”, UAI’13: Proceedings of the Twenty-Ninth Conference on Uncertainty in Artificial Intelligence, pg 301–310, doi:10.5555/3023638.3023669
Examples
>>> G = nx.DiGraph([(1, 2), (0, 4), (3, 1), (2, 4), (0, 5), (4, 5), (1, 5)]) >>> nx.is_directed_acyclic_graph(G) True >>> list(nx.dag.v_structures(G)) [(0, 4, 2), (0, 5, 1), (4, 5, 1)]