python - 连接到子图网络的节点或节点集x
问题描述
我有 2 个图A和B。B是A的强连通子图。我想在A中找到具有到B中任何节点的路径的节点。如何在 Networkx 中执行此操作?
注意:我已经尝试过使用弱连接组件,但是没有用。
解决方案
如果B
是强连通的,那么如果选择 中的任何节点u
,B
那么如果 中的某个节点x
有A
一条到 中的某个节点的路径b
,B
那么就有一条从x
到的路径u
(有一条从b
到的路径,u
因为B
是强连通的,然后是x
到b
到的u
路径存在)。因此,拥有到 in 中任何节点的路径与拥有到 inB
中的一个特定节点的路径是一回事B
。让X
是具有到 的路径的节点集u
。这是你想要的套装。
如果你这样做了,X = nx.ancestors(A, u)
那么X
是一组具有路径的节点u
。如果你想要子图本身,那么做G = A.subgraph(X)
,但如果你只想要一组节点,那么它就是X
.
注意 - 这实际上是 Epidemics on Networks 包https://epidemicsonnetworks.readthedocs.io/en/latest/ (我写的)中使用的算法,用于使用定向渗透估计流行病的概率。
推荐阅读
- node.js - 我不能同时使用 $set 运算符和 $inc 运算符只有一个在我的情况下工作
- javascript - React 在选项中显示获取的数据
- ios - 当我使用 SwiftUI 绘制自定义标签栏时,Spacer 不起作用
- python - 如何面对强化学习中的无效动作
- youtrack - 为什么我不能将“用户故事”作为一种类型访问?
- qt - 结束游戏功能
- migrate - 从使用规划器的 MS Teams 迁移到使用板的 MS Teams
- tensorflow - Keras 模型错误
- python - 是否有一种快速算法可以将集合的所有分区生成为大小为 2 的子集(和一个大小为 1 的子集)?
- postgresql - 在 PG 中创建 PARTITIONed 表时在“INTERVAL”处或附近出现语法错误