當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。