当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NetworkX bfs_beam_edges用法及代码示例


本文简要介绍 networkx.algorithms.traversal.beamsearch.bfs_beam_edges 的用法。

用法:

bfs_beam_edges(G, source, value, width=None)

在波束搜索中迭代边。

波束搜索是一种广义的广度优先搜索,其中仅将当前节点的 “best” w 邻居排队,其中 w 是波束宽度,“best” 是特定于应用程序的启发式搜索。一般来说,具有小波束宽度的波束搜索可能不会访问图中的每个节点。

参数

GNetworkX 图
source节点

广度优先搜索的起始节点;该函数仅迭代可从此节点到达的组件中的那些边。

value函数

一个函数,它将图形的一个节点作为输入并返回一个实数,指示它是如何“good”。较高的值意味着在搜索期间更有可能更快地访问它。当访问一个新节点时,只有具有最高 valuewidth 邻居被排入队列(按 value 的降序排列)。

widthint(默认 = 无)

搜索的波束宽度。这是访问每个新节点时要排队的邻居数(按 value 排序)。

生成(Yield)

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)

相关用法


注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.algorithms.traversal.beamsearch.bfs_beam_edges。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。