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)