find_minimal_d_separator#

find_minimal_d_separator(G, x, y, *, included=None, restricted=None)[source]#

如果可能,返回 xy 之间的最小 D 分离集

有向无环图 (DAG) 中的 D 分离集是一组节点,它阻塞了节点集 xy 之间的所有路径。此函数构建一个“最小”的 D 分离集,这意味着在不失去 xy 的 D 分离特性的前提下,不能移除任何节点。如果 xy 不存在 D 分离集,则返回 None

在有向无环图 (DAG) 中,两个节点集之间可能存在多个最小 D 分离集。最小 D 分离集并不总是唯一的。此函数返回一个最小 D 分离集;如果不存在 D 分离集,则返回 None

使用 [1] 中提出的算法。该算法的复杂度为 \(O(m)\),其中 \(m\) 是图 G 中仅包含 xy 的祖先的子图中的边数。更多详细信息,请参阅 [1]

参数:
Ggraph

NetworkX 有向无环图 (DAG)。

xset | node

图中的一个节点或节点集。

yset | node

图中的一个节点或节点集。

includedset | node | None

必须包含在找到的分离集中的一个节点或节点集,默认为 None,表示空集。

restrictedset | node | None

限制要考虑的一个节点或节点集。只有这些节点可以在找到的分离集中,默认为 None,表示图 G 中的所有节点。

返回:
zset | None

最小 D 分离集(如果存在至少一个 D 分离集),否则为 None。

引发:
NetworkXError

如果输入图不是有向无环图 (DAG),或者节点集 xyincluded 不相交,则引发 NetworkXError

NodeNotFound

如果在图中未找到任何输入节点,则引发 NodeNotFound 异常。

参考文献

[1] (1,2)

van der Zander, Benito, and Maciej Liśkiewicz. “Finding minimal d-separators in linear time and applications.” In Uncertainty in Artificial Intelligence, pp. 637-647. PMLR, 2020.