bfs_beam_edges#
- bfs_beam_edges(G, source, value, width=None)[源代码]#
在梁搜索中迭代边。
波束搜索是一种广义的广度优先搜索,其中只有“最好的” w 当前节点的邻居已排队,其中 w 是光束宽度和“最佳”是一个应用程序特定的启发式。一般来说,具有较小波束宽度的波束搜索可能不会访问图中的每个节点。
- 参数
- G网络X图表
- source结点
用于广度优先搜索的起始节点;此函数仅迭代从此节点可以到达的组件中的那些边。
- value功能
一个函数,它接受图形的一个节点作为输入,并返回一个实数,表示它有多“好”。值越高,意味着在搜索过程中越有可能更早地访问它。访问新节点时,只有
width
最高的邻居value
已排队(按降序排列value
)。- widthINT(默认值=无)
搜索的波束宽度。这是邻居的数量(按
value
)以在访问每个新节点时排队。
- 产量
- 边缘
梁搜索中的边从
source
,作为一对节点给出。
实例
例如,若要在搜索期间赋予具有较高中心优先级的节点,请将
value
函数返回节点的中心值:>>> G = nx.karate_club_graph() >>> centrality = nx.eigenvector_centrality(G) >>> source = 0 >>> width = 5 >>> for u, v in nx.bfs_beam_edges(G, source, centrality.get, width): ... print((u, v)) ... (0, 2) (0, 1) (0, 8) (0, 13) (0, 3) (2, 32) (1, 30) (8, 33) (3, 7) (32, 31) (31, 28) (31, 25) (25, 23) (25, 24) (23, 29) (23, 27) (29, 26)